@eagleoutice/flowr-dev
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
37 lines (36 loc) • 2.29 kB
TypeScript
import { FlowrAnalyzerPlugin, PluginType } from '../flowr-analyzer-plugin';
import type { PackageSignatureSource } from '../../sigdb/reader';
import type { FlowrConfig } from '../../../config';
/** metadata of a package database a plugin currently has loaded */
export interface SigDbLoadedInfo {
scope: string;
version: number;
date: string;
hash: string;
/** the on-disk compression codec of the resolved source(s): `zstd`, `brotli`, `gzip`, `plain`, or `mixed` for a set spanning several */
readonly format?: string;
}
/**
* This is the base class for all plugins that identify package and dependency versions used in the project.
* These plugins interplay with the {@link FlowrAnalyzerDependenciesContext} to gather information about the packages used in the project.
* See {@link DefaultFlowrAnalyzerPackageVersionsPlugin} for the no-op default implementation.
*/
export declare abstract class FlowrAnalyzerPackageVersionsPlugin extends FlowrAnalyzerPlugin<undefined, void> {
readonly type = PluginType.DependencyIdentification;
static defaultPlugin(): FlowrAnalyzerPackageVersionsPlugin;
/** metadata of the databases this plugin currently has loaded (empty for plugins without any) */
loadedDatabases(): SigDbLoadedInfo[];
/** Packages known to this plugin that export `name` (empty for plugins without a database). */
packagesExporting(_name: string): readonly string[];
/** The signature sources this plugin currently has loaded (empty for plugins without any). `config` lets a query resolve config-driven sources before any analysis has set the plugin's context. */
signatureSources(_config?: FlowrConfig): readonly PackageSignatureSource[];
/** Mount an extra signature source by path (a `.sigs.ndjson`, `.br`, or `*.manifest.json(.br)`); no-op by default. */
addDatabaseSource(_source: string): Promise<void>;
/** Eagerly parse and mount this plugin's databases up front (no-op for plugins without any). */
preloadDatabasesSync(): void;
/**
* Whether this plugin can resolve the always-available base-R packages (so their exports can be attached
* eagerly for bare base calls). `false` for plugins without a versioned base-R signature source.
*/
providesBaseRPackages(): boolean;
}