@j0hanz/superfetch 2.5.2 → 2.5.3

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
@@ -25,6 +25,12 @@ cache, and SSRF protections.
25
25
  - Stdio or Streamable HTTP transport with session management.
26
26
  - SSRF protections: blocked private IP ranges and internal hostnames.
27
27
 
28
+ > **Note:** Content extraction quality varies depending on the HTML structure and
29
+ > complexity of the source page. SuperFetch works best with standard article and
30
+ > documentation layouts. Always verify the fetched content to ensure it meets
31
+ > your expectations, as some pages may require manual adjustment or alternative
32
+ > approaches.
33
+
28
34
  ## Tech Stack
29
35
 
30
36
  - Runtime: Node.js >= 20.18.1 (engines)
@@ -245,6 +251,9 @@ Limitations:
245
251
 
246
252
  - Only http/https URLs are accepted; URLs with embedded credentials are rejected.
247
253
  - Client-side JavaScript is not executed.
254
+ - Content extraction quality depends on the source HTML structure. Works best
255
+ with standard article and documentation layouts. Always verify output meets
256
+ expectations.
248
257
 
249
258
  Large content handling:
250
259
 
@@ -31,6 +31,7 @@
31
31
  - **Side effects:** None (read-only, idempotent). Populates cache automatically.
32
32
  - **Limits:** Inline content capped at 20,000 chars; larger content offloaded to `superfetch://cache/...`.
33
33
  - **Blocked targets:** `localhost`, private IPs (`10.x`, `172.16–31.x`, `192.168.x`), cloud metadata endpoints.
34
+ - **Content quality:** Extraction quality varies by HTML structure. Works best with standard articles/docs. Always verify output.
34
35
 
35
36
  ## 4. Error Handling Strategy
36
37
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@j0hanz/superfetch",
3
- "version": "2.5.2",
3
+ "version": "2.5.3",
4
4
  "mcpName": "io.github.j0hanz/superfetch",
5
5
  "description": "Intelligent web content fetcher MCP server that converts HTML to clean, AI-readable Markdown",
6
6
  "type": "module",
@@ -34,22 +34,22 @@
34
34
  "superfetch"
35
35
  ],
36
36
  "scripts": {
37
- "clean": "node scripts/build.mjs clean",
38
- "validate:instructions": "node scripts/build.mjs validate:instructions",
39
- "build": "node scripts/build.mjs",
40
- "copy:assets": "node scripts/build.mjs copy:assets",
37
+ "clean": "node scripts/tasks.mjs clean",
38
+ "validate:instructions": "node scripts/tasks.mjs validate:instructions",
39
+ "build": "node scripts/tasks.mjs build",
40
+ "copy:assets": "node scripts/tasks.mjs copy:assets",
41
41
  "prepare": "npm run build",
42
42
  "dev": "tsc --watch --preserveWatchOutput",
43
43
  "dev:run": "node --env-file=.env --watch dist/index.js",
44
44
  "start": "node dist/index.js",
45
45
  "format": "prettier --write .",
46
- "type-check": "tsc --noEmit",
46
+ "type-check": "node scripts/tasks.mjs type-check",
47
47
  "type-check:diagnostics": "tsc --noEmit --extendedDiagnostics",
48
48
  "type-check:trace": "node -e \"require('fs').rmSync('.ts-trace',{recursive:true,force:true})\" && tsc --noEmit --generateTrace .ts-trace",
49
49
  "lint": "eslint .",
50
50
  "lint:fix": "eslint . --fix",
51
- "test": "npm run build --silent && node --test --experimental-transform-types",
52
- "test:coverage": "npm run build --silent && node --test --experimental-transform-types --experimental-test-coverage",
51
+ "test": "node scripts/tasks.mjs test",
52
+ "test:coverage": "node scripts/tasks.mjs test --coverage",
53
53
  "knip": "knip",
54
54
  "knip:fix": "knip --fix",
55
55
  "inspector": "npx @modelcontextprotocol/inspector",
@@ -78,6 +78,6 @@
78
78
  "typescript-eslint": "^8.54.0"
79
79
  },
80
80
  "engines": {
81
- "node": ">=20.18.1"
81
+ "node": ">=22.19.8"
82
82
  }
83
83
  }