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
|
@@ -1,318 +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.UniversalBinaryCleaner = void 0;
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const os_1 = __importDefault(require("os"));
|
|
10
|
-
const child_process_1 = require("child_process");
|
|
11
|
-
const util_1 = require("util");
|
|
12
|
-
const fs_2 = require("../utils/fs");
|
|
13
|
-
const cli_1 = require("../utils/cli");
|
|
14
|
-
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
15
|
-
// Common application directories to scan for Universal binaries
|
|
16
|
-
const APP_DIRECTORIES = [
|
|
17
|
-
"/Applications",
|
|
18
|
-
"/Applications/Utilities",
|
|
19
|
-
path_1.default.join(os_1.default.homedir(), "Applications"),
|
|
20
|
-
];
|
|
21
|
-
// Executables to skip (system critical or known problematic)
|
|
22
|
-
const SKIP_EXECUTABLES = new Set([
|
|
23
|
-
"Finder",
|
|
24
|
-
"SystemUIServer",
|
|
25
|
-
"loginwindow",
|
|
26
|
-
"launchd",
|
|
27
|
-
"kernel",
|
|
28
|
-
]);
|
|
29
|
-
class UniversalBinaryCleaner {
|
|
30
|
-
constructor() {
|
|
31
|
-
this.name = "universal-binary";
|
|
32
|
-
this.type = "system";
|
|
33
|
-
this.description = "Thin Universal Binaries on Apple Silicon to remove unused x86_64 code";
|
|
34
|
-
this.universalBinaries = [];
|
|
35
|
-
}
|
|
36
|
-
async isAvailable() {
|
|
37
|
-
// Only available on macOS with Apple Silicon
|
|
38
|
-
if (process.platform !== "darwin") {
|
|
39
|
-
(0, cli_1.printVerbose)("Universal Binary cleaner only available on macOS");
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
try {
|
|
43
|
-
const { stdout } = await execAsync("uname -m");
|
|
44
|
-
const arch = stdout.trim();
|
|
45
|
-
if (arch !== "arm64") {
|
|
46
|
-
(0, cli_1.printVerbose)(`Universal Binary cleaner requires Apple Silicon (arm64), found: ${arch}`);
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
// Verify lipo is available
|
|
50
|
-
await execAsync("which lipo");
|
|
51
|
-
return true;
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
async findExecutablesInApp(appPath) {
|
|
58
|
-
const executables = [];
|
|
59
|
-
const macosPath = path_1.default.join(appPath, "Contents", "MacOS");
|
|
60
|
-
try {
|
|
61
|
-
if (!(await (0, fs_2.pathExists)(macosPath))) {
|
|
62
|
-
return [];
|
|
63
|
-
}
|
|
64
|
-
const entries = await fs_1.promises.readdir(macosPath);
|
|
65
|
-
for (const entry of entries) {
|
|
66
|
-
const fullPath = path_1.default.join(macosPath, entry);
|
|
67
|
-
try {
|
|
68
|
-
const stat = await fs_1.promises.stat(fullPath);
|
|
69
|
-
if (stat.isFile()) {
|
|
70
|
-
// Check if it's an executable (not a script or config)
|
|
71
|
-
const { stdout } = await execAsync(`file "${fullPath}" 2>/dev/null`);
|
|
72
|
-
if (stdout.includes("Mach-O") &&
|
|
73
|
-
!SKIP_EXECUTABLES.has(path_1.default.basename(fullPath))) {
|
|
74
|
-
executables.push(fullPath);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
// Skip files we can't stat
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
// Skip apps we can't read
|
|
85
|
-
}
|
|
86
|
-
return executables;
|
|
87
|
-
}
|
|
88
|
-
async checkIfUniversal(binaryPath) {
|
|
89
|
-
try {
|
|
90
|
-
const { stdout } = await execAsync(`lipo -info "${binaryPath}" 2>&1`);
|
|
91
|
-
// Parse lipo output: "Architectures in the fat file: /path are: x86_64 arm64"
|
|
92
|
-
// or "Non-fat file: /path is architecture: arm64"
|
|
93
|
-
if (stdout.includes("Architectures in the fat file")) {
|
|
94
|
-
const archMatch = stdout.match(/are:\s*(.+)$/m);
|
|
95
|
-
if (archMatch) {
|
|
96
|
-
const architectures = archMatch[1].trim().split(/\s+/);
|
|
97
|
-
return {
|
|
98
|
-
isUniversal: architectures.length > 1,
|
|
99
|
-
architectures,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
// Single architecture
|
|
104
|
-
const singleArchMatch = stdout.match(/is architecture:\s*(\w+)/);
|
|
105
|
-
if (singleArchMatch) {
|
|
106
|
-
return {
|
|
107
|
-
isUniversal: false,
|
|
108
|
-
architectures: [singleArchMatch[1]],
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
return { isUniversal: false, architectures: [] };
|
|
112
|
-
}
|
|
113
|
-
catch {
|
|
114
|
-
return { isUniversal: false, architectures: [] };
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
async getBinarySize(binaryPath) {
|
|
118
|
-
try {
|
|
119
|
-
const stat = await fs_1.promises.stat(binaryPath);
|
|
120
|
-
return stat.size;
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
return 0;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
async scanForUniversalBinaries() {
|
|
127
|
-
const universalBinaries = [];
|
|
128
|
-
for (const appDir of APP_DIRECTORIES) {
|
|
129
|
-
if (!(await (0, fs_2.pathExists)(appDir))) {
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
(0, cli_1.printVerbose)(`Scanning ${appDir} for Universal Binaries...`);
|
|
133
|
-
try {
|
|
134
|
-
const entries = await fs_1.promises.readdir(appDir);
|
|
135
|
-
for (const entry of entries) {
|
|
136
|
-
if (!entry.endsWith(".app")) {
|
|
137
|
-
continue;
|
|
138
|
-
}
|
|
139
|
-
const appPath = path_1.default.join(appDir, entry);
|
|
140
|
-
const executables = await this.findExecutablesInApp(appPath);
|
|
141
|
-
for (const execPath of executables) {
|
|
142
|
-
const { isUniversal, architectures } = await this.checkIfUniversal(execPath);
|
|
143
|
-
if (isUniversal && architectures.includes("arm64")) {
|
|
144
|
-
const totalSize = await this.getBinarySize(execPath);
|
|
145
|
-
// Estimate savings as roughly half the binary size (x86_64 portion)
|
|
146
|
-
const x86Archs = architectures.filter((a) => a.includes("x86") || a.includes("i386"));
|
|
147
|
-
const potentialSavings = Math.round((totalSize * x86Archs.length) / architectures.length);
|
|
148
|
-
universalBinaries.push({
|
|
149
|
-
appPath,
|
|
150
|
-
appName: path_1.default.basename(appPath, ".app"),
|
|
151
|
-
binaryPath: execPath,
|
|
152
|
-
totalSize,
|
|
153
|
-
architectures,
|
|
154
|
-
potentialSavings,
|
|
155
|
-
});
|
|
156
|
-
(0, cli_1.printVerbose)(`Found Universal Binary: ${entry} (${architectures.join(", ")}) - potential savings: ${(potentialSavings / (1024 * 1024)).toFixed(1)} MB`);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
catch (error) {
|
|
162
|
-
(0, cli_1.printVerbose)(`Error scanning ${appDir}: ${error}`);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return universalBinaries;
|
|
166
|
-
}
|
|
167
|
-
async getCacheInfo() {
|
|
168
|
-
if (!(await this.isAvailable())) {
|
|
169
|
-
return {
|
|
170
|
-
name: this.name,
|
|
171
|
-
type: this.type,
|
|
172
|
-
description: this.description,
|
|
173
|
-
paths: [],
|
|
174
|
-
isInstalled: false,
|
|
175
|
-
size: 0,
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
(0, cli_1.printVerbose)("Scanning for Universal Binaries on Apple Silicon...");
|
|
179
|
-
this.universalBinaries = await this.scanForUniversalBinaries();
|
|
180
|
-
const totalSavings = this.universalBinaries.reduce((sum, b) => sum + b.potentialSavings, 0);
|
|
181
|
-
(0, cli_1.printVerbose)(`Found ${this.universalBinaries.length} Universal Binaries`);
|
|
182
|
-
(0, cli_1.printVerbose)(`Total potential savings: ${(totalSavings / (1024 * 1024)).toFixed(1)} MB`);
|
|
183
|
-
return {
|
|
184
|
-
name: this.name,
|
|
185
|
-
type: this.type,
|
|
186
|
-
description: this.description,
|
|
187
|
-
paths: this.universalBinaries.map((b) => b.binaryPath),
|
|
188
|
-
isInstalled: true,
|
|
189
|
-
size: totalSavings, // Report potential savings as "cache size"
|
|
190
|
-
categories: await this.getCacheCategories(),
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
async getCacheCategories() {
|
|
194
|
-
if (this.universalBinaries.length === 0) {
|
|
195
|
-
this.universalBinaries = await this.scanForUniversalBinaries();
|
|
196
|
-
}
|
|
197
|
-
// Group by application for user-friendly selection
|
|
198
|
-
return this.universalBinaries.map((binary) => ({
|
|
199
|
-
id: `universal-${binary.appName.toLowerCase().replace(/\s+/g, "-")}`,
|
|
200
|
-
name: binary.appName,
|
|
201
|
-
description: `Universal Binary: ${binary.architectures.join(", ")} - ${(binary.potentialSavings / (1024 * 1024)).toFixed(1)} MB potential savings`,
|
|
202
|
-
paths: [binary.binaryPath],
|
|
203
|
-
size: binary.potentialSavings,
|
|
204
|
-
priority: "low", // Thinning is optional optimization
|
|
205
|
-
useCase: "archived", // x86_64 code is legacy on Apple Silicon
|
|
206
|
-
isProjectSpecific: false,
|
|
207
|
-
}));
|
|
208
|
-
}
|
|
209
|
-
async clear(dryRun = false, criteria, cacheInfo) {
|
|
210
|
-
const info = cacheInfo || (await this.getCacheInfo());
|
|
211
|
-
if (!info.isInstalled) {
|
|
212
|
-
return {
|
|
213
|
-
name: this.name,
|
|
214
|
-
success: false,
|
|
215
|
-
error: "Universal Binary cleaner requires macOS on Apple Silicon (arm64)",
|
|
216
|
-
clearedPaths: [],
|
|
217
|
-
sizeBefore: 0,
|
|
218
|
-
sizeAfter: 0,
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
// Filter binaries based on criteria
|
|
222
|
-
let binariesToThin = this.universalBinaries;
|
|
223
|
-
if (criteria?.categories && criteria.categories.length > 0) {
|
|
224
|
-
binariesToThin = binariesToThin.filter((b) => {
|
|
225
|
-
const categoryId = `universal-${b.appName.toLowerCase().replace(/\s+/g, "-")}`;
|
|
226
|
-
return criteria.categories.includes(categoryId);
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
if (binariesToThin.length === 0) {
|
|
230
|
-
return {
|
|
231
|
-
name: this.name,
|
|
232
|
-
success: true,
|
|
233
|
-
clearedPaths: [],
|
|
234
|
-
sizeBefore: 0,
|
|
235
|
-
sizeAfter: 0,
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
const sizeBefore = binariesToThin.reduce((sum, b) => sum + b.totalSize, 0);
|
|
239
|
-
if (dryRun) {
|
|
240
|
-
(0, cli_1.printVerbose)(`[DRY RUN] Would thin ${binariesToThin.length} Universal Binaries:`);
|
|
241
|
-
for (const binary of binariesToThin) {
|
|
242
|
-
(0, cli_1.printVerbose)(` • ${binary.appName}: ${binary.architectures.join(", ")} → arm64 only`);
|
|
243
|
-
(0, cli_1.printVerbose)(` Potential savings: ${(binary.potentialSavings / (1024 * 1024)).toFixed(1)} MB`);
|
|
244
|
-
}
|
|
245
|
-
return {
|
|
246
|
-
name: this.name,
|
|
247
|
-
success: true,
|
|
248
|
-
sizeBefore,
|
|
249
|
-
sizeAfter: sizeBefore,
|
|
250
|
-
clearedPaths: binariesToThin.map((b) => b.binaryPath),
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
const clearedPaths = [];
|
|
254
|
-
let totalFreed = 0;
|
|
255
|
-
let error;
|
|
256
|
-
for (const binary of binariesToThin) {
|
|
257
|
-
try {
|
|
258
|
-
(0, cli_1.printVerbose)(`Thinning ${binary.appName}...`);
|
|
259
|
-
// Create backup first (optional safety measure)
|
|
260
|
-
const backupPath = `${binary.binaryPath}.universal.bak`;
|
|
261
|
-
// Thin the binary to arm64 only
|
|
262
|
-
// Note: This requires proper permissions and may need sudo for system apps
|
|
263
|
-
const tempPath = `${binary.binaryPath}.thin`;
|
|
264
|
-
try {
|
|
265
|
-
// Extract arm64 slice to temp file
|
|
266
|
-
await execAsync(`lipo -thin arm64 "${binary.binaryPath}" -output "${tempPath}"`);
|
|
267
|
-
// Backup original
|
|
268
|
-
await fs_1.promises.rename(binary.binaryPath, backupPath);
|
|
269
|
-
// Move thinned version
|
|
270
|
-
await fs_1.promises.rename(tempPath, binary.binaryPath);
|
|
271
|
-
// Preserve permissions
|
|
272
|
-
await execAsync(`chmod +x "${binary.binaryPath}"`);
|
|
273
|
-
// Remove backup on success
|
|
274
|
-
await fs_1.promises.unlink(backupPath);
|
|
275
|
-
clearedPaths.push(binary.binaryPath);
|
|
276
|
-
totalFreed += binary.potentialSavings;
|
|
277
|
-
(0, cli_1.printVerbose)(`✓ Thinned ${binary.appName}: saved ${(binary.potentialSavings / (1024 * 1024)).toFixed(1)} MB`);
|
|
278
|
-
}
|
|
279
|
-
catch (thinError) {
|
|
280
|
-
// Restore backup if it exists
|
|
281
|
-
if (await (0, fs_2.pathExists)(backupPath)) {
|
|
282
|
-
try {
|
|
283
|
-
await fs_1.promises.rename(backupPath, binary.binaryPath);
|
|
284
|
-
}
|
|
285
|
-
catch {
|
|
286
|
-
// Backup restore failed
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
throw thinError;
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
catch (err) {
|
|
293
|
-
const errMsg = err instanceof Error ? err.message : String(err);
|
|
294
|
-
(0, cli_1.printVerbose)(`Failed to thin ${binary.appName}: ${errMsg}`);
|
|
295
|
-
if (!error) {
|
|
296
|
-
error = `Some binaries could not be thinned (may require elevated permissions): ${errMsg}`;
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
return {
|
|
301
|
-
name: this.name,
|
|
302
|
-
success: clearedPaths.length > 0,
|
|
303
|
-
sizeBefore,
|
|
304
|
-
sizeAfter: sizeBefore - totalFreed,
|
|
305
|
-
error,
|
|
306
|
-
clearedPaths,
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
async clearByCategory(categoryIds, dryRun = false) {
|
|
310
|
-
return this.clear(dryRun, { categories: categoryIds });
|
|
311
|
-
}
|
|
312
|
-
static create() {
|
|
313
|
-
return new UniversalBinaryCleaner();
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
exports.UniversalBinaryCleaner = UniversalBinaryCleaner;
|
|
317
|
-
exports.default = UniversalBinaryCleaner.create();
|
|
318
|
-
//# sourceMappingURL=universalBinary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"universalBinary.js","sourceRoot":"","sources":["../../src/cleaners/universalBinary.ts"],"names":[],"mappings":"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"}
|
package/dist/cleaners/vite.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { CleanerModule, CacheInfo, ClearResult, CacheSelectionCriteria } from "../types";
|
|
2
|
-
export declare class ViteCleaner implements CleanerModule {
|
|
3
|
-
name: string;
|
|
4
|
-
type: "build-tool";
|
|
5
|
-
description: string;
|
|
6
|
-
private findViteCaches;
|
|
7
|
-
private findViteCachesRecursively;
|
|
8
|
-
private hasViteProjects;
|
|
9
|
-
private searchForViteProjects;
|
|
10
|
-
private isViteProject;
|
|
11
|
-
isAvailable(): Promise<boolean>;
|
|
12
|
-
getCacheInfo(): Promise<CacheInfo>;
|
|
13
|
-
clear(dryRun?: boolean, _criteria?: CacheSelectionCriteria, cacheInfo?: CacheInfo): Promise<ClearResult>;
|
|
14
|
-
}
|
|
15
|
-
declare const _default: ViteCleaner;
|
|
16
|
-
export default _default;
|
|
17
|
-
//# sourceMappingURL=vite.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../../src/cleaners/vite.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,EACX,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAOlB,qBAAa,WAAY,YAAW,aAAa;IAC/C,IAAI,SAAU;IACd,IAAI,EAAG,YAAY,CAAU;IAC7B,WAAW,SAAgD;YAE7C,cAAc;YAgCd,yBAAyB;YAuDzB,eAAe;YA+Bf,qBAAqB;YA6CrB,aAAa;IAsBrB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ/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;CA4CxB;;AAED,wBAAiC"}
|
package/dist/cleaners/vite.js
DELETED
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.ViteCleaner = void 0;
|
|
37
|
-
const fs_1 = require("fs");
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const os = __importStar(require("os"));
|
|
40
|
-
const fs_2 = require("../utils/fs");
|
|
41
|
-
const cli_1 = require("../utils/cli");
|
|
42
|
-
class ViteCleaner {
|
|
43
|
-
constructor() {
|
|
44
|
-
this.name = "vite";
|
|
45
|
-
this.type = "build-tool";
|
|
46
|
-
this.description = "Vite build tool caches and temporary files";
|
|
47
|
-
}
|
|
48
|
-
async findViteCaches() {
|
|
49
|
-
const caches = [];
|
|
50
|
-
const homeDir = os.homedir();
|
|
51
|
-
// Common project directories to search
|
|
52
|
-
const searchDirs = [
|
|
53
|
-
path.join(homeDir, "Projects"),
|
|
54
|
-
path.join(homeDir, "Development"),
|
|
55
|
-
path.join(homeDir, "dev"),
|
|
56
|
-
path.join(homeDir, "workspace"),
|
|
57
|
-
path.join(homeDir, "Documents"),
|
|
58
|
-
process.cwd(), // Current directory
|
|
59
|
-
];
|
|
60
|
-
// Search for project-specific vite caches
|
|
61
|
-
for (const searchDir of searchDirs) {
|
|
62
|
-
if (await (0, fs_2.pathExists)(searchDir)) {
|
|
63
|
-
try {
|
|
64
|
-
const projectCaches = await this.findViteCachesRecursively(searchDir, 3);
|
|
65
|
-
caches.push(...projectCaches);
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
(0, cli_1.printVerbose)(`Error searching ${searchDir}: ${error}`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return [...new Set(caches)]; // Remove duplicates
|
|
73
|
-
}
|
|
74
|
-
async findViteCachesRecursively(dir, maxDepth) {
|
|
75
|
-
if (maxDepth <= 0)
|
|
76
|
-
return [];
|
|
77
|
-
const viteCaches = [];
|
|
78
|
-
try {
|
|
79
|
-
const entries = await fs_1.promises.readdir(dir, { withFileTypes: true });
|
|
80
|
-
for (const entry of entries) {
|
|
81
|
-
if (entry.isDirectory() &&
|
|
82
|
-
!entry.name.startsWith(".") &&
|
|
83
|
-
entry.name !== "node_modules") {
|
|
84
|
-
const fullPath = path.join(dir, entry.name);
|
|
85
|
-
// Check for vite cache directories
|
|
86
|
-
const cacheLocations = [
|
|
87
|
-
path.join(fullPath, "node_modules", ".vite"),
|
|
88
|
-
path.join(fullPath, ".vite"),
|
|
89
|
-
path.join(fullPath, "dist"), // Vite output directory
|
|
90
|
-
];
|
|
91
|
-
for (const cacheLocation of cacheLocations) {
|
|
92
|
-
if (await (0, fs_2.pathExists)(cacheLocation)) {
|
|
93
|
-
// For dist folders, only include if it's actually a vite project
|
|
94
|
-
if (cacheLocation.endsWith("dist")) {
|
|
95
|
-
const packageJsonPath = path.join(fullPath, "package.json");
|
|
96
|
-
if (await this.isViteProject(packageJsonPath)) {
|
|
97
|
-
viteCaches.push(cacheLocation);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
viteCaches.push(cacheLocation);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
// Recursively search subdirectories
|
|
106
|
-
const subCaches = await this.findViteCachesRecursively(fullPath, maxDepth - 1);
|
|
107
|
-
viteCaches.push(...subCaches);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
catch {
|
|
112
|
-
// Ignore permission errors or other issues
|
|
113
|
-
}
|
|
114
|
-
return viteCaches;
|
|
115
|
-
}
|
|
116
|
-
async hasViteProjects() {
|
|
117
|
-
const homeDir = os.homedir();
|
|
118
|
-
// Check current directory first
|
|
119
|
-
const currentDirPackageJson = path.join(process.cwd(), "package.json");
|
|
120
|
-
if (await this.isViteProject(currentDirPackageJson)) {
|
|
121
|
-
return true;
|
|
122
|
-
}
|
|
123
|
-
// Search common project directories
|
|
124
|
-
const searchDirs = [
|
|
125
|
-
path.join(homeDir, "Projects"),
|
|
126
|
-
path.join(homeDir, "Development"),
|
|
127
|
-
path.join(homeDir, "dev"),
|
|
128
|
-
path.join(homeDir, "workspace"),
|
|
129
|
-
];
|
|
130
|
-
for (const searchDir of searchDirs) {
|
|
131
|
-
if (await (0, fs_2.pathExists)(searchDir)) {
|
|
132
|
-
try {
|
|
133
|
-
const hasVite = await this.searchForViteProjects(searchDir, 2);
|
|
134
|
-
if (hasVite)
|
|
135
|
-
return true;
|
|
136
|
-
}
|
|
137
|
-
catch {
|
|
138
|
-
// Continue searching
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
|
-
async searchForViteProjects(dir, maxDepth) {
|
|
145
|
-
if (maxDepth <= 0)
|
|
146
|
-
return false;
|
|
147
|
-
try {
|
|
148
|
-
const entries = await fs_1.promises.readdir(dir, { withFileTypes: true });
|
|
149
|
-
for (const entry of entries) {
|
|
150
|
-
if (entry.isDirectory() && !entry.name.startsWith(".")) {
|
|
151
|
-
const fullPath = path.join(dir, entry.name);
|
|
152
|
-
const packageJsonPath = path.join(fullPath, "package.json");
|
|
153
|
-
if (await this.isViteProject(packageJsonPath)) {
|
|
154
|
-
return true;
|
|
155
|
-
}
|
|
156
|
-
// Check for vite config files
|
|
157
|
-
const viteConfigFiles = [
|
|
158
|
-
"vite.config.js",
|
|
159
|
-
"vite.config.ts",
|
|
160
|
-
"vite.config.mjs",
|
|
161
|
-
"vite.config.cjs",
|
|
162
|
-
];
|
|
163
|
-
for (const configFile of viteConfigFiles) {
|
|
164
|
-
if (await (0, fs_2.pathExists)(path.join(fullPath, configFile))) {
|
|
165
|
-
return true;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
// Recursively search
|
|
169
|
-
if (await this.searchForViteProjects(fullPath, maxDepth - 1)) {
|
|
170
|
-
return true;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
catch {
|
|
176
|
-
// Ignore errors
|
|
177
|
-
}
|
|
178
|
-
return false;
|
|
179
|
-
}
|
|
180
|
-
async isViteProject(packageJsonPath) {
|
|
181
|
-
try {
|
|
182
|
-
if (!(await (0, fs_2.pathExists)(packageJsonPath)))
|
|
183
|
-
return false;
|
|
184
|
-
const content = await fs_1.promises.readFile(packageJsonPath, "utf-8");
|
|
185
|
-
const packageJson = JSON.parse(content);
|
|
186
|
-
// Check for vite in dependencies or devDependencies
|
|
187
|
-
const deps = {
|
|
188
|
-
...packageJson.dependencies,
|
|
189
|
-
...packageJson.devDependencies,
|
|
190
|
-
};
|
|
191
|
-
return ("vite" in deps ||
|
|
192
|
-
"@vitejs/plugin-react" in deps ||
|
|
193
|
-
"@vitejs/plugin-vue" in deps);
|
|
194
|
-
}
|
|
195
|
-
catch {
|
|
196
|
-
return false;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
async isAvailable() {
|
|
200
|
-
// Check if vite caches exist or if there are vite projects
|
|
201
|
-
const caches = await this.findViteCaches();
|
|
202
|
-
const hasProjects = await this.hasViteProjects();
|
|
203
|
-
return caches.length > 0 || hasProjects;
|
|
204
|
-
}
|
|
205
|
-
async getCacheInfo() {
|
|
206
|
-
const cachePaths = await this.findViteCaches();
|
|
207
|
-
let totalSize = 0;
|
|
208
|
-
const validPaths = [];
|
|
209
|
-
for (const cachePath of cachePaths) {
|
|
210
|
-
try {
|
|
211
|
-
const size = await (0, fs_2.getDirectorySize)(cachePath);
|
|
212
|
-
totalSize += size;
|
|
213
|
-
validPaths.push(cachePath);
|
|
214
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.folder} ${cachePath}: ${(size / (1024 * 1024)).toFixed(1)} MB`);
|
|
215
|
-
}
|
|
216
|
-
catch (error) {
|
|
217
|
-
(0, cli_1.printVerbose)(`Error calculating size for ${cachePath}: ${error}`);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
return {
|
|
221
|
-
name: this.name,
|
|
222
|
-
type: this.type,
|
|
223
|
-
description: this.description,
|
|
224
|
-
paths: validPaths,
|
|
225
|
-
isInstalled: await this.isAvailable(),
|
|
226
|
-
size: totalSize,
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
async clear(dryRun = false, _criteria, cacheInfo) {
|
|
230
|
-
const info = cacheInfo || (await this.getCacheInfo());
|
|
231
|
-
if (!info.isInstalled) {
|
|
232
|
-
return {
|
|
233
|
-
name: this.name,
|
|
234
|
-
success: false,
|
|
235
|
-
error: "No Vite caches found",
|
|
236
|
-
clearedPaths: [],
|
|
237
|
-
sizeBefore: 0,
|
|
238
|
-
sizeAfter: 0,
|
|
239
|
-
};
|
|
240
|
-
}
|
|
241
|
-
const sizeBefore = info.size || 0;
|
|
242
|
-
const clearedPaths = [];
|
|
243
|
-
let errors = [];
|
|
244
|
-
for (const cachePath of info.paths) {
|
|
245
|
-
try {
|
|
246
|
-
if (dryRun) {
|
|
247
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Would clear: ${cachePath}`);
|
|
248
|
-
clearedPaths.push(cachePath);
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Clearing: ${cachePath}`);
|
|
252
|
-
await (0, fs_2.safeRmrf)(cachePath);
|
|
253
|
-
clearedPaths.push(cachePath);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
catch (error) {
|
|
257
|
-
const errorMsg = `Failed to clear ${cachePath}: ${error}`;
|
|
258
|
-
errors.push(errorMsg);
|
|
259
|
-
(0, cli_1.printVerbose)(errorMsg);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
return {
|
|
263
|
-
name: this.name,
|
|
264
|
-
success: errors.length === 0,
|
|
265
|
-
sizeBefore,
|
|
266
|
-
sizeAfter: 0, // Set to 0 as we don't want to rescan
|
|
267
|
-
error: errors.length > 0 ? errors.join("; ") : undefined,
|
|
268
|
-
clearedPaths,
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
exports.ViteCleaner = ViteCleaner;
|
|
273
|
-
exports.default = new ViteCleaner();
|
|
274
|
-
//# sourceMappingURL=vite.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite.js","sourceRoot":"","sources":["../../src/cleaners/vite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { CacheInfo, ClearResult, CleanerModule, CacheSelectionCriteria } from "../types";
|
|
2
|
-
export declare class VSCodeCleaner implements CleanerModule {
|
|
3
|
-
name: string;
|
|
4
|
-
type: "ide";
|
|
5
|
-
description: string;
|
|
6
|
-
private getCachePaths;
|
|
7
|
-
private discoverAdditionalVSCodeCaches;
|
|
8
|
-
isAvailable(): Promise<boolean>;
|
|
9
|
-
getCacheInfo(): Promise<CacheInfo>;
|
|
10
|
-
clear(dryRun?: boolean, _criteria?: CacheSelectionCriteria, cacheInfo?: CacheInfo): Promise<ClearResult>;
|
|
11
|
-
static create(): VSCodeCleaner;
|
|
12
|
-
}
|
|
13
|
-
declare const _default: VSCodeCleaner;
|
|
14
|
-
export default _default;
|
|
15
|
-
//# sourceMappingURL=vscode.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vscode.d.ts","sourceRoot":"","sources":["../../src/cleaners/vscode.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,WAAW,EACX,aAAa,EACb,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAoBlB,qBAAa,aAAc,YAAW,aAAa;IACjD,IAAI,SAAY;IAChB,IAAI,EAAG,KAAK,CAAU;IACtB,WAAW,SACgE;IAE3E,OAAO,CAAC,aAAa;YA0IP,8BAA8B;IAyCtC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IA8D/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IA0ElC,KAAK,CACT,MAAM,UAAQ,EACd,SAAS,CAAC,EAAE,sBAAsB,EAClC,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,WAAW,CAAC;IA2JvB,MAAM,CAAC,MAAM,IAAI,aAAa;CAG/B;;AAED,wBAAsC"}
|