chrono-node 2.6.4 → 2.6.6
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/AbstractTimeExpressionParser.js +2 -2
- package/dist/cjs/common/parsers/AbstractTimeExpressionParser.js.map +1 -1
- package/dist/cjs/index.d.ts +4 -4
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/locales/de/index.d.ts +2 -2
- package/dist/cjs/locales/de/index.js +3 -1
- package/dist/cjs/locales/de/index.js.map +1 -1
- package/dist/cjs/locales/en/configuration.js +5 -6
- package/dist/cjs/locales/en/configuration.js.map +1 -1
- package/dist/cjs/locales/en/index.d.ts +2 -2
- package/dist/cjs/locales/en/index.js +3 -1
- package/dist/cjs/locales/en/index.js.map +1 -1
- package/dist/cjs/locales/en/parsers/ENCasualTimeParser.d.ts +1 -1
- package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.d.ts +1 -1
- package/dist/cjs/locales/es/index.d.ts +2 -2
- package/dist/cjs/locales/es/index.js +3 -1
- package/dist/cjs/locales/es/index.js.map +1 -1
- package/dist/cjs/locales/es/parsers/ESCasualTimeParser.d.ts +1 -1
- package/dist/cjs/locales/fr/index.d.ts +2 -2
- package/dist/cjs/locales/fr/index.js +3 -1
- package/dist/cjs/locales/fr/index.js.map +1 -1
- package/dist/cjs/locales/fr/refiners/FRMergeDateRangeRefiner.js +1 -1
- package/dist/cjs/locales/fr/refiners/FRMergeDateRangeRefiner.js.map +1 -1
- package/dist/cjs/locales/fr/refiners/FRMergeDateTimeRefiner.js +1 -1
- package/dist/cjs/locales/fr/refiners/FRMergeDateTimeRefiner.js.map +1 -1
- package/dist/cjs/locales/ja/index.d.ts +2 -2
- package/dist/cjs/locales/ja/index.js +3 -1
- package/dist/cjs/locales/ja/index.js.map +1 -1
- package/dist/cjs/locales/ja/parsers/JPCasualDateParser.d.ts +1 -1
- package/dist/cjs/locales/ja/parsers/JPStandardParser.d.ts +1 -1
- package/dist/cjs/locales/nl/index.d.ts +2 -2
- package/dist/cjs/locales/nl/index.js +3 -1
- package/dist/cjs/locales/nl/index.js.map +1 -1
- package/dist/cjs/locales/nl/parsers/NLCasualTimeParser.d.ts +1 -1
- package/dist/cjs/locales/nl/parsers/NLMonthNameMiddleEndianParser.d.ts +1 -1
- package/dist/cjs/locales/nl/parsers/NLMonthNameParser.d.ts +1 -1
- package/dist/cjs/locales/pt/index.d.ts +2 -2
- package/dist/cjs/locales/pt/index.js +3 -1
- package/dist/cjs/locales/pt/index.js.map +1 -1
- package/dist/cjs/locales/pt/parsers/PTCasualTimeParser.d.ts +1 -1
- package/dist/cjs/locales/ru/index.d.ts +2 -2
- package/dist/cjs/locales/ru/index.js +3 -1
- package/dist/cjs/locales/ru/index.js.map +1 -1
- package/dist/cjs/locales/ru/parsers/RUCasualTimeParser.d.ts +1 -1
- package/dist/cjs/locales/uk/index.d.ts +2 -2
- package/dist/cjs/locales/uk/index.js +3 -1
- package/dist/cjs/locales/uk/index.js.map +1 -1
- package/dist/cjs/locales/uk/parsers/UKCasualTimeParser.d.ts +1 -1
- package/dist/cjs/locales/zh/hans/index.d.ts +2 -2
- package/dist/cjs/locales/zh/hans/index.js +3 -1
- package/dist/cjs/locales/zh/hans/index.js.map +1 -1
- package/dist/cjs/locales/zh/hant/index.d.ts +2 -2
- package/dist/cjs/locales/zh/hant/index.js +3 -1
- package/dist/cjs/locales/zh/hant/index.js.map +1 -1
- package/dist/esm/common/parsers/AbstractTimeExpressionParser.js +2 -2
- package/dist/esm/common/parsers/AbstractTimeExpressionParser.js.map +1 -1
- package/dist/esm/index.d.ts +4 -4
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/locales/de/index.d.ts +2 -2
- package/dist/esm/locales/de/index.js +2 -2
- package/dist/esm/locales/de/index.js.map +1 -1
- package/dist/esm/locales/en/configuration.js +5 -6
- package/dist/esm/locales/en/configuration.js.map +1 -1
- package/dist/esm/locales/en/index.d.ts +2 -2
- package/dist/esm/locales/en/index.js +2 -2
- package/dist/esm/locales/en/index.js.map +1 -1
- package/dist/esm/locales/en/parsers/ENCasualTimeParser.d.ts +1 -1
- package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.d.ts +1 -1
- package/dist/esm/locales/es/index.d.ts +2 -2
- package/dist/esm/locales/es/index.js +2 -2
- package/dist/esm/locales/es/index.js.map +1 -1
- package/dist/esm/locales/es/parsers/ESCasualTimeParser.d.ts +1 -1
- package/dist/esm/locales/fr/index.d.ts +2 -2
- package/dist/esm/locales/fr/index.js +2 -2
- package/dist/esm/locales/fr/index.js.map +1 -1
- package/dist/esm/locales/fr/refiners/FRMergeDateRangeRefiner.js +1 -1
- package/dist/esm/locales/fr/refiners/FRMergeDateRangeRefiner.js.map +1 -1
- package/dist/esm/locales/fr/refiners/FRMergeDateTimeRefiner.js +1 -1
- package/dist/esm/locales/fr/refiners/FRMergeDateTimeRefiner.js.map +1 -1
- package/dist/esm/locales/ja/index.d.ts +2 -2
- package/dist/esm/locales/ja/index.js +2 -2
- package/dist/esm/locales/ja/index.js.map +1 -1
- package/dist/esm/locales/ja/parsers/JPCasualDateParser.d.ts +1 -1
- package/dist/esm/locales/ja/parsers/JPStandardParser.d.ts +1 -1
- package/dist/esm/locales/nl/index.d.ts +2 -2
- package/dist/esm/locales/nl/index.js +2 -2
- package/dist/esm/locales/nl/index.js.map +1 -1
- package/dist/esm/locales/nl/parsers/NLCasualTimeParser.d.ts +1 -1
- package/dist/esm/locales/nl/parsers/NLMonthNameMiddleEndianParser.d.ts +1 -1
- package/dist/esm/locales/nl/parsers/NLMonthNameParser.d.ts +1 -1
- package/dist/esm/locales/pt/index.d.ts +2 -2
- package/dist/esm/locales/pt/index.js +2 -2
- package/dist/esm/locales/pt/index.js.map +1 -1
- package/dist/esm/locales/pt/parsers/PTCasualTimeParser.d.ts +1 -1
- package/dist/esm/locales/ru/index.d.ts +2 -2
- package/dist/esm/locales/ru/index.js +2 -2
- package/dist/esm/locales/ru/index.js.map +1 -1
- package/dist/esm/locales/ru/parsers/RUCasualTimeParser.d.ts +1 -1
- package/dist/esm/locales/uk/index.d.ts +2 -2
- package/dist/esm/locales/uk/index.js +2 -2
- package/dist/esm/locales/uk/index.js.map +1 -1
- package/dist/esm/locales/uk/parsers/UKCasualTimeParser.d.ts +1 -1
- package/dist/esm/locales/zh/hans/index.d.ts +2 -2
- package/dist/esm/locales/zh/hans/index.js +2 -2
- package/dist/esm/locales/zh/hans/index.js.map +1 -1
- package/dist/esm/locales/zh/hant/index.d.ts +2 -2
- package/dist/esm/locales/zh/hant/index.js +2 -2
- package/dist/esm/locales/zh/hant/index.js.map +1 -1
- package/package.json +1 -1
- package/src/common/parsers/AbstractTimeExpressionParser.ts +2 -2
- package/src/common/refiners/ExtractTimezoneAbbrRefiner.ts +2 -2
- package/src/configurations.ts +1 -1
- package/src/index.ts +4 -5
- package/src/locales/de/index.ts +2 -2
- package/src/locales/en/configuration.ts +7 -6
- package/src/locales/en/index.ts +2 -2
- package/src/locales/es/index.ts +2 -2
- package/src/locales/fr/index.ts +2 -2
- package/src/locales/fr/refiners/FRMergeDateRangeRefiner.ts +1 -1
- package/src/locales/fr/refiners/FRMergeDateTimeRefiner.ts +1 -1
- package/src/locales/ja/index.ts +2 -2
- package/src/locales/nl/index.ts +2 -2
- package/src/locales/pt/index.ts +2 -2
- package/src/locales/ru/index.ts +2 -2
- package/src/locales/uk/index.ts +2 -2
- package/src/locales/zh/hans/index.ts +2 -2
- package/src/locales/zh/hant/index.ts +2 -2
- package/test/en/en_slash.test.ts +34 -0
- package/test/en/en_time_exp.test.ts +11 -0
- package/test/en/en_time_units_within.test.ts +7 -0
- package/test/en/en_timezone_exp.test.ts +47 -3
- package/test/fr/fr_casual.test.ts +10 -0
package/test/en/en_slash.test.ts
CHANGED
|
@@ -159,6 +159,40 @@ test("Test - Range Expression", function () {
|
|
|
159
159
|
});
|
|
160
160
|
});
|
|
161
161
|
|
|
162
|
+
test("Test - Range Expressions with Time", function () {
|
|
163
|
+
testSingleCase(chrono.en, "from 01/21/2021 10:00 to 01/01/2023 07:00", new Date(2012, 7, 10), (result) => {
|
|
164
|
+
expect(result.start).not.toBeNull();
|
|
165
|
+
expect(result.start.get("year")).toBe(2021);
|
|
166
|
+
expect(result.start.get("month")).toBe(1);
|
|
167
|
+
expect(result.start.get("day")).toBe(21);
|
|
168
|
+
expect(result.start.get("hour")).toBe(10);
|
|
169
|
+
expect(result.start.get("minute")).toBe(0);
|
|
170
|
+
|
|
171
|
+
expect(result.end).not.toBeNull();
|
|
172
|
+
expect(result.end.get("year")).toBe(2023);
|
|
173
|
+
expect(result.end.get("month")).toBe(1);
|
|
174
|
+
expect(result.end.get("day")).toBe(1);
|
|
175
|
+
expect(result.end.get("hour")).toBe(7);
|
|
176
|
+
expect(result.end.get("minute")).toBe(0);
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
testSingleCase(chrono.en, "08/08/2023, 09:15 AM to 08/29/2023, 09:15 AM", new Date(2012, 7, 10), (result) => {
|
|
180
|
+
expect(result.start).not.toBeNull();
|
|
181
|
+
expect(result.start.get("year")).toBe(2023);
|
|
182
|
+
expect(result.start.get("month")).toBe(8);
|
|
183
|
+
expect(result.start.get("day")).toBe(8);
|
|
184
|
+
expect(result.start.get("hour")).toBe(9);
|
|
185
|
+
expect(result.start.get("minute")).toBe(15);
|
|
186
|
+
|
|
187
|
+
expect(result.end).not.toBeNull();
|
|
188
|
+
expect(result.end.get("year")).toBe(2023);
|
|
189
|
+
expect(result.end.get("month")).toBe(8);
|
|
190
|
+
expect(result.end.get("day")).toBe(29);
|
|
191
|
+
expect(result.end.get("hour")).toBe(9);
|
|
192
|
+
expect(result.end.get("minute")).toBe(15);
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
|
|
162
196
|
test("Test - Splitter variances patterns", function () {
|
|
163
197
|
const expectDate = new Date(2015, 5 - 1, 25, 12, 0);
|
|
164
198
|
|
|
@@ -82,6 +82,17 @@ test("Test - Time range expression", function () {
|
|
|
82
82
|
});
|
|
83
83
|
});
|
|
84
84
|
|
|
85
|
+
test("Test - Time non-range expression", function () {
|
|
86
|
+
testSingleCase(chrono, "10:00:00 - 15/15", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
87
|
+
expect(result.text).toBe("10:00:00");
|
|
88
|
+
|
|
89
|
+
expect(result.start.get("hour")).toBe(10);
|
|
90
|
+
expect(result.start.get("minute")).toBe(0);
|
|
91
|
+
expect(result.start.get("second")).toBe(0);
|
|
92
|
+
expect(result.start.get("meridiem")).toBe(Meridiem.AM);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
|
|
85
96
|
test("Test - Casual time number expression", function () {
|
|
86
97
|
testSingleCase(chrono, "11 at night", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
87
98
|
expect(result.text).toBe(text);
|
|
@@ -165,6 +165,13 @@ test("Test - The normal within expression", () => {
|
|
|
165
165
|
expect(result.start.get("day")).toBe(1);
|
|
166
166
|
expect(result.start.get("hour")).toBe(18);
|
|
167
167
|
});
|
|
168
|
+
|
|
169
|
+
testSingleCase(chrono, "in 1 month", new Date(2016, 10 - 1, 1, 14, 52), (result, text) => {
|
|
170
|
+
expect(result.text).toBe("in 1 month");
|
|
171
|
+
expect(result.start.get("year")).toBe(2016);
|
|
172
|
+
expect(result.start.get("month")).toBe(11);
|
|
173
|
+
expect(result.start.get("day")).toBe(1);
|
|
174
|
+
});
|
|
168
175
|
});
|
|
169
176
|
|
|
170
177
|
test("Test - The within expression with certain keywords", () => {
|
|
@@ -2,6 +2,7 @@ import * as chrono from "../../src";
|
|
|
2
2
|
import { Month, Weekday } from "../../src/types";
|
|
3
3
|
import { getLastWeekdayOfMonth } from "../../src/timezone";
|
|
4
4
|
import { testSingleCase } from "../test_util";
|
|
5
|
+
import { Meridiem } from "../../src";
|
|
5
6
|
|
|
6
7
|
test("Test - Parsing date/time with UTC offset", function () {
|
|
7
8
|
testSingleCase(chrono, "wednesday, september 16, 2020 at 11 am utc+02:45 ", (result, text) => {
|
|
@@ -77,7 +78,9 @@ test("Test - Parsing date/time with GMT offset", function () {
|
|
|
77
78
|
test("Test - Parsing date/time with timezone abbreviation", function () {
|
|
78
79
|
testSingleCase(chrono, "wednesday, september 16, 2020 at 11 am", (result, text) => {
|
|
79
80
|
expect(result.text).toBe(text);
|
|
80
|
-
|
|
81
|
+
expect(result.start.get("year")).toBe(2020);
|
|
82
|
+
expect(result.start.get("month")).toBe(9);
|
|
83
|
+
expect(result.start.get("day")).toBe(16);
|
|
81
84
|
expect(result.start.get("hour")).toBe(11);
|
|
82
85
|
expect(result.start.get("minute")).toBe(0);
|
|
83
86
|
expect(result.start.get("timezoneOffset")).toBe(null);
|
|
@@ -85,21 +88,62 @@ test("Test - Parsing date/time with timezone abbreviation", function () {
|
|
|
85
88
|
|
|
86
89
|
testSingleCase(chrono, "wednesday, september 16, 2020 at 11 am JST", (result, text) => {
|
|
87
90
|
expect(result.text).toBe(text);
|
|
91
|
+
expect(result.start.get("year")).toBe(2020);
|
|
92
|
+
expect(result.start.get("month")).toBe(9);
|
|
93
|
+
expect(result.start.get("day")).toBe(16);
|
|
88
94
|
expect(result.start.get("hour")).toBe(11);
|
|
89
95
|
expect(result.start.get("minute")).toBe(0);
|
|
90
96
|
|
|
91
|
-
// JST GMT+9:00
|
|
97
|
+
// JST: GMT+9:00
|
|
92
98
|
expect(result.start.get("timezoneOffset")).toBe(9 * 60);
|
|
93
99
|
});
|
|
94
100
|
|
|
95
101
|
testSingleCase(chrono, "wednesday, september 16, 2020 at 11 am GMT+0900 (JST)", (result, text) => {
|
|
96
102
|
expect(result.text).toBe(text);
|
|
103
|
+
expect(result.start.get("year")).toBe(2020);
|
|
104
|
+
expect(result.start.get("month")).toBe(9);
|
|
105
|
+
expect(result.start.get("day")).toBe(16);
|
|
97
106
|
expect(result.start.get("hour")).toBe(11);
|
|
98
107
|
expect(result.start.get("minute")).toBe(0);
|
|
99
108
|
|
|
100
|
-
// JST GMT+9:00
|
|
109
|
+
// JST: GMT+9:00
|
|
101
110
|
expect(result.start.get("timezoneOffset")).toBe(9 * 60);
|
|
102
111
|
});
|
|
112
|
+
|
|
113
|
+
testSingleCase(chrono, "10:30 pst today", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
114
|
+
expect(result.text).toBe("10:30 pst today");
|
|
115
|
+
expect(result.start.get("year")).toBe(2016);
|
|
116
|
+
expect(result.start.get("month")).toBe(10);
|
|
117
|
+
expect(result.start.get("day")).toBe(1);
|
|
118
|
+
expect(result.start.get("hour")).toBe(10);
|
|
119
|
+
expect(result.start.get("minute")).toBe(30);
|
|
120
|
+
|
|
121
|
+
// PST: UTC−08:00
|
|
122
|
+
expect(result.start.get("timezoneOffset")).toBe(-8 * 60);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
test("Test - Parsing date range with timezone abbreviation", function () {
|
|
127
|
+
testSingleCase(chrono, "10:30 JST today to 10:30 pst tomorrow ", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
128
|
+
expect(result.text).toBe("10:30 JST today to 10:30 pst tomorrow");
|
|
129
|
+
|
|
130
|
+
expect(result.start.get("year")).toBe(2016);
|
|
131
|
+
expect(result.start.get("month")).toBe(10);
|
|
132
|
+
expect(result.start.get("day")).toBe(1);
|
|
133
|
+
expect(result.start.get("hour")).toBe(10);
|
|
134
|
+
expect(result.start.get("minute")).toBe(30);
|
|
135
|
+
expect(result.start.get("timezoneOffset")).toBe(9 * 60); // JST: GMT+9:00
|
|
136
|
+
|
|
137
|
+
expect(result.end.get("year")).toBe(2016);
|
|
138
|
+
expect(result.end.get("month")).toBe(10);
|
|
139
|
+
expect(result.end.get("day")).toBe(2);
|
|
140
|
+
expect(result.end.get("hour")).toBe(10);
|
|
141
|
+
expect(result.end.get("minute")).toBe(30);
|
|
142
|
+
expect(result.end.get("timezoneOffset")).toBe(-8 * 60); // PST: UTC−08:00
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
// TODO: Support "10:30 JST today - 10:30 pst tomorrow" case.
|
|
146
|
+
// Currently, this is not possible because "today - 10:30" is recognized as "today 10:30" (not range)
|
|
103
147
|
});
|
|
104
148
|
|
|
105
149
|
test("Test - Parsing date/time with ambiguous timezone abbreviations", function () {
|
|
@@ -132,6 +132,16 @@ test("Test - Single Expression", function () {
|
|
|
132
132
|
expect(result.text).toBe(text);
|
|
133
133
|
expect(result.start.get("hour")).toBe(0);
|
|
134
134
|
});
|
|
135
|
+
|
|
136
|
+
testSingleCase(chrono.fr, "Du 24 août 2023 au 26 août 2023", (result) => {
|
|
137
|
+
expect(result.text).toBe("24 août 2023 au 26 août 2023");
|
|
138
|
+
expect(result.start.get("year")).toBe(2023);
|
|
139
|
+
expect(result.start.get("month")).toBe(8);
|
|
140
|
+
expect(result.start.get("day")).toBe(24);
|
|
141
|
+
expect(result.end.get("year")).toBe(2023);
|
|
142
|
+
expect(result.end.get("month")).toBe(8);
|
|
143
|
+
expect(result.end.get("day")).toBe(26);
|
|
144
|
+
});
|
|
135
145
|
});
|
|
136
146
|
|
|
137
147
|
test("Test - Combined Expression", function () {
|