node-janitor 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/core/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EACH,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,UAAU,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,gCAAgC;AAChC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IACzB,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,OAAO;IACP,aAAa;IACb,SAAS;IACT,cAAc;IACd,QAAQ;CACX,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,OAAoB,EACpB,UAAmE;IAEnE,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,UAAU,IAAI,CAAC,GAAW,EAAE,KAAa;QAC1C,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YACvD,OAAO;QACX,CAAC;QAED,IAAI,KAAe,CAAC;QACpB,IAAI,CAAC;YACD,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACL,mCAAmC;YACnC,OAAO;QACX,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,iCAAiC;YACjC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,SAAS;YACb,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEtC,2BAA2B;YAC3B,IAAI,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;gBACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oBACvD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC,CAAC,EAAE,CAAC;gBACD,SAAS;YACb,CAAC;YAED,IAAI,KAAK,CAAC;YACV,IAAI,CAAC;gBACD,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,SAAS;YACb,CAAC;YAED,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC1B,YAAY,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,GAAG,CAAC;gBAExB,kBAAkB;gBAClB,UAAU,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAExD,kBAAkB;gBAClB,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5E,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEnB,iCAAiC;gBACjC,SAAS;YACb,CAAC;YAED,kCAAkC;YAClC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,uBAAuB,SAAS,GAAG,CAAC,CAAC;IAElD,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAEzB,2CAA2C;IAC3C,IAAI,eAAe,GAAG,OAAO,CAAC;IAC9B,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACtC,OAAO,OAAO,CAAC,eAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC3C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oBACvD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,mBAAmB,OAAO,CAAC,MAAM,OAAO,eAAe,CAAC,MAAM,UAAU,CAAC,CAAC;IAC3F,CAAC;IAED,0BAA0B;IAC1B,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAEhD,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC7B,eAAuB,EACvB,WAAmB,EACnB,KAAK,GAAG,KAAK;IAEb,iBAAiB;IACjB,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAEzC,qCAAqC;IACrC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,IAAI,GAAG,MAAM,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,oBAAoB;IACpB,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,CAAC;IAE1D,sBAAsB;IACtB,MAAM,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACvD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC/C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;KACvD,CAAC,CAAC;IAEH,OAAO;QACH,IAAI,EAAE,eAAe;QACrB,WAAW;QACX,IAAI;QACJ,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,WAAW;QACX,WAAW;QACX,OAAO;KACV,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACvB,OAA0B,EAC1B,UAAmB,EACnB,UAAmB;IAEnB,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC3B,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CACxB,OAA0B,EAC1B,OAAgB,EAChB,OAAgB;IAEhB,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC3B,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA0B;IACzD,OAAO,OAAO,CAAC,MAAM,CACjB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAC9E,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAA0B;IAMtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAEpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC7D,CAAC;AAED,eAAe;IACX,eAAe;IACf,WAAW;IACX,YAAY;IACZ,kBAAkB;IAClB,eAAe;CAClB,CAAC"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/core/scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface LiveViewOptions {
2
+ path: string;
3
+ depth?: number;
4
+ }
5
+ /**
6
+ * Start the interactive live TUI mode
7
+ */
8
+ export declare function startLiveView(options: LiveViewOptions): Promise<void>;
9
+ declare const _default: {
10
+ startLiveView: typeof startLiveView;
11
+ };
12
+ export default _default;
13
+ //# sourceMappingURL=live-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-view.d.ts","sourceRoot":"","sources":["../../src/tui/live-view.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA0P3E;;;;AAED,wBAEE"}
@@ -0,0 +1,243 @@
1
+ import blessed from 'blessed';
2
+ import { scanNodeModules, calculateTotals } from '../core/scanner.js';
3
+ import { cleanNodeModules } from '../core/cleaner.js';
4
+ import { formatBytes } from '../utils/formatter.js';
5
+ /**
6
+ * Start the interactive live TUI mode
7
+ */
8
+ export async function startLiveView(options) {
9
+ const screen = blessed.screen({
10
+ smartCSR: true,
11
+ title: 'Node Janitor - Interactive Mode',
12
+ fullUnicode: true,
13
+ });
14
+ let folders = [];
15
+ let currentIndex = 0;
16
+ let isScanning = true;
17
+ let isDeleting = false;
18
+ let totalSize = 0;
19
+ let sortBy = 'size';
20
+ // Header box
21
+ const header = blessed.box({
22
+ top: 0,
23
+ left: 0,
24
+ width: '100%',
25
+ height: 3,
26
+ content: ' 🧹 NODE JANITOR - Interactive Mode',
27
+ tags: true,
28
+ style: {
29
+ fg: 'white',
30
+ bg: 'blue',
31
+ bold: true,
32
+ },
33
+ });
34
+ // Status bar (below header)
35
+ const statusBar = blessed.box({
36
+ top: 3,
37
+ left: 0,
38
+ width: '100%',
39
+ height: 1,
40
+ content: ' Scanning...',
41
+ tags: true,
42
+ style: {
43
+ fg: 'black',
44
+ bg: 'cyan',
45
+ },
46
+ });
47
+ // Main list
48
+ const list = blessed.list({
49
+ top: 4,
50
+ left: 0,
51
+ width: '100%',
52
+ height: '100%-7',
53
+ items: [' Scanning...'],
54
+ tags: true,
55
+ keys: true,
56
+ vi: true,
57
+ mouse: true,
58
+ scrollable: true,
59
+ alwaysScroll: true,
60
+ scrollbar: {
61
+ ch: '█',
62
+ style: {
63
+ bg: 'blue',
64
+ },
65
+ },
66
+ style: {
67
+ fg: 'white',
68
+ bg: 'black',
69
+ selected: {
70
+ fg: 'black',
71
+ bg: 'white',
72
+ },
73
+ },
74
+ });
75
+ // Help bar (bottom)
76
+ const helpBar = blessed.box({
77
+ bottom: 0,
78
+ left: 0,
79
+ width: '100%',
80
+ height: 3,
81
+ content: ' {cyan-fg}↑/↓{/} Navigate {cyan-fg}SPACE{/} Select {cyan-fg}A{/} Select All {cyan-fg}S{/} Sort {cyan-fg}D{/} Delete {cyan-fg}Q/ESC{/} Exit',
82
+ tags: true,
83
+ style: {
84
+ fg: 'white',
85
+ bg: 'gray',
86
+ },
87
+ });
88
+ // Append elements
89
+ screen.append(header);
90
+ screen.append(statusBar);
91
+ screen.append(list);
92
+ screen.append(helpBar);
93
+ // Update the display
94
+ function updateDisplay() {
95
+ // Update header with path
96
+ header.setContent(` 🧹 NODE JANITOR - Interactive Mode | ${options.path}`);
97
+ // Update status
98
+ const selectedCount = folders.filter(f => f.selected).length;
99
+ const selectedSize = folders
100
+ .filter(f => f.selected)
101
+ .reduce((sum, f) => sum + f.folder.size, 0);
102
+ let status = '';
103
+ if (isScanning) {
104
+ status = ` 🔍 Scanning... Found: ${folders.length} folders | Total: ${formatBytes(totalSize)}`;
105
+ }
106
+ else if (isDeleting) {
107
+ status = ' 🗑️ Deleting selected folders...';
108
+ }
109
+ else {
110
+ status = ` 📊 Found: ${folders.length} folders | Total: ${formatBytes(totalSize)}`;
111
+ if (selectedCount > 0) {
112
+ status += ` | Selected: ${selectedCount} (${formatBytes(selectedSize)})`;
113
+ }
114
+ status += ` | Sort: ${sortBy}`;
115
+ }
116
+ statusBar.setContent(status);
117
+ // Update list items
118
+ const items = folders.map((item, index) => {
119
+ const checkbox = item.selected ? '■' : '□';
120
+ const pointer = index === currentIndex ? '>' : ' ';
121
+ // Color by age
122
+ let ageColor = 'green';
123
+ if (item.folder.ageDays >= 90) {
124
+ ageColor = 'red';
125
+ }
126
+ else if (item.folder.ageDays >= 30) {
127
+ ageColor = 'yellow';
128
+ }
129
+ // Truncate path if needed
130
+ const maxPathLen = screen.width - 40;
131
+ let pathDisplay = item.folder.projectPath;
132
+ if (pathDisplay.length > maxPathLen) {
133
+ pathDisplay = '...' + pathDisplay.slice(-maxPathLen + 3);
134
+ }
135
+ return ` ${pointer} ${checkbox} ${pathDisplay.padEnd(maxPathLen)} {white-fg}${formatBytes(item.folder.size).padStart(10)}{/} {${ageColor}-fg}${String(item.folder.ageDays).padStart(4)}d{/}`;
136
+ });
137
+ if (items.length === 0) {
138
+ list.setItems([' No node_modules folders found']);
139
+ }
140
+ else {
141
+ list.setItems(items);
142
+ list.select(currentIndex);
143
+ }
144
+ screen.render();
145
+ }
146
+ // Sort folders
147
+ function sortFolders() {
148
+ folders.sort((a, b) => {
149
+ if (sortBy === 'size') {
150
+ return b.folder.size - a.folder.size;
151
+ }
152
+ return b.folder.ageDays - a.folder.ageDays;
153
+ });
154
+ }
155
+ // Key bindings
156
+ list.on('keypress', (_ch, key) => {
157
+ if (isDeleting)
158
+ return;
159
+ if (key.name === 'up' || key.name === 'k') {
160
+ currentIndex = Math.max(0, currentIndex - 1);
161
+ updateDisplay();
162
+ }
163
+ else if (key.name === 'down' || key.name === 'j') {
164
+ currentIndex = Math.min(folders.length - 1, currentIndex + 1);
165
+ updateDisplay();
166
+ }
167
+ else if (key.name === 'space') {
168
+ if (folders[currentIndex]) {
169
+ folders[currentIndex].selected = !folders[currentIndex].selected;
170
+ updateDisplay();
171
+ }
172
+ }
173
+ });
174
+ screen.key(['a'], () => {
175
+ if (isDeleting || isScanning)
176
+ return;
177
+ const allSelected = folders.every(f => f.selected);
178
+ folders.forEach(f => f.selected = !allSelected);
179
+ updateDisplay();
180
+ });
181
+ screen.key(['s'], () => {
182
+ if (isDeleting || isScanning)
183
+ return;
184
+ sortBy = sortBy === 'size' ? 'age' : 'size';
185
+ sortFolders();
186
+ updateDisplay();
187
+ });
188
+ screen.key(['d'], async () => {
189
+ if (isDeleting || isScanning)
190
+ return;
191
+ const selected = folders.filter(f => f.selected);
192
+ if (selected.length === 0)
193
+ return;
194
+ isDeleting = true;
195
+ updateDisplay();
196
+ try {
197
+ const foldersToDelete = selected.map(s => s.folder);
198
+ const result = await cleanNodeModules(foldersToDelete, { fast: true });
199
+ // Remove deleted folders from list
200
+ folders = folders.filter(f => !f.selected);
201
+ totalSize = folders.reduce((sum, f) => sum + f.folder.size, 0);
202
+ currentIndex = Math.min(currentIndex, folders.length - 1);
203
+ // Show result
204
+ statusBar.setContent(` ✅ Deleted ${result.deletedCount} folders, freed ${formatBytes(result.freedBytes)}`);
205
+ }
206
+ catch (error) {
207
+ statusBar.setContent(` ❌ Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
208
+ }
209
+ isDeleting = false;
210
+ updateDisplay();
211
+ });
212
+ screen.key(['escape', 'q', 'C-c'], () => {
213
+ screen.destroy();
214
+ process.exit(0);
215
+ });
216
+ list.focus();
217
+ updateDisplay();
218
+ // Start scanning
219
+ try {
220
+ const scannedFolders = await scanNodeModules({
221
+ path: options.path,
222
+ depth: options.depth,
223
+ quick: false,
224
+ });
225
+ folders = scannedFolders.map(folder => ({
226
+ folder,
227
+ selected: false,
228
+ }));
229
+ totalSize = calculateTotals(scannedFolders).totalSize;
230
+ sortFolders();
231
+ isScanning = false;
232
+ updateDisplay();
233
+ }
234
+ catch (error) {
235
+ isScanning = false;
236
+ statusBar.setContent(` ❌ Scan error: ${error instanceof Error ? error.message : 'Unknown error'}`);
237
+ screen.render();
238
+ }
239
+ }
240
+ export default {
241
+ startLiveView,
242
+ };
243
+ //# sourceMappingURL=live-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-view.js","sourceRoot":"","sources":["../../src/tui/live-view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { GitStatus } from '../types/index.js';
2
+ /**
3
+ * Check if a directory is inside a git repository
4
+ */
5
+ export declare function isGitRepo(dir: string): Promise<boolean>;
6
+ /**
7
+ * Get the root of the git repository
8
+ */
9
+ export declare function getGitRoot(dir: string): Promise<string | null>;
10
+ /**
11
+ * Check if there are uncommitted changes in the repository
12
+ */
13
+ export declare function isDirty(dir: string): Promise<boolean>;
14
+ /**
15
+ * Get the current branch name
16
+ */
17
+ export declare function getCurrentBranch(dir: string): Promise<string | null>;
18
+ /**
19
+ * Check if the current branch is merged into main/master
20
+ */
21
+ export declare function isMergedToMain(dir: string): Promise<boolean>;
22
+ /**
23
+ * Get full git status for a project directory
24
+ */
25
+ export declare function getGitStatus(projectPath: string): Promise<GitStatus | undefined>;
26
+ /**
27
+ * Check if node_modules is in gitignore
28
+ */
29
+ export declare function isNodeModulesIgnored(projectPath: string): Promise<boolean>;
30
+ declare const _default: {
31
+ isGitRepo: typeof isGitRepo;
32
+ getGitRoot: typeof getGitRoot;
33
+ isDirty: typeof isDirty;
34
+ getCurrentBranch: typeof getCurrentBranch;
35
+ isMergedToMain: typeof isMergedToMain;
36
+ getGitStatus: typeof getGitStatus;
37
+ isNodeModulesIgnored: typeof isNodeModulesIgnored;
38
+ };
39
+ export default _default;
40
+ //# sourceMappingURL=git-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-utils.d.ts","sourceRoot":"","sources":["../../src/utils/git-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO7D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOpE;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAO1E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BlE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAgBtF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYhF;;;;;;;;;;AAED,wBAQE"}
@@ -0,0 +1,122 @@
1
+ import { exec } from 'child_process';
2
+ import { promisify } from 'util';
3
+ import path from 'path';
4
+ const execAsync = promisify(exec);
5
+ /**
6
+ * Check if a directory is inside a git repository
7
+ */
8
+ export async function isGitRepo(dir) {
9
+ try {
10
+ await execAsync('git rev-parse --is-inside-work-tree', { cwd: dir });
11
+ return true;
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ }
17
+ /**
18
+ * Get the root of the git repository
19
+ */
20
+ export async function getGitRoot(dir) {
21
+ try {
22
+ const { stdout } = await execAsync('git rev-parse --show-toplevel', { cwd: dir });
23
+ return stdout.trim();
24
+ }
25
+ catch {
26
+ return null;
27
+ }
28
+ }
29
+ /**
30
+ * Check if there are uncommitted changes in the repository
31
+ */
32
+ export async function isDirty(dir) {
33
+ try {
34
+ const { stdout } = await execAsync('git status --porcelain', { cwd: dir });
35
+ return stdout.trim().length > 0;
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ /**
42
+ * Get the current branch name
43
+ */
44
+ export async function getCurrentBranch(dir) {
45
+ try {
46
+ const { stdout } = await execAsync('git rev-parse --abbrev-ref HEAD', { cwd: dir });
47
+ return stdout.trim();
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ }
53
+ /**
54
+ * Check if the current branch is merged into main/master
55
+ */
56
+ export async function isMergedToMain(dir) {
57
+ try {
58
+ const branch = await getCurrentBranch(dir);
59
+ if (!branch || branch === 'main' || branch === 'master') {
60
+ return true;
61
+ }
62
+ // Try to check if merged into main or master
63
+ const mainBranches = ['main', 'master'];
64
+ for (const mainBranch of mainBranches) {
65
+ try {
66
+ const { stdout } = await execAsync(`git branch --merged ${mainBranch} 2>/dev/null | grep -E "^\\s*${branch}$"`, { cwd: dir });
67
+ if (stdout.trim()) {
68
+ return true;
69
+ }
70
+ }
71
+ catch {
72
+ continue;
73
+ }
74
+ }
75
+ return false;
76
+ }
77
+ catch {
78
+ return false;
79
+ }
80
+ }
81
+ /**
82
+ * Get full git status for a project directory
83
+ */
84
+ export async function getGitStatus(projectPath) {
85
+ const isRepo = await isGitRepo(projectPath);
86
+ if (!isRepo) {
87
+ return undefined;
88
+ }
89
+ const [dirty, branch] = await Promise.all([
90
+ isDirty(projectPath),
91
+ getCurrentBranch(projectPath),
92
+ ]);
93
+ return {
94
+ isGitRepo: true,
95
+ isDirty: dirty,
96
+ branch: branch || undefined,
97
+ };
98
+ }
99
+ /**
100
+ * Check if node_modules is in gitignore
101
+ */
102
+ export async function isNodeModulesIgnored(projectPath) {
103
+ try {
104
+ const nodeModulesPath = path.join(projectPath, 'node_modules');
105
+ const { stdout } = await execAsync(`git check-ignore -q "${nodeModulesPath}" && echo "ignored" || echo "tracked"`, { cwd: projectPath });
106
+ return stdout.trim() === 'ignored';
107
+ }
108
+ catch {
109
+ // If git command fails, assume it's ignored (safe default)
110
+ return true;
111
+ }
112
+ }
113
+ export default {
114
+ isGitRepo,
115
+ getGitRoot,
116
+ isDirty,
117
+ getCurrentBranch,
118
+ isMergedToMain,
119
+ getGitStatus,
120
+ isNodeModulesIgnored,
121
+ };
122
+ //# sourceMappingURL=git-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../../src/utils/git-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Internationalization (i18n) support for node-janitor
3
+ */
4
+ export type Language = 'en' | 'vi' | 'zh' | 'ja' | 'ko' | 'es' | 'fr' | 'de';
5
+ export interface Translations {
6
+ found: string;
7
+ folders: string;
8
+ scanning: string;
9
+ noFolders: string;
10
+ cancelled: string;
11
+ goodbye: string;
12
+ deleting: string;
13
+ deleted: string;
14
+ freed: string;
15
+ cleaning: string;
16
+ deepCleaning: string;
17
+ processed: string;
18
+ removed: string;
19
+ files: string;
20
+ scanPath: string;
21
+ ageFilter: string;
22
+ confirmDelete: string;
23
+ viewList: string;
24
+ selectAction: string;
25
+ report: string;
26
+ totalFolders: string;
27
+ totalSize: string;
28
+ oldest: string;
29
+ newest: string;
30
+ breakdown: string;
31
+ recommendations: string;
32
+ scanFailed: string;
33
+ errors: string;
34
+ dryRunMode: string;
35
+ backupSaved: string;
36
+ }
37
+ /**
38
+ * Set the current language
39
+ */
40
+ export declare function setLanguage(lang: string): void;
41
+ /**
42
+ * Get a translated string
43
+ */
44
+ export declare function t(key: keyof Translations): string;
45
+ /**
46
+ * Get all available languages
47
+ */
48
+ export declare function getAvailableLanguages(): Language[];
49
+ /**
50
+ * Get current language
51
+ */
52
+ export declare function getCurrentLanguage(): Language;
53
+ declare const _default: {
54
+ setLanguage: typeof setLanguage;
55
+ t: typeof t;
56
+ getAvailableLanguages: typeof getAvailableLanguages;
57
+ getCurrentLanguage: typeof getCurrentLanguage;
58
+ };
59
+ export default _default;
60
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7E,MAAM,WAAW,YAAY;IAEzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAGhB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IAGd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IAGrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IAGxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IAGf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACvB;AA+SD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAU9C;AAED;;GAEG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,YAAY,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,EAAE,CAElD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,CAE7C;;;;;;;AAED,wBAKE"}