@northguild/gmt 1.17.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (992) hide show
  1. package/README.md +55 -2480
  2. package/dist/calendar/calculate/bucketRange.d.ts +12 -4
  3. package/dist/calendar/calculate/bucketRange.js +20 -63
  4. package/dist/calendar/calculate/floorToZone.d.ts +14 -4
  5. package/dist/calendar/calculate/floorToZone.js +18 -9
  6. package/dist/calendar/calculate/getFiscalPeriod.d.ts +21 -8
  7. package/dist/calendar/calculate/getFiscalPeriod.js +9 -8
  8. package/dist/calendar/calculate/getIsoWeekDate.d.ts +10 -5
  9. package/dist/calendar/calculate/getIsoWeekDate.js +1 -5
  10. package/dist/calendar/calculate/getOrdinalDate.d.ts +10 -3
  11. package/dist/calendar/calculate/getOrdinalDate.js +2 -3
  12. package/dist/calendar/calculate/getQuarter.d.ts +21 -9
  13. package/dist/calendar/calculate/getQuarter.js +8 -12
  14. package/dist/calendar/hours/addOperatingTime.d.ts +59 -0
  15. package/dist/calendar/hours/addOperatingTime.js +65 -0
  16. package/dist/calendar/hours/index.d.ts +7 -0
  17. package/dist/calendar/hours/index.js +7 -0
  18. package/dist/calendar/hours/isOpenAt.d.ts +45 -0
  19. package/dist/calendar/hours/isOpenAt.js +50 -0
  20. package/dist/calendar/hours/nextCloseAt.d.ts +55 -0
  21. package/dist/calendar/hours/nextCloseAt.js +57 -0
  22. package/dist/calendar/hours/nextOpenAt.d.ts +51 -0
  23. package/dist/calendar/hours/nextOpenAt.js +53 -0
  24. package/dist/calendar/hours/operatingIntervals.d.ts +48 -0
  25. package/dist/calendar/hours/operatingIntervals.js +57 -0
  26. package/dist/calendar/hours/operatingTimeBetween.d.ts +45 -0
  27. package/dist/calendar/hours/operatingTimeBetween.js +54 -0
  28. package/dist/calendar/hours/recurringWindows.d.ts +68 -0
  29. package/dist/calendar/hours/recurringWindows.js +88 -0
  30. package/dist/calendar/index.d.ts +1 -0
  31. package/dist/calendar/index.js +1 -0
  32. package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
  33. package/dist/duration/calculate/durationFromUnits.js +67 -0
  34. package/dist/duration/calculate/getDurationUnit.d.ts +2 -2
  35. package/dist/duration/calculate/getDurationUnit.js +2 -2
  36. package/dist/duration/calculate/index.d.ts +3 -1
  37. package/dist/duration/calculate/index.js +3 -1
  38. package/dist/duration/calculate/negateDuration.d.ts +1 -1
  39. package/dist/duration/calculate/negateDuration.js +1 -1
  40. package/dist/duration/calculate/totalDuration.d.ts +73 -0
  41. package/dist/duration/calculate/{durationAs.js → totalDuration.js} +29 -27
  42. package/dist/duration/calculate/totalUnits.d.ts +49 -0
  43. package/dist/duration/calculate/totalUnits.js +73 -0
  44. package/dist/duration/compare/compareDurations.d.ts +13 -7
  45. package/dist/duration/compare/compareDurations.js +4 -7
  46. package/dist/duration/format/formatDuration.d.ts +16 -4
  47. package/dist/duration/format/formatDuration.js +4 -5
  48. package/dist/duration/normalize/normalizeDuration.d.ts +39 -14
  49. package/dist/duration/normalize/normalizeDuration.js +6 -15
  50. package/dist/duration/parse/parseDuration.d.ts +21 -3
  51. package/dist/duration/parse/parseDuration.js +1 -3
  52. package/dist/duty/calculate/dutyDayFor.d.ts +38 -0
  53. package/dist/duty/calculate/dutyDayFor.js +71 -0
  54. package/dist/duty/calculate/dutyTotals.d.ts +24 -0
  55. package/dist/duty/calculate/dutyTotals.js +41 -0
  56. package/dist/duty/calculate/dutyViolations.d.ts +74 -0
  57. package/dist/duty/calculate/dutyViolations.js +65 -0
  58. package/dist/duty/calculate/evaluateDutyLog.d.ts +77 -0
  59. package/dist/duty/calculate/evaluateDutyLog.js +75 -0
  60. package/dist/duty/calculate/index.d.ts +7 -0
  61. package/dist/duty/calculate/index.js +7 -0
  62. package/dist/duty/calculate/longestRun.d.ts +28 -0
  63. package/dist/duty/calculate/longestRun.js +54 -0
  64. package/dist/duty/calculate/qualifyingRestPairs.d.ts +37 -0
  65. package/dist/duty/calculate/qualifyingRestPairs.js +58 -0
  66. package/dist/duty/calculate/qualifyingRests.d.ts +27 -0
  67. package/dist/duty/calculate/qualifyingRests.js +49 -0
  68. package/dist/duty/index.d.ts +3 -0
  69. package/dist/duty/index.js +4 -0
  70. package/dist/duty/validate/index.d.ts +1 -0
  71. package/dist/duty/validate/index.js +1 -0
  72. package/dist/duty/validate/isValidDutyLog.d.ts +24 -0
  73. package/dist/duty/validate/isValidDutyLog.js +34 -0
  74. package/dist/index.d.ts +1 -0
  75. package/dist/index.js +1 -0
  76. package/dist/instant/convert/classifyLocal.d.ts +5 -1
  77. package/dist/instant/convert/classifyLocal.js +16 -6
  78. package/dist/instant/convert/fromOffsetInstant.d.ts +7 -1
  79. package/dist/instant/convert/fromOffsetInstant.js +9 -2
  80. package/dist/instant/convert/resolveLocal.d.ts +18 -8
  81. package/dist/instant/convert/resolveLocal.js +21 -17
  82. package/dist/instant/convert/toOffsetInstant.d.ts +33 -16
  83. package/dist/instant/convert/toOffsetInstant.js +28 -13
  84. package/dist/instant/index.d.ts +1 -0
  85. package/dist/instant/index.js +1 -0
  86. package/dist/instant/validate/index.d.ts +1 -0
  87. package/dist/instant/validate/index.js +1 -0
  88. package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
  89. package/dist/instant/validate/isValidUtcOffset.js +35 -0
  90. package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
  91. package/dist/intermodal/calculate/billingTimeline.js +2 -2
  92. package/dist/intermodal/calculate/chargeableDays.d.ts +19 -11
  93. package/dist/intermodal/calculate/chargeableDays.js +13 -10
  94. package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
  95. package/dist/intermodal/calculate/demurrageClock.js +7 -7
  96. package/dist/intermodal/calculate/freeTimeExpiry.d.ts +12 -4
  97. package/dist/intermodal/calculate/freeTimeExpiry.js +19 -8
  98. package/dist/intermodal/calculate/index.d.ts +1 -0
  99. package/dist/intermodal/calculate/index.js +1 -0
  100. package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
  101. package/dist/intermodal/calculate/multimodalETA.js +145 -0
  102. package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
  103. package/dist/intermodal/format/bolTimestamp.js +78 -0
  104. package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
  105. package/dist/intermodal/format/formatEdifactDate.js +42 -0
  106. package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
  107. package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
  108. package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
  109. package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
  110. package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
  111. package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
  112. package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
  113. package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
  114. package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
  115. package/dist/intermodal/format/formatEdifactTime.js +43 -0
  116. package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
  117. package/dist/intermodal/format/formatEpcisEvent.js +79 -0
  118. package/dist/intermodal/format/formatX12Date.d.ts +35 -0
  119. package/dist/intermodal/format/formatX12Date.js +43 -0
  120. package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
  121. package/dist/intermodal/format/formatX12DateRange.js +45 -0
  122. package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
  123. package/dist/intermodal/format/formatX12DateTime.js +47 -0
  124. package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
  125. package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
  126. package/dist/intermodal/format/formatX12Time.d.ts +42 -0
  127. package/dist/intermodal/format/formatX12Time.js +50 -0
  128. package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
  129. package/dist/intermodal/format/formatX12TimeElement.js +54 -0
  130. package/dist/intermodal/format/index.d.ts +14 -0
  131. package/dist/intermodal/format/index.js +14 -0
  132. package/dist/intermodal/index.d.ts +3 -0
  133. package/dist/intermodal/index.js +3 -0
  134. package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
  135. package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
  136. package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
  137. package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
  138. package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
  139. package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
  140. package/dist/intermodal/parse/index.d.ts +18 -0
  141. package/dist/intermodal/parse/index.js +18 -0
  142. package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
  143. package/dist/intermodal/parse/parseEdifactDate.js +45 -0
  144. package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
  145. package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
  146. package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
  147. package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
  148. package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
  149. package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
  150. package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
  151. package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
  152. package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
  153. package/dist/intermodal/parse/parseEdifactTime.js +45 -0
  154. package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
  155. package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
  156. package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
  157. package/dist/intermodal/parse/parseX12Date.js +47 -0
  158. package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
  159. package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
  160. package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
  161. package/dist/intermodal/parse/parseX12DateRange.js +52 -0
  162. package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
  163. package/dist/intermodal/parse/parseX12DateTime.js +53 -0
  164. package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
  165. package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
  166. package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
  167. package/dist/intermodal/parse/parseX12Time.js +77 -0
  168. package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
  169. package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
  170. package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
  171. package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
  172. package/dist/intermodal/validate/index.d.ts +18 -0
  173. package/dist/intermodal/validate/index.js +18 -0
  174. package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
  175. package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
  176. package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
  177. package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
  178. package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
  179. package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
  180. package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
  181. package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
  182. package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
  183. package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
  184. package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
  185. package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
  186. package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
  187. package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
  188. package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
  189. package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
  190. package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
  191. package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
  192. package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
  193. package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
  194. package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
  195. package/dist/intermodal/validate/isValidX12Date.js +30 -0
  196. package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
  197. package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
  198. package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
  199. package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
  200. package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
  201. package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
  202. package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
  203. package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
  204. package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
  205. package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
  206. package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
  207. package/dist/intermodal/validate/isValidX12Time.js +40 -0
  208. package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
  209. package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
  210. package/dist/internal/businessCalendar.d.ts +5 -0
  211. package/dist/internal/businessCalendar.js +9 -10
  212. package/dist/internal/cycleFieldValue.d.ts +6 -4
  213. package/dist/internal/cycleFieldValue.js +6 -4
  214. package/dist/internal/daylightTime.d.ts +33 -0
  215. package/dist/internal/daylightTime.js +164 -0
  216. package/dist/internal/durationUntilString.js +4 -3
  217. package/dist/internal/dutyEngine.d.ts +125 -0
  218. package/dist/internal/dutyEngine.js +1746 -0
  219. package/dist/internal/dutyLog.d.ts +27 -0
  220. package/dist/internal/dutyLog.js +47 -0
  221. package/dist/internal/dutyPeriods.d.ts +135 -0
  222. package/dist/internal/dutyPeriods.js +369 -0
  223. package/dist/internal/dutyRules.d.ts +197 -0
  224. package/dist/internal/dutyRules.js +484 -0
  225. package/dist/internal/ediDateTimeFields.d.ts +97 -0
  226. package/dist/internal/ediDateTimeFields.js +288 -0
  227. package/dist/internal/ediDateTimeWriter.d.ts +92 -0
  228. package/dist/internal/ediDateTimeWriter.js +298 -0
  229. package/dist/internal/ediGrammar.d.ts +158 -0
  230. package/dist/internal/ediGrammar.js +384 -0
  231. package/dist/internal/englishCalendarNames.d.ts +3 -1
  232. package/dist/internal/englishCalendarNames.js +4 -3
  233. package/dist/internal/epochNanoseconds.d.ts +2 -0
  234. package/dist/internal/epochNanoseconds.js +2 -0
  235. package/dist/internal/exactDuration.d.ts +37 -0
  236. package/dist/internal/exactDuration.js +64 -0
  237. package/dist/internal/exactMoment.d.ts +72 -0
  238. package/dist/internal/exactMoment.js +114 -0
  239. package/dist/internal/fiscalCalendar.d.ts +4 -3
  240. package/dist/internal/fiscalCalendar.js +4 -3
  241. package/dist/internal/formatCalendarDays.d.ts +2 -2
  242. package/dist/internal/formatRelativeDuration.d.ts +21 -1
  243. package/dist/internal/formatRelativeDuration.js +47 -7
  244. package/dist/internal/freeTimeLedger.d.ts +5 -0
  245. package/dist/internal/freeTimeLedger.js +11 -2
  246. package/dist/internal/index.d.ts +12 -4
  247. package/dist/internal/index.js +16 -4
  248. package/dist/internal/instantFormatOptions.js +2 -1
  249. package/dist/internal/instantNanoseconds.d.ts +75 -9
  250. package/dist/internal/instantNanoseconds.js +192 -11
  251. package/dist/internal/intervalNanoseconds.js +2 -1
  252. package/dist/internal/isObject.d.ts +13 -6
  253. package/dist/internal/isObject.js +14 -7
  254. package/dist/internal/isoYearString.d.ts +21 -0
  255. package/dist/internal/isoYearString.js +27 -0
  256. package/dist/internal/joinDateTimeConnector.d.ts +1 -1
  257. package/dist/internal/maxPieces.js +2 -1
  258. package/dist/internal/monthGridWeekRow.d.ts +2 -1
  259. package/dist/internal/monthGridWeekRow.js +2 -1
  260. package/dist/internal/normalizeTimeZone.d.ts +5 -2
  261. package/dist/internal/normalizeTimeZone.js +5 -2
  262. package/dist/internal/operatingSchedule.d.ts +138 -0
  263. package/dist/internal/operatingSchedule.js +756 -0
  264. package/dist/internal/optionOrDefault.d.ts +18 -0
  265. package/dist/internal/optionOrDefault.js +20 -0
  266. package/dist/internal/patternToken.d.ts +12 -5
  267. package/dist/internal/patternToken.js +59 -25
  268. package/dist/internal/plainDateUntil.js +10 -6
  269. package/dist/internal/punctuality.d.ts +38 -0
  270. package/dist/internal/punctuality.js +59 -0
  271. package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
  272. package/dist/internal/readDateTimeFormatOptions.js +93 -0
  273. package/dist/internal/readDurationUnits.d.ts +34 -0
  274. package/dist/internal/readDurationUnits.js +78 -0
  275. package/dist/internal/readSetFields.d.ts +50 -0
  276. package/dist/internal/readSetFields.js +179 -0
  277. package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
  278. package/dist/internal/resolveDurationRelativeTo.js +11 -1
  279. package/dist/internal/resolveRelativeRounding.d.ts +17 -6
  280. package/dist/internal/resolveRelativeRounding.js +27 -7
  281. package/dist/internal/resolveRelativeUnit.d.ts +30 -0
  282. package/dist/internal/resolveRelativeUnit.js +40 -0
  283. package/dist/internal/resolveUnixIntervalPair.d.ts +8 -2
  284. package/dist/internal/resolveUnixIntervalPair.js +11 -7
  285. package/dist/internal/splitStep.d.ts +24 -1
  286. package/dist/internal/splitStep.js +34 -2
  287. package/dist/internal/startOrEndOfUnix.d.ts +2 -1
  288. package/dist/internal/startOrEndOfUnix.js +9 -6
  289. package/dist/internal/startOrEndOfZoned.js +2 -3
  290. package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
  291. package/dist/internal/temporalCompat/capabilities.js +35 -3
  292. package/dist/internal/temporalCompat/fieldSearch.js +1 -1
  293. package/dist/internal/temporalCompat/index.d.ts +1 -1
  294. package/dist/internal/temporalCompat/index.js +1 -1
  295. package/dist/internal/temporalCompat/repros.d.ts +1 -1
  296. package/dist/internal/temporalCompat/repros.js +157 -0
  297. package/dist/internal/timestampEvents.d.ts +32 -0
  298. package/dist/internal/timestampEvents.js +76 -0
  299. package/dist/internal/twoDigitYear.d.ts +19 -0
  300. package/dist/internal/twoDigitYear.js +22 -0
  301. package/dist/internal/unixEpochValue.js +3 -2
  302. package/dist/internal/unixWallClock.d.ts +24 -0
  303. package/dist/internal/unixWallClock.js +35 -0
  304. package/dist/internal/utcWallClock.d.ts +20 -0
  305. package/dist/internal/utcWallClock.js +32 -0
  306. package/dist/internal/yearWindowStart.d.ts +28 -0
  307. package/dist/internal/yearWindowStart.js +52 -0
  308. package/dist/internal/zoneBucketCap.d.ts +18 -0
  309. package/dist/internal/zoneBucketCap.js +64 -0
  310. package/dist/internal/zoneFrame.d.ts +180 -0
  311. package/dist/internal/zoneFrame.js +221 -0
  312. package/dist/internal/zonedBucket.js +8 -6
  313. package/dist/internal/zonedLocalDates.js +1 -1
  314. package/dist/internal/zonedNowUnitValue.d.ts +7 -4
  315. package/dist/internal/zonedNowUnitValue.js +8 -4
  316. package/dist/internal/zonedTransitionSearch.d.ts +27 -0
  317. package/dist/internal/zonedTransitionSearch.js +218 -0
  318. package/dist/internal/zonedWallClock.d.ts +21 -7
  319. package/dist/internal/zonedWallClock.js +87 -18
  320. package/dist/internal/zonedWallClockDifference.js +4 -4
  321. package/dist/internal/zonedWallClockOperations.d.ts +31 -15
  322. package/dist/internal/zonedWallClockOperations.js +93 -43
  323. package/dist/interval/validate/isValidInterval.d.ts +6 -3
  324. package/dist/interval/validate/isValidInterval.js +6 -3
  325. package/dist/plain/calculate/addDate.d.ts +11 -8
  326. package/dist/plain/calculate/addDate.js +9 -15
  327. package/dist/plain/calculate/addDateTime.d.ts +7 -4
  328. package/dist/plain/calculate/addDateTime.js +5 -11
  329. package/dist/plain/calculate/addTime.js +4 -7
  330. package/dist/plain/calculate/cycleDate.d.ts +16 -7
  331. package/dist/plain/calculate/cycleDate.js +3 -7
  332. package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
  333. package/dist/plain/calculate/cycleDateTime.js +1 -4
  334. package/dist/plain/calculate/cycleTime.d.ts +10 -5
  335. package/dist/plain/calculate/cycleTime.js +3 -5
  336. package/dist/plain/calculate/diffDate.d.ts +1 -1
  337. package/dist/plain/calculate/diffDate.js +1 -1
  338. package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
  339. package/dist/plain/calculate/diffDateAsDuration.js +1 -1
  340. package/dist/plain/calculate/diffDateTime.d.ts +1 -1
  341. package/dist/plain/calculate/diffDateTime.js +1 -1
  342. package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
  343. package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
  344. package/dist/plain/calculate/diffTime.d.ts +1 -1
  345. package/dist/plain/calculate/diffTime.js +1 -1
  346. package/dist/plain/calculate/endOfDate.d.ts +8 -3
  347. package/dist/plain/calculate/endOfDate.js +1 -3
  348. package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
  349. package/dist/plain/calculate/endOfDateTime.js +1 -5
  350. package/dist/plain/calculate/endOfTime.d.ts +9 -3
  351. package/dist/plain/calculate/endOfTime.js +1 -2
  352. package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
  353. package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
  354. package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
  355. package/dist/plain/calculate/getWeekOfMonth.js +7 -4
  356. package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
  357. package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
  358. package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
  359. package/dist/plain/calculate/getWeeksInMonth.js +5 -2
  360. package/dist/plain/calculate/nextWeekday.d.ts +7 -3
  361. package/dist/plain/calculate/nextWeekday.js +1 -3
  362. package/dist/plain/calculate/previousWeekday.d.ts +7 -3
  363. package/dist/plain/calculate/previousWeekday.js +1 -3
  364. package/dist/plain/calculate/roundDate.d.ts +20 -7
  365. package/dist/plain/calculate/roundDate.js +3 -10
  366. package/dist/plain/calculate/roundDateTime.d.ts +22 -8
  367. package/dist/plain/calculate/roundDateTime.js +3 -11
  368. package/dist/plain/calculate/roundTime.d.ts +20 -4
  369. package/dist/plain/calculate/roundTime.js +3 -7
  370. package/dist/plain/calculate/setDate.d.ts +27 -8
  371. package/dist/plain/calculate/setDate.js +28 -12
  372. package/dist/plain/calculate/setDateTime.d.ts +23 -8
  373. package/dist/plain/calculate/setDateTime.js +23 -12
  374. package/dist/plain/calculate/setTime.d.ts +23 -7
  375. package/dist/plain/calculate/setTime.js +25 -12
  376. package/dist/plain/calculate/startOfDate.d.ts +8 -2
  377. package/dist/plain/calculate/startOfDate.js +1 -2
  378. package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
  379. package/dist/plain/calculate/startOfDateTime.js +1 -2
  380. package/dist/plain/calculate/startOfTime.d.ts +9 -2
  381. package/dist/plain/calculate/startOfTime.js +1 -1
  382. package/dist/plain/calculate/subtractDate.d.ts +7 -4
  383. package/dist/plain/calculate/subtractDate.js +5 -11
  384. package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
  385. package/dist/plain/calculate/subtractDateTime.js +5 -11
  386. package/dist/plain/calculate/subtractTime.js +4 -7
  387. package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
  388. package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
  389. package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
  390. package/dist/plain/compare/areDatesEqualBy.js +8 -6
  391. package/dist/plain/compare/isBetweenDate.d.ts +13 -2
  392. package/dist/plain/compare/isBetweenDate.js +4 -4
  393. package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
  394. package/dist/plain/compare/isBetweenDateTime.js +4 -4
  395. package/dist/plain/compare/isBetweenTime.d.ts +13 -2
  396. package/dist/plain/compare/isBetweenTime.js +4 -4
  397. package/dist/plain/compare/isRelativeDay.d.ts +1 -1
  398. package/dist/plain/compare/isRelativeDay.js +1 -1
  399. package/dist/plain/compare/isThisUnit.d.ts +1 -1
  400. package/dist/plain/compare/isThisUnit.js +1 -1
  401. package/dist/plain/format/formatCalendar.d.ts +21 -14
  402. package/dist/plain/format/formatCalendar.js +23 -17
  403. package/dist/plain/format/formatDate.js +5 -3
  404. package/dist/plain/format/formatDateRange.js +4 -2
  405. package/dist/plain/format/formatDateTime.js +4 -2
  406. package/dist/plain/format/formatDateTimeRange.js +4 -2
  407. package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
  408. package/dist/plain/format/formatDateTimeToParts.js +10 -6
  409. package/dist/plain/format/formatDateToParts.d.ts +13 -2
  410. package/dist/plain/format/formatDateToParts.js +8 -4
  411. package/dist/plain/format/formatRelativeDate.d.ts +16 -3
  412. package/dist/plain/format/formatRelativeDate.js +28 -16
  413. package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
  414. package/dist/plain/format/formatRelativeDateTime.js +10 -6
  415. package/dist/plain/format/formatRelativeTime.d.ts +16 -3
  416. package/dist/plain/format/formatRelativeTime.js +23 -14
  417. package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
  418. package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +7 -7
  419. package/dist/plain/format/formatTime.js +4 -2
  420. package/dist/plain/format/index.d.ts +1 -1
  421. package/dist/plain/format/index.js +1 -1
  422. package/dist/plain/get/getNowUnit.d.ts +2 -0
  423. package/dist/plain/get/getNowUnit.js +2 -0
  424. package/dist/plain/get/getYear.d.ts +2 -0
  425. package/dist/plain/get/getYear.js +4 -3
  426. package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
  427. package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
  428. package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
  429. package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
  430. package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
  431. package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
  432. package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
  433. package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
  434. package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
  435. package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
  436. package/dist/plain/interval/intervalFromDurationDate.js +1 -3
  437. package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
  438. package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
  439. package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
  440. package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
  441. package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
  442. package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
  443. package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
  444. package/dist/plain/interval/intervalSplitAtDate.js +2 -0
  445. package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
  446. package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
  447. package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
  448. package/dist/plain/interval/intervalSplitAtTime.js +2 -0
  449. package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
  450. package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
  451. package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
  452. package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
  453. package/dist/plain/interval/intervalXorAllDate.js +2 -2
  454. package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
  455. package/dist/plain/interval/intervalXorAllDateTime.js +2 -2
  456. package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
  457. package/dist/plain/interval/intervalXorAllTime.js +2 -2
  458. package/dist/plain/interval/intervalXorDate.d.ts +9 -0
  459. package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
  460. package/dist/plain/interval/intervalXorTime.d.ts +9 -0
  461. package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
  462. package/dist/plain/interval/mergeIntervalsDate.js +2 -2
  463. package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
  464. package/dist/plain/interval/mergeIntervalsDateTime.js +2 -2
  465. package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
  466. package/dist/plain/interval/mergeIntervalsTime.js +2 -2
  467. package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
  468. package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
  469. package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
  470. package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
  471. package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
  472. package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
  473. package/dist/plain/map/mapDatesInRange.d.ts +8 -4
  474. package/dist/plain/map/mapDatesInRange.js +1 -4
  475. package/dist/plain/parse/index.d.ts +1 -1
  476. package/dist/plain/parse/index.js +1 -1
  477. package/dist/plain/parse/parseDateTimeWithPattern.d.ts +25 -9
  478. package/dist/plain/parse/parseDateTimeWithPattern.js +29 -11
  479. package/dist/plain/parse/parseDateWithPattern.d.ts +26 -9
  480. package/dist/plain/parse/parseDateWithPattern.js +30 -11
  481. package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
  482. package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +8 -8
  483. package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
  484. package/dist/plain/parse/parseTimeWithPattern.js +11 -7
  485. package/dist/plain/parse/parseUnitFromDate.d.ts +14 -3
  486. package/dist/plain/parse/parseUnitFromDate.js +8 -4
  487. package/dist/plain/parse/parseUnitFromDateTime.d.ts +14 -3
  488. package/dist/plain/parse/parseUnitFromDateTime.js +8 -4
  489. package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
  490. package/dist/plain/parse/parseWeekFromDate.js +2 -6
  491. package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
  492. package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
  493. package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
  494. package/dist/plain/parse/parseYearFromDate.js +7 -3
  495. package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
  496. package/dist/plain/parse/parseYearFromDateTime.js +6 -3
  497. package/dist/plain/validate/index.d.ts +1 -0
  498. package/dist/plain/validate/index.js +1 -0
  499. package/dist/plain/validate/isValidDateRange.d.ts +19 -4
  500. package/dist/plain/validate/isValidDateRange.js +1 -4
  501. package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
  502. package/dist/plain/validate/isValidDateTimeRange.js +2 -5
  503. package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
  504. package/dist/plain/validate/isValidSqlDateTime.js +36 -0
  505. package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
  506. package/dist/plain/validate/isValidTimeRange.js +2 -5
  507. package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
  508. package/dist/precision/convert/fromExcelSerial.js +4 -5
  509. package/dist/precision/convert/fromNanoseconds.d.ts +9 -3
  510. package/dist/precision/convert/fromNanoseconds.js +9 -3
  511. package/dist/precision/convert/toExcelSerial.d.ts +9 -3
  512. package/dist/precision/convert/toExcelSerial.js +3 -4
  513. package/dist/precision/convert/toNanoseconds.d.ts +11 -6
  514. package/dist/precision/convert/toNanoseconds.js +11 -6
  515. package/dist/precision/validate/isValidInstant.d.ts +12 -3
  516. package/dist/precision/validate/isValidInstant.js +12 -3
  517. package/dist/regex/epcis.d.ts +60 -0
  518. package/dist/regex/epcis.js +60 -0
  519. package/dist/regex/http-date.d.ts +6 -4
  520. package/dist/regex/http-date.js +6 -4
  521. package/dist/regex/index.d.ts +1 -0
  522. package/dist/regex/index.js +1 -0
  523. package/dist/regex/rfc-2822.d.ts +2 -0
  524. package/dist/regex/rfc-2822.js +2 -0
  525. package/dist/regex/rfc-3339.d.ts +3 -1
  526. package/dist/regex/rfc-3339.js +3 -1
  527. package/dist/regex/sql-date-time.d.ts +2 -1
  528. package/dist/regex/sql-date-time.js +2 -1
  529. package/dist/regex/time-zone-like.d.ts +3 -2
  530. package/dist/regex/time-zone-like.js +3 -2
  531. package/dist/regex/utc-offset.d.ts +2 -1
  532. package/dist/regex/utc-offset.js +2 -1
  533. package/dist/span/calculate/spanMs.d.ts +10 -4
  534. package/dist/span/calculate/spanMs.js +10 -4
  535. package/dist/span/calculate/spanNs.d.ts +10 -4
  536. package/dist/span/calculate/spanNs.js +10 -4
  537. package/dist/span/validate/isValidSpan.d.ts +8 -3
  538. package/dist/span/validate/isValidSpan.js +8 -3
  539. package/dist/transport/calculate/bestAvailable.d.ts +47 -0
  540. package/dist/transport/calculate/bestAvailable.js +76 -0
  541. package/dist/transport/calculate/crossingTime.d.ts +63 -0
  542. package/dist/transport/calculate/crossingTime.js +81 -0
  543. package/dist/transport/calculate/cutoffAt.d.ts +95 -0
  544. package/dist/transport/calculate/cutoffAt.js +211 -0
  545. package/dist/transport/calculate/cutoffSchedule.d.ts +75 -0
  546. package/dist/transport/calculate/cutoffSchedule.js +73 -0
  547. package/dist/transport/calculate/dwellTime.d.ts +22 -8
  548. package/dist/transport/calculate/dwellTime.js +18 -9
  549. package/dist/transport/calculate/estimateDrift.d.ts +65 -0
  550. package/dist/transport/calculate/estimateDrift.js +75 -0
  551. package/dist/transport/calculate/index.d.ts +8 -0
  552. package/dist/transport/calculate/index.js +8 -0
  553. package/dist/transport/calculate/nextDeparture.d.ts +78 -0
  554. package/dist/transport/calculate/nextDeparture.js +131 -0
  555. package/dist/transport/calculate/punctualityRate.d.ts +42 -0
  556. package/dist/transport/calculate/punctualityRate.js +59 -0
  557. package/dist/transport/calculate/scheduleDelivery.d.ts +158 -0
  558. package/dist/transport/calculate/scheduleDelivery.js +305 -0
  559. package/dist/transport/calculate/transitTime.d.ts +21 -3
  560. package/dist/transport/calculate/transitTime.js +29 -46
  561. package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
  562. package/dist/transport/compare/classifyPunctuality.js +64 -0
  563. package/dist/transport/compare/index.d.ts +4 -0
  564. package/dist/transport/compare/index.js +4 -0
  565. package/dist/transport/compare/isPastCutoff.d.ts +33 -0
  566. package/dist/transport/compare/isPastCutoff.js +48 -0
  567. package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
  568. package/dist/transport/compare/scheduleDeviation.js +53 -0
  569. package/dist/transport/compare/timeToCutoff.d.ts +31 -0
  570. package/dist/transport/compare/timeToCutoff.js +47 -0
  571. package/dist/transport/convert/etaAtZone.d.ts +13 -1
  572. package/dist/transport/convert/etaAtZone.js +15 -5
  573. package/dist/transport/index.d.ts +1 -0
  574. package/dist/transport/index.js +1 -0
  575. package/dist/types/business-calendar.d.ts +20 -14
  576. package/dist/types/calendar-options.d.ts +15 -3
  577. package/dist/types/date-cycle-field.d.ts +5 -0
  578. package/dist/types/date-duration-unit.d.ts +4 -0
  579. package/dist/types/date-time-cycle-field.d.ts +4 -0
  580. package/dist/types/date-time-duration-units.d.ts +4 -0
  581. package/dist/types/date-time-unit.d.ts +4 -0
  582. package/dist/types/date-unit.d.ts +4 -0
  583. package/dist/types/disambiguation.d.ts +8 -0
  584. package/dist/types/duration-relative-to.d.ts +8 -0
  585. package/dist/types/duration-string-options.d.ts +28 -0
  586. package/dist/types/duty.d.ts +777 -0
  587. package/dist/types/edi.d.ts +407 -0
  588. package/dist/types/edi.js +0 -0
  589. package/dist/types/epcis.d.ts +25 -0
  590. package/dist/types/epcis.js +0 -0
  591. package/dist/types/exact-duration-unit.d.ts +8 -0
  592. package/dist/types/exact-duration-unit.js +0 -0
  593. package/dist/types/fiscal-calendar.d.ts +1 -1
  594. package/dist/types/fractional-digit.d.ts +5 -0
  595. package/dist/types/free-time-options.d.ts +22 -11
  596. package/dist/types/index.d.ts +7 -1
  597. package/dist/types/index.js +7 -1
  598. package/dist/types/interval.d.ts +8 -1
  599. package/dist/types/offset.d.ts +9 -0
  600. package/dist/types/operating-schedule.d.ts +72 -0
  601. package/dist/types/operating-schedule.js +0 -0
  602. package/dist/types/overflow.d.ts +6 -0
  603. package/dist/types/relative-rounding-method.d.ts +6 -0
  604. package/dist/types/relative-time-options.d.ts +33 -5
  605. package/dist/types/rounding-options.d.ts +27 -0
  606. package/dist/types/time-cycle-field.d.ts +4 -0
  607. package/dist/types/time-duration-unit.d.ts +4 -0
  608. package/dist/types/time-unit.d.ts +4 -0
  609. package/dist/types/transport-timestamps.d.ts +54 -0
  610. package/dist/types/transport-timestamps.js +0 -0
  611. package/dist/types/two-digit-year.d.ts +23 -0
  612. package/dist/types/two-digit-year.js +0 -0
  613. package/dist/types/zone-bucket-unit.d.ts +1 -1
  614. package/dist/unix/calculate/addUnix.d.ts +28 -5
  615. package/dist/unix/calculate/addUnix.js +15 -16
  616. package/dist/unix/calculate/diffUnix.d.ts +21 -3
  617. package/dist/unix/calculate/diffUnix.js +12 -9
  618. package/dist/unix/calculate/diffUnixAsDuration.d.ts +21 -3
  619. package/dist/unix/calculate/diffUnixAsDuration.js +11 -8
  620. package/dist/unix/calculate/endOfQuarterForUnix.d.ts +21 -3
  621. package/dist/unix/calculate/endOfQuarterForUnix.js +7 -3
  622. package/dist/unix/calculate/endOfUnix.d.ts +29 -4
  623. package/dist/unix/calculate/endOfUnix.js +8 -4
  624. package/dist/unix/calculate/isBetweenUnix.d.ts +27 -4
  625. package/dist/unix/calculate/isBetweenUnix.js +7 -9
  626. package/dist/unix/calculate/roundUnix.d.ts +39 -3
  627. package/dist/unix/calculate/roundUnix.js +16 -12
  628. package/dist/unix/calculate/setUnix.d.ts +58 -12
  629. package/dist/unix/calculate/setUnix.js +37 -25
  630. package/dist/unix/calculate/startOfQuarterForUnix.d.ts +21 -3
  631. package/dist/unix/calculate/startOfQuarterForUnix.js +7 -3
  632. package/dist/unix/calculate/startOfUnix.d.ts +29 -4
  633. package/dist/unix/calculate/startOfUnix.js +8 -4
  634. package/dist/unix/calculate/subtractUnix.d.ts +27 -5
  635. package/dist/unix/calculate/subtractUnix.js +14 -16
  636. package/dist/unix/compare/areUnixEqual.d.ts +7 -1
  637. package/dist/unix/compare/areUnixEqual.js +1 -1
  638. package/dist/unix/compare/areUnixEqualBy.d.ts +33 -7
  639. package/dist/unix/compare/areUnixEqualBy.js +20 -9
  640. package/dist/unix/compare/isAfterUnix.d.ts +7 -1
  641. package/dist/unix/compare/isAfterUnix.js +1 -1
  642. package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
  643. package/dist/unix/compare/isBeforeUnix.js +1 -1
  644. package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -4
  645. package/dist/unix/convert/convertUnixToPlainDate.js +7 -8
  646. package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +17 -4
  647. package/dist/unix/convert/convertUnixToPlainDateTime.js +7 -8
  648. package/dist/unix/convert/convertUnixToPlainTime.d.ts +17 -4
  649. package/dist/unix/convert/convertUnixToPlainTime.js +7 -8
  650. package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
  651. package/dist/unix/convert/convertUnixToUtc.js +3 -4
  652. package/dist/unix/convert/convertUnixToZoned.d.ts +14 -5
  653. package/dist/unix/convert/convertUnixToZoned.js +8 -5
  654. package/dist/unix/format/formatCalendarUnix.d.ts +31 -19
  655. package/dist/unix/format/formatCalendarUnix.js +10 -6
  656. package/dist/unix/format/formatRelativeUnix.d.ts +62 -5
  657. package/dist/unix/format/formatRelativeUnix.js +16 -10
  658. package/dist/unix/format/formatUnix.d.ts +29 -6
  659. package/dist/unix/format/formatUnix.js +12 -7
  660. package/dist/unix/get/getUnixDay.d.ts +1 -3
  661. package/dist/unix/get/getUnixDay.js +5 -12
  662. package/dist/unix/get/getUnixHour.d.ts +1 -3
  663. package/dist/unix/get/getUnixHour.js +5 -12
  664. package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
  665. package/dist/unix/get/getUnixMicrosecond.js +4 -11
  666. package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
  667. package/dist/unix/get/getUnixMillisecond.js +5 -12
  668. package/dist/unix/get/getUnixMinute.d.ts +1 -3
  669. package/dist/unix/get/getUnixMinute.js +5 -12
  670. package/dist/unix/get/getUnixMonth.d.ts +1 -3
  671. package/dist/unix/get/getUnixMonth.js +5 -12
  672. package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
  673. package/dist/unix/get/getUnixNanosecond.js +4 -11
  674. package/dist/unix/get/getUnixNow.d.ts +8 -3
  675. package/dist/unix/get/getUnixNow.js +1 -3
  676. package/dist/unix/get/getUnixNowUnit.d.ts +2 -0
  677. package/dist/unix/get/getUnixNowUnit.js +2 -0
  678. package/dist/unix/get/getUnixSecond.d.ts +1 -3
  679. package/dist/unix/get/getUnixSecond.js +5 -12
  680. package/dist/unix/get/getUnixYear.d.ts +3 -3
  681. package/dist/unix/get/getUnixYear.js +5 -12
  682. package/dist/unix/interval/intervalCountUnix.d.ts +23 -5
  683. package/dist/unix/interval/intervalCountUnix.js +9 -5
  684. package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
  685. package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
  686. package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
  687. package/dist/unix/interval/intervalFromDurationUnix.d.ts +41 -5
  688. package/dist/unix/interval/intervalFromDurationUnix.js +18 -12
  689. package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
  690. package/dist/unix/interval/intervalLengthUnix.d.ts +24 -6
  691. package/dist/unix/interval/intervalLengthUnix.js +10 -6
  692. package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +21 -3
  693. package/dist/unix/interval/intervalOverlappingDaysUnix.js +11 -8
  694. package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
  695. package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
  696. package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
  697. package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
  698. package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
  699. package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
  700. package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +50 -11
  701. package/dist/unix/interval/splitIntervalByUnitUnix.js +33 -22
  702. package/dist/unix/parse/parseDateFromUnix.d.ts +15 -2
  703. package/dist/unix/parse/parseDateFromUnix.js +4 -5
  704. package/dist/unix/parse/parseDayFromUnix.d.ts +16 -2
  705. package/dist/unix/parse/parseDayFromUnix.js +2 -2
  706. package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +15 -1
  707. package/dist/unix/parse/parseDayOfWeekFromUnix.js +3 -3
  708. package/dist/unix/parse/parseHourFromUnix.d.ts +16 -2
  709. package/dist/unix/parse/parseHourFromUnix.js +2 -2
  710. package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +16 -2
  711. package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
  712. package/dist/unix/parse/parseMillisecondFromUnix.d.ts +16 -2
  713. package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
  714. package/dist/unix/parse/parseMinuteFromUnix.d.ts +16 -2
  715. package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
  716. package/dist/unix/parse/parseMonthFromUnix.d.ts +16 -2
  717. package/dist/unix/parse/parseMonthFromUnix.js +2 -2
  718. package/dist/unix/parse/parseNanosecondFromUnix.d.ts +16 -2
  719. package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
  720. package/dist/unix/parse/parseSecondFromUnix.d.ts +16 -2
  721. package/dist/unix/parse/parseSecondFromUnix.js +2 -2
  722. package/dist/unix/parse/parseTimeFromUnix.d.ts +16 -2
  723. package/dist/unix/parse/parseTimeFromUnix.js +5 -5
  724. package/dist/unix/parse/parseUnitFromUnix.d.ts +29 -4
  725. package/dist/unix/parse/parseUnitFromUnix.js +23 -17
  726. package/dist/unix/parse/parseWeekFromUnix.d.ts +24 -7
  727. package/dist/unix/parse/parseWeekFromUnix.js +7 -11
  728. package/dist/unix/parse/parseYearFromUnix.d.ts +20 -3
  729. package/dist/unix/parse/parseYearFromUnix.js +6 -3
  730. package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
  731. package/dist/unix/validate/isValidUnixRange.js +1 -4
  732. package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
  733. package/dist/utc/calculate/addUtc.d.ts +7 -4
  734. package/dist/utc/calculate/addUtc.js +5 -11
  735. package/dist/utc/calculate/diffUtc.d.ts +1 -1
  736. package/dist/utc/calculate/diffUtc.js +1 -1
  737. package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
  738. package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
  739. package/dist/utc/calculate/endOfUtc.d.ts +16 -3
  740. package/dist/utc/calculate/endOfUtc.js +2 -3
  741. package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
  742. package/dist/utc/calculate/isBetweenUtc.js +4 -4
  743. package/dist/utc/calculate/roundUtc.d.ts +26 -9
  744. package/dist/utc/calculate/roundUtc.js +3 -12
  745. package/dist/utc/calculate/setUtc.d.ts +23 -7
  746. package/dist/utc/calculate/setUtc.js +23 -12
  747. package/dist/utc/calculate/startOfUtc.d.ts +15 -2
  748. package/dist/utc/calculate/startOfUtc.js +1 -2
  749. package/dist/utc/calculate/subtractUtc.d.ts +7 -4
  750. package/dist/utc/calculate/subtractUtc.js +5 -11
  751. package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
  752. package/dist/utc/compare/areUtcEqualBy.js +2 -3
  753. package/dist/utc/convert/convertUtcToPlainDate.d.ts +14 -3
  754. package/dist/utc/convert/convertUtcToPlainDate.js +12 -10
  755. package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +15 -3
  756. package/dist/utc/convert/convertUtcToPlainDateTime.js +14 -16
  757. package/dist/utc/convert/convertUtcToPlainTime.d.ts +11 -3
  758. package/dist/utc/convert/convertUtcToPlainTime.js +9 -9
  759. package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
  760. package/dist/utc/convert/convertUtcToUnix.js +3 -4
  761. package/dist/utc/convert/convertUtcToZoned.d.ts +5 -1
  762. package/dist/utc/convert/convertUtcToZoned.js +5 -1
  763. package/dist/utc/format/formatCalendarUtc.d.ts +23 -8
  764. package/dist/utc/format/formatCalendarUtc.js +14 -7
  765. package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +8 -8
  766. package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +8 -8
  767. package/dist/utc/format/formatRelativeUtc.d.ts +38 -10
  768. package/dist/utc/format/formatRelativeUtc.js +22 -16
  769. package/dist/utc/format/formatUtc.d.ts +22 -15
  770. package/dist/utc/format/formatUtc.js +12 -8
  771. package/dist/utc/format/index.d.ts +1 -1
  772. package/dist/utc/format/index.js +1 -1
  773. package/dist/utc/get/getUtcDay.d.ts +1 -3
  774. package/dist/utc/get/getUtcDay.js +5 -12
  775. package/dist/utc/get/getUtcHour.d.ts +1 -3
  776. package/dist/utc/get/getUtcHour.js +5 -12
  777. package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
  778. package/dist/utc/get/getUtcMicrosecond.js +4 -11
  779. package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
  780. package/dist/utc/get/getUtcMillisecond.js +5 -12
  781. package/dist/utc/get/getUtcMinute.d.ts +1 -3
  782. package/dist/utc/get/getUtcMinute.js +5 -12
  783. package/dist/utc/get/getUtcMonth.d.ts +1 -3
  784. package/dist/utc/get/getUtcMonth.js +5 -12
  785. package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
  786. package/dist/utc/get/getUtcNanosecond.js +4 -11
  787. package/dist/utc/get/getUtcNow.d.ts +1 -3
  788. package/dist/utc/get/getUtcNow.js +2 -9
  789. package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
  790. package/dist/utc/get/getUtcNowUnit.js +2 -0
  791. package/dist/utc/get/getUtcSecond.d.ts +1 -3
  792. package/dist/utc/get/getUtcSecond.js +5 -12
  793. package/dist/utc/get/getUtcYear.d.ts +3 -3
  794. package/dist/utc/get/getUtcYear.js +5 -12
  795. package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
  796. package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
  797. package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
  798. package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
  799. package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
  800. package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
  801. package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
  802. package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
  803. package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
  804. package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
  805. package/dist/utc/interval/intervalXorAllUtc.js +2 -2
  806. package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
  807. package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
  808. package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
  809. package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
  810. package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
  811. package/dist/utc/parse/index.d.ts +1 -1
  812. package/dist/utc/parse/index.js +1 -1
  813. package/dist/utc/parse/parseDateFromUtc.d.ts +9 -3
  814. package/dist/utc/parse/parseDateFromUtc.js +3 -5
  815. package/dist/utc/parse/parseDayFromUtc.d.ts +9 -3
  816. package/dist/utc/parse/parseDayFromUtc.js +3 -5
  817. package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +9 -3
  818. package/dist/utc/parse/parseDayOfWeekFromUtc.js +5 -7
  819. package/dist/utc/parse/parseHourFromUtc.d.ts +9 -3
  820. package/dist/utc/parse/parseHourFromUtc.js +3 -5
  821. package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
  822. package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +12 -12
  823. package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -3
  824. package/dist/utc/parse/parseMicrosecondFromUtc.js +3 -5
  825. package/dist/utc/parse/parseMillisecondFromUtc.d.ts +9 -3
  826. package/dist/utc/parse/parseMillisecondFromUtc.js +3 -5
  827. package/dist/utc/parse/parseMinuteFromUtc.d.ts +9 -3
  828. package/dist/utc/parse/parseMinuteFromUtc.js +3 -5
  829. package/dist/utc/parse/parseMonthFromUtc.d.ts +9 -3
  830. package/dist/utc/parse/parseMonthFromUtc.js +3 -5
  831. package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -3
  832. package/dist/utc/parse/parseNanosecondFromUtc.js +3 -5
  833. package/dist/utc/parse/parseSecondFromUtc.d.ts +9 -3
  834. package/dist/utc/parse/parseSecondFromUtc.js +3 -5
  835. package/dist/utc/parse/parseTimeFromUtc.d.ts +11 -3
  836. package/dist/utc/parse/parseTimeFromUtc.js +7 -7
  837. package/dist/utc/parse/parseUnitFromUtc.d.ts +25 -6
  838. package/dist/utc/parse/parseUnitFromUtc.js +14 -10
  839. package/dist/utc/parse/parseWeekFromUtc.d.ts +20 -10
  840. package/dist/utc/parse/parseWeekFromUtc.js +8 -14
  841. package/dist/utc/parse/parseYearFromUtc.d.ts +13 -5
  842. package/dist/utc/parse/parseYearFromUtc.js +9 -8
  843. package/dist/utc/validate/index.d.ts +2 -0
  844. package/dist/utc/validate/index.js +2 -0
  845. package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
  846. package/dist/utc/validate/isValidHttpDate.js +38 -0
  847. package/dist/utc/validate/isValidUtc.d.ts +4 -0
  848. package/dist/utc/validate/isValidUtc.js +4 -0
  849. package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
  850. package/dist/utc/validate/isValidUtcRange.js +2 -5
  851. package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
  852. package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
  853. package/dist/zoned/calculate/addZoned.d.ts +20 -10
  854. package/dist/zoned/calculate/addZoned.js +10 -20
  855. package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
  856. package/dist/zoned/calculate/cycleZoned.js +1 -8
  857. package/dist/zoned/calculate/diffZoned.d.ts +1 -1
  858. package/dist/zoned/calculate/diffZoned.js +1 -1
  859. package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
  860. package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
  861. package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
  862. package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
  863. package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
  864. package/dist/zoned/calculate/endOfZoned.js +2 -3
  865. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
  866. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
  867. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
  868. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
  869. package/dist/zoned/calculate/roundZoned.d.ts +21 -4
  870. package/dist/zoned/calculate/roundZoned.js +3 -7
  871. package/dist/zoned/calculate/setZoned.d.ts +44 -13
  872. package/dist/zoned/calculate/setZoned.js +30 -21
  873. package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
  874. package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
  875. package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
  876. package/dist/zoned/calculate/startOfZoned.js +1 -3
  877. package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
  878. package/dist/zoned/calculate/subtractZoned.js +10 -20
  879. package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
  880. package/dist/zoned/compare/areZonedEqualBy.js +7 -5
  881. package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
  882. package/dist/zoned/compare/isBetweenZoned.js +4 -3
  883. package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
  884. package/dist/zoned/compare/isInDaylightSaving.js +40 -44
  885. package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +21 -5
  886. package/dist/zoned/convert/convertPlainDateTimeToZoned.js +9 -11
  887. package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
  888. package/dist/zoned/convert/convertZonedToUnix.js +2 -4
  889. package/dist/zoned/convert/convertZonedToZoned.d.ts +5 -1
  890. package/dist/zoned/convert/convertZonedToZoned.js +5 -1
  891. package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
  892. package/dist/zoned/format/formatCalendarZoned.js +15 -10
  893. package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
  894. package/dist/zoned/format/formatRelativeZoned.js +9 -5
  895. package/dist/zoned/format/formatRfc2822.d.ts +2 -2
  896. package/dist/zoned/format/formatRfc2822.js +2 -2
  897. package/dist/zoned/format/formatRfc3339.d.ts +2 -3
  898. package/dist/zoned/format/formatRfc3339.js +2 -3
  899. package/dist/zoned/format/formatTimeZoneName.d.ts +16 -3
  900. package/dist/zoned/format/formatTimeZoneName.js +9 -4
  901. package/dist/zoned/format/formatZonedDateTime.js +2 -1
  902. package/dist/zoned/format/formatZonedRange.js +2 -1
  903. package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
  904. package/dist/zoned/format/formatZonedToParts.js +8 -5
  905. package/dist/zoned/get/getDstTransitions.d.ts +11 -10
  906. package/dist/zoned/get/getDstTransitions.js +21 -7
  907. package/dist/zoned/get/getSystemTimeZone.d.ts +3 -1
  908. package/dist/zoned/get/getSystemTimeZone.js +5 -2
  909. package/dist/zoned/get/getTimeZoneOffset.d.ts +13 -2
  910. package/dist/zoned/get/getTimeZoneOffset.js +22 -6
  911. package/dist/zoned/get/getZonedDay.d.ts +2 -1
  912. package/dist/zoned/get/getZonedDay.js +6 -7
  913. package/dist/zoned/get/getZonedDayOfWeek.d.ts +2 -1
  914. package/dist/zoned/get/getZonedDayOfWeek.js +6 -5
  915. package/dist/zoned/get/getZonedHour.d.ts +2 -1
  916. package/dist/zoned/get/getZonedHour.js +6 -7
  917. package/dist/zoned/get/getZonedMicrosecond.d.ts +2 -1
  918. package/dist/zoned/get/getZonedMicrosecond.js +6 -5
  919. package/dist/zoned/get/getZonedMillisecond.d.ts +2 -1
  920. package/dist/zoned/get/getZonedMillisecond.js +6 -7
  921. package/dist/zoned/get/getZonedMinute.d.ts +2 -1
  922. package/dist/zoned/get/getZonedMinute.js +6 -7
  923. package/dist/zoned/get/getZonedMonth.d.ts +2 -1
  924. package/dist/zoned/get/getZonedMonth.js +6 -7
  925. package/dist/zoned/get/getZonedNanosecond.d.ts +2 -1
  926. package/dist/zoned/get/getZonedNanosecond.js +6 -5
  927. package/dist/zoned/get/getZonedNow.d.ts +18 -2
  928. package/dist/zoned/get/getZonedNow.js +17 -4
  929. package/dist/zoned/get/getZonedNowUnit.d.ts +6 -3
  930. package/dist/zoned/get/getZonedNowUnit.js +10 -7
  931. package/dist/zoned/get/getZonedSecond.d.ts +2 -1
  932. package/dist/zoned/get/getZonedSecond.js +6 -7
  933. package/dist/zoned/get/getZonedToday.d.ts +2 -1
  934. package/dist/zoned/get/getZonedToday.js +6 -5
  935. package/dist/zoned/get/getZonedWeekOfYear.d.ts +2 -1
  936. package/dist/zoned/get/getZonedWeekOfYear.js +6 -5
  937. package/dist/zoned/get/getZonedYear.d.ts +4 -1
  938. package/dist/zoned/get/getZonedYear.js +9 -7
  939. package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
  940. package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
  941. package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
  942. package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
  943. package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
  944. package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
  945. package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
  946. package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
  947. package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
  948. package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
  949. package/dist/zoned/interval/intervalXorAllZoned.js +2 -2
  950. package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
  951. package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
  952. package/dist/zoned/interval/mergeIntervalsZoned.js +2 -2
  953. package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
  954. package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
  955. package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
  956. package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
  957. package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
  958. package/dist/zoned/parse/parseRfc2822.js +1 -1
  959. package/dist/zoned/parse/parseUnitFromZoned.d.ts +13 -4
  960. package/dist/zoned/parse/parseUnitFromZoned.js +6 -4
  961. package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
  962. package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
  963. package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
  964. package/dist/zoned/parse/parseYearFromZoned.js +6 -3
  965. package/dist/zoned/validate/hasDaylightSaving.d.ts +45 -12
  966. package/dist/zoned/validate/hasDaylightSaving.js +54 -32
  967. package/dist/zoned/validate/index.d.ts +2 -0
  968. package/dist/zoned/validate/index.js +2 -0
  969. package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
  970. package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
  971. package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
  972. package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
  973. package/dist/zoned/validate/isValidTimeZone.d.ts +5 -1
  974. package/dist/zoned/validate/isValidTimeZone.js +6 -2
  975. package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
  976. package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
  977. package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
  978. package/dist/zoned/validate/isValidZonedRange.js +1 -4
  979. package/package.json +67 -5
  980. package/skills/gmt-arithmetic/SKILL.md +99 -12
  981. package/skills/gmt-basics/SKILL.md +64 -13
  982. package/skills/gmt-integration/SKILL.md +33 -13
  983. package/skills/gmt-timezone/SKILL.md +265 -31
  984. package/dist/duration/calculate/durationAs.d.ts +0 -62
  985. package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
  986. package/dist/internal/resolveReadingTimeZone.js +0 -18
  987. package/dist/internal/unixZonedDateTime.d.ts +0 -22
  988. package/dist/internal/unixZonedDateTime.js +0 -32
  989. package/dist/internal/utcZonedDateTime.d.ts +0 -16
  990. package/dist/internal/utcZonedDateTime.js +0 -28
  991. package/dist/types/duration-unit.d.ts +0 -5
  992. /package/dist/types/{duration-unit.js → duty.js} +0 -0
@@ -1,5 +1,6 @@
1
+ // fallow-ignore-file code-duplication -- sibling of parseDateWithPattern; each keeps its own guard, options check and try/catch, by design
1
2
  import { Temporal } from "@js-temporal/polyfill";
2
- import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal/index.js";
3
+ import { DATE_TIME_PATTERN_FIELDS, isOptionsArgument, parseValueWithPattern, } from "../../internal/index.js";
3
4
  /**
4
5
  * Parse a datetime string against a caller-supplied token pattern (e.g.
5
6
  * `"MM/dd/yyyy HH:mm:ss"`, `"dd-MMM-yyyy h:mm a"`) and return it as an
@@ -9,9 +10,8 @@ import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal
9
10
  * producer format — a CSV column, a legacy API field, a partially-typed
10
11
  * form value — not for generating locale-correct output. For display,
11
12
  * use `formatDateTime`/`formatDateToParts`, which order fields per
12
- * locale instead of hard-coding a field order (see roadmap Decision 1
13
- * — a token *formatter*, the inverse of this function, is deliberately
14
- * out of scope for GMT).
13
+ * locale instead of hard-coding a field order (a token *formatter*,
14
+ * the inverse of this function, is deliberately out of scope for GMT).
15
15
  * - Accepts the full combined date + time token set (unlike
16
16
  * `parseDateWithPattern`/`parseTimeWithPattern`, which each reject the
17
17
  * other's tokens).
@@ -20,7 +20,7 @@ import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal
20
20
  * | Token | Field | Width | Range | Notes |
21
21
  * |---|---|---|---|---|
22
22
  * | `yyyy` | year | 4 digits | 0000–9999 | |
23
- * | `yy` | year | 2 digits | 00–99 | Pivot: 00–68 → 2000–2068, 69–99 → 1969–1999 (fixed rule) |
23
+ * | `yy` | year | 2 digits | 00–99 | Needs `options.yearWindow`; returns `""` without it |
24
24
  * | `MM` | month | 2 digits | 01–12 | |
25
25
  * | `M` | month | 1-2 digits | 1–12 | |
26
26
  * | `MMMM` | month name (long) | locale | — | `getLocaleMonthNames(locale, "long")` |
@@ -42,10 +42,13 @@ import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal
42
42
  * | `GGGG` | era name (long) | locale | — | BCE label ⇒ final year = 1 − parsed year |
43
43
  * | `GG` | era name (short) | locale | — | same resolution |
44
44
  *
45
- * - Text in `'single quotes'` is a literal; a doubled `''` inside a
46
- * quoted segment is a literal `'`. Any other character (`/ - , space
47
- * :`, literal digits, etc.) outside a quote/letter-run is automatically
48
- * a literal — no explicit quoting required.
45
+ * - Literal text follows the Unicode UTS #35 date format pattern rules.
46
+ * Text in `'single quotes'` is a literal, letters included. Two
47
+ * adjacent quotes `''` are one literal `'`, inside or outside quoted
48
+ * text: `"yyyy''MM"` reads `"2024'03"`, and `"'o''clock'"` reads
49
+ * `"o'clock"`. A quote that never closes makes the pattern malformed
50
+ * (`""`). Any other character that is not a letter (`/ - , space :`,
51
+ * digits and so on) is a literal with no quoting.
49
52
  * - `MMMM`/`MMM`/`EEEE`/`EEE`/`a`/`GGGG`/`GG` are locale-aware. If
50
53
  * `locale` is omitted and the pattern uses any of them, GMT defaults
51
54
  * to `"en-US"` rather than returning `""` for every caller who didn't
@@ -73,25 +76,40 @@ import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal
73
76
  * - Fields absent from `pattern` default the way `Temporal.PlainDateTime.from`
74
77
  * defaults an omitted field (time fields default to `0`; `year`/`month`/`day`
75
78
  * are still required for a valid result).
79
+ * - A `yy` token needs the caller's hundred-year window,
80
+ * `options.yearWindow`: no standard says which century a two-digit
81
+ * year belongs to, and a cut-off built into a library is right today
82
+ * and wrong later. Without a valid window a `yy` pattern returns `""`.
83
+ * A pattern with no `yy` never reads the option, so a `"rolling"`
84
+ * window reads no clock for it. A two-digit year is a legacy form; a
85
+ * four-digit year is the one to ask a data source for.
76
86
  *
77
87
  * @param value The string to decode (e.g. "03/15/2024 14:30:00")
78
88
  * @param pattern The token pattern describing `value`'s shape (e.g. "MM/dd/yyyy HH:mm:ss")
79
89
  * @param locale Optional BCP 47 locale tag, or a preference list of tags, for name-based tokens (default "en-US")
90
+ * @param options The hundred-year window a `yy` token resolves in
80
91
  * @returns ISO `PlainDateTime` string, or "" on no match, malformed pattern, or invalid input
81
92
  *
82
93
  * @example parseDateTimeWithPattern("03/15/2024 14:30:00", "MM/dd/yyyy HH:mm:ss") // "2024-03-15T14:30:00"
83
94
  * @example parseDateTimeWithPattern("15-Mar-2024 02:30 PM", "dd-MMM-yyyy hh:mm a") // "2024-03-15T14:30:00"
95
+ * @example parseDateTimeWithPattern("Mar 15, '24 at 14:30", "MMM d, ''yy 'at' HH:mm", undefined, { yearWindow: 2000 }) // "2024-03-15T14:30:00" ('' is one literal quote)
96
+ * @example parseDateTimeWithPattern("99-03-15 14:30", "yy-MM-dd HH:mm", undefined, { yearWindow: 1950 }) // "1999-03-15T14:30:00" (1950–2049 window)
97
+ * @example parseDateTimeWithPattern("24-03-15 14:30", "yy-MM-dd HH:mm", undefined, { yearWindow: "rolling" }) // "2024-03-15T14:30:00" (while the current UTC year is 1975–2074)
98
+ * @example parseDateTimeWithPattern("24-03-15 14:30", "yy-MM-dd HH:mm") // "" (yy with no window)
99
+ * @example parseDateTimeWithPattern("03/15/2024 14:30:00", "MM/dd/yyyy HH:mm:ss", undefined, { yearWindow: 2000 }) // "2024-03-15T14:30:00" (yyyy ignores the window)
84
100
  * @example parseDateTimeWithPattern("02/31/2024 14:30:00", "MM/dd/yyyy HH:mm:ss") // "" (shape-valid, not a real date)
85
101
  * @example parseDateTimeWithPattern("not a date", "MM/dd/yyyy HH:mm:ss") // ""
86
102
  * @example parseDateTimeWithPattern("19 mai 2024 10:20", "d MMMM yyyy HH:mm", ["fr-FR", "en-US"]) // "2024-05-19T10:20:00"
87
103
  */
88
- export function parseDateTimeWithPattern(value, pattern, locale) {
104
+ export function parseDateTimeWithPattern(value, pattern, locale, options) {
89
105
  try {
90
106
  if (typeof value !== "string")
91
107
  return "";
92
108
  if (typeof pattern !== "string")
93
109
  return "";
94
- const fields = parseValueWithPattern(value, pattern, locale, DATE_TIME_PATTERN_FIELDS);
110
+ if (!isOptionsArgument(options))
111
+ return "";
112
+ const fields = parseValueWithPattern(value, pattern, locale, DATE_TIME_PATTERN_FIELDS, options);
95
113
  if (fields === null)
96
114
  return "";
97
115
  try {
@@ -1,3 +1,4 @@
1
+ import type { TwoDigitYearOptions } from "../../types/two-digit-year.js";
1
2
  /**
2
3
  * Parse a date string against a caller-supplied token pattern (e.g.
3
4
  * `"MM/dd/yyyy"`, `"dd-MMM-yyyy"`) and return it as an ISO `PlainDate`
@@ -7,9 +8,8 @@
7
8
  * producer format — a CSV column, a legacy API field, a partially-typed
8
9
  * form value — not for generating locale-correct output. For display,
9
10
  * use `formatDate`/`formatDateToParts`, which order fields per locale
10
- * instead of hard-coding a field order (see roadmap Decision 1 — a
11
- * token *formatter*, the inverse of this function, is deliberately out
12
- * of scope for GMT).
11
+ * instead of hard-coding a field order (a token *formatter*, the
12
+ * inverse of this function, is deliberately out of scope for GMT).
13
13
  * - `pattern` accepts only date-shaped tokens. A pattern containing a
14
14
  * time-only token (`H h m s S a`) is malformed for this function and
15
15
  * returns `""` — use `parseDateTimeWithPattern` for combined input.
@@ -18,7 +18,7 @@
18
18
  * | Token | Field | Width | Range | Notes |
19
19
  * |---|---|---|---|---|
20
20
  * | `yyyy` | year | 4 digits | 0000–9999 | |
21
- * | `yy` | year | 2 digits | 00–99 | Pivot: 00–68 → 2000–2068, 69–99 → 1969–1999 (fixed rule) |
21
+ * | `yy` | year | 2 digits | 00–99 | Needs `options.yearWindow`; returns `""` without it |
22
22
  * | `MM` | month | 2 digits | 01–12 | |
23
23
  * | `M` | month | 1-2 digits | 1–12 | |
24
24
  * | `MMMM` | month name (long) | locale | — | `getLocaleMonthNames(locale, "long")` |
@@ -30,10 +30,13 @@
30
30
  * | `GGGG` | era name (long) | locale | — | BCE label ⇒ final year = 1 − parsed year |
31
31
  * | `GG` | era name (short) | locale | — | same resolution |
32
32
  *
33
- * - Text in `'single quotes'` is a literal; a doubled `''` inside a
34
- * quoted segment is a literal `'`. Any other character (`/ - , space`,
35
- * literal digits, etc.) outside a quote/letter-run is automatically a
36
- * literal — no explicit quoting required.
33
+ * - Literal text follows the Unicode UTS #35 date format pattern rules.
34
+ * Text in `'single quotes'` is a literal, letters included. Two
35
+ * adjacent quotes `''` are one literal `'`, inside or outside quoted
36
+ * text: `"yyyy''MM"` reads `"2024'03"`, and `"'o''clock'"` reads
37
+ * `"o'clock"`. A quote that never closes makes the pattern malformed
38
+ * (`""`). Any other character that is not a letter (`/ - , space`,
39
+ * digits and so on) is a literal with no quoting.
37
40
  * - `MMMM`/`MMM`/`EEEE`/`EEE`/`GGGG`/`GG` are locale-aware. If `locale`
38
41
  * is omitted and the pattern uses any of them, GMT defaults to
39
42
  * `"en-US"` rather than returning `""` for every caller who didn't
@@ -54,16 +57,30 @@
54
57
  * overflow: "reject" })`, so `"02/31/2024"` against `"MM/dd/yyyy"`
55
58
  * still returns `""` — the regex only proves the shape, Temporal
56
59
  * proves the date is real.
60
+ * - A `yy` token needs the caller's hundred-year window,
61
+ * `options.yearWindow`: no standard says which century a two-digit
62
+ * year belongs to, and a cut-off built into a library is right today
63
+ * and wrong later. Without a valid window a `yy` pattern returns `""`.
64
+ * A pattern with no `yy` never reads the option, so a `"rolling"`
65
+ * window reads no clock for it. A two-digit year is a legacy form; a
66
+ * four-digit year is the one to ask a data source for.
57
67
  *
58
68
  * @param value The string to decode (e.g. "03/15/2024")
59
69
  * @param pattern The token pattern describing `value`'s shape (e.g. "MM/dd/yyyy")
60
70
  * @param locale Optional BCP 47 locale tag, or a preference list of tags, for name-based tokens (default "en-US")
71
+ * @param options The hundred-year window a `yy` token resolves in
61
72
  * @returns ISO `PlainDate` string, or "" on no match, malformed pattern, or invalid input
62
73
  *
63
74
  * @example parseDateWithPattern("03/15/2024", "MM/dd/yyyy") // "2024-03-15"
64
75
  * @example parseDateWithPattern("15-Mar-2024", "dd-MMM-yyyy") // "2024-03-15"
76
+ * @example parseDateWithPattern("Mar 15, '24", "MMM d, ''yy", undefined, { yearWindow: 2000 }) // "2024-03-15" ('' is one literal quote)
77
+ * @example parseDateWithPattern("03/15/24", "MM/dd/yy", undefined, { yearWindow: 1950 }) // "2024-03-15" (1950–2049 window)
78
+ * @example parseDateWithPattern("03/15/99", "MM/dd/yy", undefined, { yearWindow: 1950 }) // "1999-03-15"
79
+ * @example parseDateWithPattern("03/15/24", "MM/dd/yy", undefined, { yearWindow: "rolling" }) // "2024-03-15" (while the current UTC year is 1975–2074)
80
+ * @example parseDateWithPattern("03/15/24", "MM/dd/yy") // "" (yy with no window)
81
+ * @example parseDateWithPattern("03/15/2024", "MM/dd/yyyy", undefined, { yearWindow: 2000 }) // "2024-03-15" (yyyy ignores the window)
65
82
  * @example parseDateWithPattern("02/31/2024", "MM/dd/yyyy") // "" (shape-valid, not a real date)
66
83
  * @example parseDateWithPattern("14:30", "HH:mm") // "" (time token in a date-only pattern)
67
84
  * @example parseDateWithPattern("19 mai 2024", "d MMMM yyyy", ["fr-FR", "en-US"]) // "2024-05-19"
68
85
  */
69
- export declare function parseDateWithPattern(value: string, pattern: string, locale?: string | string[]): string;
86
+ export declare function parseDateWithPattern(value: string, pattern: string, locale?: string | string[], options?: TwoDigitYearOptions): string;
@@ -1,5 +1,6 @@
1
+ // fallow-ignore-file code-duplication -- sibling of parseDateTimeWithPattern; each keeps its own guard, options check and try/catch, by design
1
2
  import { Temporal } from "@js-temporal/polyfill";
2
- import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index.js";
3
+ import { DATE_PATTERN_FIELDS, isOptionsArgument, parseValueWithPattern, } from "../../internal/index.js";
3
4
  /**
4
5
  * Parse a date string against a caller-supplied token pattern (e.g.
5
6
  * `"MM/dd/yyyy"`, `"dd-MMM-yyyy"`) and return it as an ISO `PlainDate`
@@ -9,9 +10,8 @@ import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index
9
10
  * producer format — a CSV column, a legacy API field, a partially-typed
10
11
  * form value — not for generating locale-correct output. For display,
11
12
  * use `formatDate`/`formatDateToParts`, which order fields per locale
12
- * instead of hard-coding a field order (see roadmap Decision 1 — a
13
- * token *formatter*, the inverse of this function, is deliberately out
14
- * of scope for GMT).
13
+ * instead of hard-coding a field order (a token *formatter*, the
14
+ * inverse of this function, is deliberately out of scope for GMT).
15
15
  * - `pattern` accepts only date-shaped tokens. A pattern containing a
16
16
  * time-only token (`H h m s S a`) is malformed for this function and
17
17
  * returns `""` — use `parseDateTimeWithPattern` for combined input.
@@ -20,7 +20,7 @@ import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index
20
20
  * | Token | Field | Width | Range | Notes |
21
21
  * |---|---|---|---|---|
22
22
  * | `yyyy` | year | 4 digits | 0000–9999 | |
23
- * | `yy` | year | 2 digits | 00–99 | Pivot: 00–68 → 2000–2068, 69–99 → 1969–1999 (fixed rule) |
23
+ * | `yy` | year | 2 digits | 00–99 | Needs `options.yearWindow`; returns `""` without it |
24
24
  * | `MM` | month | 2 digits | 01–12 | |
25
25
  * | `M` | month | 1-2 digits | 1–12 | |
26
26
  * | `MMMM` | month name (long) | locale | — | `getLocaleMonthNames(locale, "long")` |
@@ -32,10 +32,13 @@ import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index
32
32
  * | `GGGG` | era name (long) | locale | — | BCE label ⇒ final year = 1 − parsed year |
33
33
  * | `GG` | era name (short) | locale | — | same resolution |
34
34
  *
35
- * - Text in `'single quotes'` is a literal; a doubled `''` inside a
36
- * quoted segment is a literal `'`. Any other character (`/ - , space`,
37
- * literal digits, etc.) outside a quote/letter-run is automatically a
38
- * literal — no explicit quoting required.
35
+ * - Literal text follows the Unicode UTS #35 date format pattern rules.
36
+ * Text in `'single quotes'` is a literal, letters included. Two
37
+ * adjacent quotes `''` are one literal `'`, inside or outside quoted
38
+ * text: `"yyyy''MM"` reads `"2024'03"`, and `"'o''clock'"` reads
39
+ * `"o'clock"`. A quote that never closes makes the pattern malformed
40
+ * (`""`). Any other character that is not a letter (`/ - , space`,
41
+ * digits and so on) is a literal with no quoting.
39
42
  * - `MMMM`/`MMM`/`EEEE`/`EEE`/`GGGG`/`GG` are locale-aware. If `locale`
40
43
  * is omitted and the pattern uses any of them, GMT defaults to
41
44
  * `"en-US"` rather than returning `""` for every caller who didn't
@@ -56,25 +59,41 @@ import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index
56
59
  * overflow: "reject" })`, so `"02/31/2024"` against `"MM/dd/yyyy"`
57
60
  * still returns `""` — the regex only proves the shape, Temporal
58
61
  * proves the date is real.
62
+ * - A `yy` token needs the caller's hundred-year window,
63
+ * `options.yearWindow`: no standard says which century a two-digit
64
+ * year belongs to, and a cut-off built into a library is right today
65
+ * and wrong later. Without a valid window a `yy` pattern returns `""`.
66
+ * A pattern with no `yy` never reads the option, so a `"rolling"`
67
+ * window reads no clock for it. A two-digit year is a legacy form; a
68
+ * four-digit year is the one to ask a data source for.
59
69
  *
60
70
  * @param value The string to decode (e.g. "03/15/2024")
61
71
  * @param pattern The token pattern describing `value`'s shape (e.g. "MM/dd/yyyy")
62
72
  * @param locale Optional BCP 47 locale tag, or a preference list of tags, for name-based tokens (default "en-US")
73
+ * @param options The hundred-year window a `yy` token resolves in
63
74
  * @returns ISO `PlainDate` string, or "" on no match, malformed pattern, or invalid input
64
75
  *
65
76
  * @example parseDateWithPattern("03/15/2024", "MM/dd/yyyy") // "2024-03-15"
66
77
  * @example parseDateWithPattern("15-Mar-2024", "dd-MMM-yyyy") // "2024-03-15"
78
+ * @example parseDateWithPattern("Mar 15, '24", "MMM d, ''yy", undefined, { yearWindow: 2000 }) // "2024-03-15" ('' is one literal quote)
79
+ * @example parseDateWithPattern("03/15/24", "MM/dd/yy", undefined, { yearWindow: 1950 }) // "2024-03-15" (1950–2049 window)
80
+ * @example parseDateWithPattern("03/15/99", "MM/dd/yy", undefined, { yearWindow: 1950 }) // "1999-03-15"
81
+ * @example parseDateWithPattern("03/15/24", "MM/dd/yy", undefined, { yearWindow: "rolling" }) // "2024-03-15" (while the current UTC year is 1975–2074)
82
+ * @example parseDateWithPattern("03/15/24", "MM/dd/yy") // "" (yy with no window)
83
+ * @example parseDateWithPattern("03/15/2024", "MM/dd/yyyy", undefined, { yearWindow: 2000 }) // "2024-03-15" (yyyy ignores the window)
67
84
  * @example parseDateWithPattern("02/31/2024", "MM/dd/yyyy") // "" (shape-valid, not a real date)
68
85
  * @example parseDateWithPattern("14:30", "HH:mm") // "" (time token in a date-only pattern)
69
86
  * @example parseDateWithPattern("19 mai 2024", "d MMMM yyyy", ["fr-FR", "en-US"]) // "2024-05-19"
70
87
  */
71
- export function parseDateWithPattern(value, pattern, locale) {
88
+ export function parseDateWithPattern(value, pattern, locale, options) {
72
89
  try {
73
90
  if (typeof value !== "string")
74
91
  return "";
75
92
  if (typeof pattern !== "string")
76
93
  return "";
77
- const fields = parseValueWithPattern(value, pattern, locale, DATE_PATTERN_FIELDS);
94
+ if (!isOptionsArgument(options))
95
+ return "";
96
+ const fields = parseValueWithPattern(value, pattern, locale, DATE_PATTERN_FIELDS, options);
78
97
  if (fields === null)
79
98
  return "";
80
99
  try {
@@ -8,7 +8,7 @@
8
8
  * two-digit month, day, hour, minute and second (seconds are required), and an optional `.`
9
9
  * followed by up to 9 fraction digits.
10
10
  * - **Plain only.** SQL's offset-carrying `TIMESTAMP WITH TIME ZONE` literal is out of scope; see
11
- * `formatSql`'s JSDoc.
11
+ * `formatSqlDateTime`'s JSDoc.
12
12
  * - The fraction is written as `Temporal.PlainDateTime#toString` writes it: trailing zeros are
13
13
  * dropped (`.500` → `.5`, `.000` → none), and a `.` with no digits is dropped. `Temporal.PlainDateTime.from`
14
14
  * proves the value is a real calendar date and time.
@@ -16,11 +16,11 @@
16
16
  * @param value SQL timestamp literal (e.g. "2024-03-15 14:30:00")
17
17
  * @returns plain ISO 8601 datetime string, or "" on invalid input
18
18
  *
19
- * @example parseSql("2024-03-15 14:30:00") // "2024-03-15T14:30:00"
20
- * @example parseSql("2024-03-15 14:30:00.5") // "2024-03-15T14:30:00.5"
21
- * @example parseSql("2024-03-15 14:30") // "" (seconds are required)
22
- * @example parseSql("0000-01-01 00:00:00") // "" (year outside 0001–9999)
23
- * @example parseSql("2024-03-15T14:30:00") // "" (wrong separator)
24
- * @example parseSql("not a date") // ""
19
+ * @example parseSqlDateTime("2024-03-15 14:30:00") // "2024-03-15T14:30:00"
20
+ * @example parseSqlDateTime("2024-03-15 14:30:00.5") // "2024-03-15T14:30:00.5"
21
+ * @example parseSqlDateTime("2024-03-15 14:30") // "" (seconds are required)
22
+ * @example parseSqlDateTime("0000-01-01 00:00:00") // "" (year outside 0001–9999)
23
+ * @example parseSqlDateTime("2024-03-15T14:30:00") // "" (wrong separator)
24
+ * @example parseSqlDateTime("not a date") // ""
25
25
  */
26
- export declare function parseSql(value: string): string;
26
+ export declare function parseSqlDateTime(value: string): string;
@@ -10,7 +10,7 @@ import { sqlDateTime } from "../../regex/index.js";
10
10
  * two-digit month, day, hour, minute and second (seconds are required), and an optional `.`
11
11
  * followed by up to 9 fraction digits.
12
12
  * - **Plain only.** SQL's offset-carrying `TIMESTAMP WITH TIME ZONE` literal is out of scope; see
13
- * `formatSql`'s JSDoc.
13
+ * `formatSqlDateTime`'s JSDoc.
14
14
  * - The fraction is written as `Temporal.PlainDateTime#toString` writes it: trailing zeros are
15
15
  * dropped (`.500` → `.5`, `.000` → none), and a `.` with no digits is dropped. `Temporal.PlainDateTime.from`
16
16
  * proves the value is a real calendar date and time.
@@ -18,14 +18,14 @@ import { sqlDateTime } from "../../regex/index.js";
18
18
  * @param value SQL timestamp literal (e.g. "2024-03-15 14:30:00")
19
19
  * @returns plain ISO 8601 datetime string, or "" on invalid input
20
20
  *
21
- * @example parseSql("2024-03-15 14:30:00") // "2024-03-15T14:30:00"
22
- * @example parseSql("2024-03-15 14:30:00.5") // "2024-03-15T14:30:00.5"
23
- * @example parseSql("2024-03-15 14:30") // "" (seconds are required)
24
- * @example parseSql("0000-01-01 00:00:00") // "" (year outside 0001–9999)
25
- * @example parseSql("2024-03-15T14:30:00") // "" (wrong separator)
26
- * @example parseSql("not a date") // ""
21
+ * @example parseSqlDateTime("2024-03-15 14:30:00") // "2024-03-15T14:30:00"
22
+ * @example parseSqlDateTime("2024-03-15 14:30:00.5") // "2024-03-15T14:30:00.5"
23
+ * @example parseSqlDateTime("2024-03-15 14:30") // "" (seconds are required)
24
+ * @example parseSqlDateTime("0000-01-01 00:00:00") // "" (year outside 0001–9999)
25
+ * @example parseSqlDateTime("2024-03-15T14:30:00") // "" (wrong separator)
26
+ * @example parseSqlDateTime("not a date") // ""
27
27
  */
28
- export function parseSql(value) {
28
+ export function parseSqlDateTime(value) {
29
29
  if (typeof value !== "string")
30
30
  return "";
31
31
  if (!sqlDateTime.test(value))
@@ -6,9 +6,8 @@
6
6
  * producer format — a CSV column, a legacy API field, a partially-typed
7
7
  * form value — not for generating locale-correct output. For display,
8
8
  * use `formatTime`/`formatDateToParts`, which order fields per locale
9
- * instead of hard-coding a field order (see roadmap Decision 1 — a
10
- * token *formatter*, the inverse of this function, is deliberately out
11
- * of scope for GMT).
9
+ * instead of hard-coding a field order (a token *formatter*, the
10
+ * inverse of this function, is deliberately out of scope for GMT).
12
11
  * - `pattern` accepts only time-shaped tokens. A pattern containing a
13
12
  * date-only token (`y M d E G`) is malformed for this function and
14
13
  * returns `""` — use `parseDateTimeWithPattern` for combined input.
@@ -27,10 +26,13 @@
27
26
  * | `SSS` | millisecond | 3 digits | 000–999 | |
28
27
  * | `a` | meridiem | locale | — | `getLocaleMeridiems(locale)` → `[AM-label, PM-label]` |
29
28
  *
30
- * - Text in `'single quotes'` is a literal; a doubled `''` inside a
31
- * quoted segment is a literal `'`. Any other character (`: , space`,
32
- * literal digits, etc.) outside a quote/letter-run is automatically a
33
- * literal — no explicit quoting required.
29
+ * - Literal text follows the Unicode UTS #35 date format pattern rules.
30
+ * Text in `'single quotes'` is a literal, letters included. Two
31
+ * adjacent quotes `''` are one literal `'`, inside or outside quoted
32
+ * text: `"HH''mm"` reads `"14'30"`, and `"'o''clock'"` reads
33
+ * `"o'clock"`. A quote that never closes makes the pattern malformed
34
+ * (`""`). Any other character that is not a letter (`: , space`,
35
+ * digits and so on) is a literal with no quoting.
34
36
  * - `a` is locale-aware. If `locale` is omitted and the pattern uses
35
37
  * `a`, GMT defaults to `"en-US"` rather than returning `""` for every
36
38
  * caller who didn't have another locale in mind.
@@ -51,6 +53,7 @@
51
53
  *
52
54
  * @example parseTimeWithPattern("14:30:45", "HH:mm:ss") // "14:30:45"
53
55
  * @example parseTimeWithPattern("02:30:45 PM", "hh:mm:ss a") // "14:30:45"
56
+ * @example parseTimeWithPattern("2 o'clock PM", "h 'o''clock' a") // "14:00:00" ('' is one literal quote)
54
57
  * @example parseTimeWithPattern("25:00", "HH:mm") // "" (shape-valid, not a real time)
55
58
  * @example parseTimeWithPattern("2024-03-15", "yyyy-MM-dd") // "" (date token in a time-only pattern)
56
59
  * @example parseTimeWithPattern("午後 10:20", "a h:mm", ["ja-JP", "en-US"]) // "22:20:00"
@@ -8,9 +8,8 @@ import { parseValueWithPattern, TIME_PATTERN_FIELDS } from "../../internal/index
8
8
  * producer format — a CSV column, a legacy API field, a partially-typed
9
9
  * form value — not for generating locale-correct output. For display,
10
10
  * use `formatTime`/`formatDateToParts`, which order fields per locale
11
- * instead of hard-coding a field order (see roadmap Decision 1 — a
12
- * token *formatter*, the inverse of this function, is deliberately out
13
- * of scope for GMT).
11
+ * instead of hard-coding a field order (a token *formatter*, the
12
+ * inverse of this function, is deliberately out of scope for GMT).
14
13
  * - `pattern` accepts only time-shaped tokens. A pattern containing a
15
14
  * date-only token (`y M d E G`) is malformed for this function and
16
15
  * returns `""` — use `parseDateTimeWithPattern` for combined input.
@@ -29,10 +28,13 @@ import { parseValueWithPattern, TIME_PATTERN_FIELDS } from "../../internal/index
29
28
  * | `SSS` | millisecond | 3 digits | 000–999 | |
30
29
  * | `a` | meridiem | locale | — | `getLocaleMeridiems(locale)` → `[AM-label, PM-label]` |
31
30
  *
32
- * - Text in `'single quotes'` is a literal; a doubled `''` inside a
33
- * quoted segment is a literal `'`. Any other character (`: , space`,
34
- * literal digits, etc.) outside a quote/letter-run is automatically a
35
- * literal — no explicit quoting required.
31
+ * - Literal text follows the Unicode UTS #35 date format pattern rules.
32
+ * Text in `'single quotes'` is a literal, letters included. Two
33
+ * adjacent quotes `''` are one literal `'`, inside or outside quoted
34
+ * text: `"HH''mm"` reads `"14'30"`, and `"'o''clock'"` reads
35
+ * `"o'clock"`. A quote that never closes makes the pattern malformed
36
+ * (`""`). Any other character that is not a letter (`: , space`,
37
+ * digits and so on) is a literal with no quoting.
36
38
  * - `a` is locale-aware. If `locale` is omitted and the pattern uses
37
39
  * `a`, GMT defaults to `"en-US"` rather than returning `""` for every
38
40
  * caller who didn't have another locale in mind.
@@ -53,6 +55,7 @@ import { parseValueWithPattern, TIME_PATTERN_FIELDS } from "../../internal/index
53
55
  *
54
56
  * @example parseTimeWithPattern("14:30:45", "HH:mm:ss") // "14:30:45"
55
57
  * @example parseTimeWithPattern("02:30:45 PM", "hh:mm:ss a") // "14:30:45"
58
+ * @example parseTimeWithPattern("2 o'clock PM", "h 'o''clock' a") // "14:00:00" ('' is one literal quote)
56
59
  * @example parseTimeWithPattern("25:00", "HH:mm") // "" (shape-valid, not a real time)
57
60
  * @example parseTimeWithPattern("2024-03-15", "yyyy-MM-dd") // "" (date token in a time-only pattern)
58
61
  * @example parseTimeWithPattern("午後 10:20", "a h:mm", ["ja-JP", "en-US"]) // "22:20:00"
@@ -63,6 +66,7 @@ export function parseTimeWithPattern(value, pattern, locale) {
63
66
  return "";
64
67
  if (typeof pattern !== "string")
65
68
  return "";
69
+ // A time pattern has no year token, so no two-digit-year window applies.
66
70
  const fields = parseValueWithPattern(value, pattern, locale, TIME_PATTERN_FIELDS);
67
71
  if (fields === null)
68
72
  return "";
@@ -6,16 +6,19 @@ import { Temporal } from "@js-temporal/polyfill";
6
6
  * - Returns zero-padded string for month and day.
7
7
  * - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
8
8
  * does; `"dayOfWeek"` has no plural.
9
- * - `weekStartsOn: "sunday"` numbers weeks by UTS #35 (week 1 holds 1 January, so late-December
10
- * days can be week 1); any value other than `"monday"` or `"sunday"` returns "".
9
+ * - `optionsArg` must be an object or omitted: `null` or any other primitive returns "", as
10
+ * Temporal's GetOptionsObject rejects it.
11
11
  * - Returns "" for invalid input.
12
+ * - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
13
+ * sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
12
14
  *
13
15
  * @param value ISO PlainDate string
14
16
  * @param unit unit to extract from the date
15
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday") for week calculations; a non-object value (such as `null`) is invalid
17
+ * @param optionsArg How weeks are numbered
16
18
  * @returns string representation of the requested unit or "" on invalid input
17
19
  *
18
20
  * @example parseUnitFromDate("2024-03-15", "year") // "2024"
21
+ * @example parseUnitFromDate("0005-06-01", "year") // "0005"
19
22
  * @example parseUnitFromDate("2024-03-15", "month") // "03"
20
23
  * @example parseUnitFromDate("2024-03-15", "day") // "15"
21
24
  * @example parseUnitFromDate("2024-03-15", "week") // "11"
@@ -26,5 +29,13 @@ import { Temporal } from "@js-temporal/polyfill";
26
29
  * @example parseUnitFromDate("2024-01-01", "week", { weekStartsOn: "sunday" }) // "1"
27
30
  */
28
31
  export declare function parseUnitFromDate(value: string, unit: Temporal.SmallestUnit<"year" | "month" | "day" | "week"> | "dayOfWeek", optionsArg?: {
32
+ /**
33
+ * The first day of the week, which sets how the `"week"` unit is numbered. `"monday"` gives the
34
+ * ISO 8601 week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS
35
+ * #35 week number with a Sunday first day and one minimal day, where week 1 holds 1 January.
36
+ * Any other value returns `""`, whatever the unit.
37
+ *
38
+ * @defaultValue `"monday"`
39
+ */
29
40
  weekStartsOn?: "monday" | "sunday";
30
41
  }): string;
@@ -4,6 +4,7 @@ import { resolveWeekStartsOn } from "../../internal/resolveWeekStartsOn.js";
4
4
  import { getWeekNumber } from "../calculate/getWeekNumber.js";
5
5
  import { isValidDate } from "../validate/index.js";
6
6
  import { isOptionsArgument } from "../../internal/isObject.js";
7
+ import { isoYearString } from "../../internal/isoYearString.js";
7
8
  /**
8
9
  * Return a specific date unit extracted from a PlainDate string.
9
10
  *
@@ -11,16 +12,19 @@ import { isOptionsArgument } from "../../internal/isObject.js";
11
12
  * - Returns zero-padded string for month and day.
12
13
  * - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
13
14
  * does; `"dayOfWeek"` has no plural.
14
- * - `weekStartsOn: "sunday"` numbers weeks by UTS #35 (week 1 holds 1 January, so late-December
15
- * days can be week 1); any value other than `"monday"` or `"sunday"` returns "".
15
+ * - `optionsArg` must be an object or omitted: `null` or any other primitive returns "", as
16
+ * Temporal's GetOptionsObject rejects it.
16
17
  * - Returns "" for invalid input.
18
+ * - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
19
+ * sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
17
20
  *
18
21
  * @param value ISO PlainDate string
19
22
  * @param unit unit to extract from the date
20
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday") for week calculations; a non-object value (such as `null`) is invalid
23
+ * @param optionsArg How weeks are numbered
21
24
  * @returns string representation of the requested unit or "" on invalid input
22
25
  *
23
26
  * @example parseUnitFromDate("2024-03-15", "year") // "2024"
27
+ * @example parseUnitFromDate("0005-06-01", "year") // "0005"
24
28
  * @example parseUnitFromDate("2024-03-15", "month") // "03"
25
29
  * @example parseUnitFromDate("2024-03-15", "day") // "15"
26
30
  * @example parseUnitFromDate("2024-03-15", "week") // "11"
@@ -44,7 +48,7 @@ export function parseUnitFromDate(value, unit, optionsArg) {
44
48
  const date = Temporal.PlainDate.from(value);
45
49
  switch (resolveDateTimeUnit(unit)) {
46
50
  case "year":
47
- return date.year.toString();
51
+ return isoYearString(date.year);
48
52
  case "month":
49
53
  return date.month.toString().padStart(2, "0");
50
54
  case "day":
@@ -8,16 +8,19 @@ import { Temporal } from "@js-temporal/polyfill";
8
8
  * - Returns zero-padded string for most units.
9
9
  * - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
10
10
  * does; `"dayOfWeek"` has no plural.
11
- * - `weekStartsOn: "sunday"` numbers weeks by UTS #35 (week 1 holds 1 January, so late-December
12
- * days can be week 1); any value other than `"monday"` or `"sunday"` returns "".
11
+ * - `optionsArg` must be an object or omitted: `null` or any other primitive returns "", as
12
+ * Temporal's GetOptionsObject rejects it.
13
13
  * - Returns "" for invalid input.
14
+ * - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
15
+ * sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
14
16
  *
15
17
  * @param value ISO PlainDateTime string
16
18
  * @param unit unit to extract from the datetime
17
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday") for week calculations; a non-object value (such as `null`) is invalid
19
+ * @param optionsArg How weeks are numbered
18
20
  * @returns string representation of the requested unit or "" on invalid input
19
21
  *
20
22
  * @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "year") // "2024"
23
+ * @example parseUnitFromDateTime("0005-06-01T12:30:00", "year") // "0005"
21
24
  * @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "week") // "11"
22
25
  * @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "hour") // "14"
23
26
  * @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "millisecond") // "123"
@@ -26,5 +29,13 @@ import { Temporal } from "@js-temporal/polyfill";
26
29
  * @example parseUnitFromDateTime("2024-01-01T00:00:00", "week", { weekStartsOn: "sunday" }) // "1"
27
30
  */
28
31
  export declare function parseUnitFromDateTime(value: string, unit: Temporal.SmallestUnit<"year" | "month" | "day" | "week" | "hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond"> | "dayOfWeek", optionsArg?: {
32
+ /**
33
+ * The first day of the week, which sets how the `"week"` unit is numbered. `"monday"` gives the
34
+ * ISO 8601 week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS
35
+ * #35 week number with a Sunday first day and one minimal day, where week 1 holds 1 January.
36
+ * Any other value returns `""`, whatever the unit.
37
+ *
38
+ * @defaultValue `"monday"`
39
+ */
29
40
  weekStartsOn?: "monday" | "sunday";
30
41
  }): string;
@@ -5,6 +5,7 @@ import { resolveWeekStartsOn } from "../../internal/resolveWeekStartsOn.js";
5
5
  import { getWeekNumber } from "../calculate/getWeekNumber.js";
6
6
  import { isValidDateTime } from "../validate/index.js";
7
7
  import { isOptionsArgument } from "../../internal/isObject.js";
8
+ import { isoYearString } from "../../internal/isoYearString.js";
8
9
  /**
9
10
  * Return a specific unit extracted from a PlainDateTime string.
10
11
  *
@@ -14,16 +15,19 @@ import { isOptionsArgument } from "../../internal/isObject.js";
14
15
  * - Returns zero-padded string for most units.
15
16
  * - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
16
17
  * does; `"dayOfWeek"` has no plural.
17
- * - `weekStartsOn: "sunday"` numbers weeks by UTS #35 (week 1 holds 1 January, so late-December
18
- * days can be week 1); any value other than `"monday"` or `"sunday"` returns "".
18
+ * - `optionsArg` must be an object or omitted: `null` or any other primitive returns "", as
19
+ * Temporal's GetOptionsObject rejects it.
19
20
  * - Returns "" for invalid input.
21
+ * - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
22
+ * sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
20
23
  *
21
24
  * @param value ISO PlainDateTime string
22
25
  * @param unit unit to extract from the datetime
23
- * @param optionsArg optional: weekStartsOn ("monday" | "sunday") for week calculations; a non-object value (such as `null`) is invalid
26
+ * @param optionsArg How weeks are numbered
24
27
  * @returns string representation of the requested unit or "" on invalid input
25
28
  *
26
29
  * @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "year") // "2024"
30
+ * @example parseUnitFromDateTime("0005-06-01T12:30:00", "year") // "0005"
27
31
  * @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "week") // "11"
28
32
  * @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "hour") // "14"
29
33
  * @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "millisecond") // "123"
@@ -45,7 +49,7 @@ export function parseUnitFromDateTime(value, unit, optionsArg) {
45
49
  const dateTime = Temporal.PlainDateTime.from(value);
46
50
  switch (resolveDateTimeUnit(unit)) {
47
51
  case "year":
48
- return dateTime.year.toString();
52
+ return isoYearString(dateTime.year);
49
53
  case "month":
50
54
  return dateTime.month.toString().padStart(2, "0");
51
55
  case "day":
@@ -1,15 +1,11 @@
1
1
  /**
2
2
  * Return the week number for a given ISO 8601 date 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 date 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 parseWeekFromDate("2024-01-01") // 1
@@ -20,5 +16,13 @@
20
16
  * @example parseWeekFromDate("2024-12-31", { weekStartsOn: "sunday" }) // 1 (its Sunday-first week holds 1 January 2025)
21
17
  */
22
18
  export declare function parseWeekFromDate(value: string, optionsArg?: {
19
+ /**
20
+ * The first day of the week, which sets how the week is numbered. `"monday"` gives the ISO 8601
21
+ * week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS #35 week
22
+ * number with a Sunday first day and one minimal day, where week 1 holds 1 January. Any other
23
+ * value returns `null`.
24
+ *
25
+ * @defaultValue `"monday"`
26
+ */
23
27
  weekStartsOn?: "monday" | "sunday";
24
28
  }): number | null;