squeaky-clean 0.1.1

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 (191) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +465 -0
  3. package/dist/cleaners/BaseCleaner.d.ts +57 -0
  4. package/dist/cleaners/BaseCleaner.d.ts.map +1 -0
  5. package/dist/cleaners/BaseCleaner.js +299 -0
  6. package/dist/cleaners/BaseCleaner.js.map +1 -0
  7. package/dist/cleaners/CleanerRegistry.d.ts +65 -0
  8. package/dist/cleaners/CleanerRegistry.d.ts.map +1 -0
  9. package/dist/cleaners/CleanerRegistry.js +112 -0
  10. package/dist/cleaners/CleanerRegistry.js.map +1 -0
  11. package/dist/cleaners/androidstudio.d.ts +16 -0
  12. package/dist/cleaners/androidstudio.d.ts.map +1 -0
  13. package/dist/cleaners/androidstudio.js +375 -0
  14. package/dist/cleaners/androidstudio.js.map +1 -0
  15. package/dist/cleaners/brew.d.ts +4 -0
  16. package/dist/cleaners/brew.d.ts.map +1 -0
  17. package/dist/cleaners/brew.js +197 -0
  18. package/dist/cleaners/brew.js.map +1 -0
  19. package/dist/cleaners/brewEnhanced.d.ts +18 -0
  20. package/dist/cleaners/brewEnhanced.d.ts.map +1 -0
  21. package/dist/cleaners/brewEnhanced.js +255 -0
  22. package/dist/cleaners/brewEnhanced.js.map +1 -0
  23. package/dist/cleaners/bun.d.ts +14 -0
  24. package/dist/cleaners/bun.d.ts.map +1 -0
  25. package/dist/cleaners/bun.js +207 -0
  26. package/dist/cleaners/bun.js.map +1 -0
  27. package/dist/cleaners/chrome.d.ts +14 -0
  28. package/dist/cleaners/chrome.d.ts.map +1 -0
  29. package/dist/cleaners/chrome.js +250 -0
  30. package/dist/cleaners/chrome.js.map +1 -0
  31. package/dist/cleaners/docker.d.ts +35 -0
  32. package/dist/cleaners/docker.d.ts.map +1 -0
  33. package/dist/cleaners/docker.js +285 -0
  34. package/dist/cleaners/docker.js.map +1 -0
  35. package/dist/cleaners/firefox.d.ts +15 -0
  36. package/dist/cleaners/firefox.d.ts.map +1 -0
  37. package/dist/cleaners/firefox.js +281 -0
  38. package/dist/cleaners/firefox.js.map +1 -0
  39. package/dist/cleaners/flutter.d.ts +18 -0
  40. package/dist/cleaners/flutter.d.ts.map +1 -0
  41. package/dist/cleaners/flutter.js +354 -0
  42. package/dist/cleaners/flutter.js.map +1 -0
  43. package/dist/cleaners/goBuild.d.ts +18 -0
  44. package/dist/cleaners/goBuild.d.ts.map +1 -0
  45. package/dist/cleaners/goBuild.js +196 -0
  46. package/dist/cleaners/goBuild.js.map +1 -0
  47. package/dist/cleaners/gradle.d.ts +14 -0
  48. package/dist/cleaners/gradle.d.ts.map +1 -0
  49. package/dist/cleaners/gradle.js +336 -0
  50. package/dist/cleaners/gradle.js.map +1 -0
  51. package/dist/cleaners/index.d.ts +51 -0
  52. package/dist/cleaners/index.d.ts.map +1 -0
  53. package/dist/cleaners/index.js +247 -0
  54. package/dist/cleaners/index.js.map +1 -0
  55. package/dist/cleaners/jetbrains.d.ts +18 -0
  56. package/dist/cleaners/jetbrains.d.ts.map +1 -0
  57. package/dist/cleaners/jetbrains.js +441 -0
  58. package/dist/cleaners/jetbrains.js.map +1 -0
  59. package/dist/cleaners/nix.d.ts +4 -0
  60. package/dist/cleaners/nix.d.ts.map +1 -0
  61. package/dist/cleaners/nix.js +227 -0
  62. package/dist/cleaners/nix.js.map +1 -0
  63. package/dist/cleaners/nodeGyp.d.ts +14 -0
  64. package/dist/cleaners/nodeGyp.d.ts.map +1 -0
  65. package/dist/cleaners/nodeGyp.js +157 -0
  66. package/dist/cleaners/nodeGyp.js.map +1 -0
  67. package/dist/cleaners/npm.d.ts +14 -0
  68. package/dist/cleaners/npm.d.ts.map +1 -0
  69. package/dist/cleaners/npm.js +198 -0
  70. package/dist/cleaners/npm.js.map +1 -0
  71. package/dist/cleaners/npmEnhanced.d.ts +19 -0
  72. package/dist/cleaners/npmEnhanced.d.ts.map +1 -0
  73. package/dist/cleaners/npmEnhanced.js +336 -0
  74. package/dist/cleaners/npmEnhanced.js.map +1 -0
  75. package/dist/cleaners/nx.d.ts +18 -0
  76. package/dist/cleaners/nx.d.ts.map +1 -0
  77. package/dist/cleaners/nx.js +308 -0
  78. package/dist/cleaners/nx.js.map +1 -0
  79. package/dist/cleaners/pip.d.ts +19 -0
  80. package/dist/cleaners/pip.d.ts.map +1 -0
  81. package/dist/cleaners/pip.js +334 -0
  82. package/dist/cleaners/pip.js.map +1 -0
  83. package/dist/cleaners/pnpm.d.ts +14 -0
  84. package/dist/cleaners/pnpm.d.ts.map +1 -0
  85. package/dist/cleaners/pnpm.js +209 -0
  86. package/dist/cleaners/pnpm.js.map +1 -0
  87. package/dist/cleaners/turbo.d.ts +18 -0
  88. package/dist/cleaners/turbo.d.ts.map +1 -0
  89. package/dist/cleaners/turbo.js +325 -0
  90. package/dist/cleaners/turbo.js.map +1 -0
  91. package/dist/cleaners/vite.d.ts +17 -0
  92. package/dist/cleaners/vite.d.ts.map +1 -0
  93. package/dist/cleaners/vite.js +274 -0
  94. package/dist/cleaners/vite.js.map +1 -0
  95. package/dist/cleaners/vscode.d.ts +14 -0
  96. package/dist/cleaners/vscode.d.ts.map +1 -0
  97. package/dist/cleaners/vscode.js +354 -0
  98. package/dist/cleaners/vscode.js.map +1 -0
  99. package/dist/cleaners/webpack.d.ts +17 -0
  100. package/dist/cleaners/webpack.d.ts.map +1 -0
  101. package/dist/cleaners/webpack.js +263 -0
  102. package/dist/cleaners/webpack.js.map +1 -0
  103. package/dist/cleaners/xcode.d.ts +14 -0
  104. package/dist/cleaners/xcode.d.ts.map +1 -0
  105. package/dist/cleaners/xcode.js +348 -0
  106. package/dist/cleaners/xcode.js.map +1 -0
  107. package/dist/cleaners/yarn.d.ts +16 -0
  108. package/dist/cleaners/yarn.d.ts.map +1 -0
  109. package/dist/cleaners/yarn.js +266 -0
  110. package/dist/cleaners/yarn.js.map +1 -0
  111. package/dist/cli.d.ts +3 -0
  112. package/dist/cli.d.ts.map +1 -0
  113. package/dist/cli.js +346 -0
  114. package/dist/cli.js.map +1 -0
  115. package/dist/commands/auto.d.ts +8 -0
  116. package/dist/commands/auto.d.ts.map +1 -0
  117. package/dist/commands/auto.js +224 -0
  118. package/dist/commands/auto.js.map +1 -0
  119. package/dist/commands/categories.d.ts +8 -0
  120. package/dist/commands/categories.d.ts.map +1 -0
  121. package/dist/commands/categories.js +133 -0
  122. package/dist/commands/categories.js.map +1 -0
  123. package/dist/commands/clean.d.ts +3 -0
  124. package/dist/commands/clean.d.ts.map +1 -0
  125. package/dist/commands/clean.js +149 -0
  126. package/dist/commands/clean.js.map +1 -0
  127. package/dist/commands/config.d.ts +14 -0
  128. package/dist/commands/config.d.ts.map +1 -0
  129. package/dist/commands/config.js +445 -0
  130. package/dist/commands/config.js.map +1 -0
  131. package/dist/commands/configDoctor.d.ts +26 -0
  132. package/dist/commands/configDoctor.d.ts.map +1 -0
  133. package/dist/commands/configDoctor.js +60 -0
  134. package/dist/commands/configDoctor.js.map +1 -0
  135. package/dist/commands/doctor.d.ts +2 -0
  136. package/dist/commands/doctor.d.ts.map +1 -0
  137. package/dist/commands/doctor.js +141 -0
  138. package/dist/commands/doctor.js.map +1 -0
  139. package/dist/commands/emojis.d.ts +2 -0
  140. package/dist/commands/emojis.d.ts.map +1 -0
  141. package/dist/commands/emojis.js +28 -0
  142. package/dist/commands/emojis.js.map +1 -0
  143. package/dist/commands/interactive.d.ts +3 -0
  144. package/dist/commands/interactive.d.ts.map +1 -0
  145. package/dist/commands/interactive.js +284 -0
  146. package/dist/commands/interactive.js.map +1 -0
  147. package/dist/commands/interactiveEnhanced.d.ts +4 -0
  148. package/dist/commands/interactiveEnhanced.d.ts.map +1 -0
  149. package/dist/commands/interactiveEnhanced.js +460 -0
  150. package/dist/commands/interactiveEnhanced.js.map +1 -0
  151. package/dist/commands/list.d.ts +2 -0
  152. package/dist/commands/list.d.ts.map +1 -0
  153. package/dist/commands/list.js +68 -0
  154. package/dist/commands/list.js.map +1 -0
  155. package/dist/commands/sizes.d.ts +2 -0
  156. package/dist/commands/sizes.d.ts.map +1 -0
  157. package/dist/commands/sizes.js +87 -0
  158. package/dist/commands/sizes.js.map +1 -0
  159. package/dist/config/index.d.ts +26 -0
  160. package/dist/config/index.d.ts.map +1 -0
  161. package/dist/config/index.js +228 -0
  162. package/dist/config/index.js.map +1 -0
  163. package/dist/config/loadConfig.d.ts +7 -0
  164. package/dist/config/loadConfig.d.ts.map +1 -0
  165. package/dist/config/loadConfig.js +103 -0
  166. package/dist/config/loadConfig.js.map +1 -0
  167. package/dist/config/migrateConfig.d.ts +56 -0
  168. package/dist/config/migrateConfig.d.ts.map +1 -0
  169. package/dist/config/migrateConfig.js +102 -0
  170. package/dist/config/migrateConfig.js.map +1 -0
  171. package/dist/plugins/discovery.d.ts +6 -0
  172. package/dist/plugins/discovery.d.ts.map +1 -0
  173. package/dist/plugins/discovery.js +64 -0
  174. package/dist/plugins/discovery.js.map +1 -0
  175. package/dist/profiles/index.d.ts +61 -0
  176. package/dist/profiles/index.d.ts.map +1 -0
  177. package/dist/profiles/index.js +361 -0
  178. package/dist/profiles/index.js.map +1 -0
  179. package/dist/types/index.d.ts +161 -0
  180. package/dist/types/index.d.ts.map +1 -0
  181. package/dist/types/index.js +3 -0
  182. package/dist/types/index.js.map +1 -0
  183. package/dist/utils/cli.d.ts +44 -0
  184. package/dist/utils/cli.d.ts.map +1 -0
  185. package/dist/utils/cli.js +407 -0
  186. package/dist/utils/cli.js.map +1 -0
  187. package/dist/utils/fs.d.ts +15 -0
  188. package/dist/utils/fs.d.ts.map +1 -0
  189. package/dist/utils/fs.js +218 -0
  190. package/dist/utils/fs.js.map +1 -0
  191. package/package.json +122 -0
@@ -0,0 +1,348 @@
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.XcodeCleaner = 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
+ class XcodeCleaner {
14
+ constructor() {
15
+ this.name = "xcode";
16
+ this.type = "ide";
17
+ this.description = "Xcode cache, derived data, archives, simulators, and device support files";
18
+ }
19
+ getCachePaths() {
20
+ const homeDir = os_1.default.homedir();
21
+ const libraryDir = path_1.default.join(homeDir, "Library");
22
+ return [
23
+ // Derived Data - biggest cache culprit (builds, indexes, logs)
24
+ {
25
+ path: path_1.default.join(libraryDir, "Developer", "Xcode", "DerivedData"),
26
+ description: "Build outputs, indexes, and intermediate files",
27
+ category: "Derived Data",
28
+ },
29
+ // Archives - can be large but may contain important builds
30
+ {
31
+ path: path_1.default.join(libraryDir, "Developer", "Xcode", "Archives"),
32
+ description: "App archives and distribution builds",
33
+ category: "Archives",
34
+ },
35
+ // Device Support - accumulates over time with new iOS versions
36
+ {
37
+ path: path_1.default.join(libraryDir, "Developer", "Xcode", "iOS DeviceSupport"),
38
+ description: "iOS device debugging symbols and support files",
39
+ category: "Device Support",
40
+ },
41
+ {
42
+ path: path_1.default.join(libraryDir, "Developer", "Xcode", "watchOS DeviceSupport"),
43
+ description: "watchOS device debugging symbols",
44
+ category: "Device Support",
45
+ },
46
+ {
47
+ path: path_1.default.join(libraryDir, "Developer", "Xcode", "tvOS DeviceSupport"),
48
+ description: "tvOS device debugging symbols",
49
+ category: "Device Support",
50
+ },
51
+ // Core Simulator caches
52
+ {
53
+ path: path_1.default.join(libraryDir, "Developer", "CoreSimulator", "Caches"),
54
+ description: "iOS Simulator cache files",
55
+ category: "Simulators",
56
+ },
57
+ {
58
+ path: path_1.default.join(libraryDir, "Developer", "CoreSimulator", "Logs"),
59
+ description: "iOS Simulator log files",
60
+ category: "Simulators",
61
+ },
62
+ // Xcode caches and temporary files
63
+ {
64
+ path: path_1.default.join(libraryDir, "Caches", "com.apple.dt.Xcode"),
65
+ description: "Xcode application cache",
66
+ category: "App Cache",
67
+ },
68
+ {
69
+ path: path_1.default.join(libraryDir, "Caches", "com.apple.dt.XCTest-device"),
70
+ description: "XCTest device cache",
71
+ category: "Testing",
72
+ },
73
+ {
74
+ path: path_1.default.join(libraryDir, "Caches", "com.apple.dt.XCTest-simulator"),
75
+ description: "XCTest simulator cache",
76
+ category: "Testing",
77
+ },
78
+ // Documentation and help caches
79
+ {
80
+ path: path_1.default.join(libraryDir, "Caches", "com.apple.helpd"),
81
+ description: "Xcode documentation cache",
82
+ category: "Documentation",
83
+ },
84
+ // Provisioning profiles cache
85
+ {
86
+ path: path_1.default.join(libraryDir, "MobileDevice", "Provisioning Profiles"),
87
+ description: "Cached provisioning profiles",
88
+ category: "Provisioning",
89
+ },
90
+ // Swift package manager cache (if using SPM)
91
+ {
92
+ path: path_1.default.join(libraryDir, "Caches", "org.swift.swiftpm"),
93
+ description: "Swift Package Manager cache",
94
+ category: "Package Manager",
95
+ },
96
+ {
97
+ path: path_1.default.join(libraryDir, "org.swift.swiftpm"),
98
+ description: "Swift Package Manager data",
99
+ category: "Package Manager",
100
+ },
101
+ // CocoaPods cache (if using CocoaPods)
102
+ {
103
+ path: path_1.default.join(libraryDir, "Caches", "CocoaPods"),
104
+ description: "CocoaPods cache files",
105
+ category: "Package Manager",
106
+ },
107
+ // Instruments and profiling
108
+ {
109
+ path: path_1.default.join(libraryDir, "Application Support", "Instruments"),
110
+ description: "Instruments profiling data",
111
+ category: "Profiling",
112
+ },
113
+ // Old simulator devices (can be huge)
114
+ {
115
+ path: path_1.default.join(libraryDir, "Developer", "CoreSimulator", "Devices"),
116
+ description: "iOS Simulator device data (⚠️ Contains app data)",
117
+ category: "Simulators",
118
+ },
119
+ ];
120
+ }
121
+ async isAvailable() {
122
+ try {
123
+ (0, cli_1.printVerbose)("Checking if Xcode is installed...");
124
+ // Check for Xcode installation
125
+ const xcodeAppPaths = [
126
+ "/Applications/Xcode.app",
127
+ "/Applications/Xcode-beta.app",
128
+ ];
129
+ for (const xcodePath of xcodeAppPaths) {
130
+ if (await (0, fs_2.pathExists)(xcodePath)) {
131
+ (0, cli_1.printVerbose)(`Found Xcode at ${xcodePath}`);
132
+ return true;
133
+ }
134
+ }
135
+ // Also check for command line tools
136
+ try {
137
+ await (0, execa_1.default)("xcode-select", ["--print-path"]);
138
+ (0, cli_1.printVerbose)("Found Xcode command line tools");
139
+ return true;
140
+ }
141
+ catch {
142
+ // Neither GUI Xcode nor command line tools found
143
+ }
144
+ return false;
145
+ }
146
+ catch {
147
+ return false;
148
+ }
149
+ }
150
+ async getCacheInfo() {
151
+ const allPaths = this.getCachePaths();
152
+ const existingPaths = [];
153
+ let totalSize = 0;
154
+ let lastModified;
155
+ const categories = new Map();
156
+ (0, cli_1.printVerbose)(`Checking ${allPaths.length} Xcode cache locations...`);
157
+ for (const { path: cachePath, description, category } of allPaths) {
158
+ if (await (0, fs_2.pathExists)(cachePath)) {
159
+ existingPaths.push(cachePath);
160
+ try {
161
+ const size = await (0, fs_2.getDirectorySize)(cachePath);
162
+ totalSize += size;
163
+ // Track by category
164
+ const existing = categories.get(category) || { size: 0, count: 0 };
165
+ categories.set(category, {
166
+ size: existing.size + size,
167
+ count: existing.count + 1,
168
+ });
169
+ const stats = await fs_1.promises.stat(cachePath);
170
+ if (!lastModified || stats.mtime > lastModified) {
171
+ lastModified = stats.mtime;
172
+ }
173
+ const sizeInMB = (size / (1024 * 1024)).toFixed(1);
174
+ (0, cli_1.printVerbose)(`Found ${category}: ${cachePath} (${sizeInMB} MB) - ${description}`);
175
+ }
176
+ catch (error) {
177
+ (0, cli_1.printVerbose)(`Error checking ${cachePath}: ${error}`);
178
+ }
179
+ }
180
+ }
181
+ // Log category summary
182
+ if (categories.size > 0) {
183
+ (0, cli_1.printVerbose)("=== Xcode Cache Summary by Category ===");
184
+ categories.forEach((info, category) => {
185
+ const sizeInMB = (info.size / (1024 * 1024)).toFixed(1);
186
+ (0, cli_1.printVerbose)(`${category}: ${info.count} locations, ${sizeInMB} MB`);
187
+ });
188
+ }
189
+ return {
190
+ name: this.name,
191
+ type: this.type,
192
+ description: this.description,
193
+ paths: existingPaths,
194
+ isInstalled: await this.isAvailable(),
195
+ size: totalSize,
196
+ lastModified,
197
+ };
198
+ }
199
+ async clear(dryRun = false, _criteria, cacheInfo) {
200
+ const info = cacheInfo || (await this.getCacheInfo());
201
+ const clearedPaths = [];
202
+ const sizeBefore = info.size || 0;
203
+ let success = true;
204
+ let error;
205
+ if (!info.isInstalled) {
206
+ return {
207
+ name: this.name,
208
+ success: false,
209
+ error: "Xcode is not installed",
210
+ clearedPaths: [],
211
+ sizeBefore: 0,
212
+ sizeAfter: 0,
213
+ };
214
+ }
215
+ if (info.paths.length === 0) {
216
+ (0, cli_1.printVerbose)("No Xcode cache directories found");
217
+ return {
218
+ name: this.name,
219
+ success: true,
220
+ clearedPaths: [],
221
+ sizeBefore: 0,
222
+ sizeAfter: 0,
223
+ };
224
+ }
225
+ try {
226
+ if (dryRun) {
227
+ (0, cli_1.printVerbose)(`[DRY RUN] Would clear ${info.paths.length} Xcode cache locations:`);
228
+ const pathsWithInfo = this.getCachePaths();
229
+ for (const cachePath of info.paths) {
230
+ const pathInfo = pathsWithInfo.find((p) => p.path === cachePath);
231
+ (0, cli_1.printVerbose)(` • ${pathInfo?.category || "Unknown"}: ${cachePath}`);
232
+ if (pathInfo?.description) {
233
+ (0, cli_1.printVerbose)(` ${pathInfo.description}`);
234
+ }
235
+ }
236
+ return {
237
+ name: this.name,
238
+ success: true,
239
+ sizeBefore,
240
+ sizeAfter: sizeBefore,
241
+ clearedPaths: info.paths,
242
+ };
243
+ }
244
+ const pathsWithInfo = this.getCachePaths();
245
+ // Clear caches by category priority (safest first)
246
+ const priorityOrder = [
247
+ "App Cache",
248
+ "Testing",
249
+ "Documentation",
250
+ "Profiling",
251
+ "Package Manager",
252
+ "Derived Data",
253
+ "Simulators",
254
+ "Device Support",
255
+ "Provisioning",
256
+ "Archives", // Most careful with archives as they may contain important builds
257
+ ];
258
+ const categorizedPaths = new Map();
259
+ for (const cachePath of info.paths) {
260
+ const pathInfo = pathsWithInfo.find((p) => p.path === cachePath);
261
+ const category = pathInfo?.category || "Other";
262
+ if (!categorizedPaths.has(category)) {
263
+ categorizedPaths.set(category, []);
264
+ }
265
+ categorizedPaths.get(category).push(cachePath);
266
+ }
267
+ // Clear in priority order
268
+ for (const category of priorityOrder) {
269
+ const paths = categorizedPaths.get(category);
270
+ if (!paths)
271
+ continue;
272
+ (0, cli_1.printVerbose)(`Clearing ${category} caches...`);
273
+ for (const cachePath of paths) {
274
+ try {
275
+ if (await (0, fs_2.pathExists)(cachePath)) {
276
+ const pathInfo = pathsWithInfo.find((p) => p.path === cachePath);
277
+ // Special handling for simulator devices - more cautious
278
+ if (category === "Simulators" && cachePath.includes("Devices")) {
279
+ (0, cli_1.printVerbose)(`Cautiously clearing simulator device data: ${cachePath}`);
280
+ // Could add more specific logic here to preserve certain simulators
281
+ }
282
+ (0, cli_1.printVerbose)(`Clearing ${category}: ${cachePath}`);
283
+ if (pathInfo?.description) {
284
+ (0, cli_1.printVerbose)(` Purpose: ${pathInfo.description}`);
285
+ }
286
+ await (0, fs_2.safeRmrf)(cachePath);
287
+ clearedPaths.push(cachePath);
288
+ }
289
+ }
290
+ catch (pathError) {
291
+ (0, cli_1.printVerbose)(`Failed to clear ${cachePath}: ${pathError}`);
292
+ success = false;
293
+ if (!error) {
294
+ error = `Failed to clear some Xcode cache directories: ${pathError}`;
295
+ }
296
+ }
297
+ }
298
+ }
299
+ // Handle any remaining uncategorized paths
300
+ const remainingPaths = info.paths.filter((p) => !clearedPaths.includes(p));
301
+ for (const cachePath of remainingPaths) {
302
+ try {
303
+ if (await (0, fs_2.pathExists)(cachePath)) {
304
+ (0, cli_1.printVerbose)(`Clearing remaining cache: ${cachePath}`);
305
+ await (0, fs_2.safeRmrf)(cachePath);
306
+ clearedPaths.push(cachePath);
307
+ }
308
+ }
309
+ catch (pathError) {
310
+ (0, cli_1.printVerbose)(`Failed to clear ${cachePath}: ${pathError}`);
311
+ success = false;
312
+ if (!error) {
313
+ error = `Failed to clear some cache directories: ${pathError}`;
314
+ }
315
+ }
316
+ }
317
+ if (sizeBefore > 0) {
318
+ (0, cli_1.printVerbose)(`Freed space from Xcode cache data`);
319
+ }
320
+ return {
321
+ name: this.name,
322
+ success,
323
+ sizeBefore,
324
+ sizeAfter: 0, // Set to 0 as we don't want to rescan
325
+ error,
326
+ clearedPaths,
327
+ };
328
+ }
329
+ catch (clearError) {
330
+ return {
331
+ name: this.name,
332
+ success: false,
333
+ sizeBefore,
334
+ sizeAfter: sizeBefore,
335
+ error: clearError instanceof Error ? clearError.message : String(clearError),
336
+ clearedPaths,
337
+ };
338
+ }
339
+ }
340
+ // Static method to create instance
341
+ static create() {
342
+ return new XcodeCleaner();
343
+ }
344
+ }
345
+ exports.XcodeCleaner = XcodeCleaner;
346
+ // Export default instance
347
+ exports.default = XcodeCleaner.create();
348
+ //# sourceMappingURL=xcode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xcode.js","sourceRoot":"","sources":["../../src/cleaners/xcode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { CleanerModule, CacheInfo, ClearResult, CacheSelectionCriteria } from "../types";
2
+ declare class YarnCleaner implements CleanerModule {
3
+ name: string;
4
+ type: "package-manager";
5
+ description: string;
6
+ private getYarnVersion;
7
+ private getYarnCachePaths;
8
+ private findProjectYarnCaches;
9
+ private findYarnProjectsRecursively;
10
+ isAvailable(): Promise<boolean>;
11
+ getCacheInfo(): Promise<CacheInfo>;
12
+ clear(dryRun?: boolean, _criteria?: CacheSelectionCriteria, cacheInfo?: CacheInfo): Promise<ClearResult>;
13
+ }
14
+ declare const _default: YarnCleaner;
15
+ export default _default;
16
+ //# sourceMappingURL=yarn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yarn.d.ts","sourceRoot":"","sources":["../../src/cleaners/yarn.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,EACX,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAQlB,cAAM,WAAY,YAAW,aAAa;IACxC,IAAI,SAAU;IACd,IAAI,EAAG,iBAAiB,CAAU;IAClC,WAAW,SAAkD;YAE/C,cAAc;YASd,iBAAiB;YAsCjB,qBAAqB;YAoDrB,2BAA2B;IA6DnC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAyClC,KAAK,CACT,MAAM,UAAQ,EACd,SAAS,CAAC,EAAE,sBAAsB,EAClC,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,WAAW,CAAC;CAsDxB;;AAED,wBAAiC"}
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const fs_1 = require("fs");
40
+ const path = __importStar(require("path"));
41
+ const os = __importStar(require("os"));
42
+ const fs_2 = require("../utils/fs");
43
+ const execa_1 = __importDefault(require("execa"));
44
+ const cli_1 = require("../utils/cli");
45
+ class YarnCleaner {
46
+ constructor() {
47
+ this.name = "yarn";
48
+ this.type = "package-manager";
49
+ this.description = "Yarn package manager caches and global store";
50
+ }
51
+ async getYarnVersion() {
52
+ try {
53
+ const result = await (0, execa_1.default)("yarn", ["--version"]);
54
+ return result.stdout.trim();
55
+ }
56
+ catch {
57
+ return null;
58
+ }
59
+ }
60
+ async getYarnCachePaths() {
61
+ const paths = [];
62
+ try {
63
+ // Get yarn cache directory
64
+ const cacheResult = await (0, execa_1.default)("yarn", ["cache", "dir"]);
65
+ const cacheDir = cacheResult.stdout.trim();
66
+ if (await (0, fs_2.pathExists)(cacheDir)) {
67
+ paths.push(cacheDir);
68
+ }
69
+ }
70
+ catch {
71
+ // Fallback to default yarn cache locations
72
+ const homeDir = os.homedir();
73
+ const defaultPaths = [
74
+ path.join(homeDir, ".yarn", "cache"),
75
+ path.join(homeDir, ".cache", "yarn"),
76
+ path.join(homeDir, "Library", "Caches", "Yarn"), // macOS
77
+ ];
78
+ for (const cachePath of defaultPaths) {
79
+ if (await (0, fs_2.pathExists)(cachePath)) {
80
+ paths.push(cachePath);
81
+ }
82
+ }
83
+ }
84
+ // Look for project-specific yarn caches
85
+ try {
86
+ // Yarn v2+ .yarn/cache directories in projects
87
+ const projectCaches = await this.findProjectYarnCaches();
88
+ paths.push(...projectCaches);
89
+ }
90
+ catch (error) {
91
+ (0, cli_1.printVerbose)(`Error finding project yarn caches: ${error}`);
92
+ }
93
+ return [...new Set(paths)]; // Remove duplicates
94
+ }
95
+ async findProjectYarnCaches() {
96
+ const projectCaches = [];
97
+ const homeDir = os.homedir();
98
+ // Only search current directory and immediate common dev dirs to avoid performance issues
99
+ const searchDirs = [
100
+ process.cwd(), // Current directory
101
+ path.join(homeDir, "Projects"), // Only if it exists and isn't huge
102
+ path.join(homeDir, "Development"),
103
+ path.join(homeDir, "dev"),
104
+ ];
105
+ // Add timeout to prevent hanging
106
+ const searchTimeout = 5000; // 5 seconds max for project search
107
+ const startTime = Date.now();
108
+ for (const searchDir of searchDirs) {
109
+ // Check timeout before each directory
110
+ if (Date.now() - startTime > searchTimeout) {
111
+ (0, cli_1.printVerbose)("Project cache search timed out, skipping remaining directories");
112
+ break;
113
+ }
114
+ if (await (0, fs_2.pathExists)(searchDir)) {
115
+ try {
116
+ // Only search 1 level deep to avoid performance issues
117
+ const projects = await this.findYarnProjectsRecursively(searchDir, 1, startTime, searchTimeout);
118
+ projectCaches.push(...projects);
119
+ // Limit total project caches found to prevent excessive scanning
120
+ if (projectCaches.length > 50) {
121
+ (0, cli_1.printVerbose)("Found many project caches, limiting search to prevent performance issues");
122
+ break;
123
+ }
124
+ }
125
+ catch (error) {
126
+ (0, cli_1.printVerbose)(`Error searching ${searchDir}: ${error}`);
127
+ }
128
+ }
129
+ }
130
+ return projectCaches;
131
+ }
132
+ async findYarnProjectsRecursively(dir, maxDepth, startTime = Date.now(), timeout = 5000) {
133
+ if (maxDepth <= 0)
134
+ return [];
135
+ // Check timeout
136
+ if (Date.now() - startTime > timeout) {
137
+ (0, cli_1.printVerbose)(`Yarn project search timed out at ${dir}`);
138
+ return [];
139
+ }
140
+ const yarnCaches = [];
141
+ try {
142
+ const entries = await fs_1.promises.readdir(dir, { withFileTypes: true });
143
+ // Limit number of entries to check to prevent excessive scanning
144
+ const limitedEntries = entries.slice(0, 100); // Only check first 100 entries
145
+ for (const entry of limitedEntries) {
146
+ // Check timeout during iteration
147
+ if (Date.now() - startTime > timeout) {
148
+ (0, cli_1.printVerbose)(`Yarn project search timed out during scan of ${dir}`);
149
+ break;
150
+ }
151
+ if (entry.isDirectory() &&
152
+ !entry.name.startsWith(".") &&
153
+ entry.name !== "node_modules") {
154
+ const fullPath = path.join(dir, entry.name);
155
+ // Check for .yarn/cache directory (Yarn v2+)
156
+ const yarnCacheDir = path.join(fullPath, ".yarn", "cache");
157
+ if (await (0, fs_2.pathExists)(yarnCacheDir)) {
158
+ yarnCaches.push(yarnCacheDir);
159
+ }
160
+ // Recursively search subdirectories only if we have time
161
+ if (Date.now() - startTime < timeout) {
162
+ const subCaches = await this.findYarnProjectsRecursively(fullPath, maxDepth - 1, startTime, timeout);
163
+ yarnCaches.push(...subCaches);
164
+ }
165
+ }
166
+ }
167
+ }
168
+ catch {
169
+ // Ignore permission errors or other issues
170
+ }
171
+ return yarnCaches;
172
+ }
173
+ async isAvailable() {
174
+ const version = await this.getYarnVersion();
175
+ return version !== null;
176
+ }
177
+ async getCacheInfo() {
178
+ const isInstalled = await this.isAvailable();
179
+ if (!isInstalled) {
180
+ return {
181
+ name: this.name,
182
+ type: this.type,
183
+ description: this.description,
184
+ paths: [],
185
+ isInstalled: false,
186
+ size: 0,
187
+ };
188
+ }
189
+ const cachePaths = await this.getYarnCachePaths();
190
+ let totalSize = 0;
191
+ const validPaths = [];
192
+ for (const cachePath of cachePaths) {
193
+ try {
194
+ const size = await (0, fs_2.getDirectorySize)(cachePath);
195
+ totalSize += size;
196
+ validPaths.push(cachePath);
197
+ (0, cli_1.printVerbose)(`${cli_1.symbols.folder} ${cachePath}: ${(size / (1024 * 1024)).toFixed(1)} MB`);
198
+ }
199
+ catch (error) {
200
+ (0, cli_1.printVerbose)(`Error calculating size for ${cachePath}: ${error}`);
201
+ }
202
+ }
203
+ return {
204
+ name: this.name,
205
+ type: this.type,
206
+ description: this.description,
207
+ paths: validPaths,
208
+ isInstalled: true,
209
+ size: totalSize,
210
+ };
211
+ }
212
+ async clear(dryRun = false, _criteria, cacheInfo) {
213
+ const info = cacheInfo || (await this.getCacheInfo());
214
+ if (!info.isInstalled) {
215
+ return {
216
+ name: this.name,
217
+ success: false,
218
+ error: "Yarn is not installed",
219
+ clearedPaths: [],
220
+ sizeBefore: 0,
221
+ sizeAfter: 0,
222
+ };
223
+ }
224
+ const sizeBefore = info.size || 0;
225
+ const clearedPaths = [];
226
+ let errors = [];
227
+ for (const cachePath of info.paths) {
228
+ try {
229
+ if (dryRun) {
230
+ (0, cli_1.printVerbose)(`${cli_1.symbols.soap} Would clear: ${cachePath}`);
231
+ clearedPaths.push(cachePath);
232
+ }
233
+ else {
234
+ (0, cli_1.printVerbose)(`${cli_1.symbols.soap} Clearing: ${cachePath}`);
235
+ await (0, fs_2.safeRmrf)(cachePath);
236
+ clearedPaths.push(cachePath);
237
+ }
238
+ }
239
+ catch (error) {
240
+ const errorMsg = `Failed to clear ${cachePath}: ${error}`;
241
+ errors.push(errorMsg);
242
+ (0, cli_1.printVerbose)(errorMsg);
243
+ }
244
+ }
245
+ // Try to clear yarn cache using yarn command as well
246
+ if (!dryRun && (await this.isAvailable())) {
247
+ try {
248
+ await (0, execa_1.default)("yarn", ["cache", "clean"]);
249
+ (0, cli_1.printVerbose)(`${cli_1.symbols.soap} Executed: yarn cache clean`);
250
+ }
251
+ catch (error) {
252
+ (0, cli_1.printVerbose)(`Note: yarn cache clean failed: ${error}`);
253
+ }
254
+ }
255
+ return {
256
+ name: this.name,
257
+ success: errors.length === 0,
258
+ sizeBefore,
259
+ sizeAfter: 0, // Set to 0 as we don't want to rescan
260
+ error: errors.length > 0 ? errors.join("; ") : undefined,
261
+ clearedPaths,
262
+ };
263
+ }
264
+ }
265
+ exports.default = new YarnCleaner();
266
+ //# sourceMappingURL=yarn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yarn.js","sourceRoot":"","sources":["../../src/cleaners/yarn.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,2BAAoC;AACpC,2CAA6B;AAC7B,uCAAyB;AACzB,oCAAqE;AACrE,kDAA0B;AAC1B,sCAAqD;AAErD,MAAM,WAAW;IAAjB;QACE,SAAI,GAAG,MAAM,CAAC;QACd,SAAI,GAAG,iBAA0B,CAAC;QAClC,gBAAW,GAAG,8CAA8C,CAAC;IA0Q/D,CAAC;IAxQS,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,eAAK,EAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,CAAC;YACH,2BAA2B;YAC3B,MAAM,WAAW,GAAG,MAAM,IAAA,eAAK,EAAC,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,MAAM,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;YAC3C,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG;gBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ;aAC1D,CAAC;YAEF,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE,CAAC;gBACrC,IAAI,MAAM,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC;YACH,+CAA+C;YAC/C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,kBAAY,EAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB;IAClD,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAE7B,0FAA0F;QAC1F,MAAM,UAAU,GAAG;YACjB,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB;YACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,mCAAmC;YACnE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;SAC1B,CAAC;QAEF,iCAAiC;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,mCAAmC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,sCAAsC;YACtC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,aAAa,EAAE,CAAC;gBAC3C,IAAA,kBAAY,EACV,gEAAgE,CACjE,CAAC;gBACF,MAAM;YACR,CAAC;YAED,IAAI,MAAM,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,uDAAuD;oBACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACrD,SAAS,EACT,CAAC,EACD,SAAS,EACT,aAAa,CACd,CAAC;oBACF,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;oBAEhC,iEAAiE;oBACjE,IAAI,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;wBAC9B,IAAA,kBAAY,EACV,0EAA0E,CAC3E,CAAC;wBACF,MAAM;oBACR,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAA,kBAAY,EAAC,mBAAmB,SAAS,KAAK,KAAK,EAAE,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,GAAW,EACX,QAAgB,EAChB,YAAoB,IAAI,CAAC,GAAG,EAAE,EAC9B,UAAkB,IAAI;QAEtB,IAAI,QAAQ,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAE7B,gBAAgB;QAChB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;YACrC,IAAA,kBAAY,EAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;YACxD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAE/D,iEAAiE;YACjE,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,+BAA+B;YAE7E,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;gBACnC,iCAAiC;gBACjC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;oBACrC,IAAA,kBAAY,EAAC,gDAAgD,GAAG,EAAE,CAAC,CAAC;oBACpE,MAAM;gBACR,CAAC;gBAED,IACE,KAAK,CAAC,WAAW,EAAE;oBACnB,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAC3B,KAAK,CAAC,IAAI,KAAK,cAAc,EAC7B,CAAC;oBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAE5C,6CAA6C;oBAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC3D,IAAI,MAAM,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;wBACnC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAChC,CAAC;oBAED,yDAAyD;oBACzD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;wBACrC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACtD,QAAQ,EACR,QAAQ,GAAG,CAAC,EACZ,SAAS,EACT,OAAO,CACR,CAAC;wBACF,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;oBAChC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,OAAO,OAAO,KAAK,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,KAAK;gBAClB,IAAI,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClD,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAgB,EAAC,SAAS,CAAC,CAAC;gBAC/C,SAAS,IAAI,IAAI,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,IAAA,kBAAY,EACV,GAAG,aAAO,CAAC,MAAM,IAAI,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC1E,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAA,kBAAY,EAAC,8BAA8B,SAAS,KAAK,KAAK,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAM,GAAG,KAAK,EACd,SAAkC,EAClC,SAAqB;QAErB,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAEtD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,uBAAuB;gBAC9B,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC;aACb,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QAClC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,MAAM,GAAa,EAAE,CAAC;QAE1B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,IAAI,MAAM,EAAE,CAAC;oBACX,IAAA,kBAAY,EAAC,GAAG,aAAO,CAAC,IAAI,iBAAiB,SAAS,EAAE,CAAC,CAAC;oBAC1D,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,IAAA,kBAAY,EAAC,GAAG,aAAO,CAAC,IAAI,cAAc,SAAS,EAAE,CAAC,CAAC;oBACvD,MAAM,IAAA,aAAQ,EAAC,SAAS,CAAC,CAAC;oBAC1B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,mBAAmB,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,IAAA,kBAAY,EAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,IAAA,eAAK,EAAC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBACxC,IAAA,kBAAY,EAAC,GAAG,aAAO,CAAC,IAAI,6BAA6B,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAA,kBAAY,EAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC5B,UAAU;YACV,SAAS,EAAE,CAAC,EAAE,sCAAsC;YACpD,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACxD,YAAY;SACb,CAAC;IACJ,CAAC;CACF;AAED,kBAAe,IAAI,WAAW,EAAE,CAAC"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map