@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,8 +1,4 @@
1
- // Option resolution for formatting an exact time (a ZonedDateTime, or an
2
- // Instant in a given zone) through the runtime's `Intl.DateTimeFormat`. The
3
- // rules are the Temporal proposal's ECMA-402 amendments: CreateDateTimeFormat
4
- // and GetDateTimeFormat with required ~any~ and inherit ~all~, so every caller
5
- // field, including `era` and `timeZoneName`, is passed on unchanged.
1
+ import { cachedFormatter, checkFormatterArguments } from "./formatterCache.js";
6
2
  import { plainDateTimeFormatOptions } from "./plainFormatOptions.js";
7
3
  import { optionOrDefault } from "./optionOrDefault.js";
8
4
  // GetDateTimeFormat requiredOptions for ~any~. `era` and `timeZoneName` are
@@ -86,15 +82,15 @@ export function instantFormatOptions(options, timeZone, defaults) {
86
82
  * @returns the formatted text, not yet normalised
87
83
  */
88
84
  export function formatWallClockOrZoned(zonedDateTime, locale, options, includeTimeZoneName) {
89
- new Intl.DateTimeFormat(locale, options);
85
+ checkFormatterArguments("DateTimeFormat", locale, options);
90
86
  if (includeTimeZoneName) {
91
87
  const resolved = instantFormatOptions(options, zonedDateTime.timeZoneId, "zoned-date-time");
92
88
  return resolved === null
93
89
  ? ""
94
- : new Intl.DateTimeFormat(locale, resolved).format(zonedDateTime.epochMilliseconds);
90
+ : cachedFormatter("DateTimeFormat", locale, resolved).format(zonedDateTime.epochMilliseconds);
95
91
  }
96
92
  const wallClockMilliseconds = zonedDateTime
97
93
  .toPlainDateTime()
98
94
  .toZonedDateTime("UTC").epochMilliseconds;
99
- return new Intl.DateTimeFormat(locale, plainDateTimeFormatOptions(options)).format(wallClockMilliseconds);
95
+ return cachedFormatter("DateTimeFormat", locale, plainDateTimeFormatOptions(options)).format(wallClockMilliseconds);
100
96
  }
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  /**
3
3
  * Re-serialise instant intervals to `Temporal.Instant.prototype.toString()` spelling.
4
4
  *
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  /**
3
3
  * Parse an ISO 8601 instant string to epoch nanoseconds, or `null` when it is not one.
4
4
  *
@@ -47,7 +47,7 @@ import { Temporal } from "@js-temporal/polyfill";
47
47
  * bracket; a `Z` instant; an offset written with seconds, which TC39 matches exactly
48
48
  * (`-00:45:00[Africa/Monrovia]` is −00:45:00); a bracket whose zone does not exist; and a
49
49
  * bracket whose zone has no instant in range with that wall time at the written offset or at
50
- * an offset that rounds to it (`-00:44[Africa/Monrovia]`, `-05:00[America/New_York]` in
50
+ * an offset that rounds to it (`-00:44[Africa/Monrovia]`, `+00:00[Europe/London]` in
51
51
  * June). Such a bracket is not validated here; a function that keeps the zone
52
52
  * (`transitTime`, `toOffsetInstant`) rejects it instead. Calendar and elective annotations
53
53
  * never change the reading. A string whose written reading is outside the instant range, and
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "./temporal.js";
2
2
  import { instantLeapSecond } from "../regex/leap-second.js";
3
3
  import { hasInstantShape, isoStringBody } from "./isoStringBody.js";
4
4
  import { parseUtcOffsetNanoseconds } from "./utcOffsetString.js";
@@ -68,7 +68,7 @@ const minuteOffset = /[+-]\d{2}:\d{2}$/;
68
68
  * bracket; a `Z` instant; an offset written with seconds, which TC39 matches exactly
69
69
  * (`-00:45:00[Africa/Monrovia]` is −00:45:00); a bracket whose zone does not exist; and a
70
70
  * bracket whose zone has no instant in range with that wall time at the written offset or at
71
- * an offset that rounds to it (`-00:44[Africa/Monrovia]`, `-05:00[America/New_York]` in
71
+ * an offset that rounds to it (`-00:44[Africa/Monrovia]`, `+00:00[Europe/London]` in
72
72
  * June). Such a bracket is not validated here; a function that keeps the zone
73
73
  * (`transitTime`, `toOffsetInstant`) rejects it instead. Calendar and elective annotations
74
74
  * never change the reading. A string whose written reading is outside the instant range, and
@@ -1,4 +1,4 @@
1
- import type { Temporal } from "@js-temporal/polyfill";
1
+ import type { Temporal } from "./temporal.js";
2
2
  import type { DateTimeUnit } from "../types/index.js";
3
3
  /**
4
4
  * Singular DateTimeUnit to its `Temporal.Duration` field name.
@@ -50,8 +50,8 @@ export declare const TIME_ZONE_ANNOTATION = "\\[!?[^\\]=]+\\]";
50
50
  * @param value candidate zoned datetime string
51
51
  * @returns whether the unannotated part has GMT's strict extended zoned shape
52
52
  *
53
- * @example hasZonedDateTimeShape("2024-10-03T14:30:00-04:00[America/New_York]") // true
54
- * @example hasZonedDateTimeShape("2024-10-03 14:30:00-04:00[America/New_York]") // false
53
+ * @example hasZonedDateTimeShape("2024-10-03T14:30:00+05:30[Asia/Kolkata]") // true
54
+ * @example hasZonedDateTimeShape("2024-10-03 14:30:00+05:30[Asia/Kolkata]") // false
55
55
  */
56
56
  export declare function hasZonedDateTimeShape(value: string): boolean;
57
57
  /**
@@ -85,8 +85,8 @@ const instantBody = new RegExp(`^${EXTENDED_DATE_TIME}(?:Z|${EXTENDED_UTC_OFFSET
85
85
  * @param value candidate zoned datetime string
86
86
  * @returns whether the unannotated part has GMT's strict extended zoned shape
87
87
  *
88
- * @example hasZonedDateTimeShape("2024-10-03T14:30:00-04:00[America/New_York]") // true
89
- * @example hasZonedDateTimeShape("2024-10-03 14:30:00-04:00[America/New_York]") // false
88
+ * @example hasZonedDateTimeShape("2024-10-03T14:30:00+05:30[Asia/Kolkata]") // true
89
+ * @example hasZonedDateTimeShape("2024-10-03 14:30:00+05:30[Asia/Kolkata]") // false
90
90
  */
91
91
  export function hasZonedDateTimeShape(value) {
92
92
  return (typeof value === "string" && zonedDateTimeBody.test(isoStringBody(value)));
@@ -1,3 +1,4 @@
1
+ import { cachedFormatter } from "./formatterCache.js";
1
2
  // `Intl.DateTimeFormat`'s part types that belong to the *date* half of a
2
3
  // combined `dateStyle` + `timeStyle` format. Everything else (`hour`,
3
4
  // `minute`, `second`, `fractionalSecond`, `dayPeriod`, `timeZoneName`, and
@@ -48,7 +49,7 @@ const DATE_PART_TYPES = new Set([
48
49
  * @returns `dayLabel` joined to the localized time with the locale's own connector
49
50
  */
50
51
  export function joinDateTimeConnector(epochMilliseconds, timeZone, locale, dayLabel, timeStyle) {
51
- const parts = new Intl.DateTimeFormat(locale, {
52
+ const parts = cachedFormatter("DateTimeFormat", locale, {
52
53
  dateStyle: "full",
53
54
  timeStyle,
54
55
  timeZone,
@@ -62,7 +63,7 @@ export function joinDateTimeConnector(epochMilliseconds, timeZone, locale, dayLa
62
63
  // dateStyle-only format would still produce with no time present — it
63
64
  // belongs to the date field, not the connector, even though the combined
64
65
  // format fuses it into the same literal token as the real connector.
65
- const dateOnlyParts = new Intl.DateTimeFormat(locale, {
66
+ const dateOnlyParts = cachedFormatter("DateTimeFormat", locale, {
66
67
  dateStyle: "full",
67
68
  timeZone,
68
69
  }).formatToParts(epochMilliseconds);
@@ -0,0 +1,63 @@
1
+ import type { UtcReading } from "./utcReading.js";
2
+ /** TAI − UTC by date: `at[i]` (epoch ns, 00:00:00 UTC on a month's first day) starts `taiMinusUtc[i]`. */
3
+ export interface LeapSecondSteps {
4
+ /** Epoch nanoseconds at which each row's TAI − UTC takes effect, strictly increasing. */
5
+ readonly at: readonly bigint[];
6
+ /** TAI − UTC in whole seconds from `at[i]` until `at[i + 1]`. */
7
+ readonly taiMinusUtc: readonly bigint[];
8
+ }
9
+ /**
10
+ * IERS Earth Orientation Center, Leap_Second.dat (https://hpiers.obspm.fr/iers/bul/bulc/Leap_Second.dat),
11
+ * updated through IERS Bulletin C 72, 6 July 2026. Closed: CGPM 2026 Resolution 5 makes UTC
12
+ * continuous from 20 May 2027, and Bulletin C 72 rules out the end of December 2026. After the last
13
+ * row TAI − UTC stays 37 s. Checked weekly against IERS by scripts/leap-seconds.mjs.
14
+ */
15
+ export declare const LEAP_SECOND_STEPS: LeapSecondSteps;
16
+ /**
17
+ * TAI of a UTC reading, as label nanoseconds (the TAI wall clock read as if UTC), or `null` when
18
+ * the reading has no TAI instant.
19
+ *
20
+ * - `null` before the first row: TAI − UTC was not a whole number of seconds before 1972 (BIPM
21
+ * Annual Report vol. 15, Table 2).
22
+ * - A second-60 reading is valid only in the second before a positive step, where it maps to
23
+ * that inserted second: old offset + 1 s (ITU-R TF.460-6 Annex 1 §2.2).
24
+ * - An ordinary reading inside a deleted second (before a negative step) has no instant.
25
+ * - No upper bound: after the last row its offset holds.
26
+ *
27
+ * @param steps the leap-second table
28
+ * @param reading the UTC reading
29
+ * @returns TAI label nanoseconds, or null
30
+ */
31
+ export declare function taiOfUtc(steps: LeapSecondSteps, reading: UtcReading): bigint | null;
32
+ /**
33
+ * The UTC reading of a TAI instant given as label nanoseconds, or `null` before the table's
34
+ * first TAI instant (1972-01-01T00:00:10 TAI).
35
+ *
36
+ * - Inside an inserted second the reading is second 60: its `epochNanoseconds` is the
37
+ * `…T23:59:59.f` instant Temporal would clamp `…:60.f` to.
38
+ * - A negative step needs no special case: the deleted second has no TAI instant to map.
39
+ *
40
+ * @param steps the leap-second table
41
+ * @param tai TAI label nanoseconds
42
+ * @returns the UTC reading, or null
43
+ */
44
+ export declare function utcOfTai(steps: LeapSecondSteps, tai: bigint): UtcReading | null;
45
+ /**
46
+ * The UTC reading of step `index`'s own second, the second before `at[index]` (ITU-R TF.460-6
47
+ * Annex 1 §2.2): for a positive step the inserted `…T23:59:60` (a second-60 reading); for a
48
+ * negative step the omitted `…T23:59:59` (an ordinary reading of its label).
49
+ *
50
+ * @param steps the leap-second table
51
+ * @param index a row index from 1
52
+ * @returns the reading of that step's second
53
+ */
54
+ export declare function stepReading(steps: LeapSecondSteps, index: number): UtcReading;
55
+ /**
56
+ * Index of the first step (row 1 on) that starts after a UTC reading, or −1 when there is none.
57
+ * A second-60 reading counts as the instant one second later, so its own step is behind it.
58
+ *
59
+ * @param steps the leap-second table
60
+ * @param reading the UTC reading
61
+ * @returns the row index, or −1
62
+ */
63
+ export declare function nextStepIndex(steps: LeapSecondSteps, reading: UtcReading): number;
@@ -0,0 +1,162 @@
1
+ import { NANOSECONDS_PER_SECOND } from "./foreignEpochs.js";
2
+ // IERS Earth Orientation Center, Leap_Second.dat, "Updated through IERS Bulletin 72 issued in
3
+ // July 2026": one row per MJD with TAI − UTC from that date. Each bigint is
4
+ // `Temporal.Instant.from(<date>).epochNanoseconds` of the date in its comment;
5
+ // leapSeconds.test.ts asserts each one. The first row is where whole-second TAI − UTC begins
6
+ // (BIPM Annual Report on Time Activities vol. 15, Table 2: "1972 Jan. 1 … 10 (integral number of
7
+ // seconds)"); the 27 after it are the 27 inserted leap seconds (ITU-R TF.460-6 Annex 1 §2.2).
8
+ const ROWS = [
9
+ [63072000000000000n, 10n], // 1972-01-01T00:00:00Z
10
+ [78796800000000000n, 11n], // 1972-07-01T00:00:00Z
11
+ [94694400000000000n, 12n], // 1973-01-01T00:00:00Z
12
+ [126230400000000000n, 13n], // 1974-01-01T00:00:00Z
13
+ [157766400000000000n, 14n], // 1975-01-01T00:00:00Z
14
+ [189302400000000000n, 15n], // 1976-01-01T00:00:00Z
15
+ [220924800000000000n, 16n], // 1977-01-01T00:00:00Z
16
+ [252460800000000000n, 17n], // 1978-01-01T00:00:00Z
17
+ [283996800000000000n, 18n], // 1979-01-01T00:00:00Z
18
+ [315532800000000000n, 19n], // 1980-01-01T00:00:00Z
19
+ [362793600000000000n, 20n], // 1981-07-01T00:00:00Z
20
+ [394329600000000000n, 21n], // 1982-07-01T00:00:00Z
21
+ [425865600000000000n, 22n], // 1983-07-01T00:00:00Z
22
+ [489024000000000000n, 23n], // 1985-07-01T00:00:00Z
23
+ [567993600000000000n, 24n], // 1988-01-01T00:00:00Z
24
+ [631152000000000000n, 25n], // 1990-01-01T00:00:00Z
25
+ [662688000000000000n, 26n], // 1991-01-01T00:00:00Z
26
+ [709948800000000000n, 27n], // 1992-07-01T00:00:00Z
27
+ [741484800000000000n, 28n], // 1993-07-01T00:00:00Z
28
+ [773020800000000000n, 29n], // 1994-07-01T00:00:00Z
29
+ [820454400000000000n, 30n], // 1996-01-01T00:00:00Z
30
+ [867715200000000000n, 31n], // 1997-07-01T00:00:00Z
31
+ [915148800000000000n, 32n], // 1999-01-01T00:00:00Z
32
+ [1136073600000000000n, 33n], // 2006-01-01T00:00:00Z
33
+ [1230768000000000000n, 34n], // 2009-01-01T00:00:00Z
34
+ [1341100800000000000n, 35n], // 2012-07-01T00:00:00Z
35
+ [1435708800000000000n, 36n], // 2015-07-01T00:00:00Z
36
+ [1483228800000000000n, 37n], // 2017-01-01T00:00:00Z
37
+ ];
38
+ /**
39
+ * IERS Earth Orientation Center, Leap_Second.dat (https://hpiers.obspm.fr/iers/bul/bulc/Leap_Second.dat),
40
+ * updated through IERS Bulletin C 72, 6 July 2026. Closed: CGPM 2026 Resolution 5 makes UTC
41
+ * continuous from 20 May 2027, and Bulletin C 72 rules out the end of December 2026. After the last
42
+ * row TAI − UTC stays 37 s. Checked weekly against IERS by scripts/leap-seconds.mjs.
43
+ */
44
+ export const LEAP_SECOND_STEPS = Object.freeze({
45
+ at: Object.freeze(ROWS.map(([at]) => at)),
46
+ taiMinusUtc: Object.freeze(ROWS.map(([, offset]) => offset)),
47
+ });
48
+ /** Index of the last row that starts at or before `u`, or −1 before the first row. */
49
+ function rowAt(steps, u) {
50
+ let found = -1;
51
+ for (let index = 0; index < steps.at.length && steps.at[index] <= u; index += 1) {
52
+ found = index;
53
+ }
54
+ return found;
55
+ }
56
+ /** TAI − UTC of row `index`, in nanoseconds. */
57
+ function offsetOf(steps, index) {
58
+ return steps.taiMinusUtc[index] * NANOSECONDS_PER_SECOND;
59
+ }
60
+ /** The step from row `index − 1` to row `index`, in nanoseconds: `+S` inserts, `−S` deletes. */
61
+ function stepAt(steps, index) {
62
+ return offsetOf(steps, index) - offsetOf(steps, index - 1);
63
+ }
64
+ /**
65
+ * TAI of a UTC reading, as label nanoseconds (the TAI wall clock read as if UTC), or `null` when
66
+ * the reading has no TAI instant.
67
+ *
68
+ * - `null` before the first row: TAI − UTC was not a whole number of seconds before 1972 (BIPM
69
+ * Annual Report vol. 15, Table 2).
70
+ * - A second-60 reading is valid only in the second before a positive step, where it maps to
71
+ * that inserted second: old offset + 1 s (ITU-R TF.460-6 Annex 1 §2.2).
72
+ * - An ordinary reading inside a deleted second (before a negative step) has no instant.
73
+ * - No upper bound: after the last row its offset holds.
74
+ *
75
+ * @param steps the leap-second table
76
+ * @param reading the UTC reading
77
+ * @returns TAI label nanoseconds, or null
78
+ */
79
+ export function taiOfUtc(steps, reading) {
80
+ const u = reading.epochNanoseconds;
81
+ if (u < steps.at[0]) {
82
+ return null;
83
+ }
84
+ if (reading.secondSixty) {
85
+ for (let index = 1; index < steps.at.length; index += 1) {
86
+ if (steps.at[index] - NANOSECONDS_PER_SECOND <= u &&
87
+ u < steps.at[index] &&
88
+ stepAt(steps, index) === NANOSECONDS_PER_SECOND) {
89
+ return u + offsetOf(steps, index - 1) + NANOSECONDS_PER_SECOND;
90
+ }
91
+ }
92
+ return null;
93
+ }
94
+ const index = rowAt(steps, u);
95
+ const next = index + 1;
96
+ if (next < steps.at.length &&
97
+ stepAt(steps, next) === -NANOSECONDS_PER_SECOND &&
98
+ u >= steps.at[next] - NANOSECONDS_PER_SECOND) {
99
+ return null;
100
+ }
101
+ return u + offsetOf(steps, index);
102
+ }
103
+ /**
104
+ * The UTC reading of a TAI instant given as label nanoseconds, or `null` before the table's
105
+ * first TAI instant (1972-01-01T00:00:10 TAI).
106
+ *
107
+ * - Inside an inserted second the reading is second 60: its `epochNanoseconds` is the
108
+ * `…T23:59:59.f` instant Temporal would clamp `…:60.f` to.
109
+ * - A negative step needs no special case: the deleted second has no TAI instant to map.
110
+ *
111
+ * @param steps the leap-second table
112
+ * @param tai TAI label nanoseconds
113
+ * @returns the UTC reading, or null
114
+ */
115
+ export function utcOfTai(steps, tai) {
116
+ let index = -1;
117
+ for (let row = 0; row < steps.at.length && steps.at[row] + offsetOf(steps, row) <= tai; row += 1) {
118
+ index = row;
119
+ }
120
+ if (index === -1) {
121
+ return null;
122
+ }
123
+ const u = tai - offsetOf(steps, index);
124
+ if (index + 1 < steps.at.length && u >= steps.at[index + 1]) {
125
+ return { epochNanoseconds: u - NANOSECONDS_PER_SECOND, secondSixty: true };
126
+ }
127
+ return { epochNanoseconds: u, secondSixty: false };
128
+ }
129
+ /**
130
+ * The UTC reading of step `index`'s own second, the second before `at[index]` (ITU-R TF.460-6
131
+ * Annex 1 §2.2): for a positive step the inserted `…T23:59:60` (a second-60 reading); for a
132
+ * negative step the omitted `…T23:59:59` (an ordinary reading of its label).
133
+ *
134
+ * @param steps the leap-second table
135
+ * @param index a row index from 1
136
+ * @returns the reading of that step's second
137
+ */
138
+ export function stepReading(steps, index) {
139
+ return {
140
+ epochNanoseconds: steps.at[index] - NANOSECONDS_PER_SECOND,
141
+ secondSixty: stepAt(steps, index) > 0n,
142
+ };
143
+ }
144
+ /**
145
+ * Index of the first step (row 1 on) that starts after a UTC reading, or −1 when there is none.
146
+ * A second-60 reading counts as the instant one second later, so its own step is behind it.
147
+ *
148
+ * @param steps the leap-second table
149
+ * @param reading the UTC reading
150
+ * @returns the row index, or −1
151
+ */
152
+ export function nextStepIndex(steps, reading) {
153
+ const u = reading.secondSixty
154
+ ? reading.epochNanoseconds + NANOSECONDS_PER_SECOND
155
+ : reading.epochNanoseconds;
156
+ for (let index = 1; index < steps.at.length; index += 1) {
157
+ if (steps.at[index] > u) {
158
+ return index;
159
+ }
160
+ }
161
+ return -1;
162
+ }
@@ -27,7 +27,7 @@ declare global {
27
27
  * - Throws `RangeError` (from `Intl.Locale`) if `locale` is not a well-formed BCP 47 tag; callers turn
28
28
  * that into their sentinel.
29
29
  *
30
- * @example localeWeekInfo("en-US")?.firstDay // 7
30
+ * @example localeWeekInfo("pt-BR")?.firstDay // 7
31
31
  * @example localeWeekInfo("ar-SA")?.weekend // [5, 6]
32
32
  */
33
33
  export declare function localeWeekInfo(locale: LocalesArgument): Partial<LocaleWeekInfo> | undefined;
@@ -12,7 +12,7 @@ import { resolveRequiredLocale } from "./resolveLocale.js";
12
12
  * - Throws `RangeError` (from `Intl.Locale`) if `locale` is not a well-formed BCP 47 tag; callers turn
13
13
  * that into their sentinel.
14
14
  *
15
- * @example localeWeekInfo("en-US")?.firstDay // 7
15
+ * @example localeWeekInfo("pt-BR")?.firstDay // 7
16
16
  * @example localeWeekInfo("ar-SA")?.weekend // [5, 6]
17
17
  */
18
18
  export function localeWeekInfo(locale) {
@@ -1,4 +1,4 @@
1
- import type { Temporal } from "@js-temporal/polyfill";
1
+ import type { Temporal } from "./temporal.js";
2
2
  /**
3
3
  * Return the 1-based calendar-grid week row that `dayInMonth` falls on for
4
4
  * `firstOfMonth`'s month, given `firstDay` (locale first day of week,
@@ -6,7 +6,8 @@
6
6
  * - Normalizes various non-breaking and narrow spaces to plain space
7
7
  * - Collapses repeated whitespace to a single space and trims
8
8
  * - Normalizes common dash/minus characters to ASCII hyphen-minus
9
- * - Optionally lowercases the result (disabled by default)
9
+ * - Optionally lowercases the result (disabled by default), in
10
+ * `opts.locale` (default `"en"`: a language, not one country)
10
11
  */
11
12
  export declare function normalizeDateTime(input: string, opts?: {
12
13
  lower?: boolean;
@@ -6,12 +6,13 @@
6
6
  * - Normalizes various non-breaking and narrow spaces to plain space
7
7
  * - Collapses repeated whitespace to a single space and trims
8
8
  * - Normalizes common dash/minus characters to ASCII hyphen-minus
9
- * - Optionally lowercases the result (disabled by default)
9
+ * - Optionally lowercases the result (disabled by default), in
10
+ * `opts.locale` (default `"en"`: a language, not one country)
10
11
  */
11
12
  export function normalizeDateTime(input, opts) {
12
13
  if (typeof input !== "string")
13
14
  return "";
14
- const { lower = false, locale = "en-US" } = opts ?? {};
15
+ const { lower = false, locale = "en" } = opts ?? {};
15
16
  // Use NFC where available for stable composed characters
16
17
  let s = typeof input.normalize === "function" ? input.normalize("NFC") : input;
17
18
  // Remove Unicode format characters (includes bidi marks), zero-width space, BOM
@@ -17,7 +17,7 @@
17
17
  * @returns the zone to use, or `""` when invalid
18
18
  *
19
19
  * @example normalizeTimeZone(undefined) // "UTC"
20
- * @example normalizeTimeZone("local") // system zone, e.g. "America/New_York"
20
+ * @example normalizeTimeZone("local") // system zone, e.g. "Asia/Tokyo"
21
21
  * @example normalizeTimeZone("Europe/Helsinki") // "Europe/Helsinki"
22
22
  * @example normalizeTimeZone("America/New_Yrok") // ""
23
23
  */
@@ -19,7 +19,7 @@ import { isValidTimeZone } from "../zoned/validate/index.js";
19
19
  * @returns the zone to use, or `""` when invalid
20
20
  *
21
21
  * @example normalizeTimeZone(undefined) // "UTC"
22
- * @example normalizeTimeZone("local") // system zone, e.g. "America/New_York"
22
+ * @example normalizeTimeZone("local") // system zone, e.g. "Asia/Tokyo"
23
23
  * @example normalizeTimeZone("Europe/Helsinki") // "Europe/Helsinki"
24
24
  * @example normalizeTimeZone("America/New_Yrok") // ""
25
25
  */
@@ -0,0 +1,56 @@
1
+ import type { Disambiguation } from "../types/index.js";
2
+ import type { ZoneFrame } from "./zoneFrame.js";
3
+ /**
4
+ * A frame's offset as constant stretches over `[fromNs, toNs]`. `offsets[i]` holds from
5
+ * `changes[i - 1]` (or `fromNs`) up to, not including, `changes[i]`; it includes
6
+ * `frame.shiftNanoseconds`. Outside the range the first and last stretch are extended, so a
7
+ * caller reads a time past `toNs` only after `extendTimeline`.
8
+ */
9
+ export type OffsetTimeline = {
10
+ frame: ZoneFrame;
11
+ /** The first instant the timeline was built from. */
12
+ fromNs: bigint;
13
+ /** The last instant whose offset is known to be complete. */
14
+ toNs: bigint;
15
+ /** Epoch nanoseconds of each offset change, ascending. */
16
+ changes: bigint[];
17
+ offsets: bigint[];
18
+ };
19
+ /**
20
+ * Build the timeline of `frame` over `[fromNs, toNs]`. A fixed-offset frame (an offset zone,
21
+ * `UTC`, an offset with seconds) is one stretch and runs no search, unless `maxChanges` is given.
22
+ *
23
+ * With `maxChanges`, a range holding more changes than that returns `null` as soon as the
24
+ * `maxChanges + 1`th is found, without searching further.
25
+ *
26
+ * Throws what Temporal throws for an instant outside its range; callers keep clear of it.
27
+ */
28
+ export declare function offsetTimeline(frame: ZoneFrame, fromNs: bigint, toNs: bigint): OffsetTimeline;
29
+ export declare function offsetTimeline(frame: ZoneFrame, fromNs: bigint, toNs: bigint, maxChanges: number): OffsetTimeline | null;
30
+ /**
31
+ * Make `timeline` complete up to `ns`, reading ahead so a walk that advances a day at a time
32
+ * searches in chunks: it grows by at least its own length, up to three years.
33
+ */
34
+ export declare function ensureTimeline(timeline: OffsetTimeline, ns: bigint): void;
35
+ /** The offset in force at `ns`, in nanoseconds east of UTC. */
36
+ export declare function offsetOf(timeline: OffsetTimeline, ns: bigint): bigint;
37
+ /**
38
+ * TC39 `GetPossibleEpochNanoseconds`, read from the timeline: the instants whose wall clock is
39
+ * `wallNs` (the wall clock read as UTC), ascending. A stretch contributes `wallNs - offset` when
40
+ * that instant lies in the stretch; offsets differ by well under two days, so only the stretches
41
+ * within two days either side can.
42
+ */
43
+ export declare function possibleAt(timeline: OffsetTimeline, wallNs: bigint): bigint[];
44
+ /**
45
+ * TC39 `GetEpochNanosecondsFor`: the instant a wall clock names, by
46
+ * `DisambiguatePossibleEpochNanoseconds`. One candidate is the answer; two give the first
47
+ * (`"compatible"`, `"earlier"`) or last (`"later"`); none moves the wall clock by the offset
48
+ * change, back for `"earlier"` and forward otherwise. `undefined` where `"reject"` refuses.
49
+ * Throws `RangeError` where a moved wall clock names nothing, which no zone's data produces.
50
+ */
51
+ export declare function resolveWallNs(timeline: OffsetTimeline, wallNs: bigint, disambiguation: Disambiguation): bigint | undefined;
52
+ /**
53
+ * TC39 `GetStartOfDay`: the first instant of the local date `epochDay` days from 1970-01-01 -
54
+ * its first candidate for midnight, else (midnight skipped) the change that ends the gap.
55
+ */
56
+ export declare function startOfDayNs(timeline: OffsetTimeline, epochDay: number): bigint;
@@ -0,0 +1,166 @@
1
+ import { Temporal } from "./temporal.js";
2
+ import { NANOSECONDS_PER_DAY } from "./foreignEpochs.js";
3
+ import { isNamedTimeZone } from "./zonedWallClock.js";
4
+ import { zonedNextTransition } from "./zonedWallClockOperations.js";
5
+ /**
6
+ * The longest span one transition search covers: three 366-day years, the horizon the
7
+ * polyfill-compatible search keeps with or without a limit (TC39 `GetNamedTimeZoneNextTransition`
8
+ * leaves the horizon to the implementation). A search that passes `until` inside it is exact.
9
+ */
10
+ const MAX_SEARCH_SPAN = 3n * 366n * NANOSECONDS_PER_DAY;
11
+ export function offsetTimeline(frame, fromNs, toNs, maxChanges) {
12
+ const first = new Temporal.ZonedDateTime(fromNs, frame.timeZone);
13
+ const timeline = {
14
+ frame,
15
+ fromNs,
16
+ toNs: fromNs,
17
+ changes: [],
18
+ offsets: [BigInt(first.offsetNanoseconds) + frame.shiftNanoseconds],
19
+ };
20
+ return extendTimeline(timeline, toNs, maxChanges) ? timeline : null;
21
+ }
22
+ /**
23
+ * Grow `timeline` so that it is complete up to `toNs`, one search of at most three years at a
24
+ * time, or one search per change up to `toNs` under `maxChanges`. Each search passes `until`,
25
+ * so it never stops at a clock-based horizon short of it. Returns `false` once the timeline holds
26
+ * more than `maxChanges` changes.
27
+ */
28
+ function extendTimeline(timeline, toNs, maxChanges = Infinity) {
29
+ const { frame } = timeline;
30
+ if (toNs <= timeline.toNs) {
31
+ return true;
32
+ }
33
+ if (maxChanges !== Infinity) {
34
+ // A capped walk asks the zone for each next change up to `toNs`, one search per change, even
35
+ // for a fixed offset, so the cap counts what the zone reports and the search reaches no
36
+ // further than the caller's range.
37
+ let at = new Temporal.ZonedDateTime(timeline.toNs, frame.timeZone);
38
+ for (;;) {
39
+ const next = zonedNextTransition(at, toNs);
40
+ if (next === null) {
41
+ break;
42
+ }
43
+ timeline.changes.push(next.epochNanoseconds);
44
+ timeline.offsets.push(BigInt(next.offsetNanoseconds) + frame.shiftNanoseconds);
45
+ at = next;
46
+ if (timeline.changes.length > maxChanges) {
47
+ return false;
48
+ }
49
+ }
50
+ }
51
+ else if (isNamedTimeZone(frame.timeZone)) {
52
+ let chunkStart = timeline.toNs;
53
+ while (chunkStart < toNs) {
54
+ const chunkEnd = toNs - chunkStart > MAX_SEARCH_SPAN
55
+ ? chunkStart + MAX_SEARCH_SPAN
56
+ : toNs;
57
+ let at = new Temporal.ZonedDateTime(chunkStart, frame.timeZone);
58
+ for (;;) {
59
+ const next = zonedNextTransition(at, chunkEnd);
60
+ if (next === null) {
61
+ break;
62
+ }
63
+ timeline.changes.push(next.epochNanoseconds);
64
+ timeline.offsets.push(BigInt(next.offsetNanoseconds) + frame.shiftNanoseconds);
65
+ at = next;
66
+ }
67
+ chunkStart = chunkEnd;
68
+ }
69
+ }
70
+ timeline.toNs = toNs;
71
+ return true;
72
+ }
73
+ /**
74
+ * Make `timeline` complete up to `ns`, reading ahead so a walk that advances a day at a time
75
+ * searches in chunks: it grows by at least its own length, up to three years.
76
+ */
77
+ export function ensureTimeline(timeline, ns) {
78
+ if (ns <= timeline.toNs) {
79
+ return;
80
+ }
81
+ const length = timeline.toNs - timeline.fromNs;
82
+ const step = length > MAX_SEARCH_SPAN ? MAX_SEARCH_SPAN : length;
83
+ extendTimeline(timeline, ns > timeline.toNs + step ? ns : timeline.toNs + step);
84
+ }
85
+ /** Index of the stretch holding `ns`: the number of changes at or before it. */
86
+ function stretchAt(timeline, ns) {
87
+ const { changes } = timeline;
88
+ let low = 0;
89
+ let high = changes.length;
90
+ while (low < high) {
91
+ const middle = (low + high) >>> 1;
92
+ if (changes[middle] <= ns) {
93
+ low = middle + 1;
94
+ }
95
+ else {
96
+ high = middle;
97
+ }
98
+ }
99
+ return low;
100
+ }
101
+ /** The offset in force at `ns`, in nanoseconds east of UTC. */
102
+ export function offsetOf(timeline, ns) {
103
+ return timeline.offsets[stretchAt(timeline, ns)];
104
+ }
105
+ /**
106
+ * TC39 `GetPossibleEpochNanoseconds`, read from the timeline: the instants whose wall clock is
107
+ * `wallNs` (the wall clock read as UTC), ascending. A stretch contributes `wallNs - offset` when
108
+ * that instant lies in the stretch; offsets differ by well under two days, so only the stretches
109
+ * within two days either side can.
110
+ */
111
+ export function possibleAt(timeline, wallNs) {
112
+ const { changes, offsets } = timeline;
113
+ const last = stretchAt(timeline, wallNs + 2n * NANOSECONDS_PER_DAY);
114
+ const possible = [];
115
+ for (let index = stretchAt(timeline, wallNs - 2n * NANOSECONDS_PER_DAY); index <= last; index++) {
116
+ const instant = wallNs - offsets[index];
117
+ if ((index === 0 || instant >= changes[index - 1]) &&
118
+ (index === changes.length || instant < changes[index])) {
119
+ possible.push(instant);
120
+ }
121
+ }
122
+ return possible;
123
+ }
124
+ /**
125
+ * TC39 `GetEpochNanosecondsFor`: the instant a wall clock names, by
126
+ * `DisambiguatePossibleEpochNanoseconds`. One candidate is the answer; two give the first
127
+ * (`"compatible"`, `"earlier"`) or last (`"later"`); none moves the wall clock by the offset
128
+ * change, back for `"earlier"` and forward otherwise. `undefined` where `"reject"` refuses.
129
+ * Throws `RangeError` where a moved wall clock names nothing, which no zone's data produces.
130
+ */
131
+ export function resolveWallNs(timeline, wallNs, disambiguation) {
132
+ const possible = possibleAt(timeline, wallNs);
133
+ if (possible.length === 1) {
134
+ return possible[0];
135
+ }
136
+ if (disambiguation === "reject") {
137
+ return undefined;
138
+ }
139
+ if (possible.length > 1) {
140
+ return disambiguation === "later"
141
+ ? possible[possible.length - 1]
142
+ : possible[0];
143
+ }
144
+ const change = offsetOf(timeline, wallNs + NANOSECONDS_PER_DAY) -
145
+ offsetOf(timeline, wallNs - NANOSECONDS_PER_DAY);
146
+ const shifted = possibleAt(timeline, disambiguation === "earlier" ? wallNs - change : wallNs + change);
147
+ if (shifted.length === 0) {
148
+ throw new RangeError("the wall clock cannot be resolved");
149
+ }
150
+ return disambiguation === "earlier"
151
+ ? shifted[0]
152
+ : shifted[shifted.length - 1];
153
+ }
154
+ /**
155
+ * TC39 `GetStartOfDay`: the first instant of the local date `epochDay` days from 1970-01-01 -
156
+ * its first candidate for midnight, else (midnight skipped) the change that ends the gap.
157
+ */
158
+ export function startOfDayNs(timeline, epochDay) {
159
+ const midnight = BigInt(epochDay) * NANOSECONDS_PER_DAY;
160
+ const possible = possibleAt(timeline, midnight);
161
+ if (possible.length > 0) {
162
+ return possible[0];
163
+ }
164
+ const { changes } = timeline;
165
+ return changes[stretchAt(timeline, midnight - NANOSECONDS_PER_DAY)];
166
+ }