feat(artifact): reconstruct JavaScript application structure

This commit is contained in:
N0zoM1z0 authored and N0zoM1z0 committed 2026-07-16 06:43:30 +09:00
1 parent da4817abd1
commit aa46abfe1b
174 files changed
+11773 -74

No files matched your search

@@ -0,0 +1,61 @@
import type {
JavaScriptSourceRange,
JavaScriptStaticAnalysis,
} from "../domain/javascriptStaticAnalysisTypes.js";
import type { JavaScriptArtifactFile } from "./JavaScriptArtifactFiles.js";
/** Parsed package metadata used only for static entrypoint discovery. */
export interface JavaScriptPackageObservation {
readonly path: string;
readonly sha256: string;
readonly status: "included" | "invalid" | "unavailable";
readonly name: string | null;
readonly version: string | null;
readonly main: string | null;
readonly renderer: string | null;
readonly limitation: string | null;
}
/** One HTML script source observed without building or executing a DOM. */
export interface JavaScriptHtmlScriptObservation {
readonly html_path: string;
readonly script_path: string;
readonly location: JavaScriptSourceRange;
}
/** One original source declared by an approved local source map. */
export interface JavaScriptSourceMapOriginal {
readonly source: string;
readonly content: string | null;
readonly content_sha256: string | null;
}
/** Bounded local source-map parse result. */
export interface JavaScriptSourceMapObservation {
readonly path: string;
readonly sha256: string;
readonly status: "included" | "truncated" | "invalid" | "not-approved";
readonly sources: readonly JavaScriptSourceMapOriginal[];
readonly omitted_sources: number | null;
readonly limitation: string | null;
}
/** One relevant file plus optional AST-only JavaScript facts. */
export interface AnalyzedJavaScriptArtifactFile {
readonly file: JavaScriptArtifactFile;
readonly javascript: JavaScriptStaticAnalysis | null;
}
/** Complete bounded static-analysis projection before graph construction. */
export interface JavaScriptArtifactAnalysis {
readonly files: readonly AnalyzedJavaScriptArtifactFile[];
readonly packages: readonly JavaScriptPackageObservation[];
readonly html_scripts: readonly JavaScriptHtmlScriptObservation[];
readonly source_maps: readonly JavaScriptSourceMapObservation[];
readonly visited_ast_nodes: number;
readonly findings: number;
readonly modules: number;
readonly parse_failures: number;
readonly truncated_scopes: number;
readonly limitations: readonly string[];
}