@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
695 lines (694 loc) • 48.4 kB
TypeScript
/**
* 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>;