{"adoption": {"forks": 188, "observed_at": "2026-08-28T04:03:36.664699+00:00", "stars": 1107}, "canonical_url": "https://ross.abutalabs.com/products/jsfscansh", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Automation for javascript recon in bug bounty. ", "domain": ["security", "penetration-testing", "web-development"], "enriched": true, "function": ["web-scraping", "security", "workflow-automation", "developer-tools"], "health_score": 20, "homepage": null, "language": "Shell", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["KathanP19/JSFScan.sh"], "name": "KathanP19/JSFScan.sh", "platform": ["cli"], "pushed_at": "2023-09-09T15:10:22+00:00", "repo": "KathanP19/JSFScan.sh", "stars": 1107, "tags": ["bug-bounty", "javascript-recon", "reconnaissance", "shell-script", "dom-xss", "secrets-detection", "html-report", "automation", "linux", "macos", "docker"], "topics": ["javascript-recon", "bugbounty-tool", "bugbounty"], "urls": [], "use_cases": ["automate javascript recon for bug bounty", "find secrets in javascript files", "extract endpoints from js files", "scan js files for dom xss", "build wordlists from javascript files", "generate html report of js recon findings"], "what_it_is": "JSFScan.sh is a shell script that automates JavaScript reconnaissance for bug bounty hunting. Given a list of subdomains, it gathers JS file links, extracts endpoints, variables, and secrets, scans for DOM XSS, builds wordlists, and generates an HTML report.", "when_to_avoid": ["you need a maintained library or API rather than a shell script", "you are on Windows without WSL or Docker", "you need fine-grained control or modern tooling beyond what the script wraps"], "when_to_choose": ["you do bug bounty recon on web targets and want a one-command JS pipeline", "you want to aggregate multiple JS recon tools into a single script", "you want a quick HTML report of endpoints and secrets in JS files"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jsfscansh", "repo": "KathanP19/JSFScan.sh", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:44:00.688230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0ddfecb061e4b6589546926857bb6f4af8eb39f2c0214047c1c986f5de323e7", "fetched_at": "2026-08-28T04:03:36.664699+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KathanP19/JSFScan.sh"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:44:00.688230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0ddfecb061e4b6589546926857bb6f4af8eb39f2c0214047c1c986f5de323e7", "fetched_at": "2026-08-28T04:03:36.664699+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KathanP19/JSFScan.sh"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:44:00.688230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0ddfecb061e4b6589546926857bb6f4af8eb39f2c0214047c1c986f5de323e7", "fetched_at": "2026-08-28T04:03:36.664699+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KathanP19/JSFScan.sh"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:44:00.688230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0ddfecb061e4b6589546926857bb6f4af8eb39f2c0214047c1c986f5de323e7", "fetched_at": "2026-08-28T04:03:36.664699+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KathanP19/JSFScan.sh"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:44:00.688230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0ddfecb061e4b6589546926857bb6f4af8eb39f2c0214047c1c986f5de323e7", "fetched_at": "2026-08-28T04:03:36.664699+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KathanP19/JSFScan.sh"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:44:00.688230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0ddfecb061e4b6589546926857bb6f4af8eb39f2c0214047c1c986f5de323e7", "fetched_at": "2026-08-28T04:03:36.664699+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KathanP19/JSFScan.sh"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.664699+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:44:00.688230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0ddfecb061e4b6589546926857bb6f4af8eb39f2c0214047c1c986f5de323e7", "fetched_at": "2026-08-28T04:03:36.664699+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KathanP19/JSFScan.sh"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:44:00.688230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0ddfecb061e4b6589546926857bb6f4af8eb39f2c0214047c1c986f5de323e7", "fetched_at": "2026-08-28T04:03:36.664699+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KathanP19/JSFScan.sh"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:44:00.688230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0ddfecb061e4b6589546926857bb6f4af8eb39f2c0214047c1c986f5de323e7", "fetched_at": "2026-08-28T04:03:36.664699+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KathanP19/JSFScan.sh"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:44:00.688230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0ddfecb061e4b6589546926857bb6f4af8eb39f2c0214047c1c986f5de323e7", "fetched_at": "2026-08-28T04:03:36.664699+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KathanP19/JSFScan.sh"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2255, "days_push": 1089, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}