@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
@@ -3,12 +3,10 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
3
3
  * Return the current Unix timestamp in either seconds or milliseconds.
4
4
  *
5
5
  * - Uses Temporal.Now.instant() to get current time.
6
- * - `options.epochUnit` is `"seconds"` or `"milliseconds"` (singular accepted), default
7
- * `"milliseconds"`. Seconds floor toward −∞, as POSIX `time_t` counts whole elapsed seconds.
8
6
  * - An explicit `undefined` is the same as omitted. An unknown `epochUnit`, or a non-object
9
7
  * `options` (such as a bare `"seconds"` string), returns null.
10
8
  *
11
- * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds")
9
+ * @param options optional: the unit of the result
12
10
  * @returns the current unix timestamp, or null on invalid options
13
11
  *
14
12
  * @example getUnixNow() // 1700000000000
@@ -17,5 +15,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
17
15
  * @example getUnixNow("seconds" as never) // null (options must be an object)
18
16
  */
19
17
  export declare function getUnixNow(options?: {
18
+ /**
19
+ * The unit of the returned epoch: `"seconds"` or `"milliseconds"`, singular or plural. Seconds
20
+ * floor toward −∞, as POSIX `time_t` counts whole elapsed seconds. Any other value returns
21
+ * `null`.
22
+ *
23
+ * @defaultValue `"milliseconds"`
24
+ */
20
25
  epochUnit?: UnixUnit;
21
26
  }): number | null;
@@ -4,12 +4,10 @@ import { resolveUnixEpochUnitOptions, toUnixEpoch, } from "../../internal/unixEp
4
4
  * Return the current Unix timestamp in either seconds or milliseconds.
5
5
  *
6
6
  * - Uses Temporal.Now.instant() to get current time.
7
- * - `options.epochUnit` is `"seconds"` or `"milliseconds"` (singular accepted), default
8
- * `"milliseconds"`. Seconds floor toward −∞, as POSIX `time_t` counts whole elapsed seconds.
9
7
  * - An explicit `undefined` is the same as omitted. An unknown `epochUnit`, or a non-object
10
8
  * `options` (such as a bare `"seconds"` string), returns null.
11
9
  *
12
- * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds")
10
+ * @param options optional: the unit of the result
13
11
  * @returns the current unix timestamp, or null on invalid options
14
12
  *
15
13
  * @example getUnixNow() // 1700000000000
@@ -7,10 +7,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
7
7
  * - The end boundary is excluded: midnight to midnight two days later counts 2 days.
8
8
  * - A zero-length interval (`start === end`) returns `0`: the empty `[start, start)` holds no instant,
9
9
  * so it touches no unit (before 1.16.0 it counted 1 when mid-unit).
10
- * - Reads `start` and `end` in `options.epochUnit` (`"milliseconds"` by default, `"seconds"`; singular
11
- * accepted). Each is a safe integer or a string of optionally negative ASCII digits.
12
- * - Uses `options.timeZone` for calendar-unit boundaries: omitted is `"UTC"`, `"local"` is the
13
- * system zone, and an unknown zone returns `null`.
10
+ * - `start` and `end` are each a safe integer or a string of optionally negative ASCII digits.
14
11
  * - Counts the real local buckets `floorToZone`/`bucketRange` walk in that zone: a bucket
15
12
  * shorter than its unit still counts once (a 15-minute `Pacific/Chatham` hour on its
16
13
  * spring-forward), and a local day the zone deleted counts not at all
@@ -28,7 +25,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
28
25
  * @param start Unix epoch in `epochUnit` — interval start
29
26
  * @param end Unix epoch in `epochUnit` — interval end
30
27
  * @param unit unit string — any `DateTimeUnit`, singular or plural
31
- * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds"), timeZone (IANA, or "local" for the system zone; default "UTC")
28
+ * @param options optional: how the epochs are read and the zone the boundaries are found in
32
29
  * @returns number of unit boundaries touched, or null on invalid input
33
30
  *
34
31
  * @example intervalCountUnix(0, 86400000, "hour") // 24
@@ -40,6 +37,18 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
40
37
  * @example intervalCountUnix(NaN, 86400000, "hour") // null
41
38
  */
42
39
  export declare function intervalCountUnix(start: number | string, end: number | string, unit: string, options?: {
40
+ /**
41
+ * The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
42
+ * plural. Any other value returns `null`.
43
+ *
44
+ * @defaultValue `"milliseconds"`
45
+ */
43
46
  epochUnit?: UnixUnit;
47
+ /**
48
+ * The time zone the unit boundaries are found in: an IANA name, a UTC offset, or `"local"` for
49
+ * the system time zone. An unknown zone returns `null`.
50
+ *
51
+ * @defaultValue `"UTC"`
52
+ */
44
53
  timeZone?: string;
45
54
  }): number | null;
@@ -10,10 +10,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
10
10
  * - The end boundary is excluded: midnight to midnight two days later counts 2 days.
11
11
  * - A zero-length interval (`start === end`) returns `0`: the empty `[start, start)` holds no instant,
12
12
  * so it touches no unit (before 1.16.0 it counted 1 when mid-unit).
13
- * - Reads `start` and `end` in `options.epochUnit` (`"milliseconds"` by default, `"seconds"`; singular
14
- * accepted). Each is a safe integer or a string of optionally negative ASCII digits.
15
- * - Uses `options.timeZone` for calendar-unit boundaries: omitted is `"UTC"`, `"local"` is the
16
- * system zone, and an unknown zone returns `null`.
13
+ * - `start` and `end` are each a safe integer or a string of optionally negative ASCII digits.
17
14
  * - Counts the real local buckets `floorToZone`/`bucketRange` walk in that zone: a bucket
18
15
  * shorter than its unit still counts once (a 15-minute `Pacific/Chatham` hour on its
19
16
  * spring-forward), and a local day the zone deleted counts not at all
@@ -31,7 +28,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
31
28
  * @param start Unix epoch in `epochUnit` — interval start
32
29
  * @param end Unix epoch in `epochUnit` — interval end
33
30
  * @param unit unit string — any `DateTimeUnit`, singular or plural
34
- * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds"), timeZone (IANA, or "local" for the system zone; default "UTC")
31
+ * @param options optional: how the epochs are read and the zone the boundaries are found in
35
32
  * @returns number of unit boundaries touched, or null on invalid input
36
33
  *
37
34
  * @example intervalCountUnix(0, 86400000, "hour") // 24
@@ -28,6 +28,12 @@
28
28
  * @example intervalDifferenceUnix(5, 10, 0, 5) // [{ start: 5, end: 10 }] (B ends where A starts)
29
29
  */
30
30
  export declare function intervalDifferenceUnix(aStart: number | string, aEnd: number | string, bStart: number | string, bEnd: number | string): Array<{
31
+ /** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
31
32
  start: number;
33
+ /**
34
+ * The first instant after the interval, in the same unit as `start`. It is exclusive: the
35
+ * interval holds everything from `start` up to but not including this value. It is always later
36
+ * than `start`.
37
+ */
32
38
  end: number;
33
39
  }>;
@@ -9,20 +9,21 @@
9
9
  * milliseconds), taken in `bigint` so no product past 2^53 loses a unit: the split is exact
10
10
  * whenever the total divides evenly by `n`, and within half a unit of the exact cut otherwise (an
11
11
  * exact half rounds up). No time zone is involved.
12
+ * - When `n` is larger than the number of whole epoch units in the interval, some pieces are empty (their
13
+ * `start` equals their `end`): the result always has exactly `n` pieces.
12
14
  * - `n === 1` returns the original interval unchanged, as a single-element array.
13
15
  * - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals, each
14
16
  * an empty `[start, start)` that holds no instant.
15
17
  * - Returns `[]` when `n` is not a positive integer, or on invalid input (`start`/`end` that is
16
18
  * not a safe integer or numeric string of one — fractions, empty strings and values beyond
17
19
  * ±(2^53 − 1) are invalid — or `start > end`).
18
- * - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: when `n`
19
- * exceeds it, or exceeds the longest possible array (2^32 - 1), the function returns `[]`
20
- * before building any piece. An invalid `maxPieces` also returns `[]`.
20
+ * - Returns `[]` before building any piece when `n` exceeds `options.maxPieces` or the longest
21
+ * possible array (2^32 - 1).
21
22
  *
22
23
  * @param start Unix epoch value, in the one unit all epoch arguments share — interval start
23
24
  * @param end Unix epoch value, in the one unit all epoch arguments share — interval end
24
25
  * @param n number of equal sub-intervals to produce (positive integer)
25
- * @param options optional: `maxPieces` (positive safe integer, default `1_000_000`)
26
+ * @param options optional: the limit on the number of pieces
26
27
  * @returns array of `n` `{ start, end }` records, or `[]` on invalid input
27
28
  *
28
29
  * @example intervalDivideEquallyUnix(0, 90000000, 3) // [{ start: 0, end: 30000000 }, { start: 30000000, end: 60000000 }, { start: 60000000, end: 90000000 }]
@@ -34,8 +35,21 @@
34
35
  * @example intervalDivideEquallyUnix(0, 90000000, 3, { maxPieces: 3 }) // [{ start: 0, end: 30000000 }, { start: 30000000, end: 60000000 }, { start: 60000000, end: 90000000 }]
35
36
  */
36
37
  export declare function intervalDivideEquallyUnix(start: number | string, end: number | string, n: number, options?: {
38
+ /**
39
+ * The most records the result may hold. A result that would hold more, or more than the longest
40
+ * possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
41
+ * positive safe integer also returns `[]`.
42
+ *
43
+ * @defaultValue `1_000_000`
44
+ */
37
45
  maxPieces?: number;
38
46
  }): Array<{
47
+ /** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
39
48
  start: number;
49
+ /**
50
+ * The first instant after the interval, in the same unit as `start`. It is exclusive: the
51
+ * interval holds everything from `start` up to but not including this value. It can equal
52
+ * `start`, which makes the interval empty.
53
+ */
40
54
  end: number;
41
55
  }>;
@@ -13,20 +13,21 @@ import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js
13
13
  * milliseconds), taken in `bigint` so no product past 2^53 loses a unit: the split is exact
14
14
  * whenever the total divides evenly by `n`, and within half a unit of the exact cut otherwise (an
15
15
  * exact half rounds up). No time zone is involved.
16
+ * - When `n` is larger than the number of whole epoch units in the interval, some pieces are empty (their
17
+ * `start` equals their `end`): the result always has exactly `n` pieces.
16
18
  * - `n === 1` returns the original interval unchanged, as a single-element array.
17
19
  * - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals, each
18
20
  * an empty `[start, start)` that holds no instant.
19
21
  * - Returns `[]` when `n` is not a positive integer, or on invalid input (`start`/`end` that is
20
22
  * not a safe integer or numeric string of one — fractions, empty strings and values beyond
21
23
  * ±(2^53 − 1) are invalid — or `start > end`).
22
- * - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: when `n`
23
- * exceeds it, or exceeds the longest possible array (2^32 - 1), the function returns `[]`
24
- * before building any piece. An invalid `maxPieces` also returns `[]`.
24
+ * - Returns `[]` before building any piece when `n` exceeds `options.maxPieces` or the longest
25
+ * possible array (2^32 - 1).
25
26
  *
26
27
  * @param start Unix epoch value, in the one unit all epoch arguments share — interval start
27
28
  * @param end Unix epoch value, in the one unit all epoch arguments share — interval end
28
29
  * @param n number of equal sub-intervals to produce (positive integer)
29
- * @param options optional: `maxPieces` (positive safe integer, default `1_000_000`)
30
+ * @param options optional: the limit on the number of pieces
30
31
  * @returns array of `n` `{ start, end }` records, or `[]` on invalid input
31
32
  *
32
33
  * @example intervalDivideEquallyUnix(0, 90000000, 3) // [{ start: 0, end: 30000000 }, { start: 30000000, end: 60000000 }, { start: 60000000, end: 90000000 }]
@@ -5,15 +5,16 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
5
5
  *
6
6
  * - `anchor: "start"` treats `value` as the interval start and adds `duration` to get the end.
7
7
  * - `anchor: "end"` treats `value` as the interval end and subtracts `duration` to get the start.
8
- * - Converts to `ZonedDateTime` in `timeZone` (`"UTC"` by default, consistent with `addUnix`; `"local"`
9
- * is the system zone), adds/subtracts
8
+ * - Converts to `ZonedDateTime` in `timeZone`, adds/subtracts
10
9
  * the duration there, then converts back to epoch — this is what lets calendar units (years/months/
11
10
  * weeks/days) resolve without a `relativeTo`: unlike a bare `Temporal.Instant`, the `ZonedDateTime`
12
11
  * supplies its own implicit reference point.
12
+ * - The computed boundary is floored to a whole `epochUnit`, so a duration shorter than one unit does
13
+ * not survive: with `anchor: "start"` the interval is empty (`"PT0.5S"` in seconds gives the
14
+ * same `{ start, end }` as `"PT0S"`), and with `anchor: "end"` the start falls back to the
15
+ * previous whole unit, making the interval one unit long.
13
16
  * - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
14
17
  * happens, mirroring `intervalIntersectionUnix`'s `start > end` rejection.
15
- * - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
16
- * to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
17
18
  * - Returns null on invalid input (a `value` that is not a safe integer or numeric string of one —
18
19
  * fractions, empty strings and values beyond ±(2^53 − 1) are invalid — invalid `duration`, an
19
20
  * `anchor` other than `"start"`/`"end"`, or an invalid/unavailable timeZone).
@@ -21,7 +22,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
21
22
  * @param value Unix epoch value (seconds or milliseconds): a safe integer or a digit string
22
23
  * @param duration ISO 8601 duration string
23
24
  * @param anchor "start" | "end" — which endpoint `value` represents
24
- * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds"), timeZone (IANA, or "local" for the system zone; default "UTC"), overflow ("constrain" | "reject")
25
+ * @param options optional: how `value` is read and how an out-of-range result day is handled
25
26
  * @returns `{ start, end }` with the constructed span (epoch numbers), or null on invalid input
26
27
  *
27
28
  * @example intervalFromDurationUnix(1704067200000, "P1D", "start", { timeZone: "UTC" }) // { start: 1704067200000, end: 1704153600000 }
@@ -32,10 +33,37 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
32
33
  * @example intervalFromDurationUnix(NaN, "P1D", "start") // null
33
34
  */
34
35
  export declare function intervalFromDurationUnix(value: number | string, duration: string, anchor: "start" | "end", options?: {
36
+ /**
37
+ * The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
38
+ * plural. Any other value returns `null`. The result is in the same unit.
39
+ *
40
+ * @defaultValue `"milliseconds"`
41
+ */
35
42
  epochUnit?: UnixUnit;
43
+ /**
44
+ * The time zone the calendar arithmetic runs in: an IANA name, a UTC offset, or `"local"` for
45
+ * the system time zone. An unknown zone returns `null`.
46
+ *
47
+ * @defaultValue `"UTC"`
48
+ */
36
49
  timeZone?: string;
50
+ /**
51
+ * How a result day that does not exist in its month is handled, such as January 31 plus one
52
+ * month. `"constrain"` clamps to the last valid day, and `"reject"` returns `null`.
53
+ *
54
+ * @defaultValue `"constrain"`, Temporal's default.
55
+ */
37
56
  overflow?: Overflow;
38
57
  }): {
58
+ /**
59
+ * The instant the interval begins at, as a Unix epoch number counted in `epochUnit`. A boundary
60
+ * that falls between two whole units is rounded down to the earlier one.
61
+ */
39
62
  start: number;
63
+ /**
64
+ * The first instant after the interval, counted in `epochUnit` and rounded as `start` is. It is
65
+ * exclusive: the interval holds everything from `start` up to but not including this value. It
66
+ * can equal `start`, which makes the interval empty.
67
+ */
40
68
  end: number;
41
69
  } | null;
@@ -10,15 +10,16 @@ import { isOptionsArgument } from "../../internal/isObject.js";
10
10
  *
11
11
  * - `anchor: "start"` treats `value` as the interval start and adds `duration` to get the end.
12
12
  * - `anchor: "end"` treats `value` as the interval end and subtracts `duration` to get the start.
13
- * - Converts to `ZonedDateTime` in `timeZone` (`"UTC"` by default, consistent with `addUnix`; `"local"`
14
- * is the system zone), adds/subtracts
13
+ * - Converts to `ZonedDateTime` in `timeZone`, adds/subtracts
15
14
  * the duration there, then converts back to epoch — this is what lets calendar units (years/months/
16
15
  * weeks/days) resolve without a `relativeTo`: unlike a bare `Temporal.Instant`, the `ZonedDateTime`
17
16
  * supplies its own implicit reference point.
17
+ * - The computed boundary is floored to a whole `epochUnit`, so a duration shorter than one unit does
18
+ * not survive: with `anchor: "start"` the interval is empty (`"PT0.5S"` in seconds gives the
19
+ * same `{ start, end }` as `"PT0S"`), and with `anchor: "end"` the start falls back to the
20
+ * previous whole unit, making the interval one unit long.
18
21
  * - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
19
22
  * happens, mirroring `intervalIntersectionUnix`'s `start > end` rejection.
20
- * - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
21
- * to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
22
23
  * - Returns null on invalid input (a `value` that is not a safe integer or numeric string of one —
23
24
  * fractions, empty strings and values beyond ±(2^53 − 1) are invalid — invalid `duration`, an
24
25
  * `anchor` other than `"start"`/`"end"`, or an invalid/unavailable timeZone).
@@ -26,7 +27,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
26
27
  * @param value Unix epoch value (seconds or milliseconds): a safe integer or a digit string
27
28
  * @param duration ISO 8601 duration string
28
29
  * @param anchor "start" | "end" — which endpoint `value` represents
29
- * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds"), timeZone (IANA, or "local" for the system zone; default "UTC"), overflow ("constrain" | "reject")
30
+ * @param options optional: how `value` is read and how an out-of-range result day is handled
30
31
  * @returns `{ start, end }` with the constructed span (epoch numbers), or null on invalid input
31
32
  *
32
33
  * @example intervalFromDurationUnix(1704067200000, "P1D", "start", { timeZone: "UTC" }) // { start: 1704067200000, end: 1704153600000 }
@@ -26,6 +26,12 @@
26
26
  * @example intervalIntersectionUnix("0", "1700000000", "1000000", "2000000") // { start: 1000000, end: 2000000 }
27
27
  */
28
28
  export declare function intervalIntersectionUnix(aStart: number | string, aEnd: number | string, bStart: number | string, bEnd: number | string): {
29
+ /** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
29
30
  start: number;
31
+ /**
32
+ * The first instant after the interval, in the same unit as `start`. It is exclusive: the
33
+ * interval holds everything from `start` up to but not including this value. It can equal
34
+ * `start`, which makes the interval empty.
35
+ */
30
36
  end: number;
31
37
  } | null;
@@ -4,11 +4,9 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
4
4
  *
5
5
  * - Distinct from `intervalCountUnix`, which counts local calendar `unit` boundaries *crossed*
6
6
  * rather than measuring exact duration.
7
- * - Reads `start` and `end` in `options.epochUnit` (`"milliseconds"` by default, `"seconds"`; singular
8
- * accepted). Each is a safe integer or a string of optionally negative ASCII digits.
9
- * - Resolves calendar units in `options.timeZone`: omitted is `"UTC"`, `"local"` is the system
10
- * zone, and an unknown zone returns `null`. Fixed-length units (hour, minute, second, …) are
11
- * zone-independent; a day is a local day, so New York's 23-hour 2024-03-10 is 1 day long there.
7
+ * - `start` and `end` are each a safe integer or a string of optionally negative ASCII digits.
8
+ * - Fixed-length units (hour, minute, second, …) are zone-independent; a day is a local day in
9
+ * `options.timeZone`, so New York's 23-hour 2024-03-10 is 1 day long there.
12
10
  * - Accepts singular or plural units (`"day"` and `"days"` behave identically).
13
11
  * - Returns `0` for a zero-length interval (`start === end`).
14
12
  * - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
@@ -18,7 +16,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
18
16
  * @param start Unix epoch in `epochUnit` — interval start
19
17
  * @param end Unix epoch in `epochUnit` — interval end
20
18
  * @param unit unit string — any `DateTimeUnit`, singular or plural
21
- * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds"), timeZone (IANA, or "local" for the system zone; default "UTC")
19
+ * @param options optional: how the epochs are read and the zone calendar units are measured in
22
20
  * @returns exact length of the interval expressed in `unit`, or null on invalid input
23
21
  *
24
22
  * @example intervalLengthUnix(0, 86400000, "hour") // 24
@@ -31,6 +29,18 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
31
29
  * @example intervalLengthUnix(NaN, 86400000, "hour") // null
32
30
  */
33
31
  export declare function intervalLengthUnix(start: number | string, end: number | string, unit: string, options?: {
32
+ /**
33
+ * The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
34
+ * plural. Any other value returns `null`.
35
+ *
36
+ * @defaultValue `"milliseconds"`
37
+ */
34
38
  epochUnit?: UnixUnit;
39
+ /**
40
+ * The time zone calendar units are measured in: an IANA name, a UTC offset, or `"local"` for
41
+ * the system time zone. An unknown zone returns `null`.
42
+ *
43
+ * @defaultValue `"UTC"`
44
+ */
35
45
  timeZone?: string;
36
46
  }): number | null;
@@ -7,11 +7,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
7
7
  *
8
8
  * - Distinct from `intervalCountUnix`, which counts local calendar `unit` boundaries *crossed*
9
9
  * rather than measuring exact duration.
10
- * - Reads `start` and `end` in `options.epochUnit` (`"milliseconds"` by default, `"seconds"`; singular
11
- * accepted). Each is a safe integer or a string of optionally negative ASCII digits.
12
- * - Resolves calendar units in `options.timeZone`: omitted is `"UTC"`, `"local"` is the system
13
- * zone, and an unknown zone returns `null`. Fixed-length units (hour, minute, second, …) are
14
- * zone-independent; a day is a local day, so New York's 23-hour 2024-03-10 is 1 day long there.
10
+ * - `start` and `end` are each a safe integer or a string of optionally negative ASCII digits.
11
+ * - Fixed-length units (hour, minute, second, …) are zone-independent; a day is a local day in
12
+ * `options.timeZone`, so New York's 23-hour 2024-03-10 is 1 day long there.
15
13
  * - Accepts singular or plural units (`"day"` and `"days"` behave identically).
16
14
  * - Returns `0` for a zero-length interval (`start === end`).
17
15
  * - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
@@ -21,7 +19,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
21
19
  * @param start Unix epoch in `epochUnit` — interval start
22
20
  * @param end Unix epoch in `epochUnit` — interval end
23
21
  * @param unit unit string — any `DateTimeUnit`, singular or plural
24
- * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds"), timeZone (IANA, or "local" for the system zone; default "UTC")
22
+ * @param options optional: how the epochs are read and the zone calendar units are measured in
25
23
  * @returns exact length of the interval expressed in `unit`, or null on invalid input
26
24
  *
27
25
  * @example intervalLengthUnix(0, 86400000, "hour") // 24
@@ -6,8 +6,6 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
6
6
  * - Counts the local dates that hold at least one instant of the half-open intersection
7
7
  * `[max(aStart, bStart), min(aEnd, bEnd))`. The end is excluded, so an intersection ending at
8
8
  * local midnight does not touch the date that midnight starts.
9
- * - Uses `"UTC"` by default (consistent with `addUnix` and `intervalCountUnix`); `"local"` is the
10
- * system zone and an unknown zone returns `null`.
11
9
  * - Each instant in the intersection contributes its own local date in `timeZone`, and each date
12
10
  * counts once. A date the zone deleted is not counted (`Pacific/Apia` skipped 2011-12-30), and a
13
11
  * fall-back into the previous date does not lose that date (`America/Goose_Bay`, 2010-11-07).
@@ -31,7 +29,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
31
29
  * @param aEnd Unix epoch value (seconds or milliseconds) — first interval end
32
30
  * @param bStart Unix epoch value (seconds or milliseconds) — second interval start
33
31
  * @param bEnd Unix epoch value (seconds or milliseconds) — second interval end
34
- * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds"), timeZone (IANA, or "local" for the system zone; default "UTC")
32
+ * @param options optional: how the epochs are read and the zone the dates are counted in
35
33
  * @returns number of shared calendar dates, `0` when disjoint, or null on invalid input
36
34
  *
37
35
  * @example intervalOverlappingDaysUnix(0, 172800000, 86400000, 259200000, { timeZone: "UTC" }) // 1 (the intersection [86400000, 172800000) is 1970-01-02)
@@ -43,6 +41,18 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
43
41
  * @example intervalOverlappingDaysUnix(NaN, 172800000, 86400000, 259200000, { timeZone: "UTC" }) // null
44
42
  */
45
43
  export declare function intervalOverlappingDaysUnix(aStart: number | string, aEnd: number | string, bStart: number | string, bEnd: number | string, options?: {
44
+ /**
45
+ * The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
46
+ * plural. Any other value returns `null`.
47
+ *
48
+ * @defaultValue `"milliseconds"`
49
+ */
46
50
  epochUnit?: UnixUnit;
51
+ /**
52
+ * The time zone the calendar dates are counted in: an IANA name, a UTC offset, or `"local"` for
53
+ * the system time zone. An unknown zone returns `null`.
54
+ *
55
+ * @defaultValue `"UTC"`
56
+ */
47
57
  timeZone?: string;
48
58
  }): number | null;
@@ -9,8 +9,6 @@ import { isOptionsArgument } from "../../internal/isObject.js";
9
9
  * - Counts the local dates that hold at least one instant of the half-open intersection
10
10
  * `[max(aStart, bStart), min(aEnd, bEnd))`. The end is excluded, so an intersection ending at
11
11
  * local midnight does not touch the date that midnight starts.
12
- * - Uses `"UTC"` by default (consistent with `addUnix` and `intervalCountUnix`); `"local"` is the
13
- * system zone and an unknown zone returns `null`.
14
12
  * - Each instant in the intersection contributes its own local date in `timeZone`, and each date
15
13
  * counts once. A date the zone deleted is not counted (`Pacific/Apia` skipped 2011-12-30), and a
16
14
  * fall-back into the previous date does not lose that date (`America/Goose_Bay`, 2010-11-07).
@@ -34,7 +32,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
34
32
  * @param aEnd Unix epoch value (seconds or milliseconds) — first interval end
35
33
  * @param bStart Unix epoch value (seconds or milliseconds) — second interval start
36
34
  * @param bEnd Unix epoch value (seconds or milliseconds) — second interval end
37
- * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds"), timeZone (IANA, or "local" for the system zone; default "UTC")
35
+ * @param options optional: how the epochs are read and the zone the dates are counted in
38
36
  * @returns number of shared calendar dates, `0` when disjoint, or null on invalid input
39
37
  *
40
38
  * @example intervalOverlappingDaysUnix(0, 172800000, 86400000, 259200000, { timeZone: "UTC" }) // 1 (the intersection [86400000, 172800000) is 1970-01-02)
@@ -11,6 +11,8 @@
11
11
  * each record's `end` is the next record's `start` and belongs only to that next record, so the
12
12
  * pieces share no value and together cover `[start, end)` exactly once.
13
13
  * - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
14
+ * - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
15
+ * equal to `end`): the result is then that one empty piece, whatever the points.
14
16
  * - Returns `[]` when `points` is not an array, or when `start`, `end` or any point is not a safe
15
17
  * integer (or numeric string of one) — fractions, empty strings and values beyond ±(2^53 − 1)
16
18
  * are invalid even when they would fall outside the interval — or when `start > end`.
@@ -26,6 +28,12 @@
26
28
  * @example intervalSplitAtUnix(0, 100000, [50000.5]) // [] (fractional point)
27
29
  */
28
30
  export declare function intervalSplitAtUnix(start: number | string, end: number | string, points: Array<number | string>): Array<{
31
+ /** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
29
32
  start: number;
33
+ /**
34
+ * The first instant after the interval, in the same unit as `start`. It is exclusive: the
35
+ * interval holds everything from `start` up to but not including this value. It can equal
36
+ * `start`, which makes the interval empty.
37
+ */
30
38
  end: number;
31
39
  }>;
@@ -12,6 +12,8 @@ import { parseUnixEpochInterval, parseUnixEpochValue } from "../../internal/inde
12
12
  * each record's `end` is the next record's `start` and belongs only to that next record, so the
13
13
  * pieces share no value and together cover `[start, end)` exactly once.
14
14
  * - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
15
+ * - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
16
+ * equal to `end`): the result is then that one empty piece, whatever the points.
15
17
  * - Returns `[]` when `points` is not an array, or when `start`, `end` or any point is not a safe
16
18
  * integer (or numeric string of one) — fractions, empty strings and values beyond ±(2^53 − 1)
17
19
  * are invalid even when they would fall outside the interval — or when `start > end`.
@@ -26,6 +26,12 @@
26
26
  * @example intervalUnionUnix("0", "1700000000", "1000000", "2000000") // { start: 0, end: 1700000000 }
27
27
  */
28
28
  export declare function intervalUnionUnix(aStart: number | string, aEnd: number | string, bStart: number | string, bEnd: number | string): {
29
+ /** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
29
30
  start: number;
31
+ /**
32
+ * The first instant after the interval, in the same unit as `start`. It is exclusive: the
33
+ * interval holds everything from `start` up to but not including this value. It is always later
34
+ * than `start`.
35
+ */
30
36
  end: number;
31
37
  } | null;
@@ -25,6 +25,12 @@ export declare function intervalXorAllUnix(intervals: Array<{
25
25
  start: number | string;
26
26
  end: number | string;
27
27
  }>): Array<{
28
+ /** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
28
29
  start: number;
30
+ /**
31
+ * The first instant after the interval, in the same unit as `start`. It is exclusive: the
32
+ * interval holds everything from `start` up to but not including this value. It is always later
33
+ * than `start`.
34
+ */
29
35
  end: number;
30
36
  }>;
@@ -31,6 +31,12 @@
31
31
  * @example intervalXorUnix(0, 1, 0.5, 2) // [] (fractional epoch)
32
32
  */
33
33
  export declare function intervalXorUnix(aStart: number | string, aEnd: number | string, bStart: number | string, bEnd: number | string): Array<{
34
+ /** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
34
35
  start: number;
36
+ /**
37
+ * The first instant after the interval, in the same unit as `start`. It is exclusive: the
38
+ * interval holds everything from `start` up to but not including this value. It is always later
39
+ * than `start`.
40
+ */
35
41
  end: number;
36
42
  }>;
@@ -26,6 +26,12 @@ export declare function mergeIntervalsUnix(intervals: Array<{
26
26
  start: number | string;
27
27
  end: number | string;
28
28
  }>): Array<{
29
+ /** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
29
30
  start: number;
31
+ /**
32
+ * The first instant after the interval, in the same unit as `start`. It is exclusive: the
33
+ * interval holds everything from `start` up to but not including this value. It is always later
34
+ * than `start`.
35
+ */
30
36
  end: number;
31
37
  }>;
@@ -7,34 +7,36 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
7
7
  * no value and together cover `[start, end)` exactly once.
8
8
  * - The final sub-interval is trimmed so its `end` never exceeds the original `end`.
9
9
  * - Calendar-unit boundaries (years, months, weeks, days) are computed from `start`
10
- * (`start + k × amount`, as Temporal and Luxon's `Interval.splitBy` do), so month-end starts
11
- * don't drift: a monthly split from January 31 lands on February 29, March 31, April 30.
10
+ * (`start + k × amount`), so month-end starts don't drift: a monthly split from January 31
11
+ * lands on February 29, March 31, April 30. Temporal's `add` constrains a day the month lacks
12
+ * to the month's last day, and stepping from that boundary would keep the shortened day
13
+ * (February 29, then March 29).
14
+ * - Comparison: Luxon's `Interval.splitBy` computes each boundary from the start the same way.
12
15
  * - Exact-unit boundaries (hours and smaller) step from the previous boundary. Exact units never
13
16
  * clamp, and stepping keeps nanosecond precision where `k × amount` would pass
14
17
  * `Number.MAX_SAFE_INTEGER` (boundaries are then floored to milliseconds).
15
18
  * - A calendar step that resolves to the same instant as the previous boundary (a deleted local
16
19
  * day, such as 30 December 2011 in `Pacific/Apia`) is skipped, so no empty slice is produced.
17
20
  * A step that goes backwards returns `[]`.
21
+ * - A step finer than `epochUnit` (500 milliseconds when the epochs are seconds, any microsecond
22
+ * or nanosecond step shorter than a millisecond) cannot be written in that unit: its boundaries
23
+ * floor to every whole unit from `start` to `end`, so the pieces are one `epochUnit` long and
24
+ * none is empty. `maxPieces` counts those pieces.
18
25
  * - Returns `[{ start, end }]` when `start === end` (zero-length interval).
19
26
  * - Returns `[]` on invalid input (`start`/`end` that is not a safe integer or numeric string of
20
27
  * one — fractions, empty strings and values beyond ±(2^53 − 1) are invalid — unsupported unit,
21
28
  * non-positive amount, an invalid `epochUnit` or an unknown `timeZone`).
22
29
  *
23
- * - Reads `start` and `end`, and returns every boundary, in `options.epochUnit` (`"milliseconds"`
24
- * by default, `"seconds"`; singular accepted). Each input is a safe integer or a string of
25
- * optionally negative ASCII digits.
26
- * - Calendar-unit arithmetic runs in `options.timeZone`: omitted is `"UTC"`, `"local"` is the
27
- * system zone, and an unknown zone returns `[]`.
30
+ * - `start` and `end` are each a safe integer or a string of optionally negative ASCII digits.
28
31
  * - Accepts singular or plural units (`"day"` and `"days"` behave identically).
29
- * - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: a split
30
- * into more slices returns `[]`, decided from the span before stepping where it can be, and
31
- * otherwise as soon as slice `maxPieces + 1` is due. An invalid `maxPieces` also returns `[]`.
32
+ * - A split into more than `options.maxPieces` slices returns `[]`, decided from the span before
33
+ * stepping where it can be, and otherwise as soon as slice `maxPieces + 1` is due.
32
34
  *
33
35
  * @param start Unix epoch in `epochUnit` — interval start
34
36
  * @param end Unix epoch in `epochUnit` — interval end
35
37
  * @param unit duration unit string — any `DateTimeDurationUnit`, singular or plural
36
38
  * @param amount positive number of units per step
37
- * @param options optional: `maxPieces` (positive safe integer, default `1_000_000`), `epochUnit` ("seconds" | "milliseconds", singular accepted; default "milliseconds"), `timeZone` (IANA, or "local" for the system zone; default "UTC")
39
+ * @param options optional: the limit on the number of slices, how the epochs are read and the zone calendar steps run in
38
40
  * @returns array of `{ start, end }` records, or [] on invalid input
39
41
  *
40
42
  * @example splitIntervalByUnitUnix(0, 86400000, "hour", 6) // [{ start: 0, end: 21600000 }, { start: 21600000, end: 43200000 }, { start: 43200000, end: 64800000 }, { start: 64800000, end: 86400000 }]
@@ -46,12 +48,41 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
46
48
  * @example splitIntervalByUnitUnix(0, 86400000, "hour", 6, { maxPieces: 4 }) // [{ start: 0, end: 21600000 }, { start: 21600000, end: 43200000 }, { start: 43200000, end: 64800000 }, { start: 64800000, end: 86400000 }]
47
49
  * @example splitIntervalByUnitUnix(1710046800000, 1710216000000, "day", 1, { timeZone: "America/New_York" }) // [{ start: 1710046800000, end: 1710129600000 }, { start: 1710129600000, end: 1710216000000 }] (the first local day is 23 hours)
48
50
  * @example splitIntervalByUnitUnix("0", "86400", "hours", 12, { epochUnit: "second" }) // [{ start: 0, end: 43200 }, { start: 43200, end: 86400 }]
51
+ * @example splitIntervalByUnitUnix(0, 2, "millisecond", 500, { epochUnit: "seconds" }) // [{ start: 0, end: 1 }, { start: 1, end: 2 }] (a step finer than the epoch unit gives one-second pieces)
49
52
  */
50
53
  export declare function splitIntervalByUnitUnix(start: number | string, end: number | string, unit: string, amount: number, options?: {
54
+ /**
55
+ * The most records the result may hold. A result that would hold more, or more than the longest
56
+ * possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
57
+ * positive safe integer also returns `[]`.
58
+ *
59
+ * @defaultValue `1_000_000`
60
+ */
51
61
  maxPieces?: number;
62
+ /**
63
+ * The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
64
+ * plural. Any other value returns `[]`. The result is in the same unit.
65
+ *
66
+ * @defaultValue `"milliseconds"`
67
+ */
52
68
  epochUnit?: UnixUnit;
69
+ /**
70
+ * The time zone the calendar arithmetic runs in: an IANA name, a UTC offset, or `"local"` for
71
+ * the system time zone. An unknown zone returns `[]`.
72
+ *
73
+ * @defaultValue `"UTC"`
74
+ */
53
75
  timeZone?: string;
54
76
  }): Array<{
77
+ /**
78
+ * The instant the interval begins at, as a Unix epoch number counted in `epochUnit`. A boundary
79
+ * that falls between two whole units is rounded down to the earlier one.
80
+ */
55
81
  start: number;
82
+ /**
83
+ * The first instant after the interval, counted in `epochUnit` and rounded as `start` is. It is
84
+ * exclusive: the interval holds everything from `start` up to but not including this value. It
85
+ * can equal `start`, which makes the interval empty.
86
+ */
56
87
  end: number;
57
88
  }>;