@northguild/gmt 1.18.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 (1283) hide show
  1. package/README.md +55 -2920
  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 +19 -11
  13. package/dist/calendar/calculate/bucketRange.js +27 -70
  14. package/dist/calendar/calculate/floorToZone.d.ts +12 -4
  15. package/dist/calendar/calculate/floorToZone.js +16 -8
  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 +9 -3
  21. package/dist/calendar/hours/addOperatingTime.js +10 -4
  22. package/dist/calendar/hours/isOpenAt.d.ts +9 -3
  23. package/dist/calendar/hours/isOpenAt.js +9 -3
  24. package/dist/calendar/hours/nextCloseAt.d.ts +8 -2
  25. package/dist/calendar/hours/nextCloseAt.js +9 -3
  26. package/dist/calendar/hours/nextOpenAt.d.ts +9 -3
  27. package/dist/calendar/hours/nextOpenAt.js +10 -4
  28. package/dist/calendar/hours/operatingIntervals.d.ts +7 -2
  29. package/dist/calendar/hours/operatingIntervals.js +9 -6
  30. package/dist/calendar/hours/operatingTimeBetween.d.ts +8 -3
  31. package/dist/calendar/hours/operatingTimeBetween.js +11 -8
  32. package/dist/calendar/hours/recurringWindows.d.ts +13 -6
  33. package/dist/calendar/hours/recurringWindows.js +21 -14
  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.d.ts +47 -0
  51. package/dist/duration/calculate/durationFromUnits.js +67 -0
  52. package/dist/duration/calculate/getDurationSign.js +1 -1
  53. package/dist/duration/calculate/getDurationUnit.d.ts +3 -3
  54. package/dist/duration/calculate/getDurationUnit.js +3 -3
  55. package/dist/duration/calculate/index.d.ts +3 -1
  56. package/dist/duration/calculate/index.js +3 -1
  57. package/dist/duration/calculate/negateDuration.d.ts +1 -1
  58. package/dist/duration/calculate/negateDuration.js +2 -2
  59. package/dist/duration/calculate/subtractDuration.js +1 -1
  60. package/dist/duration/calculate/{durationAs.d.ts → totalDuration.d.ts} +27 -21
  61. package/dist/duration/calculate/{durationAs.js → totalDuration.js} +27 -21
  62. package/dist/duration/calculate/totalUnits.d.ts +49 -0
  63. package/dist/duration/calculate/totalUnits.js +73 -0
  64. package/dist/duration/compare/compareDurations.d.ts +4 -4
  65. package/dist/duration/compare/compareDurations.js +4 -4
  66. package/dist/duration/format/formatDuration.d.ts +9 -9
  67. package/dist/duration/format/formatDuration.js +14 -13
  68. package/dist/duration/index.d.ts +1 -1
  69. package/dist/duration/index.js +2 -2
  70. package/dist/duration/normalize/normalizeDuration.d.ts +3 -3
  71. package/dist/duration/normalize/normalizeDuration.js +3 -3
  72. package/dist/duration/parse/parseDuration.d.ts +1 -1
  73. package/dist/duration/parse/parseDuration.js +1 -1
  74. package/dist/duration/validate/isValidDuration.js +2 -11
  75. package/dist/gnss/convert/gnssToUtc.d.ts +24 -0
  76. package/dist/gnss/convert/gnssToUtc.js +39 -0
  77. package/dist/gnss/convert/gnssWeekToUtc.d.ts +53 -0
  78. package/dist/gnss/convert/gnssWeekToUtc.js +80 -0
  79. package/dist/gnss/convert/index.d.ts +6 -0
  80. package/dist/gnss/convert/index.js +6 -0
  81. package/dist/gnss/convert/rinexWeekToUtc.d.ts +34 -0
  82. package/dist/gnss/convert/rinexWeekToUtc.js +57 -0
  83. package/dist/gnss/convert/utcToGnss.d.ts +38 -0
  84. package/dist/gnss/convert/utcToGnss.js +53 -0
  85. package/dist/gnss/convert/utcToGnssWeek.d.ts +24 -0
  86. package/dist/gnss/convert/utcToGnssWeek.js +40 -0
  87. package/dist/gnss/convert/utcToRinexWeek.d.ts +19 -0
  88. package/dist/gnss/convert/utcToRinexWeek.js +45 -0
  89. package/dist/gnss/index.d.ts +2 -0
  90. package/dist/gnss/index.js +3 -0
  91. package/dist/index.d.ts +4 -1
  92. package/dist/index.js +4 -1
  93. package/dist/instant/convert/classifyLocal.d.ts +9 -5
  94. package/dist/instant/convert/classifyLocal.js +19 -20
  95. package/dist/instant/convert/fromOffsetInstant.d.ts +8 -4
  96. package/dist/instant/convert/fromOffsetInstant.js +11 -6
  97. package/dist/instant/convert/resolveLocal.d.ts +16 -11
  98. package/dist/instant/convert/resolveLocal.js +25 -17
  99. package/dist/instant/convert/toOffsetInstant.d.ts +23 -19
  100. package/dist/instant/convert/toOffsetInstant.js +29 -38
  101. package/dist/instant/index.d.ts +2 -1
  102. package/dist/instant/index.js +3 -2
  103. package/dist/instant/validate/index.d.ts +1 -0
  104. package/dist/instant/validate/index.js +1 -0
  105. package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
  106. package/dist/instant/validate/isValidUtcOffset.js +35 -0
  107. package/dist/intermodal/calculate/billingTimeline.js +1 -1
  108. package/dist/intermodal/calculate/chargeableDays.d.ts +18 -12
  109. package/dist/intermodal/calculate/chargeableDays.js +27 -18
  110. package/dist/intermodal/calculate/demurrageClock.d.ts +1 -1
  111. package/dist/intermodal/calculate/demurrageClock.js +2 -2
  112. package/dist/intermodal/calculate/freeTimeExpiry.d.ts +17 -10
  113. package/dist/intermodal/calculate/freeTimeExpiry.js +32 -17
  114. package/dist/intermodal/calculate/index.d.ts +1 -0
  115. package/dist/intermodal/calculate/index.js +1 -0
  116. package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
  117. package/dist/intermodal/calculate/multimodalETA.js +145 -0
  118. package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
  119. package/dist/intermodal/format/bolTimestamp.js +78 -0
  120. package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
  121. package/dist/intermodal/format/formatEdifactDate.js +42 -0
  122. package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
  123. package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
  124. package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
  125. package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
  126. package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
  127. package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
  128. package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
  129. package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
  130. package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
  131. package/dist/intermodal/format/formatEdifactTime.js +43 -0
  132. package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
  133. package/dist/intermodal/format/formatEpcisEvent.js +79 -0
  134. package/dist/intermodal/format/formatX12Date.d.ts +35 -0
  135. package/dist/intermodal/format/formatX12Date.js +43 -0
  136. package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
  137. package/dist/intermodal/format/formatX12DateRange.js +45 -0
  138. package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
  139. package/dist/intermodal/format/formatX12DateTime.js +47 -0
  140. package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
  141. package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
  142. package/dist/intermodal/format/formatX12Time.d.ts +42 -0
  143. package/dist/intermodal/format/formatX12Time.js +50 -0
  144. package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
  145. package/dist/intermodal/format/formatX12TimeElement.js +54 -0
  146. package/dist/intermodal/format/index.d.ts +14 -0
  147. package/dist/intermodal/format/index.js +14 -0
  148. package/dist/intermodal/index.d.ts +4 -1
  149. package/dist/intermodal/index.js +5 -2
  150. package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
  151. package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
  152. package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
  153. package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
  154. package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
  155. package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
  156. package/dist/intermodal/parse/index.d.ts +18 -0
  157. package/dist/intermodal/parse/index.js +18 -0
  158. package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
  159. package/dist/intermodal/parse/parseEdifactDate.js +45 -0
  160. package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
  161. package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
  162. package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
  163. package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
  164. package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
  165. package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
  166. package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
  167. package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
  168. package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
  169. package/dist/intermodal/parse/parseEdifactTime.js +45 -0
  170. package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
  171. package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
  172. package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
  173. package/dist/intermodal/parse/parseX12Date.js +47 -0
  174. package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
  175. package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
  176. package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
  177. package/dist/intermodal/parse/parseX12DateRange.js +52 -0
  178. package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
  179. package/dist/intermodal/parse/parseX12DateTime.js +53 -0
  180. package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
  181. package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
  182. package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
  183. package/dist/intermodal/parse/parseX12Time.js +77 -0
  184. package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
  185. package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
  186. package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
  187. package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
  188. package/dist/intermodal/validate/index.d.ts +18 -0
  189. package/dist/intermodal/validate/index.js +18 -0
  190. package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
  191. package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
  192. package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
  193. package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
  194. package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
  195. package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
  196. package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
  197. package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
  198. package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
  199. package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
  200. package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
  201. package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
  202. package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
  203. package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
  204. package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
  205. package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
  206. package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
  207. package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
  208. package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
  209. package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
  210. package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
  211. package/dist/intermodal/validate/isValidX12Date.js +30 -0
  212. package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
  213. package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
  214. package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
  215. package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
  216. package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
  217. package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
  218. package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
  219. package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
  220. package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
  221. package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
  222. package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
  223. package/dist/intermodal/validate/isValidX12Time.js +40 -0
  224. package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
  225. package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
  226. package/dist/internal/advanceToWeekday.d.ts +1 -1
  227. package/dist/internal/businessCalendar.d.ts +28 -12
  228. package/dist/internal/businessCalendar.js +131 -125
  229. package/dist/internal/businessDayValues.js +1 -1
  230. package/dist/internal/calendarDatePairPolicy.d.ts +1 -1
  231. package/dist/internal/calendarDateString.d.ts +1 -1
  232. package/dist/internal/calendarDateString.js +1 -1
  233. package/dist/internal/calendarSystemIds.js +1 -1
  234. package/dist/internal/calendarValueOfDate.js +1 -1
  235. package/dist/internal/calendarZonedPairPolicy.d.ts +1 -1
  236. package/dist/internal/calendarZonedString.d.ts +3 -3
  237. package/dist/internal/calendarZonedString.js +4 -4
  238. package/dist/internal/compareUnixEpochs.js +1 -1
  239. package/dist/internal/cutoffAtResolved.d.ts +62 -0
  240. package/dist/internal/cutoffAtResolved.js +162 -0
  241. package/dist/internal/cycleFieldValue.d.ts +0 -2
  242. package/dist/internal/cycleFieldValue.js +0 -2
  243. package/dist/internal/dateTimeUnitHelpers.d.ts +1 -1
  244. package/dist/internal/dateUnitHelpers.d.ts +1 -1
  245. package/dist/internal/daylightTime.d.ts +1 -1
  246. package/dist/internal/differenceRecord.d.ts +1 -1
  247. package/dist/internal/durationUntilString.d.ts +1 -1
  248. package/dist/internal/durationUntilString.js +1 -1
  249. package/dist/internal/dutyEngine.d.ts +125 -0
  250. package/dist/internal/dutyEngine.js +1755 -0
  251. package/dist/internal/dutyLog.d.ts +27 -0
  252. package/dist/internal/dutyLog.js +47 -0
  253. package/dist/internal/dutyPeriods.d.ts +135 -0
  254. package/dist/internal/dutyPeriods.js +375 -0
  255. package/dist/internal/dutyRules.d.ts +198 -0
  256. package/dist/internal/dutyRules.js +484 -0
  257. package/dist/internal/dutyRunIndex.d.ts +150 -0
  258. package/dist/internal/dutyRunIndex.js +398 -0
  259. package/dist/internal/earlierOccurrence.d.ts +41 -0
  260. package/dist/internal/earlierOccurrence.js +57 -0
  261. package/dist/internal/ediDateTimeFields.d.ts +97 -0
  262. package/dist/internal/ediDateTimeFields.js +288 -0
  263. package/dist/internal/ediDateTimeWriter.d.ts +92 -0
  264. package/dist/internal/ediDateTimeWriter.js +298 -0
  265. package/dist/internal/ediGrammar.d.ts +158 -0
  266. package/dist/internal/ediGrammar.js +384 -0
  267. package/dist/internal/englishCalendarNames.d.ts +4 -2
  268. package/dist/internal/englishCalendarNames.js +3 -1
  269. package/dist/internal/epochDay.d.ts +41 -0
  270. package/dist/internal/epochDay.js +129 -0
  271. package/dist/internal/exactDuration.js +1 -1
  272. package/dist/internal/exactMoment.d.ts +4 -4
  273. package/dist/internal/exactMoment.js +5 -5
  274. package/dist/internal/fiscalCalendar.d.ts +41 -7
  275. package/dist/internal/fiscalCalendar.js +77 -9
  276. package/dist/internal/foreignEpochs.d.ts +5 -0
  277. package/dist/internal/foreignEpochs.js +5 -0
  278. package/dist/internal/formatCalendarDays.d.ts +4 -4
  279. package/dist/internal/formatCalendarDays.js +6 -5
  280. package/dist/internal/formatDateInCalendar.d.ts +1 -1
  281. package/dist/internal/formatRelativeDuration.d.ts +7 -7
  282. package/dist/internal/formatRelativeDuration.js +8 -7
  283. package/dist/internal/formatterCache.d.ts +40 -0
  284. package/dist/internal/formatterCache.js +181 -0
  285. package/dist/internal/freeTimeLedger.d.ts +35 -42
  286. package/dist/internal/freeTimeLedger.js +332 -31
  287. package/dist/internal/getLocaleWeekYearBounds.d.ts +1 -1
  288. package/dist/internal/gnssTimeScales.d.ts +53 -0
  289. package/dist/internal/gnssTimeScales.js +128 -0
  290. package/dist/internal/gnssWeek.d.ts +92 -0
  291. package/dist/internal/gnssWeek.js +212 -0
  292. package/dist/internal/halfOpenIntervals.d.ts +1 -1
  293. package/dist/internal/halfOpenIntervals.js +1 -1
  294. package/dist/internal/hasCalendarAnnotation.d.ts +3 -3
  295. package/dist/internal/hasCalendarAnnotation.js +3 -3
  296. package/dist/internal/hourDurationString.js +1 -1
  297. package/dist/internal/httpDateFields.js +1 -1
  298. package/dist/internal/index.d.ts +14 -5
  299. package/dist/internal/index.js +18 -5
  300. package/dist/internal/inputChecks.d.ts +53 -0
  301. package/dist/internal/inputChecks.js +132 -0
  302. package/dist/internal/instantFormatOptions.d.ts +1 -1
  303. package/dist/internal/instantFormatOptions.js +4 -8
  304. package/dist/internal/instantIntervalText.js +1 -1
  305. package/dist/internal/instantNanoseconds.d.ts +2 -2
  306. package/dist/internal/instantNanoseconds.js +2 -2
  307. package/dist/internal/intervalCountHelpers.d.ts +1 -1
  308. package/dist/internal/intervalNanoseconds.js +2 -1
  309. package/dist/internal/isObject.d.ts +13 -6
  310. package/dist/internal/isObject.js +14 -7
  311. package/dist/internal/isoStringBody.d.ts +2 -2
  312. package/dist/internal/isoStringBody.js +2 -2
  313. package/dist/internal/isoYearString.d.ts +21 -0
  314. package/dist/internal/isoYearString.js +27 -0
  315. package/dist/internal/joinDateTimeConnector.js +3 -2
  316. package/dist/internal/leapSeconds.d.ts +63 -0
  317. package/dist/internal/leapSeconds.js +162 -0
  318. package/dist/internal/localeWeekInfo.d.ts +1 -1
  319. package/dist/internal/localeWeekInfo.js +1 -1
  320. package/dist/internal/maxPieces.js +2 -1
  321. package/dist/internal/monthGridWeekRow.d.ts +1 -1
  322. package/dist/internal/normalizeDateTime.d.ts +2 -1
  323. package/dist/internal/normalizeDateTime.js +3 -2
  324. package/dist/internal/normalizeTimeZone.d.ts +5 -2
  325. package/dist/internal/normalizeTimeZone.js +5 -2
  326. package/dist/internal/offsetTimeline.d.ts +56 -0
  327. package/dist/internal/offsetTimeline.js +166 -0
  328. package/dist/internal/operatingSchedule.d.ts +39 -34
  329. package/dist/internal/operatingSchedule.js +672 -222
  330. package/dist/internal/patternToken.d.ts +10 -3
  331. package/dist/internal/patternToken.js +41 -19
  332. package/dist/internal/plainDateAdd.d.ts +1 -1
  333. package/dist/internal/plainDateAdd.js +1 -1
  334. package/dist/internal/plainDateUntil.d.ts +1 -1
  335. package/dist/internal/plainDateUntil.js +1 -1
  336. package/dist/internal/readDurationUnits.d.ts +34 -0
  337. package/dist/internal/readDurationUnits.js +78 -0
  338. package/dist/internal/readSetFields.d.ts +50 -0
  339. package/dist/internal/readSetFields.js +179 -0
  340. package/dist/internal/resolveDurationRelativeTo.d.ts +1 -1
  341. package/dist/internal/resolveDurationRelativeTo.js +1 -1
  342. package/dist/internal/resolveLocale.d.ts +2 -2
  343. package/dist/internal/resolveLocale.js +2 -2
  344. package/dist/internal/resolveManualRoundingOptions.d.ts +1 -1
  345. package/dist/internal/resolveRelativeUnit.d.ts +1 -1
  346. package/dist/internal/resolveRelativeUnit.js +1 -1
  347. package/dist/internal/resolveUnixIntervalPair.d.ts +9 -3
  348. package/dist/internal/resolveUnixIntervalPair.js +11 -7
  349. package/dist/internal/rinexWeek.d.ts +22 -0
  350. package/dist/internal/rinexWeek.js +30 -0
  351. package/dist/internal/rollBusinessDate.d.ts +15 -0
  352. package/dist/internal/rollBusinessDate.js +46 -0
  353. package/dist/internal/splitStep.d.ts +1 -1
  354. package/dist/internal/splitStep.js +1 -1
  355. package/dist/internal/startOrEndOfUnix.d.ts +3 -2
  356. package/dist/internal/startOrEndOfUnix.js +9 -6
  357. package/dist/internal/startOrEndOfUtc.d.ts +1 -1
  358. package/dist/internal/startOrEndOfUtc.js +1 -1
  359. package/dist/internal/startOrEndOfZoned.d.ts +1 -1
  360. package/dist/internal/temporal.d.ts +5 -0
  361. package/dist/internal/temporal.js +5 -0
  362. package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +1 -1
  363. package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +1 -1
  364. package/dist/internal/temporalCompat/calendarDateFromFields.js +1 -1
  365. package/dist/internal/temporalCompat/calendarFields.d.ts +1 -1
  366. package/dist/internal/temporalCompat/capabilities.d.ts +27 -5
  367. package/dist/internal/temporalCompat/capabilities.js +28 -4
  368. package/dist/internal/temporalCompat/fieldSearch.d.ts +1 -1
  369. package/dist/internal/temporalCompat/fieldSearch.js +1 -1
  370. package/dist/internal/temporalCompat/fixedDay.d.ts +1 -1
  371. package/dist/internal/temporalCompat/fixedDay.js +1 -1
  372. package/dist/internal/temporalCompat/index.d.ts +1 -1
  373. package/dist/internal/temporalCompat/index.js +1 -1
  374. package/dist/internal/temporalCompat/largeMonthSpan.js +1 -1
  375. package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +1 -1
  376. package/dist/internal/temporalCompat/nonIsoArithmetic.js +1 -1
  377. package/dist/internal/temporalCompat/probeRepros.d.ts +35 -0
  378. package/dist/internal/temporalCompat/probeRepros.js +571 -0
  379. package/dist/internal/temporalCompat/readArithmeticModel.js +2 -2
  380. package/dist/internal/temporalCompat/repros.d.ts +3 -10
  381. package/dist/internal/temporalCompat/repros.js +13 -520
  382. package/dist/internal/timeScaleString.d.ts +47 -0
  383. package/dist/internal/timeScaleString.js +86 -0
  384. package/dist/internal/toInstantFromUtc.d.ts +1 -1
  385. package/dist/internal/toInstantFromUtc.js +1 -1
  386. package/dist/internal/twoDigitYear.d.ts +19 -0
  387. package/dist/internal/twoDigitYear.js +22 -0
  388. package/dist/internal/unixEpochValue.d.ts +1 -1
  389. package/dist/internal/unixEpochValue.js +4 -3
  390. package/dist/internal/unixFormatReference.d.ts +1 -1
  391. package/dist/internal/unixFormatReference.js +1 -1
  392. package/dist/internal/unixWallClock.d.ts +24 -0
  393. package/dist/internal/unixWallClock.js +35 -0
  394. package/dist/internal/utcOffsetString.d.ts +16 -0
  395. package/dist/internal/utcOffsetString.js +31 -1
  396. package/dist/internal/utcReading.d.ts +59 -0
  397. package/dist/internal/utcReading.js +113 -0
  398. package/dist/internal/utcWallClock.d.ts +20 -0
  399. package/dist/internal/utcWallClock.js +32 -0
  400. package/dist/internal/validatedZones.d.ts +20 -0
  401. package/dist/internal/validatedZones.js +33 -0
  402. package/dist/internal/wallClockAtOffset.d.ts +1 -1
  403. package/dist/internal/yearWindowStart.d.ts +28 -0
  404. package/dist/internal/yearWindowStart.js +52 -0
  405. package/dist/internal/zoneBucketCap.d.ts +18 -0
  406. package/dist/internal/zoneBucketCap.js +64 -0
  407. package/dist/internal/zoneFrame.d.ts +180 -0
  408. package/dist/internal/zoneFrame.js +221 -0
  409. package/dist/internal/zonedBucket.d.ts +2 -2
  410. package/dist/internal/zonedBucket.js +92 -21
  411. package/dist/internal/zonedFormatReference.d.ts +1 -1
  412. package/dist/internal/zonedFormatReference.js +1 -1
  413. package/dist/internal/zonedLocalDates.d.ts +1 -1
  414. package/dist/internal/zonedLocalDates.js +22 -19
  415. package/dist/internal/zonedNowUnitValue.d.ts +8 -5
  416. package/dist/internal/zonedNowUnitValue.js +9 -5
  417. package/dist/internal/zonedTransitionSearch.d.ts +2 -0
  418. package/dist/internal/zonedTransitionSearch.js +165 -16
  419. package/dist/internal/zonedWallClock.d.ts +15 -4
  420. package/dist/internal/zonedWallClock.js +34 -6
  421. package/dist/internal/zonedWallClockDifference.d.ts +1 -1
  422. package/dist/internal/zonedWallClockDifference.js +6 -6
  423. package/dist/internal/zonedWallClockOperations.d.ts +7 -4
  424. package/dist/internal/zonedWallClockOperations.js +58 -16
  425. package/dist/internal/zonelessCalendarDate.d.ts +1 -1
  426. package/dist/internal/zonelessCalendarDate.js +1 -1
  427. package/dist/interval/index.d.ts +1 -1
  428. package/dist/interval/index.js +2 -2
  429. package/dist/plain/calculate/addBusinessDays.d.ts +2 -2
  430. package/dist/plain/calculate/addBusinessDays.js +2 -2
  431. package/dist/plain/calculate/addDate.js +4 -7
  432. package/dist/plain/calculate/addDateTime.js +5 -8
  433. package/dist/plain/calculate/addTime.js +5 -8
  434. package/dist/plain/calculate/clampDate.js +1 -1
  435. package/dist/plain/calculate/closestDateTo.js +1 -1
  436. package/dist/plain/calculate/cycleDate.js +1 -1
  437. package/dist/plain/calculate/cycleDateTime.js +1 -1
  438. package/dist/plain/calculate/cycleTime.js +1 -1
  439. package/dist/plain/calculate/diffDate.d.ts +1 -1
  440. package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
  441. package/dist/plain/calculate/diffDateTime.d.ts +1 -1
  442. package/dist/plain/calculate/diffDateTime.js +1 -1
  443. package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
  444. package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
  445. package/dist/plain/calculate/diffTime.d.ts +1 -1
  446. package/dist/plain/calculate/diffTime.js +1 -1
  447. package/dist/plain/calculate/endOfDate.d.ts +1 -1
  448. package/dist/plain/calculate/endOfDate.js +1 -1
  449. package/dist/plain/calculate/endOfDateTime.d.ts +1 -1
  450. package/dist/plain/calculate/endOfDateTime.js +1 -1
  451. package/dist/plain/calculate/endOfQuarterForDate.js +1 -1
  452. package/dist/plain/calculate/endOfQuarterForDateTime.js +1 -1
  453. package/dist/plain/calculate/endOfTime.d.ts +2 -2
  454. package/dist/plain/calculate/endOfTime.js +1 -1
  455. package/dist/plain/calculate/getDayOfYear.js +1 -1
  456. package/dist/plain/calculate/getDaysInMonth.js +1 -1
  457. package/dist/plain/calculate/getDaysInYear.js +1 -1
  458. package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +1 -1
  459. package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +1 -1
  460. package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +1 -1
  461. package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +6 -6
  462. package/dist/plain/calculate/getLocaleDayOfWeek.js +7 -7
  463. package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +4 -4
  464. package/dist/plain/calculate/getLocaleEndOfWeek.js +5 -5
  465. package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +5 -5
  466. package/dist/plain/calculate/getLocaleStartOfWeek.js +6 -6
  467. package/dist/plain/calculate/getLocaleWeekYear.d.ts +10 -10
  468. package/dist/plain/calculate/getLocaleWeekYear.js +11 -11
  469. package/dist/plain/calculate/getQuarterForDate.js +1 -1
  470. package/dist/plain/calculate/getQuarterForDateTime.js +1 -1
  471. package/dist/plain/calculate/getWeekNumber.js +1 -1
  472. package/dist/plain/calculate/getWeekOfMonth.d.ts +10 -14
  473. package/dist/plain/calculate/getWeekOfMonth.js +11 -15
  474. package/dist/plain/calculate/getWeekYear.js +1 -1
  475. package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +7 -7
  476. package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +8 -8
  477. package/dist/plain/calculate/getWeeksInMonth.d.ts +8 -11
  478. package/dist/plain/calculate/getWeeksInMonth.js +9 -12
  479. package/dist/plain/calculate/getWeeksInYear.js +1 -1
  480. package/dist/plain/calculate/maxDate.js +1 -1
  481. package/dist/plain/calculate/maxDateTime.js +1 -1
  482. package/dist/plain/calculate/maxTime.js +1 -1
  483. package/dist/plain/calculate/minDate.js +1 -1
  484. package/dist/plain/calculate/minDateTime.js +1 -1
  485. package/dist/plain/calculate/minTime.js +1 -1
  486. package/dist/plain/calculate/nextWeekday.d.ts +14 -12
  487. package/dist/plain/calculate/nextWeekday.js +15 -13
  488. package/dist/plain/calculate/previousWeekday.d.ts +14 -12
  489. package/dist/plain/calculate/previousWeekday.js +15 -13
  490. package/dist/plain/calculate/roundDate.d.ts +1 -1
  491. package/dist/plain/calculate/roundDate.js +1 -1
  492. package/dist/plain/calculate/roundDateTime.d.ts +1 -1
  493. package/dist/plain/calculate/roundDateTime.js +1 -1
  494. package/dist/plain/calculate/roundTime.d.ts +1 -1
  495. package/dist/plain/calculate/roundTime.js +1 -1
  496. package/dist/plain/calculate/setDate.d.ts +21 -4
  497. package/dist/plain/calculate/setDate.js +28 -8
  498. package/dist/plain/calculate/setDateTime.d.ts +16 -4
  499. package/dist/plain/calculate/setDateTime.js +23 -8
  500. package/dist/plain/calculate/setTime.d.ts +14 -2
  501. package/dist/plain/calculate/setTime.js +22 -7
  502. package/dist/plain/calculate/sortDateTimes.js +1 -1
  503. package/dist/plain/calculate/sortDates.js +1 -1
  504. package/dist/plain/calculate/sortTimes.js +1 -1
  505. package/dist/plain/calculate/startOfDate.d.ts +1 -1
  506. package/dist/plain/calculate/startOfDate.js +1 -1
  507. package/dist/plain/calculate/startOfDateTime.d.ts +1 -1
  508. package/dist/plain/calculate/startOfDateTime.js +1 -1
  509. package/dist/plain/calculate/startOfQuarterForDate.js +1 -1
  510. package/dist/plain/calculate/startOfQuarterForDateTime.js +1 -1
  511. package/dist/plain/calculate/startOfTime.d.ts +2 -2
  512. package/dist/plain/calculate/startOfTime.js +1 -1
  513. package/dist/plain/calculate/subtractBusinessDays.d.ts +2 -2
  514. package/dist/plain/calculate/subtractBusinessDays.js +2 -2
  515. package/dist/plain/calculate/subtractDate.js +5 -8
  516. package/dist/plain/calculate/subtractDateTime.js +5 -8
  517. package/dist/plain/calculate/subtractTime.js +5 -8
  518. package/dist/plain/calculate/weekOfYearForDate.js +1 -1
  519. package/dist/plain/calculate/weekOfYearForDateTime.js +1 -1
  520. package/dist/plain/chop/chopDate.js +1 -1
  521. package/dist/plain/chop/chopMilliseconds.js +1 -1
  522. package/dist/plain/chop/chopSeconds.js +1 -1
  523. package/dist/plain/chop/chopTime.js +1 -1
  524. package/dist/plain/compare/areDateTimesEqual.js +1 -1
  525. package/dist/plain/compare/areDateTimesEqualBy.d.ts +2 -4
  526. package/dist/plain/compare/areDateTimesEqualBy.js +2 -4
  527. package/dist/plain/compare/areDatesEqual.js +1 -1
  528. package/dist/plain/compare/areDatesEqualBy.d.ts +5 -5
  529. package/dist/plain/compare/areDatesEqualBy.js +5 -5
  530. package/dist/plain/compare/areTimesEqual.js +1 -1
  531. package/dist/plain/compare/isAfterDate.js +1 -1
  532. package/dist/plain/compare/isAfterDateTime.js +1 -1
  533. package/dist/plain/compare/isAfterTime.js +1 -1
  534. package/dist/plain/compare/isBeforeDate.js +1 -1
  535. package/dist/plain/compare/isBeforeDateTime.js +1 -1
  536. package/dist/plain/compare/isBeforeTime.js +1 -1
  537. package/dist/plain/compare/isBetweenDate.js +1 -1
  538. package/dist/plain/compare/isBetweenDateTime.js +1 -1
  539. package/dist/plain/compare/isBetweenTime.js +1 -1
  540. package/dist/plain/compare/isBusinessDay.d.ts +2 -2
  541. package/dist/plain/compare/isBusinessDay.js +3 -3
  542. package/dist/plain/compare/isRelativeDay.d.ts +1 -1
  543. package/dist/plain/compare/isRelativeDay.js +1 -1
  544. package/dist/plain/compare/isThisUnit.d.ts +8 -6
  545. package/dist/plain/compare/isThisUnit.js +7 -5
  546. package/dist/plain/compare/isWeekend.d.ts +5 -5
  547. package/dist/plain/compare/isWeekend.js +6 -6
  548. package/dist/plain/format/formatCalendar.d.ts +3 -5
  549. package/dist/plain/format/formatCalendar.js +12 -10
  550. package/dist/plain/format/formatDate.d.ts +4 -4
  551. package/dist/plain/format/formatDate.js +8 -7
  552. package/dist/plain/format/formatDateRange.d.ts +4 -4
  553. package/dist/plain/format/formatDateRange.js +8 -7
  554. package/dist/plain/format/formatDateTime.d.ts +4 -4
  555. package/dist/plain/format/formatDateTime.js +8 -7
  556. package/dist/plain/format/formatDateTimeRange.d.ts +4 -4
  557. package/dist/plain/format/formatDateTimeRange.js +8 -7
  558. package/dist/plain/format/formatDateTimeToParts.d.ts +6 -6
  559. package/dist/plain/format/formatDateTimeToParts.js +10 -9
  560. package/dist/plain/format/formatDateToParts.d.ts +6 -6
  561. package/dist/plain/format/formatDateToParts.js +10 -9
  562. package/dist/plain/format/formatRelativeDate.d.ts +3 -3
  563. package/dist/plain/format/formatRelativeDate.js +6 -5
  564. package/dist/plain/format/formatRelativeDateTime.d.ts +3 -3
  565. package/dist/plain/format/formatRelativeDateTime.js +6 -5
  566. package/dist/plain/format/formatRelativeTime.d.ts +3 -3
  567. package/dist/plain/format/formatRelativeTime.js +6 -5
  568. package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
  569. package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +8 -8
  570. package/dist/plain/format/formatTime.d.ts +4 -4
  571. package/dist/plain/format/formatTime.js +8 -7
  572. package/dist/plain/format/index.d.ts +1 -1
  573. package/dist/plain/format/index.js +1 -1
  574. package/dist/plain/get/getDay.js +1 -1
  575. package/dist/plain/get/getDayOfWeek.js +1 -1
  576. package/dist/plain/get/getHour.js +1 -1
  577. package/dist/plain/get/getMicrosecond.js +1 -1
  578. package/dist/plain/get/getMillisecond.js +1 -1
  579. package/dist/plain/get/getMinute.js +1 -1
  580. package/dist/plain/get/getMonth.js +1 -1
  581. package/dist/plain/get/getNanosecond.js +1 -1
  582. package/dist/plain/get/getNow.js +1 -1
  583. package/dist/plain/get/getNowUnit.d.ts +2 -0
  584. package/dist/plain/get/getNowUnit.js +3 -1
  585. package/dist/plain/get/getSecond.js +1 -1
  586. package/dist/plain/get/getToday.js +1 -1
  587. package/dist/plain/get/getWeekOfYear.js +1 -1
  588. package/dist/plain/get/getYear.d.ts +2 -0
  589. package/dist/plain/get/getYear.js +5 -4
  590. package/dist/plain/index.d.ts +1 -1
  591. package/dist/plain/index.js +2 -2
  592. package/dist/plain/interval/intervalAbutsDate.d.ts +1 -2
  593. package/dist/plain/interval/intervalAbutsDate.js +2 -3
  594. package/dist/plain/interval/intervalAbutsDateTime.js +1 -1
  595. package/dist/plain/interval/intervalAbutsTime.js +1 -1
  596. package/dist/plain/interval/intervalContainsDate.d.ts +1 -1
  597. package/dist/plain/interval/intervalContainsDate.js +2 -2
  598. package/dist/plain/interval/intervalContainsDateTime.js +1 -1
  599. package/dist/plain/interval/intervalContainsTime.js +1 -1
  600. package/dist/plain/interval/intervalCountDate.js +1 -1
  601. package/dist/plain/interval/intervalCountDateTime.js +1 -1
  602. package/dist/plain/interval/intervalCountTime.js +1 -1
  603. package/dist/plain/interval/intervalDifferenceDate.d.ts +1 -1
  604. package/dist/plain/interval/intervalDifferenceDate.js +2 -2
  605. package/dist/plain/interval/intervalDifferenceDateTime.js +1 -1
  606. package/dist/plain/interval/intervalDifferenceTime.js +1 -1
  607. package/dist/plain/interval/intervalDivideEquallyDate.d.ts +3 -3
  608. package/dist/plain/interval/intervalDivideEquallyDate.js +3 -3
  609. package/dist/plain/interval/intervalDivideEquallyDateTime.js +1 -1
  610. package/dist/plain/interval/intervalDivideEquallyTime.js +1 -1
  611. package/dist/plain/interval/intervalEngulfsDate.d.ts +1 -1
  612. package/dist/plain/interval/intervalEngulfsDate.js +2 -2
  613. package/dist/plain/interval/intervalEngulfsDateTime.js +1 -1
  614. package/dist/plain/interval/intervalEngulfsTime.js +1 -1
  615. package/dist/plain/interval/intervalFromDurationDate.js +1 -1
  616. package/dist/plain/interval/intervalFromDurationDateTime.js +1 -1
  617. package/dist/plain/interval/intervalFromDurationTime.js +1 -1
  618. package/dist/plain/interval/intervalIntersectionDate.d.ts +1 -1
  619. package/dist/plain/interval/intervalIntersectionDate.js +2 -2
  620. package/dist/plain/interval/intervalIntersectionDateTime.js +1 -1
  621. package/dist/plain/interval/intervalIntersectionTime.js +1 -1
  622. package/dist/plain/interval/intervalLengthDateTime.js +1 -1
  623. package/dist/plain/interval/intervalLengthTime.js +1 -1
  624. package/dist/plain/interval/intervalOverlappingDaysDate.js +1 -1
  625. package/dist/plain/interval/intervalOverlappingDaysDateTime.js +1 -1
  626. package/dist/plain/interval/intervalSplitAtDate.d.ts +1 -1
  627. package/dist/plain/interval/intervalSplitAtDate.js +2 -2
  628. package/dist/plain/interval/intervalSplitAtDateTime.js +1 -1
  629. package/dist/plain/interval/intervalSplitAtTime.js +1 -1
  630. package/dist/plain/interval/intervalUnionDate.d.ts +2 -2
  631. package/dist/plain/interval/intervalUnionDate.js +3 -3
  632. package/dist/plain/interval/intervalUnionDateTime.js +1 -1
  633. package/dist/plain/interval/intervalUnionTime.js +1 -1
  634. package/dist/plain/interval/intervalXorAllDate.d.ts +1 -1
  635. package/dist/plain/interval/intervalXorAllDate.js +4 -4
  636. package/dist/plain/interval/intervalXorAllDateTime.js +3 -3
  637. package/dist/plain/interval/intervalXorAllTime.js +3 -3
  638. package/dist/plain/interval/intervalXorDate.d.ts +1 -1
  639. package/dist/plain/interval/intervalXorDate.js +2 -2
  640. package/dist/plain/interval/intervalXorDateTime.js +1 -1
  641. package/dist/plain/interval/intervalXorTime.js +1 -1
  642. package/dist/plain/interval/intervalsOverlapDate.d.ts +1 -1
  643. package/dist/plain/interval/intervalsOverlapDate.js +2 -2
  644. package/dist/plain/interval/intervalsOverlapDateTime.js +1 -1
  645. package/dist/plain/interval/intervalsOverlapTime.js +1 -1
  646. package/dist/plain/interval/mergeIntervalsDate.d.ts +1 -1
  647. package/dist/plain/interval/mergeIntervalsDate.js +4 -4
  648. package/dist/plain/interval/mergeIntervalsDateTime.js +3 -3
  649. package/dist/plain/interval/mergeIntervalsTime.js +3 -3
  650. package/dist/plain/interval/splitIntervalByUnitDate.d.ts +2 -3
  651. package/dist/plain/interval/splitIntervalByUnitDate.js +3 -4
  652. package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +2 -1
  653. package/dist/plain/interval/splitIntervalByUnitDateTime.js +3 -2
  654. package/dist/plain/interval/splitIntervalByUnitTime.js +1 -1
  655. package/dist/plain/interval/validate/isValidDateInterval.d.ts +1 -1
  656. package/dist/plain/interval/validate/isValidDateInterval.js +2 -2
  657. package/dist/plain/interval/validate/isValidDateTimeInterval.js +1 -1
  658. package/dist/plain/interval/validate/isValidTimeInterval.js +1 -1
  659. package/dist/plain/locale/getLocaleEraNames.d.ts +6 -6
  660. package/dist/plain/locale/getLocaleEraNames.js +8 -7
  661. package/dist/plain/locale/getLocaleMeridiems.d.ts +5 -5
  662. package/dist/plain/locale/getLocaleMeridiems.js +7 -6
  663. package/dist/plain/locale/getLocaleMonthNames.d.ts +6 -6
  664. package/dist/plain/locale/getLocaleMonthNames.js +17 -11
  665. package/dist/plain/locale/getLocaleWeekdayNames.d.ts +3 -3
  666. package/dist/plain/locale/getLocaleWeekdayNames.js +12 -5
  667. package/dist/plain/map/mapDatesInRange.js +1 -1
  668. package/dist/plain/map/mapDaysInMonth.js +1 -1
  669. package/dist/plain/parse/index.d.ts +1 -1
  670. package/dist/plain/parse/index.js +1 -1
  671. package/dist/plain/parse/parseDateTimeWithPattern.d.ts +28 -14
  672. package/dist/plain/parse/parseDateTimeWithPattern.js +33 -17
  673. package/dist/plain/parse/parseDateWithPattern.d.ts +29 -14
  674. package/dist/plain/parse/parseDateWithPattern.js +34 -17
  675. package/dist/plain/parse/parseDayFromDate.js +1 -1
  676. package/dist/plain/parse/parseDayFromDateTime.js +1 -1
  677. package/dist/plain/parse/parseDayOfWeekFromDate.js +1 -1
  678. package/dist/plain/parse/parseDayOfWeekFromDateTime.js +1 -1
  679. package/dist/plain/parse/parseHourFromDateTime.js +1 -1
  680. package/dist/plain/parse/parseHourFromTime.js +1 -1
  681. package/dist/plain/parse/parseMicrosecondFromDateTime.js +1 -1
  682. package/dist/plain/parse/parseMicrosecondFromTime.js +1 -1
  683. package/dist/plain/parse/parseMillisecondFromDateTime.js +1 -1
  684. package/dist/plain/parse/parseMillisecondFromTime.js +1 -1
  685. package/dist/plain/parse/parseMinuteFromDateTime.js +1 -1
  686. package/dist/plain/parse/parseMinuteFromTime.js +1 -1
  687. package/dist/plain/parse/parseMonthFromDate.js +1 -1
  688. package/dist/plain/parse/parseMonthFromDateTime.js +1 -1
  689. package/dist/plain/parse/parseNanosecondFromDateTime.js +1 -1
  690. package/dist/plain/parse/parseNanosecondFromTime.js +1 -1
  691. package/dist/plain/parse/parseSecondFromDateTime.js +1 -1
  692. package/dist/plain/parse/parseSecondFromTime.js +1 -1
  693. package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
  694. package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +9 -9
  695. package/dist/plain/parse/parseTimeWithPattern.d.ts +6 -4
  696. package/dist/plain/parse/parseTimeWithPattern.js +8 -5
  697. package/dist/plain/parse/parseUnitFromDate.d.ts +4 -1
  698. package/dist/plain/parse/parseUnitFromDate.js +6 -2
  699. package/dist/plain/parse/parseUnitFromDateTime.d.ts +4 -1
  700. package/dist/plain/parse/parseUnitFromDateTime.js +6 -2
  701. package/dist/plain/parse/parseUnitFromTime.d.ts +1 -1
  702. package/dist/plain/parse/parseUnitFromTime.js +1 -1
  703. package/dist/plain/parse/parseWeekFromDateTime.js +1 -1
  704. package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
  705. package/dist/plain/parse/parseYearFromDate.js +8 -4
  706. package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
  707. package/dist/plain/parse/parseYearFromDateTime.js +7 -4
  708. package/dist/plain/validate/{isLeapSecond.d.ts → hasSecond60.d.ts} +16 -14
  709. package/dist/plain/validate/{isLeapSecond.js → hasSecond60.js} +16 -14
  710. package/dist/plain/validate/index.d.ts +2 -1
  711. package/dist/plain/validate/index.js +2 -1
  712. package/dist/plain/validate/isLeapYear.js +1 -1
  713. package/dist/plain/validate/isValidDate.js +2 -17
  714. package/dist/plain/validate/isValidDateRange.js +1 -1
  715. package/dist/plain/validate/isValidDateTime.d.ts +1 -1
  716. package/dist/plain/validate/isValidDateTime.js +4 -4
  717. package/dist/plain/validate/isValidDateTimeRange.js +1 -1
  718. package/dist/plain/validate/isValidIsoDateLike.js +3 -3
  719. package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
  720. package/dist/plain/validate/isValidSqlDateTime.js +36 -0
  721. package/dist/plain/validate/isValidTime.js +2 -18
  722. package/dist/plain/validate/isValidTimeRange.js +1 -1
  723. package/dist/precision/convert/fromNanoseconds.d.ts +11 -5
  724. package/dist/precision/convert/fromNanoseconds.js +12 -6
  725. package/dist/precision/convert/toNanoseconds.d.ts +2 -2
  726. package/dist/precision/convert/toNanoseconds.js +2 -2
  727. package/dist/precision/index.d.ts +1 -1
  728. package/dist/precision/index.js +2 -2
  729. package/dist/precision/validate/isValidInstant.d.ts +1 -1
  730. package/dist/precision/validate/isValidInstant.js +1 -1
  731. package/dist/regex/calendar-zoned-date-time.d.ts +4 -4
  732. package/dist/regex/calendar-zoned-date-time.js +4 -4
  733. package/dist/regex/epcis.d.ts +60 -0
  734. package/dist/regex/epcis.js +60 -0
  735. package/dist/regex/http-date.d.ts +6 -4
  736. package/dist/regex/http-date.js +6 -4
  737. package/dist/regex/index.d.ts +2 -1
  738. package/dist/regex/index.js +3 -2
  739. package/dist/regex/leap-second.d.ts +1 -1
  740. package/dist/regex/leap-second.js +1 -1
  741. package/dist/regex/rfc-2822.d.ts +2 -0
  742. package/dist/regex/rfc-2822.js +2 -0
  743. package/dist/regex/rfc-3339.d.ts +3 -1
  744. package/dist/regex/rfc-3339.js +3 -1
  745. package/dist/regex/sql-date-time.d.ts +2 -1
  746. package/dist/regex/sql-date-time.js +2 -1
  747. package/dist/regex/time-zone-like.d.ts +5 -4
  748. package/dist/regex/time-zone-like.js +5 -4
  749. package/dist/regex/utc-offset.d.ts +2 -1
  750. package/dist/regex/utc-offset.js +2 -1
  751. package/dist/span/calculate/spanMs.d.ts +4 -3
  752. package/dist/span/calculate/spanMs.js +4 -3
  753. package/dist/span/calculate/spanNs.d.ts +4 -3
  754. package/dist/span/calculate/spanNs.js +4 -3
  755. package/dist/span/calculate/spanWallClock.d.ts +12 -12
  756. package/dist/span/calculate/spanWallClock.js +13 -13
  757. package/dist/span/index.d.ts +1 -1
  758. package/dist/span/index.js +2 -2
  759. package/dist/span/validate/isValidSpan.d.ts +3 -3
  760. package/dist/span/validate/isValidSpan.js +3 -3
  761. package/dist/timescale/calculate/index.d.ts +3 -0
  762. package/dist/timescale/calculate/index.js +3 -0
  763. package/dist/timescale/calculate/leapSecondsBetween.d.ts +26 -0
  764. package/dist/timescale/calculate/leapSecondsBetween.js +62 -0
  765. package/dist/timescale/calculate/nextLeapSecond.d.ts +18 -0
  766. package/dist/timescale/calculate/nextLeapSecond.js +33 -0
  767. package/dist/timescale/calculate/taiMinusUtc.d.ts +21 -0
  768. package/dist/timescale/calculate/taiMinusUtc.js +38 -0
  769. package/dist/timescale/convert/fromTAI.d.ts +22 -0
  770. package/dist/timescale/convert/fromTAI.js +35 -0
  771. package/dist/timescale/convert/index.d.ts +2 -0
  772. package/dist/timescale/convert/index.js +2 -0
  773. package/dist/timescale/convert/toTAI.d.ts +23 -0
  774. package/dist/timescale/convert/toTAI.js +39 -0
  775. package/dist/timescale/index.d.ts +4 -0
  776. package/dist/timescale/index.js +5 -0
  777. package/dist/timescale/validate/index.d.ts +1 -0
  778. package/dist/timescale/validate/index.js +1 -0
  779. package/dist/timescale/validate/isLeapSecond.d.ts +25 -0
  780. package/dist/timescale/validate/isLeapSecond.js +36 -0
  781. package/dist/transport/calculate/crossingTime.d.ts +8 -3
  782. package/dist/transport/calculate/crossingTime.js +9 -4
  783. package/dist/transport/calculate/cutoffAt.d.ts +10 -5
  784. package/dist/transport/calculate/cutoffAt.js +26 -133
  785. package/dist/transport/calculate/cutoffSchedule.d.ts +8 -3
  786. package/dist/transport/calculate/cutoffSchedule.js +54 -20
  787. package/dist/transport/calculate/dwellTime.d.ts +9 -4
  788. package/dist/transport/calculate/dwellTime.js +10 -5
  789. package/dist/transport/calculate/estimateDrift.d.ts +1 -1
  790. package/dist/transport/calculate/estimateDrift.js +1 -1
  791. package/dist/transport/calculate/nextDeparture.d.ts +2 -2
  792. package/dist/transport/calculate/nextDeparture.js +2 -2
  793. package/dist/transport/calculate/scheduleDelivery.d.ts +15 -7
  794. package/dist/transport/calculate/scheduleDelivery.js +9 -4
  795. package/dist/transport/calculate/transitTime.d.ts +11 -11
  796. package/dist/transport/calculate/transitTime.js +11 -11
  797. package/dist/transport/compare/classifyPunctuality.d.ts +1 -1
  798. package/dist/transport/compare/classifyPunctuality.js +1 -1
  799. package/dist/transport/compare/isPastCutoff.d.ts +1 -1
  800. package/dist/transport/compare/isPastCutoff.js +2 -2
  801. package/dist/transport/compare/scheduleDeviation.d.ts +1 -1
  802. package/dist/transport/compare/scheduleDeviation.js +1 -1
  803. package/dist/transport/compare/timeToCutoff.d.ts +1 -1
  804. package/dist/transport/compare/timeToCutoff.js +1 -1
  805. package/dist/transport/convert/etaAtZone.d.ts +8 -3
  806. package/dist/transport/convert/etaAtZone.js +8 -3
  807. package/dist/transport/index.d.ts +1 -1
  808. package/dist/transport/index.js +2 -2
  809. package/dist/types/business-calendar.d.ts +5 -4
  810. package/dist/types/date-duration-unit.d.ts +1 -1
  811. package/dist/types/date-time-duration-units.d.ts +1 -1
  812. package/dist/types/date-time-unit.d.ts +1 -1
  813. package/dist/types/date-unit.d.ts +1 -1
  814. package/dist/types/disambiguation.d.ts +1 -1
  815. package/dist/types/duration-relative-to.d.ts +1 -1
  816. package/dist/types/duration-string-options.d.ts +1 -1
  817. package/dist/types/duty.d.ts +777 -0
  818. package/dist/types/duty.js +0 -0
  819. package/dist/types/edi.d.ts +407 -0
  820. package/dist/types/edi.js +0 -0
  821. package/dist/types/epcis.d.ts +25 -0
  822. package/dist/types/epcis.js +0 -0
  823. package/dist/types/exact-duration-unit.d.ts +8 -0
  824. package/dist/types/exact-duration-unit.js +0 -0
  825. package/dist/types/fiscal-calendar.d.ts +40 -4
  826. package/dist/types/free-time-options.d.ts +4 -3
  827. package/dist/types/gnss.d.ts +51 -0
  828. package/dist/types/gnss.js +0 -0
  829. package/dist/types/index.d.ts +7 -0
  830. package/dist/types/index.js +7 -0
  831. package/dist/types/now-unit.d.ts +1 -1
  832. package/dist/types/offset.d.ts +1 -1
  833. package/dist/types/operating-schedule.d.ts +3 -2
  834. package/dist/types/overflow.d.ts +1 -1
  835. package/dist/types/rounding-options.d.ts +1 -1
  836. package/dist/types/stored-zoned-classification.d.ts +83 -0
  837. package/dist/types/stored-zoned-classification.js +0 -0
  838. package/dist/types/time-duration-unit.d.ts +1 -1
  839. package/dist/types/time-unit.d.ts +1 -1
  840. package/dist/types/two-digit-year.d.ts +23 -0
  841. package/dist/types/two-digit-year.js +0 -0
  842. package/dist/types/utc-now-unit.d.ts +1 -1
  843. package/dist/types/zone-bucket-unit.d.ts +1 -1
  844. package/dist/unix/calculate/addUnix.d.ts +11 -2
  845. package/dist/unix/calculate/addUnix.js +14 -11
  846. package/dist/unix/calculate/diffUnix.d.ts +11 -3
  847. package/dist/unix/calculate/diffUnix.js +11 -6
  848. package/dist/unix/calculate/diffUnixAsDuration.d.ts +11 -3
  849. package/dist/unix/calculate/diffUnixAsDuration.js +10 -5
  850. package/dist/unix/calculate/endOfQuarterForUnix.d.ts +10 -2
  851. package/dist/unix/calculate/endOfQuarterForUnix.js +6 -0
  852. package/dist/unix/calculate/endOfUnix.d.ts +13 -4
  853. package/dist/unix/calculate/endOfUnix.js +8 -1
  854. package/dist/unix/calculate/isBetweenUnix.d.ts +3 -2
  855. package/dist/unix/calculate/isBetweenUnix.js +4 -4
  856. package/dist/unix/calculate/roundUnix.d.ts +17 -7
  857. package/dist/unix/calculate/roundUnix.js +19 -10
  858. package/dist/unix/calculate/setUnix.d.ts +28 -8
  859. package/dist/unix/calculate/setUnix.js +35 -14
  860. package/dist/unix/calculate/startOfQuarterForUnix.d.ts +10 -2
  861. package/dist/unix/calculate/startOfQuarterForUnix.js +6 -0
  862. package/dist/unix/calculate/startOfUnix.d.ts +13 -4
  863. package/dist/unix/calculate/startOfUnix.js +8 -1
  864. package/dist/unix/calculate/subtractUnix.d.ts +10 -2
  865. package/dist/unix/calculate/subtractUnix.js +13 -11
  866. package/dist/unix/compare/areUnixEqualBy.d.ts +13 -4
  867. package/dist/unix/compare/areUnixEqualBy.js +8 -1
  868. package/dist/unix/convert/convertUnixToPlainDate.d.ts +5 -2
  869. package/dist/unix/convert/convertUnixToPlainDate.js +5 -4
  870. package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +5 -2
  871. package/dist/unix/convert/convertUnixToPlainDateTime.js +5 -4
  872. package/dist/unix/convert/convertUnixToPlainTime.d.ts +6 -3
  873. package/dist/unix/convert/convertUnixToPlainTime.js +6 -5
  874. package/dist/unix/convert/convertUnixToZoned.d.ts +6 -2
  875. package/dist/unix/convert/convertUnixToZoned.js +6 -2
  876. package/dist/unix/format/formatCalendarUnix.d.ts +16 -11
  877. package/dist/unix/format/formatCalendarUnix.js +12 -7
  878. package/dist/unix/format/formatRelativeUnix.d.ts +17 -9
  879. package/dist/unix/format/formatRelativeUnix.js +19 -11
  880. package/dist/unix/format/formatUnix.d.ts +16 -11
  881. package/dist/unix/format/formatUnix.js +13 -9
  882. package/dist/unix/get/getUnixDay.d.ts +1 -3
  883. package/dist/unix/get/getUnixDay.js +6 -13
  884. package/dist/unix/get/getUnixHour.d.ts +1 -3
  885. package/dist/unix/get/getUnixHour.js +6 -13
  886. package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
  887. package/dist/unix/get/getUnixMicrosecond.js +5 -12
  888. package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
  889. package/dist/unix/get/getUnixMillisecond.js +6 -13
  890. package/dist/unix/get/getUnixMinute.d.ts +1 -3
  891. package/dist/unix/get/getUnixMinute.js +6 -13
  892. package/dist/unix/get/getUnixMonth.d.ts +1 -3
  893. package/dist/unix/get/getUnixMonth.js +6 -13
  894. package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
  895. package/dist/unix/get/getUnixNanosecond.js +5 -12
  896. package/dist/unix/get/getUnixNow.js +1 -1
  897. package/dist/unix/get/getUnixNowUnit.d.ts +3 -1
  898. package/dist/unix/get/getUnixNowUnit.js +3 -1
  899. package/dist/unix/get/getUnixSecond.d.ts +1 -3
  900. package/dist/unix/get/getUnixSecond.js +6 -13
  901. package/dist/unix/get/getUnixYear.d.ts +3 -3
  902. package/dist/unix/get/getUnixYear.js +6 -13
  903. package/dist/unix/index.d.ts +1 -1
  904. package/dist/unix/index.js +2 -2
  905. package/dist/unix/interval/intervalCountUnix.d.ts +11 -2
  906. package/dist/unix/interval/intervalCountUnix.js +7 -0
  907. package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -2
  908. package/dist/unix/interval/intervalFromDurationUnix.js +13 -8
  909. package/dist/unix/interval/intervalLengthUnix.d.ts +12 -4
  910. package/dist/unix/interval/intervalLengthUnix.js +8 -2
  911. package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +10 -2
  912. package/dist/unix/interval/intervalOverlappingDaysUnix.js +10 -5
  913. package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +13 -4
  914. package/dist/unix/interval/splitIntervalByUnitUnix.js +16 -9
  915. package/dist/unix/parse/parseDateFromUnix.d.ts +4 -2
  916. package/dist/unix/parse/parseDateFromUnix.js +3 -3
  917. package/dist/unix/parse/parseDayFromUnix.d.ts +4 -2
  918. package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +4 -2
  919. package/dist/unix/parse/parseDayOfWeekFromUnix.js +2 -2
  920. package/dist/unix/parse/parseHourFromUnix.d.ts +4 -2
  921. package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
  922. package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
  923. package/dist/unix/parse/parseMinuteFromUnix.d.ts +4 -2
  924. package/dist/unix/parse/parseMonthFromUnix.d.ts +4 -2
  925. package/dist/unix/parse/parseNanosecondFromUnix.d.ts +4 -2
  926. package/dist/unix/parse/parseSecondFromUnix.d.ts +4 -2
  927. package/dist/unix/parse/parseTimeFromUnix.d.ts +5 -2
  928. package/dist/unix/parse/parseTimeFromUnix.js +4 -3
  929. package/dist/unix/parse/parseUnitFromUnix.d.ts +10 -4
  930. package/dist/unix/parse/parseUnitFromUnix.js +21 -14
  931. package/dist/unix/parse/parseWeekFromUnix.d.ts +3 -2
  932. package/dist/unix/parse/parseWeekFromUnix.js +4 -4
  933. package/dist/unix/parse/parseYearFromUnix.d.ts +8 -3
  934. package/dist/unix/parse/parseYearFromUnix.js +4 -1
  935. package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
  936. package/dist/utc/calculate/addUtc.js +5 -8
  937. package/dist/utc/calculate/diffUtc.d.ts +1 -1
  938. package/dist/utc/calculate/diffUtc.js +1 -1
  939. package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
  940. package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
  941. package/dist/utc/calculate/endOfQuarterForUtc.js +1 -1
  942. package/dist/utc/calculate/endOfUtc.d.ts +1 -1
  943. package/dist/utc/calculate/isBetweenUtc.js +1 -1
  944. package/dist/utc/calculate/maxUtc.js +1 -1
  945. package/dist/utc/calculate/minUtc.js +1 -1
  946. package/dist/utc/calculate/roundUtc.d.ts +1 -1
  947. package/dist/utc/calculate/roundUtc.js +1 -1
  948. package/dist/utc/calculate/setUtc.d.ts +17 -4
  949. package/dist/utc/calculate/setUtc.js +23 -9
  950. package/dist/utc/calculate/sortUtc.js +1 -1
  951. package/dist/utc/calculate/startOfQuarterForUtc.js +1 -1
  952. package/dist/utc/calculate/startOfUtc.d.ts +1 -1
  953. package/dist/utc/calculate/subtractUtc.js +5 -8
  954. package/dist/utc/compare/areUtcEqual.js +1 -1
  955. package/dist/utc/compare/areUtcEqualBy.d.ts +2 -2
  956. package/dist/utc/compare/areUtcEqualBy.js +2 -2
  957. package/dist/utc/compare/isAfterUtc.js +1 -1
  958. package/dist/utc/compare/isBeforeUtc.js +1 -1
  959. package/dist/utc/convert/convertUtcToPlainDate.d.ts +9 -3
  960. package/dist/utc/convert/convertUtcToPlainDate.js +12 -9
  961. package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +10 -3
  962. package/dist/utc/convert/convertUtcToPlainDateTime.js +14 -15
  963. package/dist/utc/convert/convertUtcToPlainTime.d.ts +6 -3
  964. package/dist/utc/convert/convertUtcToPlainTime.js +9 -8
  965. package/dist/utc/convert/convertUtcToUnix.js +1 -1
  966. package/dist/utc/convert/convertUtcToZoned.d.ts +6 -2
  967. package/dist/utc/convert/convertUtcToZoned.js +7 -3
  968. package/dist/utc/format/formatCalendarUtc.d.ts +12 -7
  969. package/dist/utc/format/formatCalendarUtc.js +9 -4
  970. package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +7 -7
  971. package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +8 -8
  972. package/dist/utc/format/formatRelativeUtc.d.ts +15 -7
  973. package/dist/utc/format/formatRelativeUtc.js +17 -9
  974. package/dist/utc/format/formatUtc.d.ts +15 -10
  975. package/dist/utc/format/formatUtc.js +12 -8
  976. package/dist/utc/format/index.d.ts +1 -1
  977. package/dist/utc/format/index.js +1 -1
  978. package/dist/utc/get/getUtcDay.d.ts +1 -3
  979. package/dist/utc/get/getUtcDay.js +6 -13
  980. package/dist/utc/get/getUtcHour.d.ts +1 -3
  981. package/dist/utc/get/getUtcHour.js +6 -13
  982. package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
  983. package/dist/utc/get/getUtcMicrosecond.js +5 -12
  984. package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
  985. package/dist/utc/get/getUtcMillisecond.js +6 -13
  986. package/dist/utc/get/getUtcMinute.d.ts +1 -3
  987. package/dist/utc/get/getUtcMinute.js +6 -13
  988. package/dist/utc/get/getUtcMonth.d.ts +1 -3
  989. package/dist/utc/get/getUtcMonth.js +6 -13
  990. package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
  991. package/dist/utc/get/getUtcNanosecond.js +5 -12
  992. package/dist/utc/get/getUtcNow.d.ts +1 -3
  993. package/dist/utc/get/getUtcNow.js +3 -10
  994. package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
  995. package/dist/utc/get/getUtcNowUnit.js +3 -1
  996. package/dist/utc/get/getUtcSecond.d.ts +1 -3
  997. package/dist/utc/get/getUtcSecond.js +6 -13
  998. package/dist/utc/get/getUtcYear.d.ts +3 -3
  999. package/dist/utc/get/getUtcYear.js +6 -13
  1000. package/dist/utc/index.d.ts +1 -1
  1001. package/dist/utc/index.js +2 -2
  1002. package/dist/utc/interval/intervalAbutsUtc.js +1 -1
  1003. package/dist/utc/interval/intervalContainsUtc.js +1 -1
  1004. package/dist/utc/interval/intervalCountUtc.js +1 -1
  1005. package/dist/utc/interval/intervalDivideEquallyUtc.js +1 -1
  1006. package/dist/utc/interval/intervalEngulfsUtc.js +1 -1
  1007. package/dist/utc/interval/intervalFromDurationUtc.js +1 -1
  1008. package/dist/utc/interval/intervalLengthUtc.js +1 -1
  1009. package/dist/utc/interval/intervalOverlappingDaysUtc.js +1 -1
  1010. package/dist/utc/interval/intervalSplitAtUtc.js +1 -1
  1011. package/dist/utc/interval/intervalXorAllUtc.js +3 -3
  1012. package/dist/utc/interval/intervalXorUtc.js +1 -1
  1013. package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
  1014. package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +2 -1
  1015. package/dist/utc/interval/splitIntervalByUnitUtc.js +3 -2
  1016. package/dist/utc/interval/validate/isValidUtcInterval.js +1 -1
  1017. package/dist/utc/parse/index.d.ts +1 -1
  1018. package/dist/utc/parse/index.js +1 -1
  1019. package/dist/utc/parse/parseDateFromUtc.d.ts +5 -3
  1020. package/dist/utc/parse/parseDateFromUtc.js +3 -3
  1021. package/dist/utc/parse/parseDayFromUtc.d.ts +5 -3
  1022. package/dist/utc/parse/parseDayFromUtc.js +3 -3
  1023. package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +5 -3
  1024. package/dist/utc/parse/parseDayOfWeekFromUtc.js +6 -6
  1025. package/dist/utc/parse/parseHourFromUtc.d.ts +5 -3
  1026. package/dist/utc/parse/parseHourFromUtc.js +3 -3
  1027. package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
  1028. package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +13 -13
  1029. package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +5 -3
  1030. package/dist/utc/parse/parseMicrosecondFromUtc.js +3 -3
  1031. package/dist/utc/parse/parseMillisecondFromUtc.d.ts +5 -3
  1032. package/dist/utc/parse/parseMillisecondFromUtc.js +3 -3
  1033. package/dist/utc/parse/parseMinuteFromUtc.d.ts +4 -2
  1034. package/dist/utc/parse/parseMinuteFromUtc.js +2 -2
  1035. package/dist/utc/parse/parseMonthFromUtc.d.ts +5 -3
  1036. package/dist/utc/parse/parseMonthFromUtc.js +3 -3
  1037. package/dist/utc/parse/parseNanosecondFromUtc.d.ts +5 -3
  1038. package/dist/utc/parse/parseNanosecondFromUtc.js +3 -3
  1039. package/dist/utc/parse/parseSecondFromUtc.d.ts +5 -3
  1040. package/dist/utc/parse/parseSecondFromUtc.js +3 -3
  1041. package/dist/utc/parse/parseTimeFromUtc.d.ts +6 -3
  1042. package/dist/utc/parse/parseTimeFromUtc.js +7 -6
  1043. package/dist/utc/parse/parseUnitFromUtc.d.ts +12 -5
  1044. package/dist/utc/parse/parseUnitFromUtc.js +13 -7
  1045. package/dist/utc/parse/parseWeekFromUtc.d.ts +5 -3
  1046. package/dist/utc/parse/parseWeekFromUtc.js +6 -6
  1047. package/dist/utc/parse/parseYearFromUtc.d.ts +9 -5
  1048. package/dist/utc/parse/parseYearFromUtc.js +9 -6
  1049. package/dist/utc/validate/index.d.ts +2 -0
  1050. package/dist/utc/validate/index.js +2 -0
  1051. package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
  1052. package/dist/utc/validate/isValidHttpDate.js +38 -0
  1053. package/dist/utc/validate/isValidUtc.d.ts +4 -0
  1054. package/dist/utc/validate/isValidUtc.js +7 -3
  1055. package/dist/utc/validate/isValidUtcRange.js +1 -1
  1056. package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
  1057. package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
  1058. package/dist/workforce/calculate/dutyDayFor.d.ts +38 -0
  1059. package/dist/workforce/calculate/dutyDayFor.js +71 -0
  1060. package/dist/workforce/calculate/dutyTotals.d.ts +24 -0
  1061. package/dist/workforce/calculate/dutyTotals.js +41 -0
  1062. package/dist/workforce/calculate/dutyViolations.d.ts +74 -0
  1063. package/dist/workforce/calculate/dutyViolations.js +65 -0
  1064. package/dist/workforce/calculate/evaluateDutyLog.d.ts +77 -0
  1065. package/dist/workforce/calculate/evaluateDutyLog.js +75 -0
  1066. package/dist/workforce/calculate/index.d.ts +7 -0
  1067. package/dist/workforce/calculate/index.js +7 -0
  1068. package/dist/workforce/calculate/longestRun.d.ts +28 -0
  1069. package/dist/workforce/calculate/longestRun.js +54 -0
  1070. package/dist/workforce/calculate/qualifyingRestPairs.d.ts +37 -0
  1071. package/dist/workforce/calculate/qualifyingRestPairs.js +58 -0
  1072. package/dist/workforce/calculate/qualifyingRests.d.ts +27 -0
  1073. package/dist/workforce/calculate/qualifyingRests.js +49 -0
  1074. package/dist/workforce/index.d.ts +3 -0
  1075. package/dist/workforce/index.js +4 -0
  1076. package/dist/workforce/validate/index.d.ts +1 -0
  1077. package/dist/workforce/validate/index.js +1 -0
  1078. package/dist/workforce/validate/isValidDutyLog.d.ts +24 -0
  1079. package/dist/workforce/validate/isValidDutyLog.js +34 -0
  1080. package/dist/zoned/calculate/addZoned.d.ts +15 -15
  1081. package/dist/zoned/calculate/addZoned.js +19 -22
  1082. package/dist/zoned/calculate/addZonedBusinessDays.d.ts +5 -4
  1083. package/dist/zoned/calculate/addZonedBusinessDays.js +5 -4
  1084. package/dist/zoned/calculate/clampZoned.js +1 -1
  1085. package/dist/zoned/calculate/diffZoned.d.ts +8 -8
  1086. package/dist/zoned/calculate/diffZoned.js +7 -7
  1087. package/dist/zoned/calculate/diffZonedAsDuration.d.ts +5 -5
  1088. package/dist/zoned/calculate/diffZonedAsDuration.js +4 -4
  1089. package/dist/zoned/calculate/endOfZoned.d.ts +3 -3
  1090. package/dist/zoned/calculate/endOfZoned.js +2 -2
  1091. package/dist/zoned/calculate/getHoursInZonedDay.d.ts +2 -2
  1092. package/dist/zoned/calculate/getHoursInZonedDay.js +2 -2
  1093. package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +6 -5
  1094. package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +6 -5
  1095. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +5 -5
  1096. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -5
  1097. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +6 -6
  1098. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +6 -6
  1099. package/dist/zoned/calculate/maxZoned.d.ts +2 -2
  1100. package/dist/zoned/calculate/maxZoned.js +3 -3
  1101. package/dist/zoned/calculate/minZoned.d.ts +2 -2
  1102. package/dist/zoned/calculate/minZoned.js +3 -3
  1103. package/dist/zoned/calculate/roundZoned.d.ts +11 -9
  1104. package/dist/zoned/calculate/roundZoned.js +11 -9
  1105. package/dist/zoned/calculate/setZoned.d.ts +26 -12
  1106. package/dist/zoned/calculate/setZoned.js +33 -16
  1107. package/dist/zoned/calculate/sortZoned.d.ts +3 -3
  1108. package/dist/zoned/calculate/sortZoned.js +4 -4
  1109. package/dist/zoned/calculate/startOfZoned.d.ts +3 -3
  1110. package/dist/zoned/calculate/startOfZoned.js +2 -2
  1111. package/dist/zoned/calculate/subtractZoned.d.ts +14 -14
  1112. package/dist/zoned/calculate/subtractZoned.js +18 -21
  1113. package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +5 -4
  1114. package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -4
  1115. package/dist/zoned/chop/chopZonedDate.d.ts +1 -1
  1116. package/dist/zoned/chop/chopZonedDate.js +1 -1
  1117. package/dist/zoned/chop/chopZonedMilliseconds.d.ts +1 -1
  1118. package/dist/zoned/chop/chopZonedMilliseconds.js +1 -1
  1119. package/dist/zoned/chop/chopZonedSeconds.d.ts +1 -1
  1120. package/dist/zoned/chop/chopZonedSeconds.js +1 -1
  1121. package/dist/zoned/chop/chopZonedTime.d.ts +1 -1
  1122. package/dist/zoned/chop/chopZonedTime.js +1 -1
  1123. package/dist/zoned/chop/chopZonedTimezone.d.ts +1 -1
  1124. package/dist/zoned/chop/chopZonedTimezone.js +1 -1
  1125. package/dist/zoned/classify/classifyStoredZoned.d.ts +46 -0
  1126. package/dist/zoned/classify/classifyStoredZoned.js +177 -0
  1127. package/dist/zoned/classify/index.d.ts +1 -0
  1128. package/dist/zoned/classify/index.js +1 -0
  1129. package/dist/zoned/compare/areZonedEqual.js +1 -1
  1130. package/dist/zoned/compare/areZonedEqualBy.d.ts +8 -10
  1131. package/dist/zoned/compare/areZonedEqualBy.js +8 -10
  1132. package/dist/zoned/compare/isAfterZoned.js +1 -1
  1133. package/dist/zoned/compare/isBeforeZoned.d.ts +2 -2
  1134. package/dist/zoned/compare/isBeforeZoned.js +3 -3
  1135. package/dist/zoned/compare/isBetweenZoned.js +1 -1
  1136. package/dist/zoned/compare/isInDaylightSaving.d.ts +2 -2
  1137. package/dist/zoned/compare/isInDaylightSaving.js +2 -2
  1138. package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -6
  1139. package/dist/zoned/compare/isZonedBusinessDay.js +7 -6
  1140. package/dist/zoned/compare/isZonedFuture.js +1 -1
  1141. package/dist/zoned/compare/isZonedPast.js +1 -1
  1142. package/dist/zoned/compare/isZonedRelativeDay.d.ts +2 -2
  1143. package/dist/zoned/compare/isZonedRelativeDay.js +3 -3
  1144. package/dist/zoned/compare/isZonedThisUnit.d.ts +7 -7
  1145. package/dist/zoned/compare/isZonedThisUnit.js +7 -7
  1146. package/dist/zoned/compare/isZonedWeekend.d.ts +5 -5
  1147. package/dist/zoned/compare/isZonedWeekend.js +5 -5
  1148. package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +10 -7
  1149. package/dist/zoned/convert/convertPlainDateTimeToZoned.js +10 -7
  1150. package/dist/zoned/convert/convertZonedToCalendar.d.ts +5 -5
  1151. package/dist/zoned/convert/convertZonedToCalendar.js +5 -5
  1152. package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +3 -3
  1153. package/dist/zoned/convert/convertZonedToPlainDateTime.js +3 -3
  1154. package/dist/zoned/convert/convertZonedToZoned.d.ts +7 -3
  1155. package/dist/zoned/convert/convertZonedToZoned.js +7 -3
  1156. package/dist/zoned/format/formatCalendarZoned.d.ts +7 -6
  1157. package/dist/zoned/format/formatCalendarZoned.js +7 -6
  1158. package/dist/zoned/format/formatRelativeZoned.d.ts +3 -3
  1159. package/dist/zoned/format/formatRelativeZoned.js +6 -5
  1160. package/dist/zoned/format/formatRfc2822.d.ts +3 -3
  1161. package/dist/zoned/format/formatRfc2822.js +3 -3
  1162. package/dist/zoned/format/formatRfc3339.d.ts +2 -2
  1163. package/dist/zoned/format/formatRfc3339.js +2 -2
  1164. package/dist/zoned/format/formatTimeZoneName.d.ts +22 -18
  1165. package/dist/zoned/format/formatTimeZoneName.js +18 -13
  1166. package/dist/zoned/format/formatZonedDateTime.d.ts +10 -10
  1167. package/dist/zoned/format/formatZonedDateTime.js +12 -11
  1168. package/dist/zoned/format/formatZonedRange.d.ts +7 -7
  1169. package/dist/zoned/format/formatZonedRange.js +9 -8
  1170. package/dist/zoned/format/formatZonedToParts.d.ts +11 -11
  1171. package/dist/zoned/format/formatZonedToParts.js +13 -12
  1172. package/dist/zoned/get/getDstTransitions.d.ts +14 -12
  1173. package/dist/zoned/get/getDstTransitions.js +15 -10
  1174. package/dist/zoned/get/getSystemTimeZone.d.ts +5 -3
  1175. package/dist/zoned/get/getSystemTimeZone.js +7 -4
  1176. package/dist/zoned/get/getTimeZoneOffset.d.ts +15 -7
  1177. package/dist/zoned/get/getTimeZoneOffset.js +23 -10
  1178. package/dist/zoned/get/getTimeZones.d.ts +1 -1
  1179. package/dist/zoned/get/getTimeZones.js +1 -1
  1180. package/dist/zoned/get/getZonedDay.d.ts +3 -2
  1181. package/dist/zoned/get/getZonedDay.js +7 -8
  1182. package/dist/zoned/get/getZonedDayOfWeek.d.ts +3 -2
  1183. package/dist/zoned/get/getZonedDayOfWeek.js +7 -6
  1184. package/dist/zoned/get/getZonedHour.d.ts +3 -2
  1185. package/dist/zoned/get/getZonedHour.js +7 -8
  1186. package/dist/zoned/get/getZonedMicrosecond.d.ts +3 -2
  1187. package/dist/zoned/get/getZonedMicrosecond.js +7 -6
  1188. package/dist/zoned/get/getZonedMillisecond.d.ts +3 -2
  1189. package/dist/zoned/get/getZonedMillisecond.js +7 -8
  1190. package/dist/zoned/get/getZonedMinute.d.ts +3 -2
  1191. package/dist/zoned/get/getZonedMinute.js +7 -8
  1192. package/dist/zoned/get/getZonedMonth.d.ts +3 -2
  1193. package/dist/zoned/get/getZonedMonth.js +7 -8
  1194. package/dist/zoned/get/getZonedNanosecond.d.ts +3 -2
  1195. package/dist/zoned/get/getZonedNanosecond.js +7 -6
  1196. package/dist/zoned/get/getZonedNow.d.ts +9 -5
  1197. package/dist/zoned/get/getZonedNow.js +9 -5
  1198. package/dist/zoned/get/getZonedNowUnit.d.ts +7 -4
  1199. package/dist/zoned/get/getZonedNowUnit.js +11 -8
  1200. package/dist/zoned/get/getZonedSecond.d.ts +3 -2
  1201. package/dist/zoned/get/getZonedSecond.js +7 -8
  1202. package/dist/zoned/get/getZonedToday.d.ts +3 -2
  1203. package/dist/zoned/get/getZonedToday.js +7 -6
  1204. package/dist/zoned/get/getZonedWeekOfYear.d.ts +3 -2
  1205. package/dist/zoned/get/getZonedWeekOfYear.js +7 -6
  1206. package/dist/zoned/get/getZonedYear.d.ts +5 -2
  1207. package/dist/zoned/get/getZonedYear.js +10 -8
  1208. package/dist/zoned/index.d.ts +2 -1
  1209. package/dist/zoned/index.js +3 -2
  1210. package/dist/zoned/interval/intervalAbutsZoned.d.ts +2 -2
  1211. package/dist/zoned/interval/intervalAbutsZoned.js +3 -3
  1212. package/dist/zoned/interval/intervalContainsZoned.d.ts +1 -1
  1213. package/dist/zoned/interval/intervalContainsZoned.js +2 -2
  1214. package/dist/zoned/interval/intervalCountZoned.d.ts +4 -4
  1215. package/dist/zoned/interval/intervalCountZoned.js +5 -5
  1216. package/dist/zoned/interval/intervalDifferenceZoned.js +1 -1
  1217. package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +1 -1
  1218. package/dist/zoned/interval/intervalDivideEquallyZoned.js +2 -2
  1219. package/dist/zoned/interval/intervalEngulfsZoned.d.ts +1 -1
  1220. package/dist/zoned/interval/intervalEngulfsZoned.js +2 -2
  1221. package/dist/zoned/interval/intervalFromDurationZoned.d.ts +6 -6
  1222. package/dist/zoned/interval/intervalFromDurationZoned.js +7 -7
  1223. package/dist/zoned/interval/intervalIntersectionZoned.js +1 -1
  1224. package/dist/zoned/interval/intervalLengthZoned.d.ts +5 -5
  1225. package/dist/zoned/interval/intervalLengthZoned.js +5 -5
  1226. package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +2 -2
  1227. package/dist/zoned/interval/intervalOverlappingDaysZoned.js +3 -3
  1228. package/dist/zoned/interval/intervalSplitAtZoned.js +14 -16
  1229. package/dist/zoned/interval/intervalUnionZoned.js +1 -1
  1230. package/dist/zoned/interval/intervalXorAllZoned.js +3 -3
  1231. package/dist/zoned/interval/intervalXorZoned.js +1 -1
  1232. package/dist/zoned/interval/intervalsOverlapZoned.d.ts +2 -2
  1233. package/dist/zoned/interval/intervalsOverlapZoned.js +3 -3
  1234. package/dist/zoned/interval/mergeIntervalsZoned.js +3 -3
  1235. package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +2 -1
  1236. package/dist/zoned/interval/splitIntervalByUnitZoned.js +3 -2
  1237. package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +2 -2
  1238. package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +3 -3
  1239. package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +1 -1
  1240. package/dist/zoned/interval/validate/isValidZonedInterval.js +2 -2
  1241. package/dist/zoned/map/mapZonedDatesInRange.js +1 -1
  1242. package/dist/zoned/map/mapZonedHoursInDay.d.ts +1 -1
  1243. package/dist/zoned/map/mapZonedHoursInDay.js +2 -2
  1244. package/dist/zoned/parse/getZonedOffset.d.ts +1 -1
  1245. package/dist/zoned/parse/getZonedOffset.js +1 -1
  1246. package/dist/zoned/parse/getZonedOffsetAs.d.ts +6 -6
  1247. package/dist/zoned/parse/getZonedOffsetAs.js +3 -3
  1248. package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
  1249. package/dist/zoned/parse/parseRfc2822.js +1 -1
  1250. package/dist/zoned/parse/parseRfc3339.js +1 -1
  1251. package/dist/zoned/parse/parseUnitFromZoned.d.ts +5 -2
  1252. package/dist/zoned/parse/parseUnitFromZoned.js +5 -1
  1253. package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
  1254. package/dist/zoned/parse/parseYearFromZoned.js +6 -3
  1255. package/dist/zoned/validate/hasDaylightSaving.d.ts +6 -4
  1256. package/dist/zoned/validate/hasDaylightSaving.js +16 -10
  1257. package/dist/zoned/validate/index.d.ts +2 -0
  1258. package/dist/zoned/validate/index.js +2 -0
  1259. package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +8 -8
  1260. package/dist/zoned/validate/isValidCalendarZonedDateTime.js +8 -8
  1261. package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
  1262. package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
  1263. package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
  1264. package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
  1265. package/dist/zoned/validate/isValidTimeZone.d.ts +6 -2
  1266. package/dist/zoned/validate/isValidTimeZone.js +8 -19
  1267. package/dist/zoned/validate/isValidZonedDateTime.d.ts +7 -7
  1268. package/dist/zoned/validate/isValidZonedDateTime.js +9 -9
  1269. package/dist/zoned/validate/isValidZonedRange.d.ts +1 -1
  1270. package/dist/zoned/validate/isValidZonedRange.js +5 -5
  1271. package/package.json +103 -4
  1272. package/skills/gmt-arithmetic/SKILL.md +63 -17
  1273. package/skills/gmt-basics/SKILL.md +83 -21
  1274. package/skills/gmt-gnss/SKILL.md +92 -0
  1275. package/skills/gmt-integration/SKILL.md +58 -10
  1276. package/skills/gmt-intermodal/SKILL.md +189 -0
  1277. package/skills/gmt-timezone/SKILL.md +51 -169
  1278. package/skills/gmt-transport/SKILL.md +133 -0
  1279. package/skills/gmt-workforce/SKILL.md +84 -0
  1280. package/dist/internal/unixZonedDateTime.d.ts +0 -22
  1281. package/dist/internal/unixZonedDateTime.js +0 -32
  1282. package/dist/internal/utcZonedDateTime.d.ts +0 -19
  1283. package/dist/internal/utcZonedDateTime.js +0 -31
@@ -1,24 +1,26 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { isValidTimeZone } from "../validate/index.js";
1
+ import { frameNowWallClock, zoneFrame } from "../../internal/zoneFrame.js";
2
+ import { isoYearString } from "../../internal/isoYearString.js";
3
3
  /**
4
4
  * Return the current year for the specified IANA timeZone.
5
5
  *
6
6
  * - Uses Temporal.Now.zonedDateTimeISO to get the current time.
7
7
  * - Validation is performed on the timezone.
8
+ * - The year is zero-padded to 4 digits. A year outside 0000–9999 is written with a sign and six
9
+ * digits (`+010000`, `-000005`), as Temporal writes it at the head of a date.
8
10
  *
9
- * @param ianaTimezone IANA timeZone identifier
11
+ * @param ianaTimezone IANA name or UTC offset: a time zone identifier (`+05:30`, `+0530`, `-08`) or
12
+ * a stored offset (`±HH:MM[:SS]`, what `getTimeZoneOffset` returns)
10
13
  * @returns current year string (zero-padded to 4 digits) or "" on invalid input
11
14
  *
12
- * @example getZonedYear("America/New_York") // "2024"
15
+ * @example getZonedYear("Africa/Johannesburg") // "2024"
13
16
  * @example getZonedYear("invalid") // ""
14
17
  */
15
18
  export function getZonedYear(ianaTimezone) {
16
- if (!isValidTimeZone(ianaTimezone))
19
+ const frame = zoneFrame(ianaTimezone);
20
+ if (frame === null)
17
21
  return "";
18
22
  try {
19
- return Temporal.Now.zonedDateTimeISO(ianaTimezone)
20
- .year.toString()
21
- .padStart(4, "0");
23
+ return isoYearString(frameNowWallClock(frame).year);
22
24
  }
23
25
  catch {
24
26
  return "";
@@ -1,6 +1,7 @@
1
- export * from "@js-temporal/polyfill";
1
+ export { Intl, Temporal, toTemporalInstant } from "../internal/temporal.js";
2
2
  export * from "./calculate/index.js";
3
3
  export * from "./chop/index.js";
4
+ export * from "./classify/index.js";
4
5
  export * from "./compare/index.js";
5
6
  export * from "./convert/index.js";
6
7
  export * from "./format/index.js";
@@ -1,7 +1,8 @@
1
- // Re-export the Temporal polyfill (`Temporal`, `Intl`, `toTemporalInstant`) so every namespace subpath offers it
2
- export * from "@js-temporal/polyfill";
1
+ // Re-export `Temporal`, `Intl` and `toTemporalInstant` from the internal seam so every namespace subpath offers them
2
+ export { Intl, Temporal, toTemporalInstant } from "../internal/temporal.js";
3
3
  export * from "./calculate/index.js";
4
4
  export * from "./chop/index.js";
5
+ export * from "./classify/index.js";
5
6
  export * from "./compare/index.js";
6
7
  export * from "./convert/index.js";
7
8
  export * from "./format/index.js";
@@ -13,7 +13,7 @@
13
13
  * nothing.
14
14
  * - Returns `false` on invalid input (wrong type, malformed strings, leap seconds).
15
15
  * - **Accepts mixed calendar systems** (E7's D4-zoned, issue #152): both bare ISO zoned strings
16
- * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]"`),
16
+ * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]"`),
17
17
  * and the two endpoints need not agree on a calendar. Ordering is calendar-independent —
18
18
  * verified that `Temporal.Instant` carries no calendar field at all and that
19
19
  * `Instant.compare`/`ZonedDateTime.compare` both return `0` for the same instant expressed in
@@ -29,7 +29,7 @@
29
29
  * @returns true if intervals are exactly adjacent, or false on invalid input
30
30
  *
31
31
  * @example intervalAbutsZoned("2024-01-01T09:00:00+00:00[UTC]", "2024-06-30T12:00:00+00:00[UTC]", "2024-06-30T12:00:00+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]") // true
32
- * @example intervalAbutsZoned("2024-06-30T12:00:00+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]", "2024-01-01T09:00:00+00:00[UTC]", "2024-06-30T08:00:00-04:00[America/New_York]") // true (the same instant in another zone)
32
+ * @example intervalAbutsZoned("2024-06-30T12:00:00+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]", "2024-01-01T09:00:00+00:00[UTC]", "2024-06-30T17:30:00+05:30[Asia/Kolkata]") // true (the same instant in another zone)
33
33
  * @example intervalAbutsZoned("2024-01-01T09:00:00+00:00[UTC]", "2024-06-30T12:00:00+00:00[UTC]", "2024-06-30T12:00:00.000000001+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]") // false (one-nanosecond gap)
34
34
  * @example intervalAbutsZoned("2024-01-01T09:00:00+00:00[UTC]", "2024-06-30T13:00:00+00:00[UTC]", "2024-06-30T12:00:00+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]") // false (overlap)
35
35
  * @example intervalAbutsZoned("invalid", "2024-06-30T12:00:00+00:00[UTC]", "2024-06-30T12:00:00+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]") // false
@@ -1,5 +1,5 @@
1
1
  // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
2
- import { Temporal } from "@js-temporal/polyfill";
2
+ import { Temporal } from "../../internal/temporal.js";
3
3
  import { halfOpenAbuts, parseCalendarZonedValue } from "../../internal/index.js";
4
4
  import { isValidCalendarZonedDateTime } from "../validate/index.js";
5
5
  /**
@@ -17,7 +17,7 @@ import { isValidCalendarZonedDateTime } from "../validate/index.js";
17
17
  * nothing.
18
18
  * - Returns `false` on invalid input (wrong type, malformed strings, leap seconds).
19
19
  * - **Accepts mixed calendar systems** (E7's D4-zoned, issue #152): both bare ISO zoned strings
20
- * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]"`),
20
+ * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]"`),
21
21
  * and the two endpoints need not agree on a calendar. Ordering is calendar-independent —
22
22
  * verified that `Temporal.Instant` carries no calendar field at all and that
23
23
  * `Instant.compare`/`ZonedDateTime.compare` both return `0` for the same instant expressed in
@@ -33,7 +33,7 @@ import { isValidCalendarZonedDateTime } from "../validate/index.js";
33
33
  * @returns true if intervals are exactly adjacent, or false on invalid input
34
34
  *
35
35
  * @example intervalAbutsZoned("2024-01-01T09:00:00+00:00[UTC]", "2024-06-30T12:00:00+00:00[UTC]", "2024-06-30T12:00:00+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]") // true
36
- * @example intervalAbutsZoned("2024-06-30T12:00:00+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]", "2024-01-01T09:00:00+00:00[UTC]", "2024-06-30T08:00:00-04:00[America/New_York]") // true (the same instant in another zone)
36
+ * @example intervalAbutsZoned("2024-06-30T12:00:00+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]", "2024-01-01T09:00:00+00:00[UTC]", "2024-06-30T17:30:00+05:30[Asia/Kolkata]") // true (the same instant in another zone)
37
37
  * @example intervalAbutsZoned("2024-01-01T09:00:00+00:00[UTC]", "2024-06-30T12:00:00+00:00[UTC]", "2024-06-30T12:00:00.000000001+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]") // false (one-nanosecond gap)
38
38
  * @example intervalAbutsZoned("2024-01-01T09:00:00+00:00[UTC]", "2024-06-30T13:00:00+00:00[UTC]", "2024-06-30T12:00:00+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]") // false (overlap)
39
39
  * @example intervalAbutsZoned("invalid", "2024-06-30T12:00:00+00:00[UTC]", "2024-06-30T12:00:00+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]") // false
@@ -15,7 +15,7 @@
15
15
  * - Returns `false` if `innerStart > innerEnd` in 4-arg mode (invalid inner interval).
16
16
  * - Returns `false` on invalid input (wrong type, malformed strings, leap seconds).
17
17
  * - **Accepts mixed calendar systems** (E7's D4-zoned, issue #152): both bare ISO zoned strings
18
- * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]"`),
18
+ * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]"`),
19
19
  * and the endpoints need not agree on a calendar. Ordering is calendar-independent — verified
20
20
  * that `Temporal.Instant` carries no calendar field at all and that
21
21
  * `Instant.compare`/`ZonedDateTime.compare` both return `0` for the same instant expressed in
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "../../internal/temporal.js";
2
2
  import { halfOpenContainsPoint, halfOpenContainsSpan, parseCalendarZonedValue, } from "../../internal/index.js";
3
3
  import { isValidCalendarZonedDateTime } from "../validate/index.js";
4
4
  /**
@@ -18,7 +18,7 @@ import { isValidCalendarZonedDateTime } from "../validate/index.js";
18
18
  * - Returns `false` if `innerStart > innerEnd` in 4-arg mode (invalid inner interval).
19
19
  * - Returns `false` on invalid input (wrong type, malformed strings, leap seconds).
20
20
  * - **Accepts mixed calendar systems** (E7's D4-zoned, issue #152): both bare ISO zoned strings
21
- * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]"`),
21
+ * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]"`),
22
22
  * and the endpoints need not agree on a calendar. Ordering is calendar-independent — verified
23
23
  * that `Temporal.Instant` carries no calendar field at all and that
24
24
  * `Instant.compare`/`ZonedDateTime.compare` both return `0` for the same instant expressed in
@@ -36,11 +36,11 @@
36
36
  * @returns number of unit boundaries touched, or null on invalid input
37
37
  *
38
38
  * @example intervalCountZoned("2024-01-01T23:59:00+00:00[UTC]", "2024-01-02T00:01:00+00:00[UTC]", "day") // 2
39
- * @example intervalCountZoned("2024-03-10T00:00:00-05:00[America/New_York]", "2024-03-11T00:00:00-04:00[America/New_York]", "hour") // 23 (spring forward)
40
- * @example intervalCountZoned("2024-11-03T00:00:00-04:00[America/New_York]", "2024-11-04T00:00:00-05:00[America/New_York]", "hour") // 25 (fall back)
41
- * @example intervalCountZoned("2024-01-01T00:00:00-05:00[America/New_York]", "2024-01-03T00:00:00+09:00[Asia/Tokyo]", "day") // 2 (counted in America/New_York)
39
+ * @example intervalCountZoned("2024-03-31T00:00:00+00:00[Europe/London]", "2024-04-01T00:00:00+01:00[Europe/London]", "hour") // 23 (spring forward)
40
+ * @example intervalCountZoned("2024-04-07T00:00:00+11:00[Australia/Sydney]", "2024-04-08T00:00:00+10:00[Australia/Sydney]", "hour") // 25 (fall back)
41
+ * @example intervalCountZoned("2024-01-01T00:00:00-03:00[America/Sao_Paulo]", "2024-01-03T00:00:00+09:00[Asia/Tokyo]", "day") // 2 (counted in America/Sao_Paulo)
42
42
  * @example intervalCountZoned("2024-01-01T05:00:00+00:00[UTC]", "2024-01-01T05:00:00+00:00[UTC]", "day") // 0 (zero-length: holds no instant)
43
- * @example intervalCountZoned("2023-09-16T00:00:00-04:00[America/New_York][u-ca=hebrew]", "2024-10-03T00:00:00-04:00[America/New_York][u-ca=hebrew]", "month") // 13 (Hebrew leap year; the ISO equivalent is 14)
43
+ * @example intervalCountZoned("2023-09-16T00:00:00+02:00[Africa/Johannesburg][u-ca=hebrew]", "2024-10-03T00:00:00+02:00[Africa/Johannesburg][u-ca=hebrew]", "month") // 13 (Hebrew leap year; the ISO equivalent is 14)
44
44
  * @example intervalCountZoned("invalid", "2024-01-02T00:00:00+00:00[UTC]", "day") // null
45
45
  * @example intervalCountZoned("-271821-04-20T00:00:00+00:00[UTC]", "-271821-04-20T01:00:00+00:00[UTC]", "week") // 1 (the week began before the first instant, but is still touched)
46
46
  */
@@ -1,5 +1,5 @@
1
1
  // fallow-ignore-file code-duplication -- cross-family Temporal type clone, by design (rule 5)
2
- import { Temporal } from "@js-temporal/polyfill";
2
+ import { Temporal } from "../../internal/temporal.js";
3
3
  import { countZonedBuckets, parseCalendarZonedPairForArithmetic, resolveDateTimeUnit, } from "../../internal/index.js";
4
4
  import { isValidDateTimeUnit } from "../../plain/validate/index.js";
5
5
  import { isValidCalendarZonedDateTime } from "../validate/isValidCalendarZonedDateTime.js";
@@ -41,11 +41,11 @@ import { isValidCalendarZonedDateTime } from "../validate/isValidCalendarZonedDa
41
41
  * @returns number of unit boundaries touched, or null on invalid input
42
42
  *
43
43
  * @example intervalCountZoned("2024-01-01T23:59:00+00:00[UTC]", "2024-01-02T00:01:00+00:00[UTC]", "day") // 2
44
- * @example intervalCountZoned("2024-03-10T00:00:00-05:00[America/New_York]", "2024-03-11T00:00:00-04:00[America/New_York]", "hour") // 23 (spring forward)
45
- * @example intervalCountZoned("2024-11-03T00:00:00-04:00[America/New_York]", "2024-11-04T00:00:00-05:00[America/New_York]", "hour") // 25 (fall back)
46
- * @example intervalCountZoned("2024-01-01T00:00:00-05:00[America/New_York]", "2024-01-03T00:00:00+09:00[Asia/Tokyo]", "day") // 2 (counted in America/New_York)
44
+ * @example intervalCountZoned("2024-03-31T00:00:00+00:00[Europe/London]", "2024-04-01T00:00:00+01:00[Europe/London]", "hour") // 23 (spring forward)
45
+ * @example intervalCountZoned("2024-04-07T00:00:00+11:00[Australia/Sydney]", "2024-04-08T00:00:00+10:00[Australia/Sydney]", "hour") // 25 (fall back)
46
+ * @example intervalCountZoned("2024-01-01T00:00:00-03:00[America/Sao_Paulo]", "2024-01-03T00:00:00+09:00[Asia/Tokyo]", "day") // 2 (counted in America/Sao_Paulo)
47
47
  * @example intervalCountZoned("2024-01-01T05:00:00+00:00[UTC]", "2024-01-01T05:00:00+00:00[UTC]", "day") // 0 (zero-length: holds no instant)
48
- * @example intervalCountZoned("2023-09-16T00:00:00-04:00[America/New_York][u-ca=hebrew]", "2024-10-03T00:00:00-04:00[America/New_York][u-ca=hebrew]", "month") // 13 (Hebrew leap year; the ISO equivalent is 14)
48
+ * @example intervalCountZoned("2023-09-16T00:00:00+02:00[Africa/Johannesburg][u-ca=hebrew]", "2024-10-03T00:00:00+02:00[Africa/Johannesburg][u-ca=hebrew]", "month") // 13 (Hebrew leap year; the ISO equivalent is 14)
49
49
  * @example intervalCountZoned("invalid", "2024-01-02T00:00:00+00:00[UTC]", "day") // null
50
50
  * @example intervalCountZoned("-271821-04-20T00:00:00+00:00[UTC]", "-271821-04-20T01:00:00+00:00[UTC]", "week") // 1 (the week began before the first instant, but is still touched)
51
51
  */
@@ -1,5 +1,5 @@
1
1
  // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
2
- import { Temporal } from "@js-temporal/polyfill";
2
+ import { Temporal } from "../../internal/temporal.js";
3
3
  import { calendarOfAllZonedValues, formatZonedInCalendar, halfOpenDifference, parseCalendarZonedValue, } from "../../internal/index.js";
4
4
  import { isValidCalendarZonedDateTime } from "../validate/index.js";
5
5
  /**
@@ -31,7 +31,7 @@
31
31
  * @param options optional limit on the size of the output
32
32
  * @returns array of `n` `{ start, end }` records, or `[]` on invalid input
33
33
  *
34
- * @example intervalDivideEquallyZoned("2024-03-09T12:00:00-05:00[America/New_York]", "2024-03-11T12:00:00-04:00[America/New_York]", 2) // [{ start: "2024-03-09T12:00:00-05:00[America/New_York]", end: "2024-03-10T12:30:00-04:00[America/New_York]" }, { start: "2024-03-10T12:30:00-04:00[America/New_York]", end: "2024-03-11T12:00:00-04:00[America/New_York]" }] (47 real hours split in half)
34
+ * @example intervalDivideEquallyZoned("2024-10-05T12:00:00+10:00[Australia/Sydney]", "2024-10-07T12:00:00+11:00[Australia/Sydney]", 2) // [{ start: "2024-10-05T12:00:00+10:00[Australia/Sydney]", end: "2024-10-06T12:30:00+11:00[Australia/Sydney]" }, { start: "2024-10-06T12:30:00+11:00[Australia/Sydney]", end: "2024-10-07T12:00:00+11:00[Australia/Sydney]" }] (47 real hours split in half)
35
35
  * @example intervalDivideEquallyZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-04T00:00:00+00:00[UTC]", 1) // [{ start: "2024-01-01T00:00:00+00:00[UTC]", end: "2024-01-04T00:00:00+00:00[UTC]" }]
36
36
  * @example intervalDivideEquallyZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-04T00:00:00+00:00[UTC]", 0) // []
37
37
  * @example intervalDivideEquallyZoned("invalid", "2024-01-04T00:00:00+00:00[UTC]", 3) // []
@@ -1,5 +1,5 @@
1
1
  // fallow-ignore-file code-duplication -- cross-family Temporal type clone, by design (rule 5)
2
- import { Temporal } from "@js-temporal/polyfill";
2
+ import { Temporal } from "../../internal/temporal.js";
3
3
  import { calendarOfAllZonedValues, formatZonedInCalendar, parseCalendarZonedValue, } from "../../internal/index.js";
4
4
  import { isValidCalendarZonedInterval } from "./validate/index.js";
5
5
  import { divisionBoundary } from "../../internal/divisionBoundary.js";
@@ -37,7 +37,7 @@ import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js
37
37
  * @param options optional limit on the size of the output
38
38
  * @returns array of `n` `{ start, end }` records, or `[]` on invalid input
39
39
  *
40
- * @example intervalDivideEquallyZoned("2024-03-09T12:00:00-05:00[America/New_York]", "2024-03-11T12:00:00-04:00[America/New_York]", 2) // [{ start: "2024-03-09T12:00:00-05:00[America/New_York]", end: "2024-03-10T12:30:00-04:00[America/New_York]" }, { start: "2024-03-10T12:30:00-04:00[America/New_York]", end: "2024-03-11T12:00:00-04:00[America/New_York]" }] (47 real hours split in half)
40
+ * @example intervalDivideEquallyZoned("2024-10-05T12:00:00+10:00[Australia/Sydney]", "2024-10-07T12:00:00+11:00[Australia/Sydney]", 2) // [{ start: "2024-10-05T12:00:00+10:00[Australia/Sydney]", end: "2024-10-06T12:30:00+11:00[Australia/Sydney]" }, { start: "2024-10-06T12:30:00+11:00[Australia/Sydney]", end: "2024-10-07T12:00:00+11:00[Australia/Sydney]" }] (47 real hours split in half)
41
41
  * @example intervalDivideEquallyZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-04T00:00:00+00:00[UTC]", 1) // [{ start: "2024-01-01T00:00:00+00:00[UTC]", end: "2024-01-04T00:00:00+00:00[UTC]" }]
42
42
  * @example intervalDivideEquallyZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-04T00:00:00+00:00[UTC]", 0) // []
43
43
  * @example intervalDivideEquallyZoned("invalid", "2024-01-04T00:00:00+00:00[UTC]", 3) // []
@@ -11,7 +11,7 @@
11
11
  * - Returns `false` if either interval is invalid (`start > end`).
12
12
  * - Returns `false` on invalid input (wrong type, malformed strings, leap seconds).
13
13
  * - **Accepts mixed calendar systems** (E7's D4-zoned, issue #152): both bare ISO zoned strings
14
- * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]"`),
14
+ * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]"`),
15
15
  * and the two endpoints need not agree on a calendar. Ordering is calendar-independent —
16
16
  * verified that `Temporal.Instant` carries no calendar field at all and that
17
17
  * `Instant.compare`/`ZonedDateTime.compare` both return `0` for the same instant expressed in
@@ -1,5 +1,5 @@
1
1
  // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
2
- import { Temporal } from "@js-temporal/polyfill";
2
+ import { Temporal } from "../../internal/temporal.js";
3
3
  import { halfOpenContainsSpan, parseCalendarZonedValue } from "../../internal/index.js";
4
4
  import { isValidCalendarZonedDateTime } from "../validate/index.js";
5
5
  /**
@@ -15,7 +15,7 @@ import { isValidCalendarZonedDateTime } from "../validate/index.js";
15
15
  * - Returns `false` if either interval is invalid (`start > end`).
16
16
  * - Returns `false` on invalid input (wrong type, malformed strings, leap seconds).
17
17
  * - **Accepts mixed calendar systems** (E7's D4-zoned, issue #152): both bare ISO zoned strings
18
- * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]"`),
18
+ * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]"`),
19
19
  * and the two endpoints need not agree on a calendar. Ordering is calendar-independent —
20
20
  * verified that `Temporal.Instant` carries no calendar field at all and that
21
21
  * `Instant.compare`/`ZonedDateTime.compare` both return `0` for the same instant expressed in
@@ -36,12 +36,12 @@ import type { Disambiguation, Overflow } from "../../types/index.js";
36
36
  *
37
37
  * @example intervalFromDurationZoned("2024-01-01T00:00:00+00:00[UTC]", "P1D", "start") // { start: "2024-01-01T00:00:00+00:00[UTC]", end: "2024-01-02T00:00:00+00:00[UTC]" }
38
38
  * @example intervalFromDurationZoned("2024-01-02T00:00:00+00:00[UTC]", "P1D", "end") // { start: "2024-01-01T00:00:00+00:00[UTC]", end: "2024-01-02T00:00:00+00:00[UTC]" }
39
- * @example intervalFromDurationZoned("2024-11-02T01:30:00-04:00[America/New_York]", "P1D", "start", { disambiguation: "later" }) // { start: "2024-11-02T01:30:00-04:00[America/New_York]", end: "2024-11-03T01:30:00-05:00[America/New_York]" } (fall-back overlap resolved; default "compatible" would return the -04:00 instant instead)
40
- * @example intervalFromDurationZoned("2024-03-09T02:30:00-05:00[America/New_York]", "P1D", "start", { disambiguation: "earlier" }) // { start: "2024-03-09T02:30:00-05:00[America/New_York]", end: "2024-03-10T01:30:00-05:00[America/New_York]" } (spring-forward gap; "earlier" moves the end back an hour)
41
- * @example intervalFromDurationZoned("2024-03-09T02:30:00-05:00[America/New_York]", "P1D", "start", { disambiguation: "reject" }) // null (spring-forward gap rejected)
42
- * @example intervalFromDurationZoned("2024-11-03T00:30:00-04:00[America/New_York]", "PT1H", "start", { disambiguation: "later" }) // { start: "2024-11-03T00:30:00-04:00[America/New_York]", end: "2024-11-03T01:30:00-04:00[America/New_York]" } (exact time — disambiguation never re-resolves it)
43
- * @example setZoned(intervalFromDurationZoned("2024-11-03T00:30:00-04:00[America/New_York]", "PT1H", "start")?.end ?? "", { hour: 1, minute: 30, second: 0 }, { disambiguation: "later", offset: "ignore" }) // "2024-11-03T01:30:00-05:00[America/New_York]" (pre-1.16.0 end)
44
- * @example intervalFromDurationZoned("2024-01-31T12:00:00-05:00[America/New_York]", "P1M", "start", { overflow: "reject" }) // null
39
+ * @example intervalFromDurationZoned("2024-10-26T01:30:00+01:00[Europe/London]", "P1D", "start", { disambiguation: "later" }) // { start: "2024-10-26T01:30:00+01:00[Europe/London]", end: "2024-10-27T01:30:00+00:00[Europe/London]" } (fall-back overlap resolved; default "compatible" would return the +01:00 instant instead)
40
+ * @example intervalFromDurationZoned("2024-10-05T02:30:00+10:00[Australia/Sydney]", "P1D", "start", { disambiguation: "earlier" }) // { start: "2024-10-05T02:30:00+10:00[Australia/Sydney]", end: "2024-10-06T01:30:00+10:00[Australia/Sydney]" } (spring-forward gap; "earlier" moves the end back an hour)
41
+ * @example intervalFromDurationZoned("2024-10-05T02:30:00+10:00[Australia/Sydney]", "P1D", "start", { disambiguation: "reject" }) // null (spring-forward gap rejected)
42
+ * @example intervalFromDurationZoned("2024-10-27T00:30:00+01:00[Europe/London]", "PT1H", "start", { disambiguation: "later" }) // { start: "2024-10-27T00:30:00+01:00[Europe/London]", end: "2024-10-27T01:30:00+01:00[Europe/London]" } (exact time — disambiguation never re-resolves it)
43
+ * @example setZoned(intervalFromDurationZoned("2024-10-27T00:30:00+01:00[Europe/London]", "PT1H", "start")?.end ?? "", { hour: 1, minute: 30, second: 0 }, { disambiguation: "later", offset: "ignore" }) // "2024-10-27T01:30:00+00:00[Europe/London]" (pre-1.16.0 end)
44
+ * @example intervalFromDurationZoned("2024-01-31T12:00:00+05:30[Asia/Kolkata]", "P1M", "start", { overflow: "reject" }) // null
45
45
  * @example intervalFromDurationZoned("invalid", "P1D", "start") // null
46
46
  */
47
47
  export declare function intervalFromDurationZoned(value: string, duration: string, anchor: "start" | "end", options?: {
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "../../internal/temporal.js";
2
2
  import { isValidDuration } from "../../duration/validate/index.js";
3
3
  import { addToZonedDisambiguated, calendarSystemOfZonedValue, formatZonedInCalendar, parseCalendarZonedValue, resolveOverflow, } from "../../internal/index.js";
4
4
  import { isValidCalendarZonedDateTime } from "../validate/index.js";
@@ -41,12 +41,12 @@ import { optionOrDefault } from "../../internal/optionOrDefault.js";
41
41
  *
42
42
  * @example intervalFromDurationZoned("2024-01-01T00:00:00+00:00[UTC]", "P1D", "start") // { start: "2024-01-01T00:00:00+00:00[UTC]", end: "2024-01-02T00:00:00+00:00[UTC]" }
43
43
  * @example intervalFromDurationZoned("2024-01-02T00:00:00+00:00[UTC]", "P1D", "end") // { start: "2024-01-01T00:00:00+00:00[UTC]", end: "2024-01-02T00:00:00+00:00[UTC]" }
44
- * @example intervalFromDurationZoned("2024-11-02T01:30:00-04:00[America/New_York]", "P1D", "start", { disambiguation: "later" }) // { start: "2024-11-02T01:30:00-04:00[America/New_York]", end: "2024-11-03T01:30:00-05:00[America/New_York]" } (fall-back overlap resolved; default "compatible" would return the -04:00 instant instead)
45
- * @example intervalFromDurationZoned("2024-03-09T02:30:00-05:00[America/New_York]", "P1D", "start", { disambiguation: "earlier" }) // { start: "2024-03-09T02:30:00-05:00[America/New_York]", end: "2024-03-10T01:30:00-05:00[America/New_York]" } (spring-forward gap; "earlier" moves the end back an hour)
46
- * @example intervalFromDurationZoned("2024-03-09T02:30:00-05:00[America/New_York]", "P1D", "start", { disambiguation: "reject" }) // null (spring-forward gap rejected)
47
- * @example intervalFromDurationZoned("2024-11-03T00:30:00-04:00[America/New_York]", "PT1H", "start", { disambiguation: "later" }) // { start: "2024-11-03T00:30:00-04:00[America/New_York]", end: "2024-11-03T01:30:00-04:00[America/New_York]" } (exact time — disambiguation never re-resolves it)
48
- * @example setZoned(intervalFromDurationZoned("2024-11-03T00:30:00-04:00[America/New_York]", "PT1H", "start")?.end ?? "", { hour: 1, minute: 30, second: 0 }, { disambiguation: "later", offset: "ignore" }) // "2024-11-03T01:30:00-05:00[America/New_York]" (pre-1.16.0 end)
49
- * @example intervalFromDurationZoned("2024-01-31T12:00:00-05:00[America/New_York]", "P1M", "start", { overflow: "reject" }) // null
44
+ * @example intervalFromDurationZoned("2024-10-26T01:30:00+01:00[Europe/London]", "P1D", "start", { disambiguation: "later" }) // { start: "2024-10-26T01:30:00+01:00[Europe/London]", end: "2024-10-27T01:30:00+00:00[Europe/London]" } (fall-back overlap resolved; default "compatible" would return the +01:00 instant instead)
45
+ * @example intervalFromDurationZoned("2024-10-05T02:30:00+10:00[Australia/Sydney]", "P1D", "start", { disambiguation: "earlier" }) // { start: "2024-10-05T02:30:00+10:00[Australia/Sydney]", end: "2024-10-06T01:30:00+10:00[Australia/Sydney]" } (spring-forward gap; "earlier" moves the end back an hour)
46
+ * @example intervalFromDurationZoned("2024-10-05T02:30:00+10:00[Australia/Sydney]", "P1D", "start", { disambiguation: "reject" }) // null (spring-forward gap rejected)
47
+ * @example intervalFromDurationZoned("2024-10-27T00:30:00+01:00[Europe/London]", "PT1H", "start", { disambiguation: "later" }) // { start: "2024-10-27T00:30:00+01:00[Europe/London]", end: "2024-10-27T01:30:00+01:00[Europe/London]" } (exact time — disambiguation never re-resolves it)
48
+ * @example setZoned(intervalFromDurationZoned("2024-10-27T00:30:00+01:00[Europe/London]", "PT1H", "start")?.end ?? "", { hour: 1, minute: 30, second: 0 }, { disambiguation: "later", offset: "ignore" }) // "2024-10-27T01:30:00+00:00[Europe/London]" (pre-1.16.0 end)
49
+ * @example intervalFromDurationZoned("2024-01-31T12:00:00+05:30[Asia/Kolkata]", "P1M", "start", { overflow: "reject" }) // null
50
50
  * @example intervalFromDurationZoned("invalid", "P1D", "start") // null
51
51
  */
52
52
  export function intervalFromDurationZoned(value, duration, anchor, options) {
@@ -1,5 +1,5 @@
1
1
  // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
2
- import { Temporal } from "@js-temporal/polyfill";
2
+ import { Temporal } from "../../internal/temporal.js";
3
3
  import { calendarOfAllZonedValues, formatZonedInCalendar, halfOpenIntersection, parseCalendarZonedValue, } from "../../internal/index.js";
4
4
  import { isValidCalendarZonedDateTime } from "../validate/index.js";
5
5
  /**
@@ -29,12 +29,12 @@
29
29
  * @param unit unit string — any `DateTimeUnit`
30
30
  * @returns exact length of the interval expressed in `unit`, or null on invalid input
31
31
  *
32
- * @example intervalLengthZoned("2024-03-10T00:00:00-05:00[America/New_York]", "2024-03-11T00:00:00-04:00[America/New_York]", "hour") // 23 (spring forward)
33
- * @example intervalLengthZoned("2024-03-10T00:00:00-05:00[America/New_York]", "2024-03-11T00:00:00-04:00[America/New_York]", "day") // 1
32
+ * @example intervalLengthZoned("2024-03-31T00:00:00+00:00[Europe/London]", "2024-04-01T00:00:00+01:00[Europe/London]", "hour") // 23 (spring forward)
33
+ * @example intervalLengthZoned("2024-03-31T00:00:00+00:00[Europe/London]", "2024-04-01T00:00:00+01:00[Europe/London]", "day") // 1
34
34
  * @example intervalLengthZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-01T00:00:00+00:00[UTC]", "day") // 0
35
- * @example intervalLengthZoned("2024-01-01T00:00:00-05:00[America/New_York]", "2024-01-03T00:00:00+01:00[Europe/Paris]", "hour") // 42
36
- * @example intervalLengthZoned("2024-01-01T00:00:00-05:00[America/New_York]", "2024-01-03T00:00:00+01:00[Europe/Paris]", "day") // null (calendar unit across two time zones)
37
- * @example intervalLengthZoned("2024-01-01T00:00:00-05:00[America/New_York]", convertZonedToZoned("2024-01-03T00:00:00+01:00[Europe/Paris]", "America/New_York"), "day") // 1.75 (both ends in one zone first)
35
+ * @example intervalLengthZoned("2024-01-01T00:00:00+05:30[Asia/Kolkata]", "2024-01-03T00:00:00+01:00[Europe/Paris]", "hour") // 52.5
36
+ * @example intervalLengthZoned("2024-01-01T00:00:00+05:30[Asia/Kolkata]", "2024-01-03T00:00:00+01:00[Europe/Paris]", "day") // null (calendar unit across two time zones)
37
+ * @example intervalLengthZoned("2024-01-01T00:00:00+05:30[Asia/Kolkata]", convertZonedToZoned("2024-01-03T00:00:00+01:00[Europe/Paris]", "Asia/Kolkata"), "day") // 2.1875 (both ends in one zone first)
38
38
  * @example intervalLengthZoned("invalid", "2024-01-02T00:00:00+00:00[UTC]", "day") // null
39
39
  */
40
40
  export declare function intervalLengthZoned(start: string, end: string, unit: string): number | null;
@@ -32,12 +32,12 @@ import { isValidCalendarZonedInterval } from "./validate/index.js";
32
32
  * @param unit unit string — any `DateTimeUnit`
33
33
  * @returns exact length of the interval expressed in `unit`, or null on invalid input
34
34
  *
35
- * @example intervalLengthZoned("2024-03-10T00:00:00-05:00[America/New_York]", "2024-03-11T00:00:00-04:00[America/New_York]", "hour") // 23 (spring forward)
36
- * @example intervalLengthZoned("2024-03-10T00:00:00-05:00[America/New_York]", "2024-03-11T00:00:00-04:00[America/New_York]", "day") // 1
35
+ * @example intervalLengthZoned("2024-03-31T00:00:00+00:00[Europe/London]", "2024-04-01T00:00:00+01:00[Europe/London]", "hour") // 23 (spring forward)
36
+ * @example intervalLengthZoned("2024-03-31T00:00:00+00:00[Europe/London]", "2024-04-01T00:00:00+01:00[Europe/London]", "day") // 1
37
37
  * @example intervalLengthZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-01T00:00:00+00:00[UTC]", "day") // 0
38
- * @example intervalLengthZoned("2024-01-01T00:00:00-05:00[America/New_York]", "2024-01-03T00:00:00+01:00[Europe/Paris]", "hour") // 42
39
- * @example intervalLengthZoned("2024-01-01T00:00:00-05:00[America/New_York]", "2024-01-03T00:00:00+01:00[Europe/Paris]", "day") // null (calendar unit across two time zones)
40
- * @example intervalLengthZoned("2024-01-01T00:00:00-05:00[America/New_York]", convertZonedToZoned("2024-01-03T00:00:00+01:00[Europe/Paris]", "America/New_York"), "day") // 1.75 (both ends in one zone first)
38
+ * @example intervalLengthZoned("2024-01-01T00:00:00+05:30[Asia/Kolkata]", "2024-01-03T00:00:00+01:00[Europe/Paris]", "hour") // 52.5
39
+ * @example intervalLengthZoned("2024-01-01T00:00:00+05:30[Asia/Kolkata]", "2024-01-03T00:00:00+01:00[Europe/Paris]", "day") // null (calendar unit across two time zones)
40
+ * @example intervalLengthZoned("2024-01-01T00:00:00+05:30[Asia/Kolkata]", convertZonedToZoned("2024-01-03T00:00:00+01:00[Europe/Paris]", "Asia/Kolkata"), "day") // 2.1875 (both ends in one zone first)
41
41
  * @example intervalLengthZoned("invalid", "2024-01-02T00:00:00+00:00[UTC]", "day") // null
42
42
  */
43
43
  export function intervalLengthZoned(start, end, unit) {
@@ -25,7 +25,7 @@
25
25
  * - Returns `null` if either interval is invalid (`start > end`).
26
26
  * - Returns `null` on invalid input (wrong type, malformed strings, leap seconds).
27
27
  * - Accepts RFC 9557 calendar-annotated zoned strings
28
- * (`"2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]"`; E7, issue #152). All four
28
+ * (`"2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]"`; E7, issue #152). All four
29
29
  * arguments must name the same calendar (a bare string names `iso8601`): the count is a day
30
30
  * difference, so different calendars return `null`, as Temporal's `until` throws when
31
31
  * `CalendarEquals` is false. Before 1.16.0 the arguments could name different calendars.
@@ -42,7 +42,7 @@
42
42
  * @param bEnd ISO 8601 zoned datetime string for the second interval end
43
43
  * @returns number of shared calendar dates (counted in aStart's zone), `0` when disjoint, or null on invalid input
44
44
  *
45
- * @example intervalOverlappingDaysZoned("2024-03-09T12:00:00-05:00[America/New_York]", "2024-03-11T12:00:00-04:00[America/New_York]", "2024-03-09T12:00:00-05:00[America/New_York]", "2024-03-11T12:00:00-04:00[America/New_York]") // 3 (spring-forward, 47 real hours)
45
+ * @example intervalOverlappingDaysZoned("2024-03-30T12:00:00+00:00[Europe/London]", "2024-04-01T12:00:00+01:00[Europe/London]", "2024-03-30T12:00:00+00:00[Europe/London]", "2024-04-01T12:00:00+01:00[Europe/London]") // 3 (spring-forward, 47 real hours)
46
46
  * @example intervalOverlappingDaysZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-02T00:00:00+00:00[UTC]", "2024-01-02T00:00:00+00:00[UTC]", "2024-01-03T00:00:00+00:00[UTC]") // 0 (touching: no shared instant)
47
47
  * @example intervalOverlappingDaysZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-02T00:00:00+00:00[UTC]", "2024-01-01T00:00:00+00:00[UTC]", "2024-01-02T00:00:00+00:00[UTC]") // 1 (the end, 01-02T00:00, is excluded)
48
48
  * @example intervalOverlappingDaysZoned("2011-12-29T23:00:00-10:00[Pacific/Apia]", "2011-12-31T01:00:00+14:00[Pacific/Apia]", "2011-12-29T23:00:00-10:00[Pacific/Apia]", "2011-12-31T01:00:00+14:00[Pacific/Apia]") // 2 (2011-12-30 was deleted)
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "../../internal/temporal.js";
2
2
  import { calendarOfAllZonedValues, countZonedLocalDates, halfOpenIntersection, parseCalendarZonedValue, } from "../../internal/index.js";
3
3
  import { isValidCalendarZonedDateTime } from "../validate/index.js";
4
4
  /**
@@ -28,7 +28,7 @@ import { isValidCalendarZonedDateTime } from "../validate/index.js";
28
28
  * - Returns `null` if either interval is invalid (`start > end`).
29
29
  * - Returns `null` on invalid input (wrong type, malformed strings, leap seconds).
30
30
  * - Accepts RFC 9557 calendar-annotated zoned strings
31
- * (`"2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]"`; E7, issue #152). All four
31
+ * (`"2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]"`; E7, issue #152). All four
32
32
  * arguments must name the same calendar (a bare string names `iso8601`): the count is a day
33
33
  * difference, so different calendars return `null`, as Temporal's `until` throws when
34
34
  * `CalendarEquals` is false. Before 1.16.0 the arguments could name different calendars.
@@ -45,7 +45,7 @@ import { isValidCalendarZonedDateTime } from "../validate/index.js";
45
45
  * @param bEnd ISO 8601 zoned datetime string for the second interval end
46
46
  * @returns number of shared calendar dates (counted in aStart's zone), `0` when disjoint, or null on invalid input
47
47
  *
48
- * @example intervalOverlappingDaysZoned("2024-03-09T12:00:00-05:00[America/New_York]", "2024-03-11T12:00:00-04:00[America/New_York]", "2024-03-09T12:00:00-05:00[America/New_York]", "2024-03-11T12:00:00-04:00[America/New_York]") // 3 (spring-forward, 47 real hours)
48
+ * @example intervalOverlappingDaysZoned("2024-03-30T12:00:00+00:00[Europe/London]", "2024-04-01T12:00:00+01:00[Europe/London]", "2024-03-30T12:00:00+00:00[Europe/London]", "2024-04-01T12:00:00+01:00[Europe/London]") // 3 (spring-forward, 47 real hours)
49
49
  * @example intervalOverlappingDaysZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-02T00:00:00+00:00[UTC]", "2024-01-02T00:00:00+00:00[UTC]", "2024-01-03T00:00:00+00:00[UTC]") // 0 (touching: no shared instant)
50
50
  * @example intervalOverlappingDaysZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-02T00:00:00+00:00[UTC]", "2024-01-01T00:00:00+00:00[UTC]", "2024-01-02T00:00:00+00:00[UTC]") // 1 (the end, 01-02T00:00, is excluded)
51
51
  * @example intervalOverlappingDaysZoned("2011-12-29T23:00:00-10:00[Pacific/Apia]", "2011-12-31T01:00:00+14:00[Pacific/Apia]", "2011-12-29T23:00:00-10:00[Pacific/Apia]", "2011-12-31T01:00:00+14:00[Pacific/Apia]") // 2 (2011-12-30 was deleted)
@@ -1,4 +1,3 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { calendarOfAllZonedValues, formatZonedInCalendar, parseCalendarZonedValue, } from "../../internal/index.js";
3
2
  import { isValidCalendarZonedDateTime } from "../validate/isValidCalendarZonedDateTime.js";
4
3
  import { isValidCalendarZonedInterval } from "./validate/index.js";
@@ -59,21 +58,20 @@ export function intervalSplitAtZoned(start, end, points) {
59
58
  try {
60
59
  const startVal = parseCalendarZonedValue(start);
61
60
  const endVal = parseCalendarZonedValue(end);
62
- const startInstant = startVal.toInstant();
63
- const endInstant = endVal.toInstant();
64
- const parsedPoints = points.map((point) => parseCalendarZonedValue(point));
65
- const inRangePoints = parsedPoints.filter((point) => {
66
- const instant = point.toInstant();
67
- return (Temporal.Instant.compare(instant, startInstant) > 0 &&
68
- Temporal.Instant.compare(instant, endInstant) < 0);
69
- });
70
- inRangePoints.sort((a, b) => Temporal.Instant.compare(a.toInstant(), b.toInstant()));
71
- // Safe: `.equals()` here is `Temporal.Instant.prototype.equals`, and `Instant` carries no
72
- // calendar field at all — verified calendar-blind. E7 re-audited this site rather than
73
- // inheriting E5's "structurally unreachable" verdict, which depended on mixed calendars never
74
- // reaching `zoned/` at all.
75
- const uniquePoints = inRangePoints.filter((point, index) => index === 0 ||
76
- !point.toInstant().equals(inRangePoints[index - 1].toInstant()));
61
+ const startNs = startVal.epochNanoseconds;
62
+ const endNs = endVal.epochNanoseconds;
63
+ // Each point's instant is read once; filter, sort and dedupe compare the bigints. `sort`
64
+ // is stable, so points on one instant keep input order and the dedupe keeps the first.
65
+ const timedPoints = points
66
+ .map((point) => {
67
+ const value = parseCalendarZonedValue(point);
68
+ return { value, ns: value.epochNanoseconds };
69
+ })
70
+ .filter(({ ns }) => ns > startNs && ns < endNs);
71
+ timedPoints.sort((a, b) => (a.ns < b.ns ? -1 : a.ns > b.ns ? 1 : 0));
72
+ const uniquePoints = timedPoints
73
+ .filter(({ ns }, index) => index === 0 || ns !== timedPoints[index - 1].ns)
74
+ .map(({ value }) => value);
77
75
  const boundaries = [startVal, ...uniquePoints, endVal];
78
76
  const result = [];
79
77
  for (let i = 0; i < boundaries.length - 1; i++) {
@@ -1,5 +1,5 @@
1
1
  // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
2
- import { Temporal } from "@js-temporal/polyfill";
2
+ import { Temporal } from "../../internal/temporal.js";
3
3
  import { calendarOfAllZonedValues, formatZonedInCalendar, halfOpenUnion, parseCalendarZonedValue, } from "../../internal/index.js";
4
4
  import { isValidCalendarZonedDateTime } from "../validate/index.js";
5
5
  /**
@@ -1,7 +1,8 @@
1
1
  // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
2
- import { Temporal } from "@js-temporal/polyfill";
2
+ import { Temporal } from "../../internal/temporal.js";
3
3
  import { calendarOfAllZonedValues, formatZonedInCalendar, halfOpenXor, parseCalendarZonedValue, } from "../../internal/index.js";
4
4
  import { isValidCalendarZonedInterval } from "./validate/index.js";
5
+ import { isObject } from "../../internal/isObject.js";
5
6
  /**
6
7
  * Return the symmetric difference across a list of zoned intervals — the set of instants
7
8
  * covered by an odd number of the input intervals.
@@ -39,8 +40,7 @@ export function intervalXorAllZoned(intervals) {
39
40
  if (!Array.isArray(intervals) || intervals.length === 0) {
40
41
  return [];
41
42
  }
42
- if (!intervals.every((interval) => interval &&
43
- typeof interval === "object" &&
43
+ if (!intervals.every((interval) => isObject(interval) &&
44
44
  typeof interval.start === "string" &&
45
45
  typeof interval.end === "string" &&
46
46
  isValidCalendarZonedInterval(interval.start, interval.end))) {
@@ -1,5 +1,5 @@
1
1
  // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
2
- import { Temporal } from "@js-temporal/polyfill";
2
+ import { Temporal } from "../../internal/temporal.js";
3
3
  import { calendarOfAllZonedValues, formatZonedInCalendar, halfOpenXor, parseCalendarZonedValue, } from "../../internal/index.js";
4
4
  import { isValidCalendarZonedDateTime } from "../validate/index.js";
5
5
  /**
@@ -12,7 +12,7 @@
12
12
  * - Returns `false` if either interval is invalid (`start > end`).
13
13
  * - Returns `false` on invalid input (wrong type, malformed strings, leap seconds).
14
14
  * - **Accepts mixed calendar systems** (E7's D4-zoned, issue #152): both bare ISO zoned strings
15
- * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]"`),
15
+ * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]"`),
16
16
  * and the two endpoints need not agree on a calendar. Ordering is calendar-independent —
17
17
  * verified that `Temporal.Instant` carries no calendar field at all and that
18
18
  * `Instant.compare`/`ZonedDateTime.compare` both return `0` for the same instant expressed in
@@ -29,7 +29,7 @@
29
29
  *
30
30
  * @example intervalsOverlapZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-06-30T23:59:59+00:00[UTC]", "2024-04-01T00:00:00+00:00[UTC]", "2024-12-31T23:59:59+00:00[UTC]") // true
31
31
  * @example intervalsOverlapZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-07-01T00:00:00+00:00[UTC]", "2024-07-01T00:00:00+00:00[UTC]", "2024-12-31T00:00:00+00:00[UTC]") // false (touching: the first interval excludes 07-01T00:00)
32
- * @example intervalsOverlapZoned("2024-01-01T09:00:00+00:00[UTC]", "2024-01-01T12:00:00+00:00[UTC]", "2024-01-01T07:00:00-05:00[America/New_York]", "2024-01-01T17:00:00+00:00[UTC]") // false (touching across zones)
32
+ * @example intervalsOverlapZoned("2024-01-01T09:00:00+00:00[UTC]", "2024-01-01T12:00:00+00:00[UTC]", "2024-01-01T21:00:00+09:00[Asia/Tokyo]", "2024-01-01T17:00:00+00:00[UTC]") // false (touching across zones)
33
33
  * @example intervalsOverlapZoned("invalid", "2024-06-30T23:59:59+00:00[UTC]", "2024-04-01T00:00:00+00:00[UTC]", "2024-12-31T23:59:59+00:00[UTC]") // false
34
34
  */
35
35
  export declare function intervalsOverlapZoned(aStart: string, aEnd: string, bStart: string, bEnd: string): boolean;
@@ -1,5 +1,5 @@
1
1
  // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
2
- import { Temporal } from "@js-temporal/polyfill";
2
+ import { Temporal } from "../../internal/temporal.js";
3
3
  import { halfOpenOverlap, parseCalendarZonedValue } from "../../internal/index.js";
4
4
  import { isValidCalendarZonedDateTime } from "../validate/index.js";
5
5
  /**
@@ -16,7 +16,7 @@ import { isValidCalendarZonedDateTime } from "../validate/index.js";
16
16
  * - Returns `false` if either interval is invalid (`start > end`).
17
17
  * - Returns `false` on invalid input (wrong type, malformed strings, leap seconds).
18
18
  * - **Accepts mixed calendar systems** (E7's D4-zoned, issue #152): both bare ISO zoned strings
19
- * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]"`),
19
+ * and RFC 9557 calendar-annotated ones (`"2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]"`),
20
20
  * and the two endpoints need not agree on a calendar. Ordering is calendar-independent —
21
21
  * verified that `Temporal.Instant` carries no calendar field at all and that
22
22
  * `Instant.compare`/`ZonedDateTime.compare` both return `0` for the same instant expressed in
@@ -33,7 +33,7 @@ import { isValidCalendarZonedDateTime } from "../validate/index.js";
33
33
  *
34
34
  * @example intervalsOverlapZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-06-30T23:59:59+00:00[UTC]", "2024-04-01T00:00:00+00:00[UTC]", "2024-12-31T23:59:59+00:00[UTC]") // true
35
35
  * @example intervalsOverlapZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-07-01T00:00:00+00:00[UTC]", "2024-07-01T00:00:00+00:00[UTC]", "2024-12-31T00:00:00+00:00[UTC]") // false (touching: the first interval excludes 07-01T00:00)
36
- * @example intervalsOverlapZoned("2024-01-01T09:00:00+00:00[UTC]", "2024-01-01T12:00:00+00:00[UTC]", "2024-01-01T07:00:00-05:00[America/New_York]", "2024-01-01T17:00:00+00:00[UTC]") // false (touching across zones)
36
+ * @example intervalsOverlapZoned("2024-01-01T09:00:00+00:00[UTC]", "2024-01-01T12:00:00+00:00[UTC]", "2024-01-01T21:00:00+09:00[Asia/Tokyo]", "2024-01-01T17:00:00+00:00[UTC]") // false (touching across zones)
37
37
  * @example intervalsOverlapZoned("invalid", "2024-06-30T23:59:59+00:00[UTC]", "2024-04-01T00:00:00+00:00[UTC]", "2024-12-31T23:59:59+00:00[UTC]") // false
38
38
  */
39
39
  export function intervalsOverlapZoned(aStart, aEnd, bStart, bEnd) {
@@ -1,7 +1,8 @@
1
1
  // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
2
- import { Temporal } from "@js-temporal/polyfill";
2
+ import { Temporal } from "../../internal/temporal.js";
3
3
  import { calendarOfAllZonedValues, formatZonedInCalendar, halfOpenMerge, parseCalendarZonedValue, } from "../../internal/index.js";
4
4
  import { isValidCalendarZonedInterval } from "./validate/index.js";
5
+ import { isObject } from "../../internal/isObject.js";
5
6
  /**
6
7
  * Collapse a list of zoned intervals into the minimum set of non-overlapping intervals.
7
8
  *
@@ -43,8 +44,7 @@ export function mergeIntervalsZoned(intervals) {
43
44
  if (!Array.isArray(intervals) || intervals.length === 0) {
44
45
  return [];
45
46
  }
46
- if (!intervals.every((interval) => interval &&
47
- typeof interval === "object" &&
47
+ if (!intervals.every((interval) => isObject(interval) &&
48
48
  typeof interval.start === "string" &&
49
49
  typeof interval.end === "string" &&
50
50
  isValidCalendarZonedInterval(interval.start, interval.end))) {
@@ -10,7 +10,8 @@
10
10
  * lands on February 29, March 31, April 30. Temporal's `add` constrains a day the month lacks
11
11
  * to the month's last day, and stepping from that boundary would keep the shortened day
12
12
  * (February 29, then March 29).
13
- * - Comparison: Luxon's `Interval.splitBy` computes each boundary from the start the same way.
13
+ * - Each calendar-unit boundary is `start.add(amount × k)` with Temporal's
14
+ * `overflow: "constrain"` (TC39 Temporal `add`), never a step from the previous boundary.
14
15
  * - Exact-unit boundaries (hours and smaller) step from the previous boundary. Exact units never
15
16
  * clamp, and stepping keeps nanosecond precision where `k × amount` would pass
16
17
  * `Number.MAX_SAFE_INTEGER`.