squeaky-clean 0.1.8 → 0.1.11

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 +23 -25
  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
@@ -1,103 +0,0 @@
1
- "use strict";
2
- // src/config/loadConfig.ts
3
- // uses Ajv for schema validation
4
- var __importDefault = (this && this.__importDefault) || function (mod) {
5
- return (mod && mod.__esModule) ? mod : { "default": mod };
6
- };
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.loadJson = loadJson;
9
- exports.expandEnv = expandEnv;
10
- exports.deepMerge = deepMerge;
11
- exports.resolveExtendsChain = resolveExtendsChain;
12
- exports.loadAndValidateConfig = loadAndValidateConfig;
13
- const node_fs_1 = __importDefault(require("node:fs"));
14
- const node_path_1 = __importDefault(require("node:path"));
15
- const ajv_1 = __importDefault(require("ajv"));
16
- const ajv_formats_1 = __importDefault(require("ajv-formats"));
17
- const ajv = new ajv_1.default({ allErrors: true, strict: true, allowUnionTypes: true });
18
- (0, ajv_formats_1.default)(ajv);
19
- async function loadJson(filePath) {
20
- const raw = await node_fs_1.default.promises.readFile(filePath, "utf8");
21
- return JSON.parse(raw);
22
- }
23
- function expandEnv(str) {
24
- // Supports ${VAR} and tilde
25
- const tilde = str.startsWith("~")
26
- ? str.replace(/^~(?=\/|$)/, process.env.HOME || "~")
27
- : str;
28
- return tilde.replace(/\$\{([^}]+)\}/g, (_, key) => process.env[key] ?? "");
29
- }
30
- function deepMerge(base, next) {
31
- if (Array.isArray(base) && Array.isArray(next))
32
- return next;
33
- if (typeof base === "object" && base && typeof next === "object" && next) {
34
- const out = { ...base };
35
- for (const [k, v] of Object.entries(next)) {
36
- out[k] = k in out ? deepMerge(out[k], v) : v;
37
- }
38
- return out;
39
- }
40
- return next ?? base;
41
- }
42
- async function resolveMaybePackage(idOrPath, cwd) {
43
- if (idOrPath.startsWith(".") ||
44
- idOrPath.startsWith("/") ||
45
- idOrPath.startsWith("~")) {
46
- const expanded = expandEnv(idOrPath);
47
- return node_path_1.default.isAbsolute(expanded) ? expanded : node_path_1.default.join(cwd, expanded);
48
- }
49
- // Try resolve from node_modules
50
- const pkgPath = require.resolve(idOrPath, { paths: [cwd] });
51
- return pkgPath;
52
- }
53
- async function resolveExtendsChain(entries, fromPath) {
54
- if (!entries)
55
- return [];
56
- const cwd = node_path_1.default.dirname(fromPath);
57
- const arr = Array.isArray(entries) ? entries : [entries];
58
- const resolved = [];
59
- for (const entry of arr) {
60
- const target = await resolveMaybePackage(entry, cwd);
61
- const json = await loadJson(target);
62
- resolved.push({ json, source: target });
63
- }
64
- return resolved;
65
- }
66
- async function loadAndValidateConfig(configPath) {
67
- const schemaPath = node_path_1.default.join(process.cwd(), "schemas/config.schema.json");
68
- const schema = await loadJson(schemaPath);
69
- const validate = ajv.compile(schema);
70
- const root = await loadJson(configPath);
71
- // Expand env in string leafs (shallow pass; paths/args/etc)
72
- function expandLeaves(obj) {
73
- if (typeof obj === "string")
74
- return expandEnv(obj);
75
- if (Array.isArray(obj))
76
- return obj.map(expandLeaves);
77
- if (obj && typeof obj === "object") {
78
- const out = {};
79
- for (const [k, v] of Object.entries(obj))
80
- out[k] = expandLeaves(v);
81
- return out;
82
- }
83
- return obj;
84
- }
85
- // Resolve extends -> merge left-to-right, then merge root last
86
- const chain = await resolveExtendsChain(root.extends, configPath);
87
- let merged = {};
88
- for (const link of chain)
89
- merged = deepMerge(merged, expandLeaves(link.json));
90
- merged = deepMerge(merged, expandLeaves(root));
91
- // Validate final object
92
- const ok = validate(merged);
93
- if (!ok) {
94
- const errors = validate.errors
95
- .map((e) => `${e.instancePath} ${e.message}`)
96
- .join("\n");
97
- const err = new Error(`Invalid config: \n${errors}`);
98
- err.errors = validate.errors;
99
- throw err;
100
- }
101
- return merged;
102
- }
103
- //# sourceMappingURL=loadConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../src/config/loadConfig.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- export type LegacyConfig = {
2
- tools?: Record<string, any>;
3
- auto?: {
4
- enabled?: boolean;
5
- schedule?: "daily" | "weekly" | "monthly";
6
- dayOfWeek?: string | number;
7
- time?: string;
8
- sizeThreshold?: string;
9
- args?: string[];
10
- };
11
- output?: {
12
- verbose?: boolean;
13
- useColors?: boolean;
14
- };
15
- extends?: string | string[];
16
- [k: string]: any;
17
- };
18
- export type NewConfig = {
19
- cleaners?: Record<string, any>;
20
- scheduler?: {
21
- enabled?: boolean;
22
- frequency?: "daily" | "weekly" | "monthly";
23
- dayOfWeek?: string | number;
24
- time?: string;
25
- args?: string[];
26
- };
27
- defaults?: {
28
- dryRun?: boolean;
29
- followSymlinks?: boolean;
30
- restrictToHome?: boolean;
31
- trash?: boolean;
32
- concurrency?: number;
33
- recentDays?: number;
34
- sizeScan?: {
35
- enableCache?: boolean;
36
- cachePath?: string;
37
- maxParallelFs?: number;
38
- };
39
- };
40
- plugins?: {
41
- enabled?: boolean;
42
- scopes?: string[];
43
- prefixes?: string[];
44
- };
45
- profiles?: Record<string, {
46
- description?: string;
47
- include?: string[];
48
- exclude?: string[];
49
- }>;
50
- extends?: string | string[];
51
- [k: string]: any;
52
- };
53
- export declare function isLegacyShape(json: any): boolean;
54
- export declare function legacyToNew(json: LegacyConfig): NewConfig;
55
- export declare function writeBackupAndSave(targetPath: string, newJson: object): string;
56
- //# sourceMappingURL=migrateConfig.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrateConfig.d.ts","sourceRoot":"","sources":["../../src/config/migrateConfig.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;QAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACpD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE;YACT,WAAW,CAAC,EAAE,OAAO,CAAC;YACtB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,aAAa,CAAC,EAAE,MAAM,CAAC;SACxB,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACxE,QAAQ,CAAC,EAAE,MAAM,CACf,MAAM,EACN;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CACjE,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAEhD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CA4EzD;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,MAAM,CAeR"}
@@ -1,102 +0,0 @@
1
- "use strict";
2
- // src/config/migrateConfig.ts
3
- // Drop-in for: migrate/doctor
4
- var __importDefault = (this && this.__importDefault) || function (mod) {
5
- return (mod && mod.__esModule) ? mod : { "default": mod };
6
- };
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.isLegacyShape = isLegacyShape;
9
- exports.legacyToNew = legacyToNew;
10
- exports.writeBackupAndSave = writeBackupAndSave;
11
- const node_fs_1 = __importDefault(require("node:fs"));
12
- const node_path_1 = __importDefault(require("node:path"));
13
- function isLegacyShape(json) {
14
- return !!(json && (json.tools || json.auto || json.output));
15
- }
16
- function legacyToNew(json) {
17
- const out = {};
18
- // Check if there are already new-style keys, give them precedence
19
- const hasCleaners = json.cleaners && typeof json.cleaners === "object";
20
- const hasScheduler = json.scheduler && typeof json.scheduler === "object";
21
- const hasDefaults = json.defaults && typeof json.defaults === "object";
22
- // 1) tools -> cleaners (only if cleaners doesn't already exist)
23
- if (json.tools && typeof json.tools === "object" && !hasCleaners) {
24
- out.cleaners = { ...json.tools };
25
- }
26
- else if (hasCleaners) {
27
- out.cleaners = json.cleaners;
28
- }
29
- // 2) auto -> scheduler (only if scheduler doesn't already exist)
30
- if (json.auto && typeof json.auto === "object" && !hasScheduler) {
31
- out.scheduler = {
32
- enabled: json.auto.enabled,
33
- frequency: json.auto.schedule,
34
- dayOfWeek: json.auto.dayOfWeek,
35
- time: json.auto.time,
36
- args: json.auto.args,
37
- };
38
- // If old configs used sizeThreshold, keep it as a hint flag on args
39
- if (json.auto.sizeThreshold && out.scheduler) {
40
- out.scheduler.args = [
41
- ...(out.scheduler.args ?? []),
42
- "--size-threshold",
43
- String(json.auto.sizeThreshold),
44
- ];
45
- }
46
- }
47
- else if (hasScheduler) {
48
- out.scheduler = json.scheduler;
49
- }
50
- // 3) output -> defaults (only if defaults doesn't already exist)
51
- if (json.output && typeof json.output === "object" && !hasDefaults) {
52
- out.defaults = {
53
- // dryRun remains user-controlled; don't infer from verbose/useColors
54
- // Carry nothing by default—these were UI prefs. If you prefer, you can stash them:
55
- // keep legacy UI hints
56
- _legacyOutput: json.output,
57
- };
58
- }
59
- else if (hasDefaults) {
60
- out.defaults = json.defaults;
61
- }
62
- // 4) passthrough: extends/plugins/profiles if already present
63
- if (json.extends)
64
- out.extends = json.extends;
65
- if (json.plugins)
66
- out.plugins = json.plugins;
67
- if (json.profiles)
68
- out.profiles = json.profiles;
69
- // 5) bring forward unknown top-level keys as-is (non-invasive)
70
- for (const [k, v] of Object.entries(json)) {
71
- if ([
72
- "tools",
73
- "auto",
74
- "output",
75
- "extends",
76
- "plugins",
77
- "profiles",
78
- "cleaners",
79
- "scheduler",
80
- "defaults",
81
- ].includes(k))
82
- continue;
83
- if (!(k in out))
84
- out[k] = v;
85
- }
86
- return out;
87
- }
88
- function writeBackupAndSave(targetPath, newJson) {
89
- const dir = node_path_1.default.dirname(targetPath);
90
- const base = node_path_1.default.basename(targetPath);
91
- const stamp = new Date().toISOString().replace(/[:.]/g, "-");
92
- const backup = node_path_1.default.join(dir, `${base}.backup.${stamp}.json`);
93
- const pretty = (o) => JSON.stringify(o, null, 2);
94
- // Backup original if exists
95
- if (node_fs_1.default.existsSync(targetPath)) {
96
- const src = node_fs_1.default.readFileSync(targetPath, "utf8");
97
- node_fs_1.default.writeFileSync(backup, src, "utf8");
98
- }
99
- node_fs_1.default.writeFileSync(targetPath, pretty(newJson) + "\n", "utf8");
100
- return backup;
101
- }
102
- //# sourceMappingURL=migrateConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrateConfig.js","sourceRoot":"","sources":["../../src/config/migrateConfig.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export interface PluginInfo {
2
- name: string;
3
- path: string;
4
- }
5
- export declare function discoverPlugins(prefixes?: string[], scopes?: string[]): PluginInfo[];
6
- //# sourceMappingURL=discovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/plugins/discovery.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAuBD,wBAAgB,eAAe,CAC7B,QAAQ,GAAE,MAAM,EAAyB,EACzC,MAAM,GAAE,MAAM,EAAO,GACpB,UAAU,EAAE,CA8Bd"}
@@ -1,64 +0,0 @@
1
- "use strict";
2
- // src/plugins/discovery.ts
3
- // finds squeaky packages (+ optional scoped prefixes) installed in current project or globally
4
- var __importDefault = (this && this.__importDefault) || function (mod) {
5
- return (mod && mod.__esModule) ? mod : { "default": mod };
6
- };
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.discoverPlugins = discoverPlugins;
9
- const node_path_1 = __importDefault(require("node:path"));
10
- const node_fs_1 = __importDefault(require("node:fs"));
11
- function listNodeModulesRoots() {
12
- const roots = new Set();
13
- const cwd = process.cwd();
14
- // Walk up looking for node_modules
15
- let dir = cwd;
16
- for (;;) {
17
- const nm = node_path_1.default.join(dir, "node_modules");
18
- if (node_fs_1.default.existsSync(nm))
19
- roots.add(nm);
20
- const parent = node_path_1.default.dirname(dir);
21
- if (parent === dir)
22
- break;
23
- dir = parent;
24
- }
25
- // Add global npm prefix if present
26
- if (process.env.npm_config_prefix) {
27
- roots.add(node_path_1.default.join(process.env.npm_config_prefix, "lib", "node_modules"));
28
- }
29
- return Array.from(roots);
30
- }
31
- function discoverPlugins(prefixes = ["squeaky-cleaner-"], scopes = []) {
32
- const roots = listNodeModulesRoots();
33
- const found = [];
34
- for (const root of roots) {
35
- if (!node_fs_1.default.existsSync(root))
36
- continue;
37
- for (const entry of node_fs_1.default.readdirSync(root)) {
38
- // scoped packages
39
- if (entry.startsWith("@")) {
40
- if (scopes.length && !scopes.includes(entry))
41
- continue;
42
- const scopeDir = node_path_1.default.join(root, entry);
43
- if (!node_fs_1.default.existsSync(scopeDir))
44
- continue;
45
- for (const pkg of node_fs_1.default.readdirSync(scopeDir)) {
46
- if (prefixes.some((p) => pkg.startsWith(p))) {
47
- const pkgPath = node_path_1.default.join(scopeDir, pkg);
48
- found.push({ name: `${entry}/${pkg}`, path: pkgPath });
49
- }
50
- }
51
- }
52
- else {
53
- if (prefixes.some((p) => entry.startsWith(p))) {
54
- const pkgPath = node_path_1.default.join(root, entry);
55
- found.push({ name: entry, path: pkgPath });
56
- }
57
- }
58
- }
59
- }
60
- // De-dup by name
61
- const map = new Map(found.map((p) => [p.name, p]));
62
- return Array.from(map.values());
63
- }
64
- //# sourceMappingURL=discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/plugins/discovery.ts"],"names":[],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- import { UserConfig } from "../types";
2
- /**
3
- * User profile definition
4
- */
5
- export interface UserProfile {
6
- id: string;
7
- name: string;
8
- description: string;
9
- icon?: string;
10
- config: Partial<UserConfig>;
11
- recommendedCleaners: string[];
12
- autoCleanSchedule?: string;
13
- }
14
- /**
15
- * Predefined user profiles for different workflows
16
- */
17
- export declare const profiles: Map<string, UserProfile>;
18
- /**
19
- * Profile manager for handling user profiles
20
- */
21
- export declare class ProfileManager {
22
- private activeProfile;
23
- /**
24
- * Get a profile by ID
25
- */
26
- getProfile(id: string): UserProfile | undefined;
27
- /**
28
- * Get all available profiles
29
- */
30
- getAllProfiles(): UserProfile[];
31
- /**
32
- * Set the active profile
33
- */
34
- setActiveProfile(id: string): boolean;
35
- /**
36
- * Get the active profile
37
- */
38
- getActiveProfile(): UserProfile | null;
39
- /**
40
- * Apply a profile's configuration
41
- */
42
- applyProfile(id: string): Partial<UserConfig> | null;
43
- /**
44
- * Create a custom profile
45
- */
46
- createCustomProfile(profile: UserProfile): void;
47
- /**
48
- * Remove a profile
49
- */
50
- removeProfile(id: string): boolean;
51
- /**
52
- * Export profile as JSON
53
- */
54
- exportProfile(id: string): string | null;
55
- /**
56
- * Import profile from JSON
57
- */
58
- importProfile(json: string): boolean;
59
- }
60
- export declare const profileManager: ProfileManager;
61
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CA+S5C,CAAC;AAEH;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,CAA4B;IAEjD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI/C;;OAEG;IACH,cAAc,IAAI,WAAW,EAAE;IAI/B;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IASrC;;OAEG;IACH,gBAAgB,IAAI,WAAW,GAAG,IAAI;IAItC;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IASpD;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAI/C;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAkBlC;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQxC;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAYrC;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}