squeaky-clean 0.1.11 → 0.1.12

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 (249) hide show
  1. package/dist/cleaners/BaseCleaner.d.ts +57 -0
  2. package/dist/cleaners/BaseCleaner.d.ts.map +1 -0
  3. package/dist/cleaners/BaseCleaner.js +299 -0
  4. package/dist/cleaners/BaseCleaner.js.map +1 -0
  5. package/dist/cleaners/CleanerRegistry.d.ts +65 -0
  6. package/dist/cleaners/CleanerRegistry.d.ts.map +1 -0
  7. package/dist/cleaners/CleanerRegistry.js +112 -0
  8. package/dist/cleaners/CleanerRegistry.js.map +1 -0
  9. package/dist/cleaners/androidstudio.d.ts +16 -0
  10. package/dist/cleaners/androidstudio.d.ts.map +1 -0
  11. package/dist/cleaners/androidstudio.js +375 -0
  12. package/dist/cleaners/androidstudio.js.map +1 -0
  13. package/dist/cleaners/brew.d.ts +4 -0
  14. package/dist/cleaners/brew.d.ts.map +1 -0
  15. package/dist/cleaners/brew.js +197 -0
  16. package/dist/cleaners/brew.js.map +1 -0
  17. package/dist/cleaners/brewEnhanced.d.ts +18 -0
  18. package/dist/cleaners/brewEnhanced.d.ts.map +1 -0
  19. package/dist/cleaners/brewEnhanced.js +255 -0
  20. package/dist/cleaners/brewEnhanced.js.map +1 -0
  21. package/dist/cleaners/bun.d.ts +14 -0
  22. package/dist/cleaners/bun.d.ts.map +1 -0
  23. package/dist/cleaners/bun.js +207 -0
  24. package/dist/cleaners/bun.js.map +1 -0
  25. package/dist/cleaners/cargo.d.ts +15 -0
  26. package/dist/cleaners/cargo.d.ts.map +1 -0
  27. package/dist/cleaners/cargo.js +193 -0
  28. package/dist/cleaners/cargo.js.map +1 -0
  29. package/dist/cleaners/chrome.d.ts +14 -0
  30. package/dist/cleaners/chrome.d.ts.map +1 -0
  31. package/dist/cleaners/chrome.js +250 -0
  32. package/dist/cleaners/chrome.js.map +1 -0
  33. package/dist/cleaners/cocoapods.d.ts +16 -0
  34. package/dist/cleaners/cocoapods.d.ts.map +1 -0
  35. package/dist/cleaners/cocoapods.js +180 -0
  36. package/dist/cleaners/cocoapods.js.map +1 -0
  37. package/dist/cleaners/cursor.d.ts +15 -0
  38. package/dist/cleaners/cursor.d.ts.map +1 -0
  39. package/dist/cleaners/cursor.js +377 -0
  40. package/dist/cleaners/cursor.js.map +1 -0
  41. package/dist/cleaners/docker.d.ts +35 -0
  42. package/dist/cleaners/docker.d.ts.map +1 -0
  43. package/dist/cleaners/docker.js +288 -0
  44. package/dist/cleaners/docker.js.map +1 -0
  45. package/dist/cleaners/firefox.d.ts +15 -0
  46. package/dist/cleaners/firefox.d.ts.map +1 -0
  47. package/dist/cleaners/firefox.js +281 -0
  48. package/dist/cleaners/firefox.js.map +1 -0
  49. package/dist/cleaners/flutter.d.ts +18 -0
  50. package/dist/cleaners/flutter.d.ts.map +1 -0
  51. package/dist/cleaners/flutter.js +354 -0
  52. package/dist/cleaners/flutter.js.map +1 -0
  53. package/dist/cleaners/goBuild.d.ts +18 -0
  54. package/dist/cleaners/goBuild.d.ts.map +1 -0
  55. package/dist/cleaners/goBuild.js +196 -0
  56. package/dist/cleaners/goBuild.js.map +1 -0
  57. package/dist/cleaners/gradle.d.ts +14 -0
  58. package/dist/cleaners/gradle.d.ts.map +1 -0
  59. package/dist/cleaners/gradle.js +336 -0
  60. package/dist/cleaners/gradle.js.map +1 -0
  61. package/dist/cleaners/index.d.ts +51 -0
  62. package/dist/cleaners/index.d.ts.map +1 -0
  63. package/dist/cleaners/index.js +267 -0
  64. package/dist/cleaners/index.js.map +1 -0
  65. package/dist/cleaners/jetbrains.d.ts +18 -0
  66. package/dist/cleaners/jetbrains.d.ts.map +1 -0
  67. package/dist/cleaners/jetbrains.js +441 -0
  68. package/dist/cleaners/jetbrains.js.map +1 -0
  69. package/dist/cleaners/maven.d.ts +15 -0
  70. package/dist/cleaners/maven.d.ts.map +1 -0
  71. package/dist/cleaners/maven.js +182 -0
  72. package/dist/cleaners/maven.js.map +1 -0
  73. package/dist/cleaners/nix.d.ts +4 -0
  74. package/dist/cleaners/nix.d.ts.map +1 -0
  75. package/dist/cleaners/nix.js +227 -0
  76. package/dist/cleaners/nix.js.map +1 -0
  77. package/dist/cleaners/nodeGyp.d.ts +14 -0
  78. package/dist/cleaners/nodeGyp.d.ts.map +1 -0
  79. package/dist/cleaners/nodeGyp.js +157 -0
  80. package/dist/cleaners/nodeGyp.js.map +1 -0
  81. package/dist/cleaners/npm.d.ts +14 -0
  82. package/dist/cleaners/npm.d.ts.map +1 -0
  83. package/dist/cleaners/npm.js +203 -0
  84. package/dist/cleaners/npm.js.map +1 -0
  85. package/dist/cleaners/npmEnhanced.d.ts +19 -0
  86. package/dist/cleaners/npmEnhanced.d.ts.map +1 -0
  87. package/dist/cleaners/npmEnhanced.js +336 -0
  88. package/dist/cleaners/npmEnhanced.js.map +1 -0
  89. package/dist/cleaners/nuget.d.ts +16 -0
  90. package/dist/cleaners/nuget.d.ts.map +1 -0
  91. package/dist/cleaners/nuget.js +197 -0
  92. package/dist/cleaners/nuget.js.map +1 -0
  93. package/dist/cleaners/nx.d.ts +18 -0
  94. package/dist/cleaners/nx.d.ts.map +1 -0
  95. package/dist/cleaners/nx.js +308 -0
  96. package/dist/cleaners/nx.js.map +1 -0
  97. package/dist/cleaners/pip.d.ts +19 -0
  98. package/dist/cleaners/pip.d.ts.map +1 -0
  99. package/dist/cleaners/pip.js +334 -0
  100. package/dist/cleaners/pip.js.map +1 -0
  101. package/dist/cleaners/pipenv.d.ts +16 -0
  102. package/dist/cleaners/pipenv.d.ts.map +1 -0
  103. package/dist/cleaners/pipenv.js +184 -0
  104. package/dist/cleaners/pipenv.js.map +1 -0
  105. package/dist/cleaners/playwright.d.ts +15 -0
  106. package/dist/cleaners/playwright.d.ts.map +1 -0
  107. package/dist/cleaners/playwright.js +221 -0
  108. package/dist/cleaners/playwright.js.map +1 -0
  109. package/dist/cleaners/pnpm.d.ts +14 -0
  110. package/dist/cleaners/pnpm.d.ts.map +1 -0
  111. package/dist/cleaners/pnpm.js +214 -0
  112. package/dist/cleaners/pnpm.js.map +1 -0
  113. package/dist/cleaners/poetry.d.ts +16 -0
  114. package/dist/cleaners/poetry.d.ts.map +1 -0
  115. package/dist/cleaners/poetry.js +184 -0
  116. package/dist/cleaners/poetry.js.map +1 -0
  117. package/dist/cleaners/swiftpm.d.ts +16 -0
  118. package/dist/cleaners/swiftpm.d.ts.map +1 -0
  119. package/dist/cleaners/swiftpm.js +179 -0
  120. package/dist/cleaners/swiftpm.js.map +1 -0
  121. package/dist/cleaners/turbo.d.ts +18 -0
  122. package/dist/cleaners/turbo.d.ts.map +1 -0
  123. package/dist/cleaners/turbo.js +325 -0
  124. package/dist/cleaners/turbo.js.map +1 -0
  125. package/dist/cleaners/universalBinary.d.ts +20 -0
  126. package/dist/cleaners/universalBinary.d.ts.map +1 -0
  127. package/dist/cleaners/universalBinary.js +318 -0
  128. package/dist/cleaners/universalBinary.js.map +1 -0
  129. package/dist/cleaners/vite.d.ts +17 -0
  130. package/dist/cleaners/vite.d.ts.map +1 -0
  131. package/dist/cleaners/vite.js +274 -0
  132. package/dist/cleaners/vite.js.map +1 -0
  133. package/dist/cleaners/vscode.d.ts +15 -0
  134. package/dist/cleaners/vscode.d.ts.map +1 -0
  135. package/dist/cleaners/vscode.js +411 -0
  136. package/dist/cleaners/vscode.js.map +1 -0
  137. package/dist/cleaners/webpack.d.ts +17 -0
  138. package/dist/cleaners/webpack.d.ts.map +1 -0
  139. package/dist/cleaners/webpack.js +263 -0
  140. package/dist/cleaners/webpack.js.map +1 -0
  141. package/dist/cleaners/windsurf.d.ts +15 -0
  142. package/dist/cleaners/windsurf.d.ts.map +1 -0
  143. package/dist/cleaners/windsurf.js +366 -0
  144. package/dist/cleaners/windsurf.js.map +1 -0
  145. package/dist/cleaners/xcode.d.ts +14 -0
  146. package/dist/cleaners/xcode.d.ts.map +1 -0
  147. package/dist/cleaners/xcode.js +348 -0
  148. package/dist/cleaners/xcode.js.map +1 -0
  149. package/dist/cleaners/yarn.d.ts +16 -0
  150. package/dist/cleaners/yarn.d.ts.map +1 -0
  151. package/dist/cleaners/yarn.js +271 -0
  152. package/dist/cleaners/yarn.js.map +1 -0
  153. package/dist/cleaners/zed.d.ts +15 -0
  154. package/dist/cleaners/zed.d.ts.map +1 -0
  155. package/dist/cleaners/zed.js +383 -0
  156. package/dist/cleaners/zed.js.map +1 -0
  157. package/dist/cli.d.ts +3 -0
  158. package/dist/cli.d.ts.map +1 -0
  159. package/dist/cli.js +367 -0
  160. package/dist/cli.js.map +1 -0
  161. package/dist/commands/auto.d.ts +8 -0
  162. package/dist/commands/auto.d.ts.map +1 -0
  163. package/dist/commands/auto.js +251 -0
  164. package/dist/commands/auto.js.map +1 -0
  165. package/dist/commands/categories.d.ts +8 -0
  166. package/dist/commands/categories.d.ts.map +1 -0
  167. package/dist/commands/categories.js +133 -0
  168. package/dist/commands/categories.js.map +1 -0
  169. package/dist/commands/clean.d.ts +3 -0
  170. package/dist/commands/clean.d.ts.map +1 -0
  171. package/dist/commands/clean.js +149 -0
  172. package/dist/commands/clean.js.map +1 -0
  173. package/dist/commands/config.d.ts +14 -0
  174. package/dist/commands/config.d.ts.map +1 -0
  175. package/dist/commands/config.js +460 -0
  176. package/dist/commands/config.js.map +1 -0
  177. package/dist/commands/configDoctor.d.ts +26 -0
  178. package/dist/commands/configDoctor.d.ts.map +1 -0
  179. package/dist/commands/configDoctor.js +60 -0
  180. package/dist/commands/configDoctor.js.map +1 -0
  181. package/dist/commands/doctor.d.ts +2 -0
  182. package/dist/commands/doctor.d.ts.map +1 -0
  183. package/dist/commands/doctor.js +141 -0
  184. package/dist/commands/doctor.js.map +1 -0
  185. package/dist/commands/emojis.d.ts +2 -0
  186. package/dist/commands/emojis.d.ts.map +1 -0
  187. package/dist/commands/emojis.js +28 -0
  188. package/dist/commands/emojis.js.map +1 -0
  189. package/dist/commands/interactive.d.ts +3 -0
  190. package/dist/commands/interactive.d.ts.map +1 -0
  191. package/dist/commands/interactive.js +284 -0
  192. package/dist/commands/interactive.js.map +1 -0
  193. package/dist/commands/interactiveEnhanced.d.ts +4 -0
  194. package/dist/commands/interactiveEnhanced.d.ts.map +1 -0
  195. package/dist/commands/interactiveEnhanced.js +460 -0
  196. package/dist/commands/interactiveEnhanced.js.map +1 -0
  197. package/dist/commands/list.d.ts +2 -0
  198. package/dist/commands/list.d.ts.map +1 -0
  199. package/dist/commands/list.js +68 -0
  200. package/dist/commands/list.js.map +1 -0
  201. package/dist/commands/sizes.d.ts +2 -0
  202. package/dist/commands/sizes.d.ts.map +1 -0
  203. package/dist/commands/sizes.js +87 -0
  204. package/dist/commands/sizes.js.map +1 -0
  205. package/dist/commands/ub.d.ts +10 -0
  206. package/dist/commands/ub.d.ts.map +1 -0
  207. package/dist/commands/ub.js +170 -0
  208. package/dist/commands/ub.js.map +1 -0
  209. package/dist/config/configSchema.d.ts +93 -0
  210. package/dist/config/configSchema.d.ts.map +1 -0
  211. package/dist/config/configSchema.js +75 -0
  212. package/dist/config/configSchema.js.map +1 -0
  213. package/dist/config/index.d.ts +35 -0
  214. package/dist/config/index.d.ts.map +1 -0
  215. package/dist/config/index.js +255 -0
  216. package/dist/config/index.js.map +1 -0
  217. package/dist/config/loadConfig.d.ts +7 -0
  218. package/dist/config/loadConfig.d.ts.map +1 -0
  219. package/dist/config/loadConfig.js +95 -0
  220. package/dist/config/loadConfig.js.map +1 -0
  221. package/dist/config/migrateConfig.d.ts +56 -0
  222. package/dist/config/migrateConfig.d.ts.map +1 -0
  223. package/dist/config/migrateConfig.js +102 -0
  224. package/dist/config/migrateConfig.js.map +1 -0
  225. package/dist/plugins/discovery.d.ts +6 -0
  226. package/dist/plugins/discovery.d.ts.map +1 -0
  227. package/dist/plugins/discovery.js +64 -0
  228. package/dist/plugins/discovery.js.map +1 -0
  229. package/dist/profiles/index.d.ts +61 -0
  230. package/dist/profiles/index.d.ts.map +1 -0
  231. package/dist/profiles/index.js +406 -0
  232. package/dist/profiles/index.js.map +1 -0
  233. package/dist/types/index.d.ts +176 -0
  234. package/dist/types/index.d.ts.map +1 -0
  235. package/dist/types/index.js +3 -0
  236. package/dist/types/index.js.map +1 -0
  237. package/dist/utils/cache.d.ts +58 -0
  238. package/dist/utils/cache.d.ts.map +1 -0
  239. package/dist/utils/cache.js +101 -0
  240. package/dist/utils/cache.js.map +1 -0
  241. package/dist/utils/cli.d.ts +45 -0
  242. package/dist/utils/cli.d.ts.map +1 -0
  243. package/dist/utils/cli.js +412 -0
  244. package/dist/utils/cli.js.map +1 -0
  245. package/dist/utils/fs.d.ts +32 -0
  246. package/dist/utils/fs.d.ts.map +1 -0
  247. package/dist/utils/fs.js +250 -0
  248. package/dist/utils/fs.js.map +1 -0
  249. package/package.json +3 -3
@@ -0,0 +1,203 @@
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
+ exports.NpmCleaner = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
9
+ const os_1 = __importDefault(require("os"));
10
+ const execa_1 = __importDefault(require("execa"));
11
+ const fs_2 = require("../utils/fs");
12
+ const cli_1 = require("../utils/cli");
13
+ const minimatch_1 = require("minimatch");
14
+ const cache_1 = require("../utils/cache");
15
+ class NpmCleaner {
16
+ constructor() {
17
+ this.name = "npm";
18
+ this.type = "package-manager";
19
+ this.description = "NPM package manager cache and temporary files";
20
+ }
21
+ getCachePaths() {
22
+ const paths = [];
23
+ const homeDir = os_1.default.homedir();
24
+ // Primary npm cache location
25
+ paths.push(path_1.default.join(homeDir, ".npm"));
26
+ // Alternative cache locations on different platforms
27
+ if (process.platform === "win32") {
28
+ const appData = process.env.APPDATA || path_1.default.join(homeDir, "AppData", "Roaming");
29
+ paths.push(path_1.default.join(appData, "npm-cache"));
30
+ }
31
+ else if (process.platform === "darwin") {
32
+ paths.push(path_1.default.join(homeDir, "Library", "Caches", "npm"));
33
+ }
34
+ // Node modules cache directories (common locations)
35
+ const commonCachePaths = [
36
+ "node_modules/.cache/npm",
37
+ ".npm-cache",
38
+ "npm-cache",
39
+ ];
40
+ // Check current working directory and parent directories (with limits)
41
+ let currentDir = process.cwd();
42
+ const rootDir = path_1.default.parse(currentDir).root;
43
+ let depth = 0;
44
+ const maxDepth = 5; // Limit to 5 levels up to avoid performance issues
45
+ while (currentDir !== rootDir && depth < maxDepth) {
46
+ for (const cachePath of commonCachePaths) {
47
+ paths.push(path_1.default.join(currentDir, cachePath));
48
+ }
49
+ currentDir = path_1.default.dirname(currentDir);
50
+ depth++;
51
+ }
52
+ return paths;
53
+ }
54
+ async isAvailable() {
55
+ return (0, cache_1.checkToolAvailability)("npm", async () => {
56
+ try {
57
+ (0, cli_1.printVerbose)("Checking if npm is installed...");
58
+ await (0, execa_1.default)("npm", ["--version"]);
59
+ return true;
60
+ }
61
+ catch {
62
+ return false;
63
+ }
64
+ });
65
+ }
66
+ async getCacheInfo() {
67
+ const allPaths = this.getCachePaths();
68
+ const existingPaths = [];
69
+ let totalSize = 0;
70
+ let lastModified;
71
+ (0, cli_1.printVerbose)(`Checking npm cache paths: ${allPaths.join(", ")}`);
72
+ for (const cachePath of allPaths) {
73
+ if (await (0, fs_2.pathExists)(cachePath)) {
74
+ existingPaths.push(cachePath);
75
+ try {
76
+ // Use cached size calculations for performance (2-minute TTL)
77
+ const isMainNpmCache = cachePath.includes(".npm") && !cachePath.includes("node_modules");
78
+ const size = isMainNpmCache
79
+ ? await (0, fs_2.getCachedEstimatedDirectorySize)(cachePath)
80
+ : await (0, fs_2.getCachedDirectorySize)(cachePath, true);
81
+ totalSize += size;
82
+ const stats = await fs_1.promises.stat(cachePath);
83
+ if (!lastModified || stats.mtime > lastModified) {
84
+ lastModified = stats.mtime;
85
+ }
86
+ (0, cli_1.printVerbose)(`Found npm cache at ${cachePath} (${size} bytes${isMainNpmCache ? " estimated" : ""})`);
87
+ }
88
+ catch (error) {
89
+ (0, cli_1.printVerbose)(`Error checking ${cachePath}: ${error}`);
90
+ }
91
+ }
92
+ }
93
+ return {
94
+ name: this.name,
95
+ type: this.type,
96
+ description: this.description,
97
+ paths: existingPaths,
98
+ isInstalled: await this.isAvailable(),
99
+ size: totalSize,
100
+ lastModified,
101
+ };
102
+ }
103
+ async clear(dryRun = false, _criteria, cacheInfo, protectedPaths = []) {
104
+ const info = cacheInfo || (await this.getCacheInfo());
105
+ const clearedPaths = [];
106
+ const sizeBefore = info.size || 0;
107
+ let success = true;
108
+ let error;
109
+ if (!info.isInstalled) {
110
+ return {
111
+ name: this.name,
112
+ success: false,
113
+ error: "npm is not installed",
114
+ clearedPaths: [],
115
+ sizeBefore: 0,
116
+ sizeAfter: 0,
117
+ };
118
+ }
119
+ if (info.paths.length === 0) {
120
+ (0, cli_1.printVerbose)("No npm cache directories found");
121
+ return {
122
+ name: this.name,
123
+ success: true,
124
+ clearedPaths: [],
125
+ sizeBefore: 0,
126
+ sizeAfter: 0,
127
+ };
128
+ }
129
+ try {
130
+ if (dryRun) {
131
+ (0, cli_1.printVerbose)(`[DRY RUN] Would clear npm cache paths: ${info.paths.join(", ")}`);
132
+ return {
133
+ name: this.name,
134
+ success: true,
135
+ sizeBefore,
136
+ sizeAfter: sizeBefore, // No change in dry run
137
+ clearedPaths: info.paths,
138
+ };
139
+ }
140
+ // Try using npm's built-in cache clean first
141
+ try {
142
+ (0, cli_1.printVerbose)("Running npm cache clean --force...");
143
+ await (0, execa_1.default)("npm", ["cache", "clean", "--force"]);
144
+ (0, cli_1.printVerbose)("npm cache clean completed successfully");
145
+ }
146
+ catch (npmError) {
147
+ (0, cli_1.printVerbose)(`npm cache clean failed: ${npmError}`);
148
+ // Continue with manual deletion
149
+ }
150
+ // Manually clear cache directories
151
+ for (const cachePath of info.paths) {
152
+ // Check if the path is protected
153
+ const isProtected = protectedPaths.some((protectedPattern) => (0, minimatch_1.minimatch)(cachePath, protectedPattern, { dot: true }));
154
+ if (isProtected) {
155
+ (0, cli_1.printVerbose)(`Skipping protected path: ${cachePath}`);
156
+ continue; // Skip this path
157
+ }
158
+ try {
159
+ if (await (0, fs_2.pathExists)(cachePath)) {
160
+ (0, cli_1.printVerbose)(`Clearing directory: ${cachePath}`);
161
+ await (0, fs_2.safeRmrf)(cachePath);
162
+ // Invalidate size cache after clearing
163
+ (0, fs_2.invalidateSizeCachePrefix)(cachePath);
164
+ clearedPaths.push(cachePath);
165
+ }
166
+ }
167
+ catch (pathError) {
168
+ (0, cli_1.printVerbose)(`Failed to clear ${cachePath}: ${pathError}`);
169
+ success = false;
170
+ if (!error) {
171
+ error = `Failed to clear some cache directories: ${pathError}`;
172
+ }
173
+ }
174
+ }
175
+ return {
176
+ name: this.name,
177
+ success,
178
+ sizeBefore,
179
+ sizeAfter: 0, // Set to 0 as we don't want to rescan
180
+ error,
181
+ clearedPaths,
182
+ };
183
+ }
184
+ catch (clearError) {
185
+ return {
186
+ name: this.name,
187
+ success: false,
188
+ sizeBefore,
189
+ sizeAfter: sizeBefore,
190
+ error: clearError instanceof Error ? clearError.message : String(clearError),
191
+ clearedPaths,
192
+ };
193
+ }
194
+ }
195
+ // Static method to create instance
196
+ static create() {
197
+ return new NpmCleaner();
198
+ }
199
+ }
200
+ exports.NpmCleaner = NpmCleaner;
201
+ // Export default instance
202
+ exports.default = NpmCleaner.create();
203
+ //# sourceMappingURL=npm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm.js","sourceRoot":"","sources":["../../src/cleaners/npm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { CacheInfo, ClearResult, CacheCategory, CacheSelectionCriteria } from "../types";
2
+ import { BaseCleaner } from "./BaseCleaner";
3
+ export declare class NpmEnhancedCleaner extends BaseCleaner {
4
+ name: string;
5
+ type: "package-manager";
6
+ description: string;
7
+ private getCachePaths;
8
+ isAvailable(): Promise<boolean>;
9
+ getCacheCategories(): Promise<CacheCategory[]>;
10
+ private getNpmCacheSubCategories;
11
+ private getBuildToolCaches;
12
+ getCacheInfo(): Promise<CacheInfo>;
13
+ clear(dryRun?: boolean, _criteria?: CacheSelectionCriteria, cacheInfo?: CacheInfo, protectedPaths?: string[]): Promise<ClearResult>;
14
+ clearByCategory(categoryIds: string[], dryRun?: boolean, cacheInfo?: CacheInfo, protectedPaths?: string[]): Promise<ClearResult>;
15
+ static create(): NpmEnhancedCleaner;
16
+ }
17
+ declare const _default: NpmEnhancedCleaner;
18
+ export default _default;
19
+ //# sourceMappingURL=npmEnhanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npmEnhanced.d.ts","sourceRoot":"","sources":["../../src/cleaners/npmEnhanced.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,SAAS,EACT,WAAW,EACX,aAAa,EACb,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,IAAI,SAAS;IACb,IAAI,EAAG,iBAAiB,CAAU;IAClC,WAAW,SAAqD;IAEhE,OAAO,CAAC,aAAa;IAoCf,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU/B,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAsDtC,wBAAwB;YAwExB,kBAAkB;IAsF1B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAoClC,KAAK,CACT,MAAM,UAAQ,EACd,SAAS,CAAC,EAAE,sBAAsB,EAClC,SAAS,CAAC,EAAE,SAAS,EACrB,cAAc,GAAE,MAAM,EAAO,GAC5B,OAAO,CAAC,WAAW,CAAC;IAyDjB,eAAe,CACnB,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,UAAQ,EACd,SAAS,CAAC,EAAE,SAAS,EACrB,cAAc,GAAE,MAAM,EAAO,GAC5B,OAAO,CAAC,WAAW,CAAC;IASvB,MAAM,CAAC,MAAM,IAAI,kBAAkB;CAGpC;;AAGD,wBAA2C"}
@@ -0,0 +1,336 @@
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
+ exports.NpmEnhancedCleaner = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
9
+ const os_1 = __importDefault(require("os"));
10
+ const execa_1 = __importDefault(require("execa"));
11
+ const fs_2 = require("../utils/fs");
12
+ const cli_1 = require("../utils/cli");
13
+ const BaseCleaner_1 = require("./BaseCleaner");
14
+ const fs_3 = require("fs");
15
+ const minimatch_1 = require("minimatch");
16
+ class NpmEnhancedCleaner extends BaseCleaner_1.BaseCleaner {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.name = "npm";
20
+ this.type = "package-manager";
21
+ this.description = "NPM package manager cache with granular control";
22
+ }
23
+ getCachePaths() {
24
+ const paths = [];
25
+ const homeDir = os_1.default.homedir();
26
+ // Primary npm cache location
27
+ paths.push(path_1.default.join(homeDir, ".npm"));
28
+ // Alternative cache locations on different platforms
29
+ if (process.platform === "win32") {
30
+ const appData = process.env.APPDATA || path_1.default.join(homeDir, "AppData", "Roaming");
31
+ paths.push(path_1.default.join(appData, "npm-cache"));
32
+ }
33
+ else if (process.platform === "darwin") {
34
+ paths.push(path_1.default.join(homeDir, "Library", "Caches", "npm"));
35
+ }
36
+ // Node modules cache directories (common locations)
37
+ const commonCachePaths = ["node_modules/.cache", ".npm-cache", "npm-cache"];
38
+ // Check current working directory and parent directories
39
+ let currentDir = process.cwd();
40
+ const rootDir = path_1.default.parse(currentDir).root;
41
+ let depth = 0;
42
+ const maxDepth = 5;
43
+ while (currentDir !== rootDir && depth < maxDepth) {
44
+ for (const cachePath of commonCachePaths) {
45
+ paths.push(path_1.default.join(currentDir, cachePath));
46
+ }
47
+ currentDir = path_1.default.dirname(currentDir);
48
+ depth++;
49
+ }
50
+ return paths;
51
+ }
52
+ async isAvailable() {
53
+ try {
54
+ (0, cli_1.printVerbose)("Checking if npm is installed...");
55
+ await (0, execa_1.default)("npm", ["--version"]);
56
+ return true;
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ }
62
+ async getCacheCategories() {
63
+ const categories = [];
64
+ const allPaths = this.getCachePaths();
65
+ for (const cachePath of allPaths) {
66
+ if (await (0, fs_2.pathExists)(cachePath)) {
67
+ const stat = (0, fs_3.statSync)(cachePath);
68
+ const ageInDays = Math.floor((Date.now() - stat.mtime.getTime()) / (1000 * 60 * 60 * 24));
69
+ // Main npm cache
70
+ if (cachePath.includes(".npm")) {
71
+ // Try to categorize by package types within npm cache
72
+ const subCategories = await this.getNpmCacheSubCategories(cachePath);
73
+ categories.push(...subCategories);
74
+ }
75
+ // Project-specific caches
76
+ else if (cachePath.includes("node_modules/.cache")) {
77
+ const projectPath = cachePath.replace("/node_modules/.cache", "");
78
+ const projectName = path_1.default.basename(projectPath);
79
+ // Check for specific build tool caches
80
+ const buildToolCaches = await this.getBuildToolCaches(cachePath, projectName);
81
+ categories.push(...buildToolCaches);
82
+ }
83
+ // General npm cache
84
+ else {
85
+ categories.push({
86
+ id: `npm-general-${path_1.default.basename(cachePath)}`,
87
+ name: `General NPM Cache (${path_1.default.basename(cachePath)})`,
88
+ description: `General npm cache at ${cachePath}`,
89
+ paths: [cachePath],
90
+ size: await this.getDirectorySize(cachePath),
91
+ lastModified: stat.mtime,
92
+ lastAccessed: stat.atime,
93
+ priority: this.getCachePriority(cachePath),
94
+ useCase: this.detectUseCase(cachePath),
95
+ isProjectSpecific: this.isProjectSpecific(cachePath),
96
+ projectPath: this.isProjectSpecific(cachePath)
97
+ ? path_1.default.dirname(cachePath)
98
+ : undefined,
99
+ ageInDays,
100
+ });
101
+ }
102
+ }
103
+ }
104
+ return categories;
105
+ }
106
+ async getNpmCacheSubCategories(npmCachePath) {
107
+ const categories = [];
108
+ try {
109
+ // Check for _cacache (npm's content-addressable cache)
110
+ const cacachePath = path_1.default.join(npmCachePath, "_cacache");
111
+ if ((0, fs_3.existsSync)(cacachePath)) {
112
+ const stat = (0, fs_3.statSync)(cacachePath);
113
+ categories.push({
114
+ id: "npm-cacache",
115
+ name: "NPM Package Cache",
116
+ description: "Cached npm packages (can be safely cleared)",
117
+ paths: [cacachePath],
118
+ size: await this.getDirectorySize(cacachePath),
119
+ lastModified: stat.mtime,
120
+ lastAccessed: stat.atime,
121
+ priority: "low",
122
+ useCase: "development",
123
+ ageInDays: Math.floor((Date.now() - stat.mtime.getTime()) / (1000 * 60 * 60 * 24)),
124
+ });
125
+ }
126
+ // Check for _logs
127
+ const logsPath = path_1.default.join(npmCachePath, "_logs");
128
+ if ((0, fs_3.existsSync)(logsPath)) {
129
+ const stat = (0, fs_3.statSync)(logsPath);
130
+ categories.push({
131
+ id: "npm-logs",
132
+ name: "NPM Debug Logs",
133
+ description: "NPM debug and error logs",
134
+ paths: [logsPath],
135
+ size: await this.getDirectorySize(logsPath),
136
+ lastModified: stat.mtime,
137
+ lastAccessed: stat.atime,
138
+ priority: "low",
139
+ useCase: "development",
140
+ ageInDays: Math.floor((Date.now() - stat.mtime.getTime()) / (1000 * 60 * 60 * 24)),
141
+ });
142
+ }
143
+ // Check for anonymous-cli-metrics
144
+ const metricsPath = path_1.default.join(npmCachePath, "anonymous-cli-metrics.json");
145
+ if ((0, fs_3.existsSync)(metricsPath)) {
146
+ const stat = (0, fs_3.statSync)(metricsPath);
147
+ categories.push({
148
+ id: "npm-metrics",
149
+ name: "NPM Metrics",
150
+ description: "Anonymous CLI usage metrics",
151
+ paths: [metricsPath],
152
+ size: stat.size,
153
+ lastModified: stat.mtime,
154
+ lastAccessed: stat.atime,
155
+ priority: "low",
156
+ useCase: "development",
157
+ ageInDays: Math.floor((Date.now() - stat.mtime.getTime()) / (1000 * 60 * 60 * 24)),
158
+ });
159
+ }
160
+ }
161
+ catch (error) {
162
+ (0, cli_1.printVerbose)(`Error analyzing npm cache subcategories: ${error}`);
163
+ }
164
+ return categories;
165
+ }
166
+ async getBuildToolCaches(cachePath, projectName) {
167
+ const categories = [];
168
+ try {
169
+ const entries = await fs_1.promises.readdir(cachePath);
170
+ for (const entry of entries) {
171
+ const fullPath = path_1.default.join(cachePath, entry);
172
+ const stat = (0, fs_3.statSync)(fullPath);
173
+ let categoryName = "";
174
+ let description = "";
175
+ let priority = "normal";
176
+ let useCase = "development";
177
+ // Identify specific build tool caches
178
+ if (entry.includes("webpack")) {
179
+ categoryName = "Webpack Build Cache";
180
+ description = "Webpack module build cache";
181
+ priority = this.isRecentlyUsed(fullPath, 3) ? "important" : "normal";
182
+ }
183
+ else if (entry.includes("babel")) {
184
+ categoryName = "Babel Transform Cache";
185
+ description = "Babel transpilation cache";
186
+ priority = "normal";
187
+ }
188
+ else if (entry.includes("eslint")) {
189
+ categoryName = "ESLint Cache";
190
+ description = "ESLint analysis cache";
191
+ priority = "low";
192
+ }
193
+ else if (entry.includes("jest")) {
194
+ categoryName = "Jest Test Cache";
195
+ description = "Jest test runner cache";
196
+ useCase = "testing";
197
+ priority = "normal";
198
+ }
199
+ else if (entry.includes("terser")) {
200
+ categoryName = "Terser Minification Cache";
201
+ description = "JavaScript minification cache";
202
+ priority = "low";
203
+ }
204
+ else if (entry.includes("next")) {
205
+ categoryName = "Next.js Build Cache";
206
+ description = "Next.js compilation and optimization cache";
207
+ priority = this.isRecentlyUsed(fullPath, 1)
208
+ ? "critical"
209
+ : "important";
210
+ }
211
+ else if (entry.includes("vite")) {
212
+ categoryName = "Vite Build Cache";
213
+ description = "Vite dev server and build cache";
214
+ priority = this.isRecentlyUsed(fullPath, 1)
215
+ ? "critical"
216
+ : "important";
217
+ }
218
+ else {
219
+ categoryName = `${entry} Cache`;
220
+ description = `Cache for ${entry}`;
221
+ }
222
+ categories.push({
223
+ id: `npm-${projectName}-${entry}`,
224
+ name: `${projectName}: ${categoryName}`,
225
+ description: `${description} for project ${projectName}`,
226
+ paths: [fullPath],
227
+ size: await this.getDirectorySize(fullPath),
228
+ lastModified: stat.mtime,
229
+ lastAccessed: stat.atime,
230
+ priority,
231
+ useCase,
232
+ isProjectSpecific: true,
233
+ projectPath: cachePath.replace("/node_modules/.cache", ""),
234
+ ageInDays: Math.floor((Date.now() - stat.mtime.getTime()) / (1000 * 60 * 60 * 24)),
235
+ });
236
+ }
237
+ }
238
+ catch (error) {
239
+ (0, cli_1.printVerbose)(`Error analyzing build tool caches: ${error}`);
240
+ }
241
+ return categories;
242
+ }
243
+ async getCacheInfo() {
244
+ const categories = await this.getCacheCategories();
245
+ const allPaths = [...new Set(categories.flatMap((c) => c.paths))];
246
+ let totalSize = 0;
247
+ let oldestCache;
248
+ let newestCache;
249
+ for (const category of categories) {
250
+ totalSize += category.size || 0;
251
+ if (category.lastModified) {
252
+ if (!oldestCache || category.lastModified < oldestCache) {
253
+ oldestCache = category.lastModified;
254
+ }
255
+ if (!newestCache || category.lastModified > newestCache) {
256
+ newestCache = category.lastModified;
257
+ }
258
+ }
259
+ }
260
+ return {
261
+ name: this.name,
262
+ type: this.type,
263
+ description: this.description,
264
+ paths: allPaths,
265
+ isInstalled: await this.isAvailable(),
266
+ size: totalSize,
267
+ totalSize,
268
+ categories,
269
+ oldestCache,
270
+ newestCache,
271
+ lastModified: newestCache,
272
+ };
273
+ }
274
+ async clear(dryRun = false, _criteria, cacheInfo, protectedPaths = []) {
275
+ const info = cacheInfo || (await this.getCacheInfo());
276
+ const categories = info.categories || [];
277
+ const filteredCategories = this.filterCategories(categories, _criteria);
278
+ let totalSizeBefore = 0;
279
+ let totalSizeAfter = 0;
280
+ const clearedPaths = [];
281
+ const clearedCategoryIds = [];
282
+ for (const category of filteredCategories) {
283
+ totalSizeBefore += category.size || 0;
284
+ // Filter paths within the category based on protectedPaths
285
+ const pathsToClearInCategory = category.paths.filter((cachePath) => {
286
+ const isProtected = protectedPaths.some((protectedPattern) => (0, minimatch_1.minimatch)(cachePath, protectedPattern, { dot: true }));
287
+ if (isProtected) {
288
+ (0, cli_1.printVerbose)(`Skipping protected path in category ${category.name}: ${cachePath}`);
289
+ }
290
+ return !isProtected;
291
+ });
292
+ if (dryRun) {
293
+ (0, cli_1.printVerbose)(`[DRY RUN] Would clear ${category.name}: ${pathsToClearInCategory.join(", ")}`);
294
+ totalSizeAfter += category.size || 0; // No change in dry run
295
+ }
296
+ else {
297
+ try {
298
+ for (const path of pathsToClearInCategory) {
299
+ // Iterate over filtered paths
300
+ await this.clearPath(path);
301
+ clearedPaths.push(path);
302
+ }
303
+ clearedCategoryIds.push(category.id);
304
+ (0, cli_1.printVerbose)(`Cleared ${category.name}`);
305
+ }
306
+ catch (error) {
307
+ (0, cli_1.printVerbose)(`Failed to clear ${category.name}: ${error}`);
308
+ totalSizeAfter += category.size || 0; // Add back size if failed
309
+ }
310
+ }
311
+ }
312
+ return {
313
+ name: this.name,
314
+ success: true,
315
+ sizeBefore: totalSizeBefore,
316
+ sizeAfter: dryRun ? totalSizeBefore : totalSizeAfter,
317
+ clearedPaths,
318
+ clearedCategories: clearedCategoryIds,
319
+ };
320
+ }
321
+ async clearByCategory(categoryIds, dryRun = false, cacheInfo, protectedPaths = []) {
322
+ // Use the existing clear method, but filter by categoryIds
323
+ const criteria = {
324
+ categories: categoryIds,
325
+ };
326
+ return this.clear(dryRun, criteria, cacheInfo, protectedPaths);
327
+ }
328
+ // Static method to create instance
329
+ static create() {
330
+ return new NpmEnhancedCleaner();
331
+ }
332
+ }
333
+ exports.NpmEnhancedCleaner = NpmEnhancedCleaner;
334
+ // Export default instance
335
+ exports.default = NpmEnhancedCleaner.create();
336
+ //# sourceMappingURL=npmEnhanced.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npmEnhanced.js","sourceRoot":"","sources":["../../src/cleaners/npmEnhanced.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { CacheInfo, CacheSelectionCriteria, ClearResult, CleanerModule } from "../types";
2
+ declare class NugetCleaner implements CleanerModule {
3
+ name: string;
4
+ type: "package-manager";
5
+ description: string;
6
+ private getCachePaths;
7
+ private buildCategories;
8
+ isAvailable(): Promise<boolean>;
9
+ getCacheInfo(): Promise<CacheInfo>;
10
+ private clearCategories;
11
+ clear(dryRun?: boolean, _criteria?: CacheSelectionCriteria, cacheInfo?: CacheInfo, protectedPaths?: string[]): Promise<ClearResult>;
12
+ clearByCategory(categoryIds: string[], dryRun?: boolean, cacheInfo?: CacheInfo, protectedPaths?: string[]): Promise<ClearResult>;
13
+ }
14
+ declare const _default: NugetCleaner;
15
+ export default _default;
16
+ //# sourceMappingURL=nuget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nuget.d.ts","sourceRoot":"","sources":["../../src/cleaners/nuget.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,iBAAiB,CAAU;IAClC,WAAW,SAA+B;IAE1C,OAAO,CAAC,aAAa;YAcP,eAAe;IAoCvB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAc/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"}