@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
@@ -5,15 +5,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
5
5
  /**
6
6
  * Return the week number for a given ISO 8601 date string.
7
7
  *
8
- * - By default uses ISO weeks (Monday-based).
9
- * - `weekStartsOn: "sunday"` is the UTS #35 week of the week-year with a Sunday first day and
10
- * minimal days 1 (week 1 holds 1 January, so late-December days can be week 1), while `"monday"`
11
- * is the ISO 8601 week of the week-year; both are 1–53 — see `getWeekNumber`.
12
- * - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
8
+ * - The week is the week of the week-year, 1–53, under either numbering — see `getWeekNumber`.
13
9
  * - Returns null for invalid input.
14
10
  *
15
11
  * @param value ISO date string
16
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday") for week calculations
12
+ * @param optionsArg How weeks are numbered
17
13
  * @returns Week number (1-53) or null on invalid input
18
14
  *
19
15
  * @example parseWeekFromDate("2024-01-01") // 1
@@ -1,15 +1,11 @@
1
1
  /**
2
2
  * Return the week number for a given ISO 8601 datetime string.
3
3
  *
4
- * - By default uses ISO weeks (Monday-based).
5
- * - `weekStartsOn: "sunday"` is the UTS #35 week of the week-year with a Sunday first day and
6
- * minimal days 1 (week 1 holds 1 January, so late-December days can be week 1), while `"monday"`
7
- * is the ISO 8601 week of the week-year; both are 1–53 — see `getWeekNumber`.
8
- * - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
4
+ * - The week is the week of the week-year, 1–53, under either numbering — see `getWeekNumber`.
9
5
  * - Returns null for invalid input.
10
6
  *
11
7
  * @param value ISO 8601 datetime string
12
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday") for week calculations
8
+ * @param optionsArg How weeks are numbered
13
9
  * @returns Week number (1-53) or null on invalid input
14
10
  *
15
11
  * @example parseWeekFromDateTime("2024-01-01T12:00:00") // 1
@@ -19,5 +15,13 @@
19
15
  * @example parseWeekFromDateTime("2024-12-31T12:00:00", { weekStartsOn: "sunday" }) // 1 (its Sunday-first week holds 1 January 2025)
20
16
  */
21
17
  export declare function parseWeekFromDateTime(value: string, optionsArg?: {
18
+ /**
19
+ * The first day of the week, which sets how the week is numbered. `"monday"` gives the ISO 8601
20
+ * week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS #35 week
21
+ * number with a Sunday first day and one minimal day, where week 1 holds 1 January. Any other
22
+ * value returns `null`.
23
+ *
24
+ * @defaultValue `"monday"`
25
+ */
22
26
  weekStartsOn?: "monday" | "sunday";
23
27
  }): number | null;
@@ -6,15 +6,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
6
6
  /**
7
7
  * Return the week number for a given ISO 8601 datetime string.
8
8
  *
9
- * - By default uses ISO weeks (Monday-based).
10
- * - `weekStartsOn: "sunday"` is the UTS #35 week of the week-year with a Sunday first day and
11
- * minimal days 1 (week 1 holds 1 January, so late-December days can be week 1), while `"monday"`
12
- * is the ISO 8601 week of the week-year; both are 1–53 — see `getWeekNumber`.
13
- * - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
9
+ * - The week is the week of the week-year, 1–53, under either numbering — see `getWeekNumber`.
14
10
  * - Returns null for invalid input.
15
11
  *
16
12
  * @param value ISO 8601 datetime string
17
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday") for week calculations
13
+ * @param optionsArg How weeks are numbered
18
14
  * @returns Week number (1-53) or null on invalid input
19
15
  *
20
16
  * @example parseWeekFromDateTime("2024-01-01T12:00:00") // 1
@@ -1,13 +1,16 @@
1
1
  /**
2
2
  * Return the year for a given ISO 8601 date string.
3
3
  *
4
- * - Returns the year as a string (e.g., "2024").
4
+ * - Returns the year as Temporal writes it: four digits (`"2024"`, `"0005"`), or a sign and six
5
+ * digits outside 0000–9999 (`"+010000"`, `"-000005"`).
5
6
  * - Returns "" for invalid input.
6
7
  *
7
8
  * @param value ISO date string
8
- * @returns Year (YYYY) or "" on invalid input
9
+ * @returns the year as four digits, or a sign and six digits outside 0000–9999, or "" on invalid input
9
10
  *
10
11
  * @example parseYearFromDate("2024-03-15") // "2024"
12
+ * @example parseYearFromDate("0005-06-01") // "0005"
13
+ * @example parseYearFromDate("+010000-01-01") // "+010000"
11
14
  * @example parseYearFromDate("invalid") // ""
12
15
  */
13
16
  export declare function parseYearFromDate(value: string): string;
@@ -1,15 +1,19 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { isValidDate } from "../validate/index.js";
3
+ import { isoYearString } from "../../internal/isoYearString.js";
3
4
  /**
4
5
  * Return the year for a given ISO 8601 date string.
5
6
  *
6
- * - Returns the year as a string (e.g., "2024").
7
+ * - Returns the year as Temporal writes it: four digits (`"2024"`, `"0005"`), or a sign and six
8
+ * digits outside 0000–9999 (`"+010000"`, `"-000005"`).
7
9
  * - Returns "" for invalid input.
8
10
  *
9
11
  * @param value ISO date string
10
- * @returns Year (YYYY) or "" on invalid input
12
+ * @returns the year as four digits, or a sign and six digits outside 0000–9999, or "" on invalid input
11
13
  *
12
14
  * @example parseYearFromDate("2024-03-15") // "2024"
15
+ * @example parseYearFromDate("0005-06-01") // "0005"
16
+ * @example parseYearFromDate("+010000-01-01") // "+010000"
13
17
  * @example parseYearFromDate("invalid") // ""
14
18
  */
15
19
  export function parseYearFromDate(value) {
@@ -17,7 +21,7 @@ export function parseYearFromDate(value) {
17
21
  return "";
18
22
  try {
19
23
  const date = Temporal.PlainDate.from(value);
20
- return date.year.toString();
24
+ return isoYearString(date.year);
21
25
  }
22
26
  catch {
23
27
  return "";
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * Return the year for a given ISO 8601 datetime string.
3
3
  *
4
- * - Returns the year as a string (e.g., "2024").
4
+ * - Returns the year as Temporal writes it: four digits (`"2024"`, `"0005"`), or a sign and six
5
+ * digits outside 0000–9999 (`"+010000"`, `"-000005"`).
5
6
  * - Returns "" for invalid input.
6
7
  *
7
8
  * @param value ISO datetime string
8
- * @returns Year (YYYY) or "" on invalid input
9
+ * @returns the year as four digits, or a sign and six digits outside 0000–9999, or "" on invalid input
9
10
  *
10
11
  * @example parseYearFromDateTime("2024-03-15T12:30:00") // "2024"
12
+ * @example parseYearFromDateTime("0005-06-01T12:30:00") // "0005"
11
13
  * @example parseYearFromDateTime("invalid") // ""
12
14
  */
13
15
  export declare function parseYearFromDateTime(value: string): string;
@@ -1,15 +1,18 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { isValidDateTime } from "../validate/index.js";
3
+ import { isoYearString } from "../../internal/isoYearString.js";
3
4
  /**
4
5
  * Return the year for a given ISO 8601 datetime string.
5
6
  *
6
- * - Returns the year as a string (e.g., "2024").
7
+ * - Returns the year as Temporal writes it: four digits (`"2024"`, `"0005"`), or a sign and six
8
+ * digits outside 0000–9999 (`"+010000"`, `"-000005"`).
7
9
  * - Returns "" for invalid input.
8
10
  *
9
11
  * @param value ISO datetime string
10
- * @returns Year (YYYY) or "" on invalid input
12
+ * @returns the year as four digits, or a sign and six digits outside 0000–9999, or "" on invalid input
11
13
  *
12
14
  * @example parseYearFromDateTime("2024-03-15T12:30:00") // "2024"
15
+ * @example parseYearFromDateTime("0005-06-01T12:30:00") // "0005"
13
16
  * @example parseYearFromDateTime("invalid") // ""
14
17
  */
15
18
  export function parseYearFromDateTime(value) {
@@ -17,7 +20,7 @@ export function parseYearFromDateTime(value) {
17
20
  return "";
18
21
  try {
19
22
  const dateTime = Temporal.PlainDateTime.from(value);
20
- return dateTime.year.toString();
23
+ return isoYearString(dateTime.year);
21
24
  }
22
25
  catch {
23
26
  return "";
@@ -12,6 +12,7 @@ export * from "./isValidDateTimeRange.js";
12
12
  export * from "./isValidDateTimeUnit.js";
13
13
  export * from "./isValidDateUnit.js";
14
14
  export * from "./isValidIsoDateLike.js";
15
+ export * from "./isValidSqlDateTime.js";
15
16
  export * from "./isValidTime.js";
16
17
  export * from "./isValidTimeCycleField.js";
17
18
  export * from "./isValidTimeDurationUnit.js";
@@ -12,6 +12,7 @@ export * from "./isValidDateTimeRange.js";
12
12
  export * from "./isValidDateTimeUnit.js";
13
13
  export * from "./isValidDateUnit.js";
14
14
  export * from "./isValidIsoDateLike.js";
15
+ export * from "./isValidSqlDateTime.js";
15
16
  export * from "./isValidTime.js";
16
17
  export * from "./isValidTimeCycleField.js";
17
18
  export * from "./isValidTimeDurationUnit.js";
@@ -6,9 +6,27 @@
6
6
  * const range: IsValidDateRangeProps = { value1: "2024-02-28", value2: "2024-02-29" };
7
7
  */
8
8
  export interface IsValidDateRangeProps {
9
+ /**
10
+ * The start of the range, an ISO PlainDate string.
11
+ */
9
12
  value1: string;
13
+ /**
14
+ * The end of the range, an ISO PlainDate string.
15
+ */
10
16
  value2: string;
17
+ /**
18
+ * The settings for the comparison. It must be an object or omitted; any other value, `null`
19
+ * included, returns `false`.
20
+ *
21
+ * @defaultValue None. Equal values are not a valid range.
22
+ */
11
23
  options?: {
24
+ /**
25
+ * Whether `value1` equal to `value2` is a valid range. `false` requires `value1` to be
26
+ * before `value2`.
27
+ *
28
+ * @defaultValue `false`
29
+ */
12
30
  allowEqual?: boolean;
13
31
  };
14
32
  }
@@ -18,11 +36,8 @@ export interface IsValidDateRangeProps {
18
36
  * - Validates both dates with `isValidDate`, so each endpoint's RFC 9557 annotations are read as
19
37
  * `Temporal.PlainDate.from` reads them (an elective `[foo=bar]` or `[u-ca=iso8601]` is ignored).
20
38
  * - Rejects leap seconds in either date.
21
- * - When `options.allowEqual` is true, equality is considered valid as well.
22
39
  *
23
- * @param value1 first ISO PlainDate string
24
- * @param value2 second ISO PlainDate string
25
- * @param options optional allowEqual flag
40
+ * @param props The two values to compare and how equal values are treated
26
41
  * @returns boolean indicating whether the date range is valid
27
42
  *
28
43
  * @example isValidDateRange({ value1: "2024-02-28", value2: "2024-02-29" }) // true
@@ -7,11 +7,8 @@ import { isObject, isOptionsArgument } from "../../internal/isObject.js";
7
7
  * - Validates both dates with `isValidDate`, so each endpoint's RFC 9557 annotations are read as
8
8
  * `Temporal.PlainDate.from` reads them (an elective `[foo=bar]` or `[u-ca=iso8601]` is ignored).
9
9
  * - Rejects leap seconds in either date.
10
- * - When `options.allowEqual` is true, equality is considered valid as well.
11
10
  *
12
- * @param value1 first ISO PlainDate string
13
- * @param value2 second ISO PlainDate string
14
- * @param options optional allowEqual flag
11
+ * @param props The two values to compare and how equal values are treated
15
12
  * @returns boolean indicating whether the date range is valid
16
13
  *
17
14
  * @example isValidDateRange({ value1: "2024-02-28", value2: "2024-02-29" }) // true
@@ -1,15 +1,12 @@
1
1
  /**
2
2
  * Return true if `value1` and `value2` form a valid datetime range — both parseable as
3
- * ISO PlainDateTime strings and `value1 <= value2`.
3
+ * ISO PlainDateTime strings and `value1` before `value2`.
4
4
  *
5
5
  * - Both inputs must be ISO 8601 datetime strings (e.g. `"2024-01-01T10:00:00"`), as
6
6
  * `isValidDateTime` accepts, annotations included.
7
- * - Equal `value1 === value2` is valid when `options.allowEqual` is true.
8
7
  * - Invalid input, malformed strings, or leap-second strings return `false`.
9
8
  *
10
- * @param value1 first ISO PlainDateTime string
11
- * @param value2 second ISO PlainDateTime string
12
- * @param options optional allowEqual flag
9
+ * @param props The two values to compare and how equal values are treated
13
10
  * @returns boolean indicating whether the datetime range is valid
14
11
  *
15
12
  * @example isValidDateTimeRange({ value1: "2024-01-01T10:00:00", value2: "2024-12-31T23:59:59" }) // true
@@ -17,9 +14,27 @@
17
14
  * @example isValidDateTimeRange({ value1: "2024-01-01T10:00:00", value2: "2024-01-01T10:00:00", options: { allowEqual: true } }) // true
18
15
  */
19
16
  export declare function isValidDateTimeRange(props: {
17
+ /**
18
+ * The start of the range, an ISO PlainDateTime string.
19
+ */
20
20
  value1: string;
21
+ /**
22
+ * The end of the range, an ISO PlainDateTime string.
23
+ */
21
24
  value2: string;
25
+ /**
26
+ * The settings for the comparison. It must be an object or omitted; any other value, `null`
27
+ * included, returns `false`.
28
+ *
29
+ * @defaultValue None. Equal values are not a valid range.
30
+ */
22
31
  options?: {
32
+ /**
33
+ * Whether `value1` equal to `value2` is a valid range. `false` requires `value1` to be
34
+ * before `value2`.
35
+ *
36
+ * @defaultValue `false`
37
+ */
23
38
  allowEqual?: boolean;
24
39
  };
25
40
  }): boolean;
@@ -4,16 +4,13 @@ import { isValidDateTime } from "./isValidDateTime.js";
4
4
  import { isObject, isOptionsArgument } from "../../internal/isObject.js";
5
5
  /**
6
6
  * Return true if `value1` and `value2` form a valid datetime range — both parseable as
7
- * ISO PlainDateTime strings and `value1 <= value2`.
7
+ * ISO PlainDateTime strings and `value1` before `value2`.
8
8
  *
9
9
  * - Both inputs must be ISO 8601 datetime strings (e.g. `"2024-01-01T10:00:00"`), as
10
10
  * `isValidDateTime` accepts, annotations included.
11
- * - Equal `value1 === value2` is valid when `options.allowEqual` is true.
12
11
  * - Invalid input, malformed strings, or leap-second strings return `false`.
13
12
  *
14
- * @param value1 first ISO PlainDateTime string
15
- * @param value2 second ISO PlainDateTime string
16
- * @param options optional allowEqual flag
13
+ * @param props The two values to compare and how equal values are treated
17
14
  * @returns boolean indicating whether the datetime range is valid
18
15
  *
19
16
  * @example isValidDateTimeRange({ value1: "2024-01-01T10:00:00", value2: "2024-12-31T23:59:59" }) // true
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Return true when `value` is a real SQL timestamp literal without a time zone: the
3
+ * `YYYY-MM-DD HH:MM:SS[.fff]` value of a standard SQL `TIMESTAMP` or a MySQL/SQLite `DATETIME`
4
+ * column. It checks one date-and-time value, not a SQL statement.
5
+ *
6
+ * - True exactly when `parseSqlDateTime` returns a plain string for the same value: the validator
7
+ * calls the parser, so the two cannot disagree.
8
+ * - **Grammar:** SQL-92 §5.3 `<timestamp string>` and the ODBC `ts` escape, as `sqlDateTime`
9
+ * matches: a single space separator, a four-digit year `0001`–`9999`, two-digit month, day,
10
+ * hour, minute and second (seconds are required), and an optional `.` followed by up to 9
11
+ * fraction digits.
12
+ * - Checks the calendar as well as the shape. The `sqlDateTime` pattern proves the shape alone, so
13
+ * it matches a day that does not exist: 30 February, 29 February in a common year and 31 June
14
+ * are false here.
15
+ * - False for a second of 60: GMT rejects leap seconds.
16
+ * - **Plain only.** A `T` separator, a `Z` and an offset are false: SQL's offset-carrying
17
+ * `TIMESTAMP WITH TIME ZONE` literal is out of scope.
18
+ * - False for a non-string. Read the value with `parseSqlDateTime`; write one with
19
+ * `formatSqlDateTime`.
20
+ *
21
+ * @param value candidate SQL timestamp literal
22
+ * @returns boolean indicating validity
23
+ *
24
+ * @example isValidSqlDateTime("2024-03-15 14:30:00") // true
25
+ * @example isValidSqlDateTime("2024-03-15 14:30:00.123456789") // true
26
+ * @example isValidSqlDateTime("2024-02-30 14:30:00") // false (February has no 30th; the sqlDateTime pattern matches it)
27
+ * @example isValidSqlDateTime("2023-02-29 14:30:00") // false (2023 has no 29 February; the sqlDateTime pattern matches it)
28
+ * @example isValidSqlDateTime("2024-06-31 00:00:00") // false (June has 30 days; the sqlDateTime pattern matches it)
29
+ * @example isValidSqlDateTime("2024-03-15 14:30") // false (seconds are required)
30
+ * @example isValidSqlDateTime("2024-03-15T14:30:00") // false (T separator)
31
+ * @example isValidSqlDateTime("not a date") // false
32
+ */
33
+ export declare function isValidSqlDateTime(value: string): boolean;
@@ -0,0 +1,36 @@
1
+ import { parseSqlDateTime } from "../parse/parseSqlDateTime.js";
2
+ /**
3
+ * Return true when `value` is a real SQL timestamp literal without a time zone: the
4
+ * `YYYY-MM-DD HH:MM:SS[.fff]` value of a standard SQL `TIMESTAMP` or a MySQL/SQLite `DATETIME`
5
+ * column. It checks one date-and-time value, not a SQL statement.
6
+ *
7
+ * - True exactly when `parseSqlDateTime` returns a plain string for the same value: the validator
8
+ * calls the parser, so the two cannot disagree.
9
+ * - **Grammar:** SQL-92 §5.3 `<timestamp string>` and the ODBC `ts` escape, as `sqlDateTime`
10
+ * matches: a single space separator, a four-digit year `0001`–`9999`, two-digit month, day,
11
+ * hour, minute and second (seconds are required), and an optional `.` followed by up to 9
12
+ * fraction digits.
13
+ * - Checks the calendar as well as the shape. The `sqlDateTime` pattern proves the shape alone, so
14
+ * it matches a day that does not exist: 30 February, 29 February in a common year and 31 June
15
+ * are false here.
16
+ * - False for a second of 60: GMT rejects leap seconds.
17
+ * - **Plain only.** A `T` separator, a `Z` and an offset are false: SQL's offset-carrying
18
+ * `TIMESTAMP WITH TIME ZONE` literal is out of scope.
19
+ * - False for a non-string. Read the value with `parseSqlDateTime`; write one with
20
+ * `formatSqlDateTime`.
21
+ *
22
+ * @param value candidate SQL timestamp literal
23
+ * @returns boolean indicating validity
24
+ *
25
+ * @example isValidSqlDateTime("2024-03-15 14:30:00") // true
26
+ * @example isValidSqlDateTime("2024-03-15 14:30:00.123456789") // true
27
+ * @example isValidSqlDateTime("2024-02-30 14:30:00") // false (February has no 30th; the sqlDateTime pattern matches it)
28
+ * @example isValidSqlDateTime("2023-02-29 14:30:00") // false (2023 has no 29 February; the sqlDateTime pattern matches it)
29
+ * @example isValidSqlDateTime("2024-06-31 00:00:00") // false (June has 30 days; the sqlDateTime pattern matches it)
30
+ * @example isValidSqlDateTime("2024-03-15 14:30") // false (seconds are required)
31
+ * @example isValidSqlDateTime("2024-03-15T14:30:00") // false (T separator)
32
+ * @example isValidSqlDateTime("not a date") // false
33
+ */
34
+ export function isValidSqlDateTime(value) {
35
+ return parseSqlDateTime(value) !== "";
36
+ }
@@ -1,16 +1,13 @@
1
1
  /**
2
2
  * Return true if `value1` and `value2` form a valid time range — both parseable as
3
- * ISO PlainTime strings and `value1 <= value2`.
3
+ * ISO PlainTime strings and `value1` before `value2`.
4
4
  *
5
5
  * - Both inputs must be ISO 8601 time strings (e.g. `"14:30:00"`), as `isValidTime` accepts,
6
6
  * annotations included.
7
7
  * - Ordered by `Temporal.PlainTime.compare`, to the nanosecond.
8
- * - Equal `value1 === value2` is valid when `options.allowEqual` is true.
9
8
  * - Invalid input, malformed strings, or leap-second strings return `false`.
10
9
  *
11
- * @param value1 first ISO PlainTime string
12
- * @param value2 second ISO PlainTime string
13
- * @param options optional allowEqual flag
10
+ * @param props The two values to compare and how equal values are treated
14
11
  * @returns boolean indicating whether the time range is valid
15
12
  *
16
13
  * @example isValidTimeRange({ value1: "09:00:00", value2: "17:00:00" }) // true
@@ -18,9 +15,27 @@
18
15
  * @example isValidTimeRange({ value1: "12:00:00", value2: "12:00:00", options: { allowEqual: true } }) // true
19
16
  */
20
17
  export declare function isValidTimeRange(props: {
18
+ /**
19
+ * The start of the range, an ISO PlainTime string.
20
+ */
21
21
  value1: string;
22
+ /**
23
+ * The end of the range, an ISO PlainTime string.
24
+ */
22
25
  value2: string;
26
+ /**
27
+ * The settings for the comparison. It must be an object or omitted; any other value, `null`
28
+ * included, returns `false`.
29
+ *
30
+ * @defaultValue None. Equal values are not a valid range.
31
+ */
23
32
  options?: {
33
+ /**
34
+ * Whether `value1` equal to `value2` is a valid range. `false` requires `value1` to be
35
+ * before `value2`.
36
+ *
37
+ * @defaultValue `false`
38
+ */
24
39
  allowEqual?: boolean;
25
40
  };
26
41
  }): boolean;
@@ -4,17 +4,14 @@ import { isValidTime } from "./isValidTime.js";
4
4
  import { isObject, isOptionsArgument } from "../../internal/isObject.js";
5
5
  /**
6
6
  * Return true if `value1` and `value2` form a valid time range — both parseable as
7
- * ISO PlainTime strings and `value1 <= value2`.
7
+ * ISO PlainTime strings and `value1` before `value2`.
8
8
  *
9
9
  * - Both inputs must be ISO 8601 time strings (e.g. `"14:30:00"`), as `isValidTime` accepts,
10
10
  * annotations included.
11
11
  * - Ordered by `Temporal.PlainTime.compare`, to the nanosecond.
12
- * - Equal `value1 === value2` is valid when `options.allowEqual` is true.
13
12
  * - Invalid input, malformed strings, or leap-second strings return `false`.
14
13
  *
15
- * @param value1 first ISO PlainTime string
16
- * @param value2 second ISO PlainTime string
17
- * @param options optional allowEqual flag
14
+ * @param props The two values to compare and how equal values are treated
18
15
  * @returns boolean indicating whether the time range is valid
19
16
  *
20
17
  * @example isValidTimeRange({ value1: "09:00:00", value2: "17:00:00" }) // true
@@ -7,9 +7,7 @@ import type { ExcelDateSystem } from "./toExcelSerial.js";
7
7
  * that never existed. Lotus 1-2-3 treated 1900 as a leap year and Excel keeps the bug for
8
8
  * compatibility, so the whole serial day `[60, 61)` is a hole: 59 is 1900-02-28 and 61 is
9
9
  * 1900-03-01. Mapping 60 to either neighbour would put every earlier date one day out.
10
- * - `{ system: "1904" }` selects the legacy Mac system, whose serial 0 is 1904-01-01 and
11
- * which has no phantom day — serial 60 there is a real 1904-03-01. A 1904 serial resolves
12
- * to the same instant as the 1900 serial exactly 1462 higher.
10
+ * - In the 1904 system serial 60 is a real 1904-03-01.
13
11
  * - Accepted range is Excel's own: serial 1 (1900-01-01) to just under 2958466 (the end of
14
12
  * 9999-12-31) in the 1900 system, serial 0 to just under 2957004 in the 1904 system.
15
13
  * Serial 0 in the 1900 system is Excel's "January 0, 1900" placeholder, not a date.
@@ -19,7 +17,7 @@ import type { ExcelDateSystem } from "./toExcelSerial.js";
19
17
  * - Returns "" on invalid input.
20
18
  *
21
19
  * @param value Excel day serial (number, may carry a fractional time of day)
22
- * @param options optional: system ("1900" (default) | "1904")
20
+ * @param options Which Excel date system the serial is in
23
21
  * @returns ISO 8601 instant string (UTC), or "" on invalid input
24
22
  *
25
23
  * @example fromExcelSerial(1) // "1900-01-01T00:00:00Z" — Excel's first serial
@@ -34,5 +32,13 @@ import type { ExcelDateSystem } from "./toExcelSerial.js";
34
32
  * @example fromExcelSerial(-1) // ""
35
33
  */
36
34
  export declare function fromExcelSerial(value: number, options?: {
35
+ /**
36
+ * Which Excel date system the serial is counted in. `"1900"` counts serial 1 as 1900-01-01
37
+ * and has the phantom serial 60; `"1904"` is the legacy Mac system, whose serial 0 is
38
+ * 1904-01-01 and which has no phantom day. The same instant is exactly 1462 lower in the 1904
39
+ * system.
40
+ *
41
+ * @defaultValue `"1900"`
42
+ */
37
43
  system?: ExcelDateSystem;
38
44
  }): string;
@@ -1,6 +1,7 @@
1
1
  import { EXCEL_1900_EPOCH_NANOSECONDS, EXCEL_1900_PRE_PHANTOM_EPOCH_NANOSECONDS, EXCEL_1904_EPOCH_NANOSECONDS, EXCEL_PHANTOM_SERIAL, MAX_EXCEL_1900_SERIAL_EXCLUSIVE, MAX_EXCEL_1904_SERIAL_EXCLUSIVE, MILLISECONDS_PER_DAY, MIN_EXCEL_1900_SERIAL, MIN_EXCEL_1904_SERIAL, NANOSECONDS_PER_MILLISECOND, } from "../../internal/index.js";
2
2
  import { fromNanoseconds } from "./fromNanoseconds.js";
3
3
  import { isOptionsArgument } from "../../internal/isObject.js";
4
+ import { optionOrDefault } from "../../internal/optionOrDefault.js";
4
5
  /**
5
6
  * Convert an Excel day serial back to an ISO 8601 instant string.
6
7
  *
@@ -9,9 +10,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
9
10
  * that never existed. Lotus 1-2-3 treated 1900 as a leap year and Excel keeps the bug for
10
11
  * compatibility, so the whole serial day `[60, 61)` is a hole: 59 is 1900-02-28 and 61 is
11
12
  * 1900-03-01. Mapping 60 to either neighbour would put every earlier date one day out.
12
- * - `{ system: "1904" }` selects the legacy Mac system, whose serial 0 is 1904-01-01 and
13
- * which has no phantom day — serial 60 there is a real 1904-03-01. A 1904 serial resolves
14
- * to the same instant as the 1900 serial exactly 1462 higher.
13
+ * - In the 1904 system serial 60 is a real 1904-03-01.
15
14
  * - Accepted range is Excel's own: serial 1 (1900-01-01) to just under 2958466 (the end of
16
15
  * 9999-12-31) in the 1900 system, serial 0 to just under 2957004 in the 1904 system.
17
16
  * Serial 0 in the 1900 system is Excel's "January 0, 1900" placeholder, not a date.
@@ -21,7 +20,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
21
20
  * - Returns "" on invalid input.
22
21
  *
23
22
  * @param value Excel day serial (number, may carry a fractional time of day)
24
- * @param options optional: system ("1900" (default) | "1904")
23
+ * @param options Which Excel date system the serial is in
25
24
  * @returns ISO 8601 instant string (UTC), or "" on invalid input
26
25
  *
27
26
  * @example fromExcelSerial(1) // "1900-01-01T00:00:00Z" — Excel's first serial
@@ -40,7 +39,7 @@ export function fromExcelSerial(value, options) {
40
39
  if (!isOptionsArgument(options)) {
41
40
  return "";
42
41
  }
43
- const system = options?.system === undefined ? "1900" : options.system;
42
+ const system = optionOrDefault(options?.system, "1900");
44
43
  if (system !== "1900" && system !== "1904") {
45
44
  return "";
46
45
  }
@@ -5,17 +5,23 @@
5
5
  * (`"...[America/New_York]"`) when one is.
6
6
  * - No disambiguation policy applies: an instant maps to exactly one wall time in a zone,
7
7
  * so DST gaps and overlaps cannot arise on this direction of the conversion.
8
- * - A time zone, when given, must be a valid IANA identifier. `undefined` is the same as omitting
9
- * it (UTC), as TC39 treats an undefined argument as absent.
8
+ * - A time zone, when given, must be a time zone identifier: an IANA name or a UTC offset to the
9
+ * minute. `undefined` is the same as omitting it (UTC), as TC39 treats an undefined argument as
10
+ * absent.
10
11
  * - Rejects values outside the range `Temporal.Instant` can represent
11
12
  * (±8_640_000_000_000_000_000_000n, i.e. ±10^8 days from the epoch).
12
13
  * - **Storage round-trip:** most engines cannot hold nanoseconds — PostgreSQL `timestamptz`
13
14
  * stores microseconds — so writing this value and reading it back breaks equality unless
14
15
  * the caller applies `truncateNanoseconds` to the target precision first.
15
16
  * - Returns "" on invalid input.
17
+ * - An offset with seconds (`-00:44:30`) returns `""`. A written zone cannot carry seconds (RFC
18
+ * 9557 §4.1), so the result could not name it. Pass the IANA name, or call
19
+ * `fromOffsetInstant({ instant, offset })` for the local time with its full offset and no
20
+ * bracket.
16
21
  *
17
22
  * @param nanoseconds nanoseconds since the Unix epoch (bigint)
18
- * @param timeZone optional IANA timeZone identifier; omitted or `undefined` is UTC
23
+ * @param timeZone optional IANA name or a UTC offset to the minute (what `isValidTimeZone`
24
+ * accepts); omitted or `undefined` is UTC
19
25
  * @returns ISO 8601 instant string (UTC), zoned ISO 8601 string when a timeZone is given, or "" on invalid input
20
26
  *
21
27
  * @example fromNanoseconds(0n) // "1970-01-01T00:00:00Z"
@@ -8,17 +8,23 @@ import { isValidTimeZone } from "../../zoned/validate/index.js";
8
8
  * (`"...[America/New_York]"`) when one is.
9
9
  * - No disambiguation policy applies: an instant maps to exactly one wall time in a zone,
10
10
  * so DST gaps and overlaps cannot arise on this direction of the conversion.
11
- * - A time zone, when given, must be a valid IANA identifier. `undefined` is the same as omitting
12
- * it (UTC), as TC39 treats an undefined argument as absent.
11
+ * - A time zone, when given, must be a time zone identifier: an IANA name or a UTC offset to the
12
+ * minute. `undefined` is the same as omitting it (UTC), as TC39 treats an undefined argument as
13
+ * absent.
13
14
  * - Rejects values outside the range `Temporal.Instant` can represent
14
15
  * (±8_640_000_000_000_000_000_000n, i.e. ±10^8 days from the epoch).
15
16
  * - **Storage round-trip:** most engines cannot hold nanoseconds — PostgreSQL `timestamptz`
16
17
  * stores microseconds — so writing this value and reading it back breaks equality unless
17
18
  * the caller applies `truncateNanoseconds` to the target precision first.
18
19
  * - Returns "" on invalid input.
20
+ * - An offset with seconds (`-00:44:30`) returns `""`. A written zone cannot carry seconds (RFC
21
+ * 9557 §4.1), so the result could not name it. Pass the IANA name, or call
22
+ * `fromOffsetInstant({ instant, offset })` for the local time with its full offset and no
23
+ * bracket.
19
24
  *
20
25
  * @param nanoseconds nanoseconds since the Unix epoch (bigint)
21
- * @param timeZone optional IANA timeZone identifier; omitted or `undefined` is UTC
26
+ * @param timeZone optional IANA name or a UTC offset to the minute (what `isValidTimeZone`
27
+ * accepts); omitted or `undefined` is UTC
22
28
  * @returns ISO 8601 instant string (UTC), zoned ISO 8601 string when a timeZone is given, or "" on invalid input
23
29
  *
24
30
  * @example fromNanoseconds(0n) // "1970-01-01T00:00:00Z"
@@ -20,8 +20,6 @@ export type ExcelDateSystem = "1900" | "1904";
20
20
  * compatibility. No instant maps to serial 60: 1900-02-28 is 59 and 1900-03-01 is 61.
21
21
  * Silently "fixing" this would put GMT one day out from Excel for every date before March
22
22
  * 1900.
23
- * - `{ system: "1904" }` selects the legacy Mac system, whose serial 0 is 1904-01-01. The
24
- * same instant is exactly 1462 lower there than in the 1900 system.
25
23
  * - **Instants outside Excel's own serial range are invalid input**, not an out-of-range
26
24
  * number: the 1900 system runs from serial 1 (1900-01-01) to 2958465 (9999-12-31), the
27
25
  * 1904 system from serial 0 (1904-01-01) to 2957003. Serial 0 in the 1900 system is
@@ -38,7 +36,7 @@ export type ExcelDateSystem = "1900" | "1904";
38
36
  * that Excel rejects on the way in.
39
37
  *
40
38
  * @param isoString ISO 8601 instant string (e.g. "2024-03-10T12:00:00Z")
41
- * @param options optional: system ("1900" (default) | "1904")
39
+ * @param options Which Excel date system the serial is in
42
40
  * @returns Excel day serial as a number, or null on invalid input
43
41
  *
44
42
  * @example toExcelSerial("1900-01-01T00:00:00Z") // 1 — Excel's first serial
@@ -52,5 +50,13 @@ export type ExcelDateSystem = "1900" | "1904";
52
50
  * @example toExcelSerial("invalid") // null
53
51
  */
54
52
  export declare function toExcelSerial(isoString: string, options?: {
53
+ /**
54
+ * Which Excel date system the serial is counted in. `"1900"` counts serial 1 as 1900-01-01
55
+ * and has the phantom serial 60; `"1904"` is the legacy Mac system, whose serial 0 is
56
+ * 1904-01-01 and which has no phantom day. The same instant is exactly 1462 lower in the 1904
57
+ * system.
58
+ *
59
+ * @defaultValue `"1900"`
60
+ */
55
61
  system?: ExcelDateSystem;
56
62
  }): number | null;