chrono-node 1.4.7 → 1.4.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.
Files changed (69) hide show
  1. package/dist/chrono.js +711 -809
  2. package/dist/chrono.js.map +1 -1
  3. package/dist/chrono.min.js +1 -1
  4. package/dist/chrono.min.js.map +1 -1
  5. package/package.json +1 -1
  6. package/src/chrono.js +57 -59
  7. package/src/options.js +30 -29
  8. package/src/parsers/en/ENDeadlineFormatParser.js +9 -9
  9. package/src/result.js +119 -119
  10. package/test/de/de.test.js +36 -51
  11. package/test/de/de_casual.test.js +242 -141
  12. package/test/de/de_dash.test.js +5 -8
  13. package/test/de/de_deadline.test.js +151 -47
  14. package/test/de/de_little_endian.test.js +207 -58
  15. package/test/de/de_time_ago.test.js +167 -52
  16. package/test/de/de_time_exp.test.js +135 -121
  17. package/test/de/de_weekday.test.js +94 -31
  18. package/test/en/en.test.js +118 -89
  19. package/test/en/en_casual.test.js +149 -134
  20. package/test/en/en_dash.test.js +17 -11
  21. package/test/en/en_deadline.test.js +93 -69
  22. package/test/en/en_inter_std.test.js +28 -7
  23. package/test/en/en_little_endian.test.js +76 -26
  24. package/test/en/en_middle_endian.test.js +63 -21
  25. package/test/en/en_month.test.js +6 -2
  26. package/test/en/en_option_forward.test.js +120 -112
  27. package/test/en/en_relative.test.js +155 -172
  28. package/test/en/en_slash.test.js +156 -115
  29. package/test/en/en_time_ago.test.js +61 -21
  30. package/test/en/en_time_exp.test.js +228 -209
  31. package/test/en/en_time_from_now.test.js +70 -24
  32. package/test/en/en_time_later.test.js +16 -6
  33. package/test/en/en_weekday.test.js +39 -13
  34. package/test/es/es_casual.test.js +143 -120
  35. package/test/es/es_dash.test.js +7 -8
  36. package/test/es/es_deadline.test.js +69 -35
  37. package/test/es/es_little_endian.test.js +250 -145
  38. package/test/es/es_slash.test.js +17 -12
  39. package/test/es/es_time_ago.test.js +21 -7
  40. package/test/es/es_time_exp.test.js +154 -160
  41. package/test/fr/fr_casual.test.js +153 -124
  42. package/test/fr/fr_dash.test.js +13 -6
  43. package/test/fr/fr_deadline.test.js +163 -44
  44. package/test/fr/fr_little_endian.test.js +262 -81
  45. package/test/fr/fr_relative.test.js +188 -196
  46. package/test/fr/fr_slash.test.js +41 -14
  47. package/test/fr/fr_time_ago.test.js +30 -10
  48. package/test/fr/fr_time_exp.test.js +619 -567
  49. package/test/fr/fr_weekday.test.js +24 -8
  50. package/test/ja/ja_casual.test.js +41 -26
  51. package/test/ja/ja_standard.test.js +322 -207
  52. package/test/nl/nl.test.js +18 -20
  53. package/test/nl/nl_dash.test.js +26 -26
  54. package/test/nl/nl_little_endian.test.js +100 -51
  55. package/test/nl/nl_time_exp.test.js +37 -13
  56. package/test/nl/nl_weekday.test.js +39 -13
  57. package/test/pt/pt_casual.test.js +222 -156
  58. package/test/pt/pt_dash.test.js +7 -6
  59. package/test/pt/pt_deadline.test.js +51 -17
  60. package/test/pt/pt_little_endian.test.js +251 -144
  61. package/test/pt/pt_slash.test.js +38 -25
  62. package/test/pt/pt_time_ago.test.js +128 -80
  63. package/test/pt/pt_time_exp.test.js +191 -173
  64. package/test/test_util.js +1 -5
  65. package/test/zh/zh_hant_casual.test.js +184 -87
  66. package/test/zh/zh_hant_date.test.js +109 -75
  67. package/test/zh/zh_hant_deadline.test.js +131 -41
  68. package/test/zh/zh_hant_time_exp.test.js +184 -141
  69. package/test/zh/zh_hant_weekday.test.js +64 -22
@@ -17,7 +17,9 @@ test("Test - Single Expression", function() {
17
17
  expect(result.start.get('second')).toBe(10);
18
18
  expect(result.start.get('millisecond')).toBe(11);
19
19
 
20
- expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
20
+ var resultDate = result.start.date();
21
+ var expectDate = new Date(2012, 7, 10, 8, 9, 10, 11);
22
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
21
23
  });
22
24
 
23
25
  testSingleCase(chrono.casual, 'The Deadline is today', new Date(2012, 7, 10, 12), (result) => {
@@ -29,7 +31,9 @@ test("Test - Single Expression", function() {
29
31
  expect(result.start.get('month')).toBe(8);
30
32
  expect(result.start.get('day')).toBe(10);
31
33
 
32
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
34
+ var resultDate = result.start.date();
35
+ var expectDate = new Date(2012, 7, 10, 12);
36
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
33
37
  });
34
38
 
35
39
 
@@ -42,12 +46,16 @@ test("Test - Single Expression", function() {
42
46
  expect(result.start.get('month')).toBe(8);
43
47
  expect(result.start.get('day')).toBe(11);
44
48
 
45
- expect(result.start).toBeDate(new Date(2012, 7, 11, 12));
49
+ var resultDate = result.start.date();
50
+ var expectDate = new Date(2012, 7, 11, 12);
51
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
46
52
  });
47
53
 
48
54
  // Say.."Tomorrow" in the late night (1 AM)
49
55
  testSingleCase(chrono.casual, 'The Deadline is Tomorrow', new Date(2012, 7, 10, 1), (result) => {
50
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
56
+ var resultDate = result.start.date();
57
+ var expectDate = new Date(2012, 7, 10, 12);
58
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
51
59
  });
52
60
 
53
61
 
@@ -60,7 +68,9 @@ test("Test - Single Expression", function() {
60
68
  expect(result.start.get('month')).toBe(8);
61
69
  expect(result.start.get('day')).toBe(9);
62
70
 
63
- expect(result.start).toBeDate(new Date(2012, 7, 9, 12));
71
+ var resultDate = result.start.date();
72
+ var expectDate = new Date(2012, 7, 9, 12);
73
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
64
74
  });
65
75
 
66
76
 
@@ -74,7 +84,9 @@ test("Test - Single Expression", function() {
74
84
  expect(result.start.get('day')).toBe(9);
75
85
  expect(result.start.get('hour')).toBe(0);
76
86
 
77
- expect(result.start).toBeDate(new Date(2012, 7, 9, 0));
87
+ var resultDate = result.start.date();
88
+ var expectDate = new Date(2012, 7, 9, 0);
89
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
78
90
  });
79
91
 
80
92
 
@@ -88,7 +100,9 @@ test("Test - Single Expression", function() {
88
100
  expect(result.start.get('day')).toBe(10);
89
101
  expect(result.start.get('hour')).toBe(6);
90
102
 
91
- expect(result.start).toBeDate(new Date(2012, 7, 10, 6));
103
+ var resultDate = result.start.date();
104
+ var expectDate = new Date(2012, 7, 10, 6);
105
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
92
106
  });
93
107
 
94
108
 
@@ -102,7 +116,9 @@ test("Test - Single Expression", function() {
102
116
  expect(result.start.get('day')).toBe(10);
103
117
  expect(result.start.get('hour')).toBe(15);
104
118
 
105
- expect(result.start).toBeDate(new Date(2012, 7, 10, 15));
119
+ var resultDate = result.start.date();
120
+ var expectDate = new Date(2012, 7, 10, 15);
121
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
106
122
  });
107
123
 
108
124
 
@@ -116,7 +132,9 @@ test("Test - Single Expression", function() {
116
132
  expect(result.start.get('day')).toBe(10);
117
133
  expect(result.start.get('hour')).toBe(20);
118
134
 
119
- expect(result.start).toBeDate(new Date(2012, 7, 10, 20));
135
+ var resultDate = result.start.date();
136
+ var expectDate = new Date(2012, 7, 10, 20);
137
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
120
138
  });
121
139
  });
122
140
 
@@ -134,7 +152,9 @@ test("Test - Combined Expression", function() {
134
152
  expect(result.start.get('day')).toBe(10);
135
153
  expect(result.start.get('hour')).toBe(17);
136
154
 
137
- expect(result.start).toBeDate(new Date(2012, 7, 10, 17));
155
+ var resultDate = result.start.date();
156
+ var expectDate = new Date(2012, 7, 10, 17);
157
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
138
158
  });
139
159
  });
140
160
 
@@ -151,7 +171,9 @@ test("Test - Casual date range", function() {
151
171
  expect(result.start.get('day')).toBe(4);
152
172
  expect(result.start.get('hour')).toBe(12);
153
173
 
154
- expect(result.start).toBeDate(new Date(2012, 7, 4, 12));
174
+ var resultDate = result.start.date();
175
+ var expectDate = new Date(2012, 7, 4, 12);
176
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
155
177
 
156
178
 
157
179
  expect(result.end).not.toBeNull();
@@ -160,7 +182,9 @@ test("Test - Casual date range", function() {
160
182
  expect(result.end.get('day')).toBe(10);
161
183
  expect(result.end.get('hour')).toBe(12);
162
184
 
163
- expect(result.end).toBeDate(new Date(2012, 7, 10, 12));
185
+ var resultDate = result.end.date();
186
+ var expectDate = new Date(2012, 7, 10, 12);
187
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
164
188
  });
165
189
 
166
190
 
@@ -175,7 +199,9 @@ test("Test - Casual date range", function() {
175
199
  expect(result.start.get('day')).toBe(10);
176
200
  expect(result.start.get('hour')).toBe(12);
177
201
 
178
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
202
+ var resultDate = result.start.date();
203
+ var expectDate = new Date(2012, 7, 10, 12);
204
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
179
205
 
180
206
 
181
207
  expect(result.end).not.toBeNull();
@@ -184,7 +210,9 @@ test("Test - Casual date range", function() {
184
210
  expect(result.end.get('day')).toBe(17);
185
211
  expect(result.end.get('hour')).toBe(12);
186
212
 
187
- expect(result.end).toBeDate(new Date(2012, 7, 17, 12));
213
+ var resultDate = result.end.date();
214
+ var expectDate = new Date(2012, 7, 17, 12);
215
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
188
216
  });
189
217
  });
190
218
 
@@ -223,126 +251,113 @@ test("Test - Casual time implication", function() {
223
251
 
224
252
  test('Test - Random text', function() {
225
253
 
226
- testSingleCase(chrono, 'tonight', new Date(2012, 1-1, 1, 12), (result, text) => {
227
-
228
- expect(result.text).toBe(text);
229
- expect(result.start.get('year')).toBe(2012);
230
- expect(result.start.get('month')).toBe(1);
231
- expect(result.start.get('day')).toBe(1);
232
- expect(result.start.get('hour')).toBe(22);
233
- expect(result.start.get('meridiem') ).toBe(1);
234
- });
235
-
236
- testSingleCase(chrono, 'tonight 8pm', new Date(2012, 1-1, 1, 12), (result, text) => {
237
-
238
- expect(result.text).toBe(text);
239
- expect(result.start.get('hour') ).toBe(20);
240
- expect(result.start.get('year') ).toBe(2012);
241
- expect(result.start.get('month')).toBe(1);
242
- expect(result.start.get('day') ).toBe(1);
243
- expect(result.start.get('meridiem') ).toBe(1);
244
- });
245
-
246
-
247
- testSingleCase(chrono, 'tonight at 8', new Date(2012, 1-1, 1, 12), (result, text) => {
248
-
249
- expect(result.text).toBe(text);
250
- expect(result.start.get('hour') ).toBe(20);
251
- expect(result.start.get('year') ).toBe(2012);
252
- expect(result.start.get('month')).toBe(1);
253
- expect(result.start.get('day') ).toBe(1);
254
- expect(result.start.get('meridiem') ).toBe(1);
255
- });
256
-
257
-
258
- testSingleCase(chrono, 'tomorrow before 4pm', new Date(2012, 1-1, 1, 12), (result, text) => {
259
-
260
- expect(result.text).toBe(text);
261
- expect(result.start.get('hour') ).toBe(16);
262
- expect(result.start.get('year') ).toBe(2012);
263
- expect(result.start.get('month')).toBe(1);
264
- expect(result.start.get('day') ).toBe(2);
265
- expect(result.start.get('meridiem') ).toBe(1);
266
- });
267
-
268
-
269
- testSingleCase(chrono, 'tomorrow after 4pm', new Date(2012, 1-1, 1, 12), (result, text) => {
270
-
271
- expect(result.text).toBe(text);
272
- expect(result.start.get('hour') ).toBe(16);
273
- expect(result.start.get('year') ).toBe(2012);
274
- expect(result.start.get('month')).toBe(1);
275
- expect(result.start.get('day') ).toBe(2);
276
- expect(result.start.get('meridiem') ).toBe(1);
277
- });
278
-
279
-
280
- testSingleCase(chrono, 'thurs', (result, text) => {
281
-
282
- expect(result.text).toBe(text);
283
- expect(result.start.get('weekday')).toBe(4);
284
- });
285
-
286
-
287
- testSingleCase(chrono, 'thurs', (result, text) => {
288
-
289
- expect(result.text).toBe(text);
290
- expect(result.start.get('weekday')).toBe(4);
291
- });
292
-
293
- testSingleCase(chrono, 'this evening', new Date(2016, 10-1, 1), (result, text) => {
294
-
295
- expect(result.text).toBe(text);
296
- expect(result.start.get('year')).toBe(2016);
297
- expect(result.start.get('month')).toBe(10);
298
- expect(result.start.get('day')).toBe(1);
299
- expect(result.start.get('hour')).toBe(20);
300
- });
301
-
302
- testSingleCase(chrono, 'yesterday afternoon', new Date(2016, 10-1, 1), (result, text) => {
303
-
304
- expect(result.text).toBe(text);
305
- expect(result.start.get('year')).toBe(2016);
306
- expect(result.start.get('month')).toBe(9);
307
- expect(result.start.get('day')).toBe(30);
308
- expect(result.start.get('hour')).toBe(15);
309
- });
310
-
311
- testSingleCase(chrono, 'tomorrow morning', new Date(2016, 10-1, 1, 8), (result, text) => {
312
-
313
- expect(result.text).toBe(text);
314
- expect(result.start.get('year')).toBe(2016);
315
- expect(result.start.get('month')).toBe(10);
316
- expect(result.start.get('day')).toBe(2);
317
- expect(result.start.get('hour')).toBe(6);
318
- });
319
-
320
- testSingleCase(chrono, 'this afternoon at 3', new Date(2016, 10-1, 1, 8), (result, text) => {
321
-
322
- expect(result.text).toBe(text);
323
- expect(result.start.get('year')).toBe(2016);
324
- expect(result.start.get('month')).toBe(10);
325
- expect(result.start.get('day')).toBe(1);
326
- expect(result.start.get('hour')).toBe(15);
327
- });
328
-
329
- testSingleCase(chrono, '11 at night', new Date(2016, 10-1, 1, 8), (result, text) => {
330
-
331
- expect(result.text).toBe(text);
332
- expect(result.start.get('year')).toBe(2016);
333
- expect(result.start.get('month')).toBe(10);
334
- expect(result.start.get('day')).toBe(1);
335
- expect(result.start.get('hour')).toBe(23);
336
- });
337
-
338
- testSingleCase(chrono, '11 tonight', new Date(2016, 10-1, 1, 8), (result, text) => {
339
-
340
- expect(result.text).toBe(text);
341
- expect(result.start.get('year')).toBe(2016);
342
- expect(result.start.get('month')).toBe(10);
343
- expect(result.start.get('day')).toBe(1);
344
- expect(result.start.get('hour')).toBe(23);
345
- });
254
+ var text = "tonight";
255
+ var result = chrono.parse(text, new Date(2012, 1-1, 1, 12))[0];
256
+ expect(result.text).toBe(text);
257
+ expect(result.start.get('year')).toBe(2012);
258
+ expect(result.start.get('month')).toBe(1);
259
+ expect(result.start.get('day')).toBe(1);
260
+ expect(result.start.get('hour')).toBe(22);
261
+ expect(result.start.get('meridiem') ).toBe(1);
262
+
263
+ var text = "tonight 8pm";
264
+ var result = chrono.parse(text, new Date(2012, 1-1, 1, 12))[0];
265
+ expect(result.text).toBe(text);
266
+ expect(result.start.get('hour') ).toBe(20);
267
+ expect(result.start.get('year') ).toBe(2012);
268
+ expect(result.start.get('month')).toBe(1);
269
+ expect(result.start.get('day') ).toBe(1);
270
+ expect(result.start.get('meridiem') ).toBe(1);
271
+
272
+
273
+ var text = "tonight at 8";
274
+ var result = chrono.parse(text, new Date(2012, 1-1, 1, 12))[0];
275
+ expect(result.text).toBe(text);
276
+ expect(result.start.get('hour') ).toBe(20);
277
+ expect(result.start.get('year') ).toBe(2012);
278
+ expect(result.start.get('month')).toBe(1);
279
+ expect(result.start.get('day') ).toBe(1);
280
+ expect(result.start.get('meridiem') ).toBe(1);
281
+
282
+
283
+ var text = "tomorrow before 4pm";
284
+ var result = chrono.parse(text, new Date(2012, 1-1, 1, 12))[0];
285
+ expect(result.text).toBe(text);
286
+ expect(result.start.get('hour') ).toBe(16);
287
+ expect(result.start.get('year') ).toBe(2012);
288
+ expect(result.start.get('month')).toBe(1);
289
+ expect(result.start.get('day') ).toBe(2);
290
+ expect(result.start.get('meridiem') ).toBe(1);
291
+
292
+
293
+ var text = "tomorrow after 4pm";
294
+ var result = chrono.parse(text, new Date(2012, 1-1, 1, 12))[0];
295
+ expect(result.text).toBe(text);
296
+ expect(result.start.get('hour') ).toBe(16);
297
+ expect(result.start.get('year') ).toBe(2012);
298
+ expect(result.start.get('month')).toBe(1);
299
+ expect(result.start.get('day') ).toBe(2);
300
+ expect(result.start.get('meridiem') ).toBe(1);
301
+
302
+
303
+ var text = "thurs";
304
+ var result = chrono.parse(text)[0];
305
+ expect(result.text).toBe(text);
306
+ expect(result.start.get('weekday')).toBe(4);
307
+
308
+
309
+ var text = "thurs";
310
+ var result = chrono.parse(text)[0];
311
+ expect(result.text).toBe(text);
312
+ expect(result.start.get('weekday')).toBe(4);
313
+
314
+ var text = "this evening";
315
+ var result = chrono.parse(text, new Date(2016, 10-1, 1))[0];
316
+ expect(result.text).toBe(text);
317
+ expect(result.start.get('year')).toBe(2016);
318
+ expect(result.start.get('month')).toBe(10);
319
+ expect(result.start.get('day')).toBe(1);
320
+ expect(result.start.get('hour')).toBe(20);
321
+
322
+ var text = "yesterday afternoon";
323
+ var result = chrono.parse(text, new Date(2016, 10-1, 1))[0];
324
+ expect(result.text).toBe(text);
325
+ expect(result.start.get('year')).toBe(2016);
326
+ expect(result.start.get('month')).toBe(9);
327
+ expect(result.start.get('day')).toBe(30);
328
+ expect(result.start.get('hour')).toBe(15);
329
+
330
+ var text = "tomorrow morning";
331
+ var result = chrono.parse(text, new Date(2016, 10-1, 1, 8))[0];
332
+ expect(result.text).toBe(text);
333
+ expect(result.start.get('year')).toBe(2016);
334
+ expect(result.start.get('month')).toBe(10);
335
+ expect(result.start.get('day')).toBe(2);
336
+ expect(result.start.get('hour')).toBe(6);
337
+
338
+ var text = "this afternoon at 3";
339
+ var result = chrono.parse(text, new Date(2016, 10-1, 1, 8))[0];
340
+ expect(result.text).toBe(text);
341
+ expect(result.start.get('year')).toBe(2016);
342
+ expect(result.start.get('month')).toBe(10);
343
+ expect(result.start.get('day')).toBe(1);
344
+ expect(result.start.get('hour')).toBe(15);
345
+
346
+ var text = "11 at night";
347
+ var result = chrono.parse(text, new Date(2016, 10-1, 1, 8))[0];
348
+ expect(result.text).toBe(text);
349
+ expect(result.start.get('year')).toBe(2016);
350
+ expect(result.start.get('month')).toBe(10);
351
+ expect(result.start.get('day')).toBe(1);
352
+ expect(result.start.get('hour')).toBe(23);
353
+
354
+ var text = "11 tonight";
355
+ var result = chrono.parse(text, new Date(2016, 10-1, 1, 8))[0];
356
+ expect(result.text).toBe(text);
357
+ expect(result.start.get('year')).toBe(2016);
358
+ expect(result.start.get('month')).toBe(10);
359
+ expect(result.start.get('day')).toBe(1);
360
+ expect(result.start.get('hour')).toBe(23);
346
361
  });
347
362
 
348
363
 
@@ -1,25 +1,31 @@
1
- import * as chrono from '../../src/chrono';
2
- import { testSingleCase, testUnexpectedResult } from '../test_util';
3
-
4
- test("Test - Should skip euro style phone number", function() {
5
-
6
- testUnexpectedResult(chrono.strict, '80-32-89-89', new Date(2012,7,10))
7
-
1
+ var chrono = require('../../src/chrono');
2
+ test("Test - Should return false with euro style phone number", function() {
3
+ var text = "80-32-89-89";
4
+ var results = chrono.strict.parse(text, new Date(2012,7,10));
5
+ expect(results.length).toBe(0)
8
6
  });
9
7
 
10
8
  test("Test - Should handle en dayname mm-dd-yy", function() {
11
- testSingleCase(chrono.strict, 'Friday 12-30-16', new Date(2012,7,10))
9
+ var text = "Friday 12-30-16";
10
+ var results = chrono.strict.parse(text, new Date(2012,7,10));
11
+ expect(results.length).toBe(1)
12
12
  });
13
13
 
14
14
  test("Test - Should handle en mm-dd-yy", function() {
15
- testSingleCase(chrono.strict, '12-30-16', new Date(2012,7,10))
15
+ var text = "12-30-16";
16
+ var results = chrono.strict.parse(text, new Date(2012,7,10));
17
+ expect(results.length).toBe(1)
16
18
  });
17
19
 
18
20
 
19
21
  test("Test - Should handle en dayname dd-mm-yy", function() {
20
- testSingleCase(chrono.strict, 'Friday 30-12-16', new Date(2012,7,10))
22
+ var text = "Friday 30-12-16";
23
+ var results = chrono.strict.parse(text, new Date(2012,7,10));
24
+ expect(results.length).toBe(1)
21
25
  });
22
26
 
23
27
  test("Test - Should handle en dd-mm-yy", function() {
24
- testSingleCase(chrono.strict, '30-12-16', new Date(2012,7,10))
28
+ var text = "30-12-16";
29
+ var results = chrono.strict.parse(text, new Date(2012,7,10));
30
+ expect(results.length).toBe(1)
25
31
  });