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