chrono-node 2.10.0 → 2.10.2

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 (266) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/calculation/duration.js +12 -7
  3. package/dist/cjs/calculation/duration.js.map +1 -1
  4. package/dist/cjs/common/refiners/AbstractMergeDateTimeRefiner.js +6 -3
  5. package/dist/cjs/common/refiners/AbstractMergeDateTimeRefiner.js.map +1 -1
  6. package/dist/cjs/common/refiners/MergeWeekdayComponentRefiner.js +2 -1
  7. package/dist/cjs/common/refiners/MergeWeekdayComponentRefiner.js.map +1 -1
  8. package/dist/cjs/locales/en/configuration.js +4 -0
  9. package/dist/cjs/locales/en/configuration.js.map +1 -1
  10. package/dist/cjs/locales/en/constants.d.ts +1 -1
  11. package/dist/cjs/locales/en/constants.js +1 -1
  12. package/dist/cjs/locales/en/constants.js.map +1 -1
  13. package/dist/cjs/locales/en/parsers/ENEndOfCurrentMonthParser.d.ts +7 -0
  14. package/dist/cjs/locales/en/parsers/ENEndOfCurrentMonthParser.js +23 -0
  15. package/dist/cjs/locales/en/parsers/ENEndOfCurrentMonthParser.js.map +1 -0
  16. package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js +1 -1
  17. package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
  18. package/dist/cjs/locales/en/parsers/ENSlashMonthFormatParser.d.ts +1 -1
  19. package/dist/cjs/locales/en/parsers/ENSlashMonthFormatParser.js +3 -0
  20. package/dist/cjs/locales/en/parsers/ENSlashMonthFormatParser.js.map +1 -1
  21. package/dist/cjs/locales/en/parsers/ENTimeUnitWithinFormatParser.js +1 -1
  22. package/dist/cjs/locales/en/parsers/ENTimeUnitWithinFormatParser.js.map +1 -1
  23. package/dist/cjs/locales/en/refiners/ENEndOfPeriodRefiner.d.ts +7 -0
  24. package/dist/cjs/locales/en/refiners/ENEndOfPeriodRefiner.js +81 -0
  25. package/dist/cjs/locales/en/refiners/ENEndOfPeriodRefiner.js.map +1 -0
  26. package/dist/cjs/locales/fr/constants.js +13 -0
  27. package/dist/cjs/locales/fr/constants.js.map +1 -1
  28. package/dist/cjs/locales/it/configuration.d.ts +5 -0
  29. package/dist/cjs/locales/it/configuration.js +66 -0
  30. package/dist/cjs/locales/it/configuration.js.map +1 -0
  31. package/dist/cjs/locales/it/constants.d.ts +8 -4
  32. package/dist/cjs/locales/it/constants.js +216 -90
  33. package/dist/cjs/locales/it/constants.js.map +1 -1
  34. package/dist/cjs/locales/it/index.d.ts +9 -7
  35. package/dist/cjs/locales/it/index.js +13 -51
  36. package/dist/cjs/locales/it/index.js.map +1 -1
  37. package/dist/cjs/locales/it/parsers/ITCasualDateParser.js +19 -10
  38. package/dist/cjs/locales/it/parsers/ITCasualDateParser.js.map +1 -1
  39. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.d.ts +1 -1
  40. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js +70 -37
  41. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
  42. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +1 -1
  43. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js +6 -6
  44. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -1
  45. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +4 -2
  46. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js +17 -6
  47. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -1
  48. package/dist/cjs/locales/it/parsers/ITMonthNameParser.d.ts +2 -2
  49. package/dist/cjs/locales/it/parsers/ITMonthNameParser.js +5 -4
  50. package/dist/cjs/locales/it/parsers/ITMonthNameParser.js.map +1 -1
  51. package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js +21 -7
  52. package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -1
  53. package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.d.ts +1 -1
  54. package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.js +2 -2
  55. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.d.ts +3 -2
  56. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js +37 -29
  57. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js.map +1 -1
  58. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +1 -1
  59. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js +9 -7
  60. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -1
  61. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +3 -1
  62. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +17 -9
  63. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -1
  64. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +1 -1
  65. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js +9 -6
  66. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -1
  67. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +3 -1
  68. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js +21 -6
  69. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -1
  70. package/dist/cjs/locales/it/parsers/ITWeekdayParser.d.ts +1 -1
  71. package/dist/cjs/locales/it/parsers/ITWeekdayParser.js +21 -12
  72. package/dist/cjs/locales/it/parsers/ITWeekdayParser.js.map +1 -1
  73. package/dist/cjs/locales/it/parsers/{ITCasualYearMonthDayParser.d.ts → ITYearMonthDayParser.d.ts} +3 -1
  74. package/dist/cjs/locales/it/parsers/{ITCasualYearMonthDayParser.js → ITYearMonthDayParser.js} +20 -8
  75. package/dist/cjs/locales/it/parsers/ITYearMonthDayParser.js.map +1 -0
  76. package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.d.ts +5 -0
  77. package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.js +34 -0
  78. package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.js.map +1 -0
  79. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +1 -1
  80. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js +3 -3
  81. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -1
  82. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +1 -1
  83. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js +3 -3
  84. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -1
  85. package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.d.ts +6 -0
  86. package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js +30 -0
  87. package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js.map +1 -0
  88. package/dist/cjs/locales/it/refiners/{ITMergeRelativeDateRefiner.d.ts → ITMergeRelativeFollowByDateRefiner.d.ts} +1 -1
  89. package/dist/cjs/locales/it/refiners/{ITMergeRelativeDateRefiner.js → ITMergeRelativeFollowByDateRefiner.js} +8 -8
  90. package/dist/cjs/locales/it/refiners/ITMergeRelativeFollowByDateRefiner.js.map +1 -0
  91. package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.d.ts +6 -0
  92. package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.js +26 -0
  93. package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.js.map +1 -0
  94. package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.d.ts +1 -0
  95. package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.js +3 -0
  96. package/dist/cjs/locales/zh/hans/parsers/ZHHansAgoFormatParser.js.map +1 -1
  97. package/dist/cjs/locales/zh/hans/parsers/ZHHansDateParser.d.ts +1 -0
  98. package/dist/cjs/locales/zh/hans/parsers/ZHHansDateParser.js +3 -0
  99. package/dist/cjs/locales/zh/hans/parsers/ZHHansDateParser.js.map +1 -1
  100. package/dist/cjs/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.d.ts +1 -0
  101. package/dist/cjs/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.js +3 -0
  102. package/dist/cjs/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.js.map +1 -1
  103. package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.d.ts +1 -0
  104. package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.js +3 -0
  105. package/dist/cjs/locales/zh/hant/parsers/ZHHantAgoFormatParser.js.map +1 -1
  106. package/dist/cjs/locales/zh/hant/parsers/ZHHantDateParser.d.ts +1 -0
  107. package/dist/cjs/locales/zh/hant/parsers/ZHHantDateParser.js +3 -0
  108. package/dist/cjs/locales/zh/hant/parsers/ZHHantDateParser.js.map +1 -1
  109. package/dist/cjs/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.d.ts +1 -0
  110. package/dist/cjs/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.js +3 -0
  111. package/dist/cjs/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.js.map +1 -1
  112. package/dist/esm/calculation/duration.js +5 -0
  113. package/dist/esm/calculation/duration.js.map +1 -1
  114. package/dist/esm/common/refiners/AbstractMergeDateTimeRefiner.js +6 -3
  115. package/dist/esm/common/refiners/AbstractMergeDateTimeRefiner.js.map +1 -1
  116. package/dist/esm/common/refiners/MergeWeekdayComponentRefiner.js +2 -1
  117. package/dist/esm/common/refiners/MergeWeekdayComponentRefiner.js.map +1 -1
  118. package/dist/esm/locales/en/configuration.js +4 -0
  119. package/dist/esm/locales/en/configuration.js.map +1 -1
  120. package/dist/esm/locales/en/constants.d.ts +1 -1
  121. package/dist/esm/locales/en/constants.js +1 -1
  122. package/dist/esm/locales/en/constants.js.map +1 -1
  123. package/dist/esm/locales/en/parsers/ENEndOfCurrentMonthParser.d.ts +7 -0
  124. package/dist/esm/locales/en/parsers/ENEndOfCurrentMonthParser.js +20 -0
  125. package/dist/esm/locales/en/parsers/ENEndOfCurrentMonthParser.js.map +1 -0
  126. package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js +1 -1
  127. package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
  128. package/dist/esm/locales/en/parsers/ENSlashMonthFormatParser.d.ts +1 -1
  129. package/dist/esm/locales/en/parsers/ENSlashMonthFormatParser.js +3 -0
  130. package/dist/esm/locales/en/parsers/ENSlashMonthFormatParser.js.map +1 -1
  131. package/dist/esm/locales/en/parsers/ENTimeUnitWithinFormatParser.js +1 -1
  132. package/dist/esm/locales/en/parsers/ENTimeUnitWithinFormatParser.js.map +1 -1
  133. package/dist/esm/locales/en/refiners/ENEndOfPeriodRefiner.d.ts +7 -0
  134. package/dist/esm/locales/en/refiners/ENEndOfPeriodRefiner.js +78 -0
  135. package/dist/esm/locales/en/refiners/ENEndOfPeriodRefiner.js.map +1 -0
  136. package/dist/esm/locales/fr/constants.js +13 -0
  137. package/dist/esm/locales/fr/constants.js.map +1 -1
  138. package/dist/esm/locales/it/configuration.d.ts +5 -0
  139. package/dist/esm/locales/it/configuration.js +60 -0
  140. package/dist/esm/locales/it/configuration.js.map +1 -0
  141. package/dist/esm/locales/it/constants.d.ts +8 -4
  142. package/dist/esm/locales/it/constants.js +256 -117
  143. package/dist/esm/locales/it/constants.js.map +1 -1
  144. package/dist/esm/locales/it/index.d.ts +9 -7
  145. package/dist/esm/locales/it/index.js +8 -48
  146. package/dist/esm/locales/it/index.js.map +1 -1
  147. package/dist/esm/locales/it/parsers/ITCasualDateParser.js +19 -10
  148. package/dist/esm/locales/it/parsers/ITCasualDateParser.js.map +1 -1
  149. package/dist/esm/locales/it/parsers/ITCasualTimeParser.d.ts +1 -1
  150. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js +37 -37
  151. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
  152. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +1 -1
  153. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js +5 -5
  154. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -1
  155. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +4 -2
  156. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js +17 -5
  157. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -1
  158. package/dist/esm/locales/it/parsers/ITMonthNameParser.d.ts +2 -2
  159. package/dist/esm/locales/it/parsers/ITMonthNameParser.js +4 -3
  160. package/dist/esm/locales/it/parsers/ITMonthNameParser.js.map +1 -1
  161. package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js +21 -7
  162. package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -1
  163. package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.d.ts +1 -1
  164. package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.js +1 -1
  165. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.d.ts +3 -2
  166. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js +35 -27
  167. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js.map +1 -1
  168. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +1 -1
  169. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js +9 -7
  170. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -1
  171. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +3 -1
  172. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +18 -9
  173. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -1
  174. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +1 -1
  175. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js +9 -6
  176. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -1
  177. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +3 -1
  178. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js +22 -6
  179. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -1
  180. package/dist/esm/locales/it/parsers/ITWeekdayParser.d.ts +1 -1
  181. package/dist/esm/locales/it/parsers/ITWeekdayParser.js +21 -12
  182. package/dist/esm/locales/it/parsers/ITWeekdayParser.js.map +1 -1
  183. package/dist/esm/locales/it/parsers/{ITCasualYearMonthDayParser.d.ts → ITYearMonthDayParser.d.ts} +3 -1
  184. package/dist/esm/locales/it/parsers/{ITCasualYearMonthDayParser.js → ITYearMonthDayParser.js} +20 -7
  185. package/dist/esm/locales/it/parsers/ITYearMonthDayParser.js.map +1 -0
  186. package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.d.ts +5 -0
  187. package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.js +31 -0
  188. package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.js.map +1 -0
  189. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +1 -1
  190. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js +2 -2
  191. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -1
  192. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +1 -1
  193. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js +2 -2
  194. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -1
  195. package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.d.ts +6 -0
  196. package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js +27 -0
  197. package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js.map +1 -0
  198. package/dist/esm/locales/it/refiners/{ITMergeRelativeDateRefiner.d.ts → ITMergeRelativeFollowByDateRefiner.d.ts} +1 -1
  199. package/dist/esm/locales/it/refiners/{ITMergeRelativeDateRefiner.js → ITMergeRelativeFollowByDateRefiner.js} +7 -7
  200. package/dist/esm/locales/it/refiners/ITMergeRelativeFollowByDateRefiner.js.map +1 -0
  201. package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.d.ts +6 -0
  202. package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.js +23 -0
  203. package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.js.map +1 -0
  204. package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.d.ts +1 -0
  205. package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.js +3 -0
  206. package/dist/esm/locales/zh/hans/parsers/ZHHansAgoFormatParser.js.map +1 -1
  207. package/dist/esm/locales/zh/hans/parsers/ZHHansDateParser.d.ts +1 -0
  208. package/dist/esm/locales/zh/hans/parsers/ZHHansDateParser.js +3 -0
  209. package/dist/esm/locales/zh/hans/parsers/ZHHansDateParser.js.map +1 -1
  210. package/dist/esm/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.d.ts +1 -0
  211. package/dist/esm/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.js +3 -0
  212. package/dist/esm/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.js.map +1 -1
  213. package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.d.ts +1 -0
  214. package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.js +3 -0
  215. package/dist/esm/locales/zh/hant/parsers/ZHHantAgoFormatParser.js.map +1 -1
  216. package/dist/esm/locales/zh/hant/parsers/ZHHantDateParser.d.ts +1 -0
  217. package/dist/esm/locales/zh/hant/parsers/ZHHantDateParser.js +3 -0
  218. package/dist/esm/locales/zh/hant/parsers/ZHHantDateParser.js.map +1 -1
  219. package/dist/esm/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.d.ts +1 -0
  220. package/dist/esm/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.js +3 -0
  221. package/dist/esm/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.js.map +1 -1
  222. package/package.json +1 -1
  223. package/src/calculation/duration.ts +5 -0
  224. package/src/common/refiners/AbstractMergeDateTimeRefiner.ts +13 -5
  225. package/src/common/refiners/MergeWeekdayComponentRefiner.ts +6 -1
  226. package/src/locales/en/configuration.ts +4 -0
  227. package/src/locales/en/constants.ts +1 -1
  228. package/src/locales/en/parsers/ENEndOfCurrentMonthParser.ts +25 -0
  229. package/src/locales/en/parsers/ENMonthNameMiddleEndianParser.ts +1 -1
  230. package/src/locales/en/parsers/ENSlashMonthFormatParser.ts +7 -1
  231. package/src/locales/en/parsers/ENTimeUnitWithinFormatParser.ts +1 -1
  232. package/src/locales/en/refiners/ENEndOfPeriodRefiner.ts +101 -0
  233. package/src/locales/fr/constants.ts +13 -0
  234. package/src/locales/it/configuration.ts +85 -0
  235. package/src/locales/it/constants.ts +273 -123
  236. package/src/locales/it/index.ts +14 -73
  237. package/src/locales/it/parsers/ITCasualDateParser.ts +20 -12
  238. package/src/locales/it/parsers/ITCasualTimeParser.ts +39 -44
  239. package/src/locales/it/parsers/ITMonthNameLittleEndianParser.ts +6 -6
  240. package/src/locales/it/parsers/ITMonthNameMiddleEndianParser.ts +34 -17
  241. package/src/locales/it/parsers/ITMonthNameParser.ts +9 -8
  242. package/src/locales/it/parsers/ITRelativeDateFormatParser.ts +33 -12
  243. package/src/locales/it/parsers/ITSlashMonthFormatParser.ts +1 -1
  244. package/src/locales/it/parsers/ITTimeExpressionParser.ts +42 -28
  245. package/src/locales/it/parsers/ITTimeUnitAgoFormatParser.ts +9 -8
  246. package/src/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.ts +21 -11
  247. package/src/locales/it/parsers/ITTimeUnitLaterFormatParser.ts +12 -6
  248. package/src/locales/it/parsers/ITTimeUnitWithinFormatParser.ts +28 -8
  249. package/src/locales/it/parsers/ITWeekdayParser.ts +23 -13
  250. package/src/locales/it/parsers/{ITCasualYearMonthDayParser.ts → ITYearMonthDayParser.ts} +19 -8
  251. package/src/locales/it/refiners/ITExtractYearSuffixRefiner.ts +34 -0
  252. package/src/locales/it/refiners/ITMergeDateRangeRefiner.ts +5 -9
  253. package/src/locales/it/refiners/ITMergeDateTimeRefiner.ts +5 -5
  254. package/src/locales/it/refiners/ITMergeRelativeAfterDateRefiner.ts +46 -0
  255. package/src/locales/it/refiners/{ITMergeRelativeDateRefiner.ts → ITMergeRelativeFollowByDateRefiner.ts} +10 -10
  256. package/src/locales/it/refiners/ITUnlikelyFormatFilter.ts +31 -0
  257. package/src/locales/zh/hans/parsers/ZHHansAgoFormatParser.ts +6 -0
  258. package/src/locales/zh/hans/parsers/ZHHansDateParser.ts +6 -0
  259. package/src/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.ts +6 -0
  260. package/src/locales/zh/hant/parsers/ZHHantAgoFormatParser.ts +6 -0
  261. package/src/locales/zh/hant/parsers/ZHHantDateParser.ts +6 -0
  262. package/src/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.ts +6 -0
  263. package/dist/cjs/locales/it/parsers/ITCasualYearMonthDayParser.js.map +0 -1
  264. package/dist/cjs/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +0 -1
  265. package/dist/esm/locales/it/parsers/ITCasualYearMonthDayParser.js.map +0 -1
  266. package/dist/esm/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +0 -1
@@ -1,47 +1,55 @@
1
- import { Meridiem } from "../../../index.js";
1
+ import { Meridiem } from "../../../types.js";
2
2
  import { AbstractTimeExpressionParser } from "../../../common/parsers/AbstractTimeExpressionParser.js";
3
- export default class ENTimeExpressionParser extends AbstractTimeExpressionParser {
3
+ export default class ITTimeExpressionParser extends AbstractTimeExpressionParser {
4
4
  constructor(strictMode) {
5
5
  super(strictMode);
6
6
  }
7
7
  followingPhase() {
8
- return "\\s*(?:\\-|\\–|\\~|\\〜|to|\\?)\\s*";
8
+ return "\\s*(?:\\-|\\–|\\~|\\〜|a|fino\\s*a|alle?|\\?)\\s*";
9
9
  }
10
10
  primaryPrefix() {
11
- return "(?:(?:alle|dalle)\\s*)??";
11
+ return "(?:(?:alle?|dalle?)\\s*)??";
12
12
  }
13
13
  primarySuffix() {
14
- return "(?:\\s*(?:in punto|o\\W*in punto|(?:di|del|della|in|al|alla|alle)\\s*(?:mattina|pomeriggio|sera)))?(?!/)(?=\\W|$)";
14
+ return "(?:\\s*(?:di\\s*(?:sera|notte|mattina|pomeriggio)))?(?!/)(?=\\W|$)";
15
15
  }
16
16
  extractPrimaryTimeComponents(context, match) {
17
17
  const components = super.extractPrimaryTimeComponents(context, match);
18
- if (components) {
19
- if (match[0].endsWith("sera")) {
20
- const hour = components.get("hour");
21
- if (hour >= 6 && hour < 12) {
22
- components.assign("hour", components.get("hour") + 12);
23
- components.assign("meridiem", Meridiem.PM);
24
- }
25
- else if (hour < 6) {
26
- components.assign("meridiem", Meridiem.AM);
27
- }
28
- }
29
- if (match[0].endsWith("pomeriggio")) {
18
+ if (!components) {
19
+ return components;
20
+ }
21
+ if (match[0].match(/di\s*(?:sera|notte)/i)) {
22
+ const hour = components.get("hour");
23
+ if (hour >= 6 && hour < 12) {
24
+ components.assign("hour", components.get("hour") + 12);
30
25
  components.assign("meridiem", Meridiem.PM);
31
- const hour = components.get("hour");
32
- if (hour >= 0 && hour <= 6) {
33
- components.assign("hour", components.get("hour") + 12);
34
- }
35
26
  }
36
- if (match[0].endsWith("mattina")) {
27
+ else if (hour < 6) {
37
28
  components.assign("meridiem", Meridiem.AM);
38
- const hour = components.get("hour");
39
- if (hour < 12) {
40
- components.assign("hour", components.get("hour"));
41
- }
42
29
  }
43
30
  }
44
- return components;
31
+ if (match[0].match(/di\s*pomeriggio/i)) {
32
+ components.assign("meridiem", Meridiem.PM);
33
+ const hour = components.get("hour");
34
+ if (hour >= 0 && hour <= 6) {
35
+ components.assign("hour", components.get("hour") + 12);
36
+ }
37
+ }
38
+ if (match[0].match(/di\s*mattina/i)) {
39
+ components.assign("meridiem", Meridiem.AM);
40
+ const hour = components.get("hour");
41
+ if (hour < 12) {
42
+ components.assign("hour", components.get("hour"));
43
+ }
44
+ }
45
+ return components.addTag("parser/ITTimeExpressionParser");
46
+ }
47
+ extractFollowingTimeComponents(context, match, result) {
48
+ const followingComponents = super.extractFollowingTimeComponents(context, match, result);
49
+ if (followingComponents) {
50
+ followingComponents.addTag("parser/ITTimeExpressionParser");
51
+ }
52
+ return followingComponents;
45
53
  }
46
54
  }
47
55
  //# sourceMappingURL=ITTimeExpressionParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITTimeExpressionParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeExpressionParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AAEpG,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,4BAA4B;IAC5E,YAAY,UAAU;QAClB,KAAK,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAED,cAAc;QACV,OAAO,oCAAoC,CAAC;IAChD,CAAC;IAED,aAAa;QACT,OAAO,0BAA0B,CAAC;IACtC,CAAC;IAED,aAAa;QACT,OAAO,mHAAmH,CAAC;IAC/H,CAAC;IAED,4BAA4B,CAAC,OAAuB,EAAE,KAAuB;QACzE,MAAM,UAAU,GAAG,KAAK,CAAC,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtE,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;oBACzB,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;oBACvD,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC/C,CAAC;qBAAM,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;oBAClB,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;YAED,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAClC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;oBACzB,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;YAED,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;oBACZ,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtD,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ"}
1
+ {"version":3,"file":"ITTimeExpressionParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeExpressionParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AAEpG,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,4BAA4B;IAC5E,YAAY,UAAU;QAClB,KAAK,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAED,cAAc;QACV,OAAO,mDAAmD,CAAC;IAC/D,CAAC;IAED,aAAa;QACT,OAAO,4BAA4B,CAAC;IACxC,CAAC;IAED,aAAa;QACT,OAAO,oEAAoE,CAAC;IAChF,CAAC;IAED,4BAA4B,CAAC,OAAuB,EAAE,KAAuB;QACzE,MAAM,UAAU,GAAG,KAAK,CAAC,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;gBACzB,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvD,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBAClB,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;gBACzB,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YAClC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;gBACZ,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACtD,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;IAC9D,CAAC;IAED,8BAA8B,CAC1B,OAAuB,EACvB,KAAuB,EACvB,MAAqB;QAErB,MAAM,mBAAmB,GAAG,KAAK,CAAC,8BAA8B,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzF,IAAI,mBAAmB,EAAE,CAAC;YACtB,mBAAmB,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC/B,CAAC;CACJ"}
@@ -1,7 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- export default class ENTimeUnitAgoFormatParser extends AbstractParserWithWordBoundaryChecking {
4
+ export default class ITTimeUnitAgoFormatParser extends AbstractParserWithWordBoundaryChecking {
5
5
  private strictMode;
6
6
  constructor(strictMode: boolean);
7
7
  innerPattern(): RegExp;
@@ -1,10 +1,10 @@
1
- import { parseDuration, TIME_UNITS_PATTERN } from "../constants.js";
1
+ import { parseDuration, TIME_UNITS_NO_ABBR_PATTERN, TIME_UNITS_PATTERN } from "../constants.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
4
  import { reverseDuration } from "../../../calculation/duration.js";
5
- const PATTERN = new RegExp(`(${TIME_UNITS_PATTERN})\\s{0,5}(?:fa|prima|precedente)(?=(?:\\W|$))`, "i");
6
- const STRICT_PATTERN = new RegExp(`(${TIME_UNITS_PATTERN})\\s{0,5}fa(?=(?:\\W|$))`, "i");
7
- export default class ENTimeUnitAgoFormatParser extends AbstractParserWithWordBoundaryChecking {
5
+ const PATTERN = new RegExp(`(${TIME_UNITS_PATTERN})\\s{0,5}(?:fa|prima)(?=\\W|$)`, "i");
6
+ const STRICT_PATTERN = new RegExp(`(${TIME_UNITS_NO_ABBR_PATTERN})\\s{0,5}(?:fa|prima)(?=\\W|$)`, "i");
7
+ export default class ITTimeUnitAgoFormatParser extends AbstractParserWithWordBoundaryChecking {
8
8
  strictMode;
9
9
  constructor(strictMode) {
10
10
  super();
@@ -14,9 +14,11 @@ export default class ENTimeUnitAgoFormatParser extends AbstractParserWithWordBou
14
14
  return this.strictMode ? STRICT_PATTERN : PATTERN;
15
15
  }
16
16
  innerExtract(context, match) {
17
- const timeUnits = parseDuration(match[1]);
18
- const outputTimeUnits = reverseDuration(timeUnits);
19
- return ParsingComponents.createRelativeFromReference(context.reference, outputTimeUnits);
17
+ const duration = parseDuration(match[1]);
18
+ if (!duration) {
19
+ return null;
20
+ }
21
+ return ParsingComponents.createRelativeFromReference(context.reference, reverseDuration(duration));
20
22
  }
21
23
  }
22
24
  //# sourceMappingURL=ITTimeUnitAgoFormatParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITTimeUnitAgoFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitAgoFormatParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,kBAAkB,+CAA+C,EAAE,GAAG,CAAC,CAAC;AACvG,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,IAAI,kBAAkB,0BAA0B,EAAE,GAAG,CAAC,CAAC;AAEzF,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,sCAAsC;IACrE;IAApB,YAAoB,UAAmB;QACnC,KAAK,EAAE,CAAC;QADQ,eAAU,GAAV,UAAU,CAAS;IAEvC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAEnD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC7F,CAAC;CACJ"}
1
+ {"version":3,"file":"ITTimeUnitAgoFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitAgoFormatParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,kBAAkB,gCAAgC,EAAE,GAAG,CAAC,CAAC;AACxF,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,IAAI,0BAA0B,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAEvG,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,sCAAsC;IACrE;IAApB,YAAoB,UAAmB;QACnC,KAAK,EAAE,CAAC;QADQ,eAAU,GAAV,UAAU,CAAS;IAEvC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvG,CAAC;CACJ"}
@@ -1,7 +1,9 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- export default class ENTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundaryChecking {
4
+ export default class ITTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundaryChecking {
5
+ private allowAbbreviations;
6
+ constructor(allowAbbreviations?: boolean);
5
7
  innerPattern(): RegExp;
6
8
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
7
9
  }
@@ -1,23 +1,32 @@
1
- import { TIME_UNITS_PATTERN, parseDuration } from "../constants.js";
1
+ import { TIME_UNITS_PATTERN, parseDuration, TIME_UNITS_NO_ABBR_PATTERN } from "../constants.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
4
  import { reverseDuration } from "../../../calculation/duration.js";
5
- const PATTERN = new RegExp(`(questo|ultimo|passato|prossimo|dopo|questa|ultima|passata|prossima|\\+|-)\\s*(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
6
- export default class ENTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundaryChecking {
5
+ const PATTERN = new RegExp(`(?:il\\s*|la\\s*|l'\\s*)?(questo|questa|quest'|scorso|scorsa|prossimo|prossima|dopo|\\+|-)\\s*(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
6
+ const PATTERN_NO_ABBR = new RegExp(`(?:il\\s*|la\\s*|l'\\s*)?(questo|questa|quest'|scorso|scorsa|prossimo|prossima|dopo|\\+|-)\\s*(${TIME_UNITS_NO_ABBR_PATTERN})(?=\\W|$)`, "i");
7
+ export default class ITTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundaryChecking {
8
+ allowAbbreviations;
9
+ constructor(allowAbbreviations = true) {
10
+ super();
11
+ this.allowAbbreviations = allowAbbreviations;
12
+ }
7
13
  innerPattern() {
8
- return PATTERN;
14
+ return this.allowAbbreviations ? PATTERN : PATTERN_NO_ABBR;
9
15
  }
10
16
  innerExtract(context, match) {
11
17
  const prefix = match[1].toLowerCase();
12
- let timeUnits = parseDuration(match[2]);
18
+ let duration = parseDuration(match[2]);
19
+ if (!duration) {
20
+ return null;
21
+ }
13
22
  switch (prefix) {
14
- case "last":
15
- case "past":
23
+ case "scorso":
24
+ case "scorsa":
16
25
  case "-":
17
- timeUnits = reverseDuration(timeUnits);
26
+ duration = reverseDuration(duration);
18
27
  break;
19
28
  }
20
- return ParsingComponents.createRelativeFromReference(context.reference, timeUnits);
29
+ return ParsingComponents.createRelativeFromReference(context.reference, duration);
21
30
  }
22
31
  }
23
32
  //# sourceMappingURL=ITTimeUnitCasualRelativeFormatParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITTimeUnitCasualRelativeFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,kFAAkF,kBAAkB,YAAY,EAChH,GAAG,CACN,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oCAAqC,SAAQ,sCAAsC;IACpG,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM,CAAC;YACZ,KAAK,GAAG;gBACJ,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;gBACvC,MAAM;QACd,CAAC;QAED,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
1
+ {"version":3,"file":"ITTimeUnitCasualRelativeFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,kGAAkG,kBAAkB,YAAY,EAChI,GAAG,CACN,CAAC;AACF,MAAM,eAAe,GAAG,IAAI,MAAM,CAC9B,kGAAkG,0BAA0B,YAAY,EACxI,GAAG,CACN,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oCAAqC,SAAQ,sCAAsC;IAChF;IAApB,YAAoB,qBAA8B,IAAI;QAClD,KAAK,EAAE,CAAC;QADQ,uBAAkB,GAAlB,kBAAkB,CAAgB;IAEtD,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;IAC/D,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC;YACd,KAAK,GAAG;gBACJ,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACrC,MAAM;QACd,CAAC;QACD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACtF,CAAC;CACJ"}
@@ -1,7 +1,7 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- export default class ENTimeUnitLaterFormatParser extends AbstractParserWithWordBoundaryChecking {
4
+ export default class ITTimeUnitLaterFormatParser extends AbstractParserWithWordBoundaryChecking {
5
5
  private strictMode;
6
6
  constructor(strictMode: boolean);
7
7
  innerPattern(): RegExp;
@@ -1,10 +1,10 @@
1
- import { parseDuration, TIME_UNITS_PATTERN } from "../constants.js";
1
+ import { parseDuration, TIME_UNITS_NO_ABBR_PATTERN, TIME_UNITS_PATTERN } from "../constants.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- const PATTERN = new RegExp(`(${TIME_UNITS_PATTERN})\\s{0,5}(?:dopo|più tardi|da adesso|avanti|oltre|a seguire)` + "(?=(?:\\W|$))", "i");
5
- const STRICT_PATTERN = new RegExp("" + "(" + TIME_UNITS_PATTERN + ")" + "(dopo|più tardi)" + "(?=(?:\\W|$))", "i");
4
+ const PATTERN = new RegExp(`(${TIME_UNITS_PATTERN})\\s{0,5}(?:dopo|più\\s*tardi|da\\s*adesso|da\\s*ora)` + "(?=(?:\\W|$))", "i");
5
+ const STRICT_PATTERN = new RegExp(`(${TIME_UNITS_NO_ABBR_PATTERN})\\s{0,5}(dopo|più\\s*tardi|da\\s*adesso|da\\s*ora)(?=\\W|$)`, "i");
6
6
  const GROUP_NUM_TIMEUNITS = 1;
7
- export default class ENTimeUnitLaterFormatParser extends AbstractParserWithWordBoundaryChecking {
7
+ export default class ITTimeUnitLaterFormatParser extends AbstractParserWithWordBoundaryChecking {
8
8
  strictMode;
9
9
  constructor(strictMode) {
10
10
  super();
@@ -14,8 +14,11 @@ export default class ENTimeUnitLaterFormatParser extends AbstractParserWithWordB
14
14
  return this.strictMode ? STRICT_PATTERN : PATTERN;
15
15
  }
16
16
  innerExtract(context, match) {
17
- const fragments = parseDuration(match[GROUP_NUM_TIMEUNITS]);
18
- return ParsingComponents.createRelativeFromReference(context.reference, fragments);
17
+ const timeUnits = parseDuration(match[GROUP_NUM_TIMEUNITS]);
18
+ if (!timeUnits) {
19
+ return null;
20
+ }
21
+ return ParsingComponents.createRelativeFromReference(context.reference, timeUnits);
19
22
  }
20
23
  }
21
24
  //# sourceMappingURL=ITTimeUnitLaterFormatParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITTimeUnitLaterFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitLaterFormatParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,IAAI,kBAAkB,8DAA8D,GAAG,eAAe,EACtG,GAAG,CACN,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,kBAAkB,GAAG,GAAG,GAAG,kBAAkB,GAAG,eAAe,EAAE,GAAG,CAAC,CAAC;AACnH,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,sCAAsC;IACvE;IAApB,YAAoB,UAAmB;QACnC,KAAK,EAAE,CAAC;QADQ,eAAU,GAAV,UAAU,CAAS;IAEvC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC5D,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
1
+ {"version":3,"file":"ITTimeUnitLaterFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitLaterFormatParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,IAAI,kBAAkB,uDAAuD,GAAG,eAAe,EAC/F,GAAG,CACN,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,MAAM,CAC7B,IAAI,0BAA0B,8DAA8D,EAC5F,GAAG,CACN,CAAC;AACF,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,sCAAsC;IACvE;IAApB,YAAoB,UAAmB;QACnC,KAAK,EAAE,CAAC;QADQ,eAAU,GAAV,UAAU,CAAS;IAEvC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
@@ -1,7 +1,9 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- export default class ENTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
4
+ export default class ITTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
5
+ private strictMode;
6
+ constructor(strictMode: boolean);
5
7
  innerPattern(context: ParsingContext): RegExp;
6
8
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
7
9
  }
@@ -1,15 +1,31 @@
1
- import { TIME_UNITS_PATTERN, parseDuration } from "../constants.js";
1
+ import { TIME_UNITS_PATTERN, parseDuration, TIME_UNITS_NO_ABBR_PATTERN } from "../constants.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- const PATTERN_WITH_PREFIX = new RegExp(`(?:within|in|for)\\s*` +
5
- `(?:(?:più o meno|intorno|approssimativamente|verso|verso le)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
6
- const PATTERN_WITHOUT_PREFIX = new RegExp(`(?:(?:più o meno|intorno|approssimativamente|verso|verso le)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
7
- export default class ENTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
4
+ const PATTERN_WITH_OPTIONAL_PREFIX = new RegExp(`(?:(?:entro|tra|fra|in|per)\\s*)?` +
5
+ `(?:(?:circa|approssimativamente)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
6
+ const PATTERN_WITH_PREFIX = new RegExp(`(?:entro|tra|fra|in|per)\\s*` + `(?:(?:circa|approssimativamente)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
7
+ const PATTERN_WITH_PREFIX_STRICT = new RegExp(`(?:entro|tra|fra|in|per)\\s*` +
8
+ `(?:(?:circa|approssimativamente)\\s*(?:~\\s*)?)?(${TIME_UNITS_NO_ABBR_PATTERN})(?=\\W|$)`, "i");
9
+ export default class ITTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
10
+ strictMode;
11
+ constructor(strictMode) {
12
+ super();
13
+ this.strictMode = strictMode;
14
+ }
8
15
  innerPattern(context) {
9
- return context.option.forwardDate ? PATTERN_WITHOUT_PREFIX : PATTERN_WITH_PREFIX;
16
+ if (this.strictMode) {
17
+ return PATTERN_WITH_PREFIX_STRICT;
18
+ }
19
+ return context.option.forwardDate ? PATTERN_WITH_OPTIONAL_PREFIX : PATTERN_WITH_PREFIX;
10
20
  }
11
21
  innerExtract(context, match) {
22
+ if (match[0].match(/^per\s*(il|la|l')\s*\w+/)) {
23
+ return null;
24
+ }
12
25
  const timeUnits = parseDuration(match[1]);
26
+ if (!timeUnits) {
27
+ return null;
28
+ }
13
29
  return ParsingComponents.createRelativeFromReference(context.reference, timeUnits);
14
30
  }
15
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ITTimeUnitWithinFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitWithinFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAClC,uBAAuB;IACnB,gFAAgF,kBAAkB,YAAY,EAClH,GAAG,CACN,CAAC;AAEF,MAAM,sBAAsB,GAAG,IAAI,MAAM,CACrC,gFAAgF,kBAAkB,YAAY,EAC9G,GAAG,CACN,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,sCAAsC;IAC5F,YAAY,CAAC,OAAuB;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACrF,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
1
+ {"version":3,"file":"ITTimeUnitWithinFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitWithinFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,4BAA4B,GAAG,IAAI,MAAM,CAC3C,mCAAmC;IAC/B,oDAAoD,kBAAkB,YAAY,EACtF,GAAG,CACN,CAAC;AAEF,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAClC,8BAA8B,GAAG,oDAAoD,kBAAkB,YAAY,EACnH,GAAG,CACN,CAAC;AAEF,MAAM,0BAA0B,GAAG,IAAI,MAAM,CACzC,8BAA8B;IAC1B,oDAAoD,0BAA0B,YAAY,EAC9F,GAAG,CACN,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,sCAAsC;IACxE;IAApB,YAAoB,UAAmB;QACnC,KAAK,EAAE,CAAC;QADQ,eAAU,GAAV,UAAU,CAAS;IAEvC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,0BAA0B,CAAC;QACtC,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAC3F,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QAEzD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
@@ -3,5 +3,5 @@ import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
4
  export default class ITWeekdayParser extends AbstractParserWithWordBoundaryChecking {
5
5
  innerPattern(): RegExp;
6
- innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
6
+ innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | null;
7
7
  }
@@ -2,12 +2,12 @@ import { WEEKDAY_DICTIONARY } from "../constants.js";
2
2
  import { matchAnyPattern } from "../../../utils/pattern.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
4
  import { createParsingComponentsAtWeekday } from "../../../calculation/weekdays.js";
5
+ import { Weekday } from "../../../types.js";
5
6
  const PATTERN = new RegExp("(?:(?:\\,|\\(|\\()\\s*)?" +
6
- "(?:il\\s*?)?" +
7
- "(?:(questa|l'ultima|scorsa|prossima)\\s*)?" +
8
- `(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
7
+ "(?:(questo|questa|quest'|scorso|scorsa|prossimo|prossima)\\s*)?" +
8
+ `(${matchAnyPattern(WEEKDAY_DICTIONARY)}|weekend|fine\\s*settimana)` +
9
9
  "(?:\\s*(?:\\,|\\)|\\)))?" +
10
- "(?:\\s*(questa|l'ultima|scorsa|prossima)\\s*settimana)?" +
10
+ "(?:\\s*(scorso|scorsa|prossimo|prossima)(?:\\s*settimana)?)?" +
11
11
  "(?=\\W|$)", "i");
12
12
  const PREFIX_GROUP = 1;
13
13
  const WEEKDAY_GROUP = 2;
@@ -17,22 +17,31 @@ export default class ITWeekdayParser extends AbstractParserWithWordBoundaryCheck
17
17
  return PATTERN;
18
18
  }
19
19
  innerExtract(context, match) {
20
- const dayOfWeek = match[WEEKDAY_GROUP].toLowerCase();
21
- const weekday = WEEKDAY_DICTIONARY[dayOfWeek];
22
20
  const prefix = match[PREFIX_GROUP];
23
21
  const postfix = match[POSTFIX_GROUP];
24
22
  let modifierWord = prefix || postfix;
25
23
  modifierWord = modifierWord || "";
26
24
  modifierWord = modifierWord.toLowerCase();
27
25
  let modifier = null;
28
- if (modifierWord == "ultima" || modifierWord == "scorsa") {
29
- modifier = "ultima";
26
+ if (modifierWord == "scorso" || modifierWord == "scorsa") {
27
+ modifier = "last";
30
28
  }
31
- else if (modifierWord == "prossima") {
32
- modifier = "prossima";
29
+ else if (modifierWord == "prossimo" || modifierWord == "prossima") {
30
+ modifier = "next";
33
31
  }
34
- else if (modifierWord == "questa") {
35
- modifier = "questa";
32
+ else if (modifierWord == "questo" || modifierWord == "questa" || modifierWord == "quest'") {
33
+ modifier = "this";
34
+ }
35
+ const weekday_word = match[WEEKDAY_GROUP].toLowerCase();
36
+ let weekday;
37
+ if (WEEKDAY_DICTIONARY[weekday_word] !== undefined) {
38
+ weekday = WEEKDAY_DICTIONARY[weekday_word];
39
+ }
40
+ else if (weekday_word == "weekend" || weekday_word.match(/fine\s*settimana/)) {
41
+ weekday = modifier == "last" ? Weekday.SUNDAY : Weekday.SATURDAY;
42
+ }
43
+ else {
44
+ return null;
36
45
  }
37
46
  return createParsingComponentsAtWeekday(context.reference, weekday, modifier);
38
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ITWeekdayParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITWeekdayParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AAEjF,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,0BAA0B;IACtB,cAAc;IACd,4CAA4C;IAC5C,IAAI,eAAe,CAAC,kBAAkB,CAAC,GAAG;IAC1C,0BAA0B;IAC1B,yDAAyD;IACzD,WAAW,EACf,GAAG,CACN,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,sCAAsC;IAC/E,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC;QACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YACvD,QAAQ,GAAG,QAAQ,CAAC;QACxB,CAAC;aAAM,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;YACpC,QAAQ,GAAG,UAAU,CAAC;QAC1B,CAAC;aAAM,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YAClC,QAAQ,GAAG,QAAQ,CAAC;QACxB,CAAC;QACD,OAAO,gCAAgC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;CACJ"}
1
+ {"version":3,"file":"ITWeekdayParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITWeekdayParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,0BAA0B;IACtB,iEAAiE;IACjE,IAAI,eAAe,CAAC,kBAAkB,CAAC,6BAA6B;IACpE,0BAA0B;IAC1B,8DAA8D;IAC9D,WAAW,EACf,GAAG,CACN,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,sCAAsC;IAC/E,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC;QACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YACvD,QAAQ,GAAG,MAAM,CAAC;QACtB,CAAC;aAAM,IAAI,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;YAClE,QAAQ,GAAG,MAAM,CAAC;QACtB,CAAC;aAAM,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YAC1F,QAAQ,GAAG,MAAM,CAAC;QACtB,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,IAAI,OAAO,CAAC;QACZ,IAAI,kBAAkB,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;YACjD,OAAO,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAE7E,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACrE,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,gCAAgC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;CACJ"}
@@ -1,6 +1,8 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
3
- export default class ENCasualYearMonthDayParser extends AbstractParserWithWordBoundaryChecking {
3
+ export default class ITYearMonthDayParser extends AbstractParserWithWordBoundaryChecking {
4
+ private strictMonthDateOrder;
5
+ constructor(strictMonthDateOrder: boolean);
4
6
  innerPattern(): RegExp;
5
7
  innerExtract(context: ParsingContext, match: RegExpMatchArray): {
6
8
  day: number;
@@ -1,27 +1,40 @@
1
1
  import { MONTH_DICTIONARY } from "../constants.js";
2
2
  import { matchAnyPattern } from "../../../utils/pattern.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- const PATTERN = new RegExp(`([0-9]{4})[\\.\\/\\s]` +
5
- `(?:(${matchAnyPattern(MONTH_DICTIONARY)})|([0-9]{1,2}))[\\.\\/\\s]` +
4
+ const PATTERN = new RegExp(`([0-9]{4})[-\\.\\/\\s]` +
5
+ `(?:(${matchAnyPattern(MONTH_DICTIONARY)})|([0-9]{1,2}))[-\\.\\/\\s]` +
6
6
  `([0-9]{1,2})` +
7
7
  "(?=\\W|$)", "i");
8
8
  const YEAR_NUMBER_GROUP = 1;
9
9
  const MONTH_NAME_GROUP = 2;
10
10
  const MONTH_NUMBER_GROUP = 3;
11
11
  const DATE_NUMBER_GROUP = 4;
12
- export default class ENCasualYearMonthDayParser extends AbstractParserWithWordBoundaryChecking {
12
+ export default class ITYearMonthDayParser extends AbstractParserWithWordBoundaryChecking {
13
+ strictMonthDateOrder;
14
+ constructor(strictMonthDateOrder) {
15
+ super();
16
+ this.strictMonthDateOrder = strictMonthDateOrder;
17
+ }
13
18
  innerPattern() {
14
19
  return PATTERN;
15
20
  }
16
21
  innerExtract(context, match) {
17
- const month = match[MONTH_NUMBER_GROUP]
22
+ const year = parseInt(match[YEAR_NUMBER_GROUP]);
23
+ let day = parseInt(match[DATE_NUMBER_GROUP]);
24
+ let month = match[MONTH_NUMBER_GROUP]
18
25
  ? parseInt(match[MONTH_NUMBER_GROUP])
19
26
  : MONTH_DICTIONARY[match[MONTH_NAME_GROUP].toLowerCase()];
20
27
  if (month < 1 || month > 12) {
28
+ if (this.strictMonthDateOrder) {
29
+ return null;
30
+ }
31
+ if (day >= 1 && day <= 12) {
32
+ [month, day] = [day, month];
33
+ }
34
+ }
35
+ if (day < 1 || day > 31) {
21
36
  return null;
22
37
  }
23
- const year = parseInt(match[YEAR_NUMBER_GROUP]);
24
- const day = parseInt(match[DATE_NUMBER_GROUP]);
25
38
  return {
26
39
  day: day,
27
40
  month: month,
@@ -29,4 +42,4 @@ export default class ENCasualYearMonthDayParser extends AbstractParserWithWordBo
29
42
  };
30
43
  }
31
44
  }
32
- //# sourceMappingURL=ITCasualYearMonthDayParser.js.map
45
+ //# sourceMappingURL=ITYearMonthDayParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITYearMonthDayParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITYearMonthDayParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAShH,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,wBAAwB;IACpB,OAAO,eAAe,CAAC,gBAAgB,CAAC,6BAA6B;IACrE,cAAc;IACd,WAAW,EACf,GAAG,CACN,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,sCAAsC;IAChE;IAApB,YAAoB,oBAA6B;QAC7C,KAAK,EAAE,CAAC;QADQ,yBAAoB,GAApB,oBAAoB,CAAS;IAEjD,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAChD,IAAI,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC7C,IAAI,KAAK,GAAG,KAAK,CAAC,kBAAkB,CAAC;YACjC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACrC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAE9D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;gBACxB,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO;YACH,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI;SACb,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,5 @@
1
+ import { ParsingContext, Refiner } from "../../../chrono.js";
2
+ import { ParsingResult } from "../../../results.js";
3
+ export default class ITExtractYearSuffixRefiner implements Refiner {
4
+ refine(context: ParsingContext, results: ParsingResult[]): ParsingResult[];
5
+ }
@@ -0,0 +1,31 @@
1
+ import { YEAR_PATTERN, parseYear } from "../constants.js";
2
+ const YEAR_SUFFIX_PATTERN = new RegExp(`^\\s*(${YEAR_PATTERN})`, "i");
3
+ const YEAR_GROUP = 1;
4
+ export default class ITExtractYearSuffixRefiner {
5
+ refine(context, results) {
6
+ results.forEach(function (result) {
7
+ if (!result.start.isDateWithUnknownYear()) {
8
+ return;
9
+ }
10
+ const suffix = context.text.substring(result.index + result.text.length);
11
+ const match = YEAR_SUFFIX_PATTERN.exec(suffix);
12
+ if (!match) {
13
+ return;
14
+ }
15
+ if (match[0].trim().length <= 3) {
16
+ return;
17
+ }
18
+ context.debug(() => {
19
+ console.log(`Extracting year: '${match[0]}' into : ${result}`);
20
+ });
21
+ const year = parseYear(match[YEAR_GROUP]);
22
+ if (result.end != null) {
23
+ result.end.assign("year", year);
24
+ }
25
+ result.start.assign("year", year);
26
+ result.text += match[0];
27
+ });
28
+ return results;
29
+ }
30
+ }
31
+ //# sourceMappingURL=ITExtractYearSuffixRefiner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITExtractYearSuffixRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITExtractYearSuffixRefiner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,SAAS,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;AACtE,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,CAAC,OAAO,OAAO,0BAA0B;IAC3C,MAAM,CAAC,OAAuB,EAAE,OAAwB;QACpD,OAAO,CAAC,OAAO,CAAC,UAAU,MAAM;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC;gBACxC,OAAO;YACX,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,OAAO;YACX,CAAC;YAED,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO;YACX,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACf,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1C,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
@@ -1,4 +1,4 @@
1
1
  import AbstractMergeDateRangeRefiner from "../../../common/refiners/AbstractMergeDateRangeRefiner.js";
2
- export default class ENMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner {
2
+ export default class ITMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner {
3
3
  patternBetween(): RegExp;
4
4
  }
@@ -1,7 +1,7 @@
1
1
  import AbstractMergeDateRangeRefiner from "../../../common/refiners/AbstractMergeDateRangeRefiner.js";
2
- export default class ENMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner {
2
+ export default class ITMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner {
3
3
  patternBetween() {
4
- return /^\s*(to|-)\s*$/i;
4
+ return /^\s*(a|al|-|–|fino\s*a|fino\s*al)\s*$/i;
5
5
  }
6
6
  }
7
7
  //# sourceMappingURL=ITMergeDateRangeRefiner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITMergeDateRangeRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITMergeDateRangeRefiner.ts"],"names":[],"mappings":"AAIA,OAAO,6BAA6B,MAAM,wDAAwD,CAAC;AAQnG,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,6BAA6B;IAC9E,cAAc;QACV,OAAO,iBAAiB,CAAC;IAC7B,CAAC;CACJ"}
1
+ {"version":3,"file":"ITMergeDateRangeRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITMergeDateRangeRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,MAAM,wDAAwD,CAAC;AAQnG,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,6BAA6B;IAC9E,cAAc;QACV,OAAO,wCAAwC,CAAC;IACpD,CAAC;CACJ"}
@@ -1,4 +1,4 @@
1
1
  import AbstractMergeDateTimeRefiner from "../../../common/refiners/AbstractMergeDateTimeRefiner.js";
2
- export default class ENMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner {
2
+ export default class ITMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner {
3
3
  patternBetween(): RegExp;
4
4
  }
@@ -1,7 +1,7 @@
1
1
  import AbstractMergeDateTimeRefiner from "../../../common/refiners/AbstractMergeDateTimeRefiner.js";
2
- export default class ENMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner {
2
+ export default class ITMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner {
3
3
  patternBetween() {
4
- return new RegExp("^\\s*(T|alle|dopo|prima|il|di|del|delle|,|-)?\\s*$");
4
+ return new RegExp("^\\s*(T|alle?|dopo\\s*le|prima\\s*delle?|,|-|\\.|∙|:)?\\s*$");
5
5
  }
6
6
  }
7
7
  //# sourceMappingURL=ITMergeDateTimeRefiner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITMergeDateTimeRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITMergeDateTimeRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,MAAM,uDAAuD,CAAC;AAQjG,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,4BAA4B;IAC5E,cAAc;QACV,OAAO,IAAI,MAAM,CAAC,oDAAoD,CAAC,CAAC;IAC5E,CAAC;CACJ"}
1
+ {"version":3,"file":"ITMergeDateTimeRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITMergeDateTimeRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,MAAM,uDAAuD,CAAC;AAQjG,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,4BAA4B;IAC5E,cAAc;QACV,OAAO,IAAI,MAAM,CAAC,6DAA6D,CAAC,CAAC;IACrF,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ import { MergingRefiner } from "../../../common/abstractRefiners.js";
2
+ import { ParsingResult } from "../../../results.js";
3
+ export default class ITMergeRelativeAfterDateRefiner extends MergingRefiner {
4
+ shouldMergeResults(textBetween: string, currentResult: ParsingResult, nextResult: ParsingResult): boolean;
5
+ mergeResults(textBetween: string, currentResult: ParsingResult, nextResult: ParsingResult, context: any): ParsingResult;
6
+ }
@@ -0,0 +1,27 @@
1
+ import { MergingRefiner } from "../../../common/abstractRefiners.js";
2
+ import { ParsingComponents, ParsingResult, ReferenceWithTimezone } from "../../../results.js";
3
+ import { parseDuration } from "../constants.js";
4
+ import { reverseDuration } from "../../../calculation/duration.js";
5
+ function IsPositiveFollowingReference(result) {
6
+ return result.text.match(/^[+-]/i) != null;
7
+ }
8
+ function IsNegativeFollowingReference(result) {
9
+ return result.text.match(/^-/i) != null;
10
+ }
11
+ export default class ITMergeRelativeAfterDateRefiner extends MergingRefiner {
12
+ shouldMergeResults(textBetween, currentResult, nextResult) {
13
+ if (!textBetween.match(/^\s*$/i)) {
14
+ return false;
15
+ }
16
+ return IsPositiveFollowingReference(nextResult) || IsNegativeFollowingReference(nextResult);
17
+ }
18
+ mergeResults(textBetween, currentResult, nextResult, context) {
19
+ let timeUnits = parseDuration(nextResult.text);
20
+ if (IsNegativeFollowingReference(nextResult)) {
21
+ timeUnits = reverseDuration(timeUnits);
22
+ }
23
+ const components = ParsingComponents.createRelativeFromReference(ReferenceWithTimezone.fromDate(currentResult.start.date()), timeUnits);
24
+ return new ParsingResult(currentResult.reference, currentResult.index, `${currentResult.text}${textBetween}${nextResult.text}`, components);
25
+ }
26
+ }
27
+ //# sourceMappingURL=ITMergeRelativeAfterDateRefiner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITMergeRelativeAfterDateRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITMergeRelativeAfterDateRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,SAAS,4BAA4B,CAAC,MAAqB;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAqB;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC5C,CAAC;AAOD,MAAM,CAAC,OAAO,OAAO,+BAAgC,SAAQ,cAAc;IACvE,kBAAkB,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QAC3F,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,4BAA4B,CAAC,UAAU,CAAC,IAAI,4BAA4B,CAAC,UAAU,CAAC,CAAC;IAChG,CAAC;IAED,YAAY,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB,EAAE,OAAO;QAC9F,IAAI,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,4BAA4B,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,2BAA2B,CAC5D,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAC1D,SAAS,CACZ,CAAC;QAEF,OAAO,IAAI,aAAa,CACpB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,KAAK,EACnB,GAAG,aAAa,CAAC,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,EACvD,UAAU,CACb,CAAC;IACN,CAAC;CACJ"}