re2js 2.7.1 → 2.8.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.
@@ -1,606 +0,0 @@
1
- /**
2
- * A stateful iterator that interprets a regex {@code RE2JS} on a specific input.
3
- *
4
- * Conceptually, a Matcher consists of four parts:
5
- * <ol>
6
- * <li>A compiled regular expression {@code RE2JS}, set at construction and fixed for the lifetime
7
- * of the matcher.</li>
8
- *
9
- * <li>The remainder of the input string, set at construction or {@link #reset()} and advanced by
10
- * each match operation such as {@link #find}, {@link #matches} or {@link #lookingAt}.</li>
11
- *
12
- * <li>The current match information, accessible via {@link #start}, {@link #end}, and
13
- * {@link #group}, and updated by each match operation.</li>
14
- *
15
- * <li>The append position, used and advanced by {@link #appendReplacement} and {@link #appendTail}
16
- * if performing a search and replace from the input to an external {@code StringBuffer}.
17
- *
18
- * </ol>
19
- *
20
- *
21
- * @author rsc@google.com (Russ Cox)
22
- */
23
- export class Matcher {
24
- /**
25
- * Quotes '\' and '$' in {@code s}, so that the returned string could be used in
26
- * {@link #appendReplacement} as a literal replacement of {@code s}.
27
- *
28
- * @param {string} str the string to be quoted
29
- * @param {boolean} [javaMode=false] whether the replacement will be used in javaMode
30
- * @returns {string} the quoted string
31
- */
32
- static quoteReplacement(str: string, javaMode?: boolean): string;
33
- /**
34
- *
35
- * @param {RE2JS} pattern
36
- * @param {string|number[]|Uint8Array} input
37
- */
38
- constructor(pattern: RE2JS, input: string | number[] | Uint8Array);
39
- /**
40
- * The pattern being matched.
41
- * @type {RE2JS}
42
- */
43
- patternInput: RE2JS;
44
- /** @type {number} */
45
- patternGroupCount: number;
46
- /** @type {number[]} */
47
- groups: number[];
48
- /** @type {Record<string, number>} */
49
- namedGroups: Record<string, number>;
50
- /** @type {number} */
51
- numberOfInstructions: number;
52
- /**
53
- * Returns the {@code RE2JS} associated with this {@code Matcher}.
54
- * @returns {RE2JS}
55
- */
56
- pattern(): RE2JS;
57
- /**
58
- * Resets the {@code Matcher}, rewinding input and discarding any match information.
59
- *
60
- * @returns {Matcher} the {@code Matcher} itself, for chained method calls
61
- */
62
- reset(): Matcher;
63
- /** @type {number} */
64
- matcherInputLength: number | undefined;
65
- /** @type {number} */
66
- appendPos: number | undefined;
67
- hasMatch: boolean | undefined;
68
- hasGroups: boolean | undefined;
69
- anchorFlag: number | undefined;
70
- /**
71
- * Resets the {@code Matcher} and changes the input.
72
- * @param {MatcherInputBase} input
73
- * @returns {Matcher} the {@code Matcher} itself, for chained method calls
74
- */
75
- resetMatcherInput(input: MatcherInputBase): Matcher;
76
- matcherInput: MatcherInputBase | undefined;
77
- /**
78
- * Returns the start of the named group of the most recent match, or -1 if the group was not
79
- * matched.
80
- * @param {string|number} [group=0]
81
- * @returns {number}
82
- */
83
- start(group?: string | number): number;
84
- /**
85
- * Returns the end of the named group of the most recent match, or -1 if the group was not
86
- * matched.
87
- * @param {string|number} [group=0]
88
- * @returns {number}
89
- */
90
- end(group?: string | number): number;
91
- /**
92
- * Returns the program size of this pattern.
93
- *
94
- * <p>
95
- * Similar to the C++ implementation, the program size is a very approximate measure of a regexp's
96
- * "cost". Larger numbers are more expensive than smaller numbers.
97
- * </p>
98
- *
99
- * @returns {number} the program size of this pattern
100
- */
101
- programSize(): number;
102
- /**
103
- * Returns the named group of the most recent match, or {@code null} if the group was not matched.
104
- * @param {string|number} [group=0]
105
- * @returns {string|null}
106
- */
107
- group(group?: string | number): string | null;
108
- /**
109
- * Returns a dictionary map of all named capturing groups and their matched values.
110
- * If a group was not matched, its value will be `null`.
111
- * @returns {Record<string, string|null>}
112
- */
113
- getNamedGroups(): Record<string, string | null>;
114
- /**
115
- * Returns the number of subgroups in this pattern.
116
- *
117
- * @returns {number} the number of subgroups; the overall match (group 0) does not count
118
- */
119
- groupCount(): number;
120
- /**
121
- * Helper: finds subgroup information if needed for group.
122
- * @param {number} group
123
- * @private
124
- */
125
- private loadGroup;
126
- /**
127
- * Matches the entire input against the pattern (anchored start and end). If there is a match,
128
- * {@code matches} sets the match state to describe it.
129
- *
130
- * @returns {boolean} true if the entire input matches the pattern
131
- */
132
- matches(): boolean;
133
- /**
134
- * Matches the beginning of input against the pattern (anchored start). If there is a match,
135
- * {@code lookingAt} sets the match state to describe it.
136
- *
137
- * @returns {boolean} true if the beginning of the input matches the pattern
138
- */
139
- lookingAt(): boolean;
140
- /**
141
- * Matches the input against the pattern (unanchored), starting at a specified position. If there
142
- * is a match, {@code find} sets the match state to describe it.
143
- *
144
- * @param {number|null} [start=null] the input position where the search begins
145
- * @returns {boolean} if it finds a match
146
- * @throws IndexOutOfBoundsException if start is not a valid input position
147
- */
148
- find(start?: number | null): boolean;
149
- /**
150
- * Helper: does match starting at start, with RE2 anchor flag.
151
- * @param {number} startByte
152
- * @param {number} anchor
153
- * @returns {boolean}
154
- * @private
155
- */
156
- private genMatch;
157
- /**
158
- * Helper: return substring for [start, end).
159
- * @param {number} start
160
- * @param {number} end
161
- * @returns {string}
162
- */
163
- substring(start: number, end: number): string;
164
- /**
165
- * Helper for Pattern: return input length.
166
- * @returns {number}
167
- */
168
- inputLength(): number;
169
- /**
170
- * Appends to result two strings: the text from the append position up to the beginning of the
171
- * most recent match, and then the replacement with submatch groups substituted for references of
172
- * the form {@code $n}, where {@code n} is the group number in decimal. It advances the append
173
- * position to where the most recent match ended.
174
- *
175
- * To embed a literal {@code $}, use \$ (actually {@code "\\$"} with string escapes). The escape
176
- * is only necessary when {@code $} is followed by a digit, but it is always allowed. Only
177
- * {@code $} and {@code \} need escaping, but any character can be escaped.
178
- *
179
- * The group number {@code n} in {@code $n} is always at least one digit and expands to use more
180
- * digits as long as the resulting number is a valid group number for this pattern. To cut it off
181
- * earlier, escape the first digit that should not be used.
182
- *
183
- * @param {string} replacement the replacement string
184
- * @param {boolean} [javaMode=false] activate java mode (different behaviour for capture groups and special characters)
185
- * @returns {string}
186
- * @throws IllegalStateException if there was no most recent match
187
- * @throws IndexOutOfBoundsException if replacement refers to an invalid group
188
- * @private
189
- */
190
- private appendReplacement;
191
- /**
192
- * @param {string} replacement - the replacement string
193
- * @returns {string}
194
- * @private
195
- */
196
- private appendReplacementInternalJava;
197
- /**
198
- * @param {string} replacement - the replacement string
199
- * @returns {string}
200
- * @private
201
- */
202
- private appendReplacementInternalJs;
203
- /**
204
- * Return the substring of the input from the append position to the end of the
205
- * input.
206
- * @returns {string}
207
- */
208
- appendTail(): string;
209
- /**
210
- * Returns the input with all matches replaced by {@code replacement}, interpreted as for
211
- * {@code appendReplacement}.
212
- *
213
- * @param {string} replacement - the replacement string
214
- * @param {boolean} [javaMode=false] - activate java mode (different behaviour for capture groups and special characters)
215
- * @returns {string} the input string with the matches replaced
216
- * @throws IndexOutOfBoundsException if replacement refers to an invalid group and javaMode is true
217
- */
218
- replaceAll(replacement: string, javaMode?: boolean): string;
219
- /**
220
- * Returns the input with the first match replaced by {@code replacement}, interpreted as for
221
- * {@code appendReplacement}.
222
- *
223
- * @param {string} replacement - the replacement string
224
- * @param {boolean} [javaMode=false] - activate java mode (different behaviour for capture groups and special characters)
225
- * @returns {string} the input string with the first match replaced
226
- * @throws IndexOutOfBoundsException if replacement refers to an invalid group and javaMode is true
227
- */
228
- replaceFirst(replacement: string, javaMode?: boolean): string;
229
- /**
230
- * Helper: replaceAll/replaceFirst hybrid.
231
- * @param {string} replacement - the replacement string
232
- * @param {boolean} [all=true] - replace all matches
233
- * @param {boolean} [javaMode=false] - activate java mode (different behaviour for capture groups and special characters)
234
- * @returns {string}
235
- * @private
236
- */
237
- private replace;
238
- }
239
- /**
240
- * A compiled representation of an RE2 regular expression
241
- *
242
- * The matching functions take {@code String} arguments instead of the more general Java
243
- * {@code CharSequence} since the latter doesn't provide UTF-16 decoding.
244
- *
245
- *
246
- * @author rsc@google.com (Russ Cox)
247
- * @class
248
- */
249
- export class RE2JS {
250
- /**
251
- * Flag: case insensitive matching.
252
- */
253
- static CASE_INSENSITIVE: number;
254
- /**
255
- * Flag: dot ({@code .}) matches all characters, including newline.
256
- */
257
- static DOTALL: number;
258
- /**
259
- * Flag: multiline matching: {@code ^} and {@code $} match at beginning and end of line, not just
260
- * beginning and end of input.
261
- */
262
- static MULTILINE: number;
263
- /**
264
- * Flag: Unicode groups (e.g. {@code \p\ Greek\} ) will be syntax errors.
265
- */
266
- static DISABLE_UNICODE_GROUPS: number;
267
- /**
268
- * Flag: matches longest possible string.
269
- */
270
- static LONGEST_MATCH: number;
271
- /**
272
- * Flag: enable linear-time captureless lookbehinds.
273
- */
274
- static LOOKBEHINDS: number;
275
- /**
276
- * Returns a literal pattern string for the specified string.
277
- *
278
- * This method produces a string that can be used to create a <code>RE2JS</code> that would
279
- * match the string <code>s</code> as if it were a literal pattern.
280
- *
281
- * Metacharacters or escape sequences in the input sequence will be given no special meaning.
282
- *
283
- * @param {string} str The string to be literalized
284
- * @returns {string} A literal string replacement
285
- */
286
- static quote(str: string): string;
287
- /**
288
- * Quotes '\' and '$' in {@code str}, so that the returned string could be used in
289
- * replacement methods as a literal replacement of {@code str}.
290
- *
291
- * This is a convenience delegation to {@link Matcher.quoteReplacement}.
292
- *
293
- * @param {string} str the string to be quoted
294
- * @param {boolean} [javaMode=false] whether the replacement will be used in javaMode
295
- * @returns {string} the quoted string
296
- */
297
- static quoteReplacement(str: string, javaMode?: boolean): string;
298
- /**
299
- * Translates a given regular expression string to ensure compatibility with RE2JS.
300
- *
301
- * This function preprocesses the input regex string by applying necessary transformations,
302
- * such as escaping special characters (e.g., `/`), converting named capture groups to
303
- * RE2JS-compatible syntax, and handling Unicode sequences properly. It ensures that the
304
- * resulting regex is safe and properly formatted before compilation.
305
- *
306
- * @param {string|RegExp} expr - The regular expression string to be translated.
307
- * @returns {string} - The transformed regular expression string, ready for compilation.
308
- */
309
- static translateRegExp(expr: string | RegExp): string;
310
- /**
311
- * Helper: create new RE2JS with given regex and flags. Flregex is the regex with flags applied.
312
- * @param {string} regex
313
- * @param {number} [flags=0]
314
- * @returns {RE2JS}
315
- */
316
- static compile(regex: string, flags?: number): RE2JS;
317
- /**
318
- * Matches a string against a regular expression.
319
- *
320
- * @param {string} regex the regular expression
321
- * @param {string|number[]|Uint8Array} input the input
322
- * @returns {boolean} true if the regular expression matches the entire input
323
- * @throws RE2JSSyntaxException if the regular expression is malformed
324
- */
325
- static matches(regex: string, input: string | number[] | Uint8Array): boolean;
326
- /**
327
- * This is visible for testing.
328
- * @private
329
- */
330
- private static initTest;
331
- /**
332
- *
333
- * @param {string} pattern
334
- * @param {number} flags
335
- */
336
- constructor(pattern: string, flags: number);
337
- patternInput: string;
338
- flagsInput: number;
339
- /**
340
- * Releases memory used by internal caches associated with this pattern. Does not change the
341
- * observable behaviour. Useful for tests that detect memory leaks via allocation tracking.
342
- */
343
- reset(): void;
344
- /**
345
- * Returns the flags used in the constructor.
346
- * @returns {number}
347
- */
348
- flags(): number;
349
- /**
350
- * Returns the pattern used in the constructor.
351
- * @returns {string}
352
- */
353
- pattern(): string;
354
- re2(): any;
355
- /**
356
- * Matches a string against a regular expression.
357
- *
358
- * @param {string|number[]|Uint8Array} input the input
359
- * @returns {boolean} true if the regular expression matches the entire input
360
- */
361
- matches(input: string | number[] | Uint8Array): boolean;
362
- /**
363
- * Creates a new {@code Matcher} matching the pattern against the input.
364
- *
365
- * @param {string|number[]|Uint8Array} input the input string
366
- * @returns {Matcher}
367
- */
368
- matcher(input: string | number[] | Uint8Array): Matcher;
369
- /**
370
- * Tests whether the regular expression matches any part of the input string.
371
- * Performance Note: This method is highly optimized. Because it only returns
372
- * a boolean and does not extract capture groups, it bypasses the `Matcher` overhead
373
- * and guarantees execution on the high-speed DFA engine whenever possible.
374
- *
375
- * @param {string|number[]|Uint8Array} input - The input string or UTF-8 byte array to test against.
376
- * @returns {boolean} `true` if the pattern is found anywhere in the input, `false` otherwise.
377
- */
378
- test(input: string | number[] | Uint8Array): boolean;
379
- /**
380
- * Tests whether the regular expression matches the ENTIRE input string.
381
- * * **Performance Note:** This operates identically to `.matches()`, but is significantly
382
- * faster because it does not request capture group data. By requesting 0 capture groups,
383
- * it securely routes execution through the DFA fast-path.
384
- *
385
- * @param {string|number[]|Uint8Array} input - The input string or UTF-8 byte array to test against.
386
- * @returns {boolean} `true` if the exact input string fully matches the pattern, `false` otherwise.
387
- */
388
- testExact(input: string | number[] | Uint8Array): boolean;
389
- /**
390
- * Splits input around instances of the regular expression. It returns an array giving the strings
391
- * that occur before, between, and after instances of the regular expression.
392
- *
393
- * If {@code limit <= 0}, there is no limit on the size of the returned array. If
394
- * {@code limit == 0}, empty strings that would occur at the end of the array are omitted. If
395
- * {@code limit > 0}, at most limit strings are returned. The final string contains the remainder
396
- * of the input, possibly including additional matches of the pattern.
397
- *
398
- * @param {string} input the input string to be split
399
- * @param {number} [limit=0] the limit
400
- * @returns {string[]} the split strings
401
- */
402
- split(input: string, limit?: number): string[];
403
- /**
404
- * Returns an iterator of all results matching a string against the regular expression,
405
- * including capturing groups.
406
- *
407
- * @param {string|number[]|Uint8Array} input the input string or byte array
408
- * @returns {IterableIterator<Array>}
409
- */
410
- matchAll(input: string | number[] | Uint8Array): IterableIterator<any[]>;
411
- /**
412
- *
413
- * @returns {string}
414
- */
415
- toString(): string;
416
- /**
417
- * Returns the program size of this pattern.
418
- *
419
- * <p>
420
- * Similar to the C++ implementation, the program size is a very approximate measure of a regexp's
421
- * "cost". Larger numbers are more expensive than smaller numbers.
422
- * </p>
423
- *
424
- * @returns {number} the program size of this pattern
425
- */
426
- programSize(): number;
427
- /**
428
- * Returns the number of capturing groups in this matcher's pattern. Group zero denotes the entire
429
- * pattern and is excluded from this count.
430
- *
431
- * @returns {number} the number of capturing groups in this pattern
432
- */
433
- groupCount(): number;
434
- /**
435
- * Return a map of the capturing groups in this matcher's pattern, where key is the name and value
436
- * is the index of the group in the pattern.
437
- * @returns {Record<string, number>}
438
- */
439
- namedGroups(): Record<string, number>;
440
- /**
441
- *
442
- * @param {*} other
443
- * @returns {boolean}
444
- */
445
- equals(other: any): boolean;
446
- }
447
- /**
448
- * An exception thrown by the compiler
449
- */
450
- export class RE2JSCompileException extends RE2JSException {
451
- }
452
- export class RE2JSException extends Error {
453
- /** @param {string} message */
454
- constructor(message: string);
455
- }
456
- /**
457
- * An exception thrown by flags
458
- */
459
- export class RE2JSFlagsException extends RE2JSException {
460
- }
461
- /**
462
- * An exception thrown by using groups
463
- */
464
- export class RE2JSGroupException extends RE2JSException {
465
- }
466
- /**
467
- * An exception thrown for internal engine errors, such as corrupted bytecodes.
468
- */
469
- export class RE2JSInternalException extends RE2JSException {
470
- }
471
- /**
472
- * An exception thrown by the parser if the pattern was invalid.
473
- */
474
- export class RE2JSSyntaxException extends RE2JSException {
475
- /**
476
- * @param {string} error
477
- * @param {string|null} [input=null]
478
- */
479
- constructor(error: string, input?: string | null);
480
- /** @type {string} */
481
- error: string;
482
- /** @type {string|null} */
483
- input: string | null;
484
- /**
485
- * Retrieves the description of the error.
486
- * @returns {string}
487
- */
488
- getDescription(): string;
489
- /**
490
- * Retrieves the erroneous regular-expression pattern.
491
- * @returns {string|null}
492
- */
493
- getPattern(): string | null;
494
- }
495
- export class RE2Set {
496
- /** @type {number} */
497
- static UNANCHORED: number;
498
- /** @type {number} */
499
- static ANCHOR_START: number;
500
- /** @type {number} */
501
- static ANCHOR_BOTH: number;
502
- /**
503
- * Constructs a new RE2Set with the specified anchor mode and flags.
504
- * @param {number} [anchor=RE2Set.UNANCHORED] - The anchoring mode (e.g., RE2Set.UNANCHORED).
505
- * @param {number} [flags=0] - The public flags to apply to all patterns in the set.
506
- */
507
- constructor(anchor?: number, flags?: number);
508
- anchor: number;
509
- jsFlags: number;
510
- re2Flags: number;
511
- regexps: any[];
512
- prog: Prog | null;
513
- dfa: DFA | null;
514
- dummyRe2: {
515
- prog: Prog;
516
- cond: number;
517
- prefix: string;
518
- prefixRune: number;
519
- longest: boolean;
520
- } | null;
521
- /**
522
- * Adds a new regular expression pattern to the set.
523
- * Patterns cannot be added after the set has been compiled.
524
- * @param {string} pattern - The regular expression pattern to add.
525
- * @returns {number} The integer index assigned to the added pattern.
526
- * @throws {RE2JSCompileException} If patterns are added after compilation.
527
- */
528
- add(pattern: string): number;
529
- /**
530
- * Compiles the added patterns into a single state machine.
531
- * This is automatically called on the first match if not called explicitly.
532
- * @returns {void}
533
- */
534
- compile(): void;
535
- /**
536
- * Matches the input against the compiled set of regular expressions.
537
- * @param {string|number[]|Uint8Array} input - The input string or UTF-8 byte array to match against.
538
- * @returns {number[]} An array of indices representing the patterns that successfully matched the input.
539
- */
540
- match(input: string | number[] | Uint8Array): number[];
541
- }
542
- export function re(stringsOrFlags: any, ...values: any[]): RE2JS | ((strings: any, ...tagValues: any[]) => RE2JS);
543
- /**
544
- * Abstract the representations of input text supplied to Matcher.
545
- */
546
- declare class MatcherInputBase {
547
- static Encoding: any;
548
- getEncoding(): void;
549
- /**
550
- *
551
- * @returns {boolean}
552
- */
553
- isUTF8Encoding(): boolean;
554
- /**
555
- *
556
- * @returns {boolean}
557
- */
558
- isUTF16Encoding(): boolean;
559
- }
560
- /**
561
- * A Prog is a compiled regular expression program.
562
- */
563
- declare class Prog {
564
- inst: any[];
565
- start: number;
566
- numCap: number;
567
- lbStarts: any[];
568
- numLb: number;
569
- getInst(pc: any): any;
570
- numInst(): number;
571
- addInst(op: any): void;
572
- skipNop(pc: any): any;
573
- prefix(): (string | boolean)[];
574
- startCond(): number;
575
- patch(l: any, val: any): void;
576
- append(l1: any, l2: any): any;
577
- /**
578
- *
579
- * @returns {string}
580
- */
581
- toString(): string;
582
- }
583
- declare class DFA {
584
- static MAX_CACHE_CLEARS: number;
585
- constructor(prog: any);
586
- prog: any;
587
- stateCache: Map<any, any>;
588
- stateCount: number;
589
- startState: any;
590
- stateLimit: number;
591
- cacheClears: number;
592
- failed: boolean;
593
- clock: number;
594
- computeClosure(pcs: any): {
595
- pcs: Int32Array<ArrayBuffer>;
596
- isMatch: boolean;
597
- matchIDs: any[];
598
- } | null;
599
- getState(pcs: any): any;
600
- evictCache(): void;
601
- step(state: any, charCode: any, anchor: any): any;
602
- match(input: any, pos: any, anchor: any): boolean | null;
603
- matchSet(input: any, pos: any, anchor: any): any[] | null;
604
- }
605
- export {};
606
- //# sourceMappingURL=index.esm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.d.ts","sourceRoot":"","sources":["index.esm.js"],"names":[],"mappings":"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"}