@shriyanss/js-recon 1.3.1-alpha.4 → 1.3.1-beta.1

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/CHANGELOG.md CHANGED
@@ -1,11 +1,17 @@
1
1
  # Change Log
2
2
 
3
- ## 1.3.1-alpha.4 - 2026-06-08
3
+ ## 1.3.1-beta.1 - 2026-06-08
4
+
5
+ ### Added
6
+
7
+ ### Changed
4
8
 
5
9
  ### Fixed
6
10
 
7
- - `extractSourceMaps` no longer crashes with `EISDIR` when a source map entry has a degenerate path (e.g. a bare `webpack://` prefix with no trailing path) that `normalizePath` reduces to `"."` — such entries are now silently skipped (`lazyload`, `run`)
8
- - Source map files extracted during `run` are now written to `output/<domain>/extracted/` (or the equivalent per-target subdirectory) instead of a bare `extracted/` directory in the current working directory (`lazyload`, `run`)
11
+ - Bumped versions for dependencies
12
+ - Fixed container
13
+
14
+ ## 1.3.1-alpha.4 - 2026-06-08
9
15
 
10
16
  ### Performance
11
17
 
@@ -75,6 +81,8 @@
75
81
  - `mcp --cli` "Thinking..." spinner no longer ticks forever after a provider error — the `setInterval` is now declared outside the `try` and cleared in `finally`, so 4xx/network failures render cleanly and the next prompt is not mangled (`mcp --cli`)
76
82
  - Job/skill announcements (e.g. `[Job 1] run started ...`, `[Invoking skill: web_app_pentest]`) are now echoed to the REPL the moment `handleToolExecution` returns, in addition to being baked into the LLM context. Previously, if the subsequent LLM call failed (quota / auth), the user had no visible signal that a background scan had actually been spawned (`mcp --cli`)
77
83
  - Ctrl-C in `mcp --cli` no longer crashes the readline with `SES_UNCAUGHT_EXCEPTION: readline was closed`. The SIGINT handler is wrapped in a try/catch and `prompt()` is guarded by a `promptingActive` flag so a re-entrant call against an already-pending `rl.question` is dropped instead of tearing the interface down (`mcp --cli`)
84
+ - `extractSourceMaps` no longer crashes with `EISDIR` when a source map entry has a degenerate path (e.g. a bare `webpack://` prefix with no trailing path) that `normalizePath` reduces to `"."` — such entries are now silently skipped (`lazyload`, `run`)
85
+ - Source map files extracted during `run` are now written to `output/<domain>/extracted/` (or the equivalent per-target subdirectory) instead of a bare `extracted/` directory in the current working directory (`lazyload`, `run`)
78
86
 
79
87
  ## 1.3.1-alpha.3 - 2026-05-20
80
88
 
package/CLAUDE.md CHANGED
@@ -195,7 +195,7 @@ Releasing a new version touches four repos. Work on `dev` (js-recon, js-recon-ru
195
195
  git log <prev-tag>..HEAD --oneline | grep -E "^[a-f0-9]+ (feat|fix)"
196
196
  ```
197
197
 
198
- 3. **Update README** — ensure the Commands table in `README.md` lists every subcommand declared in `src/index.ts`.
198
+ 3. **Update README** — ensure the Commands table in `README.md` lists every subcommand declared in `src/index.ts`. The `refactor` and `load` subcommands are easy to miss — explicitly verify they are present.
199
199
 
200
200
  4. **Update rules** (`js-recon-rules` repo, `dev` branch) — if there are unreleased commits, update `CHANGELOG.md` and `version.txt`, then push.
201
201
 
@@ -214,7 +214,11 @@ Releasing a new version touches four repos. Work on `dev` (js-recon, js-recon-ru
214
214
  | `shriyanss/js-recon-docs` | `stage` | `main` | version string | Brief summary of doc changes |
215
215
  | `shriyanss/js-recon-rules` | `dev` | `main` | rules version (e.g. `v1.2.0`) | `## <version>` rules changelog section |
216
216
 
217
- 8. **Monitor PRs** — CodeRabbit reviews automatically. Wait for GitHub CI (version check, build, etc.) to pass. The docs CI check is expected to fail until js-recon is fully published to npm.
217
+ 8. **Monitor CI** — after PRs are open, use `gh pr checks <pr-number> --repo <owner/repo>` to watch all three repos. Poll until all checks complete. The docs CI check is expected to fail until js-recon is fully published to npm — that is acceptable.
218
+
219
+ 9. **Handle CodeRabbit** — js-recon has CodeRabbit installed. After the PR is created, poll for review comments with `gh api repos/shriyanss/js-recon/pulls/<pr>/comments`. For each actionable suggestion (correctness bugs, conventions violations), apply a fix as a follow-up commit to `dev` — the PR updates automatically. Trivial style preferences can be skipped.
220
+
221
+ 10. **Stop before merge** — do NOT merge any PR. Once all CI checks pass and CodeRabbit suggestions are addressed, present a summary to the user: what changed in each repo, PR links, CI status, CodeRabbit disposition. Wait for explicit merge approval.
218
222
 
219
223
  ## Security / confidentiality
220
224
 
package/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM --platform=amd64 ghcr.io/puppeteer/puppeteer:latest
1
+ FROM ghcr.io/puppeteer/puppeteer:24.43.1
2
2
 
3
3
  WORKDIR /home/pptruser
4
4
 
@@ -9,11 +9,25 @@ COPY ./tsconfig.json .
9
9
  COPY ./src ./src
10
10
 
11
11
  USER root
12
+ ENV PUPPETEER_SKIP_DOWNLOAD=true
13
+ RUN apt-get update && apt-get install -y --no-install-recommends \
14
+ unzip \
15
+ libnspr4 libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 \
16
+ libxcomposite1 libxdamage1 libxrandr2 libgbm1 libxkbcommon0 \
17
+ libasound2 libpangocairo-1.0-0 libxfixes3 libxi6 libxinerama1 \
18
+ libxcursor1 libdrm2 && \
19
+ rm -rf /var/lib/apt/lists/*
12
20
  RUN npm ci
13
21
  RUN npm run build
14
22
 
15
23
  USER pptruser
16
- RUN npx puppeteer browsers install chrome
24
+ RUN ./node_modules/.bin/puppeteer browsers install chrome && \
25
+ for zip in /home/pptruser/.cache/puppeteer/chrome/*-chrome-linux64.zip; do \
26
+ [ -f "$zip" ] || break; \
27
+ version="${zip%-chrome-linux64.zip}"; version="${version##*/}"; \
28
+ dest="/home/pptruser/.cache/puppeteer/chrome/linux-${version}"; \
29
+ unzip -o "$zip" -d "${dest}/" && chmod +x "${dest}/chrome-linux64/chrome"; \
30
+ done
17
31
 
18
32
  ENV IS_DOCKER=true
19
33
  ENV NODE_OPTIONS="--max-http-header-size=99999999"
package/README.md CHANGED
@@ -62,6 +62,8 @@ js-recon run -u https://app.example.com
62
62
  | `report` | Generates a report from the analysis modules. | [Read Docs](https://js-recon.io/docs/docs/modules/report) |
63
63
  | `mcp` | AI-powered interactive CLI, one-shot chat, and MCP stdio server. | [Read Docs](https://js-recon.io/docs/docs/modules/mcp) |
64
64
  | `fingerprint` | Detects the JavaScript framework used by a target URL (JSON/JSONL output). | [Read Docs](https://js-recon.io/docs/docs/modules/fingerprint) |
65
+ | `refactor` | Refactors and deobfuscates webpack modules from a mapped JSON file. | [Read Docs](https://js-recon.io/docs/docs/modules/refactor) |
66
+ | `load` | Populates the response cache from a Caido or Burp Suite export. | [Read Docs](https://js-recon.io/docs/docs/modules/load) |
65
67
 
66
68
  ## Key Features
67
69
 
@@ -1,6 +1,6 @@
1
1
  const githubURL = "https://github.com/shriyanss/js-recon";
2
2
  const modulesDocs = "https://js-recon.io/docs/category/modules";
3
- const version = "1.3.1-alpha.4";
3
+ const version = "1.3.1-beta.1";
4
4
  const toolDesc = "JS Recon Tool";
5
5
  const axiosNonHttpMethods = ["isAxiosError"]; // methods available in axios, which are not for making HTTP requests
6
6
  let CONFIG = {
@@ -1 +1 @@
1
- {"version":3,"file":"globalConfig.js","sourceRoot":"","sources":["../src/globalConfig.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,uCAAuC,CAAC;AAC1D,MAAM,WAAW,GAAG,2CAA2C,CAAC;AAChE,MAAM,OAAO,GAAG,eAAe,CAAC;AAChC,MAAM,QAAQ,GAAG,eAAe,CAAC;AACjC,MAAM,mBAAmB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,qEAAqE;AAEnH,IAAI,MAAM,GAAG;IACT,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,WAAW;IACxB,eAAe,EAAE,qFAAqF,SAAS,kCAAkC;IACjJ,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,mBAAmB,EAAE,mBAAmB;IACxC,QAAQ,EAAE,GAAG,SAAS,oBAAoB;CAC7C,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"globalConfig.js","sourceRoot":"","sources":["../src/globalConfig.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,uCAAuC,CAAC;AAC1D,MAAM,WAAW,GAAG,2CAA2C,CAAC;AAChE,MAAM,OAAO,GAAG,cAAc,CAAC;AAC/B,MAAM,QAAQ,GAAG,eAAe,CAAC;AACjC,MAAM,mBAAmB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,qEAAqE;AAEnH,IAAI,MAAM,GAAG;IACT,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,WAAW;IACxB,eAAe,EAAE,qFAAqF,SAAS,kCAAkC;IACjJ,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,mBAAmB,EAAE,mBAAmB;IACxC,QAAQ,EAAE,GAAG,SAAS,oBAAoB;CAC7C,CAAC;AAEF,eAAe,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shriyanss/js-recon",
3
- "version": "1.3.1-alpha.4",
3
+ "version": "1.3.1-beta.1",
4
4
  "description": "JS Recon Tool",
5
5
  "main": "build/index.js",
6
6
  "type": "module",
@@ -20,21 +20,21 @@
20
20
  "dependencies": {
21
21
  "@anthropic-ai/sdk": "^0.102.0",
22
22
  "@aws-sdk/client-api-gateway": "^3.958.0",
23
- "@babel/parser": "^7.27.4",
24
- "@babel/traverse": "^7.27.4",
23
+ "@babel/parser": "^7.28.5",
24
+ "@babel/traverse": "^7.28.5",
25
25
  "@babel/types": "^7.27.6",
26
26
  "@modelcontextprotocol/sdk": "^1.29.0",
27
27
  "@types/chalk": "^0.4.31",
28
28
  "@types/cli-progress": "^3.11.6",
29
29
  "better-sqlite3": "^12.5.0",
30
30
  "blessed": "^0.1.81",
31
- "chalk": "^5.4.1",
31
+ "chalk": "^5.6.2",
32
32
  "cheerio": "^1.0.0",
33
33
  "cli-highlight": "^2.1.11",
34
34
  "cli-progress": "^3.12.0",
35
35
  "commander": "^14.0.0",
36
- "datatables.net": "^2.3.2",
37
- "datatables.net-dt": "^2.3.2",
36
+ "datatables.net": "^2.3.6",
37
+ "datatables.net-dt": "^2.3.6",
38
38
  "esquery": "^1.6.0",
39
39
  "fs": "^0.0.2",
40
40
  "graphql": "^16.14.1",