squeaky-clean 0.1.10 → 0.1.12
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 +367 -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 +460 -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 +75 -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 +255 -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 +4 -4
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare function pathExists(filePath: string): Promise<boolean>;
|
|
2
|
+
export declare function getDirectorySize(dirPath: string, skipLargeDirectories?: boolean): Promise<number>;
|
|
3
|
+
export declare function getEstimatedDirectorySize(dirPath: string): Promise<number>;
|
|
4
|
+
export declare function safeRmrf(targetPath: string): Promise<void>;
|
|
5
|
+
export declare function createDirectoryIfNotExists(dirPath: string): Promise<void>;
|
|
6
|
+
export declare function isWritable(dirPath: string): Promise<boolean>;
|
|
7
|
+
export declare function getDiskSpace(dirPath: string): Promise<{
|
|
8
|
+
free: number;
|
|
9
|
+
total: number;
|
|
10
|
+
} | null>;
|
|
11
|
+
export declare function getFileModificationTime(filePath: string): Promise<Date | null>;
|
|
12
|
+
export declare function sanitizePath(inputPath: string): string;
|
|
13
|
+
export declare function getCacheSize(dirPath: string): Promise<number>;
|
|
14
|
+
export declare function clearPaths(paths: string[]): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Get directory size with caching (2-minute TTL)
|
|
17
|
+
* Use this for repeated size calculations on the same paths
|
|
18
|
+
*/
|
|
19
|
+
export declare function getCachedDirectorySize(dirPath: string, skipLargeDirectories?: boolean): Promise<number>;
|
|
20
|
+
/**
|
|
21
|
+
* Get estimated directory size with caching (2-minute TTL)
|
|
22
|
+
*/
|
|
23
|
+
export declare function getCachedEstimatedDirectorySize(dirPath: string): Promise<number>;
|
|
24
|
+
/**
|
|
25
|
+
* Invalidate size cache for a path (call after clearing)
|
|
26
|
+
*/
|
|
27
|
+
export declare function invalidateSizeCache(dirPath: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Invalidate all size caches matching a prefix
|
|
30
|
+
*/
|
|
31
|
+
export declare function invalidateSizeCachePrefix(prefix: string): void;
|
|
32
|
+
//# sourceMappingURL=fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAKA,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAYD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,oBAAoB,GAAE,OAAe,GACpC,OAAO,CAAC,MAAM,CAAC,CAcjB;AA2DD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAuCjB;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhE;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOlE;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAWjD;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAOtB;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOtD;AAGD,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;AAGD,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/D;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,oBAAoB,GAAE,OAAe,GACpC,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGzD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG9D"}
|
package/dist/utils/fs.js
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
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.pathExists = pathExists;
|
|
7
|
+
exports.getDirectorySize = getDirectorySize;
|
|
8
|
+
exports.getEstimatedDirectorySize = getEstimatedDirectorySize;
|
|
9
|
+
exports.safeRmrf = safeRmrf;
|
|
10
|
+
exports.createDirectoryIfNotExists = createDirectoryIfNotExists;
|
|
11
|
+
exports.isWritable = isWritable;
|
|
12
|
+
exports.getDiskSpace = getDiskSpace;
|
|
13
|
+
exports.getFileModificationTime = getFileModificationTime;
|
|
14
|
+
exports.sanitizePath = sanitizePath;
|
|
15
|
+
exports.getCacheSize = getCacheSize;
|
|
16
|
+
exports.clearPaths = clearPaths;
|
|
17
|
+
exports.getCachedDirectorySize = getCachedDirectorySize;
|
|
18
|
+
exports.getCachedEstimatedDirectorySize = getCachedEstimatedDirectorySize;
|
|
19
|
+
exports.invalidateSizeCache = invalidateSizeCache;
|
|
20
|
+
exports.invalidateSizeCachePrefix = invalidateSizeCachePrefix;
|
|
21
|
+
const fs_1 = require("fs");
|
|
22
|
+
const path_1 = __importDefault(require("path"));
|
|
23
|
+
const rimraf_1 = require("rimraf");
|
|
24
|
+
const cache_1 = require("./cache");
|
|
25
|
+
async function pathExists(filePath) {
|
|
26
|
+
try {
|
|
27
|
+
await fs_1.promises.access(filePath);
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Timeout wrapper for directory size calculation
|
|
35
|
+
const withTimeout = (promise, timeoutMs) => {
|
|
36
|
+
return Promise.race([
|
|
37
|
+
promise,
|
|
38
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error("Timeout")), timeoutMs)),
|
|
39
|
+
]);
|
|
40
|
+
};
|
|
41
|
+
async function getDirectorySize(dirPath, skipLargeDirectories = false) {
|
|
42
|
+
// Wrap the actual calculation with an 8-second timeout to prevent hangs
|
|
43
|
+
try {
|
|
44
|
+
return await withTimeout(calculateDirectorySize(dirPath, skipLargeDirectories), 8000);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (error instanceof Error && error.message === "Timeout") {
|
|
48
|
+
// Use estimated size for directories that take too long
|
|
49
|
+
return getEstimatedDirectorySize(dirPath);
|
|
50
|
+
}
|
|
51
|
+
return 0;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function calculateDirectorySize(dirPath, skipLargeDirectories = false) {
|
|
55
|
+
try {
|
|
56
|
+
const stats = await fs_1.promises.stat(dirPath);
|
|
57
|
+
if (!stats.isDirectory()) {
|
|
58
|
+
return stats.size;
|
|
59
|
+
}
|
|
60
|
+
// For very large cache directories, return estimated size instead of calculating exact size
|
|
61
|
+
if (skipLargeDirectories) {
|
|
62
|
+
return getEstimatedDirectorySize(dirPath);
|
|
63
|
+
}
|
|
64
|
+
let totalSize = 0;
|
|
65
|
+
const stack = [dirPath];
|
|
66
|
+
let processedCount = 0;
|
|
67
|
+
const maxItems = 10000; // Limit total items processed to prevent memory issues
|
|
68
|
+
while (stack.length > 0 && processedCount < maxItems) {
|
|
69
|
+
const currentDir = stack.pop();
|
|
70
|
+
try {
|
|
71
|
+
const items = await fs_1.promises.readdir(currentDir);
|
|
72
|
+
for (const item of items) {
|
|
73
|
+
if (processedCount >= maxItems)
|
|
74
|
+
break;
|
|
75
|
+
const itemPath = path_1.default.join(currentDir, item);
|
|
76
|
+
try {
|
|
77
|
+
const itemStats = await fs_1.promises.stat(itemPath);
|
|
78
|
+
if (itemStats.isDirectory()) {
|
|
79
|
+
stack.push(itemPath);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
totalSize += itemStats.size;
|
|
83
|
+
}
|
|
84
|
+
processedCount++;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Skip items we can't access (permissions, etc.)
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// Skip directories we can't access
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return totalSize;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return 0;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Fast estimation for large directories to avoid memory issues
|
|
102
|
+
async function getEstimatedDirectorySize(dirPath) {
|
|
103
|
+
try {
|
|
104
|
+
const stats = await fs_1.promises.stat(dirPath);
|
|
105
|
+
if (!stats.isDirectory()) {
|
|
106
|
+
return stats.size;
|
|
107
|
+
}
|
|
108
|
+
// Sample a few items to estimate average size
|
|
109
|
+
const items = await fs_1.promises.readdir(dirPath);
|
|
110
|
+
const sampleSize = Math.min(100, items.length);
|
|
111
|
+
if (sampleSize === 0)
|
|
112
|
+
return 0;
|
|
113
|
+
let sampleTotalSize = 0;
|
|
114
|
+
let sampleFileCount = 0;
|
|
115
|
+
for (let i = 0; i < sampleSize; i++) {
|
|
116
|
+
const itemPath = path_1.default.join(dirPath, items[i]);
|
|
117
|
+
try {
|
|
118
|
+
const itemStats = await fs_1.promises.stat(itemPath);
|
|
119
|
+
if (!itemStats.isDirectory()) {
|
|
120
|
+
sampleTotalSize += itemStats.size;
|
|
121
|
+
sampleFileCount++;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
// Skip items we can't access
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (sampleFileCount === 0)
|
|
129
|
+
return 0;
|
|
130
|
+
const averageFileSize = sampleTotalSize / sampleFileCount;
|
|
131
|
+
const totalFiles = items.length;
|
|
132
|
+
return Math.round(averageFileSize * totalFiles);
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return 0;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
async function safeRmrf(targetPath) {
|
|
139
|
+
try {
|
|
140
|
+
if (!(await pathExists(targetPath))) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
// Safety checks
|
|
144
|
+
const normalizedPath = path_1.default.resolve(targetPath);
|
|
145
|
+
const isInHomeOrTemp = normalizedPath.includes(path_1.default.join(require("os").homedir())) ||
|
|
146
|
+
normalizedPath.includes(require("os").tmpdir()) ||
|
|
147
|
+
normalizedPath.includes("node_modules") ||
|
|
148
|
+
normalizedPath.includes("cache") ||
|
|
149
|
+
normalizedPath.includes("temp");
|
|
150
|
+
if (!isInHomeOrTemp) {
|
|
151
|
+
throw new Error(`Refusing to delete path outside safe directories: ${normalizedPath}`);
|
|
152
|
+
}
|
|
153
|
+
// Use rimraf for cross-platform reliable deletion
|
|
154
|
+
await (0, rimraf_1.rimraf)(normalizedPath, {
|
|
155
|
+
maxRetries: 3,
|
|
156
|
+
retryDelay: 100,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
throw new Error(`Failed to delete ${targetPath}: ${error instanceof Error ? error.message : error}`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
async function createDirectoryIfNotExists(dirPath) {
|
|
164
|
+
try {
|
|
165
|
+
await fs_1.promises.mkdir(dirPath, { recursive: true });
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
if (error.code !== "EEXIST") {
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
async function isWritable(dirPath) {
|
|
174
|
+
try {
|
|
175
|
+
await fs_1.promises.access(dirPath, fs_1.promises.constants.W_OK);
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
async function getDiskSpace(dirPath) {
|
|
183
|
+
try {
|
|
184
|
+
const stats = await fs_1.promises.statfs(dirPath);
|
|
185
|
+
return {
|
|
186
|
+
free: stats.bavail * stats.bsize,
|
|
187
|
+
total: stats.blocks * stats.bsize,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
// statfs not available on all platforms
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
async function getFileModificationTime(filePath) {
|
|
196
|
+
try {
|
|
197
|
+
const stats = await fs_1.promises.stat(filePath);
|
|
198
|
+
return stats.mtime;
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
function sanitizePath(inputPath) {
|
|
205
|
+
if (!inputPath)
|
|
206
|
+
return ".";
|
|
207
|
+
// Normalize path separators to forward slashes and remove invalid characters
|
|
208
|
+
return path_1.default
|
|
209
|
+
.normalize(inputPath)
|
|
210
|
+
.replace(/\\/g, "/")
|
|
211
|
+
.replace(/[<>:"|?*]/g, "");
|
|
212
|
+
}
|
|
213
|
+
// Alias for cache size calculation
|
|
214
|
+
async function getCacheSize(dirPath) {
|
|
215
|
+
return getDirectorySize(dirPath, false);
|
|
216
|
+
}
|
|
217
|
+
// Clear multiple paths
|
|
218
|
+
async function clearPaths(paths) {
|
|
219
|
+
for (const p of paths) {
|
|
220
|
+
await safeRmrf(p);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Get directory size with caching (2-minute TTL)
|
|
225
|
+
* Use this for repeated size calculations on the same paths
|
|
226
|
+
*/
|
|
227
|
+
async function getCachedDirectorySize(dirPath, skipLargeDirectories = false) {
|
|
228
|
+
return cache_1.cacheManager.getCachedSize(dirPath, () => getDirectorySize(dirPath, skipLargeDirectories), 120000);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get estimated directory size with caching (2-minute TTL)
|
|
232
|
+
*/
|
|
233
|
+
async function getCachedEstimatedDirectorySize(dirPath) {
|
|
234
|
+
return cache_1.cacheManager.getCachedSize(`estimated:${dirPath}`, () => getEstimatedDirectorySize(dirPath), 120000);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Invalidate size cache for a path (call after clearing)
|
|
238
|
+
*/
|
|
239
|
+
function invalidateSizeCache(dirPath) {
|
|
240
|
+
cache_1.cacheManager.invalidateSize(dirPath);
|
|
241
|
+
cache_1.cacheManager.invalidateSize(`estimated:${dirPath}`);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Invalidate all size caches matching a prefix
|
|
245
|
+
*/
|
|
246
|
+
function invalidateSizeCachePrefix(prefix) {
|
|
247
|
+
cache_1.cacheManager.invalidateSizePrefix(prefix);
|
|
248
|
+
cache_1.cacheManager.invalidateSizePrefix(`estimated:${prefix}`);
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "squeaky-clean",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"description": "✨ Easy, customizable and expandable development cache cleaner CLI with interactive configuration! Smart, safe, and configurable cache management for 25+ development tools.",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"squeaky-clean": "dist/cli.js"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
|
-
"build": "tsc",
|
|
11
|
+
"build": "tsc --build",
|
|
12
12
|
"build:watch": "tsc --watch",
|
|
13
13
|
"dev": "tsx src/cli.ts",
|
|
14
14
|
"start": "node dist/cli.js",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"lint": "eslint src --ext .ts,.tsx",
|
|
19
19
|
"lint:fix": "eslint src --ext .ts,.tsx --fix",
|
|
20
20
|
"format": "prettier --write src/**/*.{ts,tsx,json}",
|
|
21
|
-
"clean": "rimraf dist",
|
|
22
|
-
"prepublishOnly": "npm run clean &&
|
|
21
|
+
"clean": "rimraf dist .tsbuildinfo",
|
|
22
|
+
"prepublishOnly": "npm run clean && tsc --build --force",
|
|
23
23
|
"release": "npm run test && npm run build && npm publish",
|
|
24
24
|
"release:patch": "npm run version:patch && npm run test && npm run build && npm publish",
|
|
25
25
|
"release:minor": "npm run version:minor && npm run test && npm run build && npm publish",
|