chrono-node 2.3.7 → 2.4.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 (369) hide show
  1. package/README.md +2 -2
  2. package/dist/calculation/mergingCalculation.js +1 -0
  3. package/dist/calculation/mergingCalculation.js.map +1 -0
  4. package/dist/calculation/weeks.js +1 -0
  5. package/dist/calculation/weeks.js.map +1 -0
  6. package/dist/calculation/years.js +1 -0
  7. package/dist/calculation/years.js.map +1 -0
  8. package/dist/chrono.js +1 -0
  9. package/dist/chrono.js.map +1 -0
  10. package/dist/common/abstractRefiners.js +1 -0
  11. package/dist/common/abstractRefiners.js.map +1 -0
  12. package/dist/common/calculation/weekdays.d.ts +7 -0
  13. package/dist/common/calculation/weekdays.js +68 -0
  14. package/dist/common/calculation/weekdays.js.map +1 -0
  15. package/dist/common/casualReferences.d.ts +8 -0
  16. package/dist/common/casualReferences.js +65 -9
  17. package/dist/common/casualReferences.js.map +1 -0
  18. package/dist/common/parsers/AbstractParserWithWordBoundary.d.ts +1 -0
  19. package/dist/common/parsers/AbstractParserWithWordBoundary.js +5 -1
  20. package/dist/common/parsers/AbstractParserWithWordBoundary.js.map +1 -0
  21. package/dist/common/parsers/AbstractTimeExpressionParser.d.ts +2 -0
  22. package/dist/common/parsers/AbstractTimeExpressionParser.js +40 -27
  23. package/dist/common/parsers/AbstractTimeExpressionParser.js.map +1 -0
  24. package/dist/common/parsers/ISOFormatParser.js +1 -0
  25. package/dist/common/parsers/ISOFormatParser.js.map +1 -0
  26. package/dist/common/parsers/SlashDateFormatParser.js +1 -0
  27. package/dist/common/parsers/SlashDateFormatParser.js.map +1 -0
  28. package/dist/common/refiners/AbstractMergeDateRangeRefiner.js +1 -0
  29. package/dist/common/refiners/AbstractMergeDateRangeRefiner.js.map +1 -0
  30. package/dist/common/refiners/AbstractMergeDateTimeRefiner.js +1 -0
  31. package/dist/common/refiners/AbstractMergeDateTimeRefiner.js.map +1 -0
  32. package/dist/common/refiners/ExtractTimezoneAbbrRefiner.js +2 -1
  33. package/dist/common/refiners/ExtractTimezoneAbbrRefiner.js.map +1 -0
  34. package/dist/common/refiners/ExtractTimezoneOffsetRefiner.js +5 -1
  35. package/dist/common/refiners/ExtractTimezoneOffsetRefiner.js.map +1 -0
  36. package/dist/common/refiners/ForwardDateRefiner.js +1 -0
  37. package/dist/common/refiners/ForwardDateRefiner.js.map +1 -0
  38. package/dist/common/refiners/MergeWeekdayComponentRefiner.js +1 -0
  39. package/dist/common/refiners/MergeWeekdayComponentRefiner.js.map +1 -0
  40. package/dist/common/refiners/OverlapRemovalRefiner.js +1 -0
  41. package/dist/common/refiners/OverlapRemovalRefiner.js.map +1 -0
  42. package/dist/common/refiners/UnlikelyFormatFilter.js +1 -0
  43. package/dist/common/refiners/UnlikelyFormatFilter.js.map +1 -0
  44. package/dist/configurations.js +1 -0
  45. package/dist/configurations.js.map +1 -0
  46. package/dist/debugging.js +1 -0
  47. package/dist/debugging.js.map +1 -0
  48. package/dist/index.d.ts +11 -1
  49. package/dist/index.js +14 -1
  50. package/dist/index.js.map +1 -0
  51. package/dist/locales/de/constants.d.ts +3 -3
  52. package/dist/locales/de/constants.js +39 -20
  53. package/dist/locales/de/constants.js.map +1 -0
  54. package/dist/locales/de/index.js +5 -0
  55. package/dist/locales/de/index.js.map +1 -0
  56. package/dist/locales/de/parsers/DECasualDateParser.js +1 -0
  57. package/dist/locales/de/parsers/DECasualDateParser.js.map +1 -0
  58. package/dist/locales/de/parsers/DECasualTimeParser.js +1 -0
  59. package/dist/locales/de/parsers/DECasualTimeParser.js.map +1 -0
  60. package/dist/locales/de/parsers/DEMonthNameLittleEndianParser.js +1 -0
  61. package/dist/locales/de/parsers/DEMonthNameLittleEndianParser.js.map +1 -0
  62. package/dist/locales/de/parsers/DESpecificTimeExpressionParser.d.ts +7 -0
  63. package/dist/locales/de/parsers/DESpecificTimeExpressionParser.js +115 -0
  64. package/dist/locales/de/parsers/DESpecificTimeExpressionParser.js.map +1 -0
  65. package/dist/locales/de/parsers/DETimeExpressionParser.d.ts +0 -1
  66. package/dist/locales/de/parsers/DETimeExpressionParser.js +4 -21
  67. package/dist/locales/de/parsers/DETimeExpressionParser.js.map +1 -0
  68. package/dist/locales/de/parsers/DETimeUnitRelativeFormatParser.d.ts +8 -0
  69. package/dist/locales/de/parsers/DETimeUnitRelativeFormatParser.js +35 -0
  70. package/dist/locales/de/parsers/DETimeUnitRelativeFormatParser.js.map +1 -0
  71. package/dist/locales/de/parsers/DEWeekdayParser.js +3 -8
  72. package/dist/locales/de/parsers/DEWeekdayParser.js.map +1 -0
  73. package/dist/locales/de/refiners/DEMergeDateRangeRefiner.js +1 -0
  74. package/dist/locales/de/refiners/DEMergeDateRangeRefiner.js.map +1 -0
  75. package/dist/locales/de/refiners/DEMergeDateTimeRefiner.js +1 -0
  76. package/dist/locales/de/refiners/DEMergeDateTimeRefiner.js.map +1 -0
  77. package/dist/locales/en/constants.d.ts +4 -3
  78. package/dist/locales/en/constants.js +4 -0
  79. package/dist/locales/en/constants.js.map +1 -0
  80. package/dist/locales/en/index.js +1 -0
  81. package/dist/locales/en/index.js.map +1 -0
  82. package/dist/locales/en/parsers/ENCasualDateParser.js +1 -0
  83. package/dist/locales/en/parsers/ENCasualDateParser.js.map +1 -0
  84. package/dist/locales/en/parsers/ENCasualTimeParser.js +1 -0
  85. package/dist/locales/en/parsers/ENCasualTimeParser.js.map +1 -0
  86. package/dist/locales/en/parsers/ENCasualYearMonthDayParser.js +1 -0
  87. package/dist/locales/en/parsers/ENCasualYearMonthDayParser.js.map +1 -0
  88. package/dist/locales/en/parsers/ENMonthNameLittleEndianParser.js +1 -0
  89. package/dist/locales/en/parsers/ENMonthNameLittleEndianParser.js.map +1 -0
  90. package/dist/locales/en/parsers/ENMonthNameMiddleEndianParser.js +1 -0
  91. package/dist/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -0
  92. package/dist/locales/en/parsers/ENMonthNameParser.js +1 -0
  93. package/dist/locales/en/parsers/ENMonthNameParser.js.map +1 -0
  94. package/dist/locales/en/parsers/ENRelativeDateFormatParser.js +1 -0
  95. package/dist/locales/en/parsers/ENRelativeDateFormatParser.js.map +1 -0
  96. package/dist/locales/en/parsers/ENSlashMonthFormatParser.js +1 -0
  97. package/dist/locales/en/parsers/ENSlashMonthFormatParser.js.map +1 -0
  98. package/dist/locales/en/parsers/ENTimeExpressionParser.js +1 -0
  99. package/dist/locales/en/parsers/ENTimeExpressionParser.js.map +1 -0
  100. package/dist/locales/en/parsers/ENTimeUnitAgoFormatParser.js +1 -0
  101. package/dist/locales/en/parsers/ENTimeUnitAgoFormatParser.js.map +1 -0
  102. package/dist/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.js +1 -0
  103. package/dist/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.js.map +1 -0
  104. package/dist/locales/en/parsers/ENTimeUnitLaterFormatParser.js +1 -0
  105. package/dist/locales/en/parsers/ENTimeUnitLaterFormatParser.js.map +1 -0
  106. package/dist/locales/en/parsers/ENTimeUnitWithinFormatParser.js +1 -0
  107. package/dist/locales/en/parsers/ENTimeUnitWithinFormatParser.js.map +1 -0
  108. package/dist/locales/en/parsers/ENWeekdayParser.js +4 -9
  109. package/dist/locales/en/parsers/ENWeekdayParser.js.map +1 -0
  110. package/dist/locales/en/refiners/ENMergeDateRangeRefiner.js +1 -0
  111. package/dist/locales/en/refiners/ENMergeDateRangeRefiner.js.map +1 -0
  112. package/dist/locales/en/refiners/ENMergeDateTimeRefiner.js +1 -0
  113. package/dist/locales/en/refiners/ENMergeDateTimeRefiner.js.map +1 -0
  114. package/dist/locales/en/refiners/ENMergeRelativeDateRefiner.js +1 -0
  115. package/dist/locales/en/refiners/ENMergeRelativeDateRefiner.js.map +1 -0
  116. package/dist/locales/fr/constants.js +1 -0
  117. package/dist/locales/fr/constants.js.map +1 -0
  118. package/dist/locales/fr/index.js +1 -0
  119. package/dist/locales/fr/index.js.map +1 -0
  120. package/dist/locales/fr/parsers/FRCasualDateParser.js +1 -0
  121. package/dist/locales/fr/parsers/FRCasualDateParser.js.map +1 -0
  122. package/dist/locales/fr/parsers/FRCasualTimeParser.js +1 -0
  123. package/dist/locales/fr/parsers/FRCasualTimeParser.js.map +1 -0
  124. package/dist/locales/fr/parsers/FRMonthNameLittleEndianParser.js +1 -0
  125. package/dist/locales/fr/parsers/FRMonthNameLittleEndianParser.js.map +1 -0
  126. package/dist/locales/fr/parsers/FRSpecificTimeExpressionParser.js +1 -0
  127. package/dist/locales/fr/parsers/FRSpecificTimeExpressionParser.js.map +1 -0
  128. package/dist/locales/fr/parsers/FRTimeExpressionParser.js +1 -0
  129. package/dist/locales/fr/parsers/FRTimeExpressionParser.js.map +1 -0
  130. package/dist/locales/fr/parsers/FRTimeUnitAgoFormatParser.js +1 -0
  131. package/dist/locales/fr/parsers/FRTimeUnitAgoFormatParser.js.map +1 -0
  132. package/dist/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js +1 -0
  133. package/dist/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js.map +1 -0
  134. package/dist/locales/fr/parsers/FRTimeUnitWithinFormatParser.js +2 -1
  135. package/dist/locales/fr/parsers/FRTimeUnitWithinFormatParser.js.map +1 -0
  136. package/dist/locales/fr/parsers/FRWeekdayParser.js +5 -10
  137. package/dist/locales/fr/parsers/FRWeekdayParser.js.map +1 -0
  138. package/dist/locales/fr/refiners/FRMergeDateRangeRefiner.js +1 -0
  139. package/dist/locales/fr/refiners/FRMergeDateRangeRefiner.js.map +1 -0
  140. package/dist/locales/fr/refiners/FRMergeDateTimeRefiner.js +1 -0
  141. package/dist/locales/fr/refiners/FRMergeDateTimeRefiner.js.map +1 -0
  142. package/dist/locales/ja/constants.js +1 -0
  143. package/dist/locales/ja/constants.js.map +1 -0
  144. package/dist/locales/ja/index.js +1 -0
  145. package/dist/locales/ja/index.js.map +1 -0
  146. package/dist/locales/ja/parsers/JPCasualDateParser.js +1 -0
  147. package/dist/locales/ja/parsers/JPCasualDateParser.js.map +1 -0
  148. package/dist/locales/ja/parsers/JPStandardParser.js +1 -0
  149. package/dist/locales/ja/parsers/JPStandardParser.js.map +1 -0
  150. package/dist/locales/ja/refiners/JPMergeDateRangeRefiner.js +1 -0
  151. package/dist/locales/ja/refiners/JPMergeDateRangeRefiner.js.map +1 -0
  152. package/dist/locales/nl/constants.js +1 -0
  153. package/dist/locales/nl/constants.js.map +1 -0
  154. package/dist/locales/nl/index.js +1 -0
  155. package/dist/locales/nl/index.js.map +1 -0
  156. package/dist/locales/nl/parsers/NLCasualDateParser.js +1 -0
  157. package/dist/locales/nl/parsers/NLCasualDateParser.js.map +1 -0
  158. package/dist/locales/nl/parsers/NLCasualDateTimeParser.js +1 -0
  159. package/dist/locales/nl/parsers/NLCasualDateTimeParser.js.map +1 -0
  160. package/dist/locales/nl/parsers/NLCasualTimeParser.js +1 -0
  161. package/dist/locales/nl/parsers/NLCasualTimeParser.js.map +1 -0
  162. package/dist/locales/nl/parsers/NLCasualYearMonthDayParser.js +1 -0
  163. package/dist/locales/nl/parsers/NLCasualYearMonthDayParser.js.map +1 -0
  164. package/dist/locales/nl/parsers/NLMonthNameMiddleEndianParser.js +1 -0
  165. package/dist/locales/nl/parsers/NLMonthNameMiddleEndianParser.js.map +1 -0
  166. package/dist/locales/nl/parsers/NLMonthNameParser.js +1 -0
  167. package/dist/locales/nl/parsers/NLMonthNameParser.js.map +1 -0
  168. package/dist/locales/nl/parsers/NLRelativeDateFormatParser.js +1 -0
  169. package/dist/locales/nl/parsers/NLRelativeDateFormatParser.js.map +1 -0
  170. package/dist/locales/nl/parsers/NLSlashMonthFormatParser.js +1 -0
  171. package/dist/locales/nl/parsers/NLSlashMonthFormatParser.js.map +1 -0
  172. package/dist/locales/nl/parsers/NLTimeExpressionParser.js +1 -0
  173. package/dist/locales/nl/parsers/NLTimeExpressionParser.js.map +1 -0
  174. package/dist/locales/nl/parsers/NLTimeUnitAgoFormatParser.js +1 -0
  175. package/dist/locales/nl/parsers/NLTimeUnitAgoFormatParser.js.map +1 -0
  176. package/dist/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js +1 -0
  177. package/dist/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js.map +1 -0
  178. package/dist/locales/nl/parsers/NLTimeUnitLaterFormatParser.js +1 -0
  179. package/dist/locales/nl/parsers/NLTimeUnitLaterFormatParser.js.map +1 -0
  180. package/dist/locales/nl/parsers/NLTimeUnitWithinFormatParser.js +1 -0
  181. package/dist/locales/nl/parsers/NLTimeUnitWithinFormatParser.js.map +1 -0
  182. package/dist/locales/nl/parsers/NLWeekdayParser.js +4 -9
  183. package/dist/locales/nl/parsers/NLWeekdayParser.js.map +1 -0
  184. package/dist/locales/nl/refiners/NLMergeDateRangeRefiner.js +1 -0
  185. package/dist/locales/nl/refiners/NLMergeDateRangeRefiner.js.map +1 -0
  186. package/dist/locales/nl/refiners/NLMergeDateTimeRefiner.js +1 -0
  187. package/dist/locales/nl/refiners/NLMergeDateTimeRefiner.js.map +1 -0
  188. package/dist/locales/pt/constants.js +1 -0
  189. package/dist/locales/pt/constants.js.map +1 -0
  190. package/dist/locales/pt/index.js +1 -0
  191. package/dist/locales/pt/index.js.map +1 -0
  192. package/dist/locales/pt/parsers/PTCasualDateParser.js +1 -0
  193. package/dist/locales/pt/parsers/PTCasualDateParser.js.map +1 -0
  194. package/dist/locales/pt/parsers/PTCasualTimeParser.js +1 -0
  195. package/dist/locales/pt/parsers/PTCasualTimeParser.js.map +1 -0
  196. package/dist/locales/pt/parsers/PTMonthNameLittleEndianParser.js +1 -0
  197. package/dist/locales/pt/parsers/PTMonthNameLittleEndianParser.js.map +1 -0
  198. package/dist/locales/pt/parsers/PTTimeExpressionParser.js +1 -0
  199. package/dist/locales/pt/parsers/PTTimeExpressionParser.js.map +1 -0
  200. package/dist/locales/pt/parsers/PTWeekdayParser.js +5 -10
  201. package/dist/locales/pt/parsers/PTWeekdayParser.js.map +1 -0
  202. package/dist/locales/pt/refiners/PTMergeDateRangeRefiner.js +1 -0
  203. package/dist/locales/pt/refiners/PTMergeDateRangeRefiner.js.map +1 -0
  204. package/dist/locales/pt/refiners/PTMergeDateTimeRefiner.js +1 -0
  205. package/dist/locales/pt/refiners/PTMergeDateTimeRefiner.js.map +1 -0
  206. package/dist/locales/ru/constants.d.ts +33 -0
  207. package/dist/locales/ru/constants.js +301 -0
  208. package/dist/locales/ru/constants.js.map +1 -0
  209. package/dist/locales/ru/index.d.ts +8 -0
  210. package/dist/locales/ru/index.js +56 -0
  211. package/dist/locales/ru/index.js.map +1 -0
  212. package/dist/locales/ru/parsers/RUCasualDateParser.d.ts +8 -0
  213. package/dist/locales/ru/parsers/RUCasualDateParser.js +52 -0
  214. package/dist/locales/ru/parsers/RUCasualDateParser.js.map +1 -0
  215. package/dist/locales/ru/parsers/RUCasualTimeParser.d.ts +7 -0
  216. package/dist/locales/ru/parsers/RUCasualTimeParser.js +74 -0
  217. package/dist/locales/ru/parsers/RUCasualTimeParser.js.map +1 -0
  218. package/dist/locales/ru/parsers/RUMonthNameLittleEndianParser.d.ts +8 -0
  219. package/dist/locales/ru/parsers/RUMonthNameLittleEndianParser.js +59 -0
  220. package/dist/locales/ru/parsers/RUMonthNameLittleEndianParser.js.map +1 -0
  221. package/dist/locales/ru/parsers/RUMonthNameParser.d.ts +7 -0
  222. package/dist/locales/ru/parsers/RUMonthNameParser.js +45 -0
  223. package/dist/locales/ru/parsers/RUMonthNameParser.js.map +1 -0
  224. package/dist/locales/ru/parsers/RURelativeDateFormatParser.d.ts +8 -0
  225. package/dist/locales/ru/parsers/RURelativeDateFormatParser.js +60 -0
  226. package/dist/locales/ru/parsers/RURelativeDateFormatParser.js.map +1 -0
  227. package/dist/locales/ru/parsers/RUTimeExpressionParser.d.ts +12 -0
  228. package/dist/locales/ru/parsers/RUTimeExpressionParser.js +57 -0
  229. package/dist/locales/ru/parsers/RUTimeExpressionParser.js.map +1 -0
  230. package/dist/locales/ru/parsers/RUTimeUnitAgoFormatParser.d.ts +8 -0
  231. package/dist/locales/ru/parsers/RUTimeUnitAgoFormatParser.js +22 -0
  232. package/dist/locales/ru/parsers/RUTimeUnitAgoFormatParser.js.map +1 -0
  233. package/dist/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.d.ts +8 -0
  234. package/dist/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js +29 -0
  235. package/dist/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js.map +1 -0
  236. package/dist/locales/ru/parsers/RUTimeUnitWithinFormatParser.d.ts +8 -0
  237. package/dist/locales/ru/parsers/RUTimeUnitWithinFormatParser.js +22 -0
  238. package/dist/locales/ru/parsers/RUTimeUnitWithinFormatParser.js.map +1 -0
  239. package/dist/locales/ru/parsers/RUWeekdayParser.d.ts +8 -0
  240. package/dist/locales/ru/parsers/RUWeekdayParser.js +49 -0
  241. package/dist/locales/ru/parsers/RUWeekdayParser.js.map +1 -0
  242. package/dist/locales/ru/refiners/RUMergeDateRangeRefiner.d.ts +4 -0
  243. package/dist/locales/ru/refiners/RUMergeDateRangeRefiner.js +13 -0
  244. package/dist/locales/ru/refiners/RUMergeDateRangeRefiner.js.map +1 -0
  245. package/dist/locales/ru/refiners/RUMergeDateTimeRefiner.d.ts +4 -0
  246. package/dist/locales/ru/refiners/RUMergeDateTimeRefiner.js +13 -0
  247. package/dist/locales/ru/refiners/RUMergeDateTimeRefiner.js.map +1 -0
  248. package/dist/locales/zh/hans/constants.js +1 -0
  249. package/dist/locales/zh/hans/constants.js.map +1 -0
  250. package/dist/locales/zh/hans/index.js +1 -0
  251. package/dist/locales/zh/hans/index.js.map +1 -0
  252. package/dist/locales/zh/hans/parsers/ZHHansCasualDateParser.js +1 -0
  253. package/dist/locales/zh/hans/parsers/ZHHansCasualDateParser.js.map +1 -0
  254. package/dist/locales/zh/hans/parsers/ZHHansDateParser.js +1 -0
  255. package/dist/locales/zh/hans/parsers/ZHHansDateParser.js.map +1 -0
  256. package/dist/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.js +1 -0
  257. package/dist/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.js.map +1 -0
  258. package/dist/locales/zh/hans/parsers/ZHHansRelationWeekdayParser.js +1 -0
  259. package/dist/locales/zh/hans/parsers/ZHHansRelationWeekdayParser.js.map +1 -0
  260. package/dist/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js +1 -0
  261. package/dist/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js.map +1 -0
  262. package/dist/locales/zh/hans/parsers/ZHHansWeekdayParser.js +1 -0
  263. package/dist/locales/zh/hans/parsers/ZHHansWeekdayParser.js.map +1 -0
  264. package/dist/locales/zh/hans/refiners/ZHHansMergeDateRangeRefiner.js +1 -0
  265. package/dist/locales/zh/hans/refiners/ZHHansMergeDateRangeRefiner.js.map +1 -0
  266. package/dist/locales/zh/hans/refiners/ZHHansMergeDateTimeRefiner.js +1 -0
  267. package/dist/locales/zh/hans/refiners/ZHHansMergeDateTimeRefiner.js.map +1 -0
  268. package/dist/locales/zh/hant/constants.js +1 -0
  269. package/dist/locales/zh/hant/constants.js.map +1 -0
  270. package/dist/locales/zh/hant/index.js +1 -0
  271. package/dist/locales/zh/hant/index.js.map +1 -0
  272. package/dist/locales/zh/hant/parsers/ZHHantCasualDateParser.js +1 -0
  273. package/dist/locales/zh/hant/parsers/ZHHantCasualDateParser.js.map +1 -0
  274. package/dist/locales/zh/hant/parsers/ZHHantDateParser.js +1 -0
  275. package/dist/locales/zh/hant/parsers/ZHHantDateParser.js.map +1 -0
  276. package/dist/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.js +1 -0
  277. package/dist/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.js.map +1 -0
  278. package/dist/locales/zh/hant/parsers/ZHHantRelationWeekdayParser.js +1 -0
  279. package/dist/locales/zh/hant/parsers/ZHHantRelationWeekdayParser.js.map +1 -0
  280. package/dist/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js +1 -0
  281. package/dist/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js.map +1 -0
  282. package/dist/locales/zh/hant/parsers/ZHHantWeekdayParser.js +1 -0
  283. package/dist/locales/zh/hant/parsers/ZHHantWeekdayParser.js.map +1 -0
  284. package/dist/locales/zh/hant/refiners/ZHHantMergeDateRangeRefiner.js +1 -0
  285. package/dist/locales/zh/hant/refiners/ZHHantMergeDateRangeRefiner.js.map +1 -0
  286. package/dist/locales/zh/hant/refiners/ZHHantMergeDateTimeRefiner.js +1 -0
  287. package/dist/locales/zh/hant/refiners/ZHHantMergeDateTimeRefiner.js.map +1 -0
  288. package/dist/locales/zh/index.d.ts +1 -1
  289. package/dist/locales/zh/index.js +14 -2
  290. package/dist/locales/zh/index.js.map +1 -0
  291. package/dist/results.d.ts +5 -4
  292. package/dist/results.js +16 -12
  293. package/dist/results.js.map +1 -0
  294. package/dist/timezone.d.ts +1 -1
  295. package/dist/timezone.js +3 -2
  296. package/dist/timezone.js.map +1 -0
  297. package/dist/utils/dayjs.js +1 -0
  298. package/dist/utils/dayjs.js.map +1 -0
  299. package/dist/utils/pattern.js +1 -0
  300. package/dist/utils/pattern.js.map +1 -0
  301. package/dist/utils/timeunits.js +1 -0
  302. package/dist/utils/timeunits.js.map +1 -0
  303. package/package.json +1 -1
  304. package/src/chrono.ts +3 -1
  305. package/src/common/calculation/weekdays.ts +89 -0
  306. package/src/common/casualReferences.ts +64 -9
  307. package/src/common/parsers/AbstractParserWithWordBoundary.ts +5 -1
  308. package/src/common/parsers/AbstractTimeExpressionParser.ts +52 -28
  309. package/src/common/refiners/ExtractTimezoneAbbrRefiner.ts +3 -1
  310. package/src/common/refiners/ExtractTimezoneOffsetRefiner.ts +5 -1
  311. package/src/index.ts +12 -1
  312. package/src/locales/de/constants.ts +42 -22
  313. package/src/locales/de/index.ts +4 -0
  314. package/src/locales/de/parsers/DESpecificTimeExpressionParser.ts +150 -0
  315. package/src/locales/de/parsers/DETimeExpressionParser.ts +4 -23
  316. package/src/locales/de/parsers/DETimeUnitRelativeFormatParser.ts +42 -0
  317. package/src/locales/de/parsers/DEWeekdayParser.ts +2 -8
  318. package/src/locales/en/constants.ts +7 -3
  319. package/src/locales/en/parsers/ENWeekdayParser.ts +3 -9
  320. package/src/locales/fr/parsers/FRTimeUnitWithinFormatParser.ts +1 -1
  321. package/src/locales/fr/parsers/FRWeekdayParser.ts +4 -10
  322. package/src/locales/nl/parsers/NLWeekdayParser.ts +3 -9
  323. package/src/locales/pt/parsers/PTWeekdayParser.ts +4 -10
  324. package/src/locales/ru/constants.ts +342 -0
  325. package/src/locales/ru/index.ts +84 -0
  326. package/src/locales/ru/parsers/RUCasualDateParser.ts +44 -0
  327. package/src/locales/ru/parsers/RUCasualTimeParser.ts +56 -0
  328. package/src/locales/ru/parsers/RUMonthNameLittleEndianParser.ts +72 -0
  329. package/src/locales/ru/parsers/RUMonthNameParser.ts +61 -0
  330. package/src/locales/ru/parsers/RURelativeDateFormatParser.ts +75 -0
  331. package/src/locales/ru/parsers/RUTimeExpressionParser.ts +64 -0
  332. package/src/locales/ru/parsers/RUTimeUnitAgoFormatParser.ts +24 -0
  333. package/src/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.ts +34 -0
  334. package/src/locales/ru/parsers/RUTimeUnitWithinFormatParser.ts +24 -0
  335. package/src/locales/ru/parsers/RUWeekdayParser.ts +57 -0
  336. package/src/locales/ru/refiners/RUMergeDateRangeRefiner.ts +13 -0
  337. package/src/locales/ru/refiners/RUMergeDateTimeRefiner.ts +13 -0
  338. package/src/locales/zh/index.ts +1 -1
  339. package/src/results.ts +32 -21
  340. package/src/timezone.ts +3 -3
  341. package/src/utils/timeunits.ts +2 -2
  342. package/test/calculation.test.ts +116 -0
  343. package/test/de/de_month_name_little_endian.test.ts +12 -0
  344. package/test/de/de_time_exp.test.ts +59 -0
  345. package/test/de/de_time_units_casual_relative.test.ts +108 -0
  346. package/test/de/de_year.test.ts +147 -0
  347. package/test/en/en.test.ts +10 -0
  348. package/test/en/en_relative.test.ts +47 -2
  349. package/test/en/en_time_units_ago.test.ts +3 -3
  350. package/test/en/en_time_units_within.test.ts +2 -2
  351. package/test/en/en_timezone_exp.test.ts +30 -3
  352. package/test/en/en_weekday.test.ts +116 -1
  353. package/test/en/negative_cases.test.ts +8 -0
  354. package/test/fr/fr_time_units_ago.test.ts +3 -3
  355. package/test/fr/fr_time_units_within.test.ts +9 -2
  356. package/test/nl/nl_relative.test.ts +2 -2
  357. package/test/nl/nl_time_units_ago.test.ts +3 -3
  358. package/test/ru/ru_casual.test.ts +147 -0
  359. package/test/ru/ru_month.test.ts +70 -0
  360. package/test/ru/ru_month_name_little_endian.test.ts +145 -0
  361. package/test/ru/ru_relative.test.ts +74 -0
  362. package/test/ru/ru_time_exp.test.ts +111 -0
  363. package/test/ru/ru_time_units_ago.test.ts +48 -0
  364. package/test/ru/ru_time_units_casual_relative.test.ts +112 -0
  365. package/test/ru/ru_time_units_within.test.ts +16 -0
  366. package/test/ru/ru_weekday.test.ts +52 -0
  367. package/test/system_timezone.test.ts +22 -0
  368. package/tsconfig.json +1 -1
  369. package/src/calculation/weeks.ts +0 -38
@@ -0,0 +1,116 @@
1
+ import { createParsingComponentsAtWeekday, getDaysToWeekday } from "../src/common/calculation/weekdays";
2
+ import { Weekday } from "../src";
3
+ import { ReferenceWithTimezone } from "../src/results";
4
+
5
+ test("Test - This Weekday Calculation", () => {
6
+ {
7
+ const reference = new ReferenceWithTimezone(new Date("Sat, 20 Aug 2022 12:00:00"));
8
+ const output = createParsingComponentsAtWeekday(reference, Weekday.MONDAY, "this");
9
+ expect(output.date()).toStrictEqual(new Date("Mon, Aug 22 2022 12:00:00"));
10
+ }
11
+ {
12
+ const reference = new ReferenceWithTimezone(new Date("Sun, 21 Aug 2022 12:00:00"));
13
+ const output = createParsingComponentsAtWeekday(reference, Weekday.FRIDAY, "this");
14
+ expect(output.date()).toStrictEqual(new Date("Fri, Aug 26 2022 12:00:00"));
15
+ }
16
+ {
17
+ const reference = new ReferenceWithTimezone(new Date("Tue, Aug 2 2022 12:00:00"));
18
+ const output = createParsingComponentsAtWeekday(reference, Weekday.SUNDAY, "this");
19
+ expect(output.date()).toStrictEqual(new Date("Sun, Aug 7 2022 12:00:00"));
20
+ }
21
+ });
22
+
23
+ test("Test - Last Weekday Calculation", () => {
24
+ {
25
+ const reference = new ReferenceWithTimezone(new Date("Sat, 20 Aug 2022 12:00:00"));
26
+ const output = createParsingComponentsAtWeekday(reference, Weekday.FRIDAY, "last");
27
+ expect(output.date()).toStrictEqual(new Date("Fri, Aug 19 2022 12:00:00"));
28
+ }
29
+ {
30
+ const reference = new ReferenceWithTimezone(new Date("Sat, 20 Aug 2022 12:00:00"));
31
+ const output = createParsingComponentsAtWeekday(reference, Weekday.MONDAY, "last");
32
+ expect(output.date()).toStrictEqual(new Date("Mon, Aug 15 2022 12:00:00"));
33
+ }
34
+ {
35
+ const reference = new ReferenceWithTimezone(new Date("Sat, 20 Aug 2022 12:00:00"));
36
+ const output = createParsingComponentsAtWeekday(reference, Weekday.SUNDAY, "last");
37
+ expect(output.date()).toStrictEqual(new Date("Sun, Aug 14 2022 12:00:00"));
38
+ }
39
+ {
40
+ const reference = new ReferenceWithTimezone(new Date("Sat, 20 Aug 2022 12:00:00"));
41
+ const output = createParsingComponentsAtWeekday(reference, Weekday.SATURDAY, "last");
42
+ expect(output.date()).toStrictEqual(new Date("Sat, Aug 13 2022 12:00:00"));
43
+ }
44
+ });
45
+
46
+ test("Test - Next Weekday Calculation", () => {
47
+ {
48
+ const reference = new ReferenceWithTimezone(new Date("Sun, Aug 21 2022 12:00:00"));
49
+ const output = createParsingComponentsAtWeekday(reference, Weekday.MONDAY, "next");
50
+ expect(output.date()).toStrictEqual(new Date("Mon, Aug 22 2022 12:00:00"));
51
+ }
52
+ {
53
+ const reference = new ReferenceWithTimezone(new Date("Sun, Aug 21 2022 12:00:00"));
54
+ const output = createParsingComponentsAtWeekday(reference, Weekday.SATURDAY, "next");
55
+ expect(output.date()).toStrictEqual(new Date("Sat, Aug 27 2022 12:00:00"));
56
+ }
57
+ {
58
+ const reference = new ReferenceWithTimezone(new Date("Sun, Aug 21 2022 12:00:00"));
59
+ const output = createParsingComponentsAtWeekday(reference, Weekday.SUNDAY, "next");
60
+ expect(output.date()).toStrictEqual(new Date("Sun, Aug 28 2022 12:00:00"));
61
+ }
62
+ {
63
+ const reference = new ReferenceWithTimezone(new Date("Sat, Aug 20 2022 12:00:00"));
64
+ const output = createParsingComponentsAtWeekday(reference, Weekday.FRIDAY, "next");
65
+ expect(output.date()).toStrictEqual(new Date("Fri, Aug 26 2022 12:00:00"));
66
+ }
67
+ {
68
+ const reference = new ReferenceWithTimezone(new Date("Sat, Aug 20 2022 12:00:00"));
69
+ const output = createParsingComponentsAtWeekday(reference, Weekday.SATURDAY, "next");
70
+ expect(output.date()).toStrictEqual(new Date("Sat, Aug 27 2022 12:00:00"));
71
+ }
72
+ {
73
+ const reference = new ReferenceWithTimezone(new Date("Sat, Aug 20 2022 12:00:00"));
74
+ const output = createParsingComponentsAtWeekday(reference, Weekday.SUNDAY, "next");
75
+ expect(output.date()).toStrictEqual(new Date("Sun, Aug 28 2022 12:00:00"));
76
+ }
77
+ {
78
+ const reference = new ReferenceWithTimezone(new Date("Tue, Aug 2 2022 12:00:00"));
79
+ const output = createParsingComponentsAtWeekday(reference, Weekday.MONDAY, "next");
80
+ expect(output.date()).toStrictEqual(new Date("Mon, Aug 8 2022 12:00:00"));
81
+ }
82
+ {
83
+ const reference = new ReferenceWithTimezone(new Date("Tue, Aug 2 2022 12:00:00"));
84
+ const output = createParsingComponentsAtWeekday(reference, Weekday.FRIDAY, "next");
85
+ expect(output.date()).toStrictEqual(new Date("Fri, Aug 12 2022 12:00:00"));
86
+ }
87
+
88
+ {
89
+ const reference = new ReferenceWithTimezone(new Date("Tue, Aug 2 2022 12:00:00"));
90
+ const output = createParsingComponentsAtWeekday(reference, Weekday.SUNDAY, "next");
91
+ expect(output.date()).toStrictEqual(new Date("Sun, Aug 14 2022 12:00:00"));
92
+ }
93
+ });
94
+
95
+ test("Test - Closest Weekday Calculation", () => {
96
+ {
97
+ const refDate = new Date("Sat, 20 Aug 2022 12:00:00");
98
+ expect(getDaysToWeekday(refDate, Weekday.MONDAY)).toBe(2);
99
+ }
100
+ {
101
+ const refDate = new Date("Sat, 20 Aug 2022 12:00:00");
102
+ expect(getDaysToWeekday(refDate, Weekday.TUESDAY)).toBe(3);
103
+ }
104
+ {
105
+ const refDate = new Date("Sat, 20 Aug 2022 12:00:00");
106
+ expect(getDaysToWeekday(refDate, Weekday.FRIDAY)).toBe(-1);
107
+ }
108
+ {
109
+ const refDate = new Date("Sat, 20 Aug 2022 12:00:00");
110
+ expect(getDaysToWeekday(refDate, Weekday.THURSDAY)).toBe(-2);
111
+ }
112
+ {
113
+ const refDate = new Date("Sat, 20 Aug 2022 12:00:00");
114
+ expect(getDaysToWeekday(refDate, Weekday.WEDNESDAY)).toBe(-3);
115
+ }
116
+ });
@@ -204,6 +204,18 @@ test("Test - Range expression", function () {
204
204
 
205
205
  expect(result.end).toBeDate(new Date(2013, 10 - 1, 12, 12));
206
206
  });
207
+
208
+ testSingleCase(chrono.de, "10. jänner 2012", new Date(2012, 7, 10), (result) => {
209
+ expect(result.start).not.toBeNull();
210
+ expect(result.start.get("year")).toBe(2012);
211
+ expect(result.start.get("month")).toBe(1);
212
+ expect(result.start.get("day")).toBe(10);
213
+
214
+ expect(result.index).toBe(0);
215
+ expect(result.text).toBe("10. jänner 2012");
216
+
217
+ expect(result.start).toBeDate(new Date(2012, 1 - 1, 10, 12));
218
+ });
207
219
  });
208
220
 
209
221
  test("Test - Combined expression", function () {
@@ -27,6 +27,11 @@ test("Test - Simple Expression", function () {
27
27
  expect(result.start.get("minute")).toBe(0);
28
28
  });
29
29
 
30
+ testSingleCase(chrono.de, "um 16h", new Date(2012, 7, 10), (result) => {
31
+ expect(result.start.get("hour")).toBe(16);
32
+ expect(result.start.get("minute")).toBe(0);
33
+ });
34
+
30
35
  testSingleCase(chrono.de, "um 7 morgens", new Date(2012, 7, 10), (result) => {
31
36
  expect(result.start.get("hour")).toBe(7);
32
37
  expect(result.start.get("minute")).toBe(0);
@@ -64,6 +69,22 @@ test("Test - Simple Expression", function () {
64
69
  expect(result.start.get("meridiem")).toBe(Meridiem.PM);
65
70
  expect(result.start.isCertain("meridiem")).toBeTruthy();
66
71
  });
72
+
73
+ testSingleCase(chrono.de, "um 8 Uhr in der Nacht", new Date(2012, 7, 10), (result, text) => {
74
+ expect(result.text).toBe(text);
75
+ expect(result.start.get("hour")).toBe(20);
76
+ expect(result.start.get("minute")).toBe(0);
77
+ expect(result.start.get("meridiem")).toBe(Meridiem.PM);
78
+ expect(result.start.isCertain("meridiem")).toBeTruthy();
79
+ });
80
+
81
+ testSingleCase(chrono.de, "um 5 Uhr in der Nacht", new Date(2012, 7, 10), (result, text) => {
82
+ expect(result.text).toBe(text);
83
+ expect(result.start.get("hour")).toBe(5);
84
+ expect(result.start.get("minute")).toBe(0);
85
+ expect(result.start.get("meridiem")).toBe(Meridiem.AM);
86
+ expect(result.start.isCertain("meridiem")).toBeTruthy();
87
+ });
67
88
  });
68
89
 
69
90
  test("Test - Range Expression", function () {
@@ -118,6 +139,44 @@ test("Test - Range Expression", function () {
118
139
 
119
140
  expect(result.end).toBeDate(new Date(2012, 7, 10, 23, 0));
120
141
  });
142
+
143
+ testSingleCase(chrono.de, " von 6h30 bis 23h00 ", new Date(2012, 7, 10), (result) => {
144
+ expect(result.index).toBe(1);
145
+ expect(result.text).toBe("von 6h30 bis 23h00");
146
+
147
+ expect(result.start).not.toBeNull();
148
+ expect(result.start.get("hour")).toBe(6);
149
+ expect(result.start.get("minute")).toBe(30);
150
+ expect(result.start.get("meridiem")).toBe(0);
151
+
152
+ expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 30));
153
+
154
+ expect(result.end).not.toBeNull();
155
+ expect(result.end.get("hour")).toBe(23);
156
+ expect(result.end.get("minute")).toBe(0);
157
+ expect(result.end.get("meridiem")).toBe(1);
158
+
159
+ expect(result.end).toBeDate(new Date(2012, 7, 10, 23, 0));
160
+ });
161
+
162
+ testSingleCase(chrono.de, " von 6h30 morgens bis 11 am Abend", new Date(2012, 7, 10), (result) => {
163
+ expect(result.index).toBe(1);
164
+ expect(result.text).toBe("von 6h30 morgens bis 11 am Abend");
165
+
166
+ expect(result.start).not.toBeNull();
167
+ expect(result.start.get("hour")).toBe(6);
168
+ expect(result.start.get("minute")).toBe(30);
169
+ expect(result.start.get("meridiem")).toBe(0);
170
+
171
+ expect(result.start).toBeDate(new Date(2012, 7, 10, 6, 30));
172
+
173
+ expect(result.end).not.toBeNull();
174
+ expect(result.end.get("hour")).toBe(23);
175
+ expect(result.end.get("minute")).toBe(0);
176
+ expect(result.end.get("meridiem")).toBe(1);
177
+
178
+ expect(result.end).toBeDate(new Date(2012, 7, 10, 23, 0));
179
+ });
121
180
  });
122
181
 
123
182
  test("Test - Timezone extraction", function () {
@@ -0,0 +1,108 @@
1
+ import * as chrono from "../../src";
2
+ import { testSingleCase, testUnexpectedResult } from "../test_util";
3
+
4
+ // test("Test - fr - modifier mandatory just after", function () {
5
+ // testUnexpectedResult(chrono.de, "le mois d'avril");
6
+ //
7
+ // testUnexpectedResult(chrono.de, "le mois d'avril prochain");
8
+ // });
9
+
10
+ test("Test - de - relative date", function () {
11
+ testSingleCase(chrono.de, "kommende Woche", new Date(2017, 5 - 1, 12), (result, text) => {
12
+ expect(result.text).toBe(text);
13
+ expect(result.start.get("year")).toBe(2017);
14
+ expect(result.start.get("month")).toBe(5);
15
+ expect(result.start.get("day")).toBe(19);
16
+ });
17
+
18
+ testSingleCase(chrono.de, "in 2 Wochen", new Date(2017, 5 - 1, 12, 18, 11), (result, text) => {
19
+ expect(result.text).toBe(text);
20
+ expect(result.start.get("year")).toBe(2017);
21
+ expect(result.start.get("month")).toBe(5);
22
+ expect(result.start.get("day")).toBe(26);
23
+ expect(result.start.get("hour")).toBe(18);
24
+ expect(result.start.get("minute")).toBe(11);
25
+ });
26
+
27
+ testSingleCase(chrono.de, "in drei Wochen", new Date(2017, 5 - 1, 12), (result, text) => {
28
+ expect(result.text).toBe(text);
29
+ expect(result.start.get("year")).toBe(2017);
30
+ expect(result.start.get("month")).toBe(6);
31
+ expect(result.start.get("day")).toBe(2);
32
+ });
33
+
34
+ testSingleCase(chrono.de, "letzten Monat", new Date(2017, 5 - 1, 12), (result, text) => {
35
+ expect(result.text).toBe(text);
36
+ expect(result.start.get("year")).toBe(2017);
37
+ expect(result.start.get("month")).toBe(4);
38
+ expect(result.start.get("day")).toBe(12);
39
+ });
40
+
41
+ testSingleCase(chrono.de, "in den 30 vorangegangenen Tagen", new Date(2017, 5 - 1, 12), (result, text) => {
42
+ expect(result.text).toBe("30 vorangegangenen Tagen");
43
+ expect(result.start.get("year")).toBe(2017);
44
+ expect(result.start.get("month")).toBe(4);
45
+ expect(result.start.get("day")).toBe(12);
46
+ });
47
+
48
+ testSingleCase(chrono.de, "die vergangenen 24 Stunden", new Date(2017, 5 - 1, 12, 11, 27), (result, text) => {
49
+ expect(result.text).toBe("vergangenen 24 Stunden");
50
+ expect(result.start.get("year")).toBe(2017);
51
+ expect(result.start.get("month")).toBe(5);
52
+ expect(result.start.get("day")).toBe(11);
53
+ expect(result.start.get("hour")).toBe(11);
54
+ expect(result.start.get("minute")).toBe(27);
55
+ });
56
+
57
+ testSingleCase(chrono.de, "in den folgenden 90 sekunden", new Date(2017, 5 - 1, 12, 11, 27, 3), (result, text) => {
58
+ expect(result.text).toBe("folgenden 90 sekunden");
59
+ expect(result.start.get("year")).toBe(2017);
60
+ expect(result.start.get("month")).toBe(5);
61
+ expect(result.start.get("day")).toBe(12);
62
+ expect(result.start.get("hour")).toBe(11);
63
+ expect(result.start.get("minute")).toBe(28);
64
+ expect(result.start.get("second")).toBe(33);
65
+ });
66
+
67
+ testSingleCase(chrono.de, "die letzten acht Minuten", new Date(2017, 5 - 1, 12, 11, 27), (result, text) => {
68
+ expect(result.text).toBe("letzten acht Minuten");
69
+ expect(result.start.get("year")).toBe(2017);
70
+ expect(result.start.get("month")).toBe(5);
71
+ expect(result.start.get("day")).toBe(12);
72
+ expect(result.start.get("hour")).toBe(11);
73
+ expect(result.start.get("minute")).toBe(19);
74
+ expect(result.start.get("second")).toBe(0);
75
+ });
76
+
77
+ testSingleCase(chrono.de, "letztes Quartal", new Date(2017, 5 - 1, 12, 11, 27), (result, text) => {
78
+ expect(result.text).toBe(text);
79
+ expect(result.start.get("year")).toBe(2017);
80
+ expect(result.start.get("month")).toBe(2);
81
+ expect(result.start.get("day")).toBe(12);
82
+ expect(result.start.get("hour")).toBe(11);
83
+ expect(result.start.get("minute")).toBe(27);
84
+ expect(result.start.get("second")).toBe(0);
85
+
86
+ expect(result.start.isCertain("month")).toBeFalsy();
87
+ expect(result.start.isCertain("day")).toBeFalsy();
88
+ expect(result.start.isCertain("hour")).toBeFalsy();
89
+ expect(result.start.isCertain("minute")).toBeFalsy();
90
+ expect(result.start.isCertain("second")).toBeFalsy();
91
+ });
92
+
93
+ testSingleCase(chrono.de, "kommendes Jahr", new Date(2017, 5 - 1, 12, 11, 27), (result, text) => {
94
+ expect(result.text).toBe(text);
95
+ expect(result.start.get("year")).toBe(2018);
96
+ expect(result.start.get("month")).toBe(5);
97
+ expect(result.start.get("day")).toBe(12);
98
+ expect(result.start.get("hour")).toBe(11);
99
+ expect(result.start.get("minute")).toBe(27);
100
+ expect(result.start.get("second")).toBe(0);
101
+
102
+ expect(result.start.isCertain("month")).toBeFalsy();
103
+ expect(result.start.isCertain("day")).toBeFalsy();
104
+ expect(result.start.isCertain("hour")).toBeFalsy();
105
+ expect(result.start.isCertain("minute")).toBeFalsy();
106
+ expect(result.start.isCertain("second")).toBeFalsy();
107
+ });
108
+ });
@@ -0,0 +1,147 @@
1
+ import * as chrono from "../../src";
2
+ import { testSingleCase } from "../test_util";
3
+ //import DETimeExpressionParser from "../../src/locales/de/parsers/DETimeExpressionParser";
4
+
5
+ test("Test - Year numbers with v/nuZ Era label", () => {
6
+ testSingleCase(chrono.de, "10. August 234 v.u.Z.", new Date(2012, 7, 10), (result) => {
7
+ expect(result.index).toBe(0);
8
+ expect(result.text).toBe("10. August 234 v.u.Z."); // fails since text is `10 August 234`
9
+
10
+ expect(result.start).not.toBeNull();
11
+ expect(result.start.get("year")).toBe(-234);
12
+ expect(result.start.get("month")).toBe(8);
13
+ expect(result.start.get("day")).toBe(10);
14
+
15
+ //expect(result.start).toBeDate(new Date(-234, 8 - 1, 10, 12));
16
+ });
17
+
18
+ testSingleCase(chrono.de, "10. August 88 nuZ", new Date(2012, 7, 10), (result) => {
19
+ expect(result.index).toBe(0);
20
+ expect(result.text).toBe("10. August 88 nuZ");
21
+
22
+ expect(result.start).not.toBeNull();
23
+ expect(result.start.get("year")).toBe(88);
24
+ expect(result.start.get("month")).toBe(8);
25
+ expect(result.start.get("day")).toBe(10);
26
+
27
+ //const resultDate = result.start.date();
28
+ const expectDate = new Date(88, 8 - 1, 10, 12);
29
+ expectDate.setFullYear(88);
30
+ //expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
31
+ });
32
+
33
+ testSingleCase(chrono.de, "10. August 88 uZ", new Date(2012, 7, 10), (result) => {
34
+ expect(result.index).toBe(0);
35
+ expect(result.text).toBe("10. August 88 uZ");
36
+
37
+ expect(result.start).not.toBeNull();
38
+ expect(result.start.get("year")).toBe(88);
39
+ expect(result.start.get("month")).toBe(8);
40
+ expect(result.start.get("day")).toBe(10);
41
+
42
+ //const resultDate = result.start.date();
43
+ const expectDate = new Date(88, 8 - 1, 10, 12);
44
+ expectDate.setFullYear(88);
45
+ //expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
46
+ });
47
+
48
+ testSingleCase(chrono.de, "10. August 88 d.g.Z.", new Date(2012, 7, 10), (result) => {
49
+ expect(result.index).toBe(0);
50
+ expect(result.text).toBe("10. August 88 d.g.Z.");
51
+
52
+ expect(result.start).not.toBeNull();
53
+ expect(result.start.get("year")).toBe(88);
54
+ expect(result.start.get("month")).toBe(8);
55
+ expect(result.start.get("day")).toBe(10);
56
+
57
+ //const resultDate = result.start.date();
58
+ const expectDate = new Date(88, 8 - 1, 10, 12);
59
+ expectDate.setFullYear(88);
60
+ //expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
61
+ });
62
+ });
63
+
64
+ test("Test - Year numbers with v/nChr Era label", () => {
65
+ testSingleCase(chrono.de, "10. August 234 v.Chr.", new Date(2012, 7, 10), (result) => {
66
+ expect(result.index).toBe(0);
67
+ expect(result.text).toBe("10. August 234 v.Chr.");
68
+
69
+ expect(result.start).not.toBeNull();
70
+ expect(result.start.get("year")).toBe(-234);
71
+ expect(result.start.get("month")).toBe(8);
72
+ expect(result.start.get("day")).toBe(10);
73
+
74
+ //expect(result.start).toBeDate(new Date(-234, 8 - 1, 10, 12));
75
+ });
76
+
77
+ testSingleCase(chrono.de, "10. August 88 nC", new Date(2012, 7, 10), (result) => {
78
+ expect(result.index).toBe(0);
79
+ expect(result.text).toBe("10. August 88 nC");
80
+
81
+ expect(result.start).not.toBeNull();
82
+ expect(result.start.get("year")).toBe(88);
83
+ expect(result.start.get("month")).toBe(8);
84
+ expect(result.start.get("day")).toBe(10);
85
+
86
+ //const resultDate = result.start.date();
87
+ const expectDate = new Date(88, 8 - 1, 10, 12);
88
+ expectDate.setFullYear(88);
89
+ //expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
90
+ });
91
+ });
92
+
93
+ test("Test - Year numbers with v/ndgZ Era label", () => {
94
+ testSingleCase(chrono.de, "10. August 234 v.d.Z.", new Date(2012, 7, 10), (result) => {
95
+ expect(result.index).toBe(0);
96
+ expect(result.text).toBe("10. August 234 v.d.Z.");
97
+
98
+ expect(result.start).not.toBeNull();
99
+ expect(result.start.get("year")).toBe(-234);
100
+ expect(result.start.get("month")).toBe(8);
101
+ expect(result.start.get("day")).toBe(10);
102
+
103
+ //expect(result.start).toBeDate(new Date(-234, 8 - 1, 10, 12));
104
+ });
105
+
106
+ testSingleCase(chrono.de, "10. August 88 ndZ", new Date(2012, 7, 10), (result) => {
107
+ expect(result.index).toBe(0);
108
+ expect(result.text).toBe("10. August 88 ndZ");
109
+
110
+ expect(result.start).not.toBeNull();
111
+ expect(result.start.get("year")).toBe(88);
112
+ expect(result.start.get("month")).toBe(8);
113
+ expect(result.start.get("day")).toBe(10);
114
+
115
+ //const resultDate = result.start.date();
116
+ const expectDate = new Date(88, 8 - 1, 10, 12);
117
+ expectDate.setFullYear(88);
118
+ //expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
119
+ });
120
+
121
+ testSingleCase(chrono.de, "10. August 234 v.d.g.Z.", new Date(2012, 7, 10), (result) => {
122
+ expect(result.index).toBe(0);
123
+ expect(result.text).toBe("10. August 234 v.d.g.Z.");
124
+
125
+ expect(result.start).not.toBeNull();
126
+ expect(result.start.get("year")).toBe(-234);
127
+ expect(result.start.get("month")).toBe(8);
128
+ expect(result.start.get("day")).toBe(10);
129
+
130
+ //expect(result.start).toBeDate(new Date(-234, 8 - 1, 10, 12));
131
+ });
132
+
133
+ testSingleCase(chrono.de, "10. August 88 ndgZ", new Date(2012, 7, 10), (result) => {
134
+ expect(result.index).toBe(0);
135
+ expect(result.text).toBe("10. August 88 ndgZ");
136
+
137
+ expect(result.start).not.toBeNull();
138
+ expect(result.start.get("year")).toBe(88);
139
+ expect(result.start.get("month")).toBe(8);
140
+ expect(result.start.get("day")).toBe(10);
141
+
142
+ //const resultDate = result.start.date();
143
+ const expectDate = new Date(88, 8 - 1, 10, 12);
144
+ expectDate.setFullYear(88);
145
+ //expect(expectDate.getTime()).toBeCloseTo(resultDate.getTime());
146
+ });
147
+ });
@@ -1,6 +1,7 @@
1
1
  import * as chrono from "../../src";
2
2
  import { testSingleCase, testUnexpectedResult } from "../test_util";
3
3
  import ENTimeExpressionParser from "../../src/locales/en/parsers/ENTimeExpressionParser";
4
+ import { Meridiem } from "../../src";
4
5
 
5
6
  test("Test - Date + Time Expression", function () {
6
7
  testSingleCase(chrono, "Something happen on 2014-04-18 13:00 - 16:00 as", (result) => {
@@ -95,6 +96,15 @@ test("Test - Random text", function () {
95
96
  expect(result.start.get("day")).toBe(3);
96
97
  expect(result.start.get("month")).toBe(7);
97
98
  });
99
+
100
+ testSingleCase(chrono, "03-27-2022, 02:00 AM", new Date(2017, 7 - 1, 7), (result) => {
101
+ expect(result.text).toBe("03-27-2022, 02:00 AM");
102
+ expect(result.start.get("day")).toBe(27);
103
+ expect(result.start.get("month")).toBe(3);
104
+ expect(result.start.get("year")).toBe(2022);
105
+ expect(result.start.get("hour")).toBe(2);
106
+ expect(result.start.get("meridiem")).toBe(Meridiem.AM);
107
+ });
98
108
  });
99
109
 
100
110
  test("Test - Wikipedia Texts", function () {
@@ -136,6 +136,45 @@ test("Test - Future relative expressions", () => {
136
136
  expect(result.start.isCertain("timezoneOffset")).toBe(false);
137
137
  });
138
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
+
139
178
  testSingleCase(chrono, "after this year", new Date(2020, 11 - 1, 22, 12, 11, 32, 6), (result, text) => {
140
179
  expect(result.text).toBe(text);
141
180
  expect(result.start.get("year")).toBe(2021);
@@ -155,6 +194,12 @@ test("Test - Future relative expressions", () => {
155
194
  expect(result.start.isCertain("millisecond")).toBe(false);
156
195
  expect(result.start.isCertain("timezoneOffset")).toBe(false);
157
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
+ });
158
203
  });
159
204
 
160
205
  test("Test - Relative date components' certainty", () => {
@@ -176,14 +221,14 @@ test("Test - Relative date components' certainty", () => {
176
221
  });
177
222
 
178
223
  testSingleCase(chrono, "next month", refDate, (result, text) => {
179
- const expectedDate = new Date(2016, 11, 7, 12);
224
+ //const expectedDate = new Date(2016, 11, 7, 12);
180
225
 
181
226
  expect(result.text).toBe(text);
182
227
  expect(result.start.get("year")).toBe(2016);
183
228
  expect(result.start.get("month")).toBe(11);
184
229
  expect(result.start.get("day")).toBe(7);
185
230
  expect(result.start.get("hour")).toBe(12);
186
- expect(result.start.get("timezoneOffset")).toBe(-expectedDate.getTimezoneOffset());
231
+ //expect(result.start.get("timezoneOffset")).toBe(-expectedDate.getTimezoneOffset());
187
232
 
188
233
  expect(result.start.isCertain("year")).toBe(true);
189
234
  expect(result.start.isCertain("month")).toBe(true);
@@ -171,16 +171,16 @@ test("Test - Single Expression", function () {
171
171
  });
172
172
 
173
173
  test("Test - Single Expression (Casual)", function () {
174
- testSingleCase(chrono, "5 months ago, we did something", new Date(2012, 8 - 1, 10), (result) => {
174
+ testSingleCase(chrono, "5 months ago, we did something", new Date(2012, 10 - 1, 10), (result) => {
175
175
  expect(result.start).not.toBeNull();
176
176
  expect(result.start.get("year")).toBe(2012);
177
- expect(result.start.get("month")).toBe(3);
177
+ expect(result.start.get("month")).toBe(5);
178
178
  expect(result.start.get("day")).toBe(10);
179
179
 
180
180
  expect(result.index).toBe(0);
181
181
  expect(result.text).toBe("5 months ago");
182
182
 
183
- expect(result.start).toBeDate(new Date(2012, 3 - 1, 10));
183
+ expect(result.start).toBeDate(new Date(2012, 5 - 1, 10));
184
184
  });
185
185
 
186
186
  testSingleCase(chrono, "5 years ago, we did something", new Date(2012, 8 - 1, 10), (result) => {
@@ -101,11 +101,11 @@ test("Test - The normal within expression", () => {
101
101
  expect(result.start).toBeDate(new Date(2012, 8, 10, 12, 14));
102
102
  });
103
103
 
104
- testSingleCase(chrono, "within a few months", new Date(2012, 7, 10, 12, 14), (result) => {
104
+ testSingleCase(chrono, "within a few months", new Date(2012, 6, 10, 12, 14), (result) => {
105
105
  expect(result.index).toBe(0);
106
106
  expect(result.text).toBe("within a few months");
107
107
 
108
- expect(result.start).toBeDate(new Date(2012, 10, 10, 12, 14));
108
+ expect(result.start).toBeDate(new Date(2012, 9, 10, 12, 14));
109
109
  });
110
110
 
111
111
  testSingleCase(chrono, "within one year", new Date(2012, 7, 10, 12, 14), (result) => {