UNPKG

@eagleoutice/flowr-dev

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

37 lines (36 loc) 2.29 kB
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; }