chrono-node 2.7.0 → 2.7.2

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 (82) hide show
  1. package/dist/cjs/common/parsers/AbstractParserWithWordBoundary.d.ts +2 -1
  2. package/dist/cjs/common/parsers/AbstractParserWithWordBoundary.js +9 -5
  3. package/dist/cjs/common/parsers/AbstractParserWithWordBoundary.js.map +1 -1
  4. package/dist/cjs/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.d.ts +11 -0
  5. package/dist/cjs/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.js +24 -0
  6. package/dist/cjs/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.js.map +1 -0
  7. package/dist/cjs/locales/ru/parsers/RUCasualDateParser.d.ts +3 -4
  8. package/dist/cjs/locales/ru/parsers/RUCasualDateParser.js +4 -9
  9. package/dist/cjs/locales/ru/parsers/RUCasualDateParser.js.map +1 -1
  10. package/dist/cjs/locales/ru/parsers/RUCasualTimeParser.d.ts +3 -4
  11. package/dist/cjs/locales/ru/parsers/RUCasualTimeParser.js +4 -10
  12. package/dist/cjs/locales/ru/parsers/RUCasualTimeParser.js.map +1 -1
  13. package/dist/cjs/locales/ru/parsers/RUMonthNameLittleEndianParser.d.ts +3 -4
  14. package/dist/cjs/locales/ru/parsers/RUMonthNameLittleEndianParser.js +14 -19
  15. package/dist/cjs/locales/ru/parsers/RUMonthNameLittleEndianParser.js.map +1 -1
  16. package/dist/cjs/locales/ru/parsers/RUMonthNameParser.d.ts +3 -4
  17. package/dist/cjs/locales/ru/parsers/RUMonthNameParser.js +10 -14
  18. package/dist/cjs/locales/ru/parsers/RUMonthNameParser.js.map +1 -1
  19. package/dist/cjs/locales/ru/parsers/RURelativeDateFormatParser.d.ts +3 -4
  20. package/dist/cjs/locales/ru/parsers/RURelativeDateFormatParser.js +4 -8
  21. package/dist/cjs/locales/ru/parsers/RURelativeDateFormatParser.js.map +1 -1
  22. package/dist/cjs/locales/ru/parsers/RUTimeUnitAgoFormatParser.d.ts +3 -4
  23. package/dist/cjs/locales/ru/parsers/RUTimeUnitAgoFormatParser.js +4 -8
  24. package/dist/cjs/locales/ru/parsers/RUTimeUnitAgoFormatParser.js.map +1 -1
  25. package/dist/cjs/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.d.ts +3 -4
  26. package/dist/cjs/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js +4 -8
  27. package/dist/cjs/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js.map +1 -1
  28. package/dist/cjs/locales/ru/parsers/RUTimeUnitWithinFormatParser.js +3 -3
  29. package/dist/cjs/locales/ru/parsers/RUTimeUnitWithinFormatParser.js.map +1 -1
  30. package/dist/cjs/locales/ru/parsers/RUWeekdayParser.d.ts +3 -4
  31. package/dist/cjs/locales/ru/parsers/RUWeekdayParser.js +9 -14
  32. package/dist/cjs/locales/ru/parsers/RUWeekdayParser.js.map +1 -1
  33. package/dist/esm/common/parsers/AbstractParserWithWordBoundary.d.ts +2 -1
  34. package/dist/esm/common/parsers/AbstractParserWithWordBoundary.js +9 -5
  35. package/dist/esm/common/parsers/AbstractParserWithWordBoundary.js.map +1 -1
  36. package/dist/esm/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.d.ts +11 -0
  37. package/dist/esm/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.js +19 -0
  38. package/dist/esm/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.js.map +1 -0
  39. package/dist/esm/locales/ru/parsers/RUCasualDateParser.d.ts +3 -4
  40. package/dist/esm/locales/ru/parsers/RUCasualDateParser.js +4 -9
  41. package/dist/esm/locales/ru/parsers/RUCasualDateParser.js.map +1 -1
  42. package/dist/esm/locales/ru/parsers/RUCasualTimeParser.d.ts +3 -4
  43. package/dist/esm/locales/ru/parsers/RUCasualTimeParser.js +4 -10
  44. package/dist/esm/locales/ru/parsers/RUCasualTimeParser.js.map +1 -1
  45. package/dist/esm/locales/ru/parsers/RUMonthNameLittleEndianParser.d.ts +3 -4
  46. package/dist/esm/locales/ru/parsers/RUMonthNameLittleEndianParser.js +15 -20
  47. package/dist/esm/locales/ru/parsers/RUMonthNameLittleEndianParser.js.map +1 -1
  48. package/dist/esm/locales/ru/parsers/RUMonthNameParser.d.ts +3 -4
  49. package/dist/esm/locales/ru/parsers/RUMonthNameParser.js +11 -15
  50. package/dist/esm/locales/ru/parsers/RUMonthNameParser.js.map +1 -1
  51. package/dist/esm/locales/ru/parsers/RURelativeDateFormatParser.d.ts +3 -4
  52. package/dist/esm/locales/ru/parsers/RURelativeDateFormatParser.js +5 -9
  53. package/dist/esm/locales/ru/parsers/RURelativeDateFormatParser.js.map +1 -1
  54. package/dist/esm/locales/ru/parsers/RUTimeUnitAgoFormatParser.d.ts +3 -4
  55. package/dist/esm/locales/ru/parsers/RUTimeUnitAgoFormatParser.js +5 -9
  56. package/dist/esm/locales/ru/parsers/RUTimeUnitAgoFormatParser.js.map +1 -1
  57. package/dist/esm/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.d.ts +3 -4
  58. package/dist/esm/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js +5 -9
  59. package/dist/esm/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js.map +1 -1
  60. package/dist/esm/locales/ru/parsers/RUTimeUnitWithinFormatParser.js +3 -3
  61. package/dist/esm/locales/ru/parsers/RUTimeUnitWithinFormatParser.js.map +1 -1
  62. package/dist/esm/locales/ru/parsers/RUWeekdayParser.d.ts +3 -4
  63. package/dist/esm/locales/ru/parsers/RUWeekdayParser.js +10 -15
  64. package/dist/esm/locales/ru/parsers/RUWeekdayParser.js.map +1 -1
  65. package/package.json +1 -1
  66. package/src/common/parsers/AbstractParserWithWordBoundary.ts +17 -9
  67. package/src/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.ts +25 -0
  68. package/src/locales/ru/parsers/RUCasualDateParser.ts +4 -14
  69. package/src/locales/ru/parsers/RUCasualTimeParser.ts +4 -14
  70. package/src/locales/ru/parsers/RUMonthNameLittleEndianParser.ts +16 -26
  71. package/src/locales/ru/parsers/RUMonthNameParser.ts +13 -20
  72. package/src/locales/ru/parsers/RURelativeDateFormatParser.ts +6 -14
  73. package/src/locales/ru/parsers/RUTimeUnitAgoFormatParser.ts +5 -11
  74. package/src/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.ts +4 -13
  75. package/src/locales/ru/parsers/RUTimeUnitWithinFormatParser.ts +3 -4
  76. package/src/locales/ru/parsers/RUWeekdayParser.ts +12 -20
  77. package/test/en/en.test.ts +3 -3
  78. package/test/result.test.ts +29 -0
  79. package/test/ru/ru_relative.test.ts +44 -11
  80. package/test/ru/ru_time_units_casual_relative.test.ts +96 -30
  81. package/test/uk/uk_relative.test.ts +44 -11
  82. package/test/uk/uk_time_units_casual_relative.test.ts +40 -10
@@ -6,9 +6,10 @@ export declare abstract class AbstractParserWithWordBoundaryChecking implements
6
6
  abstract innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | ParsingResult | {
7
7
  [c in Component]?: number;
8
8
  } | null;
9
+ innerPatternHasChange(context: ParsingContext, currentInnerPattern: RegExp): boolean;
10
+ patternLeftBoundary(): string;
9
11
  private cachedInnerPattern?;
10
12
  private cachedPattern?;
11
- patternLeftBoundary(): string;
12
13
  pattern(context: ParsingContext): RegExp;
13
14
  extract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | ParsingResult | {
14
15
  day?: number;
@@ -6,16 +6,20 @@ class AbstractParserWithWordBoundaryChecking {
6
6
  this.cachedInnerPattern = null;
7
7
  this.cachedPattern = null;
8
8
  }
9
+ innerPatternHasChange(context, currentInnerPattern) {
10
+ return this.innerPattern(context) !== currentInnerPattern;
11
+ }
9
12
  patternLeftBoundary() {
10
13
  return `(\\W|^)`;
11
14
  }
12
15
  pattern(context) {
13
- const innerPattern = this.innerPattern(context);
14
- if (innerPattern == this.cachedInnerPattern) {
15
- return this.cachedPattern;
16
+ if (this.cachedInnerPattern) {
17
+ if (!this.innerPatternHasChange(context, this.cachedInnerPattern)) {
18
+ return this.cachedPattern;
19
+ }
16
20
  }
17
- this.cachedPattern = new RegExp(`${this.patternLeftBoundary()}${innerPattern.source}`, innerPattern.flags);
18
- this.cachedInnerPattern = innerPattern;
21
+ this.cachedInnerPattern = this.innerPattern(context);
22
+ this.cachedPattern = new RegExp(`${this.patternLeftBoundary()}${this.cachedInnerPattern.source}`, this.cachedInnerPattern.flags);
19
23
  return this.cachedPattern;
20
24
  }
21
25
  extract(context, match) {
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractParserWithWordBoundary.js","sourceRoot":"","sources":["../../../../src/common/parsers/AbstractParserWithWordBoundary.ts"],"names":[],"mappings":";;;AAOA,MAAsB,sCAAsC;IAA5D;QAOY,uBAAkB,GAAY,IAAI,CAAC;QACnC,kBAAa,GAAY,IAAI,CAAC;IA2B1C,CAAC;IAzBG,mBAAmB;QACf,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,OAAuB;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,YAAY,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzC,OAAO,IAAI,CAAC,aAAa,CAAC;SAC7B;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3G,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,OAAuB,EAAE,KAAuB;;QACpD,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;QAC9B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;CACJ;AAnCD,wFAmCC"}
1
+ {"version":3,"file":"AbstractParserWithWordBoundary.js","sourceRoot":"","sources":["../../../../src/common/parsers/AbstractParserWithWordBoundary.ts"],"names":[],"mappings":";;;AAOA,MAAsB,sCAAsC;IAA5D;QAgBY,uBAAkB,GAAY,IAAI,CAAC;QACnC,kBAAa,GAAY,IAAI,CAAC;IA0B1C,CAAC;IAnCG,qBAAqB,CAAC,OAAuB,EAAE,mBAA2B;QACtE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,mBAAmB,CAAC;IAC9D,CAAC;IAED,mBAAmB;QACf,OAAO,SAAS,CAAC;IACrB,CAAC;IAKD,OAAO,CAAC,OAAuB;QAC3B,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBAC/D,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;SACJ;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAC3B,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAChE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAChC,CAAC;QACF,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,OAAuB,EAAE,KAAuB;;QACpD,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;QAC9B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;CACJ;AA3CD,wFA2CC"}
@@ -0,0 +1,11 @@
1
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
2
+ import { ParsingContext } from "../../../chrono";
3
+ export declare abstract class AbstractParserWithLeftBoundaryChecking extends AbstractParserWithWordBoundaryChecking {
4
+ abstract innerPatternString(context: ParsingContext): string;
5
+ patternLeftBoundary(): string;
6
+ innerPattern(context: ParsingContext): RegExp;
7
+ innerPatternHasChange(context: ParsingContext, currentInnerPattern: RegExp): boolean;
8
+ }
9
+ export declare abstract class AbstractParserWithLeftRightBoundaryChecking extends AbstractParserWithLeftBoundaryChecking {
10
+ innerPattern(context: ParsingContext): RegExp;
11
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractParserWithLeftRightBoundaryChecking = exports.AbstractParserWithLeftBoundaryChecking = void 0;
4
+ const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
5
+ const constants_1 = require("../constants");
6
+ class AbstractParserWithLeftBoundaryChecking extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
7
+ patternLeftBoundary() {
8
+ return constants_1.REGEX_PARTS.leftBoundary;
9
+ }
10
+ innerPattern(context) {
11
+ return new RegExp(this.innerPatternString(context), constants_1.REGEX_PARTS.flags);
12
+ }
13
+ innerPatternHasChange(context, currentInnerPattern) {
14
+ return false;
15
+ }
16
+ }
17
+ exports.AbstractParserWithLeftBoundaryChecking = AbstractParserWithLeftBoundaryChecking;
18
+ class AbstractParserWithLeftRightBoundaryChecking extends AbstractParserWithLeftBoundaryChecking {
19
+ innerPattern(context) {
20
+ return new RegExp(`${this.innerPatternString(context)}${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags);
21
+ }
22
+ }
23
+ exports.AbstractParserWithLeftRightBoundaryChecking = AbstractParserWithLeftRightBoundaryChecking;
24
+ //# sourceMappingURL=AbstractParserWithWordBoundaryChecking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractParserWithWordBoundaryChecking.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/AbstractParserWithWordBoundaryChecking.ts"],"names":[],"mappings":";;;AAAA,2GAAgH;AAChH,4CAA2C;AAG3C,MAAsB,sCAAuC,SAAQ,uEAAsC;IAGvG,mBAAmB;QACf,OAAO,uBAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,uBAAW,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED,qBAAqB,CAAC,OAAuB,EAAE,mBAA2B;QACtE,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAdD,wFAcC;AAED,MAAsB,2CAA4C,SAAQ,sCAAsC;IAC5G,YAAY,CAAC,OAAuB;QAChC,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,uBAAW,CAAC,aAAa,EAAE,EAAE,uBAAW,CAAC,KAAK,CAAC,CAAC;IAC5G,CAAC;CACJ;AAJD,kGAIC"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
2
  import { ParsingComponents, ParsingResult } from "../../../results";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
4
- export default class RUCasualDateParser extends AbstractParserWithWordBoundaryChecking {
5
- patternLeftBoundary(): string;
6
- innerPattern(context: ParsingContext): RegExp;
3
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
4
+ export default class RUCasualDateParser extends AbstractParserWithLeftRightBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | ParsingResult;
8
7
  }
@@ -19,16 +19,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
19
  return result;
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
23
22
  const references = __importStar(require("../../../common/casualReferences"));
24
- const constants_1 = require("../constants");
25
- const PATTERN = new RegExp(`(?:с|со)?\\s*(сегодня|вчера|завтра|послезавтра|послепослезавтра|позапозавчера|позавчера)${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags);
26
- class RUCasualDateParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
27
- patternLeftBoundary() {
28
- return constants_1.REGEX_PARTS.leftBoundary;
29
- }
30
- innerPattern(context) {
31
- return PATTERN;
23
+ const AbstractParserWithWordBoundaryChecking_1 = require("./AbstractParserWithWordBoundaryChecking");
24
+ class RUCasualDateParser extends AbstractParserWithWordBoundaryChecking_1.AbstractParserWithLeftRightBoundaryChecking {
25
+ innerPatternString(context) {
26
+ return `(?:с|со)?\\s*(сегодня|вчера|завтра|послезавтра|послепослезавтра|позапозавчера|позавчера)`;
32
27
  }
33
28
  innerExtract(context, match) {
34
29
  const lowerText = match[1].toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"RUCasualDateParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUCasualDateParser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA,2GAAgH;AAChH,6EAA+D;AAC/D,4CAA2C;AAE3C,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,2FAA2F,uBAAW,CAAC,aAAa,EAAE,EACtH,uBAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAqB,kBAAmB,SAAQ,uEAAsC;IAClF,mBAAmB;QACf,OAAO,uBAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAEpD,QAAQ,SAAS,EAAE;YACf,KAAK,SAAS;gBACV,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE/C,KAAK,OAAO;gBACR,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEnD,KAAK,QAAQ;gBACT,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,KAAK,aAAa;gBACd,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExD,KAAK,kBAAkB;gBACnB,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExD,KAAK,WAAW;gBACZ,OAAO,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEzD,KAAK,eAAe;gBAChB,OAAO,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;SAC5D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAtCD,qCAsCC"}
1
+ {"version":3,"file":"RUCasualDateParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUCasualDateParser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA,6EAA+D;AAC/D,qGAAuG;AAEvG,MAAqB,kBAAmB,SAAQ,oFAA2C;IACvF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,0FAA0F,CAAC;IACtG,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAEpD,QAAQ,SAAS,EAAE;YACf,KAAK,SAAS;gBACV,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE/C,KAAK,OAAO;gBACR,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEnD,KAAK,QAAQ;gBACT,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,KAAK,aAAa;gBACd,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExD,KAAK,kBAAkB;gBACnB,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExD,KAAK,WAAW;gBACZ,OAAO,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEzD,KAAK,eAAe;gBAChB,OAAO,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;SAC5D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAlCD,qCAkCC"}
@@ -1,7 +1,6 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
3
- export default class RUCasualTimeParser extends AbstractParserWithWordBoundaryChecking {
4
- patternLeftBoundary(): string;
5
- innerPattern(): RegExp;
2
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
3
+ export default class RUCasualTimeParser extends AbstractParserWithLeftRightBoundaryChecking {
4
+ innerPatternString(context: ParsingContext): string;
6
5
  innerExtract(context: ParsingContext, match: RegExpMatchArray): import("..").ParsingComponents;
7
6
  }
@@ -22,19 +22,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
26
25
  const references = __importStar(require("../../../common/casualReferences"));
27
26
  const dayjs_1 = require("../../../utils/dayjs");
28
27
  const dayjs_2 = __importDefault(require("dayjs"));
29
- const constants_1 = require("../constants");
30
- const PATTERN = new RegExp(`(сейчас|прошлым\\s*вечером|прошлой\\s*ночью|следующей\\s*ночью|сегодня\\s*ночью|этой\\s*ночью|ночью|этим утром|утром|утра|в\\s*полдень|вечером|вечера|в\\s*полночь)` +
31
- `${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags);
32
- class RUCasualTimeParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
33
- patternLeftBoundary() {
34
- return constants_1.REGEX_PARTS.leftBoundary;
35
- }
36
- innerPattern() {
37
- return PATTERN;
28
+ const AbstractParserWithWordBoundaryChecking_1 = require("./AbstractParserWithWordBoundaryChecking");
29
+ class RUCasualTimeParser extends AbstractParserWithWordBoundaryChecking_1.AbstractParserWithLeftRightBoundaryChecking {
30
+ innerPatternString(context) {
31
+ return `(сейчас|прошлым\\s*вечером|прошлой\\s*ночью|следующей\\s*ночью|сегодня\\s*ночью|этой\\s*ночью|ночью|этим утром|утром|утра|в\\s*полдень|вечером|вечера|в\\s*полночь)`;
38
32
  }
39
33
  innerExtract(context, match) {
40
34
  let targetDate = dayjs_2.default(context.refDate);
@@ -1 +1 @@
1
- {"version":3,"file":"RUCasualTimeParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUCasualTimeParser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,2GAAgH;AAChH,6EAA+D;AAC/D,gDAAyD;AACzD,kDAA0B;AAC1B,4CAA2C;AAE3C,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,qKAAqK;IACjK,GAAG,uBAAW,CAAC,aAAa,EAAE,EAClC,uBAAW,CAAC,KAAK,CACpB,CAAC;AACF,MAAqB,kBAAmB,SAAQ,uEAAsC;IAClF,mBAAmB;QACf,OAAO,uBAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,IAAI,UAAU,GAAG,eAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAEpD,IAAI,SAAS,KAAK,QAAQ,EAAE;YACxB,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC5C;QACD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,EAAE;YACnD,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC3D,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YAChC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC7C;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;YACpC,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAClD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YACtC,OAAO,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACzD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YACtC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC9C,yBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACzC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC9B;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/D,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACjD;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AA3CD,qCA2CC"}
1
+ {"version":3,"file":"RUCasualTimeParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUCasualTimeParser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,6EAA+D;AAC/D,gDAAyD;AACzD,kDAA0B;AAC1B,qGAAuG;AAEvG,MAAqB,kBAAmB,SAAQ,oFAA2C;IACvF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,qKAAqK,CAAC;IACjL,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,IAAI,UAAU,GAAG,eAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAEpD,IAAI,SAAS,KAAK,QAAQ,EAAE;YACxB,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC5C;QACD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,EAAE;YACnD,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC3D,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YAChC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC7C;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;YACpC,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAClD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YACtC,OAAO,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACzD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YACtC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC9C,yBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACzC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC9B;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/D,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACjD;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAvCD,qCAuCC"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
2
  import { ParsingResult } from "../../../results";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
4
- export default class RUMonthNameLittleEndianParser extends AbstractParserWithWordBoundaryChecking {
5
- patternLeftBoundary(): string;
6
- innerPattern(): RegExp;
3
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
4
+ export default class RUMonthNameLittleEndianParser extends AbstractParserWithLeftRightBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingResult;
8
7
  }
@@ -5,29 +5,24 @@ const constants_1 = require("../constants");
5
5
  const constants_2 = require("../constants");
6
6
  const constants_3 = require("../constants");
7
7
  const pattern_1 = require("../../../utils/pattern");
8
- const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
9
- const PATTERN = new RegExp(`(?:с)?\\s*(${constants_3.ORDINAL_NUMBER_PATTERN})` +
10
- `(?:` +
11
- `\\s{0,3}(?:по|-|–|до)?\\s{0,3}` +
12
- `(${constants_3.ORDINAL_NUMBER_PATTERN})` +
13
- `)?` +
14
- `(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})` +
15
- `(${pattern_1.matchAnyPattern(constants_1.MONTH_DICTIONARY)})` +
16
- `(?:` +
17
- `(?:-|\\/|,?\\s{0,3})` +
18
- `(${constants_2.YEAR_PATTERN}(?![^\\s]\\d))` +
19
- `)?` +
20
- `${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags);
8
+ const AbstractParserWithWordBoundaryChecking_1 = require("./AbstractParserWithWordBoundaryChecking");
21
9
  const DATE_GROUP = 1;
22
10
  const DATE_TO_GROUP = 2;
23
11
  const MONTH_NAME_GROUP = 3;
24
12
  const YEAR_GROUP = 4;
25
- class RUMonthNameLittleEndianParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
26
- patternLeftBoundary() {
27
- return constants_1.REGEX_PARTS.leftBoundary;
28
- }
29
- innerPattern() {
30
- return PATTERN;
13
+ class RUMonthNameLittleEndianParser extends AbstractParserWithWordBoundaryChecking_1.AbstractParserWithLeftRightBoundaryChecking {
14
+ innerPatternString(context) {
15
+ return `(?:с)?\\s*(${constants_3.ORDINAL_NUMBER_PATTERN})` +
16
+ `(?:` +
17
+ `\\s{0,3}(?:по|-|–|до)?\\s{0,3}` +
18
+ `(${constants_3.ORDINAL_NUMBER_PATTERN})` +
19
+ `)?` +
20
+ `(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})` +
21
+ `(${pattern_1.matchAnyPattern(constants_1.MONTH_DICTIONARY)})` +
22
+ `(?:` +
23
+ `(?:-|\\/|,?\\s{0,3})` +
24
+ `(${constants_2.YEAR_PATTERN}(?![^\\s]\\d))` +
25
+ `)?`;
31
26
  }
32
27
  innerExtract(context, match) {
33
28
  const result = context.createParsingResult(match.index, match[0]);
@@ -1 +1 @@
1
- {"version":3,"file":"RUMonthNameLittleEndianParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUMonthNameLittleEndianParser.ts"],"names":[],"mappings":";;AAEA,sDAAkE;AAClE,4CAA6D;AAC7D,4CAAuD;AACvD,4CAAiF;AACjF,oDAAyD;AACzD,2GAAgH;AAGhH,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,cAAc,kCAAsB,GAAG;IACnC,KAAK;IACD,gCAAgC;IAChC,IAAI,kCAAsB,GAAG;IACjC,IAAI;IACJ,mCAAmC;IACnC,IAAI,yBAAe,CAAC,4BAAgB,CAAC,GAAG;IACxC,KAAK;IACD,sBAAsB;IACtB,IAAI,wBAAY,gBAAgB;IACpC,IAAI;IACR,GAAG,uBAAW,CAAC,aAAa,EAAE,EAC9B,uBAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAqB,6BAA8B,SAAQ,uEAAsC;IAC7F,mBAAmB;QACf,OAAO,uBAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,4BAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,qCAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,IAAI,GAAG,GAAG,EAAE,EAAE;YAEV,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACrD,OAAO,IAAI,CAAC;SACf;QAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEhC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACnB,MAAM,UAAU,GAAG,qBAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SAC3C;aAAM;YACH,MAAM,IAAI,GAAG,4BAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE;YACtB,MAAM,OAAO,GAAG,qCAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YAEhE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACrC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAxCD,gDAwCC"}
1
+ {"version":3,"file":"RUMonthNameLittleEndianParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUMonthNameLittleEndianParser.ts"],"names":[],"mappings":";;AAEA,sDAAkE;AAClE,4CAAgD;AAChD,4CAAuD;AACvD,4CAAiF;AACjF,oDAAyD;AACzD,qGAAuG;AAEvG,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAqB,6BAA8B,SAAQ,oFAA2C;IAClG,kBAAkB,CAAC,OAAuB;QAEtC,OAAO,cAAc,kCAAsB,GAAG;YAC1C,KAAK;YACD,gCAAgC;YAChC,IAAI,kCAAsB,GAAG;YACjC,IAAI;YACA,mCAAmC;YACnC,IAAI,yBAAe,CAAC,4BAAgB,CAAC,GAAG;YAC5C,KAAK;YACD,sBAAsB;YACtB,IAAI,wBAAY,gBAAgB;YACpC,IAAI,CAAC;IACb,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,4BAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,qCAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,IAAI,GAAG,GAAG,EAAE,EAAE;YAEV,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACrD,OAAO,IAAI,CAAC;SACf;QAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEhC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACnB,MAAM,UAAU,GAAG,qBAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SAC3C;aAAM;YACH,MAAM,IAAI,GAAG,4BAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE;YACtB,MAAM,OAAO,GAAG,qCAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YAEhE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACrC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA/CD,gDA+CC"}
@@ -1,7 +1,6 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
3
- export default class RUMonthNameParser extends AbstractParserWithWordBoundaryChecking {
4
- patternLeftBoundary(): string;
5
- innerPattern(): RegExp;
2
+ import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
3
+ export default class RUMonthNameParser extends AbstractParserWithLeftBoundaryChecking {
4
+ innerPatternString(context: ParsingContext): string;
6
5
  innerExtract(context: ParsingContext, match: RegExpMatchArray): import("..").ParsingResult;
7
6
  }
@@ -4,22 +4,18 @@ const constants_1 = require("../constants");
4
4
  const years_1 = require("../../../calculation/years");
5
5
  const pattern_1 = require("../../../utils/pattern");
6
6
  const constants_2 = require("../constants");
7
- const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
8
- const PATTERN = new RegExp(`((?:в)\\s*)?` +
9
- `(${pattern_1.matchAnyPattern(constants_1.MONTH_DICTIONARY)})` +
10
- `\\s*` +
11
- `(?:` +
12
- `[,-]?\\s*(${constants_2.YEAR_PATTERN})?` +
13
- `)?` +
14
- `(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`, constants_1.REGEX_PARTS.flags);
7
+ const AbstractParserWithWordBoundaryChecking_1 = require("./AbstractParserWithWordBoundaryChecking");
15
8
  const MONTH_NAME_GROUP = 2;
16
9
  const YEAR_GROUP = 3;
17
- class RUMonthNameParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
18
- patternLeftBoundary() {
19
- return constants_1.REGEX_PARTS.leftBoundary;
20
- }
21
- innerPattern() {
22
- return PATTERN;
10
+ class RUMonthNameParser extends AbstractParserWithWordBoundaryChecking_1.AbstractParserWithLeftBoundaryChecking {
11
+ innerPatternString(context) {
12
+ return (`((?:в)\\s*)?` +
13
+ `(${pattern_1.matchAnyPattern(constants_1.MONTH_DICTIONARY)})` +
14
+ `\\s*` +
15
+ `(?:` +
16
+ `[,-]?\\s*(${constants_2.YEAR_PATTERN})?` +
17
+ `)?` +
18
+ `(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`);
23
19
  }
24
20
  innerExtract(context, match) {
25
21
  const monthName = match[MONTH_NAME_GROUP].toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"RUMonthNameParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUMonthNameParser.ts"],"names":[],"mappings":";;AAAA,4CAAyF;AAEzF,sDAAkE;AAClE,oDAAyD;AACzD,4CAAuD;AACvD,2GAAgH;AAEhH,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,cAAc;IACV,IAAI,yBAAe,CAAC,4BAAgB,CAAC,GAAG;IACxC,MAAM;IACN,KAAK;IACL,aAAa,wBAAY,IAAI;IAC7B,IAAI;IACJ,kCAAkC,EACtC,uBAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AAQrB,MAAqB,iBAAkB,SAAQ,uEAAsC;IACjF,mBAAmB;QACf,OAAO,uBAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QAGxD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,sCAA0B,CAAC,SAAS,CAAC,EAAE;YAChE,OAAO,IAAI,CAAC;SACf;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAG,4BAAgB,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEpC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACnB,MAAM,IAAI,GAAG,qBAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACrC;aAAM;YACH,MAAM,IAAI,GAAG,4BAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAjCD,oCAiCC"}
1
+ {"version":3,"file":"RUMonthNameParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUMonthNameParser.ts"],"names":[],"mappings":";;AAAA,4CAA4E;AAE5E,sDAAkE;AAClE,oDAAyD;AACzD,4CAAuD;AACvD,qGAAkG;AAElG,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AAQrB,MAAqB,iBAAkB,SAAQ,+EAAsC;IACjF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,CACH,cAAc;YACd,IAAI,yBAAe,CAAC,4BAAgB,CAAC,GAAG;YACxC,MAAM;YACN,KAAK;YACL,aAAa,wBAAY,IAAI;YAC7B,IAAI;YACJ,kCAAkC,CACrC,CAAC;IACN,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QAGxD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,sCAA0B,CAAC,SAAS,CAAC,EAAE;YAChE,OAAO,IAAI,CAAC;SACf;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAG,4BAAgB,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEpC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACnB,MAAM,IAAI,GAAG,qBAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACrC;aAAM;YACH,MAAM,IAAI,GAAG,4BAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AArCD,oCAqCC"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
2
  import { ParsingComponents } from "../../../results";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
4
- export default class RURelativeDateFormatParser extends AbstractParserWithWordBoundaryChecking {
5
- patternLeftBoundary(): string;
6
- innerPattern(): RegExp;
3
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
4
+ export default class RURelativeDateFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
8
7
  }
@@ -6,17 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const constants_1 = require("../constants");
7
7
  const results_1 = require("../../../results");
8
8
  const dayjs_1 = __importDefault(require("dayjs"));
9
- const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
10
9
  const pattern_1 = require("../../../utils/pattern");
11
- const PATTERN = new RegExp(`(в прошлом|на прошлой|на следующей|в следующем|на этой|в этом)\\s*(${pattern_1.matchAnyPattern(constants_1.TIME_UNIT_DICTIONARY)})(?=\\s*)${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags);
10
+ const AbstractParserWithWordBoundaryChecking_1 = require("./AbstractParserWithWordBoundaryChecking");
12
11
  const MODIFIER_WORD_GROUP = 1;
13
12
  const RELATIVE_WORD_GROUP = 2;
14
- class RURelativeDateFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
15
- patternLeftBoundary() {
16
- return constants_1.REGEX_PARTS.leftBoundary;
17
- }
18
- innerPattern() {
19
- return PATTERN;
13
+ class RURelativeDateFormatParser extends AbstractParserWithWordBoundaryChecking_1.AbstractParserWithLeftRightBoundaryChecking {
14
+ innerPatternString(context) {
15
+ return `(в прошлом|на прошлой|на следующей|в следующем|на этой|в этом)\\s*(${pattern_1.matchAnyPattern(constants_1.TIME_UNIT_DICTIONARY)})`;
20
16
  }
21
17
  innerExtract(context, match) {
22
18
  const modifier = match[MODIFIER_WORD_GROUP].toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"RURelativeDateFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RURelativeDateFormatParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RURelativeDateFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RURelativeDateFormatParser.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
2
  import { ParsingComponents } from "../../../results";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
4
- export default class RUTimeUnitAgoFormatParser extends AbstractParserWithWordBoundaryChecking {
5
- patternLeftBoundary(): string;
6
- innerPattern(): RegExp;
3
+ import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
4
+ export default class RUTimeUnitAgoFormatParser extends AbstractParserWithLeftBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
8
7
  }
@@ -2,15 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const constants_1 = require("../constants");
4
4
  const results_1 = require("../../../results");
5
- const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
6
5
  const timeunits_1 = require("../../../utils/timeunits");
7
- const PATTERN = new RegExp(`(${constants_1.TIME_UNITS_PATTERN})\\s{0,5}назад(?=(?:\\W|$))`, constants_1.REGEX_PARTS.flags);
8
- class RUTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
9
- patternLeftBoundary() {
10
- return constants_1.REGEX_PARTS.leftBoundary;
11
- }
12
- innerPattern() {
13
- return PATTERN;
6
+ const AbstractParserWithWordBoundaryChecking_1 = require("./AbstractParserWithWordBoundaryChecking");
7
+ class RUTimeUnitAgoFormatParser extends AbstractParserWithWordBoundaryChecking_1.AbstractParserWithLeftBoundaryChecking {
8
+ innerPatternString(context) {
9
+ return `(${constants_1.TIME_UNITS_PATTERN})\\s{0,5}назад(?=(?:\\W|$))`;
14
10
  }
15
11
  innerExtract(context, match) {
16
12
  const timeUnits = constants_1.parseTimeUnits(match[1]);
@@ -1 +1 @@
1
- {"version":3,"file":"RUTimeUnitAgoFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitAgoFormatParser.ts"],"names":[],"mappings":";;AACA,4CAA+E;AAC/E,8CAAqD;AACrD,2GAAgH;AAChH,wDAA4D;AAE5D,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,8BAAkB,6BAA6B,EAAE,uBAAW,CAAC,KAAK,CAAC,CAAC;AAEnG,MAAqB,yBAA0B,SAAQ,uEAAsC;IACzF,mBAAmB;QACf,OAAO,uBAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,0BAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,eAAe,GAAG,4BAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,OAAO,2BAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC7F,CAAC;CACJ;AAfD,4CAeC"}
1
+ {"version":3,"file":"RUTimeUnitAgoFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitAgoFormatParser.ts"],"names":[],"mappings":";;AACA,4CAAkE;AAClE,8CAAqD;AACrD,wDAA4D;AAC5D,qGAAkG;AAElG,MAAqB,yBAA0B,SAAQ,+EAAsC;IACzF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,IAAI,8BAAkB,6BAA6B,CAAC;IAC/D,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,0BAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,eAAe,GAAG,4BAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,OAAO,2BAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC7F,CAAC;CACJ;AAXD,4CAWC"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
2
  import { ParsingComponents } from "../../../results";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
4
- export default class RUTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundaryChecking {
5
- patternLeftBoundary(): string;
6
- innerPattern(): RegExp;
3
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
4
+ export default class RUTimeUnitCasualRelativeFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
8
7
  }
@@ -2,15 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const constants_1 = require("../constants");
4
4
  const results_1 = require("../../../results");
5
- const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
6
5
  const timeunits_1 = require("../../../utils/timeunits");
7
- const PATTERN = new RegExp(`(эти|последние|прошлые|следующие|после|спустя|через|\\+|-)\\s*(${constants_1.TIME_UNITS_PATTERN})${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags);
8
- class RUTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
9
- patternLeftBoundary() {
10
- return constants_1.REGEX_PARTS.leftBoundary;
11
- }
12
- innerPattern() {
13
- return PATTERN;
6
+ const AbstractParserWithWordBoundaryChecking_1 = require("./AbstractParserWithWordBoundaryChecking");
7
+ class RUTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundaryChecking_1.AbstractParserWithLeftRightBoundaryChecking {
8
+ innerPatternString(context) {
9
+ return `(эти|последние|прошлые|следующие|после|спустя|через|\\+|-)\\s*(${constants_1.TIME_UNITS_PATTERN})`;
14
10
  }
15
11
  innerExtract(context, match) {
16
12
  const prefix = match[1].toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"RUTimeUnitCasualRelativeFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.ts"],"names":[],"mappings":";;AAAA,4CAA+E;AAE/E,8CAAqD;AACrD,2GAAgH;AAChH,wDAA4D;AAE5D,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,kEAAkE,8BAAkB,IAAI,uBAAW,CAAC,aAAa,EAAE,EACnH,uBAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAqB,oCAAqC,SAAQ,uEAAsC;IACpG,mBAAmB;QACf,OAAO,uBAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,SAAS,GAAG,0BAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,QAAQ,MAAM,EAAE;YACZ,KAAK,WAAW,CAAC;YACjB,KAAK,SAAS,CAAC;YACf,KAAK,GAAG;gBACJ,SAAS,GAAG,4BAAgB,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM;SACb;QAED,OAAO,2BAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ;AAtBD,uDAsBC"}
1
+ {"version":3,"file":"RUTimeUnitCasualRelativeFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.ts"],"names":[],"mappings":";;AAAA,4CAA+E;AAE/E,8CAAqD;AACrD,wDAA4D;AAC5D,qGAAuG;AAEvG,MAAqB,oCAAqC,SAAQ,oFAA2C;IACzG,kBAAkB,CAAC,OAAuB;QACtC,OAAO,kEAAkE,8BAAkB,GAAG,CAAC;IACnG,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,SAAS,GAAG,0BAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,QAAQ,MAAM,EAAE;YACZ,KAAK,WAAW,CAAC;YACjB,KAAK,SAAS,CAAC;YACf,KAAK,GAAG;gBACJ,SAAS,GAAG,4BAAgB,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM;SACb;QAED,OAAO,2BAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ;AAlBD,uDAkBC"}
@@ -4,14 +4,14 @@ const constants_1 = require("../constants");
4
4
  const results_1 = require("../../../results");
5
5
  const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
6
6
  const PATTERN = `(?:(?:около|примерно)\\s*(?:~\\s*)?)?(${constants_1.TIME_UNITS_PATTERN})${constants_1.REGEX_PARTS.rightBoundary}`;
7
- const PATTERN_WITH_PREFIX = new RegExp(`(?:в течение|в течении)\\s*${PATTERN}`, constants_1.REGEX_PARTS.flags);
8
- const PATTERN_WITHOUT_PREFIX = new RegExp(PATTERN, "i");
9
7
  class RUTimeUnitWithinFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
10
8
  patternLeftBoundary() {
11
9
  return constants_1.REGEX_PARTS.leftBoundary;
12
10
  }
13
11
  innerPattern(context) {
14
- return context.option.forwardDate ? PATTERN_WITHOUT_PREFIX : PATTERN_WITH_PREFIX;
12
+ return context.option.forwardDate
13
+ ? new RegExp(PATTERN, constants_1.REGEX_PARTS.flags)
14
+ : new RegExp(`(?:в течение|в течении)\\s*${PATTERN}`, constants_1.REGEX_PARTS.flags);
15
15
  }
16
16
  innerExtract(context, match) {
17
17
  const timeUnits = constants_1.parseTimeUnits(match[1]);
@@ -1 +1 @@
1
- {"version":3,"file":"RUTimeUnitWithinFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitWithinFormatParser.ts"],"names":[],"mappings":";;AAAA,4CAA+E;AAE/E,8CAAqD;AACrD,2GAAgH;AAEhH,MAAM,OAAO,GAAG,yCAAyC,8BAAkB,IAAI,uBAAW,CAAC,aAAa,EAAE,CAAC;AAC3G,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,8BAA8B,OAAO,EAAE,EAAE,uBAAW,CAAC,KAAK,CAAC,CAAC;AAEnG,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAExD,MAAqB,4BAA6B,SAAQ,uEAAsC;IAC5F,mBAAmB;QACf,OAAO,uBAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACrF,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,0BAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,2BAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ;AAbD,+CAaC"}
1
+ {"version":3,"file":"RUTimeUnitWithinFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUTimeUnitWithinFormatParser.ts"],"names":[],"mappings":";;AAAA,4CAA+E;AAE/E,8CAAqD;AACrD,2GAAgH;AAEhH,MAAM,OAAO,GAAG,yCAAyC,8BAAkB,IAAI,uBAAW,CAAC,aAAa,EAAE,CAAC;AAE3G,MAAqB,4BAA6B,SAAQ,uEAAsC;IAC5F,mBAAmB;QACf,OAAO,uBAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW;YAC7B,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,uBAAW,CAAC,KAAK,CAAC;YACxC,CAAC,CAAC,IAAI,MAAM,CAAC,8BAA8B,OAAO,EAAE,EAAE,uBAAW,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,0BAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,2BAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ;AAfD,+CAeC"}
@@ -1,8 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
2
  import { ParsingComponents } from "../../../results";
3
- import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
4
- export default class RUWeekdayParser extends AbstractParserWithWordBoundaryChecking {
5
- innerPattern(): RegExp;
6
- patternLeftBoundary(): string;
3
+ import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
4
+ export default class RUWeekdayParser extends AbstractParserWithLeftRightBoundaryChecking {
5
+ innerPatternString(context: ParsingContext): string;
7
6
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
8
7
  }
@@ -2,24 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const constants_1 = require("../constants");
4
4
  const pattern_1 = require("../../../utils/pattern");
5
- const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
6
5
  const weekdays_1 = require("../../../common/calculation/weekdays");
7
- const PATTERN = new RegExp(`(?:(?:,|\\(|()\\s*)?` +
8
- `(?:в\\s*?)?` +
9
- `(?:(эту|этот|прошлый|прошлую|следующий|следующую|следующего)\\s*)?` +
10
- `(${pattern_1.matchAnyPattern(constants_1.WEEKDAY_DICTIONARY)})` +
11
- `(?:\\s*(?:,|\\)|)))?` +
12
- `(?:\\s*на\\s*(этой|прошлой|следующей)\\s*неделе)?` +
13
- `${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags);
6
+ const AbstractParserWithWordBoundaryChecking_1 = require("./AbstractParserWithWordBoundaryChecking");
14
7
  const PREFIX_GROUP = 1;
15
8
  const WEEKDAY_GROUP = 2;
16
9
  const POSTFIX_GROUP = 3;
17
- class RUWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
18
- innerPattern() {
19
- return PATTERN;
20
- }
21
- patternLeftBoundary() {
22
- return constants_1.REGEX_PARTS.leftBoundary;
10
+ class RUWeekdayParser extends AbstractParserWithWordBoundaryChecking_1.AbstractParserWithLeftRightBoundaryChecking {
11
+ innerPatternString(context) {
12
+ return (`(?:(?:,|\\(|()\\s*)?` +
13
+ `(?:в\\s*?)?` +
14
+ `(?:(эту|этот|прошлый|прошлую|следующий|следующую|следующего)\\s*)?` +
15
+ `(${pattern_1.matchAnyPattern(constants_1.WEEKDAY_DICTIONARY)})` +
16
+ `(?:\\s*(?:,|\\)|)))?` +
17
+ `(?:\\s*на\\s*(этой|прошлой|следующей)\\s*неделе)?`);
23
18
  }
24
19
  innerExtract(context, match) {
25
20
  const dayOfWeek = match[WEEKDAY_GROUP].toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"RUWeekdayParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUWeekdayParser.ts"],"names":[],"mappings":";;AAEA,4CAA+D;AAC/D,oDAAyD;AACzD,2GAAgH;AAChH,mEAAwF;AAExF,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,sBAAsB;IAClB,aAAa;IACb,oEAAoE;IACpE,IAAI,yBAAe,CAAC,8BAAkB,CAAC,GAAG;IAC1C,sBAAsB;IACtB,mDAAmD;IACnD,GAAG,uBAAW,CAAC,aAAa,EAAE,EAClC,uBAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAqB,eAAgB,SAAQ,uEAAsC;IAC/E,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,mBAAmB;QACf,OAAO,uBAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,8BAAkB,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC;QACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,EAAE;YACrF,QAAQ,GAAG,MAAM,CAAC;SACrB;aAAM,IACH,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,YAAY,EAC9B;YACE,QAAQ,GAAG,MAAM,CAAC;SACrB;aAAM,IAAI,YAAY,IAAI,MAAM,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,IAAI,MAAM,EAAE;YAClF,QAAQ,GAAG,MAAM,CAAC;SACrB;QAED,OAAO,2CAAgC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;CACJ;AAlCD,kCAkCC"}
1
+ {"version":3,"file":"RUWeekdayParser.js","sourceRoot":"","sources":["../../../../../src/locales/ru/parsers/RUWeekdayParser.ts"],"names":[],"mappings":";;AAEA,4CAAkD;AAClD,oDAAyD;AACzD,mEAAwF;AACxF,qGAAuG;AAEvG,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAqB,eAAgB,SAAQ,oFAA2C;IACpF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,CACH,sBAAsB;YACtB,aAAa;YACb,oEAAoE;YACpE,IAAI,yBAAe,CAAC,8BAAkB,CAAC,GAAG;YAC1C,sBAAsB;YACtB,mDAAmD,CACtD,CAAC;IACN,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,8BAAkB,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC;QACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,IAAI,SAAS,EAAE;YACrF,QAAQ,GAAG,MAAM,CAAC;SACrB;aAAM,IACH,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,WAAW;YAC3B,YAAY,IAAI,YAAY,EAC9B;YACE,QAAQ,GAAG,MAAM,CAAC;SACrB;aAAM,IAAI,YAAY,IAAI,MAAM,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,IAAI,MAAM,EAAE;YAClF,QAAQ,GAAG,MAAM,CAAC;SACrB;QAED,OAAO,2CAAgC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;CACJ;AArCD,kCAqCC"}
@@ -6,9 +6,10 @@ export declare abstract class AbstractParserWithWordBoundaryChecking implements
6
6
  abstract innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | ParsingResult | {
7
7
  [c in Component]?: number;
8
8
  } | null;
9
+ innerPatternHasChange(context: ParsingContext, currentInnerPattern: RegExp): boolean;
10
+ patternLeftBoundary(): string;
9
11
  private cachedInnerPattern?;
10
12
  private cachedPattern?;
11
- patternLeftBoundary(): string;
12
13
  pattern(context: ParsingContext): RegExp;
13
14
  extract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | ParsingResult | {
14
15
  day?: number;
@@ -3,16 +3,20 @@ export class AbstractParserWithWordBoundaryChecking {
3
3
  this.cachedInnerPattern = null;
4
4
  this.cachedPattern = null;
5
5
  }
6
+ innerPatternHasChange(context, currentInnerPattern) {
7
+ return this.innerPattern(context) !== currentInnerPattern;
8
+ }
6
9
  patternLeftBoundary() {
7
10
  return `(\\W|^)`;
8
11
  }
9
12
  pattern(context) {
10
- const innerPattern = this.innerPattern(context);
11
- if (innerPattern == this.cachedInnerPattern) {
12
- return this.cachedPattern;
13
+ if (this.cachedInnerPattern) {
14
+ if (!this.innerPatternHasChange(context, this.cachedInnerPattern)) {
15
+ return this.cachedPattern;
16
+ }
13
17
  }
14
- this.cachedPattern = new RegExp(`${this.patternLeftBoundary()}${innerPattern.source}`, innerPattern.flags);
15
- this.cachedInnerPattern = innerPattern;
18
+ this.cachedInnerPattern = this.innerPattern(context);
19
+ this.cachedPattern = new RegExp(`${this.patternLeftBoundary()}${this.cachedInnerPattern.source}`, this.cachedInnerPattern.flags);
16
20
  return this.cachedPattern;
17
21
  }
18
22
  extract(context, match) {
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractParserWithWordBoundary.js","sourceRoot":"","sources":["../../../../src/common/parsers/AbstractParserWithWordBoundary.ts"],"names":[],"mappings":"AAOA,MAAM,OAAgB,sCAAsC;IAA5D;QAOY,uBAAkB,GAAY,IAAI,CAAC;QACnC,kBAAa,GAAY,IAAI,CAAC;IA2B1C,CAAC;IAzBG,mBAAmB;QACf,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,OAAuB;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,YAAY,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzC,OAAO,IAAI,CAAC,aAAa,CAAC;SAC7B;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3G,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,OAAuB,EAAE,KAAuB;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;CACJ"}
1
+ {"version":3,"file":"AbstractParserWithWordBoundary.js","sourceRoot":"","sources":["../../../../src/common/parsers/AbstractParserWithWordBoundary.ts"],"names":[],"mappings":"AAOA,MAAM,OAAgB,sCAAsC;IAA5D;QAgBY,uBAAkB,GAAY,IAAI,CAAC;QACnC,kBAAa,GAAY,IAAI,CAAC;IA0B1C,CAAC;IAnCG,qBAAqB,CAAC,OAAuB,EAAE,mBAA2B;QACtE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,mBAAmB,CAAC;IAC9D,CAAC;IAED,mBAAmB;QACf,OAAO,SAAS,CAAC;IACrB,CAAC;IAKD,OAAO,CAAC,OAAuB;QAC3B,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBAC/D,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;SACJ;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAC3B,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAChE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAChC,CAAC;QACF,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,OAAuB,EAAE,KAAuB;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;CACJ"}