squeaky-clean 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +465 -0
  3. package/dist/cleaners/BaseCleaner.d.ts +57 -0
  4. package/dist/cleaners/BaseCleaner.d.ts.map +1 -0
  5. package/dist/cleaners/BaseCleaner.js +299 -0
  6. package/dist/cleaners/BaseCleaner.js.map +1 -0
  7. package/dist/cleaners/CleanerRegistry.d.ts +65 -0
  8. package/dist/cleaners/CleanerRegistry.d.ts.map +1 -0
  9. package/dist/cleaners/CleanerRegistry.js +112 -0
  10. package/dist/cleaners/CleanerRegistry.js.map +1 -0
  11. package/dist/cleaners/androidstudio.d.ts +16 -0
  12. package/dist/cleaners/androidstudio.d.ts.map +1 -0
  13. package/dist/cleaners/androidstudio.js +375 -0
  14. package/dist/cleaners/androidstudio.js.map +1 -0
  15. package/dist/cleaners/brew.d.ts +4 -0
  16. package/dist/cleaners/brew.d.ts.map +1 -0
  17. package/dist/cleaners/brew.js +197 -0
  18. package/dist/cleaners/brew.js.map +1 -0
  19. package/dist/cleaners/brewEnhanced.d.ts +18 -0
  20. package/dist/cleaners/brewEnhanced.d.ts.map +1 -0
  21. package/dist/cleaners/brewEnhanced.js +255 -0
  22. package/dist/cleaners/brewEnhanced.js.map +1 -0
  23. package/dist/cleaners/bun.d.ts +14 -0
  24. package/dist/cleaners/bun.d.ts.map +1 -0
  25. package/dist/cleaners/bun.js +207 -0
  26. package/dist/cleaners/bun.js.map +1 -0
  27. package/dist/cleaners/chrome.d.ts +14 -0
  28. package/dist/cleaners/chrome.d.ts.map +1 -0
  29. package/dist/cleaners/chrome.js +250 -0
  30. package/dist/cleaners/chrome.js.map +1 -0
  31. package/dist/cleaners/docker.d.ts +35 -0
  32. package/dist/cleaners/docker.d.ts.map +1 -0
  33. package/dist/cleaners/docker.js +285 -0
  34. package/dist/cleaners/docker.js.map +1 -0
  35. package/dist/cleaners/firefox.d.ts +15 -0
  36. package/dist/cleaners/firefox.d.ts.map +1 -0
  37. package/dist/cleaners/firefox.js +281 -0
  38. package/dist/cleaners/firefox.js.map +1 -0
  39. package/dist/cleaners/flutter.d.ts +18 -0
  40. package/dist/cleaners/flutter.d.ts.map +1 -0
  41. package/dist/cleaners/flutter.js +354 -0
  42. package/dist/cleaners/flutter.js.map +1 -0
  43. package/dist/cleaners/goBuild.d.ts +18 -0
  44. package/dist/cleaners/goBuild.d.ts.map +1 -0
  45. package/dist/cleaners/goBuild.js +196 -0
  46. package/dist/cleaners/goBuild.js.map +1 -0
  47. package/dist/cleaners/gradle.d.ts +14 -0
  48. package/dist/cleaners/gradle.d.ts.map +1 -0
  49. package/dist/cleaners/gradle.js +336 -0
  50. package/dist/cleaners/gradle.js.map +1 -0
  51. package/dist/cleaners/index.d.ts +51 -0
  52. package/dist/cleaners/index.d.ts.map +1 -0
  53. package/dist/cleaners/index.js +247 -0
  54. package/dist/cleaners/index.js.map +1 -0
  55. package/dist/cleaners/jetbrains.d.ts +18 -0
  56. package/dist/cleaners/jetbrains.d.ts.map +1 -0
  57. package/dist/cleaners/jetbrains.js +441 -0
  58. package/dist/cleaners/jetbrains.js.map +1 -0
  59. package/dist/cleaners/nix.d.ts +4 -0
  60. package/dist/cleaners/nix.d.ts.map +1 -0
  61. package/dist/cleaners/nix.js +227 -0
  62. package/dist/cleaners/nix.js.map +1 -0
  63. package/dist/cleaners/nodeGyp.d.ts +14 -0
  64. package/dist/cleaners/nodeGyp.d.ts.map +1 -0
  65. package/dist/cleaners/nodeGyp.js +157 -0
  66. package/dist/cleaners/nodeGyp.js.map +1 -0
  67. package/dist/cleaners/npm.d.ts +14 -0
  68. package/dist/cleaners/npm.d.ts.map +1 -0
  69. package/dist/cleaners/npm.js +198 -0
  70. package/dist/cleaners/npm.js.map +1 -0
  71. package/dist/cleaners/npmEnhanced.d.ts +19 -0
  72. package/dist/cleaners/npmEnhanced.d.ts.map +1 -0
  73. package/dist/cleaners/npmEnhanced.js +336 -0
  74. package/dist/cleaners/npmEnhanced.js.map +1 -0
  75. package/dist/cleaners/nx.d.ts +18 -0
  76. package/dist/cleaners/nx.d.ts.map +1 -0
  77. package/dist/cleaners/nx.js +308 -0
  78. package/dist/cleaners/nx.js.map +1 -0
  79. package/dist/cleaners/pip.d.ts +19 -0
  80. package/dist/cleaners/pip.d.ts.map +1 -0
  81. package/dist/cleaners/pip.js +334 -0
  82. package/dist/cleaners/pip.js.map +1 -0
  83. package/dist/cleaners/pnpm.d.ts +14 -0
  84. package/dist/cleaners/pnpm.d.ts.map +1 -0
  85. package/dist/cleaners/pnpm.js +209 -0
  86. package/dist/cleaners/pnpm.js.map +1 -0
  87. package/dist/cleaners/turbo.d.ts +18 -0
  88. package/dist/cleaners/turbo.d.ts.map +1 -0
  89. package/dist/cleaners/turbo.js +325 -0
  90. package/dist/cleaners/turbo.js.map +1 -0
  91. package/dist/cleaners/vite.d.ts +17 -0
  92. package/dist/cleaners/vite.d.ts.map +1 -0
  93. package/dist/cleaners/vite.js +274 -0
  94. package/dist/cleaners/vite.js.map +1 -0
  95. package/dist/cleaners/vscode.d.ts +14 -0
  96. package/dist/cleaners/vscode.d.ts.map +1 -0
  97. package/dist/cleaners/vscode.js +354 -0
  98. package/dist/cleaners/vscode.js.map +1 -0
  99. package/dist/cleaners/webpack.d.ts +17 -0
  100. package/dist/cleaners/webpack.d.ts.map +1 -0
  101. package/dist/cleaners/webpack.js +263 -0
  102. package/dist/cleaners/webpack.js.map +1 -0
  103. package/dist/cleaners/xcode.d.ts +14 -0
  104. package/dist/cleaners/xcode.d.ts.map +1 -0
  105. package/dist/cleaners/xcode.js +348 -0
  106. package/dist/cleaners/xcode.js.map +1 -0
  107. package/dist/cleaners/yarn.d.ts +16 -0
  108. package/dist/cleaners/yarn.d.ts.map +1 -0
  109. package/dist/cleaners/yarn.js +266 -0
  110. package/dist/cleaners/yarn.js.map +1 -0
  111. package/dist/cli.d.ts +3 -0
  112. package/dist/cli.d.ts.map +1 -0
  113. package/dist/cli.js +346 -0
  114. package/dist/cli.js.map +1 -0
  115. package/dist/commands/auto.d.ts +8 -0
  116. package/dist/commands/auto.d.ts.map +1 -0
  117. package/dist/commands/auto.js +224 -0
  118. package/dist/commands/auto.js.map +1 -0
  119. package/dist/commands/categories.d.ts +8 -0
  120. package/dist/commands/categories.d.ts.map +1 -0
  121. package/dist/commands/categories.js +133 -0
  122. package/dist/commands/categories.js.map +1 -0
  123. package/dist/commands/clean.d.ts +3 -0
  124. package/dist/commands/clean.d.ts.map +1 -0
  125. package/dist/commands/clean.js +149 -0
  126. package/dist/commands/clean.js.map +1 -0
  127. package/dist/commands/config.d.ts +14 -0
  128. package/dist/commands/config.d.ts.map +1 -0
  129. package/dist/commands/config.js +445 -0
  130. package/dist/commands/config.js.map +1 -0
  131. package/dist/commands/configDoctor.d.ts +26 -0
  132. package/dist/commands/configDoctor.d.ts.map +1 -0
  133. package/dist/commands/configDoctor.js +60 -0
  134. package/dist/commands/configDoctor.js.map +1 -0
  135. package/dist/commands/doctor.d.ts +2 -0
  136. package/dist/commands/doctor.d.ts.map +1 -0
  137. package/dist/commands/doctor.js +141 -0
  138. package/dist/commands/doctor.js.map +1 -0
  139. package/dist/commands/emojis.d.ts +2 -0
  140. package/dist/commands/emojis.d.ts.map +1 -0
  141. package/dist/commands/emojis.js +28 -0
  142. package/dist/commands/emojis.js.map +1 -0
  143. package/dist/commands/interactive.d.ts +3 -0
  144. package/dist/commands/interactive.d.ts.map +1 -0
  145. package/dist/commands/interactive.js +284 -0
  146. package/dist/commands/interactive.js.map +1 -0
  147. package/dist/commands/interactiveEnhanced.d.ts +4 -0
  148. package/dist/commands/interactiveEnhanced.d.ts.map +1 -0
  149. package/dist/commands/interactiveEnhanced.js +460 -0
  150. package/dist/commands/interactiveEnhanced.js.map +1 -0
  151. package/dist/commands/list.d.ts +2 -0
  152. package/dist/commands/list.d.ts.map +1 -0
  153. package/dist/commands/list.js +68 -0
  154. package/dist/commands/list.js.map +1 -0
  155. package/dist/commands/sizes.d.ts +2 -0
  156. package/dist/commands/sizes.d.ts.map +1 -0
  157. package/dist/commands/sizes.js +87 -0
  158. package/dist/commands/sizes.js.map +1 -0
  159. package/dist/config/index.d.ts +26 -0
  160. package/dist/config/index.d.ts.map +1 -0
  161. package/dist/config/index.js +228 -0
  162. package/dist/config/index.js.map +1 -0
  163. package/dist/config/loadConfig.d.ts +7 -0
  164. package/dist/config/loadConfig.d.ts.map +1 -0
  165. package/dist/config/loadConfig.js +103 -0
  166. package/dist/config/loadConfig.js.map +1 -0
  167. package/dist/config/migrateConfig.d.ts +56 -0
  168. package/dist/config/migrateConfig.d.ts.map +1 -0
  169. package/dist/config/migrateConfig.js +102 -0
  170. package/dist/config/migrateConfig.js.map +1 -0
  171. package/dist/plugins/discovery.d.ts +6 -0
  172. package/dist/plugins/discovery.d.ts.map +1 -0
  173. package/dist/plugins/discovery.js +64 -0
  174. package/dist/plugins/discovery.js.map +1 -0
  175. package/dist/profiles/index.d.ts +61 -0
  176. package/dist/profiles/index.d.ts.map +1 -0
  177. package/dist/profiles/index.js +361 -0
  178. package/dist/profiles/index.js.map +1 -0
  179. package/dist/types/index.d.ts +161 -0
  180. package/dist/types/index.d.ts.map +1 -0
  181. package/dist/types/index.js +3 -0
  182. package/dist/types/index.js.map +1 -0
  183. package/dist/utils/cli.d.ts +44 -0
  184. package/dist/utils/cli.d.ts.map +1 -0
  185. package/dist/utils/cli.js +407 -0
  186. package/dist/utils/cli.js.map +1 -0
  187. package/dist/utils/fs.d.ts +15 -0
  188. package/dist/utils/fs.d.ts.map +1 -0
  189. package/dist/utils/fs.js +218 -0
  190. package/dist/utils/fs.js.map +1 -0
  191. package/package.json +122 -0
@@ -0,0 +1,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,18 @@
1
+ import { CleanerModule, CacheInfo, ClearResult, CacheSelectionCriteria } from "../types";
2
+ export declare class NxCleaner implements CleanerModule {
3
+ name: string;
4
+ type: "build-tool";
5
+ description: string;
6
+ private getNxVersion;
7
+ private findNxCaches;
8
+ private findNxCachesRecursively;
9
+ private hasNxWorkspaces;
10
+ private searchForNxWorkspaces;
11
+ private isNxProject;
12
+ isAvailable(): Promise<boolean>;
13
+ getCacheInfo(): Promise<CacheInfo>;
14
+ clear(dryRun?: boolean, _criteria?: CacheSelectionCriteria, cacheInfo?: CacheInfo): Promise<ClearResult>;
15
+ }
16
+ declare const _default: NxCleaner;
17
+ export default _default;
18
+ //# sourceMappingURL=nx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nx.d.ts","sourceRoot":"","sources":["../../src/cleaners/nx.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,EACX,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAQlB,qBAAa,SAAU,YAAW,aAAa;IAC7C,IAAI,SAAQ;IACZ,IAAI,EAAG,YAAY,CAAU;IAC7B,WAAW,SAAmC;YAEhC,YAAY;YAcZ,YAAY;YAsCZ,uBAAuB;YAwDvB,eAAe;YA8Bf,qBAAqB;YAsCrB,WAAW;IAkBnB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IA4BlC,KAAK,CACT,MAAM,UAAQ,EACd,SAAS,CAAC,EAAE,sBAAsB,EAClC,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,WAAW,CAAC;CA4DxB;;AAED,wBAA+B"}