chrono-node 2.7.7 → 2.7.9
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/parsers/SlashDateFormatParser.js +1 -1
- package/dist/cjs/common/parsers/SlashDateFormatParser.js.map +1 -1
- package/dist/cjs/locales/en/configuration.js +2 -0
- package/dist/cjs/locales/en/configuration.js.map +1 -1
- package/dist/cjs/locales/en/parsers/ENCasualDateParser.js +4 -1
- package/dist/cjs/locales/en/parsers/ENCasualDateParser.js.map +1 -1
- package/dist/cjs/locales/en/parsers/ENMonthNameParser.js +1 -1
- package/dist/cjs/locales/en/parsers/ENMonthNameParser.js.map +1 -1
- package/dist/cjs/locales/en/parsers/ENTimeExpressionParser.d.ts +2 -1
- package/dist/cjs/locales/en/parsers/ENTimeExpressionParser.js +7 -0
- package/dist/cjs/locales/en/parsers/ENTimeExpressionParser.js.map +1 -1
- package/dist/cjs/locales/en/parsers/ENWeekdayParser.d.ts +1 -1
- package/dist/cjs/locales/en/parsers/ENWeekdayParser.js +24 -3
- package/dist/cjs/locales/en/parsers/ENWeekdayParser.js.map +1 -1
- package/dist/cjs/locales/en/refiners/ENUnlikelyFormatFilter.d.ts +6 -0
- package/dist/cjs/locales/en/refiners/ENUnlikelyFormatFilter.js +35 -0
- package/dist/cjs/locales/en/refiners/ENUnlikelyFormatFilter.js.map +1 -0
- package/dist/cjs/locales/it/constants.d.ts +28 -0
- package/dist/cjs/locales/it/constants.js +165 -0
- package/dist/cjs/locales/it/constants.js.map +1 -0
- package/dist/cjs/locales/it/index.d.ts +9 -0
- package/dist/cjs/locales/it/index.js +66 -0
- package/dist/cjs/locales/it/index.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITCasualDateParser.d.ts +7 -0
- package/dist/cjs/locales/it/parsers/ITCasualDateParser.js +65 -0
- package/dist/cjs/locales/it/parsers/ITCasualDateParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITCasualTimeParser.d.ts +6 -0
- package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js +47 -0
- package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITCasualYearMonthDayParser.d.ts +10 -0
- package/dist/cjs/locales/it/parsers/ITCasualYearMonthDayParser.js +35 -0
- package/dist/cjs/locales/it/parsers/ITCasualYearMonthDayParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +7 -0
- package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js +57 -0
- package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +6 -0
- package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js +59 -0
- package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITMonthNameParser.d.ts +6 -0
- package/dist/cjs/locales/it/parsers/ITMonthNameParser.js +43 -0
- package/dist/cjs/locales/it/parsers/ITMonthNameParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.d.ts +7 -0
- package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js +57 -0
- package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.d.ts +7 -0
- package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.js +18 -0
- package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.d.ts +10 -0
- package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js +50 -0
- package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +9 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js +24 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +7 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +26 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +9 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js +23 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +7 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js +19 -0
- package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITWeekdayParser.d.ts +7 -0
- package/dist/cjs/locales/it/parsers/ITWeekdayParser.js +43 -0
- package/dist/cjs/locales/it/parsers/ITWeekdayParser.js.map +1 -0
- package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +4 -0
- package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js +13 -0
- package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -0
- package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +4 -0
- package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js +13 -0
- package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -0
- package/dist/cjs/locales/it/refiners/ITMergeRelativeDateRefiner.d.ts +7 -0
- package/dist/cjs/locales/it/refiners/ITMergeRelativeDateRefiner.js +36 -0
- package/dist/cjs/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +1 -0
- package/dist/cjs/locales/ja/parsers/JPCasualDateParser.js +4 -4
- package/dist/cjs/locales/ja/refiners/JPMergeDateRangeRefiner.js +1 -1
- package/dist/cjs/locales/ja/refiners/JPMergeDateRangeRefiner.js.map +1 -1
- package/dist/cjs/results.d.ts +2 -0
- package/dist/cjs/results.js +16 -0
- package/dist/cjs/results.js.map +1 -1
- package/dist/esm/common/parsers/SlashDateFormatParser.js +1 -1
- package/dist/esm/common/parsers/SlashDateFormatParser.js.map +1 -1
- package/dist/esm/locales/en/configuration.js +2 -0
- package/dist/esm/locales/en/configuration.js.map +1 -1
- package/dist/esm/locales/en/parsers/ENCasualDateParser.js +4 -1
- package/dist/esm/locales/en/parsers/ENCasualDateParser.js.map +1 -1
- package/dist/esm/locales/en/parsers/ENMonthNameParser.js +1 -1
- package/dist/esm/locales/en/parsers/ENMonthNameParser.js.map +1 -1
- package/dist/esm/locales/en/parsers/ENTimeExpressionParser.d.ts +2 -1
- package/dist/esm/locales/en/parsers/ENTimeExpressionParser.js +7 -0
- package/dist/esm/locales/en/parsers/ENTimeExpressionParser.js.map +1 -1
- package/dist/esm/locales/en/parsers/ENWeekdayParser.d.ts +1 -1
- package/dist/esm/locales/en/parsers/ENWeekdayParser.js +24 -3
- package/dist/esm/locales/en/parsers/ENWeekdayParser.js.map +1 -1
- package/dist/esm/locales/en/refiners/ENUnlikelyFormatFilter.d.ts +6 -0
- package/dist/esm/locales/en/refiners/ENUnlikelyFormatFilter.js +32 -0
- package/dist/esm/locales/en/refiners/ENUnlikelyFormatFilter.js.map +1 -0
- package/dist/esm/locales/it/constants.d.ts +28 -0
- package/dist/esm/locales/it/constants.js +200 -0
- package/dist/esm/locales/it/constants.js.map +1 -0
- package/dist/esm/locales/it/index.d.ts +9 -0
- package/dist/esm/locales/it/index.js +56 -0
- package/dist/esm/locales/it/index.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITCasualDateParser.d.ts +7 -0
- package/dist/esm/locales/it/parsers/ITCasualDateParser.js +40 -0
- package/dist/esm/locales/it/parsers/ITCasualDateParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITCasualTimeParser.d.ts +6 -0
- package/dist/esm/locales/it/parsers/ITCasualTimeParser.js +41 -0
- package/dist/esm/locales/it/parsers/ITCasualTimeParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITCasualYearMonthDayParser.d.ts +10 -0
- package/dist/esm/locales/it/parsers/ITCasualYearMonthDayParser.js +32 -0
- package/dist/esm/locales/it/parsers/ITCasualYearMonthDayParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +7 -0
- package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js +54 -0
- package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +6 -0
- package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js +56 -0
- package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITMonthNameParser.d.ts +6 -0
- package/dist/esm/locales/it/parsers/ITMonthNameParser.js +40 -0
- package/dist/esm/locales/it/parsers/ITMonthNameParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.d.ts +7 -0
- package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js +51 -0
- package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.d.ts +7 -0
- package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.js +15 -0
- package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITTimeExpressionParser.d.ts +10 -0
- package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js +47 -0
- package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +9 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js +21 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +7 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +23 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +9 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js +20 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +7 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js +16 -0
- package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITWeekdayParser.d.ts +7 -0
- package/dist/esm/locales/it/parsers/ITWeekdayParser.js +40 -0
- package/dist/esm/locales/it/parsers/ITWeekdayParser.js.map +1 -0
- package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +4 -0
- package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js +7 -0
- package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -0
- package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +4 -0
- package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js +7 -0
- package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -0
- package/dist/esm/locales/it/refiners/ITMergeRelativeDateRefiner.d.ts +7 -0
- package/dist/esm/locales/it/refiners/ITMergeRelativeDateRefiner.js +33 -0
- package/dist/esm/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +1 -0
- package/dist/esm/locales/ja/parsers/JPCasualDateParser.js +4 -4
- package/dist/esm/locales/ja/refiners/JPMergeDateRangeRefiner.js +1 -1
- package/dist/esm/locales/ja/refiners/JPMergeDateRangeRefiner.js.map +1 -1
- package/dist/esm/results.d.ts +2 -0
- package/dist/esm/results.js +16 -0
- package/dist/esm/results.js.map +1 -1
- package/package.json +1 -1
- package/src/common/parsers/SlashDateFormatParser.ts +1 -1
- package/src/locales/en/configuration.ts +2 -0
- package/src/locales/en/parsers/ENCasualDateParser.ts +5 -1
- package/src/locales/en/parsers/ENMonthNameParser.ts +1 -1
- package/src/locales/en/parsers/ENTimeExpressionParser.ts +13 -1
- package/src/locales/en/parsers/ENWeekdayParser.ts +28 -4
- package/src/locales/en/refiners/ENUnlikelyFormatFilter.ts +44 -0
- package/src/locales/it/constants.ts +230 -0
- package/src/locales/it/index.ts +99 -0
- package/src/locales/it/parsers/ITCasualDateParser.ts +53 -0
- package/src/locales/it/parsers/ITCasualTimeParser.ts +50 -0
- package/src/locales/it/parsers/ITCasualYearMonthDayParser.ts +49 -0
- package/src/locales/it/parsers/ITMonthNameLittleEndianParser.ts +69 -0
- package/src/locales/it/parsers/ITMonthNameMiddleEndianParser.ts +78 -0
- package/src/locales/it/parsers/ITMonthNameParser.ts +62 -0
- package/src/locales/it/parsers/ITRelativeDateFormatParser.ts +71 -0
- package/src/locales/it/parsers/ITSlashMonthFormatParser.ts +26 -0
- package/src/locales/it/parsers/ITTimeExpressionParser.ts +55 -0
- package/src/locales/it/parsers/ITTimeUnitAgoFormatParser.ts +25 -0
- package/src/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.ts +30 -0
- package/src/locales/it/parsers/ITTimeUnitLaterFormatParser.ts +27 -0
- package/src/locales/it/parsers/ITTimeUnitWithinFormatParser.ts +26 -0
- package/src/locales/it/parsers/ITWeekdayParser.ts +47 -0
- package/src/locales/it/refiners/ITMergeDateRangeRefiner.ts +17 -0
- package/src/locales/it/refiners/ITMergeDateTimeRefiner.ts +13 -0
- package/src/locales/it/refiners/ITMergeRelativeDateRefiner.ts +58 -0
- package/src/locales/ja/parsers/JPCasualDateParser.ts +4 -4
- package/src/locales/ja/refiners/JPMergeDateRangeRefiner.ts +1 -1
- package/src/results.ts +18 -0
- package/test/en/en_casual.test.ts +4 -0
- package/test/en/en_month.test.ts +22 -1
- package/test/en/en_slash.test.ts +4 -0
- package/test/en/en_time_exp.test.ts +9 -0
- package/test/en/en_time_units_ago.test.ts +4 -0
- package/test/en/en_time_units_casual_relative.test.ts +5 -0
- package/test/en/en_time_units_later.test.ts +1 -0
- package/test/en/en_time_units_within.test.ts +2 -0
- package/test/en/en_weekday.test.ts +43 -0
- package/test/ja/ja_casual.test.ts +8 -0
- package/test/ja/ja_standard.test.ts +19 -0
|
@@ -3,14 +3,14 @@ import dayjs from "dayjs";
|
|
|
3
3
|
import { Meridiem } from "../../../types";
|
|
4
4
|
import * as references from "../../../common/casualReferences";
|
|
5
5
|
|
|
6
|
-
const PATTERN =
|
|
6
|
+
const PATTERN = /今日|きょう|本日|ほんじつ|昨日|きのう|明日|あした|今夜|こんや|今夕|こんゆう|今晩|こんばん|今朝|けさ/i;
|
|
7
7
|
|
|
8
8
|
function normalizeTextToKanji(text: string) {
|
|
9
9
|
switch (text) {
|
|
10
10
|
case "きょう":
|
|
11
11
|
return "今日";
|
|
12
|
-
case "
|
|
13
|
-
return "
|
|
12
|
+
case "ほんじつ":
|
|
13
|
+
return "本日";
|
|
14
14
|
case "きのう":
|
|
15
15
|
return "昨日";
|
|
16
16
|
case "あした":
|
|
@@ -46,8 +46,8 @@ export default class JPCasualDateParser implements Parser {
|
|
|
46
46
|
case "明日":
|
|
47
47
|
return references.tomorrow(context.reference);
|
|
48
48
|
|
|
49
|
+
case "本日":
|
|
49
50
|
case "今日":
|
|
50
|
-
case "当日":
|
|
51
51
|
return references.today(context.reference);
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -8,6 +8,6 @@ import AbstractMergeDateRangeRefiner from "../../../common/refiners/AbstractMerg
|
|
|
8
8
|
*/
|
|
9
9
|
export default class JPMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner {
|
|
10
10
|
patternBetween(): RegExp {
|
|
11
|
-
return /^\s*(
|
|
11
|
+
return /^\s*(から|ー|-|~|~)\s*$/i;
|
|
12
12
|
}
|
|
13
13
|
}
|
package/src/results.ts
CHANGED
|
@@ -216,7 +216,9 @@ export class ParsingComponents implements ParsedComponents {
|
|
|
216
216
|
}
|
|
217
217
|
|
|
218
218
|
const components = new ParsingComponents(reference);
|
|
219
|
+
components.addTag("result/relativeDate");
|
|
219
220
|
if (fragments["hour"] || fragments["minute"] || fragments["second"]) {
|
|
221
|
+
components.addTag("result/relativeDateAndTime");
|
|
220
222
|
assignSimilarTime(components, date);
|
|
221
223
|
assignSimilarDate(components, date);
|
|
222
224
|
if (reference.timezoneOffset !== null) {
|
|
@@ -293,6 +295,22 @@ export class ParsingResult implements ParsedResult {
|
|
|
293
295
|
return this.start.date();
|
|
294
296
|
}
|
|
295
297
|
|
|
298
|
+
addTag(tag: string): ParsingResult {
|
|
299
|
+
this.start.addTag(tag);
|
|
300
|
+
if (this.end) {
|
|
301
|
+
this.end.addTag(tag);
|
|
302
|
+
}
|
|
303
|
+
return this;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
addTags(tags: string[] | Set<string>): ParsingResult {
|
|
307
|
+
this.start.addTags(tags);
|
|
308
|
+
if (this.end) {
|
|
309
|
+
this.end.addTags(tags);
|
|
310
|
+
}
|
|
311
|
+
return this;
|
|
312
|
+
}
|
|
313
|
+
|
|
296
314
|
tags(): Set<string> {
|
|
297
315
|
const combinedTags: Set<string> = new Set(this.start.tags());
|
|
298
316
|
if (this.end) {
|
|
@@ -412,6 +412,10 @@ test("Test - Random negative text", () => {
|
|
|
412
412
|
|
|
413
413
|
testUnexpectedResult(chrono, "do I have the money");
|
|
414
414
|
|
|
415
|
+
testUnexpectedResult(chrono, "I may by here. May the force be with you. Theresa may become PM soon.");
|
|
416
|
+
|
|
417
|
+
testUnexpectedResult(chrono, "XXX is set to be released in the second half of 2025");
|
|
418
|
+
|
|
415
419
|
testUnexpectedResult(chrono.casual, "do I have the money");
|
|
416
420
|
|
|
417
421
|
testUnexpectedResult(chrono.en.GB, "do I have the money");
|
package/test/en/en_month.test.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as chrono from "../../src";
|
|
2
|
-
import { testSingleCase } from "../test_util";
|
|
2
|
+
import { testSingleCase, testUnexpectedResult } from "../test_util";
|
|
3
3
|
|
|
4
4
|
test("Test - Month-Year expression", function () {
|
|
5
5
|
testSingleCase(chrono, "September 2012", (result) => {
|
|
@@ -69,6 +69,14 @@ test("Test - Month-Year expression", function () {
|
|
|
69
69
|
expect(result.start).toBeDate(new Date(2012, 9 - 1, 1, 12));
|
|
70
70
|
});
|
|
71
71
|
|
|
72
|
+
testSingleCase(chrono, "in June of 2022", (result) => {
|
|
73
|
+
expect(result.text).toContain("June of 2022");
|
|
74
|
+
|
|
75
|
+
expect(result.start).not.toBeNull();
|
|
76
|
+
expect(result.start.get("year")).toBe(2022);
|
|
77
|
+
expect(result.start.get("month")).toBe(6);
|
|
78
|
+
});
|
|
79
|
+
|
|
72
80
|
testSingleCase(chrono, "Statement of comprehensive income for the year ended Dec. 2021", (result) => {
|
|
73
81
|
expect(result.text).toBe("Dec. 2021");
|
|
74
82
|
|
|
@@ -272,3 +280,16 @@ test("Test - Month should not have timezone", () => {
|
|
|
272
280
|
}
|
|
273
281
|
);
|
|
274
282
|
});
|
|
283
|
+
|
|
284
|
+
test("Test - Month only in different context", () => {
|
|
285
|
+
testSingleCase(chrono.casual, "May", (result) => {
|
|
286
|
+
expect(result.text).toContain("May");
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
testSingleCase(chrono.casual, "in May", (result) => {
|
|
290
|
+
expect(result.text).toContain("May");
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
testUnexpectedResult(chrono.casual, "The mountain may not move");
|
|
294
|
+
testUnexpectedResult(chrono.casual, "May not be correct");
|
|
295
|
+
});
|
package/test/en/en_slash.test.ts
CHANGED
|
@@ -17,6 +17,7 @@ test("Test - Single Expression (MM/dd/yyyy)", function () {
|
|
|
17
17
|
|
|
18
18
|
expect(result.index).toBe(0);
|
|
19
19
|
expect(result.text).toBe("8/10/2012");
|
|
20
|
+
expect(result.tags()).toContain("parser/SlashDateFormatParser");
|
|
20
21
|
|
|
21
22
|
expect(result.start.isCertain("day")).toBe(true);
|
|
22
23
|
expect(result.start.isCertain("month")).toBe(true);
|
|
@@ -161,11 +162,13 @@ test("Test - Range Expression", function () {
|
|
|
161
162
|
testSingleCase(chrono.en, "8/10/2012 - 8/15/2012", new Date(2012, 7, 10), (result) => {
|
|
162
163
|
expect(result.index).toBe(0);
|
|
163
164
|
expect(result.text).toBe("8/10/2012 - 8/15/2012");
|
|
165
|
+
expect(result.tags()).toContain("parser/SlashDateFormatParser");
|
|
164
166
|
|
|
165
167
|
expect(result.start).not.toBeNull();
|
|
166
168
|
expect(result.start.get("year")).toBe(2012);
|
|
167
169
|
expect(result.start.get("month")).toBe(8);
|
|
168
170
|
expect(result.start.get("day")).toBe(10);
|
|
171
|
+
expect(result.start.tags()).toContain("parser/SlashDateFormatParser");
|
|
169
172
|
|
|
170
173
|
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
|
|
171
174
|
|
|
@@ -173,6 +176,7 @@ test("Test - Range Expression", function () {
|
|
|
173
176
|
expect(result.end.get("year")).toBe(2012);
|
|
174
177
|
expect(result.end.get("month")).toBe(8);
|
|
175
178
|
expect(result.end.get("day")).toBe(15);
|
|
179
|
+
expect(result.end.tags()).toContain("parser/SlashDateFormatParser");
|
|
176
180
|
|
|
177
181
|
expect(result.end).toBeDate(new Date(2012, 8 - 1, 15, 12));
|
|
178
182
|
});
|
|
@@ -21,6 +21,9 @@ test("Test - Time expression", function () {
|
|
|
21
21
|
expect(result.start.get("minute")).toBe(32);
|
|
22
22
|
expect(result.start.get("second")).toBe(13);
|
|
23
23
|
expect(result.start.get("meridiem")).toBe(Meridiem.PM);
|
|
24
|
+
|
|
25
|
+
expect(result.tags()).toContain("parser/ENTimeExpressionParser");
|
|
26
|
+
expect(result.start.tags()).toContain("parser/ENTimeExpressionParser");
|
|
24
27
|
});
|
|
25
28
|
});
|
|
26
29
|
|
|
@@ -35,6 +38,9 @@ test("Test - Time expression after date", function () {
|
|
|
35
38
|
expect(result.start.get("hour")).toBe(14);
|
|
36
39
|
expect(result.start.get("minute")).toBe(15);
|
|
37
40
|
expect(result.start.get("meridiem")).toBe(Meridiem.PM);
|
|
41
|
+
|
|
42
|
+
expect(result.tags()).toContain("parser/ENTimeExpressionParser");
|
|
43
|
+
expect(result.start.tags()).toContain("parser/ENTimeExpressionParser");
|
|
38
44
|
});
|
|
39
45
|
|
|
40
46
|
testSingleCase(chrono, "05/31/2024.14:15", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
@@ -115,16 +121,19 @@ test("Test - Time expression before date", () => {
|
|
|
115
121
|
test("Test - Time range expression", function () {
|
|
116
122
|
testSingleCase(chrono, "10:00:00 - 21:45:00", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
117
123
|
expect(result.text).toBe(text);
|
|
124
|
+
expect(result.tags()).toContain("parser/ENTimeExpressionParser");
|
|
118
125
|
|
|
119
126
|
expect(result.start.get("hour")).toBe(10);
|
|
120
127
|
expect(result.start.get("minute")).toBe(0);
|
|
121
128
|
expect(result.start.get("second")).toBe(0);
|
|
122
129
|
expect(result.start.get("meridiem")).toBe(Meridiem.AM);
|
|
130
|
+
expect(result.start.tags()).toContain("parser/ENTimeExpressionParser");
|
|
123
131
|
|
|
124
132
|
expect(result.end.get("hour")).toBe(21);
|
|
125
133
|
expect(result.end.get("minute")).toBe(45);
|
|
126
134
|
expect(result.end.get("second")).toBe(0);
|
|
127
135
|
expect(result.end.get("meridiem")).toBe(Meridiem.PM);
|
|
136
|
+
expect(result.end.tags()).toContain("parser/ENTimeExpressionParser");
|
|
128
137
|
});
|
|
129
138
|
|
|
130
139
|
testSingleCase(chrono, "10:00:00 until 21:45:00", new Date(2016, 10 - 1, 1, 11), (result, text) => {
|
|
@@ -11,6 +11,7 @@ test("Test - Single Expression", function () {
|
|
|
11
11
|
|
|
12
12
|
expect(result.index).toBe(0);
|
|
13
13
|
expect(result.text).toBe("5 days ago");
|
|
14
|
+
expect(result.tags()).toContain("result/relativeDate");
|
|
14
15
|
|
|
15
16
|
expect(result.start).toBeDate(new Date(2012, 8 - 1, 5));
|
|
16
17
|
});
|
|
@@ -30,6 +31,9 @@ test("Test - Single Expression", function () {
|
|
|
30
31
|
testSingleCase(chrono, "15 minute ago", new Date(2012, 7, 10, 12, 14), (result) => {
|
|
31
32
|
expect(result.index).toBe(0);
|
|
32
33
|
expect(result.text).toBe("15 minute ago");
|
|
34
|
+
expect(result.tags()).toContain("result/relativeDate");
|
|
35
|
+
expect(result.tags()).toContain("result/relativeDateAndTime");
|
|
36
|
+
|
|
33
37
|
expect(result.start.get("hour")).toBe(11);
|
|
34
38
|
expect(result.start.get("minute")).toBe(59);
|
|
35
39
|
expect(result.start.get("meridiem")).toBe(Meridiem.AM);
|
|
@@ -5,6 +5,8 @@ import ENTimeUnitCasualRelativeFormatParser from "../../src/locales/en/parsers/E
|
|
|
5
5
|
test("Test - Positive time units", () => {
|
|
6
6
|
testSingleCase(chrono, "next 2 weeks", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
7
7
|
expect(result.text).toBe(text);
|
|
8
|
+
expect(result.tags()).toContain("result/relativeDate");
|
|
9
|
+
|
|
8
10
|
expect(result.start.get("year")).toBe(2016);
|
|
9
11
|
expect(result.start.get("month")).toBe(10);
|
|
10
12
|
expect(result.start.get("day")).toBe(15);
|
|
@@ -44,6 +46,9 @@ test("Test - Positive time units", () => {
|
|
|
44
46
|
|
|
45
47
|
testSingleCase(chrono, "after an hour", new Date(2016, 10 - 1, 1, 15), (result, text) => {
|
|
46
48
|
expect(result.text).toBe(text);
|
|
49
|
+
expect(result.tags()).toContain("result/relativeDate");
|
|
50
|
+
expect(result.tags()).toContain("result/relativeDateAndTime");
|
|
51
|
+
|
|
47
52
|
expect(result.start.get("year")).toBe(2016);
|
|
48
53
|
expect(result.start.get("month")).toBe(10);
|
|
49
54
|
expect(result.start.get("day")).toBe(1);
|
|
@@ -11,6 +11,7 @@ test("Test - Later Expression", function () {
|
|
|
11
11
|
|
|
12
12
|
expect(result.index).toBe(0);
|
|
13
13
|
expect(result.text).toBe("2 days later");
|
|
14
|
+
expect(result.tags()).toContain("result/relativeDate");
|
|
14
15
|
|
|
15
16
|
expect(result.start.isCertain("day")).toBe(true);
|
|
16
17
|
expect(result.start.isCertain("month")).toBe(true);
|
|
@@ -6,6 +6,7 @@ test("Test - The normal within expression", () => {
|
|
|
6
6
|
testSingleCase(chrono, "we have to make something in 5 days.", new Date(2012, 7, 10), (result) => {
|
|
7
7
|
expect(result.index).toBe(26);
|
|
8
8
|
expect(result.text).toBe("in 5 days");
|
|
9
|
+
expect(result.tags()).toContain("result/relativeDate");
|
|
9
10
|
|
|
10
11
|
expect(result.start).not.toBeNull();
|
|
11
12
|
expect(result.start.get("year")).toBe(2012);
|
|
@@ -412,4 +413,5 @@ test("Test - Forward date option", () => {
|
|
|
412
413
|
test("Test - Negative cases", () => {
|
|
413
414
|
testUnexpectedResult(chrono, "in am");
|
|
414
415
|
testUnexpectedResult(chrono, "in them");
|
|
416
|
+
testUnexpectedResult(chrono, "the second half");
|
|
415
417
|
});
|
|
@@ -219,6 +219,49 @@ test("Test - Weekday casual `Next` guessing", function () {
|
|
|
219
219
|
}
|
|
220
220
|
});
|
|
221
221
|
|
|
222
|
+
test("Test - Casual 'weekend' and 'weekday'", () => {
|
|
223
|
+
{
|
|
224
|
+
const refDateOnFriday = new Date(2024, 10 - 1, 18, 12, 0);
|
|
225
|
+
testSingleCase(chrono.casual, "last weekend", refDateOnFriday, (result, text) => {
|
|
226
|
+
expect(result.text).toBe(text);
|
|
227
|
+
expect(result.start).toBeDate(new Date(2024, 10 - 1, 13, 12)); // Sunday
|
|
228
|
+
});
|
|
229
|
+
testSingleCase(chrono.casual, "this weekend", refDateOnFriday, (result, text) => {
|
|
230
|
+
expect(result.text).toBe(text);
|
|
231
|
+
expect(result.start).toBeDate(new Date(2024, 10 - 1, 19, 12)); // Saturday
|
|
232
|
+
});
|
|
233
|
+
testSingleCase(chrono.casual, "next weekend", refDateOnFriday, (result, text) => {
|
|
234
|
+
expect(result.text).toBe(text);
|
|
235
|
+
expect(result.start).toBeDate(new Date(2024, 10 - 1, 26, 12)); // Saturday
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
test("Test - Casual 'weekday' mentioning", () => {
|
|
241
|
+
{
|
|
242
|
+
const refDateOnFriday = new Date(2024, 10 - 1, 18, 12, 0);
|
|
243
|
+
testSingleCase(chrono.casual, "last weekday", refDateOnFriday, (result, text) => {
|
|
244
|
+
expect(result.text).toBe(text);
|
|
245
|
+
expect(result.start).toBeDate(new Date(2024, 10 - 1, 17, 12)); // Thursday
|
|
246
|
+
});
|
|
247
|
+
testSingleCase(chrono.casual, "next weekday", refDateOnFriday, (result, text) => {
|
|
248
|
+
expect(result.text).toBe(text);
|
|
249
|
+
expect(result.start).toBeDate(new Date(2024, 10 - 1, 21, 12)); // Monday
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
{
|
|
253
|
+
const refDateOnSaturday = new Date(2024, 10 - 1, 19, 12, 0);
|
|
254
|
+
testSingleCase(chrono.casual, "last weekday", refDateOnSaturday, (result, text) => {
|
|
255
|
+
expect(result.text).toBe(text);
|
|
256
|
+
expect(result.start).toBeDate(new Date(2024, 10 - 1, 18, 12)); // Friday
|
|
257
|
+
});
|
|
258
|
+
testSingleCase(chrono.casual, "next weekday", refDateOnSaturday, (result, text) => {
|
|
259
|
+
expect(result.text).toBe(text);
|
|
260
|
+
expect(result.start).toBeDate(new Date(2024, 10 - 1, 21, 12)); // Monday
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
|
|
222
265
|
test("Test - Weekday With Casual Time", function () {
|
|
223
266
|
testSingleCase(chrono.casual, "Lets meet on Tuesday morning", new Date(2015, 3, 18), (result) => {
|
|
224
267
|
expect(result.index).toBe(10);
|
|
@@ -10,6 +10,14 @@ test("Test - Single Expression", function () {
|
|
|
10
10
|
expect(result.text).toBe("きょう");
|
|
11
11
|
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
|
|
12
12
|
});
|
|
13
|
+
testSingleCase(chrono.ja, "本日はお日柄もよく", new Date(2012, 8 - 1, 10, 12), (result) => {
|
|
14
|
+
expect(result.text).toBe("本日");
|
|
15
|
+
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
|
|
16
|
+
});
|
|
17
|
+
testSingleCase(chrono.ja, "ほんじつはお日柄もよく", new Date(2012, 8 - 1, 10, 12), (result) => {
|
|
18
|
+
expect(result.text).toBe("ほんじつ");
|
|
19
|
+
expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
|
|
20
|
+
});
|
|
13
21
|
|
|
14
22
|
testSingleCase(chrono.ja, "昨日の全国観測値ランキング", new Date(2012, 8 - 1, 10, 12), (result) => {
|
|
15
23
|
expect(result.text).toBe("昨日");
|
|
@@ -213,4 +213,23 @@ test("Test - Range Expression", function () {
|
|
|
213
213
|
|
|
214
214
|
expect(result.end).toBeDate(new Date(2014, 1 - 1, 7, 12));
|
|
215
215
|
});
|
|
216
|
+
|
|
217
|
+
testSingleCase(chrono.ja, "2013年12月26日 ~ 2014年1月7日", new Date(2012, 8 - 1, 10), (result) => {
|
|
218
|
+
expect(result.index).toBe(0);
|
|
219
|
+
expect(result.text).toBe("2013年12月26日 ~ 2014年1月7日");
|
|
220
|
+
|
|
221
|
+
expect(result.start).not.toBeNull();
|
|
222
|
+
expect(result.start.get("year")).toBe(2013);
|
|
223
|
+
expect(result.start.get("month")).toBe(12);
|
|
224
|
+
expect(result.start.get("day")).toBe(26);
|
|
225
|
+
|
|
226
|
+
expect(result.start).toBeDate(new Date(2013, 12 - 1, 26, 12));
|
|
227
|
+
|
|
228
|
+
expect(result.end).not.toBeNull();
|
|
229
|
+
expect(result.end.get("year")).toBe(2014);
|
|
230
|
+
expect(result.end.get("month")).toBe(1);
|
|
231
|
+
expect(result.end.get("day")).toBe(7);
|
|
232
|
+
|
|
233
|
+
expect(result.end).toBeDate(new Date(2014, 1 - 1, 7, 12));
|
|
234
|
+
});
|
|
216
235
|
});
|