@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@northguild/gmt",
3
- "version": "1.16.0",
3
+ "version": "1.18.0",
4
4
  "description": "Temporal-based date and time utilities with timezone support and polyfill integration",
5
5
  "keywords": [
6
6
  "date",
@@ -35,10 +35,9 @@
35
35
  "dist",
36
36
  "LICENSE",
37
37
  "README.md",
38
- "skills/gmt-basics",
39
- "skills/gmt-arithmetic",
40
- "skills/gmt-timezone",
41
- "skills/gmt-integration"
38
+ "skills",
39
+ "!skills/_artifacts",
40
+ "!skills/contributor"
42
41
  ],
43
42
  "type": "module",
44
43
  "sideEffects": false,
@@ -55,6 +54,9 @@
55
54
  "calendar/calculate": [
56
55
  "./dist/calendar/calculate/index.d.ts"
57
56
  ],
57
+ "calendar/hours": [
58
+ "./dist/calendar/hours/index.d.ts"
59
+ ],
58
60
  "calendar/validate": [
59
61
  "./dist/calendar/validate/index.d.ts"
60
62
  ],
@@ -85,6 +87,12 @@
85
87
  "instant/convert": [
86
88
  "./dist/instant/convert/index.d.ts"
87
89
  ],
90
+ "intermodal": [
91
+ "./dist/intermodal/index.d.ts"
92
+ ],
93
+ "intermodal/calculate": [
94
+ "./dist/intermodal/calculate/index.d.ts"
95
+ ],
88
96
  "interval": [
89
97
  "./dist/interval/index.d.ts"
90
98
  ],
@@ -163,6 +171,18 @@
163
171
  "span/validate": [
164
172
  "./dist/span/validate/index.d.ts"
165
173
  ],
174
+ "transport": [
175
+ "./dist/transport/index.d.ts"
176
+ ],
177
+ "transport/calculate": [
178
+ "./dist/transport/calculate/index.d.ts"
179
+ ],
180
+ "transport/compare": [
181
+ "./dist/transport/compare/index.d.ts"
182
+ ],
183
+ "transport/convert": [
184
+ "./dist/transport/convert/index.d.ts"
185
+ ],
166
186
  "types": [
167
187
  "./dist/types/index.d.ts"
168
188
  ],
@@ -275,6 +295,10 @@
275
295
  "types": "./dist/calendar/calculate/index.d.ts",
276
296
  "default": "./dist/calendar/calculate/index.js"
277
297
  },
298
+ "./calendar/hours": {
299
+ "types": "./dist/calendar/hours/index.d.ts",
300
+ "default": "./dist/calendar/hours/index.js"
301
+ },
278
302
  "./calendar/validate": {
279
303
  "types": "./dist/calendar/validate/index.d.ts",
280
304
  "default": "./dist/calendar/validate/index.js"
@@ -315,6 +339,14 @@
315
339
  "types": "./dist/instant/convert/index.d.ts",
316
340
  "default": "./dist/instant/convert/index.js"
317
341
  },
342
+ "./intermodal": {
343
+ "types": "./dist/intermodal/index.d.ts",
344
+ "default": "./dist/intermodal/index.js"
345
+ },
346
+ "./intermodal/calculate": {
347
+ "types": "./dist/intermodal/calculate/index.d.ts",
348
+ "default": "./dist/intermodal/calculate/index.js"
349
+ },
318
350
  "./interval": {
319
351
  "types": "./dist/interval/index.d.ts",
320
352
  "default": "./dist/interval/index.js"
@@ -419,6 +451,22 @@
419
451
  "types": "./dist/span/validate/index.d.ts",
420
452
  "default": "./dist/span/validate/index.js"
421
453
  },
454
+ "./transport": {
455
+ "types": "./dist/transport/index.d.ts",
456
+ "default": "./dist/transport/index.js"
457
+ },
458
+ "./transport/calculate": {
459
+ "types": "./dist/transport/calculate/index.d.ts",
460
+ "default": "./dist/transport/calculate/index.js"
461
+ },
462
+ "./transport/compare": {
463
+ "types": "./dist/transport/compare/index.d.ts",
464
+ "default": "./dist/transport/compare/index.js"
465
+ },
466
+ "./transport/convert": {
467
+ "types": "./dist/transport/convert/index.d.ts",
468
+ "default": "./dist/transport/convert/index.js"
469
+ },
422
470
  "./types": {
423
471
  "types": "./dist/types/index.d.ts",
424
472
  "default": "./dist/types/index.js"
@@ -32,7 +32,7 @@ sources:
32
32
  metadata:
33
33
  type: core
34
34
  library: '@northguild/gmt'
35
- library_version: '1.16.0'
35
+ library_version: '1.18.0'
36
36
  ---
37
37
 
38
38
  # GMT Arithmetic
@@ -24,7 +24,7 @@ sources:
24
24
  metadata:
25
25
  type: core
26
26
  library: '@northguild/gmt'
27
- library_version: '1.16.0'
27
+ library_version: '1.18.0'
28
28
  ---
29
29
 
30
30
  # GMT Basics
@@ -77,6 +77,15 @@ input before you act on it.
77
77
 
78
78
  - `formatRelative*` measure from now when `reference` is omitted, so the output
79
79
  changes from day to day. Pass `reference` whenever the result must be deterministic.
80
+ `largestUnit` takes a singular or plural unit name (`"hour"` or `"hours"`) from the
81
+ units the function's values have: `formatRelativeDate` day to year, `formatRelativeTime`
82
+ second to hour, the others second to year. Any other unit returns `""`.
83
+ `roundingMethod` is `"floor"`, `"ceil"` or `"round"`: any other value returns `""`.
84
+ - In a `parse*WithPattern` pattern, `''` is one literal quote, inside or outside
85
+ quoted text (UTS #35): `"MMM d, ''yy"` reads `"Mar 15, '24"`. It is not an empty
86
+ separator. Write adjacent fields with nothing between them, as in `"yyyyMMdd"`.
87
+ - `getZonedNow` reads `smallestUnit` only, and writes milliseconds when it is
88
+ omitted or `undefined`. The string always carries the offset and the zone.
80
89
  - `parseDateWithPattern`, `parseRfc2822` and `parseHttp` return `""` on
81
90
  shape-valid-but-unreal dates such as 31 February (regex only proves shape;
82
91
  Temporal validates the real value). Parsers reject; only arithmetic clamps.
@@ -17,7 +17,7 @@ sources:
17
17
  metadata:
18
18
  type: composition
19
19
  library: '@northguild/gmt'
20
- library_version: '1.16.0'
20
+ library_version: '1.18.0'
21
21
  ---
22
22
 
23
23
  # GMT Integration
@@ -48,8 +48,11 @@ which lint package to install for Date-ban enforcement.
48
48
  `convertUtcToUnix(value, { epochUnit: "seconds" })` rather than
49
49
  dividing/multiplying by hand. An `epochUnit` option must be `"seconds"` or
50
50
  `"milliseconds"` (singular accepted): any other value returns the sentinel
51
- instead of being read as milliseconds. `unix/` reads zone-dependent fields in
52
- UTC unless you pass `timeZone` (`"local"` for the system zone). A
51
+ instead of being read as milliseconds. `unix/` and `utc/` read zone-dependent
52
+ fields in UTC unless you pass `timeZone` (`"local"` for the system zone); that
53
+ holds for the `utc/` readers and converters too, such as `parseHourFromUtc` and
54
+ `convertUtcToPlainDate`. `convertUtcToZoned` and `convertUnixToZoned` take a
55
+ required zone and do not accept `"local"`. A
53
56
  blank epoch string is invalid, not `1970`, and `sortUnix`/`minUnix`/`maxUnix`
54
57
  skip values that are not integer epochs in Temporal's range.
55
58
  4. **Nanoseconds are `bigint`, never `number`.** A `number` is exact only to
@@ -75,8 +78,10 @@ which lint package to install for Date-ban enforcement.
75
78
  unsynchronized" marker. Check for `0n` yourself before trusting it as 1900.
76
79
  - .NET ticks name an instant only when `DateTimeKind` is `Utc`. `Local` and
77
80
  `Unspecified` ticks count wall-clock time.
78
- - `toNanoseconds` and `isValidInstant` read the offset and ignore a bracketed
79
- zone annotation, which is not checked.
81
+ - `toNanoseconds` and `isValidInstant` read the offset and do not validate a
82
+ bracketed zone annotation. One thing is read from it: an offset written to the
83
+ minute that is the zone's sub-minute offset rounded (`-00:45[Africa/Monrovia]`)
84
+ names the instant the zone gives.
80
85
  6. **Lint packages are toolchain-specific, not mutually exclusive.** Recommend
81
86
  only the one matching the project's existing linter; do not force all three.
82
87
  7. **Read the READMEs.** This skill is a routing pointer. For full integration
@@ -1,17 +1,20 @@
1
1
  ---
2
2
  name: gmt-timezone
3
3
  description: >
4
- Timezone-aware operations — get zoned now, format zoned datetimes/ranges,
5
- convert between plain↔zoned↔UTC↔Unix, DST disambiguation control on
6
- construction and arithmetic, the instant-plus-offset pair, classifying a
7
- zoneless wall time before resolving it, real zone unit boundaries
8
- (startOfZoned/endOfZoned/startOfUnix/endOfUnix, never after the input), hours
9
- in a local day, and flooring or bucketing instants on local calendar
10
- boundaries (floorToZone/bucketRange) instead of roundZoned, calendar-annotated
11
- zoned strings, and zoned values exact at the range limits (Australia/Sydney at
12
- the maximum, Etc/GMT+12 at the minimum). Reads the installed package README.md
13
- and source JSDoc for API details; this skill is a routing pointer, not an API
14
- dump.
4
+ Timezone-aware operations — zoned now, formatting zoned values/ranges,
5
+ plain↔zoned↔UTC↔Unix conversion, DST disambiguation on construction and
6
+ arithmetic, the instant-plus-offset pair, classifyLocal/resolveLocal, real
7
+ unit boundaries (startOfZoned/endOfZoned/startOfUnix/endOfUnix), hours in a
8
+ local day, floorToZone/bucketRange, calendar-annotated zoned strings, range
9
+ limits, transport legs (transitTime, etaAtZone, dwellTime, crossingTime,
10
+ scheduleDelivery), cut-offs (cutoffAt, cutoffSchedule, isPastCutoff,
11
+ timeToCutoff), planned versus actual (scheduleDeviation, classifyPunctuality,
12
+ punctualityRate, bestAvailable and estimateDrift over PLN/EST/REQ/ACT,
13
+ nextDeparture), intermodal free time (freeTimeExpiry, chargeableDays,
14
+ demurrageClock), billingTimeline, and operating hours (OperatingSchedule,
15
+ recurringWindows, operatingIntervals, isOpenAt, nextOpenAt, nextCloseAt,
16
+ operatingTimeBetween, addOperatingTime), and daylight time
17
+ (isInDaylightSaving, hasDaylightSaving). Points to the README and JSDoc.
15
18
  sources:
16
19
  - 'northguild/gmt:README.md'
17
20
  - 'northguild/gmt:packages/gmt/src/zoned/get/index.ts'
@@ -30,10 +33,17 @@ sources:
30
33
  - 'northguild/gmt:packages/gmt/src/instant/convert/index.ts'
31
34
  - 'northguild/gmt:packages/gmt/src/calendar/calculate/index.ts'
32
35
  - 'northguild/gmt:packages/gmt/src/calendar/validate/index.ts'
36
+ - 'northguild/gmt:packages/gmt/src/calendar/hours/index.ts'
37
+ - 'northguild/gmt:packages/gmt/src/types/operating-schedule.ts'
38
+ - 'northguild/gmt:packages/gmt/src/types/transport-timestamps.ts'
39
+ - 'northguild/gmt:packages/gmt/src/transport/calculate/index.ts'
40
+ - 'northguild/gmt:packages/gmt/src/transport/compare/index.ts'
41
+ - 'northguild/gmt:packages/gmt/src/transport/convert/index.ts'
42
+ - 'northguild/gmt:packages/gmt/src/intermodal/calculate/index.ts'
33
43
  metadata:
34
44
  type: core
35
45
  library: '@northguild/gmt'
36
- library_version: '1.16.0'
46
+ library_version: '1.18.0'
37
47
  ---
38
48
 
39
49
  # GMT Timezone
@@ -53,6 +63,16 @@ converting between time zones, or doing arithmetic that must respect DST.
53
63
  - The user needs the start or end of a local hour, day, week, month or quarter.
54
64
  - The user is grouping or aggregating UTC timestamps by local day, hour, week or
55
65
  month — an observability rollup, a chargeable-days count.
66
+ - The user is adding a leg's transit time to a departure, showing an arrival in
67
+ the zone where it lands, or counting how long cargo, a vessel or a patient sat
68
+ somewhere in local calendar days.
69
+ - The user is working out when a container's free time ends, how many days of
70
+ demurrage or detention are chargeable and for which dates, or which events a
71
+ charge's clock runs between.
72
+ - The user is asking whether a gate, desk, office or venue is open at an
73
+ instant, when it next opens or closes, how many working hours passed between
74
+ two instants, or when an SLA measured in open hours falls due — or is
75
+ expanding a recurring local window such as a night curfew.
56
76
 
57
77
  ## Core rules
58
78
 
@@ -164,7 +184,171 @@ converting between time zones, or doing arithmetic that must respect DST.
164
184
  `formatZonedRange` and `formatZonedToParts` return `""`/`[]` for a
165
185
  `timeZone` option. To show an instant in another zone, use
166
186
  `formatUtc(convertZonedToUtc(value), locale, { timeZone })`.
167
- 15. **Read the README.** This skill is a routing pointer. For the full DST
187
+ 15. **Transport legs are exact time; dwell is counted in local days.**
188
+ `transitTime(departure, duration)` adds hours, minutes and seconds as
189
+ elapsed time (`P1D` is 24 exact hours) in the departure's own zone, so a leg
190
+ across a DST transition lands at the wall time the vehicle really arrives;
191
+ years, months and weeks return `""`, and a bracketed zone that contradicts
192
+ its offset is rejected rather than reinterpreted. `etaAtZone(instant, zone)`
193
+ renders a moment in the zone the caller names — no disambiguation arises,
194
+ the offset in the result tells the two passes of a fall-back hour apart, and
195
+ GMT never resolves a port, airport or station code to a zone.
196
+ `dwellTime(entry, exit, targetZone?)` returns `{ duration, enter, exit,
197
+ calendarDays }`; `calendarDays` is the number of distinct local dates the
198
+ half-open `[entry, exit)` touches, walked across the zone's real transitions
199
+ (a skipped date is not counted, a re-entered one only once), and is the
200
+ library's one "local days crossed" count.
201
+ Bare instants with no `targetZone` return `null`: an offset is not a place.
202
+ `crossingTime(entry, exit, targetZone)` returns `{ duration, enter, exit }`
203
+ with no day count (a crossing that needs one is a dwell); `targetZone` is
204
+ required and always the rendering zone — a bracket on the input never
205
+ supplies it.
206
+ `scheduleDelivery(legs, { startTimeZone? })` chains legs into `{ eta,
207
+ legTimes }`: each leg leaves at its explicit `departure` or at the previous
208
+ arrival plus that leg's `dwellAfter`, the minimum connect time. A scheduled
209
+ departure earlier than that is a missed connection and returns `null`
210
+ (equal passes). A departure is exact (instant or zoned string) or a
211
+ zoneless wall time: on the first leg it is read in `startTimeZone`, on a
212
+ later leg in the previous leg's `timeZone` (where that leg leaves from),
213
+ both with `"compatible"` resolution (ambiguous → earlier, skipped →
214
+ later). On a later leg, a repeated hour instead takes the earliest pass
215
+ at or after the previous arrival plus its dwell. A
216
+ negative leg `duration` is `null`; the last leg's `dwellAfter` is echoed,
217
+ never added. `mode`, `origin` and `destination` are opaque tags echoed on
218
+ each `LegTime`. An empty array returns `{ eta: "", legTimes: [] }`.
219
+ 16. **Cut-offs count back from the caller's event.**
220
+ `cutoffAt(anchor, offset, { timeZone, atLocalTime?, calendar?, roll? })`
221
+ takes an offset off the anchor (loading, departure or arrival are
222
+ different instants; it never guesses which). With `atLocalTime` the
223
+ offset's exact part comes off the anchor's instant first, its calendar
224
+ part off the local date, and the cut-off is that time of day: `P2D` at
225
+ `"17:00"` is 17:00 two days before, not 48 hours. Without it the offset
226
+ is `ZonedDateTime#subtract` (`P2D` keeps the wall clock, `PT96H` is 96
227
+ exact hours). `calendar` and `roll` go together or not at all — there is
228
+ no default roll, as in `rollDate`; either alone is `""`. A repeated hour
229
+ takes the first pass (RFC 5545 §3.3.5); a skipped hour is `""`. It does
230
+ not check that the cut-off is before the anchor.
231
+ `cutoffSchedule(anchor, [{ name, offset, atLocalTime? }], options)`
232
+ sorts the stack by instant and returns `[]` if any entry fails.
233
+ `isPastCutoff(now, cutoff)` is `true` from the cut-off instant on;
234
+ `timeToCutoff(now, cutoff)` is exact hours, `PT0S` at it, negative after.
235
+ 17. **Planned versus actual is exact time under the caller's tolerance.**
236
+ `scheduleDeviation(planned, actual)` is `actual − planned` in exact hours
237
+ (`"PT14M"` late, `"-PT5M"` early; a fall-back delay is `PT1H`, never
238
+ `PT0S`). `classifyPunctuality(planned, actual, { late, early? })` returns
239
+ `"early" | "onTime" | "late"`, or `null` on invalid input: both edges are
240
+ outside (exactly `late` is late), and without `early` every early arrival
241
+ is on time. There is no default tolerance; tolerances are exact durations
242
+ (a day is 24 hours; years, months, weeks or negative return `null`).
243
+ `punctualityRate(pairs, tolerance)` returns `{ onTime, total, rate }`,
244
+ judging every pair under a tolerance read once; an empty list or any
245
+ invalid pair is `null`. A `TimestampEvent` is `{ classifier: "PLN" |
246
+ "EST" | "REQ" | "ACT", at, recordedAt }` (DCSA vocabulary).
247
+ `bestAvailable(events)` returns `{ at, classifier }`: `ACT` whenever one
248
+ exists, else `PLN`, else `REQ`, else `EST`, newest `recordedAt` within the
249
+ class — never an `EST` shown as an actual. `estimateDrift(events, {
250
+ tolerance? })` reports first-to-last `EST` drift, `revisions` and
251
+ `exceedsTolerance` (strictly greater, either direction; `null` without a
252
+ tolerance), and is `null` with fewer than two `EST`s.
253
+ `nextDeparture(after, timetable, { minimumConnection? })` returns the
254
+ first departure at or after `after + minimumConnection`: a list entry
255
+ echoed as written (ready for `scheduleDelivery`'s `departure`), or for
256
+ `{ headway, from, to }` (a GTFS `frequencies.txt` row) `from + k × headway`
257
+ in the half-open `[from, to)`, written the way `from` was. Every moment
258
+ must carry its offset; a wall time without one is `""`.
259
+ 18. **Free time is counted in the terminal's local days; the start day and the
260
+ basis are tariff terms, never defaults.**
261
+ `freeTimeExpiry(clockStart, freeDays, { basis, timeZone, firstDay, calendar? })`
262
+ returns `{ freeTimeStart, lastFreeDay, expiresAt }`: local dates in
263
+ `timeZone`, and the first instant of the day after the last free day.
264
+ `firstDay` (`"eventDay"` | `"nextDay"`) has no default because the two
265
+ differ by a day of charges; `basis: "working"` needs a `BusinessCalendar`
266
+ and returns `null` without one. `chargeableDays(clockStart, clockEnd,
267
+ freeDays, options)` also needs `chargeBasis` (no default): many tariffs
268
+ count both in calendar days; where a tariff grants free time in working
269
+ days the days after it are mostly charged as calendar days, and some
270
+ tariffs charge working days only. It counts the days on or after
271
+ `expiresAt` the half-open dwell touched, lists them as `chargedDates`, and
272
+ splits them into `tiers` bands; `freeDays: 0` is allowed there.
273
+ `demurrageClock(events, scope, { direction, startEvent? })` selects the
274
+ events per leg: import demurrage and storage run discharge (or
275
+ availability) to gate-out, detention gate-out to empty return; export
276
+ demurrage gate-in to loaded, detention empty release to gate-in; `combined`
277
+ runs both as one period. No standard fixes how these days are counted;
278
+ every term is the tariff's.
279
+ 19. **Billing deadlines are dates counted from an anchor, and every window is
280
+ the caller's.** `billingTimeline({ anchorOn, invoiceIssuedOn?,
281
+ requestReceivedOn? }, { issueDays, disputeDays, resolutionDays,
282
+ agreedResolutionOn? })` returns `{ invoiceDeadline, issuedByDeadline,
283
+ disputeDeadline, requestedByDeadline, resolutionDeadline }`. Day zero is
284
+ the anchor and each deadline is `date + days` on the ISO calendar; a date
285
+ is by the deadline when it is on or before it. No window has a default (a
286
+ missing one returns `null`); fields whose input does not exist yet are
287
+ `null`, so an anchor alone is a forecast. The anchor is whatever date the
288
+ caller counts from: the last charged date
289
+ (`chargedDates.at(-1)`), or for a re-bill the issuance date of the invoice
290
+ received. Reduce an instant to the billing party's local date first with
291
+ `convertUtcToPlainDate(instant, { timeZone })`. A request before its
292
+ invoice, or an agreed date before the request, returns `null`. GMT
293
+ computes dates, not liability.
294
+ 20. **Operating hours are local windows resolved in the schedule's zone.** An
295
+ `OperatingSchedule` is `{ timeZone, weekly, holidays?, overrides? }`:
296
+ `weekly` maps ISO weekdays `1`–`7` to half-open `LocalWindow`s
297
+ (`{ from: "09:00", to: "17:00" }`); a `to` at or before `from` wraps past
298
+ midnight and the window belongs to the date it starts on. Holidays are local
299
+ dates (a `BusinessCalendar` is accepted; only its `holidays` are read); an
300
+ override replaces one date's windows, holiday or not. Every edge goes
301
+ through `resolveLocal` with `disambiguation` (default `"compatible"`), so a
302
+ 23:00–06:00 window is 8 real hours across New York's fall-back night.
303
+ `recurringWindows(weekly, range, zone)` and `operatingIntervals(schedule,
304
+ range)` return merged open intervals; `isOpenAt`, `nextOpenAt` and
305
+ `nextCloseAt` answer point questions; `operatingTimeBetween(start, end,
306
+ schedule)` is open time elapsed (hours as the largest unit), and
307
+ `addOperatingTime(start, "PT8H", schedule)` is the SLA deadline. Searches
308
+ stop at `within` (default `"P1Y"`) and return `""` past it; `P1D` is not
309
+ open time and returns `""`.
310
+ 21. **A zoned string names one instant in every reader.** Temporal writes a
311
+ zone's offset rounded to the minute, so a zone with a sub-minute offset
312
+ (`Africa/Monrovia` stood at −00:44:30 until 1972) is written `-00:45`.
313
+ Every function that reads a moment (`toNanoseconds`, `spanNs`, `Interval`
314
+ endpoints, `floorToZone`, `getTimeZoneOffset`, `scheduleDeviation`,
315
+ `timeToCutoff`, `dwellTime`) reads an offset written to the minute as the
316
+ bracketed zone's real offset when it is that offset rounded (TC39
317
+ `ToTemporalZonedDateTime`, match-minutes):
318
+ `1960-01-01T00:20:00-00:45[Africa/Monrovia]` is `01:04:30Z`. So a zoned
319
+ string GMT wrote reads back as the instant it was written for. Otherwise
320
+ the written offset fixes the instant. A function that reads only the
321
+ instant does not validate the bracket, and the bracket never supplies its
322
+ rendering zone. A function that keeps the zone (`isValidZonedDateTime`,
323
+ `transitTime`, `toOffsetInstant`, every `zoned/` function, a zoned
324
+ `relativeTo`) rejects a bracket that contradicts the offset, and an offset
325
+ written with seconds must be the zone's offset exactly:
326
+ `-00:45:00[Africa/Monrovia]` is invalid, `-00:44:30[Africa/Monrovia]` is
327
+ valid. Two limits are Temporal's own. A wall time repeated inside a
328
+ sub-minute offset change, written to the minute, reads as its first pass
329
+ (`1952-10-15T23:59:59-11:20[Pacific/Niue]`); write the offset with seconds
330
+ to name the second. A zoned read refuses a local date of −271821-04-19,
331
+ which an instant reader accepts; pass that instant in `Z` form.
332
+ 22. **Daylight time is read from the zone's clock changes.**
333
+ `isInDaylightSaving(zoned)` and `hasDaylightSaving(timeZone, { at })`
334
+ apply one rule, GMT's own definition and not the tz database's daylight
335
+ flag (no JavaScript API exposes it): daylight time runs from a forward
336
+ change of the zone's clocks to the backward change of the same size that
337
+ undoes it, less than 365 days later. A forward change never undone is a
338
+ change of standard time, so
339
+ `isInDaylightSaving("2016-12-01T12:00:00+03:00[Europe/Istanbul]")` is
340
+ `false`. The higher of two alternating offsets is the daylight one:
341
+ `Europe/Dublin` in summer, `Africa/Casablanca` at `+01:00`.
342
+ `hasDaylightSaving` is `true` when the zone is in daylight time at `at`
343
+ or a daylight period begins less than 365 days after it. Pass `at` (an
344
+ ISO 8601 instant string) for an answer that does not depend on the day
345
+ the code runs: `hasDaylightSaving("Europe/Istanbul", { at:
346
+ "2015-06-15T12:00:00Z" })` is `true`, and with `"2016-06-15T12:00:00Z"`
347
+ it is `false`. Without `at` the reference is the current instant. Both
348
+ read the runtime's time zone data, so an answer can change when that data
349
+ does. The JSDoc of `isInDaylightSaving` lists what the rule reads as
350
+ standard time.
351
+ 23. **Read the README.** This skill is a routing pointer. For the full DST
168
352
  disambiguation walkthrough, code examples, and locale ICU notes, read the
169
353
  installed package's `README.md` and the source JSDoc.
170
354
 
@@ -174,7 +358,7 @@ converting between time zones, or doing arithmetic that must respect DST.
174
358
  - **Formatting**: `formatZonedDateTime`, `formatZonedRange`,
175
359
  `formatRelativeZoned`, `formatTimeZoneName`
176
360
  - **Validation**: `isValidTimeZone`, `isValidZonedDateTime`,
177
- `hasDaylightSaving`, `getDstTransitions`, `isInDaylightSaving`
361
+ `hasDaylightSaving` (`{ at }`), `getDstTransitions`, `isInDaylightSaving`
178
362
  - **Conversion**: `convertPlainDateTimeToZoned`, `convertZonedToPlainDateTime`,
179
363
  `convertUtcToZoned`, `convertZonedToUtc`, `convertZonedToCalendar`,
180
364
  `convertUtcToUnix`, `convertUnixToUtc`
@@ -190,6 +374,18 @@ converting between time zones, or doing arithmetic that must respect DST.
190
374
  - **Local-time resolution**: `classifyLocal`, `resolveLocal`
191
375
  - **Zone-aware buckets**: `floorToZone`, `bucketRange`,
192
376
  `isValidZoneBucketUnit`
377
+ - **Transport legs and dwell**: `transitTime`, `etaAtZone`, `dwellTime`,
378
+ `crossingTime`, `scheduleDelivery`
379
+ - **Cut-offs and deadlines**: `cutoffAt`, `cutoffSchedule`, `isPastCutoff`,
380
+ `timeToCutoff`
381
+ - **Punctuality and timestamp classes**: `scheduleDeviation`,
382
+ `classifyPunctuality`, `punctualityRate`, `bestAvailable`, `estimateDrift`,
383
+ `nextDeparture`
384
+ - **Free time and demurrage**: `freeTimeExpiry`, `chargeableDays`,
385
+ `demurrageClock`
386
+ - **Billing deadlines**: `billingTimeline`
387
+ - **Operating hours**: `recurringWindows`, `operatingIntervals`, `isOpenAt`,
388
+ `nextOpenAt`, `nextCloseAt`, `operatingTimeBetween`, `addOperatingTime`
193
389
 
194
390
  ## References
195
391
 
@@ -1,11 +0,0 @@
1
- /**
2
- * Resolve the `timeZone` option a UTC reader uses to read a value's wall-clock fields.
3
- *
4
- * - `undefined` (the option omitted) resolves to `"UTC"`.
5
- * - A valid IANA zone (or `"UTC"`) resolves to itself.
6
- * - Any other value is invalid and resolves to `null`, which callers map to their sentinel.
7
- *
8
- * @param timeZone raw option value from caller input
9
- * @returns the zone to read in, or `null` when the value is invalid
10
- */
11
- export declare function resolveReadingTimeZone(timeZone: unknown): string | null;
@@ -1,18 +0,0 @@
1
- import { isValidTimeZone } from "../zoned/validate/isValidTimeZone.js";
2
- /**
3
- * Resolve the `timeZone` option a UTC reader uses to read a value's wall-clock fields.
4
- *
5
- * - `undefined` (the option omitted) resolves to `"UTC"`.
6
- * - A valid IANA zone (or `"UTC"`) resolves to itself.
7
- * - Any other value is invalid and resolves to `null`, which callers map to their sentinel.
8
- *
9
- * @param timeZone raw option value from caller input
10
- * @returns the zone to read in, or `null` when the value is invalid
11
- */
12
- export function resolveReadingTimeZone(timeZone) {
13
- if (timeZone === undefined || timeZone === "UTC")
14
- return "UTC";
15
- return typeof timeZone === "string" && isValidTimeZone(timeZone)
16
- ? timeZone
17
- : null;
18
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Plural unit keys accepted by `formatDuration` for `UNIT_TO_INTL` lookup. Maps to
3
- * singular `Intl.NumberFormat` unit labels (e.g. `"years"` → `"year"`).
4
- */
5
- export type DurationUnit = "years" | "months" | "weeks" | "days" | "hours" | "minutes" | "seconds";