@chahuadev/junk-sweeper-app 7.0.0 → 7.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -12
- package/install.js +10 -9
- package/package.json +39 -39
package/README.md
CHANGED
|
@@ -166,7 +166,7 @@ Heavy AST analysis runs in **Node.js Worker Threads** — your UI stays smooth a
|
|
|
166
166
|
| C# Unused Usings | 90–97% | Roslyn `CSharpSyntaxTree` | C# |
|
|
167
167
|
| C# Code Quality | 80–92% | Roslyn `CSharpSyntaxTree` | C# |
|
|
168
168
|
| C# Silent Bugs | 82–92% | Roslyn `CSharpSyntaxTree` | C# |
|
|
169
|
-
| Java (structural) |
|
|
169
|
+
| Java (structural) | [IN DEV] กำลังพัฒนา | `--source 11` subprocess | Java |
|
|
170
170
|
|
|
171
171
|
> Every finding now includes a **live recommendation** generated from your actual code — real variable names, the exact problematic line, and a concrete fix example. No hardcoded templates.
|
|
172
172
|
|
|
@@ -182,7 +182,7 @@ Supports (in development): **Java**
|
|
|
182
182
|
- **JS/TS/JSX/TSX** — `@babel/parser` + `@babel/traverse` (in-process, Worker Thread)
|
|
183
183
|
- **Python** — stdlib `ast` module via subprocess (`main_json.py`); 7 detectors
|
|
184
184
|
- **C#** — Microsoft Roslyn (`CSharpSyntaxTree`) via subprocess (`Program.cs`, .NET 10); 5 detectors
|
|
185
|
-
- **Java** — subprocess via `--source 11`
|
|
185
|
+
- **Java** — subprocess via `--source 11` [IN DEV] *กำลังพัฒนา*
|
|
186
186
|
- **6 active detectors** — unused variables, unused imports, dead code, duplicate functions, silent bugs, code quality
|
|
187
187
|
- **Silent Bugs — 8 patterns:** empty catch, floating promises, zombie listeners, orphaned timers, uncaught promise chains, scope shadowing, naked JSON.parse, await-in-loop
|
|
188
188
|
- **Code Quality — 10 patterns:** debugger statements, eval/new Function, NaN comparison, assignment-in-condition, parseInt without radix, var declaration, console.* debug logging, prototype mutation, overly long functions, TODO/FIXME markers
|
|
@@ -197,7 +197,7 @@ Supports (in development): **Java**
|
|
|
197
197
|
- **Detects:** SQL/NoSQL injection, command injection, path traversal, hardcoded secrets/tokens/passwords, unsafe `eval` / `new Function`, prototype pollution, insecure `Math.random`, unvalidated redirects, and more
|
|
198
198
|
- **Security tab severity chips** — ALL / CRITICAL / HIGH / MEDIUM / LOW filter chips sync with sidebar badge clicks
|
|
199
199
|
- **Security Statistics Sidebar** — severity breakdown with clickable severity badges (toggle mode) — syncs with security chips
|
|
200
|
-
- **Map Monitor integration** — security issue count +
|
|
200
|
+
- **Map Monitor integration** — security issue count + WARN-N badge shown on every affected file card
|
|
201
201
|
- **Mutual exclusion** — switching between Junk Scan and Security Scan automatically clears the previous result
|
|
202
202
|
|
|
203
203
|
### Project Map Monitor
|
|
@@ -207,10 +207,10 @@ Supports (in development): **Java**
|
|
|
207
207
|
- **Layout Memory** — positions saved to `%APPDATA%\Junk Sweeper\layouts\<project>.json` automatically; close and reopen the app and every node is exactly where you left it; share the JSON with your team via the Copy button
|
|
208
208
|
- **IPC channel edges** — visualises Electron `ipcRenderer`/`ipcMain` connections
|
|
209
209
|
- **Dependency detection** across JS, TS, HTML (`<script src>`, `<link href>`), and Electron patterns (`loadFile()`, `preload:`)
|
|
210
|
-
- **Per-file issue badges** — each node shows issue count with Green / Amber / Red status;
|
|
210
|
+
- **Per-file issue badges** — each node shows issue count with Green / Amber / Red status; WARN-N security badge appears above the role badge (non-overlapping)
|
|
211
211
|
- **Node Status legend** — Clean (green) / Minor (amber) / Critical (red) / npm (purple) / Gateway Box (orange pill) — collapsible, state persists
|
|
212
|
-
- **Electron Role badges** — MAIN / BR / UI /
|
|
213
|
-
- **Bidirectional Issues ↔ Map linking** — click the
|
|
212
|
+
- **Electron Role badges** — MAIN / BR / UI / SEC / ENG role labels on key Electron files
|
|
213
|
+
- **Bidirectional Issues ↔ Map linking** — click the PIN icon on any issue card to fly to that node on the map; click a node on the map to filter the Issues list to that file
|
|
214
214
|
- **One-Click VS Code Integration** — click any filename in the issue report to open VS Code at the exact problematic line
|
|
215
215
|
- **Workflow JSON Export / Import** — one-click save/load of map state as Junk Sweeper workflow JSON
|
|
216
216
|
- **Mobile-ready portable payload** — workflow JSON contains full map payload (nodes, edges, issueLinesByFile, positions, zoom/pan, edge style, node SVG data URIs, tooltips)
|
|
@@ -287,7 +287,7 @@ Both the **Code Issues** tab and the **Security Issues** tab have filter chips (
|
|
|
287
287
|
2. Nodes represent files; edges represent `require()`, `import`, `<script src>`, `loadFile()`, IPC channels, etc.
|
|
288
288
|
3. Node color: **Green** = clean, **Amber** = 1–2 issues, **Red** = 3+ issues, **Purple** = npm package, **Cyan** = IPC/bridge
|
|
289
289
|
4. **Layout Memory**: node positions save automatically on drag; use the hamburger menu (☰) to Save / Copy / Paste / Reset layout
|
|
290
|
-
5. **Bidirectional linking**: click the
|
|
290
|
+
5. **Bidirectional linking**: click the PIN icon on any issue card -> map focuses that node; click a node in the map -> Issues list filters to that file
|
|
291
291
|
6. Hover a node to see full path and issue count; click to open its source code in the side panel
|
|
292
292
|
7. Use **Export → Save as JSON** to produce a portable workflow file that includes full render context
|
|
293
293
|
8. Use **Import** in map window to load workflow JSON back (desktop) or into future mobile map clients
|
|
@@ -425,10 +425,9 @@ chahuadev-junk-sweeper/
|
|
|
425
425
|
│ │ └── Issue.cs
|
|
426
426
|
│ └── java_scanner/
|
|
427
427
|
│ ├── manifest.json # runtime: java, --source 11
|
|
428
|
-
│ └── Main.java #
|
|
428
|
+
│ └── Main.java # [IN DEV] กำลังพัฒนา — basic structural scanner
|
|
429
429
|
├── security/
|
|
430
|
-
│
|
|
431
|
-
│ └── security-validator.js # Checksum validation
|
|
430
|
+
│ └── security-validator.js # Unified security gateway + runtime validation
|
|
432
431
|
├── icons/
|
|
433
432
|
└── vendor/
|
|
434
433
|
├── elkjs/ # Bundled ELK layered graph layout
|
|
@@ -447,7 +446,7 @@ chahuadev-junk-sweeper/
|
|
|
447
446
|
| @babel/parser + @babel/traverse | JS/TS/JSX/TSX AST parsing and traversal (6 detectors) |
|
|
448
447
|
| Python 3.8+ stdlib ast | Python AST via subprocess (7 detectors) |
|
|
449
448
|
| Microsoft.CodeAnalysis.CSharp 4.12 | Roslyn C# AST via subprocess (5 detectors) |
|
|
450
|
-
| Java --source 11 | Java structural scanner (
|
|
449
|
+
| Java --source 11 | Java structural scanner ([IN DEV] กำลังพัฒนา) |
|
|
451
450
|
| @swc/core | High-speed JS/TS compilation & analysis |
|
|
452
451
|
| parse5 | HTML parser (script/link dependency extraction) |
|
|
453
452
|
| esquery | AST query engine |
|
|
@@ -496,7 +495,7 @@ chahuadev-junk-sweeper/
|
|
|
496
495
|
|
|
497
496
|
### v1.0.4 — Security UX, Node Status Legend & Graph Export
|
|
498
497
|
- **Security tab severity chips** — ALL / CRITICAL / HIGH / MEDIUM / LOW chips in the Security Issues tab; sync with sidebar badge filter clicks
|
|
499
|
-
- **Security
|
|
498
|
+
- **Security WARN-N badge repositioned** — security badge on map cards moved to mid-right above the Electron role badge; no longer obstructs role label
|
|
500
499
|
- **Node Status legend** — legend section renamed and reorganised: Clean / Minor / Critical / npm / Gateway Box with accurate colour coding
|
|
501
500
|
- **`execFile` shell injection fix** in `main.js` — VS Code Go-to-Line now uses `execFile` with array args instead of `exec()` with shell string
|
|
502
501
|
|
package/install.js
CHANGED
|
@@ -7,22 +7,23 @@ const os = require('os');
|
|
|
7
7
|
const platform = os.platform();
|
|
8
8
|
const arch = os.arch();
|
|
9
9
|
|
|
10
|
-
const R2_BASE = 'https://
|
|
10
|
+
const R2_BASE = 'https://r2.chahuadev.com/junk-sweeper';
|
|
11
11
|
|
|
12
12
|
let downloadUrl = '';
|
|
13
13
|
let fileName = '';
|
|
14
14
|
|
|
15
15
|
if (platform === 'win32') {
|
|
16
|
-
downloadUrl = `${R2_BASE}/Junk
|
|
17
|
-
fileName = 'Junk
|
|
16
|
+
downloadUrl = `${R2_BASE}/Junk-Sweeper.exe`;
|
|
17
|
+
fileName = 'Junk-Sweeper.exe';
|
|
18
18
|
} else if (platform === 'linux') {
|
|
19
|
-
downloadUrl = `${R2_BASE}/Junk
|
|
20
|
-
fileName = 'Junk
|
|
19
|
+
downloadUrl = `${R2_BASE}/Junk-Sweeper.AppImage`;
|
|
20
|
+
fileName = 'Junk-Sweeper.AppImage';
|
|
21
21
|
} else if (platform === 'darwin') {
|
|
22
|
-
|
|
23
|
-
fileName =
|
|
22
|
+
const macArch = arch === 'arm64' ? 'arm64' : 'x64';
|
|
23
|
+
fileName = `Junk-Sweeper-${macArch}.dmg`;
|
|
24
|
+
downloadUrl = `${R2_BASE}/${encodeURIComponent(fileName)}`;
|
|
24
25
|
} else {
|
|
25
|
-
console.warn(`Chahuadev
|
|
26
|
+
console.warn(`Chahuadev-Junk-Sweeper does not support ${platform} ${arch} yet.`);
|
|
26
27
|
process.exit(0);
|
|
27
28
|
}
|
|
28
29
|
|
|
@@ -30,7 +31,7 @@ const binDir = path.join(__dirname, 'bin');
|
|
|
30
31
|
if (!fs.existsSync(binDir)) fs.mkdirSync(binDir, { recursive: true });
|
|
31
32
|
|
|
32
33
|
const filePath = path.join(binDir, fileName);
|
|
33
|
-
console.log(`\nChahuadev
|
|
34
|
+
console.log(`\nChahuadev-Junk-Sweeper -- Downloading binary for ${platform} (${arch})...`);
|
|
34
35
|
console.log('Please wait, this may take a few minutes.\n');
|
|
35
36
|
|
|
36
37
|
function downloadFile(url, dest) {
|
package/package.json
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
2
|
+
"name": "@chahuadev/junk-sweeper-app",
|
|
3
|
+
"version": "7.0.2",
|
|
4
|
+
"description": "Chahuadev Junk-Sweeper - AST-based dead code & silent bug detector with interactive architecture map",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"junk-sweeper": "index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"postinstall": "node install.js"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"index.js",
|
|
14
|
+
"install.js"
|
|
15
|
+
],
|
|
16
|
+
"keywords": [
|
|
17
|
+
"junk-sweeper",
|
|
18
|
+
"code-analysis",
|
|
19
|
+
"dead-code",
|
|
20
|
+
"unused-variables",
|
|
21
|
+
"silent-bugs",
|
|
22
|
+
"ast",
|
|
23
|
+
"electron",
|
|
24
|
+
"chahuadev"
|
|
25
|
+
],
|
|
26
|
+
"author": {
|
|
27
|
+
"name": "Chahuadev",
|
|
28
|
+
"email": "chahuadev@gmail.com",
|
|
29
|
+
"url": "https://chahuadev.com"
|
|
30
|
+
},
|
|
31
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "https://huggingface.co/datasets/chahuadev/chahuadev-junk-sweeper"
|
|
38
|
+
},
|
|
39
|
+
"homepage": "https://huggingface.co/datasets/chahuadev/chahuadev-junk-sweeper"
|
|
40
|
+
}
|