@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,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 { addToZoned, formatZonedInCalendar, parseCalendarZonedPairForArithmetic, resolveDurationUnit, tileByUnit, } from "../../internal/index.js";
4
4
  import { isValidDateTimeDurationUnit } from "../../plain/validate/index.js";
5
5
  import { isValidCalendarZonedDateTime } from "../validate/isValidCalendarZonedDateTime.js";
@@ -17,7 +17,8 @@ import { minSlicesForSpan } from "../../internal/splitStep.js";
17
17
  * lands on February 29, March 31, April 30. Temporal's `add` constrains a day the month lacks
18
18
  * to the month's last day, and stepping from that boundary would keep the shortened day
19
19
  * (February 29, then March 29).
20
- * - Comparison: Luxon's `Interval.splitBy` computes each boundary from the start the same way.
20
+ * - Each calendar-unit boundary is `start.add(amount × k)` with Temporal's
21
+ * `overflow: "constrain"` (TC39 Temporal `add`), never a step from the previous boundary.
21
22
  * - Exact-unit boundaries (hours and smaller) step from the previous boundary. Exact units never
22
23
  * clamp, and stepping keeps nanosecond precision where `k × amount` would pass
23
24
  * `Number.MAX_SAFE_INTEGER`.
@@ -24,8 +24,8 @@
24
24
  * @returns true if start and end form a valid zoned interval, or false on invalid input
25
25
  *
26
26
  * @example isValidCalendarZonedInterval("2024-01-01T10:00:00+00:00[UTC]", "2024-12-31T23:59:59+00:00[UTC]") // true
27
- * @example isValidCalendarZonedInterval("2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]", "2024-03-25T14:30:00-04:00[America/New_York][u-ca=hebrew]") // true
28
- * @example isValidCalendarZonedInterval("2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]", "2024-03-25T14:30:00-04:00[America/New_York][u-ca=islamic-civil]") // true (mixed calendars accepted)
27
+ * @example isValidCalendarZonedInterval("2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]", "2024-03-25T14:30:00+00:00[Europe/London][u-ca=hebrew]") // true
28
+ * @example isValidCalendarZonedInterval("2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]", "2024-03-25T14:30:00+00:00[Europe/London][u-ca=islamic-civil]") // true (mixed calendars accepted)
29
29
  * @example isValidCalendarZonedInterval("2024-12-31T23:59:59+00:00[UTC]", "2024-01-01T10:00:00+00:00[UTC]") // false (start after end)
30
30
  * @example isValidCalendarZonedInterval("2024-01-01T10:00:00+00:00[UTC][u-ca=hebrew]", "2024-12-31T23:59:59+00:00[UTC]") // true (RFC 9557; mixed calendars accepted)
31
31
  * @example isValidCalendarZonedInterval("2024-01-01T10:00:00+00:00[u-ca=hebrew][UTC]", "2024-12-31T23:59:59+00:00[UTC]") // false (calendar before the zone)
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "../../../internal/temporal.js";
2
2
  import { parseCalendarZonedValue } from "../../../internal/index.js";
3
3
  /**
4
4
  * Return true if `start` and `end` form a valid GMT zoned interval — both parseable as bare ISO
@@ -26,8 +26,8 @@ import { parseCalendarZonedValue } from "../../../internal/index.js";
26
26
  * @returns true if start and end form a valid zoned interval, or false on invalid input
27
27
  *
28
28
  * @example isValidCalendarZonedInterval("2024-01-01T10:00:00+00:00[UTC]", "2024-12-31T23:59:59+00:00[UTC]") // true
29
- * @example isValidCalendarZonedInterval("2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]", "2024-03-25T14:30:00-04:00[America/New_York][u-ca=hebrew]") // true
30
- * @example isValidCalendarZonedInterval("2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]", "2024-03-25T14:30:00-04:00[America/New_York][u-ca=islamic-civil]") // true (mixed calendars accepted)
29
+ * @example isValidCalendarZonedInterval("2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]", "2024-03-25T14:30:00+00:00[Europe/London][u-ca=hebrew]") // true
30
+ * @example isValidCalendarZonedInterval("2024-02-24T14:30:00+00:00[Europe/London][u-ca=hebrew]", "2024-03-25T14:30:00+00:00[Europe/London][u-ca=islamic-civil]") // true (mixed calendars accepted)
31
31
  * @example isValidCalendarZonedInterval("2024-12-31T23:59:59+00:00[UTC]", "2024-01-01T10:00:00+00:00[UTC]") // false (start after end)
32
32
  * @example isValidCalendarZonedInterval("2024-01-01T10:00:00+00:00[UTC][u-ca=hebrew]", "2024-12-31T23:59:59+00:00[UTC]") // true (RFC 9557; mixed calendars accepted)
33
33
  * @example isValidCalendarZonedInterval("2024-01-01T10:00:00+00:00[u-ca=hebrew][UTC]", "2024-12-31T23:59:59+00:00[UTC]") // false (calendar before the zone)
@@ -16,7 +16,7 @@
16
16
  * @returns true if start and end form a valid zoned interval, or false on invalid input
17
17
  *
18
18
  * @example isValidZonedInterval("2024-01-01T10:00:00+00:00[UTC]", "2024-12-31T23:59:59+00:00[UTC]") // true
19
- * @example isValidZonedInterval("2024-06-15T12:00:00-04:00[America/New_York]", "2024-06-15T12:00:00-04:00[America/New_York]") // true
19
+ * @example isValidZonedInterval("2024-06-15T12:00:00+02:00[Africa/Johannesburg]", "2024-06-15T12:00:00+02:00[Africa/Johannesburg]") // true
20
20
  * @example isValidZonedInterval("2024-12-31T23:59:59+00:00[UTC]", "2024-01-01T10:00:00+00:00[UTC]") // false
21
21
  * @example isValidZonedInterval("2024-01-01T10:00:00+00:00[UTC][u-ca=iso8601]", "2024-12-31T23:59:59+00:00[UTC][foo=bar]") // true (ISO calendar and elective annotations)
22
22
  * @example isValidZonedInterval("2024-01-01T10:00:00+00:00[UTC][u-ca=hebrew]", "2024-12-31T23:59:59+00:00[UTC]") // false (non-ISO calendar: use isValidCalendarZonedInterval)
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "../../../internal/temporal.js";
2
2
  import { zonedDateTimeFrom } from "../../../internal/index.js";
3
3
  import { isValidZonedDateTime } from "../../validate/isValidZonedDateTime.js";
4
4
  /**
@@ -19,7 +19,7 @@ import { isValidZonedDateTime } from "../../validate/isValidZonedDateTime.js";
19
19
  * @returns true if start and end form a valid zoned interval, or false on invalid input
20
20
  *
21
21
  * @example isValidZonedInterval("2024-01-01T10:00:00+00:00[UTC]", "2024-12-31T23:59:59+00:00[UTC]") // true
22
- * @example isValidZonedInterval("2024-06-15T12:00:00-04:00[America/New_York]", "2024-06-15T12:00:00-04:00[America/New_York]") // true
22
+ * @example isValidZonedInterval("2024-06-15T12:00:00+02:00[Africa/Johannesburg]", "2024-06-15T12:00:00+02:00[Africa/Johannesburg]") // true
23
23
  * @example isValidZonedInterval("2024-12-31T23:59:59+00:00[UTC]", "2024-01-01T10:00:00+00:00[UTC]") // false
24
24
  * @example isValidZonedInterval("2024-01-01T10:00:00+00:00[UTC][u-ca=iso8601]", "2024-12-31T23:59:59+00:00[UTC][foo=bar]") // true (ISO calendar and elective annotations)
25
25
  * @example isValidZonedInterval("2024-01-01T10:00:00+00:00[UTC][u-ca=hebrew]", "2024-12-31T23:59:59+00:00[UTC]") // false (non-ISO calendar: use isValidCalendarZonedInterval)
@@ -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 { isValidZonedDateTime } from "../validate/index.js";
4
4
  import { zonedDateTimeFrom } from "../../internal/index.js";
5
5
  import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js";
@@ -13,7 +13,7 @@
13
13
  * @returns array of zoned ISO 8601 strings for each hour in the day
14
14
  *
15
15
  * @example mapZonedHoursInDay("2024-02-29T12:34:56.789+00:00[UTC]") // ["2024-02-29T00:00:00+00:00[UTC]", "2024-02-29T01:00:00+00:00[UTC]", ..., "2024-02-29T23:00:00+00:00[UTC]"]
16
- * @example mapZonedHoursInDay("2024-03-10T12:34:56.789-04:00[America/New_York]") // ["2024-03-10T00:00:00-05:00[America/New_York]", ...] (23 entries; 2 AM is skipped — the anchor is after the spring-forward, so its offset is -04:00)
16
+ * @example mapZonedHoursInDay("2024-03-31T12:34:56.789+01:00[Europe/London]") // ["2024-03-31T00:00:00+00:00[Europe/London]", ...] (23 entries; 1 AM is skipped — the anchor is after the spring-forward, so its offset is +01:00)
17
17
  * @example mapZonedHoursInDay("2024-09-08T12:00:00-03:00[America/Santiago]") // ["2024-09-08T01:00:00-03:00[America/Santiago]", ..., "2024-09-08T23:00:00-03:00[America/Santiago]"] (23 entries; midnight is skipped)
18
18
  * @example mapZonedHoursInDay("invalid") // []
19
19
  */
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "../../internal/temporal.js";
2
2
  import { isValidZonedDateTime } from "../validate/index.js";
3
3
  import { addToZoned, zonedDateTimeFrom, zonedStartOfDay } from "../../internal/index.js";
4
4
  /**
@@ -16,7 +16,7 @@ import { addToZoned, zonedDateTimeFrom, zonedStartOfDay } from "../../internal/i
16
16
  * @returns array of zoned ISO 8601 strings for each hour in the day
17
17
  *
18
18
  * @example mapZonedHoursInDay("2024-02-29T12:34:56.789+00:00[UTC]") // ["2024-02-29T00:00:00+00:00[UTC]", "2024-02-29T01:00:00+00:00[UTC]", ..., "2024-02-29T23:00:00+00:00[UTC]"]
19
- * @example mapZonedHoursInDay("2024-03-10T12:34:56.789-04:00[America/New_York]") // ["2024-03-10T00:00:00-05:00[America/New_York]", ...] (23 entries; 2 AM is skipped — the anchor is after the spring-forward, so its offset is -04:00)
19
+ * @example mapZonedHoursInDay("2024-03-31T12:34:56.789+01:00[Europe/London]") // ["2024-03-31T00:00:00+00:00[Europe/London]", ...] (23 entries; 1 AM is skipped — the anchor is after the spring-forward, so its offset is +01:00)
20
20
  * @example mapZonedHoursInDay("2024-09-08T12:00:00-03:00[America/Santiago]") // ["2024-09-08T01:00:00-03:00[America/Santiago]", ..., "2024-09-08T23:00:00-03:00[America/Santiago]"] (23 entries; midnight is skipped)
21
21
  * @example mapZonedHoursInDay("invalid") // []
22
22
  */
@@ -10,7 +10,7 @@
10
10
  * @returns offset string (e.g. "-04:00"), or "" on invalid input
11
11
  *
12
12
  * @example getZonedOffset("2024-02-29T12:34:56.789+00:00[UTC]") // "+00:00"
13
- * @example getZonedOffset("2024-07-15T12:00:00-04:00[America/New_York]") // "-04:00"
13
+ * @example getZonedOffset("2024-07-15T12:00:00+05:30[Asia/Kolkata]") // "+05:30"
14
14
  * @example getZonedOffset("2024-05-15T12:00:00+05:45[Asia/Kathmandu]") // "+05:45"
15
15
  * @example getZonedOffset("invalid") // ""
16
16
  */
@@ -12,7 +12,7 @@ import { zonedDateTimeFrom } from "../../internal/index.js";
12
12
  * @returns offset string (e.g. "-04:00"), or "" on invalid input
13
13
  *
14
14
  * @example getZonedOffset("2024-02-29T12:34:56.789+00:00[UTC]") // "+00:00"
15
- * @example getZonedOffset("2024-07-15T12:00:00-04:00[America/New_York]") // "-04:00"
15
+ * @example getZonedOffset("2024-07-15T12:00:00+05:30[Asia/Kolkata]") // "+05:30"
16
16
  * @example getZonedOffset("2024-05-15T12:00:00+05:45[Asia/Kathmandu]") // "+05:45"
17
17
  * @example getZonedOffset("invalid") // ""
18
18
  */
@@ -5,12 +5,12 @@
5
5
  *
6
6
  * | Member | Description |
7
7
  * | --- | --- |
8
- * | `minutes` | Whole-minute offset (e.g. `-240` for `-04:00`). |
9
- * | `nanoseconds` | Raw `offsetNanoseconds` from Temporal (e.g. `-14400000000000`). |
8
+ * | `minutes` | Whole-minute offset (e.g. `-180` for `-03:00`). |
9
+ * | `nanoseconds` | Raw `offsetNanoseconds` from Temporal (e.g. `-10800000000000`). |
10
10
  *
11
11
  * @example
12
12
  * import { getZonedOffsetAs } from "@northguild/gmt/zoned";
13
- * getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "minutes");
13
+ * getZonedOffsetAs("2024-07-15T12:00:00-03:00[America/Sao_Paulo]", "minutes");
14
14
  */
15
15
  export type ZonedOffsetUnit = "minutes" | "nanoseconds" | "minute" | "nanosecond";
16
16
  /**
@@ -31,11 +31,11 @@ export type ZonedOffsetUnit = "minutes" | "nanoseconds" | "minute" | "nanosecond
31
31
  * @param unit "minutes" | "nanoseconds" (or the singular "minute" | "nanosecond")
32
32
  * @returns the offset in the requested unit, or null on invalid input
33
33
  *
34
- * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "minutes") // -240
34
+ * @example getZonedOffsetAs("2024-07-15T12:00:00-03:00[America/Sao_Paulo]", "minutes") // -180
35
35
  * @example getZonedOffsetAs("2024-05-15T12:00:00+05:45[Asia/Kathmandu]", "minutes") // 345
36
36
  * @example getZonedOffsetAs("2024-02-29T12:00:00+00:00[UTC]", "nanoseconds") // 0
37
- * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "nanoseconds") // -14400000000000
38
- * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "minute") // -240 (singular unit name)
37
+ * @example getZonedOffsetAs("2024-07-15T12:00:00-03:00[America/Sao_Paulo]", "nanoseconds") // -10800000000000
38
+ * @example getZonedOffsetAs("2024-07-15T12:00:00-03:00[America/Sao_Paulo]", "minute") // -180 (singular unit name)
39
39
  * @example getZonedOffsetAs("invalid", "minutes") // null
40
40
  * @example getZonedOffsetAs("2024-02-29T12:00:00+00:00[UTC]", "fortnights" as never) // null
41
41
  */
@@ -25,11 +25,11 @@ function isValidZonedOffsetUnit(unit) {
25
25
  * @param unit "minutes" | "nanoseconds" (or the singular "minute" | "nanosecond")
26
26
  * @returns the offset in the requested unit, or null on invalid input
27
27
  *
28
- * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "minutes") // -240
28
+ * @example getZonedOffsetAs("2024-07-15T12:00:00-03:00[America/Sao_Paulo]", "minutes") // -180
29
29
  * @example getZonedOffsetAs("2024-05-15T12:00:00+05:45[Asia/Kathmandu]", "minutes") // 345
30
30
  * @example getZonedOffsetAs("2024-02-29T12:00:00+00:00[UTC]", "nanoseconds") // 0
31
- * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "nanoseconds") // -14400000000000
32
- * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "minute") // -240 (singular unit name)
31
+ * @example getZonedOffsetAs("2024-07-15T12:00:00-03:00[America/Sao_Paulo]", "nanoseconds") // -10800000000000
32
+ * @example getZonedOffsetAs("2024-07-15T12:00:00-03:00[America/Sao_Paulo]", "minute") // -180 (singular unit name)
33
33
  * @example getZonedOffsetAs("invalid", "minutes") // null
34
34
  * @example getZonedOffsetAs("2024-02-29T12:00:00+00:00[UTC]", "fortnights" as never) // null
35
35
  */
@@ -1,4 +1,4 @@
1
- import { isLeapSecond } from "../../plain/validate/isLeapSecond.js";
1
+ import { hasSecond60 } from "../../plain/validate/hasSecond60.js";
2
2
  import { isValidZonedDateTime } from "../validate/isValidZonedDateTime.js";
3
3
  import { zonedDateTimeFrom } from "../../internal/index.js";
4
4
  /**
@@ -15,7 +15,7 @@ import { zonedDateTimeFrom } from "../../internal/index.js";
15
15
  * @example parseDateTimeFromZoned("invalid") // ""
16
16
  */
17
17
  export const parseDateTimeFromZoned = (value) => {
18
- if (!isValidZonedDateTime(value) || isLeapSecond(value)) {
18
+ if (!isValidZonedDateTime(value) || hasSecond60(value)) {
19
19
  return "";
20
20
  }
21
21
  try {
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "../../internal/temporal.js";
2
2
  import { readRfc5322DateTime } from "../../internal/rfc5322DateTime.js";
3
3
  /**
4
4
  * Parse an RFC 5322 (RFC 2822) date-time string — the fixed grammar email
@@ -1,4 +1,4 @@
1
- import { Temporal } from "@js-temporal/polyfill";
1
+ import { Temporal } from "../../internal/temporal.js";
2
2
  import { rfc3339DateTime } from "../../regex/index.js";
3
3
  /**
4
4
  * Parse a strict RFC 3339 datetime string into a zoned ISO 8601 datetime
@@ -1,4 +1,4 @@
1
- import type { Temporal } from "@js-temporal/polyfill";
1
+ import type { Temporal } from "../../internal/temporal.js";
2
2
  /**
3
3
  * Units supported by `parseUnitFromZoned` when extracting a value from a zoned
4
4
  * ISO string. Includes `timeZone` for reading the zone identifier. Each Temporal unit is also
@@ -8,7 +8,7 @@ import type { Temporal } from "@js-temporal/polyfill";
8
8
  *
9
9
  * | Member | Description |
10
10
  * | --- | --- |
11
- * | `year` | Full year, no padding (e.g. `2024`). |
11
+ * | `year` | Four digits (e.g. `2024`, `0005`); a sign and six digits outside 0000–9999 (e.g. `+010000`). |
12
12
  * | `month` | Zero-padded 2 (e.g. `03`). |
13
13
  * | `week` | Week-of-year, 1–53 (`weekStartsOn`-controlled). |
14
14
  * | `day` | Zero-padded 2. |
@@ -34,6 +34,8 @@ export type ZonedParseUnit = Temporal.SmallestUnit<"year" | "month" | "week" | "
34
34
  * - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
35
35
  * does; `"dayOfWeek"` has no plural.
36
36
  * - Returns "" for invalid input.
37
+ * - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
38
+ * sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
37
39
  *
38
40
  * @param value zoned ISO 8601 datetime string
39
41
  * @param unit unit to extract
@@ -41,6 +43,7 @@ export type ZonedParseUnit = Temporal.SmallestUnit<"year" | "month" | "week" | "
41
43
  * @returns string representation of the requested unit or "" when invalid
42
44
  *
43
45
  * @example parseUnitFromZoned("2024-02-29T12:34:56.789+00:00[UTC]", "year") // "2024"
46
+ * @example parseUnitFromZoned("0005-06-01T12:30:00+00:00[UTC]", "year") // "0005"
44
47
  * @example parseUnitFromZoned("2024-02-29T12:34:56.789+00:00[UTC]", "milliseconds") // "789"
45
48
  * @example parseUnitFromZoned("2024-12-31T12:00:00+00:00[UTC]", "week", { weekStartsOn: "sunday" }) // "1"
46
49
  * @example parseUnitFromZoned("invalid", "year") // ""
@@ -4,6 +4,7 @@ import { zonedDateTimeFrom } from "../../internal/index.js";
4
4
  import { resolveDateTimeUnit } from "../../internal/resolveDateTimeUnit.js";
5
5
  import { resolveWeekStartsOn } from "../../internal/resolveWeekStartsOn.js";
6
6
  import { isOptionsArgument } from "../../internal/isObject.js";
7
+ import { isoYearString } from "../../internal/isoYearString.js";
7
8
  function isValidZonedUnit(unit) {
8
9
  return [
9
10
  "year",
@@ -28,6 +29,8 @@ function isValidZonedUnit(unit) {
28
29
  * - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
29
30
  * does; `"dayOfWeek"` has no plural.
30
31
  * - Returns "" for invalid input.
32
+ * - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
33
+ * sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
31
34
  *
32
35
  * @param value zoned ISO 8601 datetime string
33
36
  * @param unit unit to extract
@@ -35,6 +38,7 @@ function isValidZonedUnit(unit) {
35
38
  * @returns string representation of the requested unit or "" when invalid
36
39
  *
37
40
  * @example parseUnitFromZoned("2024-02-29T12:34:56.789+00:00[UTC]", "year") // "2024"
41
+ * @example parseUnitFromZoned("0005-06-01T12:30:00+00:00[UTC]", "year") // "0005"
38
42
  * @example parseUnitFromZoned("2024-02-29T12:34:56.789+00:00[UTC]", "milliseconds") // "789"
39
43
  * @example parseUnitFromZoned("2024-12-31T12:00:00+00:00[UTC]", "week", { weekStartsOn: "sunday" }) // "1"
40
44
  * @example parseUnitFromZoned("invalid", "year") // ""
@@ -56,7 +60,7 @@ export function parseUnitFromZoned(value, unit, optionsArg) {
56
60
  const zonedDateTime = zonedDateTimeFrom(value);
57
61
  switch (resolvedUnit) {
58
62
  case "year":
59
- return zonedDateTime.year.toString();
63
+ return isoYearString(zonedDateTime.year);
60
64
  case "month":
61
65
  return zonedDateTime.month.toString().padStart(2, "0");
62
66
  case "week":
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * Return the year for a given ISO 8601 zoned datetime string.
3
3
  *
4
- * - Returns string for year.
4
+ * - Returns the year as Temporal writes it: four digits (`"2024"`, `"0005"`), or a sign and six
5
+ * digits outside 0000–9999 (`"+010000"`, `"-000005"`).
5
6
  * - Returns "" for invalid input.
6
7
  *
7
8
  * @param value ISO zoned datetime string
8
- * @returns Year as string or "" on invalid input
9
+ * @returns the year as four digits, or a sign and six digits outside 0000–9999, or "" on invalid input
9
10
  *
10
11
  * @example parseYearFromZoned("2024-03-15T14:30:45.123+00:00[UTC]") // "2024"
12
+ * @example parseYearFromZoned("0005-06-01T12:30:00+00:00[UTC]") // "0005"
11
13
  * @example parseYearFromZoned("invalid") // ""
12
14
  */
13
15
  export declare function parseYearFromZoned(value: string): string;
@@ -1,15 +1,18 @@
1
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
2
  import { zonedDateTimeFrom } from "../../internal/index.js";
3
+ import { isoYearString } from "../../internal/isoYearString.js";
3
4
  /**
4
5
  * Return the year for a given ISO 8601 zoned datetime string.
5
6
  *
6
- * - Returns string for year.
7
+ * - Returns the year as Temporal writes it: four digits (`"2024"`, `"0005"`), or a sign and six
8
+ * digits outside 0000–9999 (`"+010000"`, `"-000005"`).
7
9
  * - Returns "" for invalid input.
8
10
  *
9
11
  * @param value ISO zoned datetime string
10
- * @returns Year as string or "" on invalid input
12
+ * @returns the year as four digits, or a sign and six digits outside 0000–9999, or "" on invalid input
11
13
  *
12
14
  * @example parseYearFromZoned("2024-03-15T14:30:45.123+00:00[UTC]") // "2024"
15
+ * @example parseYearFromZoned("0005-06-01T12:30:00+00:00[UTC]") // "0005"
13
16
  * @example parseYearFromZoned("invalid") // ""
14
17
  */
15
18
  export function parseYearFromZoned(value) {
@@ -18,7 +21,7 @@ export function parseYearFromZoned(value) {
18
21
  }
19
22
  try {
20
23
  const zonedDateTime = zonedDateTimeFrom(value);
21
- return zonedDateTime.year.toString();
24
+ return isoYearString(zonedDateTime.year);
22
25
  }
23
26
  catch {
24
27
  return "";
@@ -17,13 +17,14 @@
17
17
  * 2016 on, although its clocks went forward in March 2016.
18
18
  * - Read from the runtime's time zone data, so the answer can change when that data does.
19
19
  * - Returns false for an invalid timeZone, an invalid `at`, an options argument that is not an
20
- * object, and a fixed offset.
20
+ * object, and a fixed UTC offset, with or without seconds (`"+05:30"`, `"-00:44:30"`).
21
21
  *
22
- * @param timeZone timeZone identifier to check
22
+ * @param timeZone IANA name or UTC offset: a time zone identifier (`+05:30`, `+0530`, `-08`) or a
23
+ * stored offset (`±HH:MM[:SS]`, what `getTimeZoneOffset` returns)
23
24
  * @param options optional setting for the reference instant
24
25
  * @returns boolean indicating whether the timeZone observes DST, or false on invalid input
25
26
  *
26
- * @example hasDaylightSaving("America/New_York", { at: "2024-01-15T12:00:00Z" }) // true
27
+ * @example hasDaylightSaving("Europe/London", { at: "2024-01-15T12:00:00Z" }) // true
27
28
  * @example hasDaylightSaving("Australia/Sydney", { at: "2024-06-15T12:00:00Z" }) // true (winter; the next period begins in October)
28
29
  * @example hasDaylightSaving("Asia/Tokyo", { at: "2024-01-15T12:00:00Z" }) // false
29
30
  * @example hasDaylightSaving("Europe/Istanbul", { at: "2015-06-15T12:00:00Z" }) // true
@@ -33,7 +34,8 @@
33
34
  * @example hasDaylightSaving("UTC", { at: "2024-01-15T12:00:00Z" }) // false
34
35
  * @example hasDaylightSaving("+05:00", { at: "2024-01-15T12:00:00Z" }) // false
35
36
  * @example hasDaylightSaving("Invalid/Zone", { at: "2024-01-15T12:00:00Z" }) // false
36
- * @example hasDaylightSaving("America/New_York", { at: "2024-01-15" }) // false (not an instant)
37
+ * @example hasDaylightSaving("Australia/Sydney", { at: "2024-01-15" }) // false (not an instant)
38
+ * @example hasDaylightSaving("-00:44:30", { at: "1970-01-01T12:00:00Z" }) // false (a fixed offset)
37
39
  */
38
40
  export declare function hasDaylightSaving(timeZone: string, options?: {
39
41
  /**
@@ -1,6 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { isOptionsArgument, observesDaylightTime, parseInstantNanoseconds, } from "../../internal/index.js";
3
- import { isValidTimeZone } from "./isValidTimeZone.js";
1
+ import { Temporal } from "../../internal/temporal.js";
2
+ import { isOptionsArgument, observesDaylightTime, parseInstantNanoseconds, zoneFrame, } from "../../internal/index.js";
4
3
  /**
5
4
  * Check whether a timeZone observes daylight saving time at a reference instant.
6
5
  *
@@ -20,13 +19,14 @@ import { isValidTimeZone } from "./isValidTimeZone.js";
20
19
  * 2016 on, although its clocks went forward in March 2016.
21
20
  * - Read from the runtime's time zone data, so the answer can change when that data does.
22
21
  * - Returns false for an invalid timeZone, an invalid `at`, an options argument that is not an
23
- * object, and a fixed offset.
22
+ * object, and a fixed UTC offset, with or without seconds (`"+05:30"`, `"-00:44:30"`).
24
23
  *
25
- * @param timeZone timeZone identifier to check
24
+ * @param timeZone IANA name or UTC offset: a time zone identifier (`+05:30`, `+0530`, `-08`) or a
25
+ * stored offset (`±HH:MM[:SS]`, what `getTimeZoneOffset` returns)
26
26
  * @param options optional setting for the reference instant
27
27
  * @returns boolean indicating whether the timeZone observes DST, or false on invalid input
28
28
  *
29
- * @example hasDaylightSaving("America/New_York", { at: "2024-01-15T12:00:00Z" }) // true
29
+ * @example hasDaylightSaving("Europe/London", { at: "2024-01-15T12:00:00Z" }) // true
30
30
  * @example hasDaylightSaving("Australia/Sydney", { at: "2024-06-15T12:00:00Z" }) // true (winter; the next period begins in October)
31
31
  * @example hasDaylightSaving("Asia/Tokyo", { at: "2024-01-15T12:00:00Z" }) // false
32
32
  * @example hasDaylightSaving("Europe/Istanbul", { at: "2015-06-15T12:00:00Z" }) // true
@@ -36,22 +36,28 @@ import { isValidTimeZone } from "./isValidTimeZone.js";
36
36
  * @example hasDaylightSaving("UTC", { at: "2024-01-15T12:00:00Z" }) // false
37
37
  * @example hasDaylightSaving("+05:00", { at: "2024-01-15T12:00:00Z" }) // false
38
38
  * @example hasDaylightSaving("Invalid/Zone", { at: "2024-01-15T12:00:00Z" }) // false
39
- * @example hasDaylightSaving("America/New_York", { at: "2024-01-15" }) // false (not an instant)
39
+ * @example hasDaylightSaving("Australia/Sydney", { at: "2024-01-15" }) // false (not an instant)
40
+ * @example hasDaylightSaving("-00:44:30", { at: "1970-01-01T12:00:00Z" }) // false (a fixed offset)
40
41
  */
41
42
  export function hasDaylightSaving(timeZone, options) {
42
- if (!isValidTimeZone(timeZone) || !isOptionsArgument(options)) {
43
+ const frame = zoneFrame(timeZone);
44
+ // A stored offset with seconds is a fixed offset: it observes no daylight time, as "-00:45"
45
+ // observes none.
46
+ if (frame === null ||
47
+ frame.shiftNanoseconds !== 0n ||
48
+ !isOptionsArgument(options)) {
43
49
  return false;
44
50
  }
45
51
  try {
46
52
  const at = options?.at;
47
53
  if (at === undefined) {
48
- return observesDaylightTime(Temporal.Now.zonedDateTimeISO(timeZone));
54
+ return observesDaylightTime(Temporal.Now.zonedDateTimeISO(frame.timeZone));
49
55
  }
50
56
  const epochNanoseconds = parseInstantNanoseconds(at);
51
57
  if (epochNanoseconds === null) {
52
58
  return false;
53
59
  }
54
- return observesDaylightTime(Temporal.Instant.fromEpochNanoseconds(epochNanoseconds).toZonedDateTimeISO(timeZone));
60
+ return observesDaylightTime(Temporal.Instant.fromEpochNanoseconds(epochNanoseconds).toZonedDateTimeISO(frame.timeZone));
55
61
  }
56
62
  catch {
57
63
  return false;
@@ -1,5 +1,7 @@
1
1
  export * from "./hasDaylightSaving.js";
2
2
  export * from "./isValidCalendarZonedDateTime.js";
3
+ export * from "./isValidRfc2822DateTime.js";
4
+ export * from "./isValidRfc3339DateTime.js";
3
5
  export * from "./isValidTimeZone.js";
4
6
  export * from "./isValidZonedDateTime.js";
5
7
  export * from "./isValidZonedRange.js";
@@ -1,5 +1,7 @@
1
1
  export * from "./hasDaylightSaving.js";
2
2
  export * from "./isValidCalendarZonedDateTime.js";
3
+ export * from "./isValidRfc2822DateTime.js";
4
+ export * from "./isValidRfc3339DateTime.js";
3
5
  export * from "./isValidTimeZone.js";
4
6
  export * from "./isValidZonedDateTime.js";
5
7
  export * from "./isValidZonedRange.js";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Return true if `value` is a valid GMT ZonedDateTime string: a bare ISO zoned datetime
3
- * ("2024-10-03T14:30:45-04:00[America/New_York]") or an RFC 9557 calendar-annotated one
4
- * ("2024-10-03T14:30:45-04:00[America/New_York][u-ca=hebrew]"), as
3
+ * ("2024-10-03T14:30:45+02:00[Africa/Johannesburg]") or an RFC 9557 calendar-annotated one
4
+ * ("2024-10-03T14:30:45+02:00[Africa/Johannesburg][u-ca=hebrew]"), as
5
5
  * `Temporal.ZonedDateTime#toString()` and `convertZonedToCalendar` write it.
6
6
  *
7
7
  * - Parallel to `isValidZonedDateTime`, which accepts `[u-ca=iso8601]` and rejects every other
@@ -32,14 +32,14 @@
32
32
  * @param value candidate zoned datetime string, optionally calendar-annotated
33
33
  * @returns boolean indicating validity
34
34
  *
35
- * @example isValidCalendarZonedDateTime("2024-10-03T14:30:45-04:00[America/New_York]") // true
36
- * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]") // true
37
- * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00-05:00[America/New_York][foo=bar][u-ca=hebrew]") // true (elective annotation ignored)
38
- * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00-05:00[u-ca=hebrew][America/New_York]") // false (calendar before zone)
35
+ * @example isValidCalendarZonedDateTime("2024-10-03T14:30:45+02:00[Africa/Johannesburg]") // true
36
+ * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00+02:00[Africa/Johannesburg][u-ca=hebrew]") // true
37
+ * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00+02:00[Africa/Johannesburg][foo=bar][u-ca=hebrew]") // true (elective annotation ignored)
38
+ * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00+02:00[u-ca=hebrew][Africa/Johannesburg]") // false (calendar before zone)
39
39
  * @example isValidCalendarZonedDateTime("2019-04-30T12:00:00+09:00[Asia/Tokyo][u-ca=japanese;era=heisei]") // false (not RFC 9557)
40
- * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00+03:00[America/New_York][u-ca=hebrew]") // false (offset wrong for the zone)
40
+ * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00+03:00[Africa/Johannesburg][u-ca=hebrew]") // false (offset wrong for the zone)
41
41
  * @example isValidCalendarZonedDateTime("2024-06-30T23:59:60+00:00[UTC]") // false (leap second)
42
- * @example isValidCalendarZonedDateTime("2024-02-24 14:30:00-05:00[America/New_York][u-ca=hebrew]") // false (space separator)
42
+ * @example isValidCalendarZonedDateTime("2024-02-24 14:30:00+02:00[Africa/Johannesburg][u-ca=hebrew]") // false (space separator)
43
43
  * @example isValidCalendarZonedDateTime("invalid") // false
44
44
  */
45
45
  export declare function isValidCalendarZonedDateTime(value: string): boolean;
@@ -1,8 +1,8 @@
1
1
  import { parseCalendarZonedValue } from "../../internal/index.js";
2
2
  /**
3
3
  * Return true if `value` is a valid GMT ZonedDateTime string: a bare ISO zoned datetime
4
- * ("2024-10-03T14:30:45-04:00[America/New_York]") or an RFC 9557 calendar-annotated one
5
- * ("2024-10-03T14:30:45-04:00[America/New_York][u-ca=hebrew]"), as
4
+ * ("2024-10-03T14:30:45+02:00[Africa/Johannesburg]") or an RFC 9557 calendar-annotated one
5
+ * ("2024-10-03T14:30:45+02:00[Africa/Johannesburg][u-ca=hebrew]"), as
6
6
  * `Temporal.ZonedDateTime#toString()` and `convertZonedToCalendar` write it.
7
7
  *
8
8
  * - Parallel to `isValidZonedDateTime`, which accepts `[u-ca=iso8601]` and rejects every other
@@ -33,14 +33,14 @@ import { parseCalendarZonedValue } from "../../internal/index.js";
33
33
  * @param value candidate zoned datetime string, optionally calendar-annotated
34
34
  * @returns boolean indicating validity
35
35
  *
36
- * @example isValidCalendarZonedDateTime("2024-10-03T14:30:45-04:00[America/New_York]") // true
37
- * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00-05:00[America/New_York][u-ca=hebrew]") // true
38
- * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00-05:00[America/New_York][foo=bar][u-ca=hebrew]") // true (elective annotation ignored)
39
- * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00-05:00[u-ca=hebrew][America/New_York]") // false (calendar before zone)
36
+ * @example isValidCalendarZonedDateTime("2024-10-03T14:30:45+02:00[Africa/Johannesburg]") // true
37
+ * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00+02:00[Africa/Johannesburg][u-ca=hebrew]") // true
38
+ * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00+02:00[Africa/Johannesburg][foo=bar][u-ca=hebrew]") // true (elective annotation ignored)
39
+ * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00+02:00[u-ca=hebrew][Africa/Johannesburg]") // false (calendar before zone)
40
40
  * @example isValidCalendarZonedDateTime("2019-04-30T12:00:00+09:00[Asia/Tokyo][u-ca=japanese;era=heisei]") // false (not RFC 9557)
41
- * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00+03:00[America/New_York][u-ca=hebrew]") // false (offset wrong for the zone)
41
+ * @example isValidCalendarZonedDateTime("2024-02-24T14:30:00+03:00[Africa/Johannesburg][u-ca=hebrew]") // false (offset wrong for the zone)
42
42
  * @example isValidCalendarZonedDateTime("2024-06-30T23:59:60+00:00[UTC]") // false (leap second)
43
- * @example isValidCalendarZonedDateTime("2024-02-24 14:30:00-05:00[America/New_York][u-ca=hebrew]") // false (space separator)
43
+ * @example isValidCalendarZonedDateTime("2024-02-24 14:30:00+02:00[Africa/Johannesburg][u-ca=hebrew]") // false (space separator)
44
44
  * @example isValidCalendarZonedDateTime("invalid") // false
45
45
  */
46
46
  export function isValidCalendarZonedDateTime(value) {
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Return true when `value` is a real RFC 5322 (RFC 2822) date-time: the date an email `Date:`
3
+ * header carries, such as `Fri, 15 Mar 2024 14:30:00 -0400`.
4
+ *
5
+ * - True exactly when `parseRfc2822` returns a zoned string for the same value: the validator
6
+ * calls the parser, so the two cannot disagree.
7
+ * - **Reads what a conformant receiver must**, which is more than the strict `rfc2822DateTime`
8
+ * pattern matches: RFC 5322 §3.3 folding white space, comments, names in any case and a year of
9
+ * more than four digits, and the §4 obsolete syntax (2- and 3-digit years, military and other
10
+ * alphabetic zones). `parseRfc2822` lists each form.
11
+ * - Checks the calendar as well as the shape. The pattern matches a day that does not exist:
12
+ * `31 Feb`, `29 Feb 2023` and `31 Jun` are false here.
13
+ * - **The day-of-week must match the date.** RFC 5322 §3.3: "the day-of-week (if included) MUST be
14
+ * the day implied by the date". The pattern does not check it.
15
+ * - False for an hour above 23, a minute above 59, zone minutes above 59 and an offset of 24
16
+ * hours or more, all of which the pattern matches. False for a second of 60: GMT rejects leap
17
+ * seconds.
18
+ * - False for a non-string. Read the value with `parseRfc2822`; write one with `formatRfc2822`.
19
+ *
20
+ * @param value candidate RFC 5322 date-time string
21
+ * @returns boolean indicating validity
22
+ *
23
+ * @example isValidRfc2822DateTime("Fri, 15 Mar 2024 14:30:00 -0400") // true
24
+ * @example isValidRfc2822DateTime("5 Jan 2024 09:00:00 GMT") // true (no day-of-week, 1-digit day)
25
+ * @example isValidRfc2822DateTime("fri,15 Mar 24 14:30 -0400 (EDT)") // true (obsolete 2-digit year, comment; the rfc2822DateTime pattern does not match it)
26
+ * @example isValidRfc2822DateTime("Sat, 15 Mar 2024 14:30:00 -0400") // false (15 Mar 2024 was a Friday; the rfc2822DateTime pattern matches it)
27
+ * @example isValidRfc2822DateTime("Wed, 29 Feb 2023 14:30:00 -0400") // false (2023 has no 29 February; the rfc2822DateTime pattern matches it)
28
+ * @example isValidRfc2822DateTime("Fri, 15 Mar 2024 14:30:00 -0460") // false (zone minutes above 59; the rfc2822DateTime pattern matches it)
29
+ * @example isValidRfc2822DateTime("Fri, 15 Mar 2024 14:30:00") // false (no zone)
30
+ * @example isValidRfc2822DateTime("not a date") // false
31
+ */
32
+ export declare function isValidRfc2822DateTime(value: string): boolean;
@@ -0,0 +1,35 @@
1
+ import { parseRfc2822 } from "../parse/parseRfc2822.js";
2
+ /**
3
+ * Return true when `value` is a real RFC 5322 (RFC 2822) date-time: the date an email `Date:`
4
+ * header carries, such as `Fri, 15 Mar 2024 14:30:00 -0400`.
5
+ *
6
+ * - True exactly when `parseRfc2822` returns a zoned string for the same value: the validator
7
+ * calls the parser, so the two cannot disagree.
8
+ * - **Reads what a conformant receiver must**, which is more than the strict `rfc2822DateTime`
9
+ * pattern matches: RFC 5322 §3.3 folding white space, comments, names in any case and a year of
10
+ * more than four digits, and the §4 obsolete syntax (2- and 3-digit years, military and other
11
+ * alphabetic zones). `parseRfc2822` lists each form.
12
+ * - Checks the calendar as well as the shape. The pattern matches a day that does not exist:
13
+ * `31 Feb`, `29 Feb 2023` and `31 Jun` are false here.
14
+ * - **The day-of-week must match the date.** RFC 5322 §3.3: "the day-of-week (if included) MUST be
15
+ * the day implied by the date". The pattern does not check it.
16
+ * - False for an hour above 23, a minute above 59, zone minutes above 59 and an offset of 24
17
+ * hours or more, all of which the pattern matches. False for a second of 60: GMT rejects leap
18
+ * seconds.
19
+ * - False for a non-string. Read the value with `parseRfc2822`; write one with `formatRfc2822`.
20
+ *
21
+ * @param value candidate RFC 5322 date-time string
22
+ * @returns boolean indicating validity
23
+ *
24
+ * @example isValidRfc2822DateTime("Fri, 15 Mar 2024 14:30:00 -0400") // true
25
+ * @example isValidRfc2822DateTime("5 Jan 2024 09:00:00 GMT") // true (no day-of-week, 1-digit day)
26
+ * @example isValidRfc2822DateTime("fri,15 Mar 24 14:30 -0400 (EDT)") // true (obsolete 2-digit year, comment; the rfc2822DateTime pattern does not match it)
27
+ * @example isValidRfc2822DateTime("Sat, 15 Mar 2024 14:30:00 -0400") // false (15 Mar 2024 was a Friday; the rfc2822DateTime pattern matches it)
28
+ * @example isValidRfc2822DateTime("Wed, 29 Feb 2023 14:30:00 -0400") // false (2023 has no 29 February; the rfc2822DateTime pattern matches it)
29
+ * @example isValidRfc2822DateTime("Fri, 15 Mar 2024 14:30:00 -0460") // false (zone minutes above 59; the rfc2822DateTime pattern matches it)
30
+ * @example isValidRfc2822DateTime("Fri, 15 Mar 2024 14:30:00") // false (no zone)
31
+ * @example isValidRfc2822DateTime("not a date") // false
32
+ */
33
+ export function isValidRfc2822DateTime(value) {
34
+ return parseRfc2822(value) !== "";
35
+ }