mirror of
https://github.com/morluto/rea.git
synced 2026-10-30 03:15:54 +00:00
* fix(electron): resolve pages served from inside app.asar Packaged Electron applications load their renderer pages from file URLs inside app.asar. The host filesystem cannot stat those paths, so list_electron_targets excluded every such page as unsupported_url and inspect_electron_page could not select it. Resolve these URLs the way Electron's file protocol does: the first .asar path component that is a regular file is the archive, and the remainder must name a regular file in its header. Directories, links, and missing members stay rejected. Parsed headers are cached by archive identity. * fix(artifacts): extract and explain rewritten ASAR unpacked companions Packaging tools commonly sign or strip .asar.unpacked native binaries after writing the archive header, so their declared hashes no longer match. analyze_javascript_application already accepts integrity_policy, but extract_artifact did not, and inspect_artifact and extract_artifact still told callers to "get a fresh copy", which cannot help for a shipped app. - Accept integrity_policy on extract_artifact (MCP and CLI). The default still fails closed; record-and-continue writes the observed bytes and returns the extracted files' integrity_contradictions records. - Name the unpacked entry and the post-packaging cause in integrity failures, and point every operation that accepts integrity_policy at record-and-continue. - Report an active unpacked entry whose companion file is absent as unavailable with its logical path instead of a format failure. - Share one integrity_policy schema across the inventory, extraction, and JavaScript application inputs. * fix(electron): bound ASAR headers before allocation --------- Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
15 lines
558 B
TypeScript
15 lines
558 B
TypeScript
import { z } from "zod";
|
|
import { artifactIntegrityPolicySchema } from "../../domain/artifactIntegrityPolicy.js";
|
|
|
|
/** Local ASAR/directory reconstruction request. */
|
|
export const javascriptArtifactReconstructionInputSchema = z.strictObject({
|
|
input_path: z.string().min(1),
|
|
format: z.enum(["auto", "asar", "directory"]).default("auto"),
|
|
integrity_policy: artifactIntegrityPolicySchema,
|
|
});
|
|
|
|
/** Parsed local reconstruction request. */
|
|
export type JavaScriptArtifactReconstructionInput = z.infer<
|
|
typeof javascriptArtifactReconstructionInputSchema
|
|
>;
|