@eagleoutice/flowr - v2.17.4
    Preparing search index...

    Interface FlowrAnalysisProvider<Parser>

    Extends the ReadonlyFlowrAnalysisProvider with methods that allow modifying the analyzer state.

    interface FlowrAnalysisProvider<Parser extends KnownParser = KnownParser> {
        addFile(
            ...f: (string | RParseRequestFromFile | FlowrFileProvider<string>)[],
        ): void;
        addRequest(...request: (string | RAnalysisRequest)[]): void;
        callGraph(force?: boolean): Promise<CallGraph>;
        context(): FlowrAnalyzerContext;
        controlflow(
            simplifications?: readonly (
                | "unique-cf-sets"
                | "analyze-dead-code"
                | "remove-dead-code"
                | "to-basic-blocks"
            )[],
            force?: boolean,
        ): Promise<ControlFlowInformation<CfgVertex>>;
        dataflow(
            force?: boolean,
        ): Promise<DataflowInformation & PipelinePerStepMetaInformation>;
        derive<T>(key: object, compute: () => Promise<T>): Promise<T>;
        flowrConfig: FlowrConfig;
        functionInfo(
            name: string | Identifier,
            version?: string,
        ): FnInfo | undefined;
        inspectContext(): ReadOnlyFlowrAnalyzerContext;
        normalize(
            force?: boolean,
        ): Promise<
            NormalizedAst<ParentInformation, RProject<ParentInformation>> & PipelinePerStepMetaInformation,
        >;
        normalizeStandalone(data: string | RParseRequest): NormalizedAst;
        parse(
            force?: boolean,
        ): Promise<NonNullable<AnalyzerCacheType<Parser>["parse"]>>;
        parserInformation(): KnownParserInformation;
        parseStandalone(data: string | RParseRequest): Tree;
        peekCallGraph(): CallGraph | undefined;
        peekControlflow(
            simplifications?: readonly (
                | "unique-cf-sets"
                | "analyze-dead-code"
                | "remove-dead-code"
                | "to-basic-blocks"
            )[],
        ): ControlFlowInformation<CfgVertex>
        | undefined;
        peekDataflow(): | DataflowInformation & PipelinePerStepMetaInformation
        | undefined;
        peekNormalize(): | NormalizedAst<
            ParentInformation,
            RProject<ParentInformation>,
        > & PipelinePerStepMetaInformation
        | undefined;
        peekParse(): NonNullable<AnalyzerCacheType<Parser>["parse"]> | undefined;
        query<
            Types extends
                | "search"
                | "project"
                | "linter"
                | "dependencies"
                | "dataflow"
                | "files"
                | "config"
                | "call-context"
                | "does-call"
                | "call-graph"
                | "control-flow"
                | "dataflow-lens"
                | "absint"
                | "normalized-ast"
                | "id-map"
                | "dataflow-cluster"
                | "static-slice"
                | "location-map"
                | "happens-before"
                | "inspect-exception"
                | "inspect-higher-order"
                | "inspect-recursion"
                | "inspect-fn-props"
                | "ambient-access"
                | "resolve-value"
                | "signature"
                | "origin"
                | "provenance"
                | "input-sources"
                | "taint"
                | "dice"
                | "guess-dep-versions"
                | "function-info"
                | "code-clones" = | "search"
            | "project"
            | "linter"
            | "dependencies"
            | "dataflow"
            | "files"
            | "config"
            | "call-context"
            | "does-call"
            | "call-graph"
            | "control-flow"
            | "dataflow-lens"
            | "absint"
            | "normalized-ast"
            | "id-map"
            | "dataflow-cluster"
            | "static-slice"
            | "location-map"
            | "happens-before"
            | "inspect-exception"
            | "inspect-higher-order"
            | "inspect-recursion"
            | "inspect-fn-props"
            | "ambient-access"
            | "resolve-value"
            | "signature"
            | "origin"
            | "provenance"
            | "input-sources"
            | "taint"
            | "dice"
            | "guess-dep-versions"
            | "function-info"
            | "code-clones",
        >(
            query: Queries<Types>,
            options?: FlowrAnalysisOptions,
        ): Promise<QueryResults<Types>>;
        query<
            Type extends
                | "search"
                | "project"
                | "linter"
                | "dependencies"
                | "dataflow"
                | "files"
                | "config"
                | "call-context"
                | "does-call"
                | "call-graph"
                | "control-flow"
                | "dataflow-lens"
                | "absint"
                | "normalized-ast"
                | "id-map"
                | "dataflow-cluster"
                | "static-slice"
                | "location-map"
                | "happens-before"
                | "inspect-exception"
                | "inspect-higher-order"
                | "inspect-recursion"
                | "inspect-fn-props"
                | "ambient-access"
                | "resolve-value"
                | "signature"
                | "origin"
                | "provenance"
                | "input-sources"
                | "taint"
                | "dice"
                | "guess-dep-versions"
                | "function-info"
                | "code-clones",
        >(
            query: QueryArgumentsWithType<Type>,
            options?: FlowrAnalysisOptions,
        ): Promise<SingleQueryResult<Type>>;
        receive(event: InvalidationEvent): void;
        reset(): void;
        resetConfig(): void;
        runFull(force?: boolean, options?: FlowrAnalysisOptions): Promise<void>;
        runSearch<Search extends FlowrSearchLike>(
            search: Search,
            options?: FlowrAnalysisOptions,
        ): Promise<GetSearchElements<SearchOutput<Search>>>;
        taint<Names extends readonly string[] = []>(): TaintAnalysisBuilder<Names>;
        updateConfig(
            update: {
                abstractInterpretation?: {
                    dataFrame?: { maxColNames?: ...; readLoadedData?: ... };
                    followCalls?: boolean;
                    wideningThreshold?: number;
                };
                defaultEngine?: "r-shell"
                | "tree-sitter";
                defaultPlugins?: (string | [(...)?, (...)?] | undefined)[];
                engines?: (
                    | {
                        lax?: ...;
                        treeSitterWasmPath?: ...;
                        type?: ...;
                        wasmPath?: ...;
                        [key: ...]: ...;
                    }
                    | { pipeBind?: ...; rPath?: ...; type?: ...; [key: ...]: ... }
                    | undefined
                )[];
                gas?: {
                    countedCheckEvery?: number;
                    features?: { [key: ...]: ... };
                    heapProvider?: () => ...;
                    thresholds?: {
                        memory?: ...;
                        steps?: ...;
                        timeMs?: ...;
                        vertices?: ...;
                        [key: ...]: ...;
                    };
                    [key: string]: unknown;
                };
                ignoreLoadCalls?: boolean;
                ignoreSourceCalls?: boolean;
                incremental?: {
                    alwaysIncremental?: boolean;
                    parsing?: { activated?: ...; heuristics?: ... };
                };
                inputSources?: {
                    cmdline?: (...)[];
                    const?: (...)[];
                    dconst?: (...)[];
                    editing?: (...)[];
                    evaluating?: (...)[];
                    ffi?: (...)[];
                    file?: (...)[];
                    glob?: (...)[];
                    lang?: (...)[];
                    linkedEntryPoints?: (...)[];
                    linkedObjects?: (...)[];
                    narrowing?: (...)[];
                    net?: (...)[];
                    options?: (...)[];
                    param?: (...)[];
                    pure?: (...)[];
                    rand?: (...)[];
                    sanitizers?: (...)[];
                    scope?: (...)[];
                    system?: (...)[];
                    tempfile?: (...)[];
                    templates?: (...)[];
                    unknown?: (...)[];
                    user?: (...)[];
                };
                linter?: { disabledRules?: (...)[]; disabledTags?: (...)[] };
                logLevel?:
                    | "debug"
                    | "silly"
                    | "trace"
                    | "info"
                    | "warn"
                    | "error"
                    | "fatal";
                project?: {
                    assumeImplicitEcho?: boolean;
                    basePackages?: (...)[];
                    classification?: {
                        notebookExtensions?: ...;
                        shinyDescriptionTypes?: ...;
                        shinyEntryFiles?: ...;
                        shinyUsagePattern?: ...;
                    };
                    discovery?: { full?: ...; ignore?: ...; perKind?: ... };
                    failOnInaccessiblePath?: boolean;
                    implicitSources?: (...)[];
                    resolveUnknownPathsOnDisk?: boolean;
                    useProjectType?: ProjectKind;
                };
                repl?: {
                    autoUseFileProtocol?: boolean;
                    dfProcessorHeat?: boolean;
                    hints?: boolean;
                    plugins?: (...)[];
                    queryStats?: boolean;
                    quickStats?: boolean;
                    showPlugins?: boolean;
                };
                semantics?: {
                    ambient?: { drawingWritesDevice?: ... };
                    environment?: { overwriteBuiltIns?: ... };
                };
                solver?: {
                    assumeAttachedPackages?: (...)[];
                    evalStrings?: boolean;
                    instrument?: { dataflowExtractors?: ... };
                    maxOverlayDepth?: number;
                    resolveSource?: {
                        applyReplacements?: ...;
                        assumeFilesExist?: ...;
                        dropPaths?: ...;
                        ignoreCapitalization?: ...;
                        inferWorkingDirectory?: ...;
                        repeatedSourceLimit?: ...;
                        searchPath?: ...;
                        [key: ...]: ...;
                    };
                    sigdb?: {
                        additionalPaths?: ...;
                        assumedRVersion?: ...;
                        autoSync?: ...;
                        blobCacheBudgetMb?: ...;
                        downloadRepo?: ...;
                        eagerlyLoad?: ...;
                        eagerlyLoadExports?: ...;
                        enabled?: ...;
                        installedLibrary?: ...;
                        linkBaseR?: ...;
                        linkBaseRCalls?: ...;
                        linkDescriptionDependencies?: ...;
                        linkPackageCalls?: ...;
                        loadProjectDependencies?: ...;
                        onDemand?: ...;
                        versionOverrides?: ...;
                        versionSelection?: ...;
                        warmInBackground?: ...;
                    };
                    slicer?: { autoExtend?: ...; threshold?: ... };
                    trackEnvironments?: boolean;
                    transitiveSideEffectRounds?: number;
                    variables?: VariableResolve;
                    versionManagement?: { linkedVersionGroups?: ... };
                };
                specializeConfig?: {
                    notebook?: {
                        abstractInterpretation?: ...;
                        defaultEngine?: ...;
                        defaultPlugins?: ...;
                        engines?: ...;
                        gas?: ...;
                        ignoreLoadCalls?: ...;
                        ignoreSourceCalls?: ...;
                        incremental?: ...;
                        inherit?: ...;
                        inputSources?: ...;
                        linter?: ...;
                        logLevel?: ...;
                        project?: ...;
                        repl?: ...;
                        semantics?: ...;
                        solver?: ...;
                        specializeConfig?: ...;
                    };
                    package?: {
                        abstractInterpretation?: ...;
                        defaultEngine?: ...;
                        defaultPlugins?: ...;
                        engines?: ...;
                        gas?: ...;
                        ignoreLoadCalls?: ...;
                        ignoreSourceCalls?: ...;
                        incremental?: ...;
                        inherit?: ...;
                        inputSources?: ...;
                        linter?: ...;
                        logLevel?: ...;
                        project?: ...;
                        repl?: ...;
                        semantics?: ...;
                        solver?: ...;
                        specializeConfig?: ...;
                    };
                    project?: {
                        abstractInterpretation?: ...;
                        defaultEngine?: ...;
                        defaultPlugins?: ...;
                        engines?: ...;
                        gas?: ...;
                        ignoreLoadCalls?: ...;
                        ignoreSourceCalls?: ...;
                        incremental?: ...;
                        inherit?: ...;
                        inputSources?: ...;
                        linter?: ...;
                        logLevel?: ...;
                        project?: ...;
                        repl?: ...;
                        semantics?: ...;
                        solver?: ...;
                        specializeConfig?: ...;
                    };
                    script?: {
                        abstractInterpretation?: ...;
                        defaultEngine?: ...;
                        defaultPlugins?: ...;
                        engines?: ...;
                        gas?: ...;
                        ignoreLoadCalls?: ...;
                        ignoreSourceCalls?: ...;
                        incremental?: ...;
                        inherit?: ...;
                        inputSources?: ...;
                        linter?: ...;
                        logLevel?: ...;
                        project?: ...;
                        repl?: ...;
                        semantics?: ...;
                        solver?: ...;
                        specializeConfig?: ...;
                    };
                    "shiny-app"?: {
                        abstractInterpretation?: ...;
                        defaultEngine?: ...;
                        defaultPlugins?: ...;
                        engines?: ...;
                        gas?: ...;
                        ignoreLoadCalls?: ...;
                        ignoreSourceCalls?: ...;
                        incremental?: ...;
                        inherit?: ...;
                        inputSources?: ...;
                        linter?: ...;
                        logLevel?: ...;
                        project?: ...;
                        repl?: ...;
                        semantics?: ...;
                        solver?: ...;
                        specializeConfig?: ...;
                    };
                    unknown?: {
                        abstractInterpretation?: ...;
                        defaultEngine?: ...;
                        defaultPlugins?: ...;
                        engines?: ...;
                        gas?: ...;
                        ignoreLoadCalls?: ...;
                        ignoreSourceCalls?: ...;
                        incremental?: ...;
                        inherit?: ...;
                        inputSources?: ...;
                        linter?: ...;
                        logLevel?: ...;
                        project?: ...;
                        repl?: ...;
                        semantics?: ...;
                        solver?: ...;
                        specializeConfig?: ...;
                    };
                };
            },
        ): void;
    }

    Type Parameters

    Hierarchy (View Summary)

    Index
    flowrConfig: FlowrConfig

    This is the config used for the analyzer

    • Add one or multiple requests to analyze.

      Parameters

      • ...request: (string | RAnalysisRequest)[]

        One or multiple requests or a file path (with the file:// protocol). If you just enter a string without the fileProtocol, it will be interpreted as R code.

      Returns void

      addFile - for adding files to the analyzer's context.

    • A value computed from the current analysis once per key (e.g. the function computing it), shared by every query and linter rule asking for it until the analysis is invalidated. Keep in mind that:

      • the key is compared by identity, so use a module-level function or object, not a fresh closure per call
      • the value is kept in memory until the analysis changes, so derive small summaries, not copies of the graph
      • compute runs against the configured gas bounds only, and a result computed under pressure is returned but not kept
      • a failed computation is not kept, the next caller runs it again

      Type Parameters

      • T

      Parameters

      • key: object
      • compute: () => Promise<T>

      Returns Promise<T>

      const pdgs = await analyzer.derive(computePdgs, async() => computePdgs(await analyzer.dataflow()));
      
    • What flowR knows about the function name, whether that is one of its own built-ins, a package function the signature database carries, or both; see fnInfo.

      A string is read the way R source spells a name, so 'dplyr::lead' and 'dplyr:::internal' name the package function rather than a symbol with a :: in it (pass an Identifier for that one).

      Parameters

      • name: string | Identifier

        The function to ask about, 'dplyr::lead' or Identifier.make('lead', 'dplyr') to pin the package down.

      • Optionalversion: string

        The package version to answer for, the one the analysis assumes if omitted.

      Returns FnInfo | undefined

    • Access the query API for the request. Pass a single query to get its result directly (see Query.one), a failing query then throws. Pass a list of queries to get a record of their results by query type, where a failing query type is reported as an error without affecting the others. Keep in mind that:

      • a single query is the one to use if you ask for one thing, a list is for several kinds of results of one analysis. Queries of the same type in a list run as one batch, while the single form returns the one entry of a query with SupportedQuery#perQueryResults (for static-slice, { slice, reconstruct })
      • the list form does not throw but reports { error } for the failing type, so check before you use a result
      • queries share the analysis (and its cache) of the analyzer, so adding a request after a query invalidates it

      Type Parameters

      • Types extends
            | "search"
            | "project"
            | "linter"
            | "dependencies"
            | "dataflow"
            | "files"
            | "config"
            | "call-context"
            | "does-call"
            | "call-graph"
            | "control-flow"
            | "dataflow-lens"
            | "absint"
            | "normalized-ast"
            | "id-map"
            | "dataflow-cluster"
            | "static-slice"
            | "location-map"
            | "happens-before"
            | "inspect-exception"
            | "inspect-higher-order"
            | "inspect-recursion"
            | "inspect-fn-props"
            | "ambient-access"
            | "resolve-value"
            | "signature"
            | "origin"
            | "provenance"
            | "input-sources"
            | "taint"
            | "dice"
            | "guess-dep-versions"
            | "function-info"
            | "code-clones" =
            | "search"
            | "project"
            | "linter"
            | "dependencies"
            | "dataflow"
            | "files"
            | "config"
            | "call-context"
            | "does-call"
            | "call-graph"
            | "control-flow"
            | "dataflow-lens"
            | "absint"
            | "normalized-ast"
            | "id-map"
            | "dataflow-cluster"
            | "static-slice"
            | "location-map"
            | "happens-before"
            | "inspect-exception"
            | "inspect-higher-order"
            | "inspect-recursion"
            | "inspect-fn-props"
            | "ambient-access"
            | "resolve-value"
            | "signature"
            | "origin"
            | "provenance"
            | "input-sources"
            | "taint"
            | "dice"
            | "guess-dep-versions"
            | "function-info"
            | "code-clones"

      Parameters

      Returns Promise<QueryResults<Types>>

      const { reconstruct } = await analyzer.query({ type: 'static-slice', criteria: ['3@x'] });
      const results = await analyzer.query([{ type: 'id-map' }, { type: 'static-slice', criteria: ['3@x'] }]);
      const { slice } = results['static-slice'].results['3@x']; // keyed by the criteria
    • Type Parameters

      • Type extends
            | "search"
            | "project"
            | "linter"
            | "dependencies"
            | "dataflow"
            | "files"
            | "config"
            | "call-context"
            | "does-call"
            | "call-graph"
            | "control-flow"
            | "dataflow-lens"
            | "absint"
            | "normalized-ast"
            | "id-map"
            | "dataflow-cluster"
            | "static-slice"
            | "location-map"
            | "happens-before"
            | "inspect-exception"
            | "inspect-higher-order"
            | "inspect-recursion"
            | "inspect-fn-props"
            | "ambient-access"
            | "resolve-value"
            | "signature"
            | "origin"
            | "provenance"
            | "input-sources"
            | "taint"
            | "dice"
            | "guess-dep-versions"
            | "function-info"
            | "code-clones"

      Parameters

      Returns Promise<SingleQueryResult<Type>>

    • Merge a runtime update into the base config and invalidate the derived config and cached analysis, so it takes effect.

      Parameters

      • update: {
            abstractInterpretation?: {
                dataFrame?: { maxColNames?: ...; readLoadedData?: ... };
                followCalls?: boolean;
                wideningThreshold?: number;
            };
            defaultEngine?: "r-shell"
            | "tree-sitter";
            defaultPlugins?: (string | [(...)?, (...)?] | undefined)[];
            engines?: (
                | {
                    lax?: ...;
                    treeSitterWasmPath?: ...;
                    type?: ...;
                    wasmPath?: ...;
                    [key: ...]: ...;
                }
                | { pipeBind?: ...; rPath?: ...; type?: ...; [key: ...]: ... }
                | undefined
            )[];
            gas?: {
                countedCheckEvery?: number;
                features?: { [key: ...]: ... };
                heapProvider?: () => ...;
                thresholds?: {
                    memory?: ...;
                    steps?: ...;
                    timeMs?: ...;
                    vertices?: ...;
                    [key: ...]: ...;
                };
                [key: string]: unknown;
            };
            ignoreLoadCalls?: boolean;
            ignoreSourceCalls?: boolean;
            incremental?: {
                alwaysIncremental?: boolean;
                parsing?: { activated?: ...; heuristics?: ... };
            };
            inputSources?: {
                cmdline?: (...)[];
                const?: (...)[];
                dconst?: (...)[];
                editing?: (...)[];
                evaluating?: (...)[];
                ffi?: (...)[];
                file?: (...)[];
                glob?: (...)[];
                lang?: (...)[];
                linkedEntryPoints?: (...)[];
                linkedObjects?: (...)[];
                narrowing?: (...)[];
                net?: (...)[];
                options?: (...)[];
                param?: (...)[];
                pure?: (...)[];
                rand?: (...)[];
                sanitizers?: (...)[];
                scope?: (...)[];
                system?: (...)[];
                tempfile?: (...)[];
                templates?: (...)[];
                unknown?: (...)[];
                user?: (...)[];
            };
            linter?: { disabledRules?: (...)[]; disabledTags?: (...)[] };
            logLevel?:
                | "debug"
                | "silly"
                | "trace"
                | "info"
                | "warn"
                | "error"
                | "fatal";
            project?: {
                assumeImplicitEcho?: boolean;
                basePackages?: (...)[];
                classification?: {
                    notebookExtensions?: ...;
                    shinyDescriptionTypes?: ...;
                    shinyEntryFiles?: ...;
                    shinyUsagePattern?: ...;
                };
                discovery?: { full?: ...; ignore?: ...; perKind?: ... };
                failOnInaccessiblePath?: boolean;
                implicitSources?: (...)[];
                resolveUnknownPathsOnDisk?: boolean;
                useProjectType?: ProjectKind;
            };
            repl?: {
                autoUseFileProtocol?: boolean;
                dfProcessorHeat?: boolean;
                hints?: boolean;
                plugins?: (...)[];
                queryStats?: boolean;
                quickStats?: boolean;
                showPlugins?: boolean;
            };
            semantics?: {
                ambient?: { drawingWritesDevice?: ... };
                environment?: { overwriteBuiltIns?: ... };
            };
            solver?: {
                assumeAttachedPackages?: (...)[];
                evalStrings?: boolean;
                instrument?: { dataflowExtractors?: ... };
                maxOverlayDepth?: number;
                resolveSource?: {
                    applyReplacements?: ...;
                    assumeFilesExist?: ...;
                    dropPaths?: ...;
                    ignoreCapitalization?: ...;
                    inferWorkingDirectory?: ...;
                    repeatedSourceLimit?: ...;
                    searchPath?: ...;
                    [key: ...]: ...;
                };
                sigdb?: {
                    additionalPaths?: ...;
                    assumedRVersion?: ...;
                    autoSync?: ...;
                    blobCacheBudgetMb?: ...;
                    downloadRepo?: ...;
                    eagerlyLoad?: ...;
                    eagerlyLoadExports?: ...;
                    enabled?: ...;
                    installedLibrary?: ...;
                    linkBaseR?: ...;
                    linkBaseRCalls?: ...;
                    linkDescriptionDependencies?: ...;
                    linkPackageCalls?: ...;
                    loadProjectDependencies?: ...;
                    onDemand?: ...;
                    versionOverrides?: ...;
                    versionSelection?: ...;
                    warmInBackground?: ...;
                };
                slicer?: { autoExtend?: ...; threshold?: ... };
                trackEnvironments?: boolean;
                transitiveSideEffectRounds?: number;
                variables?: VariableResolve;
                versionManagement?: { linkedVersionGroups?: ... };
            };
            specializeConfig?: {
                notebook?: {
                    abstractInterpretation?: ...;
                    defaultEngine?: ...;
                    defaultPlugins?: ...;
                    engines?: ...;
                    gas?: ...;
                    ignoreLoadCalls?: ...;
                    ignoreSourceCalls?: ...;
                    incremental?: ...;
                    inherit?: ...;
                    inputSources?: ...;
                    linter?: ...;
                    logLevel?: ...;
                    project?: ...;
                    repl?: ...;
                    semantics?: ...;
                    solver?: ...;
                    specializeConfig?: ...;
                };
                package?: {
                    abstractInterpretation?: ...;
                    defaultEngine?: ...;
                    defaultPlugins?: ...;
                    engines?: ...;
                    gas?: ...;
                    ignoreLoadCalls?: ...;
                    ignoreSourceCalls?: ...;
                    incremental?: ...;
                    inherit?: ...;
                    inputSources?: ...;
                    linter?: ...;
                    logLevel?: ...;
                    project?: ...;
                    repl?: ...;
                    semantics?: ...;
                    solver?: ...;
                    specializeConfig?: ...;
                };
                project?: {
                    abstractInterpretation?: ...;
                    defaultEngine?: ...;
                    defaultPlugins?: ...;
                    engines?: ...;
                    gas?: ...;
                    ignoreLoadCalls?: ...;
                    ignoreSourceCalls?: ...;
                    incremental?: ...;
                    inherit?: ...;
                    inputSources?: ...;
                    linter?: ...;
                    logLevel?: ...;
                    project?: ...;
                    repl?: ...;
                    semantics?: ...;
                    solver?: ...;
                    specializeConfig?: ...;
                };
                script?: {
                    abstractInterpretation?: ...;
                    defaultEngine?: ...;
                    defaultPlugins?: ...;
                    engines?: ...;
                    gas?: ...;
                    ignoreLoadCalls?: ...;
                    ignoreSourceCalls?: ...;
                    incremental?: ...;
                    inherit?: ...;
                    inputSources?: ...;
                    linter?: ...;
                    logLevel?: ...;
                    project?: ...;
                    repl?: ...;
                    semantics?: ...;
                    solver?: ...;
                    specializeConfig?: ...;
                };
                "shiny-app"?: {
                    abstractInterpretation?: ...;
                    defaultEngine?: ...;
                    defaultPlugins?: ...;
                    engines?: ...;
                    gas?: ...;
                    ignoreLoadCalls?: ...;
                    ignoreSourceCalls?: ...;
                    incremental?: ...;
                    inherit?: ...;
                    inputSources?: ...;
                    linter?: ...;
                    logLevel?: ...;
                    project?: ...;
                    repl?: ...;
                    semantics?: ...;
                    solver?: ...;
                    specializeConfig?: ...;
                };
                unknown?: {
                    abstractInterpretation?: ...;
                    defaultEngine?: ...;
                    defaultPlugins?: ...;
                    engines?: ...;
                    gas?: ...;
                    ignoreLoadCalls?: ...;
                    ignoreSourceCalls?: ...;
                    incremental?: ...;
                    inherit?: ...;
                    inputSources?: ...;
                    linter?: ...;
                    logLevel?: ...;
                    project?: ...;
                    repl?: ...;
                    semantics?: ...;
                    solver?: ...;
                    specializeConfig?: ...;
                };
            };
        }
        • Optional ReadonlyabstractInterpretation?: {
              dataFrame?: { maxColNames?: ...; readLoadedData?: ... };
              followCalls?: boolean;
              wideningThreshold?: number;
          }
        • Optional ReadonlydefaultEngine?: "r-shell" | "tree-sitter"

          The default engine to use. If undefined, an arbitrary one from engines is used.

        • Optional ReadonlydefaultPlugins?: (string | [(...)?, (...)?] | undefined)[]
        • Optional Readonlyengines?: (
              | {
                  lax?: ...;
                  treeSitterWasmPath?: ...;
                  type?: ...;
                  wasmPath?: ...;
                  [key: ...]: ...;
              }
              | { pipeBind?: ...; rPath?: ...; type?: ...; [key: ...]: ... }
              | undefined
          )[]

          Engines to use for interacting with R code (TreeSitterEngineConfig, RShellEngineConfig); empty means all available engines.

        • Optional Readonlygas?: {
              countedCheckEvery?: number;
              features?: { [key: ...]: ... };
              heapProvider?: () => ...;
              thresholds?: {
                  memory?: ...;
                  steps?: ...;
                  timeMs?: ...;
                  vertices?: ...;
                  [key: ...]: ...;
              };
              [key: string]: unknown;
          }

          Resource-usage guard (gas) configuration; disabled by default (every feature factor 0), enable by setting a feature's factor > 0. See FlowrGasConfig, ReadOnlyFlowrAnalyzerGasContext.

          • Optional ReadonlycountedCheckEvery?: number

            How many calls one accounting of an armed check covers (default DefaultCountedCheckEvery), for a DataflowBudgetTracker as much as for the slicer's traversal. Trades how far a run may overshoot a bound against what the guard costs per node: 1 counts exactly, larger counts coarsely.

          • Optional Readonlyfeatures?: { [key: ...]: ... }

            Per-feature sensitivity factors. Missing or 0 disables checking with zero overhead.

          • Optional ReadonlyheapProvider?: () => ...

            Custom heap statistics source (programmatic configs only), overriding the built-in v8/performance.memory detection. Return undefined to skip the memory check.

          • Optional Readonlythresholds?: { memory?: ...; steps?: ...; timeMs?: ...; vertices?: ...; [key: ...]: ... }

            Thresholds scaled by each feature factor before comparison, optionally bounded per feature (see GasThresholdSpec).

            • Optional Readonlymemory?: ...

              Heap-usage fraction thresholds (0-1, before factor scaling).

            • Optional Readonlysteps?: ...

              Processed-AST-node thresholds, counted rather than sampled. Only read by keys that arm a budget (i.e. GasFeatureKey.Dataflow); absent means unbounded.

            • Optional ReadonlytimeMs?: ...

              Elapsed analysis time thresholds in milliseconds (before factor scaling).

            • Optional Readonlyvertices?: ...

              Created-dataflow-vertex thresholds, counted like FlowrGasThresholds.steps.

        • Optional ReadonlyignoreLoadCalls?: boolean
        • Optional ReadonlyignoreSourceCalls?: boolean
        • Optional Readonlyincremental?: { alwaysIncremental?: boolean; parsing?: { activated?: ...; heuristics?: ... } }
        • Optional ReadonlyinputSources?: {
              cmdline?: (...)[];
              const?: (...)[];
              dconst?: (...)[];
              editing?: (...)[];
              evaluating?: (...)[];
              ffi?: (...)[];
              file?: (...)[];
              glob?: (...)[];
              lang?: (...)[];
              linkedEntryPoints?: (...)[];
              linkedObjects?: (...)[];
              narrowing?: (...)[];
              net?: (...)[];
              options?: (...)[];
              param?: (...)[];
              pure?: (...)[];
              rand?: (...)[];
              sanitizers?: (...)[];
              scope?: (...)[];
              system?: (...)[];
              tempfile?: (...)[];
              templates?: (...)[];
              unknown?: (...)[];
              user?: (...)[];
          }

          Teaches the InputSourcesQuery|input-sources analysis further frameworks; entries are added to what flowR knows already. Usually set per ProjectKind via specializeConfig. See InputClassifierConfig.

          • Optionalcmdline?: (...)[]
          • Optionalconst?: (...)[]
          • Optionaldconst?: (...)[]
          • Optionalediting?: (...)[]

            Functions that cut or replace parts of a string (gsub), undoing what a sanitizer escaped.

          • Optionalevaluating?: (...)[]

            Functions that evaluate code or look names up at run time (eval, do.call, exists), so their result is never constant.

          • Optionalffi?: (...)[]
          • Optionalfile?: (...)[]
          • Optionalglob?: (...)[]
          • Optionallang?: (...)[]
          • OptionallinkedEntryPoints?: (...)[]

            Calls that hand a function to a framework, which then binds linkedObjects to its parameters by position.

          • OptionallinkedObjects?: (...)[]

            Objects provided by a framework rather than by the code itself, like shiny's input.

          • Optionalnarrowing?: (...)[]

            Functions whose result is bounded by one of their arguments (classified by that argument alone).

          • Optionalnet?: (...)[]
          • Optionaloptions?: (...)[]
          • Optionalparam?: (...)[]
          • Optionalpure?: (...)[]

            Functions which are considered to be pure (i.e., deterministic, trusted, safe, idempotent on the lub of the input types)

          • Optionalrand?: (...)[]
          • Optionalsanitizers?: (...)[]

            Functions whose result counts as a InputType.DerivedConstant whatever flows in, like a linter's escaping functions.

          • Optionalscope?: (...)[]
          • Optionalsystem?: (...)[]
          • Optionaltempfile?: (...)[]
          • Optionaltemplates?: (...)[]

            The arguments a sanitizer takes as code rather than escaping, like the template of sqlInterpolate, whose data still flows.

          • Optionalunknown?: (...)[]
          • Optionaluser?: (...)[]
        • Optional Readonlylinter?: { disabledRules?: (...)[]; disabledTags?: (...)[] }
          • Optional ReadonlydisabledRules?: (...)[]
          • Optional ReadonlydisabledTags?: (...)[]

            Rules carrying any of these LintingRuleTags are excluded from the default rule set (a rule requested explicitly still runs). The cmd-check rules are only enabled for a ProjectKind.Package this way, so a configured list replaces that default: keep cmd-check in it to keep those rules off outside packages.

        • Optional ReadonlylogLevel?: "debug" | "silly" | "trace" | "info" | "warn" | "error" | "fatal"
        • Optional Readonlyproject?: {
              assumeImplicitEcho?: boolean;
              basePackages?: (...)[];
              classification?: {
                  notebookExtensions?: ...;
                  shinyDescriptionTypes?: ...;
                  shinyEntryFiles?: ...;
                  shinyUsagePattern?: ...;
              };
              discovery?: { full?: ...; ignore?: ...; perKind?: ... };
              failOnInaccessiblePath?: boolean;
              implicitSources?: (...)[];
              resolveUnknownPathsOnDisk?: boolean;
              useProjectType?: ProjectKind;
          }
          • OptionalassumeImplicitEcho?: boolean

            Whether the top level's visible results count as an output (the print category); off by default for a ProjectKind.Package, whose top level runs at install time.

          • OptionalbasePackages?: (...)[]

            The packages considered part of R itself; if unset, flowR derives them (for the assumed R version) from the signature database via baseRPackages.

          • Optionalclassification?: {
                notebookExtensions?: ...;
                shinyDescriptionTypes?: ...;
                shinyEntryFiles?: ...;
                shinyUsagePattern?: ...;
            }
            • OptionalnotebookExtensions?: ...

              File extensions marking a notebook (default ipynb, rmd, rmarkdown, qmd, rnw).

            • OptionalshinyDescriptionTypes?: ...

              DESCRIPTION Type: values that mark a shiny app (default shiny, shiny-app, shinyapp).

            • OptionalshinyEntryFiles?: ...

              File names a shiny app is assembled from (default app.R, ui.R, server.R, global.R).

            • OptionalshinyUsagePattern?: ...
          • Optionaldiscovery?: { full?: ...; ignore?: ...; perKind?: ... }
          • OptionalfailOnInaccessiblePath?: boolean
          • OptionalimplicitSources?: (...)[]
          • OptionalresolveUnknownPathsOnDisk?: boolean
          • OptionaluseProjectType?: ProjectKind
        • Optional Readonlyrepl?: {
              autoUseFileProtocol?: boolean;
              dfProcessorHeat?: boolean;
              hints?: boolean;
              plugins?: (...)[];
              queryStats?: boolean;
              quickStats?: boolean;
              showPlugins?: boolean;
          }
          • OptionalautoUseFileProtocol?: boolean

            Automatically use the file protocol for inputs that look like paths (default true)

          • OptionaldfProcessorHeat?: boolean
          • Optionalhints?: boolean

            Whether to show dim inline hints (e.g. :help) on the empty prompt; automatically disabled on non-interactive terminals

          • Optionalplugins?: (...)[]
          • OptionalqueryStats?: boolean

            Whether :query closes with the line stating how long the queries took (default true, :query* never prints it)

          • OptionalquickStats?: boolean
          • OptionalshowPlugins?: boolean

            Whether :version grays out the plugins that did not activate during the last analysis (default false)

        • Optional Readonlysemantics?: {
              ambient?: { drawingWritesDevice?: ... };
              environment?: { overwriteBuiltIns?: ... };
          }
          • Optional Readonlyambient?: { drawingWritesDevice?: ... }
            • Optional ReadonlydrawingWritesDevice?: ...

              Whether a call drawing on a graphics device (plot, lines, ...) writes what is drawn, the pseudo variable #canvas, defaults to false. Turn it on if the drawn plot is the output you slice for or compare, and keep it off if you only care about the graphics parameters (par), as every plot then depends on all earlier plots on the same device. It has to be set before the analysis runs, as the setting is applied when the calls are processed.

              const analyzer = await new FlowrAnalyzerBuilder().configure('semantics.ambient.drawingWritesDevice', true).build();
              
          • Optional Readonlyenvironment?: { overwriteBuiltIns?: ... }
        • Optional Readonlysolver?: {
              assumeAttachedPackages?: (...)[];
              evalStrings?: boolean;
              instrument?: { dataflowExtractors?: ... };
              maxOverlayDepth?: number;
              resolveSource?: {
                  applyReplacements?: ...;
                  assumeFilesExist?: ...;
                  dropPaths?: ...;
                  ignoreCapitalization?: ...;
                  inferWorkingDirectory?: ...;
                  repeatedSourceLimit?: ...;
                  searchPath?: ...;
                  [key: ...]: ...;
              };
              sigdb?: {
                  additionalPaths?: ...;
                  assumedRVersion?: ...;
                  autoSync?: ...;
                  blobCacheBudgetMb?: ...;
                  downloadRepo?: ...;
                  eagerlyLoad?: ...;
                  eagerlyLoadExports?: ...;
                  enabled?: ...;
                  installedLibrary?: ...;
                  linkBaseR?: ...;
                  linkBaseRCalls?: ...;
                  linkDescriptionDependencies?: ...;
                  linkPackageCalls?: ...;
                  loadProjectDependencies?: ...;
                  onDemand?: ...;
                  versionOverrides?: ...;
                  versionSelection?: ...;
                  warmInBackground?: ...;
              };
              slicer?: { autoExtend?: ...; threshold?: ... };
              trackEnvironments?: boolean;
              transitiveSideEffectRounds?: number;
              variables?: VariableResolve;
              versionManagement?: { linkedVersionGroups?: ... };
          }
          • Optional ReadonlyassumeAttachedPackages?: (...)[]

            Packages to treat as attached without a library() call, on top of the base packages R attaches on startup (see AttachedBasePackages, which a bare name resolves against without this option).

          • Optional ReadonlyevalStrings?: boolean
          • Optional Readonlyinstrument?: { dataflowExtractors?: ... }
            • OptionaldataflowExtractors?: ...

              Modify the dataflow processors used during analysis; keep every processor correctness requires present. May affect precision/performance arbitrarily -- prefer decorating existing processors over replacing them.

          • Optional ReadonlymaxOverlayDepth?: number

            How many binding overlays may stack on one environment frame before a write flattens them (default DefaultMaxOverlayDepth); trades lookup cost against copy cost and never changes a result.

          • Optional ReadonlyresolveSource?: {
                applyReplacements?: ...;
                assumeFilesExist?: ...;
                dropPaths?: ...;
                ignoreCapitalization?: ...;
                inferWorkingDirectory?: ...;
                repeatedSourceLimit?: ...;
                searchPath?: ...;
                [key: ...]: ...;
            }
            • Optional ReadonlyapplyReplacements?: ...

              Regex replacements to try against a sourced file's candidate name, tried in order alongside the original name, e.g. { '.*\\.R$': 'main.R' } makes source("foo bar.R") also try main.R.

            • Optional ReadonlyassumeFilesExist?: ...
            • Optional ReadonlydropPaths?: ...
            • Optional ReadonlyignoreCapitalization?: ...
            • Optional ReadonlyinferWorkingDirectory?: ...
            • Optional ReadonlyrepeatedSourceLimit?: ...
            • Optional ReadonlysearchPath?: ...
          • Optional Readonlysigdb?: {
                additionalPaths?: ...;
                assumedRVersion?: ...;
                autoSync?: ...;
                blobCacheBudgetMb?: ...;
                downloadRepo?: ...;
                eagerlyLoad?: ...;
                eagerlyLoadExports?: ...;
                enabled?: ...;
                installedLibrary?: ...;
                linkBaseR?: ...;
                linkBaseRCalls?: ...;
                linkDescriptionDependencies?: ...;
                linkPackageCalls?: ...;
                loadProjectDependencies?: ...;
                onDemand?: ...;
                versionOverrides?: ...;
                versionSelection?: ...;
                warmInBackground?: ...;
            }
            • Optional ReadonlyadditionalPaths?: ...
            • Optional ReadonlyassumedRVersion?: ...

              R version assumed when resolving versioned (base-R) exports: a pin, or "auto" to detect the installed R (falling back to DefaultAssumedRVersion if none, e.g. tree-sitter). See resolveAssumedRVersion.

            • Optional ReadonlyautoSync?: ...
            • Optional ReadonlyblobCacheBudgetMb?: ...

              How many MiB of decoded package blobs every open bundle may hold together; a bigger budget re-reads and re-parses less, a smaller one keeps less in memory (default 16).

            • Optional ReadonlydownloadRepo?: ...
            • Optional ReadonlyeagerlyLoad?: ...
            • Optional ReadonlyeagerlyLoadExports?: ...
            • Optional Readonlyenabled?: ...
            • Optional ReadonlyinstalledLibrary?: ...

              Recovering a package no signature database knows (e.g. maptools) from its local install: DESCRIPTION states the version, NAMESPACE the exports. Opt-in, since it reads outside the analyzed project.

            • Optional ReadonlylinkBaseR?: ...

              Eagerly attach base-R namespaces (from a signature database) so bare base calls resolve without library() (default false; changes every analysis; needs a base-R signature database).

            • Optional ReadonlylinkBaseRCalls?: ...

              Add a lightweight Reads edge from a bare base-R call to its signature-database function vertex (built-in:pkg:fn); base-R qualification stays edge-free unless this is on (default false; adds edges to every base call).

            • Optional ReadonlylinkDescriptionDependencies?: ...

              Eagerly attach the namespaces of the project's declared DESCRIPTION dependencies (Imports/Depends) so their exports resolve without an explicit library() (default false; changes every analysis; needs a signature database resolving the declared packages).

            • Optional ReadonlylinkPackageCalls?: ...

              Add a lightweight Reads edge from a resolved package call (pkg::fn/attached export) to its signature-database function vertex (default false).

            • Optional ReadonlyloadProjectDependencies?: ...
            • Optional ReadonlyonDemand?: ...

              Recovering a package no signature database knows from its source, fetched when the analyzed code uses it: from CRAN, Bioconductor, or the GitHub repository the project installs it from. Opt-in, as it accesses the network. What it fetched is cached, so a later analysis can work offline.

            • Optional ReadonlyversionOverrides?: ...

              Force an exact version for specific packages (mapping a package name to a version), overriding both the project constraint and the versionSelection policy; a version missing from the database falls back with a warning (default {}).

            • Optional ReadonlyversionSelection?: ...
            • Optional ReadonlywarmInBackground?: ...

              Decompress the hot shards (base + most-downloaded) in a background task on startup, so the first library() lookup is warm (default false; useful for long-running servers/REPLs, not one-shot runs).

          • Optionalslicer?: { autoExtend?: ...; threshold?: ... }
          • Optional ReadonlytrackEnvironments?: boolean
          • Optional ReadonlytransitiveSideEffectRounds?: number
          • Optional Readonlyvariables?: VariableResolve
          • Optional ReadonlyversionManagement?: { linkedVersionGroups?: ... }
        • Optional ReadonlyspecializeConfig?: {
              notebook?: {
                  abstractInterpretation?: ...;
                  defaultEngine?: ...;
                  defaultPlugins?: ...;
                  engines?: ...;
                  gas?: ...;
                  ignoreLoadCalls?: ...;
                  ignoreSourceCalls?: ...;
                  incremental?: ...;
                  inherit?: ...;
                  inputSources?: ...;
                  linter?: ...;
                  logLevel?: ...;
                  project?: ...;
                  repl?: ...;
                  semantics?: ...;
                  solver?: ...;
                  specializeConfig?: ...;
              };
              package?: {
                  abstractInterpretation?: ...;
                  defaultEngine?: ...;
                  defaultPlugins?: ...;
                  engines?: ...;
                  gas?: ...;
                  ignoreLoadCalls?: ...;
                  ignoreSourceCalls?: ...;
                  incremental?: ...;
                  inherit?: ...;
                  inputSources?: ...;
                  linter?: ...;
                  logLevel?: ...;
                  project?: ...;
                  repl?: ...;
                  semantics?: ...;
                  solver?: ...;
                  specializeConfig?: ...;
              };
              project?: {
                  abstractInterpretation?: ...;
                  defaultEngine?: ...;
                  defaultPlugins?: ...;
                  engines?: ...;
                  gas?: ...;
                  ignoreLoadCalls?: ...;
                  ignoreSourceCalls?: ...;
                  incremental?: ...;
                  inherit?: ...;
                  inputSources?: ...;
                  linter?: ...;
                  logLevel?: ...;
                  project?: ...;
                  repl?: ...;
                  semantics?: ...;
                  solver?: ...;
                  specializeConfig?: ...;
              };
              script?: {
                  abstractInterpretation?: ...;
                  defaultEngine?: ...;
                  defaultPlugins?: ...;
                  engines?: ...;
                  gas?: ...;
                  ignoreLoadCalls?: ...;
                  ignoreSourceCalls?: ...;
                  incremental?: ...;
                  inherit?: ...;
                  inputSources?: ...;
                  linter?: ...;
                  logLevel?: ...;
                  project?: ...;
                  repl?: ...;
                  semantics?: ...;
                  solver?: ...;
                  specializeConfig?: ...;
              };
              "shiny-app"?: {
                  abstractInterpretation?: ...;
                  defaultEngine?: ...;
                  defaultPlugins?: ...;
                  engines?: ...;
                  gas?: ...;
                  ignoreLoadCalls?: ...;
                  ignoreSourceCalls?: ...;
                  incremental?: ...;
                  inherit?: ...;
                  inputSources?: ...;
                  linter?: ...;
                  logLevel?: ...;
                  project?: ...;
                  repl?: ...;
                  semantics?: ...;
                  solver?: ...;
                  specializeConfig?: ...;
              };
              unknown?: {
                  abstractInterpretation?: ...;
                  defaultEngine?: ...;
                  defaultPlugins?: ...;
                  engines?: ...;
                  gas?: ...;
                  ignoreLoadCalls?: ...;
                  ignoreSourceCalls?: ...;
                  incremental?: ...;
                  inherit?: ...;
                  inputSources?: ...;
                  linter?: ...;
                  logLevel?: ...;
                  project?: ...;
                  repl?: ...;
                  semantics?: ...;
                  solver?: ...;
                  specializeConfig?: ...;
              };
          }

          Overwrite (parts of) this configuration per ProjectKind; an entry may inherit another kind's overwrite first (own keys win). Resolve with FlowrConfig.forKind.

          • Optionalnotebook?: {
                abstractInterpretation?: ...;
                defaultEngine?: ...;
                defaultPlugins?: ...;
                engines?: ...;
                gas?: ...;
                ignoreLoadCalls?: ...;
                ignoreSourceCalls?: ...;
                incremental?: ...;
                inherit?: ...;
                inputSources?: ...;
                linter?: ...;
                logLevel?: ...;
                project?: ...;
                repl?: ...;
                semantics?: ...;
                solver?: ...;
                specializeConfig?: ...;
            }
            • Optional ReadonlyabstractInterpretation?: ...
            • Optional ReadonlydefaultEngine?: ...

              The default engine to use. If undefined, an arbitrary one from engines is used.

            • Optional ReadonlydefaultPlugins?: ...
            • Optional Readonlyengines?: ...

              Engines to use for interacting with R code (TreeSitterEngineConfig, RShellEngineConfig); empty means all available engines.

            • Optional Readonlygas?: ...

              Resource-usage guard (gas) configuration; disabled by default (every feature factor 0), enable by setting a feature's factor > 0. See FlowrGasConfig, ReadOnlyFlowrAnalyzerGasContext.

            • Optional ReadonlyignoreLoadCalls?: ...
            • Optional ReadonlyignoreSourceCalls?: ...
            • Optional Readonlyincremental?: ...
            • Optional Readonlyinherit?: ...
            • Optional ReadonlyinputSources?: ...

              Teaches the InputSourcesQuery|input-sources analysis further frameworks; entries are added to what flowR knows already. Usually set per ProjectKind via specializeConfig. See InputClassifierConfig.

            • Optional Readonlylinter?: ...
            • Optional ReadonlylogLevel?: ...
            • Optional Readonlyproject?: ...
            • Optional Readonlyrepl?: ...
            • Optional Readonlysemantics?: ...
            • Optional Readonlysolver?: ...
            • Optional ReadonlyspecializeConfig?: ...

              Overwrite (parts of) this configuration per ProjectKind; an entry may inherit another kind's overwrite first (own keys win). Resolve with FlowrConfig.forKind.

          • Optionalpackage?: {
                abstractInterpretation?: ...;
                defaultEngine?: ...;
                defaultPlugins?: ...;
                engines?: ...;
                gas?: ...;
                ignoreLoadCalls?: ...;
                ignoreSourceCalls?: ...;
                incremental?: ...;
                inherit?: ...;
                inputSources?: ...;
                linter?: ...;
                logLevel?: ...;
                project?: ...;
                repl?: ...;
                semantics?: ...;
                solver?: ...;
                specializeConfig?: ...;
            }
            • Optional ReadonlyabstractInterpretation?: ...
            • Optional ReadonlydefaultEngine?: ...

              The default engine to use. If undefined, an arbitrary one from engines is used.

            • Optional ReadonlydefaultPlugins?: ...
            • Optional Readonlyengines?: ...

              Engines to use for interacting with R code (TreeSitterEngineConfig, RShellEngineConfig); empty means all available engines.

            • Optional Readonlygas?: ...

              Resource-usage guard (gas) configuration; disabled by default (every feature factor 0), enable by setting a feature's factor > 0. See FlowrGasConfig, ReadOnlyFlowrAnalyzerGasContext.

            • Optional ReadonlyignoreLoadCalls?: ...
            • Optional ReadonlyignoreSourceCalls?: ...
            • Optional Readonlyincremental?: ...
            • Optional Readonlyinherit?: ...
            • Optional ReadonlyinputSources?: ...

              Teaches the InputSourcesQuery|input-sources analysis further frameworks; entries are added to what flowR knows already. Usually set per ProjectKind via specializeConfig. See InputClassifierConfig.

            • Optional Readonlylinter?: ...
            • Optional ReadonlylogLevel?: ...
            • Optional Readonlyproject?: ...
            • Optional Readonlyrepl?: ...
            • Optional Readonlysemantics?: ...
            • Optional Readonlysolver?: ...
            • Optional ReadonlyspecializeConfig?: ...

              Overwrite (parts of) this configuration per ProjectKind; an entry may inherit another kind's overwrite first (own keys win). Resolve with FlowrConfig.forKind.

          • Optionalproject?: {
                abstractInterpretation?: ...;
                defaultEngine?: ...;
                defaultPlugins?: ...;
                engines?: ...;
                gas?: ...;
                ignoreLoadCalls?: ...;
                ignoreSourceCalls?: ...;
                incremental?: ...;
                inherit?: ...;
                inputSources?: ...;
                linter?: ...;
                logLevel?: ...;
                project?: ...;
                repl?: ...;
                semantics?: ...;
                solver?: ...;
                specializeConfig?: ...;
            }
            • Optional ReadonlyabstractInterpretation?: ...
            • Optional ReadonlydefaultEngine?: ...

              The default engine to use. If undefined, an arbitrary one from engines is used.

            • Optional ReadonlydefaultPlugins?: ...
            • Optional Readonlyengines?: ...

              Engines to use for interacting with R code (TreeSitterEngineConfig, RShellEngineConfig); empty means all available engines.

            • Optional Readonlygas?: ...

              Resource-usage guard (gas) configuration; disabled by default (every feature factor 0), enable by setting a feature's factor > 0. See FlowrGasConfig, ReadOnlyFlowrAnalyzerGasContext.

            • Optional ReadonlyignoreLoadCalls?: ...
            • Optional ReadonlyignoreSourceCalls?: ...
            • Optional Readonlyincremental?: ...
            • Optional Readonlyinherit?: ...
            • Optional ReadonlyinputSources?: ...

              Teaches the InputSourcesQuery|input-sources analysis further frameworks; entries are added to what flowR knows already. Usually set per ProjectKind via specializeConfig. See InputClassifierConfig.

            • Optional Readonlylinter?: ...
            • Optional ReadonlylogLevel?: ...
            • Optional Readonlyproject?: ...
            • Optional Readonlyrepl?: ...
            • Optional Readonlysemantics?: ...
            • Optional Readonlysolver?: ...
            • Optional ReadonlyspecializeConfig?: ...

              Overwrite (parts of) this configuration per ProjectKind; an entry may inherit another kind's overwrite first (own keys win). Resolve with FlowrConfig.forKind.

          • Optionalscript?: {
                abstractInterpretation?: ...;
                defaultEngine?: ...;
                defaultPlugins?: ...;
                engines?: ...;
                gas?: ...;
                ignoreLoadCalls?: ...;
                ignoreSourceCalls?: ...;
                incremental?: ...;
                inherit?: ...;
                inputSources?: ...;
                linter?: ...;
                logLevel?: ...;
                project?: ...;
                repl?: ...;
                semantics?: ...;
                solver?: ...;
                specializeConfig?: ...;
            }
            • Optional ReadonlyabstractInterpretation?: ...
            • Optional ReadonlydefaultEngine?: ...

              The default engine to use. If undefined, an arbitrary one from engines is used.

            • Optional ReadonlydefaultPlugins?: ...
            • Optional Readonlyengines?: ...

              Engines to use for interacting with R code (TreeSitterEngineConfig, RShellEngineConfig); empty means all available engines.

            • Optional Readonlygas?: ...

              Resource-usage guard (gas) configuration; disabled by default (every feature factor 0), enable by setting a feature's factor > 0. See FlowrGasConfig, ReadOnlyFlowrAnalyzerGasContext.

            • Optional ReadonlyignoreLoadCalls?: ...
            • Optional ReadonlyignoreSourceCalls?: ...
            • Optional Readonlyincremental?: ...
            • Optional Readonlyinherit?: ...
            • Optional ReadonlyinputSources?: ...

              Teaches the InputSourcesQuery|input-sources analysis further frameworks; entries are added to what flowR knows already. Usually set per ProjectKind via specializeConfig. See InputClassifierConfig.

            • Optional Readonlylinter?: ...
            • Optional ReadonlylogLevel?: ...
            • Optional Readonlyproject?: ...
            • Optional Readonlyrepl?: ...
            • Optional Readonlysemantics?: ...
            • Optional Readonlysolver?: ...
            • Optional ReadonlyspecializeConfig?: ...

              Overwrite (parts of) this configuration per ProjectKind; an entry may inherit another kind's overwrite first (own keys win). Resolve with FlowrConfig.forKind.

          • Optionalshiny-app?: {
                abstractInterpretation?: ...;
                defaultEngine?: ...;
                defaultPlugins?: ...;
                engines?: ...;
                gas?: ...;
                ignoreLoadCalls?: ...;
                ignoreSourceCalls?: ...;
                incremental?: ...;
                inherit?: ...;
                inputSources?: ...;
                linter?: ...;
                logLevel?: ...;
                project?: ...;
                repl?: ...;
                semantics?: ...;
                solver?: ...;
                specializeConfig?: ...;
            }
            • Optional ReadonlyabstractInterpretation?: ...
            • Optional ReadonlydefaultEngine?: ...

              The default engine to use. If undefined, an arbitrary one from engines is used.

            • Optional ReadonlydefaultPlugins?: ...
            • Optional Readonlyengines?: ...

              Engines to use for interacting with R code (TreeSitterEngineConfig, RShellEngineConfig); empty means all available engines.

            • Optional Readonlygas?: ...

              Resource-usage guard (gas) configuration; disabled by default (every feature factor 0), enable by setting a feature's factor > 0. See FlowrGasConfig, ReadOnlyFlowrAnalyzerGasContext.

            • Optional ReadonlyignoreLoadCalls?: ...
            • Optional ReadonlyignoreSourceCalls?: ...
            • Optional Readonlyincremental?: ...
            • Optional Readonlyinherit?: ...
            • Optional ReadonlyinputSources?: ...

              Teaches the InputSourcesQuery|input-sources analysis further frameworks; entries are added to what flowR knows already. Usually set per ProjectKind via specializeConfig. See InputClassifierConfig.

            • Optional Readonlylinter?: ...
            • Optional ReadonlylogLevel?: ...
            • Optional Readonlyproject?: ...
            • Optional Readonlyrepl?: ...
            • Optional Readonlysemantics?: ...
            • Optional Readonlysolver?: ...
            • Optional ReadonlyspecializeConfig?: ...

              Overwrite (parts of) this configuration per ProjectKind; an entry may inherit another kind's overwrite first (own keys win). Resolve with FlowrConfig.forKind.

          • Optionalunknown?: {
                abstractInterpretation?: ...;
                defaultEngine?: ...;
                defaultPlugins?: ...;
                engines?: ...;
                gas?: ...;
                ignoreLoadCalls?: ...;
                ignoreSourceCalls?: ...;
                incremental?: ...;
                inherit?: ...;
                inputSources?: ...;
                linter?: ...;
                logLevel?: ...;
                project?: ...;
                repl?: ...;
                semantics?: ...;
                solver?: ...;
                specializeConfig?: ...;
            }
            • Optional ReadonlyabstractInterpretation?: ...
            • Optional ReadonlydefaultEngine?: ...

              The default engine to use. If undefined, an arbitrary one from engines is used.

            • Optional ReadonlydefaultPlugins?: ...
            • Optional Readonlyengines?: ...

              Engines to use for interacting with R code (TreeSitterEngineConfig, RShellEngineConfig); empty means all available engines.

            • Optional Readonlygas?: ...

              Resource-usage guard (gas) configuration; disabled by default (every feature factor 0), enable by setting a feature's factor > 0. See FlowrGasConfig, ReadOnlyFlowrAnalyzerGasContext.

            • Optional ReadonlyignoreLoadCalls?: ...
            • Optional ReadonlyignoreSourceCalls?: ...
            • Optional Readonlyincremental?: ...
            • Optional Readonlyinherit?: ...
            • Optional ReadonlyinputSources?: ...

              Teaches the InputSourcesQuery|input-sources analysis further frameworks; entries are added to what flowR knows already. Usually set per ProjectKind via specializeConfig. See InputClassifierConfig.

            • Optional Readonlylinter?: ...
            • Optional ReadonlylogLevel?: ...
            • Optional Readonlyproject?: ...
            • Optional Readonlyrepl?: ...
            • Optional Readonlysemantics?: ...
            • Optional Readonlysolver?: ...
            • Optional ReadonlyspecializeConfig?: ...

              Overwrite (parts of) this configuration per ProjectKind; an entry may inherit another kind's overwrite first (own keys win). Resolve with FlowrConfig.forKind.

      Returns void