7 Commits

Author SHA1 Message Date
BFlat ebed13d0fc Keep ARM32 conditional call values, esbuild dependencies and window labels right (#656)
Replays #640–#642. Conditional A32 calls keep the skipped path's value, esbuild dependencies survive unrelated calls, and window comparison labels stay distinct without renumbering occurrences.

Co-authored-by: Afloat <132809511+Afloat16@users.noreply.github.com>
2026-11-03 20:49:11 +07:00
Max Mittelstädt 99bfba88bf Restore originals from long inline source maps (#368)
JavaScript analysis reads a source map comment from the last eight lines of the whole script and keeps its full URL, so originals are restored from large inline source maps.
2026-11-03 20:41:02 +07:00
BFlat 0eea78d7aa Read HTML pages' scripts and preloads correctly in more cases (#645)
Replays #591–#596. The HTML scanner reads rel token lists, decodes asset URLs once, keeps script and title text through lookalike closing tags, and skips raw-text elements, markup inside attribute values and custom tag names.

Co-authored-by: Afloat <132809511+Afloat16@users.noreply.github.com>
2026-11-03 19:58:08 +07:00
Afloat 89bcd06190 Minified esbuild modules keep their dependencies (R0.5) (#438)
Minified esbuild bundles keep the dependencies between their modules: wrapper calls are matched by binding, not by a require_/init_ name. Fixes #270.
2026-11-02 23:42:49 +07:00
Alex Joaquim Pereira 80cf0b8a50 A GraphQL document that begins with a comment is still read (#386)
js_app_map keeps a literal GraphQL document that begins with a # comment, and a lone CR ends a comment. Fixes #260.
2026-11-02 23:09:36 +07:00
BFlat 5185f36ab0 Import maps, speculation rules and data blocks aren't read as JavaScript (#353)
The HTML scanner skipped only `<script>` bodies whose type mentioned "json" or "template". Import maps (`importmap`), speculation rules (`speculationrules`) and data blocks such as `text/html` became JavaScript modules in app maps: an import map was reported as a broken script, and an inert HTML template could add made-up fetch endpoints.

A `<script>` now counts as a script only when the page runs it as code: no type, `module`, or a JavaScript MIME type (parameters such as `; charset=…` are ignored), plus `text/babel` and `text/jsx`, which in-browser Babel runs. Other types are left out, both inline and with `src`.

**Verified:** a new scanner test. Five non-JavaScript types (inline and with `src`) give no scripts; six JavaScript spellings, including a mixed-case type and one with a charset, give one each. `cargo test -p craft-anything-js` (41) and `-p craft-anything-analysis` (85), clippy and fmt pass.

**Not run:** `cargo xtask wasm`. The change is pure string logic in an existing function.

Fixes #285
2026-11-02 15:42:22 +07:00
Brandon Thomas f64ae3bf3c Craft Anything
A native, pure-Rust app that shows anyone how a piece of software works, with
evidence-backed answers, then helps them rebuild it. It ships a desktop app, a
CLI and an MCP server, all driven by one engine.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:52:14 -04:00