chrono-node 2.7.2 → 2.7.4
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/common/refiners/OverlapRemovalRefiner.js +16 -6
- package/dist/cjs/common/refiners/OverlapRemovalRefiner.js.map +1 -1
- package/dist/cjs/locales/en/configuration.js +13 -8
- package/dist/cjs/locales/en/configuration.js.map +1 -1
- package/dist/cjs/locales/en/constants.d.ts +1 -1
- package/dist/cjs/locales/en/constants.js +1 -1
- package/dist/cjs/locales/en/constants.js.map +1 -1
- package/dist/cjs/locales/en/index.d.ts +2 -0
- package/dist/cjs/locales/en/index.js +5 -5
- package/dist/cjs/locales/en/index.js.map +1 -1
- package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.d.ts +2 -0
- package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js +13 -2
- package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
- package/dist/cjs/locales/en/parsers/ENMonthNameParser.js +1 -0
- package/dist/cjs/locales/en/parsers/ENMonthNameParser.js.map +1 -1
- package/dist/cjs/locales/en/parsers/ENTimeUnitWithinFormatParser.js +3 -0
- package/dist/cjs/locales/en/parsers/ENTimeUnitWithinFormatParser.js.map +1 -1
- package/dist/cjs/locales/en/refiners/ENMergeRelativeAfterDateRefiner.d.ts +6 -0
- package/dist/cjs/locales/en/refiners/ENMergeRelativeAfterDateRefiner.js +30 -0
- package/dist/cjs/locales/en/refiners/ENMergeRelativeAfterDateRefiner.js.map +1 -0
- package/dist/cjs/locales/en/refiners/{ENMergeRelativeDateRefiner.d.ts → ENMergeRelativeFollowByDateRefiner.d.ts} +1 -1
- package/dist/cjs/locales/en/refiners/{ENMergeRelativeDateRefiner.js → ENMergeRelativeFollowByDateRefiner.js} +3 -3
- package/dist/cjs/locales/en/refiners/ENMergeRelativeFollowByDateRefiner.js.map +1 -0
- package/dist/cjs/locales/nl/parsers/NLRelativeDateFormatParser.js +3 -3
- package/dist/cjs/locales/nl/parsers/NLRelativeDateFormatParser.js.map +1 -1
- package/dist/cjs/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js +6 -4
- package/dist/cjs/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js.map +1 -1
- 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/common/refiners/OverlapRemovalRefiner.js +16 -6
- package/dist/esm/common/refiners/OverlapRemovalRefiner.js.map +1 -1
- package/dist/esm/locales/en/configuration.js +13 -8
- package/dist/esm/locales/en/configuration.js.map +1 -1
- package/dist/esm/locales/en/constants.d.ts +1 -1
- package/dist/esm/locales/en/constants.js +1 -1
- package/dist/esm/locales/en/constants.js.map +1 -1
- package/dist/esm/locales/en/index.d.ts +2 -0
- package/dist/esm/locales/en/index.js +4 -4
- package/dist/esm/locales/en/index.js.map +1 -1
- package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.d.ts +2 -0
- package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js +13 -2
- package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
- package/dist/esm/locales/en/parsers/ENMonthNameParser.js +1 -0
- package/dist/esm/locales/en/parsers/ENMonthNameParser.js.map +1 -1
- package/dist/esm/locales/en/parsers/ENTimeUnitWithinFormatParser.js +3 -0
- package/dist/esm/locales/en/parsers/ENTimeUnitWithinFormatParser.js.map +1 -1
- package/dist/esm/locales/en/refiners/ENMergeRelativeAfterDateRefiner.d.ts +6 -0
- package/dist/esm/locales/en/refiners/ENMergeRelativeAfterDateRefiner.js +27 -0
- package/dist/esm/locales/en/refiners/ENMergeRelativeAfterDateRefiner.js.map +1 -0
- package/dist/esm/locales/en/refiners/{ENMergeRelativeDateRefiner.d.ts → ENMergeRelativeFollowByDateRefiner.d.ts} +1 -1
- package/dist/esm/locales/en/refiners/{ENMergeRelativeDateRefiner.js → ENMergeRelativeFollowByDateRefiner.js} +2 -2
- package/dist/esm/locales/en/refiners/ENMergeRelativeFollowByDateRefiner.js.map +1 -0
- package/dist/esm/locales/nl/parsers/NLRelativeDateFormatParser.js +3 -3
- package/dist/esm/locales/nl/parsers/NLRelativeDateFormatParser.js.map +1 -1
- package/dist/esm/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js +6 -4
- package/dist/esm/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.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/common/refiners/OverlapRemovalRefiner.ts +16 -7
- package/src/locales/en/configuration.ts +15 -8
- package/src/locales/en/constants.ts +1 -1
- package/src/locales/en/index.ts +4 -4
- package/src/locales/en/parsers/ENMonthNameMiddleEndianParser.ts +20 -5
- package/src/locales/en/parsers/ENMonthNameParser.ts +1 -0
- package/src/locales/en/parsers/ENTimeUnitWithinFormatParser.ts +5 -0
- package/src/locales/en/refiners/ENMergeRelativeAfterDateRefiner.ts +46 -0
- package/src/locales/en/refiners/{ENMergeRelativeDateRefiner.ts → ENMergeRelativeFollowByDateRefiner.ts} +4 -4
- package/src/locales/nl/parsers/NLRelativeDateFormatParser.ts +3 -3
- package/src/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.ts +10 -4
- 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
- package/test/en/en_month.test.ts +6 -0
- package/test/en/en_month_name_middle_endian.test.ts +23 -0
- package/test/en/en_time_units_later.test.ts +22 -0
- package/test/en/negative_cases.test.ts +4 -0
- package/test/nl/nl_relative.test.ts +16 -2
- package/dist/cjs/locales/en/refiners/ENMergeRelativeDateRefiner.js.map +0 -1
- package/dist/esm/locales/en/refiners/ENMergeRelativeDateRefiner.js.map +0 -1
|
@@ -1,27 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TIME_UNIT_DICTIONARY } from "../constants";
|
|
2
2
|
import { ParsingContext } from "../../../chrono";
|
|
3
3
|
import { ParsingComponents } from "../../../results";
|
|
4
4
|
import dayjs from "dayjs";
|
|
5
|
-
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
|
|
6
5
|
import { matchAnyPattern } from "../../../utils/pattern";
|
|
7
|
-
|
|
8
|
-
const PATTERN = new RegExp(
|
|
9
|
-
`(в минулому|у минулому|на минулому|минулого|на наступному|в наступному|у наступному|наступного|на цьому|в цьому|у цьому|цього)\\s*(${matchAnyPattern(
|
|
10
|
-
TIME_UNIT_DICTIONARY
|
|
11
|
-
)})(?=\\s*)${REGEX_PARTS.rightBoundary}`,
|
|
12
|
-
REGEX_PARTS.flags
|
|
13
|
-
);
|
|
6
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
|
|
14
7
|
|
|
15
8
|
const MODIFIER_WORD_GROUP = 1;
|
|
16
9
|
const RELATIVE_WORD_GROUP = 2;
|
|
17
10
|
|
|
18
|
-
export default class UKRelativeDateFormatParser extends
|
|
19
|
-
|
|
20
|
-
return
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return PATTERN;
|
|
11
|
+
export default class UKRelativeDateFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
12
|
+
innerPatternString(context: ParsingContext): string {
|
|
13
|
+
return (
|
|
14
|
+
`(в минулому|у минулому|на минулому|минулого|на наступному|в наступному|у наступному|наступного|на цьому|в цьому|у цьому|цього)\\s*` +
|
|
15
|
+
`(${matchAnyPattern(TIME_UNIT_DICTIONARY)})(?=\\s*)`
|
|
16
|
+
);
|
|
25
17
|
}
|
|
26
18
|
|
|
27
19
|
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {
|
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
import { ParsingContext } from "../../../chrono";
|
|
2
|
-
import { parseTimeUnits,
|
|
2
|
+
import { parseTimeUnits, TIME_UNITS_PATTERN } from "../constants";
|
|
3
3
|
import { ParsingComponents } from "../../../results";
|
|
4
|
-
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
|
|
5
4
|
import { reverseTimeUnits } from "../../../utils/timeunits";
|
|
5
|
+
import { AbstractParserWithLeftBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
patternLeftBoundary(): string {
|
|
11
|
-
return REGEX_PARTS.leftBoundary;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
innerPattern(): RegExp {
|
|
15
|
-
return PATTERN;
|
|
7
|
+
export default class UKTimeUnitAgoFormatParser extends AbstractParserWithLeftBoundaryChecking {
|
|
8
|
+
innerPatternString(context: ParsingContext): string {
|
|
9
|
+
return `(${TIME_UNITS_PATTERN})\\s{0,5}тому(?=(?:\\W|$))`;
|
|
16
10
|
}
|
|
17
11
|
|
|
18
12
|
innerExtract(context: ParsingContext, match: RegExpMatchArray) {
|
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
import { TIME_UNITS_PATTERN, parseTimeUnits, REGEX_PARTS } from "../constants";
|
|
2
2
|
import { ParsingContext } from "../../../chrono";
|
|
3
3
|
import { ParsingComponents } from "../../../results";
|
|
4
|
-
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
|
|
5
4
|
import { reverseTimeUnits } from "../../../utils/timeunits";
|
|
5
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
);
|
|
11
|
-
|
|
12
|
-
export default class UKTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundaryChecking {
|
|
13
|
-
patternLeftBoundary(): string {
|
|
14
|
-
return REGEX_PARTS.leftBoundary;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
innerPattern(): RegExp {
|
|
18
|
-
return PATTERN;
|
|
7
|
+
export default class UKTimeUnitCasualRelativeFormatParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
8
|
+
innerPatternString(context: ParsingContext): string {
|
|
9
|
+
return `(ці|останні|минулі|майбутні|наступні|після|через|\\+|-)\\s*(${TIME_UNITS_PATTERN})`;
|
|
19
10
|
}
|
|
20
11
|
|
|
21
12
|
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {
|
|
@@ -4,12 +4,6 @@ import { ParsingComponents } from "../../../results";
|
|
|
4
4
|
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
|
|
5
5
|
|
|
6
6
|
const PATTERN = `(?:(?:приблизно|орієнтовно)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})${REGEX_PARTS.rightBoundary}`;
|
|
7
|
-
const PATTERN_WITH_PREFIX = new RegExp(
|
|
8
|
-
`(?:протягом|на протязі|протягом|упродовж|впродовж)\\s*${PATTERN}`,
|
|
9
|
-
REGEX_PARTS.flags
|
|
10
|
-
);
|
|
11
|
-
|
|
12
|
-
const PATTERN_WITHOUT_PREFIX = new RegExp(PATTERN, "i");
|
|
13
7
|
|
|
14
8
|
export default class UKTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
|
|
15
9
|
patternLeftBoundary(): string {
|
|
@@ -17,7 +11,9 @@ export default class UKTimeUnitWithinFormatParser extends AbstractParserWithWord
|
|
|
17
11
|
}
|
|
18
12
|
|
|
19
13
|
innerPattern(context: ParsingContext): RegExp {
|
|
20
|
-
return context.option.forwardDate
|
|
14
|
+
return context.option.forwardDate
|
|
15
|
+
? new RegExp(PATTERN, "i")
|
|
16
|
+
: new RegExp(`(?:протягом|на протязі|протягом|упродовж|впродовж)\\s*${PATTERN}`, REGEX_PARTS.flags);
|
|
21
17
|
}
|
|
22
18
|
|
|
23
19
|
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {
|
|
@@ -1,34 +1,26 @@
|
|
|
1
1
|
import { ParsingContext } from "../../../chrono";
|
|
2
2
|
import { ParsingComponents } from "../../../results";
|
|
3
3
|
// TODO: ADD REGEX_PARTS below
|
|
4
|
-
import {
|
|
4
|
+
import { WEEKDAY_DICTIONARY } from "../constants";
|
|
5
5
|
import { matchAnyPattern } from "../../../utils/pattern";
|
|
6
|
-
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
|
|
7
6
|
import { createParsingComponentsAtWeekday } from "../../../common/calculation/weekdays";
|
|
8
|
-
|
|
9
|
-
const PATTERN = new RegExp(
|
|
10
|
-
`(?:(?:,|\\(|()\\s*)?` +
|
|
11
|
-
`(?:в\\s*?)?` +
|
|
12
|
-
`(?:у\\s*?)?` +
|
|
13
|
-
`(?:(цей|минулого|минулий|попередній|попереднього|наступного|наступний|наступному)\\s*)?` +
|
|
14
|
-
`(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
|
|
15
|
-
`(?:\\s*(?:,|\\)|)))?` +
|
|
16
|
-
`(?:\\s*(на|у|в)\\s*(цьому|минулому|наступному)\\s*тижні)?` +
|
|
17
|
-
`${REGEX_PARTS.rightBoundary}`,
|
|
18
|
-
REGEX_PARTS.flags
|
|
19
|
-
);
|
|
7
|
+
import { AbstractParserWithLeftRightBoundaryChecking } from "./AbstractParserWithWordBoundaryChecking";
|
|
20
8
|
|
|
21
9
|
const PREFIX_GROUP = 1;
|
|
22
10
|
const WEEKDAY_GROUP = 2;
|
|
23
11
|
const POSTFIX_GROUP = 3;
|
|
24
12
|
|
|
25
|
-
export default class UKWeekdayParser extends
|
|
26
|
-
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
13
|
+
export default class UKWeekdayParser extends AbstractParserWithLeftRightBoundaryChecking {
|
|
14
|
+
innerPatternString(context: ParsingContext): string {
|
|
15
|
+
return (
|
|
16
|
+
`(?:(?:,|\\(|()\\s*)?` +
|
|
17
|
+
`(?:в\\s*?)?` +
|
|
18
|
+
`(?:у\\s*?)?` +
|
|
19
|
+
`(?:(цей|минулого|минулий|попередній|попереднього|наступного|наступний|наступному)\\s*)?` +
|
|
20
|
+
`(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
|
|
21
|
+
`(?:\\s*(?:,|\\)|)))?` +
|
|
22
|
+
`(?:\\s*(на|у|в)\\s*(цьому|минулому|наступному)\\s*тижні)?`
|
|
23
|
+
);
|
|
32
24
|
}
|
|
33
25
|
|
|
34
26
|
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {
|
package/test/en/en_month.test.ts
CHANGED
|
@@ -68,6 +68,12 @@ test("Test - Month-Year expression", function () {
|
|
|
68
68
|
|
|
69
69
|
expect(result.start).toBeDate(new Date(2012, 9 - 1, 1, 12));
|
|
70
70
|
});
|
|
71
|
+
|
|
72
|
+
testSingleCase(chrono, "Statement of comprehensive income for the year ended Dec. 2021", (result) => {
|
|
73
|
+
expect(result.start.get("year")).toBe(2021);
|
|
74
|
+
expect(result.start.get("month")).toBe(12);
|
|
75
|
+
expect(result.text).toBe("Dec. 2021");
|
|
76
|
+
});
|
|
71
77
|
});
|
|
72
78
|
|
|
73
79
|
test("Test - Month-Only expression", function () {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as chrono from "../../src";
|
|
2
2
|
import { testSingleCase, testWithExpectedDate, testUnexpectedResult } from "../test_util";
|
|
3
|
+
import { configuration } from "../../src/locales/en";
|
|
3
4
|
|
|
4
5
|
test("Test - Single Expression", () => {
|
|
5
6
|
testSingleCase(chrono, "She is getting married soon (July 2017).", (result) => {
|
|
@@ -153,6 +154,13 @@ test("Test - Single Expression", () => {
|
|
|
153
154
|
expect(result.start.get("month")).toBe(1);
|
|
154
155
|
expect(result.start.get("day")).toBe(20);
|
|
155
156
|
});
|
|
157
|
+
|
|
158
|
+
testSingleCase(chrono, "Dec. 21", new Date(2012, 7, 10), (result) => {
|
|
159
|
+
expect(result.text).toBe("Dec. 21");
|
|
160
|
+
expect(result.start.get("year")).toBe(2012);
|
|
161
|
+
expect(result.start.get("month")).toBe(12);
|
|
162
|
+
expect(result.start.get("day")).toBe(21);
|
|
163
|
+
});
|
|
156
164
|
});
|
|
157
165
|
|
|
158
166
|
test("Test - Single expression with separators", () => {
|
|
@@ -350,6 +358,21 @@ test("Test - year 90's parsing", () => {
|
|
|
350
358
|
});
|
|
351
359
|
});
|
|
352
360
|
|
|
361
|
+
test("Test - Skip year-like on little-endian configuration", () => {
|
|
362
|
+
const chronoMiddleEndian = new chrono.Chrono(chrono.en.configuration.createCasualConfiguration(false));
|
|
363
|
+
testSingleCase(chronoMiddleEndian, "Dec. 21", new Date(2023, 12, 10), (result) => {
|
|
364
|
+
expect(result.start.get("year")).toBe(2023);
|
|
365
|
+
expect(result.start.get("month")).toBe(12);
|
|
366
|
+
expect(result.start.get("day")).toBe(21);
|
|
367
|
+
});
|
|
368
|
+
|
|
369
|
+
const chronoLittleEndian = new chrono.Chrono(chrono.en.configuration.createCasualConfiguration(true));
|
|
370
|
+
testSingleCase(chronoLittleEndian, "Dec. 21", new Date(2023, 12, 10), (result) => {
|
|
371
|
+
expect(result.start.get("year")).toBe(2021);
|
|
372
|
+
expect(result.start.get("month")).toBe(12);
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
|
|
353
376
|
test("Test - Impossible Dates (Strict Mode)", () => {
|
|
354
377
|
testUnexpectedResult(chrono.strict, "August 32, 2014");
|
|
355
378
|
|
|
@@ -320,3 +320,25 @@ test("Test - After with reference", () => {
|
|
|
320
320
|
expect(result.start.get("day")).toBe(18);
|
|
321
321
|
});
|
|
322
322
|
});
|
|
323
|
+
|
|
324
|
+
test("Test - Plus after reference", () => {
|
|
325
|
+
testSingleCase(chrono, "next tuesday +10 days", new Date(2023, 12 - 1, 29), (result) => {
|
|
326
|
+
expect(result.start.get("year")).toBe(2024);
|
|
327
|
+
expect(result.start.get("month")).toBe(1);
|
|
328
|
+
expect(result.start.get("day")).toBe(12);
|
|
329
|
+
});
|
|
330
|
+
|
|
331
|
+
testSingleCase(chrono, "2023-12-29 -10days", new Date(2023, 12 - 1, 29), (result) => {
|
|
332
|
+
expect(result.start.get("year")).toBe(2023);
|
|
333
|
+
expect(result.start.get("month")).toBe(12);
|
|
334
|
+
expect(result.start.get("day")).toBe(19);
|
|
335
|
+
});
|
|
336
|
+
|
|
337
|
+
testSingleCase(chrono, "now + 40minutes", new Date(2023, 12 - 1, 29, 8, 30), (result) => {
|
|
338
|
+
expect(result.start.get("year")).toBe(2023);
|
|
339
|
+
expect(result.start.get("month")).toBe(12);
|
|
340
|
+
expect(result.start.get("day")).toBe(29);
|
|
341
|
+
expect(result.start.get("hour")).toBe(9);
|
|
342
|
+
expect(result.start.get("minute")).toBe(10);
|
|
343
|
+
});
|
|
344
|
+
});
|
|
@@ -75,6 +75,10 @@ test("Test - Skip version number pattern", () => {
|
|
|
75
75
|
testUnexpectedResult(chrono, "Version: 1.10.30");
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
+
test("Test - Skip incorrect reference", () => {
|
|
79
|
+
testUnexpectedResult(chrono, "for the year");
|
|
80
|
+
});
|
|
81
|
+
|
|
78
82
|
test("Test - Date with version number pattern", () => {
|
|
79
83
|
testSingleCase(chrono.en, "1.5.3 - 2015-09-24", (result) => {
|
|
80
84
|
expect(result.text).toBe("2015-09-24");
|
|
@@ -71,7 +71,7 @@ test("Test - Past relative expressions", () => {
|
|
|
71
71
|
|
|
72
72
|
test("Test - Future relative expressions", () => {
|
|
73
73
|
// next hour
|
|
74
|
-
testSingleCase(chrono.nl, "
|
|
74
|
+
testSingleCase(chrono.nl, "komend uur", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
75
75
|
expect(result.text).toBe(text);
|
|
76
76
|
expect(result.start.get("year")).toBe(2016);
|
|
77
77
|
expect(result.start.get("month")).toBe(10);
|
|
@@ -111,6 +111,20 @@ test("Test - Future relative expressions", () => {
|
|
|
111
111
|
expect(result.start.isCertain("hour")).toBe(false);
|
|
112
112
|
});
|
|
113
113
|
|
|
114
|
+
// next month
|
|
115
|
+
testSingleCase(chrono.nl, "aankomende maand", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
116
|
+
expect(result.text).toBe(text);
|
|
117
|
+
expect(result.start.get("year")).toBe(2016);
|
|
118
|
+
expect(result.start.get("month")).toBe(11);
|
|
119
|
+
expect(result.start.get("day")).toBe(1);
|
|
120
|
+
expect(result.start.get("hour")).toBe(12);
|
|
121
|
+
|
|
122
|
+
expect(result.start.isCertain("year")).toBe(true);
|
|
123
|
+
expect(result.start.isCertain("month")).toBe(true);
|
|
124
|
+
expect(result.start.isCertain("day")).toBe(false);
|
|
125
|
+
expect(result.start.isCertain("hour")).toBe(false);
|
|
126
|
+
});
|
|
127
|
+
|
|
114
128
|
// next year
|
|
115
129
|
testSingleCase(chrono.nl, "volgend jaar", new Date(2020, 11 - 1, 22, 12, 11, 32, 6), (result, text) => {
|
|
116
130
|
expect(result.text).toBe(text);
|
|
@@ -137,7 +151,7 @@ test("Test - Relative date components' certainty", () => {
|
|
|
137
151
|
const refDate = new Date(2016, 10 - 1, 7, 12);
|
|
138
152
|
|
|
139
153
|
// next hour
|
|
140
|
-
testSingleCase(chrono.nl, "
|
|
154
|
+
testSingleCase(chrono.nl, "komend uur", refDate, (result, text) => {
|
|
141
155
|
expect(result.text).toBe(text);
|
|
142
156
|
expect(result.start.get("year")).toBe(2016);
|
|
143
157
|
expect(result.start.get("month")).toBe(10);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ENMergeRelativeDateRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/en/refiners/ENMergeRelativeDateRefiner.ts"],"names":[],"mappings":";;AAAA,uEAAkE;AAClE,8CAA2F;AAC3F,4CAA8C;AAC9C,wDAA4D;AAE5D,SAAS,8BAA8B,CAAC,MAAqB;IACzD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC;AAC3D,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAqB;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC;AAC3D,CAAC;AAOD,MAAqB,0BAA2B,SAAQ,iCAAc;IAClE,cAAc;QACV,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,kBAAkB,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QAE3F,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAC;SAChB;QAID,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,EAAE;YAChG,OAAO,KAAK,CAAC;SAChB;QAGD,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9G,CAAC;IAED,YAAY,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QACrF,IAAI,SAAS,GAAG,0BAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,8BAA8B,CAAC,aAAa,CAAC,EAAE;YAC/C,SAAS,GAAG,4BAAgB,CAAC,SAAS,CAAC,CAAC;SAC3C;QAED,MAAM,UAAU,GAAG,2BAAiB,CAAC,2BAA2B,CAC5D,IAAI,+BAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAClD,SAAS,CACZ,CAAC;QAEF,OAAO,IAAI,uBAAa,CACpB,UAAU,CAAC,SAAS,EACpB,aAAa,CAAC,KAAK,EACnB,GAAG,aAAa,CAAC,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,EACvD,UAAU,CACb,CAAC;IACN,CAAC;CACJ;AAvCD,6CAuCC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ENMergeRelativeDateRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/en/refiners/ENMergeRelativeDateRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,SAAS,8BAA8B,CAAC,MAAqB;IACzD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC;AAC3D,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAqB;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC;AAC3D,CAAC;AAOD,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,cAAc;IAClE,cAAc;QACV,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,kBAAkB,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QAE3F,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAC;SAChB;QAID,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,EAAE;YAChG,OAAO,KAAK,CAAC;SAChB;QAGD,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9G,CAAC;IAED,YAAY,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QACrF,IAAI,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,8BAA8B,CAAC,aAAa,CAAC,EAAE;YAC/C,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;SAC3C;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,2BAA2B,CAC5D,IAAI,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAClD,SAAS,CACZ,CAAC;QAEF,OAAO,IAAI,aAAa,CACpB,UAAU,CAAC,SAAS,EACpB,aAAa,CAAC,KAAK,EACnB,GAAG,aAAa,CAAC,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,EACvD,UAAU,CACb,CAAC;IACN,CAAC;CACJ"}
|