@northguild/gmt 1.17.0 → 1.19.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 (992) hide show
  1. package/README.md +55 -2480
  2. package/dist/calendar/calculate/bucketRange.d.ts +12 -4
  3. package/dist/calendar/calculate/bucketRange.js +20 -63
  4. package/dist/calendar/calculate/floorToZone.d.ts +14 -4
  5. package/dist/calendar/calculate/floorToZone.js +18 -9
  6. package/dist/calendar/calculate/getFiscalPeriod.d.ts +21 -8
  7. package/dist/calendar/calculate/getFiscalPeriod.js +9 -8
  8. package/dist/calendar/calculate/getIsoWeekDate.d.ts +10 -5
  9. package/dist/calendar/calculate/getIsoWeekDate.js +1 -5
  10. package/dist/calendar/calculate/getOrdinalDate.d.ts +10 -3
  11. package/dist/calendar/calculate/getOrdinalDate.js +2 -3
  12. package/dist/calendar/calculate/getQuarter.d.ts +21 -9
  13. package/dist/calendar/calculate/getQuarter.js +8 -12
  14. package/dist/calendar/hours/addOperatingTime.d.ts +59 -0
  15. package/dist/calendar/hours/addOperatingTime.js +65 -0
  16. package/dist/calendar/hours/index.d.ts +7 -0
  17. package/dist/calendar/hours/index.js +7 -0
  18. package/dist/calendar/hours/isOpenAt.d.ts +45 -0
  19. package/dist/calendar/hours/isOpenAt.js +50 -0
  20. package/dist/calendar/hours/nextCloseAt.d.ts +55 -0
  21. package/dist/calendar/hours/nextCloseAt.js +57 -0
  22. package/dist/calendar/hours/nextOpenAt.d.ts +51 -0
  23. package/dist/calendar/hours/nextOpenAt.js +53 -0
  24. package/dist/calendar/hours/operatingIntervals.d.ts +48 -0
  25. package/dist/calendar/hours/operatingIntervals.js +57 -0
  26. package/dist/calendar/hours/operatingTimeBetween.d.ts +45 -0
  27. package/dist/calendar/hours/operatingTimeBetween.js +54 -0
  28. package/dist/calendar/hours/recurringWindows.d.ts +68 -0
  29. package/dist/calendar/hours/recurringWindows.js +88 -0
  30. package/dist/calendar/index.d.ts +1 -0
  31. package/dist/calendar/index.js +1 -0
  32. package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
  33. package/dist/duration/calculate/durationFromUnits.js +67 -0
  34. package/dist/duration/calculate/getDurationUnit.d.ts +2 -2
  35. package/dist/duration/calculate/getDurationUnit.js +2 -2
  36. package/dist/duration/calculate/index.d.ts +3 -1
  37. package/dist/duration/calculate/index.js +3 -1
  38. package/dist/duration/calculate/negateDuration.d.ts +1 -1
  39. package/dist/duration/calculate/negateDuration.js +1 -1
  40. package/dist/duration/calculate/totalDuration.d.ts +73 -0
  41. package/dist/duration/calculate/{durationAs.js → totalDuration.js} +29 -27
  42. package/dist/duration/calculate/totalUnits.d.ts +49 -0
  43. package/dist/duration/calculate/totalUnits.js +73 -0
  44. package/dist/duration/compare/compareDurations.d.ts +13 -7
  45. package/dist/duration/compare/compareDurations.js +4 -7
  46. package/dist/duration/format/formatDuration.d.ts +16 -4
  47. package/dist/duration/format/formatDuration.js +4 -5
  48. package/dist/duration/normalize/normalizeDuration.d.ts +39 -14
  49. package/dist/duration/normalize/normalizeDuration.js +6 -15
  50. package/dist/duration/parse/parseDuration.d.ts +21 -3
  51. package/dist/duration/parse/parseDuration.js +1 -3
  52. package/dist/duty/calculate/dutyDayFor.d.ts +38 -0
  53. package/dist/duty/calculate/dutyDayFor.js +71 -0
  54. package/dist/duty/calculate/dutyTotals.d.ts +24 -0
  55. package/dist/duty/calculate/dutyTotals.js +41 -0
  56. package/dist/duty/calculate/dutyViolations.d.ts +74 -0
  57. package/dist/duty/calculate/dutyViolations.js +65 -0
  58. package/dist/duty/calculate/evaluateDutyLog.d.ts +77 -0
  59. package/dist/duty/calculate/evaluateDutyLog.js +75 -0
  60. package/dist/duty/calculate/index.d.ts +7 -0
  61. package/dist/duty/calculate/index.js +7 -0
  62. package/dist/duty/calculate/longestRun.d.ts +28 -0
  63. package/dist/duty/calculate/longestRun.js +54 -0
  64. package/dist/duty/calculate/qualifyingRestPairs.d.ts +37 -0
  65. package/dist/duty/calculate/qualifyingRestPairs.js +58 -0
  66. package/dist/duty/calculate/qualifyingRests.d.ts +27 -0
  67. package/dist/duty/calculate/qualifyingRests.js +49 -0
  68. package/dist/duty/index.d.ts +3 -0
  69. package/dist/duty/index.js +4 -0
  70. package/dist/duty/validate/index.d.ts +1 -0
  71. package/dist/duty/validate/index.js +1 -0
  72. package/dist/duty/validate/isValidDutyLog.d.ts +24 -0
  73. package/dist/duty/validate/isValidDutyLog.js +34 -0
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.js +1 -0
  76. package/dist/instant/convert/classifyLocal.d.ts +5 -1
  77. package/dist/instant/convert/classifyLocal.js +16 -6
  78. package/dist/instant/convert/fromOffsetInstant.d.ts +7 -1
  79. package/dist/instant/convert/fromOffsetInstant.js +9 -2
  80. package/dist/instant/convert/resolveLocal.d.ts +18 -8
  81. package/dist/instant/convert/resolveLocal.js +21 -17
  82. package/dist/instant/convert/toOffsetInstant.d.ts +33 -16
  83. package/dist/instant/convert/toOffsetInstant.js +28 -13
  84. package/dist/instant/index.d.ts +1 -0
  85. package/dist/instant/index.js +1 -0
  86. package/dist/instant/validate/index.d.ts +1 -0
  87. package/dist/instant/validate/index.js +1 -0
  88. package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
  89. package/dist/instant/validate/isValidUtcOffset.js +35 -0
  90. package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
  91. package/dist/intermodal/calculate/billingTimeline.js +2 -2
  92. package/dist/intermodal/calculate/chargeableDays.d.ts +19 -11
  93. package/dist/intermodal/calculate/chargeableDays.js +13 -10
  94. package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
  95. package/dist/intermodal/calculate/demurrageClock.js +7 -7
  96. package/dist/intermodal/calculate/freeTimeExpiry.d.ts +12 -4
  97. package/dist/intermodal/calculate/freeTimeExpiry.js +19 -8
  98. package/dist/intermodal/calculate/index.d.ts +1 -0
  99. package/dist/intermodal/calculate/index.js +1 -0
  100. package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
  101. package/dist/intermodal/calculate/multimodalETA.js +145 -0
  102. package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
  103. package/dist/intermodal/format/bolTimestamp.js +78 -0
  104. package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
  105. package/dist/intermodal/format/formatEdifactDate.js +42 -0
  106. package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
  107. package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
  108. package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
  109. package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
  110. package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
  111. package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
  112. package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
  113. package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
  114. package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
  115. package/dist/intermodal/format/formatEdifactTime.js +43 -0
  116. package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
  117. package/dist/intermodal/format/formatEpcisEvent.js +79 -0
  118. package/dist/intermodal/format/formatX12Date.d.ts +35 -0
  119. package/dist/intermodal/format/formatX12Date.js +43 -0
  120. package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
  121. package/dist/intermodal/format/formatX12DateRange.js +45 -0
  122. package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
  123. package/dist/intermodal/format/formatX12DateTime.js +47 -0
  124. package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
  125. package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
  126. package/dist/intermodal/format/formatX12Time.d.ts +42 -0
  127. package/dist/intermodal/format/formatX12Time.js +50 -0
  128. package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
  129. package/dist/intermodal/format/formatX12TimeElement.js +54 -0
  130. package/dist/intermodal/format/index.d.ts +14 -0
  131. package/dist/intermodal/format/index.js +14 -0
  132. package/dist/intermodal/index.d.ts +3 -0
  133. package/dist/intermodal/index.js +3 -0
  134. package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
  135. package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
  136. package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
  137. package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
  138. package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
  139. package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
  140. package/dist/intermodal/parse/index.d.ts +18 -0
  141. package/dist/intermodal/parse/index.js +18 -0
  142. package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
  143. package/dist/intermodal/parse/parseEdifactDate.js +45 -0
  144. package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
  145. package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
  146. package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
  147. package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
  148. package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
  149. package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
  150. package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
  151. package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
  152. package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
  153. package/dist/intermodal/parse/parseEdifactTime.js +45 -0
  154. package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
  155. package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
  156. package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
  157. package/dist/intermodal/parse/parseX12Date.js +47 -0
  158. package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
  159. package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
  160. package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
  161. package/dist/intermodal/parse/parseX12DateRange.js +52 -0
  162. package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
  163. package/dist/intermodal/parse/parseX12DateTime.js +53 -0
  164. package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
  165. package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
  166. package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
  167. package/dist/intermodal/parse/parseX12Time.js +77 -0
  168. package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
  169. package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
  170. package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
  171. package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
  172. package/dist/intermodal/validate/index.d.ts +18 -0
  173. package/dist/intermodal/validate/index.js +18 -0
  174. package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
  175. package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
  176. package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
  177. package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
  178. package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
  179. package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
  180. package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
  181. package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
  182. package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
  183. package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
  184. package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
  185. package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
  186. package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
  187. package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
  188. package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
  189. package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
  190. package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
  191. package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
  192. package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
  193. package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
  194. package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
  195. package/dist/intermodal/validate/isValidX12Date.js +30 -0
  196. package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
  197. package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
  198. package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
  199. package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
  200. package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
  201. package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
  202. package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
  203. package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
  204. package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
  205. package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
  206. package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
  207. package/dist/intermodal/validate/isValidX12Time.js +40 -0
  208. package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
  209. package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
  210. package/dist/internal/businessCalendar.d.ts +5 -0
  211. package/dist/internal/businessCalendar.js +9 -10
  212. package/dist/internal/cycleFieldValue.d.ts +6 -4
  213. package/dist/internal/cycleFieldValue.js +6 -4
  214. package/dist/internal/daylightTime.d.ts +33 -0
  215. package/dist/internal/daylightTime.js +164 -0
  216. package/dist/internal/durationUntilString.js +4 -3
  217. package/dist/internal/dutyEngine.d.ts +125 -0
  218. package/dist/internal/dutyEngine.js +1746 -0
  219. package/dist/internal/dutyLog.d.ts +27 -0
  220. package/dist/internal/dutyLog.js +47 -0
  221. package/dist/internal/dutyPeriods.d.ts +135 -0
  222. package/dist/internal/dutyPeriods.js +369 -0
  223. package/dist/internal/dutyRules.d.ts +197 -0
  224. package/dist/internal/dutyRules.js +484 -0
  225. package/dist/internal/ediDateTimeFields.d.ts +97 -0
  226. package/dist/internal/ediDateTimeFields.js +288 -0
  227. package/dist/internal/ediDateTimeWriter.d.ts +92 -0
  228. package/dist/internal/ediDateTimeWriter.js +298 -0
  229. package/dist/internal/ediGrammar.d.ts +158 -0
  230. package/dist/internal/ediGrammar.js +384 -0
  231. package/dist/internal/englishCalendarNames.d.ts +3 -1
  232. package/dist/internal/englishCalendarNames.js +4 -3
  233. package/dist/internal/epochNanoseconds.d.ts +2 -0
  234. package/dist/internal/epochNanoseconds.js +2 -0
  235. package/dist/internal/exactDuration.d.ts +37 -0
  236. package/dist/internal/exactDuration.js +64 -0
  237. package/dist/internal/exactMoment.d.ts +72 -0
  238. package/dist/internal/exactMoment.js +114 -0
  239. package/dist/internal/fiscalCalendar.d.ts +4 -3
  240. package/dist/internal/fiscalCalendar.js +4 -3
  241. package/dist/internal/formatCalendarDays.d.ts +2 -2
  242. package/dist/internal/formatRelativeDuration.d.ts +21 -1
  243. package/dist/internal/formatRelativeDuration.js +47 -7
  244. package/dist/internal/freeTimeLedger.d.ts +5 -0
  245. package/dist/internal/freeTimeLedger.js +11 -2
  246. package/dist/internal/index.d.ts +12 -4
  247. package/dist/internal/index.js +16 -4
  248. package/dist/internal/instantFormatOptions.js +2 -1
  249. package/dist/internal/instantNanoseconds.d.ts +75 -9
  250. package/dist/internal/instantNanoseconds.js +192 -11
  251. package/dist/internal/intervalNanoseconds.js +2 -1
  252. package/dist/internal/isObject.d.ts +13 -6
  253. package/dist/internal/isObject.js +14 -7
  254. package/dist/internal/isoYearString.d.ts +21 -0
  255. package/dist/internal/isoYearString.js +27 -0
  256. package/dist/internal/joinDateTimeConnector.d.ts +1 -1
  257. package/dist/internal/maxPieces.js +2 -1
  258. package/dist/internal/monthGridWeekRow.d.ts +2 -1
  259. package/dist/internal/monthGridWeekRow.js +2 -1
  260. package/dist/internal/normalizeTimeZone.d.ts +5 -2
  261. package/dist/internal/normalizeTimeZone.js +5 -2
  262. package/dist/internal/operatingSchedule.d.ts +138 -0
  263. package/dist/internal/operatingSchedule.js +756 -0
  264. package/dist/internal/optionOrDefault.d.ts +18 -0
  265. package/dist/internal/optionOrDefault.js +20 -0
  266. package/dist/internal/patternToken.d.ts +12 -5
  267. package/dist/internal/patternToken.js +59 -25
  268. package/dist/internal/plainDateUntil.js +10 -6
  269. package/dist/internal/punctuality.d.ts +38 -0
  270. package/dist/internal/punctuality.js +59 -0
  271. package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
  272. package/dist/internal/readDateTimeFormatOptions.js +93 -0
  273. package/dist/internal/readDurationUnits.d.ts +34 -0
  274. package/dist/internal/readDurationUnits.js +78 -0
  275. package/dist/internal/readSetFields.d.ts +50 -0
  276. package/dist/internal/readSetFields.js +179 -0
  277. package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
  278. package/dist/internal/resolveDurationRelativeTo.js +11 -1
  279. package/dist/internal/resolveRelativeRounding.d.ts +17 -6
  280. package/dist/internal/resolveRelativeRounding.js +27 -7
  281. package/dist/internal/resolveRelativeUnit.d.ts +30 -0
  282. package/dist/internal/resolveRelativeUnit.js +40 -0
  283. package/dist/internal/resolveUnixIntervalPair.d.ts +8 -2
  284. package/dist/internal/resolveUnixIntervalPair.js +11 -7
  285. package/dist/internal/splitStep.d.ts +24 -1
  286. package/dist/internal/splitStep.js +34 -2
  287. package/dist/internal/startOrEndOfUnix.d.ts +2 -1
  288. package/dist/internal/startOrEndOfUnix.js +9 -6
  289. package/dist/internal/startOrEndOfZoned.js +2 -3
  290. package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
  291. package/dist/internal/temporalCompat/capabilities.js +35 -3
  292. package/dist/internal/temporalCompat/fieldSearch.js +1 -1
  293. package/dist/internal/temporalCompat/index.d.ts +1 -1
  294. package/dist/internal/temporalCompat/index.js +1 -1
  295. package/dist/internal/temporalCompat/repros.d.ts +1 -1
  296. package/dist/internal/temporalCompat/repros.js +157 -0
  297. package/dist/internal/timestampEvents.d.ts +32 -0
  298. package/dist/internal/timestampEvents.js +76 -0
  299. package/dist/internal/twoDigitYear.d.ts +19 -0
  300. package/dist/internal/twoDigitYear.js +22 -0
  301. package/dist/internal/unixEpochValue.js +3 -2
  302. package/dist/internal/unixWallClock.d.ts +24 -0
  303. package/dist/internal/unixWallClock.js +35 -0
  304. package/dist/internal/utcWallClock.d.ts +20 -0
  305. package/dist/internal/utcWallClock.js +32 -0
  306. package/dist/internal/yearWindowStart.d.ts +28 -0
  307. package/dist/internal/yearWindowStart.js +52 -0
  308. package/dist/internal/zoneBucketCap.d.ts +18 -0
  309. package/dist/internal/zoneBucketCap.js +64 -0
  310. package/dist/internal/zoneFrame.d.ts +180 -0
  311. package/dist/internal/zoneFrame.js +221 -0
  312. package/dist/internal/zonedBucket.js +8 -6
  313. package/dist/internal/zonedLocalDates.js +1 -1
  314. package/dist/internal/zonedNowUnitValue.d.ts +7 -4
  315. package/dist/internal/zonedNowUnitValue.js +8 -4
  316. package/dist/internal/zonedTransitionSearch.d.ts +27 -0
  317. package/dist/internal/zonedTransitionSearch.js +218 -0
  318. package/dist/internal/zonedWallClock.d.ts +21 -7
  319. package/dist/internal/zonedWallClock.js +87 -18
  320. package/dist/internal/zonedWallClockDifference.js +4 -4
  321. package/dist/internal/zonedWallClockOperations.d.ts +31 -15
  322. package/dist/internal/zonedWallClockOperations.js +93 -43
  323. package/dist/interval/validate/isValidInterval.d.ts +6 -3
  324. package/dist/interval/validate/isValidInterval.js +6 -3
  325. package/dist/plain/calculate/addDate.d.ts +11 -8
  326. package/dist/plain/calculate/addDate.js +9 -15
  327. package/dist/plain/calculate/addDateTime.d.ts +7 -4
  328. package/dist/plain/calculate/addDateTime.js +5 -11
  329. package/dist/plain/calculate/addTime.js +4 -7
  330. package/dist/plain/calculate/cycleDate.d.ts +16 -7
  331. package/dist/plain/calculate/cycleDate.js +3 -7
  332. package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
  333. package/dist/plain/calculate/cycleDateTime.js +1 -4
  334. package/dist/plain/calculate/cycleTime.d.ts +10 -5
  335. package/dist/plain/calculate/cycleTime.js +3 -5
  336. package/dist/plain/calculate/diffDate.d.ts +1 -1
  337. package/dist/plain/calculate/diffDate.js +1 -1
  338. package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
  339. package/dist/plain/calculate/diffDateAsDuration.js +1 -1
  340. package/dist/plain/calculate/diffDateTime.d.ts +1 -1
  341. package/dist/plain/calculate/diffDateTime.js +1 -1
  342. package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
  343. package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
  344. package/dist/plain/calculate/diffTime.d.ts +1 -1
  345. package/dist/plain/calculate/diffTime.js +1 -1
  346. package/dist/plain/calculate/endOfDate.d.ts +8 -3
  347. package/dist/plain/calculate/endOfDate.js +1 -3
  348. package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
  349. package/dist/plain/calculate/endOfDateTime.js +1 -5
  350. package/dist/plain/calculate/endOfTime.d.ts +9 -3
  351. package/dist/plain/calculate/endOfTime.js +1 -2
  352. package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
  353. package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
  354. package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
  355. package/dist/plain/calculate/getWeekOfMonth.js +7 -4
  356. package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
  357. package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
  358. package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
  359. package/dist/plain/calculate/getWeeksInMonth.js +5 -2
  360. package/dist/plain/calculate/nextWeekday.d.ts +7 -3
  361. package/dist/plain/calculate/nextWeekday.js +1 -3
  362. package/dist/plain/calculate/previousWeekday.d.ts +7 -3
  363. package/dist/plain/calculate/previousWeekday.js +1 -3
  364. package/dist/plain/calculate/roundDate.d.ts +20 -7
  365. package/dist/plain/calculate/roundDate.js +3 -10
  366. package/dist/plain/calculate/roundDateTime.d.ts +22 -8
  367. package/dist/plain/calculate/roundDateTime.js +3 -11
  368. package/dist/plain/calculate/roundTime.d.ts +20 -4
  369. package/dist/plain/calculate/roundTime.js +3 -7
  370. package/dist/plain/calculate/setDate.d.ts +27 -8
  371. package/dist/plain/calculate/setDate.js +28 -12
  372. package/dist/plain/calculate/setDateTime.d.ts +23 -8
  373. package/dist/plain/calculate/setDateTime.js +23 -12
  374. package/dist/plain/calculate/setTime.d.ts +23 -7
  375. package/dist/plain/calculate/setTime.js +25 -12
  376. package/dist/plain/calculate/startOfDate.d.ts +8 -2
  377. package/dist/plain/calculate/startOfDate.js +1 -2
  378. package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
  379. package/dist/plain/calculate/startOfDateTime.js +1 -2
  380. package/dist/plain/calculate/startOfTime.d.ts +9 -2
  381. package/dist/plain/calculate/startOfTime.js +1 -1
  382. package/dist/plain/calculate/subtractDate.d.ts +7 -4
  383. package/dist/plain/calculate/subtractDate.js +5 -11
  384. package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
  385. package/dist/plain/calculate/subtractDateTime.js +5 -11
  386. package/dist/plain/calculate/subtractTime.js +4 -7
  387. package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
  388. package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
  389. package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
  390. package/dist/plain/compare/areDatesEqualBy.js +8 -6
  391. package/dist/plain/compare/isBetweenDate.d.ts +13 -2
  392. package/dist/plain/compare/isBetweenDate.js +4 -4
  393. package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
  394. package/dist/plain/compare/isBetweenDateTime.js +4 -4
  395. package/dist/plain/compare/isBetweenTime.d.ts +13 -2
  396. package/dist/plain/compare/isBetweenTime.js +4 -4
  397. package/dist/plain/compare/isRelativeDay.d.ts +1 -1
  398. package/dist/plain/compare/isRelativeDay.js +1 -1
  399. package/dist/plain/compare/isThisUnit.d.ts +1 -1
  400. package/dist/plain/compare/isThisUnit.js +1 -1
  401. package/dist/plain/format/formatCalendar.d.ts +21 -14
  402. package/dist/plain/format/formatCalendar.js +23 -17
  403. package/dist/plain/format/formatDate.js +5 -3
  404. package/dist/plain/format/formatDateRange.js +4 -2
  405. package/dist/plain/format/formatDateTime.js +4 -2
  406. package/dist/plain/format/formatDateTimeRange.js +4 -2
  407. package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
  408. package/dist/plain/format/formatDateTimeToParts.js +10 -6
  409. package/dist/plain/format/formatDateToParts.d.ts +13 -2
  410. package/dist/plain/format/formatDateToParts.js +8 -4
  411. package/dist/plain/format/formatRelativeDate.d.ts +16 -3
  412. package/dist/plain/format/formatRelativeDate.js +28 -16
  413. package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
  414. package/dist/plain/format/formatRelativeDateTime.js +10 -6
  415. package/dist/plain/format/formatRelativeTime.d.ts +16 -3
  416. package/dist/plain/format/formatRelativeTime.js +23 -14
  417. package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
  418. package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +7 -7
  419. package/dist/plain/format/formatTime.js +4 -2
  420. package/dist/plain/format/index.d.ts +1 -1
  421. package/dist/plain/format/index.js +1 -1
  422. package/dist/plain/get/getNowUnit.d.ts +2 -0
  423. package/dist/plain/get/getNowUnit.js +2 -0
  424. package/dist/plain/get/getYear.d.ts +2 -0
  425. package/dist/plain/get/getYear.js +4 -3
  426. package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
  427. package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
  428. package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
  429. package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
  430. package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
  431. package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
  432. package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
  433. package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
  434. package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
  435. package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
  436. package/dist/plain/interval/intervalFromDurationDate.js +1 -3
  437. package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
  438. package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
  439. package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
  440. package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
  441. package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
  442. package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
  443. package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
  444. package/dist/plain/interval/intervalSplitAtDate.js +2 -0
  445. package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
  446. package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
  447. package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
  448. package/dist/plain/interval/intervalSplitAtTime.js +2 -0
  449. package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
  450. package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
  451. package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
  452. package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
  453. package/dist/plain/interval/intervalXorAllDate.js +2 -2
  454. package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
  455. package/dist/plain/interval/intervalXorAllDateTime.js +2 -2
  456. package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
  457. package/dist/plain/interval/intervalXorAllTime.js +2 -2
  458. package/dist/plain/interval/intervalXorDate.d.ts +9 -0
  459. package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
  460. package/dist/plain/interval/intervalXorTime.d.ts +9 -0
  461. package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
  462. package/dist/plain/interval/mergeIntervalsDate.js +2 -2
  463. package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
  464. package/dist/plain/interval/mergeIntervalsDateTime.js +2 -2
  465. package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
  466. package/dist/plain/interval/mergeIntervalsTime.js +2 -2
  467. package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
  468. package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
  469. package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
  470. package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
  471. package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
  472. package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
  473. package/dist/plain/map/mapDatesInRange.d.ts +8 -4
  474. package/dist/plain/map/mapDatesInRange.js +1 -4
  475. package/dist/plain/parse/index.d.ts +1 -1
  476. package/dist/plain/parse/index.js +1 -1
  477. package/dist/plain/parse/parseDateTimeWithPattern.d.ts +25 -9
  478. package/dist/plain/parse/parseDateTimeWithPattern.js +29 -11
  479. package/dist/plain/parse/parseDateWithPattern.d.ts +26 -9
  480. package/dist/plain/parse/parseDateWithPattern.js +30 -11
  481. package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
  482. package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +8 -8
  483. package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
  484. package/dist/plain/parse/parseTimeWithPattern.js +11 -7
  485. package/dist/plain/parse/parseUnitFromDate.d.ts +14 -3
  486. package/dist/plain/parse/parseUnitFromDate.js +8 -4
  487. package/dist/plain/parse/parseUnitFromDateTime.d.ts +14 -3
  488. package/dist/plain/parse/parseUnitFromDateTime.js +8 -4
  489. package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
  490. package/dist/plain/parse/parseWeekFromDate.js +2 -6
  491. package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
  492. package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
  493. package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
  494. package/dist/plain/parse/parseYearFromDate.js +7 -3
  495. package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
  496. package/dist/plain/parse/parseYearFromDateTime.js +6 -3
  497. package/dist/plain/validate/index.d.ts +1 -0
  498. package/dist/plain/validate/index.js +1 -0
  499. package/dist/plain/validate/isValidDateRange.d.ts +19 -4
  500. package/dist/plain/validate/isValidDateRange.js +1 -4
  501. package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
  502. package/dist/plain/validate/isValidDateTimeRange.js +2 -5
  503. package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
  504. package/dist/plain/validate/isValidSqlDateTime.js +36 -0
  505. package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
  506. package/dist/plain/validate/isValidTimeRange.js +2 -5
  507. package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
  508. package/dist/precision/convert/fromExcelSerial.js +4 -5
  509. package/dist/precision/convert/fromNanoseconds.d.ts +9 -3
  510. package/dist/precision/convert/fromNanoseconds.js +9 -3
  511. package/dist/precision/convert/toExcelSerial.d.ts +9 -3
  512. package/dist/precision/convert/toExcelSerial.js +3 -4
  513. package/dist/precision/convert/toNanoseconds.d.ts +11 -6
  514. package/dist/precision/convert/toNanoseconds.js +11 -6
  515. package/dist/precision/validate/isValidInstant.d.ts +12 -3
  516. package/dist/precision/validate/isValidInstant.js +12 -3
  517. package/dist/regex/epcis.d.ts +60 -0
  518. package/dist/regex/epcis.js +60 -0
  519. package/dist/regex/http-date.d.ts +6 -4
  520. package/dist/regex/http-date.js +6 -4
  521. package/dist/regex/index.d.ts +1 -0
  522. package/dist/regex/index.js +1 -0
  523. package/dist/regex/rfc-2822.d.ts +2 -0
  524. package/dist/regex/rfc-2822.js +2 -0
  525. package/dist/regex/rfc-3339.d.ts +3 -1
  526. package/dist/regex/rfc-3339.js +3 -1
  527. package/dist/regex/sql-date-time.d.ts +2 -1
  528. package/dist/regex/sql-date-time.js +2 -1
  529. package/dist/regex/time-zone-like.d.ts +3 -2
  530. package/dist/regex/time-zone-like.js +3 -2
  531. package/dist/regex/utc-offset.d.ts +2 -1
  532. package/dist/regex/utc-offset.js +2 -1
  533. package/dist/span/calculate/spanMs.d.ts +10 -4
  534. package/dist/span/calculate/spanMs.js +10 -4
  535. package/dist/span/calculate/spanNs.d.ts +10 -4
  536. package/dist/span/calculate/spanNs.js +10 -4
  537. package/dist/span/validate/isValidSpan.d.ts +8 -3
  538. package/dist/span/validate/isValidSpan.js +8 -3
  539. package/dist/transport/calculate/bestAvailable.d.ts +47 -0
  540. package/dist/transport/calculate/bestAvailable.js +76 -0
  541. package/dist/transport/calculate/crossingTime.d.ts +63 -0
  542. package/dist/transport/calculate/crossingTime.js +81 -0
  543. package/dist/transport/calculate/cutoffAt.d.ts +95 -0
  544. package/dist/transport/calculate/cutoffAt.js +211 -0
  545. package/dist/transport/calculate/cutoffSchedule.d.ts +75 -0
  546. package/dist/transport/calculate/cutoffSchedule.js +73 -0
  547. package/dist/transport/calculate/dwellTime.d.ts +22 -8
  548. package/dist/transport/calculate/dwellTime.js +18 -9
  549. package/dist/transport/calculate/estimateDrift.d.ts +65 -0
  550. package/dist/transport/calculate/estimateDrift.js +75 -0
  551. package/dist/transport/calculate/index.d.ts +8 -0
  552. package/dist/transport/calculate/index.js +8 -0
  553. package/dist/transport/calculate/nextDeparture.d.ts +78 -0
  554. package/dist/transport/calculate/nextDeparture.js +131 -0
  555. package/dist/transport/calculate/punctualityRate.d.ts +42 -0
  556. package/dist/transport/calculate/punctualityRate.js +59 -0
  557. package/dist/transport/calculate/scheduleDelivery.d.ts +158 -0
  558. package/dist/transport/calculate/scheduleDelivery.js +305 -0
  559. package/dist/transport/calculate/transitTime.d.ts +21 -3
  560. package/dist/transport/calculate/transitTime.js +29 -46
  561. package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
  562. package/dist/transport/compare/classifyPunctuality.js +64 -0
  563. package/dist/transport/compare/index.d.ts +4 -0
  564. package/dist/transport/compare/index.js +4 -0
  565. package/dist/transport/compare/isPastCutoff.d.ts +33 -0
  566. package/dist/transport/compare/isPastCutoff.js +48 -0
  567. package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
  568. package/dist/transport/compare/scheduleDeviation.js +53 -0
  569. package/dist/transport/compare/timeToCutoff.d.ts +31 -0
  570. package/dist/transport/compare/timeToCutoff.js +47 -0
  571. package/dist/transport/convert/etaAtZone.d.ts +13 -1
  572. package/dist/transport/convert/etaAtZone.js +15 -5
  573. package/dist/transport/index.d.ts +1 -0
  574. package/dist/transport/index.js +1 -0
  575. package/dist/types/business-calendar.d.ts +20 -14
  576. package/dist/types/calendar-options.d.ts +15 -3
  577. package/dist/types/date-cycle-field.d.ts +5 -0
  578. package/dist/types/date-duration-unit.d.ts +4 -0
  579. package/dist/types/date-time-cycle-field.d.ts +4 -0
  580. package/dist/types/date-time-duration-units.d.ts +4 -0
  581. package/dist/types/date-time-unit.d.ts +4 -0
  582. package/dist/types/date-unit.d.ts +4 -0
  583. package/dist/types/disambiguation.d.ts +8 -0
  584. package/dist/types/duration-relative-to.d.ts +8 -0
  585. package/dist/types/duration-string-options.d.ts +28 -0
  586. package/dist/types/duty.d.ts +777 -0
  587. package/dist/types/edi.d.ts +407 -0
  588. package/dist/types/edi.js +0 -0
  589. package/dist/types/epcis.d.ts +25 -0
  590. package/dist/types/epcis.js +0 -0
  591. package/dist/types/exact-duration-unit.d.ts +8 -0
  592. package/dist/types/exact-duration-unit.js +0 -0
  593. package/dist/types/fiscal-calendar.d.ts +1 -1
  594. package/dist/types/fractional-digit.d.ts +5 -0
  595. package/dist/types/free-time-options.d.ts +22 -11
  596. package/dist/types/index.d.ts +7 -1
  597. package/dist/types/index.js +7 -1
  598. package/dist/types/interval.d.ts +8 -1
  599. package/dist/types/offset.d.ts +9 -0
  600. package/dist/types/operating-schedule.d.ts +72 -0
  601. package/dist/types/operating-schedule.js +0 -0
  602. package/dist/types/overflow.d.ts +6 -0
  603. package/dist/types/relative-rounding-method.d.ts +6 -0
  604. package/dist/types/relative-time-options.d.ts +33 -5
  605. package/dist/types/rounding-options.d.ts +27 -0
  606. package/dist/types/time-cycle-field.d.ts +4 -0
  607. package/dist/types/time-duration-unit.d.ts +4 -0
  608. package/dist/types/time-unit.d.ts +4 -0
  609. package/dist/types/transport-timestamps.d.ts +54 -0
  610. package/dist/types/transport-timestamps.js +0 -0
  611. package/dist/types/two-digit-year.d.ts +23 -0
  612. package/dist/types/two-digit-year.js +0 -0
  613. package/dist/types/zone-bucket-unit.d.ts +1 -1
  614. package/dist/unix/calculate/addUnix.d.ts +28 -5
  615. package/dist/unix/calculate/addUnix.js +15 -16
  616. package/dist/unix/calculate/diffUnix.d.ts +21 -3
  617. package/dist/unix/calculate/diffUnix.js +12 -9
  618. package/dist/unix/calculate/diffUnixAsDuration.d.ts +21 -3
  619. package/dist/unix/calculate/diffUnixAsDuration.js +11 -8
  620. package/dist/unix/calculate/endOfQuarterForUnix.d.ts +21 -3
  621. package/dist/unix/calculate/endOfQuarterForUnix.js +7 -3
  622. package/dist/unix/calculate/endOfUnix.d.ts +29 -4
  623. package/dist/unix/calculate/endOfUnix.js +8 -4
  624. package/dist/unix/calculate/isBetweenUnix.d.ts +27 -4
  625. package/dist/unix/calculate/isBetweenUnix.js +7 -9
  626. package/dist/unix/calculate/roundUnix.d.ts +39 -3
  627. package/dist/unix/calculate/roundUnix.js +16 -12
  628. package/dist/unix/calculate/setUnix.d.ts +58 -12
  629. package/dist/unix/calculate/setUnix.js +37 -25
  630. package/dist/unix/calculate/startOfQuarterForUnix.d.ts +21 -3
  631. package/dist/unix/calculate/startOfQuarterForUnix.js +7 -3
  632. package/dist/unix/calculate/startOfUnix.d.ts +29 -4
  633. package/dist/unix/calculate/startOfUnix.js +8 -4
  634. package/dist/unix/calculate/subtractUnix.d.ts +27 -5
  635. package/dist/unix/calculate/subtractUnix.js +14 -16
  636. package/dist/unix/compare/areUnixEqual.d.ts +7 -1
  637. package/dist/unix/compare/areUnixEqual.js +1 -1
  638. package/dist/unix/compare/areUnixEqualBy.d.ts +33 -7
  639. package/dist/unix/compare/areUnixEqualBy.js +20 -9
  640. package/dist/unix/compare/isAfterUnix.d.ts +7 -1
  641. package/dist/unix/compare/isAfterUnix.js +1 -1
  642. package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
  643. package/dist/unix/compare/isBeforeUnix.js +1 -1
  644. package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -4
  645. package/dist/unix/convert/convertUnixToPlainDate.js +7 -8
  646. package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +17 -4
  647. package/dist/unix/convert/convertUnixToPlainDateTime.js +7 -8
  648. package/dist/unix/convert/convertUnixToPlainTime.d.ts +17 -4
  649. package/dist/unix/convert/convertUnixToPlainTime.js +7 -8
  650. package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
  651. package/dist/unix/convert/convertUnixToUtc.js +3 -4
  652. package/dist/unix/convert/convertUnixToZoned.d.ts +14 -5
  653. package/dist/unix/convert/convertUnixToZoned.js +8 -5
  654. package/dist/unix/format/formatCalendarUnix.d.ts +31 -19
  655. package/dist/unix/format/formatCalendarUnix.js +10 -6
  656. package/dist/unix/format/formatRelativeUnix.d.ts +62 -5
  657. package/dist/unix/format/formatRelativeUnix.js +16 -10
  658. package/dist/unix/format/formatUnix.d.ts +29 -6
  659. package/dist/unix/format/formatUnix.js +12 -7
  660. package/dist/unix/get/getUnixDay.d.ts +1 -3
  661. package/dist/unix/get/getUnixDay.js +5 -12
  662. package/dist/unix/get/getUnixHour.d.ts +1 -3
  663. package/dist/unix/get/getUnixHour.js +5 -12
  664. package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
  665. package/dist/unix/get/getUnixMicrosecond.js +4 -11
  666. package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
  667. package/dist/unix/get/getUnixMillisecond.js +5 -12
  668. package/dist/unix/get/getUnixMinute.d.ts +1 -3
  669. package/dist/unix/get/getUnixMinute.js +5 -12
  670. package/dist/unix/get/getUnixMonth.d.ts +1 -3
  671. package/dist/unix/get/getUnixMonth.js +5 -12
  672. package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
  673. package/dist/unix/get/getUnixNanosecond.js +4 -11
  674. package/dist/unix/get/getUnixNow.d.ts +8 -3
  675. package/dist/unix/get/getUnixNow.js +1 -3
  676. package/dist/unix/get/getUnixNowUnit.d.ts +2 -0
  677. package/dist/unix/get/getUnixNowUnit.js +2 -0
  678. package/dist/unix/get/getUnixSecond.d.ts +1 -3
  679. package/dist/unix/get/getUnixSecond.js +5 -12
  680. package/dist/unix/get/getUnixYear.d.ts +3 -3
  681. package/dist/unix/get/getUnixYear.js +5 -12
  682. package/dist/unix/interval/intervalCountUnix.d.ts +23 -5
  683. package/dist/unix/interval/intervalCountUnix.js +9 -5
  684. package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
  685. package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
  686. package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
  687. package/dist/unix/interval/intervalFromDurationUnix.d.ts +41 -5
  688. package/dist/unix/interval/intervalFromDurationUnix.js +18 -12
  689. package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
  690. package/dist/unix/interval/intervalLengthUnix.d.ts +24 -6
  691. package/dist/unix/interval/intervalLengthUnix.js +10 -6
  692. package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +21 -3
  693. package/dist/unix/interval/intervalOverlappingDaysUnix.js +11 -8
  694. package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
  695. package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
  696. package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
  697. package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
  698. package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
  699. package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
  700. package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +50 -11
  701. package/dist/unix/interval/splitIntervalByUnitUnix.js +33 -22
  702. package/dist/unix/parse/parseDateFromUnix.d.ts +15 -2
  703. package/dist/unix/parse/parseDateFromUnix.js +4 -5
  704. package/dist/unix/parse/parseDayFromUnix.d.ts +16 -2
  705. package/dist/unix/parse/parseDayFromUnix.js +2 -2
  706. package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +15 -1
  707. package/dist/unix/parse/parseDayOfWeekFromUnix.js +3 -3
  708. package/dist/unix/parse/parseHourFromUnix.d.ts +16 -2
  709. package/dist/unix/parse/parseHourFromUnix.js +2 -2
  710. package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +16 -2
  711. package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
  712. package/dist/unix/parse/parseMillisecondFromUnix.d.ts +16 -2
  713. package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
  714. package/dist/unix/parse/parseMinuteFromUnix.d.ts +16 -2
  715. package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
  716. package/dist/unix/parse/parseMonthFromUnix.d.ts +16 -2
  717. package/dist/unix/parse/parseMonthFromUnix.js +2 -2
  718. package/dist/unix/parse/parseNanosecondFromUnix.d.ts +16 -2
  719. package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
  720. package/dist/unix/parse/parseSecondFromUnix.d.ts +16 -2
  721. package/dist/unix/parse/parseSecondFromUnix.js +2 -2
  722. package/dist/unix/parse/parseTimeFromUnix.d.ts +16 -2
  723. package/dist/unix/parse/parseTimeFromUnix.js +5 -5
  724. package/dist/unix/parse/parseUnitFromUnix.d.ts +29 -4
  725. package/dist/unix/parse/parseUnitFromUnix.js +23 -17
  726. package/dist/unix/parse/parseWeekFromUnix.d.ts +24 -7
  727. package/dist/unix/parse/parseWeekFromUnix.js +7 -11
  728. package/dist/unix/parse/parseYearFromUnix.d.ts +20 -3
  729. package/dist/unix/parse/parseYearFromUnix.js +6 -3
  730. package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
  731. package/dist/unix/validate/isValidUnixRange.js +1 -4
  732. package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
  733. package/dist/utc/calculate/addUtc.d.ts +7 -4
  734. package/dist/utc/calculate/addUtc.js +5 -11
  735. package/dist/utc/calculate/diffUtc.d.ts +1 -1
  736. package/dist/utc/calculate/diffUtc.js +1 -1
  737. package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
  738. package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
  739. package/dist/utc/calculate/endOfUtc.d.ts +16 -3
  740. package/dist/utc/calculate/endOfUtc.js +2 -3
  741. package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
  742. package/dist/utc/calculate/isBetweenUtc.js +4 -4
  743. package/dist/utc/calculate/roundUtc.d.ts +26 -9
  744. package/dist/utc/calculate/roundUtc.js +3 -12
  745. package/dist/utc/calculate/setUtc.d.ts +23 -7
  746. package/dist/utc/calculate/setUtc.js +23 -12
  747. package/dist/utc/calculate/startOfUtc.d.ts +15 -2
  748. package/dist/utc/calculate/startOfUtc.js +1 -2
  749. package/dist/utc/calculate/subtractUtc.d.ts +7 -4
  750. package/dist/utc/calculate/subtractUtc.js +5 -11
  751. package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
  752. package/dist/utc/compare/areUtcEqualBy.js +2 -3
  753. package/dist/utc/convert/convertUtcToPlainDate.d.ts +14 -3
  754. package/dist/utc/convert/convertUtcToPlainDate.js +12 -10
  755. package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +15 -3
  756. package/dist/utc/convert/convertUtcToPlainDateTime.js +14 -16
  757. package/dist/utc/convert/convertUtcToPlainTime.d.ts +11 -3
  758. package/dist/utc/convert/convertUtcToPlainTime.js +9 -9
  759. package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
  760. package/dist/utc/convert/convertUtcToUnix.js +3 -4
  761. package/dist/utc/convert/convertUtcToZoned.d.ts +5 -1
  762. package/dist/utc/convert/convertUtcToZoned.js +5 -1
  763. package/dist/utc/format/formatCalendarUtc.d.ts +23 -8
  764. package/dist/utc/format/formatCalendarUtc.js +14 -7
  765. package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +8 -8
  766. package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +8 -8
  767. package/dist/utc/format/formatRelativeUtc.d.ts +38 -10
  768. package/dist/utc/format/formatRelativeUtc.js +22 -16
  769. package/dist/utc/format/formatUtc.d.ts +22 -15
  770. package/dist/utc/format/formatUtc.js +12 -8
  771. package/dist/utc/format/index.d.ts +1 -1
  772. package/dist/utc/format/index.js +1 -1
  773. package/dist/utc/get/getUtcDay.d.ts +1 -3
  774. package/dist/utc/get/getUtcDay.js +5 -12
  775. package/dist/utc/get/getUtcHour.d.ts +1 -3
  776. package/dist/utc/get/getUtcHour.js +5 -12
  777. package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
  778. package/dist/utc/get/getUtcMicrosecond.js +4 -11
  779. package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
  780. package/dist/utc/get/getUtcMillisecond.js +5 -12
  781. package/dist/utc/get/getUtcMinute.d.ts +1 -3
  782. package/dist/utc/get/getUtcMinute.js +5 -12
  783. package/dist/utc/get/getUtcMonth.d.ts +1 -3
  784. package/dist/utc/get/getUtcMonth.js +5 -12
  785. package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
  786. package/dist/utc/get/getUtcNanosecond.js +4 -11
  787. package/dist/utc/get/getUtcNow.d.ts +1 -3
  788. package/dist/utc/get/getUtcNow.js +2 -9
  789. package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
  790. package/dist/utc/get/getUtcNowUnit.js +2 -0
  791. package/dist/utc/get/getUtcSecond.d.ts +1 -3
  792. package/dist/utc/get/getUtcSecond.js +5 -12
  793. package/dist/utc/get/getUtcYear.d.ts +3 -3
  794. package/dist/utc/get/getUtcYear.js +5 -12
  795. package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
  796. package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
  797. package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
  798. package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
  799. package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
  800. package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
  801. package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
  802. package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
  803. package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
  804. package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
  805. package/dist/utc/interval/intervalXorAllUtc.js +2 -2
  806. package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
  807. package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
  808. package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
  809. package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
  810. package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
  811. package/dist/utc/parse/index.d.ts +1 -1
  812. package/dist/utc/parse/index.js +1 -1
  813. package/dist/utc/parse/parseDateFromUtc.d.ts +9 -3
  814. package/dist/utc/parse/parseDateFromUtc.js +3 -5
  815. package/dist/utc/parse/parseDayFromUtc.d.ts +9 -3
  816. package/dist/utc/parse/parseDayFromUtc.js +3 -5
  817. package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +9 -3
  818. package/dist/utc/parse/parseDayOfWeekFromUtc.js +5 -7
  819. package/dist/utc/parse/parseHourFromUtc.d.ts +9 -3
  820. package/dist/utc/parse/parseHourFromUtc.js +3 -5
  821. package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
  822. package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +12 -12
  823. package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -3
  824. package/dist/utc/parse/parseMicrosecondFromUtc.js +3 -5
  825. package/dist/utc/parse/parseMillisecondFromUtc.d.ts +9 -3
  826. package/dist/utc/parse/parseMillisecondFromUtc.js +3 -5
  827. package/dist/utc/parse/parseMinuteFromUtc.d.ts +9 -3
  828. package/dist/utc/parse/parseMinuteFromUtc.js +3 -5
  829. package/dist/utc/parse/parseMonthFromUtc.d.ts +9 -3
  830. package/dist/utc/parse/parseMonthFromUtc.js +3 -5
  831. package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -3
  832. package/dist/utc/parse/parseNanosecondFromUtc.js +3 -5
  833. package/dist/utc/parse/parseSecondFromUtc.d.ts +9 -3
  834. package/dist/utc/parse/parseSecondFromUtc.js +3 -5
  835. package/dist/utc/parse/parseTimeFromUtc.d.ts +11 -3
  836. package/dist/utc/parse/parseTimeFromUtc.js +7 -7
  837. package/dist/utc/parse/parseUnitFromUtc.d.ts +25 -6
  838. package/dist/utc/parse/parseUnitFromUtc.js +14 -10
  839. package/dist/utc/parse/parseWeekFromUtc.d.ts +20 -10
  840. package/dist/utc/parse/parseWeekFromUtc.js +8 -14
  841. package/dist/utc/parse/parseYearFromUtc.d.ts +13 -5
  842. package/dist/utc/parse/parseYearFromUtc.js +9 -8
  843. package/dist/utc/validate/index.d.ts +2 -0
  844. package/dist/utc/validate/index.js +2 -0
  845. package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
  846. package/dist/utc/validate/isValidHttpDate.js +38 -0
  847. package/dist/utc/validate/isValidUtc.d.ts +4 -0
  848. package/dist/utc/validate/isValidUtc.js +4 -0
  849. package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
  850. package/dist/utc/validate/isValidUtcRange.js +2 -5
  851. package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
  852. package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
  853. package/dist/zoned/calculate/addZoned.d.ts +20 -10
  854. package/dist/zoned/calculate/addZoned.js +10 -20
  855. package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
  856. package/dist/zoned/calculate/cycleZoned.js +1 -8
  857. package/dist/zoned/calculate/diffZoned.d.ts +1 -1
  858. package/dist/zoned/calculate/diffZoned.js +1 -1
  859. package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
  860. package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
  861. package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
  862. package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
  863. package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
  864. package/dist/zoned/calculate/endOfZoned.js +2 -3
  865. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
  866. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
  867. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
  868. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
  869. package/dist/zoned/calculate/roundZoned.d.ts +21 -4
  870. package/dist/zoned/calculate/roundZoned.js +3 -7
  871. package/dist/zoned/calculate/setZoned.d.ts +44 -13
  872. package/dist/zoned/calculate/setZoned.js +30 -21
  873. package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
  874. package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
  875. package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
  876. package/dist/zoned/calculate/startOfZoned.js +1 -3
  877. package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
  878. package/dist/zoned/calculate/subtractZoned.js +10 -20
  879. package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
  880. package/dist/zoned/compare/areZonedEqualBy.js +7 -5
  881. package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
  882. package/dist/zoned/compare/isBetweenZoned.js +4 -3
  883. package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
  884. package/dist/zoned/compare/isInDaylightSaving.js +40 -44
  885. package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +21 -5
  886. package/dist/zoned/convert/convertPlainDateTimeToZoned.js +9 -11
  887. package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
  888. package/dist/zoned/convert/convertZonedToUnix.js +2 -4
  889. package/dist/zoned/convert/convertZonedToZoned.d.ts +5 -1
  890. package/dist/zoned/convert/convertZonedToZoned.js +5 -1
  891. package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
  892. package/dist/zoned/format/formatCalendarZoned.js +15 -10
  893. package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
  894. package/dist/zoned/format/formatRelativeZoned.js +9 -5
  895. package/dist/zoned/format/formatRfc2822.d.ts +2 -2
  896. package/dist/zoned/format/formatRfc2822.js +2 -2
  897. package/dist/zoned/format/formatRfc3339.d.ts +2 -3
  898. package/dist/zoned/format/formatRfc3339.js +2 -3
  899. package/dist/zoned/format/formatTimeZoneName.d.ts +16 -3
  900. package/dist/zoned/format/formatTimeZoneName.js +9 -4
  901. package/dist/zoned/format/formatZonedDateTime.js +2 -1
  902. package/dist/zoned/format/formatZonedRange.js +2 -1
  903. package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
  904. package/dist/zoned/format/formatZonedToParts.js +8 -5
  905. package/dist/zoned/get/getDstTransitions.d.ts +11 -10
  906. package/dist/zoned/get/getDstTransitions.js +21 -7
  907. package/dist/zoned/get/getSystemTimeZone.d.ts +3 -1
  908. package/dist/zoned/get/getSystemTimeZone.js +5 -2
  909. package/dist/zoned/get/getTimeZoneOffset.d.ts +13 -2
  910. package/dist/zoned/get/getTimeZoneOffset.js +22 -6
  911. package/dist/zoned/get/getZonedDay.d.ts +2 -1
  912. package/dist/zoned/get/getZonedDay.js +6 -7
  913. package/dist/zoned/get/getZonedDayOfWeek.d.ts +2 -1
  914. package/dist/zoned/get/getZonedDayOfWeek.js +6 -5
  915. package/dist/zoned/get/getZonedHour.d.ts +2 -1
  916. package/dist/zoned/get/getZonedHour.js +6 -7
  917. package/dist/zoned/get/getZonedMicrosecond.d.ts +2 -1
  918. package/dist/zoned/get/getZonedMicrosecond.js +6 -5
  919. package/dist/zoned/get/getZonedMillisecond.d.ts +2 -1
  920. package/dist/zoned/get/getZonedMillisecond.js +6 -7
  921. package/dist/zoned/get/getZonedMinute.d.ts +2 -1
  922. package/dist/zoned/get/getZonedMinute.js +6 -7
  923. package/dist/zoned/get/getZonedMonth.d.ts +2 -1
  924. package/dist/zoned/get/getZonedMonth.js +6 -7
  925. package/dist/zoned/get/getZonedNanosecond.d.ts +2 -1
  926. package/dist/zoned/get/getZonedNanosecond.js +6 -5
  927. package/dist/zoned/get/getZonedNow.d.ts +18 -2
  928. package/dist/zoned/get/getZonedNow.js +17 -4
  929. package/dist/zoned/get/getZonedNowUnit.d.ts +6 -3
  930. package/dist/zoned/get/getZonedNowUnit.js +10 -7
  931. package/dist/zoned/get/getZonedSecond.d.ts +2 -1
  932. package/dist/zoned/get/getZonedSecond.js +6 -7
  933. package/dist/zoned/get/getZonedToday.d.ts +2 -1
  934. package/dist/zoned/get/getZonedToday.js +6 -5
  935. package/dist/zoned/get/getZonedWeekOfYear.d.ts +2 -1
  936. package/dist/zoned/get/getZonedWeekOfYear.js +6 -5
  937. package/dist/zoned/get/getZonedYear.d.ts +4 -1
  938. package/dist/zoned/get/getZonedYear.js +9 -7
  939. package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
  940. package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
  941. package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
  942. package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
  943. package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
  944. package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
  945. package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
  946. package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
  947. package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
  948. package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
  949. package/dist/zoned/interval/intervalXorAllZoned.js +2 -2
  950. package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
  951. package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
  952. package/dist/zoned/interval/mergeIntervalsZoned.js +2 -2
  953. package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
  954. package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
  955. package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
  956. package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
  957. package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
  958. package/dist/zoned/parse/parseRfc2822.js +1 -1
  959. package/dist/zoned/parse/parseUnitFromZoned.d.ts +13 -4
  960. package/dist/zoned/parse/parseUnitFromZoned.js +6 -4
  961. package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
  962. package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
  963. package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
  964. package/dist/zoned/parse/parseYearFromZoned.js +6 -3
  965. package/dist/zoned/validate/hasDaylightSaving.d.ts +45 -12
  966. package/dist/zoned/validate/hasDaylightSaving.js +54 -32
  967. package/dist/zoned/validate/index.d.ts +2 -0
  968. package/dist/zoned/validate/index.js +2 -0
  969. package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
  970. package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
  971. package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
  972. package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
  973. package/dist/zoned/validate/isValidTimeZone.d.ts +5 -1
  974. package/dist/zoned/validate/isValidTimeZone.js +6 -2
  975. package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
  976. package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
  977. package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
  978. package/dist/zoned/validate/isValidZonedRange.js +1 -4
  979. package/package.json +67 -5
  980. package/skills/gmt-arithmetic/SKILL.md +99 -12
  981. package/skills/gmt-basics/SKILL.md +64 -13
  982. package/skills/gmt-integration/SKILL.md +33 -13
  983. package/skills/gmt-timezone/SKILL.md +265 -31
  984. package/dist/duration/calculate/durationAs.d.ts +0 -62
  985. package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
  986. package/dist/internal/resolveReadingTimeZone.js +0 -18
  987. package/dist/internal/unixZonedDateTime.d.ts +0 -22
  988. package/dist/internal/unixZonedDateTime.js +0 -32
  989. package/dist/internal/utcZonedDateTime.d.ts +0 -16
  990. package/dist/internal/utcZonedDateTime.js +0 -28
  991. package/dist/types/duration-unit.d.ts +0 -5
  992. /package/dist/types/{duration-unit.js → duty.js} +0 -0
@@ -1,23 +1,25 @@
1
1
  ---
2
2
  name: gmt-timezone
3
3
  description: >
4
- Timezone-aware operations — get zoned now, format zoned datetimes/ranges,
5
- convert between plain↔zoned↔UTC↔Unix, DST disambiguation on construction and
6
- arithmetic, the instant-plus-offset pair, classifying a zoneless wall time
7
- before resolving it, real zone unit boundaries
8
- (startOfZoned/endOfZoned/startOfUnix/endOfUnix), hours in a local day,
9
- flooring or bucketing on local boundaries (floorToZone/bucketRange),
10
- calendar-annotated zoned strings, zoned values at the range limits, the
11
- transport legs transitTime, etaAtZone and dwellTime (local calendar days
12
- crossed), intermodal free time — freeTimeExpiry (the free window and its
13
- half-open expiry), chargeableDays (the dates charged, with tier bands),
14
- demurrageClock (which events a demurrage, detention, storage or combined clock
15
- runs between) — and billingTimeline (invoice, dispute and resolution
16
- deadlines, windows as caller parameters). Reads the installed package
17
- README.md and source JSDoc for API details; this skill is a routing pointer,
18
- not an API dump.
4
+ Timezone-aware operations — zoned now, zoned formatting, plain↔zoned↔UTC↔Unix
5
+ conversion, DST disambiguation, toOffsetInstant, classifyLocal/resolveLocal,
6
+ real boundaries (startOfZoned/endOfZoned/startOfUnix/endOfUnix), hours in a
7
+ local day, floorToZone/bucketRange, calendar-annotated strings, transport legs
8
+ (transitTime, etaAtZone, dwellTime, crossingTime, scheduleDelivery), cut-offs
9
+ (cutoffAt, cutoffSchedule, isPastCutoff, timeToCutoff), punctuality
10
+ (scheduleDeviation, classifyPunctuality, punctualityRate, bestAvailable,
11
+ estimateDrift over PLN/EST/REQ/ACT, nextDeparture), free time (freeTimeExpiry,
12
+ chargeableDays, demurrageClock), billingTimeline, bolTimestamp, multimodalETA,
13
+ EDI timestamps (parseEdifactDateTime, parseX12DateAndTime, x12TimeCodeOffset,
14
+ parseEpcisEvent, classify*/format*/isValid*), operating hours
15
+ (OperatingSchedule, recurringWindows, operatingIntervals, isOpenAt,
16
+ nextOpenAt, nextCloseAt, operatingTimeBetween, addOperatingTime), and daylight
17
+ time (isInDaylightSaving, hasDaylightSaving).
19
18
  sources:
20
- - 'northguild/gmt:README.md'
19
+ - 'northguild/gmt:apps/dox/src/content/docs/guides/zoned-date-operations/*.mdx'
20
+ - 'northguild/gmt:apps/dox/src/content/docs/guides/concepts/dst-disambiguation.md'
21
+ - 'northguild/gmt:apps/dox/src/content/docs/guides/core-date-operations/operating-hours.mdx'
22
+ - 'northguild/gmt:apps/dox/src/content/docs/guides/industries/*.mdx'
21
23
  - 'northguild/gmt:packages/gmt/src/zoned/get/index.ts'
22
24
  - 'northguild/gmt:packages/gmt/src/zoned/format/index.ts'
23
25
  - 'northguild/gmt:packages/gmt/src/zoned/compare/index.ts'
@@ -32,15 +34,26 @@ sources:
32
34
  - 'northguild/gmt:packages/gmt/src/utc/get/index.ts'
33
35
  - 'northguild/gmt:packages/gmt/src/utc/convert/index.ts'
34
36
  - 'northguild/gmt:packages/gmt/src/instant/convert/index.ts'
37
+ - 'northguild/gmt:packages/gmt/src/instant/validate/index.ts'
35
38
  - 'northguild/gmt:packages/gmt/src/calendar/calculate/index.ts'
36
39
  - 'northguild/gmt:packages/gmt/src/calendar/validate/index.ts'
40
+ - 'northguild/gmt:packages/gmt/src/calendar/hours/index.ts'
41
+ - 'northguild/gmt:packages/gmt/src/types/operating-schedule.ts'
42
+ - 'northguild/gmt:packages/gmt/src/types/transport-timestamps.ts'
37
43
  - 'northguild/gmt:packages/gmt/src/transport/calculate/index.ts'
44
+ - 'northguild/gmt:packages/gmt/src/transport/compare/index.ts'
38
45
  - 'northguild/gmt:packages/gmt/src/transport/convert/index.ts'
39
46
  - 'northguild/gmt:packages/gmt/src/intermodal/calculate/index.ts'
47
+ - 'northguild/gmt:packages/gmt/src/intermodal/format/index.ts'
48
+ - 'northguild/gmt:packages/gmt/src/intermodal/parse/index.ts'
49
+ - 'northguild/gmt:packages/gmt/src/intermodal/validate/index.ts'
50
+ - 'northguild/gmt:packages/gmt/src/types/edi.ts'
51
+ - 'northguild/gmt:packages/gmt/src/types/epcis.ts'
52
+ - 'northguild/gmt:packages/gmt/src/types/two-digit-year.ts'
40
53
  metadata:
41
54
  type: core
42
55
  library: '@northguild/gmt'
43
- library_version: '1.17.0'
56
+ library_version: '1.19.0'
44
57
  ---
45
58
 
46
59
  # GMT Timezone
@@ -66,6 +79,13 @@ converting between time zones, or doing arithmetic that must respect DST.
66
79
  - The user is working out when a container's free time ends, how many days of
67
80
  demurrage or detention are chargeable and for which dates, or which events a
68
81
  charge's clock runs between.
82
+ - The user is reading or writing a UN/EDIFACT `DTM` value, an X12 date, time,
83
+ time code or date time period, or a GS1 EPCIS event time, and must know
84
+ whether its offset was stated.
85
+ - The user is asking whether a gate, desk, office or venue is open at an
86
+ instant, when it next opens or closes, how many working hours passed between
87
+ two instants, or when an SLA measured in open hours falls due — or is
88
+ expanding a recurring local window such as a night curfew.
69
89
 
70
90
  ## Core rules
71
91
 
@@ -108,11 +128,11 @@ converting between time zones, or doing arithmetic that must respect DST.
108
128
  on a spring-forward one. `resolveLocal(local, zone, { disambiguation })` then
109
129
  returns the instant, exact to the nanosecond, or `""` under `"reject"`. Reach
110
130
  for `convertPlainDateTimeToZoned` instead when you want the zoned string.
111
- 6. **An offset is not a zone.** `-05:00` does not identify `America/New_York`.
112
- `toOffsetInstant` splits a timestamp into `{ instant, offset, timeZone? }` —
113
- the shape EPCIS 2.0, EDIFACT DTM and DICOM all exchange, because the instant
114
- orders events and the offset renders them where they happened, and neither
115
- derives from the other. Keep the zone for what is still to be scheduled.
131
+ 6. **An offset is not a zone, but a stored one is a rule for local time.**
132
+ `toOffsetInstant` gives `{ instant, offset, timeZone? }`, the pair EPCIS 2.0,
133
+ EDIFACT DTM and DICOM exchange. Its `±HH:MM[:SS]` offset is a valid `timeZone`
134
+ for `resolveLocal` and every function whose result has no zone in it. One
135
+ that returns a zoned string or formats with `Intl` takes none with seconds.
116
136
  7. **Bucket in the zone, not in UTC.** `floorToZone(instant, unit, zone)` and
117
137
  `bucketRange(start, end, unit, zone)` floor on the zone's own calendar
118
138
  boundaries. Flooring a UTC instant to a UTC day and calling it a local day is
@@ -192,7 +212,64 @@ converting between time zones, or doing arithmetic that must respect DST.
192
212
  (a skipped date is not counted, a re-entered one only once), and is the
193
213
  library's one "local days crossed" count.
194
214
  Bare instants with no `targetZone` return `null`: an offset is not a place.
195
- 16. **Free time is counted in the terminal's local days; the start day and the
215
+ `crossingTime(entry, exit, targetZone)` returns `{ duration, enter, exit }`
216
+ with no day count (a crossing that needs one is a dwell); `targetZone` is
217
+ required and always the rendering zone — a bracket on the input never
218
+ supplies it.
219
+ `scheduleDelivery(legs, { startTimeZone? })` chains legs into `{ eta,
220
+ legTimes }`: each leg leaves at its explicit `departure` or at the previous
221
+ arrival plus that leg's `dwellAfter`, the minimum connect time. A scheduled
222
+ departure earlier than that is a missed connection and returns `null`
223
+ (equal passes). A departure is exact (instant or zoned string) or a
224
+ zoneless wall time: on the first leg it is read in `startTimeZone`, on a
225
+ later leg in the previous leg's `timeZone` (where that leg leaves from),
226
+ both with `"compatible"` resolution (ambiguous → earlier, skipped →
227
+ later). On a later leg, a repeated hour instead takes the earliest pass
228
+ at or after the previous arrival plus its dwell. A
229
+ negative leg `duration` is `null`; the last leg's `dwellAfter` is echoed,
230
+ never added. `mode`, `origin` and `destination` are opaque tags echoed on
231
+ each `LegTime`. An empty array returns `{ eta: "", legTimes: [] }`.
232
+ 16. **Cut-offs count back from the caller's event.**
233
+ `cutoffAt(anchor, offset, { timeZone, atLocalTime?, calendar?, roll? })`
234
+ takes an offset off the anchor (loading, departure or arrival are
235
+ different instants; it never guesses which). With `atLocalTime` the
236
+ offset's exact part comes off the anchor's instant first, its calendar
237
+ part off the local date, and the cut-off is that time of day: `P2D` at
238
+ `"17:00"` is 17:00 two days before, not 48 hours. Without it the offset
239
+ is `ZonedDateTime#subtract` (`P2D` keeps the wall clock, `PT96H` is 96
240
+ exact hours). `calendar` and `roll` go together or not at all — there is
241
+ no default roll, as in `rollDate`; either alone is `""`. A repeated hour
242
+ takes the first pass (RFC 5545 §3.3.5); a skipped hour is `""`. It does
243
+ not check that the cut-off is before the anchor.
244
+ `cutoffSchedule(anchor, [{ name, offset, atLocalTime? }], options)`
245
+ sorts the stack by instant and returns `[]` if any entry fails.
246
+ `isPastCutoff(now, cutoff)` is `true` from the cut-off instant on;
247
+ `timeToCutoff(now, cutoff)` is exact hours, `PT0S` at it, negative after.
248
+ 17. **Planned versus actual is exact time under the caller's tolerance.**
249
+ `scheduleDeviation(planned, actual)` is `actual − planned` in exact hours
250
+ (`"PT14M"` late, `"-PT5M"` early; a fall-back delay is `PT1H`, never
251
+ `PT0S`). `classifyPunctuality(planned, actual, { late, early? })` returns
252
+ `"early" | "onTime" | "late"`, or `null` on invalid input: both edges are
253
+ outside (exactly `late` is late), and without `early` every early arrival
254
+ is on time. There is no default tolerance; tolerances are exact durations
255
+ (a day is 24 hours; years, months, weeks or negative return `null`).
256
+ `punctualityRate(pairs, tolerance)` returns `{ onTime, total, rate }`,
257
+ judging every pair under a tolerance read once; an empty list or any
258
+ invalid pair is `null`. A `TimestampEvent` is `{ classifier: "PLN" |
259
+ "EST" | "REQ" | "ACT", at, recordedAt }` (DCSA vocabulary).
260
+ `bestAvailable(events)` returns `{ at, classifier }`: `ACT` whenever one
261
+ exists, else `PLN`, else `REQ`, else `EST`, newest `recordedAt` within the
262
+ class — never an `EST` shown as an actual. `estimateDrift(events, {
263
+ tolerance? })` reports first-to-last `EST` drift, `revisions` and
264
+ `exceedsTolerance` (strictly greater, either direction; `null` without a
265
+ tolerance), and is `null` with fewer than two `EST`s.
266
+ `nextDeparture(after, timetable, { minimumConnection? })` returns the
267
+ first departure at or after `after + minimumConnection`: a list entry
268
+ echoed as written (ready for `scheduleDelivery`'s `departure`), or for
269
+ `{ headway, from, to }` (a GTFS `frequencies.txt` row) `from + k × headway`
270
+ in the half-open `[from, to)`, written the way `from` was. Every moment
271
+ must carry its offset; a wall time without one is `""`.
272
+ 18. **Free time is counted in the terminal's local days; the start day and the
196
273
  basis are tariff terms, never defaults.**
197
274
  `freeTimeExpiry(clockStart, freeDays, { basis, timeZone, firstDay, calendar? })`
198
275
  returns `{ freeTimeStart, lastFreeDay, expiresAt }`: local dates in
@@ -212,7 +289,7 @@ converting between time zones, or doing arithmetic that must respect DST.
212
289
  demurrage gate-in to loaded, detention empty release to gate-in; `combined`
213
290
  runs both as one period. No standard fixes how these days are counted;
214
291
  every term is the tariff's.
215
- 17. **Billing deadlines are dates counted from an anchor, and every window is
292
+ 19. **Billing deadlines are dates counted from an anchor, and every window is
216
293
  the caller's.** `billingTimeline({ anchorOn, invoiceIssuedOn?,
217
294
  requestReceivedOn? }, { issueDays, disputeDays, resolutionDays,
218
295
  agreedResolutionOn? })` returns `{ invoiceDeadline, issuedByDeadline,
@@ -227,9 +304,143 @@ converting between time zones, or doing arithmetic that must respect DST.
227
304
  `convertUtcToPlainDate(instant, { timeZone })`. A request before its
228
305
  invoice, or an agreed date before the request, returns `null`. GMT
229
306
  computes dates, not liability.
230
- 18. **Read the README.** This skill is a routing pointer. For the full DST
231
- disambiguation walkthrough, code examples, and locale ICU notes, read the
232
- installed package's `README.md` and the source JSDoc.
307
+ 20. **A B/L date is a local date; a multimodal ETA keeps transit and dwell
308
+ apart.** `bolTimestamp(value, event, { timeZone })` returns the
309
+ `YYYY-MM-DD` date on the local clock in `timeZone` at the instant `value`:
310
+ DCSA Bill of Lading 3.0 types `issueDate`, `receivedForShipmentDate` and
311
+ `shippedOnBoardDate` as dates with no time or offset. `event` is
312
+ `"issue" | "received" | "shippedOnBoard"`, one per DCSA date field; all
313
+ three render the same way and anything else is `""`. `timeZone` is
314
+ required (no UTC default): the place of issue for `issue`, the loading
315
+ terminal for `received` and `shippedOnBoard`. 21:00 in New York
316
+ is 01:00Z the next day, so the UTC date is wrong. Only the instant is read;
317
+ a zoneless value is `""`. `multimodalETA(legs, { startTimeZone? })` takes
318
+ `scheduleDelivery`'s `Leg[]` and returns `{ eta, totalLegs, totalTransit,
319
+ totalDwell }`: transit is the legs' durations added up, dwell the time
320
+ actually spent at handoffs (a wait for a scheduled departure included; the
321
+ last leg's `dwellAfter` excluded), both with hours as the largest unit, and
322
+ they sum to the elapsed time. Every `scheduleDelivery` rule applies, so a
323
+ missed connection is `null`. An empty array is `{ eta: "", totalLegs: 0,
324
+ totalTransit: "PT0S", totalDwell: "PT0S" }`. Dwell is never estimated.
325
+ 21. **An EDI timestamp is read by the function for its kind of value, and
326
+ nothing the code does not state is guessed.** Each kind has a `parse…`,
327
+ `format…` and `isValid…` function named for it (`parseEdifactDate`,
328
+ `formatEdifactDate`, `isValidEdifactDate`), and `format` is typed to that
329
+ kind's codes. UN/EDIFACT `DTM` (value 2380 against format code 2379):
330
+ `EdifactDate` (`102`), `EdifactTime` (`401`, `402`), `EdifactDateTime`
331
+ (`203`, `204`), `EdifactOffsetDateTime` (`205`, `208`, `303`, `304`),
332
+ `EdifactDatePeriod` (`718`), `EdifactDateTimePeriod` (`719`). X12 (element
333
+ 1251 against qualifier 1250, in `DTP` and `DTM-05`/`06`): `X12Date` (`D8`,
334
+ `DB`), `X12Time` (`TM`, `TS`), `X12DateTime` (`DT`, `RTS`), `X12DateRange`
335
+ (`RD8`, `RD`), `X12DateTimeRange` (`RDT`, `DTS`). `parseX12Time(value)`
336
+ with no `format` reads element 337, tenths and hundredths included
337
+ (`"14300012"` is `"14:30:00.12"`), and `formatX12TimeElement(value, form)`
338
+ writes it in the mask named: `HHMM`, `HHMMSS`, `HHMMSSD` or `HHMMSSDD`
339
+ (`"14:30:00"` under `HHMMSSDD` is `"14300000"`). A parser returns one value:
340
+ `"2024-06-15"`, `"14:30:00"`, `"2024-06-15T14:30:00"`,
341
+ `"2024-06-15T14:30:00+02:00"` (the string `toOffsetInstant` reads), or
342
+ `{ start, end }` for a period or range. The sentinel is `""`, or `null`
343
+ for a period, a range, a zone or a classifier. A period formatter takes
344
+ `(start, end, format)`. No EDI function takes options. X12 freight is
345
+ three calls: `parseX12DateAndTime("20240615", "1430")` is
346
+ `"2024-06-15T14:30:00"` (elements 373 and 337 of `AT7`, `G62` or `DTM`,
347
+ both required), `x12TimeCodeOffset("20")` is `"-05:00"`, and
348
+ `resolveLocal(local, offset)` is `"2024-06-15T19:30:00Z"`. For a code
349
+ held as a plain string, `classifyEdifactDtmFormat`,
350
+ `classifyX12DateTimePeriodFormat` and `classifyX12TimeCode` return
351
+ `{ kind, format }` or `{ kind, timeCode }`, or `null` for a code no
352
+ function reads; testing `kind` narrows the code with no cast.
353
+ `parseEpcisEvent({ eventTime, eventTimeZoneOffset })` returns
354
+ `{ instant, offset, local }`; both fields are required and need not
355
+ agree. Five no-guess rules. (a) An offsetless value never becomes UTC:
356
+ `203`, `204`, `DT`, `RTS` and `parseX12DateAndTime` return a local
357
+ date-time; pass it and an IANA zone to `resolveLocal`. (b) A named X12
358
+ time code is a zone name, not an offset: `x12TimeCodeZone("ES")` is
359
+ `{ zone: "Eastern", daylight: false }` and `ET` has `daylight: null`,
360
+ while `x12TimeCodeOffset` reads `01`–`29`, `UT` and `GM`, and `13`–`24`
361
+ count down (`13` is `-12:00`). Each returns its sentinel for the other's
362
+ codes. (c) The `ZZZ` of `303` and `304` is an offset only: `+02`, `UTC`
363
+ and `GMT` are read, and letters such as `CET` return `""`. (d) A
364
+ two-digit year is not read by any EDI function: `101`, `201`, `202`,
365
+ `206`, `207`, `301`, `302`, `713`, `717`, `D6`, `TT`, `TR`, `RD6` and
366
+ `TU`. Read one with `parseDateWithPattern` or `parseDateTimeWithPattern`,
367
+ a `yy` pattern and `{ yearWindow }`: a start year such as `2000` (a fixed
368
+ window, for stored data) or `"rolling"` (50 years before the current UTC
369
+ year to 49 after). Without `yearWindow` a `yy` pattern returns `""`. (e)
370
+ `209`, `404`, `406`, `TC`, `EH`, `DDT`, `DTD`, `RTM` and `UN` are not
371
+ read: none states one date, time or date-time. A UN/EDIFACT period has no
372
+ hyphen (`2024061520240620` under `718`) and an X12 range has one
373
+ (`20240615-20240620` under `RD8`); a reversed one returns the sentinel.
374
+ Pass a UN/EDIFACT parser the unescaped value (`+02`, not `?+02`). A
375
+ formatter cuts seconds and fractions to its mask and never rounds.
376
+ It writes `ZZZ` as `±HH`, and `+05:30` under `303` or `304` returns `""`:
377
+ use `205` or `208`. Each value validator is true exactly when its parser
378
+ returns a value (`isValidX12DateAndTime(date, time)` for the freight
379
+ pair), and `isValidEdifactDtmFormat`, `isValidX12DateTimePeriodFormat`
380
+ and `isValidX12TimeCode` check a code alone. `isValidEpcisEvent` is
381
+ `isValidEpcisEventTime` and `isValidEpcisTimeZoneOffset` together: the
382
+ `epcisEventTime` regex matches `2024-02-30`, the validator does not.
383
+ 22. **Operating hours are local windows resolved in the schedule's zone.** An
384
+ `OperatingSchedule` is `{ timeZone, weekly, holidays?, overrides? }`:
385
+ `weekly` maps ISO weekdays `1`–`7` to half-open `LocalWindow`s
386
+ (`{ from: "09:00", to: "17:00" }`); a `to` at or before `from` wraps past
387
+ midnight and the window belongs to the date it starts on. Holidays are local
388
+ dates (a `BusinessCalendar` is accepted; only its `holidays` are read); an
389
+ override replaces one date's windows, holiday or not. Every edge goes
390
+ through `resolveLocal` with `disambiguation` (default `"compatible"`), so a
391
+ 23:00–06:00 window is 8 real hours across New York's fall-back night.
392
+ `recurringWindows(weekly, range, zone)` and `operatingIntervals(schedule,
393
+ range)` return merged open intervals; `isOpenAt`, `nextOpenAt` and
394
+ `nextCloseAt` answer point questions; `operatingTimeBetween(start, end,
395
+ schedule)` is open time elapsed (hours as the largest unit), and
396
+ `addOperatingTime(start, "PT8H", schedule)` is the SLA deadline. Searches
397
+ stop at `within` (default `"P1Y"`) and return `""` past it; `P1D` is not
398
+ open time and returns `""`.
399
+ 23. **A zoned string names one instant in every reader.** Temporal writes a
400
+ zone's offset rounded to the minute, so a zone with a sub-minute offset
401
+ (`Africa/Monrovia` stood at −00:44:30 until 1972) is written `-00:45`.
402
+ Every function that reads a moment (`toNanoseconds`, `spanNs`, `Interval`
403
+ endpoints, `floorToZone`, `getTimeZoneOffset`, `scheduleDeviation`,
404
+ `timeToCutoff`, `dwellTime`) reads an offset written to the minute as the
405
+ bracketed zone's real offset when it is that offset rounded (TC39
406
+ `ToTemporalZonedDateTime`, match-minutes):
407
+ `1960-01-01T00:20:00-00:45[Africa/Monrovia]` is `01:04:30Z`. So a zoned
408
+ string GMT wrote reads back as the instant it was written for. Otherwise
409
+ the written offset fixes the instant. A function that reads only the
410
+ instant does not validate the bracket, and the bracket never supplies its
411
+ rendering zone. A function that keeps the zone (`isValidZonedDateTime`,
412
+ `transitTime`, `toOffsetInstant`, every `zoned/` function, a zoned
413
+ `relativeTo`) rejects a bracket that contradicts the offset, and an offset
414
+ written with seconds must be the zone's offset exactly:
415
+ `-00:45:00[Africa/Monrovia]` is invalid, `-00:44:30[Africa/Monrovia]` is
416
+ valid. Two limits are Temporal's own. A wall time repeated inside a
417
+ sub-minute offset change, written to the minute, reads as its first pass
418
+ (`1952-10-15T23:59:59-11:20[Pacific/Niue]`); write the offset with seconds
419
+ to name the second. A zoned read refuses a local date of −271821-04-19,
420
+ which an instant reader accepts; pass that instant in `Z` form.
421
+ 24. **Daylight time is read from the zone's clock changes.**
422
+ `isInDaylightSaving(zoned)` and `hasDaylightSaving(timeZone, { at })`
423
+ apply one rule, GMT's own definition and not the tz database's daylight
424
+ flag (no JavaScript API exposes it): daylight time runs from a forward
425
+ change of the zone's clocks to the backward change of the same size that
426
+ undoes it, less than 365 days later. A forward change never undone is a
427
+ change of standard time, so
428
+ `isInDaylightSaving("2016-12-01T12:00:00+03:00[Europe/Istanbul]")` is
429
+ `false`. The higher of two alternating offsets is the daylight one:
430
+ `Europe/Dublin` in summer, `Africa/Casablanca` at `+01:00`.
431
+ `hasDaylightSaving` is `true` when the zone is in daylight time at `at`
432
+ or a daylight period begins less than 365 days after it. Pass `at` (an
433
+ ISO 8601 instant string) for an answer that does not depend on the day
434
+ the code runs: `hasDaylightSaving("Europe/Istanbul", { at:
435
+ "2015-06-15T12:00:00Z" })` is `true`, and with `"2016-06-15T12:00:00Z"`
436
+ it is `false`. Without `at` the reference is the current instant. Both
437
+ read the runtime's time zone data, so an answer can change when that data
438
+ does. The JSDoc of `isInDaylightSaving` lists what the rule reads as
439
+ standard time.
440
+ 25. **Read the docs site.** This skill is a routing pointer. The map of the
441
+ docs is `https://gmt-dox.northguild.workers.dev/llms.txt`, and each page
442
+ has a `.md` twin that holds its text. The JSDoc ships in the installed
443
+ package: `node_modules/@northguild/gmt/dist/**/*.d.ts`.
233
444
 
234
445
  ## Key functions
235
446
 
@@ -237,7 +448,7 @@ converting between time zones, or doing arithmetic that must respect DST.
237
448
  - **Formatting**: `formatZonedDateTime`, `formatZonedRange`,
238
449
  `formatRelativeZoned`, `formatTimeZoneName`
239
450
  - **Validation**: `isValidTimeZone`, `isValidZonedDateTime`,
240
- `hasDaylightSaving`, `getDstTransitions`, `isInDaylightSaving`
451
+ `hasDaylightSaving` (`{ at }`), `getDstTransitions`, `isInDaylightSaving`
241
452
  - **Conversion**: `convertPlainDateTimeToZoned`, `convertZonedToPlainDateTime`,
242
453
  `convertUtcToZoned`, `convertZonedToUtc`, `convertZonedToCalendar`,
243
454
  `convertUtcToUnix`, `convertUnixToUtc`
@@ -249,16 +460,39 @@ converting between time zones, or doing arithmetic that must respect DST.
249
460
  `endOfUnix`, `mapZonedHoursInDay`, `getHoursInZonedDay`
250
461
  - **Offset/DST reads**: `getZonedOffset`, `getZonedOffsetAs`,
251
462
  `getTimeZoneOffset`, `parseTimeZoneFromZoned`
252
- - **Offset-preserving instants**: `toOffsetInstant`, `fromOffsetInstant`
463
+ - **Offset-preserving instants**: `toOffsetInstant`, `fromOffsetInstant`,
464
+ `isValidUtcOffset` (the pair's `±HH:MM[:SS]` offset; not `Z`, not `+0530`)
253
465
  - **Local-time resolution**: `classifyLocal`, `resolveLocal`
254
466
  - **Zone-aware buckets**: `floorToZone`, `bucketRange`,
255
467
  `isValidZoneBucketUnit`
256
- - **Transport legs and dwell**: `transitTime`, `etaAtZone`, `dwellTime`
468
+ - **Transport legs and dwell**: `transitTime`, `etaAtZone`, `dwellTime`,
469
+ `crossingTime`, `scheduleDelivery`
470
+ - **Cut-offs and deadlines**: `cutoffAt`, `cutoffSchedule`, `isPastCutoff`,
471
+ `timeToCutoff`
472
+ - **Punctuality and timestamp classes**: `scheduleDeviation`,
473
+ `classifyPunctuality`, `punctualityRate`, `bestAvailable`, `estimateDrift`,
474
+ `nextDeparture`
257
475
  - **Free time and demurrage**: `freeTimeExpiry`, `chargeableDays`,
258
476
  `demurrageClock`
259
477
  - **Billing deadlines**: `billingTimeline`
478
+ - **Bill of lading dates and multimodal ETA**: `bolTimestamp`, `multimodalETA`
479
+ - **EDI and event timestamps**: `parseEdifactDate`, `parseEdifactTime`,
480
+ `parseEdifactDateTime`, `parseEdifactOffsetDateTime`,
481
+ `parseEdifactDatePeriod`, `parseEdifactDateTimePeriod`, `parseX12Date`,
482
+ `parseX12Time`, `parseX12DateTime`, `parseX12DateRange`,
483
+ `parseX12DateTimeRange`, `parseX12DateAndTime`, `x12TimeCodeOffset`,
484
+ `x12TimeCodeZone`, `classifyEdifactDtmFormat`,
485
+ `classifyX12DateTimePeriodFormat`, `classifyX12TimeCode`,
486
+ `parseEpcisEvent`; a `format…` and an `isValid…` for each `parseEdifact…`
487
+ kind, for `X12Date`, `X12Time`, `X12DateTime`, `X12DateRange` and
488
+ `X12DateTimeRange`, and for `EpcisEvent`; `formatX12TimeElement`,
489
+ `isValidX12DateAndTime`, `isValidEpcisEventTime`,
490
+ `isValidEpcisTimeZoneOffset`, `isValidEdifactDtmFormat`,
491
+ `isValidX12DateTimePeriodFormat`, `isValidX12TimeCode`
492
+ - **Operating hours**: `recurringWindows`, `operatingIntervals`, `isOpenAt`,
493
+ `nextOpenAt`, `nextCloseAt`, `operatingTimeBetween`, `addOperatingTime`
260
494
 
261
495
  ## References
262
496
 
263
- - [README — Timezone and Calendar examples](README.md)
497
+ - [Zoned operations guide](https://gmt-dox.northguild.workers.dev/guides/zoned-date-operations/zoned-operations/)
264
498
  - [DST Disambiguation guide](https://gmt-dox.northguild.workers.dev/guides/concepts/dst-disambiguation/)
@@ -1,62 +0,0 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import type { DateTimeDurationUnit, DurationRelativeTo } from "../../types/index.js";
3
- /**
4
- * Express an ISO 8601 duration as a single fractional total in one unit.
5
- *
6
- * - Uses Temporal.Duration.from and .total — the whole duration is converted, so
7
- * durationAs("P1DT2H30M", "hours") is 26.5, not the 2 that `getDurationUnit` reads.
8
- * - The result is fractional, not rounded: durationAs("P1DT2H30M", "days") is
9
- * 1.1041666666666667. Round it yourself, or reach for `normalizeDuration` instead.
10
- * - `relativeTo` is required whenever a calendar unit (year/month/week) is involved, in
11
- * *either* direction — as the requested `unit`, or because the input duration already has
12
- * a nonzero year/month/week component. Without it, returns null. This is the same
13
- * documented gap `normalizeDuration` (A3) carries; `addDuration`/`subtractDuration` (A2)
14
- * have it worse still, since Temporal gives them no `relativeTo` option at all.
15
- * - The requested-unit half of that rule bites even on day/time-only input: "P1DT2H30M" has
16
- * no calendar component, yet durationAs("P1DT2H30M", "weeks") is still null — a week is a
17
- * calendar quantity to Temporal regardless of what it is being measured from.
18
- * - `relativeTo` changes the answer for non-calendar units too when it names a zoned instant:
19
- * a day spanning a DST spring-forward transition totals 23 hours, not 24.
20
- * - A zoned `relativeTo` string resolves its wall time with disambiguation "compatible" and
21
- * offset "reject", as Temporal does: an ambiguous wall time takes the earlier instant, a
22
- * nonexistent one the later instant, and an offset that does not match the zone returns null.
23
- * Pass an explicit offset to pick the other reading of an ambiguous wall time.
24
- * - A `relativeTo` string is ISO 8601 extended format before its first `[`:
25
- * a date, a date-time, or with a time zone annotation a zoned date-time (`<date>T<time>`, then
26
- * nothing, `Z` or `±HH:MM`). Basic format (`"20240101"`), a space or lower-case `t` separator, a
27
- * lower-case `z`, a UTC offset without a zone and a zoned date without a time are invalid.
28
- * - A `relativeTo` string takes a calendar in RFC 9557 form, as `convertDateToCalendar` and
29
- * `convertZonedToCalendar` write it: ISO digits and a `[u-ca=<id>]` annotation, after the zone
30
- * for a zoned string (`"2024-02-24[u-ca=hebrew]"`, `"2024-02-24T00:00:00-05:00[America/New_York][u-ca=hebrew]"`).
31
- * The annotations are read as Temporal reads them: the critical flag and the id's letter case
32
- * are accepted, elective unknown annotations are ignored, the first `u-ca` names the calendar,
33
- * and a string with a time zone annotation is zoned. An unknown critical annotation, a critical
34
- * duplicate calendar, a calendar before the zone, an unsupported calendar and a leap second in
35
- * any spelling return null.
36
- * Compatibility: before 1.16.0 the digits were read as the calendar's own year, month and day.
37
- * - `unit` accepts the plural or singular name (`"hours"` or `"hour"`), as Temporal does.
38
- * - Returns null on a non-duration `value`, an invalid `unit`, or an invalid `relativeTo`.
39
- *
40
- * @param value ISO 8601 duration string
41
- * @param unit DateTimeDurationUnit to total into ("years" | "months" | "weeks" | "days" | "hours" | "minutes" | "seconds" | "milliseconds" | "microseconds" | "nanoseconds", or the singular name)
42
- * @param options optional: { relativeTo } — anchor date/instant, required for any calendar unit
43
- * @returns the fractional total in `unit`, or null on invalid input
44
- *
45
- * @example durationAs("P1DT2H30M", "hours") // 26.5
46
- * @example durationAs("P1DT2H30M", "minutes") // 1590
47
- * @example durationAs("PT36H", "days") // 1.5
48
- * @example durationAs("-PT90M", "hours") // -1.5
49
- * @example durationAs("P1M", "days") // null (calendar unit needs relativeTo)
50
- * @example durationAs("P1M", "days", { relativeTo: "2024-02-01" }) // 29
51
- * @example durationAs("P1M", "days", { relativeTo: "20240201" }) // null (basic format)
52
- * @example durationAs("P1D", "hours", { relativeTo: "2024-03-10T00:00:00-05:00[America/New_York]" }) // 23 (spring-forward)
53
- * @example durationAs("P1D", "hours", { relativeTo: "2024-11-03T01:30[America/New_York]" }) // 25
54
- * @example durationAs("P1DT2H30M", "minute") // 1590 (singular unit name)
55
- * @example durationAs("not a duration", "hours") // null
56
- * @example durationAs("P1Y", "days", { relativeTo: "2024-02-24[u-ca=hebrew]" }) // 385 (Hebrew leap year 5784)
57
- * @example durationAs("P1M", "days", { relativeTo: "2024-02-10[!u-ca=hebrew]" }) // 30 (1 Adar I 5784; the critical flag is accepted)
58
- * @example durationAs("P1M", "days", { relativeTo: "2024-02-10T00:00:00[u-ca=hebrew]" }) // 30 (a date-time without a zone reads as its date, as Temporal reads relativeTo)
59
- */
60
- export declare function durationAs(value: string, unit: DateTimeDurationUnit | Temporal.DateTimeUnit, options?: {
61
- relativeTo?: DurationRelativeTo;
62
- }): number | null;
@@ -1,11 +0,0 @@
1
- /**
2
- * Resolve the `timeZone` option a UTC reader uses to read a value's wall-clock fields.
3
- *
4
- * - `undefined` (the option omitted) resolves to `"UTC"`.
5
- * - A valid IANA zone (or `"UTC"`) resolves to itself.
6
- * - Any other value is invalid and resolves to `null`, which callers map to their sentinel.
7
- *
8
- * @param timeZone raw option value from caller input
9
- * @returns the zone to read in, or `null` when the value is invalid
10
- */
11
- export declare function resolveReadingTimeZone(timeZone: unknown): string | null;
@@ -1,18 +0,0 @@
1
- import { isValidTimeZone } from "../zoned/validate/isValidTimeZone.js";
2
- /**
3
- * Resolve the `timeZone` option a UTC reader uses to read a value's wall-clock fields.
4
- *
5
- * - `undefined` (the option omitted) resolves to `"UTC"`.
6
- * - A valid IANA zone (or `"UTC"`) resolves to itself.
7
- * - Any other value is invalid and resolves to `null`, which callers map to their sentinel.
8
- *
9
- * @param timeZone raw option value from caller input
10
- * @returns the zone to read in, or `null` when the value is invalid
11
- */
12
- export function resolveReadingTimeZone(timeZone) {
13
- if (timeZone === undefined || timeZone === "UTC")
14
- return "UTC";
15
- return typeof timeZone === "string" && isValidTimeZone(timeZone)
16
- ? timeZone
17
- : null;
18
- }
@@ -1,22 +0,0 @@
1
- import type { Temporal } from "@js-temporal/polyfill";
2
- /**
3
- * Read a Unix epoch argument as a `Temporal.ZonedDateTime` under the shared `unix/` options, or
4
- * null when anything is invalid.
5
- *
6
- * - `value` follows the one epoch grammar (`parseUnixEpochValue`).
7
- * - `epochUnit` accepts singular or plural names and defaults to `"milliseconds"`.
8
- * - `timeZone` defaults to `"UTC"`; `"local"` is the system zone; an unknown zone is invalid
9
- * (see `normalizeTimeZone`).
10
- *
11
- * @param value Unix epoch number or digit string
12
- * @param options optional `{ epochUnit, timeZone }`
13
- * @returns the zoned date-time, or null
14
- *
15
- * @example unixZonedDateTime(0)?.toString() // "1970-01-01T00:00:00+00:00[UTC]"
16
- * @example unixZonedDateTime("86400", { epochUnit: "second", timeZone: "Asia/Tokyo" })?.hour // 9
17
- * @example unixZonedDateTime(0, { timeZone: "Asia/Tokio" }) // null
18
- */
19
- export declare function unixZonedDateTime(value: unknown, options?: {
20
- epochUnit?: unknown;
21
- timeZone?: unknown;
22
- }): Temporal.ZonedDateTime | null;
@@ -1,32 +0,0 @@
1
- import { normalizeTimeZone } from "./normalizeTimeZone.js";
2
- import { resolveUnixEpochUnit, unixEpochToInstant } from "./unixEpochValue.js";
3
- /**
4
- * Read a Unix epoch argument as a `Temporal.ZonedDateTime` under the shared `unix/` options, or
5
- * null when anything is invalid.
6
- *
7
- * - `value` follows the one epoch grammar (`parseUnixEpochValue`).
8
- * - `epochUnit` accepts singular or plural names and defaults to `"milliseconds"`.
9
- * - `timeZone` defaults to `"UTC"`; `"local"` is the system zone; an unknown zone is invalid
10
- * (see `normalizeTimeZone`).
11
- *
12
- * @param value Unix epoch number or digit string
13
- * @param options optional `{ epochUnit, timeZone }`
14
- * @returns the zoned date-time, or null
15
- *
16
- * @example unixZonedDateTime(0)?.toString() // "1970-01-01T00:00:00+00:00[UTC]"
17
- * @example unixZonedDateTime("86400", { epochUnit: "second", timeZone: "Asia/Tokyo" })?.hour // 9
18
- * @example unixZonedDateTime(0, { timeZone: "Asia/Tokio" }) // null
19
- */
20
- export function unixZonedDateTime(value, options) {
21
- const epochUnit = resolveUnixEpochUnit(options?.epochUnit);
22
- const timeZone = normalizeTimeZone(options?.timeZone);
23
- if (epochUnit === null || !timeZone) {
24
- return null;
25
- }
26
- try {
27
- return (unixEpochToInstant(value, epochUnit)?.toZonedDateTimeISO(timeZone) ?? null);
28
- }
29
- catch {
30
- return null;
31
- }
32
- }
@@ -1,16 +0,0 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- /**
3
- * Read a UTC ISO string as a zoned date-time for the `parse*FromUtc` accessors: the instant it
4
- * names, on the wall clock of `options.timeZone` (UTC when omitted). The utc twin of
5
- * `unixZonedDateTime`.
6
- *
7
- * @param value UTC ISO 8601 datetime string
8
- * @param options optional `{ timeZone }`
9
- * @returns the zoned date-time, or null when the value or the zone is invalid
10
- * @example utcZonedDateTime("2024-03-15T14:30:00Z", { timeZone: "Asia/Tokyo" })?.toString() // "2024-03-15T23:30:00+09:00[Asia/Tokyo]"
11
- * @example utcZonedDateTime("2024-03-15T14:30:00Z", { timeZone: "Invalid/Zone" }) // null
12
- * @example utcZonedDateTime("2024-03-15T14:30:00") // null (no Z)
13
- */
14
- export declare function utcZonedDateTime(value: string, options?: {
15
- timeZone?: string;
16
- }): Temporal.ZonedDateTime | null;
@@ -1,28 +0,0 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { isValidUtc } from "../utc/validate/isValidUtc.js";
3
- import { resolveReadingTimeZone } from "./resolveReadingTimeZone.js";
4
- /**
5
- * Read a UTC ISO string as a zoned date-time for the `parse*FromUtc` accessors: the instant it
6
- * names, on the wall clock of `options.timeZone` (UTC when omitted). The utc twin of
7
- * `unixZonedDateTime`.
8
- *
9
- * @param value UTC ISO 8601 datetime string
10
- * @param options optional `{ timeZone }`
11
- * @returns the zoned date-time, or null when the value or the zone is invalid
12
- * @example utcZonedDateTime("2024-03-15T14:30:00Z", { timeZone: "Asia/Tokyo" })?.toString() // "2024-03-15T23:30:00+09:00[Asia/Tokyo]"
13
- * @example utcZonedDateTime("2024-03-15T14:30:00Z", { timeZone: "Invalid/Zone" }) // null
14
- * @example utcZonedDateTime("2024-03-15T14:30:00") // null (no Z)
15
- */
16
- export function utcZonedDateTime(value, options) {
17
- if (!isValidUtc(value))
18
- return null;
19
- const timeZone = resolveReadingTimeZone(options?.timeZone);
20
- if (timeZone === null)
21
- return null;
22
- try {
23
- return Temporal.Instant.from(value).toZonedDateTimeISO(timeZone);
24
- }
25
- catch {
26
- return null;
27
- }
28
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Plural unit keys accepted by `formatDuration` for `UNIT_TO_INTL` lookup. Maps to
3
- * singular `Intl.NumberFormat` unit labels (e.g. `"years"` → `"year"`).
4
- */
5
- export type DurationUnit = "years" | "months" | "weeks" | "days" | "hours" | "minutes" | "seconds";
File without changes