squeaky-clean 0.1.8 → 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.
Files changed (241) hide show
  1. package/package.json +22 -24
  2. package/dist/cleaners/BaseCleaner.d.ts +0 -57
  3. package/dist/cleaners/BaseCleaner.d.ts.map +0 -1
  4. package/dist/cleaners/BaseCleaner.js +0 -299
  5. package/dist/cleaners/BaseCleaner.js.map +0 -1
  6. package/dist/cleaners/CleanerRegistry.d.ts +0 -65
  7. package/dist/cleaners/CleanerRegistry.d.ts.map +0 -1
  8. package/dist/cleaners/CleanerRegistry.js +0 -112
  9. package/dist/cleaners/CleanerRegistry.js.map +0 -1
  10. package/dist/cleaners/androidstudio.d.ts +0 -16
  11. package/dist/cleaners/androidstudio.d.ts.map +0 -1
  12. package/dist/cleaners/androidstudio.js +0 -375
  13. package/dist/cleaners/androidstudio.js.map +0 -1
  14. package/dist/cleaners/brew.d.ts +0 -4
  15. package/dist/cleaners/brew.d.ts.map +0 -1
  16. package/dist/cleaners/brew.js +0 -197
  17. package/dist/cleaners/brew.js.map +0 -1
  18. package/dist/cleaners/brewEnhanced.d.ts +0 -18
  19. package/dist/cleaners/brewEnhanced.d.ts.map +0 -1
  20. package/dist/cleaners/brewEnhanced.js +0 -255
  21. package/dist/cleaners/brewEnhanced.js.map +0 -1
  22. package/dist/cleaners/bun.d.ts +0 -14
  23. package/dist/cleaners/bun.d.ts.map +0 -1
  24. package/dist/cleaners/bun.js +0 -207
  25. package/dist/cleaners/bun.js.map +0 -1
  26. package/dist/cleaners/cargo.d.ts +0 -15
  27. package/dist/cleaners/cargo.d.ts.map +0 -1
  28. package/dist/cleaners/cargo.js +0 -193
  29. package/dist/cleaners/cargo.js.map +0 -1
  30. package/dist/cleaners/chrome.d.ts +0 -14
  31. package/dist/cleaners/chrome.d.ts.map +0 -1
  32. package/dist/cleaners/chrome.js +0 -250
  33. package/dist/cleaners/chrome.js.map +0 -1
  34. package/dist/cleaners/cocoapods.d.ts +0 -16
  35. package/dist/cleaners/cocoapods.d.ts.map +0 -1
  36. package/dist/cleaners/cocoapods.js +0 -180
  37. package/dist/cleaners/cocoapods.js.map +0 -1
  38. package/dist/cleaners/cursor.d.ts +0 -15
  39. package/dist/cleaners/cursor.d.ts.map +0 -1
  40. package/dist/cleaners/cursor.js +0 -377
  41. package/dist/cleaners/cursor.js.map +0 -1
  42. package/dist/cleaners/docker.d.ts +0 -35
  43. package/dist/cleaners/docker.d.ts.map +0 -1
  44. package/dist/cleaners/docker.js +0 -285
  45. package/dist/cleaners/docker.js.map +0 -1
  46. package/dist/cleaners/firefox.d.ts +0 -15
  47. package/dist/cleaners/firefox.d.ts.map +0 -1
  48. package/dist/cleaners/firefox.js +0 -281
  49. package/dist/cleaners/firefox.js.map +0 -1
  50. package/dist/cleaners/flutter.d.ts +0 -18
  51. package/dist/cleaners/flutter.d.ts.map +0 -1
  52. package/dist/cleaners/flutter.js +0 -354
  53. package/dist/cleaners/flutter.js.map +0 -1
  54. package/dist/cleaners/goBuild.d.ts +0 -18
  55. package/dist/cleaners/goBuild.d.ts.map +0 -1
  56. package/dist/cleaners/goBuild.js +0 -196
  57. package/dist/cleaners/goBuild.js.map +0 -1
  58. package/dist/cleaners/gradle.d.ts +0 -14
  59. package/dist/cleaners/gradle.d.ts.map +0 -1
  60. package/dist/cleaners/gradle.js +0 -336
  61. package/dist/cleaners/gradle.js.map +0 -1
  62. package/dist/cleaners/index.d.ts +0 -51
  63. package/dist/cleaners/index.d.ts.map +0 -1
  64. package/dist/cleaners/index.js +0 -271
  65. package/dist/cleaners/index.js.map +0 -1
  66. package/dist/cleaners/jetbrains.d.ts +0 -18
  67. package/dist/cleaners/jetbrains.d.ts.map +0 -1
  68. package/dist/cleaners/jetbrains.js +0 -441
  69. package/dist/cleaners/jetbrains.js.map +0 -1
  70. package/dist/cleaners/maven.d.ts +0 -15
  71. package/dist/cleaners/maven.d.ts.map +0 -1
  72. package/dist/cleaners/maven.js +0 -182
  73. package/dist/cleaners/maven.js.map +0 -1
  74. package/dist/cleaners/nix.d.ts +0 -4
  75. package/dist/cleaners/nix.d.ts.map +0 -1
  76. package/dist/cleaners/nix.js +0 -227
  77. package/dist/cleaners/nix.js.map +0 -1
  78. package/dist/cleaners/nodeGyp.d.ts +0 -14
  79. package/dist/cleaners/nodeGyp.d.ts.map +0 -1
  80. package/dist/cleaners/nodeGyp.js +0 -157
  81. package/dist/cleaners/nodeGyp.js.map +0 -1
  82. package/dist/cleaners/npm.d.ts +0 -14
  83. package/dist/cleaners/npm.d.ts.map +0 -1
  84. package/dist/cleaners/npm.js +0 -198
  85. package/dist/cleaners/npm.js.map +0 -1
  86. package/dist/cleaners/npmEnhanced.d.ts +0 -19
  87. package/dist/cleaners/npmEnhanced.d.ts.map +0 -1
  88. package/dist/cleaners/npmEnhanced.js +0 -336
  89. package/dist/cleaners/npmEnhanced.js.map +0 -1
  90. package/dist/cleaners/nuget.d.ts +0 -16
  91. package/dist/cleaners/nuget.d.ts.map +0 -1
  92. package/dist/cleaners/nuget.js +0 -197
  93. package/dist/cleaners/nuget.js.map +0 -1
  94. package/dist/cleaners/nx.d.ts +0 -18
  95. package/dist/cleaners/nx.d.ts.map +0 -1
  96. package/dist/cleaners/nx.js +0 -308
  97. package/dist/cleaners/nx.js.map +0 -1
  98. package/dist/cleaners/pip.d.ts +0 -19
  99. package/dist/cleaners/pip.d.ts.map +0 -1
  100. package/dist/cleaners/pip.js +0 -334
  101. package/dist/cleaners/pip.js.map +0 -1
  102. package/dist/cleaners/pipenv.d.ts +0 -16
  103. package/dist/cleaners/pipenv.d.ts.map +0 -1
  104. package/dist/cleaners/pipenv.js +0 -184
  105. package/dist/cleaners/pipenv.js.map +0 -1
  106. package/dist/cleaners/playwright.d.ts +0 -15
  107. package/dist/cleaners/playwright.d.ts.map +0 -1
  108. package/dist/cleaners/playwright.js +0 -221
  109. package/dist/cleaners/playwright.js.map +0 -1
  110. package/dist/cleaners/pnpm.d.ts +0 -14
  111. package/dist/cleaners/pnpm.d.ts.map +0 -1
  112. package/dist/cleaners/pnpm.js +0 -209
  113. package/dist/cleaners/pnpm.js.map +0 -1
  114. package/dist/cleaners/poetry.d.ts +0 -16
  115. package/dist/cleaners/poetry.d.ts.map +0 -1
  116. package/dist/cleaners/poetry.js +0 -184
  117. package/dist/cleaners/poetry.js.map +0 -1
  118. package/dist/cleaners/swiftpm.d.ts +0 -16
  119. package/dist/cleaners/swiftpm.d.ts.map +0 -1
  120. package/dist/cleaners/swiftpm.js +0 -179
  121. package/dist/cleaners/swiftpm.js.map +0 -1
  122. package/dist/cleaners/turbo.d.ts +0 -18
  123. package/dist/cleaners/turbo.d.ts.map +0 -1
  124. package/dist/cleaners/turbo.js +0 -325
  125. package/dist/cleaners/turbo.js.map +0 -1
  126. package/dist/cleaners/universalBinary.d.ts +0 -20
  127. package/dist/cleaners/universalBinary.d.ts.map +0 -1
  128. package/dist/cleaners/universalBinary.js +0 -318
  129. package/dist/cleaners/universalBinary.js.map +0 -1
  130. package/dist/cleaners/vite.d.ts +0 -17
  131. package/dist/cleaners/vite.d.ts.map +0 -1
  132. package/dist/cleaners/vite.js +0 -274
  133. package/dist/cleaners/vite.js.map +0 -1
  134. package/dist/cleaners/vscode.d.ts +0 -15
  135. package/dist/cleaners/vscode.d.ts.map +0 -1
  136. package/dist/cleaners/vscode.js +0 -411
  137. package/dist/cleaners/vscode.js.map +0 -1
  138. package/dist/cleaners/webpack.d.ts +0 -17
  139. package/dist/cleaners/webpack.d.ts.map +0 -1
  140. package/dist/cleaners/webpack.js +0 -263
  141. package/dist/cleaners/webpack.js.map +0 -1
  142. package/dist/cleaners/windsurf.d.ts +0 -15
  143. package/dist/cleaners/windsurf.d.ts.map +0 -1
  144. package/dist/cleaners/windsurf.js +0 -366
  145. package/dist/cleaners/windsurf.js.map +0 -1
  146. package/dist/cleaners/xcode.d.ts +0 -14
  147. package/dist/cleaners/xcode.d.ts.map +0 -1
  148. package/dist/cleaners/xcode.js +0 -348
  149. package/dist/cleaners/xcode.js.map +0 -1
  150. package/dist/cleaners/yarn.d.ts +0 -16
  151. package/dist/cleaners/yarn.d.ts.map +0 -1
  152. package/dist/cleaners/yarn.js +0 -266
  153. package/dist/cleaners/yarn.js.map +0 -1
  154. package/dist/cleaners/zed.d.ts +0 -15
  155. package/dist/cleaners/zed.d.ts.map +0 -1
  156. package/dist/cleaners/zed.js +0 -383
  157. package/dist/cleaners/zed.js.map +0 -1
  158. package/dist/cli.d.ts +0 -3
  159. package/dist/cli.d.ts.map +0 -1
  160. package/dist/cli.js +0 -367
  161. package/dist/cli.js.map +0 -1
  162. package/dist/commands/auto.d.ts +0 -8
  163. package/dist/commands/auto.d.ts.map +0 -1
  164. package/dist/commands/auto.js +0 -251
  165. package/dist/commands/auto.js.map +0 -1
  166. package/dist/commands/categories.d.ts +0 -8
  167. package/dist/commands/categories.d.ts.map +0 -1
  168. package/dist/commands/categories.js +0 -133
  169. package/dist/commands/categories.js.map +0 -1
  170. package/dist/commands/clean.d.ts +0 -3
  171. package/dist/commands/clean.d.ts.map +0 -1
  172. package/dist/commands/clean.js +0 -149
  173. package/dist/commands/clean.js.map +0 -1
  174. package/dist/commands/config.d.ts +0 -14
  175. package/dist/commands/config.d.ts.map +0 -1
  176. package/dist/commands/config.js +0 -460
  177. package/dist/commands/config.js.map +0 -1
  178. package/dist/commands/configDoctor.d.ts +0 -26
  179. package/dist/commands/configDoctor.d.ts.map +0 -1
  180. package/dist/commands/configDoctor.js +0 -60
  181. package/dist/commands/configDoctor.js.map +0 -1
  182. package/dist/commands/doctor.d.ts +0 -2
  183. package/dist/commands/doctor.d.ts.map +0 -1
  184. package/dist/commands/doctor.js +0 -141
  185. package/dist/commands/doctor.js.map +0 -1
  186. package/dist/commands/emojis.d.ts +0 -2
  187. package/dist/commands/emojis.d.ts.map +0 -1
  188. package/dist/commands/emojis.js +0 -28
  189. package/dist/commands/emojis.js.map +0 -1
  190. package/dist/commands/interactive.d.ts +0 -3
  191. package/dist/commands/interactive.d.ts.map +0 -1
  192. package/dist/commands/interactive.js +0 -284
  193. package/dist/commands/interactive.js.map +0 -1
  194. package/dist/commands/interactiveEnhanced.d.ts +0 -4
  195. package/dist/commands/interactiveEnhanced.d.ts.map +0 -1
  196. package/dist/commands/interactiveEnhanced.js +0 -460
  197. package/dist/commands/interactiveEnhanced.js.map +0 -1
  198. package/dist/commands/list.d.ts +0 -2
  199. package/dist/commands/list.d.ts.map +0 -1
  200. package/dist/commands/list.js +0 -68
  201. package/dist/commands/list.js.map +0 -1
  202. package/dist/commands/sizes.d.ts +0 -2
  203. package/dist/commands/sizes.d.ts.map +0 -1
  204. package/dist/commands/sizes.js +0 -87
  205. package/dist/commands/sizes.js.map +0 -1
  206. package/dist/commands/ub.d.ts +0 -10
  207. package/dist/commands/ub.d.ts.map +0 -1
  208. package/dist/commands/ub.js +0 -170
  209. package/dist/commands/ub.js.map +0 -1
  210. package/dist/config/index.d.ts +0 -31
  211. package/dist/config/index.d.ts.map +0 -1
  212. package/dist/config/index.js +0 -270
  213. package/dist/config/index.js.map +0 -1
  214. package/dist/config/loadConfig.d.ts +0 -7
  215. package/dist/config/loadConfig.d.ts.map +0 -1
  216. package/dist/config/loadConfig.js +0 -103
  217. package/dist/config/loadConfig.js.map +0 -1
  218. package/dist/config/migrateConfig.d.ts +0 -56
  219. package/dist/config/migrateConfig.d.ts.map +0 -1
  220. package/dist/config/migrateConfig.js +0 -102
  221. package/dist/config/migrateConfig.js.map +0 -1
  222. package/dist/plugins/discovery.d.ts +0 -6
  223. package/dist/plugins/discovery.d.ts.map +0 -1
  224. package/dist/plugins/discovery.js +0 -64
  225. package/dist/plugins/discovery.js.map +0 -1
  226. package/dist/profiles/index.d.ts +0 -61
  227. package/dist/profiles/index.d.ts.map +0 -1
  228. package/dist/profiles/index.js +0 -406
  229. package/dist/profiles/index.js.map +0 -1
  230. package/dist/types/index.d.ts +0 -176
  231. package/dist/types/index.d.ts.map +0 -1
  232. package/dist/types/index.js +0 -3
  233. package/dist/types/index.js.map +0 -1
  234. package/dist/utils/cli.d.ts +0 -46
  235. package/dist/utils/cli.d.ts.map +0 -1
  236. package/dist/utils/cli.js +0 -412
  237. package/dist/utils/cli.js.map +0 -1
  238. package/dist/utils/fs.d.ts +0 -15
  239. package/dist/utils/fs.d.ts.map +0 -1
  240. package/dist/utils/fs.js +0 -218
  241. package/dist/utils/fs.js.map +0 -1
package/dist/utils/cli.js DELETED
@@ -1,412 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.symbols = exports.colors = void 0;
7
- exports.colorize = colorize;
8
- exports.formatSize = formatSize;
9
- exports.formatSizeWithColor = formatSizeWithColor;
10
- exports.printHeader = printHeader;
11
- exports.printSuccess = printSuccess;
12
- exports.printError = printError;
13
- exports.printWarning = printWarning;
14
- exports.printInfo = printInfo;
15
- exports.printVerbose = printVerbose;
16
- exports.printTable = printTable;
17
- exports.createProgressMessage = createProgressMessage;
18
- exports.printCleanComplete = printCleanComplete;
19
- exports.showBootPristine = showBootPristine;
20
- const chalk_1 = __importDefault(require("chalk"));
21
- const config_1 = require("../config");
22
- exports.colors = {
23
- primary: chalk_1.default.cyan,
24
- success: chalk_1.default.green,
25
- warning: chalk_1.default.yellow,
26
- error: chalk_1.default.red,
27
- info: chalk_1.default.blue,
28
- muted: chalk_1.default.gray,
29
- bold: chalk_1.default.bold,
30
- dim: chalk_1.default.dim,
31
- };
32
- function colorize(text, color) {
33
- return config_1.config.shouldUseColors() ? exports.colors[color](text) : text;
34
- }
35
- function formatSize(bytes) {
36
- const sizes = ["B", "KB", "MB", "GB", "TB"];
37
- if (bytes === 0)
38
- return "0 B";
39
- const i = Math.floor(Math.log(bytes) / Math.log(1024));
40
- const size = (bytes / Math.pow(1024, i)).toFixed(i > 0 ? 1 : 0);
41
- return `${size} ${sizes[i]}`;
42
- }
43
- function formatSizeWithColor(bytes) {
44
- const formatted = formatSize(bytes);
45
- if (bytes === 0) {
46
- return colorize(formatted, "muted");
47
- }
48
- else if (bytes < 50 * 1024 * 1024) {
49
- // < 50MB
50
- return colorize(formatted, "success");
51
- }
52
- else if (bytes < 1024 * 1024 * 1024) {
53
- // < 1GB
54
- return colorize(formatted, "warning");
55
- }
56
- else {
57
- return colorize(formatted, "error");
58
- }
59
- }
60
- function printHeader(text) {
61
- const mode = config_1.config.getEmojiMode();
62
- const prefix = mode === "on" ? "🧼 " : "";
63
- console.log();
64
- console.log(colorize(`${prefix}${text}`, "bold"));
65
- console.log(colorize("─".repeat(text.length + prefix.length + 1), "dim"));
66
- }
67
- function printSuccess(text) {
68
- const mode = config_1.config.getEmojiMode();
69
- const prefix = mode === "on" || mode === "minimal" ? colorize("✅", "success") + " " : "";
70
- console.log(prefix + text);
71
- }
72
- function printError(text) {
73
- const mode = config_1.config.getEmojiMode();
74
- const prefix = mode === "on" || mode === "minimal" ? colorize("❌", "error") + " " : "";
75
- console.log(prefix + text);
76
- }
77
- function printWarning(text) {
78
- const mode = config_1.config.getEmojiMode();
79
- const prefix = mode === "on" || mode === "minimal" ? colorize("⚠️ ", "warning") : "";
80
- console.log(prefix + text);
81
- }
82
- function printInfo(text) {
83
- const mode = config_1.config.getEmojiMode();
84
- const prefix = mode === "on" || mode === "minimal" ? colorize("ℹ️ ", "info") : "";
85
- console.log(prefix + text);
86
- }
87
- function printVerbose(text) {
88
- if (config_1.config.isVerbose()) {
89
- const mode = config_1.config.getEmojiMode();
90
- const prefix = mode === "on" ? " 🔍 " : " ";
91
- console.log(colorize(prefix + text, "dim"));
92
- }
93
- }
94
- function printTable(headers, rows) {
95
- const colWidths = headers.map((header, i) => Math.max(header.length, ...rows.map((row) => row[i]?.length || 0)));
96
- // Header
97
- const headerRow = headers
98
- .map((header, i) => colorize(header.padEnd(colWidths[i]), "bold"))
99
- .join(" ");
100
- console.log(headerRow);
101
- // Separator
102
- const separator = colWidths
103
- .map((width) => colorize("─".repeat(width), "dim"))
104
- .join(" ");
105
- console.log(separator);
106
- // Rows
107
- rows.forEach((row) => {
108
- const formattedRow = row
109
- .map((cell, i) => cell.padEnd(colWidths[i]))
110
- .join(" ");
111
- console.log(formattedRow);
112
- });
113
- }
114
- function createProgressMessage(current, total, item) {
115
- const progress = `[${current}/${total}]`;
116
- const progressColored = colorize(progress, "dim");
117
- const itemColored = colorize(item, "primary");
118
- return `${progressColored} ${itemColored}`;
119
- }
120
- exports.symbols = {
121
- success: "✅",
122
- error: "❌",
123
- warning: "⚠️",
124
- info: "ℹ️",
125
- arrow: "→",
126
- bullet: "•",
127
- check: "✓",
128
- cross: "✗",
129
- hourglass: "⏳",
130
- rocket: "🚀",
131
- soap: "🧼",
132
- bubbles: "🫧",
133
- sparkles: "✨",
134
- gear: "⚙️",
135
- folder: "📁",
136
- file: "📄",
137
- trash: "🗑️",
138
- binary: "💾",
139
- apple: "🍎",
140
- };
141
- // Special message for completion
142
- function printCleanComplete(message) {
143
- const mode = config_1.config.getEmojiMode();
144
- const prefix = mode === "on" ? "✨ " : "";
145
- console.log(colorize(`${prefix}${message}`, "success"));
146
- }
147
- // Animation configuration constants
148
- const BOOT_ANIMATION = {
149
- TRIGGER_CHANCE: 0.05,
150
- DELAYS: {
151
- INITIAL: 2000,
152
- TITLE: 2500,
153
- DRAMATIC_PAUSE: 5000,
154
- JOKE: 2000,
155
- RICK_ROLL: 2105,
156
- FINAL: 3000,
157
- },
158
- TIMING: {
159
- BASE: 5000,
160
- RANDOM_MAX: 7000,
161
- STEP_RATIOS: [0.2, 0.3, 0.5],
162
- },
163
- };
164
- // first-time boot-up pristine
165
- async function showBootPristine(force = false, funModeAllowed = true) {
166
- // Skip if fun mode is not allowed
167
- if (!funModeAllowed)
168
- return;
169
- // maybe trigger
170
- if (!force && Math.random() > BOOT_ANIMATION.TRIGGER_CHANCE)
171
- return;
172
- console.log();
173
- await new Promise((start) => setTimeout(start, BOOT_ANIMATION.DELAYS.INITIAL));
174
- console.log(colorize("PRISTINE SYSTEM CLEAN ACTIVATED", "primary"));
175
- await new Promise((start) => setTimeout(start, BOOT_ANIMATION.DELAYS.TITLE));
176
- console.log(colorize("Initializing factory OS reset and reinstall...", "success"));
177
- // progress indicator
178
- const steps = [
179
- "Backing up critical system files",
180
- "Preparing clean installation",
181
- "Removing all user data",
182
- ];
183
- // varying delay for each step
184
- const totalTime = BOOT_ANIMATION.TIMING.BASE +
185
- Math.random() * BOOT_ANIMATION.TIMING.RANDOM_MAX;
186
- const stepDelays = BOOT_ANIMATION.TIMING.STEP_RATIOS.map((ratio) => totalTime * ratio);
187
- const stepColors = ["warning", "error", "warning"];
188
- for (let i = 0; i < steps.length; i++) {
189
- await new Promise((resolve) => setTimeout(resolve, stepDelays[i]));
190
- // This absurd calculation always returns: 0 for i=0, 1 for i=1, 1 for i=2
191
- // Keeping it for the lols but commenting what it actually does
192
- const φ = (1 + Math.sqrt(5)) / 2; // golden ratio, why not
193
- const e = Math.E;
194
- const ε = Number.EPSILON;
195
- console.log(colorize(` ${exports.symbols.hourglass} ${steps[i]}...`, stepColors[~~(Math.tanh(Math.asinh((((i & 1) ^ (i >> 1)) +
196
- Math.log(Math.exp(0)) +
197
- Math.sqrt(Math.pow(Math.sin(i * Math.PI), 2) +
198
- Math.pow(Math.cos(i * Math.PI), 2)) -
199
- 1) *
200
- (φ / φ) *
201
- Math.cbrt(Math.pow(e, Math.log(1))) *
202
- Array.from({ length: i + 1 }, (_, k) => k === i ? 1 : 0).reduce((a, b) => a + b, 0))) *
203
- Math.cosh(Math.atanh(0.5)) *
204
- 2) %
205
- (stepColors.length + ε - ε)]));
206
- }
207
- const hahaDelay = BOOT_ANIMATION.DELAYS.JOKE;
208
- const haha = [
209
- "\n",
210
- "lol",
211
- "\n",
212
- "\n🤡🤡🤡🤡🤡🤡🤡\n🤡 🤡\n🤡 🤡 🤡 🤡\n🤡 🤡\n🤡 🤡 🤡\n🤡 🤡 🤡 🤡\n🤡 🤡🤡🤡 🤡\n🤡 🤡\n🤡🤡🤡🤡🤡🤡🤡",
213
- ];
214
- const hahaColors = ["error", "dim"];
215
- // dramatic pause
216
- await new Promise((getEm) => setTimeout(getEm, BOOT_ANIMATION.DELAYS.DRAMATIC_PAUSE));
217
- console.log();
218
- for (let i = 0; i < haha.length; i++) {
219
- await new Promise((end) => setTimeout(end, hahaDelay));
220
- console.log(colorize(`${haha[i]}`, hahaColors[i % hahaColors.length]));
221
- console.log();
222
- }
223
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
224
- async function showDancingRick() {
225
- const rickDance = [
226
- `
227
- ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫
228
- (づ。◕‿‿◕。)づ
229
- || ||
230
- /\\ /\\
231
- `,
232
- `
233
- ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪
234
- \\(◕‿‿◕\\)
235
- || ||
236
- /\\ /\\
237
- `,
238
- `
239
- ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫
240
- /(◕‿‿◕)/
241
- || ||
242
- /\\ /\\
243
- `,
244
- `
245
- ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪
246
- \\(◕‿‿◕)/
247
- \\ /
248
- \\\\//
249
- /\\
250
- `,
251
- `
252
- ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫
253
- \(◕‿‿◕)\
254
- \\ \\
255
- \\ \\
256
- /\\ /\\
257
- `,
258
- `
259
- ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪
260
- /(◕‿‿◕)/
261
- / /
262
- / /
263
- /\\ /\\
264
- `,
265
- `
266
- ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫
267
- ~(˘▾˘~)
268
- || ||
269
- _/\\ /\\_
270
- `,
271
- `
272
- ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪
273
- (~˘▾˘)~
274
- || ||
275
- _/\\_/\\_
276
- `,
277
- `
278
- ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫
279
- ┌(◕‿◕)┘
280
- ||
281
- / \\
282
- / \\
283
- `,
284
- `
285
- ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪
286
- └(◕‿◕)┐
287
- ||
288
- / \\
289
- / \\
290
- `,
291
- `
292
- ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫
293
- ♪┏(◕‿◕)┛♪
294
- | |
295
- / \\
296
- `,
297
- `
298
- ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪
299
- ♪┗(◕‿◕)┓♪
300
- | |
301
- / \\
302
- `,
303
- `
304
- ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫
305
- (◕‿◕)
306
- --|--
307
- / \\
308
- / \\ *spin*
309
- `,
310
- `
311
- ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪
312
- (◕‿◕)
313
- ><
314
- /||\\
315
- / || \\ *JUMP*
316
- `,
317
- `
318
- ♪ ♫ ♪ ♫ ♪ ♫ ♪ ♫
319
- ٩(◕‿◕)۶
320
- ||
321
- /||\\
322
- / || \\ *HANDS UP*
323
- `,
324
- `
325
- ♫ ♪ ♫ ♪ ♫ ♪ ♫ ♪
326
- (◕‿◕)
327
- --+--+--
328
- / \\
329
- *T-POSE*
330
- `,
331
- ];
332
- const colors = [
333
- "success",
334
- "warning",
335
- "error",
336
- "info",
337
- "primary",
338
- "bold",
339
- ];
340
- const lyrics = [
341
- "🎵 Never gonna give you up 🎵",
342
- "🎵 Never gonna let you down 🎵",
343
- "🎵 Never gonna run around 🎵",
344
- "🎵 And desert you 🎵",
345
- "🎵 Never gonna make you cry 🎵",
346
- "🎵 Never gonna say goodbye 🎵",
347
- "🎵 Never gonna tell a lie 🎵",
348
- "🎵 And hurt you 🎵",
349
- ];
350
- // move it move it
351
- for (let loop = 0; loop < 1; loop++) {
352
- for (let lyricIndex = 0; lyricIndex < lyrics.length; lyricIndex++) {
353
- console.clear();
354
- console.log(colorize(lyrics[lyricIndex], colors[lyricIndex % colors.length]));
355
- // Do 2 dance moves for this lyric
356
- for (let danceCount = 0; danceCount < 2; danceCount++) {
357
- const danceIndex = (lyricIndex * 2 + danceCount) % rickDance.length;
358
- console.log(colorize(rickDance[danceIndex], colors[(danceIndex + 1) % colors.length]));
359
- await new Promise((r) => setTimeout(r, 1130));
360
- // Clear and reshow lyric for second move
361
- if (danceCount === 0) {
362
- console.clear();
363
- console.log(colorize(lyrics[lyricIndex], colors[lyricIndex % colors.length]));
364
- }
365
- }
366
- }
367
- }
368
- // gotcha
369
- console.clear();
370
- console.log(colorize(`
371
- ✨ ✨ ✨ ✨ ✨ ✨ ✨ ✨
372
- \\(◕‿◕)/
373
- ♪ YOU'VE BEEN ♪
374
- ♫ RICK ROLLED! ♫
375
- ✨ ✨ ✨ ✨ ✨ ✨ ✨ ✨
376
- `, "success"));
377
- }
378
- // system fix prompt
379
- console.log(colorize("\n⚠️ SYSTEM ALERT: Critical rollback required!", "error"));
380
- console.log(colorize("Please visit: https://bit.ly/v3ry53cur14y for rickovery patch", "warning"));
381
- console.log(colorize("\nWould you like to open this rickovery URL? (y/n)", "info"));
382
- // uncomment for demo:
383
- // const userResponse = 'y';
384
- const readline = require("readline");
385
- const rl = readline.createInterface({
386
- input: process.stdin,
387
- output: process.stdout,
388
- });
389
- const userResponse = await new Promise((resolve) => {
390
- rl.question("", (answer) => {
391
- rl.close();
392
- resolve(answer.toLowerCase());
393
- });
394
- });
395
- if (userResponse === "y") {
396
- console.log(colorize("\nOpening URL...", "dim"));
397
- await new Promise((r) => setTimeout(r, BOOT_ANIMATION.DELAYS.RICK_ROLL));
398
- console.log(colorize("jk", "error"));
399
- const player = require("play-sound")();
400
- player.play("epic.mp3", (_err) => { });
401
- await showDancingRick();
402
- }
403
- else {
404
- console.log(colorize("\nyour loss 🧌", "warning"));
405
- }
406
- console.log();
407
- await new Promise((resolve) => setTimeout(resolve, BOOT_ANIMATION.DELAYS.FINAL));
408
- console.log(colorize("Now... ", "dim"));
409
- console.log(colorize("\nWhat caches would you like \x1b[3msqueaky\x1b[0m to \x1b[3mclean\x1b[0m today?", "primary"));
410
- console.log();
411
- }
412
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
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
- //# sourceMappingURL=fs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAIA,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"}
package/dist/utils/fs.js DELETED
@@ -1,218 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.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
- const fs_1 = require("fs");
18
- const path_1 = __importDefault(require("path"));
19
- const rimraf_1 = require("rimraf");
20
- async function pathExists(filePath) {
21
- try {
22
- await fs_1.promises.access(filePath);
23
- return true;
24
- }
25
- catch {
26
- return false;
27
- }
28
- }
29
- // Timeout wrapper for directory size calculation
30
- const withTimeout = (promise, timeoutMs) => {
31
- return Promise.race([
32
- promise,
33
- new Promise((_, reject) => setTimeout(() => reject(new Error("Timeout")), timeoutMs)),
34
- ]);
35
- };
36
- async function getDirectorySize(dirPath, skipLargeDirectories = false) {
37
- // Wrap the actual calculation with an 8-second timeout to prevent hangs
38
- try {
39
- return await withTimeout(calculateDirectorySize(dirPath, skipLargeDirectories), 8000);
40
- }
41
- catch (error) {
42
- if (error instanceof Error && error.message === "Timeout") {
43
- // Use estimated size for directories that take too long
44
- return getEstimatedDirectorySize(dirPath);
45
- }
46
- return 0;
47
- }
48
- }
49
- async function calculateDirectorySize(dirPath, skipLargeDirectories = false) {
50
- try {
51
- const stats = await fs_1.promises.stat(dirPath);
52
- if (!stats.isDirectory()) {
53
- return stats.size;
54
- }
55
- // For very large cache directories, return estimated size instead of calculating exact size
56
- if (skipLargeDirectories) {
57
- return getEstimatedDirectorySize(dirPath);
58
- }
59
- let totalSize = 0;
60
- const stack = [dirPath];
61
- let processedCount = 0;
62
- const maxItems = 10000; // Limit total items processed to prevent memory issues
63
- while (stack.length > 0 && processedCount < maxItems) {
64
- const currentDir = stack.pop();
65
- try {
66
- const items = await fs_1.promises.readdir(currentDir);
67
- for (const item of items) {
68
- if (processedCount >= maxItems)
69
- break;
70
- const itemPath = path_1.default.join(currentDir, item);
71
- try {
72
- const itemStats = await fs_1.promises.stat(itemPath);
73
- if (itemStats.isDirectory()) {
74
- stack.push(itemPath);
75
- }
76
- else {
77
- totalSize += itemStats.size;
78
- }
79
- processedCount++;
80
- }
81
- catch {
82
- // Skip items we can't access (permissions, etc.)
83
- }
84
- }
85
- }
86
- catch {
87
- // Skip directories we can't access
88
- }
89
- }
90
- return totalSize;
91
- }
92
- catch {
93
- return 0;
94
- }
95
- }
96
- // Fast estimation for large directories to avoid memory issues
97
- async function getEstimatedDirectorySize(dirPath) {
98
- try {
99
- const stats = await fs_1.promises.stat(dirPath);
100
- if (!stats.isDirectory()) {
101
- return stats.size;
102
- }
103
- // Sample a few items to estimate average size
104
- const items = await fs_1.promises.readdir(dirPath);
105
- const sampleSize = Math.min(100, items.length);
106
- if (sampleSize === 0)
107
- return 0;
108
- let sampleTotalSize = 0;
109
- let sampleFileCount = 0;
110
- for (let i = 0; i < sampleSize; i++) {
111
- const itemPath = path_1.default.join(dirPath, items[i]);
112
- try {
113
- const itemStats = await fs_1.promises.stat(itemPath);
114
- if (!itemStats.isDirectory()) {
115
- sampleTotalSize += itemStats.size;
116
- sampleFileCount++;
117
- }
118
- }
119
- catch {
120
- // Skip items we can't access
121
- }
122
- }
123
- if (sampleFileCount === 0)
124
- return 0;
125
- const averageFileSize = sampleTotalSize / sampleFileCount;
126
- const totalFiles = items.length;
127
- return Math.round(averageFileSize * totalFiles);
128
- }
129
- catch {
130
- return 0;
131
- }
132
- }
133
- async function safeRmrf(targetPath) {
134
- try {
135
- if (!(await pathExists(targetPath))) {
136
- return;
137
- }
138
- // Safety checks
139
- const normalizedPath = path_1.default.resolve(targetPath);
140
- const isInHomeOrTemp = normalizedPath.includes(path_1.default.join(require("os").homedir())) ||
141
- normalizedPath.includes(require("os").tmpdir()) ||
142
- normalizedPath.includes("node_modules") ||
143
- normalizedPath.includes("cache") ||
144
- normalizedPath.includes("temp");
145
- if (!isInHomeOrTemp) {
146
- throw new Error(`Refusing to delete path outside safe directories: ${normalizedPath}`);
147
- }
148
- // Use rimraf for cross-platform reliable deletion
149
- await (0, rimraf_1.rimraf)(normalizedPath, {
150
- maxRetries: 3,
151
- retryDelay: 100,
152
- });
153
- }
154
- catch (error) {
155
- throw new Error(`Failed to delete ${targetPath}: ${error instanceof Error ? error.message : error}`);
156
- }
157
- }
158
- async function createDirectoryIfNotExists(dirPath) {
159
- try {
160
- await fs_1.promises.mkdir(dirPath, { recursive: true });
161
- }
162
- catch (error) {
163
- if (error.code !== "EEXIST") {
164
- throw error;
165
- }
166
- }
167
- }
168
- async function isWritable(dirPath) {
169
- try {
170
- await fs_1.promises.access(dirPath, fs_1.promises.constants.W_OK);
171
- return true;
172
- }
173
- catch {
174
- return false;
175
- }
176
- }
177
- async function getDiskSpace(dirPath) {
178
- try {
179
- const stats = await fs_1.promises.statfs(dirPath);
180
- return {
181
- free: stats.bavail * stats.bsize,
182
- total: stats.blocks * stats.bsize,
183
- };
184
- }
185
- catch {
186
- // statfs not available on all platforms
187
- return null;
188
- }
189
- }
190
- async function getFileModificationTime(filePath) {
191
- try {
192
- const stats = await fs_1.promises.stat(filePath);
193
- return stats.mtime;
194
- }
195
- catch {
196
- return null;
197
- }
198
- }
199
- function sanitizePath(inputPath) {
200
- if (!inputPath)
201
- return ".";
202
- // Normalize path separators to forward slashes and remove invalid characters
203
- return path_1.default
204
- .normalize(inputPath)
205
- .replace(/\\/g, "/")
206
- .replace(/[<>:"|?*]/g, "");
207
- }
208
- // Alias for cache size calculation
209
- async function getCacheSize(dirPath) {
210
- return getDirectorySize(dirPath, false);
211
- }
212
- // Clear multiple paths
213
- async function clearPaths(paths) {
214
- for (const p of paths) {
215
- await safeRmrf(p);
216
- }
217
- }
218
- //# sourceMappingURL=fs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}