* refactor(javascript): validate transferable file projections * test(javascript): consume decoded module and static facts * fix(javascript): isolate source analysis and retain bounded partial evidence * test(javascript): verify cleanup retention and repeated source paths
41 lines
1.8 KiB
TypeScript
41 lines
1.8 KiB
TypeScript
import type { AnalysisError } from "../analysisErrorBase.js";
|
|
import type { AnalysisResourceConstraintError } from "../analysisErrorCore.js";
|
|
import type { Result } from "../result.js";
|
|
import type { JavaScriptArtifactFile } from "./javascriptArtifactFiles.js";
|
|
import type { JavaScriptStaticAnalysis } from "./javascriptStaticAnalysisTypes.js";
|
|
import type { JavaScriptModuleSemanticIr } from "./javascriptModuleSemanticIr.js";
|
|
import type { JavaScriptSemanticFileProjection } from "./javascriptSemanticFileProjection.js";
|
|
|
|
/** Portable facts collected from one inert source. */
|
|
export interface JavaScriptAnalyzedSource {
|
|
readonly javascript: JavaScriptStaticAnalysis;
|
|
readonly module: JavaScriptModuleSemanticIr | null;
|
|
readonly projection: JavaScriptSemanticFileProjection | null;
|
|
readonly applicationProjectionFailure?: AnalysisResourceConstraintError;
|
|
}
|
|
|
|
/** Execution failure alongside facts already collected by the consumer. */
|
|
export interface JavaScriptSourceAnalysisFailure {
|
|
readonly error: AnalysisError;
|
|
readonly javascript: JavaScriptStaticAnalysis | null;
|
|
readonly module: JavaScriptModuleSemanticIr | null;
|
|
readonly projection: JavaScriptSemanticFileProjection | null;
|
|
readonly applicationProjectionFailure?: AnalysisResourceConstraintError;
|
|
}
|
|
|
|
/** Operational choices for source analysis, independent of transport framing. */
|
|
export interface JavaScriptSourceAnalysisLimits {
|
|
readonly heapMb: number;
|
|
readonly timeoutMs: number;
|
|
}
|
|
|
|
/** Sequential source-analysis authority with independently verified cleanup. */
|
|
export interface JavaScriptSourceAnalysisPort {
|
|
analyze(
|
|
file: JavaScriptArtifactFile,
|
|
nodeBudget: number,
|
|
signal?: AbortSignal,
|
|
): Promise<Result<JavaScriptAnalyzedSource, JavaScriptSourceAnalysisFailure>>;
|
|
close(): Promise<void>;
|
|
}
|