@eslint-community/regexpp 3.2.1 → 4.1.0
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/README.md +1 -1
- package/index.d.ts +67 -67
- package/index.js +22 -19
- package/index.js.map +1 -1
- package/index.mjs +22 -20
- package/index.mjs.map +1 -1
- package/package.json +56 -56
package/README.md
CHANGED
package/index.d.ts
CHANGED
|
@@ -6,18 +6,18 @@ declare module '@eslint-community/regexpp' {
|
|
|
6
6
|
import { RegExpValidator } from "@eslint-community/regexpp/validator";
|
|
7
7
|
import { RegExpVisitor } from "@eslint-community/regexpp/visitor";
|
|
8
8
|
export { AST, RegExpParser, RegExpValidator };
|
|
9
|
-
export function parseRegExpLiteral(source:
|
|
9
|
+
export function parseRegExpLiteral(source: RegExp | string, options?: RegExpParser.Options): AST.RegExpLiteral;
|
|
10
10
|
export function validateRegExpLiteral(source: string, options?: RegExpValidator.Options): void;
|
|
11
11
|
export function visitRegExpAST(node: AST.Node, handlers: RegExpVisitor.Handlers): void;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
declare module '@eslint-community/regexpp/ast' {
|
|
15
15
|
export type Node = BranchNode | LeafNode;
|
|
16
|
-
export type BranchNode =
|
|
17
|
-
export type LeafNode =
|
|
18
|
-
export type Element = Assertion |
|
|
19
|
-
export type QuantifiableElement =
|
|
20
|
-
export type CharacterClassElement =
|
|
16
|
+
export type BranchNode = Alternative | CapturingGroup | CharacterClass | CharacterClassRange | Group | LookaroundAssertion | Pattern | Quantifier | RegExpLiteral;
|
|
17
|
+
export type LeafNode = Backreference | BoundaryAssertion | Character | CharacterSet | Flags;
|
|
18
|
+
export type Element = Assertion | QuantifiableElement | Quantifier;
|
|
19
|
+
export type QuantifiableElement = Backreference | CapturingGroup | Character | CharacterClass | CharacterSet | Group | LookaheadAssertion;
|
|
20
|
+
export type CharacterClassElement = Character | CharacterClassRange | EscapeCharacterSet | UnicodePropertyCharacterSet;
|
|
21
21
|
export interface NodeBase {
|
|
22
22
|
type: Node["type"];
|
|
23
23
|
parent: Node["parent"];
|
|
@@ -38,7 +38,7 @@ declare module '@eslint-community/regexpp/ast' {
|
|
|
38
38
|
}
|
|
39
39
|
export interface Alternative extends NodeBase {
|
|
40
40
|
type: "Alternative";
|
|
41
|
-
parent:
|
|
41
|
+
parent: CapturingGroup | Group | LookaroundAssertion | Pattern;
|
|
42
42
|
elements: Element[];
|
|
43
43
|
}
|
|
44
44
|
export interface Group extends NodeBase {
|
|
@@ -93,7 +93,7 @@ declare module '@eslint-community/regexpp/ast' {
|
|
|
93
93
|
export interface EdgeAssertion extends NodeBase {
|
|
94
94
|
type: "Assertion";
|
|
95
95
|
parent: Alternative | Quantifier;
|
|
96
|
-
kind: "
|
|
96
|
+
kind: "end" | "start";
|
|
97
97
|
}
|
|
98
98
|
export interface WordBoundaryAssertion extends NodeBase {
|
|
99
99
|
type: "Assertion";
|
|
@@ -109,13 +109,13 @@ declare module '@eslint-community/regexpp/ast' {
|
|
|
109
109
|
}
|
|
110
110
|
export interface EscapeCharacterSet extends NodeBase {
|
|
111
111
|
type: "CharacterSet";
|
|
112
|
-
parent: Alternative |
|
|
112
|
+
parent: Alternative | CharacterClass | Quantifier;
|
|
113
113
|
kind: "digit" | "space" | "word";
|
|
114
114
|
negate: boolean;
|
|
115
115
|
}
|
|
116
116
|
export interface UnicodePropertyCharacterSet extends NodeBase {
|
|
117
117
|
type: "CharacterSet";
|
|
118
|
-
parent: Alternative |
|
|
118
|
+
parent: Alternative | CharacterClass | Quantifier;
|
|
119
119
|
kind: "property";
|
|
120
120
|
key: string;
|
|
121
121
|
value: string | null;
|
|
@@ -123,7 +123,7 @@ declare module '@eslint-community/regexpp/ast' {
|
|
|
123
123
|
}
|
|
124
124
|
export interface Character extends NodeBase {
|
|
125
125
|
type: "Character";
|
|
126
|
-
parent: Alternative |
|
|
126
|
+
parent: Alternative | CharacterClass | CharacterClassRange | Quantifier;
|
|
127
127
|
value: number;
|
|
128
128
|
}
|
|
129
129
|
export interface Backreference extends NodeBase {
|
|
@@ -146,8 +146,8 @@ declare module '@eslint-community/regexpp/ast' {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
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";
|
|
149
|
+
import type { Flags, RegExpLiteral, Pattern } from "@eslint-community/regexpp/ast";
|
|
150
|
+
import type { EcmaVersion } from "@eslint-community/regexpp/ecma-versions";
|
|
151
151
|
export namespace RegExpParser {
|
|
152
152
|
interface Options {
|
|
153
153
|
strict?: boolean;
|
|
@@ -163,37 +163,37 @@ declare module '@eslint-community/regexpp/parser' {
|
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
declare module '@eslint-community/regexpp/validator' {
|
|
166
|
-
import { EcmaVersion } from "@eslint-community/regexpp/ecma-versions";
|
|
166
|
+
import type { EcmaVersion } from "@eslint-community/regexpp/ecma-versions";
|
|
167
167
|
export namespace RegExpValidator {
|
|
168
168
|
interface Options {
|
|
169
169
|
strict?: boolean;
|
|
170
170
|
ecmaVersion?: EcmaVersion;
|
|
171
|
-
onLiteralEnter
|
|
172
|
-
onLiteralLeave
|
|
173
|
-
onFlags
|
|
174
|
-
onPatternEnter
|
|
175
|
-
onPatternLeave
|
|
176
|
-
onDisjunctionEnter
|
|
177
|
-
onDisjunctionLeave
|
|
178
|
-
onAlternativeEnter
|
|
179
|
-
onAlternativeLeave
|
|
180
|
-
onGroupEnter
|
|
181
|
-
onGroupLeave
|
|
182
|
-
onCapturingGroupEnter
|
|
183
|
-
onCapturingGroupLeave
|
|
184
|
-
onQuantifier
|
|
185
|
-
onLookaroundAssertionEnter
|
|
186
|
-
onLookaroundAssertionLeave
|
|
187
|
-
onEdgeAssertion
|
|
188
|
-
onWordBoundaryAssertion
|
|
189
|
-
onAnyCharacterSet
|
|
190
|
-
onEscapeCharacterSet
|
|
191
|
-
onUnicodePropertyCharacterSet
|
|
192
|
-
onCharacter
|
|
193
|
-
onBackreference
|
|
194
|
-
onCharacterClassEnter
|
|
195
|
-
onCharacterClassLeave
|
|
196
|
-
onCharacterClassRange
|
|
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: "end" | "start") => 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
197
|
}
|
|
198
198
|
}
|
|
199
199
|
export class RegExpValidator {
|
|
@@ -205,39 +205,39 @@ declare module '@eslint-community/regexpp/validator' {
|
|
|
205
205
|
}
|
|
206
206
|
|
|
207
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";
|
|
208
|
+
import type { Alternative, Assertion, Backreference, CapturingGroup, Character, CharacterClass, CharacterClassRange, CharacterSet, Flags, Group, Node, Pattern, Quantifier, RegExpLiteral } from "@eslint-community/regexpp/ast";
|
|
209
209
|
export class RegExpVisitor {
|
|
210
210
|
constructor(handlers: RegExpVisitor.Handlers);
|
|
211
211
|
visit(node: Node): void;
|
|
212
212
|
}
|
|
213
213
|
export namespace RegExpVisitor {
|
|
214
214
|
interface Handlers {
|
|
215
|
-
onAlternativeEnter
|
|
216
|
-
onAlternativeLeave
|
|
217
|
-
onAssertionEnter
|
|
218
|
-
onAssertionLeave
|
|
219
|
-
onBackreferenceEnter
|
|
220
|
-
onBackreferenceLeave
|
|
221
|
-
onCapturingGroupEnter
|
|
222
|
-
onCapturingGroupLeave
|
|
223
|
-
onCharacterEnter
|
|
224
|
-
onCharacterLeave
|
|
225
|
-
onCharacterClassEnter
|
|
226
|
-
onCharacterClassLeave
|
|
227
|
-
onCharacterClassRangeEnter
|
|
228
|
-
onCharacterClassRangeLeave
|
|
229
|
-
onCharacterSetEnter
|
|
230
|
-
onCharacterSetLeave
|
|
231
|
-
onFlagsEnter
|
|
232
|
-
onFlagsLeave
|
|
233
|
-
onGroupEnter
|
|
234
|
-
onGroupLeave
|
|
235
|
-
onPatternEnter
|
|
236
|
-
onPatternLeave
|
|
237
|
-
onQuantifierEnter
|
|
238
|
-
onQuantifierLeave
|
|
239
|
-
onRegExpLiteralEnter
|
|
240
|
-
onRegExpLiteralLeave
|
|
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
241
|
}
|
|
242
242
|
}
|
|
243
243
|
}
|
package/index.js
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
5
|
var ast = /*#__PURE__*/Object.freeze({
|
|
8
6
|
__proto__: null
|
|
9
7
|
});
|
|
@@ -39,17 +37,16 @@ function isIdContinue(cp) {
|
|
|
39
37
|
return isLargeIdStart(cp) || isLargeIdContinue(cp);
|
|
40
38
|
}
|
|
41
39
|
function isLargeIdStart(cp) {
|
|
42
|
-
return isInRange(cp, largeIdStartRanges
|
|
40
|
+
return isInRange(cp, largeIdStartRanges !== null && largeIdStartRanges !== void 0 ? largeIdStartRanges : (largeIdStartRanges = initLargeIdStartRanges()));
|
|
43
41
|
}
|
|
44
42
|
function isLargeIdContinue(cp) {
|
|
45
|
-
return isInRange(cp, largeIdContinueRanges
|
|
46
|
-
(largeIdContinueRanges = initLargeIdContinueRanges()));
|
|
43
|
+
return isInRange(cp, largeIdContinueRanges !== null && largeIdContinueRanges !== void 0 ? largeIdContinueRanges : (largeIdContinueRanges = initLargeIdContinueRanges()));
|
|
47
44
|
}
|
|
48
45
|
function initLargeIdStartRanges() {
|
|
49
|
-
return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a
|
|
46
|
+
return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a 6 n 2 5 i 15 1n 1h 4 0 j 0 8 9 g f 5 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 b 0 9 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 o 0 c 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 f 4 0 r 2 3 0 3 1 v 0 5 7 2 2 2 m 2 9 2 4 4 0 w 1 2 1 g 1 i 8 2 2 2 14 3 0 h 0 6 2 9 2 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 2 4 2 n 2 0 2 9 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2d 3 5 4 h7 3 g 2 p 6 22 4 a 8 h e i f h f c 2 2 g 1f 10 0 5 0 1w 2g 8 14 2 0 6 1x b u 1e t 3 4 c 17 5 p 1j m a 1g 2b 0 2m 1a i 7 1j t e 1 b 17 r z 16 2 b z 3 8 8 16 3 2 16 3 2 5 2 1 4 0 6 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 f 3 3 6 4 5 0 i 14 22g 6c 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 fb 2 q 8 8 4 3 4 5 2d 5 4 2 2h 2 3 6 16 2 2l i v 1d f e9 533 1t h3g 1w 19 3 7g 4 f b 1 l 1a h u 3 27 14 8 3 2u 3 1r 6 1 2 0 2 4 p f 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 2 1 c r b m q s 8 1a t 0 h 4 2 9 b 4 2 14 o 2 2 7 l m 4 0 4 1d 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 2 16 2 d 7 36 u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2 10 b 2 p 2 i 2 1 2 e 3 d z 3e 1y 1g 7g s 4 1c 1c v e t 6 11 b t 3 z 5 7 2 4 17 4d j z 5 z 5 13 9 1f d a 2 e 2 6 2 1 2 a 2 e 2 6 2 1 1w 8m a l b 7 p 5 2 15 2 8 1y 5 3 0 2 17 2 1 4 0 3 m b m a u 1u i 2 1 b l b p 1z 1j 7 1 1t 0 g 3 2 2 2 s 17 s 4 s 10 7 2 r s 1h b l b i e h 33 20 1k 1e e 1e e z 9p 15 7 1 27 s b 0 9 l 17 h 1b k s m d 1g 1m 1 3 0 e 18 x o r z u 0 3 0 9 y 4 0 d 1b f 3 m 0 2 0 10 h 2 o k 1 1s 6 2 0 2 3 2 e 2 9 8 1a 13 7 3 1 3 l 2 6 2 1 2 4 4 0 j 0 d 4 4f 1g j 3 l 2 v 1b l 1 2 0 55 1a 16 3 11 1b l 0 1o 16 e 0 20 q 12 6 56 17 39 1r w 7 3 0 3 7 2 1 2 n g 0 2 0 2n 7 3 12 h 0 2 0 t 0 b 13 8 0 m 0 c 19 k 0 j 20 7c 8 2 10 i 0 1e t 35 6 2 1 2 11 m 0 q 5 2 1 2 v f 0 94 i g 0 2 c 2 x 3h 0 28 pl 2v 32 i 5f 219 2o g tr i 5 33u g6 6nu fs 8 u i 26 i t j 1b h 3 w k 6 i j5 1r 3l 22 6 0 1v c 1t 1 2 0 t 4qf 9 yd 17 8 6w8 3 2 6 2 1 2 82 g 0 u 2 3 0 f 3 9 az 1s5 2y 6 c 4 8 8 9 4mf 2c 2 1y 2 1 3 0 3 1 3 3 2 b 2 0 2 6 2 1s 2 3 3 7 2 6 2 r 2 3 2 4 2 0 4 6 2 9f 3 o 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 7 1f9 u 7 5 7a 1p 43 18 b 6 h 0 8y t j 17 dh r l1 6 2 3 2 1 2 e 2 5g 1o 1v 8 0 xh 3 2 q 2 1 2 0 3 0 2 9 2 3 2 0 2 0 7 0 5 0 2 0 2 0 2 2 2 1 2 0 3 0 2 0 2 0 2 0 2 0 2 1 2 0 3 3 2 6 2 3 2 3 2 0 2 9 2 g 6 2 2 4 2 g 3et wyn x 37d 7 65 3 4g1 f 5rk 2e8 f1 15v 3t6 6 38f");
|
|
50
47
|
}
|
|
51
48
|
function initLargeIdContinueRanges() {
|
|
52
|
-
return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2
|
|
49
|
+
return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2 1p 7 17 n 2 w 1j 2 2 h 2 6 b 1 3 9 i 2 1l 0 2 6 3 1 3 2 a 0 b 1 3 9 f 0 3 2 1l 0 2 4 5 1 3 2 4 0 l b 4 0 c 2 1l 0 2 7 2 2 2 2 l 1 3 9 b 5 2 2 1l 0 2 6 3 1 3 2 8 2 b 1 3 9 j 0 1o 4 4 2 2 3 a 0 f 9 h 4 1k 0 2 6 2 2 2 3 8 1 c 1 3 9 i 2 1l 0 2 6 2 2 2 3 8 1 c 1 3 9 4 0 d 3 1k 1 2 6 2 2 2 3 a 0 b 1 3 9 i 2 1z 0 5 5 2 0 2 7 7 9 3 1 1q 0 3 6 d 7 2 9 2g 0 3 8 c 6 2 9 1r 1 7 9 c 0 2 0 2 0 5 1 1e j 2 1 6 a 2 z a 0 2t j 2 9 d 3 5 2 2 2 3 6 4 3 e b 2 e jk 2 a 8 pt 3 t 2 u 1 v 1 1t v a 0 3 9 y 2 2 a 40 0 3b b 5 b b 9 3l a 1p 4 1m 9 2 s 3 a 7 9 n d 2 f 1e 4 1c g c 9 i 8 d 2 v c 3 9 19 d 1d j 9 9 7 9 3b 2 2 k 5 0 7 0 3 2 5j 1r g0 1 k 0 3g c 5 0 4 b 2db 2 3y 0 2p v ff 5 2y 1 n7q 9 1y 0 5 9 x 1 29 1 7l 0 4 0 5 0 o 4 5 0 2c 1 1f h b 9 7 h e a t 7 q c 19 3 1c d g 9 c 0 b 9 1c d d 0 9 1 3 9 y 2 1f 0 2 2 3 1 6 1 2 0 16 4 6 1 6l 7 2 1 3 9 fmt 0 ki f h f 4 1 p 2 5d 9 12 0 ji 0 6b 0 46 4 86 9 120 2 2 1 6 3 15 2 5 0 4m 1 fy 3 9 9 aa 1 29 2 1z a 1e 3 3f 2 1i e w a 3 1 b 3 1a a 8 0 1a 9 7 2 11 d 2 9 6 1 19 0 d 2 1d d 9 3 2 b 2b b 7 0 3 0 4e b 6 9 7 3 1k 1 2 6 3 1 3 2 a 0 b 1 3 6 4 4 5d h a 9 5 0 2a j d 9 5y 6 3 8 s 1 2b g g 9 2a c 9 9 2c e 5 9 6r e 4m 9 1z 5 2 1 3 3 2 0 2 1 d 9 3c 6 3 6 4 0 t 9 15 6 2 3 9 0 a a 1b f ba 7 2 7 h 9 1l l 2 d 3f 5 4 0 2 1 2 6 2 0 9 9 1d 4 2 1 2 4 9 9 96 3 a 1 2 0 1d 6 4 4 e 9 44n 0 7 e aob 9 2f 9 13 4 1o 6 q 9 s6 0 2 1i 8 3 2a 0 c 1 f58 1 3mq 19 3 m f3 4 4 5 9 7 3 6 v 3 45 2 13e 1d e9 1i 5 1d 9 0 f 0 n 4 2 e 11t 6 2 g 3 6 2 1 2 4 2t 0 4h 6 a 9 9x 0 1q d dv d rb 6 32 6 6 9 3o7 9 gvt3 6n");
|
|
53
50
|
}
|
|
54
51
|
function isInRange(cp, ranges) {
|
|
55
52
|
let l = 0, r = (ranges.length / 2) | 0, i = 0, min = 0, max = 0;
|
|
@@ -71,7 +68,7 @@ function isInRange(cp, ranges) {
|
|
|
71
68
|
}
|
|
72
69
|
function restoreRanges(data) {
|
|
73
70
|
let last = 0;
|
|
74
|
-
return data.split(" ").map(s => (last += parseInt(s, 36) | 0));
|
|
71
|
+
return data.split(" ").map((s) => (last += parseInt(s, 36) | 0));
|
|
75
72
|
}
|
|
76
73
|
|
|
77
74
|
class DataSet {
|
|
@@ -82,16 +79,20 @@ class DataSet {
|
|
|
82
79
|
this._raw2021 = raw2021;
|
|
83
80
|
}
|
|
84
81
|
get es2018() {
|
|
85
|
-
|
|
82
|
+
var _a;
|
|
83
|
+
return ((_a = this._set2018) !== null && _a !== void 0 ? _a : (this._set2018 = new Set(this._raw2018.split(" "))));
|
|
86
84
|
}
|
|
87
85
|
get es2019() {
|
|
88
|
-
|
|
86
|
+
var _a;
|
|
87
|
+
return ((_a = this._set2019) !== null && _a !== void 0 ? _a : (this._set2019 = new Set(this._raw2019.split(" "))));
|
|
89
88
|
}
|
|
90
89
|
get es2020() {
|
|
91
|
-
|
|
90
|
+
var _a;
|
|
91
|
+
return ((_a = this._set2020) !== null && _a !== void 0 ? _a : (this._set2020 = new Set(this._raw2020.split(" "))));
|
|
92
92
|
}
|
|
93
93
|
get es2021() {
|
|
94
|
-
|
|
94
|
+
var _a;
|
|
95
|
+
return ((_a = this._set2021) !== null && _a !== void 0 ? _a : (this._set2021 = new Set(this._raw2021.split(" "))));
|
|
95
96
|
}
|
|
96
97
|
}
|
|
97
98
|
const gcNameSet = new Set(["General_Category", "gc"]);
|
|
@@ -391,7 +392,7 @@ class RegExpValidator {
|
|
|
391
392
|
this._numCapturingParens = 0;
|
|
392
393
|
this._groupNames = new Set();
|
|
393
394
|
this._backreferenceNames = new Set();
|
|
394
|
-
this._options = options
|
|
395
|
+
this._options = options !== null && options !== void 0 ? options : {};
|
|
395
396
|
}
|
|
396
397
|
validateLiteral(source, start = 0, end = source.length) {
|
|
397
398
|
this._uFlag = this._nFlag = false;
|
|
@@ -468,10 +469,11 @@ class RegExpValidator {
|
|
|
468
469
|
}
|
|
469
470
|
}
|
|
470
471
|
get strict() {
|
|
471
|
-
return Boolean(this._options.strict || this._uFlag
|
|
472
|
+
return Boolean(this._options.strict) || this._uFlag;
|
|
472
473
|
}
|
|
473
474
|
get ecmaVersion() {
|
|
474
|
-
|
|
475
|
+
var _a;
|
|
476
|
+
return (_a = this._options.ecmaVersion) !== null && _a !== void 0 ? _a : 2022;
|
|
475
477
|
}
|
|
476
478
|
onLiteralEnter(start) {
|
|
477
479
|
if (this._options.onLiteralEnter) {
|
|
@@ -1519,13 +1521,14 @@ const DummyFlags = {};
|
|
|
1519
1521
|
const DummyCapturingGroup = {};
|
|
1520
1522
|
class RegExpParserState {
|
|
1521
1523
|
constructor(options) {
|
|
1524
|
+
var _a;
|
|
1522
1525
|
this._node = DummyPattern;
|
|
1523
1526
|
this._flags = DummyFlags;
|
|
1524
1527
|
this._backreferences = [];
|
|
1525
1528
|
this._capturingGroups = [];
|
|
1526
1529
|
this.source = "";
|
|
1527
|
-
this.strict = Boolean(options
|
|
1528
|
-
this.ecmaVersion = (options
|
|
1530
|
+
this.strict = Boolean(options === null || options === void 0 ? void 0 : options.strict);
|
|
1531
|
+
this.ecmaVersion = (_a = options === null || options === void 0 ? void 0 : options.ecmaVersion) !== null && _a !== void 0 ? _a : 2022;
|
|
1529
1532
|
}
|
|
1530
1533
|
get pattern() {
|
|
1531
1534
|
if (this._node.type !== "Pattern") {
|
|
@@ -1574,7 +1577,7 @@ class RegExpParserState {
|
|
|
1574
1577
|
const ref = reference.ref;
|
|
1575
1578
|
const group = typeof ref === "number"
|
|
1576
1579
|
? this._capturingGroups[ref - 1]
|
|
1577
|
-
: this._capturingGroups.find(g => g.name === ref);
|
|
1580
|
+
: this._capturingGroups.find((g) => g.name === ref);
|
|
1578
1581
|
reference.resolved = group;
|
|
1579
1582
|
group.references.push(reference);
|
|
1580
1583
|
}
|
|
@@ -2080,7 +2083,7 @@ function parseRegExpLiteral(source, options) {
|
|
|
2080
2083
|
return new RegExpParser(options).parseLiteral(String(source));
|
|
2081
2084
|
}
|
|
2082
2085
|
function validateRegExpLiteral(source, options) {
|
|
2083
|
-
|
|
2086
|
+
new RegExpValidator(options).validateLiteral(source);
|
|
2084
2087
|
}
|
|
2085
2088
|
function visitRegExpAST(node, handlers) {
|
|
2086
2089
|
new RegExpVisitor(handlers).visit(node);
|