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.
- package/package.json +23 -25
- package/dist/cleaners/BaseCleaner.d.ts +0 -57
- package/dist/cleaners/BaseCleaner.d.ts.map +0 -1
- package/dist/cleaners/BaseCleaner.js +0 -299
- package/dist/cleaners/BaseCleaner.js.map +0 -1
- package/dist/cleaners/CleanerRegistry.d.ts +0 -65
- package/dist/cleaners/CleanerRegistry.d.ts.map +0 -1
- package/dist/cleaners/CleanerRegistry.js +0 -112
- package/dist/cleaners/CleanerRegistry.js.map +0 -1
- package/dist/cleaners/androidstudio.d.ts +0 -16
- package/dist/cleaners/androidstudio.d.ts.map +0 -1
- package/dist/cleaners/androidstudio.js +0 -375
- package/dist/cleaners/androidstudio.js.map +0 -1
- package/dist/cleaners/brew.d.ts +0 -4
- package/dist/cleaners/brew.d.ts.map +0 -1
- package/dist/cleaners/brew.js +0 -197
- package/dist/cleaners/brew.js.map +0 -1
- package/dist/cleaners/brewEnhanced.d.ts +0 -18
- package/dist/cleaners/brewEnhanced.d.ts.map +0 -1
- package/dist/cleaners/brewEnhanced.js +0 -255
- package/dist/cleaners/brewEnhanced.js.map +0 -1
- package/dist/cleaners/bun.d.ts +0 -14
- package/dist/cleaners/bun.d.ts.map +0 -1
- package/dist/cleaners/bun.js +0 -207
- package/dist/cleaners/bun.js.map +0 -1
- package/dist/cleaners/cargo.d.ts +0 -15
- package/dist/cleaners/cargo.d.ts.map +0 -1
- package/dist/cleaners/cargo.js +0 -193
- package/dist/cleaners/cargo.js.map +0 -1
- package/dist/cleaners/chrome.d.ts +0 -14
- package/dist/cleaners/chrome.d.ts.map +0 -1
- package/dist/cleaners/chrome.js +0 -250
- package/dist/cleaners/chrome.js.map +0 -1
- package/dist/cleaners/cocoapods.d.ts +0 -16
- package/dist/cleaners/cocoapods.d.ts.map +0 -1
- package/dist/cleaners/cocoapods.js +0 -180
- package/dist/cleaners/cocoapods.js.map +0 -1
- package/dist/cleaners/cursor.d.ts +0 -15
- package/dist/cleaners/cursor.d.ts.map +0 -1
- package/dist/cleaners/cursor.js +0 -377
- package/dist/cleaners/cursor.js.map +0 -1
- package/dist/cleaners/docker.d.ts +0 -35
- package/dist/cleaners/docker.d.ts.map +0 -1
- package/dist/cleaners/docker.js +0 -285
- package/dist/cleaners/docker.js.map +0 -1
- package/dist/cleaners/firefox.d.ts +0 -15
- package/dist/cleaners/firefox.d.ts.map +0 -1
- package/dist/cleaners/firefox.js +0 -281
- package/dist/cleaners/firefox.js.map +0 -1
- package/dist/cleaners/flutter.d.ts +0 -18
- package/dist/cleaners/flutter.d.ts.map +0 -1
- package/dist/cleaners/flutter.js +0 -354
- package/dist/cleaners/flutter.js.map +0 -1
- package/dist/cleaners/goBuild.d.ts +0 -18
- package/dist/cleaners/goBuild.d.ts.map +0 -1
- package/dist/cleaners/goBuild.js +0 -196
- package/dist/cleaners/goBuild.js.map +0 -1
- package/dist/cleaners/gradle.d.ts +0 -14
- package/dist/cleaners/gradle.d.ts.map +0 -1
- package/dist/cleaners/gradle.js +0 -336
- package/dist/cleaners/gradle.js.map +0 -1
- package/dist/cleaners/index.d.ts +0 -51
- package/dist/cleaners/index.d.ts.map +0 -1
- package/dist/cleaners/index.js +0 -271
- package/dist/cleaners/index.js.map +0 -1
- package/dist/cleaners/jetbrains.d.ts +0 -18
- package/dist/cleaners/jetbrains.d.ts.map +0 -1
- package/dist/cleaners/jetbrains.js +0 -441
- package/dist/cleaners/jetbrains.js.map +0 -1
- package/dist/cleaners/maven.d.ts +0 -15
- package/dist/cleaners/maven.d.ts.map +0 -1
- package/dist/cleaners/maven.js +0 -182
- package/dist/cleaners/maven.js.map +0 -1
- package/dist/cleaners/nix.d.ts +0 -4
- package/dist/cleaners/nix.d.ts.map +0 -1
- package/dist/cleaners/nix.js +0 -227
- package/dist/cleaners/nix.js.map +0 -1
- package/dist/cleaners/nodeGyp.d.ts +0 -14
- package/dist/cleaners/nodeGyp.d.ts.map +0 -1
- package/dist/cleaners/nodeGyp.js +0 -157
- package/dist/cleaners/nodeGyp.js.map +0 -1
- package/dist/cleaners/npm.d.ts +0 -14
- package/dist/cleaners/npm.d.ts.map +0 -1
- package/dist/cleaners/npm.js +0 -198
- package/dist/cleaners/npm.js.map +0 -1
- package/dist/cleaners/npmEnhanced.d.ts +0 -19
- package/dist/cleaners/npmEnhanced.d.ts.map +0 -1
- package/dist/cleaners/npmEnhanced.js +0 -336
- package/dist/cleaners/npmEnhanced.js.map +0 -1
- package/dist/cleaners/nuget.d.ts +0 -16
- package/dist/cleaners/nuget.d.ts.map +0 -1
- package/dist/cleaners/nuget.js +0 -197
- package/dist/cleaners/nuget.js.map +0 -1
- package/dist/cleaners/nx.d.ts +0 -18
- package/dist/cleaners/nx.d.ts.map +0 -1
- package/dist/cleaners/nx.js +0 -308
- package/dist/cleaners/nx.js.map +0 -1
- package/dist/cleaners/pip.d.ts +0 -19
- package/dist/cleaners/pip.d.ts.map +0 -1
- package/dist/cleaners/pip.js +0 -334
- package/dist/cleaners/pip.js.map +0 -1
- package/dist/cleaners/pipenv.d.ts +0 -16
- package/dist/cleaners/pipenv.d.ts.map +0 -1
- package/dist/cleaners/pipenv.js +0 -184
- package/dist/cleaners/pipenv.js.map +0 -1
- package/dist/cleaners/playwright.d.ts +0 -15
- package/dist/cleaners/playwright.d.ts.map +0 -1
- package/dist/cleaners/playwright.js +0 -221
- package/dist/cleaners/playwright.js.map +0 -1
- package/dist/cleaners/pnpm.d.ts +0 -14
- package/dist/cleaners/pnpm.d.ts.map +0 -1
- package/dist/cleaners/pnpm.js +0 -209
- package/dist/cleaners/pnpm.js.map +0 -1
- package/dist/cleaners/poetry.d.ts +0 -16
- package/dist/cleaners/poetry.d.ts.map +0 -1
- package/dist/cleaners/poetry.js +0 -184
- package/dist/cleaners/poetry.js.map +0 -1
- package/dist/cleaners/swiftpm.d.ts +0 -16
- package/dist/cleaners/swiftpm.d.ts.map +0 -1
- package/dist/cleaners/swiftpm.js +0 -179
- package/dist/cleaners/swiftpm.js.map +0 -1
- package/dist/cleaners/turbo.d.ts +0 -18
- package/dist/cleaners/turbo.d.ts.map +0 -1
- package/dist/cleaners/turbo.js +0 -325
- package/dist/cleaners/turbo.js.map +0 -1
- package/dist/cleaners/universalBinary.d.ts +0 -20
- package/dist/cleaners/universalBinary.d.ts.map +0 -1
- package/dist/cleaners/universalBinary.js +0 -318
- package/dist/cleaners/universalBinary.js.map +0 -1
- package/dist/cleaners/vite.d.ts +0 -17
- package/dist/cleaners/vite.d.ts.map +0 -1
- package/dist/cleaners/vite.js +0 -274
- package/dist/cleaners/vite.js.map +0 -1
- package/dist/cleaners/vscode.d.ts +0 -15
- package/dist/cleaners/vscode.d.ts.map +0 -1
- package/dist/cleaners/vscode.js +0 -411
- package/dist/cleaners/vscode.js.map +0 -1
- package/dist/cleaners/webpack.d.ts +0 -17
- package/dist/cleaners/webpack.d.ts.map +0 -1
- package/dist/cleaners/webpack.js +0 -263
- package/dist/cleaners/webpack.js.map +0 -1
- package/dist/cleaners/windsurf.d.ts +0 -15
- package/dist/cleaners/windsurf.d.ts.map +0 -1
- package/dist/cleaners/windsurf.js +0 -366
- package/dist/cleaners/windsurf.js.map +0 -1
- package/dist/cleaners/xcode.d.ts +0 -14
- package/dist/cleaners/xcode.d.ts.map +0 -1
- package/dist/cleaners/xcode.js +0 -348
- package/dist/cleaners/xcode.js.map +0 -1
- package/dist/cleaners/yarn.d.ts +0 -16
- package/dist/cleaners/yarn.d.ts.map +0 -1
- package/dist/cleaners/yarn.js +0 -266
- package/dist/cleaners/yarn.js.map +0 -1
- package/dist/cleaners/zed.d.ts +0 -15
- package/dist/cleaners/zed.d.ts.map +0 -1
- package/dist/cleaners/zed.js +0 -383
- package/dist/cleaners/zed.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -367
- package/dist/cli.js.map +0 -1
- package/dist/commands/auto.d.ts +0 -8
- package/dist/commands/auto.d.ts.map +0 -1
- package/dist/commands/auto.js +0 -251
- package/dist/commands/auto.js.map +0 -1
- package/dist/commands/categories.d.ts +0 -8
- package/dist/commands/categories.d.ts.map +0 -1
- package/dist/commands/categories.js +0 -133
- package/dist/commands/categories.js.map +0 -1
- package/dist/commands/clean.d.ts +0 -3
- package/dist/commands/clean.d.ts.map +0 -1
- package/dist/commands/clean.js +0 -149
- package/dist/commands/clean.js.map +0 -1
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -460
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/configDoctor.d.ts +0 -26
- package/dist/commands/configDoctor.d.ts.map +0 -1
- package/dist/commands/configDoctor.js +0 -60
- package/dist/commands/configDoctor.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -2
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js +0 -141
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/emojis.d.ts +0 -2
- package/dist/commands/emojis.d.ts.map +0 -1
- package/dist/commands/emojis.js +0 -28
- package/dist/commands/emojis.js.map +0 -1
- package/dist/commands/interactive.d.ts +0 -3
- package/dist/commands/interactive.d.ts.map +0 -1
- package/dist/commands/interactive.js +0 -284
- package/dist/commands/interactive.js.map +0 -1
- package/dist/commands/interactiveEnhanced.d.ts +0 -4
- package/dist/commands/interactiveEnhanced.d.ts.map +0 -1
- package/dist/commands/interactiveEnhanced.js +0 -460
- package/dist/commands/interactiveEnhanced.js.map +0 -1
- package/dist/commands/list.d.ts +0 -2
- package/dist/commands/list.d.ts.map +0 -1
- package/dist/commands/list.js +0 -68
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/sizes.d.ts +0 -2
- package/dist/commands/sizes.d.ts.map +0 -1
- package/dist/commands/sizes.js +0 -87
- package/dist/commands/sizes.js.map +0 -1
- package/dist/commands/ub.d.ts +0 -10
- package/dist/commands/ub.d.ts.map +0 -1
- package/dist/commands/ub.js +0 -170
- package/dist/commands/ub.js.map +0 -1
- package/dist/config/index.d.ts +0 -31
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -270
- package/dist/config/index.js.map +0 -1
- package/dist/config/loadConfig.d.ts +0 -7
- package/dist/config/loadConfig.d.ts.map +0 -1
- package/dist/config/loadConfig.js +0 -103
- package/dist/config/loadConfig.js.map +0 -1
- package/dist/config/migrateConfig.d.ts +0 -56
- package/dist/config/migrateConfig.d.ts.map +0 -1
- package/dist/config/migrateConfig.js +0 -102
- package/dist/config/migrateConfig.js.map +0 -1
- package/dist/plugins/discovery.d.ts +0 -6
- package/dist/plugins/discovery.d.ts.map +0 -1
- package/dist/plugins/discovery.js +0 -64
- package/dist/plugins/discovery.js.map +0 -1
- package/dist/profiles/index.d.ts +0 -61
- package/dist/profiles/index.d.ts.map +0 -1
- package/dist/profiles/index.js +0 -406
- package/dist/profiles/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -176
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/utils/cli.d.ts +0 -46
- package/dist/utils/cli.d.ts.map +0 -1
- package/dist/utils/cli.js +0 -412
- package/dist/utils/cli.js.map +0 -1
- package/dist/utils/fs.d.ts +0 -15
- package/dist/utils/fs.d.ts.map +0 -1
- package/dist/utils/fs.js +0 -218
- package/dist/utils/fs.js.map +0 -1
package/dist/cleaners/yarn.js
DELETED
|
@@ -1,266 +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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const fs_1 = require("fs");
|
|
40
|
-
const path = __importStar(require("path"));
|
|
41
|
-
const os = __importStar(require("os"));
|
|
42
|
-
const fs_2 = require("../utils/fs");
|
|
43
|
-
const execa_1 = __importDefault(require("execa"));
|
|
44
|
-
const cli_1 = require("../utils/cli");
|
|
45
|
-
class YarnCleaner {
|
|
46
|
-
constructor() {
|
|
47
|
-
this.name = "yarn";
|
|
48
|
-
this.type = "package-manager";
|
|
49
|
-
this.description = "Yarn package manager caches and global store";
|
|
50
|
-
}
|
|
51
|
-
async getYarnVersion() {
|
|
52
|
-
try {
|
|
53
|
-
const result = await (0, execa_1.default)("yarn", ["--version"]);
|
|
54
|
-
return result.stdout.trim();
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
async getYarnCachePaths() {
|
|
61
|
-
const paths = [];
|
|
62
|
-
try {
|
|
63
|
-
// Get yarn cache directory
|
|
64
|
-
const cacheResult = await (0, execa_1.default)("yarn", ["cache", "dir"]);
|
|
65
|
-
const cacheDir = cacheResult.stdout.trim();
|
|
66
|
-
if (await (0, fs_2.pathExists)(cacheDir)) {
|
|
67
|
-
paths.push(cacheDir);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
// Fallback to default yarn cache locations
|
|
72
|
-
const homeDir = os.homedir();
|
|
73
|
-
const defaultPaths = [
|
|
74
|
-
path.join(homeDir, ".yarn", "cache"),
|
|
75
|
-
path.join(homeDir, ".cache", "yarn"),
|
|
76
|
-
path.join(homeDir, "Library", "Caches", "Yarn"), // macOS
|
|
77
|
-
];
|
|
78
|
-
for (const cachePath of defaultPaths) {
|
|
79
|
-
if (await (0, fs_2.pathExists)(cachePath)) {
|
|
80
|
-
paths.push(cachePath);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
// Look for project-specific yarn caches
|
|
85
|
-
try {
|
|
86
|
-
// Yarn v2+ .yarn/cache directories in projects
|
|
87
|
-
const projectCaches = await this.findProjectYarnCaches();
|
|
88
|
-
paths.push(...projectCaches);
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
(0, cli_1.printVerbose)(`Error finding project yarn caches: ${error}`);
|
|
92
|
-
}
|
|
93
|
-
return [...new Set(paths)]; // Remove duplicates
|
|
94
|
-
}
|
|
95
|
-
async findProjectYarnCaches() {
|
|
96
|
-
const projectCaches = [];
|
|
97
|
-
const homeDir = os.homedir();
|
|
98
|
-
// Only search current directory and immediate common dev dirs to avoid performance issues
|
|
99
|
-
const searchDirs = [
|
|
100
|
-
process.cwd(), // Current directory
|
|
101
|
-
path.join(homeDir, "Projects"), // Only if it exists and isn't huge
|
|
102
|
-
path.join(homeDir, "Development"),
|
|
103
|
-
path.join(homeDir, "dev"),
|
|
104
|
-
];
|
|
105
|
-
// Add timeout to prevent hanging
|
|
106
|
-
const searchTimeout = 5000; // 5 seconds max for project search
|
|
107
|
-
const startTime = Date.now();
|
|
108
|
-
for (const searchDir of searchDirs) {
|
|
109
|
-
// Check timeout before each directory
|
|
110
|
-
if (Date.now() - startTime > searchTimeout) {
|
|
111
|
-
(0, cli_1.printVerbose)("Project cache search timed out, skipping remaining directories");
|
|
112
|
-
break;
|
|
113
|
-
}
|
|
114
|
-
if (await (0, fs_2.pathExists)(searchDir)) {
|
|
115
|
-
try {
|
|
116
|
-
// Only search 1 level deep to avoid performance issues
|
|
117
|
-
const projects = await this.findYarnProjectsRecursively(searchDir, 1, startTime, searchTimeout);
|
|
118
|
-
projectCaches.push(...projects);
|
|
119
|
-
// Limit total project caches found to prevent excessive scanning
|
|
120
|
-
if (projectCaches.length > 50) {
|
|
121
|
-
(0, cli_1.printVerbose)("Found many project caches, limiting search to prevent performance issues");
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
(0, cli_1.printVerbose)(`Error searching ${searchDir}: ${error}`);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return projectCaches;
|
|
131
|
-
}
|
|
132
|
-
async findYarnProjectsRecursively(dir, maxDepth, startTime = Date.now(), timeout = 5000) {
|
|
133
|
-
if (maxDepth <= 0)
|
|
134
|
-
return [];
|
|
135
|
-
// Check timeout
|
|
136
|
-
if (Date.now() - startTime > timeout) {
|
|
137
|
-
(0, cli_1.printVerbose)(`Yarn project search timed out at ${dir}`);
|
|
138
|
-
return [];
|
|
139
|
-
}
|
|
140
|
-
const yarnCaches = [];
|
|
141
|
-
try {
|
|
142
|
-
const entries = await fs_1.promises.readdir(dir, { withFileTypes: true });
|
|
143
|
-
// Limit number of entries to check to prevent excessive scanning
|
|
144
|
-
const limitedEntries = entries.slice(0, 100); // Only check first 100 entries
|
|
145
|
-
for (const entry of limitedEntries) {
|
|
146
|
-
// Check timeout during iteration
|
|
147
|
-
if (Date.now() - startTime > timeout) {
|
|
148
|
-
(0, cli_1.printVerbose)(`Yarn project search timed out during scan of ${dir}`);
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
if (entry.isDirectory() &&
|
|
152
|
-
!entry.name.startsWith(".") &&
|
|
153
|
-
entry.name !== "node_modules") {
|
|
154
|
-
const fullPath = path.join(dir, entry.name);
|
|
155
|
-
// Check for .yarn/cache directory (Yarn v2+)
|
|
156
|
-
const yarnCacheDir = path.join(fullPath, ".yarn", "cache");
|
|
157
|
-
if (await (0, fs_2.pathExists)(yarnCacheDir)) {
|
|
158
|
-
yarnCaches.push(yarnCacheDir);
|
|
159
|
-
}
|
|
160
|
-
// Recursively search subdirectories only if we have time
|
|
161
|
-
if (Date.now() - startTime < timeout) {
|
|
162
|
-
const subCaches = await this.findYarnProjectsRecursively(fullPath, maxDepth - 1, startTime, timeout);
|
|
163
|
-
yarnCaches.push(...subCaches);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
catch {
|
|
169
|
-
// Ignore permission errors or other issues
|
|
170
|
-
}
|
|
171
|
-
return yarnCaches;
|
|
172
|
-
}
|
|
173
|
-
async isAvailable() {
|
|
174
|
-
const version = await this.getYarnVersion();
|
|
175
|
-
return version !== null;
|
|
176
|
-
}
|
|
177
|
-
async getCacheInfo() {
|
|
178
|
-
const isInstalled = await this.isAvailable();
|
|
179
|
-
if (!isInstalled) {
|
|
180
|
-
return {
|
|
181
|
-
name: this.name,
|
|
182
|
-
type: this.type,
|
|
183
|
-
description: this.description,
|
|
184
|
-
paths: [],
|
|
185
|
-
isInstalled: false,
|
|
186
|
-
size: 0,
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
const cachePaths = await this.getYarnCachePaths();
|
|
190
|
-
let totalSize = 0;
|
|
191
|
-
const validPaths = [];
|
|
192
|
-
for (const cachePath of cachePaths) {
|
|
193
|
-
try {
|
|
194
|
-
const size = await (0, fs_2.getDirectorySize)(cachePath);
|
|
195
|
-
totalSize += size;
|
|
196
|
-
validPaths.push(cachePath);
|
|
197
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.folder} ${cachePath}: ${(size / (1024 * 1024)).toFixed(1)} MB`);
|
|
198
|
-
}
|
|
199
|
-
catch (error) {
|
|
200
|
-
(0, cli_1.printVerbose)(`Error calculating size for ${cachePath}: ${error}`);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
return {
|
|
204
|
-
name: this.name,
|
|
205
|
-
type: this.type,
|
|
206
|
-
description: this.description,
|
|
207
|
-
paths: validPaths,
|
|
208
|
-
isInstalled: true,
|
|
209
|
-
size: totalSize,
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
async clear(dryRun = false, _criteria, cacheInfo) {
|
|
213
|
-
const info = cacheInfo || (await this.getCacheInfo());
|
|
214
|
-
if (!info.isInstalled) {
|
|
215
|
-
return {
|
|
216
|
-
name: this.name,
|
|
217
|
-
success: false,
|
|
218
|
-
error: "Yarn is not installed",
|
|
219
|
-
clearedPaths: [],
|
|
220
|
-
sizeBefore: 0,
|
|
221
|
-
sizeAfter: 0,
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
const sizeBefore = info.size || 0;
|
|
225
|
-
const clearedPaths = [];
|
|
226
|
-
let errors = [];
|
|
227
|
-
for (const cachePath of info.paths) {
|
|
228
|
-
try {
|
|
229
|
-
if (dryRun) {
|
|
230
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Would clear: ${cachePath}`);
|
|
231
|
-
clearedPaths.push(cachePath);
|
|
232
|
-
}
|
|
233
|
-
else {
|
|
234
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Clearing: ${cachePath}`);
|
|
235
|
-
await (0, fs_2.safeRmrf)(cachePath);
|
|
236
|
-
clearedPaths.push(cachePath);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
catch (error) {
|
|
240
|
-
const errorMsg = `Failed to clear ${cachePath}: ${error}`;
|
|
241
|
-
errors.push(errorMsg);
|
|
242
|
-
(0, cli_1.printVerbose)(errorMsg);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
// Try to clear yarn cache using yarn command as well
|
|
246
|
-
if (!dryRun && (await this.isAvailable())) {
|
|
247
|
-
try {
|
|
248
|
-
await (0, execa_1.default)("yarn", ["cache", "clean"]);
|
|
249
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Executed: yarn cache clean`);
|
|
250
|
-
}
|
|
251
|
-
catch (error) {
|
|
252
|
-
(0, cli_1.printVerbose)(`Note: yarn cache clean failed: ${error}`);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
return {
|
|
256
|
-
name: this.name,
|
|
257
|
-
success: errors.length === 0,
|
|
258
|
-
sizeBefore,
|
|
259
|
-
sizeAfter: 0, // Set to 0 as we don't want to rescan
|
|
260
|
-
error: errors.length > 0 ? errors.join("; ") : undefined,
|
|
261
|
-
clearedPaths,
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
exports.default = new YarnCleaner();
|
|
266
|
-
//# sourceMappingURL=yarn.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"yarn.js","sourceRoot":"","sources":["../../src/cleaners/yarn.ts"],"names":[],"mappings":"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"}
|
package/dist/cleaners/zed.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { CacheInfo, ClearResult, CleanerModule, CacheCategory, CacheSelectionCriteria } from "../types";
|
|
2
|
-
export declare class ZedCleaner implements CleanerModule {
|
|
3
|
-
name: string;
|
|
4
|
-
type: "ide";
|
|
5
|
-
description: string;
|
|
6
|
-
private getCachePaths;
|
|
7
|
-
isAvailable(): Promise<boolean>;
|
|
8
|
-
getCacheInfo(): Promise<CacheInfo>;
|
|
9
|
-
getCacheCategories(): Promise<CacheCategory[]>;
|
|
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: ZedCleaner;
|
|
14
|
-
export default _default;
|
|
15
|
-
//# sourceMappingURL=zed.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zed.d.ts","sourceRoot":"","sources":["../../src/cleaners/zed.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,WAAW,EACX,aAAa,EACb,aAAa,EACb,sBAAsB,EACvB,MAAM,UAAU,CAAC;AASlB,qBAAa,UAAW,YAAW,aAAa;IAC9C,IAAI,SAAS;IACb,IAAI,EAAG,KAAK,CAAU;IACtB,WAAW,SACgE;IAE3E,OAAO,CAAC,aAAa;IAwNf,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAiC/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IA0BlC,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAuC9C,KAAK,CACT,MAAM,UAAQ,EACd,SAAS,CAAC,EAAE,sBAAsB,EAClC,UAAU,CAAC,EAAE,SAAS,EACtB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,WAAW,CAAC;IAkDjB,eAAe,CACnB,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,UAAQ,EACd,UAAU,CAAC,EAAE,SAAS,EACtB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,WAAW,CAAC;CA2CxB;;AAED,wBAAgC"}
|
package/dist/cleaners/zed.js
DELETED
|
@@ -1,383 +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
|
-
exports.ZedCleaner = void 0;
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const os_1 = __importDefault(require("os"));
|
|
10
|
-
const fs_2 = require("../utils/fs");
|
|
11
|
-
const cli_1 = require("../utils/cli");
|
|
12
|
-
class ZedCleaner {
|
|
13
|
-
constructor() {
|
|
14
|
-
this.name = "zed";
|
|
15
|
-
this.type = "ide";
|
|
16
|
-
this.description = "Zed editor caches, logs, language servers, and AI conversation history";
|
|
17
|
-
}
|
|
18
|
-
getCachePaths() {
|
|
19
|
-
const homeDir = os_1.default.homedir();
|
|
20
|
-
const platform = process.platform;
|
|
21
|
-
const paths = [];
|
|
22
|
-
if (platform === "darwin") {
|
|
23
|
-
// macOS Zed paths
|
|
24
|
-
const zedAppSupport = path_1.default.join(homeDir, "Library", "Application Support", "Zed");
|
|
25
|
-
const zedCache = path_1.default.join(homeDir, "Library", "Caches", "dev.zed.Zed");
|
|
26
|
-
const zedLogs = path_1.default.join(homeDir, "Library", "Logs", "Zed");
|
|
27
|
-
paths.push(
|
|
28
|
-
// Cache directories
|
|
29
|
-
{
|
|
30
|
-
path: zedCache,
|
|
31
|
-
description: "Zed application cache",
|
|
32
|
-
category: "cache",
|
|
33
|
-
priority: "low",
|
|
34
|
-
safeToDelete: true,
|
|
35
|
-
},
|
|
36
|
-
// Logs
|
|
37
|
-
{
|
|
38
|
-
path: zedLogs,
|
|
39
|
-
description: "Zed application logs",
|
|
40
|
-
category: "logs",
|
|
41
|
-
priority: "low",
|
|
42
|
-
safeToDelete: true,
|
|
43
|
-
}, {
|
|
44
|
-
path: path_1.default.join(zedAppSupport, "logs"),
|
|
45
|
-
description: "Zed runtime logs",
|
|
46
|
-
category: "logs",
|
|
47
|
-
priority: "low",
|
|
48
|
-
safeToDelete: true,
|
|
49
|
-
},
|
|
50
|
-
// Language servers (can be large)
|
|
51
|
-
{
|
|
52
|
-
path: path_1.default.join(zedAppSupport, "languages"),
|
|
53
|
-
description: "Zed language server binaries",
|
|
54
|
-
category: "language-servers",
|
|
55
|
-
priority: "normal",
|
|
56
|
-
safeToDelete: true,
|
|
57
|
-
},
|
|
58
|
-
// Extension cache
|
|
59
|
-
{
|
|
60
|
-
path: path_1.default.join(zedAppSupport, "extensions"),
|
|
61
|
-
description: "Zed extension cache",
|
|
62
|
-
category: "extensions",
|
|
63
|
-
priority: "normal",
|
|
64
|
-
safeToDelete: true,
|
|
65
|
-
},
|
|
66
|
-
// Copilot/AI cache
|
|
67
|
-
{
|
|
68
|
-
path: path_1.default.join(zedAppSupport, "copilot"),
|
|
69
|
-
description: "GitHub Copilot cache",
|
|
70
|
-
category: "ai-cache",
|
|
71
|
-
priority: "normal",
|
|
72
|
-
safeToDelete: true,
|
|
73
|
-
},
|
|
74
|
-
// Node modules for extensions
|
|
75
|
-
{
|
|
76
|
-
path: path_1.default.join(zedAppSupport, "node"),
|
|
77
|
-
description: "Node.js runtime for extensions",
|
|
78
|
-
category: "runtime",
|
|
79
|
-
priority: "normal",
|
|
80
|
-
safeToDelete: true,
|
|
81
|
-
},
|
|
82
|
-
// Database/index files
|
|
83
|
-
{
|
|
84
|
-
path: path_1.default.join(zedAppSupport, "db"),
|
|
85
|
-
description: "Zed database and indexes",
|
|
86
|
-
category: "database",
|
|
87
|
-
priority: "important",
|
|
88
|
-
safeToDelete: false, // Contains workspace state
|
|
89
|
-
},
|
|
90
|
-
// AI conversations (user may want to keep)
|
|
91
|
-
{
|
|
92
|
-
path: path_1.default.join(zedAppSupport, "conversations"),
|
|
93
|
-
description: "AI conversation history",
|
|
94
|
-
category: "ai-history",
|
|
95
|
-
priority: "important",
|
|
96
|
-
safeToDelete: false, // User data
|
|
97
|
-
},
|
|
98
|
-
// Prettier cache
|
|
99
|
-
{
|
|
100
|
-
path: path_1.default.join(zedAppSupport, "prettier"),
|
|
101
|
-
description: "Prettier formatter cache",
|
|
102
|
-
category: "formatters",
|
|
103
|
-
priority: "low",
|
|
104
|
-
safeToDelete: true,
|
|
105
|
-
},
|
|
106
|
-
// Eslint cache
|
|
107
|
-
{
|
|
108
|
-
path: path_1.default.join(zedAppSupport, "eslint"),
|
|
109
|
-
description: "ESLint linter cache",
|
|
110
|
-
category: "linters",
|
|
111
|
-
priority: "low",
|
|
112
|
-
safeToDelete: true,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
else if (platform === "win32") {
|
|
116
|
-
// Windows Zed paths (hypothetical - Zed is primarily macOS/Linux)
|
|
117
|
-
const appData = process.env.APPDATA || path_1.default.join(homeDir, "AppData", "Roaming");
|
|
118
|
-
const localAppData = process.env.LOCALAPPDATA || path_1.default.join(homeDir, "AppData", "Local");
|
|
119
|
-
paths.push({
|
|
120
|
-
path: path_1.default.join(localAppData, "Zed", "cache"),
|
|
121
|
-
description: "Zed application cache",
|
|
122
|
-
category: "cache",
|
|
123
|
-
priority: "low",
|
|
124
|
-
safeToDelete: true,
|
|
125
|
-
}, {
|
|
126
|
-
path: path_1.default.join(appData, "Zed", "logs"),
|
|
127
|
-
description: "Zed application logs",
|
|
128
|
-
category: "logs",
|
|
129
|
-
priority: "low",
|
|
130
|
-
safeToDelete: true,
|
|
131
|
-
}, {
|
|
132
|
-
path: path_1.default.join(appData, "Zed", "languages"),
|
|
133
|
-
description: "Zed language server binaries",
|
|
134
|
-
category: "language-servers",
|
|
135
|
-
priority: "normal",
|
|
136
|
-
safeToDelete: true,
|
|
137
|
-
}, {
|
|
138
|
-
path: path_1.default.join(appData, "Zed", "extensions"),
|
|
139
|
-
description: "Zed extension cache",
|
|
140
|
-
category: "extensions",
|
|
141
|
-
priority: "normal",
|
|
142
|
-
safeToDelete: true,
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
// Linux Zed paths
|
|
147
|
-
const cacheDir = process.env.XDG_CACHE_HOME || path_1.default.join(homeDir, ".cache");
|
|
148
|
-
const dataDir = process.env.XDG_DATA_HOME || path_1.default.join(homeDir, ".local", "share");
|
|
149
|
-
paths.push({
|
|
150
|
-
path: path_1.default.join(cacheDir, "zed"),
|
|
151
|
-
description: "Zed application cache",
|
|
152
|
-
category: "cache",
|
|
153
|
-
priority: "low",
|
|
154
|
-
safeToDelete: true,
|
|
155
|
-
}, {
|
|
156
|
-
path: path_1.default.join(dataDir, "zed", "logs"),
|
|
157
|
-
description: "Zed application logs",
|
|
158
|
-
category: "logs",
|
|
159
|
-
priority: "low",
|
|
160
|
-
safeToDelete: true,
|
|
161
|
-
}, {
|
|
162
|
-
path: path_1.default.join(dataDir, "zed", "languages"),
|
|
163
|
-
description: "Zed language server binaries",
|
|
164
|
-
category: "language-servers",
|
|
165
|
-
priority: "normal",
|
|
166
|
-
safeToDelete: true,
|
|
167
|
-
}, {
|
|
168
|
-
path: path_1.default.join(dataDir, "zed", "extensions"),
|
|
169
|
-
description: "Zed extension cache",
|
|
170
|
-
category: "extensions",
|
|
171
|
-
priority: "normal",
|
|
172
|
-
safeToDelete: true,
|
|
173
|
-
}, {
|
|
174
|
-
path: path_1.default.join(dataDir, "zed", "copilot"),
|
|
175
|
-
description: "GitHub Copilot cache",
|
|
176
|
-
category: "ai-cache",
|
|
177
|
-
priority: "normal",
|
|
178
|
-
safeToDelete: true,
|
|
179
|
-
}, {
|
|
180
|
-
path: path_1.default.join(dataDir, "zed", "node"),
|
|
181
|
-
description: "Node.js runtime for extensions",
|
|
182
|
-
category: "runtime",
|
|
183
|
-
priority: "normal",
|
|
184
|
-
safeToDelete: true,
|
|
185
|
-
}, {
|
|
186
|
-
path: path_1.default.join(dataDir, "zed", "prettier"),
|
|
187
|
-
description: "Prettier formatter cache",
|
|
188
|
-
category: "formatters",
|
|
189
|
-
priority: "low",
|
|
190
|
-
safeToDelete: true,
|
|
191
|
-
}, {
|
|
192
|
-
path: path_1.default.join(dataDir, "zed", "eslint"),
|
|
193
|
-
description: "ESLint linter cache",
|
|
194
|
-
category: "linters",
|
|
195
|
-
priority: "low",
|
|
196
|
-
safeToDelete: true,
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
return paths;
|
|
200
|
-
}
|
|
201
|
-
async isAvailable() {
|
|
202
|
-
const homeDir = os_1.default.homedir();
|
|
203
|
-
const platform = process.platform;
|
|
204
|
-
// Check for Zed config/data directories
|
|
205
|
-
if (platform === "darwin") {
|
|
206
|
-
const zedAppSupport = path_1.default.join(homeDir, "Library", "Application Support", "Zed");
|
|
207
|
-
if (await (0, fs_2.pathExists)(zedAppSupport)) {
|
|
208
|
-
return true;
|
|
209
|
-
}
|
|
210
|
-
const appPath = "/Applications/Zed.app";
|
|
211
|
-
if (await (0, fs_2.pathExists)(appPath)) {
|
|
212
|
-
return true;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
else if (platform === "linux") {
|
|
216
|
-
const dataDir = process.env.XDG_DATA_HOME || path_1.default.join(homeDir, ".local", "share");
|
|
217
|
-
const zedDataDir = path_1.default.join(dataDir, "zed");
|
|
218
|
-
if (await (0, fs_2.pathExists)(zedDataDir)) {
|
|
219
|
-
return true;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
// Check cache paths
|
|
223
|
-
const cachePaths = this.getCachePaths();
|
|
224
|
-
for (const { path: cachePath } of cachePaths) {
|
|
225
|
-
if (await (0, fs_2.pathExists)(cachePath)) {
|
|
226
|
-
return true;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
return false;
|
|
230
|
-
}
|
|
231
|
-
async getCacheInfo() {
|
|
232
|
-
const cachePaths = this.getCachePaths();
|
|
233
|
-
const existingPaths = [];
|
|
234
|
-
let totalSize = 0;
|
|
235
|
-
for (const { path: cachePath, safeToDelete } of cachePaths) {
|
|
236
|
-
if (!safeToDelete)
|
|
237
|
-
continue;
|
|
238
|
-
if (await (0, fs_2.pathExists)(cachePath)) {
|
|
239
|
-
existingPaths.push(cachePath);
|
|
240
|
-
const size = await (0, fs_2.getEstimatedDirectorySize)(cachePath);
|
|
241
|
-
totalSize += size;
|
|
242
|
-
(0, cli_1.printVerbose)(` 🔍 📁 ${cachePath}: ${(size / (1024 * 1024)).toFixed(1)} MB`);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
return {
|
|
246
|
-
name: this.name,
|
|
247
|
-
type: this.type,
|
|
248
|
-
description: this.description,
|
|
249
|
-
paths: existingPaths,
|
|
250
|
-
isInstalled: await this.isAvailable(),
|
|
251
|
-
size: totalSize,
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
async getCacheCategories() {
|
|
255
|
-
const cachePaths = this.getCachePaths();
|
|
256
|
-
const categoryMap = new Map();
|
|
257
|
-
for (const { path: cachePath, description, category, priority, safeToDelete } of cachePaths) {
|
|
258
|
-
if (!safeToDelete)
|
|
259
|
-
continue;
|
|
260
|
-
if (!(await (0, fs_2.pathExists)(cachePath)))
|
|
261
|
-
continue;
|
|
262
|
-
const size = await (0, fs_2.getDirectorySize)(cachePath);
|
|
263
|
-
let stats;
|
|
264
|
-
try {
|
|
265
|
-
stats = await fs_1.promises.stat(cachePath);
|
|
266
|
-
}
|
|
267
|
-
catch {
|
|
268
|
-
stats = null;
|
|
269
|
-
}
|
|
270
|
-
const categoryId = `zed-${category}`;
|
|
271
|
-
const existing = categoryMap.get(categoryId);
|
|
272
|
-
if (existing) {
|
|
273
|
-
existing.paths.push(cachePath);
|
|
274
|
-
existing.size = (existing.size || 0) + size;
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
categoryMap.set(categoryId, {
|
|
278
|
-
id: categoryId,
|
|
279
|
-
name: `Zed ${category}`,
|
|
280
|
-
description,
|
|
281
|
-
paths: [cachePath],
|
|
282
|
-
size,
|
|
283
|
-
lastModified: stats?.mtime,
|
|
284
|
-
priority,
|
|
285
|
-
useCase: "development",
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
return Array.from(categoryMap.values());
|
|
290
|
-
}
|
|
291
|
-
async clear(dryRun = false, _criteria, _cacheInfo, protectedPaths) {
|
|
292
|
-
const cachePaths = this.getCachePaths();
|
|
293
|
-
const clearedPaths = [];
|
|
294
|
-
let sizeBefore = 0;
|
|
295
|
-
let sizeAfter = 0;
|
|
296
|
-
for (const { path: cachePath, description, safeToDelete } of cachePaths) {
|
|
297
|
-
if (!safeToDelete)
|
|
298
|
-
continue;
|
|
299
|
-
if (!(await (0, fs_2.pathExists)(cachePath)))
|
|
300
|
-
continue;
|
|
301
|
-
if (protectedPaths?.some((p) => cachePath.startsWith(p))) {
|
|
302
|
-
(0, cli_1.printVerbose)(` Skipping protected path: ${cachePath}`);
|
|
303
|
-
continue;
|
|
304
|
-
}
|
|
305
|
-
const pathSize = await (0, fs_2.getDirectorySize)(cachePath);
|
|
306
|
-
sizeBefore += pathSize;
|
|
307
|
-
if (dryRun) {
|
|
308
|
-
(0, cli_1.printVerbose)(` [DRY RUN] Would clear: ${description} (${(pathSize / (1024 * 1024)).toFixed(1)} MB)`);
|
|
309
|
-
clearedPaths.push(cachePath);
|
|
310
|
-
}
|
|
311
|
-
else {
|
|
312
|
-
try {
|
|
313
|
-
await (0, fs_2.safeRmrf)(cachePath);
|
|
314
|
-
clearedPaths.push(cachePath);
|
|
315
|
-
(0, cli_1.printVerbose)(` ✓ Cleared: ${description}`);
|
|
316
|
-
}
|
|
317
|
-
catch (error) {
|
|
318
|
-
(0, cli_1.printVerbose)(` ✗ Failed to clear ${description}: ${error}`);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
if (!dryRun) {
|
|
323
|
-
for (const { path: cachePath, safeToDelete } of cachePaths) {
|
|
324
|
-
if (!safeToDelete)
|
|
325
|
-
continue;
|
|
326
|
-
if (await (0, fs_2.pathExists)(cachePath)) {
|
|
327
|
-
sizeAfter += await (0, fs_2.getDirectorySize)(cachePath);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
return {
|
|
332
|
-
name: this.name,
|
|
333
|
-
success: true,
|
|
334
|
-
sizeBefore,
|
|
335
|
-
sizeAfter: dryRun ? sizeBefore : sizeAfter,
|
|
336
|
-
clearedPaths,
|
|
337
|
-
};
|
|
338
|
-
}
|
|
339
|
-
async clearByCategory(categoryIds, dryRun = false, _cacheInfo, protectedPaths) {
|
|
340
|
-
const categories = await this.getCacheCategories();
|
|
341
|
-
const targetCategories = categories.filter((c) => categoryIds.includes(c.id));
|
|
342
|
-
const clearedPaths = [];
|
|
343
|
-
let sizeBefore = 0;
|
|
344
|
-
let sizeAfter = 0;
|
|
345
|
-
for (const category of targetCategories) {
|
|
346
|
-
for (const cachePath of category.paths) {
|
|
347
|
-
if (!(await (0, fs_2.pathExists)(cachePath)))
|
|
348
|
-
continue;
|
|
349
|
-
if (protectedPaths?.some((p) => cachePath.startsWith(p))) {
|
|
350
|
-
(0, cli_1.printVerbose)(` Skipping protected path: ${cachePath}`);
|
|
351
|
-
continue;
|
|
352
|
-
}
|
|
353
|
-
const pathSize = await (0, fs_2.getDirectorySize)(cachePath);
|
|
354
|
-
sizeBefore += pathSize;
|
|
355
|
-
if (dryRun) {
|
|
356
|
-
(0, cli_1.printVerbose)(` [DRY RUN] Would clear: ${category.name} (${(pathSize / (1024 * 1024)).toFixed(1)} MB)`);
|
|
357
|
-
clearedPaths.push(cachePath);
|
|
358
|
-
}
|
|
359
|
-
else {
|
|
360
|
-
try {
|
|
361
|
-
await (0, fs_2.safeRmrf)(cachePath);
|
|
362
|
-
clearedPaths.push(cachePath);
|
|
363
|
-
(0, cli_1.printVerbose)(` ✓ Cleared: ${category.name}`);
|
|
364
|
-
}
|
|
365
|
-
catch (error) {
|
|
366
|
-
(0, cli_1.printVerbose)(` ✗ Failed to clear ${category.name}: ${error}`);
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
return {
|
|
372
|
-
name: this.name,
|
|
373
|
-
success: true,
|
|
374
|
-
sizeBefore,
|
|
375
|
-
sizeAfter: dryRun ? sizeBefore : sizeAfter,
|
|
376
|
-
clearedPaths,
|
|
377
|
-
clearedCategories: categoryIds,
|
|
378
|
-
};
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
exports.ZedCleaner = ZedCleaner;
|
|
382
|
-
exports.default = new ZedCleaner();
|
|
383
|
-
//# sourceMappingURL=zed.js.map
|