squeaky-clean 0.1.7 → 0.1.10
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 +25 -23
- 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/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 -247
- 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/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/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 -14
- package/dist/cleaners/vscode.d.ts.map +0 -1
- package/dist/cleaners/vscode.js +0 -354
- 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/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/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -346
- 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 -224
- 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 -445
- 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/config/index.d.ts +0 -31
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -241
- 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 -361
- package/dist/profiles/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -161
- 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 -44
- package/dist/utils/cli.d.ts.map +0 -1
- package/dist/utils/cli.js +0 -410
- 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/nx.js
DELETED
|
@@ -1,308 +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
|
-
exports.NxCleaner = void 0;
|
|
40
|
-
const fs_1 = require("fs");
|
|
41
|
-
const path = __importStar(require("path"));
|
|
42
|
-
const os = __importStar(require("os"));
|
|
43
|
-
const fs_2 = require("../utils/fs");
|
|
44
|
-
const execa_1 = __importDefault(require("execa"));
|
|
45
|
-
const cli_1 = require("../utils/cli");
|
|
46
|
-
class NxCleaner {
|
|
47
|
-
constructor() {
|
|
48
|
-
this.name = "nx";
|
|
49
|
-
this.type = "build-tool";
|
|
50
|
-
this.description = "NX monorepo build tool caches";
|
|
51
|
-
}
|
|
52
|
-
async getNxVersion() {
|
|
53
|
-
try {
|
|
54
|
-
const result = await (0, execa_1.default)("nx", ["--version"]);
|
|
55
|
-
return result.stdout.trim();
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
try {
|
|
59
|
-
const result = await (0, execa_1.default)("npx", ["nx", "--version"]);
|
|
60
|
-
return result.stdout.trim();
|
|
61
|
-
}
|
|
62
|
-
catch {
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
async findNxCaches() {
|
|
68
|
-
const caches = [];
|
|
69
|
-
const homeDir = os.homedir();
|
|
70
|
-
// Common project directories to search
|
|
71
|
-
const searchDirs = [
|
|
72
|
-
path.join(homeDir, "Projects"),
|
|
73
|
-
path.join(homeDir, "Development"),
|
|
74
|
-
path.join(homeDir, "dev"),
|
|
75
|
-
path.join(homeDir, "workspace"),
|
|
76
|
-
path.join(homeDir, "Documents"),
|
|
77
|
-
process.cwd(), // Current directory
|
|
78
|
-
];
|
|
79
|
-
// Check for global nx cache
|
|
80
|
-
const globalNxCache = path.join(homeDir, ".nx", "cache");
|
|
81
|
-
if (await (0, fs_2.pathExists)(globalNxCache)) {
|
|
82
|
-
caches.push(globalNxCache);
|
|
83
|
-
}
|
|
84
|
-
// Search for project-specific nx caches
|
|
85
|
-
for (const searchDir of searchDirs) {
|
|
86
|
-
if (await (0, fs_2.pathExists)(searchDir)) {
|
|
87
|
-
try {
|
|
88
|
-
const projectCaches = await this.findNxCachesRecursively(searchDir, 3);
|
|
89
|
-
caches.push(...projectCaches);
|
|
90
|
-
}
|
|
91
|
-
catch (error) {
|
|
92
|
-
(0, cli_1.printVerbose)(`Error searching ${searchDir}: ${error}`);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return [...new Set(caches)]; // Remove duplicates
|
|
97
|
-
}
|
|
98
|
-
async findNxCachesRecursively(dir, maxDepth) {
|
|
99
|
-
if (maxDepth <= 0)
|
|
100
|
-
return [];
|
|
101
|
-
const nxCaches = [];
|
|
102
|
-
try {
|
|
103
|
-
const entries = await fs_1.promises.readdir(dir, { withFileTypes: true });
|
|
104
|
-
for (const entry of entries) {
|
|
105
|
-
if (entry.isDirectory() &&
|
|
106
|
-
!entry.name.startsWith(".") &&
|
|
107
|
-
entry.name !== "node_modules") {
|
|
108
|
-
const fullPath = path.join(dir, entry.name);
|
|
109
|
-
// Check for nx cache directories
|
|
110
|
-
const cacheLocations = [
|
|
111
|
-
path.join(fullPath, "node_modules", ".cache", "nx"),
|
|
112
|
-
path.join(fullPath, ".nx", "cache"),
|
|
113
|
-
path.join(fullPath, "tmp", "nx"),
|
|
114
|
-
path.join(fullPath, "dist"), // NX output directory for NX workspaces
|
|
115
|
-
];
|
|
116
|
-
for (const cacheLocation of cacheLocations) {
|
|
117
|
-
if (await (0, fs_2.pathExists)(cacheLocation)) {
|
|
118
|
-
// For dist folders, only include if it's actually an NX workspace
|
|
119
|
-
if (cacheLocation.endsWith("dist")) {
|
|
120
|
-
const nxJsonPath = path.join(fullPath, "nx.json");
|
|
121
|
-
if (await (0, fs_2.pathExists)(nxJsonPath)) {
|
|
122
|
-
nxCaches.push(cacheLocation);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
nxCaches.push(cacheLocation);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
// Recursively search subdirectories
|
|
131
|
-
const subCaches = await this.findNxCachesRecursively(fullPath, maxDepth - 1);
|
|
132
|
-
nxCaches.push(...subCaches);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
catch {
|
|
137
|
-
// Ignore permission errors or other issues
|
|
138
|
-
}
|
|
139
|
-
return nxCaches;
|
|
140
|
-
}
|
|
141
|
-
async hasNxWorkspaces() {
|
|
142
|
-
const homeDir = os.homedir();
|
|
143
|
-
// Check current directory first
|
|
144
|
-
if (await (0, fs_2.pathExists)(path.join(process.cwd(), "nx.json"))) {
|
|
145
|
-
return true;
|
|
146
|
-
}
|
|
147
|
-
// Search common project directories
|
|
148
|
-
const searchDirs = [
|
|
149
|
-
path.join(homeDir, "Projects"),
|
|
150
|
-
path.join(homeDir, "Development"),
|
|
151
|
-
path.join(homeDir, "dev"),
|
|
152
|
-
path.join(homeDir, "workspace"),
|
|
153
|
-
];
|
|
154
|
-
for (const searchDir of searchDirs) {
|
|
155
|
-
if (await (0, fs_2.pathExists)(searchDir)) {
|
|
156
|
-
try {
|
|
157
|
-
const hasNx = await this.searchForNxWorkspaces(searchDir, 2);
|
|
158
|
-
if (hasNx)
|
|
159
|
-
return true;
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
// Continue searching
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
async searchForNxWorkspaces(dir, maxDepth) {
|
|
169
|
-
if (maxDepth <= 0)
|
|
170
|
-
return false;
|
|
171
|
-
try {
|
|
172
|
-
const entries = await fs_1.promises.readdir(dir, { withFileTypes: true });
|
|
173
|
-
for (const entry of entries) {
|
|
174
|
-
if (entry.isDirectory() && !entry.name.startsWith(".")) {
|
|
175
|
-
const fullPath = path.join(dir, entry.name);
|
|
176
|
-
// Check for nx.json (NX workspace indicator)
|
|
177
|
-
const nxJsonPath = path.join(fullPath, "nx.json");
|
|
178
|
-
if (await (0, fs_2.pathExists)(nxJsonPath)) {
|
|
179
|
-
return true;
|
|
180
|
-
}
|
|
181
|
-
// Check for package.json with nx dependency
|
|
182
|
-
const packageJsonPath = path.join(fullPath, "package.json");
|
|
183
|
-
if (await this.isNxProject(packageJsonPath)) {
|
|
184
|
-
return true;
|
|
185
|
-
}
|
|
186
|
-
// Recursively search
|
|
187
|
-
if (await this.searchForNxWorkspaces(fullPath, maxDepth - 1)) {
|
|
188
|
-
return true;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
catch {
|
|
194
|
-
// Ignore errors
|
|
195
|
-
}
|
|
196
|
-
return false;
|
|
197
|
-
}
|
|
198
|
-
async isNxProject(packageJsonPath) {
|
|
199
|
-
try {
|
|
200
|
-
if (!(await (0, fs_2.pathExists)(packageJsonPath)))
|
|
201
|
-
return false;
|
|
202
|
-
const content = await fs_1.promises.readFile(packageJsonPath, "utf-8");
|
|
203
|
-
const packageJson = JSON.parse(content);
|
|
204
|
-
// Check for nx in dependencies or devDependencies
|
|
205
|
-
const deps = {
|
|
206
|
-
...packageJson.dependencies,
|
|
207
|
-
...packageJson.devDependencies,
|
|
208
|
-
};
|
|
209
|
-
return "nx" in deps || "@nrwl/nx" in deps || "@nx/nx" in deps;
|
|
210
|
-
}
|
|
211
|
-
catch {
|
|
212
|
-
return false;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
async isAvailable() {
|
|
216
|
-
// Check if NX is installed globally or there are NX caches/workspaces
|
|
217
|
-
const version = await this.getNxVersion();
|
|
218
|
-
const caches = await this.findNxCaches();
|
|
219
|
-
const hasWorkspaces = await this.hasNxWorkspaces();
|
|
220
|
-
return version !== null || caches.length > 0 || hasWorkspaces;
|
|
221
|
-
}
|
|
222
|
-
async getCacheInfo() {
|
|
223
|
-
const cachePaths = await this.findNxCaches();
|
|
224
|
-
let totalSize = 0;
|
|
225
|
-
const validPaths = [];
|
|
226
|
-
for (const cachePath of cachePaths) {
|
|
227
|
-
try {
|
|
228
|
-
const size = await (0, fs_2.getDirectorySize)(cachePath);
|
|
229
|
-
totalSize += size;
|
|
230
|
-
validPaths.push(cachePath);
|
|
231
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.folder} ${cachePath}: ${(size / (1024 * 1024)).toFixed(1)} MB`);
|
|
232
|
-
}
|
|
233
|
-
catch (error) {
|
|
234
|
-
(0, cli_1.printVerbose)(`Error calculating size for ${cachePath}: ${error}`);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
return {
|
|
238
|
-
name: this.name,
|
|
239
|
-
type: this.type,
|
|
240
|
-
description: this.description,
|
|
241
|
-
paths: validPaths,
|
|
242
|
-
isInstalled: await this.isAvailable(),
|
|
243
|
-
size: totalSize,
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
async clear(dryRun = false, _criteria, cacheInfo) {
|
|
247
|
-
const info = cacheInfo || (await this.getCacheInfo());
|
|
248
|
-
if (!info.isInstalled) {
|
|
249
|
-
return {
|
|
250
|
-
name: this.name,
|
|
251
|
-
success: false,
|
|
252
|
-
error: "No NX caches found",
|
|
253
|
-
clearedPaths: [],
|
|
254
|
-
sizeBefore: 0,
|
|
255
|
-
sizeAfter: 0,
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
const sizeBefore = info.size || 0;
|
|
259
|
-
const clearedPaths = [];
|
|
260
|
-
let errors = [];
|
|
261
|
-
// Try to use nx reset command if available
|
|
262
|
-
if (!dryRun && (await this.getNxVersion())) {
|
|
263
|
-
try {
|
|
264
|
-
await (0, execa_1.default)("nx", ["reset"]);
|
|
265
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Executed: nx reset`);
|
|
266
|
-
}
|
|
267
|
-
catch {
|
|
268
|
-
try {
|
|
269
|
-
await (0, execa_1.default)("npx", ["nx", "reset"]);
|
|
270
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Executed: npx nx reset`);
|
|
271
|
-
}
|
|
272
|
-
catch (error) {
|
|
273
|
-
(0, cli_1.printVerbose)(`Note: nx reset failed: ${error}`);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
// Clear cache directories manually
|
|
278
|
-
for (const cachePath of info.paths) {
|
|
279
|
-
try {
|
|
280
|
-
if (dryRun) {
|
|
281
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Would clear: ${cachePath}`);
|
|
282
|
-
clearedPaths.push(cachePath);
|
|
283
|
-
}
|
|
284
|
-
else {
|
|
285
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Clearing: ${cachePath}`);
|
|
286
|
-
await (0, fs_2.safeRmrf)(cachePath);
|
|
287
|
-
clearedPaths.push(cachePath);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
catch (error) {
|
|
291
|
-
const errorMsg = `Failed to clear ${cachePath}: ${error}`;
|
|
292
|
-
errors.push(errorMsg);
|
|
293
|
-
(0, cli_1.printVerbose)(errorMsg);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
return {
|
|
297
|
-
name: this.name,
|
|
298
|
-
success: errors.length === 0,
|
|
299
|
-
sizeBefore,
|
|
300
|
-
sizeAfter: 0, // Set to 0 as we don't want to rescan
|
|
301
|
-
error: errors.length > 0 ? errors.join("; ") : undefined,
|
|
302
|
-
clearedPaths,
|
|
303
|
-
};
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
exports.NxCleaner = NxCleaner;
|
|
307
|
-
exports.default = new NxCleaner();
|
|
308
|
-
//# sourceMappingURL=nx.js.map
|
package/dist/cleaners/nx.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../src/cleaners/nx.ts"],"names":[],"mappings":"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"}
|
package/dist/cleaners/pip.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { CleanerModule, CacheInfo, ClearResult, CacheSelectionCriteria } from "../types";
|
|
2
|
-
declare class PipCleaner implements CleanerModule {
|
|
3
|
-
name: string;
|
|
4
|
-
type: "package-manager";
|
|
5
|
-
description: string;
|
|
6
|
-
private getPythonVersion;
|
|
7
|
-
private getPipVersion;
|
|
8
|
-
private getPipCachePaths;
|
|
9
|
-
private getPipCacheDir;
|
|
10
|
-
private findVirtualEnvCaches;
|
|
11
|
-
private findPipCachesInDir;
|
|
12
|
-
isAvailable(): Promise<boolean>;
|
|
13
|
-
getCacheInfo(): Promise<CacheInfo>;
|
|
14
|
-
clear(dryRun?: boolean, _criteria?: CacheSelectionCriteria, cacheInfo?: CacheInfo): Promise<ClearResult>;
|
|
15
|
-
private runPipCachePurge;
|
|
16
|
-
}
|
|
17
|
-
declare const _default: PipCleaner;
|
|
18
|
-
export default _default;
|
|
19
|
-
//# sourceMappingURL=pip.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pip.d.ts","sourceRoot":"","sources":["../../src/cleaners/pip.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,EACX,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAOlB,cAAM,UAAW,YAAW,aAAa;IACvC,IAAI,SAAS;IACb,IAAI,EAAG,iBAAiB,CAAU;IAClC,WAAW,SAA2D;YAExD,gBAAgB;YAgBhB,aAAa;YAgBb,gBAAgB;YAmEhB,cAAc;YAkBd,oBAAoB;YA6BpB,kBAAkB;IAyC1B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAoC/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAyClC,KAAK,CACT,MAAM,UAAQ,EACd,SAAS,CAAC,EAAE,sBAAsB,EAClC,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,WAAW,CAAC;YAkDT,gBAAgB;CAa/B;;AAED,wBAAgC"}
|
package/dist/cleaners/pip.js
DELETED
|
@@ -1,334 +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 path = __importStar(require("path"));
|
|
40
|
-
const os = __importStar(require("os"));
|
|
41
|
-
const fs_1 = require("../utils/fs");
|
|
42
|
-
const execa_1 = __importDefault(require("execa"));
|
|
43
|
-
const cli_1 = require("../utils/cli");
|
|
44
|
-
class PipCleaner {
|
|
45
|
-
constructor() {
|
|
46
|
-
this.name = "pip";
|
|
47
|
-
this.type = "package-manager";
|
|
48
|
-
this.description = "Python pip package manager caches and temporary files";
|
|
49
|
-
}
|
|
50
|
-
async getPythonVersion() {
|
|
51
|
-
// Try python3 first, then python
|
|
52
|
-
const pythonCommands = ["python3", "python"];
|
|
53
|
-
for (const cmd of pythonCommands) {
|
|
54
|
-
try {
|
|
55
|
-
const result = await (0, execa_1.default)(cmd, ["--version"]);
|
|
56
|
-
return result.stdout.trim() || result.stderr.trim();
|
|
57
|
-
}
|
|
58
|
-
catch {
|
|
59
|
-
// Continue to next command
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
async getPipVersion() {
|
|
65
|
-
// Try pip3 first, then pip
|
|
66
|
-
const pipCommands = ["pip3", "pip"];
|
|
67
|
-
for (const cmd of pipCommands) {
|
|
68
|
-
try {
|
|
69
|
-
const result = await (0, execa_1.default)(cmd, ["--version"]);
|
|
70
|
-
return result.stdout.trim();
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
// Continue to next command
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
async getPipCachePaths() {
|
|
79
|
-
const paths = [];
|
|
80
|
-
const homeDir = os.homedir();
|
|
81
|
-
const platform = os.platform();
|
|
82
|
-
// Platform-specific pip cache paths
|
|
83
|
-
if (platform === "darwin") {
|
|
84
|
-
// macOS
|
|
85
|
-
const macPaths = [
|
|
86
|
-
path.join(homeDir, "Library", "Caches", "pip"),
|
|
87
|
-
path.join(homeDir, ".cache", "pip"),
|
|
88
|
-
];
|
|
89
|
-
for (const cachePath of macPaths) {
|
|
90
|
-
if (await (0, fs_1.pathExists)(cachePath)) {
|
|
91
|
-
paths.push(cachePath);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
else if (platform === "win32") {
|
|
96
|
-
// Windows
|
|
97
|
-
const windowsPaths = [
|
|
98
|
-
path.join(homeDir, "AppData", "Local", "pip", "cache"),
|
|
99
|
-
path.join(homeDir, "AppData", "Local", "pip", "Cache"),
|
|
100
|
-
path.join(homeDir, "pip", "cache"),
|
|
101
|
-
];
|
|
102
|
-
for (const cachePath of windowsPaths) {
|
|
103
|
-
if (await (0, fs_1.pathExists)(cachePath)) {
|
|
104
|
-
paths.push(cachePath);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
// Linux/Unix
|
|
110
|
-
const linuxPaths = [
|
|
111
|
-
path.join(homeDir, ".cache", "pip"),
|
|
112
|
-
path.join(homeDir, ".pip", "cache"),
|
|
113
|
-
"/tmp/pip-cache",
|
|
114
|
-
];
|
|
115
|
-
for (const cachePath of linuxPaths) {
|
|
116
|
-
if (await (0, fs_1.pathExists)(cachePath)) {
|
|
117
|
-
paths.push(cachePath);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
// Try to get pip cache directory from pip itself
|
|
122
|
-
try {
|
|
123
|
-
const pipCacheDir = await this.getPipCacheDir();
|
|
124
|
-
if (pipCacheDir && !paths.includes(pipCacheDir)) {
|
|
125
|
-
paths.push(pipCacheDir);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
catch (error) {
|
|
129
|
-
(0, cli_1.printVerbose)(`Could not get pip cache directory: ${error}`);
|
|
130
|
-
}
|
|
131
|
-
// Look for virtual environment caches
|
|
132
|
-
try {
|
|
133
|
-
const venvCaches = await this.findVirtualEnvCaches();
|
|
134
|
-
paths.push(...venvCaches);
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
(0, cli_1.printVerbose)(`Error finding virtual environment caches: ${error}`);
|
|
138
|
-
}
|
|
139
|
-
return [...new Set(paths)]; // Remove duplicates
|
|
140
|
-
}
|
|
141
|
-
async getPipCacheDir() {
|
|
142
|
-
const pipCommands = ["pip3", "pip"];
|
|
143
|
-
for (const cmd of pipCommands) {
|
|
144
|
-
try {
|
|
145
|
-
const result = await (0, execa_1.default)(cmd, ["cache", "dir"]);
|
|
146
|
-
const cacheDir = result.stdout.trim();
|
|
147
|
-
if (cacheDir && (await (0, fs_1.pathExists)(cacheDir))) {
|
|
148
|
-
return cacheDir;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
catch {
|
|
152
|
-
// Command failed, try next
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
157
|
-
async findVirtualEnvCaches() {
|
|
158
|
-
const caches = [];
|
|
159
|
-
const homeDir = os.homedir();
|
|
160
|
-
// Common virtual environment directories
|
|
161
|
-
const venvDirs = [
|
|
162
|
-
path.join(homeDir, ".virtualenvs"),
|
|
163
|
-
path.join(homeDir, "envs"),
|
|
164
|
-
path.join(homeDir, "venv"),
|
|
165
|
-
path.join(homeDir, ".venv"),
|
|
166
|
-
path.join(homeDir, "anaconda3", "envs"),
|
|
167
|
-
path.join(homeDir, "miniconda3", "envs"),
|
|
168
|
-
path.join(homeDir, ".conda", "envs"),
|
|
169
|
-
];
|
|
170
|
-
for (const venvDir of venvDirs) {
|
|
171
|
-
if (await (0, fs_1.pathExists)(venvDir)) {
|
|
172
|
-
try {
|
|
173
|
-
const envCaches = await this.findPipCachesInDir(venvDir);
|
|
174
|
-
caches.push(...envCaches);
|
|
175
|
-
}
|
|
176
|
-
catch (error) {
|
|
177
|
-
(0, cli_1.printVerbose)(`Error searching virtual envs in ${venvDir}: ${error}`);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
return caches;
|
|
182
|
-
}
|
|
183
|
-
async findPipCachesInDir(dir) {
|
|
184
|
-
const caches = [];
|
|
185
|
-
try {
|
|
186
|
-
const platform = os.platform();
|
|
187
|
-
// Look for pip cache subdirectories in virtual environments
|
|
188
|
-
const possibleCachePaths = [];
|
|
189
|
-
if (platform === "win32") {
|
|
190
|
-
possibleCachePaths.push(path.join(dir, "Lib", "site-packages", "pip", "_internal", "cache"), path.join(dir, "pip", "cache"));
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
possibleCachePaths.push(path.join(dir, "lib", "python*", "site-packages", "pip", "_internal", "cache"), path.join(dir, "pip", "cache"));
|
|
194
|
-
}
|
|
195
|
-
for (const cachePath of possibleCachePaths) {
|
|
196
|
-
if (await (0, fs_1.pathExists)(cachePath)) {
|
|
197
|
-
caches.push(cachePath);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
catch {
|
|
202
|
-
// Ignore errors
|
|
203
|
-
}
|
|
204
|
-
return caches;
|
|
205
|
-
}
|
|
206
|
-
async isAvailable() {
|
|
207
|
-
// Check if Python is installed
|
|
208
|
-
const pythonVersion = await this.getPythonVersion();
|
|
209
|
-
if (pythonVersion) {
|
|
210
|
-
(0, cli_1.printVerbose)(`Found Python: ${pythonVersion}`);
|
|
211
|
-
return true;
|
|
212
|
-
}
|
|
213
|
-
// Check if pip is installed
|
|
214
|
-
const pipVersion = await this.getPipVersion();
|
|
215
|
-
if (pipVersion) {
|
|
216
|
-
(0, cli_1.printVerbose)(`Found pip: ${pipVersion}`);
|
|
217
|
-
return true;
|
|
218
|
-
}
|
|
219
|
-
// Check if pip cache exists
|
|
220
|
-
const homeDir = os.homedir();
|
|
221
|
-
const platform = os.platform();
|
|
222
|
-
let defaultCachePath;
|
|
223
|
-
if (platform === "darwin") {
|
|
224
|
-
defaultCachePath = path.join(homeDir, "Library", "Caches", "pip");
|
|
225
|
-
}
|
|
226
|
-
else if (platform === "win32") {
|
|
227
|
-
defaultCachePath = path.join(homeDir, "AppData", "Local", "pip", "cache");
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
defaultCachePath = path.join(homeDir, ".cache", "pip");
|
|
231
|
-
}
|
|
232
|
-
if (await (0, fs_1.pathExists)(defaultCachePath)) {
|
|
233
|
-
(0, cli_1.printVerbose)(`Found pip cache at ${defaultCachePath}`);
|
|
234
|
-
return true;
|
|
235
|
-
}
|
|
236
|
-
return false;
|
|
237
|
-
}
|
|
238
|
-
async getCacheInfo() {
|
|
239
|
-
const isInstalled = await this.isAvailable();
|
|
240
|
-
if (!isInstalled) {
|
|
241
|
-
return {
|
|
242
|
-
name: this.name,
|
|
243
|
-
type: this.type,
|
|
244
|
-
description: this.description,
|
|
245
|
-
paths: [],
|
|
246
|
-
isInstalled: false,
|
|
247
|
-
size: 0,
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
const cachePaths = await this.getPipCachePaths();
|
|
251
|
-
let totalSize = 0;
|
|
252
|
-
const validPaths = [];
|
|
253
|
-
for (const cachePath of cachePaths) {
|
|
254
|
-
try {
|
|
255
|
-
const size = await (0, fs_1.getDirectorySize)(cachePath, true); // Use estimated size for large dirs
|
|
256
|
-
totalSize += size;
|
|
257
|
-
validPaths.push(cachePath);
|
|
258
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.folder} ${cachePath}: ${(size / (1024 * 1024)).toFixed(1)} MB`);
|
|
259
|
-
}
|
|
260
|
-
catch (error) {
|
|
261
|
-
(0, cli_1.printVerbose)(`Error calculating size for ${cachePath}: ${error}`);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
return {
|
|
265
|
-
name: this.name,
|
|
266
|
-
type: this.type,
|
|
267
|
-
description: this.description,
|
|
268
|
-
paths: validPaths,
|
|
269
|
-
isInstalled: true,
|
|
270
|
-
size: totalSize,
|
|
271
|
-
};
|
|
272
|
-
}
|
|
273
|
-
async clear(dryRun = false, _criteria, cacheInfo) {
|
|
274
|
-
const info = cacheInfo || (await this.getCacheInfo());
|
|
275
|
-
if (!info.isInstalled) {
|
|
276
|
-
return {
|
|
277
|
-
name: this.name,
|
|
278
|
-
success: false,
|
|
279
|
-
error: "Python/pip is not available",
|
|
280
|
-
clearedPaths: [],
|
|
281
|
-
sizeBefore: 0,
|
|
282
|
-
sizeAfter: 0,
|
|
283
|
-
};
|
|
284
|
-
}
|
|
285
|
-
const sizeBefore = info.size || 0;
|
|
286
|
-
const clearedPaths = [];
|
|
287
|
-
let errors = [];
|
|
288
|
-
// Try pip cache purge command first
|
|
289
|
-
if (!dryRun) {
|
|
290
|
-
await this.runPipCachePurge();
|
|
291
|
-
}
|
|
292
|
-
for (const cachePath of info.paths) {
|
|
293
|
-
try {
|
|
294
|
-
if (dryRun) {
|
|
295
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Would clear: ${cachePath}`);
|
|
296
|
-
clearedPaths.push(cachePath);
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Clearing: ${cachePath}`);
|
|
300
|
-
await (0, fs_1.safeRmrf)(cachePath);
|
|
301
|
-
clearedPaths.push(cachePath);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
catch (error) {
|
|
305
|
-
const errorMsg = `Failed to clear ${cachePath}: ${error}`;
|
|
306
|
-
errors.push(errorMsg);
|
|
307
|
-
(0, cli_1.printVerbose)(errorMsg);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
return {
|
|
311
|
-
name: this.name,
|
|
312
|
-
success: errors.length === 0,
|
|
313
|
-
sizeBefore,
|
|
314
|
-
sizeAfter: 0, // Set to 0 as we don't want to rescan
|
|
315
|
-
error: errors.length > 0 ? errors.join("; ") : undefined,
|
|
316
|
-
clearedPaths,
|
|
317
|
-
};
|
|
318
|
-
}
|
|
319
|
-
async runPipCachePurge() {
|
|
320
|
-
const pipCommands = ["pip3", "pip"];
|
|
321
|
-
for (const cmd of pipCommands) {
|
|
322
|
-
try {
|
|
323
|
-
await (0, execa_1.default)(cmd, ["cache", "purge"]);
|
|
324
|
-
(0, cli_1.printVerbose)(`${cli_1.symbols.soap} Executed: ${cmd} cache purge`);
|
|
325
|
-
return; // Success, don't try other commands
|
|
326
|
-
}
|
|
327
|
-
catch (error) {
|
|
328
|
-
(0, cli_1.printVerbose)(`Note: ${cmd} cache purge failed: ${error}`);
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
exports.default = new PipCleaner();
|
|
334
|
-
//# sourceMappingURL=pip.js.map
|