mirror of
https://github.com/morluto/rea
synced 2026-10-28 06:46:47 -04:00
fix(javascript): isolate source analysis and retain bounded partial evidence (#1651)
* 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
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
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>;
|
||||
}
|
||||
Reference in New Issue
Block a user