@checkdigit/time 3.0.0-PR.17-5aaf → 4.0.0-PR.18-81a3

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 (1961) hide show
  1. package/README.md +13 -2
  2. package/dist-mjs/date-fns/_lib/addLeadingZeros/index.mjs +3 -6
  3. package/dist-mjs/date-fns/_lib/defaultLocale/index.mjs +3 -4
  4. package/dist-mjs/date-fns/_lib/format/formatters/index.mjs +47 -36
  5. package/dist-mjs/date-fns/_lib/format/lightFormatters/index.mjs +5 -6
  6. package/dist-mjs/date-fns/_lib/format/longFormatters/index.mjs +2 -3
  7. package/dist-mjs/date-fns/_lib/getRoundingMethod/index.mjs +12 -0
  8. package/dist-mjs/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.mjs +13 -11
  9. package/dist-mjs/date-fns/_lib/protectedTokens/index.mjs +16 -24
  10. package/dist-mjs/date-fns/_lib/test/index.mjs +28 -0
  11. package/dist-mjs/date-fns/_test/dst/addBusinessDays/basic.mjs +14 -0
  12. package/dist-mjs/date-fns/_test/dst/eachDayOfInterval/basic.mjs +19 -0
  13. package/dist-mjs/date-fns/_test/dst/formatDistanceStrict/cairo.mjs +7 -0
  14. package/dist-mjs/date-fns/_test/dst/formatDistanceStrict/melbourne.mjs +11 -0
  15. package/dist-mjs/date-fns/_test/dst/getOverlappingDaysInIntervals/basic.mjs +17 -0
  16. package/dist-mjs/date-fns/_test/dst/parseISO/basic.mjs +16 -0
  17. package/dist-mjs/date-fns/_test/dst/parseISO/samoa.mjs +10 -0
  18. package/dist-mjs/date-fns/_test/dst/parseISO/sydney.mjs +48 -0
  19. package/dist-mjs/date-fns/_test/dst/tzOffsetTransitions.mjs +92 -0
  20. package/dist-mjs/date-fns/_test/formatISO/india.mjs +9 -0
  21. package/dist-mjs/date-fns/_test/formatRFC3339/australia.mjs +11 -0
  22. package/dist-mjs/date-fns/_test/formatRFC3339/india.mjs +11 -0
  23. package/dist-mjs/date-fns/_test/formatRFC3339/newfoundland.mjs +11 -0
  24. package/dist-mjs/date-fns/_test/formatRFC3339/newzealand.mjs +11 -0
  25. package/dist-mjs/date-fns/_test/formatRFC3339/poland.mjs +11 -0
  26. package/dist-mjs/date-fns/add/index.mjs +10 -10
  27. package/dist-mjs/date-fns/addBusinessDays/index.mjs +22 -22
  28. package/dist-mjs/date-fns/addDays/index.mjs +10 -10
  29. package/dist-mjs/date-fns/addHours/index.mjs +5 -5
  30. package/dist-mjs/date-fns/addISOWeekYears/index.mjs +6 -6
  31. package/dist-mjs/date-fns/addMilliseconds/index.mjs +7 -7
  32. package/dist-mjs/date-fns/addMinutes/index.mjs +5 -5
  33. package/dist-mjs/date-fns/addMonths/index.mjs +13 -13
  34. package/dist-mjs/date-fns/addQuarters/index.mjs +5 -5
  35. package/dist-mjs/date-fns/addSeconds/index.mjs +5 -5
  36. package/dist-mjs/date-fns/addWeeks/index.mjs +5 -5
  37. package/dist-mjs/date-fns/addYears/index.mjs +5 -5
  38. package/dist-mjs/date-fns/areIntervalsOverlapping/index.mjs +8 -12
  39. package/dist-mjs/date-fns/clamp/index.mjs +6 -6
  40. package/dist-mjs/date-fns/closestIndexTo/index.mjs +8 -8
  41. package/dist-mjs/date-fns/closestTo/index.mjs +11 -11
  42. package/dist-mjs/date-fns/compareAsc/index.mjs +7 -7
  43. package/dist-mjs/date-fns/compareDesc/index.mjs +7 -7
  44. package/dist-mjs/date-fns/constants/index.mjs +2 -2
  45. package/dist-mjs/date-fns/constructFrom/index.mjs +2 -2
  46. package/dist-mjs/date-fns/constructNow/index.mjs +9 -0
  47. package/dist-mjs/date-fns/daysToWeeks/index.mjs +4 -3
  48. package/dist-mjs/date-fns/differenceInBusinessDays/index.mjs +17 -17
  49. package/dist-mjs/date-fns/differenceInCalendarDays/index.mjs +9 -9
  50. package/dist-mjs/date-fns/differenceInCalendarISOWeekYears/index.mjs +5 -5
  51. package/dist-mjs/date-fns/differenceInCalendarISOWeeks/index.mjs +9 -9
  52. package/dist-mjs/date-fns/differenceInCalendarMonths/index.mjs +8 -8
  53. package/dist-mjs/date-fns/differenceInCalendarQuarters/index.mjs +9 -9
  54. package/dist-mjs/date-fns/differenceInCalendarWeeks/index.mjs +9 -9
  55. package/dist-mjs/date-fns/differenceInCalendarYears/index.mjs +7 -7
  56. package/dist-mjs/date-fns/differenceInDays/index.mjs +14 -14
  57. package/dist-mjs/date-fns/differenceInHours/index.mjs +4 -4
  58. package/dist-mjs/date-fns/differenceInISOWeekYears/index.mjs +13 -13
  59. package/dist-mjs/date-fns/differenceInMilliseconds/index.mjs +4 -4
  60. package/dist-mjs/date-fns/differenceInMinutes/index.mjs +4 -4
  61. package/dist-mjs/date-fns/differenceInMonths/index.mjs +16 -16
  62. package/dist-mjs/date-fns/differenceInQuarters/index.mjs +4 -4
  63. package/dist-mjs/date-fns/differenceInSeconds/index.mjs +4 -4
  64. package/dist-mjs/date-fns/differenceInWeeks/index.mjs +4 -4
  65. package/dist-mjs/date-fns/differenceInYears/index.mjs +14 -14
  66. package/dist-mjs/date-fns/eachDayOfInterval/index.mjs +15 -13
  67. package/dist-mjs/date-fns/eachHourOfInterval/index.mjs +16 -15
  68. package/dist-mjs/date-fns/eachMinuteOfInterval/index.mjs +16 -15
  69. package/dist-mjs/date-fns/eachMonthOfInterval/index.mjs +18 -13
  70. package/dist-mjs/date-fns/eachQuarterOfInterval/index.mjs +20 -18
  71. package/dist-mjs/date-fns/eachWeekOfInterval/index.mjs +24 -20
  72. package/dist-mjs/date-fns/eachWeekendOfInterval/index.mjs +5 -9
  73. package/dist-mjs/date-fns/eachWeekendOfMonth/index.mjs +9 -11
  74. package/dist-mjs/date-fns/eachWeekendOfYear/index.mjs +9 -9
  75. package/dist-mjs/date-fns/eachYearOfInterval/index.mjs +18 -13
  76. package/dist-mjs/date-fns/endOfDay/index.mjs +7 -7
  77. package/dist-mjs/date-fns/endOfDecade/index.mjs +9 -9
  78. package/dist-mjs/date-fns/endOfHour/index.mjs +7 -7
  79. package/dist-mjs/date-fns/endOfISOWeek/index.mjs +5 -5
  80. package/dist-mjs/date-fns/endOfISOWeekYear/index.mjs +11 -11
  81. package/dist-mjs/date-fns/endOfMinute/index.mjs +7 -7
  82. package/dist-mjs/date-fns/endOfMonth/index.mjs +9 -9
  83. package/dist-mjs/date-fns/endOfQuarter/index.mjs +9 -9
  84. package/dist-mjs/date-fns/endOfSecond/index.mjs +7 -7
  85. package/dist-mjs/date-fns/endOfToday/index.mjs +3 -3
  86. package/dist-mjs/date-fns/endOfTomorrow/index.mjs +2 -2
  87. package/dist-mjs/date-fns/endOfWeek/index.mjs +9 -9
  88. package/dist-mjs/date-fns/endOfYear/index.mjs +9 -9
  89. package/dist-mjs/date-fns/endOfYesterday/index.mjs +2 -2
  90. package/dist-mjs/date-fns/format/index.mjs +40 -39
  91. package/dist-mjs/date-fns/formatDistance/index.mjs +16 -21
  92. package/dist-mjs/date-fns/formatDistanceStrict/index.mjs +15 -20
  93. package/dist-mjs/date-fns/formatDistanceToNow/index.mjs +6 -5
  94. package/dist-mjs/date-fns/formatDistanceToNowStrict/index.mjs +6 -5
  95. package/dist-mjs/date-fns/formatDuration/index.mjs +3 -3
  96. package/dist-mjs/date-fns/formatISO/index.mjs +14 -14
  97. package/dist-mjs/date-fns/formatISO9075/index.mjs +14 -14
  98. package/dist-mjs/date-fns/formatISODuration/index.mjs +2 -2
  99. package/dist-mjs/date-fns/formatRFC3339/index.mjs +17 -17
  100. package/dist-mjs/date-fns/formatRFC7231/index.mjs +15 -15
  101. package/dist-mjs/date-fns/formatRelative/index.mjs +12 -21
  102. package/dist-mjs/date-fns/fp/_lib/convertToFP/index.mjs +4 -9
  103. package/dist-mjs/date-fns/fp/add/index.mjs +5 -5
  104. package/dist-mjs/date-fns/fp/addBusinessDays/index.mjs +5 -5
  105. package/dist-mjs/date-fns/fp/addDays/index.mjs +5 -5
  106. package/dist-mjs/date-fns/fp/addHours/index.mjs +5 -5
  107. package/dist-mjs/date-fns/fp/addISOWeekYears/index.mjs +5 -5
  108. package/dist-mjs/date-fns/fp/addMilliseconds/index.mjs +5 -5
  109. package/dist-mjs/date-fns/fp/addMinutes/index.mjs +5 -5
  110. package/dist-mjs/date-fns/fp/addMonths/index.mjs +5 -5
  111. package/dist-mjs/date-fns/fp/addQuarters/index.mjs +5 -5
  112. package/dist-mjs/date-fns/fp/addSeconds/index.mjs +5 -5
  113. package/dist-mjs/date-fns/fp/addWeeks/index.mjs +5 -5
  114. package/dist-mjs/date-fns/fp/addYears/index.mjs +5 -5
  115. package/dist-mjs/date-fns/fp/areIntervalsOverlapping/index.mjs +5 -5
  116. package/dist-mjs/date-fns/fp/areIntervalsOverlappingWithOptions/index.mjs +5 -5
  117. package/dist-mjs/date-fns/fp/clamp/index.mjs +5 -5
  118. package/dist-mjs/date-fns/fp/closestIndexTo/index.mjs +5 -5
  119. package/dist-mjs/date-fns/fp/closestTo/index.mjs +5 -5
  120. package/dist-mjs/date-fns/fp/compareAsc/index.mjs +5 -5
  121. package/dist-mjs/date-fns/fp/compareDesc/index.mjs +5 -5
  122. package/dist-mjs/date-fns/fp/constructFrom/index.mjs +8 -0
  123. package/dist-mjs/date-fns/fp/daysToWeeks/index.mjs +5 -5
  124. package/dist-mjs/date-fns/fp/differenceInBusinessDays/index.mjs +5 -5
  125. package/dist-mjs/date-fns/fp/differenceInCalendarDays/index.mjs +5 -5
  126. package/dist-mjs/date-fns/fp/differenceInCalendarISOWeekYears/index.mjs +5 -5
  127. package/dist-mjs/date-fns/fp/differenceInCalendarISOWeeks/index.mjs +5 -5
  128. package/dist-mjs/date-fns/fp/differenceInCalendarMonths/index.mjs +5 -5
  129. package/dist-mjs/date-fns/fp/differenceInCalendarQuarters/index.mjs +5 -5
  130. package/dist-mjs/date-fns/fp/differenceInCalendarWeeks/index.mjs +5 -5
  131. package/dist-mjs/date-fns/fp/differenceInCalendarWeeksWithOptions/index.mjs +5 -5
  132. package/dist-mjs/date-fns/fp/differenceInCalendarYears/index.mjs +5 -5
  133. package/dist-mjs/date-fns/fp/differenceInDays/index.mjs +5 -5
  134. package/dist-mjs/date-fns/fp/differenceInHours/index.mjs +5 -5
  135. package/dist-mjs/date-fns/fp/differenceInHoursWithOptions/index.mjs +5 -5
  136. package/dist-mjs/date-fns/fp/differenceInISOWeekYears/index.mjs +5 -5
  137. package/dist-mjs/date-fns/fp/differenceInMilliseconds/index.mjs +5 -5
  138. package/dist-mjs/date-fns/fp/differenceInMinutes/index.mjs +5 -5
  139. package/dist-mjs/date-fns/fp/differenceInMinutesWithOptions/index.mjs +5 -5
  140. package/dist-mjs/date-fns/fp/differenceInMonths/index.mjs +5 -5
  141. package/dist-mjs/date-fns/fp/differenceInQuarters/index.mjs +5 -5
  142. package/dist-mjs/date-fns/fp/differenceInQuartersWithOptions/index.mjs +5 -5
  143. package/dist-mjs/date-fns/fp/differenceInSeconds/index.mjs +5 -5
  144. package/dist-mjs/date-fns/fp/differenceInSecondsWithOptions/index.mjs +5 -5
  145. package/dist-mjs/date-fns/fp/differenceInWeeks/index.mjs +5 -5
  146. package/dist-mjs/date-fns/fp/differenceInWeeksWithOptions/index.mjs +5 -5
  147. package/dist-mjs/date-fns/fp/differenceInYears/index.mjs +5 -5
  148. package/dist-mjs/date-fns/fp/eachDayOfInterval/index.mjs +5 -5
  149. package/dist-mjs/date-fns/fp/eachDayOfIntervalWithOptions/index.mjs +5 -5
  150. package/dist-mjs/date-fns/fp/eachHourOfInterval/index.mjs +5 -5
  151. package/dist-mjs/date-fns/fp/eachHourOfIntervalWithOptions/index.mjs +5 -5
  152. package/dist-mjs/date-fns/fp/eachMinuteOfInterval/index.mjs +5 -5
  153. package/dist-mjs/date-fns/fp/eachMinuteOfIntervalWithOptions/index.mjs +5 -5
  154. package/dist-mjs/date-fns/fp/eachMonthOfInterval/index.mjs +5 -5
  155. package/dist-mjs/date-fns/fp/eachMonthOfIntervalWithOptions/index.mjs +8 -0
  156. package/dist-mjs/date-fns/fp/eachQuarterOfInterval/index.mjs +5 -5
  157. package/dist-mjs/date-fns/fp/eachQuarterOfIntervalWithOptions/index.mjs +8 -0
  158. package/dist-mjs/date-fns/fp/eachWeekOfInterval/index.mjs +5 -5
  159. package/dist-mjs/date-fns/fp/eachWeekOfIntervalWithOptions/index.mjs +5 -5
  160. package/dist-mjs/date-fns/fp/eachWeekendOfInterval/index.mjs +5 -5
  161. package/dist-mjs/date-fns/fp/eachWeekendOfMonth/index.mjs +5 -5
  162. package/dist-mjs/date-fns/fp/eachWeekendOfYear/index.mjs +5 -5
  163. package/dist-mjs/date-fns/fp/eachYearOfInterval/index.mjs +5 -5
  164. package/dist-mjs/date-fns/fp/eachYearOfIntervalWithOptions/index.mjs +8 -0
  165. package/dist-mjs/date-fns/fp/endOfDay/index.mjs +5 -5
  166. package/dist-mjs/date-fns/fp/endOfDecade/index.mjs +5 -5
  167. package/dist-mjs/date-fns/fp/endOfHour/index.mjs +5 -5
  168. package/dist-mjs/date-fns/fp/endOfISOWeek/index.mjs +5 -5
  169. package/dist-mjs/date-fns/fp/endOfISOWeekYear/index.mjs +5 -5
  170. package/dist-mjs/date-fns/fp/endOfMinute/index.mjs +5 -5
  171. package/dist-mjs/date-fns/fp/endOfMonth/index.mjs +5 -5
  172. package/dist-mjs/date-fns/fp/endOfQuarter/index.mjs +5 -5
  173. package/dist-mjs/date-fns/fp/endOfSecond/index.mjs +5 -5
  174. package/dist-mjs/date-fns/fp/endOfWeek/index.mjs +5 -5
  175. package/dist-mjs/date-fns/fp/endOfWeekWithOptions/index.mjs +5 -5
  176. package/dist-mjs/date-fns/fp/endOfYear/index.mjs +5 -5
  177. package/dist-mjs/date-fns/fp/format/index.mjs +5 -5
  178. package/dist-mjs/date-fns/fp/formatDistance/index.mjs +5 -5
  179. package/dist-mjs/date-fns/fp/formatDistanceStrict/index.mjs +5 -5
  180. package/dist-mjs/date-fns/fp/formatDistanceStrictWithOptions/index.mjs +5 -5
  181. package/dist-mjs/date-fns/fp/formatDistanceWithOptions/index.mjs +5 -5
  182. package/dist-mjs/date-fns/fp/formatDuration/index.mjs +5 -5
  183. package/dist-mjs/date-fns/fp/formatDurationWithOptions/index.mjs +5 -5
  184. package/dist-mjs/date-fns/fp/formatISO/index.mjs +5 -5
  185. package/dist-mjs/date-fns/fp/formatISO9075/index.mjs +5 -5
  186. package/dist-mjs/date-fns/fp/formatISO9075WithOptions/index.mjs +5 -5
  187. package/dist-mjs/date-fns/fp/formatISODuration/index.mjs +5 -5
  188. package/dist-mjs/date-fns/fp/formatISOWithOptions/index.mjs +5 -5
  189. package/dist-mjs/date-fns/fp/formatRFC3339/index.mjs +5 -5
  190. package/dist-mjs/date-fns/fp/formatRFC3339WithOptions/index.mjs +5 -5
  191. package/dist-mjs/date-fns/fp/formatRFC7231/index.mjs +5 -5
  192. package/dist-mjs/date-fns/fp/formatRelative/index.mjs +5 -5
  193. package/dist-mjs/date-fns/fp/formatRelativeWithOptions/index.mjs +5 -5
  194. package/dist-mjs/date-fns/fp/formatWithOptions/index.mjs +5 -5
  195. package/dist-mjs/date-fns/fp/fromUnixTime/index.mjs +5 -5
  196. package/dist-mjs/date-fns/fp/getDate/index.mjs +5 -5
  197. package/dist-mjs/date-fns/fp/getDay/index.mjs +5 -5
  198. package/dist-mjs/date-fns/fp/getDayOfYear/index.mjs +5 -5
  199. package/dist-mjs/date-fns/fp/getDaysInMonth/index.mjs +5 -5
  200. package/dist-mjs/date-fns/fp/getDaysInYear/index.mjs +5 -5
  201. package/dist-mjs/date-fns/fp/getDecade/index.mjs +5 -5
  202. package/dist-mjs/date-fns/fp/getHours/index.mjs +5 -5
  203. package/dist-mjs/date-fns/fp/getISODay/index.mjs +5 -5
  204. package/dist-mjs/date-fns/fp/getISOWeek/index.mjs +5 -5
  205. package/dist-mjs/date-fns/fp/getISOWeekYear/index.mjs +5 -5
  206. package/dist-mjs/date-fns/fp/getISOWeeksInYear/index.mjs +5 -5
  207. package/dist-mjs/date-fns/fp/getMilliseconds/index.mjs +5 -5
  208. package/dist-mjs/date-fns/fp/getMinutes/index.mjs +5 -5
  209. package/dist-mjs/date-fns/fp/getMonth/index.mjs +5 -5
  210. package/dist-mjs/date-fns/fp/getOverlappingDaysInIntervals/index.mjs +5 -5
  211. package/dist-mjs/date-fns/fp/getQuarter/index.mjs +5 -5
  212. package/dist-mjs/date-fns/fp/getSeconds/index.mjs +5 -5
  213. package/dist-mjs/date-fns/fp/getTime/index.mjs +5 -5
  214. package/dist-mjs/date-fns/fp/getUnixTime/index.mjs +5 -5
  215. package/dist-mjs/date-fns/fp/getWeek/index.mjs +5 -5
  216. package/dist-mjs/date-fns/fp/getWeekOfMonth/index.mjs +5 -5
  217. package/dist-mjs/date-fns/fp/getWeekOfMonthWithOptions/index.mjs +5 -5
  218. package/dist-mjs/date-fns/fp/getWeekWithOptions/index.mjs +5 -5
  219. package/dist-mjs/date-fns/fp/getWeekYear/index.mjs +5 -5
  220. package/dist-mjs/date-fns/fp/getWeekYearWithOptions/index.mjs +5 -5
  221. package/dist-mjs/date-fns/fp/getWeeksInMonth/index.mjs +5 -5
  222. package/dist-mjs/date-fns/fp/getWeeksInMonthWithOptions/index.mjs +5 -5
  223. package/dist-mjs/date-fns/fp/getYear/index.mjs +5 -5
  224. package/dist-mjs/date-fns/fp/hoursToMilliseconds/index.mjs +5 -5
  225. package/dist-mjs/date-fns/fp/hoursToMinutes/index.mjs +5 -5
  226. package/dist-mjs/date-fns/fp/hoursToSeconds/index.mjs +5 -5
  227. package/dist-mjs/date-fns/fp/index.mjs +263 -512
  228. package/dist-mjs/date-fns/fp/interval/index.mjs +8 -0
  229. package/dist-mjs/date-fns/fp/intervalToDuration/index.mjs +5 -5
  230. package/dist-mjs/date-fns/fp/intervalWithOptions/index.mjs +8 -0
  231. package/dist-mjs/date-fns/fp/intlFormat/index.mjs +5 -5
  232. package/dist-mjs/date-fns/fp/intlFormatDistance/index.mjs +5 -5
  233. package/dist-mjs/date-fns/fp/intlFormatDistanceWithOptions/index.mjs +5 -5
  234. package/dist-mjs/date-fns/fp/isAfter/index.mjs +5 -5
  235. package/dist-mjs/date-fns/fp/isBefore/index.mjs +5 -5
  236. package/dist-mjs/date-fns/fp/isDate/index.mjs +5 -5
  237. package/dist-mjs/date-fns/fp/isEqual/index.mjs +5 -5
  238. package/dist-mjs/date-fns/fp/isExists/index.mjs +5 -5
  239. package/dist-mjs/date-fns/fp/isFirstDayOfMonth/index.mjs +5 -5
  240. package/dist-mjs/date-fns/fp/isFriday/index.mjs +5 -5
  241. package/dist-mjs/date-fns/fp/isLastDayOfMonth/index.mjs +5 -5
  242. package/dist-mjs/date-fns/fp/isLeapYear/index.mjs +5 -5
  243. package/dist-mjs/date-fns/fp/isMatch/index.mjs +5 -5
  244. package/dist-mjs/date-fns/fp/isMatchWithOptions/index.mjs +5 -5
  245. package/dist-mjs/date-fns/fp/isMonday/index.mjs +5 -5
  246. package/dist-mjs/date-fns/fp/isSameDay/index.mjs +5 -5
  247. package/dist-mjs/date-fns/fp/isSameHour/index.mjs +5 -5
  248. package/dist-mjs/date-fns/fp/isSameISOWeek/index.mjs +5 -5
  249. package/dist-mjs/date-fns/fp/isSameISOWeekYear/index.mjs +5 -5
  250. package/dist-mjs/date-fns/fp/isSameMinute/index.mjs +5 -5
  251. package/dist-mjs/date-fns/fp/isSameMonth/index.mjs +5 -5
  252. package/dist-mjs/date-fns/fp/isSameQuarter/index.mjs +5 -5
  253. package/dist-mjs/date-fns/fp/isSameSecond/index.mjs +5 -5
  254. package/dist-mjs/date-fns/fp/isSameWeek/index.mjs +5 -5
  255. package/dist-mjs/date-fns/fp/isSameWeekWithOptions/index.mjs +5 -5
  256. package/dist-mjs/date-fns/fp/isSameYear/index.mjs +5 -5
  257. package/dist-mjs/date-fns/fp/isSaturday/index.mjs +5 -5
  258. package/dist-mjs/date-fns/fp/isSunday/index.mjs +5 -5
  259. package/dist-mjs/date-fns/fp/isThursday/index.mjs +5 -5
  260. package/dist-mjs/date-fns/fp/isTuesday/index.mjs +5 -5
  261. package/dist-mjs/date-fns/fp/isValid/index.mjs +5 -5
  262. package/dist-mjs/date-fns/fp/isWednesday/index.mjs +5 -5
  263. package/dist-mjs/date-fns/fp/isWeekend/index.mjs +5 -5
  264. package/dist-mjs/date-fns/fp/isWithinInterval/index.mjs +5 -5
  265. package/dist-mjs/date-fns/fp/lastDayOfDecade/index.mjs +5 -5
  266. package/dist-mjs/date-fns/fp/lastDayOfISOWeek/index.mjs +5 -5
  267. package/dist-mjs/date-fns/fp/lastDayOfISOWeekYear/index.mjs +5 -5
  268. package/dist-mjs/date-fns/fp/lastDayOfMonth/index.mjs +5 -5
  269. package/dist-mjs/date-fns/fp/lastDayOfQuarter/index.mjs +5 -5
  270. package/dist-mjs/date-fns/fp/lastDayOfWeek/index.mjs +5 -5
  271. package/dist-mjs/date-fns/fp/lastDayOfWeekWithOptions/index.mjs +5 -5
  272. package/dist-mjs/date-fns/fp/lastDayOfYear/index.mjs +5 -5
  273. package/dist-mjs/date-fns/fp/lightFormat/index.mjs +5 -5
  274. package/dist-mjs/date-fns/fp/max/index.mjs +5 -5
  275. package/dist-mjs/date-fns/fp/milliseconds/index.mjs +5 -5
  276. package/dist-mjs/date-fns/fp/millisecondsToHours/index.mjs +5 -5
  277. package/dist-mjs/date-fns/fp/millisecondsToMinutes/index.mjs +5 -5
  278. package/dist-mjs/date-fns/fp/millisecondsToSeconds/index.mjs +5 -5
  279. package/dist-mjs/date-fns/fp/min/index.mjs +5 -5
  280. package/dist-mjs/date-fns/fp/minutesToHours/index.mjs +5 -5
  281. package/dist-mjs/date-fns/fp/minutesToMilliseconds/index.mjs +5 -5
  282. package/dist-mjs/date-fns/fp/minutesToSeconds/index.mjs +5 -5
  283. package/dist-mjs/date-fns/fp/monthsToQuarters/index.mjs +5 -5
  284. package/dist-mjs/date-fns/fp/monthsToYears/index.mjs +5 -5
  285. package/dist-mjs/date-fns/fp/nextDay/index.mjs +5 -5
  286. package/dist-mjs/date-fns/fp/nextFriday/index.mjs +5 -5
  287. package/dist-mjs/date-fns/fp/nextMonday/index.mjs +5 -5
  288. package/dist-mjs/date-fns/fp/nextSaturday/index.mjs +5 -5
  289. package/dist-mjs/date-fns/fp/nextSunday/index.mjs +5 -5
  290. package/dist-mjs/date-fns/fp/nextThursday/index.mjs +5 -5
  291. package/dist-mjs/date-fns/fp/nextTuesday/index.mjs +5 -5
  292. package/dist-mjs/date-fns/fp/nextWednesday/index.mjs +5 -5
  293. package/dist-mjs/date-fns/fp/parse/index.mjs +5 -5
  294. package/dist-mjs/date-fns/fp/parseISO/index.mjs +5 -5
  295. package/dist-mjs/date-fns/fp/parseISOWithOptions/index.mjs +5 -5
  296. package/dist-mjs/date-fns/fp/parseJSON/index.mjs +5 -5
  297. package/dist-mjs/date-fns/fp/parseWithOptions/index.mjs +5 -5
  298. package/dist-mjs/date-fns/fp/previousDay/index.mjs +5 -5
  299. package/dist-mjs/date-fns/fp/previousFriday/index.mjs +5 -5
  300. package/dist-mjs/date-fns/fp/previousMonday/index.mjs +5 -5
  301. package/dist-mjs/date-fns/fp/previousSaturday/index.mjs +5 -5
  302. package/dist-mjs/date-fns/fp/previousSunday/index.mjs +5 -5
  303. package/dist-mjs/date-fns/fp/previousThursday/index.mjs +5 -5
  304. package/dist-mjs/date-fns/fp/previousTuesday/index.mjs +5 -5
  305. package/dist-mjs/date-fns/fp/previousWednesday/index.mjs +5 -5
  306. package/dist-mjs/date-fns/fp/quartersToMonths/index.mjs +5 -5
  307. package/dist-mjs/date-fns/fp/quartersToYears/index.mjs +5 -5
  308. package/dist-mjs/date-fns/fp/roundToNearestHours/index.mjs +8 -0
  309. package/dist-mjs/date-fns/fp/roundToNearestHoursWithOptions/index.mjs +8 -0
  310. package/dist-mjs/date-fns/fp/roundToNearestMinutes/index.mjs +5 -5
  311. package/dist-mjs/date-fns/fp/roundToNearestMinutesWithOptions/index.mjs +5 -5
  312. package/dist-mjs/date-fns/fp/secondsToHours/index.mjs +5 -5
  313. package/dist-mjs/date-fns/fp/secondsToMilliseconds/index.mjs +5 -5
  314. package/dist-mjs/date-fns/fp/secondsToMinutes/index.mjs +5 -5
  315. package/dist-mjs/date-fns/fp/set/index.mjs +5 -5
  316. package/dist-mjs/date-fns/fp/setDate/index.mjs +5 -5
  317. package/dist-mjs/date-fns/fp/setDay/index.mjs +5 -5
  318. package/dist-mjs/date-fns/fp/setDayOfYear/index.mjs +5 -5
  319. package/dist-mjs/date-fns/fp/setDayWithOptions/index.mjs +5 -5
  320. package/dist-mjs/date-fns/fp/setHours/index.mjs +5 -5
  321. package/dist-mjs/date-fns/fp/setISODay/index.mjs +5 -5
  322. package/dist-mjs/date-fns/fp/setISOWeek/index.mjs +5 -5
  323. package/dist-mjs/date-fns/fp/setISOWeekYear/index.mjs +5 -5
  324. package/dist-mjs/date-fns/fp/setMilliseconds/index.mjs +5 -5
  325. package/dist-mjs/date-fns/fp/setMinutes/index.mjs +5 -5
  326. package/dist-mjs/date-fns/fp/setMonth/index.mjs +5 -5
  327. package/dist-mjs/date-fns/fp/setQuarter/index.mjs +5 -5
  328. package/dist-mjs/date-fns/fp/setSeconds/index.mjs +5 -5
  329. package/dist-mjs/date-fns/fp/setWeek/index.mjs +5 -5
  330. package/dist-mjs/date-fns/fp/setWeekWithOptions/index.mjs +5 -5
  331. package/dist-mjs/date-fns/fp/setWeekYear/index.mjs +5 -5
  332. package/dist-mjs/date-fns/fp/setWeekYearWithOptions/index.mjs +5 -5
  333. package/dist-mjs/date-fns/fp/setYear/index.mjs +5 -5
  334. package/dist-mjs/date-fns/fp/startOfDay/index.mjs +5 -5
  335. package/dist-mjs/date-fns/fp/startOfDecade/index.mjs +5 -5
  336. package/dist-mjs/date-fns/fp/startOfHour/index.mjs +5 -5
  337. package/dist-mjs/date-fns/fp/startOfISOWeek/index.mjs +5 -5
  338. package/dist-mjs/date-fns/fp/startOfISOWeekYear/index.mjs +5 -5
  339. package/dist-mjs/date-fns/fp/startOfMinute/index.mjs +5 -5
  340. package/dist-mjs/date-fns/fp/startOfMonth/index.mjs +5 -5
  341. package/dist-mjs/date-fns/fp/startOfQuarter/index.mjs +5 -5
  342. package/dist-mjs/date-fns/fp/startOfSecond/index.mjs +5 -5
  343. package/dist-mjs/date-fns/fp/startOfWeek/index.mjs +5 -5
  344. package/dist-mjs/date-fns/fp/startOfWeekWithOptions/index.mjs +5 -5
  345. package/dist-mjs/date-fns/fp/startOfWeekYear/index.mjs +5 -5
  346. package/dist-mjs/date-fns/fp/startOfWeekYearWithOptions/index.mjs +5 -5
  347. package/dist-mjs/date-fns/fp/startOfYear/index.mjs +5 -5
  348. package/dist-mjs/date-fns/fp/sub/index.mjs +5 -5
  349. package/dist-mjs/date-fns/fp/subBusinessDays/index.mjs +5 -5
  350. package/dist-mjs/date-fns/fp/subDays/index.mjs +5 -5
  351. package/dist-mjs/date-fns/fp/subHours/index.mjs +5 -5
  352. package/dist-mjs/date-fns/fp/subISOWeekYears/index.mjs +5 -5
  353. package/dist-mjs/date-fns/fp/subMilliseconds/index.mjs +5 -5
  354. package/dist-mjs/date-fns/fp/subMinutes/index.mjs +5 -5
  355. package/dist-mjs/date-fns/fp/subMonths/index.mjs +5 -5
  356. package/dist-mjs/date-fns/fp/subQuarters/index.mjs +5 -5
  357. package/dist-mjs/date-fns/fp/subSeconds/index.mjs +5 -5
  358. package/dist-mjs/date-fns/fp/subWeeks/index.mjs +5 -5
  359. package/dist-mjs/date-fns/fp/subYears/index.mjs +5 -5
  360. package/dist-mjs/date-fns/fp/toDate/index.mjs +5 -5
  361. package/dist-mjs/date-fns/fp/transpose/index.mjs +8 -0
  362. package/dist-mjs/date-fns/fp/types.mjs +1 -0
  363. package/dist-mjs/date-fns/fp/weeksToDays/index.mjs +5 -5
  364. package/dist-mjs/date-fns/fp/yearsToDays/index.mjs +8 -0
  365. package/dist-mjs/date-fns/fp/yearsToMonths/index.mjs +5 -5
  366. package/dist-mjs/date-fns/fp/yearsToQuarters/index.mjs +5 -5
  367. package/dist-mjs/date-fns/fromUnixTime/index.mjs +3 -3
  368. package/dist-mjs/date-fns/getDate/index.mjs +6 -6
  369. package/dist-mjs/date-fns/getDay/index.mjs +6 -6
  370. package/dist-mjs/date-fns/getDayOfYear/index.mjs +8 -8
  371. package/dist-mjs/date-fns/getDaysInMonth/index.mjs +9 -9
  372. package/dist-mjs/date-fns/getDaysInYear/index.mjs +8 -8
  373. package/dist-mjs/date-fns/getDecade/index.mjs +6 -6
  374. package/dist-mjs/date-fns/getDefaultOptions/index.mjs +3 -4
  375. package/dist-mjs/date-fns/getHours/index.mjs +6 -6
  376. package/dist-mjs/date-fns/getISODay/index.mjs +6 -6
  377. package/dist-mjs/date-fns/getISOWeek/index.mjs +8 -8
  378. package/dist-mjs/date-fns/getISOWeekYear/index.mjs +12 -12
  379. package/dist-mjs/date-fns/getISOWeeksInYear/index.mjs +7 -7
  380. package/dist-mjs/date-fns/getMilliseconds/index.mjs +6 -6
  381. package/dist-mjs/date-fns/getMinutes/index.mjs +6 -6
  382. package/dist-mjs/date-fns/getMonth/index.mjs +6 -6
  383. package/dist-mjs/date-fns/getOverlappingDaysInIntervals/index.mjs +13 -17
  384. package/dist-mjs/date-fns/getQuarter/index.mjs +6 -6
  385. package/dist-mjs/date-fns/getSeconds/index.mjs +6 -6
  386. package/dist-mjs/date-fns/getTime/index.mjs +6 -6
  387. package/dist-mjs/date-fns/getUnixTime/index.mjs +5 -5
  388. package/dist-mjs/date-fns/getWeek/index.mjs +8 -8
  389. package/dist-mjs/date-fns/getWeekOfMonth/index.mjs +5 -5
  390. package/dist-mjs/date-fns/getWeekYear/index.mjs +12 -12
  391. package/dist-mjs/date-fns/getWeeksInMonth/index.mjs +5 -5
  392. package/dist-mjs/date-fns/getYear/index.mjs +5 -5
  393. package/dist-mjs/date-fns/hoursToMilliseconds/index.mjs +3 -3
  394. package/dist-mjs/date-fns/hoursToMinutes/index.mjs +3 -3
  395. package/dist-mjs/date-fns/hoursToSeconds/index.mjs +3 -3
  396. package/dist-mjs/date-fns/index.mjs +246 -482
  397. package/dist-mjs/date-fns/interval/index.mjs +17 -0
  398. package/dist-mjs/date-fns/intervalToDuration/index.mjs +32 -28
  399. package/dist-mjs/date-fns/intlFormat/index.mjs +4 -3
  400. package/dist-mjs/date-fns/intlFormatDistance/index.mjs +13 -13
  401. package/dist-mjs/date-fns/isAfter/index.mjs +7 -7
  402. package/dist-mjs/date-fns/isBefore/index.mjs +7 -7
  403. package/dist-mjs/date-fns/isDate/index.mjs +2 -2
  404. package/dist-mjs/date-fns/isEqual/index.mjs +7 -7
  405. package/dist-mjs/date-fns/isExists/index.mjs +2 -2
  406. package/dist-mjs/date-fns/isFirstDayOfMonth/index.mjs +5 -5
  407. package/dist-mjs/date-fns/isFriday/index.mjs +5 -5
  408. package/dist-mjs/date-fns/isFuture/index.mjs +5 -5
  409. package/dist-mjs/date-fns/isLastDayOfMonth/index.mjs +8 -8
  410. package/dist-mjs/date-fns/isLeapYear/index.mjs +6 -6
  411. package/dist-mjs/date-fns/isMatch/index.mjs +6 -6
  412. package/dist-mjs/date-fns/isMonday/index.mjs +3 -3
  413. package/dist-mjs/date-fns/isPast/index.mjs +5 -5
  414. package/dist-mjs/date-fns/isSameDay/index.mjs +7 -7
  415. package/dist-mjs/date-fns/isSameHour/index.mjs +7 -7
  416. package/dist-mjs/date-fns/isSameISOWeek/index.mjs +5 -5
  417. package/dist-mjs/date-fns/isSameISOWeekYear/index.mjs +7 -7
  418. package/dist-mjs/date-fns/isSameMinute/index.mjs +7 -7
  419. package/dist-mjs/date-fns/isSameMonth/index.mjs +7 -7
  420. package/dist-mjs/date-fns/isSameQuarter/index.mjs +7 -7
  421. package/dist-mjs/date-fns/isSameSecond/index.mjs +7 -7
  422. package/dist-mjs/date-fns/isSameWeek/index.mjs +7 -7
  423. package/dist-mjs/date-fns/isSameYear/index.mjs +7 -7
  424. package/dist-mjs/date-fns/isSaturday/index.mjs +5 -5
  425. package/dist-mjs/date-fns/isSunday/index.mjs +5 -5
  426. package/dist-mjs/date-fns/isThisHour/index.mjs +6 -5
  427. package/dist-mjs/date-fns/isThisISOWeek/index.mjs +6 -5
  428. package/dist-mjs/date-fns/isThisMinute/index.mjs +6 -5
  429. package/dist-mjs/date-fns/isThisMonth/index.mjs +6 -5
  430. package/dist-mjs/date-fns/isThisQuarter/index.mjs +6 -5
  431. package/dist-mjs/date-fns/isThisSecond/index.mjs +6 -5
  432. package/dist-mjs/date-fns/isThisWeek/index.mjs +6 -5
  433. package/dist-mjs/date-fns/isThisYear/index.mjs +6 -5
  434. package/dist-mjs/date-fns/isThursday/index.mjs +5 -5
  435. package/dist-mjs/date-fns/isToday/index.mjs +6 -5
  436. package/dist-mjs/date-fns/isTomorrow/index.mjs +7 -6
  437. package/dist-mjs/date-fns/isTuesday/index.mjs +5 -5
  438. package/dist-mjs/date-fns/isValid/index.mjs +8 -8
  439. package/dist-mjs/date-fns/isWednesday/index.mjs +5 -5
  440. package/dist-mjs/date-fns/isWeekend/index.mjs +5 -6
  441. package/dist-mjs/date-fns/isWithinInterval/index.mjs +6 -10
  442. package/dist-mjs/date-fns/isYesterday/index.mjs +7 -6
  443. package/dist-mjs/date-fns/lastDayOfDecade/index.mjs +9 -9
  444. package/dist-mjs/date-fns/lastDayOfISOWeek/index.mjs +5 -5
  445. package/dist-mjs/date-fns/lastDayOfISOWeekYear/index.mjs +11 -11
  446. package/dist-mjs/date-fns/lastDayOfMonth/index.mjs +9 -9
  447. package/dist-mjs/date-fns/lastDayOfQuarter/index.mjs +9 -9
  448. package/dist-mjs/date-fns/lastDayOfWeek/index.mjs +9 -9
  449. package/dist-mjs/date-fns/lastDayOfYear/index.mjs +9 -9
  450. package/dist-mjs/date-fns/lightFormat/index.mjs +13 -12
  451. package/dist-mjs/date-fns/locale/_lib/buildFormatLongFn/index.mjs +2 -2
  452. package/dist-mjs/date-fns/locale/_lib/buildLocalizeFn/index.mjs +4 -4
  453. package/dist-mjs/date-fns/locale/_lib/buildMatchFn/index.mjs +11 -5
  454. package/dist-mjs/date-fns/locale/_lib/buildMatchPatternFn/index.mjs +2 -2
  455. package/dist-mjs/date-fns/locale/en-US/_lib/formatDistance/index.mjs +2 -3
  456. package/dist-mjs/date-fns/locale/en-US/_lib/formatLong/index.mjs +3 -4
  457. package/dist-mjs/date-fns/locale/en-US/_lib/formatRelative/index.mjs +2 -3
  458. package/dist-mjs/date-fns/locale/en-US/_lib/localize/index.mjs +3 -4
  459. package/dist-mjs/date-fns/locale/en-US/_lib/match/index.mjs +4 -5
  460. package/dist-mjs/date-fns/locale/en-US/index.mjs +8 -9
  461. package/dist-mjs/date-fns/locale/index.mjs +2 -5
  462. package/dist-mjs/date-fns/max/index.mjs +5 -5
  463. package/dist-mjs/date-fns/milliseconds/index.mjs +4 -4
  464. package/dist-mjs/date-fns/millisecondsToHours/index.mjs +3 -3
  465. package/dist-mjs/date-fns/millisecondsToMinutes/index.mjs +3 -3
  466. package/dist-mjs/date-fns/millisecondsToSeconds/index.mjs +3 -3
  467. package/dist-mjs/date-fns/min/index.mjs +8 -8
  468. package/dist-mjs/date-fns/minutesToHours/index.mjs +3 -3
  469. package/dist-mjs/date-fns/minutesToMilliseconds/index.mjs +3 -3
  470. package/dist-mjs/date-fns/minutesToSeconds/index.mjs +3 -3
  471. package/dist-mjs/date-fns/monthsToQuarters/index.mjs +3 -3
  472. package/dist-mjs/date-fns/monthsToYears/index.mjs +3 -3
  473. package/dist-mjs/date-fns/nextDay/index.mjs +4 -4
  474. package/dist-mjs/date-fns/nextFriday/index.mjs +3 -3
  475. package/dist-mjs/date-fns/nextMonday/index.mjs +3 -3
  476. package/dist-mjs/date-fns/nextSaturday/index.mjs +3 -3
  477. package/dist-mjs/date-fns/nextSunday/index.mjs +3 -3
  478. package/dist-mjs/date-fns/nextThursday/index.mjs +3 -3
  479. package/dist-mjs/date-fns/nextTuesday/index.mjs +3 -3
  480. package/dist-mjs/date-fns/nextWednesday/index.mjs +3 -3
  481. package/dist-mjs/date-fns/parse/_lib/Setter.mjs +3 -3
  482. package/dist-mjs/date-fns/parse/_lib/parsers/DateParser.mjs +1 -1
  483. package/dist-mjs/date-fns/parse/_lib/parsers/DayParser.mjs +2 -2
  484. package/dist-mjs/date-fns/parse/_lib/parsers/FractionOfSecondParser.mjs +1 -1
  485. package/dist-mjs/date-fns/parse/_lib/parsers/ISODayParser.mjs +2 -2
  486. package/dist-mjs/date-fns/parse/_lib/parsers/ISOTimezoneParser.mjs +3 -3
  487. package/dist-mjs/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.mjs +3 -3
  488. package/dist-mjs/date-fns/parse/_lib/parsers/ISOWeekParser.mjs +3 -3
  489. package/dist-mjs/date-fns/parse/_lib/parsers/ISOWeekYearParser.mjs +3 -3
  490. package/dist-mjs/date-fns/parse/_lib/parsers/LocalDayParser.mjs +2 -2
  491. package/dist-mjs/date-fns/parse/_lib/parsers/LocalWeekParser.mjs +3 -3
  492. package/dist-mjs/date-fns/parse/_lib/parsers/LocalWeekYearParser.mjs +3 -3
  493. package/dist-mjs/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.mjs +2 -2
  494. package/dist-mjs/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.mjs +2 -2
  495. package/dist-mjs/date-fns/parse/_lib/parsers/TimestampSecondsParser.mjs +2 -2
  496. package/dist-mjs/date-fns/parse/_lib/parsers/index.mjs +1 -1
  497. package/dist-mjs/date-fns/parse/_lib/utils.mjs +2 -2
  498. package/dist-mjs/date-fns/parse/index.mjs +35 -37
  499. package/dist-mjs/date-fns/parseISO/index.mjs +2 -2
  500. package/dist-mjs/date-fns/parseJSON/index.mjs +4 -4
  501. package/dist-mjs/date-fns/previousDay/index.mjs +4 -4
  502. package/dist-mjs/date-fns/previousFriday/index.mjs +3 -3
  503. package/dist-mjs/date-fns/previousMonday/index.mjs +3 -3
  504. package/dist-mjs/date-fns/previousSaturday/index.mjs +3 -3
  505. package/dist-mjs/date-fns/previousSunday/index.mjs +3 -3
  506. package/dist-mjs/date-fns/previousThursday/index.mjs +3 -3
  507. package/dist-mjs/date-fns/previousTuesday/index.mjs +3 -3
  508. package/dist-mjs/date-fns/previousWednesday/index.mjs +3 -3
  509. package/dist-mjs/date-fns/quartersToMonths/index.mjs +3 -3
  510. package/dist-mjs/date-fns/quartersToYears/index.mjs +3 -3
  511. package/dist-mjs/date-fns/roundToNearestHours/index.mjs +24 -0
  512. package/dist-mjs/date-fns/roundToNearestMinutes/index.mjs +16 -17
  513. package/dist-mjs/date-fns/secondsToHours/index.mjs +3 -3
  514. package/dist-mjs/date-fns/secondsToMilliseconds/index.mjs +2 -2
  515. package/dist-mjs/date-fns/secondsToMinutes/index.mjs +3 -3
  516. package/dist-mjs/date-fns/set/index.mjs +17 -17
  517. package/dist-mjs/date-fns/setDate/index.mjs +7 -7
  518. package/dist-mjs/date-fns/setDay/index.mjs +8 -8
  519. package/dist-mjs/date-fns/setDayOfYear/index.mjs +8 -8
  520. package/dist-mjs/date-fns/setDefaultOptions/index.mjs +8 -11
  521. package/dist-mjs/date-fns/setHours/index.mjs +7 -7
  522. package/dist-mjs/date-fns/setISODay/index.mjs +9 -9
  523. package/dist-mjs/date-fns/setISOWeek/index.mjs +9 -9
  524. package/dist-mjs/date-fns/setISOWeekYear/index.mjs +14 -14
  525. package/dist-mjs/date-fns/setMilliseconds/index.mjs +7 -7
  526. package/dist-mjs/date-fns/setMinutes/index.mjs +7 -7
  527. package/dist-mjs/date-fns/setMonth/index.mjs +12 -12
  528. package/dist-mjs/date-fns/setQuarter/index.mjs +8 -8
  529. package/dist-mjs/date-fns/setSeconds/index.mjs +7 -7
  530. package/dist-mjs/date-fns/setWeek/index.mjs +9 -9
  531. package/dist-mjs/date-fns/setWeekYear/index.mjs +13 -13
  532. package/dist-mjs/date-fns/setYear/index.mjs +10 -10
  533. package/dist-mjs/date-fns/startOfDay/index.mjs +7 -7
  534. package/dist-mjs/date-fns/startOfDecade/index.mjs +9 -9
  535. package/dist-mjs/date-fns/startOfHour/index.mjs +7 -7
  536. package/dist-mjs/date-fns/startOfISOWeek/index.mjs +5 -5
  537. package/dist-mjs/date-fns/startOfISOWeekYear/index.mjs +9 -10
  538. package/dist-mjs/date-fns/startOfMinute/index.mjs +7 -7
  539. package/dist-mjs/date-fns/startOfMonth/index.mjs +8 -8
  540. package/dist-mjs/date-fns/startOfQuarter/index.mjs +9 -9
  541. package/dist-mjs/date-fns/startOfSecond/index.mjs +7 -7
  542. package/dist-mjs/date-fns/startOfToday/index.mjs +3 -3
  543. package/dist-mjs/date-fns/startOfTomorrow/index.mjs +2 -2
  544. package/dist-mjs/date-fns/startOfWeek/index.mjs +9 -9
  545. package/dist-mjs/date-fns/startOfWeekYear/index.mjs +10 -10
  546. package/dist-mjs/date-fns/startOfYear/index.mjs +10 -10
  547. package/dist-mjs/date-fns/startOfYesterday/index.mjs +2 -2
  548. package/dist-mjs/date-fns/sub/index.mjs +5 -5
  549. package/dist-mjs/date-fns/subBusinessDays/index.mjs +5 -5
  550. package/dist-mjs/date-fns/subDays/index.mjs +5 -5
  551. package/dist-mjs/date-fns/subHours/index.mjs +5 -5
  552. package/dist-mjs/date-fns/subISOWeekYears/index.mjs +5 -5
  553. package/dist-mjs/date-fns/subMilliseconds/index.mjs +5 -5
  554. package/dist-mjs/date-fns/subMinutes/index.mjs +5 -5
  555. package/dist-mjs/date-fns/subMonths/index.mjs +5 -5
  556. package/dist-mjs/date-fns/subQuarters/index.mjs +5 -5
  557. package/dist-mjs/date-fns/subSeconds/index.mjs +5 -5
  558. package/dist-mjs/date-fns/subWeeks/index.mjs +5 -5
  559. package/dist-mjs/date-fns/subYears/index.mjs +5 -5
  560. package/dist-mjs/date-fns/toDate/index.mjs +17 -11
  561. package/dist-mjs/date-fns/transpose/index.mjs +3 -3
  562. package/dist-mjs/date-fns/weeksToDays/index.mjs +3 -3
  563. package/dist-mjs/date-fns/yearsToDays/index.mjs +9 -0
  564. package/dist-mjs/date-fns/yearsToMonths/index.mjs +3 -3
  565. package/dist-mjs/date-fns/yearsToQuarters/index.mjs +3 -3
  566. package/dist-mjs/date-fns-tz/date-fns-v2-lib/assign/index.mjs +16 -0
  567. package/dist-mjs/date-fns-tz/date-fns-v2-lib/cloneObject/index.mjs +9 -0
  568. package/dist-mjs/date-fns-tz/format/index.mjs +2 -2
  569. package/dist-mjs/date-fns-tz/formatInTimeZone/index.mjs +1 -1
  570. package/dist-mjs/date-fns-tz/toDate/index.mjs +2 -2
  571. package/dist-mjs/date-fns-tz/zonedTimeToUtc/index.mjs +1 -1
  572. package/dist-types/date-fns/_lib/addLeadingZeros/index.d.ts +1 -1
  573. package/dist-types/date-fns/_lib/defaultLocale/index.d.ts +1 -2
  574. package/dist-types/date-fns/_lib/defaultOptions/index.d.ts +2 -2
  575. package/dist-types/date-fns/_lib/format/formatters/index.d.ts +4 -6
  576. package/dist-types/date-fns/_lib/format/lightFormatters/index.d.ts +1 -2
  577. package/dist-types/date-fns/_lib/format/longFormatters/index.d.ts +2 -2
  578. package/dist-types/date-fns/_lib/{roundingMethods → getRoundingMethod}/index.d.ts +1 -1
  579. package/dist-types/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.d.ts +1 -1
  580. package/dist-types/date-fns/_lib/protectedTokens/index.d.ts +1 -1
  581. package/dist-types/date-fns/_lib/test/index.d.ts +3 -0
  582. package/dist-types/date-fns/_test/dst/addBusinessDays/basic.d.ts +1 -0
  583. package/dist-types/date-fns/_test/dst/eachDayOfInterval/basic.d.ts +1 -0
  584. package/dist-types/date-fns/_test/dst/formatDistanceStrict/cairo.d.ts +1 -0
  585. package/dist-types/date-fns/_test/dst/formatDistanceStrict/melbourne.d.ts +1 -0
  586. package/dist-types/date-fns/_test/dst/getOverlappingDaysInIntervals/basic.d.ts +1 -0
  587. package/dist-types/date-fns/_test/dst/parseISO/basic.d.ts +1 -0
  588. package/dist-types/date-fns/_test/dst/parseISO/samoa.d.ts +1 -0
  589. package/dist-types/date-fns/_test/dst/parseISO/sydney.d.ts +1 -0
  590. package/dist-types/date-fns/_test/dst/tzOffsetTransitions.d.ts +48 -0
  591. package/dist-types/date-fns/_test/formatISO/india.d.ts +1 -0
  592. package/dist-types/date-fns/_test/formatRFC3339/australia.d.ts +1 -0
  593. package/dist-types/date-fns/_test/formatRFC3339/india.d.ts +1 -0
  594. package/dist-types/date-fns/_test/formatRFC3339/newfoundland.d.ts +1 -0
  595. package/dist-types/date-fns/_test/formatRFC3339/newzealand.d.ts +1 -0
  596. package/dist-types/date-fns/_test/formatRFC3339/poland.d.ts +1 -0
  597. package/dist-types/date-fns/add/index.d.ts +7 -5
  598. package/dist-types/date-fns/addBusinessDays/index.d.ts +7 -4
  599. package/dist-types/date-fns/addDays/index.d.ts +7 -4
  600. package/dist-types/date-fns/addHours/index.d.ts +7 -4
  601. package/dist-types/date-fns/addISOWeekYears/index.d.ts +7 -4
  602. package/dist-types/date-fns/addMilliseconds/index.d.ts +7 -4
  603. package/dist-types/date-fns/addMinutes/index.d.ts +7 -4
  604. package/dist-types/date-fns/addMonths/index.d.ts +11 -4
  605. package/dist-types/date-fns/addQuarters/index.d.ts +7 -4
  606. package/dist-types/date-fns/addSeconds/index.d.ts +7 -4
  607. package/dist-types/date-fns/addWeeks/index.d.ts +7 -4
  608. package/dist-types/date-fns/addYears/index.d.ts +7 -4
  609. package/dist-types/date-fns/areIntervalsOverlapping/index.d.ts +10 -8
  610. package/dist-types/date-fns/clamp/index.d.ts +8 -5
  611. package/dist-types/date-fns/closestIndexTo/index.d.ts +7 -4
  612. package/dist-types/date-fns/closestTo/index.d.ts +7 -4
  613. package/dist-types/date-fns/compareAsc/index.d.ts +7 -4
  614. package/dist-types/date-fns/compareDesc/index.d.ts +7 -4
  615. package/dist-types/date-fns/constants/index.d.ts +87 -118
  616. package/dist-types/date-fns/constructFrom/index.d.ts +10 -5
  617. package/dist-types/date-fns/constructNow/index.d.ts +31 -0
  618. package/dist-types/date-fns/daysToWeeks/index.d.ts +6 -4
  619. package/dist-types/date-fns/differenceInBusinessDays/index.d.ts +7 -4
  620. package/dist-types/date-fns/differenceInCalendarDays/index.d.ts +7 -4
  621. package/dist-types/date-fns/differenceInCalendarISOWeekYears/index.d.ts +7 -4
  622. package/dist-types/date-fns/differenceInCalendarISOWeeks/index.d.ts +7 -4
  623. package/dist-types/date-fns/differenceInCalendarMonths/index.d.ts +7 -4
  624. package/dist-types/date-fns/differenceInCalendarQuarters/index.d.ts +7 -4
  625. package/dist-types/date-fns/differenceInCalendarWeeks/index.d.ts +10 -7
  626. package/dist-types/date-fns/differenceInCalendarYears/index.d.ts +7 -4
  627. package/dist-types/date-fns/differenceInDays/index.d.ts +12 -6
  628. package/dist-types/date-fns/differenceInHours/index.d.ts +8 -5
  629. package/dist-types/date-fns/differenceInISOWeekYears/index.d.ts +7 -4
  630. package/dist-types/date-fns/differenceInMilliseconds/index.d.ts +7 -4
  631. package/dist-types/date-fns/differenceInMinutes/index.d.ts +8 -5
  632. package/dist-types/date-fns/differenceInMonths/index.d.ts +7 -4
  633. package/dist-types/date-fns/differenceInQuarters/index.d.ts +8 -5
  634. package/dist-types/date-fns/differenceInSeconds/index.d.ts +8 -5
  635. package/dist-types/date-fns/differenceInWeeks/index.d.ts +9 -6
  636. package/dist-types/date-fns/differenceInYears/index.d.ts +7 -4
  637. package/dist-types/date-fns/eachDayOfInterval/index.d.ts +7 -7
  638. package/dist-types/date-fns/eachHourOfInterval/index.d.ts +7 -7
  639. package/dist-types/date-fns/eachMinuteOfInterval/index.d.ts +7 -7
  640. package/dist-types/date-fns/eachMonthOfInterval/index.d.ts +12 -6
  641. package/dist-types/date-fns/eachQuarterOfInterval/index.d.ts +12 -6
  642. package/dist-types/date-fns/eachWeekOfInterval/index.d.ts +9 -8
  643. package/dist-types/date-fns/eachWeekendOfInterval/index.d.ts +6 -5
  644. package/dist-types/date-fns/eachWeekendOfMonth/index.d.ts +6 -4
  645. package/dist-types/date-fns/eachWeekendOfYear/index.d.ts +6 -4
  646. package/dist-types/date-fns/eachYearOfInterval/index.d.ts +12 -6
  647. package/dist-types/date-fns/endOfDay/index.d.ts +6 -3
  648. package/dist-types/date-fns/endOfDecade/index.d.ts +6 -3
  649. package/dist-types/date-fns/endOfHour/index.d.ts +6 -3
  650. package/dist-types/date-fns/endOfISOWeek/index.d.ts +6 -3
  651. package/dist-types/date-fns/endOfISOWeekYear/index.d.ts +6 -3
  652. package/dist-types/date-fns/endOfMinute/index.d.ts +6 -3
  653. package/dist-types/date-fns/endOfMonth/index.d.ts +6 -3
  654. package/dist-types/date-fns/endOfQuarter/index.d.ts +6 -3
  655. package/dist-types/date-fns/endOfSecond/index.d.ts +6 -3
  656. package/dist-types/date-fns/endOfToday/index.d.ts +3 -4
  657. package/dist-types/date-fns/endOfTomorrow/index.d.ts +3 -4
  658. package/dist-types/date-fns/endOfWeek/index.d.ts +9 -6
  659. package/dist-types/date-fns/endOfYear/index.d.ts +6 -3
  660. package/dist-types/date-fns/endOfYesterday/index.d.ts +3 -4
  661. package/dist-types/date-fns/format/index.d.ts +27 -18
  662. package/dist-types/date-fns/formatDistance/index.d.ts +16 -10
  663. package/dist-types/date-fns/formatDistanceStrict/index.d.ts +21 -12
  664. package/dist-types/date-fns/formatDistanceToNow/index.d.ts +10 -9
  665. package/dist-types/date-fns/formatDistanceToNowStrict/index.d.ts +11 -7
  666. package/dist-types/date-fns/formatDuration/index.d.ts +12 -6
  667. package/dist-types/date-fns/formatISO/index.d.ts +11 -7
  668. package/dist-types/date-fns/formatISO9075/index.d.ts +11 -7
  669. package/dist-types/date-fns/formatISODuration/index.d.ts +3 -3
  670. package/dist-types/date-fns/formatRFC3339/index.d.ts +14 -12
  671. package/dist-types/date-fns/formatRFC7231/index.d.ts +8 -4
  672. package/dist-types/date-fns/formatRelative/index.d.ts +17 -13
  673. package/dist-types/date-fns/fp/_lib/convertToFP/index.d.ts +14 -1
  674. package/dist-types/date-fns/fp/add/index.d.ts +1 -2
  675. package/dist-types/date-fns/fp/addBusinessDays/index.d.ts +1 -2
  676. package/dist-types/date-fns/fp/addDays/index.d.ts +1 -2
  677. package/dist-types/date-fns/fp/addHours/index.d.ts +1 -2
  678. package/dist-types/date-fns/fp/addISOWeekYears/index.d.ts +1 -2
  679. package/dist-types/date-fns/fp/addMilliseconds/index.d.ts +1 -2
  680. package/dist-types/date-fns/fp/addMinutes/index.d.ts +1 -2
  681. package/dist-types/date-fns/fp/addMonths/index.d.ts +1 -2
  682. package/dist-types/date-fns/fp/addQuarters/index.d.ts +1 -2
  683. package/dist-types/date-fns/fp/addSeconds/index.d.ts +1 -2
  684. package/dist-types/date-fns/fp/addWeeks/index.d.ts +1 -2
  685. package/dist-types/date-fns/fp/addYears/index.d.ts +1 -2
  686. package/dist-types/date-fns/fp/areIntervalsOverlapping/index.d.ts +1 -2
  687. package/dist-types/date-fns/fp/areIntervalsOverlappingWithOptions/index.d.ts +1 -2
  688. package/dist-types/date-fns/fp/clamp/index.d.ts +1 -2
  689. package/dist-types/date-fns/fp/closestIndexTo/index.d.ts +1 -2
  690. package/dist-types/date-fns/fp/closestTo/index.d.ts +1 -2
  691. package/dist-types/date-fns/fp/compareAsc/index.d.ts +1 -2
  692. package/dist-types/date-fns/fp/compareDesc/index.d.ts +1 -2
  693. package/dist-types/date-fns/fp/constructFrom/index.d.ts +1 -0
  694. package/dist-types/date-fns/fp/daysToWeeks/index.d.ts +1 -2
  695. package/dist-types/date-fns/fp/differenceInBusinessDays/index.d.ts +1 -2
  696. package/dist-types/date-fns/fp/differenceInCalendarDays/index.d.ts +1 -2
  697. package/dist-types/date-fns/fp/differenceInCalendarISOWeekYears/index.d.ts +1 -2
  698. package/dist-types/date-fns/fp/differenceInCalendarISOWeeks/index.d.ts +1 -2
  699. package/dist-types/date-fns/fp/differenceInCalendarMonths/index.d.ts +1 -2
  700. package/dist-types/date-fns/fp/differenceInCalendarQuarters/index.d.ts +1 -2
  701. package/dist-types/date-fns/fp/differenceInCalendarWeeks/index.d.ts +1 -2
  702. package/dist-types/date-fns/fp/differenceInCalendarWeeksWithOptions/index.d.ts +1 -2
  703. package/dist-types/date-fns/fp/differenceInCalendarYears/index.d.ts +1 -2
  704. package/dist-types/date-fns/fp/differenceInDays/index.d.ts +1 -2
  705. package/dist-types/date-fns/fp/differenceInHours/index.d.ts +1 -2
  706. package/dist-types/date-fns/fp/differenceInHoursWithOptions/index.d.ts +1 -2
  707. package/dist-types/date-fns/fp/differenceInISOWeekYears/index.d.ts +1 -2
  708. package/dist-types/date-fns/fp/differenceInMilliseconds/index.d.ts +1 -2
  709. package/dist-types/date-fns/fp/differenceInMinutes/index.d.ts +1 -2
  710. package/dist-types/date-fns/fp/differenceInMinutesWithOptions/index.d.ts +1 -2
  711. package/dist-types/date-fns/fp/differenceInMonths/index.d.ts +1 -2
  712. package/dist-types/date-fns/fp/differenceInQuarters/index.d.ts +1 -2
  713. package/dist-types/date-fns/fp/differenceInQuartersWithOptions/index.d.ts +1 -2
  714. package/dist-types/date-fns/fp/differenceInSeconds/index.d.ts +1 -2
  715. package/dist-types/date-fns/fp/differenceInSecondsWithOptions/index.d.ts +1 -2
  716. package/dist-types/date-fns/fp/differenceInWeeks/index.d.ts +1 -2
  717. package/dist-types/date-fns/fp/differenceInWeeksWithOptions/index.d.ts +1 -2
  718. package/dist-types/date-fns/fp/differenceInYears/index.d.ts +1 -2
  719. package/dist-types/date-fns/fp/eachDayOfInterval/index.d.ts +1 -2
  720. package/dist-types/date-fns/fp/eachDayOfIntervalWithOptions/index.d.ts +1 -2
  721. package/dist-types/date-fns/fp/eachHourOfInterval/index.d.ts +1 -2
  722. package/dist-types/date-fns/fp/eachHourOfIntervalWithOptions/index.d.ts +1 -2
  723. package/dist-types/date-fns/fp/eachMinuteOfInterval/index.d.ts +1 -2
  724. package/dist-types/date-fns/fp/eachMinuteOfIntervalWithOptions/index.d.ts +1 -2
  725. package/dist-types/date-fns/fp/eachMonthOfInterval/index.d.ts +1 -2
  726. package/dist-types/date-fns/fp/eachMonthOfIntervalWithOptions/index.d.ts +1 -0
  727. package/dist-types/date-fns/fp/eachQuarterOfInterval/index.d.ts +1 -2
  728. package/dist-types/date-fns/fp/eachQuarterOfIntervalWithOptions/index.d.ts +1 -0
  729. package/dist-types/date-fns/fp/eachWeekOfInterval/index.d.ts +1 -2
  730. package/dist-types/date-fns/fp/eachWeekOfIntervalWithOptions/index.d.ts +1 -2
  731. package/dist-types/date-fns/fp/eachWeekendOfInterval/index.d.ts +1 -2
  732. package/dist-types/date-fns/fp/eachWeekendOfMonth/index.d.ts +1 -2
  733. package/dist-types/date-fns/fp/eachWeekendOfYear/index.d.ts +1 -2
  734. package/dist-types/date-fns/fp/eachYearOfInterval/index.d.ts +1 -2
  735. package/dist-types/date-fns/fp/eachYearOfIntervalWithOptions/index.d.ts +1 -0
  736. package/dist-types/date-fns/fp/endOfDay/index.d.ts +1 -2
  737. package/dist-types/date-fns/fp/endOfDecade/index.d.ts +1 -2
  738. package/dist-types/date-fns/fp/endOfHour/index.d.ts +1 -2
  739. package/dist-types/date-fns/fp/endOfISOWeek/index.d.ts +1 -2
  740. package/dist-types/date-fns/fp/endOfISOWeekYear/index.d.ts +1 -2
  741. package/dist-types/date-fns/fp/endOfMinute/index.d.ts +1 -2
  742. package/dist-types/date-fns/fp/endOfMonth/index.d.ts +1 -2
  743. package/dist-types/date-fns/fp/endOfQuarter/index.d.ts +1 -2
  744. package/dist-types/date-fns/fp/endOfSecond/index.d.ts +1 -2
  745. package/dist-types/date-fns/fp/endOfWeek/index.d.ts +1 -2
  746. package/dist-types/date-fns/fp/endOfWeekWithOptions/index.d.ts +1 -2
  747. package/dist-types/date-fns/fp/endOfYear/index.d.ts +1 -2
  748. package/dist-types/date-fns/fp/format/index.d.ts +1 -2
  749. package/dist-types/date-fns/fp/formatDistance/index.d.ts +1 -2
  750. package/dist-types/date-fns/fp/formatDistanceStrict/index.d.ts +1 -2
  751. package/dist-types/date-fns/fp/formatDistanceStrictWithOptions/index.d.ts +1 -2
  752. package/dist-types/date-fns/fp/formatDistanceWithOptions/index.d.ts +1 -2
  753. package/dist-types/date-fns/fp/formatDuration/index.d.ts +1 -2
  754. package/dist-types/date-fns/fp/formatDurationWithOptions/index.d.ts +1 -2
  755. package/dist-types/date-fns/fp/formatISO/index.d.ts +1 -2
  756. package/dist-types/date-fns/fp/formatISO9075/index.d.ts +1 -2
  757. package/dist-types/date-fns/fp/formatISO9075WithOptions/index.d.ts +1 -2
  758. package/dist-types/date-fns/fp/formatISODuration/index.d.ts +1 -2
  759. package/dist-types/date-fns/fp/formatISOWithOptions/index.d.ts +1 -2
  760. package/dist-types/date-fns/fp/formatRFC3339/index.d.ts +1 -2
  761. package/dist-types/date-fns/fp/formatRFC3339WithOptions/index.d.ts +1 -2
  762. package/dist-types/date-fns/fp/formatRFC7231/index.d.ts +1 -2
  763. package/dist-types/date-fns/fp/formatRelative/index.d.ts +1 -2
  764. package/dist-types/date-fns/fp/formatRelativeWithOptions/index.d.ts +1 -2
  765. package/dist-types/date-fns/fp/formatWithOptions/index.d.ts +1 -2
  766. package/dist-types/date-fns/fp/fromUnixTime/index.d.ts +1 -2
  767. package/dist-types/date-fns/fp/getDate/index.d.ts +1 -2
  768. package/dist-types/date-fns/fp/getDay/index.d.ts +1 -2
  769. package/dist-types/date-fns/fp/getDayOfYear/index.d.ts +1 -2
  770. package/dist-types/date-fns/fp/getDaysInMonth/index.d.ts +1 -2
  771. package/dist-types/date-fns/fp/getDaysInYear/index.d.ts +1 -2
  772. package/dist-types/date-fns/fp/getDecade/index.d.ts +1 -2
  773. package/dist-types/date-fns/fp/getHours/index.d.ts +1 -2
  774. package/dist-types/date-fns/fp/getISODay/index.d.ts +1 -2
  775. package/dist-types/date-fns/fp/getISOWeek/index.d.ts +1 -2
  776. package/dist-types/date-fns/fp/getISOWeekYear/index.d.ts +1 -2
  777. package/dist-types/date-fns/fp/getISOWeeksInYear/index.d.ts +1 -2
  778. package/dist-types/date-fns/fp/getMilliseconds/index.d.ts +1 -2
  779. package/dist-types/date-fns/fp/getMinutes/index.d.ts +1 -2
  780. package/dist-types/date-fns/fp/getMonth/index.d.ts +1 -2
  781. package/dist-types/date-fns/fp/getOverlappingDaysInIntervals/index.d.ts +1 -2
  782. package/dist-types/date-fns/fp/getQuarter/index.d.ts +1 -2
  783. package/dist-types/date-fns/fp/getSeconds/index.d.ts +1 -2
  784. package/dist-types/date-fns/fp/getTime/index.d.ts +1 -2
  785. package/dist-types/date-fns/fp/getUnixTime/index.d.ts +1 -2
  786. package/dist-types/date-fns/fp/getWeek/index.d.ts +1 -2
  787. package/dist-types/date-fns/fp/getWeekOfMonth/index.d.ts +1 -2
  788. package/dist-types/date-fns/fp/getWeekOfMonthWithOptions/index.d.ts +1 -2
  789. package/dist-types/date-fns/fp/getWeekWithOptions/index.d.ts +1 -2
  790. package/dist-types/date-fns/fp/getWeekYear/index.d.ts +1 -2
  791. package/dist-types/date-fns/fp/getWeekYearWithOptions/index.d.ts +1 -2
  792. package/dist-types/date-fns/fp/getWeeksInMonth/index.d.ts +1 -2
  793. package/dist-types/date-fns/fp/getWeeksInMonthWithOptions/index.d.ts +1 -2
  794. package/dist-types/date-fns/fp/getYear/index.d.ts +1 -2
  795. package/dist-types/date-fns/fp/hoursToMilliseconds/index.d.ts +1 -2
  796. package/dist-types/date-fns/fp/hoursToMinutes/index.d.ts +1 -2
  797. package/dist-types/date-fns/fp/hoursToSeconds/index.d.ts +1 -2
  798. package/dist-types/date-fns/fp/index.d.ts +263 -255
  799. package/dist-types/date-fns/fp/interval/index.d.ts +1 -0
  800. package/dist-types/date-fns/fp/intervalToDuration/index.d.ts +1 -2
  801. package/dist-types/date-fns/fp/intervalWithOptions/index.d.ts +1 -0
  802. package/dist-types/date-fns/fp/intlFormat/index.d.ts +1 -2
  803. package/dist-types/date-fns/fp/intlFormatDistance/index.d.ts +1 -2
  804. package/dist-types/date-fns/fp/intlFormatDistanceWithOptions/index.d.ts +1 -2
  805. package/dist-types/date-fns/fp/isAfter/index.d.ts +1 -2
  806. package/dist-types/date-fns/fp/isBefore/index.d.ts +1 -2
  807. package/dist-types/date-fns/fp/isDate/index.d.ts +1 -2
  808. package/dist-types/date-fns/fp/isEqual/index.d.ts +1 -2
  809. package/dist-types/date-fns/fp/isExists/index.d.ts +1 -2
  810. package/dist-types/date-fns/fp/isFirstDayOfMonth/index.d.ts +1 -2
  811. package/dist-types/date-fns/fp/isFriday/index.d.ts +1 -2
  812. package/dist-types/date-fns/fp/isLastDayOfMonth/index.d.ts +1 -2
  813. package/dist-types/date-fns/fp/isLeapYear/index.d.ts +1 -2
  814. package/dist-types/date-fns/fp/isMatch/index.d.ts +1 -2
  815. package/dist-types/date-fns/fp/isMatchWithOptions/index.d.ts +1 -2
  816. package/dist-types/date-fns/fp/isMonday/index.d.ts +1 -2
  817. package/dist-types/date-fns/fp/isSameDay/index.d.ts +1 -2
  818. package/dist-types/date-fns/fp/isSameHour/index.d.ts +1 -2
  819. package/dist-types/date-fns/fp/isSameISOWeek/index.d.ts +1 -2
  820. package/dist-types/date-fns/fp/isSameISOWeekYear/index.d.ts +1 -2
  821. package/dist-types/date-fns/fp/isSameMinute/index.d.ts +1 -2
  822. package/dist-types/date-fns/fp/isSameMonth/index.d.ts +1 -2
  823. package/dist-types/date-fns/fp/isSameQuarter/index.d.ts +1 -2
  824. package/dist-types/date-fns/fp/isSameSecond/index.d.ts +1 -2
  825. package/dist-types/date-fns/fp/isSameWeek/index.d.ts +1 -2
  826. package/dist-types/date-fns/fp/isSameWeekWithOptions/index.d.ts +1 -2
  827. package/dist-types/date-fns/fp/isSameYear/index.d.ts +1 -2
  828. package/dist-types/date-fns/fp/isSaturday/index.d.ts +1 -2
  829. package/dist-types/date-fns/fp/isSunday/index.d.ts +1 -2
  830. package/dist-types/date-fns/fp/isThursday/index.d.ts +1 -2
  831. package/dist-types/date-fns/fp/isTuesday/index.d.ts +1 -2
  832. package/dist-types/date-fns/fp/isValid/index.d.ts +1 -2
  833. package/dist-types/date-fns/fp/isWednesday/index.d.ts +1 -2
  834. package/dist-types/date-fns/fp/isWeekend/index.d.ts +1 -2
  835. package/dist-types/date-fns/fp/isWithinInterval/index.d.ts +1 -2
  836. package/dist-types/date-fns/fp/lastDayOfDecade/index.d.ts +1 -2
  837. package/dist-types/date-fns/fp/lastDayOfISOWeek/index.d.ts +1 -2
  838. package/dist-types/date-fns/fp/lastDayOfISOWeekYear/index.d.ts +1 -2
  839. package/dist-types/date-fns/fp/lastDayOfMonth/index.d.ts +1 -2
  840. package/dist-types/date-fns/fp/lastDayOfQuarter/index.d.ts +1 -2
  841. package/dist-types/date-fns/fp/lastDayOfWeek/index.d.ts +1 -2
  842. package/dist-types/date-fns/fp/lastDayOfWeekWithOptions/index.d.ts +1 -2
  843. package/dist-types/date-fns/fp/lastDayOfYear/index.d.ts +1 -2
  844. package/dist-types/date-fns/fp/lightFormat/index.d.ts +1 -2
  845. package/dist-types/date-fns/fp/max/index.d.ts +1 -2
  846. package/dist-types/date-fns/fp/milliseconds/index.d.ts +1 -2
  847. package/dist-types/date-fns/fp/millisecondsToHours/index.d.ts +1 -2
  848. package/dist-types/date-fns/fp/millisecondsToMinutes/index.d.ts +1 -2
  849. package/dist-types/date-fns/fp/millisecondsToSeconds/index.d.ts +1 -2
  850. package/dist-types/date-fns/fp/min/index.d.ts +1 -2
  851. package/dist-types/date-fns/fp/minutesToHours/index.d.ts +1 -2
  852. package/dist-types/date-fns/fp/minutesToMilliseconds/index.d.ts +1 -2
  853. package/dist-types/date-fns/fp/minutesToSeconds/index.d.ts +1 -2
  854. package/dist-types/date-fns/fp/monthsToQuarters/index.d.ts +1 -2
  855. package/dist-types/date-fns/fp/monthsToYears/index.d.ts +1 -2
  856. package/dist-types/date-fns/fp/nextDay/index.d.ts +1 -2
  857. package/dist-types/date-fns/fp/nextFriday/index.d.ts +1 -2
  858. package/dist-types/date-fns/fp/nextMonday/index.d.ts +1 -2
  859. package/dist-types/date-fns/fp/nextSaturday/index.d.ts +1 -2
  860. package/dist-types/date-fns/fp/nextSunday/index.d.ts +1 -2
  861. package/dist-types/date-fns/fp/nextThursday/index.d.ts +1 -2
  862. package/dist-types/date-fns/fp/nextTuesday/index.d.ts +1 -2
  863. package/dist-types/date-fns/fp/nextWednesday/index.d.ts +1 -2
  864. package/dist-types/date-fns/fp/parse/index.d.ts +1 -2
  865. package/dist-types/date-fns/fp/parseISO/index.d.ts +1 -2
  866. package/dist-types/date-fns/fp/parseISOWithOptions/index.d.ts +1 -2
  867. package/dist-types/date-fns/fp/parseJSON/index.d.ts +1 -2
  868. package/dist-types/date-fns/fp/parseWithOptions/index.d.ts +1 -2
  869. package/dist-types/date-fns/fp/previousDay/index.d.ts +1 -2
  870. package/dist-types/date-fns/fp/previousFriday/index.d.ts +1 -2
  871. package/dist-types/date-fns/fp/previousMonday/index.d.ts +1 -2
  872. package/dist-types/date-fns/fp/previousSaturday/index.d.ts +1 -2
  873. package/dist-types/date-fns/fp/previousSunday/index.d.ts +1 -2
  874. package/dist-types/date-fns/fp/previousThursday/index.d.ts +1 -2
  875. package/dist-types/date-fns/fp/previousTuesday/index.d.ts +1 -2
  876. package/dist-types/date-fns/fp/previousWednesday/index.d.ts +1 -2
  877. package/dist-types/date-fns/fp/quartersToMonths/index.d.ts +1 -2
  878. package/dist-types/date-fns/fp/quartersToYears/index.d.ts +1 -2
  879. package/dist-types/date-fns/fp/roundToNearestHours/index.d.ts +1 -0
  880. package/dist-types/date-fns/fp/roundToNearestHoursWithOptions/index.d.ts +1 -0
  881. package/dist-types/date-fns/fp/roundToNearestMinutes/index.d.ts +1 -2
  882. package/dist-types/date-fns/fp/roundToNearestMinutesWithOptions/index.d.ts +1 -2
  883. package/dist-types/date-fns/fp/secondsToHours/index.d.ts +1 -2
  884. package/dist-types/date-fns/fp/secondsToMilliseconds/index.d.ts +1 -2
  885. package/dist-types/date-fns/fp/secondsToMinutes/index.d.ts +1 -2
  886. package/dist-types/date-fns/fp/set/index.d.ts +1 -2
  887. package/dist-types/date-fns/fp/setDate/index.d.ts +1 -2
  888. package/dist-types/date-fns/fp/setDay/index.d.ts +1 -2
  889. package/dist-types/date-fns/fp/setDayOfYear/index.d.ts +1 -2
  890. package/dist-types/date-fns/fp/setDayWithOptions/index.d.ts +1 -2
  891. package/dist-types/date-fns/fp/setHours/index.d.ts +1 -2
  892. package/dist-types/date-fns/fp/setISODay/index.d.ts +1 -2
  893. package/dist-types/date-fns/fp/setISOWeek/index.d.ts +1 -2
  894. package/dist-types/date-fns/fp/setISOWeekYear/index.d.ts +1 -2
  895. package/dist-types/date-fns/fp/setMilliseconds/index.d.ts +1 -2
  896. package/dist-types/date-fns/fp/setMinutes/index.d.ts +1 -2
  897. package/dist-types/date-fns/fp/setMonth/index.d.ts +1 -2
  898. package/dist-types/date-fns/fp/setQuarter/index.d.ts +1 -2
  899. package/dist-types/date-fns/fp/setSeconds/index.d.ts +1 -2
  900. package/dist-types/date-fns/fp/setWeek/index.d.ts +1 -2
  901. package/dist-types/date-fns/fp/setWeekWithOptions/index.d.ts +1 -2
  902. package/dist-types/date-fns/fp/setWeekYear/index.d.ts +1 -2
  903. package/dist-types/date-fns/fp/setWeekYearWithOptions/index.d.ts +1 -2
  904. package/dist-types/date-fns/fp/setYear/index.d.ts +1 -2
  905. package/dist-types/date-fns/fp/startOfDay/index.d.ts +1 -2
  906. package/dist-types/date-fns/fp/startOfDecade/index.d.ts +1 -2
  907. package/dist-types/date-fns/fp/startOfHour/index.d.ts +1 -2
  908. package/dist-types/date-fns/fp/startOfISOWeek/index.d.ts +1 -2
  909. package/dist-types/date-fns/fp/startOfISOWeekYear/index.d.ts +1 -2
  910. package/dist-types/date-fns/fp/startOfMinute/index.d.ts +1 -2
  911. package/dist-types/date-fns/fp/startOfMonth/index.d.ts +1 -2
  912. package/dist-types/date-fns/fp/startOfQuarter/index.d.ts +1 -2
  913. package/dist-types/date-fns/fp/startOfSecond/index.d.ts +1 -2
  914. package/dist-types/date-fns/fp/startOfWeek/index.d.ts +1 -2
  915. package/dist-types/date-fns/fp/startOfWeekWithOptions/index.d.ts +1 -2
  916. package/dist-types/date-fns/fp/startOfWeekYear/index.d.ts +1 -2
  917. package/dist-types/date-fns/fp/startOfWeekYearWithOptions/index.d.ts +1 -2
  918. package/dist-types/date-fns/fp/startOfYear/index.d.ts +1 -2
  919. package/dist-types/date-fns/fp/sub/index.d.ts +1 -2
  920. package/dist-types/date-fns/fp/subBusinessDays/index.d.ts +1 -2
  921. package/dist-types/date-fns/fp/subDays/index.d.ts +1 -2
  922. package/dist-types/date-fns/fp/subHours/index.d.ts +1 -2
  923. package/dist-types/date-fns/fp/subISOWeekYears/index.d.ts +1 -2
  924. package/dist-types/date-fns/fp/subMilliseconds/index.d.ts +1 -2
  925. package/dist-types/date-fns/fp/subMinutes/index.d.ts +1 -2
  926. package/dist-types/date-fns/fp/subMonths/index.d.ts +1 -2
  927. package/dist-types/date-fns/fp/subQuarters/index.d.ts +1 -2
  928. package/dist-types/date-fns/fp/subSeconds/index.d.ts +1 -2
  929. package/dist-types/date-fns/fp/subWeeks/index.d.ts +1 -2
  930. package/dist-types/date-fns/fp/subYears/index.d.ts +1 -2
  931. package/dist-types/date-fns/fp/toDate/index.d.ts +1 -2
  932. package/dist-types/date-fns/fp/transpose/index.d.ts +1 -0
  933. package/dist-types/date-fns/fp/types.d.ts +95 -0
  934. package/dist-types/date-fns/fp/weeksToDays/index.d.ts +1 -2
  935. package/dist-types/date-fns/fp/yearsToDays/index.d.ts +1 -0
  936. package/dist-types/date-fns/fp/yearsToMonths/index.d.ts +1 -2
  937. package/dist-types/date-fns/fp/yearsToQuarters/index.d.ts +1 -2
  938. package/dist-types/date-fns/fromUnixTime/index.d.ts +4 -3
  939. package/dist-types/date-fns/getDate/index.d.ts +6 -3
  940. package/dist-types/date-fns/getDay/index.d.ts +6 -3
  941. package/dist-types/date-fns/getDayOfYear/index.d.ts +6 -3
  942. package/dist-types/date-fns/getDaysInMonth/index.d.ts +6 -3
  943. package/dist-types/date-fns/getDaysInYear/index.d.ts +6 -3
  944. package/dist-types/date-fns/getDecade/index.d.ts +6 -3
  945. package/dist-types/date-fns/getDefaultOptions/index.d.ts +4 -4
  946. package/dist-types/date-fns/getHours/index.d.ts +6 -3
  947. package/dist-types/date-fns/getISODay/index.d.ts +6 -3
  948. package/dist-types/date-fns/getISOWeek/index.d.ts +6 -3
  949. package/dist-types/date-fns/getISOWeekYear/index.d.ts +6 -3
  950. package/dist-types/date-fns/getISOWeeksInYear/index.d.ts +6 -3
  951. package/dist-types/date-fns/getMilliseconds/index.d.ts +6 -3
  952. package/dist-types/date-fns/getMinutes/index.d.ts +6 -3
  953. package/dist-types/date-fns/getMonth/index.d.ts +6 -3
  954. package/dist-types/date-fns/getOverlappingDaysInIntervals/index.d.ts +13 -7
  955. package/dist-types/date-fns/getQuarter/index.d.ts +6 -3
  956. package/dist-types/date-fns/getSeconds/index.d.ts +6 -3
  957. package/dist-types/date-fns/getTime/index.d.ts +6 -3
  958. package/dist-types/date-fns/getUnixTime/index.d.ts +6 -3
  959. package/dist-types/date-fns/getWeek/index.d.ts +11 -7
  960. package/dist-types/date-fns/getWeekOfMonth/index.d.ts +9 -6
  961. package/dist-types/date-fns/getWeekYear/index.d.ts +10 -7
  962. package/dist-types/date-fns/getWeeksInMonth/index.d.ts +9 -6
  963. package/dist-types/date-fns/getYear/index.d.ts +6 -3
  964. package/dist-types/date-fns/hoursToMilliseconds/index.d.ts +4 -2
  965. package/dist-types/date-fns/hoursToMinutes/index.d.ts +4 -2
  966. package/dist-types/date-fns/hoursToSeconds/index.d.ts +5 -3
  967. package/dist-types/date-fns/index.d.ts +246 -240
  968. package/dist-types/date-fns/interval/index.d.ts +29 -0
  969. package/dist-types/date-fns/intervalToDuration/index.d.ts +5 -6
  970. package/dist-types/date-fns/intlFormat/index.d.ts +107 -10
  971. package/dist-types/date-fns/intlFormatDistance/index.d.ts +27 -15
  972. package/dist-types/date-fns/isAfter/index.d.ts +7 -4
  973. package/dist-types/date-fns/isBefore/index.d.ts +7 -4
  974. package/dist-types/date-fns/isDate/index.d.ts +4 -3
  975. package/dist-types/date-fns/isEqual/index.d.ts +7 -4
  976. package/dist-types/date-fns/isExists/index.d.ts +6 -5
  977. package/dist-types/date-fns/isFirstDayOfMonth/index.d.ts +6 -3
  978. package/dist-types/date-fns/isFriday/index.d.ts +6 -3
  979. package/dist-types/date-fns/isFuture/index.d.ts +5 -5
  980. package/dist-types/date-fns/isLastDayOfMonth/index.d.ts +6 -3
  981. package/dist-types/date-fns/isLeapYear/index.d.ts +6 -3
  982. package/dist-types/date-fns/isMatch/index.d.ts +18 -16
  983. package/dist-types/date-fns/isMonday/index.d.ts +6 -3
  984. package/dist-types/date-fns/isPast/index.d.ts +5 -5
  985. package/dist-types/date-fns/isSameDay/index.d.ts +7 -4
  986. package/dist-types/date-fns/isSameHour/index.d.ts +7 -4
  987. package/dist-types/date-fns/isSameISOWeek/index.d.ts +7 -4
  988. package/dist-types/date-fns/isSameISOWeekYear/index.d.ts +7 -4
  989. package/dist-types/date-fns/isSameMinute/index.d.ts +7 -4
  990. package/dist-types/date-fns/isSameMonth/index.d.ts +7 -4
  991. package/dist-types/date-fns/isSameQuarter/index.d.ts +7 -4
  992. package/dist-types/date-fns/isSameSecond/index.d.ts +7 -4
  993. package/dist-types/date-fns/isSameWeek/index.d.ts +10 -7
  994. package/dist-types/date-fns/isSameYear/index.d.ts +7 -4
  995. package/dist-types/date-fns/isSaturday/index.d.ts +6 -3
  996. package/dist-types/date-fns/isSunday/index.d.ts +6 -3
  997. package/dist-types/date-fns/isThisHour/index.d.ts +5 -5
  998. package/dist-types/date-fns/isThisISOWeek/index.d.ts +5 -5
  999. package/dist-types/date-fns/isThisMinute/index.d.ts +5 -5
  1000. package/dist-types/date-fns/isThisMonth/index.d.ts +5 -5
  1001. package/dist-types/date-fns/isThisQuarter/index.d.ts +5 -5
  1002. package/dist-types/date-fns/isThisSecond/index.d.ts +5 -5
  1003. package/dist-types/date-fns/isThisWeek/index.d.ts +8 -8
  1004. package/dist-types/date-fns/isThisYear/index.d.ts +5 -5
  1005. package/dist-types/date-fns/isThursday/index.d.ts +6 -3
  1006. package/dist-types/date-fns/isToday/index.d.ts +5 -5
  1007. package/dist-types/date-fns/isTomorrow/index.d.ts +5 -5
  1008. package/dist-types/date-fns/isTuesday/index.d.ts +6 -3
  1009. package/dist-types/date-fns/isValid/index.d.ts +7 -4
  1010. package/dist-types/date-fns/isWednesday/index.d.ts +6 -3
  1011. package/dist-types/date-fns/isWeekend/index.d.ts +6 -3
  1012. package/dist-types/date-fns/isWithinInterval/index.d.ts +11 -8
  1013. package/dist-types/date-fns/isYesterday/index.d.ts +5 -5
  1014. package/dist-types/date-fns/lastDayOfDecade/index.d.ts +6 -3
  1015. package/dist-types/date-fns/lastDayOfISOWeek/index.d.ts +6 -3
  1016. package/dist-types/date-fns/lastDayOfISOWeekYear/index.d.ts +6 -3
  1017. package/dist-types/date-fns/lastDayOfMonth/index.d.ts +6 -3
  1018. package/dist-types/date-fns/lastDayOfQuarter/index.d.ts +6 -3
  1019. package/dist-types/date-fns/lastDayOfWeek/index.d.ts +9 -6
  1020. package/dist-types/date-fns/lastDayOfYear/index.d.ts +6 -3
  1021. package/dist-types/date-fns/lightFormat/index.d.ts +62 -1
  1022. package/dist-types/date-fns/locale/_lib/buildFormatLongFn/index.d.ts +1 -1
  1023. package/dist-types/date-fns/locale/_lib/buildLocalizeFn/index.d.ts +54 -24
  1024. package/dist-types/date-fns/locale/_lib/buildMatchFn/index.d.ts +21 -2
  1025. package/dist-types/date-fns/locale/_lib/buildMatchPatternFn/index.d.ts +1 -1
  1026. package/dist-types/date-fns/locale/en-US/_lib/formatDistance/index.d.ts +1 -2
  1027. package/dist-types/date-fns/locale/en-US/_lib/formatLong/index.d.ts +1 -2
  1028. package/dist-types/date-fns/locale/en-US/_lib/formatRelative/index.d.ts +1 -2
  1029. package/dist-types/date-fns/locale/en-US/_lib/localize/index.d.ts +1 -2
  1030. package/dist-types/date-fns/locale/en-US/_lib/match/index.d.ts +1 -2
  1031. package/dist-types/date-fns/locale/en-US/index.d.ts +3 -5
  1032. package/dist-types/date-fns/locale/index.d.ts +2 -1
  1033. package/dist-types/date-fns/locale/types.d.ts +251 -75
  1034. package/dist-types/date-fns/max/index.d.ts +6 -3
  1035. package/dist-types/date-fns/milliseconds/index.d.ts +4 -3
  1036. package/dist-types/date-fns/millisecondsToHours/index.d.ts +3 -3
  1037. package/dist-types/date-fns/millisecondsToMinutes/index.d.ts +3 -3
  1038. package/dist-types/date-fns/millisecondsToSeconds/index.d.ts +3 -3
  1039. package/dist-types/date-fns/min/index.d.ts +6 -3
  1040. package/dist-types/date-fns/minutesToHours/index.d.ts +3 -3
  1041. package/dist-types/date-fns/minutesToMilliseconds/index.d.ts +3 -3
  1042. package/dist-types/date-fns/minutesToSeconds/index.d.ts +3 -3
  1043. package/dist-types/date-fns/monthsToQuarters/index.d.ts +3 -3
  1044. package/dist-types/date-fns/monthsToYears/index.d.ts +3 -3
  1045. package/dist-types/date-fns/nextDay/index.d.ts +6 -3
  1046. package/dist-types/date-fns/nextFriday/index.d.ts +6 -3
  1047. package/dist-types/date-fns/nextMonday/index.d.ts +6 -3
  1048. package/dist-types/date-fns/nextSaturday/index.d.ts +6 -3
  1049. package/dist-types/date-fns/nextSunday/index.d.ts +6 -3
  1050. package/dist-types/date-fns/nextThursday/index.d.ts +6 -3
  1051. package/dist-types/date-fns/nextTuesday/index.d.ts +6 -3
  1052. package/dist-types/date-fns/nextWednesday/index.d.ts +6 -3
  1053. package/dist-types/date-fns/parse/_lib/types.d.ts +2 -2
  1054. package/dist-types/date-fns/parse/index.d.ts +22 -15
  1055. package/dist-types/date-fns/parseISO/index.d.ts +8 -4
  1056. package/dist-types/date-fns/parseJSON/index.d.ts +5 -4
  1057. package/dist-types/date-fns/previousDay/index.d.ts +7 -4
  1058. package/dist-types/date-fns/previousFriday/index.d.ts +6 -3
  1059. package/dist-types/date-fns/previousMonday/index.d.ts +6 -3
  1060. package/dist-types/date-fns/previousSaturday/index.d.ts +6 -3
  1061. package/dist-types/date-fns/previousSunday/index.d.ts +6 -3
  1062. package/dist-types/date-fns/previousThursday/index.d.ts +6 -3
  1063. package/dist-types/date-fns/previousTuesday/index.d.ts +6 -3
  1064. package/dist-types/date-fns/previousWednesday/index.d.ts +6 -3
  1065. package/dist-types/date-fns/quartersToMonths/index.d.ts +5 -3
  1066. package/dist-types/date-fns/quartersToYears/index.d.ts +5 -3
  1067. package/dist-types/date-fns/roundToNearestHours/index.d.ts +48 -0
  1068. package/dist-types/date-fns/roundToNearestMinutes/index.d.ts +20 -10
  1069. package/dist-types/date-fns/secondsToHours/index.d.ts +3 -3
  1070. package/dist-types/date-fns/secondsToMilliseconds/index.d.ts +3 -3
  1071. package/dist-types/date-fns/secondsToMinutes/index.d.ts +3 -3
  1072. package/dist-types/date-fns/set/index.d.ts +7 -11
  1073. package/dist-types/date-fns/setDate/index.d.ts +7 -4
  1074. package/dist-types/date-fns/setDay/index.d.ts +10 -7
  1075. package/dist-types/date-fns/setDayOfYear/index.d.ts +7 -4
  1076. package/dist-types/date-fns/setDefaultOptions/index.d.ts +3 -6
  1077. package/dist-types/date-fns/setHours/index.d.ts +7 -4
  1078. package/dist-types/date-fns/setISODay/index.d.ts +7 -4
  1079. package/dist-types/date-fns/setISOWeek/index.d.ts +7 -4
  1080. package/dist-types/date-fns/setISOWeekYear/index.d.ts +7 -4
  1081. package/dist-types/date-fns/setMilliseconds/index.d.ts +7 -4
  1082. package/dist-types/date-fns/setMinutes/index.d.ts +7 -4
  1083. package/dist-types/date-fns/setMonth/index.d.ts +7 -4
  1084. package/dist-types/date-fns/setQuarter/index.d.ts +7 -4
  1085. package/dist-types/date-fns/setSeconds/index.d.ts +7 -4
  1086. package/dist-types/date-fns/setWeek/index.d.ts +11 -8
  1087. package/dist-types/date-fns/setWeekYear/index.d.ts +11 -8
  1088. package/dist-types/date-fns/setYear/index.d.ts +7 -4
  1089. package/dist-types/date-fns/startOfDay/index.d.ts +6 -3
  1090. package/dist-types/date-fns/startOfDecade/index.d.ts +6 -3
  1091. package/dist-types/date-fns/startOfHour/index.d.ts +6 -3
  1092. package/dist-types/date-fns/startOfISOWeek/index.d.ts +6 -3
  1093. package/dist-types/date-fns/startOfISOWeekYear/index.d.ts +6 -3
  1094. package/dist-types/date-fns/startOfMinute/index.d.ts +6 -3
  1095. package/dist-types/date-fns/startOfMonth/index.d.ts +6 -3
  1096. package/dist-types/date-fns/startOfQuarter/index.d.ts +6 -3
  1097. package/dist-types/date-fns/startOfSecond/index.d.ts +6 -3
  1098. package/dist-types/date-fns/startOfToday/index.d.ts +2 -5
  1099. package/dist-types/date-fns/startOfTomorrow/index.d.ts +2 -5
  1100. package/dist-types/date-fns/startOfWeek/index.d.ts +9 -6
  1101. package/dist-types/date-fns/startOfWeekYear/index.d.ts +10 -7
  1102. package/dist-types/date-fns/startOfYear/index.d.ts +6 -3
  1103. package/dist-types/date-fns/startOfYesterday/index.d.ts +2 -5
  1104. package/dist-types/date-fns/sub/index.d.ts +6 -4
  1105. package/dist-types/date-fns/subBusinessDays/index.d.ts +7 -4
  1106. package/dist-types/date-fns/subDays/index.d.ts +7 -4
  1107. package/dist-types/date-fns/subHours/index.d.ts +7 -4
  1108. package/dist-types/date-fns/subISOWeekYears/index.d.ts +7 -4
  1109. package/dist-types/date-fns/subMilliseconds/index.d.ts +7 -4
  1110. package/dist-types/date-fns/subMinutes/index.d.ts +7 -4
  1111. package/dist-types/date-fns/subMonths/index.d.ts +7 -4
  1112. package/dist-types/date-fns/subQuarters/index.d.ts +7 -4
  1113. package/dist-types/date-fns/subSeconds/index.d.ts +7 -4
  1114. package/dist-types/date-fns/subWeeks/index.d.ts +7 -4
  1115. package/dist-types/date-fns/subYears/index.d.ts +7 -4
  1116. package/dist-types/date-fns/toDate/index.d.ts +6 -4
  1117. package/dist-types/date-fns/transpose/index.d.ts +9 -4
  1118. package/dist-types/date-fns/types.d.ts +188 -25
  1119. package/dist-types/date-fns/weeksToDays/index.d.ts +3 -3
  1120. package/dist-types/date-fns/yearsToDays/index.d.ts +18 -0
  1121. package/dist-types/date-fns/yearsToMonths/index.d.ts +3 -3
  1122. package/dist-types/date-fns/yearsToQuarters/index.d.ts +3 -3
  1123. package/package.json +1 -1
  1124. package/src/date-fns/CHANGELOG.md +239 -1
  1125. package/src/date-fns/_lib/addLeadingZeros/index.ts +2 -5
  1126. package/src/date-fns/_lib/addLeadingZeros/test.mts +12 -0
  1127. package/src/date-fns/_lib/defaultLocale/index.ts +1 -2
  1128. package/src/date-fns/_lib/defaultOptions/index.ts +2 -2
  1129. package/src/date-fns/_lib/format/formatters/index.ts +49 -41
  1130. package/src/date-fns/_lib/format/lightFormatters/index.ts +13 -9
  1131. package/src/date-fns/_lib/format/longFormatters/index.ts +3 -5
  1132. package/src/date-fns/_lib/getRoundingMethod/index.ts +10 -0
  1133. package/src/date-fns/_lib/getRoundingMethod/test.mts +50 -0
  1134. package/src/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.ts +13 -10
  1135. package/src/date-fns/_lib/getTimezoneOffsetInMilliseconds/test.mts +25 -0
  1136. package/src/date-fns/_lib/protectedTokens/index.ts +17 -24
  1137. package/src/date-fns/_lib/test/index.ts +29 -0
  1138. package/src/date-fns/_test/dst/addBusinessDays/basic.ts +17 -0
  1139. package/src/date-fns/_test/dst/eachDayOfInterval/basic.ts +21 -0
  1140. package/src/date-fns/_test/dst/formatDistanceStrict/cairo.ts +8 -0
  1141. package/src/date-fns/_test/dst/formatDistanceStrict/melbourne.ts +12 -0
  1142. package/src/date-fns/_test/dst/getOverlappingDaysInIntervals/basic.ts +16 -0
  1143. package/src/date-fns/_test/dst/parseISO/basic.ts +23 -0
  1144. package/src/date-fns/_test/dst/parseISO/samoa.ts +12 -0
  1145. package/src/date-fns/_test/dst/parseISO/sydney.ts +57 -0
  1146. package/src/date-fns/_test/dst/tzOffsetTransitions.ts +140 -0
  1147. package/src/date-fns/_test/formatISO/india.ts +9 -0
  1148. package/src/date-fns/_test/formatRFC3339/australia.ts +20 -0
  1149. package/src/date-fns/_test/formatRFC3339/india.ts +20 -0
  1150. package/src/date-fns/_test/formatRFC3339/newfoundland.ts +21 -0
  1151. package/src/date-fns/_test/formatRFC3339/newzealand.ts +21 -0
  1152. package/src/date-fns/_test/formatRFC3339/poland.ts +20 -0
  1153. package/src/date-fns/add/index.ts +14 -12
  1154. package/src/date-fns/add/test.mts +95 -0
  1155. package/src/date-fns/addBusinessDays/index.ts +24 -21
  1156. package/src/date-fns/addBusinessDays/test.mts +78 -0
  1157. package/src/date-fns/addDays/index.ts +14 -11
  1158. package/src/date-fns/addDays/test.mts +90 -0
  1159. package/src/date-fns/addHours/index.ts +9 -6
  1160. package/src/date-fns/addHours/test.mts +30 -0
  1161. package/src/date-fns/addISOWeekYears/index.ts +10 -7
  1162. package/src/date-fns/addISOWeekYears/test.mts +41 -0
  1163. package/src/date-fns/addMilliseconds/index.ts +11 -8
  1164. package/src/date-fns/addMilliseconds/test.mts +30 -0
  1165. package/src/date-fns/addMinutes/index.ts +9 -6
  1166. package/src/date-fns/addMinutes/test.mts +30 -0
  1167. package/src/date-fns/addMonths/index.ts +21 -14
  1168. package/src/date-fns/addMonths/test.mts +123 -0
  1169. package/src/date-fns/addQuarters/index.ts +9 -6
  1170. package/src/date-fns/addQuarters/test.mts +47 -0
  1171. package/src/date-fns/addSeconds/index.ts +9 -6
  1172. package/src/date-fns/addSeconds/test.mts +30 -0
  1173. package/src/date-fns/addWeeks/index.ts +9 -6
  1174. package/src/date-fns/addWeeks/test.mts +30 -0
  1175. package/src/date-fns/addYears/index.ts +9 -6
  1176. package/src/date-fns/addYears/test.mts +46 -0
  1177. package/src/date-fns/areIntervalsOverlapping/index.ts +17 -22
  1178. package/src/date-fns/areIntervalsOverlapping/test.mts +231 -0
  1179. package/src/date-fns/clamp/index.ts +11 -11
  1180. package/src/date-fns/clamp/test.mts +36 -0
  1181. package/src/date-fns/closestIndexTo/index.ts +14 -11
  1182. package/src/date-fns/closestIndexTo/test.mts +51 -0
  1183. package/src/date-fns/closestTo/index.ts +16 -13
  1184. package/src/date-fns/closestTo/test.mts +49 -0
  1185. package/src/date-fns/compareAsc/index.ts +13 -10
  1186. package/src/date-fns/compareAsc/test.mts +58 -0
  1187. package/src/date-fns/compareDesc/index.ts +13 -10
  1188. package/src/date-fns/compareDesc/test.mts +58 -0
  1189. package/src/date-fns/constants/index.ts +89 -119
  1190. package/src/date-fns/constructFrom/index.ts +13 -5
  1191. package/src/date-fns/constructFrom/test.mts +47 -0
  1192. package/src/date-fns/constructNow/index.ts +35 -0
  1193. package/src/date-fns/constructNow/test.mts +37 -0
  1194. package/src/date-fns/daysToWeeks/index.ts +9 -5
  1195. package/src/date-fns/daysToWeeks/test.mts +36 -0
  1196. package/src/date-fns/differenceInBusinessDays/index.ts +24 -20
  1197. package/src/date-fns/differenceInBusinessDays/test.mts +102 -0
  1198. package/src/date-fns/differenceInCalendarDays/index.ts +18 -15
  1199. package/src/date-fns/differenceInCalendarDays/test.mts +206 -0
  1200. package/src/date-fns/differenceInCalendarISOWeekYears/index.ts +11 -8
  1201. package/src/date-fns/differenceInCalendarISOWeekYears/test.mts +93 -0
  1202. package/src/date-fns/differenceInCalendarISOWeeks/index.ts +18 -15
  1203. package/src/date-fns/differenceInCalendarISOWeeks/test.mts +89 -0
  1204. package/src/date-fns/differenceInCalendarMonths/index.ts +14 -11
  1205. package/src/date-fns/differenceInCalendarMonths/test.mts +82 -0
  1206. package/src/date-fns/differenceInCalendarQuarters/index.ts +15 -12
  1207. package/src/date-fns/differenceInCalendarQuarters/test.mts +82 -0
  1208. package/src/date-fns/differenceInCalendarWeeks/index.ts +21 -18
  1209. package/src/date-fns/differenceInCalendarWeeks/test.mts +136 -0
  1210. package/src/date-fns/differenceInCalendarYears/index.ts +13 -10
  1211. package/src/date-fns/differenceInCalendarYears/test.mts +82 -0
  1212. package/src/date-fns/differenceInDays/index.ts +46 -40
  1213. package/src/date-fns/differenceInDays/test.mts +175 -0
  1214. package/src/date-fns/differenceInHours/index.ts +12 -9
  1215. package/src/date-fns/differenceInHours/test.mts +122 -0
  1216. package/src/date-fns/differenceInISOWeekYears/index.ts +19 -16
  1217. package/src/date-fns/differenceInISOWeekYears/test.mts +93 -0
  1218. package/src/date-fns/differenceInMilliseconds/index.ts +11 -8
  1219. package/src/date-fns/differenceInMilliseconds/test.mts +53 -0
  1220. package/src/date-fns/differenceInMinutes/index.ts +12 -9
  1221. package/src/date-fns/differenceInMinutes/test.mts +123 -0
  1222. package/src/date-fns/differenceInMonths/index.ts +22 -19
  1223. package/src/date-fns/differenceInMonths/test.mts +121 -0
  1224. package/src/date-fns/differenceInQuarters/index.ts +12 -9
  1225. package/src/date-fns/differenceInQuarters/test.mts +109 -0
  1226. package/src/date-fns/differenceInSeconds/index.ts +12 -9
  1227. package/src/date-fns/differenceInSeconds/test.mts +144 -0
  1228. package/src/date-fns/differenceInWeeks/index.ts +13 -10
  1229. package/src/date-fns/differenceInWeeks/test.mts +111 -0
  1230. package/src/date-fns/differenceInYears/index.ts +21 -17
  1231. package/src/date-fns/differenceInYears/test.mts +97 -0
  1232. package/src/date-fns/eachDayOfInterval/index.ts +19 -20
  1233. package/src/date-fns/eachDayOfInterval/test.mts +164 -0
  1234. package/src/date-fns/eachHourOfInterval/index.ts +20 -22
  1235. package/src/date-fns/eachHourOfInterval/test.mts +154 -0
  1236. package/src/date-fns/eachMinuteOfInterval/index.ts +20 -21
  1237. package/src/date-fns/eachMinuteOfInterval/test.mts +159 -0
  1238. package/src/date-fns/eachMonthOfInterval/index.ts +30 -18
  1239. package/src/date-fns/eachMonthOfInterval/test.mts +151 -0
  1240. package/src/date-fns/eachQuarterOfInterval/index.ts +31 -25
  1241. package/src/date-fns/eachQuarterOfInterval/test.mts +136 -0
  1242. package/src/date-fns/eachWeekOfInterval/index.ts +30 -29
  1243. package/src/date-fns/eachWeekOfInterval/test.mts +177 -0
  1244. package/src/date-fns/eachWeekendOfInterval/index.ts +10 -13
  1245. package/src/date-fns/eachWeekendOfInterval/test.mts +67 -0
  1246. package/src/date-fns/eachWeekendOfMonth/index.ts +12 -12
  1247. package/src/date-fns/eachWeekendOfMonth/test.mts +23 -0
  1248. package/src/date-fns/eachWeekendOfYear/index.ts +12 -10
  1249. package/src/date-fns/eachWeekendOfYear/test.mts +18 -0
  1250. package/src/date-fns/eachYearOfInterval/index.ts +29 -18
  1251. package/src/date-fns/eachYearOfInterval/test.mts +136 -0
  1252. package/src/date-fns/endOfDay/index.ts +10 -7
  1253. package/src/date-fns/endOfDay/test.mts +27 -0
  1254. package/src/date-fns/endOfDecade/index.ts +15 -9
  1255. package/src/date-fns/endOfDecade/test.mts +32 -0
  1256. package/src/date-fns/endOfHour/index.ts +10 -7
  1257. package/src/date-fns/endOfHour/test.mts +26 -0
  1258. package/src/date-fns/endOfISOWeek/index.ts +8 -5
  1259. package/src/date-fns/endOfISOWeek/test.mts +27 -0
  1260. package/src/date-fns/endOfISOWeekYear/index.ts +14 -11
  1261. package/src/date-fns/endOfISOWeekYear/test.mts +36 -0
  1262. package/src/date-fns/endOfMinute/index.ts +10 -7
  1263. package/src/date-fns/endOfMinute/test.mts +26 -0
  1264. package/src/date-fns/endOfMonth/index.ts +12 -9
  1265. package/src/date-fns/endOfMonth/test.mts +41 -0
  1266. package/src/date-fns/endOfQuarter/index.ts +12 -9
  1267. package/src/date-fns/endOfQuarter/test.mts +27 -0
  1268. package/src/date-fns/endOfSecond/index.ts +10 -7
  1269. package/src/date-fns/endOfSecond/test.mts +26 -0
  1270. package/src/date-fns/endOfToday/index.ts +4 -5
  1271. package/src/date-fns/endOfToday/test.mts +19 -0
  1272. package/src/date-fns/endOfTomorrow/index.ts +3 -4
  1273. package/src/date-fns/endOfTomorrow/test.mts +29 -0
  1274. package/src/date-fns/endOfWeek/index.ts +16 -13
  1275. package/src/date-fns/endOfWeek/test.mts +86 -0
  1276. package/src/date-fns/endOfYear/index.ts +12 -9
  1277. package/src/date-fns/endOfYear/test.mts +27 -0
  1278. package/src/date-fns/endOfYesterday/index.ts +3 -4
  1279. package/src/date-fns/endOfYesterday/test.mts +29 -0
  1280. package/src/date-fns/format/index.ts +84 -71
  1281. package/src/date-fns/format/test.mts +909 -0
  1282. package/src/date-fns/formatDistance/index.ts +31 -31
  1283. package/src/date-fns/formatDistance/test.mts +189 -0
  1284. package/src/date-fns/formatDistanceStrict/index.ts +36 -32
  1285. package/src/date-fns/formatDistanceStrict/test.mts +329 -0
  1286. package/src/date-fns/formatDistanceToNow/index.ts +14 -11
  1287. package/src/date-fns/formatDistanceToNow/test.mts +196 -0
  1288. package/src/date-fns/formatDistanceToNowStrict/index.ts +15 -9
  1289. package/src/date-fns/formatDistanceToNowStrict/test.mts +293 -0
  1290. package/src/date-fns/formatDuration/index.ts +13 -7
  1291. package/src/date-fns/formatDuration/test.mts +74 -0
  1292. package/src/date-fns/formatISO/index.ts +23 -19
  1293. package/src/date-fns/formatISO/test.mts +55 -0
  1294. package/src/date-fns/formatISO9075/index.ts +23 -19
  1295. package/src/date-fns/formatISO9075/test.mts +35 -0
  1296. package/src/date-fns/formatISODuration/index.ts +3 -3
  1297. package/src/date-fns/formatISODuration/test.mts +75 -0
  1298. package/src/date-fns/formatRFC3339/index.ts +29 -27
  1299. package/src/date-fns/formatRFC3339/test.mts +41 -0
  1300. package/src/date-fns/formatRFC7231/index.ts +20 -16
  1301. package/src/date-fns/formatRFC7231/test.mts +18 -0
  1302. package/src/date-fns/formatRelative/index.ts +30 -36
  1303. package/src/date-fns/formatRelative/test.mts +92 -0
  1304. package/src/date-fns/fp/_lib/convertToFP/index.ts +23 -7
  1305. package/src/date-fns/fp/_lib/convertToFP/test.mts +114 -0
  1306. package/src/date-fns/fp/add/index.ts +3 -3
  1307. package/src/date-fns/fp/addBusinessDays/index.ts +3 -3
  1308. package/src/date-fns/fp/addDays/index.ts +3 -3
  1309. package/src/date-fns/fp/addHours/index.ts +3 -3
  1310. package/src/date-fns/fp/addISOWeekYears/index.ts +3 -3
  1311. package/src/date-fns/fp/addMilliseconds/index.ts +3 -3
  1312. package/src/date-fns/fp/addMinutes/index.ts +3 -3
  1313. package/src/date-fns/fp/addMonths/index.ts +3 -3
  1314. package/src/date-fns/fp/addQuarters/index.ts +3 -3
  1315. package/src/date-fns/fp/addSeconds/index.ts +3 -3
  1316. package/src/date-fns/fp/addWeeks/index.ts +3 -3
  1317. package/src/date-fns/fp/addYears/index.ts +3 -3
  1318. package/src/date-fns/fp/areIntervalsOverlapping/index.ts +3 -3
  1319. package/src/date-fns/fp/areIntervalsOverlappingWithOptions/index.ts +3 -3
  1320. package/src/date-fns/fp/clamp/index.ts +3 -3
  1321. package/src/date-fns/fp/closestIndexTo/index.ts +3 -3
  1322. package/src/date-fns/fp/closestTo/index.ts +3 -3
  1323. package/src/date-fns/fp/compareAsc/index.ts +3 -3
  1324. package/src/date-fns/fp/compareDesc/index.ts +3 -3
  1325. package/src/date-fns/fp/constructFrom/index.ts +6 -0
  1326. package/src/date-fns/fp/daysToWeeks/index.ts +3 -3
  1327. package/src/date-fns/fp/differenceInBusinessDays/index.ts +3 -3
  1328. package/src/date-fns/fp/differenceInCalendarDays/index.ts +3 -3
  1329. package/src/date-fns/fp/differenceInCalendarISOWeekYears/index.ts +3 -3
  1330. package/src/date-fns/fp/differenceInCalendarISOWeeks/index.ts +3 -3
  1331. package/src/date-fns/fp/differenceInCalendarMonths/index.ts +3 -3
  1332. package/src/date-fns/fp/differenceInCalendarQuarters/index.ts +3 -3
  1333. package/src/date-fns/fp/differenceInCalendarWeeks/index.ts +3 -3
  1334. package/src/date-fns/fp/differenceInCalendarWeeksWithOptions/index.ts +3 -3
  1335. package/src/date-fns/fp/differenceInCalendarYears/index.ts +3 -3
  1336. package/src/date-fns/fp/differenceInDays/index.ts +3 -3
  1337. package/src/date-fns/fp/differenceInHours/index.ts +3 -3
  1338. package/src/date-fns/fp/differenceInHoursWithOptions/index.ts +3 -3
  1339. package/src/date-fns/fp/differenceInISOWeekYears/index.ts +3 -3
  1340. package/src/date-fns/fp/differenceInMilliseconds/index.ts +3 -3
  1341. package/src/date-fns/fp/differenceInMinutes/index.ts +3 -3
  1342. package/src/date-fns/fp/differenceInMinutesWithOptions/index.ts +3 -3
  1343. package/src/date-fns/fp/differenceInMonths/index.ts +3 -3
  1344. package/src/date-fns/fp/differenceInQuarters/index.ts +3 -3
  1345. package/src/date-fns/fp/differenceInQuartersWithOptions/index.ts +3 -3
  1346. package/src/date-fns/fp/differenceInSeconds/index.ts +3 -3
  1347. package/src/date-fns/fp/differenceInSecondsWithOptions/index.ts +3 -3
  1348. package/src/date-fns/fp/differenceInWeeks/index.ts +3 -3
  1349. package/src/date-fns/fp/differenceInWeeksWithOptions/index.ts +3 -3
  1350. package/src/date-fns/fp/differenceInYears/index.ts +3 -3
  1351. package/src/date-fns/fp/eachDayOfInterval/index.ts +3 -3
  1352. package/src/date-fns/fp/eachDayOfIntervalWithOptions/index.ts +3 -3
  1353. package/src/date-fns/fp/eachHourOfInterval/index.ts +3 -3
  1354. package/src/date-fns/fp/eachHourOfIntervalWithOptions/index.ts +3 -3
  1355. package/src/date-fns/fp/eachMinuteOfInterval/index.ts +3 -3
  1356. package/src/date-fns/fp/eachMinuteOfIntervalWithOptions/index.ts +3 -3
  1357. package/src/date-fns/fp/eachMonthOfInterval/index.ts +3 -3
  1358. package/src/date-fns/fp/eachMonthOfIntervalWithOptions/index.ts +6 -0
  1359. package/src/date-fns/fp/eachQuarterOfInterval/index.ts +3 -3
  1360. package/src/date-fns/fp/eachQuarterOfIntervalWithOptions/index.ts +6 -0
  1361. package/src/date-fns/fp/eachWeekOfInterval/index.ts +3 -3
  1362. package/src/date-fns/fp/eachWeekOfIntervalWithOptions/index.ts +3 -3
  1363. package/src/date-fns/fp/eachWeekendOfInterval/index.ts +3 -3
  1364. package/src/date-fns/fp/eachWeekendOfMonth/index.ts +3 -3
  1365. package/src/date-fns/fp/eachWeekendOfYear/index.ts +3 -3
  1366. package/src/date-fns/fp/eachYearOfInterval/index.ts +3 -3
  1367. package/src/date-fns/fp/eachYearOfIntervalWithOptions/index.ts +6 -0
  1368. package/src/date-fns/fp/endOfDay/index.ts +3 -3
  1369. package/src/date-fns/fp/endOfDecade/index.ts +3 -3
  1370. package/src/date-fns/fp/endOfHour/index.ts +3 -3
  1371. package/src/date-fns/fp/endOfISOWeek/index.ts +3 -3
  1372. package/src/date-fns/fp/endOfISOWeekYear/index.ts +3 -3
  1373. package/src/date-fns/fp/endOfMinute/index.ts +3 -3
  1374. package/src/date-fns/fp/endOfMonth/index.ts +3 -3
  1375. package/src/date-fns/fp/endOfQuarter/index.ts +3 -3
  1376. package/src/date-fns/fp/endOfSecond/index.ts +3 -3
  1377. package/src/date-fns/fp/endOfWeek/index.ts +3 -3
  1378. package/src/date-fns/fp/endOfWeekWithOptions/index.ts +3 -3
  1379. package/src/date-fns/fp/endOfYear/index.ts +3 -3
  1380. package/src/date-fns/fp/format/index.ts +3 -3
  1381. package/src/date-fns/fp/formatDistance/index.ts +3 -3
  1382. package/src/date-fns/fp/formatDistanceStrict/index.ts +3 -3
  1383. package/src/date-fns/fp/formatDistanceStrictWithOptions/index.ts +3 -3
  1384. package/src/date-fns/fp/formatDistanceWithOptions/index.ts +3 -3
  1385. package/src/date-fns/fp/formatDuration/index.ts +3 -3
  1386. package/src/date-fns/fp/formatDurationWithOptions/index.ts +3 -3
  1387. package/src/date-fns/fp/formatISO/index.ts +3 -3
  1388. package/src/date-fns/fp/formatISO9075/index.ts +3 -3
  1389. package/src/date-fns/fp/formatISO9075WithOptions/index.ts +3 -3
  1390. package/src/date-fns/fp/formatISODuration/index.ts +3 -3
  1391. package/src/date-fns/fp/formatISOWithOptions/index.ts +3 -3
  1392. package/src/date-fns/fp/formatRFC3339/index.ts +3 -3
  1393. package/src/date-fns/fp/formatRFC3339WithOptions/index.ts +3 -3
  1394. package/src/date-fns/fp/formatRFC7231/index.ts +3 -3
  1395. package/src/date-fns/fp/formatRelative/index.ts +3 -3
  1396. package/src/date-fns/fp/formatRelativeWithOptions/index.ts +3 -3
  1397. package/src/date-fns/fp/formatWithOptions/index.ts +3 -3
  1398. package/src/date-fns/fp/fromUnixTime/index.ts +3 -3
  1399. package/src/date-fns/fp/getDate/index.ts +3 -3
  1400. package/src/date-fns/fp/getDay/index.ts +3 -3
  1401. package/src/date-fns/fp/getDayOfYear/index.ts +3 -3
  1402. package/src/date-fns/fp/getDaysInMonth/index.ts +3 -3
  1403. package/src/date-fns/fp/getDaysInYear/index.ts +3 -3
  1404. package/src/date-fns/fp/getDecade/index.ts +3 -3
  1405. package/src/date-fns/fp/getHours/index.ts +3 -3
  1406. package/src/date-fns/fp/getISODay/index.ts +3 -3
  1407. package/src/date-fns/fp/getISOWeek/index.ts +3 -3
  1408. package/src/date-fns/fp/getISOWeekYear/index.ts +3 -3
  1409. package/src/date-fns/fp/getISOWeeksInYear/index.ts +3 -3
  1410. package/src/date-fns/fp/getMilliseconds/index.ts +3 -3
  1411. package/src/date-fns/fp/getMinutes/index.ts +3 -3
  1412. package/src/date-fns/fp/getMonth/index.ts +3 -3
  1413. package/src/date-fns/fp/getOverlappingDaysInIntervals/index.ts +3 -3
  1414. package/src/date-fns/fp/getQuarter/index.ts +3 -3
  1415. package/src/date-fns/fp/getSeconds/index.ts +3 -3
  1416. package/src/date-fns/fp/getTime/index.ts +3 -3
  1417. package/src/date-fns/fp/getUnixTime/index.ts +3 -3
  1418. package/src/date-fns/fp/getWeek/index.ts +3 -3
  1419. package/src/date-fns/fp/getWeekOfMonth/index.ts +3 -3
  1420. package/src/date-fns/fp/getWeekOfMonthWithOptions/index.ts +3 -3
  1421. package/src/date-fns/fp/getWeekWithOptions/index.ts +3 -3
  1422. package/src/date-fns/fp/getWeekYear/index.ts +3 -3
  1423. package/src/date-fns/fp/getWeekYearWithOptions/index.ts +3 -3
  1424. package/src/date-fns/fp/getWeeksInMonth/index.ts +3 -3
  1425. package/src/date-fns/fp/getWeeksInMonthWithOptions/index.ts +3 -3
  1426. package/src/date-fns/fp/getYear/index.ts +3 -3
  1427. package/src/date-fns/fp/hoursToMilliseconds/index.ts +3 -3
  1428. package/src/date-fns/fp/hoursToMinutes/index.ts +3 -3
  1429. package/src/date-fns/fp/hoursToSeconds/index.ts +3 -3
  1430. package/src/date-fns/fp/index.ts +263 -255
  1431. package/src/date-fns/fp/interval/index.ts +6 -0
  1432. package/src/date-fns/fp/intervalToDuration/index.ts +3 -3
  1433. package/src/date-fns/fp/intervalWithOptions/index.ts +6 -0
  1434. package/src/date-fns/fp/intlFormat/index.ts +3 -3
  1435. package/src/date-fns/fp/intlFormatDistance/index.ts +3 -3
  1436. package/src/date-fns/fp/intlFormatDistanceWithOptions/index.ts +3 -3
  1437. package/src/date-fns/fp/isAfter/index.ts +3 -3
  1438. package/src/date-fns/fp/isBefore/index.ts +3 -3
  1439. package/src/date-fns/fp/isDate/index.ts +3 -3
  1440. package/src/date-fns/fp/isEqual/index.ts +3 -3
  1441. package/src/date-fns/fp/isExists/index.ts +3 -3
  1442. package/src/date-fns/fp/isFirstDayOfMonth/index.ts +3 -3
  1443. package/src/date-fns/fp/isFriday/index.ts +3 -3
  1444. package/src/date-fns/fp/isLastDayOfMonth/index.ts +3 -3
  1445. package/src/date-fns/fp/isLeapYear/index.ts +3 -3
  1446. package/src/date-fns/fp/isMatch/index.ts +3 -3
  1447. package/src/date-fns/fp/isMatchWithOptions/index.ts +3 -3
  1448. package/src/date-fns/fp/isMonday/index.ts +3 -3
  1449. package/src/date-fns/fp/isSameDay/index.ts +3 -3
  1450. package/src/date-fns/fp/isSameHour/index.ts +3 -3
  1451. package/src/date-fns/fp/isSameISOWeek/index.ts +3 -3
  1452. package/src/date-fns/fp/isSameISOWeekYear/index.ts +3 -3
  1453. package/src/date-fns/fp/isSameMinute/index.ts +3 -3
  1454. package/src/date-fns/fp/isSameMonth/index.ts +3 -3
  1455. package/src/date-fns/fp/isSameQuarter/index.ts +3 -3
  1456. package/src/date-fns/fp/isSameSecond/index.ts +3 -3
  1457. package/src/date-fns/fp/isSameWeek/index.ts +3 -3
  1458. package/src/date-fns/fp/isSameWeekWithOptions/index.ts +3 -3
  1459. package/src/date-fns/fp/isSameYear/index.ts +3 -3
  1460. package/src/date-fns/fp/isSaturday/index.ts +3 -3
  1461. package/src/date-fns/fp/isSunday/index.ts +3 -3
  1462. package/src/date-fns/fp/isThursday/index.ts +3 -3
  1463. package/src/date-fns/fp/isTuesday/index.ts +3 -3
  1464. package/src/date-fns/fp/isValid/index.ts +3 -3
  1465. package/src/date-fns/fp/isWednesday/index.ts +3 -3
  1466. package/src/date-fns/fp/isWeekend/index.ts +3 -3
  1467. package/src/date-fns/fp/isWithinInterval/index.ts +3 -3
  1468. package/src/date-fns/fp/lastDayOfDecade/index.ts +3 -3
  1469. package/src/date-fns/fp/lastDayOfISOWeek/index.ts +3 -3
  1470. package/src/date-fns/fp/lastDayOfISOWeekYear/index.ts +3 -3
  1471. package/src/date-fns/fp/lastDayOfMonth/index.ts +3 -3
  1472. package/src/date-fns/fp/lastDayOfQuarter/index.ts +3 -3
  1473. package/src/date-fns/fp/lastDayOfWeek/index.ts +3 -3
  1474. package/src/date-fns/fp/lastDayOfWeekWithOptions/index.ts +3 -3
  1475. package/src/date-fns/fp/lastDayOfYear/index.ts +3 -3
  1476. package/src/date-fns/fp/lightFormat/index.ts +3 -3
  1477. package/src/date-fns/fp/max/index.ts +3 -3
  1478. package/src/date-fns/fp/milliseconds/index.ts +3 -3
  1479. package/src/date-fns/fp/millisecondsToHours/index.ts +3 -3
  1480. package/src/date-fns/fp/millisecondsToMinutes/index.ts +3 -3
  1481. package/src/date-fns/fp/millisecondsToSeconds/index.ts +3 -3
  1482. package/src/date-fns/fp/min/index.ts +3 -3
  1483. package/src/date-fns/fp/minutesToHours/index.ts +3 -3
  1484. package/src/date-fns/fp/minutesToMilliseconds/index.ts +3 -3
  1485. package/src/date-fns/fp/minutesToSeconds/index.ts +3 -3
  1486. package/src/date-fns/fp/monthsToQuarters/index.ts +3 -3
  1487. package/src/date-fns/fp/monthsToYears/index.ts +3 -3
  1488. package/src/date-fns/fp/nextDay/index.ts +3 -3
  1489. package/src/date-fns/fp/nextFriday/index.ts +3 -3
  1490. package/src/date-fns/fp/nextMonday/index.ts +3 -3
  1491. package/src/date-fns/fp/nextSaturday/index.ts +3 -3
  1492. package/src/date-fns/fp/nextSunday/index.ts +3 -3
  1493. package/src/date-fns/fp/nextThursday/index.ts +3 -3
  1494. package/src/date-fns/fp/nextTuesday/index.ts +3 -3
  1495. package/src/date-fns/fp/nextWednesday/index.ts +3 -3
  1496. package/src/date-fns/fp/parse/index.ts +3 -3
  1497. package/src/date-fns/fp/parseISO/index.ts +3 -3
  1498. package/src/date-fns/fp/parseISOWithOptions/index.ts +3 -3
  1499. package/src/date-fns/fp/parseJSON/index.ts +3 -3
  1500. package/src/date-fns/fp/parseWithOptions/index.ts +3 -3
  1501. package/src/date-fns/fp/previousDay/index.ts +3 -3
  1502. package/src/date-fns/fp/previousFriday/index.ts +3 -3
  1503. package/src/date-fns/fp/previousMonday/index.ts +3 -3
  1504. package/src/date-fns/fp/previousSaturday/index.ts +3 -3
  1505. package/src/date-fns/fp/previousSunday/index.ts +3 -3
  1506. package/src/date-fns/fp/previousThursday/index.ts +3 -3
  1507. package/src/date-fns/fp/previousTuesday/index.ts +3 -3
  1508. package/src/date-fns/fp/previousWednesday/index.ts +3 -3
  1509. package/src/date-fns/fp/quartersToMonths/index.ts +3 -3
  1510. package/src/date-fns/fp/quartersToYears/index.ts +3 -3
  1511. package/src/date-fns/fp/roundToNearestHours/index.ts +6 -0
  1512. package/src/date-fns/fp/roundToNearestHoursWithOptions/index.ts +6 -0
  1513. package/src/date-fns/fp/roundToNearestMinutes/index.ts +3 -3
  1514. package/src/date-fns/fp/roundToNearestMinutesWithOptions/index.ts +3 -3
  1515. package/src/date-fns/fp/secondsToHours/index.ts +3 -3
  1516. package/src/date-fns/fp/secondsToMilliseconds/index.ts +3 -3
  1517. package/src/date-fns/fp/secondsToMinutes/index.ts +3 -3
  1518. package/src/date-fns/fp/set/index.ts +3 -3
  1519. package/src/date-fns/fp/setDate/index.ts +3 -3
  1520. package/src/date-fns/fp/setDay/index.ts +3 -3
  1521. package/src/date-fns/fp/setDayOfYear/index.ts +3 -3
  1522. package/src/date-fns/fp/setDayWithOptions/index.ts +3 -3
  1523. package/src/date-fns/fp/setHours/index.ts +3 -3
  1524. package/src/date-fns/fp/setISODay/index.ts +3 -3
  1525. package/src/date-fns/fp/setISOWeek/index.ts +3 -3
  1526. package/src/date-fns/fp/setISOWeekYear/index.ts +3 -3
  1527. package/src/date-fns/fp/setMilliseconds/index.ts +3 -3
  1528. package/src/date-fns/fp/setMinutes/index.ts +3 -3
  1529. package/src/date-fns/fp/setMonth/index.ts +3 -3
  1530. package/src/date-fns/fp/setQuarter/index.ts +3 -3
  1531. package/src/date-fns/fp/setSeconds/index.ts +3 -3
  1532. package/src/date-fns/fp/setWeek/index.ts +3 -3
  1533. package/src/date-fns/fp/setWeekWithOptions/index.ts +3 -3
  1534. package/src/date-fns/fp/setWeekYear/index.ts +3 -3
  1535. package/src/date-fns/fp/setWeekYearWithOptions/index.ts +3 -3
  1536. package/src/date-fns/fp/setYear/index.ts +3 -3
  1537. package/src/date-fns/fp/startOfDay/index.ts +3 -3
  1538. package/src/date-fns/fp/startOfDecade/index.ts +3 -3
  1539. package/src/date-fns/fp/startOfHour/index.ts +3 -3
  1540. package/src/date-fns/fp/startOfISOWeek/index.ts +3 -3
  1541. package/src/date-fns/fp/startOfISOWeekYear/index.ts +3 -3
  1542. package/src/date-fns/fp/startOfMinute/index.ts +3 -3
  1543. package/src/date-fns/fp/startOfMonth/index.ts +3 -3
  1544. package/src/date-fns/fp/startOfQuarter/index.ts +3 -3
  1545. package/src/date-fns/fp/startOfSecond/index.ts +3 -3
  1546. package/src/date-fns/fp/startOfWeek/index.ts +3 -3
  1547. package/src/date-fns/fp/startOfWeekWithOptions/index.ts +3 -3
  1548. package/src/date-fns/fp/startOfWeekYear/index.ts +3 -3
  1549. package/src/date-fns/fp/startOfWeekYearWithOptions/index.ts +3 -3
  1550. package/src/date-fns/fp/startOfYear/index.ts +3 -3
  1551. package/src/date-fns/fp/sub/index.ts +3 -3
  1552. package/src/date-fns/fp/subBusinessDays/index.ts +3 -3
  1553. package/src/date-fns/fp/subDays/index.ts +3 -3
  1554. package/src/date-fns/fp/subHours/index.ts +3 -3
  1555. package/src/date-fns/fp/subISOWeekYears/index.ts +3 -3
  1556. package/src/date-fns/fp/subMilliseconds/index.ts +3 -3
  1557. package/src/date-fns/fp/subMinutes/index.ts +3 -3
  1558. package/src/date-fns/fp/subMonths/index.ts +3 -3
  1559. package/src/date-fns/fp/subQuarters/index.ts +3 -3
  1560. package/src/date-fns/fp/subSeconds/index.ts +3 -3
  1561. package/src/date-fns/fp/subWeeks/index.ts +3 -3
  1562. package/src/date-fns/fp/subYears/index.ts +3 -3
  1563. package/src/date-fns/fp/toDate/index.ts +3 -3
  1564. package/src/date-fns/fp/transpose/index.ts +6 -0
  1565. package/src/date-fns/fp/types.ts +120 -0
  1566. package/src/date-fns/fp/weeksToDays/index.ts +3 -3
  1567. package/src/date-fns/fp/yearsToDays/index.ts +6 -0
  1568. package/src/date-fns/fp/yearsToMonths/index.ts +3 -3
  1569. package/src/date-fns/fp/yearsToQuarters/index.ts +3 -3
  1570. package/src/date-fns/fromUnixTime/index.ts +5 -4
  1571. package/src/date-fns/fromUnixTime/test.mts +14 -0
  1572. package/src/date-fns/getDate/index.ts +9 -6
  1573. package/src/date-fns/getDate/test.mts +19 -0
  1574. package/src/date-fns/getDay/index.ts +9 -6
  1575. package/src/date-fns/getDay/test.mts +19 -0
  1576. package/src/date-fns/getDayOfYear/index.ts +11 -8
  1577. package/src/date-fns/getDayOfYear/test.mts +27 -0
  1578. package/src/date-fns/getDaysInMonth/index.ts +12 -9
  1579. package/src/date-fns/getDaysInMonth/test.mts +33 -0
  1580. package/src/date-fns/getDaysInYear/index.ts +11 -8
  1581. package/src/date-fns/getDaysInYear/test.mts +35 -0
  1582. package/src/date-fns/getDecade/index.ts +12 -6
  1583. package/src/date-fns/getDecade/test.mts +24 -0
  1584. package/src/date-fns/getDefaultOptions/index.ts +6 -6
  1585. package/src/date-fns/getDefaultOptions/test.mts +58 -0
  1586. package/src/date-fns/getHours/index.ts +9 -6
  1587. package/src/date-fns/getHours/test.mts +19 -0
  1588. package/src/date-fns/getISODay/index.ts +9 -6
  1589. package/src/date-fns/getISODay/test.mts +24 -0
  1590. package/src/date-fns/getISOWeek/index.ts +14 -11
  1591. package/src/date-fns/getISOWeek/test.mts +54 -0
  1592. package/src/date-fns/getISOWeekYear/index.ts +15 -12
  1593. package/src/date-fns/getISOWeekYear/test.mts +27 -0
  1594. package/src/date-fns/getISOWeeksInYear/index.ts +14 -10
  1595. package/src/date-fns/getISOWeeksInYear/test.mts +37 -0
  1596. package/src/date-fns/getMilliseconds/index.ts +9 -6
  1597. package/src/date-fns/getMilliseconds/test.mts +19 -0
  1598. package/src/date-fns/getMinutes/index.ts +9 -6
  1599. package/src/date-fns/getMinutes/test.mts +19 -0
  1600. package/src/date-fns/getMonth/index.ts +9 -6
  1601. package/src/date-fns/getMonth/test.mts +19 -0
  1602. package/src/date-fns/getOverlappingDaysInIntervals/index.ts +27 -28
  1603. package/src/date-fns/getOverlappingDaysInIntervals/test.mts +243 -0
  1604. package/src/date-fns/getQuarter/index.ts +9 -6
  1605. package/src/date-fns/getQuarter/test.mts +19 -0
  1606. package/src/date-fns/getSeconds/index.ts +9 -6
  1607. package/src/date-fns/getSeconds/test.mts +19 -0
  1608. package/src/date-fns/getTime/index.ts +9 -6
  1609. package/src/date-fns/getTime/test.mts +21 -0
  1610. package/src/date-fns/getUnixTime/index.ts +8 -5
  1611. package/src/date-fns/getUnixTime/test.mts +26 -0
  1612. package/src/date-fns/getWeek/index.ts +19 -15
  1613. package/src/date-fns/getWeek/test.mts +56 -0
  1614. package/src/date-fns/getWeekOfMonth/index.ts +13 -10
  1615. package/src/date-fns/getWeekOfMonth/test.mts +75 -0
  1616. package/src/date-fns/getWeekYear/index.ts +20 -17
  1617. package/src/date-fns/getWeekYear/test.mts +49 -0
  1618. package/src/date-fns/getWeeksInMonth/index.ts +13 -10
  1619. package/src/date-fns/getWeeksInMonth/test.mts +51 -0
  1620. package/src/date-fns/getYear/index.ts +8 -5
  1621. package/src/date-fns/getYear/test.mts +19 -0
  1622. package/src/date-fns/hoursToMilliseconds/index.ts +5 -3
  1623. package/src/date-fns/hoursToMilliseconds/test.mts +23 -0
  1624. package/src/date-fns/hoursToMinutes/index.ts +5 -3
  1625. package/src/date-fns/hoursToMinutes/test.mts +25 -0
  1626. package/src/date-fns/hoursToSeconds/index.ts +6 -4
  1627. package/src/date-fns/hoursToSeconds/test.mts +25 -0
  1628. package/src/date-fns/index.ts +246 -240
  1629. package/src/date-fns/interval/index.ts +46 -0
  1630. package/src/date-fns/interval/test.mts +42 -0
  1631. package/src/date-fns/intervalToDuration/index.ts +37 -32
  1632. package/src/date-fns/intervalToDuration/test.mts +235 -0
  1633. package/src/date-fns/intlFormat/index.ts +108 -65
  1634. package/src/date-fns/intlFormat/test.mts +88 -0
  1635. package/src/date-fns/intlFormatDistance/index.ts +41 -28
  1636. package/src/date-fns/intlFormatDistance/test.mts +588 -0
  1637. package/src/date-fns/isAfter/index.ts +13 -10
  1638. package/src/date-fns/isAfter/test.mts +39 -0
  1639. package/src/date-fns/isBefore/index.ts +13 -10
  1640. package/src/date-fns/isBefore/test.mts +39 -0
  1641. package/src/date-fns/isDate/index.ts +4 -3
  1642. package/src/date-fns/isDate/test.mts +72 -0
  1643. package/src/date-fns/isEqual/index.ts +13 -10
  1644. package/src/date-fns/isEqual/test.mts +34 -0
  1645. package/src/date-fns/isExists/index.ts +6 -5
  1646. package/src/date-fns/isExists/test.mts +14 -0
  1647. package/src/date-fns/isFirstDayOfMonth/index.ts +8 -5
  1648. package/src/date-fns/isFirstDayOfMonth/test.mts +25 -0
  1649. package/src/date-fns/isFriday/index.ts +8 -5
  1650. package/src/date-fns/isFriday/test.mts +24 -0
  1651. package/src/date-fns/isFuture/index.ts +7 -7
  1652. package/src/date-fns/isFuture/test.mts +34 -0
  1653. package/src/date-fns/isLastDayOfMonth/index.ts +11 -8
  1654. package/src/date-fns/isLastDayOfMonth/test.mts +25 -0
  1655. package/src/date-fns/isLeapYear/index.ts +9 -6
  1656. package/src/date-fns/isLeapYear/test.mts +35 -0
  1657. package/src/date-fns/isMatch/index.ts +22 -20
  1658. package/src/date-fns/isMatch/test.mts +27 -0
  1659. package/src/date-fns/isMonday/index.ts +7 -4
  1660. package/src/date-fns/isMonday/test.mts +24 -0
  1661. package/src/date-fns/isPast/index.ts +7 -7
  1662. package/src/date-fns/isPast/test.mts +34 -0
  1663. package/src/date-fns/isSameDay/index.ts +13 -10
  1664. package/src/date-fns/isSameDay/test.mts +37 -0
  1665. package/src/date-fns/isSameHour/index.ts +13 -10
  1666. package/src/date-fns/isSameHour/test.mts +37 -0
  1667. package/src/date-fns/isSameISOWeek/index.ts +11 -8
  1668. package/src/date-fns/isSameISOWeek/test.mts +34 -0
  1669. package/src/date-fns/isSameISOWeekYear/index.ts +13 -10
  1670. package/src/date-fns/isSameISOWeekYear/test.mts +48 -0
  1671. package/src/date-fns/isSameMinute/index.ts +13 -10
  1672. package/src/date-fns/isSameMinute/test.mts +37 -0
  1673. package/src/date-fns/isSameMonth/index.ts +13 -10
  1674. package/src/date-fns/isSameMonth/test.mts +34 -0
  1675. package/src/date-fns/isSameQuarter/index.ts +13 -10
  1676. package/src/date-fns/isSameQuarter/test.mts +34 -0
  1677. package/src/date-fns/isSameSecond/index.ts +13 -10
  1678. package/src/date-fns/isSameSecond/test.mts +43 -0
  1679. package/src/date-fns/isSameWeek/index.ts +16 -13
  1680. package/src/date-fns/isSameWeek/test.mts +58 -0
  1681. package/src/date-fns/isSameYear/index.ts +13 -10
  1682. package/src/date-fns/isSameYear/test.mts +34 -0
  1683. package/src/date-fns/isSaturday/index.ts +8 -5
  1684. package/src/date-fns/isSaturday/test.mts +24 -0
  1685. package/src/date-fns/isSunday/index.ts +8 -5
  1686. package/src/date-fns/isSunday/test.mts +24 -0
  1687. package/src/date-fns/isThisHour/index.ts +8 -7
  1688. package/src/date-fns/isThisHour/test.mts +34 -0
  1689. package/src/date-fns/isThisISOWeek/index.ts +8 -7
  1690. package/src/date-fns/isThisISOWeek/test.mts +34 -0
  1691. package/src/date-fns/isThisMinute/index.ts +8 -7
  1692. package/src/date-fns/isThisMinute/test.mts +34 -0
  1693. package/src/date-fns/isThisMonth/index.ts +8 -7
  1694. package/src/date-fns/isThisMonth/test.mts +34 -0
  1695. package/src/date-fns/isThisQuarter/index.ts +8 -7
  1696. package/src/date-fns/isThisQuarter/test.mts +34 -0
  1697. package/src/date-fns/isThisSecond/index.ts +8 -7
  1698. package/src/date-fns/isThisSecond/test.mts +34 -0
  1699. package/src/date-fns/isThisWeek/index.ts +14 -11
  1700. package/src/date-fns/isThisWeek/test.mts +39 -0
  1701. package/src/date-fns/isThisYear/index.ts +8 -7
  1702. package/src/date-fns/isThisYear/test.mts +34 -0
  1703. package/src/date-fns/isThursday/index.ts +8 -5
  1704. package/src/date-fns/isThursday/test.mts +24 -0
  1705. package/src/date-fns/isToday/index.ts +8 -7
  1706. package/src/date-fns/isToday/test.mts +34 -0
  1707. package/src/date-fns/isTomorrow/index.ts +9 -8
  1708. package/src/date-fns/isTomorrow/test.mts +34 -0
  1709. package/src/date-fns/isTuesday/index.ts +8 -5
  1710. package/src/date-fns/isTuesday/test.mts +24 -0
  1711. package/src/date-fns/isValid/index.ts +12 -9
  1712. package/src/date-fns/isValid/test.mts +24 -0
  1713. package/src/date-fns/isWednesday/index.ts +8 -5
  1714. package/src/date-fns/isWednesday/test.mts +24 -0
  1715. package/src/date-fns/isWeekend/index.ts +8 -6
  1716. package/src/date-fns/isWeekend/test.mts +24 -0
  1717. package/src/date-fns/isWithinInterval/index.ts +16 -19
  1718. package/src/date-fns/isWithinInterval/test.mts +92 -0
  1719. package/src/date-fns/isYesterday/index.ts +9 -8
  1720. package/src/date-fns/isYesterday/test.mts +34 -0
  1721. package/src/date-fns/lastDayOfDecade/index.ts +15 -9
  1722. package/src/date-fns/lastDayOfDecade/test.mts +32 -0
  1723. package/src/date-fns/lastDayOfISOWeek/index.ts +8 -5
  1724. package/src/date-fns/lastDayOfISOWeek/test.mts +27 -0
  1725. package/src/date-fns/lastDayOfISOWeekYear/index.ts +14 -11
  1726. package/src/date-fns/lastDayOfISOWeekYear/test.mts +36 -0
  1727. package/src/date-fns/lastDayOfMonth/index.ts +12 -9
  1728. package/src/date-fns/lastDayOfMonth/test.mts +41 -0
  1729. package/src/date-fns/lastDayOfQuarter/index.ts +12 -9
  1730. package/src/date-fns/lastDayOfQuarter/test.mts +27 -0
  1731. package/src/date-fns/lastDayOfWeek/index.ts +16 -13
  1732. package/src/date-fns/lastDayOfWeek/test.mts +86 -0
  1733. package/src/date-fns/lastDayOfYear/index.ts +12 -9
  1734. package/src/date-fns/lastDayOfYear/test.mts +27 -0
  1735. package/src/date-fns/lightFormat/index.ts +29 -18
  1736. package/src/date-fns/lightFormat/test.mts +126 -0
  1737. package/src/date-fns/locale/_lib/buildFormatLongFn/index.ts +4 -2
  1738. package/src/date-fns/locale/_lib/buildLocalizeFn/index.ts +85 -69
  1739. package/src/date-fns/locale/_lib/buildMatchFn/index.ts +55 -14
  1740. package/src/date-fns/locale/_lib/buildMatchPatternFn/index.ts +4 -3
  1741. package/src/date-fns/locale/en-US/_lib/formatDistance/index.ts +1 -3
  1742. package/src/date-fns/locale/en-US/_lib/formatLong/index.ts +2 -4
  1743. package/src/date-fns/locale/en-US/_lib/formatRelative/index.ts +1 -3
  1744. package/src/date-fns/locale/en-US/_lib/localize/index.ts +4 -7
  1745. package/src/date-fns/locale/en-US/_lib/match/index.ts +3 -5
  1746. package/src/date-fns/locale/en-US/index.ts +8 -11
  1747. package/src/date-fns/locale/en-US/snapshot.md +225 -21
  1748. package/src/date-fns/locale/index.ts +2 -1
  1749. package/src/date-fns/locale/types.ts +299 -149
  1750. package/src/date-fns/max/index.ts +8 -5
  1751. package/src/date-fns/max/test.mts +34 -0
  1752. package/src/date-fns/milliseconds/index.ts +6 -8
  1753. package/src/date-fns/milliseconds/test.mts +62 -0
  1754. package/src/date-fns/millisecondsToHours/index.ts +4 -4
  1755. package/src/date-fns/millisecondsToHours/test.mts +24 -0
  1756. package/src/date-fns/millisecondsToMinutes/index.ts +4 -4
  1757. package/src/date-fns/millisecondsToMinutes/test.mts +24 -0
  1758. package/src/date-fns/millisecondsToSeconds/index.ts +4 -4
  1759. package/src/date-fns/millisecondsToSeconds/test.mts +24 -0
  1760. package/src/date-fns/min/index.ts +11 -9
  1761. package/src/date-fns/min/test.mts +34 -0
  1762. package/src/date-fns/minutesToHours/index.ts +4 -4
  1763. package/src/date-fns/minutesToHours/test.mts +24 -0
  1764. package/src/date-fns/minutesToMilliseconds/index.ts +4 -4
  1765. package/src/date-fns/minutesToMilliseconds/test.mts +23 -0
  1766. package/src/date-fns/minutesToSeconds/index.ts +4 -4
  1767. package/src/date-fns/minutesToSeconds/test.mts +23 -0
  1768. package/src/date-fns/monthsToQuarters/index.ts +4 -4
  1769. package/src/date-fns/monthsToQuarters/test.mts +24 -0
  1770. package/src/date-fns/monthsToYears/index.ts +4 -4
  1771. package/src/date-fns/monthsToYears/test.mts +24 -0
  1772. package/src/date-fns/nextDay/index.ts +8 -5
  1773. package/src/date-fns/nextDay/test.mts +44 -0
  1774. package/src/date-fns/nextFriday/index.ts +7 -4
  1775. package/src/date-fns/nextFriday/test.mts +24 -0
  1776. package/src/date-fns/nextMonday/index.ts +7 -4
  1777. package/src/date-fns/nextMonday/test.mts +24 -0
  1778. package/src/date-fns/nextSaturday/index.ts +7 -4
  1779. package/src/date-fns/nextSaturday/test.mts +24 -0
  1780. package/src/date-fns/nextSunday/index.ts +7 -4
  1781. package/src/date-fns/nextSunday/test.mts +24 -0
  1782. package/src/date-fns/nextThursday/index.ts +7 -4
  1783. package/src/date-fns/nextThursday/test.mts +24 -0
  1784. package/src/date-fns/nextTuesday/index.ts +7 -4
  1785. package/src/date-fns/nextTuesday/test.mts +23 -0
  1786. package/src/date-fns/nextWednesday/index.ts +7 -4
  1787. package/src/date-fns/nextWednesday/test.mts +24 -0
  1788. package/src/date-fns/parse/_lib/Setter.ts +2 -2
  1789. package/src/date-fns/parse/_lib/parsers/DateParser.ts +2 -2
  1790. package/src/date-fns/parse/_lib/parsers/DayParser.ts +1 -1
  1791. package/src/date-fns/parse/_lib/parsers/FractionOfSecondParser.ts +1 -1
  1792. package/src/date-fns/parse/_lib/parsers/ISODayParser.ts +1 -1
  1793. package/src/date-fns/parse/_lib/parsers/ISOTimezoneParser.ts +2 -2
  1794. package/src/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.ts +2 -2
  1795. package/src/date-fns/parse/_lib/parsers/ISOWeekParser.ts +2 -2
  1796. package/src/date-fns/parse/_lib/parsers/ISOWeekYearParser.ts +2 -2
  1797. package/src/date-fns/parse/_lib/parsers/LocalDayParser.ts +2 -1
  1798. package/src/date-fns/parse/_lib/parsers/LocalWeekParser.ts +2 -2
  1799. package/src/date-fns/parse/_lib/parsers/LocalWeekYearParser.ts +2 -2
  1800. package/src/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.ts +2 -1
  1801. package/src/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.ts +1 -1
  1802. package/src/date-fns/parse/_lib/parsers/TimestampSecondsParser.ts +1 -1
  1803. package/src/date-fns/parse/_lib/parsers/index.ts +1 -0
  1804. package/src/date-fns/parse/_lib/types.ts +2 -2
  1805. package/src/date-fns/parse/_lib/utils.ts +5 -5
  1806. package/src/date-fns/parse/index.ts +66 -62
  1807. package/src/date-fns/parse/test.mts +2202 -0
  1808. package/src/date-fns/parseISO/index.ts +24 -20
  1809. package/src/date-fns/parseISO/test.mts +362 -0
  1810. package/src/date-fns/parseJSON/index.ts +12 -11
  1811. package/src/date-fns/parseJSON/test.mts +129 -0
  1812. package/src/date-fns/previousDay/index.ts +9 -6
  1813. package/src/date-fns/previousDay/test.mts +42 -0
  1814. package/src/date-fns/previousFriday/index.ts +7 -4
  1815. package/src/date-fns/previousFriday/test.mts +22 -0
  1816. package/src/date-fns/previousMonday/index.ts +7 -4
  1817. package/src/date-fns/previousMonday/test.mts +22 -0
  1818. package/src/date-fns/previousSaturday/index.ts +7 -4
  1819. package/src/date-fns/previousSaturday/test.mts +22 -0
  1820. package/src/date-fns/previousSunday/index.ts +7 -4
  1821. package/src/date-fns/previousSunday/test.mts +22 -0
  1822. package/src/date-fns/previousThursday/index.ts +7 -4
  1823. package/src/date-fns/previousThursday/test.mts +22 -0
  1824. package/src/date-fns/previousTuesday/index.ts +7 -4
  1825. package/src/date-fns/previousTuesday/test.mts +22 -0
  1826. package/src/date-fns/previousWednesday/index.ts +7 -4
  1827. package/src/date-fns/previousWednesday/test.mts +22 -0
  1828. package/src/date-fns/quartersToMonths/index.ts +6 -4
  1829. package/src/date-fns/quartersToMonths/test.mts +24 -0
  1830. package/src/date-fns/quartersToYears/index.ts +6 -4
  1831. package/src/date-fns/quartersToYears/test.mts +24 -0
  1832. package/src/date-fns/roundToNearestHours/index.ts +76 -0
  1833. package/src/date-fns/roundToNearestHours/test.mts +200 -0
  1834. package/src/date-fns/roundToNearestMinutes/index.ts +36 -26
  1835. package/src/date-fns/roundToNearestMinutes/test.mts +208 -0
  1836. package/src/date-fns/secondsToHours/index.ts +4 -4
  1837. package/src/date-fns/secondsToHours/test.mts +24 -0
  1838. package/src/date-fns/secondsToMilliseconds/index.ts +3 -3
  1839. package/src/date-fns/secondsToMilliseconds/test.mts +14 -0
  1840. package/src/date-fns/secondsToMinutes/index.ts +4 -4
  1841. package/src/date-fns/secondsToMinutes/test.mts +24 -0
  1842. package/src/date-fns/set/index.ts +21 -25
  1843. package/src/date-fns/set/test.mts +121 -0
  1844. package/src/date-fns/setDate/index.ts +11 -8
  1845. package/src/date-fns/setDate/test.mts +30 -0
  1846. package/src/date-fns/setDay/index.ts +16 -13
  1847. package/src/date-fns/setDay/test.mts +112 -0
  1848. package/src/date-fns/setDayOfYear/index.ts +12 -9
  1849. package/src/date-fns/setDayOfYear/test.mts +30 -0
  1850. package/src/date-fns/setDefaultOptions/index.ts +11 -14
  1851. package/src/date-fns/setDefaultOptions/test.mts +498 -0
  1852. package/src/date-fns/setHours/index.ts +11 -8
  1853. package/src/date-fns/setHours/test.mts +30 -0
  1854. package/src/date-fns/setISODay/index.ts +13 -10
  1855. package/src/date-fns/setISODay/test.mts +59 -0
  1856. package/src/date-fns/setISOWeek/index.ts +13 -10
  1857. package/src/date-fns/setISOWeek/test.mts +41 -0
  1858. package/src/date-fns/setISOWeekYear/index.ts +18 -18
  1859. package/src/date-fns/setISOWeekYear/test.mts +50 -0
  1860. package/src/date-fns/setMilliseconds/index.ts +12 -9
  1861. package/src/date-fns/setMilliseconds/test.mts +30 -0
  1862. package/src/date-fns/setMinutes/index.ts +11 -8
  1863. package/src/date-fns/setMinutes/test.mts +30 -0
  1864. package/src/date-fns/setMonth/index.ts +16 -13
  1865. package/src/date-fns/setMonth/test.mts +46 -0
  1866. package/src/date-fns/setQuarter/index.ts +12 -9
  1867. package/src/date-fns/setQuarter/test.mts +46 -0
  1868. package/src/date-fns/setSeconds/index.ts +11 -8
  1869. package/src/date-fns/setSeconds/test.mts +30 -0
  1870. package/src/date-fns/setWeek/index.ts +18 -15
  1871. package/src/date-fns/setWeek/test.mts +63 -0
  1872. package/src/date-fns/setWeekYear/index.ts +22 -19
  1873. package/src/date-fns/setWeekYear/test.mts +72 -0
  1874. package/src/date-fns/setYear/index.ts +14 -11
  1875. package/src/date-fns/setYear/test.mts +30 -0
  1876. package/src/date-fns/startOfDay/index.ts +10 -7
  1877. package/src/date-fns/startOfDay/test.mts +27 -0
  1878. package/src/date-fns/startOfDecade/index.ts +15 -9
  1879. package/src/date-fns/startOfDecade/test.mts +32 -0
  1880. package/src/date-fns/startOfHour/index.ts +10 -7
  1881. package/src/date-fns/startOfHour/test.mts +27 -0
  1882. package/src/date-fns/startOfISOWeek/index.ts +8 -5
  1883. package/src/date-fns/startOfISOWeek/test.mts +27 -0
  1884. package/src/date-fns/startOfISOWeekYear/index.ts +12 -10
  1885. package/src/date-fns/startOfISOWeekYear/test.mts +41 -0
  1886. package/src/date-fns/startOfMinute/index.ts +10 -7
  1887. package/src/date-fns/startOfMinute/test.mts +27 -0
  1888. package/src/date-fns/startOfMonth/index.ts +11 -8
  1889. package/src/date-fns/startOfMonth/test.mts +27 -0
  1890. package/src/date-fns/startOfQuarter/index.ts +12 -9
  1891. package/src/date-fns/startOfQuarter/test.mts +27 -0
  1892. package/src/date-fns/startOfSecond/index.ts +10 -7
  1893. package/src/date-fns/startOfSecond/test.mts +27 -0
  1894. package/src/date-fns/startOfToday/index.ts +3 -6
  1895. package/src/date-fns/startOfToday/test.mts +19 -0
  1896. package/src/date-fns/startOfTomorrow/index.ts +2 -5
  1897. package/src/date-fns/startOfTomorrow/test.mts +29 -0
  1898. package/src/date-fns/startOfWeek/index.ts +16 -13
  1899. package/src/date-fns/startOfWeek/test.mts +86 -0
  1900. package/src/date-fns/startOfWeekYear/index.ts +21 -15
  1901. package/src/date-fns/startOfWeekYear/test.mts +58 -0
  1902. package/src/date-fns/startOfYear/index.ts +13 -10
  1903. package/src/date-fns/startOfYear/test.mts +38 -0
  1904. package/src/date-fns/startOfYesterday/index.ts +2 -5
  1905. package/src/date-fns/startOfYesterday/test.mts +29 -0
  1906. package/src/date-fns/sub/index.ts +9 -7
  1907. package/src/date-fns/sub/test.mts +83 -0
  1908. package/src/date-fns/subBusinessDays/index.ts +9 -6
  1909. package/src/date-fns/subBusinessDays/test.mts +40 -0
  1910. package/src/date-fns/subDays/index.ts +9 -6
  1911. package/src/date-fns/subDays/test.mts +30 -0
  1912. package/src/date-fns/subHours/index.ts +9 -6
  1913. package/src/date-fns/subHours/test.mts +30 -0
  1914. package/src/date-fns/subISOWeekYears/index.ts +9 -6
  1915. package/src/date-fns/subISOWeekYears/test.mts +41 -0
  1916. package/src/date-fns/subMilliseconds/index.ts +9 -6
  1917. package/src/date-fns/subMilliseconds/test.mts +30 -0
  1918. package/src/date-fns/subMinutes/index.ts +9 -6
  1919. package/src/date-fns/subMinutes/test.mts +30 -0
  1920. package/src/date-fns/subMonths/index.ts +9 -6
  1921. package/src/date-fns/subMonths/test.mts +47 -0
  1922. package/src/date-fns/subQuarters/index.ts +9 -6
  1923. package/src/date-fns/subQuarters/test.mts +47 -0
  1924. package/src/date-fns/subSeconds/index.ts +9 -6
  1925. package/src/date-fns/subSeconds/test.mts +30 -0
  1926. package/src/date-fns/subWeeks/index.ts +9 -6
  1927. package/src/date-fns/subWeeks/test.mts +30 -0
  1928. package/src/date-fns/subYears/index.ts +9 -6
  1929. package/src/date-fns/subYears/test.mts +46 -0
  1930. package/src/date-fns/toDate/index.ts +32 -16
  1931. package/src/date-fns/toDate/test.mts +35 -0
  1932. package/src/date-fns/transpose/index.ts +10 -5
  1933. package/src/date-fns/types.ts +233 -32
  1934. package/src/date-fns/weeksToDays/index.ts +4 -4
  1935. package/src/date-fns/weeksToDays/test.mts +24 -0
  1936. package/src/date-fns/yearsToDays/index.ts +22 -0
  1937. package/src/date-fns/yearsToDays/test.mts +24 -0
  1938. package/src/date-fns/yearsToMonths/index.ts +4 -4
  1939. package/src/date-fns/yearsToMonths/test.mts +24 -0
  1940. package/src/date-fns/yearsToQuarters/index.ts +4 -4
  1941. package/src/date-fns/yearsToQuarters/test.mts +24 -0
  1942. package/src/date-fns-tz/format/index.ts +1 -1
  1943. package/src/date-fns-tz/formatInTimeZone/index.ts +1 -1
  1944. package/src/date-fns-tz/toDate/index.ts +1 -1
  1945. package/src/date-fns-tz/utcToZonedTime/index.ts +1 -1
  1946. package/src/date-fns-tz/zonedTimeToUtc/index.ts +1 -1
  1947. package/dist-mjs/date-fns/_lib/assign/index.mjs +0 -16
  1948. package/dist-mjs/date-fns/_lib/cloneObject/index.mjs +0 -9
  1949. package/dist-mjs/date-fns/_lib/roundingMethods/index.mjs +0 -16
  1950. package/dist-mjs/date-fns/fp/endOfDecadeWithOptions/index.mjs +0 -8
  1951. package/dist-mjs/date-fns/fp/lastDayOfQuarterWithOptions/index.mjs +0 -8
  1952. package/dist-types/date-fns/fp/endOfDecadeWithOptions/index.d.ts +0 -2
  1953. package/dist-types/date-fns/fp/lastDayOfQuarterWithOptions/index.d.ts +0 -2
  1954. package/src/date-fns/CONTRIBUTING.md +0 -170
  1955. package/src/date-fns/_lib/roundingMethods/index.ts +0 -18
  1956. package/src/date-fns/fp/endOfDecadeWithOptions/index.ts +0 -6
  1957. package/src/date-fns/fp/lastDayOfQuarterWithOptions/index.ts +0 -6
  1958. /package/dist-types/{date-fns/_lib → date-fns-tz/date-fns-v2-lib}/assign/index.d.ts +0 -0
  1959. /package/dist-types/{date-fns/_lib → date-fns-tz/date-fns-v2-lib}/cloneObject/index.d.ts +0 -0
  1960. /package/src/{date-fns/_lib → date-fns-tz/date-fns-v2-lib}/assign/index.ts +0 -0
  1961. /package/src/{date-fns/_lib → date-fns-tz/date-fns-v2-lib}/cloneObject/index.ts +0 -0
@@ -0,0 +1,2202 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { parse } from './index';
3
+
4
+ describe('parse', () => {
5
+ const referenceDate = new Date(1986, 3 /* Apr */, 4, 10, 32, 0, 900);
6
+
7
+ it('escapes characters between the single quote characters', () => {
8
+ const result = parse('2018 hello world July 2nd', "yyyy 'hello world' MMMM do", referenceDate);
9
+ expect(result).toEqual(new Date(2018, 6 /* Jul */, 2));
10
+ });
11
+
12
+ it('two single quote characters are transformed into a "real" single quote', () => {
13
+ const result = parse("'5 o'clock'", "''h 'o''clock'''", referenceDate);
14
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 5));
15
+ });
16
+
17
+ it('accepts new line charactor', () => {
18
+ const result = parse('2014-04-04\n05:00:00', "yyyy-MM-dd'\n'HH:mm:ss", referenceDate);
19
+ expect(result).toEqual(new Date(2014, 3 /* Apr */, 4, 5));
20
+ });
21
+
22
+ describe('era', () => {
23
+ it('abbreviated', () => {
24
+ const result = parse('10000 BC', 'yyyyy G', referenceDate);
25
+ expect(result).toEqual(new Date(-9999, 0 /* Jan */, 1));
26
+ });
27
+
28
+ it('wide', () => {
29
+ const result = parse('2018 Anno Domini', 'yyyy GGGG', referenceDate);
30
+ expect(result).toEqual(new Date(2018, 0 /* Jan */, 1));
31
+ });
32
+
33
+ it('narrow', () => {
34
+ const result = parse('44 B', 'y GGGGG', referenceDate);
35
+ expect(result).toEqual(new Date(-43, 0 /* Jan */, 1));
36
+ });
37
+
38
+ it('with week-numbering year', () => {
39
+ const result = parse('44 B', 'Y GGGGG', referenceDate);
40
+ expect(result).toEqual(new Date(-44, 11 /* Dec */, 30));
41
+ });
42
+
43
+ it('parses stand-alone BC', () => {
44
+ const result = parse('BC', 'G', referenceDate);
45
+ const expectedResult = new Date(0);
46
+ expectedResult.setFullYear(0, 0 /* Jan */, 1);
47
+ expectedResult.setHours(0, 0, 0, 0);
48
+ expect(result).toEqual(expectedResult);
49
+ });
50
+
51
+ it('parses stand-alone AD', () => {
52
+ const result = parse('AD', 'G', referenceDate);
53
+ const expectedResult = new Date(0);
54
+ expectedResult.setFullYear(1, 0 /* Jan */, 1);
55
+ expectedResult.setHours(0, 0, 0, 0);
56
+ expect(result).toEqual(expectedResult);
57
+ });
58
+
59
+ describe('validation', () => {
60
+ [
61
+ ['G', 'BC'],
62
+ ['R', '2019'],
63
+ ['u', '2019'],
64
+ ['t', '512969520'],
65
+ ['T', '512969520900'],
66
+ ].forEach(([token, example]) => {
67
+ it(`throws an error when G is used after ${token}`, () => {
68
+ const block = () => parse(`${example} 420`, `${token} G`, referenceDate);
69
+ expect(block).toThrow(RangeError);
70
+ expect(block).toThrow(
71
+ new RegExp(`The format string mustn't contain \`${token}\` and \`G\` at the same time`),
72
+ );
73
+ });
74
+ });
75
+ });
76
+ });
77
+
78
+ describe('calendar year', () => {
79
+ it('numeric', () => {
80
+ const result = parse('2017', 'y', referenceDate);
81
+ expect(result).toEqual(new Date(2017, 0 /* Jan */, 1));
82
+ });
83
+
84
+ it('ordinal', () => {
85
+ const result = parse('2017th', 'yo', referenceDate);
86
+ expect(result).toEqual(new Date(2017, 0 /* Jan */, 1));
87
+ });
88
+
89
+ describe('two-digit numeric year', () => {
90
+ it('works as expected', () => {
91
+ const result = parse('02', 'yy', referenceDate);
92
+ expect(result).toEqual(new Date(2002, 0 /* Jan */, 1));
93
+ });
94
+
95
+ it('gets the 100 year range from `referenceDate`', () => {
96
+ const result = parse('02', 'yy', new Date(1860, 6 /* Jul */, 2));
97
+ expect(result).toEqual(new Date(1902, 0 /* Jan */, 1));
98
+ });
99
+ });
100
+
101
+ it('three-digit zero-padding', () => {
102
+ const result = parse('123', 'yyy', referenceDate);
103
+ expect(result).toEqual(new Date(123, 0 /* Jan */, 1));
104
+ });
105
+
106
+ it('four-digit zero-padding', () => {
107
+ const result = parse('0044', 'yyyy', referenceDate);
108
+ const expectedResult = new Date(0);
109
+ expectedResult.setFullYear(44, 0 /* Jan */, 1);
110
+ expectedResult.setHours(0, 0, 0, 0);
111
+ expect(result).toEqual(expectedResult);
112
+ });
113
+
114
+ it('specified amount of digits', () => {
115
+ const result = parse('000001', 'yyyyyy', referenceDate);
116
+ const expectedResult = new Date(0);
117
+ expectedResult.setFullYear(1, 0 /* Jan */, 1);
118
+ expectedResult.setHours(0, 0, 0, 0);
119
+ expect(result).toEqual(expectedResult);
120
+ });
121
+
122
+ describe('validation', () => {
123
+ [
124
+ ['y', '2019'],
125
+ ['Y', '2019'],
126
+ ['R', '2019'],
127
+ ['u', '2019'],
128
+ ['w', '1'],
129
+ ['I', '1'],
130
+ ['i', '1'],
131
+ ['e', '1'],
132
+ ['c', '1'],
133
+ ['t', '512969520'],
134
+ ['T', '512969520900'],
135
+ ].forEach(([token, example]) => {
136
+ it(`throws an error when y is used after ${token}`, () => {
137
+ const block = () => parse(`${example} 2019`, `${token} y`, referenceDate);
138
+ expect(block).toThrow(RangeError);
139
+ expect(block).toThrow(
140
+ new RegExp(`The format string mustn't contain \`${token}\` and \`y\` at the same time`),
141
+ );
142
+ });
143
+ });
144
+ });
145
+ });
146
+
147
+ describe('local week-numbering year', () => {
148
+ it('numeric', () => {
149
+ const result = parse('2002', 'Y', referenceDate);
150
+ expect(result).toEqual(new Date(2001, 11 /* Dec */, 30));
151
+ });
152
+
153
+ it('ordinal', () => {
154
+ const result = parse('12345th', 'Yo', referenceDate);
155
+ expect(result).toEqual(new Date(12344, 11 /* Dec */, 31));
156
+ });
157
+
158
+ describe('two-digit numeric year', () => {
159
+ it('works as expected', () => {
160
+ const result = parse('02', 'YY', referenceDate, {
161
+ useAdditionalWeekYearTokens: true,
162
+ });
163
+ expect(result).toEqual(new Date(2001, 11 /* Dec */, 30));
164
+ });
165
+
166
+ it('gets the 100 year range from `referenceDate`', () => {
167
+ const result = parse('02', 'YY', new Date(1860, 6 /* Jul */, 2), {
168
+ useAdditionalWeekYearTokens: true,
169
+ });
170
+ expect(result).toEqual(new Date(1901, 11 /* Dec */, 29));
171
+ });
172
+ });
173
+
174
+ it('three-digit zero-padding', () => {
175
+ const result = parse('123', 'YYY', referenceDate);
176
+ expect(result).toEqual(new Date(122, 11 /* Dec */, 27));
177
+ });
178
+
179
+ it('four-digit zero-padding', () => {
180
+ const result = parse('2018', 'YYYY', referenceDate, {
181
+ useAdditionalWeekYearTokens: true,
182
+ });
183
+ expect(result).toEqual(new Date(2017, 11 /* Dec */, 31));
184
+ });
185
+
186
+ it('specified amount of digits', () => {
187
+ const result = parse('000001', 'YYYYYY', referenceDate);
188
+ const expectedResult = new Date(0);
189
+ expectedResult.setFullYear(0, 11 /* Dec */, 31);
190
+ expectedResult.setHours(0, 0, 0, 0);
191
+ expect(result).toEqual(expectedResult);
192
+ });
193
+
194
+ it('allows to specify `weekStartsOn` and `firstWeekContainsDate` in options', () => {
195
+ const result = parse('2018', 'Y', referenceDate, {
196
+ weekStartsOn: 1 /* Mon */,
197
+ firstWeekContainsDate: 4,
198
+ });
199
+ expect(result).toEqual(new Date(2018, 0 /* Jan */, 1));
200
+ });
201
+
202
+ describe('validation', () => {
203
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
204
+ ['y', '2019'],
205
+ ['Y', '2019'],
206
+ ['R', '2019'],
207
+ ['u', '2019'],
208
+ ['Q', '1'],
209
+ ['q', '1'],
210
+ ['M', '1'],
211
+ ['L', '1'],
212
+ ['I', '1'],
213
+ ['d', '1'],
214
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
215
+ ['i', '1'],
216
+ ['t', '512969520'],
217
+ ['T', '512969520900'],
218
+ ];
219
+ tokensToValidate.forEach(([token, example, options]) => {
220
+ it(`throws an error when Y is used after ${token}`, () => {
221
+ const block = () => parse(`${example} 2019`, `${token} Y`, referenceDate, options);
222
+ expect(block).toThrow(RangeError);
223
+ expect(block).toThrow(
224
+ new RegExp(`The format string mustn't contain \`${token}\` and \`Y\` at the same time`),
225
+ );
226
+ });
227
+ });
228
+ });
229
+ });
230
+
231
+ describe('ISO week-numbering year', () => {
232
+ it('numeric', () => {
233
+ const result = parse('-1234', 'R', referenceDate);
234
+ expect(result).toEqual(new Date(-1234, 0 /* Jan */, 3));
235
+ });
236
+
237
+ it('two-digit zero-padding', () => {
238
+ const result = parse('-02', 'RR', referenceDate);
239
+ expect(result).toEqual(new Date(-3, 11 /* Dec */, 29));
240
+ });
241
+
242
+ it('three-digit zero-padding', () => {
243
+ const result = parse('123', 'RRR', referenceDate);
244
+ expect(result).toEqual(new Date(123, 0 /* Jan */, 4));
245
+ });
246
+
247
+ it('four-digit zero-padding', () => {
248
+ const result = parse('2018', 'RRRR', referenceDate);
249
+ expect(result).toEqual(new Date(2018, 0 /* Jan */, 1));
250
+ });
251
+
252
+ it('specified amount of digits', () => {
253
+ const result = parse('000001', 'RRRRRR', referenceDate);
254
+ const expectedResult = new Date(0);
255
+ expectedResult.setFullYear(1, 0 /* Jan */, 1);
256
+ expectedResult.setHours(0, 0, 0, 0);
257
+ expect(result).toEqual(expectedResult);
258
+ });
259
+
260
+ describe('validation', () => {
261
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
262
+ ['G', 'AD'],
263
+ ['y', '2019'],
264
+ ['Y', '2019'],
265
+ ['R', '2019'],
266
+ ['u', '2019'],
267
+ ['Q', '1'],
268
+ ['q', '1'],
269
+ ['M', '1'],
270
+ ['L', '1'],
271
+ ['w', '1'],
272
+ ['d', '1'],
273
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
274
+ ['e', '1'],
275
+ ['c', '1'],
276
+ ['t', '512969520'],
277
+ ['T', '512969520900'],
278
+ ];
279
+ tokensToValidate.forEach(([token, example, options]) => {
280
+ it(`throws an error when R is used after ${token}`, () => {
281
+ const block = () => parse(`${example} 2019`, `${token} R`, referenceDate, options);
282
+ expect(block).toThrow(RangeError);
283
+ expect(block).toThrow(
284
+ new RegExp(`The format string mustn't contain \`${token}\` and \`R\` at the same time`),
285
+ );
286
+ });
287
+ });
288
+ });
289
+ });
290
+
291
+ describe('extended year', () => {
292
+ it('numeric', () => {
293
+ const result = parse('-1234', 'u', referenceDate);
294
+ expect(result).toEqual(new Date(-1234, 0 /* Jan */, 1));
295
+ });
296
+
297
+ it('two-digit zero-padding', () => {
298
+ const result = parse('-02', 'uu', referenceDate);
299
+ expect(result).toEqual(new Date(-2, 0 /* Jan */, 1));
300
+ });
301
+
302
+ it('three-digit zero-padding', () => {
303
+ const result = parse('123', 'uuu', referenceDate);
304
+ expect(result).toEqual(new Date(123, 0 /* Jan */, 1));
305
+ });
306
+
307
+ it('four-digit zero-padding', () => {
308
+ const result = parse('2018', 'uuuu', referenceDate);
309
+ expect(result).toEqual(new Date(2018, 0 /* Jan */, 1));
310
+ });
311
+
312
+ it('specified amount of digits', () => {
313
+ const result = parse('000001', 'uuuuuu', referenceDate);
314
+ const expectedResult = new Date(0);
315
+ expectedResult.setFullYear(1, 0 /* Jan */, 1);
316
+ expectedResult.setHours(0, 0, 0, 0);
317
+ expect(result).toEqual(expectedResult);
318
+ });
319
+
320
+ describe('validation', () => {
321
+ [
322
+ ['G', 'AD'],
323
+ ['y', '2019'],
324
+ ['Y', '2019'],
325
+ ['R', '2019'],
326
+ ['u', '2019'],
327
+ ['w', '1'],
328
+ ['I', '1'],
329
+ ['i', '1'],
330
+ ['e', '1'],
331
+ ['c', '1'],
332
+ ['t', '512969520'],
333
+ ['T', '512969520900'],
334
+ ].forEach(([token, example]) => {
335
+ it(`throws an error when u is used after ${token}`, () => {
336
+ const block = () => parse(`${example} 2019`, `${token} u`, referenceDate);
337
+ expect(block).toThrow(RangeError);
338
+ expect(block).toThrow(
339
+ new RegExp(`The format string mustn't contain \`${token}\` and \`u\` at the same time`),
340
+ );
341
+ });
342
+ });
343
+ });
344
+ });
345
+
346
+ describe('quarter with following year', () => {
347
+ it('first quarter', () => {
348
+ const result = parse('Q1/2020', 'QQQ/yyyy', referenceDate);
349
+ expect(result).toEqual(new Date(2020, 0 /* Jan */, 1));
350
+ });
351
+
352
+ it('second quarter', () => {
353
+ const result = parse('Q2/2020', 'QQQ/yyyy', referenceDate);
354
+ expect(result).toEqual(new Date(2020, 3 /* Apr */, 1));
355
+ });
356
+
357
+ it('third quarter', () => {
358
+ const result = parse('Q3/2020', 'QQQ/yyyy', referenceDate);
359
+ expect(result).toEqual(new Date(2020, 6 /* Jul */, 1));
360
+ });
361
+
362
+ it('fourth quarter', () => {
363
+ const result = parse('Q4/2020', 'QQQ/yyyy', referenceDate);
364
+ expect(result).toEqual(new Date(2020, 9 /* Oct */, 1));
365
+ });
366
+ });
367
+
368
+ describe('quarter (formatting)', () => {
369
+ it('numeric', () => {
370
+ const result = parse('1', 'Q', referenceDate);
371
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
372
+ });
373
+
374
+ it('ordinal', () => {
375
+ const result = parse('1st', 'Qo', referenceDate);
376
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
377
+ });
378
+
379
+ it('zero-padding', () => {
380
+ const result = parse('02', 'QQ', referenceDate);
381
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 1));
382
+ });
383
+
384
+ it('abbreviated', () => {
385
+ const result = parse('Q3', 'QQQ', referenceDate);
386
+ expect(result).toEqual(new Date(1986, 6 /* Jul */, 1));
387
+ });
388
+
389
+ it('wide', () => {
390
+ const result = parse('4st quarter', 'QQQQ', referenceDate);
391
+ expect(result).toEqual(new Date(1986, 9 /* Oct */, 1));
392
+ });
393
+
394
+ it('narrow', () => {
395
+ const result = parse('1', 'QQQQQ', referenceDate);
396
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
397
+ });
398
+
399
+ describe('validation', () => {
400
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
401
+ ['Y', '2019'],
402
+ ['R', '2019'],
403
+ ['Q', '1'],
404
+ ['q', '1'],
405
+ ['M', '1'],
406
+ ['L', '1'],
407
+ ['w', '1'],
408
+ ['I', '1'],
409
+ ['d', '1'],
410
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
411
+ ['i', '1'],
412
+ ['e', '1'],
413
+ ['c', '1'],
414
+ ['t', '512969520'],
415
+ ['T', '512969520900'],
416
+ ];
417
+ tokensToValidate.forEach(([token, example, options]) => {
418
+ it(`throws an error when Q is used after ${token}`, () => {
419
+ const block = () => parse(`${example} 1`, `${token} Q`, referenceDate, options);
420
+ expect(block).toThrow(RangeError);
421
+ expect(block).toThrow(
422
+ new RegExp(`The format string mustn't contain \`${token}\` and \`Q\` at the same time`),
423
+ );
424
+ });
425
+ });
426
+ });
427
+ });
428
+
429
+ describe('quarter (stand-alone)', () => {
430
+ it('numeric', () => {
431
+ const result = parse('1', 'q', referenceDate);
432
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
433
+ });
434
+
435
+ it('ordinal', () => {
436
+ const result = parse('1th', 'qo', referenceDate);
437
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
438
+ });
439
+
440
+ it('zero-padding', () => {
441
+ const result = parse('02', 'qq', referenceDate);
442
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 1));
443
+ });
444
+
445
+ it('abbreviated', () => {
446
+ const result = parse('Q3', 'qqq', referenceDate);
447
+ expect(result).toEqual(new Date(1986, 6 /* Jul */, 1));
448
+ });
449
+
450
+ it('wide', () => {
451
+ const result = parse('4th quarter', 'qqqq', referenceDate);
452
+ expect(result).toEqual(new Date(1986, 9 /* Oct */, 1));
453
+ });
454
+
455
+ it('narrow', () => {
456
+ const result = parse('1', 'qqqqq', referenceDate);
457
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
458
+ });
459
+
460
+ describe('validation', () => {
461
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
462
+ ['Y', '2019'],
463
+ ['R', '2019'],
464
+ ['Q', '1'],
465
+ ['q', '1'],
466
+ ['M', '1'],
467
+ ['L', '1'],
468
+ ['w', '1'],
469
+ ['I', '1'],
470
+ ['d', '1'],
471
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
472
+ ['i', '1'],
473
+ ['e', '1'],
474
+ ['c', '1'],
475
+ ['t', '512969520'],
476
+ ['T', '512969520900'],
477
+ ];
478
+ tokensToValidate.forEach(([token, example, options]) => {
479
+ it(`throws an error when q is used after ${token}`, () => {
480
+ const block = () => parse(`${example} 1`, `${token} q`, referenceDate, options);
481
+ expect(block).toThrow(RangeError);
482
+ expect(block).toThrow(
483
+ new RegExp(`The format string mustn't contain \`${token}\` and \`q\` at the same time`),
484
+ );
485
+ });
486
+ });
487
+ });
488
+ });
489
+
490
+ describe('month (formatting)', () => {
491
+ it('numeric', () => {
492
+ const result = parse('6', 'M', referenceDate);
493
+ expect(result).toEqual(new Date(1986, 5 /* Jun */, 1));
494
+ });
495
+
496
+ it('ordinal', () => {
497
+ const result = parse('6th', 'Mo', referenceDate);
498
+ expect(result).toEqual(new Date(1986, 5 /* Jun */, 1));
499
+ });
500
+
501
+ it('zero-padding', () => {
502
+ const result = parse('01', 'MM', referenceDate);
503
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
504
+ });
505
+
506
+ it('abbreviated', () => {
507
+ const result = parse('Nov', 'MMM', referenceDate);
508
+ expect(result).toEqual(new Date(1986, 10 /* Nov */, 1));
509
+ });
510
+
511
+ it('wide', () => {
512
+ const result = parse('February', 'MMMM', referenceDate);
513
+ expect(result).toEqual(new Date(1986, 1 /* Feb */, 1));
514
+ });
515
+
516
+ it('narrow', () => {
517
+ const result = parse('J', 'MMMMM', referenceDate);
518
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
519
+ });
520
+
521
+ describe('validation', () => {
522
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
523
+ ['Y', '2019'],
524
+ ['R', '2019'],
525
+ ['Q', '1'],
526
+ ['q', '1'],
527
+ ['M', '1'],
528
+ ['L', '1'],
529
+ ['w', '1'],
530
+ ['I', '1'],
531
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
532
+ ['i', '1'],
533
+ ['e', '1'],
534
+ ['c', '1'],
535
+ ['t', '512969520'],
536
+ ['T', '512969520900'],
537
+ ];
538
+ tokensToValidate.forEach(([token, example, options]) => {
539
+ it(`throws an error when M is used after ${token}`, () => {
540
+ const block = () => parse(`${example} 1`, `${token} M`, referenceDate, options);
541
+ expect(block).toThrow(RangeError);
542
+ expect(block).toThrow(
543
+ new RegExp(`The format string mustn't contain \`${token}\` and \`M\` at the same time`),
544
+ );
545
+ });
546
+ });
547
+ });
548
+ });
549
+
550
+ describe('month (stand-alone)', () => {
551
+ it('numeric', () => {
552
+ const result = parse('6', 'L', referenceDate);
553
+ expect(result).toEqual(new Date(1986, 5 /* Jun */, 1));
554
+ });
555
+
556
+ it('ordinal', () => {
557
+ const result = parse('6th', 'Lo', referenceDate);
558
+ expect(result).toEqual(new Date(1986, 5 /* Jun */, 1));
559
+ });
560
+
561
+ it('zero-padding', () => {
562
+ const result = parse('01', 'LL', referenceDate);
563
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
564
+ });
565
+
566
+ it('abbreviated', () => {
567
+ const result = parse('Nov', 'LLL', referenceDate);
568
+ expect(result).toEqual(new Date(1986, 10 /* Nov */, 1));
569
+ });
570
+
571
+ it('wide', () => {
572
+ const result = parse('February', 'LLLL', referenceDate);
573
+ expect(result).toEqual(new Date(1986, 1 /* Feb */, 1));
574
+ });
575
+
576
+ it('narrow', () => {
577
+ const result = parse('J', 'LLLLL', referenceDate);
578
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
579
+ });
580
+
581
+ describe('validation', () => {
582
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
583
+ ['Y', '2019'],
584
+ ['R', '2019'],
585
+ ['Q', '1'],
586
+ ['q', '1'],
587
+ ['M', '1'],
588
+ ['L', '1'],
589
+ ['w', '1'],
590
+ ['I', '1'],
591
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
592
+ ['i', '1'],
593
+ ['e', '1'],
594
+ ['c', '1'],
595
+ ['t', '512969520'],
596
+ ['T', '512969520900'],
597
+ ];
598
+ tokensToValidate.forEach(([token, example, options]) => {
599
+ it(`throws an error when L is used after ${token}`, () => {
600
+ const block = () => parse(`${example} 1`, `${token} L`, referenceDate, options);
601
+ expect(block).toThrow(RangeError);
602
+ expect(block).toThrow(
603
+ new RegExp(`The format string mustn't contain \`${token}\` and \`L\` at the same time`),
604
+ );
605
+ });
606
+ });
607
+ });
608
+ });
609
+
610
+ describe('local week of year', () => {
611
+ it('numeric', () => {
612
+ const result = parse('49', 'w', referenceDate);
613
+ expect(result).toEqual(new Date(1986, 10 /* Nov */, 30));
614
+ });
615
+
616
+ it('ordinal', () => {
617
+ const result = parse('49th', 'wo', referenceDate);
618
+ expect(result).toEqual(new Date(1986, 10 /* Nov */, 30));
619
+ });
620
+
621
+ it('zero-padding', () => {
622
+ const result = parse('01', 'ww', referenceDate);
623
+ expect(result).toEqual(new Date(1985, 11 /* Dec */, 29));
624
+ });
625
+
626
+ it('allows to specify `weekStartsOn` and `firstWeekContainsDate` in options', () => {
627
+ const result = parse('49', 'w', referenceDate, {
628
+ weekStartsOn: 1 /* Mon */,
629
+ firstWeekContainsDate: 4,
630
+ });
631
+ expect(result).toEqual(new Date(1986, 11 /* Dec */, 1));
632
+ });
633
+
634
+ describe('validation', () => {
635
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
636
+ ['y', '2019'],
637
+ ['R', '2019'],
638
+ ['u', '2019'],
639
+ ['Q', '1'],
640
+ ['q', '1'],
641
+ ['M', '1'],
642
+ ['L', '1'],
643
+ ['w', '1'],
644
+ ['I', '1'],
645
+ ['d', '1'],
646
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
647
+ ['i', '1'],
648
+ ['t', '512969520'],
649
+ ['T', '512969520900'],
650
+ ];
651
+ tokensToValidate.forEach(([token, example, options]) => {
652
+ it(`throws an error when w is used after ${token}`, () => {
653
+ const block = () => parse(`${example} 1`, `${token} w`, referenceDate, options);
654
+ expect(block).toThrow(RangeError);
655
+ expect(block).toThrow(
656
+ new RegExp(`The format string mustn't contain \`${token}\` and \`w\` at the same time`),
657
+ );
658
+ });
659
+ });
660
+ });
661
+ });
662
+
663
+ describe('ISO week of year', () => {
664
+ it('numeric', () => {
665
+ const result = parse('49', 'I', referenceDate);
666
+ expect(result).toEqual(new Date(1986, 11 /* Dec */, 1));
667
+ });
668
+
669
+ it('ordinal', () => {
670
+ const result = parse('49th', 'Io', referenceDate);
671
+ expect(result).toEqual(new Date(1986, 11 /* Dec */, 1));
672
+ });
673
+
674
+ it('zero-padding', () => {
675
+ const result = parse('01', 'II', referenceDate);
676
+ expect(result).toEqual(new Date(1985, 11 /* Dec */, 30));
677
+ });
678
+
679
+ describe('validation', () => {
680
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
681
+ ['y', '2019'],
682
+ ['Y', '2019'],
683
+ ['u', '2019'],
684
+ ['Q', '1'],
685
+ ['q', '1'],
686
+ ['M', '1'],
687
+ ['L', '1'],
688
+ ['w', '1'],
689
+ ['I', '1'],
690
+ ['d', '1'],
691
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
692
+ ['e', '1'],
693
+ ['c', '1'],
694
+ ['t', '512969520'],
695
+ ['T', '512969520900'],
696
+ ];
697
+ tokensToValidate.forEach(([token, example, options]) => {
698
+ it(`throws an error when I is used after ${token}`, () => {
699
+ const block = () => parse(`${example} 1`, `${token} I`, referenceDate, options);
700
+ expect(block).toThrow(RangeError);
701
+ expect(block).toThrow(
702
+ new RegExp(`The format string mustn't contain \`${token}\` and \`I\` at the same time`),
703
+ );
704
+ });
705
+ });
706
+ });
707
+ });
708
+
709
+ describe('day of month', () => {
710
+ it('numeric', () => {
711
+ const result = parse('28', 'd', referenceDate);
712
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 28));
713
+ });
714
+
715
+ it('ordinal', () => {
716
+ const result = parse('28th', 'do', referenceDate);
717
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 28));
718
+ });
719
+
720
+ it('zero-padding', () => {
721
+ const result = parse('01', 'dd', referenceDate);
722
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 1));
723
+ });
724
+
725
+ describe('validation', () => {
726
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
727
+ ['Y', '2019'],
728
+ ['R', '2019'],
729
+ ['Q', '1'],
730
+ ['q', '1'],
731
+ ['w', '1'],
732
+ ['I', '1'],
733
+ ['d', '1'],
734
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
735
+ ['i', '1'],
736
+ ['e', '1'],
737
+ ['c', '1'],
738
+ ['t', '512969520'],
739
+ ['T', '512969520900'],
740
+ ];
741
+ tokensToValidate.forEach(([token, example, options]) => {
742
+ it(`throws an error when d is used after ${token}`, () => {
743
+ const block = () => parse(`${example} 1`, `${token} d`, referenceDate, options);
744
+ expect(block).toThrow(RangeError);
745
+ expect(block).toThrow(
746
+ new RegExp(`The format string mustn't contain \`${token}\` and \`d\` at the same time`),
747
+ );
748
+ });
749
+ });
750
+ });
751
+ });
752
+
753
+ describe('day of year', () => {
754
+ it('numeric', () => {
755
+ const result = parse('200', 'D', referenceDate, {
756
+ useAdditionalDayOfYearTokens: true,
757
+ });
758
+ expect(result).toEqual(new Date(1986, 6 /* Jul */, 19));
759
+ });
760
+
761
+ it('ordinal', () => {
762
+ const result = parse('200th', 'Do', referenceDate);
763
+ expect(result).toEqual(new Date(1986, 6 /* Jul */, 19));
764
+ });
765
+
766
+ it('two-digit zero-padding', () => {
767
+ const result = parse('01', 'DD', referenceDate, {
768
+ useAdditionalDayOfYearTokens: true,
769
+ });
770
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
771
+ });
772
+
773
+ it('three-digit zero-padding', () => {
774
+ const result = parse('001', 'DDD', referenceDate);
775
+ expect(result).toEqual(new Date(1986, 0 /* Jan */, 1));
776
+ });
777
+
778
+ it('specified amount of digits', () => {
779
+ const result = parse('000200', 'DDDDDD', referenceDate);
780
+ expect(result).toEqual(new Date(1986, 6 /* Jul */, 19));
781
+ });
782
+
783
+ describe('validation', () => {
784
+ [
785
+ ['Y', '2019'],
786
+ ['R', '2019'],
787
+ ['Q', '1'],
788
+ ['q', '1'],
789
+ ['M', '1'],
790
+ ['L', '1'],
791
+ ['w', '1'],
792
+ ['I', '1'],
793
+ ['d', '1'],
794
+ ['D', '1'],
795
+ ['E', 'Mon'],
796
+ ['i', '1'],
797
+ ['e', '1'],
798
+ ['c', '1'],
799
+ ['t', '512969520'],
800
+ ['T', '512969520900'],
801
+ ].forEach(([token, example, _options]) => {
802
+ it(`throws an error when D is used after ${token}`, () => {
803
+ const block = () =>
804
+ parse(`${example} 1`, `${token} D`, referenceDate, {
805
+ useAdditionalDayOfYearTokens: true,
806
+ });
807
+ expect(block).toThrow(RangeError);
808
+ expect(block).toThrow(
809
+ new RegExp(`The format string mustn't contain \`${token}\` and \`D\` at the same time`),
810
+ );
811
+ });
812
+ });
813
+ });
814
+ });
815
+
816
+ describe('day of week (formatting)', () => {
817
+ it('abbreviated', () => {
818
+ const result = parse('Mon', 'E', referenceDate);
819
+ expect(result).toEqual(new Date(1986, 2 /* Mar */, 31));
820
+ });
821
+
822
+ it('wide', () => {
823
+ const result = parse('Tuesday', 'EEEE', referenceDate);
824
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 1));
825
+ });
826
+
827
+ it('narrow', () => {
828
+ const result = parse('W', 'EEEEE', referenceDate);
829
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 2));
830
+ });
831
+
832
+ it('short', () => {
833
+ const result = parse('Th', 'EEEEEE', referenceDate);
834
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 3));
835
+ });
836
+
837
+ it('allows to specify which day is the first day of the week', () => {
838
+ const result = parse('Thursday', 'EEEE', referenceDate, {
839
+ weekStartsOn: /* Fri */ 5,
840
+ });
841
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 10));
842
+ });
843
+
844
+ describe('validation', () => {
845
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
846
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
847
+ ['E', 'Mon'],
848
+ ['i', '1'],
849
+ ['e', '1'],
850
+ ['c', '1'],
851
+ ['t', '512969520'],
852
+ ['T', '512969520900'],
853
+ ];
854
+ tokensToValidate.forEach(([token, example, options]) => {
855
+ it(`throws an error when E is used after ${token}`, () => {
856
+ const block = () => parse(`${example} Mon`, `${token} E`, referenceDate, options);
857
+ expect(block).toThrow(RangeError);
858
+ expect(block).toThrow(
859
+ new RegExp(`The format string mustn't contain \`${token}\` and \`E\` at the same time`),
860
+ );
861
+ });
862
+ });
863
+ });
864
+ });
865
+
866
+ describe('ISO day of week (formatting)', () => {
867
+ it('numeric', () => {
868
+ const result = parse('1', 'i', referenceDate);
869
+ expect(result).toEqual(new Date(1986, 2 /* Mar */, 31));
870
+ });
871
+
872
+ it('ordinal', () => {
873
+ const result = parse('1st', 'io', referenceDate);
874
+ expect(result).toEqual(new Date(1986, 2 /* Mar */, 31));
875
+ });
876
+
877
+ it('zero-padding', () => {
878
+ const result = parse('02', 'ii', referenceDate);
879
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 1));
880
+ });
881
+
882
+ it('abbreviated', () => {
883
+ const result = parse('Wed', 'iii', referenceDate);
884
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 2));
885
+ });
886
+
887
+ it('wide', () => {
888
+ const result = parse('Thursday', 'iiii', referenceDate);
889
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 3));
890
+ });
891
+
892
+ it('narrow', () => {
893
+ const result = parse('S', 'iiiii', referenceDate);
894
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 6));
895
+ });
896
+
897
+ it('short', () => {
898
+ const result = parse('Fr', 'iiiiii', referenceDate);
899
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4));
900
+ });
901
+
902
+ describe('validation', () => {
903
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
904
+ ['y', '2019'],
905
+ ['Y', '2019'],
906
+ ['u', '2019'],
907
+ ['Q', '1'],
908
+ ['q', '1'],
909
+ ['M', '1'],
910
+ ['L', '1'],
911
+ ['w', '1'],
912
+ ['d', '1'],
913
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
914
+ ['E', 'Mon'],
915
+ ['i', '1'],
916
+ ['e', '1'],
917
+ ['c', '1'],
918
+ ['t', '512969520'],
919
+ ['T', '512969520900'],
920
+ ];
921
+ tokensToValidate.forEach(([token, example, options]) => {
922
+ it(`throws an error when i is used after ${token}`, () => {
923
+ const block = () => parse(`${example} 1`, `${token} i`, referenceDate, options);
924
+ expect(block).toThrow(RangeError);
925
+ expect(block).toThrow(
926
+ new RegExp(`The format string mustn't contain \`${token}\` and \`i\` at the same time`),
927
+ );
928
+ });
929
+ });
930
+ });
931
+ });
932
+
933
+ describe('local day of week (formatting)', () => {
934
+ it('numeric', () => {
935
+ const result = parse('2', 'e', referenceDate);
936
+ expect(result).toEqual(new Date(1986, 2 /* Mar */, 31));
937
+ });
938
+
939
+ it('ordinal', () => {
940
+ const result = parse('2nd', 'eo', referenceDate);
941
+ expect(result).toEqual(new Date(1986, 2 /* Mar */, 31));
942
+ });
943
+
944
+ it('zero-padding', () => {
945
+ const result = parse('03', 'ee', referenceDate);
946
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 1));
947
+ });
948
+
949
+ it('abbreviated', () => {
950
+ const result = parse('Wed', 'eee', referenceDate);
951
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 2));
952
+ });
953
+
954
+ it('wide', () => {
955
+ const result = parse('Thursday', 'eeee', referenceDate);
956
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 3));
957
+ });
958
+
959
+ it('narrow', () => {
960
+ const result = parse('S', 'eeeee', referenceDate);
961
+ expect(result).toEqual(new Date(1986, 2 /* Mar */, 30));
962
+ });
963
+
964
+ it('short', () => {
965
+ const result = parse('Fr', 'eeeeee', referenceDate);
966
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4));
967
+ });
968
+
969
+ it('allows to specify which day is the first day of the week', () => {
970
+ const result = parse('7th', 'eo', referenceDate, {
971
+ weekStartsOn: /* Fri */ 5,
972
+ });
973
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 10));
974
+ });
975
+
976
+ describe('validation', () => {
977
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
978
+ ['y', '2019'],
979
+ ['R', '2019'],
980
+ ['u', '2019'],
981
+ ['Q', '1'],
982
+ ['q', '1'],
983
+ ['M', '1'],
984
+ ['L', '1'],
985
+ ['I', '1'],
986
+ ['d', '1'],
987
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
988
+ ['E', 'Mon'],
989
+ ['i', '1'],
990
+ ['e', '1'],
991
+ ['c', '1'],
992
+ ['t', '512969520'],
993
+ ['T', '512969520900'],
994
+ ];
995
+ tokensToValidate.forEach(([token, example, options]) => {
996
+ it(`throws an error when e is used after ${token}`, () => {
997
+ const block = () => parse(`${example} 1`, `${token} e`, referenceDate, options);
998
+ expect(block).toThrow(RangeError);
999
+ expect(block).toThrow(
1000
+ new RegExp(`The format string mustn't contain \`${token}\` and \`e\` at the same time`),
1001
+ );
1002
+ });
1003
+ });
1004
+ });
1005
+ });
1006
+
1007
+ describe('local day of week (stand-alone)', () => {
1008
+ it('numeric', () => {
1009
+ const result = parse('2', 'c', referenceDate);
1010
+ expect(result).toEqual(new Date(1986, 2 /* Mar */, 31));
1011
+ });
1012
+
1013
+ it('ordinal', () => {
1014
+ const result = parse('2nd', 'co', referenceDate);
1015
+ expect(result).toEqual(new Date(1986, 2 /* Mar */, 31));
1016
+ });
1017
+
1018
+ it('zero-padding', () => {
1019
+ const result = parse('03', 'cc', referenceDate);
1020
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 1));
1021
+ });
1022
+
1023
+ it('abbreviated', () => {
1024
+ const result = parse('Wed', 'ccc', referenceDate);
1025
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 2));
1026
+ });
1027
+
1028
+ it('wide', () => {
1029
+ const result = parse('Thursday', 'cccc', referenceDate);
1030
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 3));
1031
+ });
1032
+
1033
+ it('narrow', () => {
1034
+ const result = parse('S', 'ccccc', referenceDate);
1035
+ expect(result).toEqual(new Date(1986, 2 /* Mar */, 30));
1036
+ });
1037
+
1038
+ it('short', () => {
1039
+ const result = parse('Fr', 'cccccc', referenceDate);
1040
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4));
1041
+ });
1042
+
1043
+ it('allows to specify which day is the first day of the week', () => {
1044
+ const result = parse('7th', 'co', referenceDate, {
1045
+ weekStartsOn: /* Fri */ 5,
1046
+ });
1047
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 10));
1048
+ });
1049
+
1050
+ describe('validation', () => {
1051
+ const tokensToValidate: Array<[string, string, { useAdditionalDayOfYearTokens: boolean }?]> = [
1052
+ ['y', '2019'],
1053
+ ['R', '2019'],
1054
+ ['u', '2019'],
1055
+ ['Q', '1'],
1056
+ ['q', '1'],
1057
+ ['M', '1'],
1058
+ ['L', '1'],
1059
+ ['I', '1'],
1060
+ ['d', '1'],
1061
+ ['D', '1', { useAdditionalDayOfYearTokens: true }],
1062
+ ['E', 'Mon'],
1063
+ ['i', '1'],
1064
+ ['e', '1'],
1065
+ ['c', '1'],
1066
+ ['t', '512969520'],
1067
+ ['T', '512969520900'],
1068
+ ];
1069
+ tokensToValidate.forEach(([token, example, options]) => {
1070
+ it(`throws an error when c is used after ${token}`, () => {
1071
+ const block = () => parse(`${example} 1`, `${token} c`, referenceDate, options);
1072
+ expect(block).toThrow(RangeError);
1073
+ expect(block).toThrow(
1074
+ new RegExp(`The format string mustn't contain \`${token}\` and \`c\` at the same time`),
1075
+ );
1076
+ });
1077
+ });
1078
+ });
1079
+ });
1080
+
1081
+ describe('AM, PM', () => {
1082
+ it('abbreviated', () => {
1083
+ const result = parse('5 AM', 'h a', referenceDate);
1084
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 5));
1085
+ });
1086
+
1087
+ it('12 AM', () => {
1088
+ const result = parse('12 AM', 'h aa', referenceDate);
1089
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 0));
1090
+ });
1091
+
1092
+ it('12 PM', () => {
1093
+ const result = parse('12 PM', 'h aaa', referenceDate);
1094
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 12));
1095
+ });
1096
+
1097
+ it('wide', () => {
1098
+ const result = parse('5 p.m.', 'h aaaa', referenceDate);
1099
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 17));
1100
+ });
1101
+
1102
+ it('narrow', () => {
1103
+ const result = parse('11 a', 'h aaaaa', referenceDate);
1104
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 11));
1105
+ });
1106
+
1107
+ describe('validation', () => {
1108
+ [
1109
+ ['a', 'AM'],
1110
+ ['b', 'AM'],
1111
+ ['B', 'in the morning'],
1112
+ ['H', '1'],
1113
+ ['k', '1'],
1114
+ ['t', '512969520'],
1115
+ ['T', '512969520900'],
1116
+ ].forEach(([token, example]) => {
1117
+ it(`throws an error when a is used after ${token}`, () => {
1118
+ const block = () => parse(`${example} AM`, `${token} a`, referenceDate);
1119
+ expect(block).toThrow(RangeError);
1120
+ expect(block).toThrow(
1121
+ new RegExp(`The format string mustn't contain \`${token}\` and \`a\` at the same time`),
1122
+ );
1123
+ });
1124
+ });
1125
+ });
1126
+ });
1127
+
1128
+ describe('AM, PM, noon, midnight', () => {
1129
+ it('abbreviated', () => {
1130
+ const result = parse('noon', 'b', referenceDate);
1131
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 12));
1132
+ });
1133
+
1134
+ it('wide', () => {
1135
+ const result = parse('midnight', 'bbbb', referenceDate);
1136
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 0));
1137
+ });
1138
+
1139
+ it('narrow', () => {
1140
+ const result = parse('mi', 'bbbbb', referenceDate);
1141
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 0));
1142
+ });
1143
+
1144
+ describe('validation', () => {
1145
+ [
1146
+ ['a', 'AM'],
1147
+ ['b', 'AM'],
1148
+ ['B', 'in the morning'],
1149
+ ['H', '1'],
1150
+ ['k', '1'],
1151
+ ['t', '512969520'],
1152
+ ['T', '512969520900'],
1153
+ ].forEach(([token, example]) => {
1154
+ it(`throws an error when b is used after ${token}`, () => {
1155
+ const block = () => parse(`${example} AM`, `${token} b`, referenceDate);
1156
+ expect(block).toThrow(RangeError);
1157
+ expect(block).toThrow(
1158
+ new RegExp(`The format string mustn't contain \`${token}\` and \`b\` at the same time`),
1159
+ );
1160
+ });
1161
+ });
1162
+ });
1163
+ });
1164
+
1165
+ describe('flexible day period', () => {
1166
+ it('abbreviated', () => {
1167
+ const result = parse('2 at night', 'h B', referenceDate);
1168
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 2));
1169
+ });
1170
+
1171
+ it('wide', () => {
1172
+ const result = parse('12 in the afternoon', 'h BBBB', referenceDate);
1173
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 12));
1174
+ });
1175
+
1176
+ it('narrow', () => {
1177
+ const result = parse('5 in the evening', 'h BBBBB', referenceDate);
1178
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 17));
1179
+ });
1180
+
1181
+ describe('validation', () => {
1182
+ [
1183
+ ['a', 'AM'],
1184
+ ['b', 'AM'],
1185
+ ['B', 'in the morning'],
1186
+ ['t', '512969520'],
1187
+ ['T', '512969520900'],
1188
+ ].forEach(([token, example]) => {
1189
+ it(`throws an error when B is used after ${token}`, () => {
1190
+ const block = () => parse(`${example} in the morning`, `${token} B`, referenceDate);
1191
+ expect(block).toThrow(RangeError);
1192
+ expect(block).toThrow(
1193
+ new RegExp(`The format string mustn't contain \`${token}\` and \`B\` at the same time`),
1194
+ );
1195
+ });
1196
+ });
1197
+ });
1198
+ });
1199
+
1200
+ describe('hour [1-12]', () => {
1201
+ it('numeric', () => {
1202
+ const result = parse('1', 'h', referenceDate);
1203
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 1));
1204
+ });
1205
+
1206
+ it('ordinal', () => {
1207
+ const result = parse('1st', 'ho', referenceDate);
1208
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 1));
1209
+ });
1210
+
1211
+ it('zero-padding', () => {
1212
+ const result = parse('01', 'hh', referenceDate);
1213
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 1));
1214
+ });
1215
+
1216
+ describe('validation', () => {
1217
+ [
1218
+ ['h', '1'],
1219
+ ['H', '1'],
1220
+ ['K', '1'],
1221
+ ['k', '1'],
1222
+ ['t', '512969520'],
1223
+ ['T', '512969520900'],
1224
+ ].forEach(([token, example]) => {
1225
+ it(`throws an error when h is used after ${token}`, () => {
1226
+ const block = () => parse(`${example} 1`, `${token} h`, referenceDate);
1227
+ expect(block).toThrow(RangeError);
1228
+ expect(block).toThrow(
1229
+ new RegExp(`The format string mustn't contain \`${token}\` and \`h\` at the same time`),
1230
+ );
1231
+ });
1232
+ });
1233
+ });
1234
+ });
1235
+
1236
+ describe('hour [0-23]', () => {
1237
+ it('numeric', () => {
1238
+ const result = parse('12', 'H', referenceDate);
1239
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 12));
1240
+ });
1241
+
1242
+ it('ordinal', () => {
1243
+ const result = parse('12th', 'Ho', referenceDate);
1244
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 12));
1245
+ });
1246
+
1247
+ it('zero-padding', () => {
1248
+ const result = parse('00', 'HH', referenceDate);
1249
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 0));
1250
+ });
1251
+
1252
+ describe('validation', () => {
1253
+ [
1254
+ ['a', 'AM'],
1255
+ ['b', 'AM'],
1256
+ ['h', '1'],
1257
+ ['H', '1'],
1258
+ ['K', '1'],
1259
+ ['k', '1'],
1260
+ ['t', '512969520'],
1261
+ ['T', '512969520900'],
1262
+ ].forEach(([token, example]) => {
1263
+ it(`throws an error when H is used after ${token}`, () => {
1264
+ const block = () => parse(`${example} 1`, `${token} H`, referenceDate);
1265
+ expect(block).toThrow(RangeError);
1266
+ expect(block).toThrow(
1267
+ new RegExp(`The format string mustn't contain \`${token}\` and \`H\` at the same time`),
1268
+ );
1269
+ });
1270
+ });
1271
+ });
1272
+ });
1273
+
1274
+ describe('hour [0-11]', () => {
1275
+ it('numeric', () => {
1276
+ const result = parse('1', 'K', referenceDate);
1277
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 1));
1278
+ });
1279
+
1280
+ it('ordinal', () => {
1281
+ const result = parse('1st', 'Ko', referenceDate);
1282
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 1));
1283
+ });
1284
+
1285
+ it('zero-padding', () => {
1286
+ const result = parse('1', 'KK', referenceDate);
1287
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 1));
1288
+ });
1289
+
1290
+ describe('validation', () => {
1291
+ [
1292
+ ['h', '1'],
1293
+ ['H', '1'],
1294
+ ['K', '1'],
1295
+ ['k', '1'],
1296
+ ['t', '512969520'],
1297
+ ['T', '512969520900'],
1298
+ ].forEach(([token, example]) => {
1299
+ it(`throws an error when K is used after ${token}`, () => {
1300
+ const block = () => parse(`${example} 1`, `${token} K`, referenceDate);
1301
+ expect(block).toThrow(RangeError);
1302
+ expect(block).toThrow(
1303
+ new RegExp(`The format string mustn't contain \`${token}\` and \`K\` at the same time`),
1304
+ );
1305
+ });
1306
+ });
1307
+ });
1308
+ });
1309
+
1310
+ describe('hour [1-24]', () => {
1311
+ it('numeric', () => {
1312
+ const result = parse('12', 'k', referenceDate);
1313
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 12));
1314
+ });
1315
+
1316
+ it('ordinal', () => {
1317
+ const result = parse('12th', 'ko', referenceDate);
1318
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 12));
1319
+ });
1320
+
1321
+ it('zero-padding', () => {
1322
+ const result = parse('24', 'kk', referenceDate);
1323
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 0));
1324
+ });
1325
+
1326
+ describe('validation', () => {
1327
+ [
1328
+ ['a', 'AM'],
1329
+ ['b', 'AM'],
1330
+ ['h', '1'],
1331
+ ['H', '1'],
1332
+ ['K', '1'],
1333
+ ['k', '1'],
1334
+ ['t', '512969520'],
1335
+ ['T', '512969520900'],
1336
+ ].forEach(([token, example]) => {
1337
+ it(`throws an error when k is used after ${token}`, () => {
1338
+ const block = () => parse(`${example} 1`, `${token} k`, referenceDate);
1339
+ expect(block).toThrow(RangeError);
1340
+ expect(block).toThrow(
1341
+ new RegExp(`The format string mustn't contain \`${token}\` and \`k\` at the same time`),
1342
+ );
1343
+ });
1344
+ });
1345
+ });
1346
+ });
1347
+
1348
+ describe('minute', () => {
1349
+ it('numeric', () => {
1350
+ const result = parse('25', 'm', referenceDate);
1351
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 10, 25));
1352
+ });
1353
+
1354
+ it('ordinal', () => {
1355
+ const result = parse('25th', 'mo', referenceDate);
1356
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 10, 25));
1357
+ });
1358
+
1359
+ it('zero-padding', () => {
1360
+ const result = parse('05', 'mm', referenceDate);
1361
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 10, 5));
1362
+ });
1363
+
1364
+ describe('validation', () => {
1365
+ [
1366
+ ['m', '1'],
1367
+ ['t', '512969520'],
1368
+ ['T', '512969520900'],
1369
+ ].forEach(([token, example]) => {
1370
+ it(`throws an error when m is used after ${token}`, () => {
1371
+ const block = () => parse(`${example} 1`, `${token} m`, referenceDate);
1372
+ expect(block).toThrow(RangeError);
1373
+ expect(block).toThrow(
1374
+ new RegExp(`The format string mustn't contain \`${token}\` and \`m\` at the same time`),
1375
+ );
1376
+ });
1377
+ });
1378
+ });
1379
+ });
1380
+
1381
+ describe('second', () => {
1382
+ it('numeric', () => {
1383
+ const result = parse('25', 's', referenceDate);
1384
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 10, 32, 25));
1385
+ });
1386
+
1387
+ it('ordinal', () => {
1388
+ const result = parse('25th', 'so', referenceDate);
1389
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 10, 32, 25));
1390
+ });
1391
+
1392
+ it('zero-padding', () => {
1393
+ const result = parse('05', 'ss', referenceDate);
1394
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 10, 32, 5));
1395
+ });
1396
+
1397
+ describe('validation', () => {
1398
+ [
1399
+ ['s', '1'],
1400
+ ['t', '512969520'],
1401
+ ['T', '512969520900'],
1402
+ ].forEach(([token, example]) => {
1403
+ it(`throws an error when s is used after ${token}`, () => {
1404
+ const block = () => parse(`${example} 1`, `${token} s`, referenceDate);
1405
+ expect(block).toThrow(RangeError);
1406
+ expect(block).toThrow(
1407
+ new RegExp(`The format string mustn't contain \`${token}\` and \`s\` at the same time`),
1408
+ );
1409
+ });
1410
+ });
1411
+ });
1412
+ });
1413
+
1414
+ describe('fraction of second', () => {
1415
+ it('1/10 of second', () => {
1416
+ const result = parse('1', 'S', referenceDate);
1417
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 10, 32, 0, 100));
1418
+ });
1419
+
1420
+ it('1/100 of second', () => {
1421
+ const result = parse('12', 'SS', referenceDate);
1422
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 10, 32, 0, 120));
1423
+ });
1424
+
1425
+ it('millisecond', () => {
1426
+ const result = parse('123', 'SSS', referenceDate);
1427
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 10, 32, 0, 123));
1428
+ });
1429
+
1430
+ it('specified amount of digits', () => {
1431
+ const result = parse('567890', 'SSSSSS', referenceDate);
1432
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 10, 32, 0, 567));
1433
+ });
1434
+
1435
+ describe('validation', () => {
1436
+ [
1437
+ ['S', '1'],
1438
+ ['t', '512969520'],
1439
+ ['T', '512969520900'],
1440
+ ].forEach(([token, example]) => {
1441
+ it(`throws an error when S is used after ${token}`, () => {
1442
+ const block = () => parse(`${example} 1`, `${token} S`, referenceDate);
1443
+ expect(block).toThrow(RangeError);
1444
+ expect(block).toThrow(
1445
+ new RegExp(`The format string mustn't contain \`${token}\` and \`S\` at the same time`),
1446
+ );
1447
+ });
1448
+ });
1449
+ });
1450
+ });
1451
+
1452
+ describe('timezone (ISO-8601 w/ Z)', () => {
1453
+ describe('X', () => {
1454
+ it('hours and minutes', () => {
1455
+ const result = parse('2016-11-25T16:38:38.123-0530', "yyyy-MM-dd'T'HH:mm:ss.SSSX", referenceDate);
1456
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123-05:30'));
1457
+ });
1458
+
1459
+ it('GMT', () => {
1460
+ const result = parse('2016-11-25T16:38:38.123Z', "yyyy-MM-dd'T'HH:mm:ss.SSSX", referenceDate);
1461
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123Z'));
1462
+ });
1463
+
1464
+ it('hours', () => {
1465
+ const result = parse('2016-11-25T16:38:38.123+05', "yyyy-MM-dd'T'HH:mm:ss.SSSX", referenceDate);
1466
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123+05:00'));
1467
+ });
1468
+ });
1469
+
1470
+ describe('XX', () => {
1471
+ it('hours and minutes', () => {
1472
+ const result = parse('2016-11-25T16:38:38.123-0530', "yyyy-MM-dd'T'HH:mm:ss.SSSXX", referenceDate);
1473
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123-05:30'));
1474
+ });
1475
+
1476
+ it('GMT', () => {
1477
+ const result = parse('2016-11-25T16:38:38.123Z', "yyyy-MM-dd'T'HH:mm:ss.SSSXX", referenceDate);
1478
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123Z'));
1479
+ });
1480
+ });
1481
+
1482
+ describe('XXX', () => {
1483
+ it('hours and minutes', () => {
1484
+ const result = parse('2016-11-25T16:38:38.123-05:30', "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", referenceDate);
1485
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123-05:30'));
1486
+ });
1487
+
1488
+ it('GMT', () => {
1489
+ const result = parse('2016-11-25T16:38:38.123Z', "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", referenceDate);
1490
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123Z'));
1491
+ });
1492
+ });
1493
+
1494
+ describe('XXXX', () => {
1495
+ it('hours and minutes', () => {
1496
+ const result = parse('2016-11-25T16:38:38.123-0530', "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX", referenceDate);
1497
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123-05:30'));
1498
+ });
1499
+
1500
+ it('GMT', () => {
1501
+ const result = parse('2016-11-25T16:38:38.123Z', "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX", referenceDate);
1502
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123Z'));
1503
+ });
1504
+
1505
+ it('hours, minutes and seconds', () => {
1506
+ const result = parse('2016-11-25T16:38:38.123+053045', "yyyy-MM-dd'T'HH:mm:ss.SSSXXXX", referenceDate);
1507
+ expect(result).toEqual(new Date('2016-11-25T16:37:53.123+05:30'));
1508
+ });
1509
+ });
1510
+
1511
+ describe('XXXXX', () => {
1512
+ it('hours and minutes', () => {
1513
+ const result = parse('2016-11-25T16:38:38.123-05:30', "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX", referenceDate);
1514
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123-05:30'));
1515
+ });
1516
+
1517
+ it('GMT', () => {
1518
+ const result = parse('2016-11-25T16:38:38.123Z', "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX", referenceDate);
1519
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123Z'));
1520
+ });
1521
+
1522
+ it('hours, minutes and seconds', () => {
1523
+ const result = parse('2016-11-25T16:38:38.123+05:30:45', "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX", referenceDate);
1524
+ expect(result).toEqual(new Date('2016-11-25T16:37:53.123+05:30'));
1525
+ });
1526
+ });
1527
+
1528
+ describe('validation', () => {
1529
+ [
1530
+ ['X', '-0530'],
1531
+ ['x', '-0530'],
1532
+ ['t', '512969520'],
1533
+ ['T', '512969520900'],
1534
+ ].forEach(([token, example]) => {
1535
+ it(`throws an error when X is used after ${token}`, () => {
1536
+ const block = () => parse(`${example} -0530`, `${token} X`, referenceDate);
1537
+ expect(block).toThrow(RangeError);
1538
+ expect(block).toThrow(
1539
+ new RegExp(`The format string mustn't contain \`${token}\` and \`X\` at the same time`),
1540
+ );
1541
+ });
1542
+ });
1543
+ });
1544
+ });
1545
+
1546
+ describe('timezone (ISO-8601 w/o Z)', () => {
1547
+ describe('x', () => {
1548
+ it('hours and minutes', () => {
1549
+ const result = parse('2016-11-25T16:38:38.123-0530', "yyyy-MM-dd'T'HH:mm:ss.SSSx", referenceDate);
1550
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123-05:30'));
1551
+ });
1552
+
1553
+ it('GMT', () => {
1554
+ const result = parse('2016-11-25T16:38:38.123+0000', "yyyy-MM-dd'T'HH:mm:ss.SSSx", referenceDate);
1555
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123Z'));
1556
+ });
1557
+
1558
+ it('hours', () => {
1559
+ const result = parse('2016-11-25T16:38:38.123+05', "yyyy-MM-dd'T'HH:mm:ss.SSSx", referenceDate);
1560
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123+05:00'));
1561
+ });
1562
+ });
1563
+
1564
+ describe('xx', () => {
1565
+ it('hours and minutes', () => {
1566
+ const result = parse('2016-11-25T16:38:38.123-0530', "yyyy-MM-dd'T'HH:mm:ss.SSSxx", referenceDate);
1567
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123-05:30'));
1568
+ });
1569
+
1570
+ it('GMT', () => {
1571
+ const result = parse('2016-11-25T16:38:38.123+0000', "yyyy-MM-dd'T'HH:mm:ss.SSSxx", referenceDate);
1572
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123Z'));
1573
+ });
1574
+ });
1575
+
1576
+ describe('xxx', () => {
1577
+ it('hours and minutes', () => {
1578
+ const result = parse('2016-11-25T16:38:38.123-05:30', "yyyy-MM-dd'T'HH:mm:ss.SSSxxx", referenceDate);
1579
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123-05:30'));
1580
+ });
1581
+
1582
+ it('GMT', () => {
1583
+ const result = parse('2016-11-25T16:38:38.123+00:00', "yyyy-MM-dd'T'HH:mm:ss.SSSxxx", referenceDate);
1584
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123Z'));
1585
+ });
1586
+ });
1587
+
1588
+ describe('xxxx', () => {
1589
+ it('hours and minutes', () => {
1590
+ const result = parse('2016-11-25T16:38:38.123-0530', "yyyy-MM-dd'T'HH:mm:ss.SSSxxxx", referenceDate);
1591
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123-05:30'));
1592
+ });
1593
+
1594
+ it('GMT', () => {
1595
+ const result = parse('2016-11-25T16:38:38.123+0000', "yyyy-MM-dd'T'HH:mm:ss.SSSxxxx", referenceDate);
1596
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123Z'));
1597
+ });
1598
+
1599
+ it('hours, minutes and seconds', () => {
1600
+ const result = parse('2016-11-25T16:38:38.123+053045', "yyyy-MM-dd'T'HH:mm:ss.SSSxxxx", referenceDate);
1601
+ expect(result).toEqual(new Date('2016-11-25T16:37:53.123+05:30'));
1602
+ });
1603
+ });
1604
+
1605
+ describe('xxxxx', () => {
1606
+ it('hours and minutes', () => {
1607
+ const result = parse('2016-11-25T16:38:38.123-05:30', "yyyy-MM-dd'T'HH:mm:ss.SSSxxxxx", referenceDate);
1608
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123-05:30'));
1609
+ });
1610
+
1611
+ it('GMT', () => {
1612
+ const result = parse('2016-11-25T16:38:38.123+00:00', "yyyy-MM-dd'T'HH:mm:ss.SSSxxxxx", referenceDate);
1613
+ expect(result).toEqual(new Date('2016-11-25T16:38:38.123Z'));
1614
+ });
1615
+
1616
+ it('hours, minutes and seconds', () => {
1617
+ const result = parse('2016-11-25T16:38:38.123+05:30:45', "yyyy-MM-dd'T'HH:mm:ss.SSSxxxxx", referenceDate);
1618
+ expect(result).toEqual(new Date('2016-11-25T16:37:53.123+05:30'));
1619
+ });
1620
+ });
1621
+
1622
+ describe('validation', () => {
1623
+ [
1624
+ ['X', '-0530'],
1625
+ ['x', '-0530'],
1626
+ ['t', '512969520'],
1627
+ ['T', '512969520900'],
1628
+ ].forEach(([token, example]) => {
1629
+ it(`throws an error when x is used after ${token}`, () => {
1630
+ const block = () => parse(`${example} -0530`, `${token} x`, referenceDate);
1631
+ expect(block).toThrow(RangeError);
1632
+ expect(block).toThrow(
1633
+ new RegExp(`The format string mustn't contain \`${token}\` and \`x\` at the same time`),
1634
+ );
1635
+ });
1636
+ });
1637
+ });
1638
+ });
1639
+
1640
+ describe('seconds timestamp', () => {
1641
+ it('numeric', () => {
1642
+ const result = parse('512969520', 't', referenceDate);
1643
+ expect(result).toEqual(new Date(512969520000));
1644
+ });
1645
+
1646
+ it('specified amount of digits', () => {
1647
+ const result = parse('00000000000512969520', 'tttttttttttttttttttt', referenceDate);
1648
+ expect(result).toEqual(new Date(512969520000));
1649
+ });
1650
+
1651
+ it(`throws an error when it is used after any token`, () => {
1652
+ const block = () => parse(`1 512969520`, `h t`, referenceDate);
1653
+ expect(block).toThrow(RangeError);
1654
+ expect(block).toThrow(new RegExp(`The format string mustn't contain \`t\` and any other token at the same time`));
1655
+ });
1656
+ });
1657
+
1658
+ describe('milliseconds timestamp', () => {
1659
+ it('numeric', () => {
1660
+ const result = parse('512969520900', 'T', referenceDate);
1661
+ expect(result).toEqual(new Date(512969520900));
1662
+ });
1663
+
1664
+ it('specified amount of digits', () => {
1665
+ const result = parse('00000000512969520900', 'TTTTTTTTTTTTTTTTTTTT', referenceDate);
1666
+ expect(result).toEqual(new Date(512969520900));
1667
+ });
1668
+
1669
+ it(`throws an error when it is used after any token`, () => {
1670
+ const block = () => parse(`1 512969520900`, `h T`, referenceDate);
1671
+ expect(block).toThrow(RangeError);
1672
+ expect(block).toThrow(new RegExp(`The format string mustn't contain \`T\` and any other token at the same time`));
1673
+ });
1674
+ });
1675
+
1676
+ describe('common formats', () => {
1677
+ it('ISO-8601', () => {
1678
+ const result = parse('20161105T040404', "yyyyMMdd'T'HHmmss", referenceDate);
1679
+ expect(result).toEqual(new Date(2016, 10 /* Nov */, 5, 4, 4, 4, 0));
1680
+ });
1681
+
1682
+ it('ISO week-numbering date', () => {
1683
+ const result = parse('2016W474T153005', "RRRR'W'IIi'T'HHmmss", referenceDate);
1684
+ expect(result).toEqual(new Date(2016, 10 /* Nov */, 24, 15, 30, 5, 0));
1685
+ });
1686
+
1687
+ it('ISO day of year date', () => {
1688
+ const result = parse('2010123T235959', "yyyyDDD'T'HHmmss", referenceDate);
1689
+ expect(result).toEqual(new Date(2010, 4 /* May */, 3, 23, 59, 59, 0));
1690
+ });
1691
+
1692
+ it('Date.prototype.toString()', () => {
1693
+ const dateString = 'Wed Jul 02 2014 05:30:15 GMT+0600';
1694
+ const formatString = "EEE MMM dd yyyy HH:mm:ss 'GMT'xx";
1695
+ const result = parse(dateString, formatString, referenceDate);
1696
+ expect(result).toEqual(new Date(dateString));
1697
+ });
1698
+
1699
+ it('Date.prototype.toISOString()', () => {
1700
+ const dateString = '2014-07-02T05:30:15.123+06:00';
1701
+ const formatString = "yyyy-MM-dd'T'HH:mm:ss.SSSxxx";
1702
+ const result = parse(dateString, formatString, referenceDate);
1703
+ expect(result).toEqual(new Date(dateString));
1704
+ });
1705
+
1706
+ it('middle-endian', () => {
1707
+ const result = parse('5 a.m. 07/02/2016', 'h aaaa MM/dd/yyyy', referenceDate);
1708
+ expect(result).toEqual(new Date(2016, 6 /* Jul */, 2, 5, 0, 0, 0));
1709
+ });
1710
+
1711
+ it('little-endian', () => {
1712
+ const result = parse('02.07.1995', 'dd.MM.yyyy', referenceDate);
1713
+ expect(result).toEqual(new Date(1995, 6 /* Jul */, 2, 0, 0, 0, 0));
1714
+ });
1715
+ });
1716
+
1717
+ describe('priority', () => {
1718
+ it("units of lower priority don't overwrite values of higher priority", () => {
1719
+ const dateString = '+06:00 123 15 30 05 02 07 2014';
1720
+ const formatString = 'xxx SSS ss mm HH dd MM yyyy';
1721
+ const result = parse(dateString, formatString, referenceDate);
1722
+ expect(result).toEqual(new Date('2014-07-02T05:30:15.123+06:00'));
1723
+ });
1724
+ });
1725
+
1726
+ describe('with `options.strictValidation` = true', () => {
1727
+ describe('calendar year', () => {
1728
+ it('returns `Invalid Date` for year zero', () => {
1729
+ const result = parse('0', 'y', referenceDate);
1730
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1731
+ });
1732
+
1733
+ it('works correctly for two-digit year zero', () => {
1734
+ const result = parse('00', 'yy', referenceDate);
1735
+ expect(result).toEqual(new Date(2000, 0 /* Jan */, 1));
1736
+ });
1737
+ });
1738
+
1739
+ describe('local week-numbering year', () => {
1740
+ it('returns `Invalid Date` for year zero', () => {
1741
+ const result = parse('0', 'Y', referenceDate);
1742
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1743
+ });
1744
+
1745
+ it('works correctly for two-digit year zero', () => {
1746
+ const result = parse('00', 'YY', referenceDate, {
1747
+ useAdditionalWeekYearTokens: true,
1748
+ });
1749
+ expect(result).toEqual(new Date(1999, 11 /* Dec */, 26));
1750
+ });
1751
+ });
1752
+
1753
+ describe('quarter (formatting)', () => {
1754
+ it('returns `Invalid Date` for invalid quarter', () => {
1755
+ const result = parse('0', 'Q', referenceDate);
1756
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1757
+ });
1758
+ });
1759
+
1760
+ describe('quarter (stand-alone)', () => {
1761
+ it('returns `Invalid Date` for invalid quarter', () => {
1762
+ const result = parse('5', 'q', referenceDate);
1763
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1764
+ });
1765
+ });
1766
+
1767
+ describe('month (formatting)', () => {
1768
+ it('returns `Invalid Date` for invalid month', () => {
1769
+ const result = parse('00', 'MM', referenceDate);
1770
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1771
+ });
1772
+ });
1773
+
1774
+ describe('month (stand-alone)', () => {
1775
+ it('returns `Invalid Date` for invalid month', () => {
1776
+ const result = parse('13', 'LL', referenceDate);
1777
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1778
+ });
1779
+ });
1780
+
1781
+ describe('local week of year', () => {
1782
+ it('returns `Invalid Date` for invalid week', () => {
1783
+ const result = parse('0', 'w', referenceDate);
1784
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1785
+ });
1786
+ });
1787
+
1788
+ describe('ISO week of year', () => {
1789
+ it('returns `Invalid Date` for invalid week', () => {
1790
+ const result = parse('54', 'II', referenceDate);
1791
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1792
+ });
1793
+ });
1794
+
1795
+ describe('day of month', () => {
1796
+ it('returns `Invalid Date` for invalid day of the month', () => {
1797
+ const result = parse('30', 'd', new Date(2012, 1 /* Feb */, 1));
1798
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1799
+ });
1800
+
1801
+ it('returns `Invalid Date` for 29th of February of non-leap year', () => {
1802
+ const result = parse('29', 'd', new Date(2014, 1 /* Feb */, 1));
1803
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1804
+ });
1805
+
1806
+ it('parses 29th of February of leap year', () => {
1807
+ const result = parse('29', 'd', new Date(2012, 1 /* Feb */, 1));
1808
+ expect(result).toEqual(new Date(2012, 1 /* Feb */, 29));
1809
+ });
1810
+ });
1811
+
1812
+ describe('day of year', () => {
1813
+ it('returns `Invalid Date` for invalid day of the year', () => {
1814
+ const result = parse('0', 'D', referenceDate, {
1815
+ useAdditionalDayOfYearTokens: true,
1816
+ });
1817
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1818
+ });
1819
+
1820
+ it('returns `Invalid Date` for 366th day of non-leap year', () => {
1821
+ const result = parse('366', 'D', new Date(2014, 1 /* Feb */, 1), {
1822
+ useAdditionalDayOfYearTokens: true,
1823
+ });
1824
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1825
+ });
1826
+
1827
+ it('parses 366th day of leap year', () => {
1828
+ const result = parse('366', 'D', new Date(2012, 1 /* Feb */, 1), {
1829
+ useAdditionalDayOfYearTokens: true,
1830
+ });
1831
+ expect(result).toEqual(new Date(2012, 11 /* Dec */, 31));
1832
+ });
1833
+ });
1834
+
1835
+ describe('ISO day of week (formatting)', () => {
1836
+ it('returns `Invalid Date` for day zero', () => {
1837
+ const result = parse('0', 'i', referenceDate);
1838
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1839
+ });
1840
+
1841
+ it('returns `Invalid Date` for eight day of week', () => {
1842
+ const result = parse('8', 'i', referenceDate);
1843
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1844
+ });
1845
+ });
1846
+
1847
+ describe('local day of week (formatting)', () => {
1848
+ it('returns `Invalid Date` for day zero', () => {
1849
+ const result = parse('0', 'e', referenceDate);
1850
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1851
+ });
1852
+
1853
+ it('returns `Invalid Date` for eight day of week', () => {
1854
+ const result = parse('8', 'e', referenceDate);
1855
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1856
+ });
1857
+ });
1858
+
1859
+ describe('local day of week (stand-alone)', () => {
1860
+ it('returns `Invalid Date` for day zero', () => {
1861
+ const result = parse('0', 'c', referenceDate);
1862
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1863
+ });
1864
+
1865
+ it('returns `Invalid Date` for eight day of week', () => {
1866
+ const result = parse('8', 'c', referenceDate);
1867
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1868
+ });
1869
+ });
1870
+
1871
+ describe('hour [1-12]', () => {
1872
+ it('returns `Invalid Date` for hour zero', () => {
1873
+ const result = parse('00', 'hh', referenceDate);
1874
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1875
+ });
1876
+
1877
+ it('returns `Invalid Date` for invalid hour', () => {
1878
+ const result = parse('13', 'hh', referenceDate);
1879
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1880
+ });
1881
+ });
1882
+
1883
+ describe('hour [0-23]', () => {
1884
+ it('returns `Invalid Date` for invalid hour', () => {
1885
+ const result = parse('24', 'HH', referenceDate);
1886
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1887
+ });
1888
+ });
1889
+
1890
+ describe('hour [0-11]', () => {
1891
+ it('returns `Invalid Date` for invalid hour', () => {
1892
+ const result = parse('12', 'KK', referenceDate);
1893
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1894
+ });
1895
+ });
1896
+
1897
+ describe('hour [1-24]', () => {
1898
+ it('returns `Invalid Date` for hour zero', () => {
1899
+ const result = parse('00', 'kk', referenceDate);
1900
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1901
+ });
1902
+
1903
+ it('returns `Invalid Date` for invalid hour', () => {
1904
+ const result = parse('25', 'kk', referenceDate);
1905
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1906
+ });
1907
+ });
1908
+
1909
+ describe('minute', () => {
1910
+ it('returns `Invalid Date` for invalid minute', () => {
1911
+ const result = parse('60', 'mm', referenceDate);
1912
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1913
+ });
1914
+ });
1915
+
1916
+ describe('second', () => {
1917
+ it('returns `Invalid Date` for invalid second', () => {
1918
+ const result = parse('60', 'ss', referenceDate);
1919
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1920
+ });
1921
+ });
1922
+ });
1923
+
1924
+ describe('custom locale', () => {
1925
+ it('allows to pass a custom locale', () => {
1926
+ const customLocale = {
1927
+ match: {
1928
+ era: () => {
1929
+ return {
1930
+ value: 0,
1931
+ rest: ' it works!',
1932
+ };
1933
+ },
1934
+ },
1935
+ };
1936
+ const result = parse('2018 foobar', "y G 'it works!'", referenceDate, {
1937
+ // @ts-expect-error - It's oke to have incomplete locale
1938
+ locale: customLocale,
1939
+ });
1940
+ expect(result).toEqual(new Date(-2017, 0 /* Jan */, 1));
1941
+ });
1942
+ });
1943
+
1944
+ it('accepts a timestamp as `referenceDate`', () => {
1945
+ const dateString = '6 p.m.';
1946
+ const formatString = 'h aaaa';
1947
+ const result = parse(dateString, formatString, referenceDate.getTime());
1948
+ expect(result).toEqual(new Date(1986, 3 /* Apr */, 4, 18));
1949
+ });
1950
+
1951
+ it('does not mutate `referenceDate`', () => {
1952
+ const referenceDateClone1 = new Date(referenceDate.getTime());
1953
+ const referenceDateClone2 = new Date(referenceDate.getTime());
1954
+ const dateString = '6 p.m.';
1955
+ const formatString = 'h aaaa';
1956
+ parse(dateString, formatString, referenceDateClone1);
1957
+ expect(referenceDateClone1).toEqual(referenceDateClone2);
1958
+ });
1959
+
1960
+ describe('failure', () => {
1961
+ it('returns `referenceDate` if `dateString` and `formatString` are empty strings', () => {
1962
+ const dateString = '';
1963
+ const formatString = '';
1964
+ const result = parse(dateString, formatString, referenceDate);
1965
+ expect(result).toEqual(referenceDate);
1966
+ });
1967
+
1968
+ it('returns `referenceDate` if no tokens in `formatString` are provided', () => {
1969
+ const dateString = 'not a token';
1970
+ const formatString = "'not a token'";
1971
+ const result = parse(dateString, formatString, referenceDate);
1972
+ expect(result).toEqual(referenceDate);
1973
+ });
1974
+
1975
+ it("returns `Invalid Date` if `formatString` doesn't match `dateString`", () => {
1976
+ const dateString = '2017-01-01';
1977
+ const formatString = 'yyyy/MM/dd';
1978
+ const result = parse(dateString, formatString, referenceDate);
1979
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1980
+ });
1981
+
1982
+ it('returns `Invalid Date` if `formatString` tokens failed to parse a value', () => {
1983
+ const dateString = '2017-01-01';
1984
+ const formatString = 'MMMM do yyyy';
1985
+ const result = parse(dateString, formatString, referenceDate);
1986
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1987
+ });
1988
+
1989
+ it('returns `Invalid Date` if `formatString` is empty string but `dateString` is not', () => {
1990
+ const dateString = '2017-01-01';
1991
+ const formatString = '';
1992
+ const result = parse(dateString, formatString, referenceDate);
1993
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
1994
+ });
1995
+
1996
+ it('returns `Invalid Date` if `referenceDate` is `Invalid Date`', () => {
1997
+ const dateString = '2014-07-02T05:30:15.123+06:00';
1998
+ const formatString = "yyyy-MM-dd'T'HH:mm:ss.SSSxxx";
1999
+ const result = parse(dateString, formatString, new Date(NaN));
2000
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
2001
+ });
2002
+ });
2003
+
2004
+ describe('edge cases', () => {
2005
+ it('returns Invalid Date if the string contains some remaining input after parsing', () => {
2006
+ const result = parse('2016-11-05T040404', 'yyyy-MM-dd', referenceDate);
2007
+ expect(result instanceof Date && isNaN(result.getTime())).toBe(true);
2008
+ });
2009
+
2010
+ it('parses normally if the remaining input is just whitespace', () => {
2011
+ const result = parse('2016-11-05 \n', 'yyyy-MM-dd', referenceDate);
2012
+ expect(result).toEqual(new Date(2016, 10 /* Nov */, 5));
2013
+ });
2014
+
2015
+ it('throws RangeError exception if the format string contains an unescaped latin alphabet character', () => {
2016
+ expect(() => parse('2016-11-05-nnnn', 'yyyy-MM-dd-nnnn', referenceDate)).toThrow(RangeError);
2017
+ });
2018
+ });
2019
+
2020
+ describe('useAdditionalWeekYearTokens and useAdditionalDayOfYearTokens options', () => {
2021
+ it('throws an error if D token is used', () => {
2022
+ try {
2023
+ parse('2016 5', 'yyyy D', referenceDate);
2024
+ } catch (e) {
2025
+ expect(e instanceof RangeError && e.message.startsWith('Use `d` instead of `D`')).toBe(true);
2026
+ }
2027
+ });
2028
+
2029
+ it('allows D token if useAdditionalDayOfYearTokens is set to true', () => {
2030
+ const result = parse('2016 5', 'yyyy D', referenceDate, {
2031
+ useAdditionalDayOfYearTokens: true,
2032
+ });
2033
+ expect(result).toEqual(new Date(2016, 0, 5));
2034
+ });
2035
+
2036
+ it('throws an error if DD token is used', () => {
2037
+ try {
2038
+ parse('2016 05', 'yyyy DD', referenceDate);
2039
+ } catch (e) {
2040
+ expect(e instanceof RangeError && e.message.startsWith('Use `dd` instead of `DD`')).toBe(true);
2041
+ }
2042
+ });
2043
+
2044
+ it('allows DD token if useAdditionalDayOfYearTokens is set to true', () => {
2045
+ const result = parse('2016 05', 'yyyy DD', referenceDate, {
2046
+ useAdditionalDayOfYearTokens: true,
2047
+ });
2048
+ expect(result).toEqual(new Date(2016, 0, 5));
2049
+ });
2050
+
2051
+ it('throws an error if YY token is used', () => {
2052
+ try {
2053
+ parse('16 1', 'YY w', referenceDate);
2054
+ } catch (e) {
2055
+ expect(e instanceof RangeError && e.message.startsWith('Use `yy` instead of `YY`')).toBe(true);
2056
+ }
2057
+ });
2058
+
2059
+ it('allows YY token if useAdditionalWeekYearTokens is set to true', () => {
2060
+ const result = parse('16 1', 'YY w', referenceDate, {
2061
+ useAdditionalWeekYearTokens: true,
2062
+ });
2063
+ expect(result).toEqual(new Date(2015, 11, 27));
2064
+ });
2065
+
2066
+ it('throws an error if YYYY token is used', () => {
2067
+ try {
2068
+ parse('2016 1', 'YYYY w', referenceDate);
2069
+ } catch (e) {
2070
+ expect(e instanceof RangeError && e.message.startsWith('Use `yyyy` instead of `YYYY`')).toBe(true);
2071
+ }
2072
+ });
2073
+
2074
+ it('allows YYYY token if useAdditionalWeekYearTokens is set to true', () => {
2075
+ const result = parse('2016 1', 'YYYY w', referenceDate, {
2076
+ useAdditionalWeekYearTokens: true,
2077
+ });
2078
+ expect(result).toEqual(new Date(2015, 11, 27));
2079
+ });
2080
+ });
2081
+
2082
+ describe('long format', () => {
2083
+ it('short date', () => {
2084
+ const expected = new Date(1995, 4 /* May */, 26);
2085
+ const dateString = '05/26/1995';
2086
+ const formatString = 'P';
2087
+ const result = parse(dateString, formatString, referenceDate);
2088
+ expect(result).toEqual(expected);
2089
+ });
2090
+
2091
+ it('medium date', () => {
2092
+ const expected = new Date(1995, 4 /* May */, 26);
2093
+ const dateString = 'May 26, 1995';
2094
+ const formatString = 'PP';
2095
+ const result = parse(dateString, formatString, referenceDate);
2096
+ expect(result).toEqual(expected);
2097
+ });
2098
+
2099
+ it('long date', () => {
2100
+ const expected = new Date(1995, 4 /* May */, 26);
2101
+ const dateString = 'May 26th, 1995';
2102
+ const formatString = 'PPP';
2103
+ const result = parse(dateString, formatString, referenceDate);
2104
+ expect(result).toEqual(expected);
2105
+ });
2106
+
2107
+ it('full date', () => {
2108
+ const expected = new Date(1995, 4 /* May */, 26);
2109
+ const dateString = 'Friday, May 26th, 1995';
2110
+ const formatString = 'PPPP';
2111
+ const result = parse(dateString, formatString, referenceDate);
2112
+ expect(result).toEqual(expected);
2113
+ });
2114
+
2115
+ it('short time', () => {
2116
+ const expected = new Date(referenceDate.getFullYear(), referenceDate.getMonth(), referenceDate.getDate(), 10, 32);
2117
+ const timeString = '10:32 AM';
2118
+ const formatString = 'p';
2119
+ const result = parse(timeString, formatString, referenceDate);
2120
+ expect(result).toEqual(expected);
2121
+ });
2122
+
2123
+ it('medium time', () => {
2124
+ const expected = new Date(
2125
+ referenceDate.getFullYear(),
2126
+ referenceDate.getMonth(),
2127
+ referenceDate.getDate(),
2128
+ 10,
2129
+ 32,
2130
+ 55,
2131
+ );
2132
+ const timeString = '10:32:55 AM';
2133
+ const formatString = 'pp';
2134
+ const result = parse(timeString, formatString, referenceDate);
2135
+ expect(result).toEqual(expected);
2136
+ });
2137
+
2138
+ it('short date + short time', () => {
2139
+ const expected = new Date(1995, 4 /* May */, 26, 10, 32);
2140
+ const dateTimeString = '05/26/1995, 10:32 AM';
2141
+ const formatString = 'Pp';
2142
+ const result = parse(dateTimeString, formatString, referenceDate);
2143
+ expect(result).toEqual(expected);
2144
+ });
2145
+
2146
+ it('medium date + short time', () => {
2147
+ const expected = new Date(1995, 4 /* May */, 26, 10, 32);
2148
+ const dateTimeString = 'May 26, 1995, 10:32 AM';
2149
+ const formatString = 'PPp';
2150
+ const result = parse(dateTimeString, formatString, referenceDate);
2151
+ expect(result).toEqual(expected);
2152
+ });
2153
+
2154
+ it('long date + short time', () => {
2155
+ const expected = new Date(1995, 4 /* May */, 26, 10, 32);
2156
+ const dateTimeString = 'May 26th, 1995 at 10:32 AM';
2157
+ const formatString = 'PPPp';
2158
+ const result = parse(dateTimeString, formatString, referenceDate);
2159
+ expect(result).toEqual(expected);
2160
+ });
2161
+
2162
+ it('full date + short time', () => {
2163
+ const expected = new Date(1995, 4 /* May */, 26, 10, 32);
2164
+ const dateTimeString = 'Friday, May 26th, 1995 at 10:32 AM';
2165
+ const formatString = 'PPPPp';
2166
+ const result = parse(dateTimeString, formatString, referenceDate);
2167
+ expect(result).toEqual(expected);
2168
+ });
2169
+
2170
+ it('short date + short time', () => {
2171
+ const expected = new Date(1995, 4 /* May */, 26, 10, 32, 55);
2172
+ const dateTimeString = '05/26/1995, 10:32:55 AM';
2173
+ const formatString = 'Ppp';
2174
+ const result = parse(dateTimeString, formatString, referenceDate);
2175
+ expect(result).toEqual(expected);
2176
+ });
2177
+
2178
+ it('medium date + short time', () => {
2179
+ const expected = new Date(1995, 4 /* May */, 26, 10, 32, 55);
2180
+ const dateTimeString = 'May 26, 1995, 10:32:55 AM';
2181
+ const formatString = 'PPpp';
2182
+ const result = parse(dateTimeString, formatString, referenceDate);
2183
+ expect(result).toEqual(expected);
2184
+ });
2185
+
2186
+ it('long date + short time', () => {
2187
+ const expected = new Date(1995, 4 /* May */, 26, 10, 32, 55);
2188
+ const dateTimeString = 'May 26th, 1995 at 10:32:55 AM';
2189
+ const formatString = 'PPPpp';
2190
+ const result = parse(dateTimeString, formatString, referenceDate);
2191
+ expect(result).toEqual(expected);
2192
+ });
2193
+
2194
+ it('full date + short time', () => {
2195
+ const expected = new Date(1995, 4 /* May */, 26, 10, 32, 55);
2196
+ const dateTimeString = 'Friday, May 26th, 1995 at 10:32:55 AM';
2197
+ const formatString = 'PPPPpp';
2198
+ const result = parse(dateTimeString, formatString, referenceDate);
2199
+ expect(result).toEqual(expected);
2200
+ });
2201
+ });
2202
+ });