pmd-ruleset-visualizer 1.0.0 → 1.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 CHANGED
@@ -1,9 +1,16 @@
1
1
  # PMD Ruleset Visualizer
2
2
 
3
- A local-first Node.js app for exploring, visualizing, editing, and running PMD XML rulesets. No data is sent to any third-party service.
3
+ > A local-first Node.js app for exploring, visualizing, editing, and running PMD XML rulesets. No data is sent to any third-party service.
4
4
 
5
5
  ---
6
6
 
7
+ ## Screenshots
8
+ ![pmd-ruleset-1](https://raw.githubusercontent.com/mchinnappan100/npmjs-images/main/pmd-ruleset/pmd-ruleset-1.png)
9
+ ![pmd-ruleset-2](https://raw.githubusercontent.com/mchinnappan100/npmjs-images/main/pmd-ruleset/pmd-ruleset-2.png)
10
+ ![pmd-ruleset-3](https://raw.githubusercontent.com/mchinnappan100/npmjs-images/main/pmd-ruleset/pmd-ruleset-3.png)
11
+ ![pmd-ruleset-4](https://raw.githubusercontent.com/mchinnappan100/npmjs-images/main/pmd-ruleset/pmd-ruleset-4.png)
12
+ ![pmd-ruleset-5](https://raw.githubusercontent.com/mchinnappan100/npmjs-images/main/pmd-ruleset/pmd-ruleset-5.png)
13
+
7
14
  ## Prerequisites
8
15
 
9
16
  ### 1. Java
@@ -68,7 +75,7 @@ pmd check -d /usr/src -R rulesets/java/quickstart.xml -f text
68
75
  Requires **Node.js 18+**.
69
76
 
70
77
  ```bash
71
- npm install -f pmd-ruleset-visualizer
78
+ npm install -g pmd-ruleset-visualizer
72
79
  ```
73
80
 
74
81
  The bundled `public/sample-ruleset.xml` is loaded automatically on first open so the app is never blank. It is included in the published npm package via the `files` field in `package.json`.
@@ -201,6 +208,19 @@ Click the ☽/☀ button (top-right) to toggle dark mode. The preference is save
201
208
 
202
209
 
203
210
 
211
+ ## Security
212
+
213
+ The Express server binds to `127.0.0.1` — it is not accessible from the network.
214
+
215
+ `/api/read-file` enforces an extension allowlist. Only these file types may be read:
216
+
217
+ | Purpose | Extensions |
218
+ |---------|-----------|
219
+ | Ruleset auto-load | `.xml` `.ruleset` |
220
+ | Monaco source viewer | `.cls` `.trigger` `.apex` `.java` `.js` `.ts` `.jsx` `.tsx` `.py` `.go` `.cs` `.cpp` `.cc` `.cxx` `.c` `.h` `.swift` `.kt` `.rb` `.php` `.scala` `.groovy` `.pl` `.html` `.jsp` `.vue` |
221
+
222
+ Any other extension (`.env`, `.pem`, `.key`, config files, binaries) is rejected with HTTP 400.
223
+
204
224
  ## Important Notes
205
225
 
206
226
  - All XML parsing is local. No ruleset content is sent to any external service.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmd-ruleset-visualizer",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "private": false,
5
5
  "description": "Local graphical explorer and runner for PMD XML rulesets with Monaco editor integration",
6
6
  "main": "server.js",
@@ -35,6 +35,10 @@
35
35
  "dev": "node --watch server.js",
36
36
  "build": "obfuscli build -p . -o ./dist --preset medium --exclude 'node_modules,dist,.git,*.xml,*.md,*.json,*.css,*.ico,*.html' && rm -f dist/CLAUDE.md dist/SKILLS.md"
37
37
  },
38
+ "overrides": {
39
+ "uuid": "^11.0.0",
40
+ "minimatch": "^11.0.1"
41
+ },
38
42
  "dependencies": {
39
43
  "exceljs": "^4.4.0",
40
44
  "express": "^5.1.0",