redos-detector
Version:
A CLI and library which tests helps score how vulnerable a regex pattern is to ReDoS attacks. Supported in the browser, Node and Deno.
20 lines (19 loc) • 1.04 kB
TypeScript
import { CharacterReader } from '../character-reader/character-reader-level-0';
import { CharacterReaderLevel2Stack } from '../character-reader/character-reader-level-2';
import { MyFeatures } from '../parse';
import { NodeExtra } from '../node-extra';
import { Quantifier } from 'regjsparser';
export type QuantifierIterations = ReadonlyMap<Quantifier<MyFeatures>, number>;
export type StackQuantifierEntry = Readonly<{
iteration: number;
quantifier: Quantifier<MyFeatures>;
type: 'quantifier';
}>;
export type QuantifiersInInfinitePortion = ReadonlySet<Quantifier<MyFeatures>>;
export declare function buildQuantifiersInInfinitePortion(stack: CharacterReaderLevel2Stack, nodeExtra: NodeExtra): QuantifiersInInfinitePortion;
export declare function buildQuantifierIterations(stack: CharacterReaderLevel2Stack): QuantifierIterations;
export declare function buildQuantifierCharacterReader({ caseInsensitive, dotAll, node, }: {
caseInsensitive: boolean;
dotAll: boolean;
node: Quantifier<MyFeatures>;
}): CharacterReader;