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
@@ -5,69 +5,79 @@ test("Test - Single Expression", function() {
5
5
 
6
6
 
7
7
  testSingleCase(chrono.es, 'Quedemos a las 6.13 AM', new Date(2012,7,10), (result) => {
8
- expect(result.index).toBe(9);
9
- expect(result.text).toBe('a las 6.13 AM');
8
+ expect(result.index).toBe(9)
9
+ expect(result.text).toBe('a las 6.13 AM')
10
10
 
11
- expect(result.start).not.toBeNull();
12
- expect(result.start.get('hour')).toBe(6);
13
- expect(result.start.get('minute')).toBe(13);
11
+ expect(result.start).not.toBeNull()
12
+ expect(result.start.get('hour')).toBe(6)
13
+ expect(result.start.get('minute')).toBe(13)
14
14
 
15
- expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 13));
15
+ var resultDate = result.start.date();
16
+ var expectDate = new Date(2012, 7, 10, 6, 13);
17
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
16
18
  });
17
19
  });
18
20
 
19
21
  test("Test - Range Expression", function() {
20
22
 
21
23
  testSingleCase(chrono.es, '8:10 - 12.32', new Date(2012,7,10), (result) => {
22
- expect(result.index).toBe(0);
23
- expect(result.text).toBe('8:10 - 12.32');
24
-
25
- expect(result.start).not.toBeNull();
26
- expect(result.start.get('hour')).toBe(8);
27
- expect(result.start.get('minute')).toBe(10);
28
-
29
- expect(result.start.isCertain('day')).toBe(false);
30
- expect(result.start.isCertain('month')).toBe(false);
31
- expect(result.start.isCertain('year')).toBe(false);
32
- expect(result.start.isCertain('hour')).toBe(true);
33
- expect(result.start.isCertain('minute')).toBe(true);
34
- expect(result.start.isCertain('second')).toBe(false);
35
- expect(result.start.isCertain('millisecond')).toBe(false);
36
-
37
- expect(result.start).toBeDate(new Date(2012, 7, 10, 8, 10));
38
-
39
- expect(result.end).not.toBeNull();
40
- expect(result.end.get('hour')).toBe(12);
41
- expect(result.end.get('minute')).toBe(32);
42
-
43
- expect(result.end.isCertain('day')).toBe(false);
44
- expect(result.end.isCertain('month')).toBe(false);
45
- expect(result.end.isCertain('year')).toBe(false);
46
- expect(result.end.isCertain('hour')).toBe(true);
47
- expect(result.end.isCertain('minute')).toBe(true);
48
- expect(result.end.isCertain('second')).toBe(false);
49
- expect(result.end.isCertain('millisecond')).toBe(false);
50
-
51
- expect(result.end).toBeDate(new Date(2012, 7, 10, 12, 32));
24
+ expect(result.index).toBe(0)
25
+ expect(result.text).toBe('8:10 - 12.32')
26
+
27
+ expect(result.start).not.toBeNull()
28
+ expect(result.start.get('hour')).toBe(8)
29
+ expect(result.start.get('minute')).toBe(10)
30
+
31
+ expect(result.start.isCertain('day')).toBe(false)
32
+ expect(result.start.isCertain('month')).toBe(false)
33
+ expect(result.start.isCertain('year')).toBe(false)
34
+ expect(result.start.isCertain('hour')).toBe(true)
35
+ expect(result.start.isCertain('minute')).toBe(true)
36
+ expect(result.start.isCertain('second')).toBe(false)
37
+ expect(result.start.isCertain('millisecond')).toBe(false)
38
+
39
+ var resultDate = result.start.date();
40
+ var expectDate = new Date(2012, 7, 10, 8, 10);
41
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
42
+
43
+ expect(result.end).not.toBeNull()
44
+ expect(result.end.get('hour')).toBe(12)
45
+ expect(result.end.get('minute')).toBe(32)
46
+
47
+ expect(result.end.isCertain('day')).toBe(false)
48
+ expect(result.end.isCertain('month')).toBe(false)
49
+ expect(result.end.isCertain('year')).toBe(false)
50
+ expect(result.end.isCertain('hour')).toBe(true)
51
+ expect(result.end.isCertain('minute')).toBe(true)
52
+ expect(result.end.isCertain('second')).toBe(false)
53
+ expect(result.end.isCertain('millisecond')).toBe(false)
54
+
55
+ var resultDate = result.end.date();
56
+ var expectDate = new Date(2012, 7, 10, 12, 32);
57
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
52
58
  });
53
59
 
54
60
  testSingleCase(chrono.es, ' de 6:30pm a 11:00pm ', new Date(2012,7,10), (result) => {
55
- expect(result.index).toBe(1);
56
- expect(result.text).toBe('de 6:30pm a 11:00pm');
61
+ expect(result.index).toBe(1)
62
+ expect(result.text).toBe('de 6:30pm a 11:00pm')
57
63
 
58
- expect(result.start).not.toBeNull();
59
- expect(result.start.get('hour')).toBe(18);
60
- expect(result.start.get('minute')).toBe(30);
61
- expect(result.start.get('meridiem')).toBe(1);
64
+ expect(result.start).not.toBeNull()
65
+ expect(result.start.get('hour')).toBe(18)
66
+ expect(result.start.get('minute')).toBe(30)
67
+ expect(result.start.get('meridiem')).toBe(1)
62
68
 
63
- expect(result.start).toBeDate(new Date(2012, 7, 10, 18, 30));
69
+ var resultDate = result.start.date();
70
+ var expectDate = new Date(2012, 7, 10, 18, 30);
71
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
64
72
 
65
- expect(result.end).not.toBeNull();
66
- expect(result.end.get('hour')).toBe(23);
67
- expect(result.end.get('minute')).toBe(0);
68
- expect(result.end.get('meridiem')).toBe(1);
73
+ expect(result.end).not.toBeNull()
74
+ expect(result.end.get('hour')).toBe(23)
75
+ expect(result.end.get('minute')).toBe(0)
76
+ expect(result.end.get('meridiem')).toBe(1)
69
77
 
70
- expect(result.end).toBeDate(new Date(2012, 7, 10, 23, 0));
78
+ var resultDate = result.end.date();
79
+ var expectDate = new Date(2012, 7, 10, 23, 0);
80
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
71
81
  });
72
82
 
73
83
  });
@@ -75,145 +85,129 @@ test("Test - Range Expression", function() {
75
85
  test("Test - Date + Time Expression", function() {
76
86
 
77
87
  testSingleCase(chrono.es, 'Algo pasó el 10 de Agosto de 2012 10:12:59 pm', new Date(2012,7,10), (result) => {
78
- expect(result.index).toBe(13);
79
- expect(result.text).toBe('10 de Agosto de 2012 10:12:59 pm');
80
-
81
- expect(result.start.get('year')).toBe(2012);
82
- expect(result.start.get('month')).toBe(8);
83
- expect(result.start.get('day')).toBe(10);
84
- expect(result.start.get('hour')).toBe(22);
85
- expect(result.start.get('minute')).toBe(12);
86
- expect(result.start.get('second')).toBe(59);
87
- expect(result.start.get('millisecond')).toBe(0);
88
- expect(result.start.isCertain('millisecond')).toBe(false);
89
-
90
- expect(result.start).toBeDate(new Date(2012, 8-1, 10, 22, 12, 59));
88
+ expect(result.index).toBe(13)
89
+ expect(result.text).toBe('10 de Agosto de 2012 10:12:59 pm')
90
+
91
+ expect(result.start.get('year')).toBe(2012)
92
+ expect(result.start.get('month')).toBe(8)
93
+ expect(result.start.get('day')).toBe(10)
94
+ expect(result.start.get('hour')).toBe(22)
95
+ expect(result.start.get('minute')).toBe(12)
96
+ expect(result.start.get('second')).toBe(59)
97
+ expect(result.start.get('millisecond')).toBe(0)
98
+ expect(result.start.isCertain('millisecond')).toBe(false)
99
+
100
+ var resultDate = result.start.date();
101
+ var expectDate = new Date(2012, 8-1, 10, 22, 12, 59);
102
+ expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime())
91
103
  });
92
104
 
93
- });
105
+ })
94
106
 
95
107
 
96
108
  test("Test - Time Expression's Meridiem imply", function() {
97
109
 
98
110
  testSingleCase(chrono.es, 'hoy de 1pm a 3', new Date(2012,7,10), (result) => {
99
- expect(result.index).toBe(0);
100
- expect(result.text).toBe('hoy de 1pm a 3');
101
-
102
- expect(result.start.get('year')).toBe(2012);
103
- expect(result.start.get('month')).toBe(8);
104
- expect(result.start.get('day')).toBe(10);
105
- expect(result.start.get('hour')).toBe(13);
106
- expect(result.start.get('minute')).toBe(0);
107
- expect(result.start.get('second')).toBe(0);
108
- expect(result.start.get('millisecond')).toBe(0);
109
- expect(result.start.get('meridiem')).toBe(1);
110
- expect(result.start.isCertain('meridiem')).toBe(true);
111
-
112
- expect(result.end.get('year')).toBe(2012);
113
- expect(result.end.get('month')).toBe(8);
114
- expect(result.end.get('day')).toBe(11);
115
- expect(result.end.get('hour')).toBe(3);
116
- expect(result.end.get('minute')).toBe(0);
117
- expect(result.end.get('second')).toBe(0);
118
- expect(result.end.get('millisecond')).toBe(0);
119
- expect(result.end.isCertain('meridiem')).toBe(false);
120
- });
121
- });
111
+ expect(result.index).toBe(0)
112
+ expect(result.text).toBe('hoy de 1pm a 3')
113
+
114
+ expect(result.start.get('year')).toBe(2012)
115
+ expect(result.start.get('month')).toBe(8)
116
+ expect(result.start.get('day')).toBe(10)
117
+ expect(result.start.get('hour')).toBe(13)
118
+ expect(result.start.get('minute')).toBe(0)
119
+ expect(result.start.get('second')).toBe(0)
120
+ expect(result.start.get('millisecond')).toBe(0)
121
+ expect(result.start.get('meridiem')).toBe(1)
122
+ expect(result.start.isCertain('meridiem')).toBe(true)
123
+
124
+ expect(result.end.get('year')).toBe(2012)
125
+ expect(result.end.get('month')).toBe(8)
126
+ expect(result.end.get('day')).toBe(11)
127
+ expect(result.end.get('hour')).toBe(3)
128
+ expect(result.end.get('minute')).toBe(0)
129
+ expect(result.end.get('second')).toBe(0)
130
+ expect(result.end.get('millisecond')).toBe(0)
131
+ expect(result.end.isCertain('meridiem')).toBe(false)
132
+ });
133
+ })
122
134
 
123
135
 
124
136
  test("Test - Random date + time expression", function() {
125
137
 
126
- testSingleCase(chrono.es, 'lunes 4/29/2013 630-930am', (result, text) => {
127
-
128
- expect(result.text).toBe(text);
129
- });
130
-
131
- testSingleCase(chrono.es, 'miércoles 5/1/2013 1115am', (result, text) => {
132
-
133
- expect(result.text).toBe(text);
134
- });
135
-
136
- testSingleCase(chrono.es, 'viernes 5/3/2013 1230pm', (result, text) => {
137
-
138
- expect(result.text).toBe(text);
139
- });
140
-
141
-
142
- testSingleCase(chrono.es, 'domingo 5/6/2013 750am-910am', (result, text) => {
143
-
144
- expect(result.text).toBe(text);
145
- });
146
-
147
- testSingleCase(chrono.es, 'lunes 5/13/2013 630-930am', (result, text) => {
148
-
149
- expect(result.text).toBe(text);
150
- });
151
-
152
- testSingleCase(chrono.es, 'miércoles 5/15/2013 1030am', (result, text) => {
138
+ var text = "lunes 4/29/2013 630-930am";
139
+ var result = chrono.es.parse(text)[0];
140
+ expect(result.text).toBe(text)
153
141
 
154
- expect(result.text).toBe(text);
155
- });
142
+ var text = "miércoles 5/1/2013 1115am";
143
+ var result = chrono.es.parse(text)[0];
144
+ expect(result.text).toBe(text)
156
145
 
157
- testSingleCase(chrono.es, 'viernes 6/21/2013 2:30', (result, text) => {
146
+ var text = "viernes 5/3/2013 1230pm";
147
+ var result = chrono.es.parse(text)[0];
148
+ expect(result.text).toBe(text)
158
149
 
159
- expect(result.text).toBe(text);
160
- });
161
150
 
162
- testSingleCase(chrono.es, 'martes 7/2/2013 1-230 pm', (result, text) => {
151
+ var text = "domingo 5/6/2013 750am-910am";
152
+ var result = chrono.es.parse(text)[0];
153
+ expect(result.text).toBe(text)
163
154
 
164
- expect(result.text).toBe(text);
165
- });
155
+ var text = "lunes 5/13/2013 630-930am";
156
+ var result = chrono.es.parse(text)[0];
157
+ expect(result.text).toBe(text)
166
158
 
167
- testSingleCase(chrono.es, 'Lunes, 6/24/2013, 7:00pm - 8:30pm', (result, text) => {
159
+ var text = "miércoles 5/15/2013 1030am";
160
+ var result = chrono.es.parse(text)[0];
161
+ expect(result.text).toBe(text)
168
162
 
169
- expect(result.text).toBe(text);
170
- });
163
+ var text = "viernes 6/21/2013 2:30";
164
+ var result = chrono.es.parse(text)[0];
165
+ expect(result.text).toBe(text)
171
166
 
172
- testSingleCase(chrono.es, 'Jueves6/20/2013 from 7:00 PM to 10:00 PM', (result, text) => {
167
+ var text = "martes 7/2/2013 1-230 pm";
168
+ var result = chrono.es.parse(text)[0];
169
+ expect(result.text).toBe(text)
173
170
 
174
- expect(result.text).toBe(text);
175
- });
171
+ var text = "Lunes, 6/24/2013, 7:00pm - 8:30pm";
172
+ var result = chrono.es.parse(text)[0];
173
+ expect(result.text).toBe(text)
176
174
 
177
- testSingleCase(chrono.es, 'Miércoles, 3 Julio de 2013 a las 2pm', (result, text) => {
175
+ var text = "Jueves6/20/2013 from 7:00 PM to 10:00 PM";
176
+ var result = chrono.es.parse(text)[0];
177
+ expect(result.text).toBe(text)
178
178
 
179
- expect(result.text).toBe(text);
180
- });
179
+ var text = "Miércoles, 3 Julio de 2013 a las 2pm";
180
+ var result = chrono.es.parse(text)[0];
181
+ expect(result.text).toBe(text)
181
182
 
182
183
 
183
- testSingleCase(chrono.es, '6pm', (result, text) => {
184
+ var text = "6pm";
185
+ var result = chrono.es.parse(text)[0];
186
+ expect(result.text).toBe(text)
184
187
 
185
- expect(result.text).toBe(text);
186
- });
188
+ var text = "6 pm";
189
+ var result = chrono.es.parse(text)[0];
190
+ expect(result.text).toBe(text)
187
191
 
188
- testSingleCase(chrono.es, '6 pm', (result, text) => {
192
+ var text = "7-10pm";
193
+ var result = chrono.es.parse(text)[0];
194
+ expect(result.text).toBe(text)
189
195
 
190
- expect(result.text).toBe(text);
191
- });
196
+ var text = "11.1pm";
197
+ var result = chrono.es.parse(text)[0];
198
+ expect(result.text).toBe(text)
192
199
 
193
- testSingleCase(chrono.es, '7-10pm', (result, text) => {
200
+ var text = "a las 12";
201
+ var result = chrono.es.parse(text)[0];
202
+ expect(result.text).toBe(text)
194
203
 
195
- expect(result.text).toBe(text);
196
- });
204
+ var text = "a mediodia";
205
+ var result = chrono.es.parse(text)[0];
206
+ expect(result.text).toBe(text)
207
+ expect(result.start.get('hour')).toBe(12)
208
+ expect(result.start.get('hour')).toBe(12)
197
209
 
198
- testSingleCase(chrono.es, '11.1pm', (result, text) => {
199
-
200
- expect(result.text).toBe(text);
201
- });
202
-
203
- testSingleCase(chrono.es, 'a las 12', (result, text) => {
204
-
205
- expect(result.text).toBe(text);
206
- });
207
-
208
- testSingleCase(chrono.es, 'a mediodia', (result, text) => {
209
-
210
- expect(result.text).toBe(text);
211
- expect(result.start.get('hour')).toBe(12);
212
- expect(result.start.get('hour')).toBe(12);
213
- });
214
-
215
- testSingleCase(chrono.es, 'a medianoche', (result, text) => {
216
-
217
- expect(result.text).toBe(text);
218
- });
219
- });
210
+ var text = "a medianoche";
211
+ var result = chrono.es.parse(text)[0];
212
+ expect(result.text).toBe(text)
213
+ })