chrono-node 2.7.2 → 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.
- package/dist/cjs/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.d.ts +11 -0
- package/dist/cjs/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.js +24 -0
- package/dist/cjs/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.js.map +1 -0
- package/dist/cjs/locales/uk/parsers/UKCasualDateParser.d.ts +3 -4
- package/dist/cjs/locales/uk/parsers/UKCasualDateParser.js +4 -9
- package/dist/cjs/locales/uk/parsers/UKCasualDateParser.js.map +1 -1
- package/dist/cjs/locales/uk/parsers/UKCasualTimeParser.d.ts +3 -4
- package/dist/cjs/locales/uk/parsers/UKCasualTimeParser.js +4 -10
- package/dist/cjs/locales/uk/parsers/UKCasualTimeParser.js.map +1 -1
- package/dist/cjs/locales/uk/parsers/UKMonthNameLittleEndianParser.d.ts +3 -4
- package/dist/cjs/locales/uk/parsers/UKMonthNameLittleEndianParser.js +14 -19
- package/dist/cjs/locales/uk/parsers/UKMonthNameLittleEndianParser.js.map +1 -1
- package/dist/cjs/locales/uk/parsers/UKMonthNameParser.d.ts +3 -4
- package/dist/cjs/locales/uk/parsers/UKMonthNameParser.js +10 -14
- package/dist/cjs/locales/uk/parsers/UKMonthNameParser.js.map +1 -1
- package/dist/cjs/locales/uk/parsers/UKRelativeDateFormatParser.d.ts +3 -4
- package/dist/cjs/locales/uk/parsers/UKRelativeDateFormatParser.js +5 -8
- package/dist/cjs/locales/uk/parsers/UKRelativeDateFormatParser.js.map +1 -1
- package/dist/cjs/locales/uk/parsers/UKTimeUnitAgoFormatParser.d.ts +3 -4
- package/dist/cjs/locales/uk/parsers/UKTimeUnitAgoFormatParser.js +4 -8
- package/dist/cjs/locales/uk/parsers/UKTimeUnitAgoFormatParser.js.map +1 -1
- package/dist/cjs/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.d.ts +3 -4
- package/dist/cjs/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js +4 -8
- package/dist/cjs/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js.map +1 -1
- package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +3 -3
- package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -1
- package/dist/cjs/locales/uk/parsers/UKWeekdayParser.d.ts +3 -4
- package/dist/cjs/locales/uk/parsers/UKWeekdayParser.js +10 -15
- package/dist/cjs/locales/uk/parsers/UKWeekdayParser.js.map +1 -1
- package/dist/esm/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.d.ts +11 -0
- package/dist/esm/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.js +19 -0
- package/dist/esm/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.js.map +1 -0
- package/dist/esm/locales/uk/parsers/UKCasualDateParser.d.ts +3 -4
- package/dist/esm/locales/uk/parsers/UKCasualDateParser.js +4 -9
- package/dist/esm/locales/uk/parsers/UKCasualDateParser.js.map +1 -1
- package/dist/esm/locales/uk/parsers/UKCasualTimeParser.d.ts +3 -4
- package/dist/esm/locales/uk/parsers/UKCasualTimeParser.js +4 -10
- package/dist/esm/locales/uk/parsers/UKCasualTimeParser.js.map +1 -1
- package/dist/esm/locales/uk/parsers/UKMonthNameLittleEndianParser.d.ts +3 -4
- package/dist/esm/locales/uk/parsers/UKMonthNameLittleEndianParser.js +15 -20
- package/dist/esm/locales/uk/parsers/UKMonthNameLittleEndianParser.js.map +1 -1
- package/dist/esm/locales/uk/parsers/UKMonthNameParser.d.ts +3 -4
- package/dist/esm/locales/uk/parsers/UKMonthNameParser.js +11 -15
- package/dist/esm/locales/uk/parsers/UKMonthNameParser.js.map +1 -1
- package/dist/esm/locales/uk/parsers/UKRelativeDateFormatParser.d.ts +3 -4
- package/dist/esm/locales/uk/parsers/UKRelativeDateFormatParser.js +6 -9
- package/dist/esm/locales/uk/parsers/UKRelativeDateFormatParser.js.map +1 -1
- package/dist/esm/locales/uk/parsers/UKTimeUnitAgoFormatParser.d.ts +3 -4
- package/dist/esm/locales/uk/parsers/UKTimeUnitAgoFormatParser.js +5 -9
- package/dist/esm/locales/uk/parsers/UKTimeUnitAgoFormatParser.js.map +1 -1
- package/dist/esm/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.d.ts +3 -4
- package/dist/esm/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js +5 -9
- package/dist/esm/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js.map +1 -1
- package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +3 -3
- package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -1
- package/dist/esm/locales/uk/parsers/UKWeekdayParser.d.ts +3 -4
- package/dist/esm/locales/uk/parsers/UKWeekdayParser.js +11 -16
- package/dist/esm/locales/uk/parsers/UKWeekdayParser.js.map +1 -1
- package/package.json +1 -1
- package/src/locales/uk/parsers/AbstractParserWithWordBoundaryChecking.ts +27 -0
- package/src/locales/uk/parsers/UKCasualDateParser.ts +4 -14
- package/src/locales/uk/parsers/UKCasualTimeParser.ts +4 -14
- package/src/locales/uk/parsers/UKMonthNameLittleEndianParser.ts +17 -26
- package/src/locales/uk/parsers/UKMonthNameParser.ts +13 -20
- package/src/locales/uk/parsers/UKRelativeDateFormatParser.ts +8 -16
- package/src/locales/uk/parsers/UKTimeUnitAgoFormatParser.ts +5 -11
- package/src/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.ts +4 -13
- package/src/locales/uk/parsers/UKTimeUnitWithinFormatParser.ts +3 -7
- package/src/locales/uk/parsers/UKWeekdayParser.ts +13 -21
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
|
|
2
1
|
import * as references from "../../../common/casualReferences.js";
|
|
3
2
|
import { assignSimilarDate } from "../../../utils/dayjs.js";
|
|
4
3
|
import dayjs from "dayjs";
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
patternLeftBoundary() {
|
|
10
|
-
return REGEX_PARTS.leftBoundary;
|
|
11
|
-
}
|
|
12
|
-
innerPattern() {
|
|
13
|
-
return PATTERN;
|
|
4
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
5
|
+
export default class UKCasualTimeParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
6
|
+
innerPatternString(context) {
|
|
7
|
+
return `(зараз|минулого\\s*вечора|минулої\\s*ночі|наступної\\s*ночі|сьогодні\\s*вночі|цієї\\s*ночі|цього ранку|вранці|ранку|зранку|опівдні|ввечері|вечора|опівночі|вночі)`;
|
|
14
8
|
}
|
|
15
9
|
innerExtract(context, match) {
|
|
16
10
|
let targetDate = dayjs(context.reference.instant);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UKCasualTimeParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKCasualTimeParser.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"UKCasualTimeParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKCasualTimeParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,2CAA2C,EAAE,MAAM,0CAA0C,CAAC;AAEvG,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,2CAA2C;IACvF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,mKAAmK,CAAC;IAC/K,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAEpD,IAAI,SAAS,KAAK,OAAO,EAAE;YACvB,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,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC7F,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC7C;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;YACnC,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,kBAAkB,CAAC,EAAE;YACrC,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,iBAAiB,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,EAAE;YAChC,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACjD;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ParsingContext } from "../../../chrono.js";
|
|
2
2
|
import { ParsingResult } from "../../../results.js";
|
|
3
|
-
import {
|
|
4
|
-
export default class UKMonthNameLittleEndianParser extends
|
|
5
|
-
|
|
6
|
-
innerPattern(): RegExp;
|
|
3
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
4
|
+
export default class UKMonthNameLittleEndianParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
5
|
+
innerPatternString(context: ParsingContext): string;
|
|
7
6
|
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingResult;
|
|
8
7
|
}
|
|
@@ -1,31 +1,26 @@
|
|
|
1
1
|
import { findYearClosestToRef } from "../../../calculation/years.js";
|
|
2
|
-
import { MONTH_DICTIONARY
|
|
2
|
+
import { MONTH_DICTIONARY } from "../constants.js";
|
|
3
3
|
import { YEAR_PATTERN, parseYearPattern } from "../constants.js";
|
|
4
4
|
import { ORDINAL_NUMBER_PATTERN, parseOrdinalNumberPattern } from "../constants.js";
|
|
5
5
|
import { matchAnyPattern } from "../../../utils/pattern.js";
|
|
6
|
-
import {
|
|
7
|
-
const PATTERN = new RegExp(`(?:з|із)?\\s*(${ORDINAL_NUMBER_PATTERN})` +
|
|
8
|
-
`(?:` +
|
|
9
|
-
`\\s{0,3}(?:по|-|–|до)?\\s{0,3}` +
|
|
10
|
-
`(${ORDINAL_NUMBER_PATTERN})` +
|
|
11
|
-
`)?` +
|
|
12
|
-
`(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})` +
|
|
13
|
-
`(${matchAnyPattern(MONTH_DICTIONARY)})` +
|
|
14
|
-
`(?:` +
|
|
15
|
-
`(?:-|\\/|,?\\s{0,3})` +
|
|
16
|
-
`(${YEAR_PATTERN}(?![^\\s]\\d))` +
|
|
17
|
-
`)?` +
|
|
18
|
-
`${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
|
|
6
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
19
7
|
const DATE_GROUP = 1;
|
|
20
8
|
const DATE_TO_GROUP = 2;
|
|
21
9
|
const MONTH_NAME_GROUP = 3;
|
|
22
10
|
const YEAR_GROUP = 4;
|
|
23
|
-
export default class UKMonthNameLittleEndianParser extends
|
|
24
|
-
|
|
25
|
-
return
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
11
|
+
export default class UKMonthNameLittleEndianParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
12
|
+
innerPatternString(context) {
|
|
13
|
+
return (`(?:з|із)?\\s*(${ORDINAL_NUMBER_PATTERN})` +
|
|
14
|
+
`(?:` +
|
|
15
|
+
`\\s{0,3}(?:по|-|–|до)?\\s{0,3}` +
|
|
16
|
+
`(${ORDINAL_NUMBER_PATTERN})` +
|
|
17
|
+
`)?` +
|
|
18
|
+
`(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})` +
|
|
19
|
+
`(${matchAnyPattern(MONTH_DICTIONARY)})` +
|
|
20
|
+
`(?:` +
|
|
21
|
+
`(?:-|\\/|,?\\s{0,3})` +
|
|
22
|
+
`(${YEAR_PATTERN}(?![^\\s]\\d))` +
|
|
23
|
+
`)?`);
|
|
29
24
|
}
|
|
30
25
|
innerExtract(context, match) {
|
|
31
26
|
const result = context.createParsingResult(match.index, match[0]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UKMonthNameLittleEndianParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKMonthNameLittleEndianParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"UKMonthNameLittleEndianParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKMonthNameLittleEndianParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,2CAA2C,EAAE,MAAM,0CAA0C,CAAC;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,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,2CAA2C;IAClG,kBAAkB,CAAC,OAAuB;QACtC,OAAO,CACH,iBAAiB,sBAAsB,GAAG;YAC1C,KAAK;YACL,gCAAgC;YAChC,IAAI,sBAAsB,GAAG;YAC7B,IAAI;YACJ,mCAAmC;YACnC,IAAI,eAAe,CAAC,gBAAgB,CAAC,GAAG;YACxC,KAAK;YACL,sBAAsB;YACtB,IAAI,YAAY,gBAAgB;YAChC,IAAI,CACP,CAAC;IACN,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,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,yBAAyB,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,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SAC3C;aAAM;YACH,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACzE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE;YACtB,MAAM,OAAO,GAAG,yBAAyB,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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ParsingContext } from "../../../chrono.js";
|
|
2
|
-
import {
|
|
3
|
-
export default class UkMonthNameParser extends
|
|
4
|
-
|
|
5
|
-
innerPattern(): RegExp;
|
|
2
|
+
import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
3
|
+
export default class UkMonthNameParser extends AbstractParserWithLeftBoundaryChecking {
|
|
4
|
+
innerPatternString(context: ParsingContext): string;
|
|
6
5
|
innerExtract(context: ParsingContext, match: RegExpMatchArray): import("../index.js").ParsingResult;
|
|
7
6
|
}
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
import { FULL_MONTH_NAME_DICTIONARY, MONTH_DICTIONARY
|
|
1
|
+
import { FULL_MONTH_NAME_DICTIONARY, MONTH_DICTIONARY } from "../constants.js";
|
|
2
2
|
import { findYearClosestToRef } from "../../../calculation/years.js";
|
|
3
3
|
import { matchAnyPattern } from "../../../utils/pattern.js";
|
|
4
4
|
import { YEAR_PATTERN, parseYearPattern } from "../constants.js";
|
|
5
|
-
import {
|
|
6
|
-
const PATTERN = new RegExp(`((?:в|у)\\s*)?` +
|
|
7
|
-
`(${matchAnyPattern(MONTH_DICTIONARY)})` +
|
|
8
|
-
`\\s*` +
|
|
9
|
-
`(?:` +
|
|
10
|
-
`[,-]?\\s*(${YEAR_PATTERN})?` +
|
|
11
|
-
`)?` +
|
|
12
|
-
`(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`, REGEX_PARTS.flags);
|
|
5
|
+
import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
13
6
|
const MONTH_NAME_GROUP = 2;
|
|
14
7
|
const YEAR_GROUP = 3;
|
|
15
|
-
export default class UkMonthNameParser extends
|
|
16
|
-
|
|
17
|
-
return
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
8
|
+
export default class UkMonthNameParser extends AbstractParserWithLeftBoundaryChecking {
|
|
9
|
+
innerPatternString(context) {
|
|
10
|
+
return (`((?:в|у)\\s*)?` +
|
|
11
|
+
`(${matchAnyPattern(MONTH_DICTIONARY)})` +
|
|
12
|
+
`\\s*` +
|
|
13
|
+
`(?:` +
|
|
14
|
+
`[,-]?\\s*(${YEAR_PATTERN})?` +
|
|
15
|
+
`)?` +
|
|
16
|
+
`(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`);
|
|
21
17
|
}
|
|
22
18
|
innerExtract(context, match) {
|
|
23
19
|
const monthName = match[MONTH_NAME_GROUP].toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UKMonthNameParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKMonthNameParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"UKMonthNameParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKMonthNameParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,sCAAsC,EAAE,MAAM,0CAA0C,CAAC;AAElG,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AAQrB,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,sCAAsC;IACjF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,CACH,gBAAgB;YAChB,IAAI,eAAe,CAAC,gBAAgB,CAAC,GAAG;YACxC,MAAM;YACN,KAAK;YACL,aAAa,YAAY,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,0BAA0B,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,gBAAgB,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,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACrC;aAAM;YACH,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ParsingContext } from "../../../chrono.js";
|
|
2
2
|
import { ParsingComponents } from "../../../results.js";
|
|
3
|
-
import {
|
|
4
|
-
export default class UKRelativeDateFormatParser extends
|
|
5
|
-
|
|
6
|
-
innerPattern(): RegExp;
|
|
3
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
4
|
+
export default class UKRelativeDateFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
5
|
+
innerPatternString(context: ParsingContext): string;
|
|
7
6
|
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
|
|
8
7
|
}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TIME_UNIT_DICTIONARY } from "../constants.js";
|
|
2
2
|
import { ParsingComponents } from "../../../results.js";
|
|
3
3
|
import dayjs from "dayjs";
|
|
4
|
-
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
|
|
5
4
|
import { matchAnyPattern } from "../../../utils/pattern.js";
|
|
6
|
-
|
|
5
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
7
6
|
const MODIFIER_WORD_GROUP = 1;
|
|
8
7
|
const RELATIVE_WORD_GROUP = 2;
|
|
9
|
-
export default class UKRelativeDateFormatParser extends
|
|
10
|
-
|
|
11
|
-
return
|
|
12
|
-
|
|
13
|
-
innerPattern() {
|
|
14
|
-
return PATTERN;
|
|
8
|
+
export default class UKRelativeDateFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
9
|
+
innerPatternString(context) {
|
|
10
|
+
return (`(в минулому|у минулому|на минулому|минулого|на наступному|в наступному|у наступному|наступного|на цьому|в цьому|у цьому|цього)\\s*` +
|
|
11
|
+
`(${matchAnyPattern(TIME_UNIT_DICTIONARY)})(?=\\s*)`);
|
|
15
12
|
}
|
|
16
13
|
innerExtract(context, match) {
|
|
17
14
|
const modifier = match[MODIFIER_WORD_GROUP].toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UKRelativeDateFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKRelativeDateFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"UKRelativeDateFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKRelativeDateFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,2CAA2C,EAAE,MAAM,0CAA0C,CAAC;AAEvG,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,2CAA2C;IAC/F,kBAAkB,CAAC,OAAuB;QACtC,OAAO,CACH,oIAAoI;YACpI,IAAI,eAAe,CAAC,oBAAoB,CAAC,WAAW,CACvD,CAAC;IACN,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAEhD,IACI,QAAQ,IAAI,eAAe;YAC3B,QAAQ,IAAI,cAAc;YAC1B,QAAQ,IAAI,cAAc;YAC1B,QAAQ,IAAI,YAAY,EAC1B;YACE,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SACtF;QAED,IACI,QAAQ,IAAI,aAAa;YACzB,QAAQ,IAAI,YAAY;YACxB,QAAQ,IAAI,YAAY;YACxB,QAAQ,IAAI,UAAU,EACxB;YACE,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SACtF;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QACrD,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAG5C,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACrC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5C,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SACzC;aAGI,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YAC/B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACvC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;SAChD;aAGI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;YAExC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5C,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SAC1C;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ParsingContext } from "../../../chrono.js";
|
|
2
2
|
import { ParsingComponents } from "../../../results.js";
|
|
3
|
-
import {
|
|
4
|
-
export default class UKTimeUnitAgoFormatParser extends
|
|
5
|
-
|
|
6
|
-
innerPattern(): RegExp;
|
|
3
|
+
import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
4
|
+
export default class UKTimeUnitAgoFormatParser extends AbstractParserWithLeftBoundaryChecking {
|
|
5
|
+
innerPatternString(context: ParsingContext): string;
|
|
7
6
|
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
|
|
8
7
|
}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import { parseTimeUnits,
|
|
1
|
+
import { parseTimeUnits, TIME_UNITS_PATTERN } from "../constants.js";
|
|
2
2
|
import { ParsingComponents } from "../../../results.js";
|
|
3
|
-
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
|
|
4
3
|
import { reverseTimeUnits } from "../../../utils/timeunits.js";
|
|
5
|
-
|
|
6
|
-
export default class UKTimeUnitAgoFormatParser extends
|
|
7
|
-
|
|
8
|
-
return
|
|
9
|
-
}
|
|
10
|
-
innerPattern() {
|
|
11
|
-
return PATTERN;
|
|
4
|
+
import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
5
|
+
export default class UKTimeUnitAgoFormatParser extends AbstractParserWithLeftBoundaryChecking {
|
|
6
|
+
innerPatternString(context) {
|
|
7
|
+
return `(${TIME_UNITS_PATTERN})\\s{0,5}тому(?=(?:\\W|$))`;
|
|
12
8
|
}
|
|
13
9
|
innerExtract(context, match) {
|
|
14
10
|
const timeUnits = parseTimeUnits(match[1]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UKTimeUnitAgoFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKTimeUnitAgoFormatParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"UKTimeUnitAgoFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKTimeUnitAgoFormatParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,sCAAsC,EAAE,MAAM,0CAA0C,CAAC;AAElG,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,sCAAsC;IACzF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,IAAI,kBAAkB,4BAA4B,CAAC;IAC9D,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,eAAe,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEpD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC7F,CAAC;CACJ"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ParsingContext } from "../../../chrono.js";
|
|
2
2
|
import { ParsingComponents } from "../../../results.js";
|
|
3
|
-
import {
|
|
4
|
-
export default class UKTimeUnitCasualRelativeFormatParser extends
|
|
5
|
-
|
|
6
|
-
innerPattern(): RegExp;
|
|
3
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
4
|
+
export default class UKTimeUnitCasualRelativeFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
5
|
+
innerPatternString(context: ParsingContext): string;
|
|
7
6
|
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
|
|
8
7
|
}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import { TIME_UNITS_PATTERN, parseTimeUnits
|
|
1
|
+
import { TIME_UNITS_PATTERN, parseTimeUnits } from "../constants.js";
|
|
2
2
|
import { ParsingComponents } from "../../../results.js";
|
|
3
|
-
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
|
|
4
3
|
import { reverseTimeUnits } from "../../../utils/timeunits.js";
|
|
5
|
-
|
|
6
|
-
export default class UKTimeUnitCasualRelativeFormatParser extends
|
|
7
|
-
|
|
8
|
-
return
|
|
9
|
-
}
|
|
10
|
-
innerPattern() {
|
|
11
|
-
return PATTERN;
|
|
4
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
5
|
+
export default class UKTimeUnitCasualRelativeFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
6
|
+
innerPatternString(context) {
|
|
7
|
+
return `(ці|останні|минулі|майбутні|наступні|після|через|\\+|-)\\s*(${TIME_UNITS_PATTERN})`;
|
|
12
8
|
}
|
|
13
9
|
innerExtract(context, match) {
|
|
14
10
|
const prefix = match[1].toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UKTimeUnitCasualRelativeFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"UKTimeUnitCasualRelativeFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAe,MAAM,cAAc,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,2CAA2C,EAAE,MAAM,0CAA0C,CAAC;AAEvG,MAAM,CAAC,OAAO,OAAO,oCAAqC,SAAQ,2CAA2C;IACzG,kBAAkB,CAAC,OAAuB;QACtC,OAAO,+DAA+D,kBAAkB,GAAG,CAAC;IAChG,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,QAAQ,MAAM,EAAE;YACZ,KAAK,SAAS,CAAC;YACf,KAAK,QAAQ,CAAC;YACd,KAAK,GAAG;gBACJ,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM;SACb;QAED,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
|
|
@@ -2,14 +2,14 @@ import { TIME_UNITS_PATTERN, parseTimeUnits, REGEX_PARTS } from "../constants.js
|
|
|
2
2
|
import { ParsingComponents } from "../../../results.js";
|
|
3
3
|
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
|
|
4
4
|
const PATTERN = `(?:(?:приблизно|орієнтовно)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})${REGEX_PARTS.rightBoundary}`;
|
|
5
|
-
const PATTERN_WITH_PREFIX = new RegExp(`(?:протягом|на протязі|протягом|упродовж|впродовж)\\s*${PATTERN}`, REGEX_PARTS.flags);
|
|
6
|
-
const PATTERN_WITHOUT_PREFIX = new RegExp(PATTERN, "i");
|
|
7
5
|
export default class UKTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
|
|
8
6
|
patternLeftBoundary() {
|
|
9
7
|
return REGEX_PARTS.leftBoundary;
|
|
10
8
|
}
|
|
11
9
|
innerPattern(context) {
|
|
12
|
-
return context.option.forwardDate
|
|
10
|
+
return context.option.forwardDate
|
|
11
|
+
? new RegExp(PATTERN, "i")
|
|
12
|
+
: new RegExp(`(?:протягом|на протязі|протягом|упродовж|впродовж)\\s*${PATTERN}`, REGEX_PARTS.flags);
|
|
13
13
|
}
|
|
14
14
|
innerExtract(context, match) {
|
|
15
15
|
const timeUnits = parseTimeUnits(match[1]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UKTimeUnitWithinFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKTimeUnitWithinFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,OAAO,GAAG,+CAA+C,kBAAkB,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"UKTimeUnitWithinFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKTimeUnitWithinFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,OAAO,GAAG,+CAA+C,kBAAkB,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;AAEjH,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,sCAAsC;IAC5F,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW;YAC7B,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC;YAC1B,CAAC,CAAC,IAAI,MAAM,CAAC,yDAAyD,OAAO,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5G,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ParsingContext } from "../../../chrono.js";
|
|
2
2
|
import { ParsingComponents } from "../../../results.js";
|
|
3
|
-
import {
|
|
4
|
-
export default class UKWeekdayParser extends
|
|
5
|
-
|
|
6
|
-
patternLeftBoundary(): string;
|
|
3
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
4
|
+
export default class UKWeekdayParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
5
|
+
innerPatternString(context: ParsingContext): string;
|
|
7
6
|
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
|
|
8
7
|
}
|
|
@@ -1,24 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WEEKDAY_DICTIONARY } from "../constants.js";
|
|
2
2
|
import { matchAnyPattern } from "../../../utils/pattern.js";
|
|
3
|
-
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
|
|
4
3
|
import { createParsingComponentsAtWeekday } from "../../../common/calculation/weekdays.js";
|
|
5
|
-
|
|
6
|
-
`(?:в\\s*?)?` +
|
|
7
|
-
`(?:у\\s*?)?` +
|
|
8
|
-
`(?:(цей|минулого|минулий|попередній|попереднього|наступного|наступний|наступному)\\s*)?` +
|
|
9
|
-
`(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
|
|
10
|
-
`(?:\\s*(?:,|\\)|)))?` +
|
|
11
|
-
`(?:\\s*(на|у|в)\\s*(цьому|минулому|наступному)\\s*тижні)?` +
|
|
12
|
-
`${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
|
|
4
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking.js";
|
|
13
5
|
const PREFIX_GROUP = 1;
|
|
14
6
|
const WEEKDAY_GROUP = 2;
|
|
15
7
|
const POSTFIX_GROUP = 3;
|
|
16
|
-
export default class UKWeekdayParser extends
|
|
17
|
-
|
|
18
|
-
return
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
8
|
+
export default class UKWeekdayParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
9
|
+
innerPatternString(context) {
|
|
10
|
+
return (`(?:(?:,|\\(|()\\s*)?` +
|
|
11
|
+
`(?:в\\s*?)?` +
|
|
12
|
+
`(?:у\\s*?)?` +
|
|
13
|
+
`(?:(цей|минулого|минулий|попередній|попереднього|наступного|наступний|наступному)\\s*)?` +
|
|
14
|
+
`(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
|
|
15
|
+
`(?:\\s*(?:,|\\)|)))?` +
|
|
16
|
+
`(?:\\s*(на|у|в)\\s*(цьому|минулому|наступному)\\s*тижні)?`);
|
|
22
17
|
}
|
|
23
18
|
innerExtract(context, match) {
|
|
24
19
|
const dayOfWeek = match[WEEKDAY_GROUP].toLocaleLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UKWeekdayParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKWeekdayParser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"UKWeekdayParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKWeekdayParser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,2CAA2C,EAAE,MAAM,0CAA0C,CAAC;AAEvG,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,2CAA2C;IACpF,kBAAkB,CAAC,OAAuB;QACtC,OAAO,CACH,sBAAsB;YACtB,aAAa;YACb,aAAa;YACb,yFAAyF;YACzF,IAAI,eAAe,CAAC,kBAAkB,CAAC,GAAG;YAC1C,sBAAsB;YACtB,2DAA2D,CAC9D,CAAC;IACN,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,kBAAkB,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,iBAAiB,EAAE,CAAC;QAEhD,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IACI,YAAY,IAAI,UAAU;YAC1B,YAAY,IAAI,SAAS;YACzB,YAAY,IAAI,YAAY;YAC5B,YAAY,IAAI,cAAc,EAChC;YACE,QAAQ,GAAG,MAAM,CAAC;SACrB;aAAM,IAAI,YAAY,IAAI,YAAY,IAAI,YAAY,IAAI,WAAW,EAAE;YACpE,QAAQ,GAAG,MAAM,CAAC;SACrB;aAAM,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,EAAE;YACpF,QAAQ,GAAG,MAAM,CAAC;SACrB;QAED,OAAO,gCAAgC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// noinspection DuplicatedCode
|
|
2
|
+
|
|
3
|
+
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
|
|
4
|
+
import { REGEX_PARTS } from "../constants";
|
|
5
|
+
import { ParsingContext } from "../../../chrono";
|
|
6
|
+
|
|
7
|
+
export abstract class AbstractParserWithLeftBoundaryChecking extends AbstractParserWithWordBoundaryChecking {
|
|
8
|
+
abstract innerPatternString(context: ParsingContext): string;
|
|
9
|
+
|
|
10
|
+
patternLeftBoundary(): string {
|
|
11
|
+
return REGEX_PARTS.leftBoundary;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
innerPattern(context: ParsingContext): RegExp {
|
|
15
|
+
return new RegExp(this.innerPatternString(context), REGEX_PARTS.flags);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
innerPatternHasChange(context: ParsingContext, currentInnerPattern: RegExp): boolean {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export abstract class AbstractParserWithLeftRightBoundaryChecking extends AbstractParserWithLeftBoundaryChecking {
|
|
24
|
+
innerPattern(context: ParsingContext): RegExp {
|
|
25
|
+
return new RegExp(`${this.innerPatternString(context)}${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
import { ParsingContext } from "../../../chrono";
|
|
2
2
|
import { ParsingComponents, ParsingResult } from "../../../results";
|
|
3
|
-
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
|
|
4
3
|
import * as references from "../../../common/casualReferences";
|
|
5
|
-
import {
|
|
4
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
);
|
|
11
|
-
|
|
12
|
-
export default class UKCasualDateParser extends AbstractParserWithWordBoundaryChecking {
|
|
13
|
-
patternLeftBoundary(): string {
|
|
14
|
-
return REGEX_PARTS.leftBoundary;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
innerPattern(context: ParsingContext): RegExp {
|
|
18
|
-
return PATTERN;
|
|
6
|
+
export default class UKCasualDateParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
7
|
+
innerPatternString(context: ParsingContext): string {
|
|
8
|
+
return `(?:з|із|від)?\\s*(сьогодні|вчора|завтра|післязавтра|післяпіслязавтра|позапозавчора|позавчора)`;
|
|
19
9
|
}
|
|
20
10
|
|
|
21
11
|
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | ParsingResult {
|
|
@@ -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 {
|
|
5
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
|
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 {
|
|
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
|
|
33
|
-
|
|
34
|
-
return
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
|
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 {
|
|
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
|
|
29
|
-
|
|
30
|
-
return
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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) {
|