@northguild/gmt 1.16.0 → 1.18.0

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 (654) hide show
  1. package/README.md +742 -21
  2. package/dist/calendar/calculate/bucketRange.d.ts +3 -3
  3. package/dist/calendar/calculate/bucketRange.js +6 -6
  4. package/dist/calendar/calculate/floorToZone.d.ts +5 -3
  5. package/dist/calendar/calculate/floorToZone.js +6 -5
  6. package/dist/calendar/calculate/getFiscalPeriod.d.ts +21 -8
  7. package/dist/calendar/calculate/getFiscalPeriod.js +9 -8
  8. package/dist/calendar/calculate/getIsoWeekDate.d.ts +10 -5
  9. package/dist/calendar/calculate/getIsoWeekDate.js +1 -5
  10. package/dist/calendar/calculate/getOrdinalDate.d.ts +10 -3
  11. package/dist/calendar/calculate/getOrdinalDate.js +2 -3
  12. package/dist/calendar/calculate/getQuarter.d.ts +21 -9
  13. package/dist/calendar/calculate/getQuarter.js +8 -12
  14. package/dist/calendar/hours/addOperatingTime.d.ts +53 -0
  15. package/dist/calendar/hours/addOperatingTime.js +59 -0
  16. package/dist/calendar/hours/index.d.ts +7 -0
  17. package/dist/calendar/hours/index.js +7 -0
  18. package/dist/calendar/hours/isOpenAt.d.ts +39 -0
  19. package/dist/calendar/hours/isOpenAt.js +44 -0
  20. package/dist/calendar/hours/nextCloseAt.d.ts +49 -0
  21. package/dist/calendar/hours/nextCloseAt.js +51 -0
  22. package/dist/calendar/hours/nextOpenAt.d.ts +45 -0
  23. package/dist/calendar/hours/nextOpenAt.js +47 -0
  24. package/dist/calendar/hours/operatingIntervals.d.ts +43 -0
  25. package/dist/calendar/hours/operatingIntervals.js +52 -0
  26. package/dist/calendar/hours/operatingTimeBetween.d.ts +40 -0
  27. package/dist/calendar/hours/operatingTimeBetween.js +49 -0
  28. package/dist/calendar/hours/recurringWindows.d.ts +61 -0
  29. package/dist/calendar/hours/recurringWindows.js +80 -0
  30. package/dist/calendar/index.d.ts +1 -0
  31. package/dist/calendar/index.js +1 -0
  32. package/dist/duration/calculate/durationAs.d.ts +13 -8
  33. package/dist/duration/calculate/durationAs.js +4 -8
  34. package/dist/duration/compare/compareDurations.d.ts +12 -6
  35. package/dist/duration/compare/compareDurations.js +3 -6
  36. package/dist/duration/format/formatDuration.d.ts +16 -4
  37. package/dist/duration/format/formatDuration.js +4 -5
  38. package/dist/duration/normalize/normalizeDuration.d.ts +39 -14
  39. package/dist/duration/normalize/normalizeDuration.js +6 -15
  40. package/dist/duration/parse/parseDuration.d.ts +21 -3
  41. package/dist/duration/parse/parseDuration.js +1 -3
  42. package/dist/index.d.ts +2 -0
  43. package/dist/index.js +2 -0
  44. package/dist/instant/convert/classifyLocal.d.ts +1 -1
  45. package/dist/instant/convert/classifyLocal.js +1 -1
  46. package/dist/instant/convert/fromOffsetInstant.d.ts +3 -1
  47. package/dist/instant/convert/fromOffsetInstant.js +6 -12
  48. package/dist/instant/convert/resolveLocal.d.ts +12 -7
  49. package/dist/instant/convert/resolveLocal.js +6 -10
  50. package/dist/instant/convert/toOffsetInstant.d.ts +37 -1
  51. package/dist/instant/convert/toOffsetInstant.js +12 -28
  52. package/dist/intermodal/calculate/billingTimeline.d.ts +114 -0
  53. package/dist/intermodal/calculate/billingTimeline.js +168 -0
  54. package/dist/intermodal/calculate/chargeableDays.d.ts +100 -0
  55. package/dist/intermodal/calculate/chargeableDays.js +96 -0
  56. package/dist/intermodal/calculate/demurrageClock.d.ts +102 -0
  57. package/dist/intermodal/calculate/demurrageClock.js +140 -0
  58. package/dist/intermodal/calculate/freeTimeExpiry.d.ts +67 -0
  59. package/dist/intermodal/calculate/freeTimeExpiry.js +82 -0
  60. package/dist/intermodal/calculate/index.d.ts +4 -0
  61. package/dist/intermodal/calculate/index.js +4 -0
  62. package/dist/intermodal/index.d.ts +2 -0
  63. package/dist/intermodal/index.js +3 -0
  64. package/dist/internal/businessCalendar.d.ts +5 -0
  65. package/dist/internal/businessCalendar.js +5 -1
  66. package/dist/internal/cycleFieldValue.d.ts +6 -4
  67. package/dist/internal/cycleFieldValue.js +6 -4
  68. package/dist/internal/daylightTime.d.ts +33 -0
  69. package/dist/internal/daylightTime.js +164 -0
  70. package/dist/internal/durationUntilString.js +4 -3
  71. package/dist/internal/englishCalendarNames.js +1 -2
  72. package/dist/internal/epochNanoseconds.d.ts +2 -0
  73. package/dist/internal/epochNanoseconds.js +2 -0
  74. package/dist/internal/exactDuration.d.ts +37 -0
  75. package/dist/internal/exactDuration.js +64 -0
  76. package/dist/internal/exactMoment.d.ts +72 -0
  77. package/dist/internal/exactMoment.js +114 -0
  78. package/dist/internal/fiscalCalendar.d.ts +4 -3
  79. package/dist/internal/fiscalCalendar.js +4 -3
  80. package/dist/internal/formatCalendarDays.d.ts +2 -2
  81. package/dist/internal/formatRelativeDuration.d.ts +21 -1
  82. package/dist/internal/formatRelativeDuration.js +47 -7
  83. package/dist/internal/freeTimeLedger.d.ts +93 -0
  84. package/dist/internal/freeTimeLedger.js +262 -0
  85. package/dist/internal/index.d.ts +10 -3
  86. package/dist/internal/index.js +10 -3
  87. package/dist/internal/instantFormatOptions.js +2 -1
  88. package/dist/internal/instantNanoseconds.d.ts +75 -9
  89. package/dist/internal/instantNanoseconds.js +192 -11
  90. package/dist/internal/isoStringBody.d.ts +26 -0
  91. package/dist/internal/isoStringBody.js +22 -2
  92. package/dist/internal/joinDateTimeConnector.d.ts +1 -1
  93. package/dist/internal/monthGridWeekRow.d.ts +2 -1
  94. package/dist/internal/monthGridWeekRow.js +2 -1
  95. package/dist/internal/normalizeTimeZone.d.ts +2 -2
  96. package/dist/internal/normalizeTimeZone.js +2 -2
  97. package/dist/internal/operatingSchedule.d.ts +129 -0
  98. package/dist/internal/operatingSchedule.js +668 -0
  99. package/dist/internal/optionOrDefault.d.ts +18 -0
  100. package/dist/internal/optionOrDefault.js +20 -0
  101. package/dist/internal/patternToken.d.ts +2 -2
  102. package/dist/internal/patternToken.js +28 -13
  103. package/dist/internal/plainDateUntil.js +10 -6
  104. package/dist/internal/punctuality.d.ts +38 -0
  105. package/dist/internal/punctuality.js +59 -0
  106. package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
  107. package/dist/internal/readDateTimeFormatOptions.js +93 -0
  108. package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
  109. package/dist/internal/resolveDurationRelativeTo.js +11 -1
  110. package/dist/internal/resolveRelativeRounding.d.ts +17 -6
  111. package/dist/internal/resolveRelativeRounding.js +27 -7
  112. package/dist/internal/resolveRelativeUnit.d.ts +30 -0
  113. package/dist/internal/resolveRelativeUnit.js +40 -0
  114. package/dist/internal/splitStep.d.ts +24 -1
  115. package/dist/internal/splitStep.js +34 -2
  116. package/dist/internal/startOrEndOfZoned.js +2 -3
  117. package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
  118. package/dist/internal/temporalCompat/capabilities.js +35 -3
  119. package/dist/internal/temporalCompat/fieldSearch.js +1 -1
  120. package/dist/internal/temporalCompat/index.d.ts +1 -1
  121. package/dist/internal/temporalCompat/index.js +1 -1
  122. package/dist/internal/temporalCompat/repros.d.ts +1 -1
  123. package/dist/internal/temporalCompat/repros.js +157 -0
  124. package/dist/internal/timestampEvents.d.ts +32 -0
  125. package/dist/internal/timestampEvents.js +76 -0
  126. package/dist/internal/utcZonedDateTime.d.ts +5 -2
  127. package/dist/internal/utcZonedDateTime.js +8 -5
  128. package/dist/internal/wallClockAtOffset.d.ts +22 -0
  129. package/dist/internal/wallClockAtOffset.js +26 -0
  130. package/dist/internal/zonedBucket.js +8 -6
  131. package/dist/internal/zonedLocalDates.js +1 -1
  132. package/dist/internal/zonedTransitionSearch.d.ts +27 -0
  133. package/dist/internal/zonedTransitionSearch.js +218 -0
  134. package/dist/internal/zonedWallClock.d.ts +21 -7
  135. package/dist/internal/zonedWallClock.js +87 -18
  136. package/dist/internal/zonedWallClockDifference.js +5 -4
  137. package/dist/internal/zonedWallClockOperations.d.ts +26 -13
  138. package/dist/internal/zonedWallClockOperations.js +87 -34
  139. package/dist/interval/validate/isValidInterval.d.ts +6 -3
  140. package/dist/interval/validate/isValidInterval.js +6 -3
  141. package/dist/plain/calculate/addDate.d.ts +11 -8
  142. package/dist/plain/calculate/addDate.js +5 -8
  143. package/dist/plain/calculate/addDateTime.d.ts +7 -4
  144. package/dist/plain/calculate/addDateTime.js +1 -4
  145. package/dist/plain/calculate/cycleDate.d.ts +16 -7
  146. package/dist/plain/calculate/cycleDate.js +3 -7
  147. package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
  148. package/dist/plain/calculate/cycleDateTime.js +1 -4
  149. package/dist/plain/calculate/cycleTime.d.ts +10 -5
  150. package/dist/plain/calculate/cycleTime.js +3 -5
  151. package/dist/plain/calculate/diffDate.d.ts +1 -1
  152. package/dist/plain/calculate/diffDate.js +1 -1
  153. package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
  154. package/dist/plain/calculate/diffDateAsDuration.js +1 -1
  155. package/dist/plain/calculate/diffDateTime.d.ts +1 -1
  156. package/dist/plain/calculate/diffDateTime.js +1 -1
  157. package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
  158. package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
  159. package/dist/plain/calculate/diffTime.d.ts +1 -1
  160. package/dist/plain/calculate/diffTime.js +1 -1
  161. package/dist/plain/calculate/endOfDate.d.ts +8 -3
  162. package/dist/plain/calculate/endOfDate.js +1 -3
  163. package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
  164. package/dist/plain/calculate/endOfDateTime.js +1 -5
  165. package/dist/plain/calculate/endOfTime.d.ts +8 -2
  166. package/dist/plain/calculate/endOfTime.js +1 -2
  167. package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
  168. package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
  169. package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
  170. package/dist/plain/calculate/getWeekOfMonth.js +7 -4
  171. package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
  172. package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
  173. package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
  174. package/dist/plain/calculate/getWeeksInMonth.js +5 -2
  175. package/dist/plain/calculate/nextWeekday.d.ts +7 -3
  176. package/dist/plain/calculate/nextWeekday.js +1 -3
  177. package/dist/plain/calculate/previousWeekday.d.ts +7 -3
  178. package/dist/plain/calculate/previousWeekday.js +1 -3
  179. package/dist/plain/calculate/roundDate.d.ts +20 -7
  180. package/dist/plain/calculate/roundDate.js +3 -10
  181. package/dist/plain/calculate/roundDateTime.d.ts +22 -8
  182. package/dist/plain/calculate/roundDateTime.js +3 -11
  183. package/dist/plain/calculate/roundTime.d.ts +20 -4
  184. package/dist/plain/calculate/roundTime.js +3 -7
  185. package/dist/plain/calculate/setDate.d.ts +7 -5
  186. package/dist/plain/calculate/setDate.js +1 -5
  187. package/dist/plain/calculate/setDateTime.d.ts +8 -5
  188. package/dist/plain/calculate/setDateTime.js +1 -5
  189. package/dist/plain/calculate/setTime.d.ts +10 -6
  190. package/dist/plain/calculate/setTime.js +4 -6
  191. package/dist/plain/calculate/startOfDate.d.ts +8 -2
  192. package/dist/plain/calculate/startOfDate.js +1 -2
  193. package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
  194. package/dist/plain/calculate/startOfDateTime.js +1 -2
  195. package/dist/plain/calculate/startOfTime.d.ts +8 -1
  196. package/dist/plain/calculate/startOfTime.js +1 -1
  197. package/dist/plain/calculate/subtractDate.d.ts +7 -4
  198. package/dist/plain/calculate/subtractDate.js +1 -4
  199. package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
  200. package/dist/plain/calculate/subtractDateTime.js +1 -4
  201. package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
  202. package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
  203. package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
  204. package/dist/plain/compare/areDatesEqualBy.js +8 -6
  205. package/dist/plain/compare/isBetweenDate.d.ts +13 -2
  206. package/dist/plain/compare/isBetweenDate.js +4 -4
  207. package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
  208. package/dist/plain/compare/isBetweenDateTime.js +4 -4
  209. package/dist/plain/compare/isBetweenTime.d.ts +13 -2
  210. package/dist/plain/compare/isBetweenTime.js +4 -4
  211. package/dist/plain/compare/isRelativeDay.d.ts +1 -1
  212. package/dist/plain/compare/isRelativeDay.js +1 -1
  213. package/dist/plain/compare/isThisUnit.d.ts +1 -1
  214. package/dist/plain/compare/isThisUnit.js +1 -1
  215. package/dist/plain/format/formatCalendar.d.ts +21 -14
  216. package/dist/plain/format/formatCalendar.js +21 -16
  217. package/dist/plain/format/formatDate.js +5 -3
  218. package/dist/plain/format/formatDateRange.js +4 -2
  219. package/dist/plain/format/formatDateTime.js +4 -2
  220. package/dist/plain/format/formatDateTimeRange.js +4 -2
  221. package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
  222. package/dist/plain/format/formatDateTimeToParts.js +10 -6
  223. package/dist/plain/format/formatDateToParts.d.ts +13 -2
  224. package/dist/plain/format/formatDateToParts.js +8 -4
  225. package/dist/plain/format/formatRelativeDate.d.ts +16 -3
  226. package/dist/plain/format/formatRelativeDate.js +26 -15
  227. package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
  228. package/dist/plain/format/formatRelativeDateTime.js +8 -5
  229. package/dist/plain/format/formatRelativeTime.d.ts +16 -3
  230. package/dist/plain/format/formatRelativeTime.js +21 -13
  231. package/dist/plain/format/formatTime.js +4 -2
  232. package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
  233. package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
  234. package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
  235. package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
  236. package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
  237. package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
  238. package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
  239. package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
  240. package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
  241. package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
  242. package/dist/plain/interval/intervalFromDurationDate.js +1 -3
  243. package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
  244. package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
  245. package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
  246. package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
  247. package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
  248. package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
  249. package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
  250. package/dist/plain/interval/intervalSplitAtDate.js +2 -0
  251. package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
  252. package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
  253. package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
  254. package/dist/plain/interval/intervalSplitAtTime.js +2 -0
  255. package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
  256. package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
  257. package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
  258. package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
  259. package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
  260. package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
  261. package/dist/plain/interval/intervalXorDate.d.ts +9 -0
  262. package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
  263. package/dist/plain/interval/intervalXorTime.d.ts +9 -0
  264. package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
  265. package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
  266. package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
  267. package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
  268. package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
  269. package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
  270. package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
  271. package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
  272. package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
  273. package/dist/plain/map/mapDatesInRange.d.ts +8 -4
  274. package/dist/plain/map/mapDatesInRange.js +1 -4
  275. package/dist/plain/parse/parseDateTimeWithPattern.d.ts +10 -7
  276. package/dist/plain/parse/parseDateTimeWithPattern.js +10 -7
  277. package/dist/plain/parse/parseDateWithPattern.d.ts +10 -7
  278. package/dist/plain/parse/parseDateWithPattern.js +10 -7
  279. package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
  280. package/dist/plain/parse/parseTimeWithPattern.js +10 -7
  281. package/dist/plain/parse/parseUnitFromDate.d.ts +11 -3
  282. package/dist/plain/parse/parseUnitFromDate.js +3 -3
  283. package/dist/plain/parse/parseUnitFromDateTime.d.ts +11 -3
  284. package/dist/plain/parse/parseUnitFromDateTime.js +3 -3
  285. package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
  286. package/dist/plain/parse/parseWeekFromDate.js +2 -6
  287. package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
  288. package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
  289. package/dist/plain/validate/isValidDateRange.d.ts +19 -4
  290. package/dist/plain/validate/isValidDateRange.js +1 -4
  291. package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
  292. package/dist/plain/validate/isValidDateTimeRange.js +2 -5
  293. package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
  294. package/dist/plain/validate/isValidTimeRange.js +2 -5
  295. package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
  296. package/dist/precision/convert/fromExcelSerial.js +4 -5
  297. package/dist/precision/convert/fromNanoseconds.d.ts +1 -1
  298. package/dist/precision/convert/fromNanoseconds.js +1 -1
  299. package/dist/precision/convert/toExcelSerial.d.ts +9 -3
  300. package/dist/precision/convert/toExcelSerial.js +3 -4
  301. package/dist/precision/convert/toNanoseconds.d.ts +11 -6
  302. package/dist/precision/convert/toNanoseconds.js +11 -6
  303. package/dist/precision/validate/isValidInstant.d.ts +12 -3
  304. package/dist/precision/validate/isValidInstant.js +12 -3
  305. package/dist/span/calculate/spanMs.d.ts +10 -4
  306. package/dist/span/calculate/spanMs.js +10 -4
  307. package/dist/span/calculate/spanNs.d.ts +10 -4
  308. package/dist/span/calculate/spanNs.js +10 -4
  309. package/dist/span/validate/isValidSpan.d.ts +8 -3
  310. package/dist/span/validate/isValidSpan.js +8 -3
  311. package/dist/transport/calculate/bestAvailable.d.ts +47 -0
  312. package/dist/transport/calculate/bestAvailable.js +76 -0
  313. package/dist/transport/calculate/crossingTime.d.ts +58 -0
  314. package/dist/transport/calculate/crossingTime.js +76 -0
  315. package/dist/transport/calculate/cutoffAt.d.ts +90 -0
  316. package/dist/transport/calculate/cutoffAt.js +209 -0
  317. package/dist/transport/calculate/cutoffSchedule.d.ts +70 -0
  318. package/dist/transport/calculate/cutoffSchedule.js +71 -0
  319. package/dist/transport/calculate/dwellTime.d.ts +81 -0
  320. package/dist/transport/calculate/dwellTime.js +130 -0
  321. package/dist/transport/calculate/estimateDrift.d.ts +65 -0
  322. package/dist/transport/calculate/estimateDrift.js +75 -0
  323. package/dist/transport/calculate/index.d.ts +10 -0
  324. package/dist/transport/calculate/index.js +10 -0
  325. package/dist/transport/calculate/nextDeparture.d.ts +78 -0
  326. package/dist/transport/calculate/nextDeparture.js +131 -0
  327. package/dist/transport/calculate/punctualityRate.d.ts +42 -0
  328. package/dist/transport/calculate/punctualityRate.js +59 -0
  329. package/dist/transport/calculate/scheduleDelivery.d.ts +150 -0
  330. package/dist/transport/calculate/scheduleDelivery.js +300 -0
  331. package/dist/transport/calculate/transitTime.d.ts +71 -0
  332. package/dist/transport/calculate/transitTime.js +101 -0
  333. package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
  334. package/dist/transport/compare/classifyPunctuality.js +64 -0
  335. package/dist/transport/compare/index.d.ts +4 -0
  336. package/dist/transport/compare/index.js +4 -0
  337. package/dist/transport/compare/isPastCutoff.d.ts +33 -0
  338. package/dist/transport/compare/isPastCutoff.js +48 -0
  339. package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
  340. package/dist/transport/compare/scheduleDeviation.js +53 -0
  341. package/dist/transport/compare/timeToCutoff.d.ts +31 -0
  342. package/dist/transport/compare/timeToCutoff.js +47 -0
  343. package/dist/transport/convert/etaAtZone.d.ts +43 -0
  344. package/dist/transport/convert/etaAtZone.js +58 -0
  345. package/dist/transport/convert/index.d.ts +1 -0
  346. package/dist/transport/convert/index.js +1 -0
  347. package/dist/transport/index.d.ts +4 -0
  348. package/dist/transport/index.js +5 -0
  349. package/dist/types/business-calendar.d.ts +19 -14
  350. package/dist/types/calendar-options.d.ts +15 -3
  351. package/dist/types/date-cycle-field.d.ts +5 -0
  352. package/dist/types/date-duration-unit.d.ts +4 -0
  353. package/dist/types/date-time-cycle-field.d.ts +4 -0
  354. package/dist/types/date-time-duration-units.d.ts +4 -0
  355. package/dist/types/date-time-unit.d.ts +4 -0
  356. package/dist/types/date-unit.d.ts +4 -0
  357. package/dist/types/disambiguation.d.ts +8 -0
  358. package/dist/types/duration-relative-to.d.ts +8 -0
  359. package/dist/types/duration-string-options.d.ts +28 -0
  360. package/dist/types/fiscal-calendar.d.ts +1 -1
  361. package/dist/types/fractional-digit.d.ts +5 -0
  362. package/dist/types/free-time-options.d.ts +44 -0
  363. package/dist/types/index.d.ts +3 -1
  364. package/dist/types/index.js +3 -1
  365. package/dist/types/interval.d.ts +8 -1
  366. package/dist/types/offset.d.ts +9 -0
  367. package/dist/types/operating-schedule.d.ts +71 -0
  368. package/dist/types/operating-schedule.js +0 -0
  369. package/dist/types/overflow.d.ts +6 -0
  370. package/dist/types/relative-rounding-method.d.ts +6 -0
  371. package/dist/types/relative-time-options.d.ts +33 -5
  372. package/dist/types/rounding-options.d.ts +27 -0
  373. package/dist/types/time-cycle-field.d.ts +4 -0
  374. package/dist/types/time-duration-unit.d.ts +4 -0
  375. package/dist/types/time-unit.d.ts +4 -0
  376. package/dist/types/transport-timestamps.d.ts +54 -0
  377. package/dist/types/transport-timestamps.js +0 -0
  378. package/dist/unix/calculate/addUnix.d.ts +19 -5
  379. package/dist/unix/calculate/addUnix.js +1 -5
  380. package/dist/unix/calculate/diffUnix.d.ts +13 -3
  381. package/dist/unix/calculate/diffUnix.js +1 -3
  382. package/dist/unix/calculate/diffUnixAsDuration.d.ts +13 -3
  383. package/dist/unix/calculate/diffUnixAsDuration.js +1 -3
  384. package/dist/unix/calculate/endOfQuarterForUnix.d.ts +13 -3
  385. package/dist/unix/calculate/endOfQuarterForUnix.js +1 -3
  386. package/dist/unix/calculate/endOfUnix.d.ts +20 -4
  387. package/dist/unix/calculate/endOfUnix.js +1 -4
  388. package/dist/unix/calculate/isBetweenUnix.d.ts +26 -4
  389. package/dist/unix/calculate/isBetweenUnix.js +4 -6
  390. package/dist/unix/calculate/roundUnix.d.ts +31 -3
  391. package/dist/unix/calculate/roundUnix.js +3 -6
  392. package/dist/unix/calculate/setUnix.d.ts +35 -9
  393. package/dist/unix/calculate/setUnix.js +4 -13
  394. package/dist/unix/calculate/startOfQuarterForUnix.d.ts +13 -3
  395. package/dist/unix/calculate/startOfQuarterForUnix.js +1 -3
  396. package/dist/unix/calculate/startOfUnix.d.ts +20 -4
  397. package/dist/unix/calculate/startOfUnix.js +1 -4
  398. package/dist/unix/calculate/subtractUnix.d.ts +19 -5
  399. package/dist/unix/calculate/subtractUnix.js +1 -5
  400. package/dist/unix/compare/areUnixEqual.d.ts +7 -1
  401. package/dist/unix/compare/areUnixEqual.js +1 -1
  402. package/dist/unix/compare/areUnixEqualBy.d.ts +24 -7
  403. package/dist/unix/compare/areUnixEqualBy.js +13 -9
  404. package/dist/unix/compare/isAfterUnix.d.ts +7 -1
  405. package/dist/unix/compare/isAfterUnix.js +1 -1
  406. package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
  407. package/dist/unix/compare/isBeforeUnix.js +1 -1
  408. package/dist/unix/convert/convertUnixToPlainDate.d.ts +14 -4
  409. package/dist/unix/convert/convertUnixToPlainDate.js +2 -4
  410. package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +14 -4
  411. package/dist/unix/convert/convertUnixToPlainDateTime.js +2 -4
  412. package/dist/unix/convert/convertUnixToPlainTime.d.ts +14 -4
  413. package/dist/unix/convert/convertUnixToPlainTime.js +2 -4
  414. package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
  415. package/dist/unix/convert/convertUnixToUtc.js +3 -4
  416. package/dist/unix/convert/convertUnixToZoned.d.ts +10 -5
  417. package/dist/unix/convert/convertUnixToZoned.js +4 -5
  418. package/dist/unix/format/formatCalendarUnix.d.ts +27 -19
  419. package/dist/unix/format/formatCalendarUnix.js +4 -5
  420. package/dist/unix/format/formatRelativeUnix.d.ts +54 -5
  421. package/dist/unix/format/formatRelativeUnix.js +3 -5
  422. package/dist/unix/format/formatUnix.d.ts +24 -6
  423. package/dist/unix/format/formatUnix.js +8 -7
  424. package/dist/unix/get/getUnixNow.d.ts +8 -3
  425. package/dist/unix/get/getUnixNow.js +1 -3
  426. package/dist/unix/interval/intervalCountUnix.d.ts +14 -5
  427. package/dist/unix/interval/intervalCountUnix.js +2 -5
  428. package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
  429. package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
  430. package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
  431. package/dist/unix/interval/intervalFromDurationUnix.d.ts +33 -5
  432. package/dist/unix/interval/intervalFromDurationUnix.js +6 -5
  433. package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
  434. package/dist/unix/interval/intervalLengthUnix.d.ts +16 -6
  435. package/dist/unix/interval/intervalLengthUnix.js +4 -6
  436. package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +13 -3
  437. package/dist/unix/interval/intervalOverlappingDaysUnix.js +1 -3
  438. package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
  439. package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
  440. package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
  441. package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
  442. package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
  443. package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
  444. package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +42 -11
  445. package/dist/unix/interval/splitIntervalByUnitUnix.js +21 -16
  446. package/dist/unix/parse/parseDateFromUnix.d.ts +13 -2
  447. package/dist/unix/parse/parseDateFromUnix.js +1 -2
  448. package/dist/unix/parse/parseDayFromUnix.d.ts +14 -2
  449. package/dist/unix/parse/parseDayFromUnix.js +2 -2
  450. package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +13 -1
  451. package/dist/unix/parse/parseDayOfWeekFromUnix.js +1 -1
  452. package/dist/unix/parse/parseHourFromUnix.d.ts +14 -2
  453. package/dist/unix/parse/parseHourFromUnix.js +2 -2
  454. package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +14 -2
  455. package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
  456. package/dist/unix/parse/parseMillisecondFromUnix.d.ts +14 -2
  457. package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
  458. package/dist/unix/parse/parseMinuteFromUnix.d.ts +14 -2
  459. package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
  460. package/dist/unix/parse/parseMonthFromUnix.d.ts +14 -2
  461. package/dist/unix/parse/parseMonthFromUnix.js +2 -2
  462. package/dist/unix/parse/parseNanosecondFromUnix.d.ts +14 -2
  463. package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
  464. package/dist/unix/parse/parseSecondFromUnix.d.ts +14 -2
  465. package/dist/unix/parse/parseSecondFromUnix.js +2 -2
  466. package/dist/unix/parse/parseTimeFromUnix.d.ts +13 -2
  467. package/dist/unix/parse/parseTimeFromUnix.js +1 -2
  468. package/dist/unix/parse/parseUnitFromUnix.d.ts +22 -3
  469. package/dist/unix/parse/parseUnitFromUnix.js +2 -3
  470. package/dist/unix/parse/parseWeekFromUnix.d.ts +23 -7
  471. package/dist/unix/parse/parseWeekFromUnix.js +3 -7
  472. package/dist/unix/parse/parseYearFromUnix.d.ts +14 -2
  473. package/dist/unix/parse/parseYearFromUnix.js +2 -2
  474. package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
  475. package/dist/unix/validate/isValidUnixRange.js +1 -4
  476. package/dist/utc/calculate/addUtc.d.ts +7 -4
  477. package/dist/utc/calculate/addUtc.js +1 -4
  478. package/dist/utc/calculate/diffUtc.d.ts +1 -1
  479. package/dist/utc/calculate/diffUtc.js +1 -1
  480. package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
  481. package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
  482. package/dist/utc/calculate/endOfUtc.d.ts +16 -3
  483. package/dist/utc/calculate/endOfUtc.js +2 -3
  484. package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
  485. package/dist/utc/calculate/isBetweenUtc.js +4 -4
  486. package/dist/utc/calculate/roundUtc.d.ts +26 -9
  487. package/dist/utc/calculate/roundUtc.js +3 -12
  488. package/dist/utc/calculate/setUtc.d.ts +7 -4
  489. package/dist/utc/calculate/setUtc.js +1 -4
  490. package/dist/utc/calculate/startOfUtc.d.ts +15 -2
  491. package/dist/utc/calculate/startOfUtc.js +1 -2
  492. package/dist/utc/calculate/subtractUtc.d.ts +7 -4
  493. package/dist/utc/calculate/subtractUtc.js +1 -4
  494. package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
  495. package/dist/utc/compare/areUtcEqualBy.js +2 -3
  496. package/dist/utc/convert/convertUtcToPlainDate.d.ts +8 -3
  497. package/dist/utc/convert/convertUtcToPlainDate.js +5 -6
  498. package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +8 -3
  499. package/dist/utc/convert/convertUtcToPlainDateTime.js +5 -6
  500. package/dist/utc/convert/convertUtcToPlainTime.d.ts +8 -3
  501. package/dist/utc/convert/convertUtcToPlainTime.js +5 -6
  502. package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
  503. package/dist/utc/convert/convertUtcToUnix.js +3 -4
  504. package/dist/utc/convert/convertUtcToZoned.d.ts +1 -1
  505. package/dist/utc/convert/convertUtcToZoned.js +1 -1
  506. package/dist/utc/format/formatCalendarUtc.d.ts +19 -8
  507. package/dist/utc/format/formatCalendarUtc.js +8 -6
  508. package/dist/utc/format/formatHttp.d.ts +1 -1
  509. package/dist/utc/format/formatHttp.js +1 -1
  510. package/dist/utc/format/formatRelativeUtc.d.ts +30 -10
  511. package/dist/utc/format/formatRelativeUtc.js +9 -11
  512. package/dist/utc/format/formatUtc.d.ts +17 -15
  513. package/dist/utc/format/formatUtc.js +8 -8
  514. package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
  515. package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
  516. package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
  517. package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
  518. package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
  519. package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
  520. package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
  521. package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
  522. package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
  523. package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
  524. package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
  525. package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
  526. package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
  527. package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
  528. package/dist/utc/parse/parseDateFromUtc.d.ts +7 -3
  529. package/dist/utc/parse/parseDateFromUtc.js +1 -3
  530. package/dist/utc/parse/parseDayFromUtc.d.ts +7 -3
  531. package/dist/utc/parse/parseDayFromUtc.js +1 -3
  532. package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +7 -3
  533. package/dist/utc/parse/parseDayOfWeekFromUtc.js +4 -6
  534. package/dist/utc/parse/parseHourFromUtc.d.ts +7 -3
  535. package/dist/utc/parse/parseHourFromUtc.js +1 -3
  536. package/dist/utc/parse/parseHttp.d.ts +1 -1
  537. package/dist/utc/parse/parseHttp.js +1 -1
  538. package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +7 -3
  539. package/dist/utc/parse/parseMicrosecondFromUtc.js +1 -3
  540. package/dist/utc/parse/parseMillisecondFromUtc.d.ts +7 -3
  541. package/dist/utc/parse/parseMillisecondFromUtc.js +1 -3
  542. package/dist/utc/parse/parseMinuteFromUtc.d.ts +7 -3
  543. package/dist/utc/parse/parseMinuteFromUtc.js +1 -3
  544. package/dist/utc/parse/parseMonthFromUtc.d.ts +7 -3
  545. package/dist/utc/parse/parseMonthFromUtc.js +1 -3
  546. package/dist/utc/parse/parseNanosecondFromUtc.d.ts +7 -3
  547. package/dist/utc/parse/parseNanosecondFromUtc.js +1 -3
  548. package/dist/utc/parse/parseSecondFromUtc.d.ts +7 -3
  549. package/dist/utc/parse/parseSecondFromUtc.js +1 -3
  550. package/dist/utc/parse/parseTimeFromUtc.d.ts +8 -3
  551. package/dist/utc/parse/parseTimeFromUtc.js +5 -6
  552. package/dist/utc/parse/parseUnitFromUtc.d.ts +17 -5
  553. package/dist/utc/parse/parseUnitFromUtc.js +6 -8
  554. package/dist/utc/parse/parseWeekFromUtc.d.ts +18 -10
  555. package/dist/utc/parse/parseWeekFromUtc.js +7 -13
  556. package/dist/utc/parse/parseYearFromUtc.d.ts +7 -3
  557. package/dist/utc/parse/parseYearFromUtc.js +1 -3
  558. package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
  559. package/dist/utc/validate/isValidUtcRange.js +2 -5
  560. package/dist/zoned/calculate/addZoned.d.ts +20 -10
  561. package/dist/zoned/calculate/addZoned.js +6 -13
  562. package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
  563. package/dist/zoned/calculate/cycleZoned.js +1 -8
  564. package/dist/zoned/calculate/diffZoned.d.ts +1 -1
  565. package/dist/zoned/calculate/diffZoned.js +1 -1
  566. package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
  567. package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
  568. package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
  569. package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
  570. package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
  571. package/dist/zoned/calculate/endOfZoned.js +2 -3
  572. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
  573. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
  574. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
  575. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
  576. package/dist/zoned/calculate/roundZoned.d.ts +21 -4
  577. package/dist/zoned/calculate/roundZoned.js +3 -7
  578. package/dist/zoned/calculate/setZoned.d.ts +25 -8
  579. package/dist/zoned/calculate/setZoned.js +4 -12
  580. package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
  581. package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
  582. package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
  583. package/dist/zoned/calculate/startOfZoned.js +1 -3
  584. package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
  585. package/dist/zoned/calculate/subtractZoned.js +6 -13
  586. package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
  587. package/dist/zoned/compare/areZonedEqualBy.js +7 -5
  588. package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
  589. package/dist/zoned/compare/isBetweenZoned.js +4 -3
  590. package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
  591. package/dist/zoned/compare/isInDaylightSaving.js +40 -44
  592. package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +18 -5
  593. package/dist/zoned/convert/convertPlainDateTimeToZoned.js +6 -11
  594. package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
  595. package/dist/zoned/convert/convertZonedToUnix.js +2 -4
  596. package/dist/zoned/convert/convertZonedToZoned.d.ts +1 -1
  597. package/dist/zoned/convert/convertZonedToZoned.js +1 -1
  598. package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
  599. package/dist/zoned/format/formatCalendarZoned.js +13 -9
  600. package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
  601. package/dist/zoned/format/formatRelativeZoned.js +7 -4
  602. package/dist/zoned/format/formatRfc2822.d.ts +2 -2
  603. package/dist/zoned/format/formatRfc2822.js +2 -2
  604. package/dist/zoned/format/formatRfc3339.d.ts +2 -3
  605. package/dist/zoned/format/formatRfc3339.js +2 -3
  606. package/dist/zoned/format/formatTimeZoneName.d.ts +12 -3
  607. package/dist/zoned/format/formatTimeZoneName.js +5 -4
  608. package/dist/zoned/format/formatZonedDateTime.js +2 -1
  609. package/dist/zoned/format/formatZonedRange.js +2 -1
  610. package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
  611. package/dist/zoned/format/formatZonedToParts.js +8 -5
  612. package/dist/zoned/get/getDstTransitions.d.ts +9 -10
  613. package/dist/zoned/get/getDstTransitions.js +12 -3
  614. package/dist/zoned/get/getTimeZoneOffset.d.ts +4 -1
  615. package/dist/zoned/get/getTimeZoneOffset.js +6 -3
  616. package/dist/zoned/get/getZonedNow.d.ts +13 -1
  617. package/dist/zoned/get/getZonedNow.js +12 -3
  618. package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
  619. package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
  620. package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
  621. package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
  622. package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
  623. package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
  624. package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
  625. package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
  626. package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
  627. package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
  628. package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
  629. package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
  630. package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
  631. package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
  632. package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
  633. package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
  634. package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
  635. package/dist/zoned/parse/parseRfc2822.js +1 -1
  636. package/dist/zoned/parse/parseUnitFromZoned.d.ts +9 -3
  637. package/dist/zoned/parse/parseUnitFromZoned.js +1 -3
  638. package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
  639. package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
  640. package/dist/zoned/validate/hasDaylightSaving.d.ts +42 -11
  641. package/dist/zoned/validate/hasDaylightSaving.js +47 -31
  642. package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
  643. package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
  644. package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
  645. package/dist/zoned/validate/isValidZonedRange.js +1 -4
  646. package/package.json +53 -5
  647. package/skills/gmt-arithmetic/SKILL.md +1 -1
  648. package/skills/gmt-basics/SKILL.md +10 -1
  649. package/skills/gmt-integration/SKILL.md +10 -5
  650. package/skills/gmt-timezone/SKILL.md +210 -14
  651. package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
  652. package/dist/internal/resolveReadingTimeZone.js +0 -18
  653. package/dist/types/duration-unit.d.ts +0 -5
  654. /package/dist/types/{duration-unit.js → free-time-options.js} +0 -0
@@ -24,7 +24,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
24
24
  * @param dateTime1 ISO PlainDateTime string for the start
25
25
  * @param dateTime2 ISO PlainDateTime string for the end
26
26
  * @param unit DateTimeDurationUnit to use as the duration's largestUnit
27
- * @param options optional: smallestUnit, roundingIncrement, roundingMode (.until() rounding); toStringSmallestUnit, fractionalSecondDigits, toStringRoundingMode (.toString() precision); a non-object value (such as `null`) is invalid
27
+ * @param options optional: how the difference is rounded and how the string is rendered; a non-object value (such as `null`) is invalid
28
28
  * @returns ISO 8601 duration string, or "" on invalid input
29
29
  *
30
30
  * @example diffDateTimeAsDuration("2024-03-10T00:00:00", "2024-03-11T02:00:00", "days") // "P1DT2H"
@@ -28,7 +28,7 @@ import type { RoundingOptions, TimeDurationUnit } from "../../types/index.js";
28
28
  * @param time1 ISO PlainTime string for the start
29
29
  * @param time2 ISO PlainTime string for the end
30
30
  * @param units TimeDurationUnit | TimeDurationUnit[] to measure the difference
31
- * @param options optional: smallestUnit, roundingIncrement, roundingMode (Temporal.DifferenceOptions rounding controls); a non-object value (such as `null`) is invalid
31
+ * @param options optional: how the difference is rounded; a non-object value (such as `null`) is invalid
32
32
  * @returns numeric difference in the requested unit, or null on invalid input
33
33
  *
34
34
  * @example diffTime("12:00:00", "14:30:00", "hours") // 2
@@ -33,7 +33,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
33
33
  * @param time1 ISO PlainTime string for the start
34
34
  * @param time2 ISO PlainTime string for the end
35
35
  * @param units TimeDurationUnit | TimeDurationUnit[] to measure the difference
36
- * @param options optional: smallestUnit, roundingIncrement, roundingMode (Temporal.DifferenceOptions rounding controls); a non-object value (such as `null`) is invalid
36
+ * @param options optional: how the difference is rounded; a non-object value (such as `null`) is invalid
37
37
  * @returns numeric difference in the requested unit, or null on invalid input
38
38
  *
39
39
  * @example diffTime("12:00:00", "14:30:00", "hours") // 2
@@ -2,16 +2,14 @@ import { Temporal } from "@js-temporal/polyfill";
2
2
  /**
3
3
  * Return the end of the specified date `unit` for a given ISO 8601 date string.
4
4
  *
5
- * - A Sunday-first week runs Sunday to Saturday, so a Sunday ends its week six days later.
6
5
  * - The end is computed forward from `value`, so it is returned even when the unit began before
7
6
  * the first representable date (`-271821-04-19`).
8
7
  * - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
9
- * - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
10
8
  * - Returns "" for invalid inputs.
11
9
  *
12
10
  * @param value ISO 8601 date string
13
11
  * @param unit date unit, singular or plural, to specify the unit for the end
14
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday")
12
+ * @param optionsArg How the week is defined
15
13
  * @returns ISO 8601 string representing the end of the specified unit, or "" on invalid input
16
14
  *
17
15
  * @example endOfDate("2024-02-29", "month") // "2024-02-29"
@@ -21,5 +19,12 @@ import { Temporal } from "@js-temporal/polyfill";
21
19
  * @example endOfDate("invalid-date", "month") // ""
22
20
  */
23
21
  export declare function endOfDate(value: string, unit: Temporal.SmallestUnit<Temporal.DateUnit>, optionsArg?: {
22
+ /**
23
+ * The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
24
+ * 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
25
+ * `""`, whatever the unit.
26
+ *
27
+ * @defaultValue `"monday"`
28
+ */
24
29
  weekStartsOn?: "monday" | "sunday";
25
30
  }): string;
@@ -8,16 +8,14 @@ const supported = ["year", "month", "week", "day"];
8
8
  /**
9
9
  * Return the end of the specified date `unit` for a given ISO 8601 date string.
10
10
  *
11
- * - A Sunday-first week runs Sunday to Saturday, so a Sunday ends its week six days later.
12
11
  * - The end is computed forward from `value`, so it is returned even when the unit began before
13
12
  * the first representable date (`-271821-04-19`).
14
13
  * - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
15
- * - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
16
14
  * - Returns "" for invalid inputs.
17
15
  *
18
16
  * @param value ISO 8601 date string
19
17
  * @param unit date unit, singular or plural, to specify the unit for the end
20
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday")
18
+ * @param optionsArg How the week is defined
21
19
  * @returns ISO 8601 string representing the end of the specified unit, or "" on invalid input
22
20
  *
23
21
  * @example endOfDate("2024-02-29", "month") // "2024-02-29"
@@ -3,13 +3,9 @@ import type { FractionalDigit } from "../../types/index.js";
3
3
  /**
4
4
  * Return the end of the specified date-time `unit` for a given ISO 8601 datetime string.
5
5
  *
6
- * - A Sunday-first week runs Sunday to Saturday, so a Sunday ends its week six days later.
7
6
  * - The end is computed forward from `value`, so it is returned even when the unit began before
8
7
  * the first representable date (`-271821-04-19`).
9
- * - The end is written at nanosecond precision by default, so the string names the end itself; an
10
- * explicit `fractionalSecondDigits` (0, 3, 6 or 9) truncates it, as Temporal's `toString` does.
11
8
  * - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
12
- * - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
13
9
  * - Returns "" for invalid inputs.
14
10
  * - **Compatibility:** before 1.16.0 the default printed only the digits the unit names — none for
15
11
  * `second` and coarser, 3 for `millisecond`, 6 for `microsecond` — which wrote a moment earlier
@@ -17,7 +13,7 @@ import type { FractionalDigit } from "../../types/index.js";
17
13
  *
18
14
  * @param value ISO 8601 datetime string
19
15
  * @param unit date or time unit, singular or plural, to specify the unit for the end
20
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday"), fractionalSecondDigits (number)
16
+ * @param optionsArg How the week is defined and how the result is written
21
17
  * @returns ISO 8601 string representing the end of the specified unit, or "" on invalid input
22
18
  *
23
19
  * @example endOfDateTime("2024-02-29T12:34:56", "month") // "2024-02-29T23:59:59.999999999"
@@ -29,6 +25,20 @@ import type { FractionalDigit } from "../../types/index.js";
29
25
  * @example endOfDateTime("invalid-date", "month") // ""
30
26
  */
31
27
  export declare function endOfDateTime(value: string, unit: Temporal.SmallestUnit<Temporal.DateTimeUnit>, optionsArg?: {
28
+ /**
29
+ * The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
30
+ * 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
31
+ * `""`, whatever the unit.
32
+ *
33
+ * @defaultValue `"monday"`
34
+ */
32
35
  weekStartsOn?: "monday" | "sunday";
36
+ /**
37
+ * The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
38
+ * drop trailing zeros. Fewer than 9 digits truncate the string, as Temporal's `toString` does,
39
+ * so it names a moment before the end.
40
+ *
41
+ * @defaultValue `9`
42
+ */
33
43
  fractionalSecondDigits?: FractionalDigit;
34
44
  }): string;
@@ -19,13 +19,9 @@ const supported = [
19
19
  /**
20
20
  * Return the end of the specified date-time `unit` for a given ISO 8601 datetime string.
21
21
  *
22
- * - A Sunday-first week runs Sunday to Saturday, so a Sunday ends its week six days later.
23
22
  * - The end is computed forward from `value`, so it is returned even when the unit began before
24
23
  * the first representable date (`-271821-04-19`).
25
- * - The end is written at nanosecond precision by default, so the string names the end itself; an
26
- * explicit `fractionalSecondDigits` (0, 3, 6 or 9) truncates it, as Temporal's `toString` does.
27
24
  * - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
28
- * - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
29
25
  * - Returns "" for invalid inputs.
30
26
  * - **Compatibility:** before 1.16.0 the default printed only the digits the unit names — none for
31
27
  * `second` and coarser, 3 for `millisecond`, 6 for `microsecond` — which wrote a moment earlier
@@ -33,7 +29,7 @@ const supported = [
33
29
  *
34
30
  * @param value ISO 8601 datetime string
35
31
  * @param unit date or time unit, singular or plural, to specify the unit for the end
36
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday"), fractionalSecondDigits (number)
32
+ * @param optionsArg How the week is defined and how the result is written
37
33
  * @returns ISO 8601 string representing the end of the specified unit, or "" on invalid input
38
34
  *
39
35
  * @example endOfDateTime("2024-02-29T12:34:56", "month") // "2024-02-29T23:59:59.999999999"
@@ -12,7 +12,6 @@ export type EndOfTimeUnit = Temporal.SmallestUnit<Temporal.TimeUnit | "day">;
12
12
  /**
13
13
  * Return the end of the specified time `unit` for a given ISO 8601 time string.
14
14
  *
15
- * - The end is written at nanosecond precision by default, so the string names the end itself; an explicit `fractionalSecondDigits` (0, 3, 6 or 9) truncates it, as Temporal's `toString` does.
16
15
  * - `unit` accepts the singular or plural name (`"hour"` or `"hours"`), as Temporal does.
17
16
  * - Returns "" for invalid inputs.
18
17
  * - **Compatibility:** before 1.16.0 the default printed only the digits the unit names — none for
@@ -21,7 +20,7 @@ export type EndOfTimeUnit = Temporal.SmallestUnit<Temporal.TimeUnit | "day">;
21
20
  *
22
21
  * @param value ISO 8601 time string
23
22
  * @param unit EndOfTimeUnit to specify the unit for the end
24
- * @param optionsArg optional: fractionalSecondDigits (number)
23
+ * @param optionsArg How the result is written
25
24
  * @returns ISO 8601 string representing the end of the specified unit, or "" on invalid input
26
25
  *
27
26
  * @example endOfTime("12:34:56", "hour") // "12:59:59.999999999"
@@ -30,5 +29,12 @@ export type EndOfTimeUnit = Temporal.SmallestUnit<Temporal.TimeUnit | "day">;
30
29
  * @example endOfTime("invalid", "hour") // ""
31
30
  */
32
31
  export declare function endOfTime(value: string, unit: EndOfTimeUnit, optionsArg?: {
32
+ /**
33
+ * The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
34
+ * drop trailing zeros. Fewer than 9 digits truncate the string, as Temporal's `toString` does,
35
+ * so it names a moment before the end.
36
+ *
37
+ * @defaultValue `9`
38
+ */
33
39
  fractionalSecondDigits?: FractionalDigit;
34
40
  }): string;
@@ -15,7 +15,6 @@ const supported = [
15
15
  /**
16
16
  * Return the end of the specified time `unit` for a given ISO 8601 time string.
17
17
  *
18
- * - The end is written at nanosecond precision by default, so the string names the end itself; an explicit `fractionalSecondDigits` (0, 3, 6 or 9) truncates it, as Temporal's `toString` does.
19
18
  * - `unit` accepts the singular or plural name (`"hour"` or `"hours"`), as Temporal does.
20
19
  * - Returns "" for invalid inputs.
21
20
  * - **Compatibility:** before 1.16.0 the default printed only the digits the unit names — none for
@@ -24,7 +23,7 @@ const supported = [
24
23
  *
25
24
  * @param value ISO 8601 time string
26
25
  * @param unit EndOfTimeUnit to specify the unit for the end
27
- * @param optionsArg optional: fractionalSecondDigits (number)
26
+ * @param optionsArg How the result is written
28
27
  * @returns ISO 8601 string representing the end of the specified unit, or "" on invalid input
29
28
  *
30
29
  * @example endOfTime("12:34:56", "hour") // "12:59:59.999999999"
@@ -7,21 +7,21 @@
7
7
  * - Week 1 is the week starting on `locale`'s first day of week that holds at least `minimalDays`
8
8
  * days of January (UTS #35 Part 4, Week Data). The first day of week comes from
9
9
  * `Intl.Locale.prototype.getWeekInfo`.
10
- * - **`minimalDays` defaults to `4`, the ISO 8601 rule, on every runtime.** ECMA-402 does not expose
11
- * a locale's minimal days: Intl Locale Info returns only `firstDay` and `weekend`
12
- * (tc39/proposal-intl-locale-info#86), so older runtimes that still reported it disagreed with
13
- * newer ones about the same date. Pass CLDR's value when you need a locale's own rule: in CLDR 48
14
- * `weekData`, the world default (`001`) is `1` — week 1 always contains January 1, as in `US`,
15
- * `CA`, `MX`, `JP` and `CN` — and `4` is set for a list of mostly European regions such as `GB`,
16
- * `DE` and `FR`, where it matches this default.
17
- * - Returns null if `value` or `locale` is invalid, or if `minimalDays` is not an integer from 1 to 7.
10
+ * - The minimal-days rule comes from the caller, never the runtime, so one input has one answer
11
+ * everywhere. ECMA-402 does not expose a locale's minimal days: Intl Locale Info returns only
12
+ * `firstDay` and `weekend` (tc39/proposal-intl-locale-info#86), so older runtimes that still
13
+ * reported it disagreed with newer ones about the same date. Pass CLDR's value when you need a
14
+ * locale's own rule: in CLDR 48 `weekData`, the world default (`001`) is `1`, as in `US`, `CA`,
15
+ * `MX`, `JP` and `CN`, and `4` is set for a list of mostly European regions such as `GB`, `DE`
16
+ * and `FR`.
17
+ * - Returns null if `value` or `locale` is invalid.
18
18
  * - **Compatibility:** before 1.16.0 the default read the runtime's `minimalDays` where one was
19
19
  * exposed (Node 22), so a locale such as `en-US` got `1` there and `4` on Node 24 and later. Pass
20
20
  * `{ minimalDays: 1 }` to keep the Node 22 result for such a locale on every runtime.
21
21
  *
22
22
  * @param value ISO PlainDate string
23
23
  * @param locale BCP 47 locale tag (e.g. "en-US", "fr-FR"), or a preference list of tags (ECMA-402; the first with locale data is read). Required: omitted, or an empty list (which ECMA-402 would resolve to the host default), returns null
24
- * @param options optional: minimalDays (integer 1–7, default 4)
24
+ * @param options The minimal-days-in-first-week rule
25
25
  * @returns locale-relative week-numbering year, or null on invalid input
26
26
  *
27
27
  * @example getLocaleWeekYear("2024-06-15", "en-US") // 2024
@@ -34,5 +34,12 @@
34
34
  * @example getLocaleWeekYear("2024-12-29", ["en-US", "fr-FR"]) // 2025
35
35
  */
36
36
  export declare function getLocaleWeekYear(value: string, locale: string | string[], options?: {
37
+ /**
38
+ * How many days of January the first week must hold to be week 1 (UTS #35 Part 4, Week
39
+ * Data). `4` is the ISO 8601 rule; `1` puts January 1 in week 1 every year, as CLDR's world
40
+ * default does. A value that is not an integer from 1 to 7 returns `null`.
41
+ *
42
+ * @defaultValue `4`
43
+ */
37
44
  minimalDays?: number;
38
45
  }): number | null;
@@ -12,21 +12,21 @@ import { isOptionsArgument } from "../../internal/isObject.js";
12
12
  * - Week 1 is the week starting on `locale`'s first day of week that holds at least `minimalDays`
13
13
  * days of January (UTS #35 Part 4, Week Data). The first day of week comes from
14
14
  * `Intl.Locale.prototype.getWeekInfo`.
15
- * - **`minimalDays` defaults to `4`, the ISO 8601 rule, on every runtime.** ECMA-402 does not expose
16
- * a locale's minimal days: Intl Locale Info returns only `firstDay` and `weekend`
17
- * (tc39/proposal-intl-locale-info#86), so older runtimes that still reported it disagreed with
18
- * newer ones about the same date. Pass CLDR's value when you need a locale's own rule: in CLDR 48
19
- * `weekData`, the world default (`001`) is `1` — week 1 always contains January 1, as in `US`,
20
- * `CA`, `MX`, `JP` and `CN` — and `4` is set for a list of mostly European regions such as `GB`,
21
- * `DE` and `FR`, where it matches this default.
22
- * - Returns null if `value` or `locale` is invalid, or if `minimalDays` is not an integer from 1 to 7.
15
+ * - The minimal-days rule comes from the caller, never the runtime, so one input has one answer
16
+ * everywhere. ECMA-402 does not expose a locale's minimal days: Intl Locale Info returns only
17
+ * `firstDay` and `weekend` (tc39/proposal-intl-locale-info#86), so older runtimes that still
18
+ * reported it disagreed with newer ones about the same date. Pass CLDR's value when you need a
19
+ * locale's own rule: in CLDR 48 `weekData`, the world default (`001`) is `1`, as in `US`, `CA`,
20
+ * `MX`, `JP` and `CN`, and `4` is set for a list of mostly European regions such as `GB`, `DE`
21
+ * and `FR`.
22
+ * - Returns null if `value` or `locale` is invalid.
23
23
  * - **Compatibility:** before 1.16.0 the default read the runtime's `minimalDays` where one was
24
24
  * exposed (Node 22), so a locale such as `en-US` got `1` there and `4` on Node 24 and later. Pass
25
25
  * `{ minimalDays: 1 }` to keep the Node 22 result for such a locale on every runtime.
26
26
  *
27
27
  * @param value ISO PlainDate string
28
28
  * @param locale BCP 47 locale tag (e.g. "en-US", "fr-FR"), or a preference list of tags (ECMA-402; the first with locale data is read). Required: omitted, or an empty list (which ECMA-402 would resolve to the host default), returns null
29
- * @param options optional: minimalDays (integer 1–7, default 4)
29
+ * @param options The minimal-days-in-first-week rule
30
30
  * @returns locale-relative week-numbering year, or null on invalid input
31
31
  *
32
32
  * @example getLocaleWeekYear("2024-06-15", "en-US") // 2024
@@ -3,10 +3,13 @@
3
3
  * grid, using `locale`'s first day of week.
4
4
  *
5
5
  * - Week 1 is the row containing the 1st of the month, even when that row
6
- * is a partial week (matches date-fns's `getWeekOfMonth`, verified
7
- * against date-fns source 2026-08-21) — this is the convention every
8
- * calendar-grid UI (and `@internationalized/date`'s `getWeeksInMonth`)
9
- * expects for sizing a month grid.
6
+ * is a partial week. This is GMT's own rule, not a standard's: a month
7
+ * grid draws every day of the month, so its first row always holds the 1st.
8
+ * - Not CLDR's week-of-month field (`W`, UTS #35): that count applies the
9
+ * locale's `minDays`, so a short leading week may not count as part of
10
+ * the month.
11
+ * - Comparison: date-fns's `getWeekOfMonth` returns the same number for the
12
+ * same first day of week.
10
13
  * - Distinct from ISO `weekOfYear`: this counts rows within a single
11
14
  * month's grid, reset every month, rather than weeks since Jan 1.
12
15
  * - Resolves the locale's first day of week via
@@ -7,10 +7,13 @@ import { isValidDate } from "../validate/index.js";
7
7
  * grid, using `locale`'s first day of week.
8
8
  *
9
9
  * - Week 1 is the row containing the 1st of the month, even when that row
10
- * is a partial week (matches date-fns's `getWeekOfMonth`, verified
11
- * against date-fns source 2026-08-21) — this is the convention every
12
- * calendar-grid UI (and `@internationalized/date`'s `getWeeksInMonth`)
13
- * expects for sizing a month grid.
10
+ * is a partial week. This is GMT's own rule, not a standard's: a month
11
+ * grid draws every day of the month, so its first row always holds the 1st.
12
+ * - Not CLDR's week-of-month field (`W`, UTS #35): that count applies the
13
+ * locale's `minDays`, so a short leading week may not count as part of
14
+ * the month.
15
+ * - Comparison: date-fns's `getWeekOfMonth` returns the same number for the
16
+ * same first day of week.
14
17
  * - Distinct from ISO `weekOfYear`: this counts rows within a single
15
18
  * month's grid, reset every month, rather than weeks since Jan 1.
16
19
  * - Resolves the locale's first day of week via
@@ -7,18 +7,18 @@
7
7
  * - Computed as the calendar days between this week-year's start and the next one's, divided by 7 —
8
8
  * always whole, since both starts fall on the locale's first day of week. Counted by day
9
9
  * arithmetic, so a start outside the representable range still counts.
10
- * - **`minimalDays` defaults to `4`, the ISO 8601 rule, on every runtime.** ECMA-402 does not expose
11
- * a locale's minimal days (tc39/proposal-intl-locale-info#86). CLDR 48's world default is `1`
12
- * (`US` included) and `4` is set for mostly European regions; pass the locale's value when it
13
- * differs. See `getLocaleWeekYear`.
14
- * - Returns null if `value` or `locale` is invalid, or if `minimalDays` is not an integer from 1 to 7.
10
+ * - The minimal-days rule comes from the caller, never the runtime: ECMA-402 does not expose a
11
+ * locale's minimal days (tc39/proposal-intl-locale-info#86). CLDR 48's world default is `1`
12
+ * (`US` included) and `4` is set for mostly European regions; pass the locale's value when you
13
+ * need its own rule. See `getLocaleWeekYear`.
14
+ * - Returns null if `value` or `locale` is invalid.
15
15
  * - **Compatibility:** before 1.16.0 the default read the runtime's `minimalDays` where one was
16
16
  * exposed (Node 22), so a locale such as `en-US` got `1` there and `4` on Node 24 and later. Pass
17
17
  * `{ minimalDays: 1 }` to keep the Node 22 result for such a locale on every runtime.
18
18
  *
19
19
  * @param value ISO PlainDate string
20
20
  * @param locale BCP 47 locale tag (e.g. "en-US", "fr-FR"), or a preference list of tags (ECMA-402; the first with locale data is read). Required: omitted, or an empty list (which ECMA-402 would resolve to the host default), returns null
21
- * @param options optional: minimalDays (integer 1–7, default 4)
21
+ * @param options The minimal-days-in-first-week rule
22
22
  * @returns 52 or 53, or null on invalid input
23
23
  *
24
24
  * @example getWeeksInLocaleWeekYear("2024-06-15", "en-US") // 52
@@ -31,5 +31,12 @@
31
31
  * @example getWeeksInLocaleWeekYear("2024-12-29", ["fr-FR", "en-US"]) // 52
32
32
  */
33
33
  export declare function getWeeksInLocaleWeekYear(value: string, locale: string | string[], options?: {
34
+ /**
35
+ * How many days of January the first week must hold to be week 1 (UTS #35 Part 4, Week
36
+ * Data). `4` is the ISO 8601 rule; `1` puts January 1 in week 1 every year, as CLDR's world
37
+ * default does. A value that is not an integer from 1 to 7 returns `null`.
38
+ *
39
+ * @defaultValue `4`
40
+ */
34
41
  minimalDays?: number;
35
42
  }): number | null;
@@ -12,18 +12,18 @@ import { isOptionsArgument } from "../../internal/isObject.js";
12
12
  * - Computed as the calendar days between this week-year's start and the next one's, divided by 7 —
13
13
  * always whole, since both starts fall on the locale's first day of week. Counted by day
14
14
  * arithmetic, so a start outside the representable range still counts.
15
- * - **`minimalDays` defaults to `4`, the ISO 8601 rule, on every runtime.** ECMA-402 does not expose
16
- * a locale's minimal days (tc39/proposal-intl-locale-info#86). CLDR 48's world default is `1`
17
- * (`US` included) and `4` is set for mostly European regions; pass the locale's value when it
18
- * differs. See `getLocaleWeekYear`.
19
- * - Returns null if `value` or `locale` is invalid, or if `minimalDays` is not an integer from 1 to 7.
15
+ * - The minimal-days rule comes from the caller, never the runtime: ECMA-402 does not expose a
16
+ * locale's minimal days (tc39/proposal-intl-locale-info#86). CLDR 48's world default is `1`
17
+ * (`US` included) and `4` is set for mostly European regions; pass the locale's value when you
18
+ * need its own rule. See `getLocaleWeekYear`.
19
+ * - Returns null if `value` or `locale` is invalid.
20
20
  * - **Compatibility:** before 1.16.0 the default read the runtime's `minimalDays` where one was
21
21
  * exposed (Node 22), so a locale such as `en-US` got `1` there and `4` on Node 24 and later. Pass
22
22
  * `{ minimalDays: 1 }` to keep the Node 22 result for such a locale on every runtime.
23
23
  *
24
24
  * @param value ISO PlainDate string
25
25
  * @param locale BCP 47 locale tag (e.g. "en-US", "fr-FR"), or a preference list of tags (ECMA-402; the first with locale data is read). Required: omitted, or an empty list (which ECMA-402 would resolve to the host default), returns null
26
- * @param options optional: minimalDays (integer 1–7, default 4)
26
+ * @param options The minimal-days-in-first-week rule
27
27
  * @returns 52 or 53, or null on invalid input
28
28
  *
29
29
  * @example getWeeksInLocaleWeekYear("2024-06-15", "en-US") // 52
@@ -5,8 +5,11 @@
5
5
  * - The count depends on which day the week starts — the same month can
6
6
  * span 4, 5, or 6 rows depending on locale (e.g. February 2026 is 4
7
7
  * rows starting Sunday but 5 rows starting Monday).
8
- * - Sized the same way `@internationalized/date`'s `getWeeksInMonth`
9
- * sizes a datepicker's calendar grid.
8
+ * - The count is the row the month's last day falls on, where row 1 holds
9
+ * the 1st (see `getWeekOfMonth`). This is GMT's own rule for sizing a
10
+ * month grid, not a standard's; CLDR's `minDays` plays no part.
11
+ * - Comparison: `@internationalized/date`'s `getWeeksInMonth` returns the
12
+ * same number for the same first day of week.
10
13
  * - Resolves the locale's first day of week via
11
14
  * `Intl.Locale.prototype.weekInfo`.
12
15
  * - Returns null if `value` or `locale` is invalid.
@@ -9,8 +9,11 @@ import { isValidDate } from "../validate/index.js";
9
9
  * - The count depends on which day the week starts — the same month can
10
10
  * span 4, 5, or 6 rows depending on locale (e.g. February 2026 is 4
11
11
  * rows starting Sunday but 5 rows starting Monday).
12
- * - Sized the same way `@internationalized/date`'s `getWeeksInMonth`
13
- * sizes a datepicker's calendar grid.
12
+ * - The count is the row the month's last day falls on, where row 1 holds
13
+ * the 1st (see `getWeekOfMonth`). This is GMT's own rule for sizing a
14
+ * month grid, not a standard's; CLDR's `minDays` plays no part.
15
+ * - Comparison: `@internationalized/date`'s `getWeeksInMonth` returns the
16
+ * same number for the same first day of week.
14
17
  * - Resolves the locale's first day of week via
15
18
  * `Intl.Locale.prototype.weekInfo`.
16
19
  * - Returns null if `value` or `locale` is invalid.
@@ -3,8 +3,6 @@
3
3
  *
4
4
  * - `dayOfWeek` uses Temporal's ISO numbering: 1 (Monday) through 7 (Sunday), consistent with
5
5
  * `getDayOfWeek`/`parseDayOfWeekFromDate`.
6
- * - `options.inclusive` (default `false`) controls what happens when `value` already falls on
7
- * `dayOfWeek`: `false` advances a full week (matching date-fns), `true` returns `value` as-is.
8
6
  * - Returns "" on invalid input.
9
7
  *
10
8
  * Replaces date-fns's sixteen `next*` functions with one parameterized call:
@@ -22,7 +20,7 @@
22
20
  *
23
21
  * @param value ISO PlainDate string
24
22
  * @param dayOfWeek target ISO day of week (1-7, Monday-Sunday)
25
- * @param options optional: inclusive (boolean, default false)
23
+ * @param options Whether `value` itself can be the result
26
24
  * @returns ISO PlainDate string for the next occurrence of `dayOfWeek`, or "" on invalid input
27
25
  *
28
26
  * @example nextWeekday("2024-03-15", 5) // "2024-03-22" (2024-03-15 is already a Friday, so it advances a full week)
@@ -32,5 +30,11 @@
32
30
  * @example nextWeekday("2024-03-15", 8) // "" (dayOfWeek out of range)
33
31
  */
34
32
  export declare function nextWeekday(value: string, dayOfWeek: number, options?: {
33
+ /**
34
+ * Whether `value` counts when it already falls on `dayOfWeek`. `true` returns `value`
35
+ * unchanged; `false` advances a full week.
36
+ *
37
+ * @defaultValue `false`
38
+ */
35
39
  inclusive?: boolean;
36
40
  }): string;
@@ -8,8 +8,6 @@ import { isOptionsArgument } from "../../internal/isObject.js";
8
8
  *
9
9
  * - `dayOfWeek` uses Temporal's ISO numbering: 1 (Monday) through 7 (Sunday), consistent with
10
10
  * `getDayOfWeek`/`parseDayOfWeekFromDate`.
11
- * - `options.inclusive` (default `false`) controls what happens when `value` already falls on
12
- * `dayOfWeek`: `false` advances a full week (matching date-fns), `true` returns `value` as-is.
13
11
  * - Returns "" on invalid input.
14
12
  *
15
13
  * Replaces date-fns's sixteen `next*` functions with one parameterized call:
@@ -27,7 +25,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
27
25
  *
28
26
  * @param value ISO PlainDate string
29
27
  * @param dayOfWeek target ISO day of week (1-7, Monday-Sunday)
30
- * @param options optional: inclusive (boolean, default false)
28
+ * @param options Whether `value` itself can be the result
31
29
  * @returns ISO PlainDate string for the next occurrence of `dayOfWeek`, or "" on invalid input
32
30
  *
33
31
  * @example nextWeekday("2024-03-15", 5) // "2024-03-22" (2024-03-15 is already a Friday, so it advances a full week)
@@ -3,8 +3,6 @@
3
3
  *
4
4
  * - `dayOfWeek` uses Temporal's ISO numbering: 1 (Monday) through 7 (Sunday), consistent with
5
5
  * `getDayOfWeek`/`parseDayOfWeekFromDate`.
6
- * - `options.inclusive` (default `false`) controls what happens when `value` already falls on
7
- * `dayOfWeek`: `false` goes back a full week (matching date-fns), `true` returns `value` as-is.
8
6
  * - Returns "" on invalid input.
9
7
  *
10
8
  * Replaces date-fns's sixteen `previous*` functions with one parameterized call:
@@ -22,7 +20,7 @@
22
20
  *
23
21
  * @param value ISO PlainDate string
24
22
  * @param dayOfWeek target ISO day of week (1-7, Monday-Sunday)
25
- * @param options optional: inclusive (boolean, default false)
23
+ * @param options Whether `value` itself can be the result
26
24
  * @returns ISO PlainDate string for the previous occurrence of `dayOfWeek`, or "" on invalid input
27
25
  *
28
26
  * @example previousWeekday("2024-03-15", 5) // "2024-03-08" (2024-03-15 is already a Friday, so it goes back a full week)
@@ -32,5 +30,11 @@
32
30
  * @example previousWeekday("2024-03-15", 0) // "" (dayOfWeek out of range)
33
31
  */
34
32
  export declare function previousWeekday(value: string, dayOfWeek: number, options?: {
33
+ /**
34
+ * Whether `value` counts when it already falls on `dayOfWeek`. `true` returns `value`
35
+ * unchanged; `false` goes back a full week.
36
+ *
37
+ * @defaultValue `false`
38
+ */
35
39
  inclusive?: boolean;
36
40
  }): string;
@@ -8,8 +8,6 @@ import { isOptionsArgument } from "../../internal/isObject.js";
8
8
  *
9
9
  * - `dayOfWeek` uses Temporal's ISO numbering: 1 (Monday) through 7 (Sunday), consistent with
10
10
  * `getDayOfWeek`/`parseDayOfWeekFromDate`.
11
- * - `options.inclusive` (default `false`) controls what happens when `value` already falls on
12
- * `dayOfWeek`: `false` goes back a full week (matching date-fns), `true` returns `value` as-is.
13
11
  * - Returns "" on invalid input.
14
12
  *
15
13
  * Replaces date-fns's sixteen `previous*` functions with one parameterized call:
@@ -27,7 +25,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
27
25
  *
28
26
  * @param value ISO PlainDate string
29
27
  * @param dayOfWeek target ISO day of week (1-7, Monday-Sunday)
30
- * @param options optional: inclusive (boolean, default false)
28
+ * @param options Whether `value` itself can be the result
31
29
  * @returns ISO PlainDate string for the previous occurrence of `dayOfWeek`, or "" on invalid input
32
30
  *
33
31
  * @example previousWeekday("2024-03-15", 5) // "2024-03-08" (2024-03-15 is already a Friday, so it goes back a full week)
@@ -4,9 +4,6 @@ import type { DateUnit } from "../../types/index.js";
4
4
  * Round an ISO 8601 date string to the specified date unit.
5
5
  *
6
6
  * - Returns "" for invalid inputs.
7
- * - Accepts date units: "year", "month", "week", "day", each in its singular or plural form
8
- * ("month" or "months"), as Temporal's GetTemporalUnitValuedOption accepts both (§13.17).
9
- * - Time units ("hour", "minute", etc.) are rejected and return "".
10
7
  * - All date units use manual start-of-unit rounding. Weeks start on Monday.
11
8
  * - The rounding grid is anchored at the unit containing `value`, so `"halfEven"` breaks an exact
12
9
  * tie towards that unit's start (multiple 0, the even one).
@@ -15,13 +12,10 @@ import type { DateUnit } from "../../types/index.js";
15
12
  * When it rounds down to that unrepresentable start, the result is "".
16
13
  * - In the last representable year (`+275760`) a date that rounds down still returns its unit's
17
14
  * start; only rounding up past `+275760-09-13` returns "".
18
- * - `roundingIncrement` and `roundingMode` are read as Temporal reads them: a non-integer increment
19
- * is truncated (`1.5` rounds by 1), an increment below 1 or not finite returns "", and a
20
- * `roundingMode` outside Temporal's nine returns "" (previously it floored silently).
21
15
  * - Wraps all Temporal calls in try-catch; returns "" on any error.
22
16
  *
23
17
  * @param value ISO 8601 date string
24
- * @param options Rounding options: smallestUnit, optional roundingIncrement and roundingMode
18
+ * @param options The unit to round to and how to round
25
19
  * @returns Rounded ISO 8601 date string, or "" on invalid input
26
20
  *
27
21
  * @example roundDate("2024-06-15", { smallestUnit: "year" }) // "2024-01-01"
@@ -38,7 +32,26 @@ import type { DateUnit } from "../../types/index.js";
38
32
  * @example roundDate("invalid", { smallestUnit: "year" }) // ""
39
33
  */
40
34
  export declare function roundDate(value: string, options: {
35
+ /**
36
+ * The unit to round to: `"year"`, `"month"`, `"week"` or `"day"`, singular or plural, as
37
+ * Temporal's GetTemporalUnitValuedOption accepts both (§13.17). A time unit such as `"hour"`
38
+ * returns `""`.
39
+ */
41
40
  smallestUnit: Temporal.SmallestUnit<DateUnit>;
41
+ /**
42
+ * How many units make one rounding step, counted from the unit that holds `value`. Read as
43
+ * Temporal reads it: a non-integer is truncated (`1.5` rounds by 1), and a value below 1 or not
44
+ * finite returns `""`.
45
+ *
46
+ * @defaultValue `1`, Temporal's default.
47
+ */
42
48
  roundingIncrement?: number;
49
+ /**
50
+ * Which way a date between two steps goes: one of Temporal's nine rounding modes, such as
51
+ * `"floor"`, `"ceil"` or `"halfExpand"` (to the nearer step, a tie going up). Any other value
52
+ * returns `""`.
53
+ *
54
+ * @defaultValue `"halfExpand"`, Temporal's default.
55
+ */
43
56
  roundingMode?: Temporal.RoundingMode;
44
57
  }): string;
@@ -10,9 +10,6 @@ import { isObject } from "../../internal/isObject.js";
10
10
  * Round an ISO 8601 date string to the specified date unit.
11
11
  *
12
12
  * - Returns "" for invalid inputs.
13
- * - Accepts date units: "year", "month", "week", "day", each in its singular or plural form
14
- * ("month" or "months"), as Temporal's GetTemporalUnitValuedOption accepts both (§13.17).
15
- * - Time units ("hour", "minute", etc.) are rejected and return "".
16
13
  * - All date units use manual start-of-unit rounding. Weeks start on Monday.
17
14
  * - The rounding grid is anchored at the unit containing `value`, so `"halfEven"` breaks an exact
18
15
  * tie towards that unit's start (multiple 0, the even one).
@@ -21,13 +18,10 @@ import { isObject } from "../../internal/isObject.js";
21
18
  * When it rounds down to that unrepresentable start, the result is "".
22
19
  * - In the last representable year (`+275760`) a date that rounds down still returns its unit's
23
20
  * start; only rounding up past `+275760-09-13` returns "".
24
- * - `roundingIncrement` and `roundingMode` are read as Temporal reads them: a non-integer increment
25
- * is truncated (`1.5` rounds by 1), an increment below 1 or not finite returns "", and a
26
- * `roundingMode` outside Temporal's nine returns "" (previously it floored silently).
27
21
  * - Wraps all Temporal calls in try-catch; returns "" on any error.
28
22
  *
29
23
  * @param value ISO 8601 date string
30
- * @param options Rounding options: smallestUnit, optional roundingIncrement and roundingMode
24
+ * @param options The unit to round to and how to round
31
25
  * @returns Rounded ISO 8601 date string, or "" on invalid input
32
26
  *
33
27
  * @example roundDate("2024-06-15", { smallestUnit: "year" }) // "2024-01-01"
@@ -48,9 +42,8 @@ export function roundDate(value, options) {
48
42
  if (!isObject(options))
49
43
  return "";
50
44
  const { roundingIncrement, roundingMode } = options;
51
- const smallestUnit = typeof options.smallestUnit === "string"
52
- ? resolveDateTimeUnit(options.smallestUnit)
53
- : options.smallestUnit;
45
+ // One read (GetOption): resolveDateTimeUnit returns a value that is not a string unchanged.
46
+ const smallestUnit = resolveDateTimeUnit(options.smallestUnit);
54
47
  if (!isValidDate(value) || !isValidDateUnit(smallestUnit))
55
48
  return "";
56
49
  try {