chrono-node 2.9.2 → 2.10.1

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 (319) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/locales/en/constants.d.ts +1 -1
  3. package/dist/cjs/locales/en/constants.js +1 -1
  4. package/dist/cjs/locales/en/constants.js.map +1 -1
  5. package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js +1 -1
  6. package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
  7. package/dist/cjs/locales/fr/constants.js +13 -0
  8. package/dist/cjs/locales/fr/constants.js.map +1 -1
  9. package/dist/cjs/locales/it/configuration.d.ts +5 -0
  10. package/dist/cjs/locales/it/configuration.js +66 -0
  11. package/dist/cjs/locales/it/configuration.js.map +1 -0
  12. package/dist/cjs/locales/it/constants.d.ts +8 -4
  13. package/dist/cjs/locales/it/constants.js +216 -90
  14. package/dist/cjs/locales/it/constants.js.map +1 -1
  15. package/dist/cjs/locales/it/index.d.ts +9 -7
  16. package/dist/cjs/locales/it/index.js +13 -51
  17. package/dist/cjs/locales/it/index.js.map +1 -1
  18. package/dist/cjs/locales/it/parsers/ITCasualDateParser.js +19 -10
  19. package/dist/cjs/locales/it/parsers/ITCasualDateParser.js.map +1 -1
  20. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.d.ts +1 -1
  21. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js +70 -37
  22. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
  23. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +1 -1
  24. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js +6 -6
  25. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -1
  26. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +4 -2
  27. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js +17 -6
  28. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -1
  29. package/dist/cjs/locales/it/parsers/ITMonthNameParser.d.ts +2 -2
  30. package/dist/cjs/locales/it/parsers/ITMonthNameParser.js +5 -4
  31. package/dist/cjs/locales/it/parsers/ITMonthNameParser.js.map +1 -1
  32. package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js +21 -7
  33. package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -1
  34. package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.d.ts +1 -1
  35. package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.js +2 -2
  36. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.d.ts +3 -2
  37. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js +37 -29
  38. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js.map +1 -1
  39. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +1 -1
  40. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js +9 -7
  41. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -1
  42. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +3 -1
  43. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +17 -9
  44. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -1
  45. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +1 -1
  46. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js +9 -6
  47. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -1
  48. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +3 -1
  49. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js +21 -6
  50. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -1
  51. package/dist/cjs/locales/it/parsers/ITWeekdayParser.d.ts +1 -1
  52. package/dist/cjs/locales/it/parsers/ITWeekdayParser.js +21 -12
  53. package/dist/cjs/locales/it/parsers/ITWeekdayParser.js.map +1 -1
  54. package/dist/cjs/locales/it/parsers/{ITCasualYearMonthDayParser.d.ts → ITYearMonthDayParser.d.ts} +3 -1
  55. package/dist/cjs/locales/it/parsers/{ITCasualYearMonthDayParser.js → ITYearMonthDayParser.js} +20 -8
  56. package/dist/cjs/locales/it/parsers/ITYearMonthDayParser.js.map +1 -0
  57. package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.d.ts +5 -0
  58. package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.js +34 -0
  59. package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.js.map +1 -0
  60. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +1 -1
  61. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js +3 -3
  62. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -1
  63. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +1 -1
  64. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js +3 -3
  65. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -1
  66. package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.d.ts +6 -0
  67. package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js +30 -0
  68. package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js.map +1 -0
  69. package/dist/cjs/locales/it/refiners/{ITMergeRelativeDateRefiner.d.ts → ITMergeRelativeFollowByDateRefiner.d.ts} +1 -1
  70. package/dist/cjs/locales/it/refiners/{ITMergeRelativeDateRefiner.js → ITMergeRelativeFollowByDateRefiner.js} +8 -8
  71. package/dist/cjs/locales/it/refiners/ITMergeRelativeFollowByDateRefiner.js.map +1 -0
  72. package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.d.ts +6 -0
  73. package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.js +26 -0
  74. package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.js.map +1 -0
  75. package/dist/cjs/results.js +15 -9
  76. package/dist/cjs/results.js.map +1 -1
  77. package/dist/esm/locales/en/constants.d.ts +1 -1
  78. package/dist/esm/locales/en/constants.js +1 -1
  79. package/dist/esm/locales/en/constants.js.map +1 -1
  80. package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js +1 -1
  81. package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
  82. package/dist/esm/locales/fr/constants.js +13 -0
  83. package/dist/esm/locales/fr/constants.js.map +1 -1
  84. package/dist/esm/locales/it/configuration.d.ts +5 -0
  85. package/dist/esm/locales/it/configuration.js +60 -0
  86. package/dist/esm/locales/it/configuration.js.map +1 -0
  87. package/dist/esm/locales/it/constants.d.ts +8 -4
  88. package/dist/esm/locales/it/constants.js +256 -117
  89. package/dist/esm/locales/it/constants.js.map +1 -1
  90. package/dist/esm/locales/it/index.d.ts +9 -7
  91. package/dist/esm/locales/it/index.js +8 -48
  92. package/dist/esm/locales/it/index.js.map +1 -1
  93. package/dist/esm/locales/it/parsers/ITCasualDateParser.js +19 -10
  94. package/dist/esm/locales/it/parsers/ITCasualDateParser.js.map +1 -1
  95. package/dist/esm/locales/it/parsers/ITCasualTimeParser.d.ts +1 -1
  96. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js +37 -37
  97. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
  98. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +1 -1
  99. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js +5 -5
  100. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -1
  101. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +4 -2
  102. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js +17 -5
  103. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -1
  104. package/dist/esm/locales/it/parsers/ITMonthNameParser.d.ts +2 -2
  105. package/dist/esm/locales/it/parsers/ITMonthNameParser.js +4 -3
  106. package/dist/esm/locales/it/parsers/ITMonthNameParser.js.map +1 -1
  107. package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js +21 -7
  108. package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -1
  109. package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.d.ts +1 -1
  110. package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.js +1 -1
  111. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.d.ts +3 -2
  112. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js +35 -27
  113. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js.map +1 -1
  114. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +1 -1
  115. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js +9 -7
  116. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -1
  117. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +3 -1
  118. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +18 -9
  119. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -1
  120. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +1 -1
  121. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js +9 -6
  122. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -1
  123. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +3 -1
  124. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js +22 -6
  125. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -1
  126. package/dist/esm/locales/it/parsers/ITWeekdayParser.d.ts +1 -1
  127. package/dist/esm/locales/it/parsers/ITWeekdayParser.js +21 -12
  128. package/dist/esm/locales/it/parsers/ITWeekdayParser.js.map +1 -1
  129. package/dist/esm/locales/it/parsers/{ITCasualYearMonthDayParser.d.ts → ITYearMonthDayParser.d.ts} +3 -1
  130. package/dist/esm/locales/it/parsers/{ITCasualYearMonthDayParser.js → ITYearMonthDayParser.js} +20 -7
  131. package/dist/esm/locales/it/parsers/ITYearMonthDayParser.js.map +1 -0
  132. package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.d.ts +5 -0
  133. package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.js +31 -0
  134. package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.js.map +1 -0
  135. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +1 -1
  136. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js +2 -2
  137. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -1
  138. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +1 -1
  139. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js +2 -2
  140. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -1
  141. package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.d.ts +6 -0
  142. package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js +27 -0
  143. package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js.map +1 -0
  144. package/dist/esm/locales/it/refiners/{ITMergeRelativeDateRefiner.d.ts → ITMergeRelativeFollowByDateRefiner.d.ts} +1 -1
  145. package/dist/esm/locales/it/refiners/{ITMergeRelativeDateRefiner.js → ITMergeRelativeFollowByDateRefiner.js} +7 -7
  146. package/dist/esm/locales/it/refiners/ITMergeRelativeFollowByDateRefiner.js.map +1 -0
  147. package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.d.ts +6 -0
  148. package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.js +23 -0
  149. package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.js.map +1 -0
  150. package/dist/esm/results.js +14 -9
  151. package/dist/esm/results.js.map +1 -1
  152. package/package.json +5 -1
  153. package/src/locales/en/constants.ts +1 -1
  154. package/src/locales/en/parsers/ENMonthNameMiddleEndianParser.ts +1 -1
  155. package/src/locales/fr/constants.ts +13 -0
  156. package/src/locales/it/configuration.ts +85 -0
  157. package/src/locales/it/constants.ts +273 -123
  158. package/src/locales/it/index.ts +14 -73
  159. package/src/locales/it/parsers/ITCasualDateParser.ts +20 -12
  160. package/src/locales/it/parsers/ITCasualTimeParser.ts +39 -44
  161. package/src/locales/it/parsers/ITMonthNameLittleEndianParser.ts +6 -6
  162. package/src/locales/it/parsers/ITMonthNameMiddleEndianParser.ts +34 -17
  163. package/src/locales/it/parsers/ITMonthNameParser.ts +9 -8
  164. package/src/locales/it/parsers/ITRelativeDateFormatParser.ts +33 -12
  165. package/src/locales/it/parsers/ITSlashMonthFormatParser.ts +1 -1
  166. package/src/locales/it/parsers/ITTimeExpressionParser.ts +42 -28
  167. package/src/locales/it/parsers/ITTimeUnitAgoFormatParser.ts +9 -8
  168. package/src/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.ts +21 -11
  169. package/src/locales/it/parsers/ITTimeUnitLaterFormatParser.ts +12 -6
  170. package/src/locales/it/parsers/ITTimeUnitWithinFormatParser.ts +28 -8
  171. package/src/locales/it/parsers/ITWeekdayParser.ts +23 -13
  172. package/src/locales/it/parsers/{ITCasualYearMonthDayParser.ts → ITYearMonthDayParser.ts} +19 -8
  173. package/src/locales/it/refiners/ITExtractYearSuffixRefiner.ts +34 -0
  174. package/src/locales/it/refiners/ITMergeDateRangeRefiner.ts +5 -9
  175. package/src/locales/it/refiners/ITMergeDateTimeRefiner.ts +5 -5
  176. package/src/locales/it/refiners/ITMergeRelativeAfterDateRefiner.ts +46 -0
  177. package/src/locales/it/refiners/{ITMergeRelativeDateRefiner.ts → ITMergeRelativeFollowByDateRefiner.ts} +10 -10
  178. package/src/locales/it/refiners/ITUnlikelyFormatFilter.ts +31 -0
  179. package/src/results.ts +40 -9
  180. package/dist/cjs/locales/it/parsers/ITCasualYearMonthDayParser.js.map +0 -1
  181. package/dist/cjs/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +0 -1
  182. package/dist/esm/locales/it/parsers/ITCasualYearMonthDayParser.js.map +0 -1
  183. package/dist/esm/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +0 -1
  184. package/test/calculation_duration.test.ts +0 -165
  185. package/test/calculation_weekdays.test.ts +0 -133
  186. package/test/de/de_casual.test.ts +0 -336
  187. package/test/de/de_dash.test.ts +0 -32
  188. package/test/de/de_month_name_little_endian.test.ts +0 -273
  189. package/test/de/de_time_exp.test.ts +0 -223
  190. package/test/de/de_time_units_casual_relative.test.ts +0 -120
  191. package/test/de/de_time_units_within.test.ts +0 -119
  192. package/test/de/de_weekday.test.ts +0 -158
  193. package/test/de/de_year.test.ts +0 -147
  194. package/test/debugging.test.ts +0 -17
  195. package/test/en/en.test.ts +0 -191
  196. package/test/en/en_casual.test.ts +0 -425
  197. package/test/en/en_inter_std.test.ts +0 -118
  198. package/test/en/en_merging_relative_dates.test.ts +0 -50
  199. package/test/en/en_month.test.ts +0 -339
  200. package/test/en/en_month_name_little_endian.test.ts +0 -448
  201. package/test/en/en_month_name_middle_endian.test.ts +0 -386
  202. package/test/en/en_performance.test.ts +0 -26
  203. package/test/en/en_relative.test.ts +0 -393
  204. package/test/en/en_slash.test.ts +0 -284
  205. package/test/en/en_time_exp.test.ts +0 -535
  206. package/test/en/en_time_units_ago.test.ts +0 -357
  207. package/test/en/en_time_units_casual_relative.test.ts +0 -186
  208. package/test/en/en_time_units_later.test.ts +0 -361
  209. package/test/en/en_time_units_within.test.ts +0 -417
  210. package/test/en/en_timezone_exp.test.ts +0 -410
  211. package/test/en/en_weekday.test.ts +0 -573
  212. package/test/en/en_year.test.ts +0 -138
  213. package/test/en/en_year_month_day.test.ts +0 -101
  214. package/test/en/negative_cases.test.ts +0 -99
  215. package/test/es/es_casual.test.ts +0 -175
  216. package/test/es/es_month_name_little_endian.test.ts +0 -217
  217. package/test/es/es_slash.test.ts +0 -26
  218. package/test/es/es_time_exp.test.ts +0 -175
  219. package/test/es/es_time_units_within.test.ts +0 -119
  220. package/test/fi/fi_casual.test.ts +0 -99
  221. package/test/fi/fi_casual_time.test.ts +0 -56
  222. package/test/fi/fi_month_name_little_endian.test.ts +0 -50
  223. package/test/fi/fi_time_exp.test.ts +0 -39
  224. package/test/fi/fi_time_units_ago.test.ts +0 -93
  225. package/test/fi/fi_time_units_casual_relative.test.ts +0 -117
  226. package/test/fi/fi_time_units_within.test.ts +0 -74
  227. package/test/fi/fi_weekday.test.ts +0 -90
  228. package/test/fr/fr_casual.test.ts +0 -314
  229. package/test/fr/fr_little_endian.test.ts +0 -320
  230. package/test/fr/fr_slash.test.ts +0 -49
  231. package/test/fr/fr_time_exp.test.ts +0 -588
  232. package/test/fr/fr_time_units_ago.test.ts +0 -103
  233. package/test/fr/fr_time_units_casual_relative.test.ts +0 -114
  234. package/test/fr/fr_time_units_within.test.ts +0 -129
  235. package/test/fr/fr_weekday.test.ts +0 -130
  236. package/test/it/it_casual.test.ts +0 -81
  237. package/test/it/it_month_name_little_endian.test.ts +0 -28
  238. package/test/it/it_month_name_middle_endian.test.ts +0 -39
  239. package/test/it/it_time_exp.test.ts +0 -84
  240. package/test/it/it_weekday.test.ts +0 -37
  241. package/test/it/it_year_month_day.test.ts +0 -41
  242. package/test/ja/ja_casual.test.ts +0 -73
  243. package/test/ja/ja_slash_date_format.test.ts +0 -60
  244. package/test/ja/ja_standard.test.ts +0 -235
  245. package/test/ja/ja_time_exp.test.ts +0 -305
  246. package/test/ja/ja_weekday.test.ts +0 -183
  247. package/test/nl/nl_casual.test.ts +0 -408
  248. package/test/nl/nl_month.test.ts +0 -205
  249. package/test/nl/nl_month_name_little_endian.test.ts +0 -358
  250. package/test/nl/nl_relative.test.ts +0 -242
  251. package/test/nl/nl_slash.test.ts +0 -206
  252. package/test/nl/nl_time_exp.test.ts +0 -79
  253. package/test/nl/nl_time_units_ago.test.ts +0 -243
  254. package/test/nl/nl_time_units_casual_relative.test.ts +0 -130
  255. package/test/nl/nl_time_units_later.test.ts +0 -250
  256. package/test/nl/nl_time_units_within.test.ts +0 -225
  257. package/test/nl/nl_weekday.test.ts +0 -216
  258. package/test/pt/pt_casual.test.ts +0 -175
  259. package/test/pt/pt_month_name_little_endian.test.ts +0 -217
  260. package/test/pt/pt_slash.test.ts +0 -26
  261. package/test/pt/pt_time_exp.test.ts +0 -175
  262. package/test/result.test.ts +0 -283
  263. package/test/ru/ru_casual.test.ts +0 -159
  264. package/test/ru/ru_month.test.ts +0 -70
  265. package/test/ru/ru_month_name_little_endian.test.ts +0 -145
  266. package/test/ru/ru_relative.test.ts +0 -107
  267. package/test/ru/ru_time_exp.test.ts +0 -111
  268. package/test/ru/ru_time_units_ago.test.ts +0 -48
  269. package/test/ru/ru_time_units_casual_relative.test.ts +0 -190
  270. package/test/ru/ru_time_units_within.test.ts +0 -16
  271. package/test/ru/ru_weekday.test.ts +0 -52
  272. package/test/sv/sv_casual.test.ts +0 -87
  273. package/test/sv/sv_month_name_little_endian.test.ts +0 -48
  274. package/test/sv/sv_time_units_casual_relative.test.ts +0 -143
  275. package/test/sv/sv_weekday.test.ts +0 -68
  276. package/test/system.test.ts +0 -247
  277. package/test/system_timezone.test.ts +0 -284
  278. package/test/test_util.ts +0 -135
  279. package/test/uk/uk_casual.test.ts +0 -153
  280. package/test/uk/uk_month.test.ts +0 -70
  281. package/test/uk/uk_month_name_little_endian.test.ts +0 -148
  282. package/test/uk/uk_relative.test.ts +0 -107
  283. package/test/uk/uk_time_exp.test.ts +0 -111
  284. package/test/uk/uk_time_units_ago.test.ts +0 -48
  285. package/test/uk/uk_time_units_casual_relative.test.ts +0 -142
  286. package/test/uk/uk_time_units_within.test.ts +0 -23
  287. package/test/uk/uk_weekday.test.ts +0 -52
  288. package/test/vi/vi_casual.test.ts +0 -84
  289. package/test/vi/vi_casual_time.test.ts +0 -77
  290. package/test/vi/vi_date_range.test.ts +0 -61
  291. package/test/vi/vi_forward_date.test.ts +0 -45
  292. package/test/vi/vi_month_year.test.ts +0 -40
  293. package/test/vi/vi_negative_cases.test.ts +0 -60
  294. package/test/vi/vi_slash.test.ts +0 -36
  295. package/test/vi/vi_standard.test.ts +0 -86
  296. package/test/vi/vi_strict.test.ts +0 -67
  297. package/test/vi/vi_time_exp.test.ts +0 -99
  298. package/test/vi/vi_time_units_ago.test.ts +0 -56
  299. package/test/vi/vi_time_units_casual_relative.test.ts +0 -56
  300. package/test/vi/vi_time_units_later.test.ts +0 -43
  301. package/test/vi/vi_time_units_within.test.ts +0 -24
  302. package/test/vi/vi_weekday.test.ts +0 -77
  303. package/test/vi/vi_year.test.ts +0 -42
  304. package/test/zh/hans/zh_hans_ago.test.ts +0 -58
  305. package/test/zh/hans/zh_hans_casual.test.ts +0 -242
  306. package/test/zh/hans/zh_hans_date.test.ts +0 -116
  307. package/test/zh/hans/zh_hans_deadline.test.ts +0 -175
  308. package/test/zh/hans/zh_hans_time_exp.test.ts +0 -508
  309. package/test/zh/hans/zh_hans_weekday.test.ts +0 -219
  310. package/test/zh/hant/zh_hant_ago.test.ts +0 -58
  311. package/test/zh/hant/zh_hant_casual.test.ts +0 -260
  312. package/test/zh/hant/zh_hant_date.test.ts +0 -116
  313. package/test/zh/hant/zh_hant_deadline.test.ts +0 -136
  314. package/test/zh/hant/zh_hant_time_exp.test.ts +0 -226
  315. package/test/zh/hant/zh_hant_weekday.test.ts +0 -175
  316. package/test/zh/zh.test.ts +0 -36
  317. package/tsconfig.build.esm.json +0 -8
  318. package/tsconfig.build.json +0 -10
  319. package/tsconfig.json +0 -29
@@ -1,393 +0,0 @@
1
- import * as chrono from "../../src";
2
- import { testSingleCase } from "../test_util";
3
- import { ParsingResult } from "../../src/results";
4
-
5
- test("Test - 'This' expressions", () => {
6
- testSingleCase(chrono, "this week", new Date(2017, 11 - 1, 19, 12), (result, text) => {
7
- expect(result.text).toBe(text);
8
- expect(result.start.get("year")).toBe(2017);
9
- expect(result.start.get("month")).toBe(11);
10
- expect(result.start.get("day")).toBe(19);
11
- expect(result.start.get("hour")).toBe(12);
12
- });
13
-
14
- testSingleCase(chrono, "this month", new Date(2017, 11 - 1, 19, 12), (result, text) => {
15
- expect(result.text).toBe(text);
16
- expect(result.start.get("year")).toBe(2017);
17
- expect(result.start.get("month")).toBe(11);
18
- expect(result.start.get("day")).toBe(1);
19
- expect(result.start.get("hour")).toBe(12);
20
- });
21
-
22
- testSingleCase(chrono, "this month", new Date(2017, 11 - 1, 1, 12), (result, text) => {
23
- expect(result.text).toBe(text);
24
- expect(result.start.get("year")).toBe(2017);
25
- expect(result.start.get("month")).toBe(11);
26
- expect(result.start.get("day")).toBe(1);
27
- expect(result.start.get("hour")).toBe(12);
28
- });
29
-
30
- testSingleCase(chrono, "this year", new Date(2017, 11 - 1, 19, 12), (result, text) => {
31
- expect(result.text).toBe(text);
32
- expect(result.start.get("year")).toBe(2017);
33
- expect(result.start.get("month")).toBe(1);
34
- expect(result.start.get("day")).toBe(1);
35
- expect(result.start.get("hour")).toBe(12);
36
- });
37
- });
38
-
39
- test("Test - Past relative expressions", () => {
40
- testSingleCase(chrono, "last week", new Date(2016, 10 - 1, 1, 12), (result, text) => {
41
- expect(result.text).toBe(text);
42
- expect(result.start.get("year")).toBe(2016);
43
- expect(result.start.get("month")).toBe(9);
44
- expect(result.start.get("day")).toBe(24);
45
- expect(result.start.get("hour")).toBe(12);
46
- });
47
-
48
- testSingleCase(chrono, "lastmonth", new Date(2016, 10 - 1, 1, 12), (result, text) => {
49
- expect(result.text).toBe(text);
50
- expect(result.start.get("year")).toBe(2016);
51
- expect(result.start.get("month")).toBe(9);
52
- expect(result.start.get("day")).toBe(1);
53
- expect(result.start.get("hour")).toBe(12);
54
- });
55
-
56
- testSingleCase(chrono, "last day", new Date(2016, 10 - 1, 1, 12), (result, text) => {
57
- expect(result.text).toBe(text);
58
- expect(result.start.get("year")).toBe(2016);
59
- expect(result.start.get("month")).toBe(9);
60
- expect(result.start.get("day")).toBe(30);
61
- expect(result.start.get("hour")).toBe(12);
62
- });
63
-
64
- testSingleCase(chrono, "last month", new Date(2016, 10 - 1, 1, 12), (result, text) => {
65
- expect(result.text).toBe(text);
66
- expect(result.start.get("year")).toBe(2016);
67
- expect(result.start.get("month")).toBe(9);
68
- expect(result.start.get("day")).toBe(1);
69
- expect(result.start.get("hour")).toBe(12);
70
- });
71
-
72
- testSingleCase(chrono, "past week", new Date(2016, 10 - 1, 1, 12), (result, text) => {
73
- expect(result.text).toBe(text);
74
- expect(result.start.get("year")).toBe(2016);
75
- expect(result.start.get("month")).toBe(9);
76
- expect(result.start.get("day")).toBe(24);
77
- expect(result.start.get("hour")).toBe(12);
78
- });
79
- });
80
-
81
- test("Test - Future relative expressions", () => {
82
- testSingleCase(chrono, "next hour", new Date(2016, 10 - 1, 1, 12), (result, text) => {
83
- expect(result.text).toBe(text);
84
- expect(result.start.get("year")).toBe(2016);
85
- expect(result.start.get("month")).toBe(10);
86
- expect(result.start.get("day")).toBe(1);
87
- expect(result.start.get("hour")).toBe(13);
88
- });
89
-
90
- testSingleCase(chrono, "next week", new Date(2016, 10 - 1, 1, 12), (result, text) => {
91
- expect(result.text).toBe(text);
92
- expect(result.start.get("year")).toBe(2016);
93
- expect(result.start.get("month")).toBe(10);
94
- expect(result.start.get("day")).toBe(8);
95
- expect(result.start.get("hour")).toBe(12);
96
- });
97
-
98
- testSingleCase(chrono, "next day", new Date(2016, 10 - 1, 1, 12), (result, text) => {
99
- expect(result.text).toBe(text);
100
- expect(result.start.get("year")).toBe(2016);
101
- expect(result.start.get("month")).toBe(10);
102
- expect(result.start.get("day")).toBe(2);
103
- expect(result.start.get("hour")).toBe(12);
104
- });
105
-
106
- testSingleCase(chrono, "next month", new Date(2016, 10 - 1, 1, 12), (result, text) => {
107
- expect(result.text).toBe(text);
108
- expect(result.start.get("year")).toBe(2016);
109
- expect(result.start.get("month")).toBe(11);
110
- expect(result.start.get("day")).toBe(1);
111
- expect(result.start.get("hour")).toBe(12);
112
-
113
- expect(result.start.isCertain("year")).toBe(true);
114
- expect(result.start.isCertain("month")).toBe(true);
115
- expect(result.start.isCertain("day")).toBe(false);
116
- expect(result.start.isCertain("hour")).toBe(false);
117
- });
118
-
119
- testSingleCase(chrono, "next year", new Date(2020, 11 - 1, 22, 12, 11, 32, 6), (result, text) => {
120
- expect(result.text).toBe(text);
121
- expect(result.start.get("year")).toBe(2021);
122
- expect(result.start.get("month")).toBe(11);
123
- expect(result.start.get("day")).toBe(22);
124
- expect(result.start.get("hour")).toBe(12);
125
- expect(result.start.get("minute")).toBe(11);
126
- expect(result.start.get("second")).toBe(32);
127
- expect(result.start.get("millisecond")).toBe(6);
128
-
129
- expect(result.start.isCertain("year")).toBe(true);
130
- expect(result.start.isCertain("month")).toBe(false);
131
- expect(result.start.isCertain("day")).toBe(false);
132
- expect(result.start.isCertain("hour")).toBe(false);
133
- expect(result.start.isCertain("minute")).toBe(false);
134
- expect(result.start.isCertain("second")).toBe(false);
135
- expect(result.start.isCertain("millisecond")).toBe(false);
136
- expect(result.start.isCertain("timezoneOffset")).toBe(false);
137
- });
138
-
139
- testSingleCase(chrono, "next quarter", new Date(2021, 1 - 1, 22, 12), (result, text) => {
140
- expect(result.text).toBe(text);
141
- expect(result.start.get("year")).toBe(2021);
142
- expect(result.start.get("month")).toBe(4);
143
- expect(result.start.get("day")).toBe(22);
144
- expect(result.start.get("hour")).toBe(12);
145
-
146
- expect(result.start.isCertain("year")).toBe(false);
147
- expect(result.start.isCertain("month")).toBe(false);
148
- expect(result.start.isCertain("day")).toBe(false);
149
- expect(result.start.isCertain("hour")).toBe(false);
150
- });
151
-
152
- testSingleCase(chrono, "next qtr", new Date(2021, 10 - 1, 22, 12), (result, text) => {
153
- expect(result.text).toBe(text);
154
- expect(result.start.get("year")).toBe(2022);
155
- expect(result.start.get("month")).toBe(1);
156
- expect(result.start.get("day")).toBe(22);
157
- expect(result.start.get("hour")).toBe(12);
158
-
159
- expect(result.start.isCertain("year")).toBe(false);
160
- expect(result.start.isCertain("month")).toBe(false);
161
- expect(result.start.isCertain("day")).toBe(false);
162
- expect(result.start.isCertain("hour")).toBe(false);
163
- });
164
-
165
- testSingleCase(chrono, "next two quarter", new Date(2021, 1 - 1, 22, 12), (result, text) => {
166
- expect(result.text).toBe(text);
167
- expect(result.start.get("year")).toBe(2021);
168
- expect(result.start.get("month")).toBe(7);
169
- expect(result.start.get("day")).toBe(22);
170
- expect(result.start.get("hour")).toBe(12);
171
-
172
- expect(result.start.isCertain("year")).toBe(false);
173
- expect(result.start.isCertain("month")).toBe(false);
174
- expect(result.start.isCertain("day")).toBe(false);
175
- expect(result.start.isCertain("hour")).toBe(false);
176
- });
177
-
178
- testSingleCase(chrono, "after this year", new Date(2020, 11 - 1, 22, 12, 11, 32, 6), (result, text) => {
179
- expect(result.text).toBe(text);
180
- expect(result.start.get("year")).toBe(2021);
181
- expect(result.start.get("month")).toBe(11);
182
- expect(result.start.get("day")).toBe(22);
183
- expect(result.start.get("hour")).toBe(12);
184
- expect(result.start.get("minute")).toBe(11);
185
- expect(result.start.get("second")).toBe(32);
186
- expect(result.start.get("millisecond")).toBe(6);
187
-
188
- expect(result.start.isCertain("year")).toBe(true);
189
- expect(result.start.isCertain("month")).toBe(false);
190
- expect(result.start.isCertain("day")).toBe(false);
191
- expect(result.start.isCertain("hour")).toBe(false);
192
- expect(result.start.isCertain("minute")).toBe(false);
193
- expect(result.start.isCertain("second")).toBe(false);
194
- expect(result.start.isCertain("millisecond")).toBe(false);
195
- expect(result.start.isCertain("timezoneOffset")).toBe(false);
196
- });
197
-
198
- testSingleCase(chrono, "Connect back after this year", new Date(2022, 4 - 1, 16, 12), (result, text) => {
199
- expect(result.start.get("year")).toBe(2023);
200
- expect(result.start.get("month")).toBe(4);
201
- expect(result.start.get("day")).toBe(16);
202
- });
203
- });
204
-
205
- test("Test - Relative date components' certainty", () => {
206
- const refDate = new Date(2016, 10 - 1, 7, 12);
207
-
208
- testSingleCase(chrono, "next hour", refDate, (result, text) => {
209
- expect(result.text).toBe(text);
210
- expect(result.start.get("year")).toBe(2016);
211
- expect(result.start.get("month")).toBe(10);
212
- expect(result.start.get("day")).toBe(7);
213
- expect(result.start.get("hour")).toBe(13);
214
- expect(result.start.get("timezoneOffset")).toBe(refDate.getTimezoneOffset() * -1);
215
-
216
- expect(result.start.isCertain("year")).toBe(true);
217
- expect(result.start.isCertain("month")).toBe(true);
218
- expect(result.start.isCertain("day")).toBe(true);
219
- expect(result.start.isCertain("hour")).toBe(true);
220
- expect(result.start.isCertain("timezoneOffset")).toBe(true);
221
- });
222
-
223
- testSingleCase(chrono, "next month", refDate, (result, text) => {
224
- //const expectedDate = new Date(2016, 11, 7, 12);
225
-
226
- expect(result.text).toBe(text);
227
- expect(result.start.get("year")).toBe(2016);
228
- expect(result.start.get("month")).toBe(11);
229
- expect(result.start.get("day")).toBe(7);
230
- expect(result.start.get("hour")).toBe(12);
231
- //expect(result.start.get("timezoneOffset")).toBe(-expectedDate.getTimezoneOffset());
232
-
233
- expect(result.start.isCertain("year")).toBe(true);
234
- expect(result.start.isCertain("month")).toBe(true);
235
- expect(result.start.isCertain("day")).toBe(false);
236
- expect(result.start.isCertain("hour")).toBe(false);
237
- expect(result.start.isCertain("timezoneOffset")).toBe(false);
238
- });
239
- });
240
-
241
- test("Test - Relative date when the timezone is irrelevant", () => {
242
- {
243
- // Sun Nov 29 2020 13:24:13 GMT+0900 (JST)
244
- // Sun Nov 29 2020 05:24:13 GMT+0100 (BST)
245
- const refInstant = new Date("Sun Nov 29 2020 13:24:13 GMT+0900 (Japan Standard Time)");
246
-
247
- // The "now" is always exactly the same as the reference instant (regardless of the timezone).
248
- const text = "now";
249
- const result = chrono.parse(text, refInstant)[0] as ParsingResult;
250
- expect(result).toBeDate(new Date("Sun Nov 29 2020 13:24:13 GMT+0900 (JST)"));
251
- expect(result).toBeDate(new Date("Sun Nov 29 2020 05:24:13 GMT+0100 (BST)"));
252
-
253
- result.start.imply("timezoneOffset", 60);
254
- expect(result).toBeDate(new Date("Sun Nov 29 2020 13:24:13 GMT+0900 (JST)"));
255
- expect(result).toBeDate(new Date("Sun Nov 29 2020 05:24:13 GMT+0100 (BST)"));
256
- }
257
- {
258
- // Sun Nov 29 2020 13:24:13 GMT+0900 (JST)
259
- // Sun Nov 29 2020 05:24:13 GMT+0100 (BST)
260
- const refInstant = new Date("Sun Nov 29 2020 13:24:13 GMT+0900 (Japan Standard Time)");
261
-
262
- // Always "10 minutes" from the reference instant (regardless of the target timezone).
263
- const text = "in 10 minutes";
264
- const result = chrono.parse(text, refInstant)[0] as ParsingResult;
265
- expect(result).toBeDate(new Date("Sun Nov 29 2020 13:34:13 GMT+0900 (JST)"));
266
- expect(result).toBeDate(new Date("Sun Nov 29 2020 05:34:13 GMT+0100 (BST)"));
267
-
268
- result.start.imply("timezoneOffset", 60);
269
- expect(result).toBeDate(new Date("Sun Nov 29 2020 13:34:13 GMT+0900 (JST)"));
270
- expect(result).toBeDate(new Date("Sun Nov 29 2020 05:34:13 GMT+0100 (BST)"));
271
- }
272
- {
273
- // Sun Nov 29 2020 13:24:13 GMT+0900 (JST)
274
- // Sun Nov 29 2020 05:24:13 GMT+0100 (BST)
275
- const refInstant = new Date("Sun Nov 29 2020 13:24:13 GMT+0900 (Japan Standard Time)");
276
-
277
- // Always "10 minutes" from the reference instant (regardless of the reference timezone).
278
- const text = "in 10 minutes";
279
- {
280
- const result = chrono.parse(text, { instant: refInstant, timezone: "BST" })[0] as ParsingResult;
281
- expect(result).toBeDate(new Date("Sun Nov 29 2020 13:34:13 GMT+0900 (JST)"));
282
- expect(result).toBeDate(new Date("Sun Nov 29 2020 05:34:13 GMT+0100 (BST)"));
283
- }
284
- {
285
- const result = chrono.parse(text, { instant: refInstant, timezone: "JST" })[0] as ParsingResult;
286
- expect(result).toBeDate(new Date("Sun Nov 29 2020 13:34:13 GMT+0900 (JST)"));
287
- expect(result).toBeDate(new Date("Sun Nov 29 2020 05:34:13 GMT+0100 (BST)"));
288
- }
289
- }
290
- {
291
- // Sun Nov 29 2020 13:24:13 GMT+0900 (JST)
292
- // Sun Nov 29 2020 05:24:13 GMT+0100 (BST)
293
- const refInstant = new Date("Sun Nov 29 2020 13:24:13 GMT+0900 (Japan Standard Time)");
294
-
295
- const text = "in 20 minutes";
296
- const result = chrono.parse(text, { instant: refInstant, timezone: null })[0] as ParsingResult;
297
- expect(result).toBeDate(new Date("Sun Nov 29 2020 13:44:13 GMT+0900 (JST)"));
298
- expect(result).toBeDate(new Date("Sun Nov 29 2020 05:44:13 GMT+0100 (BST)"));
299
-
300
- // Although the timezone is not specified, we need to assume it is similar to the system default.
301
- // We also must allow the timezoneOffset to be overridden. Otherwise, the relative meaning is incorrect.
302
- // expect(result.start.isCertain("timezoneOffset")).toBe(false);
303
- }
304
- });
305
-
306
- test("Test - Relative date when the timezone is relevant but unknown", () => {
307
- // Sun Nov 29 2020 13:24:13 (unknown timezone = system timezone)
308
- const refInstant = new Date(2020, 11 - 1, 29, 13, 24, 13, 0);
309
-
310
- // In the same (system) timezone, the "tomorrow" is 'Nov 30 2020'
311
- const text = "tomorrow at 5pm";
312
- const result = chrono.parse(text, refInstant)[0] as ParsingResult;
313
- expect(result).toBeDate(new Date(2020, 11 - 1, 30, 17, 0, 0, 0));
314
- expect(result.start.get("month")).toBe(11);
315
- expect(result.start.get("day")).toBe(30);
316
- expect(result.start.get("hour")).toBe(17);
317
- });
318
-
319
- test("Test - Relative date when the timezone is relevant and known", () => {
320
- // Sun Nov 29 2020 13:24:13 GMT+0900 (JST)
321
- // Sun Nov 29 2020 05:24:13 GMT+0100 (BST)
322
- // Sat Nov 28 2020 21:24:13 GMT-0700 (PDT)
323
- const refInstant = new Date("Sun Nov 29 2020 13:24:13 GMT+0900 (Japan Standard Time)");
324
- {
325
- // In JST (Nov 29 2020 13:24:13 GMT+0900), the "tomorrow" is 'Nov 30 2020'
326
- const text = "tomorrow at 5pm";
327
- const result = chrono.parse(text, { instant: refInstant, timezone: "JST" })[0] as ParsingResult;
328
- expect(result).toBeDate(new Date("Mon Nov 30 2020 17:00:00 GMT+0900 (JST)"));
329
- expect(result.start.get("month")).toBe(11);
330
- expect(result.start.get("day")).toBe(30);
331
- expect(result.start.get("hour")).toBe(17);
332
-
333
- // However, when implying the output timezone to be GMT+0100,
334
- result.start.imply("timezoneOffset", 60);
335
- expect(result).toBeDate(new Date("Mon Nov 30 2020 17:00:00 GMT+0100 (BST)"));
336
- }
337
- {
338
- // In BST (Nov 29 2020 05:24:13 GMT+0100), the "tomorrow" is 'Nov 30 2020'
339
- const text = "tomorrow at 5pm";
340
- const result = chrono.parse(text, { instant: refInstant, timezone: "BST" })[0] as ParsingResult;
341
- expect(result).toBeDate(new Date("Mon Nov 30 2020 17:00:00 GMT+0100 (BST)"));
342
- expect(result.start.get("month")).toBe(11);
343
- expect(result.start.get("day")).toBe(30);
344
- expect(result.start.get("hour")).toBe(17);
345
-
346
- // However, when implying the output timezone to be GMT+0900,
347
- result.start.imply("timezoneOffset", 540);
348
- expect(result).toBeDate(new Date("Mon Nov 30 2020 17:00:00 GMT+0900 (JST)"));
349
- }
350
- {
351
- // In PST (Sat Nov 28 2020 21:24:13 GMT-0700), the "tomorrow" is 'Nov 29 2020'
352
- const text = "tomorrow at 5pm";
353
- const result = chrono.parse(text, { instant: refInstant, timezone: -7 * 60 })[0] as ParsingResult;
354
- expect(result).toBeDate(new Date("Sun Nov 29 2020 17:00:00 GMT-0700 (PST)"));
355
- expect(result.start.get("month")).toBe(11);
356
- expect(result.start.get("day")).toBe(29);
357
- expect(result.start.get("hour")).toBe(17);
358
-
359
- // However, when implying the output timezone to be GMT+0900,
360
- result.start.imply("timezoneOffset", 540);
361
- expect(result).toBeDate(new Date("Sun Nov 29 2020 17:00:00 GMT+0900 (JST)"));
362
- }
363
- });
364
-
365
- test("Test - Relative date when the timezone is relevant and known (2nd scenario)", () => {
366
- // Thu Feb 27 2025 17:00:00 GMT+0000
367
- // Thu Feb 27 2025 09:00:00 GMT-0800 (PST)
368
- const refInstant = new Date("2025-02-27T17:00:00.000Z");
369
- {
370
- const text = "tomorrow at 9am";
371
- const result = chrono.parse(text, { instant: refInstant, timezone: "PST" })[0] as ParsingResult;
372
- expect(result).toBeDate(new Date("Fri Feb 28 2025 09:00:00 GMT-0800 (PST)"));
373
- expect(result).toBeDate(new Date("2025-02-28T17:00:00.000Z"));
374
- }
375
- {
376
- const text = "in 2 weeks at 9am";
377
- const result = chrono.parse(text, { instant: refInstant, timezone: "PST" })[0] as ParsingResult;
378
- expect(result).toBeDate(new Date("Thu Mar 13 2025 09:00:00 GMT-0800 (PST)"));
379
- expect(result).toBeDate(new Date("2025-03-13T17:00:00.000Z"));
380
- }
381
- {
382
- const text = "2 weeks ago at 9am";
383
- const result = chrono.parse(text, { instant: refInstant, timezone: "PST" })[0] as ParsingResult;
384
- expect(result).toBeDate(new Date("Thu Feb 13 2025 09:00:00 GMT-0800 (PST)"));
385
- expect(result).toBeDate(new Date("2025-02-13T17:00:00.000Z"));
386
- }
387
- {
388
- const text = "next friday at 9am";
389
- const result = chrono.parse(text, { instant: refInstant, timezone: "PST" })[0] as ParsingResult;
390
- expect(result).toBeDate(new Date("Fri Mar 07 2025 09:00:00 GMT-0800 (PST)"));
391
- expect(result).toBeDate(new Date("2025-03-07T17:00:00.000Z"));
392
- }
393
- });
@@ -1,284 +0,0 @@
1
- import * as chrono from "../../src";
2
- import { testSingleCase, testUnexpectedResult, testWithExpectedDate } from "../test_util";
3
-
4
- test("Test - Parsing Offset Expression", function () {
5
- testSingleCase(chrono, " 04/2016 ", new Date(2012, 7, 10), (result) => {
6
- expect(result.index).toBe(4);
7
- expect(result.text).toBe("04/2016");
8
- });
9
- });
10
-
11
- test("Test - Single Expression (MM/dd/yyyy)", function () {
12
- testSingleCase(chrono, "8/10/2012", new Date(2012, 7, 10), (result) => {
13
- expect(result.start).not.toBeNull();
14
- expect(result.start.get("year")).toBe(2012);
15
- expect(result.start.get("month")).toBe(8);
16
- expect(result.start.get("day")).toBe(10);
17
-
18
- expect(result.index).toBe(0);
19
- expect(result.text).toBe("8/10/2012");
20
- expect(result.tags()).toContain("parser/SlashDateFormatParser");
21
-
22
- expect(result.start.isCertain("day")).toBe(true);
23
- expect(result.start.isCertain("month")).toBe(true);
24
- expect(result.start.isCertain("year")).toBe(true);
25
-
26
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
27
- });
28
-
29
- testSingleCase(chrono, ": 8/1/2012", new Date(2012, 7, 10), (result) => {
30
- expect(result.start).not.toBeNull();
31
- expect(result.start.get("year")).toBe(2012);
32
- expect(result.start.get("month")).toBe(8);
33
- expect(result.start.get("day")).toBe(1);
34
-
35
- expect(result.index).toBe(2);
36
- expect(result.text).toBe("8/1/2012");
37
-
38
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 1, 12));
39
- });
40
-
41
- testSingleCase(chrono, "The Deadline is 8/10/2012", new Date(2012, 7, 10), (result) => {
42
- expect(result.index).toBe(16);
43
- expect(result.text).toBe("8/10/2012");
44
-
45
- expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
46
- });
47
-
48
- testSingleCase(chrono, "The Deadline is Tuesday 11/3/2015", new Date(2015, 10, 3), (result) => {
49
- expect(result.index).toBe(16);
50
- expect(result.text).toBe("Tuesday 11/3/2015");
51
-
52
- expect(result.start).toBeDate(new Date(2015, 10, 3, 12));
53
- });
54
-
55
- testSingleCase(chrono.strict, "2/28/2014", (result) => {
56
- expect(result.text).toBe("2/28/2014");
57
- });
58
-
59
- testWithExpectedDate(chrono.strict, "12-30-16", new Date(2016, 12 - 1, 30, 12));
60
-
61
- testSingleCase(chrono.strict, "Friday 12-30-16", (result) => {
62
- expect(result.text).toBe("Friday 12-30-16");
63
- expect(result).toBeDate(new Date(2016, 12 - 1, 30, 12));
64
- });
65
- });
66
-
67
- test("Test - Single Expression Little-Endian (dd/MM/yyyy)", function () {
68
- testSingleCase(chrono.en.GB, "8/10/2012", new Date(2012, 7, 10), (result) => {
69
- expect(result.start).not.toBeNull();
70
- expect(result.start.get("year")).toBe(2012);
71
- expect(result.start.get("month")).toBe(10);
72
- expect(result.start.get("day")).toBe(8);
73
-
74
- expect(result.index).toBe(0);
75
- expect(result.text).toBe("8/10/2012");
76
-
77
- expect(result.start).toBeDate(new Date(2012, 10 - 1, 8, 12));
78
- });
79
-
80
- testWithExpectedDate(chrono.strict, "30-12-16", new Date(2016, 12 - 1, 30, 12));
81
-
82
- testSingleCase(chrono.strict, "Friday 30-12-16", (result) => {
83
- expect(result.text).toBe("Friday 30-12-16");
84
- expect(result).toBeDate(new Date(2016, 12 - 1, 30, 12));
85
- });
86
- });
87
-
88
- test("Test - Single Expression Little-Endian with Month name", function () {
89
- testSingleCase(chrono.en.GB, "8/Oct/2012", new Date(2012, 7, 10), (result) => {
90
- expect(result.start).not.toBeNull();
91
- expect(result.start.get("year")).toBe(2012);
92
- expect(result.start.get("month")).toBe(10);
93
- expect(result.start.get("day")).toBe(8);
94
-
95
- expect(result.index).toBe(0);
96
- expect(result.text).toBe("8/Oct/2012");
97
-
98
- expect(result.start).toBeDate(new Date(2012, 10 - 1, 8, 12));
99
- });
100
-
101
- testSingleCase(chrono.strict, "06/Nov/2023", (result) => {
102
- expect(result.text).toBe("06/Nov/2023");
103
- expect(result).toBeDate(new Date(2023, 11 - 1, 6, 12));
104
- });
105
-
106
- testSingleCase(chrono.strict, "06/Nov/2023:06:36:02", (result) => {
107
- expect(result.text).toBe("06/Nov/2023:06:36:02");
108
- expect(result).toBeDate(new Date(2023, 11 - 1, 6, 6, 36, 2));
109
- });
110
-
111
- testSingleCase(chrono.strict, "06/Nov/2023:06:36:02 +0200", (result) => {
112
- expect(result.text).toBe("06/Nov/2023:06:36:02 +0200");
113
- expect(result).toBeDate(new Date("Mon Nov 06 2023 06:36:02 GMT+0200"));
114
- });
115
- });
116
-
117
- test("Test - Single Expression Shorten (mm/yyyy)", () => {
118
- testSingleCase(chrono, "The event is going ahead (04/2016)", new Date(2012, 7, 10), (result) => {
119
- expect(result.start).not.toBeNull();
120
- expect(result.start.get("year")).toBe(2016);
121
- expect(result.start.get("month")).toBe(4);
122
- expect(result.start.get("day")).toBe(1);
123
-
124
- expect(result.index).toBe(26);
125
- expect(result.text).toBe("04/2016");
126
-
127
- expect(result.start).toBeDate(new Date(2016, 4 - 1, 1, 12));
128
- });
129
-
130
- testSingleCase(chrono, "Published: 06/2004", new Date(2012, 7, 10), (result) => {
131
- expect(result.start).not.toBeNull();
132
- expect(result.start.get("year")).toBe(2004);
133
- expect(result.start.get("month")).toBe(6);
134
- expect(result.start.get("day")).toBe(1);
135
-
136
- expect(result.index).toBe(11);
137
- expect(result.text).toBe("06/2004");
138
-
139
- expect(result.start).toBeDate(new Date(2004, 6 - 1, 1, 12));
140
- });
141
- });
142
-
143
- test("Test - Single Expression Shorten (dd/mm)", () => {
144
- testSingleCase(chrono, "8/10", new Date(2012, 7, 10), (result) => {
145
- expect(result.start).not.toBeNull();
146
- expect(result.start.get("year")).toBe(2012);
147
- expect(result.start.get("month")).toBe(8);
148
- expect(result.start.get("day")).toBe(10);
149
-
150
- expect(result.index).toBe(0);
151
- expect(result.text).toBe("8/10");
152
-
153
- expect(result.start.isCertain("day")).toBe(true);
154
- expect(result.start.isCertain("month")).toBe(true);
155
- expect(result.start.isCertain("year")).toBe(false);
156
-
157
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
158
- });
159
- });
160
-
161
- test("Test - Range Expression", function () {
162
- testSingleCase(chrono.en, "8/10/2012 - 8/15/2012", new Date(2012, 7, 10), (result) => {
163
- expect(result.index).toBe(0);
164
- expect(result.text).toBe("8/10/2012 - 8/15/2012");
165
- expect(result.tags()).toContain("parser/SlashDateFormatParser");
166
-
167
- expect(result.start).not.toBeNull();
168
- expect(result.start.get("year")).toBe(2012);
169
- expect(result.start.get("month")).toBe(8);
170
- expect(result.start.get("day")).toBe(10);
171
- expect(result.start.tags()).toContain("parser/SlashDateFormatParser");
172
-
173
- expect(result.start).toBeDate(new Date(2012, 8 - 1, 10, 12));
174
-
175
- expect(result.end).not.toBeNull();
176
- expect(result.end.get("year")).toBe(2012);
177
- expect(result.end.get("month")).toBe(8);
178
- expect(result.end.get("day")).toBe(15);
179
- expect(result.end.tags()).toContain("parser/SlashDateFormatParser");
180
-
181
- expect(result.end).toBeDate(new Date(2012, 8 - 1, 15, 12));
182
- });
183
- });
184
-
185
- test("Test - Range Expressions with Time", function () {
186
- testSingleCase(chrono.en, "from 01/21/2021 10:00 to 01/01/2023 07:00", new Date(2012, 7, 10), (result) => {
187
- expect(result.start).not.toBeNull();
188
- expect(result.start.get("year")).toBe(2021);
189
- expect(result.start.get("month")).toBe(1);
190
- expect(result.start.get("day")).toBe(21);
191
- expect(result.start.get("hour")).toBe(10);
192
- expect(result.start.get("minute")).toBe(0);
193
-
194
- expect(result.end).not.toBeNull();
195
- expect(result.end.get("year")).toBe(2023);
196
- expect(result.end.get("month")).toBe(1);
197
- expect(result.end.get("day")).toBe(1);
198
- expect(result.end.get("hour")).toBe(7);
199
- expect(result.end.get("minute")).toBe(0);
200
- });
201
-
202
- testSingleCase(chrono.en, "08/08/2023, 09:15 AM to 08/29/2023, 09:15 AM", new Date(2012, 7, 10), (result) => {
203
- expect(result.start).not.toBeNull();
204
- expect(result.start.get("year")).toBe(2023);
205
- expect(result.start.get("month")).toBe(8);
206
- expect(result.start.get("day")).toBe(8);
207
- expect(result.start.get("hour")).toBe(9);
208
- expect(result.start.get("minute")).toBe(15);
209
-
210
- expect(result.end).not.toBeNull();
211
- expect(result.end.get("year")).toBe(2023);
212
- expect(result.end.get("month")).toBe(8);
213
- expect(result.end.get("day")).toBe(29);
214
- expect(result.end.get("hour")).toBe(9);
215
- expect(result.end.get("minute")).toBe(15);
216
- });
217
- });
218
-
219
- test("Test - Splitter variances patterns", function () {
220
- const expectDate = new Date(2015, 5 - 1, 25, 12, 0);
221
-
222
- testWithExpectedDate(chrono, "2015-05-25", expectDate);
223
- testWithExpectedDate(chrono, "2015/05/25", expectDate);
224
- testWithExpectedDate(chrono, "2015.05.25", expectDate);
225
- testWithExpectedDate(chrono, "05-25-2015", expectDate);
226
- testWithExpectedDate(chrono, "05/25/2015", expectDate);
227
- testWithExpectedDate(chrono, "05.25.2015", expectDate);
228
- testWithExpectedDate(chrono, "/05/25/2015", expectDate);
229
-
230
- // Also, guessing ambiguous date
231
- testWithExpectedDate(chrono, "25/05/2015", expectDate);
232
- });
233
-
234
- test("Test - Impossible Dates and Unexpected Results", function () {
235
- testUnexpectedResult(chrono, "8/32/2014");
236
- testUnexpectedResult(chrono, "8/32");
237
- testUnexpectedResult(chrono, "2/29/2014");
238
- testUnexpectedResult(chrono, "2014/22/29");
239
- testUnexpectedResult(chrono, "2014/13/22");
240
- testUnexpectedResult(chrono, "80-32-89-89");
241
- testUnexpectedResult(chrono, "02/29/2022");
242
- testUnexpectedResult(chrono, "06/31/2022");
243
- testUnexpectedResult(chrono, "06/-31/2022");
244
- testUnexpectedResult(chrono, "18/13/2022");
245
- testUnexpectedResult(chrono, "15/28/2022");
246
- testUnexpectedResult(chrono, "4/13/1");
247
- });
248
-
249
- test("Test - forward dates only option", function () {
250
- testSingleCase(chrono, "5/31", new Date(1999, 6 - 1, 1), { forwardDate: true }, (result) => {
251
- expect(result.start).not.toBeNull();
252
- expect(result.start.get("year")).toBe(2000);
253
- expect(result.start.get("month")).toBe(5);
254
- expect(result.start.get("day")).toBe(31);
255
-
256
- expect(result.index).toBe(0);
257
- expect(result.text).toBe("5/31");
258
-
259
- expect(result.start.isCertain("day")).toBe(true);
260
- expect(result.start.isCertain("month")).toBe(true);
261
- expect(result.start.isCertain("year")).toBe(false);
262
-
263
- expect(result.start).toBeDate(new Date(2000, 5 - 1, 31, 12));
264
- });
265
-
266
- testSingleCase(chrono, "1/8 at 12pm", new Date("Sep 25 2021 12:00:00"), { forwardDate: true }, (result) => {
267
- expect(result.text).toBe("1/8 at 12pm");
268
-
269
- expect(result.start).not.toBeNull();
270
- expect(result.start.get("year")).toBe(2022);
271
- expect(result.start.get("month")).toBe(1);
272
- expect(result.start.get("day")).toBe(8);
273
-
274
- expect(result.start).toBeDate(new Date(2022, 1 - 1, 8, 12));
275
- });
276
- });
277
-
278
- test("Test - Slash date with an extra chunk", () => {
279
- testSingleCase(chrono, "14/4 90", new Date(2012, 7, 10), (result) => {
280
- expect(result.start.get("year")).toBe(2012);
281
- expect(result.start.get("month")).toBe(4);
282
- expect(result.start.get("day")).toBe(14);
283
- });
284
- });