mirror of
https://github.com/morluto/rea
synced 2026-10-27 22:45:19 -04:00
f4322b15ed
Admit unknowns before canonical construction and provenance interning. Offer independent per-file and application capacities through CLI, Evidence and the owned analysis worker, and reject over-allocation during streamed decoding. Report examined omitted emission occurrences by family and reason without retaining discarded identities. Preserve omission-free graph identities and distinguish node truncation from overall partial coverage. Fixes #4797
42 lines
1.9 KiB
TypeScript
42 lines
1.9 KiB
TypeScript
import type { JavaScriptSemanticProjectionCapacity } from "./javascriptSemanticFileProjection.js";
|
|
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,
|
|
capacity: JavaScriptSemanticProjectionCapacity,
|
|
signal?: AbortSignal,
|
|
): Promise<Result<JavaScriptAnalyzedSource, JavaScriptSourceAnalysisFailure>>;
|
|
close(): Promise<void>;
|
|
}
|