@northguild/gmt 1.19.0 → 1.20.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 (1024) hide show
  1. package/README.md +12 -12
  2. package/dist/calendar/business/businessDaysBetween.d.ts +2 -2
  3. package/dist/calendar/business/businessDaysBetween.js +11 -35
  4. package/dist/calendar/business/mergeCalendars.d.ts +1 -1
  5. package/dist/calendar/business/mergeCalendars.js +8 -9
  6. package/dist/calendar/business/nextBusinessDay.d.ts +2 -2
  7. package/dist/calendar/business/nextBusinessDay.js +2 -2
  8. package/dist/calendar/business/previousBusinessDay.d.ts +2 -2
  9. package/dist/calendar/business/previousBusinessDay.js +2 -2
  10. package/dist/calendar/business/rollDate.d.ts +3 -3
  11. package/dist/calendar/business/rollDate.js +10 -43
  12. package/dist/calendar/calculate/bucketRange.d.ts +9 -9
  13. package/dist/calendar/calculate/bucketRange.js +9 -9
  14. package/dist/calendar/calculate/floorToZone.d.ts +2 -2
  15. package/dist/calendar/calculate/floorToZone.js +1 -1
  16. package/dist/calendar/calculate/getFiscalPeriod.d.ts +50 -40
  17. package/dist/calendar/calculate/getFiscalPeriod.js +78 -57
  18. package/dist/calendar/calculate/getQuarter.d.ts +26 -21
  19. package/dist/calendar/calculate/getQuarter.js +48 -19
  20. package/dist/calendar/hours/addOperatingTime.d.ts +3 -3
  21. package/dist/calendar/hours/addOperatingTime.js +3 -3
  22. package/dist/calendar/hours/isOpenAt.d.ts +3 -3
  23. package/dist/calendar/hours/isOpenAt.js +3 -3
  24. package/dist/calendar/hours/nextCloseAt.d.ts +2 -2
  25. package/dist/calendar/hours/nextCloseAt.js +2 -2
  26. package/dist/calendar/hours/nextOpenAt.d.ts +3 -3
  27. package/dist/calendar/hours/nextOpenAt.js +3 -3
  28. package/dist/calendar/hours/operatingIntervals.d.ts +2 -2
  29. package/dist/calendar/hours/operatingIntervals.js +4 -6
  30. package/dist/calendar/hours/operatingTimeBetween.d.ts +3 -3
  31. package/dist/calendar/hours/operatingTimeBetween.js +6 -8
  32. package/dist/calendar/hours/recurringWindows.d.ts +5 -5
  33. package/dist/calendar/hours/recurringWindows.js +9 -10
  34. package/dist/calendar/index.d.ts +1 -1
  35. package/dist/calendar/index.js +2 -2
  36. package/dist/calendar/validate/index.d.ts +3 -0
  37. package/dist/calendar/validate/index.js +3 -0
  38. package/dist/calendar/validate/isValidFiscalCalendar.d.ts +23 -0
  39. package/dist/calendar/validate/isValidFiscalCalendar.js +44 -0
  40. package/dist/calendar/validate/isValidFiscalExtraWeek.d.ts +19 -0
  41. package/dist/calendar/validate/isValidFiscalExtraWeek.js +23 -0
  42. package/dist/calendar/validate/isValidFiscalPattern.d.ts +7 -7
  43. package/dist/calendar/validate/isValidFiscalPattern.js +7 -7
  44. package/dist/calendar/validate/isValidFiscalYearLabel.d.ts +20 -0
  45. package/dist/calendar/validate/isValidFiscalYearLabel.js +24 -0
  46. package/dist/calendar/validate/isValidRollConvention.js +2 -10
  47. package/dist/calendar/validate/isValidZoneBucketUnit.d.ts +1 -1
  48. package/dist/duration/calculate/absDuration.js +1 -1
  49. package/dist/duration/calculate/addDuration.js +1 -1
  50. package/dist/duration/calculate/durationFromUnits.js +1 -1
  51. package/dist/duration/calculate/getDurationSign.js +1 -1
  52. package/dist/duration/calculate/getDurationUnit.d.ts +1 -1
  53. package/dist/duration/calculate/getDurationUnit.js +1 -1
  54. package/dist/duration/calculate/negateDuration.js +1 -1
  55. package/dist/duration/calculate/subtractDuration.js +1 -1
  56. package/dist/duration/calculate/totalDuration.d.ts +4 -4
  57. package/dist/duration/calculate/totalDuration.js +4 -4
  58. package/dist/duration/calculate/totalUnits.js +1 -1
  59. package/dist/duration/compare/compareDurations.d.ts +3 -3
  60. package/dist/duration/compare/compareDurations.js +3 -3
  61. package/dist/duration/format/formatDuration.d.ts +9 -9
  62. package/dist/duration/format/formatDuration.js +14 -13
  63. package/dist/duration/index.d.ts +1 -1
  64. package/dist/duration/index.js +2 -2
  65. package/dist/duration/normalize/normalizeDuration.d.ts +3 -3
  66. package/dist/duration/normalize/normalizeDuration.js +3 -3
  67. package/dist/duration/parse/parseDuration.d.ts +1 -1
  68. package/dist/duration/parse/parseDuration.js +1 -1
  69. package/dist/duration/validate/isValidDuration.js +2 -11
  70. package/dist/gnss/convert/gnssToUtc.d.ts +24 -0
  71. package/dist/gnss/convert/gnssToUtc.js +39 -0
  72. package/dist/gnss/convert/gnssWeekToUtc.d.ts +53 -0
  73. package/dist/gnss/convert/gnssWeekToUtc.js +80 -0
  74. package/dist/gnss/convert/index.d.ts +6 -0
  75. package/dist/gnss/convert/index.js +6 -0
  76. package/dist/gnss/convert/rinexWeekToUtc.d.ts +34 -0
  77. package/dist/gnss/convert/rinexWeekToUtc.js +57 -0
  78. package/dist/gnss/convert/utcToGnss.d.ts +38 -0
  79. package/dist/gnss/convert/utcToGnss.js +53 -0
  80. package/dist/gnss/convert/utcToGnssWeek.d.ts +24 -0
  81. package/dist/gnss/convert/utcToGnssWeek.js +40 -0
  82. package/dist/gnss/convert/utcToRinexWeek.d.ts +19 -0
  83. package/dist/gnss/convert/utcToRinexWeek.js +45 -0
  84. package/dist/gnss/index.d.ts +2 -0
  85. package/dist/gnss/index.js +3 -0
  86. package/dist/index.d.ts +4 -2
  87. package/dist/index.js +4 -2
  88. package/dist/instant/convert/classifyLocal.d.ts +4 -4
  89. package/dist/instant/convert/classifyLocal.js +8 -19
  90. package/dist/instant/convert/fromOffsetInstant.d.ts +4 -4
  91. package/dist/instant/convert/fromOffsetInstant.js +5 -5
  92. package/dist/instant/convert/resolveLocal.d.ts +9 -9
  93. package/dist/instant/convert/resolveLocal.js +9 -9
  94. package/dist/instant/convert/toOffsetInstant.d.ts +11 -11
  95. package/dist/instant/convert/toOffsetInstant.js +11 -28
  96. package/dist/instant/index.d.ts +1 -1
  97. package/dist/instant/index.js +2 -2
  98. package/dist/instant/validate/isValidUtcOffset.d.ts +1 -1
  99. package/dist/instant/validate/isValidUtcOffset.js +1 -1
  100. package/dist/intermodal/calculate/billingTimeline.js +1 -1
  101. package/dist/intermodal/calculate/chargeableDays.d.ts +12 -12
  102. package/dist/intermodal/calculate/chargeableDays.js +17 -16
  103. package/dist/intermodal/calculate/demurrageClock.d.ts +1 -1
  104. package/dist/intermodal/calculate/demurrageClock.js +2 -2
  105. package/dist/intermodal/calculate/freeTimeExpiry.d.ts +10 -10
  106. package/dist/intermodal/calculate/freeTimeExpiry.js +19 -15
  107. package/dist/intermodal/calculate/multimodalETA.d.ts +1 -1
  108. package/dist/intermodal/calculate/multimodalETA.js +2 -2
  109. package/dist/intermodal/format/bolTimestamp.d.ts +6 -6
  110. package/dist/intermodal/format/bolTimestamp.js +6 -6
  111. package/dist/intermodal/format/formatEpcisEvent.d.ts +1 -1
  112. package/dist/intermodal/format/formatEpcisEvent.js +2 -2
  113. package/dist/intermodal/index.d.ts +1 -1
  114. package/dist/intermodal/index.js +2 -2
  115. package/dist/intermodal/parse/parseEpcisEvent.js +1 -1
  116. package/dist/intermodal/validate/isValidEpcisEventTime.js +1 -1
  117. package/dist/internal/advanceToWeekday.d.ts +1 -1
  118. package/dist/internal/businessCalendar.d.ts +28 -12
  119. package/dist/internal/businessCalendar.js +129 -118
  120. package/dist/internal/businessDayValues.js +1 -1
  121. package/dist/internal/calendarDatePairPolicy.d.ts +1 -1
  122. package/dist/internal/calendarDateString.d.ts +1 -1
  123. package/dist/internal/calendarDateString.js +1 -1
  124. package/dist/internal/calendarSystemIds.js +1 -1
  125. package/dist/internal/calendarValueOfDate.js +1 -1
  126. package/dist/internal/calendarZonedPairPolicy.d.ts +1 -1
  127. package/dist/internal/calendarZonedString.d.ts +3 -3
  128. package/dist/internal/calendarZonedString.js +4 -4
  129. package/dist/internal/compareUnixEpochs.js +1 -1
  130. package/dist/internal/cutoffAtResolved.d.ts +62 -0
  131. package/dist/internal/cutoffAtResolved.js +162 -0
  132. package/dist/internal/cycleFieldValue.d.ts +0 -2
  133. package/dist/internal/cycleFieldValue.js +0 -2
  134. package/dist/internal/dateTimeUnitHelpers.d.ts +1 -1
  135. package/dist/internal/dateUnitHelpers.d.ts +1 -1
  136. package/dist/internal/daylightTime.d.ts +1 -1
  137. package/dist/internal/differenceRecord.d.ts +1 -1
  138. package/dist/internal/durationUntilString.d.ts +1 -1
  139. package/dist/internal/durationUntilString.js +1 -1
  140. package/dist/internal/dutyEngine.d.ts +6 -6
  141. package/dist/internal/dutyEngine.js +206 -197
  142. package/dist/internal/dutyPeriods.d.ts +1 -1
  143. package/dist/internal/dutyPeriods.js +8 -2
  144. package/dist/internal/dutyRules.d.ts +2 -1
  145. package/dist/internal/dutyRules.js +1 -1
  146. package/dist/internal/dutyRunIndex.d.ts +150 -0
  147. package/dist/internal/dutyRunIndex.js +398 -0
  148. package/dist/internal/earlierOccurrence.d.ts +41 -0
  149. package/dist/internal/earlierOccurrence.js +57 -0
  150. package/dist/internal/ediDateTimeFields.js +1 -1
  151. package/dist/internal/ediDateTimeWriter.js +1 -1
  152. package/dist/internal/englishCalendarNames.d.ts +1 -1
  153. package/dist/internal/epochDay.d.ts +41 -0
  154. package/dist/internal/epochDay.js +129 -0
  155. package/dist/internal/exactDuration.js +1 -1
  156. package/dist/internal/exactMoment.d.ts +4 -4
  157. package/dist/internal/exactMoment.js +5 -5
  158. package/dist/internal/fiscalCalendar.d.ts +41 -7
  159. package/dist/internal/fiscalCalendar.js +77 -9
  160. package/dist/internal/foreignEpochs.d.ts +5 -0
  161. package/dist/internal/foreignEpochs.js +5 -0
  162. package/dist/internal/formatCalendarDays.d.ts +4 -4
  163. package/dist/internal/formatCalendarDays.js +6 -5
  164. package/dist/internal/formatDateInCalendar.d.ts +1 -1
  165. package/dist/internal/formatRelativeDuration.d.ts +7 -7
  166. package/dist/internal/formatRelativeDuration.js +8 -7
  167. package/dist/internal/formatterCache.d.ts +40 -0
  168. package/dist/internal/formatterCache.js +181 -0
  169. package/dist/internal/freeTimeLedger.d.ts +31 -43
  170. package/dist/internal/freeTimeLedger.js +322 -30
  171. package/dist/internal/getLocaleWeekYearBounds.d.ts +1 -1
  172. package/dist/internal/gnssTimeScales.d.ts +53 -0
  173. package/dist/internal/gnssTimeScales.js +128 -0
  174. package/dist/internal/gnssWeek.d.ts +92 -0
  175. package/dist/internal/gnssWeek.js +212 -0
  176. package/dist/internal/halfOpenIntervals.d.ts +1 -1
  177. package/dist/internal/halfOpenIntervals.js +1 -1
  178. package/dist/internal/hasCalendarAnnotation.d.ts +3 -3
  179. package/dist/internal/hasCalendarAnnotation.js +3 -3
  180. package/dist/internal/hourDurationString.js +1 -1
  181. package/dist/internal/httpDateFields.js +1 -1
  182. package/dist/internal/index.d.ts +9 -3
  183. package/dist/internal/index.js +9 -3
  184. package/dist/internal/inputChecks.d.ts +53 -0
  185. package/dist/internal/inputChecks.js +132 -0
  186. package/dist/internal/instantFormatOptions.d.ts +1 -1
  187. package/dist/internal/instantFormatOptions.js +4 -8
  188. package/dist/internal/instantIntervalText.js +1 -1
  189. package/dist/internal/instantNanoseconds.d.ts +2 -2
  190. package/dist/internal/instantNanoseconds.js +2 -2
  191. package/dist/internal/intervalCountHelpers.d.ts +1 -1
  192. package/dist/internal/isoStringBody.d.ts +2 -2
  193. package/dist/internal/isoStringBody.js +2 -2
  194. package/dist/internal/joinDateTimeConnector.js +3 -2
  195. package/dist/internal/leapSeconds.d.ts +63 -0
  196. package/dist/internal/leapSeconds.js +162 -0
  197. package/dist/internal/localeWeekInfo.d.ts +1 -1
  198. package/dist/internal/localeWeekInfo.js +1 -1
  199. package/dist/internal/monthGridWeekRow.d.ts +1 -1
  200. package/dist/internal/normalizeDateTime.d.ts +2 -1
  201. package/dist/internal/normalizeDateTime.js +3 -2
  202. package/dist/internal/normalizeTimeZone.d.ts +1 -1
  203. package/dist/internal/normalizeTimeZone.js +1 -1
  204. package/dist/internal/offsetTimeline.d.ts +56 -0
  205. package/dist/internal/offsetTimeline.js +166 -0
  206. package/dist/internal/operatingSchedule.d.ts +28 -32
  207. package/dist/internal/operatingSchedule.js +538 -176
  208. package/dist/internal/patternToken.js +10 -7
  209. package/dist/internal/plainDateAdd.d.ts +1 -1
  210. package/dist/internal/plainDateAdd.js +1 -1
  211. package/dist/internal/plainDateUntil.d.ts +1 -1
  212. package/dist/internal/plainDateUntil.js +1 -1
  213. package/dist/internal/readSetFields.js +1 -1
  214. package/dist/internal/resolveDurationRelativeTo.d.ts +1 -1
  215. package/dist/internal/resolveDurationRelativeTo.js +1 -1
  216. package/dist/internal/resolveLocale.d.ts +2 -2
  217. package/dist/internal/resolveLocale.js +2 -2
  218. package/dist/internal/resolveManualRoundingOptions.d.ts +1 -1
  219. package/dist/internal/resolveUnixIntervalPair.d.ts +1 -1
  220. package/dist/internal/rinexWeek.d.ts +22 -0
  221. package/dist/internal/rinexWeek.js +30 -0
  222. package/dist/internal/rollBusinessDate.d.ts +15 -0
  223. package/dist/internal/rollBusinessDate.js +46 -0
  224. package/dist/internal/splitStep.d.ts +1 -1
  225. package/dist/internal/splitStep.js +1 -1
  226. package/dist/internal/startOrEndOfUnix.d.ts +1 -1
  227. package/dist/internal/startOrEndOfUtc.d.ts +1 -1
  228. package/dist/internal/startOrEndOfUtc.js +1 -1
  229. package/dist/internal/startOrEndOfZoned.d.ts +1 -1
  230. package/dist/internal/temporal.d.ts +5 -0
  231. package/dist/internal/temporal.js +5 -0
  232. package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +1 -1
  233. package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +1 -1
  234. package/dist/internal/temporalCompat/calendarDateFromFields.js +1 -1
  235. package/dist/internal/temporalCompat/calendarFields.d.ts +1 -1
  236. package/dist/internal/temporalCompat/capabilities.d.ts +27 -5
  237. package/dist/internal/temporalCompat/capabilities.js +28 -4
  238. package/dist/internal/temporalCompat/fieldSearch.d.ts +1 -1
  239. package/dist/internal/temporalCompat/fieldSearch.js +1 -1
  240. package/dist/internal/temporalCompat/fixedDay.d.ts +1 -1
  241. package/dist/internal/temporalCompat/fixedDay.js +1 -1
  242. package/dist/internal/temporalCompat/index.d.ts +1 -1
  243. package/dist/internal/temporalCompat/index.js +1 -1
  244. package/dist/internal/temporalCompat/largeMonthSpan.js +1 -1
  245. package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +1 -1
  246. package/dist/internal/temporalCompat/nonIsoArithmetic.js +1 -1
  247. package/dist/internal/temporalCompat/probeRepros.d.ts +35 -0
  248. package/dist/internal/temporalCompat/probeRepros.js +571 -0
  249. package/dist/internal/temporalCompat/readArithmeticModel.js +2 -2
  250. package/dist/internal/temporalCompat/repros.d.ts +3 -10
  251. package/dist/internal/temporalCompat/repros.js +13 -520
  252. package/dist/internal/timeScaleString.d.ts +47 -0
  253. package/dist/internal/timeScaleString.js +86 -0
  254. package/dist/internal/toInstantFromUtc.d.ts +1 -1
  255. package/dist/internal/toInstantFromUtc.js +1 -1
  256. package/dist/internal/unixEpochValue.d.ts +1 -1
  257. package/dist/internal/unixEpochValue.js +1 -1
  258. package/dist/internal/unixFormatReference.d.ts +1 -1
  259. package/dist/internal/unixFormatReference.js +1 -1
  260. package/dist/internal/unixWallClock.d.ts +1 -1
  261. package/dist/internal/utcOffsetString.d.ts +16 -0
  262. package/dist/internal/utcOffsetString.js +31 -1
  263. package/dist/internal/utcReading.d.ts +59 -0
  264. package/dist/internal/utcReading.js +113 -0
  265. package/dist/internal/utcWallClock.d.ts +1 -1
  266. package/dist/internal/utcWallClock.js +1 -1
  267. package/dist/internal/validatedZones.d.ts +20 -0
  268. package/dist/internal/validatedZones.js +33 -0
  269. package/dist/internal/wallClockAtOffset.d.ts +1 -1
  270. package/dist/internal/yearWindowStart.js +1 -1
  271. package/dist/internal/zoneBucketCap.d.ts +1 -1
  272. package/dist/internal/zoneBucketCap.js +2 -2
  273. package/dist/internal/zoneFrame.d.ts +4 -4
  274. package/dist/internal/zoneFrame.js +4 -4
  275. package/dist/internal/zonedBucket.d.ts +2 -2
  276. package/dist/internal/zonedBucket.js +92 -21
  277. package/dist/internal/zonedFormatReference.d.ts +1 -1
  278. package/dist/internal/zonedFormatReference.js +1 -1
  279. package/dist/internal/zonedLocalDates.d.ts +1 -1
  280. package/dist/internal/zonedLocalDates.js +22 -19
  281. package/dist/internal/zonedNowUnitValue.d.ts +1 -1
  282. package/dist/internal/zonedNowUnitValue.js +1 -1
  283. package/dist/internal/zonedTransitionSearch.d.ts +2 -0
  284. package/dist/internal/zonedTransitionSearch.js +165 -16
  285. package/dist/internal/zonedWallClock.d.ts +15 -4
  286. package/dist/internal/zonedWallClock.js +34 -6
  287. package/dist/internal/zonedWallClockDifference.d.ts +1 -1
  288. package/dist/internal/zonedWallClockDifference.js +2 -2
  289. package/dist/internal/zonedWallClockOperations.d.ts +2 -2
  290. package/dist/internal/zonedWallClockOperations.js +51 -6
  291. package/dist/internal/zonelessCalendarDate.d.ts +1 -1
  292. package/dist/internal/zonelessCalendarDate.js +1 -1
  293. package/dist/interval/index.d.ts +1 -1
  294. package/dist/interval/index.js +2 -2
  295. package/dist/plain/calculate/addBusinessDays.d.ts +2 -2
  296. package/dist/plain/calculate/addBusinessDays.js +2 -2
  297. package/dist/plain/calculate/addDateTime.js +1 -1
  298. package/dist/plain/calculate/addTime.js +1 -1
  299. package/dist/plain/calculate/clampDate.js +1 -1
  300. package/dist/plain/calculate/closestDateTo.js +1 -1
  301. package/dist/plain/calculate/cycleDate.js +1 -1
  302. package/dist/plain/calculate/cycleDateTime.js +1 -1
  303. package/dist/plain/calculate/cycleTime.js +1 -1
  304. package/dist/plain/calculate/diffDate.d.ts +1 -1
  305. package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
  306. package/dist/plain/calculate/diffDateTime.d.ts +1 -1
  307. package/dist/plain/calculate/diffDateTime.js +1 -1
  308. package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
  309. package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
  310. package/dist/plain/calculate/diffTime.d.ts +1 -1
  311. package/dist/plain/calculate/diffTime.js +1 -1
  312. package/dist/plain/calculate/endOfDate.d.ts +1 -1
  313. package/dist/plain/calculate/endOfDate.js +1 -1
  314. package/dist/plain/calculate/endOfDateTime.d.ts +1 -1
  315. package/dist/plain/calculate/endOfDateTime.js +1 -1
  316. package/dist/plain/calculate/endOfQuarterForDate.js +1 -1
  317. package/dist/plain/calculate/endOfQuarterForDateTime.js +1 -1
  318. package/dist/plain/calculate/endOfTime.d.ts +1 -1
  319. package/dist/plain/calculate/endOfTime.js +1 -1
  320. package/dist/plain/calculate/getDayOfYear.js +1 -1
  321. package/dist/plain/calculate/getDaysInMonth.js +1 -1
  322. package/dist/plain/calculate/getDaysInYear.js +1 -1
  323. package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +1 -1
  324. package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +1 -1
  325. package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +1 -1
  326. package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +6 -6
  327. package/dist/plain/calculate/getLocaleDayOfWeek.js +7 -7
  328. package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +4 -4
  329. package/dist/plain/calculate/getLocaleEndOfWeek.js +5 -5
  330. package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +5 -5
  331. package/dist/plain/calculate/getLocaleStartOfWeek.js +6 -6
  332. package/dist/plain/calculate/getLocaleWeekYear.d.ts +10 -10
  333. package/dist/plain/calculate/getLocaleWeekYear.js +11 -11
  334. package/dist/plain/calculate/getQuarterForDate.js +1 -1
  335. package/dist/plain/calculate/getQuarterForDateTime.js +1 -1
  336. package/dist/plain/calculate/getWeekNumber.js +1 -1
  337. package/dist/plain/calculate/getWeekOfMonth.d.ts +10 -14
  338. package/dist/plain/calculate/getWeekOfMonth.js +11 -15
  339. package/dist/plain/calculate/getWeekYear.js +1 -1
  340. package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +7 -7
  341. package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +8 -8
  342. package/dist/plain/calculate/getWeeksInMonth.d.ts +8 -11
  343. package/dist/plain/calculate/getWeeksInMonth.js +9 -12
  344. package/dist/plain/calculate/getWeeksInYear.js +1 -1
  345. package/dist/plain/calculate/maxDate.js +1 -1
  346. package/dist/plain/calculate/maxDateTime.js +1 -1
  347. package/dist/plain/calculate/maxTime.js +1 -1
  348. package/dist/plain/calculate/minDate.js +1 -1
  349. package/dist/plain/calculate/minDateTime.js +1 -1
  350. package/dist/plain/calculate/minTime.js +1 -1
  351. package/dist/plain/calculate/nextWeekday.d.ts +14 -12
  352. package/dist/plain/calculate/nextWeekday.js +15 -13
  353. package/dist/plain/calculate/previousWeekday.d.ts +14 -12
  354. package/dist/plain/calculate/previousWeekday.js +15 -13
  355. package/dist/plain/calculate/roundDate.d.ts +1 -1
  356. package/dist/plain/calculate/roundDate.js +1 -1
  357. package/dist/plain/calculate/roundDateTime.d.ts +1 -1
  358. package/dist/plain/calculate/roundDateTime.js +1 -1
  359. package/dist/plain/calculate/roundTime.d.ts +1 -1
  360. package/dist/plain/calculate/roundTime.js +1 -1
  361. package/dist/plain/calculate/setDate.d.ts +1 -1
  362. package/dist/plain/calculate/setDate.js +1 -1
  363. package/dist/plain/calculate/setDateTime.d.ts +1 -1
  364. package/dist/plain/calculate/setDateTime.js +1 -1
  365. package/dist/plain/calculate/setTime.d.ts +1 -1
  366. package/dist/plain/calculate/setTime.js +1 -1
  367. package/dist/plain/calculate/sortDateTimes.js +1 -1
  368. package/dist/plain/calculate/sortDates.js +1 -1
  369. package/dist/plain/calculate/sortTimes.js +1 -1
  370. package/dist/plain/calculate/startOfDate.d.ts +1 -1
  371. package/dist/plain/calculate/startOfDate.js +1 -1
  372. package/dist/plain/calculate/startOfDateTime.d.ts +1 -1
  373. package/dist/plain/calculate/startOfDateTime.js +1 -1
  374. package/dist/plain/calculate/startOfQuarterForDate.js +1 -1
  375. package/dist/plain/calculate/startOfQuarterForDateTime.js +1 -1
  376. package/dist/plain/calculate/startOfTime.d.ts +1 -1
  377. package/dist/plain/calculate/startOfTime.js +1 -1
  378. package/dist/plain/calculate/subtractBusinessDays.d.ts +2 -2
  379. package/dist/plain/calculate/subtractBusinessDays.js +2 -2
  380. package/dist/plain/calculate/subtractDate.js +1 -1
  381. package/dist/plain/calculate/subtractDateTime.js +1 -1
  382. package/dist/plain/calculate/subtractTime.js +1 -1
  383. package/dist/plain/calculate/weekOfYearForDate.js +1 -1
  384. package/dist/plain/calculate/weekOfYearForDateTime.js +1 -1
  385. package/dist/plain/chop/chopDate.js +1 -1
  386. package/dist/plain/chop/chopMilliseconds.js +1 -1
  387. package/dist/plain/chop/chopSeconds.js +1 -1
  388. package/dist/plain/chop/chopTime.js +1 -1
  389. package/dist/plain/compare/areDateTimesEqual.js +1 -1
  390. package/dist/plain/compare/areDateTimesEqualBy.d.ts +2 -4
  391. package/dist/plain/compare/areDateTimesEqualBy.js +2 -4
  392. package/dist/plain/compare/areDatesEqual.js +1 -1
  393. package/dist/plain/compare/areDatesEqualBy.d.ts +5 -5
  394. package/dist/plain/compare/areDatesEqualBy.js +5 -5
  395. package/dist/plain/compare/areTimesEqual.js +1 -1
  396. package/dist/plain/compare/isAfterDate.js +1 -1
  397. package/dist/plain/compare/isAfterDateTime.js +1 -1
  398. package/dist/plain/compare/isAfterTime.js +1 -1
  399. package/dist/plain/compare/isBeforeDate.js +1 -1
  400. package/dist/plain/compare/isBeforeDateTime.js +1 -1
  401. package/dist/plain/compare/isBeforeTime.js +1 -1
  402. package/dist/plain/compare/isBetweenDate.js +1 -1
  403. package/dist/plain/compare/isBetweenDateTime.js +1 -1
  404. package/dist/plain/compare/isBetweenTime.js +1 -1
  405. package/dist/plain/compare/isBusinessDay.d.ts +2 -2
  406. package/dist/plain/compare/isBusinessDay.js +3 -3
  407. package/dist/plain/compare/isRelativeDay.d.ts +1 -1
  408. package/dist/plain/compare/isRelativeDay.js +1 -1
  409. package/dist/plain/compare/isThisUnit.d.ts +8 -6
  410. package/dist/plain/compare/isThisUnit.js +7 -5
  411. package/dist/plain/compare/isWeekend.d.ts +5 -5
  412. package/dist/plain/compare/isWeekend.js +6 -6
  413. package/dist/plain/format/formatCalendar.d.ts +3 -5
  414. package/dist/plain/format/formatCalendar.js +10 -9
  415. package/dist/plain/format/formatDate.d.ts +4 -4
  416. package/dist/plain/format/formatDate.js +8 -7
  417. package/dist/plain/format/formatDateRange.d.ts +4 -4
  418. package/dist/plain/format/formatDateRange.js +8 -7
  419. package/dist/plain/format/formatDateTime.d.ts +4 -4
  420. package/dist/plain/format/formatDateTime.js +8 -7
  421. package/dist/plain/format/formatDateTimeRange.d.ts +4 -4
  422. package/dist/plain/format/formatDateTimeRange.js +8 -7
  423. package/dist/plain/format/formatDateTimeToParts.d.ts +6 -6
  424. package/dist/plain/format/formatDateTimeToParts.js +10 -9
  425. package/dist/plain/format/formatDateToParts.d.ts +6 -6
  426. package/dist/plain/format/formatDateToParts.js +10 -9
  427. package/dist/plain/format/formatRelativeDate.d.ts +3 -3
  428. package/dist/plain/format/formatRelativeDate.js +4 -4
  429. package/dist/plain/format/formatRelativeDateTime.d.ts +3 -3
  430. package/dist/plain/format/formatRelativeDateTime.js +4 -4
  431. package/dist/plain/format/formatRelativeTime.d.ts +3 -3
  432. package/dist/plain/format/formatRelativeTime.js +4 -4
  433. package/dist/plain/format/formatSqlDateTime.js +1 -1
  434. package/dist/plain/format/formatTime.d.ts +4 -4
  435. package/dist/plain/format/formatTime.js +8 -7
  436. package/dist/plain/get/getDay.js +1 -1
  437. package/dist/plain/get/getDayOfWeek.js +1 -1
  438. package/dist/plain/get/getHour.js +1 -1
  439. package/dist/plain/get/getMicrosecond.js +1 -1
  440. package/dist/plain/get/getMillisecond.js +1 -1
  441. package/dist/plain/get/getMinute.js +1 -1
  442. package/dist/plain/get/getMonth.js +1 -1
  443. package/dist/plain/get/getNanosecond.js +1 -1
  444. package/dist/plain/get/getNow.js +1 -1
  445. package/dist/plain/get/getNowUnit.js +1 -1
  446. package/dist/plain/get/getSecond.js +1 -1
  447. package/dist/plain/get/getToday.js +1 -1
  448. package/dist/plain/get/getWeekOfYear.js +1 -1
  449. package/dist/plain/get/getYear.js +1 -1
  450. package/dist/plain/index.d.ts +1 -1
  451. package/dist/plain/index.js +2 -2
  452. package/dist/plain/interval/intervalAbutsDate.d.ts +1 -2
  453. package/dist/plain/interval/intervalAbutsDate.js +2 -3
  454. package/dist/plain/interval/intervalAbutsDateTime.js +1 -1
  455. package/dist/plain/interval/intervalAbutsTime.js +1 -1
  456. package/dist/plain/interval/intervalContainsDate.d.ts +1 -1
  457. package/dist/plain/interval/intervalContainsDate.js +2 -2
  458. package/dist/plain/interval/intervalContainsDateTime.js +1 -1
  459. package/dist/plain/interval/intervalContainsTime.js +1 -1
  460. package/dist/plain/interval/intervalCountDate.js +1 -1
  461. package/dist/plain/interval/intervalCountDateTime.js +1 -1
  462. package/dist/plain/interval/intervalCountTime.js +1 -1
  463. package/dist/plain/interval/intervalDifferenceDate.d.ts +1 -1
  464. package/dist/plain/interval/intervalDifferenceDate.js +2 -2
  465. package/dist/plain/interval/intervalDifferenceDateTime.js +1 -1
  466. package/dist/plain/interval/intervalDifferenceTime.js +1 -1
  467. package/dist/plain/interval/intervalDivideEquallyDate.d.ts +3 -3
  468. package/dist/plain/interval/intervalDivideEquallyDate.js +3 -3
  469. package/dist/plain/interval/intervalDivideEquallyDateTime.js +1 -1
  470. package/dist/plain/interval/intervalDivideEquallyTime.js +1 -1
  471. package/dist/plain/interval/intervalEngulfsDate.d.ts +1 -1
  472. package/dist/plain/interval/intervalEngulfsDate.js +2 -2
  473. package/dist/plain/interval/intervalEngulfsDateTime.js +1 -1
  474. package/dist/plain/interval/intervalEngulfsTime.js +1 -1
  475. package/dist/plain/interval/intervalFromDurationDate.js +1 -1
  476. package/dist/plain/interval/intervalFromDurationDateTime.js +1 -1
  477. package/dist/plain/interval/intervalFromDurationTime.js +1 -1
  478. package/dist/plain/interval/intervalIntersectionDate.d.ts +1 -1
  479. package/dist/plain/interval/intervalIntersectionDate.js +2 -2
  480. package/dist/plain/interval/intervalIntersectionDateTime.js +1 -1
  481. package/dist/plain/interval/intervalIntersectionTime.js +1 -1
  482. package/dist/plain/interval/intervalLengthDateTime.js +1 -1
  483. package/dist/plain/interval/intervalLengthTime.js +1 -1
  484. package/dist/plain/interval/intervalOverlappingDaysDate.js +1 -1
  485. package/dist/plain/interval/intervalOverlappingDaysDateTime.js +1 -1
  486. package/dist/plain/interval/intervalSplitAtDate.d.ts +1 -1
  487. package/dist/plain/interval/intervalSplitAtDate.js +2 -2
  488. package/dist/plain/interval/intervalSplitAtDateTime.js +1 -1
  489. package/dist/plain/interval/intervalSplitAtTime.js +1 -1
  490. package/dist/plain/interval/intervalUnionDate.d.ts +2 -2
  491. package/dist/plain/interval/intervalUnionDate.js +3 -3
  492. package/dist/plain/interval/intervalUnionDateTime.js +1 -1
  493. package/dist/plain/interval/intervalUnionTime.js +1 -1
  494. package/dist/plain/interval/intervalXorAllDate.d.ts +1 -1
  495. package/dist/plain/interval/intervalXorAllDate.js +2 -2
  496. package/dist/plain/interval/intervalXorAllDateTime.js +1 -1
  497. package/dist/plain/interval/intervalXorAllTime.js +1 -1
  498. package/dist/plain/interval/intervalXorDate.d.ts +1 -1
  499. package/dist/plain/interval/intervalXorDate.js +2 -2
  500. package/dist/plain/interval/intervalXorDateTime.js +1 -1
  501. package/dist/plain/interval/intervalXorTime.js +1 -1
  502. package/dist/plain/interval/intervalsOverlapDate.d.ts +1 -1
  503. package/dist/plain/interval/intervalsOverlapDate.js +2 -2
  504. package/dist/plain/interval/intervalsOverlapDateTime.js +1 -1
  505. package/dist/plain/interval/intervalsOverlapTime.js +1 -1
  506. package/dist/plain/interval/mergeIntervalsDate.d.ts +1 -1
  507. package/dist/plain/interval/mergeIntervalsDate.js +2 -2
  508. package/dist/plain/interval/mergeIntervalsDateTime.js +1 -1
  509. package/dist/plain/interval/mergeIntervalsTime.js +1 -1
  510. package/dist/plain/interval/splitIntervalByUnitDate.d.ts +2 -3
  511. package/dist/plain/interval/splitIntervalByUnitDate.js +3 -4
  512. package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +2 -1
  513. package/dist/plain/interval/splitIntervalByUnitDateTime.js +3 -2
  514. package/dist/plain/interval/splitIntervalByUnitTime.js +1 -1
  515. package/dist/plain/interval/validate/isValidDateInterval.d.ts +1 -1
  516. package/dist/plain/interval/validate/isValidDateInterval.js +2 -2
  517. package/dist/plain/interval/validate/isValidDateTimeInterval.js +1 -1
  518. package/dist/plain/interval/validate/isValidTimeInterval.js +1 -1
  519. package/dist/plain/locale/getLocaleEraNames.d.ts +6 -6
  520. package/dist/plain/locale/getLocaleEraNames.js +8 -7
  521. package/dist/plain/locale/getLocaleMeridiems.d.ts +5 -5
  522. package/dist/plain/locale/getLocaleMeridiems.js +7 -6
  523. package/dist/plain/locale/getLocaleMonthNames.d.ts +6 -6
  524. package/dist/plain/locale/getLocaleMonthNames.js +17 -11
  525. package/dist/plain/locale/getLocaleWeekdayNames.d.ts +3 -3
  526. package/dist/plain/locale/getLocaleWeekdayNames.js +12 -5
  527. package/dist/plain/map/mapDatesInRange.js +1 -1
  528. package/dist/plain/map/mapDaysInMonth.js +1 -1
  529. package/dist/plain/parse/parseDateTimeWithPattern.d.ts +14 -13
  530. package/dist/plain/parse/parseDateTimeWithPattern.js +15 -14
  531. package/dist/plain/parse/parseDateWithPattern.d.ts +18 -17
  532. package/dist/plain/parse/parseDateWithPattern.js +19 -18
  533. package/dist/plain/parse/parseDayFromDate.js +1 -1
  534. package/dist/plain/parse/parseDayFromDateTime.js +1 -1
  535. package/dist/plain/parse/parseDayOfWeekFromDate.js +1 -1
  536. package/dist/plain/parse/parseDayOfWeekFromDateTime.js +1 -1
  537. package/dist/plain/parse/parseHourFromDateTime.js +1 -1
  538. package/dist/plain/parse/parseHourFromTime.js +1 -1
  539. package/dist/plain/parse/parseMicrosecondFromDateTime.js +1 -1
  540. package/dist/plain/parse/parseMicrosecondFromTime.js +1 -1
  541. package/dist/plain/parse/parseMillisecondFromDateTime.js +1 -1
  542. package/dist/plain/parse/parseMillisecondFromTime.js +1 -1
  543. package/dist/plain/parse/parseMinuteFromDateTime.js +1 -1
  544. package/dist/plain/parse/parseMinuteFromTime.js +1 -1
  545. package/dist/plain/parse/parseMonthFromDate.js +1 -1
  546. package/dist/plain/parse/parseMonthFromDateTime.js +1 -1
  547. package/dist/plain/parse/parseNanosecondFromDateTime.js +1 -1
  548. package/dist/plain/parse/parseNanosecondFromTime.js +1 -1
  549. package/dist/plain/parse/parseSecondFromDateTime.js +1 -1
  550. package/dist/plain/parse/parseSecondFromTime.js +1 -1
  551. package/dist/plain/parse/parseSqlDateTime.js +1 -1
  552. package/dist/plain/parse/parseTimeWithPattern.d.ts +6 -4
  553. package/dist/plain/parse/parseTimeWithPattern.js +7 -5
  554. package/dist/plain/parse/parseUnitFromDate.d.ts +1 -1
  555. package/dist/plain/parse/parseUnitFromDate.js +1 -1
  556. package/dist/plain/parse/parseUnitFromDateTime.d.ts +1 -1
  557. package/dist/plain/parse/parseUnitFromDateTime.js +1 -1
  558. package/dist/plain/parse/parseUnitFromTime.d.ts +1 -1
  559. package/dist/plain/parse/parseUnitFromTime.js +1 -1
  560. package/dist/plain/parse/parseWeekFromDateTime.js +1 -1
  561. package/dist/plain/parse/parseYearFromDate.js +1 -1
  562. package/dist/plain/parse/parseYearFromDateTime.js +1 -1
  563. package/dist/plain/validate/{isLeapSecond.d.ts → hasSecond60.d.ts} +16 -14
  564. package/dist/plain/validate/{isLeapSecond.js → hasSecond60.js} +16 -14
  565. package/dist/plain/validate/index.d.ts +1 -1
  566. package/dist/plain/validate/index.js +1 -1
  567. package/dist/plain/validate/isLeapYear.js +1 -1
  568. package/dist/plain/validate/isValidDate.js +2 -17
  569. package/dist/plain/validate/isValidDateRange.js +1 -1
  570. package/dist/plain/validate/isValidDateTime.d.ts +1 -1
  571. package/dist/plain/validate/isValidDateTime.js +4 -4
  572. package/dist/plain/validate/isValidDateTimeRange.js +1 -1
  573. package/dist/plain/validate/isValidIsoDateLike.js +3 -3
  574. package/dist/plain/validate/isValidTime.js +2 -18
  575. package/dist/plain/validate/isValidTimeRange.js +1 -1
  576. package/dist/precision/convert/fromNanoseconds.d.ts +2 -2
  577. package/dist/precision/convert/fromNanoseconds.js +3 -3
  578. package/dist/precision/convert/toNanoseconds.d.ts +2 -2
  579. package/dist/precision/convert/toNanoseconds.js +2 -2
  580. package/dist/precision/index.d.ts +1 -1
  581. package/dist/precision/index.js +2 -2
  582. package/dist/precision/validate/isValidInstant.d.ts +1 -1
  583. package/dist/precision/validate/isValidInstant.js +1 -1
  584. package/dist/regex/calendar-zoned-date-time.d.ts +4 -4
  585. package/dist/regex/calendar-zoned-date-time.js +4 -4
  586. package/dist/regex/index.d.ts +1 -1
  587. package/dist/regex/index.js +2 -2
  588. package/dist/regex/leap-second.d.ts +1 -1
  589. package/dist/regex/leap-second.js +1 -1
  590. package/dist/regex/time-zone-like.d.ts +2 -2
  591. package/dist/regex/time-zone-like.js +2 -2
  592. package/dist/span/calculate/spanMs.d.ts +4 -3
  593. package/dist/span/calculate/spanMs.js +4 -3
  594. package/dist/span/calculate/spanNs.d.ts +4 -3
  595. package/dist/span/calculate/spanNs.js +4 -3
  596. package/dist/span/calculate/spanWallClock.d.ts +12 -12
  597. package/dist/span/calculate/spanWallClock.js +13 -13
  598. package/dist/span/index.d.ts +1 -1
  599. package/dist/span/index.js +2 -2
  600. package/dist/span/validate/isValidSpan.d.ts +3 -3
  601. package/dist/span/validate/isValidSpan.js +3 -3
  602. package/dist/timescale/calculate/index.d.ts +3 -0
  603. package/dist/timescale/calculate/index.js +3 -0
  604. package/dist/timescale/calculate/leapSecondsBetween.d.ts +26 -0
  605. package/dist/timescale/calculate/leapSecondsBetween.js +62 -0
  606. package/dist/timescale/calculate/nextLeapSecond.d.ts +18 -0
  607. package/dist/timescale/calculate/nextLeapSecond.js +33 -0
  608. package/dist/timescale/calculate/taiMinusUtc.d.ts +21 -0
  609. package/dist/timescale/calculate/taiMinusUtc.js +38 -0
  610. package/dist/timescale/convert/fromTAI.d.ts +22 -0
  611. package/dist/timescale/convert/fromTAI.js +35 -0
  612. package/dist/timescale/convert/index.d.ts +2 -0
  613. package/dist/timescale/convert/index.js +2 -0
  614. package/dist/timescale/convert/toTAI.d.ts +23 -0
  615. package/dist/timescale/convert/toTAI.js +39 -0
  616. package/dist/timescale/index.d.ts +4 -0
  617. package/dist/timescale/index.js +5 -0
  618. package/dist/timescale/validate/index.d.ts +1 -0
  619. package/dist/timescale/validate/index.js +1 -0
  620. package/dist/timescale/validate/isLeapSecond.d.ts +25 -0
  621. package/dist/timescale/validate/isLeapSecond.js +36 -0
  622. package/dist/transport/calculate/crossingTime.d.ts +2 -2
  623. package/dist/transport/calculate/crossingTime.js +3 -3
  624. package/dist/transport/calculate/cutoffAt.d.ts +4 -4
  625. package/dist/transport/calculate/cutoffAt.js +24 -133
  626. package/dist/transport/calculate/cutoffSchedule.d.ts +2 -2
  627. package/dist/transport/calculate/cutoffSchedule.js +52 -20
  628. package/dist/transport/calculate/dwellTime.d.ts +3 -3
  629. package/dist/transport/calculate/dwellTime.js +4 -4
  630. package/dist/transport/calculate/estimateDrift.d.ts +1 -1
  631. package/dist/transport/calculate/estimateDrift.js +1 -1
  632. package/dist/transport/calculate/nextDeparture.d.ts +2 -2
  633. package/dist/transport/calculate/nextDeparture.js +2 -2
  634. package/dist/transport/calculate/scheduleDelivery.d.ts +2 -2
  635. package/dist/transport/calculate/scheduleDelivery.js +3 -3
  636. package/dist/transport/calculate/transitTime.d.ts +11 -11
  637. package/dist/transport/calculate/transitTime.js +11 -11
  638. package/dist/transport/compare/classifyPunctuality.d.ts +1 -1
  639. package/dist/transport/compare/classifyPunctuality.js +1 -1
  640. package/dist/transport/compare/isPastCutoff.d.ts +1 -1
  641. package/dist/transport/compare/isPastCutoff.js +2 -2
  642. package/dist/transport/compare/scheduleDeviation.d.ts +1 -1
  643. package/dist/transport/compare/scheduleDeviation.js +1 -1
  644. package/dist/transport/compare/timeToCutoff.d.ts +1 -1
  645. package/dist/transport/compare/timeToCutoff.js +1 -1
  646. package/dist/transport/convert/etaAtZone.d.ts +2 -2
  647. package/dist/transport/convert/etaAtZone.js +2 -2
  648. package/dist/transport/index.d.ts +1 -1
  649. package/dist/transport/index.js +2 -2
  650. package/dist/types/date-duration-unit.d.ts +1 -1
  651. package/dist/types/date-time-duration-units.d.ts +1 -1
  652. package/dist/types/date-time-unit.d.ts +1 -1
  653. package/dist/types/date-unit.d.ts +1 -1
  654. package/dist/types/disambiguation.d.ts +1 -1
  655. package/dist/types/duration-relative-to.d.ts +1 -1
  656. package/dist/types/duration-string-options.d.ts +1 -1
  657. package/dist/types/exact-duration-unit.d.ts +1 -1
  658. package/dist/types/fiscal-calendar.d.ts +40 -4
  659. package/dist/types/gnss.d.ts +51 -0
  660. package/dist/types/gnss.js +0 -0
  661. package/dist/types/index.d.ts +2 -0
  662. package/dist/types/index.js +2 -0
  663. package/dist/types/now-unit.d.ts +1 -1
  664. package/dist/types/offset.d.ts +1 -1
  665. package/dist/types/overflow.d.ts +1 -1
  666. package/dist/types/rounding-options.d.ts +1 -1
  667. package/dist/types/stored-zoned-classification.d.ts +83 -0
  668. package/dist/types/stored-zoned-classification.js +0 -0
  669. package/dist/types/time-duration-unit.d.ts +1 -1
  670. package/dist/types/time-unit.d.ts +1 -1
  671. package/dist/types/utc-now-unit.d.ts +1 -1
  672. package/dist/unix/calculate/diffUnix.d.ts +1 -1
  673. package/dist/unix/calculate/diffUnixAsDuration.d.ts +1 -1
  674. package/dist/unix/calculate/endOfUnix.d.ts +2 -2
  675. package/dist/unix/calculate/endOfUnix.js +1 -1
  676. package/dist/unix/calculate/isBetweenUnix.js +1 -1
  677. package/dist/unix/calculate/roundUnix.d.ts +7 -5
  678. package/dist/unix/calculate/roundUnix.js +6 -4
  679. package/dist/unix/calculate/setUnix.d.ts +3 -3
  680. package/dist/unix/calculate/setUnix.js +2 -2
  681. package/dist/unix/calculate/startOfUnix.d.ts +2 -2
  682. package/dist/unix/calculate/startOfUnix.js +1 -1
  683. package/dist/unix/compare/areUnixEqualBy.d.ts +6 -6
  684. package/dist/unix/compare/areUnixEqualBy.js +5 -5
  685. package/dist/unix/convert/convertUnixToPlainTime.d.ts +1 -1
  686. package/dist/unix/convert/convertUnixToPlainTime.js +1 -1
  687. package/dist/unix/convert/convertUnixToZoned.d.ts +1 -1
  688. package/dist/unix/convert/convertUnixToZoned.js +1 -1
  689. package/dist/unix/format/formatCalendarUnix.d.ts +10 -9
  690. package/dist/unix/format/formatCalendarUnix.js +6 -6
  691. package/dist/unix/format/formatRelativeUnix.d.ts +7 -7
  692. package/dist/unix/format/formatRelativeUnix.js +7 -7
  693. package/dist/unix/format/formatUnix.d.ts +9 -9
  694. package/dist/unix/format/formatUnix.js +9 -9
  695. package/dist/unix/get/getUnixDay.js +1 -1
  696. package/dist/unix/get/getUnixHour.js +1 -1
  697. package/dist/unix/get/getUnixMicrosecond.js +1 -1
  698. package/dist/unix/get/getUnixMillisecond.js +1 -1
  699. package/dist/unix/get/getUnixMinute.js +1 -1
  700. package/dist/unix/get/getUnixMonth.js +1 -1
  701. package/dist/unix/get/getUnixNanosecond.js +1 -1
  702. package/dist/unix/get/getUnixNow.js +1 -1
  703. package/dist/unix/get/getUnixNowUnit.d.ts +1 -1
  704. package/dist/unix/get/getUnixNowUnit.js +1 -1
  705. package/dist/unix/get/getUnixSecond.js +1 -1
  706. package/dist/unix/get/getUnixYear.js +1 -1
  707. package/dist/unix/index.d.ts +1 -1
  708. package/dist/unix/index.js +2 -2
  709. package/dist/unix/interval/intervalFromDurationUnix.js +1 -1
  710. package/dist/unix/interval/intervalLengthUnix.d.ts +2 -2
  711. package/dist/unix/interval/intervalLengthUnix.js +2 -2
  712. package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +3 -2
  713. package/dist/unix/interval/splitIntervalByUnitUnix.js +4 -3
  714. package/dist/unix/parse/parseUnitFromUnix.d.ts +1 -1
  715. package/dist/utc/calculate/addUtc.js +1 -1
  716. package/dist/utc/calculate/diffUtc.d.ts +1 -1
  717. package/dist/utc/calculate/diffUtc.js +1 -1
  718. package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
  719. package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
  720. package/dist/utc/calculate/endOfQuarterForUtc.js +1 -1
  721. package/dist/utc/calculate/endOfUtc.d.ts +1 -1
  722. package/dist/utc/calculate/isBetweenUtc.js +1 -1
  723. package/dist/utc/calculate/maxUtc.js +1 -1
  724. package/dist/utc/calculate/minUtc.js +1 -1
  725. package/dist/utc/calculate/roundUtc.d.ts +1 -1
  726. package/dist/utc/calculate/roundUtc.js +1 -1
  727. package/dist/utc/calculate/setUtc.d.ts +1 -1
  728. package/dist/utc/calculate/setUtc.js +1 -1
  729. package/dist/utc/calculate/sortUtc.js +1 -1
  730. package/dist/utc/calculate/startOfQuarterForUtc.js +1 -1
  731. package/dist/utc/calculate/startOfUtc.d.ts +1 -1
  732. package/dist/utc/calculate/subtractUtc.js +1 -1
  733. package/dist/utc/compare/areUtcEqual.js +1 -1
  734. package/dist/utc/compare/areUtcEqualBy.d.ts +2 -2
  735. package/dist/utc/compare/areUtcEqualBy.js +2 -2
  736. package/dist/utc/compare/isAfterUtc.js +1 -1
  737. package/dist/utc/compare/isBeforeUtc.js +1 -1
  738. package/dist/utc/convert/convertUtcToPlainDate.d.ts +1 -1
  739. package/dist/utc/convert/convertUtcToPlainDate.js +2 -2
  740. package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +1 -1
  741. package/dist/utc/convert/convertUtcToPlainDateTime.js +2 -2
  742. package/dist/utc/convert/convertUtcToPlainTime.d.ts +1 -1
  743. package/dist/utc/convert/convertUtcToPlainTime.js +2 -2
  744. package/dist/utc/convert/convertUtcToUnix.js +1 -1
  745. package/dist/utc/convert/convertUtcToZoned.d.ts +1 -1
  746. package/dist/utc/convert/convertUtcToZoned.js +2 -2
  747. package/dist/utc/format/formatCalendarUtc.d.ts +6 -5
  748. package/dist/utc/format/formatCalendarUtc.js +3 -3
  749. package/dist/utc/format/formatHttpDate.js +1 -1
  750. package/dist/utc/format/formatRelativeUtc.d.ts +5 -5
  751. package/dist/utc/format/formatRelativeUtc.js +5 -5
  752. package/dist/utc/format/formatUtc.d.ts +8 -8
  753. package/dist/utc/format/formatUtc.js +8 -8
  754. package/dist/utc/get/getUtcDay.js +1 -1
  755. package/dist/utc/get/getUtcHour.js +1 -1
  756. package/dist/utc/get/getUtcMicrosecond.js +1 -1
  757. package/dist/utc/get/getUtcMillisecond.js +1 -1
  758. package/dist/utc/get/getUtcMinute.js +1 -1
  759. package/dist/utc/get/getUtcMonth.js +1 -1
  760. package/dist/utc/get/getUtcNanosecond.js +1 -1
  761. package/dist/utc/get/getUtcNow.js +1 -1
  762. package/dist/utc/get/getUtcNowUnit.js +1 -1
  763. package/dist/utc/get/getUtcSecond.js +1 -1
  764. package/dist/utc/get/getUtcYear.js +1 -1
  765. package/dist/utc/index.d.ts +1 -1
  766. package/dist/utc/index.js +2 -2
  767. package/dist/utc/interval/intervalAbutsUtc.js +1 -1
  768. package/dist/utc/interval/intervalContainsUtc.js +1 -1
  769. package/dist/utc/interval/intervalCountUtc.js +1 -1
  770. package/dist/utc/interval/intervalDivideEquallyUtc.js +1 -1
  771. package/dist/utc/interval/intervalEngulfsUtc.js +1 -1
  772. package/dist/utc/interval/intervalFromDurationUtc.js +1 -1
  773. package/dist/utc/interval/intervalLengthUtc.js +1 -1
  774. package/dist/utc/interval/intervalOverlappingDaysUtc.js +1 -1
  775. package/dist/utc/interval/intervalSplitAtUtc.js +1 -1
  776. package/dist/utc/interval/intervalXorAllUtc.js +1 -1
  777. package/dist/utc/interval/intervalXorUtc.js +1 -1
  778. package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +2 -1
  779. package/dist/utc/interval/splitIntervalByUnitUtc.js +3 -2
  780. package/dist/utc/interval/validate/isValidUtcInterval.js +1 -1
  781. package/dist/utc/parse/parseDateFromUtc.d.ts +1 -1
  782. package/dist/utc/parse/parseDateFromUtc.js +1 -1
  783. package/dist/utc/parse/parseDayFromUtc.d.ts +1 -1
  784. package/dist/utc/parse/parseDayFromUtc.js +1 -1
  785. package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +1 -1
  786. package/dist/utc/parse/parseDayOfWeekFromUtc.js +2 -2
  787. package/dist/utc/parse/parseHourFromUtc.d.ts +1 -1
  788. package/dist/utc/parse/parseHourFromUtc.js +1 -1
  789. package/dist/utc/parse/parseHttpDate.js +1 -1
  790. package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +1 -1
  791. package/dist/utc/parse/parseMicrosecondFromUtc.js +1 -1
  792. package/dist/utc/parse/parseMillisecondFromUtc.d.ts +1 -1
  793. package/dist/utc/parse/parseMillisecondFromUtc.js +1 -1
  794. package/dist/utc/parse/parseMonthFromUtc.d.ts +1 -1
  795. package/dist/utc/parse/parseMonthFromUtc.js +1 -1
  796. package/dist/utc/parse/parseNanosecondFromUtc.d.ts +1 -1
  797. package/dist/utc/parse/parseNanosecondFromUtc.js +1 -1
  798. package/dist/utc/parse/parseSecondFromUtc.d.ts +1 -1
  799. package/dist/utc/parse/parseSecondFromUtc.js +1 -1
  800. package/dist/utc/parse/parseTimeFromUtc.d.ts +1 -1
  801. package/dist/utc/parse/parseTimeFromUtc.js +2 -2
  802. package/dist/utc/parse/parseUnitFromUtc.d.ts +2 -2
  803. package/dist/utc/parse/parseUnitFromUtc.js +2 -2
  804. package/dist/utc/parse/parseWeekFromUtc.d.ts +1 -1
  805. package/dist/utc/parse/parseWeekFromUtc.js +2 -2
  806. package/dist/utc/parse/parseYearFromUtc.d.ts +1 -1
  807. package/dist/utc/parse/parseYearFromUtc.js +1 -1
  808. package/dist/utc/validate/isValidUtc.js +3 -3
  809. package/dist/utc/validate/isValidUtcRange.js +1 -1
  810. package/dist/{duty → workforce}/calculate/dutyDayFor.js +1 -1
  811. package/dist/{duty → workforce}/calculate/evaluateDutyLog.js +1 -1
  812. package/dist/{duty → workforce}/calculate/longestRun.js +1 -1
  813. package/dist/{duty → workforce}/calculate/qualifyingRestPairs.js +1 -1
  814. package/dist/{duty → workforce}/calculate/qualifyingRests.js +1 -1
  815. package/dist/workforce/index.d.ts +3 -0
  816. package/dist/workforce/index.js +4 -0
  817. package/dist/{duty → workforce}/validate/isValidDutyLog.d.ts +2 -2
  818. package/dist/{duty → workforce}/validate/isValidDutyLog.js +2 -2
  819. package/dist/zoned/calculate/addZoned.d.ts +15 -15
  820. package/dist/zoned/calculate/addZoned.js +15 -15
  821. package/dist/zoned/calculate/addZonedBusinessDays.d.ts +5 -4
  822. package/dist/zoned/calculate/addZonedBusinessDays.js +5 -4
  823. package/dist/zoned/calculate/clampZoned.js +1 -1
  824. package/dist/zoned/calculate/diffZoned.d.ts +8 -8
  825. package/dist/zoned/calculate/diffZoned.js +7 -7
  826. package/dist/zoned/calculate/diffZonedAsDuration.d.ts +5 -5
  827. package/dist/zoned/calculate/diffZonedAsDuration.js +4 -4
  828. package/dist/zoned/calculate/endOfZoned.d.ts +3 -3
  829. package/dist/zoned/calculate/endOfZoned.js +2 -2
  830. package/dist/zoned/calculate/getHoursInZonedDay.d.ts +2 -2
  831. package/dist/zoned/calculate/getHoursInZonedDay.js +2 -2
  832. package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +6 -5
  833. package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +6 -5
  834. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +5 -5
  835. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -5
  836. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +6 -6
  837. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +6 -6
  838. package/dist/zoned/calculate/maxZoned.d.ts +2 -2
  839. package/dist/zoned/calculate/maxZoned.js +3 -3
  840. package/dist/zoned/calculate/minZoned.d.ts +2 -2
  841. package/dist/zoned/calculate/minZoned.js +3 -3
  842. package/dist/zoned/calculate/roundZoned.d.ts +11 -9
  843. package/dist/zoned/calculate/roundZoned.js +11 -9
  844. package/dist/zoned/calculate/setZoned.d.ts +8 -8
  845. package/dist/zoned/calculate/setZoned.js +8 -8
  846. package/dist/zoned/calculate/sortZoned.d.ts +3 -3
  847. package/dist/zoned/calculate/sortZoned.js +4 -4
  848. package/dist/zoned/calculate/startOfZoned.d.ts +3 -3
  849. package/dist/zoned/calculate/startOfZoned.js +2 -2
  850. package/dist/zoned/calculate/subtractZoned.d.ts +14 -14
  851. package/dist/zoned/calculate/subtractZoned.js +14 -14
  852. package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +5 -4
  853. package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -4
  854. package/dist/zoned/chop/chopZonedDate.d.ts +1 -1
  855. package/dist/zoned/chop/chopZonedDate.js +1 -1
  856. package/dist/zoned/chop/chopZonedMilliseconds.d.ts +1 -1
  857. package/dist/zoned/chop/chopZonedMilliseconds.js +1 -1
  858. package/dist/zoned/chop/chopZonedSeconds.d.ts +1 -1
  859. package/dist/zoned/chop/chopZonedSeconds.js +1 -1
  860. package/dist/zoned/chop/chopZonedTime.d.ts +1 -1
  861. package/dist/zoned/chop/chopZonedTime.js +1 -1
  862. package/dist/zoned/chop/chopZonedTimezone.d.ts +1 -1
  863. package/dist/zoned/chop/chopZonedTimezone.js +1 -1
  864. package/dist/zoned/classify/classifyStoredZoned.d.ts +46 -0
  865. package/dist/zoned/classify/classifyStoredZoned.js +177 -0
  866. package/dist/zoned/classify/index.d.ts +1 -0
  867. package/dist/zoned/classify/index.js +1 -0
  868. package/dist/zoned/compare/areZonedEqual.js +1 -1
  869. package/dist/zoned/compare/areZonedEqualBy.d.ts +8 -10
  870. package/dist/zoned/compare/areZonedEqualBy.js +8 -10
  871. package/dist/zoned/compare/isAfterZoned.js +1 -1
  872. package/dist/zoned/compare/isBeforeZoned.d.ts +2 -2
  873. package/dist/zoned/compare/isBeforeZoned.js +3 -3
  874. package/dist/zoned/compare/isBetweenZoned.js +1 -1
  875. package/dist/zoned/compare/isInDaylightSaving.d.ts +2 -2
  876. package/dist/zoned/compare/isInDaylightSaving.js +2 -2
  877. package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -6
  878. package/dist/zoned/compare/isZonedBusinessDay.js +7 -6
  879. package/dist/zoned/compare/isZonedFuture.js +1 -1
  880. package/dist/zoned/compare/isZonedPast.js +1 -1
  881. package/dist/zoned/compare/isZonedRelativeDay.d.ts +2 -2
  882. package/dist/zoned/compare/isZonedRelativeDay.js +3 -3
  883. package/dist/zoned/compare/isZonedThisUnit.d.ts +7 -7
  884. package/dist/zoned/compare/isZonedThisUnit.js +7 -7
  885. package/dist/zoned/compare/isZonedWeekend.d.ts +5 -5
  886. package/dist/zoned/compare/isZonedWeekend.js +5 -5
  887. package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +6 -6
  888. package/dist/zoned/convert/convertPlainDateTimeToZoned.js +6 -6
  889. package/dist/zoned/convert/convertZonedToCalendar.d.ts +5 -5
  890. package/dist/zoned/convert/convertZonedToCalendar.js +5 -5
  891. package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +3 -3
  892. package/dist/zoned/convert/convertZonedToPlainDateTime.js +3 -3
  893. package/dist/zoned/convert/convertZonedToZoned.d.ts +2 -2
  894. package/dist/zoned/convert/convertZonedToZoned.js +2 -2
  895. package/dist/zoned/format/formatCalendarZoned.d.ts +7 -6
  896. package/dist/zoned/format/formatCalendarZoned.js +5 -5
  897. package/dist/zoned/format/formatRelativeZoned.d.ts +3 -3
  898. package/dist/zoned/format/formatRelativeZoned.js +4 -4
  899. package/dist/zoned/format/formatRfc2822.d.ts +3 -3
  900. package/dist/zoned/format/formatRfc2822.js +3 -3
  901. package/dist/zoned/format/formatRfc3339.d.ts +2 -2
  902. package/dist/zoned/format/formatRfc3339.js +2 -2
  903. package/dist/zoned/format/formatTimeZoneName.d.ts +17 -17
  904. package/dist/zoned/format/formatTimeZoneName.js +13 -12
  905. package/dist/zoned/format/formatZonedDateTime.d.ts +10 -10
  906. package/dist/zoned/format/formatZonedDateTime.js +12 -11
  907. package/dist/zoned/format/formatZonedRange.d.ts +7 -7
  908. package/dist/zoned/format/formatZonedRange.js +9 -8
  909. package/dist/zoned/format/formatZonedToParts.d.ts +11 -11
  910. package/dist/zoned/format/formatZonedToParts.js +13 -12
  911. package/dist/zoned/get/getDstTransitions.d.ts +9 -9
  912. package/dist/zoned/get/getDstTransitions.js +3 -3
  913. package/dist/zoned/get/getSystemTimeZone.d.ts +2 -2
  914. package/dist/zoned/get/getSystemTimeZone.js +2 -2
  915. package/dist/zoned/get/getTimeZoneOffset.d.ts +5 -5
  916. package/dist/zoned/get/getTimeZoneOffset.js +5 -5
  917. package/dist/zoned/get/getTimeZones.d.ts +1 -1
  918. package/dist/zoned/get/getTimeZones.js +1 -1
  919. package/dist/zoned/get/getZonedDay.d.ts +1 -1
  920. package/dist/zoned/get/getZonedDay.js +1 -1
  921. package/dist/zoned/get/getZonedDayOfWeek.d.ts +1 -1
  922. package/dist/zoned/get/getZonedDayOfWeek.js +1 -1
  923. package/dist/zoned/get/getZonedHour.d.ts +1 -1
  924. package/dist/zoned/get/getZonedHour.js +1 -1
  925. package/dist/zoned/get/getZonedMicrosecond.d.ts +1 -1
  926. package/dist/zoned/get/getZonedMicrosecond.js +1 -1
  927. package/dist/zoned/get/getZonedMillisecond.d.ts +1 -1
  928. package/dist/zoned/get/getZonedMillisecond.js +1 -1
  929. package/dist/zoned/get/getZonedMinute.d.ts +1 -1
  930. package/dist/zoned/get/getZonedMinute.js +1 -1
  931. package/dist/zoned/get/getZonedMonth.d.ts +1 -1
  932. package/dist/zoned/get/getZonedMonth.js +1 -1
  933. package/dist/zoned/get/getZonedNanosecond.d.ts +1 -1
  934. package/dist/zoned/get/getZonedNanosecond.js +1 -1
  935. package/dist/zoned/get/getZonedNow.d.ts +4 -4
  936. package/dist/zoned/get/getZonedNow.js +4 -4
  937. package/dist/zoned/get/getZonedNowUnit.d.ts +2 -2
  938. package/dist/zoned/get/getZonedNowUnit.js +1 -1
  939. package/dist/zoned/get/getZonedSecond.d.ts +1 -1
  940. package/dist/zoned/get/getZonedSecond.js +1 -1
  941. package/dist/zoned/get/getZonedToday.d.ts +1 -1
  942. package/dist/zoned/get/getZonedToday.js +1 -1
  943. package/dist/zoned/get/getZonedWeekOfYear.d.ts +1 -1
  944. package/dist/zoned/get/getZonedWeekOfYear.js +1 -1
  945. package/dist/zoned/get/getZonedYear.d.ts +1 -1
  946. package/dist/zoned/get/getZonedYear.js +1 -1
  947. package/dist/zoned/index.d.ts +2 -1
  948. package/dist/zoned/index.js +3 -2
  949. package/dist/zoned/interval/intervalAbutsZoned.d.ts +2 -2
  950. package/dist/zoned/interval/intervalAbutsZoned.js +3 -3
  951. package/dist/zoned/interval/intervalContainsZoned.d.ts +1 -1
  952. package/dist/zoned/interval/intervalContainsZoned.js +2 -2
  953. package/dist/zoned/interval/intervalCountZoned.d.ts +4 -4
  954. package/dist/zoned/interval/intervalCountZoned.js +5 -5
  955. package/dist/zoned/interval/intervalDifferenceZoned.js +1 -1
  956. package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +1 -1
  957. package/dist/zoned/interval/intervalDivideEquallyZoned.js +2 -2
  958. package/dist/zoned/interval/intervalEngulfsZoned.d.ts +1 -1
  959. package/dist/zoned/interval/intervalEngulfsZoned.js +2 -2
  960. package/dist/zoned/interval/intervalFromDurationZoned.d.ts +6 -6
  961. package/dist/zoned/interval/intervalFromDurationZoned.js +7 -7
  962. package/dist/zoned/interval/intervalIntersectionZoned.js +1 -1
  963. package/dist/zoned/interval/intervalLengthZoned.d.ts +5 -5
  964. package/dist/zoned/interval/intervalLengthZoned.js +5 -5
  965. package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +2 -2
  966. package/dist/zoned/interval/intervalOverlappingDaysZoned.js +3 -3
  967. package/dist/zoned/interval/intervalSplitAtZoned.js +14 -16
  968. package/dist/zoned/interval/intervalUnionZoned.js +1 -1
  969. package/dist/zoned/interval/intervalXorAllZoned.js +1 -1
  970. package/dist/zoned/interval/intervalXorZoned.js +1 -1
  971. package/dist/zoned/interval/intervalsOverlapZoned.d.ts +2 -2
  972. package/dist/zoned/interval/intervalsOverlapZoned.js +3 -3
  973. package/dist/zoned/interval/mergeIntervalsZoned.js +1 -1
  974. package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +2 -1
  975. package/dist/zoned/interval/splitIntervalByUnitZoned.js +3 -2
  976. package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +2 -2
  977. package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +3 -3
  978. package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +1 -1
  979. package/dist/zoned/interval/validate/isValidZonedInterval.js +2 -2
  980. package/dist/zoned/map/mapZonedDatesInRange.js +1 -1
  981. package/dist/zoned/map/mapZonedHoursInDay.d.ts +1 -1
  982. package/dist/zoned/map/mapZonedHoursInDay.js +2 -2
  983. package/dist/zoned/parse/getZonedOffset.d.ts +1 -1
  984. package/dist/zoned/parse/getZonedOffset.js +1 -1
  985. package/dist/zoned/parse/getZonedOffsetAs.d.ts +6 -6
  986. package/dist/zoned/parse/getZonedOffsetAs.js +3 -3
  987. package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
  988. package/dist/zoned/parse/parseRfc2822.js +1 -1
  989. package/dist/zoned/parse/parseRfc3339.js +1 -1
  990. package/dist/zoned/parse/parseUnitFromZoned.d.ts +1 -1
  991. package/dist/zoned/validate/hasDaylightSaving.d.ts +2 -2
  992. package/dist/zoned/validate/hasDaylightSaving.js +3 -3
  993. package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +8 -8
  994. package/dist/zoned/validate/isValidCalendarZonedDateTime.js +8 -8
  995. package/dist/zoned/validate/isValidTimeZone.d.ts +1 -1
  996. package/dist/zoned/validate/isValidTimeZone.js +3 -18
  997. package/dist/zoned/validate/isValidZonedDateTime.d.ts +7 -7
  998. package/dist/zoned/validate/isValidZonedDateTime.js +9 -9
  999. package/dist/zoned/validate/isValidZonedRange.d.ts +1 -1
  1000. package/dist/zoned/validate/isValidZonedRange.js +5 -5
  1001. package/package.json +71 -21
  1002. package/skills/gmt-arithmetic/SKILL.md +18 -59
  1003. package/skills/gmt-basics/SKILL.md +32 -12
  1004. package/skills/gmt-gnss/SKILL.md +92 -0
  1005. package/skills/gmt-integration/SKILL.md +48 -15
  1006. package/skills/gmt-intermodal/SKILL.md +189 -0
  1007. package/skills/gmt-timezone/SKILL.md +34 -257
  1008. package/skills/gmt-transport/SKILL.md +133 -0
  1009. package/skills/gmt-workforce/SKILL.md +84 -0
  1010. package/dist/duty/index.d.ts +0 -3
  1011. package/dist/duty/index.js +0 -4
  1012. /package/dist/{duty → workforce}/calculate/dutyDayFor.d.ts +0 -0
  1013. /package/dist/{duty → workforce}/calculate/dutyTotals.d.ts +0 -0
  1014. /package/dist/{duty → workforce}/calculate/dutyTotals.js +0 -0
  1015. /package/dist/{duty → workforce}/calculate/dutyViolations.d.ts +0 -0
  1016. /package/dist/{duty → workforce}/calculate/dutyViolations.js +0 -0
  1017. /package/dist/{duty → workforce}/calculate/evaluateDutyLog.d.ts +0 -0
  1018. /package/dist/{duty → workforce}/calculate/index.d.ts +0 -0
  1019. /package/dist/{duty → workforce}/calculate/index.js +0 -0
  1020. /package/dist/{duty → workforce}/calculate/longestRun.d.ts +0 -0
  1021. /package/dist/{duty → workforce}/calculate/qualifyingRestPairs.d.ts +0 -0
  1022. /package/dist/{duty → workforce}/calculate/qualifyingRests.d.ts +0 -0
  1023. /package/dist/{duty → workforce}/validate/index.d.ts +0 -0
  1024. /package/dist/{duty → workforce}/validate/index.js +0 -0
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  // Convert a UTC ISO datetime string to a Temporal.Instant.
3
3
  // Returns null on failure (caller should have already validated with isValidUtc).
4
4
  export function toInstantFromUtc(value) {
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  /** The two units a Unix epoch value is expressed in. */
3
3
  export type UnixEpochUnit = "seconds" | "milliseconds";
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import { MAX_EPOCH_NANOSECONDS } from "./epochNanoseconds.js";
3
3
  import { isObject } from "./isObject.js";
4
4
  // TC39 Temporal IsValidEpochNanoseconds bound (nsMaxInstant = 10^8 days) in milliseconds: 8.64e15.
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import { type UnixEpochUnit } from "./unixEpochValue.js";
3
3
  /**
4
4
  * Resolve the `reference` option of the unix formatters to an instant.
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import { isValidUtc } from "../utc/validate/isValidUtc.js";
3
3
  import { unixEpochToInstant } from "./unixEpochValue.js";
4
4
  /**
@@ -1,4 +1,4 @@
1
- import type { Temporal } from "@js-temporal/polyfill";
1
+ import type { Temporal } from "./temporal.js";
2
2
  /**
3
3
  * Read a Unix epoch argument on the local wall clock of the shared `unix/` options, or null when
4
4
  * anything is invalid. For the `parse*FromUnix` accessors, which only read fields.
@@ -1,3 +1,4 @@
1
+ import { Temporal } from "./temporal.js";
1
2
  /**
2
3
  * Parse a `±HH:MM[:SS]` UTC offset to the nanoseconds local time runs ahead of UTC.
3
4
  *
@@ -37,3 +38,18 @@ export declare function parseUtcOffsetNanoseconds(offset: string): bigint | null
37
38
  * @example formatUtcOffset(1n) // null — finer than a second
38
39
  */
39
40
  export declare function formatUtcOffset(offsetNanoseconds: bigint): string | null;
41
+ /**
42
+ * The offset an instant string's own digits were written in, recovered without slicing them.
43
+ *
44
+ * Recovers the offset written in the body from the distance between two wall clocks: the digits
45
+ * as written, and the same instant read in UTC. A `Z` or `z` body is written in UTC, so its offset is
46
+ * `+00:00`.
47
+ *
48
+ * @param instant the instant `body` names
49
+ * @param body the ISO 8601 string with any bracketed annotations removed (`isoStringBody`)
50
+ * @returns the written offset as `±HH:MM[:SS]`, or null when it is finer than a second
51
+ *
52
+ * @example writtenOffset(Temporal.Instant.from("2024-07-15T12:00:00+05:30"), "2024-07-15T12:00:00+05:30") // "+05:30"
53
+ * @example writtenOffset(Temporal.Instant.from("2024-07-15T12:00:00Z"), "2024-07-15T12:00:00Z") // "+00:00"
54
+ */
55
+ export declare function writtenOffset(instant: Temporal.Instant, body: string): string | null;
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import { utcOffset } from "../regex/utc-offset.js";
3
3
  const NANOSECONDS_PER_SECOND = 1000000000n;
4
4
  const SECONDS_PER_MINUTE = 60n;
@@ -73,3 +73,33 @@ export function formatUtcOffset(offsetNanoseconds) {
73
73
  ? `${sign}${padTwo(hours)}:${padTwo(minutes)}`
74
74
  : `${sign}${padTwo(hours)}:${padTwo(minutes)}:${padTwo(seconds)}`;
75
75
  }
76
+ /**
77
+ * The offset an instant string's own digits were written in, recovered without slicing them.
78
+ *
79
+ * Recovers the offset written in the body from the distance between two wall clocks: the digits
80
+ * as written, and the same instant read in UTC. A `Z` or `z` body is written in UTC, so its offset is
81
+ * `+00:00`.
82
+ *
83
+ * @param instant the instant `body` names
84
+ * @param body the ISO 8601 string with any bracketed annotations removed (`isoStringBody`)
85
+ * @returns the written offset as `±HH:MM[:SS]`, or null when it is finer than a second
86
+ *
87
+ * @example writtenOffset(Temporal.Instant.from("2024-07-15T12:00:00+05:30"), "2024-07-15T12:00:00+05:30") // "+05:30"
88
+ * @example writtenOffset(Temporal.Instant.from("2024-07-15T12:00:00Z"), "2024-07-15T12:00:00Z") // "+00:00"
89
+ */
90
+ export function writtenOffset(instant, body) {
91
+ // The written offset is the distance between two wall clocks: the digits as written, and the
92
+ // same instant read in UTC. That recovers it without slicing the
93
+ // string. The subtraction stays on `PlainDateTime` rather than going through an
94
+ // instant, because a wall clock reaches a day further either side than an instant does
95
+ // — `+275760-09-13T14:00:00+14:00` names a representable instant whose digits, read as
96
+ // UTC, are past the end of the range. `PlainDateTime.from` parses every shape this
97
+ // grammar allows but the `Z` designator, and a `Z` string's wall clock *is* the UTC
98
+ // one, so its offset is `+00:00` by definition.
99
+ const utcWallClock = instant.toZonedDateTimeISO("UTC").toPlainDateTime();
100
+ const writtenWallClock = body.endsWith("Z") || body.endsWith("z")
101
+ ? utcWallClock
102
+ : Temporal.PlainDateTime.from(body);
103
+ return formatUtcOffset(BigInt(utcWallClock.until(writtenWallClock, { largestUnit: "nanosecond" })
104
+ .nanoseconds));
105
+ }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * A UTC label that may be a leap second.
3
+ *
4
+ * Temporal cannot represent a second of 60: `Temporal.Instant.from("2016-12-31T23:59:60.5Z")`
5
+ * clamps it to `…:59.5Z` (proposal-temporal `ParseISODateTime`). A reading keeps the clamped
6
+ * instant and a flag, so the inserted second (ITU-R TF.460-6 Annex 1 §2.2) and the second
7
+ * before it stay two different readings.
8
+ */
9
+ export interface UtcReading {
10
+ /** For a leap reading, the instant of `…T23:59:59.f` (Temporal's clamp of `…:60.f`). */
11
+ readonly epochNanoseconds: bigint;
12
+ /** Whether the label's second field is 60. */
13
+ readonly secondSixty: boolean;
14
+ }
15
+ /** The last year this realm writes: its strings carry four-digit years only (a GMT rule). */
16
+ export declare const MAX_FOUR_DIGIT_YEAR = 9999;
17
+ /**
18
+ * Read a UTC instant string that may carry a second of 60.
19
+ *
20
+ * Checks shape only: an ordinary instant goes through `parseInstantNanoseconds`; a second-60
21
+ * instant in GMT's strict extended shape is read by `Temporal.Instant.from`, which clamps the
22
+ * second to 59. Whether that second 60 was a real leap second is `taiOfUtc`'s decision.
23
+ *
24
+ * @param value candidate ISO 8601 instant string
25
+ * @returns the reading, or null when `value` is not an instant string GMT reads
26
+ */
27
+ export declare function parseUtcReading(value: unknown): UtcReading | null;
28
+ /**
29
+ * Write a UTC reading as an ISO 8601 instant string in `Z` form.
30
+ *
31
+ * - An ordinary reading is `Temporal.Instant#toString()`.
32
+ * - A second-60 reading is written `…T23:59:60[.fraction]Z` (ITU-R TF.460-6 Annex 3: "30 June,
33
+ * 23h 59m 60.6s UTC"), the fraction in Temporal's shortest digits.
34
+ * - Four-digit years only, as in the realm's time-scale strings (a GMT rule): a reading past
35
+ * 9999-12-31 is "", never Temporal's six-digit `+010000-…` form.
36
+ *
37
+ * @param reading the UTC reading
38
+ * @returns the instant string, or "" past year 9999 or when Temporal throws
39
+ */
40
+ export declare function formatUtcReading(reading: UtcReading): string;
41
+ /**
42
+ * The wall clock of a second-60 label, `YYYY-MM-DDTHH:MM:60[.fraction]`, from the `…:59.f`
43
+ * instant Temporal clamps it to. Throws where Temporal throws, so callers call it inside `try`.
44
+ *
45
+ * @param nanoseconds the clamped `…:59.f` instant or label, in epoch nanoseconds
46
+ * @returns the wall clock with second 60 and no designator
47
+ */
48
+ export declare function secondSixtyWallClock(nanoseconds: bigint): string;
49
+ /**
50
+ * The fraction of the second a nanosecond count falls in, written as Temporal writes a time's
51
+ * fraction: `""` for none, else `.` and the shortest digits (`".5"`, `".123456789"`).
52
+ *
53
+ * The sub-second count is split into milliseconds, microseconds and nanoseconds: passed as
54
+ * `nanosecond` alone, Temporal's default `overflow: "constrain"` clamps it to 999.
55
+ *
56
+ * @param nanoseconds epoch or label nanoseconds
57
+ * @returns the fraction, with its leading `.`, or ""
58
+ */
59
+ export declare function subsecondFraction(nanoseconds: bigint): string;
@@ -0,0 +1,113 @@
1
+ import { Temporal } from "./temporal.js";
2
+ import { plainDate } from "../regex/date.js";
3
+ import { instantLeapSecond } from "../regex/leap-second.js";
4
+ import { NANOSECONDS_PER_SECOND } from "./foreignEpochs.js";
5
+ import { parseInstantNanoseconds } from "./instantNanoseconds.js";
6
+ import { EXTENDED_UTC_OFFSET, isoStringBody } from "./isoStringBody.js";
7
+ /** The last year this realm writes: its strings carry four-digit years only (a GMT rule). */
8
+ export const MAX_FOUR_DIGIT_YEAR = 9999;
9
+ /** `plainDate` without its anchors: GMT's ISO 8601 extended calendar date. */
10
+ const DATE = plainDate.source.slice(1, -1);
11
+ /**
12
+ * An instant body (before the first `[`) whose second is 60, in GMT's strict extended shape:
13
+ * `<date>T<hh>:<mm>:60[.fraction]`, then `Z` or `±HH:MM[:SS[.fraction]]`. The fraction is 1 to 9
14
+ * digits after `.` or `,` (RFC 3339 §5.6 `time-secfrac`; Temporal's nanosecond resolution).
15
+ * Basic format, lower-case `t`/`z` and a space separator are refused, as `instantBody` refuses
16
+ * them for every other second.
17
+ */
18
+ const secondSixtyInstantBody = new RegExp(`^${DATE}T(?:[01]\\d|2[0-3]):[0-5]\\d:60(?:[.,]\\d{1,9})?(?:Z|${EXTENDED_UTC_OFFSET})$`);
19
+ /**
20
+ * Read a UTC instant string that may carry a second of 60.
21
+ *
22
+ * Checks shape only: an ordinary instant goes through `parseInstantNanoseconds`; a second-60
23
+ * instant in GMT's strict extended shape is read by `Temporal.Instant.from`, which clamps the
24
+ * second to 59. Whether that second 60 was a real leap second is `taiOfUtc`'s decision.
25
+ *
26
+ * @param value candidate ISO 8601 instant string
27
+ * @returns the reading, or null when `value` is not an instant string GMT reads
28
+ */
29
+ export function parseUtcReading(value) {
30
+ if (typeof value !== "string") {
31
+ return null;
32
+ }
33
+ const epochNanoseconds = parseInstantNanoseconds(value);
34
+ if (epochNanoseconds !== null) {
35
+ return { epochNanoseconds, secondSixty: false };
36
+ }
37
+ if (!instantLeapSecond.test(value) ||
38
+ !secondSixtyInstantBody.test(isoStringBody(value))) {
39
+ return null;
40
+ }
41
+ try {
42
+ return {
43
+ epochNanoseconds: Temporal.Instant.from(value).epochNanoseconds,
44
+ secondSixty: true,
45
+ };
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ /**
52
+ * Write a UTC reading as an ISO 8601 instant string in `Z` form.
53
+ *
54
+ * - An ordinary reading is `Temporal.Instant#toString()`.
55
+ * - A second-60 reading is written `…T23:59:60[.fraction]Z` (ITU-R TF.460-6 Annex 3: "30 June,
56
+ * 23h 59m 60.6s UTC"), the fraction in Temporal's shortest digits.
57
+ * - Four-digit years only, as in the realm's time-scale strings (a GMT rule): a reading past
58
+ * 9999-12-31 is "", never Temporal's six-digit `+010000-…` form.
59
+ *
60
+ * @param reading the UTC reading
61
+ * @returns the instant string, or "" past year 9999 or when Temporal throws
62
+ */
63
+ export function formatUtcReading(reading) {
64
+ try {
65
+ const instant = Temporal.Instant.fromEpochNanoseconds(reading.epochNanoseconds);
66
+ if (instant.toZonedDateTimeISO("UTC").year > MAX_FOUR_DIGIT_YEAR) {
67
+ return "";
68
+ }
69
+ return reading.secondSixty
70
+ ? `${secondSixtyWallClock(reading.epochNanoseconds)}Z`
71
+ : instant.toString();
72
+ }
73
+ catch {
74
+ return "";
75
+ }
76
+ }
77
+ /**
78
+ * The wall clock of a second-60 label, `YYYY-MM-DDTHH:MM:60[.fraction]`, from the `…:59.f`
79
+ * instant Temporal clamps it to. Throws where Temporal throws, so callers call it inside `try`.
80
+ *
81
+ * @param nanoseconds the clamped `…:59.f` instant or label, in epoch nanoseconds
82
+ * @returns the wall clock with second 60 and no designator
83
+ */
84
+ export function secondSixtyWallClock(nanoseconds) {
85
+ const wall = Temporal.Instant.fromEpochNanoseconds(nanoseconds)
86
+ .toZonedDateTimeISO("UTC")
87
+ .toPlainDateTime();
88
+ return `${wall.toPlainDate().toString()}T${wall
89
+ .toPlainTime()
90
+ .toString({ smallestUnit: "minute" })}:60${subsecondFraction(nanoseconds)}`;
91
+ }
92
+ /**
93
+ * The fraction of the second a nanosecond count falls in, written as Temporal writes a time's
94
+ * fraction: `""` for none, else `.` and the shortest digits (`".5"`, `".123456789"`).
95
+ *
96
+ * The sub-second count is split into milliseconds, microseconds and nanoseconds: passed as
97
+ * `nanosecond` alone, Temporal's default `overflow: "constrain"` clamps it to 999.
98
+ *
99
+ * @param nanoseconds epoch or label nanoseconds
100
+ * @returns the fraction, with its leading `.`, or ""
101
+ */
102
+ export function subsecondFraction(nanoseconds) {
103
+ const subsecond = Number(((nanoseconds % NANOSECONDS_PER_SECOND) + NANOSECONDS_PER_SECOND) %
104
+ NANOSECONDS_PER_SECOND);
105
+ return Temporal.PlainTime.from({
106
+ hour: 0,
107
+ millisecond: Math.floor(subsecond / 1e6),
108
+ microsecond: Math.floor(subsecond / 1e3) % 1000,
109
+ nanosecond: subsecond % 1000,
110
+ }, { overflow: "reject" })
111
+ .toString()
112
+ .slice("00:00:00".length);
113
+ }
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  /**
3
3
  * Read a UTC ISO string on a local wall clock for the `parse*FromUtc` accessors: the instant it
4
4
  * names, on the wall clock of `options.timeZone`. The utc twin of `unixWallClock`.
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import { isValidUtc } from "../utc/validate/isValidUtc.js";
3
3
  import { frameWallClock, normalizeZoneFrame } from "./zoneFrame.js";
4
4
  /**
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Whether this id already passed `isValidTimeZone`.
3
+ *
4
+ * @param timeZone the identifier
5
+ * @returns `true` for an id remembered as valid
6
+ *
7
+ * @example isRememberedZone("Europe/London") // false until `rememberZone("Europe/London")`
8
+ */
9
+ export declare function isRememberedZone(timeZone: string): boolean;
10
+ /**
11
+ * Remember an id that passed. Only a pass is stored, so hostile strings cannot grow the set;
12
+ * past 1,024 ids the set clears.
13
+ *
14
+ * @param timeZone the identifier that passed
15
+ *
16
+ * @example rememberZone("Europe/London") // stores it
17
+ */
18
+ export declare function rememberZone(timeZone: string): void;
19
+ /** Test seam: forget every remembered id. */
20
+ export declare function clearValidatedZones(): void;
@@ -0,0 +1,33 @@
1
+ /** Ids that passed both `isValidTimeZone` checks. Whether an id names a zone is fixed by the host data. */
2
+ const validatedZones = new Set();
3
+ /** Past this many ids the set clears. */
4
+ const MAX_VALIDATED_ZONES = 1024;
5
+ /**
6
+ * Whether this id already passed `isValidTimeZone`.
7
+ *
8
+ * @param timeZone the identifier
9
+ * @returns `true` for an id remembered as valid
10
+ *
11
+ * @example isRememberedZone("Europe/London") // false until `rememberZone("Europe/London")`
12
+ */
13
+ export function isRememberedZone(timeZone) {
14
+ return validatedZones.has(timeZone);
15
+ }
16
+ /**
17
+ * Remember an id that passed. Only a pass is stored, so hostile strings cannot grow the set;
18
+ * past 1,024 ids the set clears.
19
+ *
20
+ * @param timeZone the identifier that passed
21
+ *
22
+ * @example rememberZone("Europe/London") // stores it
23
+ */
24
+ export function rememberZone(timeZone) {
25
+ if (validatedZones.size >= MAX_VALIDATED_ZONES) {
26
+ validatedZones.clear();
27
+ }
28
+ validatedZones.add(timeZone);
29
+ }
30
+ /** Test seam: forget every remembered id. */
31
+ export function clearValidatedZones() {
32
+ validatedZones.clear();
33
+ }
@@ -1,4 +1,4 @@
1
- import type { Temporal } from "@js-temporal/polyfill";
1
+ import type { Temporal } from "./temporal.js";
2
2
  /**
3
3
  * The wall clock an instant reads at a fixed UTC offset, including a sub-minute or fractional
4
4
  * one. Callers write the offset text themselves.
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import { isObject } from "./isObject.js";
3
3
  /** `TwoDigitYearOptions.yearWindow` as a number: the first year of the window, 0–9900. */
4
4
  const MIN_YEAR_WINDOW_START = 0;
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import type { ZoneBucketUnit } from "../types/index.js";
3
3
  /**
4
4
  * True when `[start, end)` certainly touches more than `max` buckets of `unit`, decided from the span
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import { zonedNextTransition } from "./zonedWallClockOperations.js";
3
3
  /**
4
4
  * A bounded walk over a zone's local buckets (hours, days, weeks, months) can refuse a span that is
@@ -48,7 +48,7 @@ export function certainlyTouchesMoreBuckets(startZoned, endZoned, unit, max) {
48
48
  let backwardNs = 0n;
49
49
  let transitions = 0;
50
50
  try {
51
- for (let current = startZoned, next = zonedNextTransition(current); next !== null && next.epochNanoseconds < prefixEndNs; current = next, next = zonedNextTransition(current)) {
51
+ for (let current = startZoned, next = zonedNextTransition(current, prefixEndNs - 1n); next !== null; current = next, next = zonedNextTransition(current, prefixEndNs - 1n)) {
52
52
  if (++transitions > MAX_PRECOUNT_TRANSITIONS) {
53
53
  return false;
54
54
  }
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  /**
3
3
  * How local time is read for a time zone argument: a Temporal time zone, plus the part of a stored
4
4
  * UTC offset no time zone identifier can carry.
@@ -47,7 +47,7 @@ export type ZoneFrame = {
47
47
  * @param zone the caller's time zone argument
48
48
  * @returns the frame, or null when `zone` is neither a time zone identifier nor a stored offset
49
49
  *
50
- * @example zoneFrame("America/New_York") // { timeZone: "America/New_York", shiftNanoseconds: 0n }
50
+ * @example zoneFrame("Asia/Kolkata") // { timeZone: "Asia/Kolkata", shiftNanoseconds: 0n }
51
51
  * @example zoneFrame("+05:30:00") // { timeZone: "+05:30", shiftNanoseconds: 0n }
52
52
  * @example zoneFrame("-00:44:30") // { timeZone: "-00:44", shiftNanoseconds: -30000000000n }
53
53
  * @example zoneFrame("Z") // null
@@ -68,9 +68,9 @@ export declare function zoneFrame(zone: unknown): ZoneFrame | null;
68
68
  * @returns the frame, or null when the option is invalid
69
69
  *
70
70
  * @example normalizeZoneFrame(undefined) // { timeZone: "UTC", shiftNanoseconds: 0n }
71
- * @example normalizeZoneFrame("local") // the system zone, e.g. { timeZone: "America/New_York", shiftNanoseconds: 0n }
71
+ * @example normalizeZoneFrame("local") // the system zone, e.g. { timeZone: "Asia/Tokyo", shiftNanoseconds: 0n }
72
72
  * @example normalizeZoneFrame("-00:44:30") // { timeZone: "-00:44", shiftNanoseconds: -30000000000n }
73
- * @example normalizeZoneFrame("America/New_Yrok") // null
73
+ * @example normalizeZoneFrame("Asia/Tokio") // null
74
74
  */
75
75
  export declare function normalizeZoneFrame(option?: unknown): ZoneFrame | null;
76
76
  /**
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import { getSystemTimeZone } from "../zoned/get/getSystemTimeZone.js";
3
3
  import { isValidTimeZone } from "../zoned/validate/isValidTimeZone.js";
4
4
  import { instantFrom } from "./instantNanoseconds.js";
@@ -28,7 +28,7 @@ const NANOSECONDS_PER_MINUTE = 60000000000n;
28
28
  * @param zone the caller's time zone argument
29
29
  * @returns the frame, or null when `zone` is neither a time zone identifier nor a stored offset
30
30
  *
31
- * @example zoneFrame("America/New_York") // { timeZone: "America/New_York", shiftNanoseconds: 0n }
31
+ * @example zoneFrame("Asia/Kolkata") // { timeZone: "Asia/Kolkata", shiftNanoseconds: 0n }
32
32
  * @example zoneFrame("+05:30:00") // { timeZone: "+05:30", shiftNanoseconds: 0n }
33
33
  * @example zoneFrame("-00:44:30") // { timeZone: "-00:44", shiftNanoseconds: -30000000000n }
34
34
  * @example zoneFrame("Z") // null
@@ -74,9 +74,9 @@ function frameOffsetNanoseconds(frame) {
74
74
  * @returns the frame, or null when the option is invalid
75
75
  *
76
76
  * @example normalizeZoneFrame(undefined) // { timeZone: "UTC", shiftNanoseconds: 0n }
77
- * @example normalizeZoneFrame("local") // the system zone, e.g. { timeZone: "America/New_York", shiftNanoseconds: 0n }
77
+ * @example normalizeZoneFrame("local") // the system zone, e.g. { timeZone: "Asia/Tokyo", shiftNanoseconds: 0n }
78
78
  * @example normalizeZoneFrame("-00:44:30") // { timeZone: "-00:44", shiftNanoseconds: -30000000000n }
79
- * @example normalizeZoneFrame("America/New_Yrok") // null
79
+ * @example normalizeZoneFrame("Asia/Tokio") // null
80
80
  */
81
81
  export function normalizeZoneFrame(option) {
82
82
  if (option === undefined) {
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import type { DateTimeUnit } from "../types/index.js";
3
3
  /**
4
4
  * ISO day-of-week a week starts on: 1 = Monday .. 7 = Sunday, as `Temporal`'s `dayOfWeek` reads.
@@ -59,7 +59,7 @@ export declare function nextZonedBucketStart(current: Temporal.ZonedDateTime, un
59
59
  * next bucket starts.
60
60
  *
61
61
  * - Never earlier than `zoned`, because it is measured from the real bucket `zoned` is in —
62
- * New York's second 01:00 hour on a fall-back morning ends at 01:59:59.999999999 −05:00, not
62
+ * London's second 01:00 hour on a fall-back morning ends at 01:59:59.999999999 +00:00, not
63
63
  * at the first pass's.
64
64
  * - Walks forward from `zoned` itself, never from its bucket's start. No transition between that
65
65
  * start and `zoned` opens a bucket, so both walks reach the same next start — but the start may
@@ -1,6 +1,10 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import { DURATION_FIELD_BY_UNIT, getUnitSpan } from "./intervalCountHelpers.js";
3
3
  import { calendarDateAdd, calendarDateFromFields, calendarDateUntil, calendarFieldsOf, isCalendarArithmeticCompatNeeded, } from "./temporalCompat/index.js";
4
+ import { floorDivide } from "./floorDivide.js";
5
+ import { NANOSECONDS_PER_DAY } from "./foreignEpochs.js";
6
+ import { ISO_WEEKDAYS, isoFieldsOf, isoWeekdayOf } from "./epochDay.js";
7
+ import { offsetTimeline } from "./offsetTimeline.js";
4
8
  import { zonedNextTransition, zonedPreviousTransition, } from "./zonedWallClockOperations.js";
5
9
  /** The `Temporal.Duration` that advances a wall clock by one `unit`. */
6
10
  function oneUnit(unit) {
@@ -199,7 +203,7 @@ const DATE_LABELLED_UNITS = new Set([
199
203
  * so the 03:00 hour begins at the transition even though the clock does not read 03:00:00; a
200
204
  * local day whose midnight is skipped begins at 01:00 the same way; and `America/Goose_Bay`'s
201
205
  * 2010-11-07 fall-back re-enters 6 November, so that 59-minute stretch is its own day.
202
- * - **The clock lands on a unit boundary** — hours and smaller only. New York goes back to
206
+ * - **The clock lands on a unit boundary** — hours and smaller only. London goes back to
203
207
  * 01:00:00 exactly, so a second, separate 01:00 hour begins there — which is why a fall-back
204
208
  * day has 25 hour buckets. `Australia/Lord_Howe` goes back to 01:30, mid-hour, so the hour it
205
209
  * is already in simply runs longer: 90 minutes.
@@ -349,7 +353,7 @@ export function nextZonedBucketStart(current, unit, weekStartsOn = 1) {
349
353
  * next bucket starts.
350
354
  *
351
355
  * - Never earlier than `zoned`, because it is measured from the real bucket `zoned` is in —
352
- * New York's second 01:00 hour on a fall-back morning ends at 01:59:59.999999999 −05:00, not
356
+ * London's second 01:00 hour on a fall-back morning ends at 01:59:59.999999999 +00:00, not
353
357
  * at the first pass's.
354
358
  * - Walks forward from `zoned` itself, never from its bucket's start. No transition between that
355
359
  * start and `zoned` opens a bucket, so both walks reach the same next start — but the start may
@@ -384,6 +388,70 @@ function countFromBucketBeforeRange(start, end, unit, weekStartsOn) {
384
388
  const rest = countZonedBuckets(next, end, unit, weekStartsOn);
385
389
  return rest === null ? null : rest + 1;
386
390
  }
391
+ /** Nanoseconds in each unit below a day. */
392
+ const SUB_DAY_NANOSECONDS = {
393
+ hour: 3600000000000n,
394
+ minute: 60000000000n,
395
+ second: 1000000000n,
396
+ millisecond: 1000000n,
397
+ microsecond: 1000n,
398
+ nanosecond: 1n,
399
+ };
400
+ /**
401
+ * Which bucket a wall clock (nanoseconds, read as UTC) falls in, as an integer that rises by one
402
+ * per bucket: the unit's count since the epoch, so a difference is the whole units between two
403
+ * labels. Months and years are ISO; a calendar period of another calendar has no integer form.
404
+ */
405
+ function bucketIndexOf(unit, weekStartsOn) {
406
+ const fixed = SUB_DAY_NANOSECONDS[unit];
407
+ if (fixed !== undefined) {
408
+ return (wall) => floorDivide(wall, fixed);
409
+ }
410
+ if (unit === "day") {
411
+ return (wall) => floorDivide(wall, NANOSECONDS_PER_DAY);
412
+ }
413
+ if (unit === "week") {
414
+ // Every week start falls on the same weekday, so `(start - anchor) / 7` is whole.
415
+ const anchor = -((isoWeekdayOf(0) - weekStartsOn + ISO_WEEKDAYS) %
416
+ ISO_WEEKDAYS);
417
+ return (wall) => {
418
+ const day = Number(floorDivide(wall, NANOSECONDS_PER_DAY));
419
+ const weekStart = day -
420
+ ((isoWeekdayOf(day) - weekStartsOn + ISO_WEEKDAYS) % ISO_WEEKDAYS);
421
+ return BigInt((weekStart - anchor) / ISO_WEEKDAYS);
422
+ };
423
+ }
424
+ return (wall) => {
425
+ const [year, month] = isoFieldsOf(Number(floorDivide(wall, NANOSECONDS_PER_DAY)));
426
+ return BigInt(unit === "year" ? year : year * 12 + month - 1);
427
+ };
428
+ }
429
+ /**
430
+ * The two questions `countZonedBuckets` asks of an offset change, in integers where the unit
431
+ * allows: whether a change opens a bucket (`startsNewBucketAt`'s rule), and how many whole units
432
+ * lie between the buckets two instants fall in. A month or year of a non-ISO calendar asks
433
+ * Temporal, and only at a change that crosses a date.
434
+ */
435
+ function bucketWalker(start, unit, weekStartsOn) {
436
+ const sinceMidnight = (wall) => floorDivide(wall, NANOSECONDS_PER_DAY);
437
+ if (start.calendarId !== "iso8601" && (unit === "month" || unit === "year")) {
438
+ const zonedAt = (ns) => new Temporal.ZonedDateTime(ns, start.timeZoneId, start.calendarId);
439
+ const label = (ns) => truncateLocal(zonedAt(ns).toPlainDateTime(), unit, weekStartsOn);
440
+ return {
441
+ opensBucket: (transition, before, after) => sinceMidnight(transition - 1n + before) !==
442
+ sinceMidnight(transition + after) &&
443
+ startsNewBucketAt(zonedAt(transition), unit, weekStartsOn),
444
+ unitsBetween: (fromNs, _fromOffset, toNs) => getUnitSpan(truncatedWallClockUntil(label(fromNs), label(toNs), unit), unit),
445
+ };
446
+ }
447
+ const index = bucketIndexOf(unit, weekStartsOn);
448
+ const length = SUB_DAY_NANOSECONDS[unit];
449
+ return {
450
+ opensBucket: (transition, before, after) => index(transition - 1n + before) !== index(transition + after) ||
451
+ (length !== undefined && (transition + after) % length === 0n),
452
+ unitsBetween: (fromNs, fromOffset, toNs, toOffset) => Number(index(toNs + toOffset) - index(fromNs + fromOffset)),
453
+ };
454
+ }
387
455
  /**
388
456
  * Count the local `unit` buckets the half-open interval `[start, end)` touches, in `start`'s
389
457
  * zone and calendar. `end` must already be expressed in both.
@@ -417,27 +485,30 @@ export function countZonedBuckets(start, end, unit, weekStartsOn = 1) {
417
485
  const startOfEnd = zonedUnitStart(end, unit, weekStartsOn);
418
486
  if (!startOfStart || !startOfEnd)
419
487
  return null;
420
- const label = (zoned) => truncateLocal(zoned.toPlainDateTime(), unit, weekStartsOn);
421
- // Whole `unit`s between two wall clocks already truncated to `unit`.
422
- const unitsBetween = (from, to) => getUnitSpan(truncatedWallClockUntil(from, to, unit), unit);
423
- const reachesIntoEndBucket = Temporal.ZonedDateTime.compare(startOfEnd, end) === 0 ? 0 : 1;
488
+ const timeline = offsetTimeline({ timeZone: start.timeZoneId, shiftNanoseconds: 0n }, startOfStart.epochNanoseconds, startOfEnd.epochNanoseconds, MAX_COUNTED_TRANSITIONS - 1);
489
+ if (timeline === null)
490
+ return null;
491
+ const { changes, offsets } = timeline;
492
+ const walker = bucketWalker(start, unit, weekStartsOn);
493
+ const endNs = startOfEnd.epochNanoseconds;
494
+ const reachesIntoEndBucket = startOfEnd.epochNanoseconds === end.epochNanoseconds ? 0 : 1;
424
495
  let spanned = 0;
425
- let runStart = startOfStart;
426
- let cursor = startOfStart;
427
- for (let i = 0; i < MAX_COUNTED_TRANSITIONS; i++) {
428
- const transition = zonedNextTransition(cursor, startOfEnd.epochNanoseconds)?.withCalendar(start.calendarId) ?? null;
429
- if (!transition ||
430
- Temporal.ZonedDateTime.compare(transition, startOfEnd) > 0) {
431
- return (spanned +
432
- unitsBetween(label(runStart), label(startOfEnd)) +
433
- reachesIntoEndBucket);
434
- }
435
- if (startsNewBucketAt(transition, unit, weekStartsOn)) {
496
+ let runStart = startOfStart.epochNanoseconds;
497
+ let runStartOffset = offsets[0];
498
+ let runOffset = offsets[0];
499
+ // One pass over the offset changes in the span, which the cap above bounds.
500
+ for (let index = 0; index < changes.length; index++) {
501
+ const transition = changes[index];
502
+ const after = offsets[index + 1];
503
+ if (walker.opensBucket(transition, runOffset, after)) {
436
504
  spanned +=
437
- unitsBetween(label(runStart), label(transition.subtract({ nanoseconds: 1 }))) + 1;
505
+ walker.unitsBetween(runStart, runStartOffset, transition - 1n, runOffset) + 1;
438
506
  runStart = transition;
507
+ runStartOffset = after;
439
508
  }
440
- cursor = transition;
509
+ runOffset = after;
441
510
  }
442
- return null;
511
+ return (spanned +
512
+ walker.unitsBetween(runStart, runStartOffset, endNs, runOffset) +
513
+ reachesIntoEndBucket);
443
514
  }
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * @param reference the option as given
7
7
  * @returns false for a string of neither form, a non-finite number, or a value of another type
8
- * @example isValidZonedFormatReference("2024-03-15T09:00:00-04:00[America/New_York]") // true
8
+ * @example isValidZonedFormatReference("2024-03-15T09:00:00+09:00[Asia/Tokyo]") // true
9
9
  * @example isValidZonedFormatReference("2024-03-15T13:00:00Z") // true
10
10
  * @example isValidZonedFormatReference(undefined) // true
11
11
  * @example isValidZonedFormatReference(Number.NaN) // false
@@ -7,7 +7,7 @@ import { isValidZonedDateTime } from "../zoned/validate/isValidZonedDateTime.js"
7
7
  *
8
8
  * @param reference the option as given
9
9
  * @returns false for a string of neither form, a non-finite number, or a value of another type
10
- * @example isValidZonedFormatReference("2024-03-15T09:00:00-04:00[America/New_York]") // true
10
+ * @example isValidZonedFormatReference("2024-03-15T09:00:00+09:00[Asia/Tokyo]") // true
11
11
  * @example isValidZonedFormatReference("2024-03-15T13:00:00Z") // true
12
12
  * @example isValidZonedFormatReference(undefined) // true
13
13
  * @example isValidZonedFormatReference(Number.NaN) // false
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import type { Temporal } from "./temporal.js";
2
2
  /**
3
3
  * Count the distinct local (ISO) dates of the instants in the closed span `[start, end]`, in
4
4
  * `start`'s time zone. `end` must already be expressed in that zone and not precede `start`.