@checkdigit/time 3.0.0-PR.17-58cd → 4.0.0-PR.18-9134

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