squeaky-clean 0.1.8 → 0.1.11

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 (241) hide show
  1. package/package.json +23 -25
  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/cursor.d.ts +0 -15
  39. package/dist/cleaners/cursor.d.ts.map +0 -1
  40. package/dist/cleaners/cursor.js +0 -377
  41. package/dist/cleaners/cursor.js.map +0 -1
  42. package/dist/cleaners/docker.d.ts +0 -35
  43. package/dist/cleaners/docker.d.ts.map +0 -1
  44. package/dist/cleaners/docker.js +0 -285
  45. package/dist/cleaners/docker.js.map +0 -1
  46. package/dist/cleaners/firefox.d.ts +0 -15
  47. package/dist/cleaners/firefox.d.ts.map +0 -1
  48. package/dist/cleaners/firefox.js +0 -281
  49. package/dist/cleaners/firefox.js.map +0 -1
  50. package/dist/cleaners/flutter.d.ts +0 -18
  51. package/dist/cleaners/flutter.d.ts.map +0 -1
  52. package/dist/cleaners/flutter.js +0 -354
  53. package/dist/cleaners/flutter.js.map +0 -1
  54. package/dist/cleaners/goBuild.d.ts +0 -18
  55. package/dist/cleaners/goBuild.d.ts.map +0 -1
  56. package/dist/cleaners/goBuild.js +0 -196
  57. package/dist/cleaners/goBuild.js.map +0 -1
  58. package/dist/cleaners/gradle.d.ts +0 -14
  59. package/dist/cleaners/gradle.d.ts.map +0 -1
  60. package/dist/cleaners/gradle.js +0 -336
  61. package/dist/cleaners/gradle.js.map +0 -1
  62. package/dist/cleaners/index.d.ts +0 -51
  63. package/dist/cleaners/index.d.ts.map +0 -1
  64. package/dist/cleaners/index.js +0 -271
  65. package/dist/cleaners/index.js.map +0 -1
  66. package/dist/cleaners/jetbrains.d.ts +0 -18
  67. package/dist/cleaners/jetbrains.d.ts.map +0 -1
  68. package/dist/cleaners/jetbrains.js +0 -441
  69. package/dist/cleaners/jetbrains.js.map +0 -1
  70. package/dist/cleaners/maven.d.ts +0 -15
  71. package/dist/cleaners/maven.d.ts.map +0 -1
  72. package/dist/cleaners/maven.js +0 -182
  73. package/dist/cleaners/maven.js.map +0 -1
  74. package/dist/cleaners/nix.d.ts +0 -4
  75. package/dist/cleaners/nix.d.ts.map +0 -1
  76. package/dist/cleaners/nix.js +0 -227
  77. package/dist/cleaners/nix.js.map +0 -1
  78. package/dist/cleaners/nodeGyp.d.ts +0 -14
  79. package/dist/cleaners/nodeGyp.d.ts.map +0 -1
  80. package/dist/cleaners/nodeGyp.js +0 -157
  81. package/dist/cleaners/nodeGyp.js.map +0 -1
  82. package/dist/cleaners/npm.d.ts +0 -14
  83. package/dist/cleaners/npm.d.ts.map +0 -1
  84. package/dist/cleaners/npm.js +0 -198
  85. package/dist/cleaners/npm.js.map +0 -1
  86. package/dist/cleaners/npmEnhanced.d.ts +0 -19
  87. package/dist/cleaners/npmEnhanced.d.ts.map +0 -1
  88. package/dist/cleaners/npmEnhanced.js +0 -336
  89. package/dist/cleaners/npmEnhanced.js.map +0 -1
  90. package/dist/cleaners/nuget.d.ts +0 -16
  91. package/dist/cleaners/nuget.d.ts.map +0 -1
  92. package/dist/cleaners/nuget.js +0 -197
  93. package/dist/cleaners/nuget.js.map +0 -1
  94. package/dist/cleaners/nx.d.ts +0 -18
  95. package/dist/cleaners/nx.d.ts.map +0 -1
  96. package/dist/cleaners/nx.js +0 -308
  97. package/dist/cleaners/nx.js.map +0 -1
  98. package/dist/cleaners/pip.d.ts +0 -19
  99. package/dist/cleaners/pip.d.ts.map +0 -1
  100. package/dist/cleaners/pip.js +0 -334
  101. package/dist/cleaners/pip.js.map +0 -1
  102. package/dist/cleaners/pipenv.d.ts +0 -16
  103. package/dist/cleaners/pipenv.d.ts.map +0 -1
  104. package/dist/cleaners/pipenv.js +0 -184
  105. package/dist/cleaners/pipenv.js.map +0 -1
  106. package/dist/cleaners/playwright.d.ts +0 -15
  107. package/dist/cleaners/playwright.d.ts.map +0 -1
  108. package/dist/cleaners/playwright.js +0 -221
  109. package/dist/cleaners/playwright.js.map +0 -1
  110. package/dist/cleaners/pnpm.d.ts +0 -14
  111. package/dist/cleaners/pnpm.d.ts.map +0 -1
  112. package/dist/cleaners/pnpm.js +0 -209
  113. package/dist/cleaners/pnpm.js.map +0 -1
  114. package/dist/cleaners/poetry.d.ts +0 -16
  115. package/dist/cleaners/poetry.d.ts.map +0 -1
  116. package/dist/cleaners/poetry.js +0 -184
  117. package/dist/cleaners/poetry.js.map +0 -1
  118. package/dist/cleaners/swiftpm.d.ts +0 -16
  119. package/dist/cleaners/swiftpm.d.ts.map +0 -1
  120. package/dist/cleaners/swiftpm.js +0 -179
  121. package/dist/cleaners/swiftpm.js.map +0 -1
  122. package/dist/cleaners/turbo.d.ts +0 -18
  123. package/dist/cleaners/turbo.d.ts.map +0 -1
  124. package/dist/cleaners/turbo.js +0 -325
  125. package/dist/cleaners/turbo.js.map +0 -1
  126. package/dist/cleaners/universalBinary.d.ts +0 -20
  127. package/dist/cleaners/universalBinary.d.ts.map +0 -1
  128. package/dist/cleaners/universalBinary.js +0 -318
  129. package/dist/cleaners/universalBinary.js.map +0 -1
  130. package/dist/cleaners/vite.d.ts +0 -17
  131. package/dist/cleaners/vite.d.ts.map +0 -1
  132. package/dist/cleaners/vite.js +0 -274
  133. package/dist/cleaners/vite.js.map +0 -1
  134. package/dist/cleaners/vscode.d.ts +0 -15
  135. package/dist/cleaners/vscode.d.ts.map +0 -1
  136. package/dist/cleaners/vscode.js +0 -411
  137. package/dist/cleaners/vscode.js.map +0 -1
  138. package/dist/cleaners/webpack.d.ts +0 -17
  139. package/dist/cleaners/webpack.d.ts.map +0 -1
  140. package/dist/cleaners/webpack.js +0 -263
  141. package/dist/cleaners/webpack.js.map +0 -1
  142. package/dist/cleaners/windsurf.d.ts +0 -15
  143. package/dist/cleaners/windsurf.d.ts.map +0 -1
  144. package/dist/cleaners/windsurf.js +0 -366
  145. package/dist/cleaners/windsurf.js.map +0 -1
  146. package/dist/cleaners/xcode.d.ts +0 -14
  147. package/dist/cleaners/xcode.d.ts.map +0 -1
  148. package/dist/cleaners/xcode.js +0 -348
  149. package/dist/cleaners/xcode.js.map +0 -1
  150. package/dist/cleaners/yarn.d.ts +0 -16
  151. package/dist/cleaners/yarn.d.ts.map +0 -1
  152. package/dist/cleaners/yarn.js +0 -266
  153. package/dist/cleaners/yarn.js.map +0 -1
  154. package/dist/cleaners/zed.d.ts +0 -15
  155. package/dist/cleaners/zed.d.ts.map +0 -1
  156. package/dist/cleaners/zed.js +0 -383
  157. package/dist/cleaners/zed.js.map +0 -1
  158. package/dist/cli.d.ts +0 -3
  159. package/dist/cli.d.ts.map +0 -1
  160. package/dist/cli.js +0 -367
  161. package/dist/cli.js.map +0 -1
  162. package/dist/commands/auto.d.ts +0 -8
  163. package/dist/commands/auto.d.ts.map +0 -1
  164. package/dist/commands/auto.js +0 -251
  165. package/dist/commands/auto.js.map +0 -1
  166. package/dist/commands/categories.d.ts +0 -8
  167. package/dist/commands/categories.d.ts.map +0 -1
  168. package/dist/commands/categories.js +0 -133
  169. package/dist/commands/categories.js.map +0 -1
  170. package/dist/commands/clean.d.ts +0 -3
  171. package/dist/commands/clean.d.ts.map +0 -1
  172. package/dist/commands/clean.js +0 -149
  173. package/dist/commands/clean.js.map +0 -1
  174. package/dist/commands/config.d.ts +0 -14
  175. package/dist/commands/config.d.ts.map +0 -1
  176. package/dist/commands/config.js +0 -460
  177. package/dist/commands/config.js.map +0 -1
  178. package/dist/commands/configDoctor.d.ts +0 -26
  179. package/dist/commands/configDoctor.d.ts.map +0 -1
  180. package/dist/commands/configDoctor.js +0 -60
  181. package/dist/commands/configDoctor.js.map +0 -1
  182. package/dist/commands/doctor.d.ts +0 -2
  183. package/dist/commands/doctor.d.ts.map +0 -1
  184. package/dist/commands/doctor.js +0 -141
  185. package/dist/commands/doctor.js.map +0 -1
  186. package/dist/commands/emojis.d.ts +0 -2
  187. package/dist/commands/emojis.d.ts.map +0 -1
  188. package/dist/commands/emojis.js +0 -28
  189. package/dist/commands/emojis.js.map +0 -1
  190. package/dist/commands/interactive.d.ts +0 -3
  191. package/dist/commands/interactive.d.ts.map +0 -1
  192. package/dist/commands/interactive.js +0 -284
  193. package/dist/commands/interactive.js.map +0 -1
  194. package/dist/commands/interactiveEnhanced.d.ts +0 -4
  195. package/dist/commands/interactiveEnhanced.d.ts.map +0 -1
  196. package/dist/commands/interactiveEnhanced.js +0 -460
  197. package/dist/commands/interactiveEnhanced.js.map +0 -1
  198. package/dist/commands/list.d.ts +0 -2
  199. package/dist/commands/list.d.ts.map +0 -1
  200. package/dist/commands/list.js +0 -68
  201. package/dist/commands/list.js.map +0 -1
  202. package/dist/commands/sizes.d.ts +0 -2
  203. package/dist/commands/sizes.d.ts.map +0 -1
  204. package/dist/commands/sizes.js +0 -87
  205. package/dist/commands/sizes.js.map +0 -1
  206. package/dist/commands/ub.d.ts +0 -10
  207. package/dist/commands/ub.d.ts.map +0 -1
  208. package/dist/commands/ub.js +0 -170
  209. package/dist/commands/ub.js.map +0 -1
  210. package/dist/config/index.d.ts +0 -31
  211. package/dist/config/index.d.ts.map +0 -1
  212. package/dist/config/index.js +0 -270
  213. package/dist/config/index.js.map +0 -1
  214. package/dist/config/loadConfig.d.ts +0 -7
  215. package/dist/config/loadConfig.d.ts.map +0 -1
  216. package/dist/config/loadConfig.js +0 -103
  217. package/dist/config/loadConfig.js.map +0 -1
  218. package/dist/config/migrateConfig.d.ts +0 -56
  219. package/dist/config/migrateConfig.d.ts.map +0 -1
  220. package/dist/config/migrateConfig.js +0 -102
  221. package/dist/config/migrateConfig.js.map +0 -1
  222. package/dist/plugins/discovery.d.ts +0 -6
  223. package/dist/plugins/discovery.d.ts.map +0 -1
  224. package/dist/plugins/discovery.js +0 -64
  225. package/dist/plugins/discovery.js.map +0 -1
  226. package/dist/profiles/index.d.ts +0 -61
  227. package/dist/profiles/index.d.ts.map +0 -1
  228. package/dist/profiles/index.js +0 -406
  229. package/dist/profiles/index.js.map +0 -1
  230. package/dist/types/index.d.ts +0 -176
  231. package/dist/types/index.d.ts.map +0 -1
  232. package/dist/types/index.js +0 -3
  233. package/dist/types/index.js.map +0 -1
  234. package/dist/utils/cli.d.ts +0 -46
  235. package/dist/utils/cli.d.ts.map +0 -1
  236. package/dist/utils/cli.js +0 -412
  237. package/dist/utils/cli.js.map +0 -1
  238. package/dist/utils/fs.d.ts +0 -15
  239. package/dist/utils/fs.d.ts.map +0 -1
  240. package/dist/utils/fs.js +0 -218
  241. 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