UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

695 lines (694 loc) 48.4 kB
/** * Contains the default pipeline for working with flowR */ import type { PipelineInput } from './pipeline'; import type { KnownParser, Parser } from '../../../r-bridge/parser'; import { PipelineExecutor } from '../../pipeline-executor'; import type { RShell } from '../../../r-bridge/shell'; import type { TreeSitterExecutor } from '../../../r-bridge/lang-4.x/tree-sitter/tree-sitter-executor'; export declare const DEFAULT_SLICING_PIPELINE: import("./pipeline").Pipeline<{ readonly name: "parse"; readonly humanReadableName: "parse with R shell"; readonly description: "Parse the given R code into an AST"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<string>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<string>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; readonly 5: ({ parsed }: import("../../../r-bridge/parser").ParseStepOutput<string>, config: import("../../../util/quads").QuadSerializationConfiguration) => string; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<string>; } | { readonly name: "normalize"; readonly humanReadableName: "normalize"; readonly description: "Normalize the AST to flowR's AST"; readonly processor: (results: { parse?: import("../../../r-bridge/parser").ParseStepOutput<string>; }, input: Partial<import("../all/core/10-normalize").NormalizeRequiredInput>) => import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../../r-bridge/lang-4.x/ast/model/model").RNode<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/normalize-printer").normalizedAstToJson; readonly 5: typeof import("../../print/normalize-printer").normalizedAstToQuads; readonly 3: typeof import("../../print/normalize-printer").printNormalizedAstToMermaid; readonly 4: typeof import("../../print/normalize-printer").printNormalizedAstToMermaidUrl; }; readonly dependencies: readonly ["parse"]; readonly requiredInput: import("../all/core/10-normalize").NormalizeRequiredInput; } | { readonly humanReadableName: "dataflow"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: { request?: import("../../../r-bridge/retriever").RParseRequests; parser?: Parser<import("../../../r-bridge/parser").KnownParserType>; }) => import("../../../dataflow/info").DataflowInformation; readonly requiredInput: {}; readonly name: "dataflow"; readonly description: "Construct the dataflow graph"; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/dataflow-printer").dataflowGraphToJson; readonly 5: typeof import("../../print/dataflow-printer").dataflowGraphToQuads; readonly 3: typeof import("../../print/dataflow-printer").dataflowGraphToMermaid; readonly 4: typeof import("../../print/dataflow-printer").dataflowGraphToMermaidUrl; }; readonly dependencies: readonly ["normalize"]; } | { readonly name: "slice"; readonly humanReadableName: "static slice"; readonly description: "Calculate the actual static slice from the dataflow graph and the given slicing criteria"; readonly processor: (results: { dataflow?: import("../../../dataflow/info").DataflowInformation; normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: Partial<import("../all/static-slicing/00-slice").SliceRequiredInput>) => Readonly<import("../../../slicing/static/slicer-types").SliceResult>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerRequest; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; }; readonly dependencies: readonly ["dataflow"]; readonly requiredInput: import("../all/static-slicing/00-slice").SliceRequiredInput; } | { readonly name: "reconstruct"; readonly humanReadableName: "static code reconstruction"; readonly description: "Reconstruct R code from the static slice"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; slice?: import("../../../slicing/static/slicer-types").SliceResult; }, input: Partial<import("../all/static-slicing/10-reconstruct").ReconstructRequiredInput>) => import("../../../reconstruct/reconstruct").ReconstructionResult; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerRequest; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; }; readonly dependencies: readonly ["slice"]; readonly requiredInput: import("../all/static-slicing/10-reconstruct").ReconstructRequiredInput; }>; export declare const DEFAULT_SLICE_AND_RECONSTRUCT_PIPELINE: import("./pipeline").Pipeline<{ readonly name: "parse"; readonly humanReadableName: "parse with R shell"; readonly description: "Parse the given R code into an AST"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<string>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<string>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; readonly 5: ({ parsed }: import("../../../r-bridge/parser").ParseStepOutput<string>, config: import("../../../util/quads").QuadSerializationConfiguration) => string; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<string>; } | { readonly name: "normalize"; readonly humanReadableName: "normalize"; readonly description: "Normalize the AST to flowR's AST"; readonly processor: (results: { parse?: import("../../../r-bridge/parser").ParseStepOutput<string>; }, input: Partial<import("../all/core/10-normalize").NormalizeRequiredInput>) => import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../../r-bridge/lang-4.x/ast/model/model").RNode<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/normalize-printer").normalizedAstToJson; readonly 5: typeof import("../../print/normalize-printer").normalizedAstToQuads; readonly 3: typeof import("../../print/normalize-printer").printNormalizedAstToMermaid; readonly 4: typeof import("../../print/normalize-printer").printNormalizedAstToMermaidUrl; }; readonly dependencies: readonly ["parse"]; readonly requiredInput: import("../all/core/10-normalize").NormalizeRequiredInput; } | { readonly humanReadableName: "dataflow"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: { request?: import("../../../r-bridge/retriever").RParseRequests; parser?: Parser<import("../../../r-bridge/parser").KnownParserType>; }) => import("../../../dataflow/info").DataflowInformation; readonly requiredInput: {}; readonly name: "dataflow"; readonly description: "Construct the dataflow graph"; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/dataflow-printer").dataflowGraphToJson; readonly 5: typeof import("../../print/dataflow-printer").dataflowGraphToQuads; readonly 3: typeof import("../../print/dataflow-printer").dataflowGraphToMermaid; readonly 4: typeof import("../../print/dataflow-printer").dataflowGraphToMermaidUrl; }; readonly dependencies: readonly ["normalize"]; } | { readonly name: "slice"; readonly humanReadableName: "static slice"; readonly description: "Calculate the actual static slice from the dataflow graph and the given slicing criteria"; readonly processor: (results: { dataflow?: import("../../../dataflow/info").DataflowInformation; normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: Partial<import("../all/static-slicing/00-slice").SliceRequiredInput>) => Readonly<import("../../../slicing/static/slicer-types").SliceResult>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerRequest; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; }; readonly dependencies: readonly ["dataflow"]; readonly requiredInput: import("../all/static-slicing/00-slice").SliceRequiredInput; } | { readonly name: "reconstruct"; readonly humanReadableName: "static code reconstruction"; readonly description: "Reconstruct R code from the static slice"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; slice?: import("../../../slicing/static/slicer-types").SliceResult; }, input: Partial<import("../all/static-slicing/10-reconstruct").ReconstructRequiredInput>) => import("../../../reconstruct/reconstruct").ReconstructionResult; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerRequest; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; }; readonly dependencies: readonly ["slice"]; readonly requiredInput: import("../all/static-slicing/10-reconstruct").ReconstructRequiredInput; }>; export declare const DEFAULT_SLICE_WITHOUT_RECONSTRUCT_PIPELINE: import("./pipeline").Pipeline<{ readonly name: "parse"; readonly humanReadableName: "parse with R shell"; readonly description: "Parse the given R code into an AST"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<string>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<string>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; readonly 5: ({ parsed }: import("../../../r-bridge/parser").ParseStepOutput<string>, config: import("../../../util/quads").QuadSerializationConfiguration) => string; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<string>; } | { readonly name: "normalize"; readonly humanReadableName: "normalize"; readonly description: "Normalize the AST to flowR's AST"; readonly processor: (results: { parse?: import("../../../r-bridge/parser").ParseStepOutput<string>; }, input: Partial<import("../all/core/10-normalize").NormalizeRequiredInput>) => import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../../r-bridge/lang-4.x/ast/model/model").RNode<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/normalize-printer").normalizedAstToJson; readonly 5: typeof import("../../print/normalize-printer").normalizedAstToQuads; readonly 3: typeof import("../../print/normalize-printer").printNormalizedAstToMermaid; readonly 4: typeof import("../../print/normalize-printer").printNormalizedAstToMermaidUrl; }; readonly dependencies: readonly ["parse"]; readonly requiredInput: import("../all/core/10-normalize").NormalizeRequiredInput; } | { readonly humanReadableName: "dataflow"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: { request?: import("../../../r-bridge/retriever").RParseRequests; parser?: Parser<import("../../../r-bridge/parser").KnownParserType>; }) => import("../../../dataflow/info").DataflowInformation; readonly requiredInput: {}; readonly name: "dataflow"; readonly description: "Construct the dataflow graph"; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/dataflow-printer").dataflowGraphToJson; readonly 5: typeof import("../../print/dataflow-printer").dataflowGraphToQuads; readonly 3: typeof import("../../print/dataflow-printer").dataflowGraphToMermaid; readonly 4: typeof import("../../print/dataflow-printer").dataflowGraphToMermaidUrl; }; readonly dependencies: readonly ["normalize"]; } | { readonly name: "slice"; readonly humanReadableName: "static slice"; readonly description: "Calculate the actual static slice from the dataflow graph and the given slicing criteria"; readonly processor: (results: { dataflow?: import("../../../dataflow/info").DataflowInformation; normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: Partial<import("../all/static-slicing/00-slice").SliceRequiredInput>) => Readonly<import("../../../slicing/static/slicer-types").SliceResult>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerRequest; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; }; readonly dependencies: readonly ["dataflow"]; readonly requiredInput: import("../all/static-slicing/00-slice").SliceRequiredInput; }>; export declare const TREE_SITTER_SLICING_PIPELINE: import("./pipeline").Pipeline<{ readonly humanReadableName: "dataflow"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: { request?: import("../../../r-bridge/retriever").RParseRequests; parser?: Parser<import("../../../r-bridge/parser").KnownParserType>; }) => import("../../../dataflow/info").DataflowInformation; readonly requiredInput: {}; readonly name: "dataflow"; readonly description: "Construct the dataflow graph"; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/dataflow-printer").dataflowGraphToJson; readonly 5: typeof import("../../print/dataflow-printer").dataflowGraphToQuads; readonly 3: typeof import("../../print/dataflow-printer").dataflowGraphToMermaid; readonly 4: typeof import("../../print/dataflow-printer").dataflowGraphToMermaidUrl; }; readonly dependencies: readonly ["normalize"]; } | { readonly name: "slice"; readonly humanReadableName: "static slice"; readonly description: "Calculate the actual static slice from the dataflow graph and the given slicing criteria"; readonly processor: (results: { dataflow?: import("../../../dataflow/info").DataflowInformation; normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: Partial<import("../all/static-slicing/00-slice").SliceRequiredInput>) => Readonly<import("../../../slicing/static/slicer-types").SliceResult>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerRequest; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; }; readonly dependencies: readonly ["dataflow"]; readonly requiredInput: import("../all/static-slicing/00-slice").SliceRequiredInput; } | { readonly name: "reconstruct"; readonly humanReadableName: "static code reconstruction"; readonly description: "Reconstruct R code from the static slice"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; slice?: import("../../../slicing/static/slicer-types").SliceResult; }, input: Partial<import("../all/static-slicing/10-reconstruct").ReconstructRequiredInput>) => import("../../../reconstruct/reconstruct").ReconstructionResult; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerRequest; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; }; readonly dependencies: readonly ["slice"]; readonly requiredInput: import("../all/static-slicing/10-reconstruct").ReconstructRequiredInput; } | { readonly name: "parse"; readonly humanReadableName: "parse with tree-sitter"; readonly description: "Parse the given R code into an AST using tree-sitter"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<import("web-tree-sitter").Tree>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>; } | { readonly name: "normalize"; readonly humanReadableName: "normalize tree-sitter tree"; readonly description: "Normalize the AST to flowR's AST"; readonly processor: (results: { "parse"?: import("../all/core/01-parse-tree-sitter").ParseStepOutputTS; }, input: Partial<import("../all/core/10-normalize").NormalizeRequiredInput>) => import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../../r-bridge/lang-4.x/ast/model/model").RNode<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/normalize-printer").normalizedAstToJson; readonly 5: typeof import("../../print/normalize-printer").normalizedAstToQuads; readonly 3: typeof import("../../print/normalize-printer").printNormalizedAstToMermaid; readonly 4: typeof import("../../print/normalize-printer").printNormalizedAstToMermaidUrl; }; readonly dependencies: readonly ["parse"]; readonly requiredInput: import("../all/core/10-normalize").NormalizeRequiredInput; }>; export declare const TREE_SITTER_SLICE_AND_RECONSTRUCT_PIPELINE: import("./pipeline").Pipeline<{ readonly humanReadableName: "dataflow"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: { request?: import("../../../r-bridge/retriever").RParseRequests; parser?: Parser<import("../../../r-bridge/parser").KnownParserType>; }) => import("../../../dataflow/info").DataflowInformation; readonly requiredInput: {}; readonly name: "dataflow"; readonly description: "Construct the dataflow graph"; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/dataflow-printer").dataflowGraphToJson; readonly 5: typeof import("../../print/dataflow-printer").dataflowGraphToQuads; readonly 3: typeof import("../../print/dataflow-printer").dataflowGraphToMermaid; readonly 4: typeof import("../../print/dataflow-printer").dataflowGraphToMermaidUrl; }; readonly dependencies: readonly ["normalize"]; } | { readonly name: "slice"; readonly humanReadableName: "static slice"; readonly description: "Calculate the actual static slice from the dataflow graph and the given slicing criteria"; readonly processor: (results: { dataflow?: import("../../../dataflow/info").DataflowInformation; normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: Partial<import("../all/static-slicing/00-slice").SliceRequiredInput>) => Readonly<import("../../../slicing/static/slicer-types").SliceResult>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerRequest; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; }; readonly dependencies: readonly ["dataflow"]; readonly requiredInput: import("../all/static-slicing/00-slice").SliceRequiredInput; } | { readonly name: "reconstruct"; readonly humanReadableName: "static code reconstruction"; readonly description: "Reconstruct R code from the static slice"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; slice?: import("../../../slicing/static/slicer-types").SliceResult; }, input: Partial<import("../all/static-slicing/10-reconstruct").ReconstructRequiredInput>) => import("../../../reconstruct/reconstruct").ReconstructionResult; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerRequest; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; }; readonly dependencies: readonly ["slice"]; readonly requiredInput: import("../all/static-slicing/10-reconstruct").ReconstructRequiredInput; } | { readonly name: "parse"; readonly humanReadableName: "parse with tree-sitter"; readonly description: "Parse the given R code into an AST using tree-sitter"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<import("web-tree-sitter").Tree>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>; } | { readonly name: "normalize"; readonly humanReadableName: "normalize tree-sitter tree"; readonly description: "Normalize the AST to flowR's AST"; readonly processor: (results: { "parse"?: import("../all/core/01-parse-tree-sitter").ParseStepOutputTS; }, input: Partial<import("../all/core/10-normalize").NormalizeRequiredInput>) => import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../../r-bridge/lang-4.x/ast/model/model").RNode<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/normalize-printer").normalizedAstToJson; readonly 5: typeof import("../../print/normalize-printer").normalizedAstToQuads; readonly 3: typeof import("../../print/normalize-printer").printNormalizedAstToMermaid; readonly 4: typeof import("../../print/normalize-printer").printNormalizedAstToMermaidUrl; }; readonly dependencies: readonly ["parse"]; readonly requiredInput: import("../all/core/10-normalize").NormalizeRequiredInput; }>; export declare const TREE_SITTER_SLICE_WITHOUT_RECONSTRUCT_PIPELINE: import("./pipeline").Pipeline<{ readonly humanReadableName: "dataflow"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: { request?: import("../../../r-bridge/retriever").RParseRequests; parser?: Parser<import("../../../r-bridge/parser").KnownParserType>; }) => import("../../../dataflow/info").DataflowInformation; readonly requiredInput: {}; readonly name: "dataflow"; readonly description: "Construct the dataflow graph"; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/dataflow-printer").dataflowGraphToJson; readonly 5: typeof import("../../print/dataflow-printer").dataflowGraphToQuads; readonly 3: typeof import("../../print/dataflow-printer").dataflowGraphToMermaid; readonly 4: typeof import("../../print/dataflow-printer").dataflowGraphToMermaidUrl; }; readonly dependencies: readonly ["normalize"]; } | { readonly name: "slice"; readonly humanReadableName: "static slice"; readonly description: "Calculate the actual static slice from the dataflow graph and the given slicing criteria"; readonly processor: (results: { dataflow?: import("../../../dataflow/info").DataflowInformation; normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: Partial<import("../all/static-slicing/00-slice").SliceRequiredInput>) => Readonly<import("../../../slicing/static/slicer-types").SliceResult>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerRequest; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; }; readonly dependencies: readonly ["dataflow"]; readonly requiredInput: import("../all/static-slicing/00-slice").SliceRequiredInput; } | { readonly name: "parse"; readonly humanReadableName: "parse with tree-sitter"; readonly description: "Parse the given R code into an AST using tree-sitter"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<import("web-tree-sitter").Tree>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>; } | { readonly name: "normalize"; readonly humanReadableName: "normalize tree-sitter tree"; readonly description: "Normalize the AST to flowR's AST"; readonly processor: (results: { "parse"?: import("../all/core/01-parse-tree-sitter").ParseStepOutputTS; }, input: Partial<import("../all/core/10-normalize").NormalizeRequiredInput>) => import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../../r-bridge/lang-4.x/ast/model/model").RNode<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/normalize-printer").normalizedAstToJson; readonly 5: typeof import("../../print/normalize-printer").normalizedAstToQuads; readonly 3: typeof import("../../print/normalize-printer").printNormalizedAstToMermaid; readonly 4: typeof import("../../print/normalize-printer").printNormalizedAstToMermaidUrl; }; readonly dependencies: readonly ["parse"]; readonly requiredInput: import("../all/core/10-normalize").NormalizeRequiredInput; }>; /** * The default pipeline for working with flowR, including the dataflow step. * See the {@link DEFAULT_NORMALIZE_PIPELINE} for the pipeline without the dataflow step * and the {@link DEFAULT_SLICE_AND_RECONSTRUCT_PIPELINE} for the pipeline with slicing and reconstructing steps */ export declare const DEFAULT_DATAFLOW_PIPELINE: import("./pipeline").Pipeline<{ readonly name: "parse"; readonly humanReadableName: "parse with R shell"; readonly description: "Parse the given R code into an AST"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<string>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<string>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; readonly 5: ({ parsed }: import("../../../r-bridge/parser").ParseStepOutput<string>, config: import("../../../util/quads").QuadSerializationConfiguration) => string; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<string>; } | { readonly name: "normalize"; readonly humanReadableName: "normalize"; readonly description: "Normalize the AST to flowR's AST"; readonly processor: (results: { parse?: import("../../../r-bridge/parser").ParseStepOutput<string>; }, input: Partial<import("../all/core/10-normalize").NormalizeRequiredInput>) => import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../../r-bridge/lang-4.x/ast/model/model").RNode<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/normalize-printer").normalizedAstToJson; readonly 5: typeof import("../../print/normalize-printer").normalizedAstToQuads; readonly 3: typeof import("../../print/normalize-printer").printNormalizedAstToMermaid; readonly 4: typeof import("../../print/normalize-printer").printNormalizedAstToMermaidUrl; }; readonly dependencies: readonly ["parse"]; readonly requiredInput: import("../all/core/10-normalize").NormalizeRequiredInput; } | { readonly humanReadableName: "dataflow"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: { request?: import("../../../r-bridge/retriever").RParseRequests; parser?: Parser<import("../../../r-bridge/parser").KnownParserType>; }) => import("../../../dataflow/info").DataflowInformation; readonly requiredInput: {}; readonly name: "dataflow"; readonly description: "Construct the dataflow graph"; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/dataflow-printer").dataflowGraphToJson; readonly 5: typeof import("../../print/dataflow-printer").dataflowGraphToQuads; readonly 3: typeof import("../../print/dataflow-printer").dataflowGraphToMermaid; readonly 4: typeof import("../../print/dataflow-printer").dataflowGraphToMermaidUrl; }; readonly dependencies: readonly ["normalize"]; }>; export declare const TREE_SITTER_DATAFLOW_PIPELINE: import("./pipeline").Pipeline<{ readonly humanReadableName: "dataflow"; readonly processor: (results: { normalize?: import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst; }, input: { request?: import("../../../r-bridge/retriever").RParseRequests; parser?: Parser<import("../../../r-bridge/parser").KnownParserType>; }) => import("../../../dataflow/info").DataflowInformation; readonly requiredInput: {}; readonly name: "dataflow"; readonly description: "Construct the dataflow graph"; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/dataflow-printer").dataflowGraphToJson; readonly 5: typeof import("../../print/dataflow-printer").dataflowGraphToQuads; readonly 3: typeof import("../../print/dataflow-printer").dataflowGraphToMermaid; readonly 4: typeof import("../../print/dataflow-printer").dataflowGraphToMermaidUrl; }; readonly dependencies: readonly ["normalize"]; } | { readonly name: "parse"; readonly humanReadableName: "parse with tree-sitter"; readonly description: "Parse the given R code into an AST using tree-sitter"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<import("web-tree-sitter").Tree>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>; } | { readonly name: "normalize"; readonly humanReadableName: "normalize tree-sitter tree"; readonly description: "Normalize the AST to flowR's AST"; readonly processor: (results: { "parse"?: import("../all/core/01-parse-tree-sitter").ParseStepOutputTS; }, input: Partial<import("../all/core/10-normalize").NormalizeRequiredInput>) => import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../../r-bridge/lang-4.x/ast/model/model").RNode<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/normalize-printer").normalizedAstToJson; readonly 5: typeof import("../../print/normalize-printer").normalizedAstToQuads; readonly 3: typeof import("../../print/normalize-printer").printNormalizedAstToMermaid; readonly 4: typeof import("../../print/normalize-printer").printNormalizedAstToMermaidUrl; }; readonly dependencies: readonly ["parse"]; readonly requiredInput: import("../all/core/10-normalize").NormalizeRequiredInput; }>; /** The pipeline to use when you want to parse and normalize your R file, see {@link DEFAULT_DATAFLOW_PIPELINE} for the additional `dataflow` step */ export declare const DEFAULT_NORMALIZE_PIPELINE: import("./pipeline").Pipeline<{ readonly name: "parse"; readonly humanReadableName: "parse with R shell"; readonly description: "Parse the given R code into an AST"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<string>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<string>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; readonly 5: ({ parsed }: import("../../../r-bridge/parser").ParseStepOutput<string>, config: import("../../../util/quads").QuadSerializationConfiguration) => string; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<string>; } | { readonly name: "normalize"; readonly humanReadableName: "normalize"; readonly description: "Normalize the AST to flowR's AST"; readonly processor: (results: { parse?: import("../../../r-bridge/parser").ParseStepOutput<string>; }, input: Partial<import("../all/core/10-normalize").NormalizeRequiredInput>) => import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../../r-bridge/lang-4.x/ast/model/model").RNode<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/normalize-printer").normalizedAstToJson; readonly 5: typeof import("../../print/normalize-printer").normalizedAstToQuads; readonly 3: typeof import("../../print/normalize-printer").printNormalizedAstToMermaid; readonly 4: typeof import("../../print/normalize-printer").printNormalizedAstToMermaidUrl; }; readonly dependencies: readonly ["parse"]; readonly requiredInput: import("../all/core/10-normalize").NormalizeRequiredInput; }>; export declare const TREE_SITTER_NORMALIZE_PIPELINE: import("./pipeline").Pipeline<{ readonly name: "parse"; readonly humanReadableName: "parse with tree-sitter"; readonly description: "Parse the given R code into an AST using tree-sitter"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<import("web-tree-sitter").Tree>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>; } | { readonly name: "normalize"; readonly humanReadableName: "normalize tree-sitter tree"; readonly description: "Normalize the AST to flowR's AST"; readonly processor: (results: { "parse"?: import("../all/core/01-parse-tree-sitter").ParseStepOutputTS; }, input: Partial<import("../all/core/10-normalize").NormalizeRequiredInput>) => import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").NormalizedAst<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../../r-bridge/lang-4.x/ast/model/model").RNode<import("../../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: typeof import("../../print/normalize-printer").normalizedAstToJson; readonly 5: typeof import("../../print/normalize-printer").normalizedAstToQuads; readonly 3: typeof import("../../print/normalize-printer").printNormalizedAstToMermaid; readonly 4: typeof import("../../print/normalize-printer").printNormalizedAstToMermaidUrl; }; readonly dependencies: readonly ["parse"]; readonly requiredInput: import("../all/core/10-normalize").NormalizeRequiredInput; }>; export declare const DEFAULT_PARSE_PIPELINE: import("./pipeline").Pipeline<{ readonly name: "parse"; readonly humanReadableName: "parse with R shell"; readonly description: "Parse the given R code into an AST"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<string>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<string>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; readonly 5: ({ parsed }: import("../../../r-bridge/parser").ParseStepOutput<string>, config: import("../../../util/quads").QuadSerializationConfiguration) => string; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<string>; }>; export declare const TREE_SITTER_PARSE_PIPELINE: import("./pipeline").Pipeline<{ readonly name: "parse"; readonly humanReadableName: "parse with tree-sitter"; readonly description: "Parse the given R code into an AST using tree-sitter"; readonly processor: (_results: unknown, input: Partial<import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>>) => Promise<import("../../../r-bridge/parser").ParseStepOutput<import("web-tree-sitter").Tree>>; readonly executed: import("../pipeline-step").PipelineStepStage.OncePerFile; readonly printer: { readonly 0: typeof import("../../print/print").internalPrinter; readonly 2: { (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string; (value: any, replacer?: (number | string)[] | null, space?: string | number): string; }; }; readonly dependencies: readonly []; readonly requiredInput: import("../../../r-bridge/parser").ParseRequiredInput<import("web-tree-sitter").Tree>; }>; export declare function createParsePipeline(parser: TreeSitterExecutor, inputs: Omit<PipelineInput<typeof DEFAULT_PARSE_PIPELINE>, 'parser'>): PipelineExecutor<typeof TREE_SITTER_PARSE_PIPELINE>; export declare function createParsePipeline(parser: RShell, inputs: Omit<PipelineInput<typeof DEFAULT_PARSE_PIPELINE>, 'parser'>): PipelineExecutor<typeof DEFAULT_PARSE_PIPELINE>; export declare function createParsePipeline(parser: KnownParser, inputs: Omit<PipelineInput<typeof DEFAULT_PARSE_PIPELINE>, 'parser'>): PipelineExecutor<typeof DEFAULT_PARSE_PIPELINE> | PipelineExecutor<typeof TREE_SITTER_PARSE_PIPELINE>; export declare function createSlicePipeline(parser: TreeSitterExecutor, inputs: Omit<PipelineInput<typeof DEFAULT_SLICING_PIPELINE>, 'parser'>): PipelineExecutor<typeof TREE_SITTER_SLICING_PIPELINE>; export declare function createSlicePipeline(parser: RShell, inputs: Omit<PipelineInput<typeof DEFAULT_SLICING_PIPELINE>, 'parser'>): PipelineExecutor<typeof DEFAULT_SLICING_PIPELINE>; export declare function createSlicePipeline(parser: KnownParser, inputs: Omit<PipelineInput<typeof DEFAULT_SLICING_PIPELINE>, 'parser'>): PipelineExecutor<typeof DEFAULT_SLICING_PIPELINE> | PipelineExecutor<typeof TREE_SITTER_SLICING_PIPELINE>; export declare function createNormalizePipeline(parser: TreeSitterExecutor, inputs: Omit<PipelineInput<typeof DEFAULT_NORMALIZE_PIPELINE>, 'parser'>): PipelineExecutor<typeof TREE_SITTER_NORMALIZE_PIPELINE>; export declare function createNormalizePipeline(parser: RShell, inputs: Omit<PipelineInput<typeof DEFAULT_NORMALIZE_PIPELINE>, 'parser'>): PipelineExecutor<typeof DEFAULT_NORMALIZE_PIPELINE>; export declare function createNormalizePipeline(parser: KnownParser, inputs: Omit<PipelineInput<typeof DEFAULT_NORMALIZE_PIPELINE>, 'parser'>): PipelineExecutor<typeof DEFAULT_NORMALIZE_PIPELINE> | PipelineExecutor<typeof TREE_SITTER_NORMALIZE_PIPELINE>; export declare function createDataflowPipeline(parser: TreeSitterExecutor, inputs: Omit<PipelineInput<typeof DEFAULT_DATAFLOW_PIPELINE>, 'parser'>): PipelineExecutor<typeof TREE_SITTER_DATAFLOW_PIPELINE>; export declare function createDataflowPipeline(parser: RShell, inputs: Omit<PipelineInput<typeof DEFAULT_DATAFLOW_PIPELINE>, 'parser'>): PipelineExecutor<typeof DEFAULT_DATAFLOW_PIPELINE>; export declare function createDataflowPipeline(parser: KnownParser, inputs: Omit<PipelineInput<typeof DEFAULT_DATAFLOW_PIPELINE>, 'parser'>): PipelineExecutor<typeof DEFAULT_DATAFLOW_PIPELINE> | PipelineExecutor<typeof TREE_SITTER_DATAFLOW_PIPELINE>;