chrono-node 2.6.3 → 2.6.5

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 (322) hide show
  1. package/README.md +25 -3
  2. package/dist/cjs/calculation/mergingCalculation.js +2 -2
  3. package/dist/cjs/chrono.d.ts +3 -1
  4. package/dist/cjs/chrono.js +10 -4
  5. package/dist/cjs/chrono.js.map +1 -1
  6. package/dist/cjs/common/calculation/weekdays.d.ts +1 -1
  7. package/dist/cjs/common/calculation/weekdays.js +7 -7
  8. package/dist/cjs/common/casualReferences.js +7 -7
  9. package/dist/cjs/common/parsers/AbstractParserWithWordBoundary.d.ts +1 -1
  10. package/dist/cjs/common/parsers/AbstractTimeExpressionParser.js +16 -16
  11. package/dist/cjs/common/refiners/ExtractTimezoneAbbrRefiner.d.ts +1 -1
  12. package/dist/cjs/index.d.ts +8 -63
  13. package/dist/cjs/index.js +10 -31
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/locales/de/index.d.ts +5 -2
  16. package/dist/cjs/locales/de/index.js +9 -1
  17. package/dist/cjs/locales/de/index.js.map +1 -1
  18. package/dist/cjs/locales/de/parsers/DECasualTimeParser.js +8 -8
  19. package/dist/cjs/locales/de/parsers/DESpecificTimeExpressionParser.js +9 -9
  20. package/dist/cjs/locales/en/configuration.d.ts +5 -0
  21. package/dist/cjs/locales/en/configuration.js +57 -0
  22. package/dist/cjs/locales/en/configuration.js.map +1 -0
  23. package/dist/cjs/locales/en/constants.d.ts +1 -1
  24. package/dist/cjs/locales/en/index.d.ts +5 -4
  25. package/dist/cjs/locales/en/index.js +14 -51
  26. package/dist/cjs/locales/en/index.js.map +1 -1
  27. package/dist/cjs/locales/en/parsers/ENCasualTimeParser.d.ts +1 -1
  28. package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.d.ts +1 -1
  29. package/dist/cjs/locales/en/parsers/ENMonthNameParser.d.ts +1 -1
  30. package/dist/cjs/locales/en/parsers/ENTimeExpressionParser.js +5 -5
  31. package/dist/cjs/locales/es/index.d.ts +5 -2
  32. package/dist/cjs/locales/es/index.js +9 -1
  33. package/dist/cjs/locales/es/index.js.map +1 -1
  34. package/dist/cjs/locales/es/parsers/ESCasualTimeParser.d.ts +1 -1
  35. package/dist/cjs/locales/es/parsers/ESCasualTimeParser.js +5 -5
  36. package/dist/cjs/locales/fr/index.d.ts +5 -2
  37. package/dist/cjs/locales/fr/index.js +9 -1
  38. package/dist/cjs/locales/fr/index.js.map +1 -1
  39. package/dist/cjs/locales/fr/parsers/FRCasualDateParser.js +2 -2
  40. package/dist/cjs/locales/fr/parsers/FRCasualTimeParser.js +6 -6
  41. package/dist/cjs/locales/fr/parsers/FRSpecificTimeExpressionParser.js +6 -6
  42. package/dist/cjs/locales/ja/index.d.ts +5 -2
  43. package/dist/cjs/locales/ja/index.js +9 -1
  44. package/dist/cjs/locales/ja/index.js.map +1 -1
  45. package/dist/cjs/locales/ja/parsers/JPCasualDateParser.d.ts +1 -1
  46. package/dist/cjs/locales/ja/parsers/JPCasualDateParser.js +27 -5
  47. package/dist/cjs/locales/ja/parsers/JPCasualDateParser.js.map +1 -1
  48. package/dist/cjs/locales/ja/parsers/JPStandardParser.d.ts +1 -1
  49. package/dist/cjs/locales/nl/index.d.ts +5 -2
  50. package/dist/cjs/locales/nl/index.js +9 -1
  51. package/dist/cjs/locales/nl/index.js.map +1 -1
  52. package/dist/cjs/locales/nl/parsers/NLCasualDateTimeParser.js +5 -5
  53. package/dist/cjs/locales/nl/parsers/NLCasualTimeParser.d.ts +1 -1
  54. package/dist/cjs/locales/nl/parsers/NLCasualTimeParser.js +5 -5
  55. package/dist/cjs/locales/nl/parsers/NLMonthNameMiddleEndianParser.d.ts +1 -1
  56. package/dist/cjs/locales/nl/parsers/NLMonthNameParser.d.ts +1 -1
  57. package/dist/cjs/locales/pt/index.d.ts +5 -2
  58. package/dist/cjs/locales/pt/index.js +9 -1
  59. package/dist/cjs/locales/pt/index.js.map +1 -1
  60. package/dist/cjs/locales/pt/parsers/PTCasualTimeParser.d.ts +1 -1
  61. package/dist/cjs/locales/pt/parsers/PTCasualTimeParser.js +5 -5
  62. package/dist/cjs/locales/ru/index.d.ts +5 -2
  63. package/dist/cjs/locales/ru/index.js +9 -1
  64. package/dist/cjs/locales/ru/index.js.map +1 -1
  65. package/dist/cjs/locales/ru/parsers/RUCasualTimeParser.d.ts +1 -1
  66. package/dist/cjs/locales/ru/parsers/RUMonthNameParser.d.ts +1 -1
  67. package/dist/cjs/locales/ru/parsers/RUTimeExpressionParser.js +5 -5
  68. package/dist/cjs/locales/uk/constants.d.ts +33 -0
  69. package/dist/cjs/locales/uk/constants.js +301 -0
  70. package/dist/cjs/locales/uk/constants.js.map +1 -0
  71. package/dist/cjs/locales/uk/index.d.ts +11 -0
  72. package/dist/cjs/locales/uk/index.js +66 -0
  73. package/dist/cjs/locales/uk/index.js.map +1 -0
  74. package/dist/cjs/locales/uk/parsers/UKCasualDateParser.d.ts +8 -0
  75. package/dist/cjs/locales/uk/parsers/UKCasualDateParser.js +56 -0
  76. package/dist/cjs/locales/uk/parsers/UKCasualDateParser.js.map +1 -0
  77. package/dist/cjs/locales/uk/parsers/UKCasualTimeParser.d.ts +7 -0
  78. package/dist/cjs/locales/uk/parsers/UKCasualTimeParser.js +77 -0
  79. package/dist/cjs/locales/uk/parsers/UKCasualTimeParser.js.map +1 -0
  80. package/dist/cjs/locales/uk/parsers/UKMonthNameLittleEndianParser.d.ts +8 -0
  81. package/dist/cjs/locales/uk/parsers/UKMonthNameLittleEndianParser.js +59 -0
  82. package/dist/cjs/locales/uk/parsers/UKMonthNameLittleEndianParser.js.map +1 -0
  83. package/dist/cjs/locales/uk/parsers/UKMonthNameParser.d.ts +7 -0
  84. package/dist/cjs/locales/uk/parsers/UKMonthNameParser.js +45 -0
  85. package/dist/cjs/locales/uk/parsers/UKMonthNameParser.js.map +1 -0
  86. package/dist/cjs/locales/uk/parsers/UKRelativeDateFormatParser.d.ts +8 -0
  87. package/dist/cjs/locales/uk/parsers/UKRelativeDateFormatParser.js +66 -0
  88. package/dist/cjs/locales/uk/parsers/UKRelativeDateFormatParser.js.map +1 -0
  89. package/dist/cjs/locales/uk/parsers/UKTimeExpressionParser.d.ts +12 -0
  90. package/dist/cjs/locales/uk/parsers/UKTimeExpressionParser.js +57 -0
  91. package/dist/cjs/locales/uk/parsers/UKTimeExpressionParser.js.map +1 -0
  92. package/dist/cjs/locales/uk/parsers/UKTimeUnitAgoFormatParser.d.ts +8 -0
  93. package/dist/cjs/locales/uk/parsers/UKTimeUnitAgoFormatParser.js +22 -0
  94. package/dist/cjs/locales/uk/parsers/UKTimeUnitAgoFormatParser.js.map +1 -0
  95. package/dist/cjs/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.d.ts +8 -0
  96. package/dist/cjs/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js +29 -0
  97. package/dist/cjs/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js.map +1 -0
  98. package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.d.ts +8 -0
  99. package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +22 -0
  100. package/dist/cjs/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -0
  101. package/dist/cjs/locales/uk/parsers/UKWeekdayParser.d.ts +8 -0
  102. package/dist/cjs/locales/uk/parsers/UKWeekdayParser.js +50 -0
  103. package/dist/cjs/locales/uk/parsers/UKWeekdayParser.js.map +1 -0
  104. package/dist/cjs/locales/uk/refiners/UKMergeDateRangeRefiner.d.ts +4 -0
  105. package/dist/cjs/locales/uk/refiners/UKMergeDateRangeRefiner.js +13 -0
  106. package/dist/cjs/locales/uk/refiners/UKMergeDateRangeRefiner.js.map +1 -0
  107. package/dist/cjs/locales/uk/refiners/UKMergeDateTimeRefiner.d.ts +4 -0
  108. package/dist/cjs/locales/uk/refiners/UKMergeDateTimeRefiner.js +13 -0
  109. package/dist/cjs/locales/uk/refiners/UKMergeDateTimeRefiner.js.map +1 -0
  110. package/dist/cjs/locales/zh/hans/index.d.ts +5 -2
  111. package/dist/cjs/locales/zh/hans/index.js +10 -2
  112. package/dist/cjs/locales/zh/hans/index.js.map +1 -1
  113. package/dist/cjs/locales/zh/hans/parsers/ZHHansDateParser.d.ts +1 -1
  114. package/dist/cjs/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.d.ts +1 -1
  115. package/dist/cjs/locales/zh/hans/parsers/ZHHansTimeExpressionParser.d.ts +1 -1
  116. package/dist/cjs/locales/zh/hant/index.d.ts +5 -2
  117. package/dist/cjs/locales/zh/hant/index.js +10 -2
  118. package/dist/cjs/locales/zh/hant/index.js.map +1 -1
  119. package/dist/cjs/locales/zh/hant/parsers/ZHHantDateParser.d.ts +1 -1
  120. package/dist/cjs/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.d.ts +1 -1
  121. package/dist/cjs/locales/zh/hant/parsers/ZHHantTimeExpressionParser.d.ts +1 -1
  122. package/dist/cjs/results.d.ts +1 -1
  123. package/dist/cjs/timezone.d.ts +1 -1
  124. package/dist/cjs/timezone.js +11 -11
  125. package/dist/cjs/types.d.ts +58 -0
  126. package/dist/cjs/types.js +34 -0
  127. package/dist/cjs/types.js.map +1 -0
  128. package/dist/cjs/utils/dayjs.js +3 -3
  129. package/dist/esm/calculation/mergingCalculation.js +1 -1
  130. package/dist/esm/chrono.d.ts +3 -1
  131. package/dist/esm/chrono.js +7 -4
  132. package/dist/esm/chrono.js.map +1 -1
  133. package/dist/esm/common/calculation/weekdays.d.ts +1 -1
  134. package/dist/esm/common/calculation/weekdays.js +1 -1
  135. package/dist/esm/common/casualReferences.js +1 -1
  136. package/dist/esm/common/parsers/AbstractParserWithWordBoundary.d.ts +1 -1
  137. package/dist/esm/common/parsers/AbstractTimeExpressionParser.js +1 -1
  138. package/dist/esm/common/refiners/ExtractTimezoneAbbrRefiner.d.ts +1 -1
  139. package/dist/esm/index.d.ts +8 -63
  140. package/dist/esm/index.js +6 -32
  141. package/dist/esm/index.js.map +1 -1
  142. package/dist/esm/locales/de/index.d.ts +5 -2
  143. package/dist/esm/locales/de/index.js +4 -0
  144. package/dist/esm/locales/de/index.js.map +1 -1
  145. package/dist/esm/locales/de/parsers/DECasualTimeParser.js +1 -1
  146. package/dist/esm/locales/de/parsers/DESpecificTimeExpressionParser.js +1 -1
  147. package/dist/esm/locales/en/configuration.d.ts +5 -0
  148. package/dist/esm/locales/en/configuration.js +51 -0
  149. package/dist/esm/locales/en/configuration.js.map +1 -0
  150. package/dist/esm/locales/en/constants.d.ts +1 -1
  151. package/dist/esm/locales/en/index.d.ts +5 -4
  152. package/dist/esm/locales/en/index.js +9 -48
  153. package/dist/esm/locales/en/index.js.map +1 -1
  154. package/dist/esm/locales/en/parsers/ENCasualTimeParser.d.ts +1 -1
  155. package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.d.ts +1 -1
  156. package/dist/esm/locales/en/parsers/ENMonthNameParser.d.ts +1 -1
  157. package/dist/esm/locales/en/parsers/ENTimeExpressionParser.js +1 -1
  158. package/dist/esm/locales/es/index.d.ts +5 -2
  159. package/dist/esm/locales/es/index.js +4 -0
  160. package/dist/esm/locales/es/index.js.map +1 -1
  161. package/dist/esm/locales/es/parsers/ESCasualTimeParser.d.ts +1 -1
  162. package/dist/esm/locales/es/parsers/ESCasualTimeParser.js +1 -1
  163. package/dist/esm/locales/fr/index.d.ts +5 -2
  164. package/dist/esm/locales/fr/index.js +4 -0
  165. package/dist/esm/locales/fr/index.js.map +1 -1
  166. package/dist/esm/locales/fr/parsers/FRCasualDateParser.js +1 -1
  167. package/dist/esm/locales/fr/parsers/FRCasualTimeParser.js +1 -1
  168. package/dist/esm/locales/fr/parsers/FRSpecificTimeExpressionParser.js +1 -1
  169. package/dist/esm/locales/ja/index.d.ts +5 -2
  170. package/dist/esm/locales/ja/index.js +4 -0
  171. package/dist/esm/locales/ja/index.js.map +1 -1
  172. package/dist/esm/locales/ja/parsers/JPCasualDateParser.d.ts +1 -1
  173. package/dist/esm/locales/ja/parsers/JPCasualDateParser.js +25 -3
  174. package/dist/esm/locales/ja/parsers/JPCasualDateParser.js.map +1 -1
  175. package/dist/esm/locales/ja/parsers/JPStandardParser.d.ts +1 -1
  176. package/dist/esm/locales/nl/index.d.ts +5 -2
  177. package/dist/esm/locales/nl/index.js +4 -0
  178. package/dist/esm/locales/nl/index.js.map +1 -1
  179. package/dist/esm/locales/nl/parsers/NLCasualDateTimeParser.js +1 -1
  180. package/dist/esm/locales/nl/parsers/NLCasualTimeParser.d.ts +1 -1
  181. package/dist/esm/locales/nl/parsers/NLCasualTimeParser.js +1 -1
  182. package/dist/esm/locales/nl/parsers/NLMonthNameMiddleEndianParser.d.ts +1 -1
  183. package/dist/esm/locales/nl/parsers/NLMonthNameParser.d.ts +1 -1
  184. package/dist/esm/locales/pt/index.d.ts +5 -2
  185. package/dist/esm/locales/pt/index.js +4 -0
  186. package/dist/esm/locales/pt/index.js.map +1 -1
  187. package/dist/esm/locales/pt/parsers/PTCasualTimeParser.d.ts +1 -1
  188. package/dist/esm/locales/pt/parsers/PTCasualTimeParser.js +1 -1
  189. package/dist/esm/locales/ru/index.d.ts +5 -2
  190. package/dist/esm/locales/ru/index.js +4 -0
  191. package/dist/esm/locales/ru/index.js.map +1 -1
  192. package/dist/esm/locales/ru/parsers/RUCasualTimeParser.d.ts +1 -1
  193. package/dist/esm/locales/ru/parsers/RUMonthNameParser.d.ts +1 -1
  194. package/dist/esm/locales/ru/parsers/RUTimeExpressionParser.js +1 -1
  195. package/dist/esm/locales/uk/constants.d.ts +33 -0
  196. package/dist/esm/locales/uk/constants.js +324 -0
  197. package/dist/esm/locales/uk/constants.js.map +1 -0
  198. package/dist/esm/locales/uk/index.d.ts +11 -0
  199. package/dist/esm/locales/uk/index.js +52 -0
  200. package/dist/esm/locales/uk/index.js.map +1 -0
  201. package/dist/esm/locales/uk/parsers/UKCasualDateParser.d.ts +8 -0
  202. package/dist/esm/locales/uk/parsers/UKCasualDateParser.js +34 -0
  203. package/dist/esm/locales/uk/parsers/UKCasualDateParser.js.map +1 -0
  204. package/dist/esm/locales/uk/parsers/UKCasualTimeParser.d.ts +7 -0
  205. package/dist/esm/locales/uk/parsers/UKCasualTimeParser.js +52 -0
  206. package/dist/esm/locales/uk/parsers/UKCasualTimeParser.js.map +1 -0
  207. package/dist/esm/locales/uk/parsers/UKMonthNameLittleEndianParser.d.ts +8 -0
  208. package/dist/esm/locales/uk/parsers/UKMonthNameLittleEndianParser.js +56 -0
  209. package/dist/esm/locales/uk/parsers/UKMonthNameLittleEndianParser.js.map +1 -0
  210. package/dist/esm/locales/uk/parsers/UKMonthNameParser.d.ts +7 -0
  211. package/dist/esm/locales/uk/parsers/UKMonthNameParser.js +42 -0
  212. package/dist/esm/locales/uk/parsers/UKMonthNameParser.js.map +1 -0
  213. package/dist/esm/locales/uk/parsers/UKRelativeDateFormatParser.d.ts +8 -0
  214. package/dist/esm/locales/uk/parsers/UKRelativeDateFormatParser.js +60 -0
  215. package/dist/esm/locales/uk/parsers/UKRelativeDateFormatParser.js.map +1 -0
  216. package/dist/esm/locales/uk/parsers/UKTimeExpressionParser.d.ts +12 -0
  217. package/dist/esm/locales/uk/parsers/UKTimeExpressionParser.js +54 -0
  218. package/dist/esm/locales/uk/parsers/UKTimeExpressionParser.js.map +1 -0
  219. package/dist/esm/locales/uk/parsers/UKTimeUnitAgoFormatParser.d.ts +8 -0
  220. package/dist/esm/locales/uk/parsers/UKTimeUnitAgoFormatParser.js +19 -0
  221. package/dist/esm/locales/uk/parsers/UKTimeUnitAgoFormatParser.js.map +1 -0
  222. package/dist/esm/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.d.ts +8 -0
  223. package/dist/esm/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js +26 -0
  224. package/dist/esm/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.js.map +1 -0
  225. package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.d.ts +8 -0
  226. package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js +19 -0
  227. package/dist/esm/locales/uk/parsers/UKTimeUnitWithinFormatParser.js.map +1 -0
  228. package/dist/esm/locales/uk/parsers/UKWeekdayParser.d.ts +8 -0
  229. package/dist/esm/locales/uk/parsers/UKWeekdayParser.js +47 -0
  230. package/dist/esm/locales/uk/parsers/UKWeekdayParser.js.map +1 -0
  231. package/dist/esm/locales/uk/refiners/UKMergeDateRangeRefiner.d.ts +4 -0
  232. package/dist/esm/locales/uk/refiners/UKMergeDateRangeRefiner.js +7 -0
  233. package/dist/esm/locales/uk/refiners/UKMergeDateRangeRefiner.js.map +1 -0
  234. package/dist/esm/locales/uk/refiners/UKMergeDateTimeRefiner.d.ts +4 -0
  235. package/dist/esm/locales/uk/refiners/UKMergeDateTimeRefiner.js +7 -0
  236. package/dist/esm/locales/uk/refiners/UKMergeDateTimeRefiner.js.map +1 -0
  237. package/dist/esm/locales/zh/hans/index.d.ts +5 -2
  238. package/dist/esm/locales/zh/hans/index.js +5 -1
  239. package/dist/esm/locales/zh/hans/index.js.map +1 -1
  240. package/dist/esm/locales/zh/hans/parsers/ZHHansDateParser.d.ts +1 -1
  241. package/dist/esm/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.d.ts +1 -1
  242. package/dist/esm/locales/zh/hans/parsers/ZHHansTimeExpressionParser.d.ts +1 -1
  243. package/dist/esm/locales/zh/hant/index.d.ts +5 -2
  244. package/dist/esm/locales/zh/hant/index.js +5 -1
  245. package/dist/esm/locales/zh/hant/index.js.map +1 -1
  246. package/dist/esm/locales/zh/hant/parsers/ZHHantDateParser.d.ts +1 -1
  247. package/dist/esm/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.d.ts +1 -1
  248. package/dist/esm/locales/zh/hant/parsers/ZHHantTimeExpressionParser.d.ts +1 -1
  249. package/dist/esm/results.d.ts +1 -1
  250. package/dist/esm/timezone.d.ts +1 -1
  251. package/dist/esm/timezone.js +1 -1
  252. package/dist/esm/types.d.ts +58 -0
  253. package/dist/esm/types.js +31 -0
  254. package/dist/esm/types.js.map +1 -0
  255. package/dist/esm/utils/dayjs.js +1 -1
  256. package/package.json +9 -1
  257. package/src/calculation/mergingCalculation.ts +1 -1
  258. package/src/chrono.ts +14 -8
  259. package/src/common/calculation/weekdays.ts +1 -1
  260. package/src/common/casualReferences.ts +1 -1
  261. package/src/common/parsers/AbstractParserWithWordBoundary.ts +1 -1
  262. package/src/common/parsers/AbstractTimeExpressionParser.ts +1 -1
  263. package/src/common/parsers/ISOFormatParser.ts +1 -1
  264. package/src/common/refiners/ExtractTimezoneAbbrRefiner.ts +3 -3
  265. package/src/configurations.ts +1 -1
  266. package/src/index.ts +7 -153
  267. package/src/locales/de/index.ts +6 -2
  268. package/src/locales/de/parsers/DECasualTimeParser.ts +1 -1
  269. package/src/locales/de/parsers/DESpecificTimeExpressionParser.ts +1 -1
  270. package/src/locales/en/configuration.ts +71 -0
  271. package/src/locales/en/constants.ts +1 -1
  272. package/src/locales/en/index.ts +11 -65
  273. package/src/locales/en/parsers/ENTimeExpressionParser.ts +1 -1
  274. package/src/locales/es/index.ts +6 -2
  275. package/src/locales/es/parsers/ESCasualTimeParser.ts +1 -1
  276. package/src/locales/fr/index.ts +6 -2
  277. package/src/locales/fr/parsers/FRCasualDateParser.ts +1 -1
  278. package/src/locales/fr/parsers/FRCasualTimeParser.ts +1 -1
  279. package/src/locales/fr/parsers/FRSpecificTimeExpressionParser.ts +1 -1
  280. package/src/locales/ja/index.ts +6 -2
  281. package/src/locales/ja/parsers/JPCasualDateParser.ts +26 -3
  282. package/src/locales/nl/index.ts +6 -2
  283. package/src/locales/nl/parsers/NLCasualDateTimeParser.ts +1 -1
  284. package/src/locales/nl/parsers/NLCasualTimeParser.ts +1 -1
  285. package/src/locales/pt/index.ts +6 -2
  286. package/src/locales/pt/parsers/PTCasualTimeParser.ts +1 -1
  287. package/src/locales/ru/index.ts +6 -2
  288. package/src/locales/ru/parsers/RUTimeExpressionParser.ts +1 -1
  289. package/src/locales/uk/constants.ts +349 -0
  290. package/src/locales/uk/index.ts +90 -0
  291. package/src/locales/uk/parsers/UKCasualDateParser.ts +50 -0
  292. package/src/locales/uk/parsers/UKCasualTimeParser.ts +59 -0
  293. package/src/locales/uk/parsers/UKMonthNameLittleEndianParser.ts +72 -0
  294. package/src/locales/uk/parsers/UKMonthNameParser.ts +61 -0
  295. package/src/locales/uk/parsers/UKRelativeDateFormatParser.ts +85 -0
  296. package/src/locales/uk/parsers/UKTimeExpressionParser.ts +64 -0
  297. package/src/locales/uk/parsers/UKTimeUnitAgoFormatParser.ts +24 -0
  298. package/src/locales/uk/parsers/UKTimeUnitCasualRelativeFormatParser.ts +34 -0
  299. package/src/locales/uk/parsers/UKTimeUnitWithinFormatParser.ts +27 -0
  300. package/src/locales/uk/parsers/UKWeekdayParser.ts +59 -0
  301. package/src/locales/uk/refiners/UKMergeDateRangeRefiner.ts +13 -0
  302. package/src/locales/uk/refiners/UKMergeDateTimeRefiner.ts +13 -0
  303. package/src/locales/zh/hans/index.ts +6 -2
  304. package/src/locales/zh/hant/index.ts +6 -2
  305. package/src/results.ts +1 -1
  306. package/src/timezone.ts +1 -1
  307. package/src/types.ts +150 -0
  308. package/src/utils/dayjs.ts +1 -1
  309. package/test/debugging.test.ts +17 -0
  310. package/test/en/en_month_name_little_endian.test.ts +12 -0
  311. package/test/en/en_time_units_within.test.ts +7 -0
  312. package/test/en/en_timezone_exp.test.ts +48 -4
  313. package/test/ja/ja_casual.test.ts +50 -13
  314. package/test/uk/uk_casual.test.ts +153 -0
  315. package/test/uk/uk_month.test.ts +70 -0
  316. package/test/uk/uk_month_name_little_endian.test.ts +148 -0
  317. package/test/uk/uk_relative.test.ts +74 -0
  318. package/test/uk/uk_time_exp.test.ts +111 -0
  319. package/test/uk/uk_time_units_ago.test.ts +48 -0
  320. package/test/uk/uk_time_units_casual_relative.test.ts +112 -0
  321. package/test/uk/uk_time_units_within.test.ts +16 -0
  322. package/test/uk/uk_weekday.test.ts +52 -0
@@ -0,0 +1,324 @@
1
+ import { matchAnyPattern, repeatedTimeunitPattern } from "../../utils/pattern.js";
2
+ import { findMostLikelyADYear } from "../../calculation/years.js";
3
+ export const REGEX_PARTS = {
4
+ leftBoundary: "([^\\p{L}\\p{N}_]|^)",
5
+ rightBoundary: "(?=[^\\p{L}\\p{N}_]|$)",
6
+ flags: "iu",
7
+ };
8
+ export const WEEKDAY_DICTIONARY = {
9
+ "неділя": 0,
10
+ "неділі": 0,
11
+ "неділю": 0,
12
+ "нд": 0,
13
+ "нд.": 0,
14
+ "понеділок": 1,
15
+ "понеділка": 1,
16
+ "пн": 1,
17
+ "пн.": 1,
18
+ "вівторок": 2,
19
+ "вівторка": 2,
20
+ "вт": 2,
21
+ "вт.": 2,
22
+ "середа": 3,
23
+ "середи": 3,
24
+ "середу": 3,
25
+ "ср": 3,
26
+ "ср.": 3,
27
+ "четвер": 4,
28
+ "четверга": 4,
29
+ "четвергу": 4,
30
+ "чт": 4,
31
+ "чт.": 4,
32
+ "п'ятниця": 5,
33
+ "п'ятниці": 5,
34
+ "п'ятницю": 5,
35
+ "пт": 5,
36
+ "пт.": 5,
37
+ "субота": 6,
38
+ "суботи": 6,
39
+ "суботу": 6,
40
+ "сб": 6,
41
+ "сб.": 6,
42
+ };
43
+ export const FULL_MONTH_NAME_DICTIONARY = {
44
+ "січень": 1,
45
+ "січня": 1,
46
+ "січні": 1,
47
+ "лютий": 2,
48
+ "лютого": 2,
49
+ "лютому": 2,
50
+ "березень": 3,
51
+ "березня": 3,
52
+ "березні": 3,
53
+ "квітень": 4,
54
+ "квітня": 4,
55
+ "квітні": 4,
56
+ "травень": 5,
57
+ "травня": 5,
58
+ "травні": 5,
59
+ "червень": 6,
60
+ "червня": 6,
61
+ "червні": 6,
62
+ "липень": 7,
63
+ "липня": 7,
64
+ "липні": 7,
65
+ "серпень": 8,
66
+ "серпня": 8,
67
+ "серпні": 8,
68
+ "вересень": 9,
69
+ "вересня": 9,
70
+ "вересні": 9,
71
+ "жовтень": 10,
72
+ "жовтня": 10,
73
+ "жовтні": 10,
74
+ "листопад": 11,
75
+ "листопада": 11,
76
+ "листопаду": 11,
77
+ "грудень": 12,
78
+ "грудня": 12,
79
+ "грудні": 12,
80
+ };
81
+ export const MONTH_DICTIONARY = {
82
+ ...FULL_MONTH_NAME_DICTIONARY,
83
+ "січ": 1,
84
+ "січ.": 1,
85
+ "лют": 2,
86
+ "лют.": 2,
87
+ "бер": 3,
88
+ "бер.": 3,
89
+ "квіт": 4,
90
+ "квіт.": 4,
91
+ "трав": 5,
92
+ "трав.": 5,
93
+ "черв": 6,
94
+ "черв.": 6,
95
+ "лип": 7,
96
+ "лип.": 7,
97
+ "серп": 8,
98
+ "серп.": 8,
99
+ "сер": 8,
100
+ "cер.": 8,
101
+ "вер": 9,
102
+ "вер.": 9,
103
+ "верес": 9,
104
+ "верес.": 9,
105
+ "жовт": 10,
106
+ "жовт.": 10,
107
+ "листоп": 11,
108
+ "листоп.": 11,
109
+ "груд": 12,
110
+ "груд.": 12,
111
+ };
112
+ export const INTEGER_WORD_DICTIONARY = {
113
+ "один": 1,
114
+ "одна": 1,
115
+ "одної": 1,
116
+ "одну": 1,
117
+ "дві": 2,
118
+ "два": 2,
119
+ "двох": 2,
120
+ "три": 3,
121
+ "трьох": 3,
122
+ "чотири": 4,
123
+ "чотирьох": 4,
124
+ "п'ять": 5,
125
+ "п'яти": 5,
126
+ "шість": 6,
127
+ "шести": 6,
128
+ "сім": 7,
129
+ "семи": 7,
130
+ "вісім": 8,
131
+ "восьми": 8,
132
+ "дев'ять": 9,
133
+ "дев'яти": 9,
134
+ "десять": 10,
135
+ "десяти": 10,
136
+ "одинадцять": 11,
137
+ "одинадцяти": 11,
138
+ "дванадцять": 12,
139
+ "дванадцяти": 12,
140
+ };
141
+ export const ORDINAL_WORD_DICTIONARY = {
142
+ "перше": 1,
143
+ "першого": 1,
144
+ "друге": 2,
145
+ "другого": 2,
146
+ "третє": 3,
147
+ "третього": 3,
148
+ "четверте": 4,
149
+ "четвертого": 4,
150
+ "п'яте": 5,
151
+ "п'ятого": 5,
152
+ "шосте": 6,
153
+ "шостого": 6,
154
+ "сьоме": 7,
155
+ "сьомого": 7,
156
+ "восьме": 8,
157
+ "восьмого": 8,
158
+ "дев'яте": 9,
159
+ "дев'ятого": 9,
160
+ "десяте": 10,
161
+ "десятого": 10,
162
+ "одинадцяте": 11,
163
+ "одинадцятого": 11,
164
+ "дванадцяте": 12,
165
+ "дванадцятого": 12,
166
+ "тринадцяте": 13,
167
+ "тринадцятого": 13,
168
+ "чотирнадцяте": 14,
169
+ "чотинрнадцятого": 14,
170
+ "п'ятнадцяте": 15,
171
+ "п'ятнадцятого": 15,
172
+ "шістнадцяте": 16,
173
+ "шістнадцятого": 16,
174
+ "сімнадцяте": 17,
175
+ "сімнадцятого": 17,
176
+ "вісімнадцяте": 18,
177
+ "вісімнадцятого": 18,
178
+ "дев'ятнадцяте": 19,
179
+ "дев'ятнадцятого": 19,
180
+ "двадцяте": 20,
181
+ "двадцятого": 20,
182
+ "двадцять перше": 21,
183
+ "двадцять першого": 21,
184
+ "двадцять друге": 22,
185
+ "двадцять другого": 22,
186
+ "двадцять третє": 23,
187
+ "двадцять третього": 23,
188
+ "двадцять четверте": 24,
189
+ "двадцять четвертого": 24,
190
+ "двадцять п'яте": 25,
191
+ "двадцять п'ятого": 25,
192
+ "двадцять шосте": 26,
193
+ "двадцять шостого": 26,
194
+ "двадцять сьоме": 27,
195
+ "двадцять сьомого": 27,
196
+ "двадцять восьме": 28,
197
+ "двадцять восьмого": 28,
198
+ "двадцять дев'яте": 29,
199
+ "двадцять дев'ятого": 29,
200
+ "тридцяте": 30,
201
+ "тридцятого": 30,
202
+ "тридцять перше": 31,
203
+ "тридцять першого": 31,
204
+ };
205
+ export const TIME_UNIT_DICTIONARY = {
206
+ сек: "second",
207
+ секунда: "second",
208
+ секунд: "second",
209
+ секунди: "second",
210
+ секунду: "second",
211
+ секундочок: "second",
212
+ секундочки: "second",
213
+ секундочку: "second",
214
+ хв: "minute",
215
+ хвилина: "minute",
216
+ хвилин: "minute",
217
+ хвилини: "minute",
218
+ хвилину: "minute",
219
+ хвилинок: "minute",
220
+ хвилинки: "minute",
221
+ хвилинку: "minute",
222
+ хвилиночок: "minute",
223
+ хвилиночки: "minute",
224
+ хвилиночку: "minute",
225
+ год: "hour",
226
+ година: "hour",
227
+ годин: "hour",
228
+ години: "hour",
229
+ годину: "hour",
230
+ годинка: "hour",
231
+ годинок: "hour",
232
+ годинки: "hour",
233
+ годинку: "hour",
234
+ день: "d",
235
+ дня: "d",
236
+ днів: "d",
237
+ дні: "d",
238
+ доба: "d",
239
+ добу: "d",
240
+ тиждень: "week",
241
+ тижню: "week",
242
+ тижня: "week",
243
+ тижні: "week",
244
+ тижнів: "week",
245
+ місяць: "month",
246
+ місяців: "month",
247
+ місяці: "month",
248
+ місяця: "month",
249
+ квартал: "quarter",
250
+ кварталу: "quarter",
251
+ квартала: "quarter",
252
+ кварталів: "quarter",
253
+ кварталі: "quarter",
254
+ рік: "year",
255
+ року: "year",
256
+ році: "year",
257
+ років: "year",
258
+ роки: "year",
259
+ };
260
+ export const NUMBER_PATTERN = `(?:${matchAnyPattern(INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|пів|декілька|пар(?:у)|\\s{0,3})`;
261
+ export function parseNumberPattern(match) {
262
+ const num = match.toLowerCase();
263
+ if (INTEGER_WORD_DICTIONARY[num] !== undefined) {
264
+ return INTEGER_WORD_DICTIONARY[num];
265
+ }
266
+ if (num.match(/декілька/)) {
267
+ return 2;
268
+ }
269
+ else if (num.match(/пів/)) {
270
+ return 0.5;
271
+ }
272
+ else if (num.match(/пар/)) {
273
+ return 2;
274
+ }
275
+ else if (num === "") {
276
+ return 1;
277
+ }
278
+ return parseFloat(num);
279
+ }
280
+ export const ORDINAL_NUMBER_PATTERN = `(?:${matchAnyPattern(ORDINAL_WORD_DICTIONARY)}|[0-9]{1,2}(?:го|ого|е)?)`;
281
+ export function parseOrdinalNumberPattern(match) {
282
+ const num = match.toLowerCase();
283
+ if (ORDINAL_WORD_DICTIONARY[num] !== undefined) {
284
+ return ORDINAL_WORD_DICTIONARY[num];
285
+ }
286
+ return parseInt(num);
287
+ }
288
+ const year = "(?:\\s+(?:року|рік|р|р.))?";
289
+ export const YEAR_PATTERN = `(?:[1-9][0-9]{0,3}${year}\\s*(?:н.е.|до н.е.|н. е.|до н. е.)|[1-2][0-9]{3}${year}|[5-9][0-9]${year})`;
290
+ export function parseYearPattern(match) {
291
+ if (/(рік|року|р|р.)/i.test(match)) {
292
+ match = match.replace(/(рік|року|р|р.)/i, "");
293
+ }
294
+ if (/(до н.е.|до н. е.)/i.test(match)) {
295
+ match = match.replace(/(до н.е.|до н. е.)/i, "");
296
+ return -parseInt(match);
297
+ }
298
+ if (/(н. е.|н.е.)/i.test(match)) {
299
+ match = match.replace(/(н. е.|н.е.)/i, "");
300
+ return parseInt(match);
301
+ }
302
+ const rawYearNumber = parseInt(match);
303
+ return findMostLikelyADYear(rawYearNumber);
304
+ }
305
+ const SINGLE_TIME_UNIT_PATTERN = `(${NUMBER_PATTERN})\\s{0,3}(${matchAnyPattern(TIME_UNIT_DICTIONARY)})`;
306
+ const SINGLE_TIME_UNIT_REGEX = new RegExp(SINGLE_TIME_UNIT_PATTERN, "i");
307
+ export const TIME_UNITS_PATTERN = repeatedTimeunitPattern(`(?:(?:близько|приблизно)\\s{0,3})?`, SINGLE_TIME_UNIT_PATTERN);
308
+ export function parseTimeUnits(timeunitText) {
309
+ const fragments = {};
310
+ let remainingText = timeunitText;
311
+ let match = SINGLE_TIME_UNIT_REGEX.exec(remainingText);
312
+ while (match) {
313
+ collectDateTimeFragment(fragments, match);
314
+ remainingText = remainingText.substring(match[0].length).trim();
315
+ match = SINGLE_TIME_UNIT_REGEX.exec(remainingText);
316
+ }
317
+ return fragments;
318
+ }
319
+ function collectDateTimeFragment(fragments, match) {
320
+ const num = parseNumberPattern(match[1]);
321
+ const unit = TIME_UNIT_DICTIONARY[match[2].toLowerCase()];
322
+ fragments[unit] = num;
323
+ }
324
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/locales/uk/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Chrono, Configuration, Parser, Refiner } from "../../chrono.js";
2
+ import { ParsingResult, ParsingComponents, ReferenceWithTimezone } from "../../results.js";
3
+ import { Component, ParsedResult, ParsingOption, ParsingReference, Meridiem, Weekday } from "../../types.js";
4
+ export { Chrono, Parser, Refiner, ParsingResult, ParsingComponents, ReferenceWithTimezone };
5
+ export { Component, ParsedResult, ParsingOption, ParsingReference, Meridiem, Weekday };
6
+ export declare const casual: Chrono;
7
+ export declare const strict: Chrono;
8
+ export declare function createCasualConfiguration(): Configuration;
9
+ export declare function createConfiguration(strictMode: boolean): Configuration;
10
+ export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[];
11
+ export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date;
@@ -0,0 +1,52 @@
1
+ import UKTimeUnitWithinFormatParser from "./parsers/UKTimeUnitWithinFormatParser.js";
2
+ import UKMonthNameLittleEndianParser from "./parsers/UKMonthNameLittleEndianParser.js";
3
+ import UkMonthNameParser from "./parsers/UKMonthNameParser.js";
4
+ import UKTimeExpressionParser from "./parsers/UKTimeExpressionParser.js";
5
+ import UKTimeUnitAgoFormatParser from "./parsers/UKTimeUnitAgoFormatParser.js";
6
+ import UKMergeDateRangeRefiner from "./refiners/UKMergeDateRangeRefiner.js";
7
+ import UKMergeDateTimeRefiner from "./refiners/UKMergeDateTimeRefiner.js";
8
+ import { includeCommonConfiguration } from "../../configurations.js";
9
+ import UKCasualDateParser from "./parsers/UKCasualDateParser.js";
10
+ import UKCasualTimeParser from "./parsers/UKCasualTimeParser.js";
11
+ import UKWeekdayParser from "./parsers/UKWeekdayParser.js";
12
+ import UKRelativeDateFormatParser from "./parsers/UKRelativeDateFormatParser.js";
13
+ import { Chrono } from "../../chrono.js";
14
+ import { ParsingResult, ParsingComponents, ReferenceWithTimezone } from "../../results.js";
15
+ import { Meridiem, Weekday } from "../../types.js";
16
+ import SlashDateFormatParser from "../../common/parsers/SlashDateFormatParser.js";
17
+ import UKTimeUnitCasualRelativeFormatParser from "./parsers/UKTimeUnitCasualRelativeFormatParser.js";
18
+ import ISOFormatParser from "../../common/parsers/ISOFormatParser.js";
19
+ export { Chrono, ParsingResult, ParsingComponents, ReferenceWithTimezone };
20
+ export { Meridiem, Weekday };
21
+ export const casual = new Chrono(createCasualConfiguration());
22
+ export const strict = new Chrono(createConfiguration(true));
23
+ export function createCasualConfiguration() {
24
+ const option = createConfiguration(false);
25
+ option.parsers.unshift(new UKCasualDateParser());
26
+ option.parsers.unshift(new UKCasualTimeParser());
27
+ option.parsers.unshift(new UkMonthNameParser());
28
+ option.parsers.unshift(new UKRelativeDateFormatParser());
29
+ option.parsers.unshift(new UKTimeUnitCasualRelativeFormatParser());
30
+ return option;
31
+ }
32
+ export function createConfiguration(strictMode) {
33
+ return includeCommonConfiguration({
34
+ parsers: [
35
+ new ISOFormatParser(),
36
+ new SlashDateFormatParser(true),
37
+ new UKTimeUnitWithinFormatParser(),
38
+ new UKMonthNameLittleEndianParser(),
39
+ new UKWeekdayParser(),
40
+ new UKTimeExpressionParser(strictMode),
41
+ new UKTimeUnitAgoFormatParser(),
42
+ ],
43
+ refiners: [new UKMergeDateTimeRefiner(), new UKMergeDateRangeRefiner()],
44
+ }, strictMode);
45
+ }
46
+ export function parse(text, ref, option) {
47
+ return casual.parse(text, ref, option);
48
+ }
49
+ export function parseDate(text, ref, option) {
50
+ return casual.parseDate(text, ref, option);
51
+ }
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/locales/uk/index.ts"],"names":[],"mappings":"AAMA,OAAO,4BAA4B,MAAM,wCAAwC,CAAC;AAClF,OAAO,6BAA6B,MAAM,yCAAyC,CAAC;AACpF,OAAO,iBAAiB,MAAM,6BAA6B,CAAC;AAC5D,OAAO,sBAAsB,MAAM,kCAAkC,CAAC;AACtE,OAAO,yBAAyB,MAAM,qCAAqC,CAAC;AAC5E,OAAO,uBAAuB,MAAM,oCAAoC,CAAC;AACzE,OAAO,sBAAsB,MAAM,mCAAmC,CAAC;AAEvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,0BAA0B,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,MAAM,EAAkC,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAA4D,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC1G,OAAO,qBAAqB,MAAM,4CAA4C,CAAC;AAC/E,OAAO,oCAAoC,MAAM,gDAAgD,CAAC;AAClG,OAAO,eAAe,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAmB,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;AAC5F,OAAO,EAA4D,QAAQ,EAAE,OAAO,EAAE,CAAC;AAKvF,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC;AAK9D,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AAM5D,MAAM,UAAU,yBAAyB;IACrC,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,oCAAoC,EAAE,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC;AAClB,CAAC;AAOD,MAAM,UAAU,mBAAmB,CAAC,UAAmB;IACnD,OAAO,0BAA0B,CAC7B;QACI,OAAO,EAAE;YACL,IAAI,eAAe,EAAE;YACrB,IAAI,qBAAqB,CAAC,IAAI,CAAC;YAC/B,IAAI,4BAA4B,EAAE;YAClC,IAAI,6BAA6B,EAAE;YACnC,IAAI,eAAe,EAAE;YACrB,IAAI,sBAAsB,CAAC,UAAU,CAAC;YACtC,IAAI,yBAAyB,EAAE;SAClC;QACD,QAAQ,EAAE,CAAC,IAAI,sBAAsB,EAAE,EAAE,IAAI,uBAAuB,EAAE,CAAC;KAC1E,EACD,UAAU,CACb,CAAC;AACN,CAAC;AAKD,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,GAAU,EAAE,MAAsB;IAClE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC;AAKD,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,GAAU,EAAE,MAAsB;IACtE,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ParsingContext } from "../../../chrono.js";
2
+ import { ParsingComponents, ParsingResult } from "../../../results.js";
3
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
+ export default class UKCasualDateParser extends AbstractParserWithWordBoundaryChecking {
5
+ patternLeftBoundary(): string;
6
+ innerPattern(context: ParsingContext): RegExp;
7
+ innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | ParsingResult;
8
+ }
@@ -0,0 +1,34 @@
1
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
2
+ import * as references from "../../../common/casualReferences.js";
3
+ import { REGEX_PARTS } from "../constants.js";
4
+ const PATTERN = new RegExp(`(?:з|із|від)?\\s*(сьогодні|вчора|завтра|післязавтра|післяпіслязавтра|позапозавчора|позавчора)${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
5
+ export default class UKCasualDateParser extends AbstractParserWithWordBoundaryChecking {
6
+ patternLeftBoundary() {
7
+ return REGEX_PARTS.leftBoundary;
8
+ }
9
+ innerPattern(context) {
10
+ return PATTERN;
11
+ }
12
+ innerExtract(context, match) {
13
+ const lowerText = match[1].toLowerCase();
14
+ const component = context.createParsingComponents();
15
+ switch (lowerText) {
16
+ case "сьогодні":
17
+ return references.today(context.reference);
18
+ case "вчора":
19
+ return references.yesterday(context.reference);
20
+ case "завтра":
21
+ return references.tomorrow(context.reference);
22
+ case "післязавтра":
23
+ return references.theDayAfter(context.reference, 2);
24
+ case "післяпіслязавтра":
25
+ return references.theDayAfter(context.reference, 3);
26
+ case "позавчора":
27
+ return references.theDayBefore(context.reference, 2);
28
+ case "позапозавчора":
29
+ return references.theDayBefore(context.reference, 3);
30
+ }
31
+ return component;
32
+ }
33
+ }
34
+ //# sourceMappingURL=UKCasualDateParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UKCasualDateParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKCasualDateParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,gGAAgG,WAAW,CAAC,aAAa,EAAE,EAC3H,WAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,sCAAsC;IAClF,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAEpD,QAAQ,SAAS,EAAE;YACf,KAAK,UAAU;gBACX,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE/C,KAAK,OAAO;gBACR,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEnD,KAAK,QAAQ;gBACT,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,KAAK,aAAa;gBACd,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExD,KAAK,kBAAkB;gBACnB,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAExD,KAAK,WAAW;gBACZ,OAAO,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEzD,KAAK,eAAe;gBAChB,OAAO,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;SAC5D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ"}
@@ -0,0 +1,7 @@
1
+ import { ParsingContext } from "../../../chrono.js";
2
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
3
+ export default class UKCasualTimeParser extends AbstractParserWithWordBoundaryChecking {
4
+ patternLeftBoundary(): string;
5
+ innerPattern(): RegExp;
6
+ innerExtract(context: ParsingContext, match: RegExpMatchArray): import("../index.js").ParsingComponents;
7
+ }
@@ -0,0 +1,52 @@
1
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
2
+ import * as references from "../../../common/casualReferences.js";
3
+ import { assignSimilarDate } from "../../../utils/dayjs.js";
4
+ import dayjs from "dayjs";
5
+ import { REGEX_PARTS } from "../constants.js";
6
+ const PATTERN = new RegExp(`(зараз|минулого\\s*вечора|минулої\\s*ночі|наступної\\s*ночі|сьогодні\\s*вночі|цієї\\s*ночі|цього ранку|вранці|ранку|зранку|опівдні|ввечері|вечора|опівночі|вночі)` +
7
+ `${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
8
+ export default class UKCasualTimeParser extends AbstractParserWithWordBoundaryChecking {
9
+ patternLeftBoundary() {
10
+ return REGEX_PARTS.leftBoundary;
11
+ }
12
+ innerPattern() {
13
+ return PATTERN;
14
+ }
15
+ innerExtract(context, match) {
16
+ let targetDate = dayjs(context.reference.instant);
17
+ const lowerText = match[0].toLowerCase();
18
+ const component = context.createParsingComponents();
19
+ if (lowerText === "зараз") {
20
+ return references.now(context.reference);
21
+ }
22
+ if (lowerText === "ввечері" || lowerText === "вечора") {
23
+ return references.evening(context.reference);
24
+ }
25
+ if (lowerText.endsWith("вранці") || lowerText.endsWith("ранку") || lowerText.endsWith("зранку")) {
26
+ return references.morning(context.reference);
27
+ }
28
+ if (lowerText.endsWith("опівдні")) {
29
+ return references.noon(context.reference);
30
+ }
31
+ if (lowerText.match(/минулої\s*ночі/)) {
32
+ return references.lastNight(context.reference);
33
+ }
34
+ if (lowerText.match(/минулого\s*вечора/)) {
35
+ return references.yesterdayEvening(context.reference);
36
+ }
37
+ if (lowerText.match(/наступної\s*ночі/)) {
38
+ const daysToAdd = targetDate.hour() < 22 ? 1 : 2;
39
+ targetDate = targetDate.add(daysToAdd, "day");
40
+ assignSimilarDate(component, targetDate);
41
+ component.imply("hour", 1);
42
+ }
43
+ if (lowerText.match(/цієї\s*ночі/)) {
44
+ return references.midnight(context.reference);
45
+ }
46
+ if (lowerText.endsWith("опівночі") || lowerText.endsWith("вночі")) {
47
+ return references.midnight(context.reference);
48
+ }
49
+ return component;
50
+ }
51
+ }
52
+ //# sourceMappingURL=UKCasualTimeParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UKCasualTimeParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKCasualTimeParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,mKAAmK;IAC/J,GAAG,WAAW,CAAC,aAAa,EAAE,EAClC,WAAW,CAAC,KAAK,CACpB,CAAC;AACF,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,sCAAsC;IAClF,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAEpD,IAAI,SAAS,KAAK,OAAO,EAAE;YACvB,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC5C;QACD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,EAAE;YACnD,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC7F,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAChD;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC7C;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;YACnC,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAClD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YACtC,OAAO,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACzD;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE;YACrC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC9C,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACzC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC9B;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YAChC,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACjD;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/D,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACjD;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ"}
@@ -0,0 +1,8 @@
1
+ import { ParsingContext } from "../../../chrono.js";
2
+ import { ParsingResult } from "../../../results.js";
3
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
+ export default class UKMonthNameLittleEndianParser extends AbstractParserWithWordBoundaryChecking {
5
+ patternLeftBoundary(): string;
6
+ innerPattern(): RegExp;
7
+ innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingResult;
8
+ }
@@ -0,0 +1,56 @@
1
+ import { findYearClosestToRef } from "../../../calculation/years.js";
2
+ import { MONTH_DICTIONARY, REGEX_PARTS } from "../constants.js";
3
+ import { YEAR_PATTERN, parseYearPattern } from "../constants.js";
4
+ import { ORDINAL_NUMBER_PATTERN, parseOrdinalNumberPattern } from "../constants.js";
5
+ import { matchAnyPattern } from "../../../utils/pattern.js";
6
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
7
+ const PATTERN = new RegExp(`(?:з|із)?\\s*(${ORDINAL_NUMBER_PATTERN})` +
8
+ `(?:` +
9
+ `\\s{0,3}(?:по|-|–|до)?\\s{0,3}` +
10
+ `(${ORDINAL_NUMBER_PATTERN})` +
11
+ `)?` +
12
+ `(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})` +
13
+ `(${matchAnyPattern(MONTH_DICTIONARY)})` +
14
+ `(?:` +
15
+ `(?:-|\\/|,?\\s{0,3})` +
16
+ `(${YEAR_PATTERN}(?![^\\s]\\d))` +
17
+ `)?` +
18
+ `${REGEX_PARTS.rightBoundary}`, REGEX_PARTS.flags);
19
+ const DATE_GROUP = 1;
20
+ const DATE_TO_GROUP = 2;
21
+ const MONTH_NAME_GROUP = 3;
22
+ const YEAR_GROUP = 4;
23
+ export default class UKMonthNameLittleEndianParser extends AbstractParserWithWordBoundaryChecking {
24
+ patternLeftBoundary() {
25
+ return REGEX_PARTS.leftBoundary;
26
+ }
27
+ innerPattern() {
28
+ return PATTERN;
29
+ }
30
+ innerExtract(context, match) {
31
+ const result = context.createParsingResult(match.index, match[0]);
32
+ const month = MONTH_DICTIONARY[match[MONTH_NAME_GROUP].toLowerCase()];
33
+ const day = parseOrdinalNumberPattern(match[DATE_GROUP]);
34
+ if (day > 31) {
35
+ match.index = match.index + match[DATE_GROUP].length;
36
+ return null;
37
+ }
38
+ result.start.assign("month", month);
39
+ result.start.assign("day", day);
40
+ if (match[YEAR_GROUP]) {
41
+ const yearNumber = parseYearPattern(match[YEAR_GROUP]);
42
+ result.start.assign("year", yearNumber);
43
+ }
44
+ else {
45
+ const year = findYearClosestToRef(context.reference.instant, day, month);
46
+ result.start.imply("year", year);
47
+ }
48
+ if (match[DATE_TO_GROUP]) {
49
+ const endDate = parseOrdinalNumberPattern(match[DATE_TO_GROUP]);
50
+ result.end = result.start.clone();
51
+ result.end.assign("day", endDate);
52
+ }
53
+ return result;
54
+ }
55
+ }
56
+ //# sourceMappingURL=UKMonthNameLittleEndianParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UKMonthNameLittleEndianParser.js","sourceRoot":"","sources":["../../../../../src/locales/uk/parsers/UKMonthNameLittleEndianParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAGhH,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,iBAAiB,sBAAsB,GAAG;IAC1C,KAAK;IACL,gCAAgC;IAChC,IAAI,sBAAsB,GAAG;IAC7B,IAAI;IACJ,mCAAmC;IACnC,IAAI,eAAe,CAAC,gBAAgB,CAAC,GAAG;IACxC,KAAK;IACL,sBAAsB;IACtB,IAAI,YAAY,gBAAgB;IAChC,IAAI;IACJ,GAAG,WAAW,CAAC,aAAa,EAAE,EAC9B,WAAW,CAAC,KAAK,CACpB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,sCAAsC;IAC7F,mBAAmB;QACf,OAAO,WAAW,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,IAAI,GAAG,GAAG,EAAE,EAAE;YAEV,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YACrD,OAAO,IAAI,CAAC;SACf;QAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEhC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACnB,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;SAC3C;aAAM;YACH,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACzE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACpC;QAED,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE;YACtB,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YAEhE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACrC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
@@ -0,0 +1,7 @@
1
+ import { ParsingContext } from "../../../chrono.js";
2
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
3
+ export default class UkMonthNameParser extends AbstractParserWithWordBoundaryChecking {
4
+ patternLeftBoundary(): string;
5
+ innerPattern(): RegExp;
6
+ innerExtract(context: ParsingContext, match: RegExpMatchArray): import("../index.js").ParsingResult;
7
+ }
@@ -0,0 +1,42 @@
1
+ import { FULL_MONTH_NAME_DICTIONARY, MONTH_DICTIONARY, REGEX_PARTS } from "../constants.js";
2
+ import { findYearClosestToRef } from "../../../calculation/years.js";
3
+ import { matchAnyPattern } from "../../../utils/pattern.js";
4
+ import { YEAR_PATTERN, parseYearPattern } from "../constants.js";
5
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
6
+ const PATTERN = new RegExp(`((?:в|у)\\s*)?` +
7
+ `(${matchAnyPattern(MONTH_DICTIONARY)})` +
8
+ `\\s*` +
9
+ `(?:` +
10
+ `[,-]?\\s*(${YEAR_PATTERN})?` +
11
+ `)?` +
12
+ `(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`, REGEX_PARTS.flags);
13
+ const MONTH_NAME_GROUP = 2;
14
+ const YEAR_GROUP = 3;
15
+ export default class UkMonthNameParser extends AbstractParserWithWordBoundaryChecking {
16
+ patternLeftBoundary() {
17
+ return REGEX_PARTS.leftBoundary;
18
+ }
19
+ innerPattern() {
20
+ return PATTERN;
21
+ }
22
+ innerExtract(context, match) {
23
+ const monthName = match[MONTH_NAME_GROUP].toLowerCase();
24
+ if (match[0].length <= 3 && !FULL_MONTH_NAME_DICTIONARY[monthName]) {
25
+ return null;
26
+ }
27
+ const result = context.createParsingResult(match.index, match.index + match[0].length);
28
+ result.start.imply("day", 1);
29
+ const month = MONTH_DICTIONARY[monthName];
30
+ result.start.assign("month", month);
31
+ if (match[YEAR_GROUP]) {
32
+ const year = parseYearPattern(match[YEAR_GROUP]);
33
+ result.start.assign("year", year);
34
+ }
35
+ else {
36
+ const year = findYearClosestToRef(context.reference.instant, 1, month);
37
+ result.start.imply("year", year);
38
+ }
39
+ return result;
40
+ }
41
+ }
42
+ //# sourceMappingURL=UKMonthNameParser.js.map