@northguild/gmt 1.17.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 (638) hide show
  1. package/README.md +462 -22
  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/instant/convert/classifyLocal.d.ts +1 -1
  43. package/dist/instant/convert/classifyLocal.js +1 -1
  44. package/dist/instant/convert/fromOffsetInstant.d.ts +3 -1
  45. package/dist/instant/convert/fromOffsetInstant.js +3 -1
  46. package/dist/instant/convert/resolveLocal.d.ts +12 -7
  47. package/dist/instant/convert/resolveLocal.js +6 -10
  48. package/dist/instant/convert/toOffsetInstant.d.ts +22 -9
  49. package/dist/instant/convert/toOffsetInstant.js +10 -3
  50. package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
  51. package/dist/intermodal/calculate/billingTimeline.js +2 -2
  52. package/dist/intermodal/calculate/chargeableDays.d.ts +13 -11
  53. package/dist/intermodal/calculate/chargeableDays.js +4 -9
  54. package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
  55. package/dist/intermodal/calculate/demurrageClock.js +7 -7
  56. package/dist/intermodal/calculate/freeTimeExpiry.d.ts +5 -4
  57. package/dist/intermodal/calculate/freeTimeExpiry.js +6 -6
  58. package/dist/internal/businessCalendar.d.ts +5 -0
  59. package/dist/internal/businessCalendar.js +5 -1
  60. package/dist/internal/cycleFieldValue.d.ts +6 -4
  61. package/dist/internal/cycleFieldValue.js +6 -4
  62. package/dist/internal/daylightTime.d.ts +33 -0
  63. package/dist/internal/daylightTime.js +164 -0
  64. package/dist/internal/durationUntilString.js +4 -3
  65. package/dist/internal/englishCalendarNames.js +1 -2
  66. package/dist/internal/epochNanoseconds.d.ts +2 -0
  67. package/dist/internal/epochNanoseconds.js +2 -0
  68. package/dist/internal/exactDuration.d.ts +37 -0
  69. package/dist/internal/exactDuration.js +64 -0
  70. package/dist/internal/exactMoment.d.ts +72 -0
  71. package/dist/internal/exactMoment.js +114 -0
  72. package/dist/internal/fiscalCalendar.d.ts +4 -3
  73. package/dist/internal/fiscalCalendar.js +4 -3
  74. package/dist/internal/formatCalendarDays.d.ts +2 -2
  75. package/dist/internal/formatRelativeDuration.d.ts +21 -1
  76. package/dist/internal/formatRelativeDuration.js +47 -7
  77. package/dist/internal/index.d.ts +9 -4
  78. package/dist/internal/index.js +9 -4
  79. package/dist/internal/instantFormatOptions.js +2 -1
  80. package/dist/internal/instantNanoseconds.d.ts +75 -9
  81. package/dist/internal/instantNanoseconds.js +192 -11
  82. package/dist/internal/joinDateTimeConnector.d.ts +1 -1
  83. package/dist/internal/monthGridWeekRow.d.ts +2 -1
  84. package/dist/internal/monthGridWeekRow.js +2 -1
  85. package/dist/internal/normalizeTimeZone.d.ts +2 -2
  86. package/dist/internal/normalizeTimeZone.js +2 -2
  87. package/dist/internal/operatingSchedule.d.ts +129 -0
  88. package/dist/internal/operatingSchedule.js +668 -0
  89. package/dist/internal/optionOrDefault.d.ts +18 -0
  90. package/dist/internal/optionOrDefault.js +20 -0
  91. package/dist/internal/patternToken.d.ts +2 -2
  92. package/dist/internal/patternToken.js +28 -13
  93. package/dist/internal/plainDateUntil.js +10 -6
  94. package/dist/internal/punctuality.d.ts +38 -0
  95. package/dist/internal/punctuality.js +59 -0
  96. package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
  97. package/dist/internal/readDateTimeFormatOptions.js +93 -0
  98. package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
  99. package/dist/internal/resolveDurationRelativeTo.js +11 -1
  100. package/dist/internal/resolveRelativeRounding.d.ts +17 -6
  101. package/dist/internal/resolveRelativeRounding.js +27 -7
  102. package/dist/internal/resolveRelativeUnit.d.ts +30 -0
  103. package/dist/internal/resolveRelativeUnit.js +40 -0
  104. package/dist/internal/splitStep.d.ts +24 -1
  105. package/dist/internal/splitStep.js +34 -2
  106. package/dist/internal/startOrEndOfZoned.js +2 -3
  107. package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
  108. package/dist/internal/temporalCompat/capabilities.js +35 -3
  109. package/dist/internal/temporalCompat/fieldSearch.js +1 -1
  110. package/dist/internal/temporalCompat/index.d.ts +1 -1
  111. package/dist/internal/temporalCompat/index.js +1 -1
  112. package/dist/internal/temporalCompat/repros.d.ts +1 -1
  113. package/dist/internal/temporalCompat/repros.js +157 -0
  114. package/dist/internal/timestampEvents.d.ts +32 -0
  115. package/dist/internal/timestampEvents.js +76 -0
  116. package/dist/internal/utcZonedDateTime.d.ts +5 -2
  117. package/dist/internal/utcZonedDateTime.js +8 -5
  118. package/dist/internal/zonedBucket.js +8 -6
  119. package/dist/internal/zonedLocalDates.js +1 -1
  120. package/dist/internal/zonedTransitionSearch.d.ts +27 -0
  121. package/dist/internal/zonedTransitionSearch.js +218 -0
  122. package/dist/internal/zonedWallClock.d.ts +21 -7
  123. package/dist/internal/zonedWallClock.js +87 -18
  124. package/dist/internal/zonedWallClockOperations.d.ts +26 -13
  125. package/dist/internal/zonedWallClockOperations.js +87 -34
  126. package/dist/interval/validate/isValidInterval.d.ts +6 -3
  127. package/dist/interval/validate/isValidInterval.js +6 -3
  128. package/dist/plain/calculate/addDate.d.ts +11 -8
  129. package/dist/plain/calculate/addDate.js +5 -8
  130. package/dist/plain/calculate/addDateTime.d.ts +7 -4
  131. package/dist/plain/calculate/addDateTime.js +1 -4
  132. package/dist/plain/calculate/cycleDate.d.ts +16 -7
  133. package/dist/plain/calculate/cycleDate.js +3 -7
  134. package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
  135. package/dist/plain/calculate/cycleDateTime.js +1 -4
  136. package/dist/plain/calculate/cycleTime.d.ts +10 -5
  137. package/dist/plain/calculate/cycleTime.js +3 -5
  138. package/dist/plain/calculate/diffDate.d.ts +1 -1
  139. package/dist/plain/calculate/diffDate.js +1 -1
  140. package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
  141. package/dist/plain/calculate/diffDateAsDuration.js +1 -1
  142. package/dist/plain/calculate/diffDateTime.d.ts +1 -1
  143. package/dist/plain/calculate/diffDateTime.js +1 -1
  144. package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
  145. package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
  146. package/dist/plain/calculate/diffTime.d.ts +1 -1
  147. package/dist/plain/calculate/diffTime.js +1 -1
  148. package/dist/plain/calculate/endOfDate.d.ts +8 -3
  149. package/dist/plain/calculate/endOfDate.js +1 -3
  150. package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
  151. package/dist/plain/calculate/endOfDateTime.js +1 -5
  152. package/dist/plain/calculate/endOfTime.d.ts +8 -2
  153. package/dist/plain/calculate/endOfTime.js +1 -2
  154. package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
  155. package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
  156. package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
  157. package/dist/plain/calculate/getWeekOfMonth.js +7 -4
  158. package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
  159. package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
  160. package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
  161. package/dist/plain/calculate/getWeeksInMonth.js +5 -2
  162. package/dist/plain/calculate/nextWeekday.d.ts +7 -3
  163. package/dist/plain/calculate/nextWeekday.js +1 -3
  164. package/dist/plain/calculate/previousWeekday.d.ts +7 -3
  165. package/dist/plain/calculate/previousWeekday.js +1 -3
  166. package/dist/plain/calculate/roundDate.d.ts +20 -7
  167. package/dist/plain/calculate/roundDate.js +3 -10
  168. package/dist/plain/calculate/roundDateTime.d.ts +22 -8
  169. package/dist/plain/calculate/roundDateTime.js +3 -11
  170. package/dist/plain/calculate/roundTime.d.ts +20 -4
  171. package/dist/plain/calculate/roundTime.js +3 -7
  172. package/dist/plain/calculate/setDate.d.ts +7 -5
  173. package/dist/plain/calculate/setDate.js +1 -5
  174. package/dist/plain/calculate/setDateTime.d.ts +8 -5
  175. package/dist/plain/calculate/setDateTime.js +1 -5
  176. package/dist/plain/calculate/setTime.d.ts +10 -6
  177. package/dist/plain/calculate/setTime.js +4 -6
  178. package/dist/plain/calculate/startOfDate.d.ts +8 -2
  179. package/dist/plain/calculate/startOfDate.js +1 -2
  180. package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
  181. package/dist/plain/calculate/startOfDateTime.js +1 -2
  182. package/dist/plain/calculate/startOfTime.d.ts +8 -1
  183. package/dist/plain/calculate/startOfTime.js +1 -1
  184. package/dist/plain/calculate/subtractDate.d.ts +7 -4
  185. package/dist/plain/calculate/subtractDate.js +1 -4
  186. package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
  187. package/dist/plain/calculate/subtractDateTime.js +1 -4
  188. package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
  189. package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
  190. package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
  191. package/dist/plain/compare/areDatesEqualBy.js +8 -6
  192. package/dist/plain/compare/isBetweenDate.d.ts +13 -2
  193. package/dist/plain/compare/isBetweenDate.js +4 -4
  194. package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
  195. package/dist/plain/compare/isBetweenDateTime.js +4 -4
  196. package/dist/plain/compare/isBetweenTime.d.ts +13 -2
  197. package/dist/plain/compare/isBetweenTime.js +4 -4
  198. package/dist/plain/compare/isRelativeDay.d.ts +1 -1
  199. package/dist/plain/compare/isRelativeDay.js +1 -1
  200. package/dist/plain/compare/isThisUnit.d.ts +1 -1
  201. package/dist/plain/compare/isThisUnit.js +1 -1
  202. package/dist/plain/format/formatCalendar.d.ts +21 -14
  203. package/dist/plain/format/formatCalendar.js +21 -16
  204. package/dist/plain/format/formatDate.js +5 -3
  205. package/dist/plain/format/formatDateRange.js +4 -2
  206. package/dist/plain/format/formatDateTime.js +4 -2
  207. package/dist/plain/format/formatDateTimeRange.js +4 -2
  208. package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
  209. package/dist/plain/format/formatDateTimeToParts.js +10 -6
  210. package/dist/plain/format/formatDateToParts.d.ts +13 -2
  211. package/dist/plain/format/formatDateToParts.js +8 -4
  212. package/dist/plain/format/formatRelativeDate.d.ts +16 -3
  213. package/dist/plain/format/formatRelativeDate.js +26 -15
  214. package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
  215. package/dist/plain/format/formatRelativeDateTime.js +8 -5
  216. package/dist/plain/format/formatRelativeTime.d.ts +16 -3
  217. package/dist/plain/format/formatRelativeTime.js +21 -13
  218. package/dist/plain/format/formatTime.js +4 -2
  219. package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
  220. package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
  221. package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
  222. package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
  223. package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
  224. package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
  225. package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
  226. package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
  227. package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
  228. package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
  229. package/dist/plain/interval/intervalFromDurationDate.js +1 -3
  230. package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
  231. package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
  232. package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
  233. package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
  234. package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
  235. package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
  236. package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
  237. package/dist/plain/interval/intervalSplitAtDate.js +2 -0
  238. package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
  239. package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
  240. package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
  241. package/dist/plain/interval/intervalSplitAtTime.js +2 -0
  242. package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
  243. package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
  244. package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
  245. package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
  246. package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
  247. package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
  248. package/dist/plain/interval/intervalXorDate.d.ts +9 -0
  249. package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
  250. package/dist/plain/interval/intervalXorTime.d.ts +9 -0
  251. package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
  252. package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
  253. package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
  254. package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
  255. package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
  256. package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
  257. package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
  258. package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
  259. package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
  260. package/dist/plain/map/mapDatesInRange.d.ts +8 -4
  261. package/dist/plain/map/mapDatesInRange.js +1 -4
  262. package/dist/plain/parse/parseDateTimeWithPattern.d.ts +10 -7
  263. package/dist/plain/parse/parseDateTimeWithPattern.js +10 -7
  264. package/dist/plain/parse/parseDateWithPattern.d.ts +10 -7
  265. package/dist/plain/parse/parseDateWithPattern.js +10 -7
  266. package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
  267. package/dist/plain/parse/parseTimeWithPattern.js +10 -7
  268. package/dist/plain/parse/parseUnitFromDate.d.ts +11 -3
  269. package/dist/plain/parse/parseUnitFromDate.js +3 -3
  270. package/dist/plain/parse/parseUnitFromDateTime.d.ts +11 -3
  271. package/dist/plain/parse/parseUnitFromDateTime.js +3 -3
  272. package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
  273. package/dist/plain/parse/parseWeekFromDate.js +2 -6
  274. package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
  275. package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
  276. package/dist/plain/validate/isValidDateRange.d.ts +19 -4
  277. package/dist/plain/validate/isValidDateRange.js +1 -4
  278. package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
  279. package/dist/plain/validate/isValidDateTimeRange.js +2 -5
  280. package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
  281. package/dist/plain/validate/isValidTimeRange.js +2 -5
  282. package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
  283. package/dist/precision/convert/fromExcelSerial.js +4 -5
  284. package/dist/precision/convert/fromNanoseconds.d.ts +1 -1
  285. package/dist/precision/convert/fromNanoseconds.js +1 -1
  286. package/dist/precision/convert/toExcelSerial.d.ts +9 -3
  287. package/dist/precision/convert/toExcelSerial.js +3 -4
  288. package/dist/precision/convert/toNanoseconds.d.ts +11 -6
  289. package/dist/precision/convert/toNanoseconds.js +11 -6
  290. package/dist/precision/validate/isValidInstant.d.ts +12 -3
  291. package/dist/precision/validate/isValidInstant.js +12 -3
  292. package/dist/span/calculate/spanMs.d.ts +10 -4
  293. package/dist/span/calculate/spanMs.js +10 -4
  294. package/dist/span/calculate/spanNs.d.ts +10 -4
  295. package/dist/span/calculate/spanNs.js +10 -4
  296. package/dist/span/validate/isValidSpan.d.ts +8 -3
  297. package/dist/span/validate/isValidSpan.js +8 -3
  298. package/dist/transport/calculate/bestAvailable.d.ts +47 -0
  299. package/dist/transport/calculate/bestAvailable.js +76 -0
  300. package/dist/transport/calculate/crossingTime.d.ts +58 -0
  301. package/dist/transport/calculate/crossingTime.js +76 -0
  302. package/dist/transport/calculate/cutoffAt.d.ts +90 -0
  303. package/dist/transport/calculate/cutoffAt.js +209 -0
  304. package/dist/transport/calculate/cutoffSchedule.d.ts +70 -0
  305. package/dist/transport/calculate/cutoffSchedule.js +71 -0
  306. package/dist/transport/calculate/dwellTime.d.ts +16 -7
  307. package/dist/transport/calculate/dwellTime.js +12 -8
  308. package/dist/transport/calculate/estimateDrift.d.ts +65 -0
  309. package/dist/transport/calculate/estimateDrift.js +75 -0
  310. package/dist/transport/calculate/index.d.ts +8 -0
  311. package/dist/transport/calculate/index.js +8 -0
  312. package/dist/transport/calculate/nextDeparture.d.ts +78 -0
  313. package/dist/transport/calculate/nextDeparture.js +131 -0
  314. package/dist/transport/calculate/punctualityRate.d.ts +42 -0
  315. package/dist/transport/calculate/punctualityRate.js +59 -0
  316. package/dist/transport/calculate/scheduleDelivery.d.ts +150 -0
  317. package/dist/transport/calculate/scheduleDelivery.js +300 -0
  318. package/dist/transport/calculate/transitTime.d.ts +21 -3
  319. package/dist/transport/calculate/transitTime.js +29 -46
  320. package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
  321. package/dist/transport/compare/classifyPunctuality.js +64 -0
  322. package/dist/transport/compare/index.d.ts +4 -0
  323. package/dist/transport/compare/index.js +4 -0
  324. package/dist/transport/compare/isPastCutoff.d.ts +33 -0
  325. package/dist/transport/compare/isPastCutoff.js +48 -0
  326. package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
  327. package/dist/transport/compare/scheduleDeviation.js +53 -0
  328. package/dist/transport/compare/timeToCutoff.d.ts +31 -0
  329. package/dist/transport/compare/timeToCutoff.js +47 -0
  330. package/dist/transport/convert/etaAtZone.d.ts +7 -0
  331. package/dist/transport/convert/etaAtZone.js +9 -4
  332. package/dist/transport/index.d.ts +1 -0
  333. package/dist/transport/index.js +1 -0
  334. package/dist/types/business-calendar.d.ts +19 -14
  335. package/dist/types/calendar-options.d.ts +15 -3
  336. package/dist/types/date-cycle-field.d.ts +5 -0
  337. package/dist/types/date-duration-unit.d.ts +4 -0
  338. package/dist/types/date-time-cycle-field.d.ts +4 -0
  339. package/dist/types/date-time-duration-units.d.ts +4 -0
  340. package/dist/types/date-time-unit.d.ts +4 -0
  341. package/dist/types/date-unit.d.ts +4 -0
  342. package/dist/types/disambiguation.d.ts +8 -0
  343. package/dist/types/duration-relative-to.d.ts +8 -0
  344. package/dist/types/duration-string-options.d.ts +28 -0
  345. package/dist/types/fiscal-calendar.d.ts +1 -1
  346. package/dist/types/fractional-digit.d.ts +5 -0
  347. package/dist/types/free-time-options.d.ts +21 -11
  348. package/dist/types/index.d.ts +2 -1
  349. package/dist/types/index.js +2 -1
  350. package/dist/types/interval.d.ts +8 -1
  351. package/dist/types/offset.d.ts +9 -0
  352. package/dist/types/operating-schedule.d.ts +71 -0
  353. package/dist/types/overflow.d.ts +6 -0
  354. package/dist/types/relative-rounding-method.d.ts +6 -0
  355. package/dist/types/relative-time-options.d.ts +33 -5
  356. package/dist/types/rounding-options.d.ts +27 -0
  357. package/dist/types/time-cycle-field.d.ts +4 -0
  358. package/dist/types/time-duration-unit.d.ts +4 -0
  359. package/dist/types/time-unit.d.ts +4 -0
  360. package/dist/types/transport-timestamps.d.ts +54 -0
  361. package/dist/types/transport-timestamps.js +0 -0
  362. package/dist/unix/calculate/addUnix.d.ts +19 -5
  363. package/dist/unix/calculate/addUnix.js +1 -5
  364. package/dist/unix/calculate/diffUnix.d.ts +13 -3
  365. package/dist/unix/calculate/diffUnix.js +1 -3
  366. package/dist/unix/calculate/diffUnixAsDuration.d.ts +13 -3
  367. package/dist/unix/calculate/diffUnixAsDuration.js +1 -3
  368. package/dist/unix/calculate/endOfQuarterForUnix.d.ts +13 -3
  369. package/dist/unix/calculate/endOfQuarterForUnix.js +1 -3
  370. package/dist/unix/calculate/endOfUnix.d.ts +20 -4
  371. package/dist/unix/calculate/endOfUnix.js +1 -4
  372. package/dist/unix/calculate/isBetweenUnix.d.ts +26 -4
  373. package/dist/unix/calculate/isBetweenUnix.js +4 -6
  374. package/dist/unix/calculate/roundUnix.d.ts +31 -3
  375. package/dist/unix/calculate/roundUnix.js +3 -6
  376. package/dist/unix/calculate/setUnix.d.ts +35 -9
  377. package/dist/unix/calculate/setUnix.js +4 -13
  378. package/dist/unix/calculate/startOfQuarterForUnix.d.ts +13 -3
  379. package/dist/unix/calculate/startOfQuarterForUnix.js +1 -3
  380. package/dist/unix/calculate/startOfUnix.d.ts +20 -4
  381. package/dist/unix/calculate/startOfUnix.js +1 -4
  382. package/dist/unix/calculate/subtractUnix.d.ts +19 -5
  383. package/dist/unix/calculate/subtractUnix.js +1 -5
  384. package/dist/unix/compare/areUnixEqual.d.ts +7 -1
  385. package/dist/unix/compare/areUnixEqual.js +1 -1
  386. package/dist/unix/compare/areUnixEqualBy.d.ts +24 -7
  387. package/dist/unix/compare/areUnixEqualBy.js +13 -9
  388. package/dist/unix/compare/isAfterUnix.d.ts +7 -1
  389. package/dist/unix/compare/isAfterUnix.js +1 -1
  390. package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
  391. package/dist/unix/compare/isBeforeUnix.js +1 -1
  392. package/dist/unix/convert/convertUnixToPlainDate.d.ts +14 -4
  393. package/dist/unix/convert/convertUnixToPlainDate.js +2 -4
  394. package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +14 -4
  395. package/dist/unix/convert/convertUnixToPlainDateTime.js +2 -4
  396. package/dist/unix/convert/convertUnixToPlainTime.d.ts +14 -4
  397. package/dist/unix/convert/convertUnixToPlainTime.js +2 -4
  398. package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
  399. package/dist/unix/convert/convertUnixToUtc.js +3 -4
  400. package/dist/unix/convert/convertUnixToZoned.d.ts +10 -5
  401. package/dist/unix/convert/convertUnixToZoned.js +4 -5
  402. package/dist/unix/format/formatCalendarUnix.d.ts +27 -19
  403. package/dist/unix/format/formatCalendarUnix.js +4 -5
  404. package/dist/unix/format/formatRelativeUnix.d.ts +54 -5
  405. package/dist/unix/format/formatRelativeUnix.js +3 -5
  406. package/dist/unix/format/formatUnix.d.ts +24 -6
  407. package/dist/unix/format/formatUnix.js +8 -7
  408. package/dist/unix/get/getUnixNow.d.ts +8 -3
  409. package/dist/unix/get/getUnixNow.js +1 -3
  410. package/dist/unix/interval/intervalCountUnix.d.ts +14 -5
  411. package/dist/unix/interval/intervalCountUnix.js +2 -5
  412. package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
  413. package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
  414. package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
  415. package/dist/unix/interval/intervalFromDurationUnix.d.ts +33 -5
  416. package/dist/unix/interval/intervalFromDurationUnix.js +6 -5
  417. package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
  418. package/dist/unix/interval/intervalLengthUnix.d.ts +16 -6
  419. package/dist/unix/interval/intervalLengthUnix.js +4 -6
  420. package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +13 -3
  421. package/dist/unix/interval/intervalOverlappingDaysUnix.js +1 -3
  422. package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
  423. package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
  424. package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
  425. package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
  426. package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
  427. package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
  428. package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +42 -11
  429. package/dist/unix/interval/splitIntervalByUnitUnix.js +21 -16
  430. package/dist/unix/parse/parseDateFromUnix.d.ts +13 -2
  431. package/dist/unix/parse/parseDateFromUnix.js +1 -2
  432. package/dist/unix/parse/parseDayFromUnix.d.ts +14 -2
  433. package/dist/unix/parse/parseDayFromUnix.js +2 -2
  434. package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +13 -1
  435. package/dist/unix/parse/parseDayOfWeekFromUnix.js +1 -1
  436. package/dist/unix/parse/parseHourFromUnix.d.ts +14 -2
  437. package/dist/unix/parse/parseHourFromUnix.js +2 -2
  438. package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +14 -2
  439. package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
  440. package/dist/unix/parse/parseMillisecondFromUnix.d.ts +14 -2
  441. package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
  442. package/dist/unix/parse/parseMinuteFromUnix.d.ts +14 -2
  443. package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
  444. package/dist/unix/parse/parseMonthFromUnix.d.ts +14 -2
  445. package/dist/unix/parse/parseMonthFromUnix.js +2 -2
  446. package/dist/unix/parse/parseNanosecondFromUnix.d.ts +14 -2
  447. package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
  448. package/dist/unix/parse/parseSecondFromUnix.d.ts +14 -2
  449. package/dist/unix/parse/parseSecondFromUnix.js +2 -2
  450. package/dist/unix/parse/parseTimeFromUnix.d.ts +13 -2
  451. package/dist/unix/parse/parseTimeFromUnix.js +1 -2
  452. package/dist/unix/parse/parseUnitFromUnix.d.ts +22 -3
  453. package/dist/unix/parse/parseUnitFromUnix.js +2 -3
  454. package/dist/unix/parse/parseWeekFromUnix.d.ts +23 -7
  455. package/dist/unix/parse/parseWeekFromUnix.js +3 -7
  456. package/dist/unix/parse/parseYearFromUnix.d.ts +14 -2
  457. package/dist/unix/parse/parseYearFromUnix.js +2 -2
  458. package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
  459. package/dist/unix/validate/isValidUnixRange.js +1 -4
  460. package/dist/utc/calculate/addUtc.d.ts +7 -4
  461. package/dist/utc/calculate/addUtc.js +1 -4
  462. package/dist/utc/calculate/diffUtc.d.ts +1 -1
  463. package/dist/utc/calculate/diffUtc.js +1 -1
  464. package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
  465. package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
  466. package/dist/utc/calculate/endOfUtc.d.ts +16 -3
  467. package/dist/utc/calculate/endOfUtc.js +2 -3
  468. package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
  469. package/dist/utc/calculate/isBetweenUtc.js +4 -4
  470. package/dist/utc/calculate/roundUtc.d.ts +26 -9
  471. package/dist/utc/calculate/roundUtc.js +3 -12
  472. package/dist/utc/calculate/setUtc.d.ts +7 -4
  473. package/dist/utc/calculate/setUtc.js +1 -4
  474. package/dist/utc/calculate/startOfUtc.d.ts +15 -2
  475. package/dist/utc/calculate/startOfUtc.js +1 -2
  476. package/dist/utc/calculate/subtractUtc.d.ts +7 -4
  477. package/dist/utc/calculate/subtractUtc.js +1 -4
  478. package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
  479. package/dist/utc/compare/areUtcEqualBy.js +2 -3
  480. package/dist/utc/convert/convertUtcToPlainDate.d.ts +8 -3
  481. package/dist/utc/convert/convertUtcToPlainDate.js +5 -6
  482. package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +8 -3
  483. package/dist/utc/convert/convertUtcToPlainDateTime.js +5 -6
  484. package/dist/utc/convert/convertUtcToPlainTime.d.ts +8 -3
  485. package/dist/utc/convert/convertUtcToPlainTime.js +5 -6
  486. package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
  487. package/dist/utc/convert/convertUtcToUnix.js +3 -4
  488. package/dist/utc/convert/convertUtcToZoned.d.ts +1 -1
  489. package/dist/utc/convert/convertUtcToZoned.js +1 -1
  490. package/dist/utc/format/formatCalendarUtc.d.ts +19 -8
  491. package/dist/utc/format/formatCalendarUtc.js +8 -6
  492. package/dist/utc/format/formatHttp.d.ts +1 -1
  493. package/dist/utc/format/formatHttp.js +1 -1
  494. package/dist/utc/format/formatRelativeUtc.d.ts +30 -10
  495. package/dist/utc/format/formatRelativeUtc.js +9 -11
  496. package/dist/utc/format/formatUtc.d.ts +17 -15
  497. package/dist/utc/format/formatUtc.js +8 -8
  498. package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
  499. package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
  500. package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
  501. package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
  502. package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
  503. package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
  504. package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
  505. package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
  506. package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
  507. package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
  508. package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
  509. package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
  510. package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
  511. package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
  512. package/dist/utc/parse/parseDateFromUtc.d.ts +7 -3
  513. package/dist/utc/parse/parseDateFromUtc.js +1 -3
  514. package/dist/utc/parse/parseDayFromUtc.d.ts +7 -3
  515. package/dist/utc/parse/parseDayFromUtc.js +1 -3
  516. package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +7 -3
  517. package/dist/utc/parse/parseDayOfWeekFromUtc.js +4 -6
  518. package/dist/utc/parse/parseHourFromUtc.d.ts +7 -3
  519. package/dist/utc/parse/parseHourFromUtc.js +1 -3
  520. package/dist/utc/parse/parseHttp.d.ts +1 -1
  521. package/dist/utc/parse/parseHttp.js +1 -1
  522. package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +7 -3
  523. package/dist/utc/parse/parseMicrosecondFromUtc.js +1 -3
  524. package/dist/utc/parse/parseMillisecondFromUtc.d.ts +7 -3
  525. package/dist/utc/parse/parseMillisecondFromUtc.js +1 -3
  526. package/dist/utc/parse/parseMinuteFromUtc.d.ts +7 -3
  527. package/dist/utc/parse/parseMinuteFromUtc.js +1 -3
  528. package/dist/utc/parse/parseMonthFromUtc.d.ts +7 -3
  529. package/dist/utc/parse/parseMonthFromUtc.js +1 -3
  530. package/dist/utc/parse/parseNanosecondFromUtc.d.ts +7 -3
  531. package/dist/utc/parse/parseNanosecondFromUtc.js +1 -3
  532. package/dist/utc/parse/parseSecondFromUtc.d.ts +7 -3
  533. package/dist/utc/parse/parseSecondFromUtc.js +1 -3
  534. package/dist/utc/parse/parseTimeFromUtc.d.ts +8 -3
  535. package/dist/utc/parse/parseTimeFromUtc.js +5 -6
  536. package/dist/utc/parse/parseUnitFromUtc.d.ts +17 -5
  537. package/dist/utc/parse/parseUnitFromUtc.js +6 -8
  538. package/dist/utc/parse/parseWeekFromUtc.d.ts +18 -10
  539. package/dist/utc/parse/parseWeekFromUtc.js +7 -13
  540. package/dist/utc/parse/parseYearFromUtc.d.ts +7 -3
  541. package/dist/utc/parse/parseYearFromUtc.js +1 -3
  542. package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
  543. package/dist/utc/validate/isValidUtcRange.js +2 -5
  544. package/dist/zoned/calculate/addZoned.d.ts +20 -10
  545. package/dist/zoned/calculate/addZoned.js +6 -13
  546. package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
  547. package/dist/zoned/calculate/cycleZoned.js +1 -8
  548. package/dist/zoned/calculate/diffZoned.d.ts +1 -1
  549. package/dist/zoned/calculate/diffZoned.js +1 -1
  550. package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
  551. package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
  552. package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
  553. package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
  554. package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
  555. package/dist/zoned/calculate/endOfZoned.js +2 -3
  556. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
  557. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
  558. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
  559. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
  560. package/dist/zoned/calculate/roundZoned.d.ts +21 -4
  561. package/dist/zoned/calculate/roundZoned.js +3 -7
  562. package/dist/zoned/calculate/setZoned.d.ts +25 -8
  563. package/dist/zoned/calculate/setZoned.js +4 -12
  564. package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
  565. package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
  566. package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
  567. package/dist/zoned/calculate/startOfZoned.js +1 -3
  568. package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
  569. package/dist/zoned/calculate/subtractZoned.js +6 -13
  570. package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
  571. package/dist/zoned/compare/areZonedEqualBy.js +7 -5
  572. package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
  573. package/dist/zoned/compare/isBetweenZoned.js +4 -3
  574. package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
  575. package/dist/zoned/compare/isInDaylightSaving.js +40 -44
  576. package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +18 -5
  577. package/dist/zoned/convert/convertPlainDateTimeToZoned.js +6 -11
  578. package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
  579. package/dist/zoned/convert/convertZonedToUnix.js +2 -4
  580. package/dist/zoned/convert/convertZonedToZoned.d.ts +1 -1
  581. package/dist/zoned/convert/convertZonedToZoned.js +1 -1
  582. package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
  583. package/dist/zoned/format/formatCalendarZoned.js +13 -9
  584. package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
  585. package/dist/zoned/format/formatRelativeZoned.js +7 -4
  586. package/dist/zoned/format/formatRfc2822.d.ts +2 -2
  587. package/dist/zoned/format/formatRfc2822.js +2 -2
  588. package/dist/zoned/format/formatRfc3339.d.ts +2 -3
  589. package/dist/zoned/format/formatRfc3339.js +2 -3
  590. package/dist/zoned/format/formatTimeZoneName.d.ts +12 -3
  591. package/dist/zoned/format/formatTimeZoneName.js +5 -4
  592. package/dist/zoned/format/formatZonedDateTime.js +2 -1
  593. package/dist/zoned/format/formatZonedRange.js +2 -1
  594. package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
  595. package/dist/zoned/format/formatZonedToParts.js +8 -5
  596. package/dist/zoned/get/getDstTransitions.d.ts +9 -10
  597. package/dist/zoned/get/getDstTransitions.js +12 -3
  598. package/dist/zoned/get/getTimeZoneOffset.d.ts +4 -1
  599. package/dist/zoned/get/getTimeZoneOffset.js +6 -3
  600. package/dist/zoned/get/getZonedNow.d.ts +13 -1
  601. package/dist/zoned/get/getZonedNow.js +12 -3
  602. package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
  603. package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
  604. package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
  605. package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
  606. package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
  607. package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
  608. package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
  609. package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
  610. package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
  611. package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
  612. package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
  613. package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
  614. package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
  615. package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
  616. package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
  617. package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
  618. package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
  619. package/dist/zoned/parse/parseRfc2822.js +1 -1
  620. package/dist/zoned/parse/parseUnitFromZoned.d.ts +9 -3
  621. package/dist/zoned/parse/parseUnitFromZoned.js +1 -3
  622. package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
  623. package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
  624. package/dist/zoned/validate/hasDaylightSaving.d.ts +42 -11
  625. package/dist/zoned/validate/hasDaylightSaving.js +47 -31
  626. package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
  627. package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
  628. package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
  629. package/dist/zoned/validate/isValidZonedRange.js +1 -4
  630. package/package.json +18 -5
  631. package/skills/gmt-arithmetic/SKILL.md +1 -1
  632. package/skills/gmt-basics/SKILL.md +10 -1
  633. package/skills/gmt-integration/SKILL.md +10 -5
  634. package/skills/gmt-timezone/SKILL.md +150 -21
  635. package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
  636. package/dist/internal/resolveReadingTimeZone.js +0 -18
  637. package/dist/types/duration-unit.d.ts +0 -5
  638. /package/dist/types/{duration-unit.js → operating-schedule.js} +0 -0
@@ -7,7 +7,7 @@ import { httpDate } from "../../regex/index.js";
7
7
  * `Last-Modified`/`Date`/`Expires` use — into a UTC ISO 8601 datetime string.
8
8
  *
9
9
  * - **Decoding, not display.** Accepts English weekday/month names only, per
10
- * the fixed grammar (see `formatHttp`'s JSDoc and roadmap Decision 1).
10
+ * the fixed grammar (see `formatHttp`'s JSDoc).
11
11
  * - **All three HTTP-date formats**, as RFC 9110 §5.6.7 requires ("A
12
12
  * recipient that parses a timestamp value in an HTTP field MUST accept all
13
13
  * three"): IMF-fixdate (`Sun, 06 Nov 1994 08:49:37 GMT`), the obsolete
@@ -2,12 +2,10 @@
2
2
  * Return the microsecond (0-999) from a UTC datetime string.
3
3
  *
4
4
  * - Returns zero-padded string for microsecond.
5
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
6
- * `parseTimeFromUtc` does; an invalid zone returns "".
7
5
  * - Returns "" for invalid input.
8
6
  *
9
7
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45.123Z")
10
- * @param options optional: timeZone (IANA, default "UTC")
8
+ * @param options The time zone the value is read in
11
9
  * @returns Microsecond (000-999) or "" on invalid input
12
10
  *
13
11
  * @example parseMicrosecondFromUtc("2024-03-17T14:30:45.123Z") // "000"
@@ -16,5 +14,11 @@
16
14
  * @example parseMicrosecondFromUtc("invalid") // ""
17
15
  */
18
16
  export declare function parseMicrosecondFromUtc(value: string, options?: {
17
+ /**
18
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
19
+ * the system time zone. An unknown zone returns `""`.
20
+ *
21
+ * @defaultValue `"UTC"`
22
+ */
19
23
  timeZone?: string;
20
24
  }): string;
@@ -4,12 +4,10 @@ import { isOptionsArgument } from "../../internal/isObject.js";
4
4
  * Return the microsecond (0-999) from a UTC datetime string.
5
5
  *
6
6
  * - Returns zero-padded string for microsecond.
7
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
8
- * `parseTimeFromUtc` does; an invalid zone returns "".
9
7
  * - Returns "" for invalid input.
10
8
  *
11
9
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45.123Z")
12
- * @param options optional: timeZone (IANA, default "UTC")
10
+ * @param options The time zone the value is read in
13
11
  * @returns Microsecond (000-999) or "" on invalid input
14
12
  *
15
13
  * @example parseMicrosecondFromUtc("2024-03-17T14:30:45.123Z") // "000"
@@ -2,12 +2,10 @@
2
2
  * Return the millisecond (0-999) from a UTC datetime string.
3
3
  *
4
4
  * - Returns zero-padded string for millisecond.
5
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
6
- * `parseTimeFromUtc` does; an invalid zone returns "".
7
5
  * - Returns "" for invalid input.
8
6
  *
9
7
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45.123Z")
10
- * @param options optional: timeZone (IANA, default "UTC")
8
+ * @param options The time zone the value is read in
11
9
  * @returns Millisecond (000-999) or "" on invalid input
12
10
  *
13
11
  * @example parseMillisecondFromUtc("2024-03-17T14:30:45.123Z") // "123"
@@ -15,5 +13,11 @@
15
13
  * @example parseMillisecondFromUtc("invalid") // ""
16
14
  */
17
15
  export declare function parseMillisecondFromUtc(value: string, options?: {
16
+ /**
17
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
18
+ * the system time zone. An unknown zone returns `""`.
19
+ *
20
+ * @defaultValue `"UTC"`
21
+ */
18
22
  timeZone?: string;
19
23
  }): string;
@@ -4,12 +4,10 @@ import { isOptionsArgument } from "../../internal/isObject.js";
4
4
  * Return the millisecond (0-999) from a UTC datetime string.
5
5
  *
6
6
  * - Returns zero-padded string for millisecond.
7
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
8
- * `parseTimeFromUtc` does; an invalid zone returns "".
9
7
  * - Returns "" for invalid input.
10
8
  *
11
9
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45.123Z")
12
- * @param options optional: timeZone (IANA, default "UTC")
10
+ * @param options The time zone the value is read in
13
11
  * @returns Millisecond (000-999) or "" on invalid input
14
12
  *
15
13
  * @example parseMillisecondFromUtc("2024-03-17T14:30:45.123Z") // "123"
@@ -2,12 +2,10 @@
2
2
  * Return the minute (0-59) from a UTC datetime string.
3
3
  *
4
4
  * - Returns zero-padded string for minute.
5
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
6
- * `parseTimeFromUtc` does; an invalid zone returns "".
7
5
  * - Returns "" for invalid input.
8
6
  *
9
7
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
10
- * @param options optional: timeZone (IANA, default "UTC")
8
+ * @param options The time zone the value is read in
11
9
  * @returns Minute (00-59) or "" on invalid input
12
10
  *
13
11
  * @example parseMinuteFromUtc("2024-03-17T14:30:45Z") // "30"
@@ -15,5 +13,11 @@
15
13
  * @example parseMinuteFromUtc("invalid") // ""
16
14
  */
17
15
  export declare function parseMinuteFromUtc(value: string, options?: {
16
+ /**
17
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
18
+ * the system time zone. An unknown zone returns `""`.
19
+ *
20
+ * @defaultValue `"UTC"`
21
+ */
18
22
  timeZone?: string;
19
23
  }): string;
@@ -4,12 +4,10 @@ import { isOptionsArgument } from "../../internal/isObject.js";
4
4
  * Return the minute (0-59) from a UTC datetime string.
5
5
  *
6
6
  * - Returns zero-padded string for minute.
7
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
8
- * `parseTimeFromUtc` does; an invalid zone returns "".
9
7
  * - Returns "" for invalid input.
10
8
  *
11
9
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
12
- * @param options optional: timeZone (IANA, default "UTC")
10
+ * @param options The time zone the value is read in
13
11
  * @returns Minute (00-59) or "" on invalid input
14
12
  *
15
13
  * @example parseMinuteFromUtc("2024-03-17T14:30:45Z") // "30"
@@ -2,12 +2,10 @@
2
2
  * Return the month (1-12) from a UTC datetime string.
3
3
  *
4
4
  * - Returns zero-padded string for month.
5
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
6
- * `parseTimeFromUtc` does; an invalid zone returns "".
7
5
  * - Returns "" for invalid input.
8
6
  *
9
7
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
10
- * @param options optional: timeZone (IANA, default "UTC")
8
+ * @param options The time zone the value is read in
11
9
  * @returns Month (01-12) or "" on invalid input
12
10
  *
13
11
  * @example parseMonthFromUtc("2024-03-17T14:30:45Z") // "03"
@@ -15,5 +13,11 @@
15
13
  * @example parseMonthFromUtc("invalid") // ""
16
14
  */
17
15
  export declare function parseMonthFromUtc(value: string, options?: {
16
+ /**
17
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
18
+ * the system time zone. An unknown zone returns `""`.
19
+ *
20
+ * @defaultValue `"UTC"`
21
+ */
18
22
  timeZone?: string;
19
23
  }): string;
@@ -4,12 +4,10 @@ import { isOptionsArgument } from "../../internal/isObject.js";
4
4
  * Return the month (1-12) from a UTC datetime string.
5
5
  *
6
6
  * - Returns zero-padded string for month.
7
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
8
- * `parseTimeFromUtc` does; an invalid zone returns "".
9
7
  * - Returns "" for invalid input.
10
8
  *
11
9
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
12
- * @param options optional: timeZone (IANA, default "UTC")
10
+ * @param options The time zone the value is read in
13
11
  * @returns Month (01-12) or "" on invalid input
14
12
  *
15
13
  * @example parseMonthFromUtc("2024-03-17T14:30:45Z") // "03"
@@ -2,12 +2,10 @@
2
2
  * Return the nanosecond (0-999) from a UTC datetime string.
3
3
  *
4
4
  * - Returns zero-padded string for nanosecond.
5
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
6
- * `parseTimeFromUtc` does; an invalid zone returns "".
7
5
  * - Returns "" for invalid input.
8
6
  *
9
7
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45.123Z")
10
- * @param options optional: timeZone (IANA, default "UTC")
8
+ * @param options The time zone the value is read in
11
9
  * @returns Nanosecond (000-999) or "" on invalid input
12
10
  *
13
11
  * @example parseNanosecondFromUtc("2024-03-17T14:30:45.123Z") // "000"
@@ -16,5 +14,11 @@
16
14
  * @example parseNanosecondFromUtc("invalid") // ""
17
15
  */
18
16
  export declare function parseNanosecondFromUtc(value: string, options?: {
17
+ /**
18
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
19
+ * the system time zone. An unknown zone returns `""`.
20
+ *
21
+ * @defaultValue `"UTC"`
22
+ */
19
23
  timeZone?: string;
20
24
  }): string;
@@ -4,12 +4,10 @@ import { isOptionsArgument } from "../../internal/isObject.js";
4
4
  * Return the nanosecond (0-999) from a UTC datetime string.
5
5
  *
6
6
  * - Returns zero-padded string for nanosecond.
7
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
8
- * `parseTimeFromUtc` does; an invalid zone returns "".
9
7
  * - Returns "" for invalid input.
10
8
  *
11
9
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45.123Z")
12
- * @param options optional: timeZone (IANA, default "UTC")
10
+ * @param options The time zone the value is read in
13
11
  * @returns Nanosecond (000-999) or "" on invalid input
14
12
  *
15
13
  * @example parseNanosecondFromUtc("2024-03-17T14:30:45.123Z") // "000"
@@ -2,12 +2,10 @@
2
2
  * Return the second (0-59) from a UTC datetime string.
3
3
  *
4
4
  * - Returns zero-padded string for second.
5
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
6
- * `parseTimeFromUtc` does; an invalid zone returns "".
7
5
  * - Returns "" for invalid input.
8
6
  *
9
7
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
10
- * @param options optional: timeZone (IANA, default "UTC")
8
+ * @param options The time zone the value is read in
11
9
  * @returns Second (00-59) or "" on invalid input
12
10
  *
13
11
  * @example parseSecondFromUtc("2024-03-17T14:30:45Z") // "45"
@@ -15,5 +13,11 @@
15
13
  * @example parseSecondFromUtc("invalid") // ""
16
14
  */
17
15
  export declare function parseSecondFromUtc(value: string, options?: {
16
+ /**
17
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
18
+ * the system time zone. An unknown zone returns `""`.
19
+ *
20
+ * @defaultValue `"UTC"`
21
+ */
18
22
  timeZone?: string;
19
23
  }): string;
@@ -4,12 +4,10 @@ import { isOptionsArgument } from "../../internal/isObject.js";
4
4
  * Return the second (0-59) from a UTC datetime string.
5
5
  *
6
6
  * - Returns zero-padded string for second.
7
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
8
- * `parseTimeFromUtc` does; an invalid zone returns "".
9
7
  * - Returns "" for invalid input.
10
8
  *
11
9
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
12
- * @param options optional: timeZone (IANA, default "UTC")
10
+ * @param options The time zone the value is read in
13
11
  * @returns Second (00-59) or "" on invalid input
14
12
  *
15
13
  * @example parseSecondFromUtc("2024-03-17T14:30:45Z") // "45"
@@ -1,12 +1,11 @@
1
1
  /**
2
2
  * Extract the time portion from a UTC datetime string.
3
3
  *
4
- * - Uses Temporal.Instant.from to parse, converts to specified timezone.
5
- * - Defaults to UTC if no timezone specified.
4
+ * - Uses Temporal.Instant.from to parse, converts to the `timeZone` option's zone.
6
5
  * - Returns "" for invalid input.
7
6
  *
8
7
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
9
- * @param options optional: timeZone (IANA)
8
+ * @param options The time zone the value is read in
10
9
  * @returns ISO time string (e.g., "14:30:45") or "" on invalid input
11
10
  *
12
11
  * @example parseTimeFromUtc("2024-03-17T14:30:45Z") // "14:30:45"
@@ -14,5 +13,11 @@
14
13
  * @example parseTimeFromUtc("invalid") // ""
15
14
  */
16
15
  export declare function parseTimeFromUtc(value: string, options?: {
16
+ /**
17
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
18
+ * the system time zone. An unknown zone returns `""`.
19
+ *
20
+ * @defaultValue `"UTC"`
21
+ */
17
22
  timeZone?: string;
18
23
  }): string;
@@ -1,16 +1,15 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
- import { isValidTimeZone } from "../../zoned/index.js";
2
+ import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
3
3
  import { isValidUtc } from "../validate/index.js";
4
4
  import { isOptionsArgument } from "../../internal/isObject.js";
5
5
  /**
6
6
  * Extract the time portion from a UTC datetime string.
7
7
  *
8
- * - Uses Temporal.Instant.from to parse, converts to specified timezone.
9
- * - Defaults to UTC if no timezone specified.
8
+ * - Uses Temporal.Instant.from to parse, converts to the `timeZone` option's zone.
10
9
  * - Returns "" for invalid input.
11
10
  *
12
11
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
13
- * @param options optional: timeZone (IANA)
12
+ * @param options The time zone the value is read in
14
13
  * @returns ISO time string (e.g., "14:30:45") or "" on invalid input
15
14
  *
16
15
  * @example parseTimeFromUtc("2024-03-17T14:30:45Z") // "14:30:45"
@@ -25,8 +24,8 @@ export function parseTimeFromUtc(value, options) {
25
24
  if (!isValidUtc(value)) {
26
25
  return "";
27
26
  }
28
- const { timeZone = "UTC" } = options ?? {};
29
- if (timeZone !== "UTC" && !isValidTimeZone(timeZone)) {
27
+ const timeZone = normalizeTimeZone(options?.timeZone);
28
+ if (timeZone === "") {
30
29
  return "";
31
30
  }
32
31
  try {
@@ -31,15 +31,13 @@ export type UtcUnit = Temporal.SmallestUnit<"year" | "month" | "week" | "day" |
31
31
  * - Valid units: "year", "month", "week", "day", "dayOfWeek", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
32
32
  * - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
33
33
  * does; `"dayOfWeek"` has no plural.
34
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
35
- * `parseTimeFromUtc` does; an invalid zone returns "".
36
- * - `weekStartsOn: "sunday"` numbers weeks by UTS #35 (week 1 holds 1 January, so late-December
37
- * days can be week 1); any value other than `"monday"` or `"sunday"` returns "".
34
+ * - A `"week"` in late December can be week 1 of the next year, under either week numbering.
35
+ * - `optionsArg` must be an object or omitted: a non-object value (such as `null`) returns "".
38
36
  * - Returns "" for invalid input.
39
37
  *
40
38
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
41
39
  * @param unit unit to extract from the datetime
42
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday") for week calculations, timeZone (IANA, default "UTC"); a non-object value (such as `null`) is invalid
40
+ * @param optionsArg How weeks are numbered, and the time zone the value is read in
43
41
  * @returns string representation of the requested unit or "" on invalid input
44
42
  *
45
43
  * @example parseUnitFromUtc("2024-03-17T14:30:45Z", "month") // "03"
@@ -50,6 +48,20 @@ export type UtcUnit = Temporal.SmallestUnit<"year" | "month" | "week" | "day" |
50
48
  * @example parseUnitFromUtc("invalid", "month") // ""
51
49
  */
52
50
  export declare function parseUnitFromUtc(value: string, unit: UtcUnit, optionsArg?: {
51
+ /**
52
+ * The first day of the week, which sets how the `"week"` unit is numbered. `"monday"` gives the
53
+ * ISO 8601 week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS
54
+ * #35 week number with a Sunday first day and one minimal day, where week 1 holds 1 January.
55
+ * Any other value returns `""`, whatever the unit.
56
+ *
57
+ * @defaultValue `"monday"`
58
+ */
53
59
  weekStartsOn?: "monday" | "sunday";
60
+ /**
61
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
62
+ * the system time zone. An unknown zone returns `""`.
63
+ *
64
+ * @defaultValue `"UTC"`
65
+ */
54
66
  timeZone?: string;
55
67
  }): string;
@@ -1,7 +1,7 @@
1
1
  // fallow-ignore-file code-duplication -- cross-family Temporal type clone, by design (rule 5)
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { resolveDateTimeUnit } from "../../internal/resolveDateTimeUnit.js";
4
- import { resolveReadingTimeZone } from "../../internal/resolveReadingTimeZone.js";
4
+ import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
5
5
  import { resolveWeekStartsOn } from "../../internal/resolveWeekStartsOn.js";
6
6
  import { getWeekNumber } from "../../plain/calculate/getWeekNumber.js";
7
7
  import { isValidUtc } from "../validate/index.js";
@@ -12,15 +12,13 @@ import { isOptionsArgument } from "../../internal/isObject.js";
12
12
  * - Valid units: "year", "month", "week", "day", "dayOfWeek", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
13
13
  * - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
14
14
  * does; `"dayOfWeek"` has no plural.
15
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
16
- * `parseTimeFromUtc` does; an invalid zone returns "".
17
- * - `weekStartsOn: "sunday"` numbers weeks by UTS #35 (week 1 holds 1 January, so late-December
18
- * days can be week 1); any value other than `"monday"` or `"sunday"` returns "".
15
+ * - A `"week"` in late December can be week 1 of the next year, under either week numbering.
16
+ * - `optionsArg` must be an object or omitted: a non-object value (such as `null`) returns "".
19
17
  * - Returns "" for invalid input.
20
18
  *
21
19
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
22
20
  * @param unit unit to extract from the datetime
23
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday") for week calculations, timeZone (IANA, default "UTC"); a non-object value (such as `null`) is invalid
21
+ * @param optionsArg How weeks are numbered, and the time zone the value is read in
24
22
  * @returns string representation of the requested unit or "" on invalid input
25
23
  *
26
24
  * @example parseUnitFromUtc("2024-03-17T14:30:45Z", "month") // "03"
@@ -37,8 +35,8 @@ export function parseUnitFromUtc(value, unit, optionsArg) {
37
35
  return "";
38
36
  }
39
37
  const weekStartsOn = resolveWeekStartsOn(optionsArg?.weekStartsOn);
40
- const timeZone = resolveReadingTimeZone(optionsArg?.timeZone);
41
- if (!isValidUtc(value) || weekStartsOn === null || timeZone === null) {
38
+ const timeZone = normalizeTimeZone(optionsArg?.timeZone);
39
+ if (!isValidUtc(value) || weekStartsOn === null || timeZone === "") {
42
40
  return "";
43
41
  }
44
42
  try {
@@ -1,19 +1,13 @@
1
1
  /**
2
2
  * Return the week number from a UTC datetime string.
3
3
  *
4
- * - `"monday"` (default) is the ISO 8601 week of the week-year: week 1 is the week containing the
5
- * first Thursday, so late-December days can be week 1 of the next year (a value on 2024-12-31
6
- * → 1). The result is 1–53.
7
- * - `"sunday"` is the UTS #35 week of the week-year with a Sunday first day and minimal days 1:
8
- * week 1 is the Sunday-first week holding 1 January, so late-December days can be week 1 of the
9
- * next year (2024-12-31 → 1, 2000-12-30 → 53). The result is 1–53.
10
- * - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
11
- * - The week is read from the value's date on the wall clock of `options.timeZone` (an IANA zone,
12
- * default UTC), as `parseTimeFromUtc` does; an invalid zone returns null.
4
+ * - The result is the week of the week-year, 1–53, so late-December days can be week 1 of the next
5
+ * year: 2024-12-31 → 1 under either numbering, and 2000-12-30 → 53 under the Sunday-first one
6
+ * (minimal days 1).
13
7
  * - Returns null for invalid input.
14
8
  *
15
9
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
16
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday") for week calculations, timeZone (IANA, default "UTC")
10
+ * @param optionsArg How weeks are numbered, and the time zone the value is read in
17
11
  * @returns Week number (1-53), or null on invalid input
18
12
  *
19
13
  * @example parseWeekFromUtc("2024-03-17T14:30:45Z") // 11
@@ -24,6 +18,20 @@
24
18
  * @example parseWeekFromUtc("invalid") // null
25
19
  */
26
20
  export declare function parseWeekFromUtc(value: string, optionsArg?: {
21
+ /**
22
+ * The first day of the week, which sets how the week is numbered. `"monday"` gives the ISO 8601
23
+ * week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS #35 week
24
+ * number with a Sunday first day and one minimal day, where week 1 holds 1 January. Any other
25
+ * value returns `null`.
26
+ *
27
+ * @defaultValue `"monday"`
28
+ */
27
29
  weekStartsOn?: "monday" | "sunday";
30
+ /**
31
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
32
+ * the system time zone. An unknown zone returns `null`.
33
+ *
34
+ * @defaultValue `"UTC"`
35
+ */
28
36
  timeZone?: string;
29
37
  }): number | null;
@@ -1,5 +1,5 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
- import { resolveReadingTimeZone } from "../../internal/resolveReadingTimeZone.js";
2
+ import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
3
3
  import { resolveWeekStartsOn } from "../../internal/resolveWeekStartsOn.js";
4
4
  import { getWeekNumber } from "../../plain/calculate/getWeekNumber.js";
5
5
  import { isValidUtc } from "../validate/index.js";
@@ -7,19 +7,13 @@ import { isOptionsArgument } from "../../internal/isObject.js";
7
7
  /**
8
8
  * Return the week number from a UTC datetime string.
9
9
  *
10
- * - `"monday"` (default) is the ISO 8601 week of the week-year: week 1 is the week containing the
11
- * first Thursday, so late-December days can be week 1 of the next year (a value on 2024-12-31
12
- * → 1). The result is 1–53.
13
- * - `"sunday"` is the UTS #35 week of the week-year with a Sunday first day and minimal days 1:
14
- * week 1 is the Sunday-first week holding 1 January, so late-December days can be week 1 of the
15
- * next year (2024-12-31 → 1, 2000-12-30 → 53). The result is 1–53.
16
- * - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
17
- * - The week is read from the value's date on the wall clock of `options.timeZone` (an IANA zone,
18
- * default UTC), as `parseTimeFromUtc` does; an invalid zone returns null.
10
+ * - The result is the week of the week-year, 1–53, so late-December days can be week 1 of the next
11
+ * year: 2024-12-31 → 1 under either numbering, and 2000-12-30 → 53 under the Sunday-first one
12
+ * (minimal days 1).
19
13
  * - Returns null for invalid input.
20
14
  *
21
15
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
22
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday") for week calculations, timeZone (IANA, default "UTC")
16
+ * @param optionsArg How weeks are numbered, and the time zone the value is read in
23
17
  * @returns Week number (1-53), or null on invalid input
24
18
  *
25
19
  * @example parseWeekFromUtc("2024-03-17T14:30:45Z") // 11
@@ -37,8 +31,8 @@ export function parseWeekFromUtc(value, optionsArg) {
37
31
  if (!isValidUtc(value))
38
32
  return null;
39
33
  const weekStartsOn = resolveWeekStartsOn(optionsArg?.weekStartsOn);
40
- const timeZone = resolveReadingTimeZone(optionsArg?.timeZone);
41
- if (weekStartsOn === null || timeZone === null)
34
+ const timeZone = normalizeTimeZone(optionsArg?.timeZone);
35
+ if (weekStartsOn === null || timeZone === "")
42
36
  return null;
43
37
  try {
44
38
  const instant = Temporal.Instant.from(value);
@@ -2,12 +2,10 @@
2
2
  * Return the year from a UTC datetime string.
3
3
  *
4
4
  * - Returns the year as a string (e.g., "2024").
5
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
6
- * `parseTimeFromUtc` does; an invalid zone returns "".
7
5
  * - Returns "" for invalid input.
8
6
  *
9
7
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
10
- * @param options optional: timeZone (IANA, default "UTC")
8
+ * @param options The time zone the value is read in
11
9
  * @returns Year (YYYY) or "" on invalid input
12
10
  *
13
11
  * @example parseYearFromUtc("2024-03-17T14:30:45Z") // "2024"
@@ -15,5 +13,11 @@
15
13
  * @example parseYearFromUtc("invalid") // ""
16
14
  */
17
15
  export declare function parseYearFromUtc(value: string, options?: {
16
+ /**
17
+ * The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
18
+ * the system time zone. An unknown zone returns `""`.
19
+ *
20
+ * @defaultValue `"UTC"`
21
+ */
18
22
  timeZone?: string;
19
23
  }): string;
@@ -4,12 +4,10 @@ import { isOptionsArgument } from "../../internal/isObject.js";
4
4
  * Return the year from a UTC datetime string.
5
5
  *
6
6
  * - Returns the year as a string (e.g., "2024").
7
- * - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
8
- * `parseTimeFromUtc` does; an invalid zone returns "".
9
7
  * - Returns "" for invalid input.
10
8
  *
11
9
  * @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
12
- * @param options optional: timeZone (IANA, default "UTC")
10
+ * @param options The time zone the value is read in
13
11
  * @returns Year (YYYY) or "" on invalid input
14
12
  *
15
13
  * @example parseYearFromUtc("2024-03-17T14:30:45Z") // "2024"
@@ -1,16 +1,13 @@
1
1
  /**
2
2
  * Return true if `value1` and `value2` form a valid UTC range — both parseable as
3
- * ISO UTC datetime strings and the instant at `value1` is <= the instant at `value2`.
3
+ * ISO UTC datetime strings and the instant at `value1` is before the instant at `value2`.
4
4
  *
5
5
  * - Both inputs must be ISO 8601 UTC datetime strings (e.g. `"2024-01-01T10:00:00Z"`), as
6
6
  * `isValidUtc` accepts, annotations included.
7
- * - Equal `value1 === value2` is valid when `options.allowEqual` is true.
8
7
  * - Leap-second strings return `false`.
9
8
  * - Invalid input or malformed strings return `false`.
10
9
  *
11
- * @param value1 first ISO UTC datetime string
12
- * @param value2 second ISO UTC datetime string
13
- * @param options optional allowEqual flag
10
+ * @param props The two ends of the range, and whether equal ends are valid
14
11
  * @returns boolean indicating whether the UTC range is valid
15
12
  *
16
13
  * @example isValidUtcRange({ value1: "2024-01-01T10:00:00Z", value2: "2024-12-31T23:59:59Z" }) // true
@@ -18,9 +15,23 @@
18
15
  * @example isValidUtcRange({ value1: "2024-01-01T10:00:00Z", value2: "2024-01-01T10:00:00Z", options: { allowEqual: true } }) // true
19
16
  */
20
17
  export declare function isValidUtcRange(props: {
18
+ /** The start of the range, as an ISO UTC datetime string. */
21
19
  value1: string;
20
+ /** The end of the range, as an ISO UTC datetime string. */
22
21
  value2: string;
22
+ /**
23
+ * The settings for the comparison. It must be an object or omitted; any other value, `null`
24
+ * included, returns `false`.
25
+ *
26
+ * @defaultValue None. Two values at the same instant are not a valid range.
27
+ */
23
28
  options?: {
29
+ /**
30
+ * Whether `value1` at the same instant as `value2` is a valid range. `false` requires `value1`
31
+ * to be before `value2`.
32
+ *
33
+ * @defaultValue `false`
34
+ */
24
35
  allowEqual?: boolean;
25
36
  };
26
37
  }): boolean;
@@ -4,17 +4,14 @@ import { isValidUtc } from "./isValidUtc.js";
4
4
  import { isObject, isOptionsArgument } from "../../internal/isObject.js";
5
5
  /**
6
6
  * Return true if `value1` and `value2` form a valid UTC range — both parseable as
7
- * ISO UTC datetime strings and the instant at `value1` is <= the instant at `value2`.
7
+ * ISO UTC datetime strings and the instant at `value1` is before the instant at `value2`.
8
8
  *
9
9
  * - Both inputs must be ISO 8601 UTC datetime strings (e.g. `"2024-01-01T10:00:00Z"`), as
10
10
  * `isValidUtc` accepts, annotations included.
11
- * - Equal `value1 === value2` is valid when `options.allowEqual` is true.
12
11
  * - Leap-second strings return `false`.
13
12
  * - Invalid input or malformed strings return `false`.
14
13
  *
15
- * @param value1 first ISO UTC datetime string
16
- * @param value2 second ISO UTC datetime string
17
- * @param options optional allowEqual flag
14
+ * @param props The two ends of the range, and whether equal ends are valid
18
15
  * @returns boolean indicating whether the UTC range is valid
19
16
  *
20
17
  * @example isValidUtcRange({ value1: "2024-01-01T10:00:00Z", value2: "2024-12-31T23:59:59Z" }) // true