chrono-node 2.7.1 → 2.7.3

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.
Files changed (76) hide show
  1. package/dist/cjs/locales/ru/parsers/RUTimeUnitWithinFormatParser.d.ts +0 -3
  2. package/dist/cjs/locales/ru/parsers/RUTimeUnitWithinFormatParser.js +3 -6
  3. package/dist/cjs/locales/ru/parsers/RUTimeUnitWithinFormatParser.js.map +1 -1
  4. package/dist/cjs/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.d.ts +11 -0
  5. package/dist/cjs/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.js +24 -0
  6. package/dist/cjs/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.js.map +1 -0
  7. package/dist/cjs/locales/uk/parsers/UKCasualDateParser.d.ts +3 -4
  8. package/dist/cjs/locales/uk/parsers/UKCasualDateParser.js +4 -9
  9. package/dist/cjs/locales/uk/parsers/UKCasualDateParser.js.map +1 -1
  10. package/dist/cjs/locales/uk/parsers/UKCasualTimeParser.d.ts +3 -4
  11. package/dist/cjs/locales/uk/parsers/UKCasualTimeParser.js +4 -10
  12. package/dist/cjs/locales/uk/parsers/UKCasualTimeParser.js.map +1 -1
  13. package/dist/cjs/locales/uk/parsers/UKMonthNameLittleEndianParser.d.ts +3 -4
  14. package/dist/cjs/locales/uk/parsers/UKMonthNameLittleEndianParser.js +14 -19
  15. package/dist/cjs/locales/uk/parsers/UKMonthNameLittleEndianParser.js.map +1 -1
  16. package/dist/cjs/locales/uk/parsers/UKMonthNameParser.d.ts +3 -4
  17. package/dist/cjs/locales/uk/parsers/UKMonthNameParser.js +10 -14
  18. package/dist/cjs/locales/uk/parsers/UKMonthNameParser.js.map +1 -1
  19. package/dist/cjs/locales/uk/parsers/UKRelativeDateFormatParser.d.ts +3 -4
  20. package/dist/cjs/locales/uk/parsers/UKRelativeDateFormatParser.js +5 -8
  21. package/dist/cjs/locales/uk/parsers/UKRelativeDateFormatParser.js.map +1 -1
  22. package/dist/cjs/locales/uk/parsers/UKTimeUnitAgoFormatParser.d.ts +3 -4
  23. package/dist/cjs/locales/uk/parsers/UKTimeUnitAgoFormatParser.js +4 -8
  24. package/dist/cjs/locales/uk/parsers/UKTimeUnitAgoFormatParser.js.map +1 -1
  25. package/dist/cjs/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.d.ts +3 -4
  26. package/dist/cjs/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js +4 -8
  27. package/dist/cjs/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js.map +1 -1
  28. package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +3 -3
  29. package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -1
  30. package/dist/cjs/locales/uk/parsers/UKWeekdayParser.d.ts +3 -4
  31. package/dist/cjs/locales/uk/parsers/UKWeekdayParser.js +10 -15
  32. package/dist/cjs/locales/uk/parsers/UKWeekdayParser.js.map +1 -1
  33. package/dist/esm/locales/ru/parsers/RUTimeUnitWithinFormatParser.d.ts +0 -3
  34. package/dist/esm/locales/ru/parsers/RUTimeUnitWithinFormatParser.js +3 -6
  35. package/dist/esm/locales/ru/parsers/RUTimeUnitWithinFormatParser.js.map +1 -1
  36. package/dist/esm/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.d.ts +11 -0
  37. package/dist/esm/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.js +19 -0
  38. package/dist/esm/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.js.map +1 -0
  39. package/dist/esm/locales/uk/parsers/UKCasualDateParser.d.ts +3 -4
  40. package/dist/esm/locales/uk/parsers/UKCasualDateParser.js +4 -9
  41. package/dist/esm/locales/uk/parsers/UKCasualDateParser.js.map +1 -1
  42. package/dist/esm/locales/uk/parsers/UKCasualTimeParser.d.ts +3 -4
  43. package/dist/esm/locales/uk/parsers/UKCasualTimeParser.js +4 -10
  44. package/dist/esm/locales/uk/parsers/UKCasualTimeParser.js.map +1 -1
  45. package/dist/esm/locales/uk/parsers/UKMonthNameLittleEndianParser.d.ts +3 -4
  46. package/dist/esm/locales/uk/parsers/UKMonthNameLittleEndianParser.js +15 -20
  47. package/dist/esm/locales/uk/parsers/UKMonthNameLittleEndianParser.js.map +1 -1
  48. package/dist/esm/locales/uk/parsers/UKMonthNameParser.d.ts +3 -4
  49. package/dist/esm/locales/uk/parsers/UKMonthNameParser.js +11 -15
  50. package/dist/esm/locales/uk/parsers/UKMonthNameParser.js.map +1 -1
  51. package/dist/esm/locales/uk/parsers/UKRelativeDateFormatParser.d.ts +3 -4
  52. package/dist/esm/locales/uk/parsers/UKRelativeDateFormatParser.js +6 -9
  53. package/dist/esm/locales/uk/parsers/UKRelativeDateFormatParser.js.map +1 -1
  54. package/dist/esm/locales/uk/parsers/UKTimeUnitAgoFormatParser.d.ts +3 -4
  55. package/dist/esm/locales/uk/parsers/UKTimeUnitAgoFormatParser.js +5 -9
  56. package/dist/esm/locales/uk/parsers/UKTimeUnitAgoFormatParser.js.map +1 -1
  57. package/dist/esm/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.d.ts +3 -4
  58. package/dist/esm/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js +5 -9
  59. package/dist/esm/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js.map +1 -1
  60. package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +3 -3
  61. package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -1
  62. package/dist/esm/locales/uk/parsers/UKWeekdayParser.d.ts +3 -4
  63. package/dist/esm/locales/uk/parsers/UKWeekdayParser.js +11 -16
  64. package/dist/esm/locales/uk/parsers/UKWeekdayParser.js.map +1 -1
  65. package/package.json +1 -1
  66. package/src/locales/ru/parsers/RUTimeUnitWithinFormatParser.ts +3 -10
  67. package/src/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.ts +27 -0
  68. package/src/locales/uk/parsers/UKCasualDateParser.ts +4 -14
  69. package/src/locales/uk/parsers/UKCasualTimeParser.ts +4 -14
  70. package/src/locales/uk/parsers/UKMonthNameLittleEndianParser.ts +17 -26
  71. package/src/locales/uk/parsers/UKMonthNameParser.ts +13 -20
  72. package/src/locales/uk/parsers/UKRelativeDateFormatParser.ts +8 -16
  73. package/src/locales/uk/parsers/UKTimeUnitAgoFormatParser.ts +5 -11
  74. package/src/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.ts +4 -13
  75. package/src/locales/uk/parsers/UKTimeUnitWithinFormatParser.ts +3 -7
  76. package/src/locales/uk/parsers/UKWeekdayParser.ts +13 -21
@@ -1,22 +1,12 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
3
2
  import * as references from "../../../common/casualReferences";
4
3
  import { assignSimilarDate } from "../../../utils/dayjs";
5
4
  import dayjs from "dayjs";
6
- import { REGEX_PARTS } from "../constants";
5
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
7
6
 
8
- const PATTERN = new RegExp(
9
- `(зараз|минулого\\s*вечора|минулої\\s*ночі|наступної\\s*ночі|сьогодні\\s*вночі|цієї\\s*ночі|цього ранку|вранці|ранку|зранку|опівдні|ввечері|вечора|опівночі|вночі)` +
10
- `${REGEX_PARTS.rightBoundary}`,
11
- REGEX_PARTS.flags
12
- );
13
- export default class UKCasualTimeParser extends AbstractParserWithWordBoundaryChecking {
14
- patternLeftBoundary(): string {
15
- return REGEX_PARTS.leftBoundary;
16
- }
17
-
18
- innerPattern() {
19
- return PATTERN;
7
+ export default class UKCasualTimeParser extends AbstractParserWithLeftRightBoundaryChecking {
8
+ innerPatternString(context: ParsingContext): string {
9
+ return `(зараз|минулого\\s*вечора|минулої\\s*ночі|наступної\\s*ночі|сьогодні\\s*вночі|цієї\\s*ночі|цього ранку|вранці|ранку|зранку|опівдні|ввечері|вечора|опівночі|вночі)`;
20
10
  }
21
11
 
22
12
  innerExtract(context: ParsingContext, match: RegExpMatchArray) {
@@ -1,41 +1,32 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
2
  import { ParsingResult } from "../../../results";
3
3
  import { findYearClosestToRef } from "../../../calculation/years";
4
- import { MONTH_DICTIONARY, REGEX_PARTS } from "../constants";
4
+ import { MONTH_DICTIONARY } from "../constants";
5
5
  import { YEAR_PATTERN, parseYearPattern } from "../constants";
6
6
  import { ORDINAL_NUMBER_PATTERN, parseOrdinalNumberPattern } from "../constants";
7
7
  import { matchAnyPattern } from "../../../utils/pattern";
8
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
9
-
10
- // prettier-ignore
11
- const PATTERN = new RegExp(
12
- `(?:з|із)?\\s*(${ORDINAL_NUMBER_PATTERN})` +
13
- `(?:` +
14
- `\\s{0,3}(?:по|-|–|до)?\\s{0,3}` +
15
- `(${ORDINAL_NUMBER_PATTERN})` +
16
- `)?` +
17
- `(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})` +
18
- `(${matchAnyPattern(MONTH_DICTIONARY)})` +
19
- `(?:` +
20
- `(?:-|\\/|,?\\s{0,3})` +
21
- `(${YEAR_PATTERN}(?![^\\s]\\d))` +
22
- `)?` +
23
- `${REGEX_PARTS.rightBoundary}`,
24
- REGEX_PARTS.flags
25
- );
8
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
26
9
 
27
10
  const DATE_GROUP = 1;
28
11
  const DATE_TO_GROUP = 2;
29
12
  const MONTH_NAME_GROUP = 3;
30
13
  const YEAR_GROUP = 4;
31
14
 
32
- export default class UKMonthNameLittleEndianParser extends AbstractParserWithWordBoundaryChecking {
33
- patternLeftBoundary(): string {
34
- return REGEX_PARTS.leftBoundary;
35
- }
36
-
37
- innerPattern(): RegExp {
38
- return PATTERN;
15
+ export default class UKMonthNameLittleEndianParser extends AbstractParserWithLeftRightBoundaryChecking {
16
+ innerPatternString(context: ParsingContext): string {
17
+ return (
18
+ `(?:з|із)?\\s*(${ORDINAL_NUMBER_PATTERN})` +
19
+ `(?:` +
20
+ `\\s{0,3}(?:по|-|–|до)?\\s{0,3}` +
21
+ `(${ORDINAL_NUMBER_PATTERN})` +
22
+ `)?` +
23
+ `(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})` +
24
+ `(${matchAnyPattern(MONTH_DICTIONARY)})` +
25
+ `(?:` +
26
+ `(?:-|\\/|,?\\s{0,3})` +
27
+ `(${YEAR_PATTERN}(?![^\\s]\\d))` +
28
+ `)?`
29
+ );
39
30
  }
40
31
 
41
32
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingResult {
@@ -1,20 +1,9 @@
1
- import { FULL_MONTH_NAME_DICTIONARY, MONTH_DICTIONARY, REGEX_PARTS } from "../constants";
1
+ import { FULL_MONTH_NAME_DICTIONARY, MONTH_DICTIONARY } from "../constants";
2
2
  import { ParsingContext } from "../../../chrono";
3
3
  import { findYearClosestToRef } from "../../../calculation/years";
4
4
  import { matchAnyPattern } from "../../../utils/pattern";
5
5
  import { YEAR_PATTERN, parseYearPattern } from "../constants";
6
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
7
-
8
- const PATTERN = new RegExp(
9
- `((?:в|у)\\s*)?` +
10
- `(${matchAnyPattern(MONTH_DICTIONARY)})` +
11
- `\\s*` +
12
- `(?:` +
13
- `[,-]?\\s*(${YEAR_PATTERN})?` +
14
- `)?` +
15
- `(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`,
16
- REGEX_PARTS.flags
17
- );
6
+ import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
18
7
 
19
8
  const MONTH_NAME_GROUP = 2;
20
9
  const YEAR_GROUP = 3;
@@ -25,13 +14,17 @@ const YEAR_GROUP = 3;
25
14
  * - Січень 2012
26
15
  * - Січень
27
16
  */
28
- export default class UkMonthNameParser extends AbstractParserWithWordBoundaryChecking {
29
- patternLeftBoundary(): string {
30
- return REGEX_PARTS.leftBoundary;
31
- }
32
-
33
- innerPattern(): RegExp {
34
- return PATTERN;
17
+ export default class UkMonthNameParser extends AbstractParserWithLeftBoundaryChecking {
18
+ innerPatternString(context: ParsingContext): string {
19
+ return (
20
+ `((?:в|у)\\s*)?` +
21
+ `(${matchAnyPattern(MONTH_DICTIONARY)})` +
22
+ `\\s*` +
23
+ `(?:` +
24
+ `[,-]?\\s*(${YEAR_PATTERN})?` +
25
+ `)?` +
26
+ `(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`
27
+ );
35
28
  }
36
29
 
37
30
  innerExtract(context: ParsingContext, match: RegExpMatchArray) {
@@ -1,27 +1,19 @@
1
- import { REGEX_PARTS, TIME_UNIT_DICTIONARY } from "../constants";
1
+ import { TIME_UNIT_DICTIONARY } from "../constants";
2
2
  import { ParsingContext } from "../../../chrono";
3
3
  import { ParsingComponents } from "../../../results";
4
4
  import dayjs from "dayjs";
5
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
6
5
  import { matchAnyPattern } from "../../../utils/pattern";
7
-
8
- const PATTERN = new RegExp(
9
- `(в минулому|у минулому|на минулому|минулого|на наступному|в наступному|у наступному|наступного|на цьому|в цьому|у цьому|цього)\\s*(${matchAnyPattern(
10
- TIME_UNIT_DICTIONARY
11
- )})(?=\\s*)${REGEX_PARTS.rightBoundary}`,
12
- REGEX_PARTS.flags
13
- );
6
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
14
7
 
15
8
  const MODIFIER_WORD_GROUP = 1;
16
9
  const RELATIVE_WORD_GROUP = 2;
17
10
 
18
- export default class UKRelativeDateFormatParser extends AbstractParserWithWordBoundaryChecking {
19
- patternLeftBoundary(): string {
20
- return REGEX_PARTS.leftBoundary;
21
- }
22
-
23
- innerPattern(): RegExp {
24
- return PATTERN;
11
+ export default class UKRelativeDateFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
12
+ innerPatternString(context: ParsingContext): string {
13
+ return (
14
+ `(в минулому|у минулому|на минулому|минулого|на наступному|в наступному|у наступному|наступного|на цьому|в цьому|у цьому|цього)\\s*` +
15
+ `(${matchAnyPattern(TIME_UNIT_DICTIONARY)})(?=\\s*)`
16
+ );
25
17
  }
26
18
 
27
19
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {
@@ -1,18 +1,12 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
- import { parseTimeUnits, REGEX_PARTS, TIME_UNITS_PATTERN } from "../constants";
2
+ import { parseTimeUnits, TIME_UNITS_PATTERN } from "../constants";
3
3
  import { ParsingComponents } from "../../../results";
4
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
5
4
  import { reverseTimeUnits } from "../../../utils/timeunits";
5
+ import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
6
6
 
7
- const PATTERN = new RegExp(`(${TIME_UNITS_PATTERN})\\s{0,5}тому(?=(?:\\W|$))`, REGEX_PARTS.flags);
8
-
9
- export default class UKTimeUnitAgoFormatParser extends AbstractParserWithWordBoundaryChecking {
10
- patternLeftBoundary(): string {
11
- return REGEX_PARTS.leftBoundary;
12
- }
13
-
14
- innerPattern(): RegExp {
15
- return PATTERN;
7
+ export default class UKTimeUnitAgoFormatParser extends AbstractParserWithLeftBoundaryChecking {
8
+ innerPatternString(context: ParsingContext): string {
9
+ return `(${TIME_UNITS_PATTERN})\\s{0,5}тому(?=(?:\\W|$))`;
16
10
  }
17
11
 
18
12
  innerExtract(context: ParsingContext, match: RegExpMatchArray) {
@@ -1,21 +1,12 @@
1
1
  import { TIME_UNITS_PATTERN, parseTimeUnits, REGEX_PARTS } from "../constants";
2
2
  import { ParsingContext } from "../../../chrono";
3
3
  import { ParsingComponents } from "../../../results";
4
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
5
4
  import { reverseTimeUnits } from "../../../utils/timeunits";
5
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
6
6
 
7
- const PATTERN = new RegExp(
8
- `(ці|останні|минулі|майбутні|наступні|після|через|\\+|-)\\s*(${TIME_UNITS_PATTERN})${REGEX_PARTS.rightBoundary}`,
9
- REGEX_PARTS.flags
10
- );
11
-
12
- export default class UKTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundaryChecking {
13
- patternLeftBoundary(): string {
14
- return REGEX_PARTS.leftBoundary;
15
- }
16
-
17
- innerPattern(): RegExp {
18
- return PATTERN;
7
+ export default class UKTimeUnitCasualRelativeFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
8
+ innerPatternString(context: ParsingContext): string {
9
+ return `(ці|останні|минулі|майбутні|наступні|після|через|\\+|-)\\s*(${TIME_UNITS_PATTERN})`;
19
10
  }
20
11
 
21
12
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {
@@ -4,12 +4,6 @@ import { ParsingComponents } from "../../../results";
4
4
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
5
5
 
6
6
  const PATTERN = `(?:(?:приблизно|орієнтовно)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})${REGEX_PARTS.rightBoundary}`;
7
- const PATTERN_WITH_PREFIX = new RegExp(
8
- `(?:протягом|на протязі|протягом|упродовж|впродовж)\\s*${PATTERN}`,
9
- REGEX_PARTS.flags
10
- );
11
-
12
- const PATTERN_WITHOUT_PREFIX = new RegExp(PATTERN, "i");
13
7
 
14
8
  export default class UKTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
15
9
  patternLeftBoundary(): string {
@@ -17,7 +11,9 @@ export default class UKTimeUnitWithinFormatParser extends AbstractParserWithWord
17
11
  }
18
12
 
19
13
  innerPattern(context: ParsingContext): RegExp {
20
- return context.option.forwardDate ? PATTERN_WITHOUT_PREFIX : PATTERN_WITH_PREFIX;
14
+ return context.option.forwardDate
15
+ ? new RegExp(PATTERN, "i")
16
+ : new RegExp(`(?:протягом|на протязі|протягом|упродовж|впродовж)\\s*${PATTERN}`, REGEX_PARTS.flags);
21
17
  }
22
18
 
23
19
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {
@@ -1,34 +1,26 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
2
  import { ParsingComponents } from "../../../results";
3
3
  // TODO: ADD REGEX_PARTS below
4
- import { REGEX_PARTS, WEEKDAY_DICTIONARY } from "../constants";
4
+ import { WEEKDAY_DICTIONARY } from "../constants";
5
5
  import { matchAnyPattern } from "../../../utils/pattern";
6
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
7
6
  import { createParsingComponentsAtWeekday } from "../../../common/calculation/weekdays";
8
-
9
- const PATTERN = new RegExp(
10
- `(?:(?:,|\\(|()\\s*)?` +
11
- `(?:в\\s*?)?` +
12
- `(?:у\\s*?)?` +
13
- `(?:(цей|минулого|минулий|попередній|попереднього|наступного|наступний|наступному)\\s*)?` +
14
- `(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
15
- `(?:\\s*(?:,|\\)|)))?` +
16
- `(?:\\s*(на|у|в)\\s*(цьому|минулому|наступному)\\s*тижні)?` +
17
- `${REGEX_PARTS.rightBoundary}`,
18
- REGEX_PARTS.flags
19
- );
7
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
20
8
 
21
9
  const PREFIX_GROUP = 1;
22
10
  const WEEKDAY_GROUP = 2;
23
11
  const POSTFIX_GROUP = 3;
24
12
 
25
- export default class UKWeekdayParser extends AbstractParserWithWordBoundaryChecking {
26
- innerPattern(): RegExp {
27
- return PATTERN;
28
- }
29
-
30
- patternLeftBoundary(): string {
31
- return REGEX_PARTS.leftBoundary;
13
+ export default class UKWeekdayParser extends AbstractParserWithLeftRightBoundaryChecking {
14
+ innerPatternString(context: ParsingContext): string {
15
+ return (
16
+ `(?:(?:,|\\(|()\\s*)?` +
17
+ `(?:в\\s*?)?` +
18
+ `(?:у\\s*?)?` +
19
+ `(?:(цей|минулого|минулий|попередній|попереднього|наступного|наступний|наступному)\\s*)?` +
20
+ `(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
21
+ `(?:\\s*(?:,|\\)|)))?` +
22
+ `(?:\\s*(на|у|в)\\s*(цьому|минулому|наступному)\\s*тижні)?`
23
+ );
32
24
  }
33
25
 
34
26
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {