2026-10-12 04:07:14 +08:00
|
|
|
import type { JavaScriptSourceSelection } from "./javascriptSourceSelection.js";
|
|
|
|
|
|
2026-10-07 17:57:33 +08:00
|
|
|
/** Relevant file categories projected from the complete artifact inventory. */
|
|
|
|
|
export type JavaScriptArtifactFileKind =
|
|
|
|
|
| "package-json"
|
|
|
|
|
| "json"
|
|
|
|
|
| "javascript"
|
|
|
|
|
| "html"
|
|
|
|
|
| "source-map"
|
|
|
|
|
| "native-addon";
|
|
|
|
|
|
|
|
|
|
/** One content-addressed local artifact file and its text availability. */
|
|
|
|
|
export interface JavaScriptArtifactFile {
|
|
|
|
|
readonly path: string;
|
|
|
|
|
readonly container_sha256: string;
|
|
|
|
|
readonly sha256: string;
|
|
|
|
|
readonly bytes: number;
|
|
|
|
|
readonly inventory_artifact_id: string;
|
|
|
|
|
readonly kind: JavaScriptArtifactFileKind;
|
|
|
|
|
readonly unpacked: boolean;
|
|
|
|
|
readonly text:
|
|
|
|
|
| { readonly included: true; readonly value: string }
|
|
|
|
|
| {
|
|
|
|
|
readonly included: false;
|
2026-10-12 04:07:14 +08:00
|
|
|
readonly reason:
|
|
|
|
|
| "not-applicable"
|
|
|
|
|
| "invalid-utf8"
|
|
|
|
|
| "outside-analysis-scope";
|
2026-10-07 17:57:33 +08:00
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** One filesystem-backed ASAR nested beneath a directory input. */
|
|
|
|
|
export interface JavaScriptArtifactContainer {
|
|
|
|
|
readonly path: string;
|
|
|
|
|
readonly sha256: string;
|
|
|
|
|
readonly bytes: number;
|
|
|
|
|
readonly inventory_artifact_id: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Deterministic relevant-file projection plus explicit omissions. */
|
|
|
|
|
export interface JavaScriptArtifactFileSet {
|
|
|
|
|
readonly files: readonly JavaScriptArtifactFile[];
|
|
|
|
|
readonly containers: readonly JavaScriptArtifactContainer[];
|
|
|
|
|
readonly text_bytes_read: number;
|
|
|
|
|
readonly invalid_utf8_files: number;
|
2026-10-12 04:07:14 +08:00
|
|
|
readonly source_selection?: JavaScriptSourceSelection;
|
2026-10-07 17:57:33 +08:00
|
|
|
}
|