@eslint-community/regexpp 3.2.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts ADDED
@@ -0,0 +1,248 @@
1
+ // Generated by dts-bundle v0.7.3
2
+
3
+ declare module '@eslint-community/regexpp' {
4
+ import * as AST from "@eslint-community/regexpp/ast";
5
+ import { RegExpParser } from "@eslint-community/regexpp/parser";
6
+ import { RegExpValidator } from "@eslint-community/regexpp/validator";
7
+ import { RegExpVisitor } from "@eslint-community/regexpp/visitor";
8
+ export { AST, RegExpParser, RegExpValidator };
9
+ export function parseRegExpLiteral(source: string | RegExp, options?: RegExpParser.Options): AST.RegExpLiteral;
10
+ export function validateRegExpLiteral(source: string, options?: RegExpValidator.Options): void;
11
+ export function visitRegExpAST(node: AST.Node, handlers: RegExpVisitor.Handlers): void;
12
+ }
13
+
14
+ declare module '@eslint-community/regexpp/ast' {
15
+ export type Node = BranchNode | LeafNode;
16
+ export type BranchNode = RegExpLiteral | Pattern | Alternative | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion | CharacterClassRange;
17
+ export type LeafNode = BoundaryAssertion | CharacterSet | Character | Backreference | Flags;
18
+ export type Element = Assertion | Quantifier | QuantifiableElement;
19
+ export type QuantifiableElement = Group | CapturingGroup | CharacterClass | CharacterSet | Character | Backreference | LookaheadAssertion;
20
+ export type CharacterClassElement = EscapeCharacterSet | UnicodePropertyCharacterSet | Character | CharacterClassRange;
21
+ export interface NodeBase {
22
+ type: Node["type"];
23
+ parent: Node["parent"];
24
+ start: number;
25
+ end: number;
26
+ raw: string;
27
+ }
28
+ export interface RegExpLiteral extends NodeBase {
29
+ type: "RegExpLiteral";
30
+ parent: null;
31
+ pattern: Pattern;
32
+ flags: Flags;
33
+ }
34
+ export interface Pattern extends NodeBase {
35
+ type: "Pattern";
36
+ parent: RegExpLiteral | null;
37
+ alternatives: Alternative[];
38
+ }
39
+ export interface Alternative extends NodeBase {
40
+ type: "Alternative";
41
+ parent: Pattern | Group | CapturingGroup | LookaroundAssertion;
42
+ elements: Element[];
43
+ }
44
+ export interface Group extends NodeBase {
45
+ type: "Group";
46
+ parent: Alternative | Quantifier;
47
+ alternatives: Alternative[];
48
+ }
49
+ export interface CapturingGroup extends NodeBase {
50
+ type: "CapturingGroup";
51
+ parent: Alternative | Quantifier;
52
+ name: string | null;
53
+ alternatives: Alternative[];
54
+ references: Backreference[];
55
+ }
56
+ export type LookaroundAssertion = LookaheadAssertion | LookbehindAssertion;
57
+ export interface LookaheadAssertion extends NodeBase {
58
+ type: "Assertion";
59
+ parent: Alternative | Quantifier;
60
+ kind: "lookahead";
61
+ negate: boolean;
62
+ alternatives: Alternative[];
63
+ }
64
+ export interface LookbehindAssertion extends NodeBase {
65
+ type: "Assertion";
66
+ parent: Alternative;
67
+ kind: "lookbehind";
68
+ negate: boolean;
69
+ alternatives: Alternative[];
70
+ }
71
+ export interface Quantifier extends NodeBase {
72
+ type: "Quantifier";
73
+ parent: Alternative;
74
+ min: number;
75
+ max: number;
76
+ greedy: boolean;
77
+ element: QuantifiableElement;
78
+ }
79
+ export interface CharacterClass extends NodeBase {
80
+ type: "CharacterClass";
81
+ parent: Alternative | Quantifier;
82
+ negate: boolean;
83
+ elements: CharacterClassElement[];
84
+ }
85
+ export interface CharacterClassRange extends NodeBase {
86
+ type: "CharacterClassRange";
87
+ parent: CharacterClass;
88
+ min: Character;
89
+ max: Character;
90
+ }
91
+ export type Assertion = BoundaryAssertion | LookaroundAssertion;
92
+ export type BoundaryAssertion = EdgeAssertion | WordBoundaryAssertion;
93
+ export interface EdgeAssertion extends NodeBase {
94
+ type: "Assertion";
95
+ parent: Alternative | Quantifier;
96
+ kind: "start" | "end";
97
+ }
98
+ export interface WordBoundaryAssertion extends NodeBase {
99
+ type: "Assertion";
100
+ parent: Alternative | Quantifier;
101
+ kind: "word";
102
+ negate: boolean;
103
+ }
104
+ export type CharacterSet = AnyCharacterSet | EscapeCharacterSet | UnicodePropertyCharacterSet;
105
+ export interface AnyCharacterSet extends NodeBase {
106
+ type: "CharacterSet";
107
+ parent: Alternative | Quantifier;
108
+ kind: "any";
109
+ }
110
+ export interface EscapeCharacterSet extends NodeBase {
111
+ type: "CharacterSet";
112
+ parent: Alternative | Quantifier | CharacterClass;
113
+ kind: "digit" | "space" | "word";
114
+ negate: boolean;
115
+ }
116
+ export interface UnicodePropertyCharacterSet extends NodeBase {
117
+ type: "CharacterSet";
118
+ parent: Alternative | Quantifier | CharacterClass;
119
+ kind: "property";
120
+ key: string;
121
+ value: string | null;
122
+ negate: boolean;
123
+ }
124
+ export interface Character extends NodeBase {
125
+ type: "Character";
126
+ parent: Alternative | Quantifier | CharacterClass | CharacterClassRange;
127
+ value: number;
128
+ }
129
+ export interface Backreference extends NodeBase {
130
+ type: "Backreference";
131
+ parent: Alternative | Quantifier;
132
+ ref: number | string;
133
+ resolved: CapturingGroup;
134
+ }
135
+ export interface Flags extends NodeBase {
136
+ type: "Flags";
137
+ parent: RegExpLiteral | null;
138
+ dotAll: boolean;
139
+ global: boolean;
140
+ hasIndices: boolean;
141
+ ignoreCase: boolean;
142
+ multiline: boolean;
143
+ sticky: boolean;
144
+ unicode: boolean;
145
+ }
146
+ }
147
+
148
+ declare module '@eslint-community/regexpp/parser' {
149
+ import { Flags, RegExpLiteral, Pattern } from "@eslint-community/regexpp/ast";
150
+ import { EcmaVersion } from "@eslint-community/regexpp/ecma-versions";
151
+ export namespace RegExpParser {
152
+ interface Options {
153
+ strict?: boolean;
154
+ ecmaVersion?: EcmaVersion;
155
+ }
156
+ }
157
+ export class RegExpParser {
158
+ constructor(options?: RegExpParser.Options);
159
+ parseLiteral(source: string, start?: number, end?: number): RegExpLiteral;
160
+ parseFlags(source: string, start?: number, end?: number): Flags;
161
+ parsePattern(source: string, start?: number, end?: number, uFlag?: boolean): Pattern;
162
+ }
163
+ }
164
+
165
+ declare module '@eslint-community/regexpp/validator' {
166
+ import { EcmaVersion } from "@eslint-community/regexpp/ecma-versions";
167
+ export namespace RegExpValidator {
168
+ interface Options {
169
+ strict?: boolean;
170
+ ecmaVersion?: EcmaVersion;
171
+ onLiteralEnter?(start: number): void;
172
+ onLiteralLeave?(start: number, end: number): void;
173
+ onFlags?(start: number, end: number, global: boolean, ignoreCase: boolean, multiline: boolean, unicode: boolean, sticky: boolean, dotAll: boolean, hasIndices: boolean): void;
174
+ onPatternEnter?(start: number): void;
175
+ onPatternLeave?(start: number, end: number): void;
176
+ onDisjunctionEnter?(start: number): void;
177
+ onDisjunctionLeave?(start: number, end: number): void;
178
+ onAlternativeEnter?(start: number, index: number): void;
179
+ onAlternativeLeave?(start: number, end: number, index: number): void;
180
+ onGroupEnter?(start: number): void;
181
+ onGroupLeave?(start: number, end: number): void;
182
+ onCapturingGroupEnter?(start: number, name: string | null): void;
183
+ onCapturingGroupLeave?(start: number, end: number, name: string | null): void;
184
+ onQuantifier?(start: number, end: number, min: number, max: number, greedy: boolean): void;
185
+ onLookaroundAssertionEnter?(start: number, kind: "lookahead" | "lookbehind", negate: boolean): void;
186
+ onLookaroundAssertionLeave?(start: number, end: number, kind: "lookahead" | "lookbehind", negate: boolean): void;
187
+ onEdgeAssertion?(start: number, end: number, kind: "start" | "end"): void;
188
+ onWordBoundaryAssertion?(start: number, end: number, kind: "word", negate: boolean): void;
189
+ onAnyCharacterSet?(start: number, end: number, kind: "any"): void;
190
+ onEscapeCharacterSet?(start: number, end: number, kind: "digit" | "space" | "word", negate: boolean): void;
191
+ onUnicodePropertyCharacterSet?(start: number, end: number, kind: "property", key: string, value: string | null, negate: boolean): void;
192
+ onCharacter?(start: number, end: number, value: number): void;
193
+ onBackreference?(start: number, end: number, ref: number | string): void;
194
+ onCharacterClassEnter?(start: number, negate: boolean): void;
195
+ onCharacterClassLeave?(start: number, end: number, negate: boolean): void;
196
+ onCharacterClassRange?(start: number, end: number, min: number, max: number): void;
197
+ }
198
+ }
199
+ export class RegExpValidator {
200
+ constructor(options?: RegExpValidator.Options);
201
+ validateLiteral(source: string, start?: number, end?: number): void;
202
+ validateFlags(source: string, start?: number, end?: number): void;
203
+ validatePattern(source: string, start?: number, end?: number, uFlag?: boolean): void;
204
+ }
205
+ }
206
+
207
+ declare module '@eslint-community/regexpp/visitor' {
208
+ import { Alternative, Assertion, Backreference, CapturingGroup, Character, CharacterClass, CharacterClassRange, CharacterSet, Flags, Group, Node, Pattern, Quantifier, RegExpLiteral } from "@eslint-community/regexpp/ast";
209
+ export class RegExpVisitor {
210
+ constructor(handlers: RegExpVisitor.Handlers);
211
+ visit(node: Node): void;
212
+ }
213
+ export namespace RegExpVisitor {
214
+ interface Handlers {
215
+ onAlternativeEnter?(node: Alternative): void;
216
+ onAlternativeLeave?(node: Alternative): void;
217
+ onAssertionEnter?(node: Assertion): void;
218
+ onAssertionLeave?(node: Assertion): void;
219
+ onBackreferenceEnter?(node: Backreference): void;
220
+ onBackreferenceLeave?(node: Backreference): void;
221
+ onCapturingGroupEnter?(node: CapturingGroup): void;
222
+ onCapturingGroupLeave?(node: CapturingGroup): void;
223
+ onCharacterEnter?(node: Character): void;
224
+ onCharacterLeave?(node: Character): void;
225
+ onCharacterClassEnter?(node: CharacterClass): void;
226
+ onCharacterClassLeave?(node: CharacterClass): void;
227
+ onCharacterClassRangeEnter?(node: CharacterClassRange): void;
228
+ onCharacterClassRangeLeave?(node: CharacterClassRange): void;
229
+ onCharacterSetEnter?(node: CharacterSet): void;
230
+ onCharacterSetLeave?(node: CharacterSet): void;
231
+ onFlagsEnter?(node: Flags): void;
232
+ onFlagsLeave?(node: Flags): void;
233
+ onGroupEnter?(node: Group): void;
234
+ onGroupLeave?(node: Group): void;
235
+ onPatternEnter?(node: Pattern): void;
236
+ onPatternLeave?(node: Pattern): void;
237
+ onQuantifierEnter?(node: Quantifier): void;
238
+ onQuantifierLeave?(node: Quantifier): void;
239
+ onRegExpLiteralEnter?(node: RegExpLiteral): void;
240
+ onRegExpLiteralLeave?(node: RegExpLiteral): void;
241
+ }
242
+ }
243
+ }
244
+
245
+ declare module '@eslint-community/regexpp/ecma-versions' {
246
+ export type EcmaVersion = 5 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022;
247
+ }
248
+