@northguild/gmt 1.15.0 → 1.17.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 (1143) hide show
  1. package/README.md +1133 -272
  2. package/dist/calendar/business/businessDaysBetween.d.ts +37 -0
  3. package/dist/calendar/business/businessDaysBetween.js +89 -0
  4. package/dist/calendar/business/index.d.ts +7 -0
  5. package/dist/calendar/business/index.js +10 -0
  6. package/dist/calendar/business/mergeCalendars.d.ts +33 -0
  7. package/dist/calendar/business/mergeCalendars.js +68 -0
  8. package/dist/calendar/business/nextBusinessDay.d.ts +30 -0
  9. package/dist/calendar/business/nextBusinessDay.js +39 -0
  10. package/dist/calendar/business/previousBusinessDay.d.ts +30 -0
  11. package/dist/calendar/business/previousBusinessDay.js +39 -0
  12. package/dist/calendar/business/rollDate.d.ts +59 -0
  13. package/dist/calendar/business/rollDate.js +116 -0
  14. package/dist/calendar/calculate/bucketRange.d.ts +49 -0
  15. package/dist/calendar/calculate/bucketRange.js +169 -0
  16. package/dist/calendar/calculate/floorToZone.d.ts +42 -0
  17. package/dist/calendar/calculate/floorToZone.js +62 -0
  18. package/dist/calendar/calculate/getFiscalPeriod.d.ts +64 -0
  19. package/dist/calendar/calculate/getFiscalPeriod.js +96 -0
  20. package/dist/calendar/calculate/getIsoWeekDate.d.ts +35 -0
  21. package/dist/calendar/calculate/getIsoWeekDate.js +41 -0
  22. package/dist/calendar/calculate/getOrdinalDate.d.ts +25 -0
  23. package/dist/calendar/calculate/getOrdinalDate.js +28 -0
  24. package/dist/calendar/calculate/getQuarter.d.ts +36 -0
  25. package/dist/calendar/calculate/getQuarter.js +64 -0
  26. package/dist/calendar/calculate/index.d.ts +6 -0
  27. package/dist/calendar/calculate/index.js +6 -0
  28. package/dist/calendar/index.d.ts +4 -0
  29. package/dist/calendar/index.js +5 -0
  30. package/dist/calendar/validate/index.d.ts +4 -0
  31. package/dist/calendar/validate/index.js +4 -0
  32. package/dist/calendar/validate/isValidBusinessCalendar.d.ts +31 -0
  33. package/dist/calendar/validate/isValidBusinessCalendar.js +40 -0
  34. package/dist/calendar/validate/isValidFiscalPattern.d.ts +25 -0
  35. package/dist/calendar/validate/isValidFiscalPattern.js +29 -0
  36. package/dist/calendar/validate/isValidRollConvention.d.ts +28 -0
  37. package/dist/calendar/validate/isValidRollConvention.js +38 -0
  38. package/dist/calendar/validate/isValidZoneBucketUnit.d.ts +31 -0
  39. package/dist/calendar/validate/isValidZoneBucketUnit.js +39 -0
  40. package/dist/duration/calculate/durationAs.d.ts +27 -3
  41. package/dist/duration/calculate/durationAs.js +34 -8
  42. package/dist/duration/calculate/getDurationUnit.d.ts +5 -2
  43. package/dist/duration/calculate/getDurationUnit.js +7 -3
  44. package/dist/duration/compare/compareDurations.d.ts +25 -2
  45. package/dist/duration/compare/compareDurations.js +31 -7
  46. package/dist/duration/format/formatDuration.d.ts +14 -5
  47. package/dist/duration/format/formatDuration.js +47 -11
  48. package/dist/duration/index.d.ts +1 -0
  49. package/dist/duration/index.js +2 -0
  50. package/dist/duration/normalize/normalizeDuration.d.ts +33 -6
  51. package/dist/duration/normalize/normalizeDuration.js +41 -12
  52. package/dist/duration/parse/parseDuration.js +4 -0
  53. package/dist/index.d.ts +7 -0
  54. package/dist/index.js +7 -0
  55. package/dist/instant/convert/classifyLocal.d.ts +50 -0
  56. package/dist/instant/convert/classifyLocal.js +60 -0
  57. package/dist/instant/convert/fromOffsetInstant.d.ts +47 -0
  58. package/dist/instant/convert/fromOffsetInstant.js +91 -0
  59. package/dist/instant/convert/index.d.ts +4 -0
  60. package/dist/instant/convert/index.js +4 -0
  61. package/dist/instant/convert/resolveLocal.d.ts +40 -0
  62. package/dist/instant/convert/resolveLocal.js +76 -0
  63. package/dist/instant/convert/toOffsetInstant.d.ts +96 -0
  64. package/dist/instant/convert/toOffsetInstant.js +162 -0
  65. package/dist/instant/index.d.ts +2 -0
  66. package/dist/instant/index.js +3 -0
  67. package/dist/intermodal/calculate/billingTimeline.d.ts +94 -0
  68. package/dist/intermodal/calculate/billingTimeline.js +168 -0
  69. package/dist/intermodal/calculate/chargeableDays.d.ts +98 -0
  70. package/dist/intermodal/calculate/chargeableDays.js +101 -0
  71. package/dist/intermodal/calculate/demurrageClock.d.ts +93 -0
  72. package/dist/intermodal/calculate/demurrageClock.js +140 -0
  73. package/dist/intermodal/calculate/freeTimeExpiry.d.ts +66 -0
  74. package/dist/intermodal/calculate/freeTimeExpiry.js +82 -0
  75. package/dist/intermodal/calculate/index.d.ts +4 -0
  76. package/dist/intermodal/calculate/index.js +4 -0
  77. package/dist/intermodal/index.d.ts +2 -0
  78. package/dist/intermodal/index.js +3 -0
  79. package/dist/internal/adjustZonedBusinessDays.js +9 -7
  80. package/dist/internal/businessCalendar.d.ts +46 -0
  81. package/dist/internal/businessCalendar.js +230 -0
  82. package/dist/internal/businessDayValues.d.ts +20 -0
  83. package/dist/internal/businessDayValues.js +54 -0
  84. package/dist/internal/calendarDatePairPolicy.d.ts +10 -12
  85. package/dist/internal/calendarDatePairPolicy.js +13 -19
  86. package/dist/internal/calendarDateString.d.ts +32 -58
  87. package/dist/internal/calendarDateString.js +51 -93
  88. package/dist/internal/calendarSystemIds.d.ts +26 -2
  89. package/dist/internal/calendarSystemIds.js +57 -51
  90. package/dist/internal/calendarValueOfDate.d.ts +10 -12
  91. package/dist/internal/calendarValueOfDate.js +22 -20
  92. package/dist/internal/calendarValueOfZoned.d.ts +14 -17
  93. package/dist/internal/calendarValueOfZoned.js +25 -25
  94. package/dist/internal/calendarZonedPairPolicy.d.ts +11 -18
  95. package/dist/internal/calendarZonedPairPolicy.js +14 -25
  96. package/dist/internal/calendarZonedString.d.ts +41 -65
  97. package/dist/internal/calendarZonedString.js +52 -101
  98. package/dist/internal/compareUnixEpochs.d.ts +14 -0
  99. package/dist/internal/compareUnixEpochs.js +25 -0
  100. package/dist/internal/dateTimeUnitHelpers.d.ts +18 -0
  101. package/dist/internal/dateTimeUnitHelpers.js +27 -0
  102. package/dist/internal/dateUnitHelpers.d.ts +39 -1
  103. package/dist/internal/dateUnitHelpers.js +73 -11
  104. package/dist/internal/defaultFractionalDigits.d.ts +14 -0
  105. package/dist/internal/defaultFractionalDigits.js +23 -0
  106. package/dist/internal/differenceRecord.d.ts +32 -0
  107. package/dist/internal/differenceRecord.js +79 -0
  108. package/dist/internal/divisionBoundary.d.ts +19 -0
  109. package/dist/internal/divisionBoundary.js +23 -0
  110. package/dist/internal/durationUntilString.d.ts +1 -1
  111. package/dist/internal/durationUntilString.js +10 -2
  112. package/dist/internal/englishCalendarNames.d.ts +11 -0
  113. package/dist/internal/englishCalendarNames.js +21 -1
  114. package/dist/internal/epochNanoseconds.d.ts +27 -0
  115. package/dist/internal/epochNanoseconds.js +31 -0
  116. package/dist/internal/fiscalCalendar.d.ts +36 -0
  117. package/dist/internal/fiscalCalendar.js +86 -0
  118. package/dist/internal/floorDivide.d.ts +15 -0
  119. package/dist/internal/floorDivide.js +18 -0
  120. package/dist/internal/foreignEpochs.d.ts +134 -0
  121. package/dist/internal/foreignEpochs.js +139 -0
  122. package/dist/internal/formatCalendarDays.d.ts +28 -0
  123. package/dist/internal/formatCalendarDays.js +49 -0
  124. package/dist/internal/formatDateInCalendar.d.ts +14 -39
  125. package/dist/internal/formatDateInCalendar.js +16 -47
  126. package/dist/internal/formatRelativeDuration.d.ts +27 -0
  127. package/dist/internal/formatRelativeDuration.js +45 -0
  128. package/dist/internal/freeTimeLedger.d.ts +93 -0
  129. package/dist/internal/freeTimeLedger.js +262 -0
  130. package/dist/internal/getLocaleFirstDayOfWeek.d.ts +9 -6
  131. package/dist/internal/getLocaleFirstDayOfWeek.js +9 -10
  132. package/dist/internal/getLocaleWeekYearBounds.d.ts +17 -9
  133. package/dist/internal/getLocaleWeekYearBounds.js +45 -26
  134. package/dist/internal/getLocaleWeekendDays.d.ts +9 -18
  135. package/dist/internal/getLocaleWeekendDays.js +9 -5
  136. package/dist/internal/halfOpenIntervals.d.ts +102 -0
  137. package/dist/internal/halfOpenIntervals.js +180 -0
  138. package/dist/internal/hasCalendarAnnotation.d.ts +20 -20
  139. package/dist/internal/hasCalendarAnnotation.js +23 -21
  140. package/dist/internal/hourDurationString.d.ts +16 -0
  141. package/dist/internal/hourDurationString.js +47 -0
  142. package/dist/internal/httpDateFields.d.ts +24 -0
  143. package/dist/internal/httpDateFields.js +86 -0
  144. package/dist/internal/index.d.ts +30 -9
  145. package/dist/internal/index.js +30 -9
  146. package/dist/internal/instantFormatOptions.d.ts +43 -0
  147. package/dist/internal/instantFormatOptions.js +99 -0
  148. package/dist/internal/instantIntervalText.d.ts +20 -0
  149. package/dist/internal/instantIntervalText.js +25 -0
  150. package/dist/internal/instantNanoseconds.d.ts +25 -0
  151. package/dist/internal/instantNanoseconds.js +41 -0
  152. package/dist/internal/intervalCountHelpers.d.ts +16 -10
  153. package/dist/internal/intervalCountHelpers.js +1 -31
  154. package/dist/internal/intervalNanoseconds.d.ts +47 -0
  155. package/dist/internal/intervalNanoseconds.js +86 -0
  156. package/dist/internal/isObject.d.ts +26 -0
  157. package/dist/internal/isObject.js +30 -0
  158. package/dist/internal/isoStringBody.d.ts +66 -0
  159. package/dist/internal/isoStringBody.js +105 -0
  160. package/dist/internal/joinDateTimeConnector.d.ts +1 -1
  161. package/dist/internal/localeWeekInfo.d.ts +34 -0
  162. package/dist/internal/localeWeekInfo.js +27 -0
  163. package/dist/internal/maxPieces.d.ts +41 -0
  164. package/dist/internal/maxPieces.js +53 -0
  165. package/dist/internal/measureNearRangeEnd.d.ts +26 -0
  166. package/dist/internal/measureNearRangeEnd.js +47 -0
  167. package/dist/internal/monthGridWeekRow.d.ts +4 -1
  168. package/dist/internal/monthGridWeekRow.js +3 -0
  169. package/dist/internal/normalizeTimeZone.d.ts +17 -10
  170. package/dist/internal/normalizeTimeZone.js +25 -15
  171. package/dist/internal/patternToken.d.ts +2 -1
  172. package/dist/internal/patternToken.js +10 -4
  173. package/dist/internal/plainDateAdd.d.ts +20 -0
  174. package/dist/internal/plainDateAdd.js +42 -0
  175. package/dist/internal/plainDateUntil.d.ts +21 -0
  176. package/dist/internal/plainDateUntil.js +48 -0
  177. package/dist/internal/plainFormatOptions.d.ts +59 -0
  178. package/dist/internal/plainFormatOptions.js +165 -0
  179. package/dist/internal/resolveDateTimeUnit.d.ts +4 -1
  180. package/dist/internal/resolveDateTimeUnit.js +2 -12
  181. package/dist/internal/resolveDurationRelativeTo.d.ts +28 -22
  182. package/dist/internal/resolveDurationRelativeTo.js +69 -25
  183. package/dist/internal/resolveDurationUnit.d.ts +4 -1
  184. package/dist/internal/resolveDurationUnit.js +2 -11
  185. package/dist/internal/resolveLocale.d.ts +37 -0
  186. package/dist/internal/resolveLocale.js +59 -0
  187. package/dist/internal/resolveManualRoundingOptions.d.ts +23 -0
  188. package/dist/internal/resolveManualRoundingOptions.js +39 -0
  189. package/dist/internal/resolveMinimalDaysInFirstWeek.d.ts +19 -0
  190. package/dist/internal/resolveMinimalDaysInFirstWeek.js +28 -0
  191. package/dist/internal/resolveOverflow.d.ts +6 -0
  192. package/dist/internal/resolveOverflow.js +7 -1
  193. package/dist/internal/resolveReadingTimeZone.d.ts +11 -0
  194. package/dist/internal/resolveReadingTimeZone.js +18 -0
  195. package/dist/internal/resolveUnixIntervalPair.d.ts +30 -0
  196. package/dist/internal/resolveUnixIntervalPair.js +53 -0
  197. package/dist/internal/resolveWeekStartsOn.d.ts +12 -0
  198. package/dist/internal/resolveWeekStartsOn.js +18 -0
  199. package/dist/internal/rfc5322DateTime.d.ts +26 -0
  200. package/dist/internal/rfc5322DateTime.js +176 -0
  201. package/dist/internal/splitStep.d.ts +81 -0
  202. package/dist/internal/splitStep.js +182 -0
  203. package/dist/internal/startOrEndOfUnix.d.ts +26 -0
  204. package/dist/internal/startOrEndOfUnix.js +47 -0
  205. package/dist/{utc/calculate → internal}/startOrEndOfUtc.d.ts +8 -4
  206. package/dist/{utc/calculate → internal}/startOrEndOfUtc.js +30 -26
  207. package/dist/internal/startOrEndOfZoned.d.ts +22 -0
  208. package/dist/internal/startOrEndOfZoned.js +49 -0
  209. package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +33 -0
  210. package/dist/internal/temporalCompat/calendarDateArithmetic.js +199 -0
  211. package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +36 -0
  212. package/dist/internal/temporalCompat/calendarDateFromFields.js +120 -0
  213. package/dist/internal/temporalCompat/calendarFields.d.ts +25 -0
  214. package/dist/internal/temporalCompat/calendarFields.js +131 -0
  215. package/dist/internal/temporalCompat/capabilities.d.ts +28 -0
  216. package/dist/internal/temporalCompat/capabilities.js +74 -0
  217. package/dist/internal/temporalCompat/fieldSearch.d.ts +21 -0
  218. package/dist/internal/temporalCompat/fieldSearch.js +83 -0
  219. package/dist/internal/temporalCompat/fixedDay.d.ts +25 -0
  220. package/dist/internal/temporalCompat/fixedDay.js +45 -0
  221. package/dist/internal/temporalCompat/hebrewArithmetic.d.ts +19 -0
  222. package/dist/internal/temporalCompat/hebrewArithmetic.js +150 -0
  223. package/dist/internal/temporalCompat/index.d.ts +4 -0
  224. package/dist/internal/temporalCompat/index.js +5 -0
  225. package/dist/internal/temporalCompat/indianArithmetic.d.ts +16 -0
  226. package/dist/internal/temporalCompat/indianArithmetic.js +87 -0
  227. package/dist/internal/temporalCompat/largeMonthSpan.d.ts +19 -0
  228. package/dist/internal/temporalCompat/largeMonthSpan.js +199 -0
  229. package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +59 -0
  230. package/dist/internal/temporalCompat/nonIsoArithmetic.js +220 -0
  231. package/dist/internal/temporalCompat/readArithmeticModel.d.ts +3 -0
  232. package/dist/internal/temporalCompat/readArithmeticModel.js +284 -0
  233. package/dist/internal/temporalCompat/repros.d.ts +31 -0
  234. package/dist/internal/temporalCompat/repros.js +556 -0
  235. package/dist/internal/toInstantFromUtc.d.ts +10 -0
  236. package/dist/internal/toInstantFromUtc.js +19 -0
  237. package/dist/internal/unixEpochValue.d.ts +166 -0
  238. package/dist/internal/unixEpochValue.js +245 -0
  239. package/dist/internal/unixFormatReference.d.ts +18 -0
  240. package/dist/internal/unixFormatReference.js +44 -0
  241. package/dist/internal/unixZonedDateTime.d.ts +22 -0
  242. package/dist/internal/unixZonedDateTime.js +32 -0
  243. package/dist/internal/utcOffsetString.d.ts +39 -0
  244. package/dist/internal/utcOffsetString.js +75 -0
  245. package/dist/internal/utcZonedDateTime.d.ts +16 -0
  246. package/dist/internal/utcZonedDateTime.js +28 -0
  247. package/dist/internal/wallClockAtOffset.d.ts +22 -0
  248. package/dist/internal/wallClockAtOffset.js +26 -0
  249. package/dist/internal/zonedBucket.d.ts +91 -0
  250. package/dist/internal/zonedBucket.js +441 -0
  251. package/dist/internal/zonedFormatReference.d.ts +15 -0
  252. package/dist/internal/zonedFormatReference.js +24 -0
  253. package/dist/internal/zonedLocalDates.d.ts +15 -0
  254. package/dist/internal/zonedLocalDates.js +58 -0
  255. package/dist/internal/zonedNowUnitValue.d.ts +24 -0
  256. package/dist/internal/zonedNowUnitValue.js +58 -0
  257. package/dist/internal/zonedWallClock.d.ts +84 -0
  258. package/dist/internal/zonedWallClock.js +427 -0
  259. package/dist/internal/zonedWallClockDifference.d.ts +92 -0
  260. package/dist/internal/zonedWallClockDifference.js +1174 -0
  261. package/dist/internal/zonedWallClockOperations.d.ts +132 -0
  262. package/dist/internal/zonedWallClockOperations.js +553 -0
  263. package/dist/internal/zonelessCalendarDate.d.ts +12 -0
  264. package/dist/internal/zonelessCalendarDate.js +22 -0
  265. package/dist/interval/calculate/clampInterval.d.ts +22 -0
  266. package/dist/interval/calculate/clampInterval.js +31 -0
  267. package/dist/interval/calculate/index.d.ts +6 -0
  268. package/dist/interval/calculate/index.js +6 -0
  269. package/dist/interval/calculate/intersectIntervals.d.ts +23 -0
  270. package/dist/interval/calculate/intersectIntervals.js +43 -0
  271. package/dist/interval/calculate/mergeIntervals.d.ts +28 -0
  272. package/dist/interval/calculate/mergeIntervals.js +44 -0
  273. package/dist/interval/calculate/splitIntervalAt.d.ts +28 -0
  274. package/dist/interval/calculate/splitIntervalAt.js +63 -0
  275. package/dist/interval/calculate/subtractIntervals.d.ts +31 -0
  276. package/dist/interval/calculate/subtractIntervals.js +64 -0
  277. package/dist/interval/calculate/sumIntervals.d.ts +26 -0
  278. package/dist/interval/calculate/sumIntervals.js +40 -0
  279. package/dist/interval/compare/index.d.ts +2 -0
  280. package/dist/interval/compare/index.js +2 -0
  281. package/dist/interval/compare/intervalContains.d.ts +25 -0
  282. package/dist/interval/compare/intervalContains.js +39 -0
  283. package/dist/interval/compare/intervalsOverlap.d.ts +28 -0
  284. package/dist/interval/compare/intervalsOverlap.js +42 -0
  285. package/dist/interval/index.d.ts +4 -0
  286. package/dist/interval/index.js +5 -0
  287. package/dist/interval/validate/index.d.ts +1 -0
  288. package/dist/interval/validate/index.js +1 -0
  289. package/dist/interval/validate/isValidInterval.d.ts +29 -0
  290. package/dist/interval/validate/isValidInterval.js +38 -0
  291. package/dist/plain/calculate/addBusinessDays.d.ts +26 -9
  292. package/dist/plain/calculate/addBusinessDays.js +29 -21
  293. package/dist/plain/calculate/addDate.d.ts +9 -8
  294. package/dist/plain/calculate/addDate.js +35 -22
  295. package/dist/plain/calculate/addDateTime.js +24 -10
  296. package/dist/plain/calculate/addTime.d.ts +5 -8
  297. package/dist/plain/calculate/addTime.js +23 -16
  298. package/dist/plain/calculate/clampDate.js +3 -3
  299. package/dist/plain/calculate/closestDateTo.d.ts +11 -7
  300. package/dist/plain/calculate/closestDateTo.js +36 -24
  301. package/dist/plain/calculate/cycleDate.d.ts +1 -1
  302. package/dist/plain/calculate/cycleDate.js +10 -3
  303. package/dist/plain/calculate/cycleDateTime.d.ts +1 -1
  304. package/dist/plain/calculate/cycleDateTime.js +10 -3
  305. package/dist/plain/calculate/cycleTime.d.ts +6 -8
  306. package/dist/plain/calculate/cycleTime.js +15 -9
  307. package/dist/plain/calculate/diffDate.d.ts +31 -14
  308. package/dist/plain/calculate/diffDate.js +73 -38
  309. package/dist/plain/calculate/diffDateAsDuration.d.ts +13 -8
  310. package/dist/plain/calculate/diffDateAsDuration.js +22 -9
  311. package/dist/plain/calculate/diffDateTime.d.ts +17 -5
  312. package/dist/plain/calculate/diffDateTime.js +67 -28
  313. package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +2 -2
  314. package/dist/plain/calculate/diffDateTimeAsDuration.js +10 -3
  315. package/dist/plain/calculate/diffTime.d.ts +18 -5
  316. package/dist/plain/calculate/diffTime.js +68 -27
  317. package/dist/plain/calculate/endOfDate.d.ts +10 -2
  318. package/dist/plain/calculate/endOfDate.js +52 -27
  319. package/dist/plain/calculate/endOfDateTime.d.ts +17 -2
  320. package/dist/plain/calculate/endOfDateTime.js +126 -103
  321. package/dist/plain/calculate/endOfTime.d.ts +16 -2
  322. package/dist/plain/calculate/endOfTime.js +77 -59
  323. package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +13 -5
  324. package/dist/plain/calculate/getLargestDateDurationUnit.js +26 -10
  325. package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +13 -6
  326. package/dist/plain/calculate/getLargestDateTimeDurationUnit.js +37 -22
  327. package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +13 -6
  328. package/dist/plain/calculate/getLargestTimeDurationUnit.js +33 -18
  329. package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +8 -4
  330. package/dist/plain/calculate/getLocaleDayOfWeek.js +8 -3
  331. package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +8 -4
  332. package/dist/plain/calculate/getLocaleEndOfWeek.js +8 -3
  333. package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +8 -4
  334. package/dist/plain/calculate/getLocaleStartOfWeek.js +8 -3
  335. package/dist/plain/calculate/getLocaleWeekYear.d.ts +29 -19
  336. package/dist/plain/calculate/getLocaleWeekYear.js +48 -28
  337. package/dist/plain/calculate/getWeekNumber.d.ts +21 -2
  338. package/dist/plain/calculate/getWeekNumber.js +33 -12
  339. package/dist/plain/calculate/getWeekOfMonth.d.ts +4 -2
  340. package/dist/plain/calculate/getWeekOfMonth.js +8 -3
  341. package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +25 -14
  342. package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +45 -25
  343. package/dist/plain/calculate/getWeeksInMonth.d.ts +4 -2
  344. package/dist/plain/calculate/getWeeksInMonth.js +8 -3
  345. package/dist/plain/calculate/getWeeksInYear.d.ts +5 -4
  346. package/dist/plain/calculate/getWeeksInYear.js +9 -14
  347. package/dist/plain/calculate/maxDate.js +19 -12
  348. package/dist/plain/calculate/maxDateTime.js +19 -12
  349. package/dist/plain/calculate/maxTime.js +19 -12
  350. package/dist/plain/calculate/minDate.js +19 -12
  351. package/dist/plain/calculate/minDateTime.js +19 -12
  352. package/dist/plain/calculate/minTime.js +19 -12
  353. package/dist/plain/calculate/nextWeekday.js +5 -0
  354. package/dist/plain/calculate/previousWeekday.js +5 -0
  355. package/dist/plain/calculate/roundDate.d.ts +23 -5
  356. package/dist/plain/calculate/roundDate.js +88 -46
  357. package/dist/plain/calculate/roundDateTime.d.ts +27 -3
  358. package/dist/plain/calculate/roundDateTime.js +128 -69
  359. package/dist/plain/calculate/roundTime.d.ts +8 -1
  360. package/dist/plain/calculate/roundTime.js +32 -17
  361. package/dist/plain/calculate/setDate.js +4 -0
  362. package/dist/plain/calculate/setDateTime.js +4 -0
  363. package/dist/plain/calculate/setTime.d.ts +1 -1
  364. package/dist/plain/calculate/setTime.js +5 -1
  365. package/dist/plain/calculate/sortDateTimes.js +17 -10
  366. package/dist/plain/calculate/sortDates.js +17 -10
  367. package/dist/plain/calculate/sortTimes.js +17 -10
  368. package/dist/plain/calculate/startOfDate.d.ts +7 -2
  369. package/dist/plain/calculate/startOfDate.js +52 -27
  370. package/dist/plain/calculate/startOfDateTime.d.ts +5 -2
  371. package/dist/plain/calculate/startOfDateTime.js +81 -62
  372. package/dist/plain/calculate/startOfQuarterForDateTime.d.ts +2 -0
  373. package/dist/plain/calculate/startOfQuarterForDateTime.js +12 -1
  374. package/dist/plain/calculate/startOfTime.d.ts +15 -2
  375. package/dist/plain/calculate/startOfTime.js +33 -37
  376. package/dist/plain/calculate/subtractBusinessDays.d.ts +25 -10
  377. package/dist/plain/calculate/subtractBusinessDays.js +28 -22
  378. package/dist/plain/calculate/subtractDate.d.ts +8 -7
  379. package/dist/plain/calculate/subtractDate.js +35 -21
  380. package/dist/plain/calculate/subtractDateTime.js +24 -10
  381. package/dist/plain/calculate/subtractTime.d.ts +5 -8
  382. package/dist/plain/calculate/subtractTime.js +23 -16
  383. package/dist/plain/chop/index.d.ts +0 -1
  384. package/dist/plain/chop/index.js +0 -1
  385. package/dist/plain/compare/areDateTimesEqualBy.d.ts +10 -5
  386. package/dist/plain/compare/areDateTimesEqualBy.js +35 -10
  387. package/dist/plain/compare/areDatesEqualBy.d.ts +10 -3
  388. package/dist/plain/compare/areDatesEqualBy.js +41 -14
  389. package/dist/plain/compare/isBetweenDate.js +32 -16
  390. package/dist/plain/compare/isBetweenDateTime.js +34 -18
  391. package/dist/plain/compare/isBetweenTime.js +32 -16
  392. package/dist/plain/compare/isBusinessDay.d.ts +25 -11
  393. package/dist/plain/compare/isBusinessDay.js +36 -15
  394. package/dist/plain/compare/isThisUnit.d.ts +13 -4
  395. package/dist/plain/compare/isThisUnit.js +33 -13
  396. package/dist/plain/compare/isWeekend.d.ts +8 -4
  397. package/dist/plain/compare/isWeekend.js +7 -3
  398. package/dist/plain/convert/convertDateToCalendar.d.ts +34 -33
  399. package/dist/plain/convert/convertDateToCalendar.js +41 -40
  400. package/dist/plain/format/formatCalendar.d.ts +12 -6
  401. package/dist/plain/format/formatCalendar.js +47 -25
  402. package/dist/plain/format/formatDate.d.ts +21 -4
  403. package/dist/plain/format/formatDate.js +37 -5
  404. package/dist/plain/format/formatDateRange.d.ts +17 -4
  405. package/dist/plain/format/formatDateRange.js +29 -5
  406. package/dist/plain/format/formatDateTime.d.ts +22 -4
  407. package/dist/plain/format/formatDateTime.js +31 -5
  408. package/dist/plain/format/formatDateTimeRange.d.ts +20 -4
  409. package/dist/plain/format/formatDateTimeRange.js +29 -5
  410. package/dist/plain/format/formatDateTimeToParts.d.ts +32 -6
  411. package/dist/plain/format/formatDateTimeToParts.js +40 -14
  412. package/dist/plain/format/formatDateToParts.d.ts +24 -3
  413. package/dist/plain/format/formatDateToParts.js +36 -11
  414. package/dist/plain/format/formatRelativeDate.d.ts +7 -3
  415. package/dist/plain/format/formatRelativeDate.js +39 -24
  416. package/dist/plain/format/formatRelativeDateTime.d.ts +15 -6
  417. package/dist/plain/format/formatRelativeDateTime.js +35 -33
  418. package/dist/plain/format/formatRelativeTime.d.ts +8 -4
  419. package/dist/plain/format/formatRelativeTime.js +36 -21
  420. package/dist/plain/format/formatSql.d.ts +15 -10
  421. package/dist/plain/format/formatSql.js +20 -11
  422. package/dist/plain/format/formatTime.d.ts +18 -4
  423. package/dist/plain/format/formatTime.js +32 -5
  424. package/dist/plain/get/getNowUnit.d.ts +3 -0
  425. package/dist/plain/get/getNowUnit.js +14 -29
  426. package/dist/plain/index.js +1 -1
  427. package/dist/plain/interval/intervalAbutsDate.d.ts +12 -7
  428. package/dist/plain/interval/intervalAbutsDate.js +15 -19
  429. package/dist/plain/interval/intervalAbutsDateTime.d.ts +9 -7
  430. package/dist/plain/interval/intervalAbutsDateTime.js +17 -23
  431. package/dist/plain/interval/intervalAbutsTime.d.ts +11 -5
  432. package/dist/plain/interval/intervalAbutsTime.js +19 -21
  433. package/dist/plain/interval/intervalContainsDate.d.ts +17 -10
  434. package/dist/plain/interval/intervalContainsDate.js +20 -15
  435. package/dist/plain/interval/intervalContainsDateTime.d.ts +16 -11
  436. package/dist/plain/interval/intervalContainsDateTime.js +24 -20
  437. package/dist/plain/interval/intervalContainsTime.d.ts +20 -10
  438. package/dist/plain/interval/intervalContainsTime.js +28 -19
  439. package/dist/plain/interval/intervalCountDate.d.ts +13 -8
  440. package/dist/plain/interval/intervalCountDate.js +46 -14
  441. package/dist/plain/interval/intervalCountDateTime.d.ts +6 -4
  442. package/dist/plain/interval/intervalCountDateTime.js +63 -18
  443. package/dist/plain/interval/intervalCountTime.d.ts +3 -4
  444. package/dist/plain/interval/intervalCountTime.js +9 -9
  445. package/dist/plain/interval/intervalDifferenceDate.d.ts +13 -6
  446. package/dist/plain/interval/intervalDifferenceDate.js +19 -32
  447. package/dist/plain/interval/intervalDifferenceDateTime.d.ts +10 -4
  448. package/dist/plain/interval/intervalDifferenceDateTime.js +21 -27
  449. package/dist/plain/interval/intervalDifferenceTime.d.ts +11 -4
  450. package/dist/plain/interval/intervalDifferenceTime.js +22 -27
  451. package/dist/plain/interval/intervalDivideEquallyDate.d.ts +16 -4
  452. package/dist/plain/interval/intervalDivideEquallyDate.js +57 -33
  453. package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +16 -4
  454. package/dist/plain/interval/intervalDivideEquallyDateTime.js +67 -31
  455. package/dist/plain/interval/intervalDivideEquallyTime.d.ts +16 -4
  456. package/dist/plain/interval/intervalDivideEquallyTime.js +58 -31
  457. package/dist/plain/interval/intervalEngulfsDate.d.ts +16 -9
  458. package/dist/plain/interval/intervalEngulfsDate.js +19 -12
  459. package/dist/plain/interval/intervalEngulfsDateTime.d.ts +16 -11
  460. package/dist/plain/interval/intervalEngulfsDateTime.js +24 -18
  461. package/dist/plain/interval/intervalEngulfsTime.d.ts +18 -8
  462. package/dist/plain/interval/intervalEngulfsTime.js +26 -15
  463. package/dist/plain/interval/intervalFromDurationDate.d.ts +5 -4
  464. package/dist/plain/interval/intervalFromDurationDate.js +11 -8
  465. package/dist/plain/interval/intervalFromDurationDateTime.js +4 -0
  466. package/dist/plain/interval/intervalFromDurationTime.d.ts +10 -12
  467. package/dist/plain/interval/intervalFromDurationTime.js +28 -17
  468. package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -4
  469. package/dist/plain/interval/intervalIntersectionDate.js +14 -9
  470. package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -4
  471. package/dist/plain/interval/intervalIntersectionDateTime.js +19 -13
  472. package/dist/plain/interval/intervalIntersectionTime.d.ts +7 -3
  473. package/dist/plain/interval/intervalIntersectionTime.js +17 -12
  474. package/dist/plain/interval/intervalLengthDate.d.ts +9 -6
  475. package/dist/plain/interval/intervalLengthDate.js +40 -8
  476. package/dist/plain/interval/intervalLengthDateTime.js +2 -2
  477. package/dist/plain/interval/intervalOverlappingDaysDate.d.ts +16 -17
  478. package/dist/plain/interval/intervalOverlappingDaysDate.js +30 -30
  479. package/dist/plain/interval/intervalOverlappingDaysDateTime.d.ts +7 -12
  480. package/dist/plain/interval/intervalOverlappingDaysDateTime.js +24 -24
  481. package/dist/plain/interval/intervalSplitAtDate.d.ts +10 -5
  482. package/dist/plain/interval/intervalSplitAtDate.js +48 -36
  483. package/dist/plain/interval/intervalSplitAtDateTime.d.ts +9 -4
  484. package/dist/plain/interval/intervalSplitAtDateTime.js +44 -32
  485. package/dist/plain/interval/intervalSplitAtTime.d.ts +9 -4
  486. package/dist/plain/interval/intervalSplitAtTime.js +44 -32
  487. package/dist/plain/interval/intervalUnionDate.d.ts +14 -6
  488. package/dist/plain/interval/intervalUnionDate.js +19 -11
  489. package/dist/plain/interval/intervalUnionDateTime.d.ts +12 -5
  490. package/dist/plain/interval/intervalUnionDateTime.js +22 -14
  491. package/dist/plain/interval/intervalUnionTime.d.ts +10 -3
  492. package/dist/plain/interval/intervalUnionTime.js +20 -12
  493. package/dist/plain/interval/intervalXorAllDate.d.ts +11 -10
  494. package/dist/plain/interval/intervalXorAllDate.js +37 -59
  495. package/dist/plain/interval/intervalXorAllDateTime.d.ts +7 -5
  496. package/dist/plain/interval/intervalXorAllDateTime.js +28 -48
  497. package/dist/plain/interval/intervalXorAllTime.d.ts +8 -4
  498. package/dist/plain/interval/intervalXorAllTime.js +29 -47
  499. package/dist/plain/interval/intervalXorDate.d.ts +10 -9
  500. package/dist/plain/interval/intervalXorDate.js +19 -54
  501. package/dist/plain/interval/intervalXorDateTime.d.ts +9 -7
  502. package/dist/plain/interval/intervalXorDateTime.js +23 -50
  503. package/dist/plain/interval/intervalXorTime.d.ts +8 -7
  504. package/dist/plain/interval/intervalXorTime.js +22 -50
  505. package/dist/plain/interval/intervalsOverlapDate.d.ts +14 -7
  506. package/dist/plain/interval/intervalsOverlapDate.js +17 -10
  507. package/dist/plain/interval/intervalsOverlapDateTime.d.ts +12 -7
  508. package/dist/plain/interval/intervalsOverlapDateTime.js +20 -14
  509. package/dist/plain/interval/intervalsOverlapTime.d.ts +10 -5
  510. package/dist/plain/interval/intervalsOverlapTime.js +18 -12
  511. package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -5
  512. package/dist/plain/interval/mergeIntervalsDate.js +37 -38
  513. package/dist/plain/interval/mergeIntervalsDateTime.d.ts +7 -3
  514. package/dist/plain/interval/mergeIntervalsDateTime.js +31 -32
  515. package/dist/plain/interval/mergeIntervalsTime.d.ts +7 -3
  516. package/dist/plain/interval/mergeIntervalsTime.js +31 -31
  517. package/dist/plain/interval/splitIntervalByUnitDate.d.ts +26 -6
  518. package/dist/plain/interval/splitIntervalByUnitDate.js +76 -43
  519. package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -2
  520. package/dist/plain/interval/splitIntervalByUnitDateTime.js +65 -39
  521. package/dist/plain/interval/splitIntervalByUnitTime.d.ts +18 -2
  522. package/dist/plain/interval/splitIntervalByUnitTime.js +76 -39
  523. package/dist/plain/interval/validate/isValidDateInterval.d.ts +4 -2
  524. package/dist/plain/interval/validate/isValidDateInterval.js +4 -2
  525. package/dist/plain/interval/validate/isValidDateTimeInterval.d.ts +5 -0
  526. package/dist/plain/interval/validate/isValidDateTimeInterval.js +7 -2
  527. package/dist/plain/interval/validate/isValidTimeInterval.d.ts +5 -0
  528. package/dist/plain/interval/validate/isValidTimeInterval.js +8 -18
  529. package/dist/plain/locale/getLocaleEraNames.d.ts +14 -4
  530. package/dist/plain/locale/getLocaleEraNames.js +56 -41
  531. package/dist/plain/locale/getLocaleMeridiems.d.ts +7 -4
  532. package/dist/plain/locale/getLocaleMeridiems.js +28 -22
  533. package/dist/plain/locale/getLocaleMonthNames.d.ts +14 -4
  534. package/dist/plain/locale/getLocaleMonthNames.js +34 -19
  535. package/dist/plain/locale/getLocaleWeekdayNames.d.ts +14 -7
  536. package/dist/plain/locale/getLocaleWeekdayNames.js +40 -22
  537. package/dist/plain/map/mapDatesInRange.d.ts +18 -1
  538. package/dist/plain/map/mapDatesInRange.js +53 -17
  539. package/dist/plain/parse/parseDateTimeWithPattern.d.ts +3 -2
  540. package/dist/plain/parse/parseDateTimeWithPattern.js +30 -24
  541. package/dist/plain/parse/parseDateWithPattern.d.ts +3 -2
  542. package/dist/plain/parse/parseDateWithPattern.js +22 -16
  543. package/dist/plain/parse/parseMicrosecondFromDateTime.d.ts +2 -1
  544. package/dist/plain/parse/parseMicrosecondFromDateTime.js +2 -1
  545. package/dist/plain/parse/parseMicrosecondFromTime.d.ts +2 -1
  546. package/dist/plain/parse/parseMicrosecondFromTime.js +2 -1
  547. package/dist/plain/parse/parseNanosecondFromDateTime.d.ts +2 -1
  548. package/dist/plain/parse/parseNanosecondFromDateTime.js +2 -1
  549. package/dist/plain/parse/parseNanosecondFromTime.d.ts +2 -1
  550. package/dist/plain/parse/parseNanosecondFromTime.js +2 -1
  551. package/dist/plain/parse/parseSql.d.ts +15 -12
  552. package/dist/plain/parse/parseSql.js +16 -13
  553. package/dist/plain/parse/parseTimeWithPattern.d.ts +3 -2
  554. package/dist/plain/parse/parseTimeWithPattern.js +27 -21
  555. package/dist/plain/parse/parseUnitFromDate.d.ts +9 -2
  556. package/dist/plain/parse/parseUnitFromDate.js +39 -19
  557. package/dist/plain/parse/parseUnitFromDateTime.d.ts +11 -3
  558. package/dist/plain/parse/parseUnitFromDateTime.js +54 -28
  559. package/dist/plain/parse/parseUnitFromTime.d.ts +9 -3
  560. package/dist/plain/parse/parseUnitFromTime.js +13 -3
  561. package/dist/plain/parse/parseWeekFromDate.d.ts +5 -0
  562. package/dist/plain/parse/parseWeekFromDate.js +24 -5
  563. package/dist/plain/parse/parseWeekFromDateTime.d.ts +5 -0
  564. package/dist/plain/parse/parseWeekFromDateTime.js +26 -5
  565. package/dist/plain/validate/isLeapSecond.d.ts +27 -9
  566. package/dist/plain/validate/isLeapSecond.js +30 -9
  567. package/dist/plain/validate/isLeapYear.d.ts +7 -1
  568. package/dist/plain/validate/isLeapYear.js +10 -1
  569. package/dist/plain/validate/isValidCalendarDate.d.ts +37 -6
  570. package/dist/plain/validate/isValidCalendarDate.js +37 -6
  571. package/dist/plain/validate/isValidDate.d.ts +9 -1
  572. package/dist/plain/validate/isValidDate.js +14 -5
  573. package/dist/plain/validate/isValidDateRange.d.ts +11 -4
  574. package/dist/plain/validate/isValidDateRange.js +32 -22
  575. package/dist/plain/validate/isValidDateTime.d.ts +7 -1
  576. package/dist/plain/validate/isValidDateTime.js +12 -5
  577. package/dist/plain/validate/isValidDateTimeRange.d.ts +3 -2
  578. package/dist/plain/validate/isValidDateTimeRange.js +30 -15
  579. package/dist/plain/validate/isValidIsoDateLike.d.ts +6 -1
  580. package/dist/plain/validate/isValidIsoDateLike.js +13 -8
  581. package/dist/plain/validate/isValidTime.d.ts +6 -1
  582. package/dist/plain/validate/isValidTime.js +10 -3
  583. package/dist/plain/validate/isValidTimeRange.d.ts +4 -2
  584. package/dist/plain/validate/isValidTimeRange.js +31 -27
  585. package/dist/precision/calculate/index.d.ts +1 -0
  586. package/dist/precision/calculate/index.js +1 -0
  587. package/dist/precision/calculate/truncateNanoseconds.d.ts +37 -0
  588. package/dist/precision/calculate/truncateNanoseconds.js +41 -0
  589. package/dist/precision/convert/fromDotNetTicks.d.ts +30 -0
  590. package/dist/precision/convert/fromDotNetTicks.js +39 -0
  591. package/dist/precision/convert/fromExcelSerial.d.ts +38 -0
  592. package/dist/precision/convert/fromExcelSerial.js +81 -0
  593. package/dist/precision/convert/fromFileTime.d.ts +30 -0
  594. package/dist/precision/convert/fromFileTime.js +39 -0
  595. package/dist/precision/convert/fromNanoseconds.d.ts +29 -0
  596. package/dist/precision/convert/fromNanoseconds.js +50 -0
  597. package/dist/precision/convert/fromNtpTimestamp.d.ts +43 -0
  598. package/dist/precision/convert/fromNtpTimestamp.js +57 -0
  599. package/dist/precision/convert/fromPgMicroseconds.d.ts +26 -0
  600. package/dist/precision/convert/fromPgMicroseconds.js +33 -0
  601. package/dist/precision/convert/index.d.ts +12 -0
  602. package/dist/precision/convert/index.js +12 -0
  603. package/dist/precision/convert/toDotNetTicks.d.ts +29 -0
  604. package/dist/precision/convert/toDotNetTicks.js +40 -0
  605. package/dist/precision/convert/toExcelSerial.d.ts +56 -0
  606. package/dist/precision/convert/toExcelSerial.js +85 -0
  607. package/dist/precision/convert/toFileTime.d.ts +31 -0
  608. package/dist/precision/convert/toFileTime.js +43 -0
  609. package/dist/precision/convert/toNanoseconds.d.ts +37 -0
  610. package/dist/precision/convert/toNanoseconds.js +40 -0
  611. package/dist/precision/convert/toNtpTimestamp.d.ts +30 -0
  612. package/dist/precision/convert/toNtpTimestamp.js +38 -0
  613. package/dist/precision/convert/toPgMicroseconds.d.ts +29 -0
  614. package/dist/precision/convert/toPgMicroseconds.js +42 -0
  615. package/dist/precision/format/formatNanoseconds.d.ts +26 -0
  616. package/dist/precision/format/formatNanoseconds.js +32 -0
  617. package/dist/precision/format/index.d.ts +1 -0
  618. package/dist/precision/format/index.js +1 -0
  619. package/dist/precision/index.d.ts +6 -0
  620. package/dist/precision/index.js +7 -0
  621. package/dist/precision/parse/index.d.ts +1 -0
  622. package/dist/precision/parse/index.js +1 -0
  623. package/dist/precision/parse/parseNanoseconds.d.ts +27 -0
  624. package/dist/precision/parse/parseNanoseconds.js +32 -0
  625. package/dist/precision/validate/index.d.ts +3 -0
  626. package/dist/precision/validate/index.js +3 -0
  627. package/dist/precision/validate/isValidInstant.d.ts +37 -0
  628. package/dist/precision/validate/isValidInstant.js +40 -0
  629. package/dist/precision/validate/isValidNanoPattern.d.ts +27 -0
  630. package/dist/precision/validate/isValidNanoPattern.js +40 -0
  631. package/dist/precision/validate/isValidNanoseconds.d.ts +25 -0
  632. package/dist/precision/validate/isValidNanoseconds.js +28 -0
  633. package/dist/regex/calendar-date.d.ts +25 -14
  634. package/dist/regex/calendar-date.js +26 -15
  635. package/dist/regex/calendar-zoned-date-time.d.ts +22 -38
  636. package/dist/regex/calendar-zoned-date-time.js +23 -39
  637. package/dist/regex/date-time.d.ts +14 -4
  638. package/dist/regex/date-time.js +15 -5
  639. package/dist/regex/date.d.ts +45 -3
  640. package/dist/regex/date.js +47 -5
  641. package/dist/regex/http-date.d.ts +10 -6
  642. package/dist/regex/http-date.js +10 -6
  643. package/dist/regex/index.d.ts +3 -0
  644. package/dist/regex/index.js +4 -0
  645. package/dist/regex/leap-second.d.ts +41 -8
  646. package/dist/regex/leap-second.js +42 -9
  647. package/dist/regex/nanoseconds.d.ts +20 -0
  648. package/dist/regex/nanoseconds.js +20 -0
  649. package/dist/regex/rfc-2822.d.ts +15 -7
  650. package/dist/regex/rfc-2822.js +15 -7
  651. package/dist/regex/rfc-3339.d.ts +8 -1
  652. package/dist/regex/rfc-3339.js +9 -2
  653. package/dist/regex/sql-date-time.d.ts +27 -8
  654. package/dist/regex/sql-date-time.js +28 -9
  655. package/dist/regex/time-zone-like.d.ts +24 -15
  656. package/dist/regex/time-zone-like.js +25 -16
  657. package/dist/regex/time.d.ts +20 -6
  658. package/dist/regex/time.js +20 -6
  659. package/dist/regex/unix.d.ts +13 -5
  660. package/dist/regex/unix.js +13 -5
  661. package/dist/regex/utc-date-time.d.ts +19 -9
  662. package/dist/regex/utc-date-time.js +20 -10
  663. package/dist/regex/utc-offset.d.ts +24 -0
  664. package/dist/regex/utc-offset.js +24 -0
  665. package/dist/span/calculate/index.d.ts +3 -0
  666. package/dist/span/calculate/index.js +3 -0
  667. package/dist/span/calculate/spanMs.d.ts +52 -0
  668. package/dist/span/calculate/spanMs.js +80 -0
  669. package/dist/span/calculate/spanNs.d.ts +43 -0
  670. package/dist/span/calculate/spanNs.js +51 -0
  671. package/dist/span/calculate/spanWallClock.d.ts +60 -0
  672. package/dist/span/calculate/spanWallClock.js +80 -0
  673. package/dist/span/index.d.ts +3 -0
  674. package/dist/span/index.js +4 -0
  675. package/dist/span/validate/index.d.ts +1 -0
  676. package/dist/span/validate/index.js +1 -0
  677. package/dist/span/validate/isValidSpan.d.ts +37 -0
  678. package/dist/span/validate/isValidSpan.js +41 -0
  679. package/dist/transport/calculate/dwellTime.d.ts +72 -0
  680. package/dist/transport/calculate/dwellTime.js +126 -0
  681. package/dist/transport/calculate/index.d.ts +2 -0
  682. package/dist/transport/calculate/index.js +2 -0
  683. package/dist/transport/calculate/transitTime.d.ts +53 -0
  684. package/dist/transport/calculate/transitTime.js +118 -0
  685. package/dist/transport/convert/etaAtZone.d.ts +36 -0
  686. package/dist/transport/convert/etaAtZone.js +53 -0
  687. package/dist/transport/convert/index.d.ts +1 -0
  688. package/dist/transport/convert/index.js +1 -0
  689. package/dist/transport/index.d.ts +3 -0
  690. package/dist/transport/index.js +4 -0
  691. package/dist/types/business-calendar.d.ts +27 -0
  692. package/dist/types/business-calendar.js +0 -0
  693. package/dist/types/calendar-system.d.ts +9 -1
  694. package/dist/types/fiscal-calendar.d.ts +22 -0
  695. package/dist/types/fiscal-calendar.js +0 -0
  696. package/dist/types/free-time-options.d.ts +34 -0
  697. package/dist/types/free-time-options.js +0 -0
  698. package/dist/types/index.d.ts +7 -0
  699. package/dist/types/index.js +6 -0
  700. package/dist/types/interval.d.ts +18 -0
  701. package/dist/types/interval.js +0 -0
  702. package/dist/types/now-unit.d.ts +1 -1
  703. package/dist/types/roll-convention.d.ts +32 -0
  704. package/dist/types/roll-convention.js +0 -0
  705. package/dist/types/utc-now-unit.d.ts +1 -1
  706. package/dist/types/zone-bucket-unit.d.ts +11 -0
  707. package/dist/types/zone-bucket-unit.js +0 -0
  708. package/dist/unix/calculate/addUnix.d.ts +10 -4
  709. package/dist/unix/calculate/addUnix.js +39 -26
  710. package/dist/unix/calculate/diffUnix.d.ts +38 -11
  711. package/dist/unix/calculate/diffUnix.js +84 -40
  712. package/dist/unix/calculate/diffUnixAsDuration.d.ts +17 -7
  713. package/dist/unix/calculate/diffUnixAsDuration.js +42 -23
  714. package/dist/unix/calculate/endOfQuarterForUnix.d.ts +15 -11
  715. package/dist/unix/calculate/endOfQuarterForUnix.js +20 -39
  716. package/dist/unix/calculate/endOfUnix.d.ts +23 -18
  717. package/dist/unix/calculate/endOfUnix.js +37 -15
  718. package/dist/unix/calculate/isBetweenUnix.d.ts +12 -6
  719. package/dist/unix/calculate/isBetweenUnix.js +34 -23
  720. package/dist/unix/calculate/maxUnix.d.ts +6 -3
  721. package/dist/unix/calculate/maxUnix.js +17 -8
  722. package/dist/unix/calculate/minUnix.d.ts +6 -3
  723. package/dist/unix/calculate/minUnix.js +17 -8
  724. package/dist/unix/calculate/roundUnix.d.ts +24 -10
  725. package/dist/unix/calculate/roundUnix.js +67 -42
  726. package/dist/unix/calculate/setUnix.d.ts +14 -5
  727. package/dist/unix/calculate/setUnix.js +48 -29
  728. package/dist/unix/calculate/sortUnix.d.ts +6 -3
  729. package/dist/unix/calculate/sortUnix.js +19 -11
  730. package/dist/unix/calculate/startOfQuarterForUnix.d.ts +17 -12
  731. package/dist/unix/calculate/startOfQuarterForUnix.js +22 -30
  732. package/dist/unix/calculate/startOfUnix.d.ts +23 -18
  733. package/dist/unix/calculate/startOfUnix.js +37 -15
  734. package/dist/unix/calculate/subtractUnix.d.ts +10 -4
  735. package/dist/unix/calculate/subtractUnix.js +39 -26
  736. package/dist/unix/compare/areUnixEqual.d.ts +9 -5
  737. package/dist/unix/compare/areUnixEqual.js +17 -13
  738. package/dist/unix/compare/areUnixEqualBy.d.ts +14 -7
  739. package/dist/unix/compare/areUnixEqualBy.js +14 -7
  740. package/dist/unix/compare/isAfterUnix.d.ts +8 -4
  741. package/dist/unix/compare/isAfterUnix.js +16 -12
  742. package/dist/unix/compare/isBeforeUnix.d.ts +7 -4
  743. package/dist/unix/compare/isBeforeUnix.js +15 -12
  744. package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -9
  745. package/dist/unix/convert/convertUnixToPlainDate.js +34 -21
  746. package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +15 -9
  747. package/dist/unix/convert/convertUnixToPlainDateTime.js +32 -21
  748. package/dist/unix/convert/convertUnixToPlainTime.d.ts +15 -9
  749. package/dist/unix/convert/convertUnixToPlainTime.js +32 -21
  750. package/dist/unix/convert/convertUnixToUtc.d.ts +15 -7
  751. package/dist/unix/convert/convertUnixToUtc.js +20 -15
  752. package/dist/unix/convert/convertUnixToZoned.d.ts +17 -10
  753. package/dist/unix/convert/convertUnixToZoned.js +31 -20
  754. package/dist/unix/format/formatCalendarUnix.d.ts +22 -19
  755. package/dist/unix/format/formatCalendarUnix.js +35 -81
  756. package/dist/unix/format/formatRelativeUnix.d.ts +25 -8
  757. package/dist/unix/format/formatRelativeUnix.js +46 -93
  758. package/dist/unix/format/formatUnix.d.ts +26 -4
  759. package/dist/unix/format/formatUnix.js +48 -34
  760. package/dist/unix/get/getUnixNow.d.ts +13 -7
  761. package/dist/unix/get/getUnixNow.js +27 -17
  762. package/dist/unix/get/getUnixNowUnit.d.ts +5 -2
  763. package/dist/unix/get/getUnixNowUnit.js +9 -35
  764. package/dist/unix/index.d.ts +1 -0
  765. package/dist/unix/index.js +2 -0
  766. package/dist/unix/interval/intervalAbutsUnix.d.ts +17 -12
  767. package/dist/unix/interval/intervalAbutsUnix.js +23 -41
  768. package/dist/unix/interval/intervalContainsUnix.d.ts +17 -7
  769. package/dist/unix/interval/intervalContainsUnix.js +25 -37
  770. package/dist/unix/interval/intervalCountUnix.d.ts +30 -13
  771. package/dist/unix/interval/intervalCountUnix.js +49 -23
  772. package/dist/unix/interval/intervalDifferenceUnix.d.ts +19 -10
  773. package/dist/unix/interval/intervalDifferenceUnix.js +25 -43
  774. package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +24 -10
  775. package/dist/unix/interval/intervalDivideEquallyUnix.js +57 -36
  776. package/dist/unix/interval/intervalEngulfsUnix.d.ts +13 -7
  777. package/dist/unix/interval/intervalEngulfsUnix.js +18 -30
  778. package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -6
  779. package/dist/unix/interval/intervalFromDurationUnix.js +51 -39
  780. package/dist/unix/interval/intervalIntersectionUnix.d.ts +18 -11
  781. package/dist/unix/interval/intervalIntersectionUnix.js +25 -46
  782. package/dist/unix/interval/intervalLengthUnix.d.ts +21 -9
  783. package/dist/unix/interval/intervalLengthUnix.js +41 -18
  784. package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +26 -12
  785. package/dist/unix/interval/intervalOverlappingDaysUnix.js +67 -63
  786. package/dist/unix/interval/intervalSplitAtUnix.d.ts +11 -6
  787. package/dist/unix/interval/intervalSplitAtUnix.js +41 -34
  788. package/dist/unix/interval/intervalUnionUnix.d.ts +15 -9
  789. package/dist/unix/interval/intervalUnionUnix.js +20 -42
  790. package/dist/unix/interval/intervalXorAllUnix.d.ts +8 -6
  791. package/dist/unix/interval/intervalXorAllUnix.js +21 -56
  792. package/dist/unix/interval/intervalXorUnix.d.ts +22 -11
  793. package/dist/unix/interval/intervalXorUnix.js +28 -56
  794. package/dist/unix/interval/intervalsOverlapUnix.d.ts +16 -10
  795. package/dist/unix/interval/intervalsOverlapUnix.js +21 -37
  796. package/dist/unix/interval/mergeIntervalsUnix.d.ts +10 -4
  797. package/dist/unix/interval/mergeIntervalsUnix.js +25 -36
  798. package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +38 -8
  799. package/dist/unix/interval/splitIntervalByUnitUnix.js +72 -56
  800. package/dist/unix/interval/validate/isValidUnixInterval.d.ts +12 -6
  801. package/dist/unix/interval/validate/isValidUnixInterval.js +17 -16
  802. package/dist/unix/parse/index.d.ts +2 -0
  803. package/dist/unix/parse/index.js +2 -0
  804. package/dist/unix/parse/parseDateFromUnix.d.ts +10 -8
  805. package/dist/unix/parse/parseDateFromUnix.js +17 -29
  806. package/dist/unix/parse/parseDayFromUnix.d.ts +6 -4
  807. package/dist/unix/parse/parseDayFromUnix.js +18 -5
  808. package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +8 -5
  809. package/dist/unix/parse/parseDayOfWeekFromUnix.js +15 -28
  810. package/dist/unix/parse/parseHourFromUnix.d.ts +6 -4
  811. package/dist/unix/parse/parseHourFromUnix.js +18 -5
  812. package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
  813. package/dist/unix/parse/parseMicrosecondFromUnix.js +16 -3
  814. package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
  815. package/dist/unix/parse/parseMillisecondFromUnix.js +16 -3
  816. package/dist/unix/parse/parseMinuteFromUnix.d.ts +6 -4
  817. package/dist/unix/parse/parseMinuteFromUnix.js +18 -5
  818. package/dist/unix/parse/parseMonthFromUnix.d.ts +6 -4
  819. package/dist/unix/parse/parseMonthFromUnix.js +18 -5
  820. package/dist/unix/parse/parseNanosecondFromUnix.d.ts +8 -5
  821. package/dist/unix/parse/parseNanosecondFromUnix.js +20 -6
  822. package/dist/unix/parse/parseSecondFromUnix.d.ts +5 -3
  823. package/dist/unix/parse/parseSecondFromUnix.js +17 -4
  824. package/dist/unix/parse/parseTimeFromUnix.d.ts +10 -8
  825. package/dist/unix/parse/parseTimeFromUnix.js +17 -29
  826. package/dist/unix/parse/parseUnitFromUnix.d.ts +18 -11
  827. package/dist/unix/parse/parseUnitFromUnix.js +57 -55
  828. package/dist/unix/parse/parseWeekFromUnix.d.ts +15 -7
  829. package/dist/unix/parse/parseWeekFromUnix.js +32 -30
  830. package/dist/unix/parse/parseYearFromUnix.d.ts +5 -3
  831. package/dist/unix/parse/parseYearFromUnix.js +17 -4
  832. package/dist/unix/validate/isValidUnixMilliseconds.d.ts +8 -5
  833. package/dist/unix/validate/isValidUnixMilliseconds.js +10 -9
  834. package/dist/unix/validate/isValidUnixRange.d.ts +13 -7
  835. package/dist/unix/validate/isValidUnixRange.js +29 -19
  836. package/dist/unix/validate/isValidUnixSeconds.d.ts +8 -5
  837. package/dist/unix/validate/isValidUnixSeconds.js +10 -9
  838. package/dist/unix/validate/isValidUnixUnit.d.ts +9 -7
  839. package/dist/unix/validate/isValidUnixUnit.js +6 -8
  840. package/dist/utc/calculate/addUtc.js +26 -12
  841. package/dist/utc/calculate/diffUtc.d.ts +22 -7
  842. package/dist/utc/calculate/diffUtc.js +75 -31
  843. package/dist/utc/calculate/diffUtcAsDuration.d.ts +2 -2
  844. package/dist/utc/calculate/diffUtcAsDuration.js +10 -3
  845. package/dist/utc/calculate/endOfQuarterForUtc.d.ts +1 -1
  846. package/dist/utc/calculate/endOfQuarterForUtc.js +1 -1
  847. package/dist/utc/calculate/endOfUtc.d.ts +11 -4
  848. package/dist/utc/calculate/endOfUtc.js +22 -5
  849. package/dist/utc/calculate/isBetweenUtc.js +40 -24
  850. package/dist/utc/calculate/maxUtc.js +19 -12
  851. package/dist/utc/calculate/minUtc.js +19 -12
  852. package/dist/utc/calculate/roundUtc.d.ts +16 -2
  853. package/dist/utc/calculate/roundUtc.js +42 -31
  854. package/dist/utc/calculate/setUtc.d.ts +4 -8
  855. package/dist/utc/calculate/setUtc.js +25 -18
  856. package/dist/utc/calculate/sortUtc.js +17 -10
  857. package/dist/utc/calculate/startOfQuarterForUtc.d.ts +2 -0
  858. package/dist/utc/calculate/startOfQuarterForUtc.js +12 -1
  859. package/dist/utc/calculate/startOfUtc.d.ts +6 -4
  860. package/dist/utc/calculate/startOfUtc.js +17 -5
  861. package/dist/utc/calculate/subtractUtc.js +26 -12
  862. package/dist/utc/chop/chopUtc.d.ts +5 -2
  863. package/dist/utc/chop/chopUtc.js +8 -4
  864. package/dist/utc/compare/areUtcEqualBy.d.ts +10 -5
  865. package/dist/utc/compare/areUtcEqualBy.js +34 -11
  866. package/dist/utc/convert/convertUtcToPlainDate.js +22 -10
  867. package/dist/utc/convert/convertUtcToPlainDateTime.js +28 -16
  868. package/dist/utc/convert/convertUtcToPlainTime.js +22 -10
  869. package/dist/utc/convert/convertUtcToUnix.d.ts +12 -5
  870. package/dist/utc/convert/convertUtcToUnix.js +22 -13
  871. package/dist/utc/format/formatCalendarUtc.d.ts +11 -6
  872. package/dist/utc/format/formatCalendarUtc.js +32 -41
  873. package/dist/utc/format/formatHttp.d.ts +9 -3
  874. package/dist/utc/format/formatHttp.js +14 -12
  875. package/dist/utc/format/formatRelativeUtc.d.ts +18 -6
  876. package/dist/utc/format/formatRelativeUtc.js +43 -51
  877. package/dist/utc/format/formatUtc.d.ts +20 -3
  878. package/dist/utc/format/formatUtc.js +41 -12
  879. package/dist/utc/get/getUtcNowUnit.d.ts +3 -0
  880. package/dist/utc/get/getUtcNowUnit.js +11 -33
  881. package/dist/utc/index.d.ts +1 -0
  882. package/dist/utc/index.js +2 -0
  883. package/dist/utc/interval/intervalAbutsUtc.d.ts +10 -7
  884. package/dist/utc/interval/intervalAbutsUtc.js +18 -30
  885. package/dist/utc/interval/intervalContainsUtc.d.ts +19 -11
  886. package/dist/utc/interval/intervalContainsUtc.js +33 -34
  887. package/dist/utc/interval/intervalCountUtc.d.ts +3 -4
  888. package/dist/utc/interval/intervalCountUtc.js +12 -18
  889. package/dist/utc/interval/intervalDifferenceUtc.d.ts +13 -5
  890. package/dist/utc/interval/intervalDifferenceUtc.js +25 -51
  891. package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +16 -3
  892. package/dist/utc/interval/intervalDivideEquallyUtc.js +54 -34
  893. package/dist/utc/interval/intervalEngulfsUtc.d.ts +17 -12
  894. package/dist/utc/interval/intervalEngulfsUtc.js +25 -26
  895. package/dist/utc/interval/intervalFromDurationUtc.js +5 -0
  896. package/dist/utc/interval/intervalIntersectionUtc.d.ts +12 -6
  897. package/dist/utc/interval/intervalIntersectionUtc.js +24 -41
  898. package/dist/utc/interval/intervalLengthUtc.js +5 -7
  899. package/dist/utc/interval/intervalOverlappingDaysUtc.d.ts +7 -13
  900. package/dist/utc/interval/intervalOverlappingDaysUtc.js +25 -36
  901. package/dist/utc/interval/intervalSplitAtUtc.d.ts +7 -2
  902. package/dist/utc/interval/intervalSplitAtUtc.js +39 -33
  903. package/dist/utc/interval/intervalUnionUtc.d.ts +15 -7
  904. package/dist/utc/interval/intervalUnionUtc.js +31 -42
  905. package/dist/utc/interval/intervalXorAllUtc.d.ts +7 -4
  906. package/dist/utc/interval/intervalXorAllUtc.js +30 -52
  907. package/dist/utc/interval/intervalXorUtc.d.ts +8 -6
  908. package/dist/utc/interval/intervalXorUtc.js +22 -56
  909. package/dist/utc/interval/intervalsOverlapUtc.d.ts +15 -9
  910. package/dist/utc/interval/intervalsOverlapUtc.js +23 -39
  911. package/dist/utc/interval/mergeIntervalsUtc.d.ts +9 -2
  912. package/dist/utc/interval/mergeIntervalsUtc.js +23 -36
  913. package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +23 -2
  914. package/dist/utc/interval/splitIntervalByUnitUtc.js +65 -44
  915. package/dist/utc/interval/validate/isValidUtcInterval.d.ts +5 -0
  916. package/dist/utc/interval/validate/isValidUtcInterval.js +7 -6
  917. package/dist/utc/parse/parseDateFromUtc.d.ts +7 -1
  918. package/dist/utc/parse/parseDateFromUtc.js +14 -9
  919. package/dist/utc/parse/parseDayFromUtc.d.ts +7 -1
  920. package/dist/utc/parse/parseDayFromUtc.js +14 -8
  921. package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +7 -1
  922. package/dist/utc/parse/parseDayOfWeekFromUtc.js +24 -6
  923. package/dist/utc/parse/parseHourFromUtc.d.ts +7 -1
  924. package/dist/utc/parse/parseHourFromUtc.js +14 -8
  925. package/dist/utc/parse/parseHttp.d.ts +39 -14
  926. package/dist/utc/parse/parseHttp.js +69 -28
  927. package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -2
  928. package/dist/utc/parse/parseMicrosecondFromUtc.js +18 -9
  929. package/dist/utc/parse/parseMillisecondFromUtc.d.ts +7 -1
  930. package/dist/utc/parse/parseMillisecondFromUtc.js +16 -8
  931. package/dist/utc/parse/parseMinuteFromUtc.d.ts +7 -1
  932. package/dist/utc/parse/parseMinuteFromUtc.js +14 -8
  933. package/dist/utc/parse/parseMonthFromUtc.d.ts +7 -1
  934. package/dist/utc/parse/parseMonthFromUtc.js +14 -8
  935. package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -2
  936. package/dist/utc/parse/parseNanosecondFromUtc.js +18 -9
  937. package/dist/utc/parse/parseSecondFromUtc.d.ts +7 -1
  938. package/dist/utc/parse/parseSecondFromUtc.js +14 -8
  939. package/dist/utc/parse/parseTimeFromUtc.js +21 -10
  940. package/dist/utc/parse/parseUnitFromUtc.d.ts +18 -7
  941. package/dist/utc/parse/parseUnitFromUtc.js +58 -31
  942. package/dist/utc/parse/parseWeekFromUtc.d.ts +16 -3
  943. package/dist/utc/parse/parseWeekFromUtc.js +38 -10
  944. package/dist/utc/parse/parseYearFromUtc.d.ts +7 -1
  945. package/dist/utc/parse/parseYearFromUtc.js +14 -8
  946. package/dist/utc/validate/isValidUtc.d.ts +8 -1
  947. package/dist/utc/validate/isValidUtc.js +12 -3
  948. package/dist/utc/validate/isValidUtcRange.d.ts +3 -2
  949. package/dist/utc/validate/isValidUtcRange.js +30 -19
  950. package/dist/zoned/calculate/addZoned.d.ts +40 -27
  951. package/dist/zoned/calculate/addZoned.js +71 -56
  952. package/dist/zoned/calculate/addZonedBusinessDays.d.ts +2 -0
  953. package/dist/zoned/calculate/addZonedBusinessDays.js +5 -2
  954. package/dist/zoned/calculate/clampZoned.js +4 -3
  955. package/dist/zoned/calculate/closestZonedTo.d.ts +6 -6
  956. package/dist/zoned/calculate/closestZonedTo.js +35 -26
  957. package/dist/zoned/calculate/cycleZoned.d.ts +10 -7
  958. package/dist/zoned/calculate/cycleZoned.js +19 -11
  959. package/dist/zoned/calculate/diffZoned.d.ts +39 -17
  960. package/dist/zoned/calculate/diffZoned.js +90 -45
  961. package/dist/zoned/calculate/diffZonedAsDuration.d.ts +19 -9
  962. package/dist/zoned/calculate/diffZonedAsDuration.js +32 -15
  963. package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +11 -11
  964. package/dist/zoned/calculate/endOfQuarterForZoned.js +32 -31
  965. package/dist/zoned/calculate/endOfZoned.d.ts +21 -14
  966. package/dist/zoned/calculate/endOfZoned.js +25 -111
  967. package/dist/zoned/calculate/getHoursInZonedDay.d.ts +8 -1
  968. package/dist/zoned/calculate/getHoursInZonedDay.js +10 -14
  969. package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +8 -4
  970. package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +9 -6
  971. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +20 -26
  972. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +40 -44
  973. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +16 -24
  974. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +36 -42
  975. package/dist/zoned/calculate/getQuarterForZoned.js +2 -2
  976. package/dist/zoned/calculate/maxZoned.js +20 -12
  977. package/dist/zoned/calculate/minZoned.d.ts +1 -1
  978. package/dist/zoned/calculate/minZoned.js +21 -13
  979. package/dist/zoned/calculate/roundZoned.d.ts +18 -4
  980. package/dist/zoned/calculate/roundZoned.js +58 -33
  981. package/dist/zoned/calculate/setZoned.d.ts +9 -3
  982. package/dist/zoned/calculate/setZoned.js +39 -18
  983. package/dist/zoned/calculate/sortZoned.js +18 -10
  984. package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +4 -7
  985. package/dist/zoned/calculate/startOfQuarterForZoned.js +23 -17
  986. package/dist/zoned/calculate/startOfZoned.d.ts +17 -13
  987. package/dist/zoned/calculate/startOfZoned.js +21 -103
  988. package/dist/zoned/calculate/subtractZoned.d.ts +36 -24
  989. package/dist/zoned/calculate/subtractZoned.js +66 -50
  990. package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +2 -0
  991. package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -2
  992. package/dist/zoned/chop/chopZonedDate.js +2 -2
  993. package/dist/zoned/chop/chopZonedDateTime.js +2 -2
  994. package/dist/zoned/chop/chopZonedMilliseconds.js +2 -2
  995. package/dist/zoned/chop/chopZonedSeconds.js +2 -2
  996. package/dist/zoned/chop/chopZonedTime.js +2 -2
  997. package/dist/zoned/chop/chopZonedTimezone.js +2 -2
  998. package/dist/zoned/compare/areZonedEqual.js +3 -2
  999. package/dist/zoned/compare/areZonedEqualBy.d.ts +15 -2
  1000. package/dist/zoned/compare/areZonedEqualBy.js +45 -12
  1001. package/dist/zoned/compare/isAfterZoned.js +3 -2
  1002. package/dist/zoned/compare/isBeforeZoned.d.ts +1 -1
  1003. package/dist/zoned/compare/isBeforeZoned.js +4 -3
  1004. package/dist/zoned/compare/isBetweenZoned.js +46 -29
  1005. package/dist/zoned/compare/isInDaylightSaving.js +4 -4
  1006. package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -4
  1007. package/dist/zoned/compare/isZonedBusinessDay.js +9 -6
  1008. package/dist/zoned/compare/isZonedFuture.js +2 -1
  1009. package/dist/zoned/compare/isZonedPast.js +2 -1
  1010. package/dist/zoned/compare/isZonedRelativeDay.js +2 -1
  1011. package/dist/zoned/compare/isZonedThisUnit.d.ts +12 -4
  1012. package/dist/zoned/compare/isZonedThisUnit.js +37 -16
  1013. package/dist/zoned/compare/isZonedWeekend.d.ts +8 -4
  1014. package/dist/zoned/compare/isZonedWeekend.js +9 -6
  1015. package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +10 -5
  1016. package/dist/zoned/convert/convertPlainDateTimeToZoned.js +34 -16
  1017. package/dist/zoned/convert/convertZonedToCalendar.d.ts +26 -38
  1018. package/dist/zoned/convert/convertZonedToCalendar.js +33 -48
  1019. package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +6 -0
  1020. package/dist/zoned/convert/convertZonedToPlainDateTime.js +8 -2
  1021. package/dist/zoned/convert/convertZonedToUnix.d.ts +12 -6
  1022. package/dist/zoned/convert/convertZonedToUnix.js +23 -16
  1023. package/dist/zoned/convert/convertZonedToUtc.js +2 -2
  1024. package/dist/zoned/convert/convertZonedToZoned.js +2 -2
  1025. package/dist/zoned/format/formatCalendarZoned.d.ts +7 -3
  1026. package/dist/zoned/format/formatCalendarZoned.js +37 -39
  1027. package/dist/zoned/format/formatRelativeZoned.d.ts +15 -6
  1028. package/dist/zoned/format/formatRelativeZoned.js +54 -54
  1029. package/dist/zoned/format/formatRfc2822.d.ts +14 -1
  1030. package/dist/zoned/format/formatRfc2822.js +27 -13
  1031. package/dist/zoned/format/formatRfc3339.d.ts +14 -1
  1032. package/dist/zoned/format/formatRfc3339.js +29 -3
  1033. package/dist/zoned/format/formatTimeZoneName.d.ts +3 -2
  1034. package/dist/zoned/format/formatTimeZoneName.js +28 -18
  1035. package/dist/zoned/format/formatZonedDateTime.d.ts +25 -5
  1036. package/dist/zoned/format/formatZonedDateTime.js +40 -9
  1037. package/dist/zoned/format/formatZonedRange.d.ts +24 -6
  1038. package/dist/zoned/format/formatZonedRange.js +61 -28
  1039. package/dist/zoned/format/formatZonedToParts.d.ts +29 -6
  1040. package/dist/zoned/format/formatZonedToParts.js +42 -13
  1041. package/dist/zoned/get/getDstTransitions.d.ts +6 -1
  1042. package/dist/zoned/get/getDstTransitions.js +17 -15
  1043. package/dist/zoned/get/getTimeZoneOffset.d.ts +11 -1
  1044. package/dist/zoned/get/getTimeZoneOffset.js +19 -2
  1045. package/dist/zoned/get/getZonedNow.js +20 -9
  1046. package/dist/zoned/get/getZonedNowUnit.d.ts +8 -4
  1047. package/dist/zoned/get/getZonedNowUnit.js +15 -31
  1048. package/dist/zoned/index.js +1 -1
  1049. package/dist/zoned/interval/intervalAbutsZoned.d.ts +18 -11
  1050. package/dist/zoned/interval/intervalAbutsZoned.js +24 -25
  1051. package/dist/zoned/interval/intervalContainsZoned.d.ts +16 -7
  1052. package/dist/zoned/interval/intervalContainsZoned.js +22 -14
  1053. package/dist/zoned/interval/intervalCountZoned.d.ts +19 -11
  1054. package/dist/zoned/interval/intervalCountZoned.js +32 -27
  1055. package/dist/zoned/interval/intervalDifferenceZoned.d.ts +13 -7
  1056. package/dist/zoned/interval/intervalDifferenceZoned.js +24 -36
  1057. package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +18 -9
  1058. package/dist/zoned/interval/intervalDivideEquallyZoned.js +67 -46
  1059. package/dist/zoned/interval/intervalEngulfsZoned.d.ts +10 -5
  1060. package/dist/zoned/interval/intervalEngulfsZoned.js +16 -10
  1061. package/dist/zoned/interval/intervalFromDurationZoned.d.ts +25 -11
  1062. package/dist/zoned/interval/intervalFromDurationZoned.js +61 -44
  1063. package/dist/zoned/interval/intervalIntersectionZoned.d.ts +12 -6
  1064. package/dist/zoned/interval/intervalIntersectionZoned.js +24 -18
  1065. package/dist/zoned/interval/intervalLengthZoned.d.ts +15 -6
  1066. package/dist/zoned/interval/intervalLengthZoned.js +23 -9
  1067. package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +28 -17
  1068. package/dist/zoned/interval/intervalOverlappingDaysZoned.js +46 -34
  1069. package/dist/zoned/interval/intervalSplitAtZoned.d.ts +6 -3
  1070. package/dist/zoned/interval/intervalSplitAtZoned.js +52 -42
  1071. package/dist/zoned/interval/intervalUnionZoned.d.ts +14 -8
  1072. package/dist/zoned/interval/intervalUnionZoned.js +25 -20
  1073. package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -7
  1074. package/dist/zoned/interval/intervalXorAllZoned.js +42 -73
  1075. package/dist/zoned/interval/intervalXorZoned.d.ts +20 -12
  1076. package/dist/zoned/interval/intervalXorZoned.js +34 -64
  1077. package/dist/zoned/interval/intervalsOverlapZoned.d.ts +15 -7
  1078. package/dist/zoned/interval/intervalsOverlapZoned.js +21 -12
  1079. package/dist/zoned/interval/mergeIntervalsZoned.d.ts +10 -3
  1080. package/dist/zoned/interval/mergeIntervalsZoned.js +44 -41
  1081. package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +28 -5
  1082. package/dist/zoned/interval/splitIntervalByUnitZoned.js +72 -39
  1083. package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +13 -10
  1084. package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +13 -10
  1085. package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +7 -5
  1086. package/dist/zoned/interval/validate/isValidZonedInterval.js +12 -16
  1087. package/dist/zoned/map/mapZonedDatesInRange.d.ts +17 -1
  1088. package/dist/zoned/map/mapZonedDatesInRange.js +62 -26
  1089. package/dist/zoned/map/mapZonedHoursInDay.d.ts +10 -13
  1090. package/dist/zoned/map/mapZonedHoursInDay.js +13 -21
  1091. package/dist/zoned/parse/getZonedOffset.js +2 -2
  1092. package/dist/zoned/parse/getZonedOffsetAs.d.ts +4 -2
  1093. package/dist/zoned/parse/getZonedOffsetAs.js +10 -5
  1094. package/dist/zoned/parse/parseDateFromZoned.js +2 -2
  1095. package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
  1096. package/dist/zoned/parse/parseDayFromZoned.js +2 -2
  1097. package/dist/zoned/parse/parseDayOfWeekFromZoned.js +2 -2
  1098. package/dist/zoned/parse/parseHourFromZoned.js +2 -2
  1099. package/dist/zoned/parse/parseMicrosecondFromZoned.d.ts +2 -1
  1100. package/dist/zoned/parse/parseMicrosecondFromZoned.js +4 -3
  1101. package/dist/zoned/parse/parseMillisecondFromZoned.js +2 -2
  1102. package/dist/zoned/parse/parseMinuteFromZoned.js +2 -2
  1103. package/dist/zoned/parse/parseMonthFromZoned.js +2 -2
  1104. package/dist/zoned/parse/parseNanosecondFromZoned.d.ts +2 -1
  1105. package/dist/zoned/parse/parseNanosecondFromZoned.js +4 -3
  1106. package/dist/zoned/parse/parseRfc2822.d.ts +32 -12
  1107. package/dist/zoned/parse/parseRfc2822.js +47 -45
  1108. package/dist/zoned/parse/parseRfc3339.d.ts +6 -0
  1109. package/dist/zoned/parse/parseRfc3339.js +6 -0
  1110. package/dist/zoned/parse/parseSecondFromZoned.js +2 -2
  1111. package/dist/zoned/parse/parseTimeFromZoned.js +2 -2
  1112. package/dist/zoned/parse/parseTimeZoneFromZoned.js +2 -2
  1113. package/dist/zoned/parse/parseUnitFromZoned.d.ts +14 -5
  1114. package/dist/zoned/parse/parseUnitFromZoned.js +59 -33
  1115. package/dist/zoned/parse/parseWeekFromZoned.d.ts +13 -3
  1116. package/dist/zoned/parse/parseWeekFromZoned.js +34 -10
  1117. package/dist/zoned/parse/parseYearFromZoned.js +2 -2
  1118. package/dist/zoned/validate/hasDaylightSaving.js +3 -3
  1119. package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +31 -16
  1120. package/dist/zoned/validate/isValidCalendarZonedDateTime.js +31 -16
  1121. package/dist/zoned/validate/isValidTimeZone.d.ts +15 -2
  1122. package/dist/zoned/validate/isValidTimeZone.js +17 -4
  1123. package/dist/zoned/validate/isValidZonedDateTime.d.ts +14 -7
  1124. package/dist/zoned/validate/isValidZonedDateTime.js +20 -12
  1125. package/dist/zoned/validate/isValidZonedRange.d.ts +9 -2
  1126. package/dist/zoned/validate/isValidZonedRange.js +44 -16
  1127. package/package.json +510 -34
  1128. package/skills/gmt-arithmetic/SKILL.md +197 -16
  1129. package/skills/gmt-basics/SKILL.md +61 -14
  1130. package/skills/gmt-integration/SKILL.md +54 -8
  1131. package/skills/gmt-timezone/SKILL.md +208 -24
  1132. package/dist/internal/advanceBusinessDays.d.ts +0 -2
  1133. package/dist/internal/advanceBusinessDays.js +0 -15
  1134. package/dist/internal/ethiopicFamilyCalendar.d.ts +0 -47
  1135. package/dist/internal/ethiopicFamilyCalendar.js +0 -136
  1136. package/dist/internal/getLocaleMinimalDaysInFirstWeek.d.ts +0 -20
  1137. package/dist/internal/getLocaleMinimalDaysInFirstWeek.js +0 -31
  1138. package/dist/internal/resolveUnixTimeZone.d.ts +0 -20
  1139. package/dist/internal/resolveUnixTimeZone.js +0 -30
  1140. package/dist/unix/calculate/startOrEndOfUnix.d.ts +0 -27
  1141. package/dist/unix/calculate/startOrEndOfUnix.js +0 -140
  1142. package/dist/unix/interval/resolveUnixIntervalPair.d.ts +0 -7
  1143. package/dist/unix/interval/resolveUnixIntervalPair.js +0 -36
@@ -1,7 +1,10 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { isValidDateTimeUnit } from "../../plain/index.js";
3
+ import { resolveDateTimeUnit } from "../../internal/resolveDateTimeUnit.js";
4
+ import { resolveWeekStartsOn } from "../../internal/resolveWeekStartsOn.js";
3
5
  import { startOfUtc } from "../calculate/startOfUtc.js";
4
6
  import { isValidUtc } from "../validate/index.js";
7
+ import { isOptionsArgument } from "../../internal/isObject.js";
5
8
  /**
6
9
  * Compare two UTC ISO datetime strings for equality at a given unit.
7
10
  *
@@ -9,7 +12,12 @@ import { isValidUtc } from "../validate/index.js";
9
12
  * so `"day"` always means the UTC calendar day (UTC has no DST, so this is
10
13
  * unambiguous).
11
14
  * - `"month"` requires the same month AND year, matching `areDateTimesEqualBy`.
15
+ * - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
16
+ * - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
12
17
  * - Returns false for an unsupported unit or invalid input.
18
+ * - Takes no `fractionalSecondDigits`: equality compares full-precision `unit` boundaries, and output
19
+ * digits cannot change which bucket a value is in. That ignored option was removed in 1.16.0; to
20
+ * compare more coarsely, pass a coarser unit (0 digits is `"second"`, 3 is `"millisecond"`).
13
21
  *
14
22
  * Mapping from date-fns (Decision 5, `context/roadmap/issues/J.md`):
15
23
  * - `isSameDay(a, b)` → `areUtcEqualBy(a, b, "day")`
@@ -18,28 +26,43 @@ import { isValidUtc } from "../validate/index.js";
18
26
  *
19
27
  * @param value1 first UTC ISO datetime string
20
28
  * @param value2 second UTC ISO datetime string
21
- * @param unit Temporal.DateUnit | Temporal.TimeUnit to compare by
22
- * @param options optional: weekStartsOn ("monday" | "sunday"), fractionalSecondDigits (number)
29
+ * @param unit date or time unit, singular or plural, to compare by
30
+ * @param options optional: weekStartsOn ("monday" | "sunday")
23
31
  * @returns true if both values share the same start-of-unit boundary, false on an unsupported unit or invalid input
24
32
  *
25
33
  * @example areUtcEqualBy("2024-03-15T02:00:00Z", "2024-03-15T22:00:00Z", "day") // true
26
34
  * @example areUtcEqualBy("2024-03-15T23:30:00Z", "2024-03-16T00:30:00Z", "day") // false
35
+ * @example areUtcEqualBy("2024-05-15T10:20:30.123Z", "2024-05-15T10:20:30.999Z", "milliseconds") // false (different milliseconds)
36
+ * @example areUtcEqualBy("2024-05-15T10:20:30.123Z", "2024-05-15T10:20:30.999Z", "second") // true
27
37
  * @example areUtcEqualBy("invalid", "2024-03-15T02:00:00Z", "day") // false
28
38
  */
29
39
  export function areUtcEqualBy(value1, value2, unit, options) {
30
- if (!isValidUtc(value1) ||
31
- !isValidUtc(value2) ||
32
- !isValidDateTimeUnit(unit)) {
33
- return false;
34
- }
35
40
  try {
36
- const start1 = startOfUtc(value1, unit, options);
37
- const start2 = startOfUtc(value2, unit, options);
38
- if (start1 === "" || start2 === "")
41
+ if (!isOptionsArgument(options)) {
42
+ return false;
43
+ }
44
+ const resolvedUnit = resolveDateTimeUnit(unit);
45
+ const weekStartsOn = resolveWeekStartsOn(options?.weekStartsOn);
46
+ if (!isValidUtc(value1) ||
47
+ !isValidUtc(value2) ||
48
+ !isValidDateTimeUnit(resolvedUnit) ||
49
+ weekStartsOn === null) {
50
+ return false;
51
+ }
52
+ try {
53
+ const start1 = startOfUtc(value1, resolvedUnit, { weekStartsOn });
54
+ const start2 = startOfUtc(value2, resolvedUnit, { weekStartsOn });
55
+ if (start1 === "" || start2 === "")
56
+ return false;
57
+ return (Temporal.Instant.compare(Temporal.Instant.from(start1), Temporal.Instant.from(start2)) === 0);
58
+ }
59
+ catch {
39
60
  return false;
40
- return (Temporal.Instant.compare(Temporal.Instant.from(start1), Temporal.Instant.from(start2)) === 0);
61
+ }
41
62
  }
42
63
  catch {
64
+ // Never throws (Core Rule 3): a hostile
65
+ // argument is invalid input, not an exception.
43
66
  return false;
44
67
  }
45
68
  }
@@ -1,6 +1,8 @@
1
+ // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
1
2
  import { Temporal } from "@js-temporal/polyfill";
2
3
  import { isValidTimeZone } from "../../zoned/index.js";
3
4
  import { isValidUtc } from "../validate/index.js";
5
+ import { isOptionsArgument } from "../../internal/isObject.js";
4
6
  /**
5
7
  * Convert a UTC datetime string to a plain date string in the format "YYYY-MM-DD".
6
8
  *
@@ -17,19 +19,29 @@ import { isValidUtc } from "../validate/index.js";
17
19
  * @example convertUtcToPlainDate("invalid") // ""
18
20
  */
19
21
  export function convertUtcToPlainDate(value, options) {
20
- const { timeZone = "UTC" } = options ?? {};
21
- if (!isValidTimeZone(timeZone))
22
- return "";
23
- if (!isValidUtc(value))
24
- return "";
25
22
  try {
26
- const instant = Temporal.Instant.from(value);
27
- const zonedDateTime = instant.toZonedDateTimeISO(timeZone);
28
- return `${zonedDateTime.year.toString().padStart(4, "0")}-${zonedDateTime.month
29
- .toString()
30
- .padStart(2, "0")}-${zonedDateTime.day.toString().padStart(2, "0")}`;
23
+ if (!isOptionsArgument(options)) {
24
+ return "";
25
+ }
26
+ const { timeZone = "UTC" } = options ?? {};
27
+ if (!isValidTimeZone(timeZone))
28
+ return "";
29
+ if (!isValidUtc(value))
30
+ return "";
31
+ try {
32
+ const instant = Temporal.Instant.from(value);
33
+ const zonedDateTime = instant.toZonedDateTimeISO(timeZone);
34
+ return `${zonedDateTime.year.toString().padStart(4, "0")}-${zonedDateTime.month
35
+ .toString()
36
+ .padStart(2, "0")}-${zonedDateTime.day.toString().padStart(2, "0")}`;
37
+ }
38
+ catch {
39
+ return "";
40
+ }
31
41
  }
32
42
  catch {
43
+ // Never throws (Core Rule 3): a hostile
44
+ // argument is invalid input, not an exception.
33
45
  return "";
34
46
  }
35
47
  }
@@ -1,6 +1,8 @@
1
+ // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
1
2
  import { Temporal } from "@js-temporal/polyfill";
2
3
  import { isValidTimeZone } from "../../zoned/index.js";
3
4
  import { isValidUtc } from "../validate/index.js";
5
+ import { isOptionsArgument } from "../../internal/isObject.js";
4
6
  /**
5
7
  * Convert a UTC datetime string to a plain datetime string in the format "YYYY-MM-DDTHH:mm:ss".
6
8
  *
@@ -17,25 +19,35 @@ import { isValidUtc } from "../validate/index.js";
17
19
  * @example convertUtcToPlainDateTime("invalid") // ""
18
20
  */
19
21
  export function convertUtcToPlainDateTime(value, options) {
20
- const { timeZone = "UTC" } = options ?? {};
21
- if (!isValidTimeZone(timeZone))
22
- return "";
23
- if (!isValidUtc(value))
24
- return "";
25
22
  try {
26
- const instant = Temporal.Instant.from(value);
27
- const zonedDateTime = instant.toZonedDateTimeISO(timeZone);
28
- return `${zonedDateTime.year.toString().padStart(4, "0")}-${zonedDateTime.month
29
- .toString()
30
- .padStart(2, "0")}-${zonedDateTime.day
31
- .toString()
32
- .padStart(2, "0")}T${zonedDateTime.hour
33
- .toString()
34
- .padStart(2, "0")}:${zonedDateTime.minute
35
- .toString()
36
- .padStart(2, "0")}:${zonedDateTime.second.toString().padStart(2, "0")}`;
23
+ if (!isOptionsArgument(options)) {
24
+ return "";
25
+ }
26
+ const { timeZone = "UTC" } = options ?? {};
27
+ if (!isValidTimeZone(timeZone))
28
+ return "";
29
+ if (!isValidUtc(value))
30
+ return "";
31
+ try {
32
+ const instant = Temporal.Instant.from(value);
33
+ const zonedDateTime = instant.toZonedDateTimeISO(timeZone);
34
+ return `${zonedDateTime.year.toString().padStart(4, "0")}-${zonedDateTime.month
35
+ .toString()
36
+ .padStart(2, "0")}-${zonedDateTime.day
37
+ .toString()
38
+ .padStart(2, "0")}T${zonedDateTime.hour
39
+ .toString()
40
+ .padStart(2, "0")}:${zonedDateTime.minute
41
+ .toString()
42
+ .padStart(2, "0")}:${zonedDateTime.second.toString().padStart(2, "0")}`;
43
+ }
44
+ catch {
45
+ return "";
46
+ }
37
47
  }
38
48
  catch {
49
+ // Never throws (Core Rule 3): a hostile
50
+ // argument is invalid input, not an exception.
39
51
  return "";
40
52
  }
41
53
  }
@@ -1,6 +1,8 @@
1
+ // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
1
2
  import { Temporal } from "@js-temporal/polyfill";
2
3
  import { isValidTimeZone } from "../../zoned/index.js";
3
4
  import { isValidUtc } from "../validate/index.js";
5
+ import { isOptionsArgument } from "../../internal/isObject.js";
4
6
  /**
5
7
  * Convert a UTC datetime string to a plain time string in the format "HH:mm:ss".
6
8
  *
@@ -17,19 +19,29 @@ import { isValidUtc } from "../validate/index.js";
17
19
  * @example convertUtcToPlainTime("invalid") // ""
18
20
  */
19
21
  export function convertUtcToPlainTime(value, options) {
20
- const { timeZone = "UTC" } = options ?? {};
21
- if (!isValidTimeZone(timeZone))
22
- return "";
23
- if (!isValidUtc(value))
24
- return "";
25
22
  try {
26
- const instant = Temporal.Instant.from(value);
27
- const zonedDateTime = instant.toZonedDateTimeISO(timeZone);
28
- return `${zonedDateTime.hour.toString().padStart(2, "0")}:${zonedDateTime.minute
29
- .toString()
30
- .padStart(2, "0")}:${zonedDateTime.second.toString().padStart(2, "0")}`;
23
+ if (!isOptionsArgument(options)) {
24
+ return "";
25
+ }
26
+ const { timeZone = "UTC" } = options ?? {};
27
+ if (!isValidTimeZone(timeZone))
28
+ return "";
29
+ if (!isValidUtc(value))
30
+ return "";
31
+ try {
32
+ const instant = Temporal.Instant.from(value);
33
+ const zonedDateTime = instant.toZonedDateTimeISO(timeZone);
34
+ return `${zonedDateTime.hour.toString().padStart(2, "0")}:${zonedDateTime.minute
35
+ .toString()
36
+ .padStart(2, "0")}:${zonedDateTime.second.toString().padStart(2, "0")}`;
37
+ }
38
+ catch {
39
+ return "";
40
+ }
31
41
  }
32
42
  catch {
43
+ // Never throws (Core Rule 3): a hostile
44
+ // argument is invalid input, not an exception.
33
45
  return "";
34
46
  }
35
47
  }
@@ -1,17 +1,24 @@
1
- import { type UnixUnit } from "../../unix/validate/isValidUnixUnit.js";
1
+ import type { UnixUnit } from "../../unix/validate/isValidUnixUnit.js";
2
2
  /**
3
3
  * Convert a UTC Instant string to a unix epoch value in milliseconds or seconds.
4
4
  *
5
5
  * - Uses Temporal.Instant.from to parse.
6
- * - Validates unit ("seconds" | "milliseconds").
6
+ * - Seconds floor toward −∞, so `"1969-12-31T23:59:59.5Z"` is second `-1` (POSIX `time_t`).
7
+ * - `options.epochUnit` is `"seconds"` or `"milliseconds"` (singular accepted), default
8
+ * `"milliseconds"`. An explicit `undefined` is the same as omitted; a non-object `options` (such
9
+ * as a bare `"seconds"` string) returns null.
7
10
  * - Returns null for invalid input.
8
11
  *
9
12
  * @param value UTC Instant string
10
- * @param unit optional unit, "seconds" or "milliseconds"
13
+ * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds")
11
14
  * @returns epoch number or null on invalid
12
15
  *
13
16
  * @example convertUtcToUnix("2024-02-29T00:00:00Z") // 1709164800000
14
- * @example convertUtcToUnix("2024-02-29T00:00:00Z", "seconds") // 1709164800
17
+ * @example convertUtcToUnix("2024-02-29T00:00:00Z", { epochUnit: "seconds" }) // 1709164800
18
+ * @example convertUtcToUnix("1969-12-31T23:59:59.5Z", { epochUnit: "second" }) // -1
19
+ * @example convertUtcToUnix("2024-02-29T00:00:00Z", "seconds" as never) // null (options must be an object)
15
20
  * @example convertUtcToUnix("invalid") // null
16
21
  */
17
- export declare function convertUtcToUnix(value: string, ...unitInput: [unit?: UnixUnit]): number | null;
22
+ export declare function convertUtcToUnix(value: string, options?: {
23
+ epochUnit?: UnixUnit;
24
+ }): number | null;
@@ -1,33 +1,42 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
- import { isValidUnixUnit, } from "../../unix/validate/isValidUnixUnit.js";
2
+ import { resolveUnixEpochUnitOptions, toUnixEpoch, } from "../../internal/unixEpochValue.js";
3
3
  import { isValidUtc } from "../validate/index.js";
4
4
  /**
5
5
  * Convert a UTC Instant string to a unix epoch value in milliseconds or seconds.
6
6
  *
7
7
  * - Uses Temporal.Instant.from to parse.
8
- * - Validates unit ("seconds" | "milliseconds").
8
+ * - Seconds floor toward −∞, so `"1969-12-31T23:59:59.5Z"` is second `-1` (POSIX `time_t`).
9
+ * - `options.epochUnit` is `"seconds"` or `"milliseconds"` (singular accepted), default
10
+ * `"milliseconds"`. An explicit `undefined` is the same as omitted; a non-object `options` (such
11
+ * as a bare `"seconds"` string) returns null.
9
12
  * - Returns null for invalid input.
10
13
  *
11
14
  * @param value UTC Instant string
12
- * @param unit optional unit, "seconds" or "milliseconds"
15
+ * @param options optional: epochUnit ("seconds" | "milliseconds", singular accepted; default "milliseconds")
13
16
  * @returns epoch number or null on invalid
14
17
  *
15
18
  * @example convertUtcToUnix("2024-02-29T00:00:00Z") // 1709164800000
16
- * @example convertUtcToUnix("2024-02-29T00:00:00Z", "seconds") // 1709164800
19
+ * @example convertUtcToUnix("2024-02-29T00:00:00Z", { epochUnit: "seconds" }) // 1709164800
20
+ * @example convertUtcToUnix("1969-12-31T23:59:59.5Z", { epochUnit: "second" }) // -1
21
+ * @example convertUtcToUnix("2024-02-29T00:00:00Z", "seconds" as never) // null (options must be an object)
17
22
  * @example convertUtcToUnix("invalid") // null
18
23
  */
19
- export function convertUtcToUnix(value, ...unitInput) {
20
- const resolvedUnit = unitInput.length === 0 ? "milliseconds" : unitInput[0];
21
- if (!isValidUtc(value) || !isValidUnixUnit(resolvedUnit ?? "")) {
22
- return null;
23
- }
24
+ export function convertUtcToUnix(value, options) {
24
25
  try {
25
- const milliseconds = Number(Temporal.Instant.from(value).epochMilliseconds);
26
- return resolvedUnit === "seconds"
27
- ? Math.floor(milliseconds / 1000)
28
- : milliseconds;
26
+ const epochUnit = resolveUnixEpochUnitOptions(options);
27
+ if (!isValidUtc(value) || epochUnit === null) {
28
+ return null;
29
+ }
30
+ try {
31
+ return toUnixEpoch(Temporal.Instant.from(value), epochUnit);
32
+ }
33
+ catch {
34
+ return null;
35
+ }
29
36
  }
30
37
  catch {
38
+ // Never throws (Core Rule 3): a hostile
39
+ // argument is invalid input, not an exception.
31
40
  return null;
32
41
  }
33
42
  }
@@ -2,8 +2,8 @@ import type { CalendarOptions } from "../../types/index.js";
2
2
  export interface FormatCalendarUtcOptions extends CalendarOptions {
3
3
  /**
4
4
  * IANA timezone used for both the calendar-day comparison and the
5
- * rendered clock time. Resolved via `normalizeTimeZone` — `"local"` for
6
- * the system zone, an invalid/omitted value falls back to `"UTC"`.
5
+ * rendered clock time. Omitted is `"UTC"`, `"local"` is the system zone,
6
+ * and an unknown zone makes the result `""` (ECMA-402 throws RangeError).
7
7
  */
8
8
  timeZone?: string;
9
9
  /** `Intl.DateTimeFormatOptions` `timeStyle` for the time-of-day half. */
@@ -16,13 +16,18 @@ export interface FormatCalendarUtcOptions extends CalendarOptions {
16
16
  * variant compares calendar days and renders the clock time in `timeZone`
17
17
  * (default `"UTC"`).
18
18
  *
19
+ * - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
20
+ * rejects it.
21
+ *
19
22
  * @param value UTC ISO string to format
20
- * @param locale optional: BCP 47 locale tag
21
- * @param options optional: { reference, timeZone, timeStyle }
23
+ * @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
24
+ * @param options optional: { reference, timeZone (default "UTC"; "local" is the system zone; an unknown zone returns ""), timeStyle }
22
25
  * @returns the formatted calendar string, or "" on invalid input
23
26
  *
24
27
  * @example formatCalendarUtc("2026-03-16T18:30:00Z", "en-US", { timeZone: "America/New_York", reference: "2026-03-15T13:00:00Z" }) // "tomorrow at 2:30 PM"
25
- * @example formatCalendarUtc(value, "fr-FR", { timeZone: "Europe/Paris" }) // "demain à 14:30"
28
+ * @example formatCalendarUtc("2026-03-16T13:30:00Z", "fr-FR", { timeZone: "Europe/Paris", reference: "2026-03-15T12:00:00Z" }) // "demain à 14:30"
29
+ * @example formatCalendarUtc("2026-03-16T18:30:00Z", "en-US", null as never) // ""
26
30
  * @example formatCalendarUtc("not-a-date") // ""
31
+ * @example formatCalendarUtc("2024-03-16T18:30:00Z", ["fr-FR", "en-US"], { reference: "2024-03-15T13:00:00Z" }) // "demain à 18:30"
27
32
  */
28
- export declare function formatCalendarUtc(value: string, locale?: string, options?: FormatCalendarUtcOptions): string;
33
+ export declare function formatCalendarUtc(value: string, locale?: string | string[], options?: FormatCalendarUtcOptions): string;
@@ -1,9 +1,8 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { joinDateTimeConnector, normalizeDateTime } from "../../internal/index.js";
1
+ // fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
2
+ import { formatCalendarInstants } from "../../internal/formatCalendarDays.js";
3
3
  import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
4
- import { toInstantFromUtc } from "../../internal/toInstantFromUtc.js";
4
+ import { toInstantFromUtc, toReferenceInstantFromUtc, } from "../../internal/toInstantFromUtc.js";
5
5
  import { isValidUtc } from "../validate/index.js";
6
- const ABS_DAY_THRESHOLD = 6;
7
6
  /**
8
7
  * Format a UTC ISO string as a relative day label plus time-of-day, e.g.
9
8
  * "Tomorrow at 2:30 PM" — the UTC counterpart of `formatCalendar`. See that
@@ -11,58 +10,50 @@ const ABS_DAY_THRESHOLD = 6;
11
10
  * variant compares calendar days and renders the clock time in `timeZone`
12
11
  * (default `"UTC"`).
13
12
  *
13
+ * - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
14
+ * rejects it.
15
+ *
14
16
  * @param value UTC ISO string to format
15
- * @param locale optional: BCP 47 locale tag
16
- * @param options optional: { reference, timeZone, timeStyle }
17
+ * @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
18
+ * @param options optional: { reference, timeZone (default "UTC"; "local" is the system zone; an unknown zone returns ""), timeStyle }
17
19
  * @returns the formatted calendar string, or "" on invalid input
18
20
  *
19
21
  * @example formatCalendarUtc("2026-03-16T18:30:00Z", "en-US", { timeZone: "America/New_York", reference: "2026-03-15T13:00:00Z" }) // "tomorrow at 2:30 PM"
20
- * @example formatCalendarUtc(value, "fr-FR", { timeZone: "Europe/Paris" }) // "demain à 14:30"
22
+ * @example formatCalendarUtc("2026-03-16T13:30:00Z", "fr-FR", { timeZone: "Europe/Paris", reference: "2026-03-15T12:00:00Z" }) // "demain à 14:30"
23
+ * @example formatCalendarUtc("2026-03-16T18:30:00Z", "en-US", null as never) // ""
21
24
  * @example formatCalendarUtc("not-a-date") // ""
25
+ * @example formatCalendarUtc("2024-03-16T18:30:00Z", ["fr-FR", "en-US"], { reference: "2024-03-15T13:00:00Z" }) // "demain à 18:30"
22
26
  */
23
27
  export function formatCalendarUtc(value, locale, options = {}) {
24
- if (!isValidUtc(value))
25
- return "";
26
- if (options.reference !== undefined && !isValidUtc(options.reference))
27
- return "";
28
- const target = toInstantFromUtc(value);
29
- if (target === null)
30
- return "";
31
- let reference;
32
- if (options.reference) {
33
- const ref = toInstantFromUtc(options.reference);
34
- if (ref === null)
28
+ try {
29
+ // Temporal GetOptionsObject: undefined is defaults (the parameter default); anything else that is
30
+ // not an object, including null, is a TypeError.
31
+ if (options === null || typeof options !== "object")
32
+ return "";
33
+ if (!isValidUtc(value))
34
+ return "";
35
+ // ECMA-402 throws RangeError for an unknown zone: the sentinel, never a silent UTC.
36
+ const timeZone = normalizeTimeZone(options.timeZone);
37
+ if (!timeZone)
38
+ return "";
39
+ if (options.reference !== undefined && !isValidUtc(options.reference))
40
+ return "";
41
+ const target = toInstantFromUtc(value);
42
+ if (target === null)
43
+ return "";
44
+ const reference = toReferenceInstantFromUtc(options.reference);
45
+ if (reference === null)
35
46
  return "";
36
- reference = ref;
37
- }
38
- else {
39
47
  try {
40
- reference = Temporal.Now.instant();
48
+ return formatCalendarInstants(target, reference, timeZone, locale, options.timeStyle === undefined ? "short" : options.timeStyle);
41
49
  }
42
50
  catch {
43
51
  return "";
44
52
  }
45
53
  }
46
- try {
47
- const timeZone = normalizeTimeZone(options.timeZone);
48
- const timeStyle = options.timeStyle ?? "short";
49
- const targetDate = target.toZonedDateTimeISO(timeZone).toPlainDate();
50
- const referenceDate = reference.toZonedDateTimeISO(timeZone).toPlainDate();
51
- const diffDays = targetDate.since(referenceDate).days;
52
- const epochMilliseconds = Number(target.epochMilliseconds);
53
- if (Math.abs(diffDays) > ABS_DAY_THRESHOLD) {
54
- return normalizeDateTime(new Intl.DateTimeFormat(locale, {
55
- dateStyle: "long",
56
- timeStyle,
57
- timeZone,
58
- }).format(epochMilliseconds));
59
- }
60
- const dayLabel = new Intl.RelativeTimeFormat(locale, {
61
- numeric: "auto",
62
- }).format(diffDays, "day");
63
- return normalizeDateTime(joinDateTimeConnector(epochMilliseconds, timeZone, locale, dayLabel, timeStyle));
64
- }
65
54
  catch {
55
+ // Never throws (Core Rule 3): a hostile
56
+ // argument is invalid input, not an exception.
66
57
  return "";
67
58
  }
68
59
  }
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Format a UTC ISO 8601 datetime string as an RFC 7231 IMF-fixdate — the
2
+ * Format a UTC ISO 8601 datetime string as an RFC 9110 IMF-fixdate — the
3
3
  * fixed grammar HTTP headers like `Last-Modified`/`Date`/`Expires` require.
4
4
  *
5
- * - **Fixed grammar, not a display format.** RFC 7231 mandates English
5
+ * - **Fixed grammar, not a display format.** RFC 9110 mandates English
6
6
  * weekday/month abbreviations and a literal `GMT` suffix regardless of
7
7
  * caller locale — there is no locale-appropriate alternative ordering to
8
8
  * lose (see roadmap `issues/J.md` Decision 1 / J13).
@@ -11,12 +11,18 @@
11
11
  * sub-second field.
12
12
  * - Day, hour, minute, and second are always zero-padded to 2 digits; year
13
13
  * is zero-padded to 4 digits.
14
+ * - Returns `""` for a year outside 0000–9999: IMF-fixdate's `year = 4DIGIT`.
15
+ * - **Compatibility:** before 1.16.0 such years gave strings outside the
16
+ * grammar (`"00-1"`, `"275760"`). For the value itself use
17
+ * `Temporal.Instant#toString()`.
14
18
  *
15
19
  * @param value UTC ISO 8601 datetime string (e.g. "2024-03-15T14:30:00Z")
16
- * @returns RFC 7231 IMF-fixdate string, or "" on invalid input
20
+ * @returns RFC 9110 IMF-fixdate string, or "" on invalid input or a year outside 0000–9999
17
21
  *
18
22
  * @example formatHttp("2024-03-15T14:30:00Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
19
23
  * @example formatHttp("2024-03-15T14:30:00.500Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
24
+ * @example formatHttp("-000001-06-15T12:00:00Z") // ""
25
+ * @example Temporal.Instant.from("-000001-06-15T12:00:00Z").toString() // "-000001-06-15T12:00:00Z"
20
26
  * @example formatHttp("invalid") // ""
21
27
  */
22
28
  export declare function formatHttp(value: string): string;
@@ -1,11 +1,11 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
- import { ENGLISH_MONTH_NAMES, ENGLISH_WEEKDAY_NAMES } from "../../internal/index.js";
2
+ import { englishDateTimeStem } from "../../internal/englishCalendarNames.js";
3
3
  import { isValidUtc } from "../validate/index.js";
4
4
  /**
5
- * Format a UTC ISO 8601 datetime string as an RFC 7231 IMF-fixdate — the
5
+ * Format a UTC ISO 8601 datetime string as an RFC 9110 IMF-fixdate — the
6
6
  * fixed grammar HTTP headers like `Last-Modified`/`Date`/`Expires` require.
7
7
  *
8
- * - **Fixed grammar, not a display format.** RFC 7231 mandates English
8
+ * - **Fixed grammar, not a display format.** RFC 9110 mandates English
9
9
  * weekday/month abbreviations and a literal `GMT` suffix regardless of
10
10
  * caller locale — there is no locale-appropriate alternative ordering to
11
11
  * lose (see roadmap `issues/J.md` Decision 1 / J13).
@@ -14,12 +14,18 @@ import { isValidUtc } from "../validate/index.js";
14
14
  * sub-second field.
15
15
  * - Day, hour, minute, and second are always zero-padded to 2 digits; year
16
16
  * is zero-padded to 4 digits.
17
+ * - Returns `""` for a year outside 0000–9999: IMF-fixdate's `year = 4DIGIT`.
18
+ * - **Compatibility:** before 1.16.0 such years gave strings outside the
19
+ * grammar (`"00-1"`, `"275760"`). For the value itself use
20
+ * `Temporal.Instant#toString()`.
17
21
  *
18
22
  * @param value UTC ISO 8601 datetime string (e.g. "2024-03-15T14:30:00Z")
19
- * @returns RFC 7231 IMF-fixdate string, or "" on invalid input
23
+ * @returns RFC 9110 IMF-fixdate string, or "" on invalid input or a year outside 0000–9999
20
24
  *
21
25
  * @example formatHttp("2024-03-15T14:30:00Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
22
26
  * @example formatHttp("2024-03-15T14:30:00.500Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
27
+ * @example formatHttp("-000001-06-15T12:00:00Z") // ""
28
+ * @example Temporal.Instant.from("-000001-06-15T12:00:00Z").toString() // "-000001-06-15T12:00:00Z"
23
29
  * @example formatHttp("invalid") // ""
24
30
  */
25
31
  export function formatHttp(value) {
@@ -27,14 +33,10 @@ export function formatHttp(value) {
27
33
  return "";
28
34
  try {
29
35
  const zdt = Temporal.Instant.from(value).toZonedDateTimeISO("UTC");
30
- const weekday = ENGLISH_WEEKDAY_NAMES[zdt.dayOfWeek - 1];
31
- const day = String(zdt.day).padStart(2, "0");
32
- const month = ENGLISH_MONTH_NAMES[zdt.month - 1];
33
- const year = String(zdt.year).padStart(4, "0");
34
- const hour = String(zdt.hour).padStart(2, "0");
35
- const minute = String(zdt.minute).padStart(2, "0");
36
- const second = String(zdt.second).padStart(2, "0");
37
- return `${weekday}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`;
36
+ // IMF-fixdate year = 4DIGIT (RFC 9110 §5.6.7).
37
+ if (zdt.year < 0 || zdt.year > 9999)
38
+ return "";
39
+ return `${englishDateTimeStem(zdt)} GMT`;
38
40
  }
39
41
  catch {
40
42
  return "";
@@ -7,17 +7,29 @@ export interface FormatRelativeUtcOptions extends RelativeTimeFormatOptions {
7
7
  /**
8
8
  * Format the relative time between a UTC ISO string and a reference instant.
9
9
  *
10
- * - Auto-picks the display unit (second through year) based on the distance, unless
11
- * `largestUnit` forces one.
10
+ * - Auto-picks the display unit based on the distance, unless `largestUnit` forces one: second
11
+ * under a minute, minute under an hour, hour under a day, then `formatRelativeDate`'s thresholds —
12
+ * day under 7 days, week under 28, month under 365, year beyond — so a 3-year distance reads
13
+ * "3 years ago".
14
+ * - **Compatibility:** before 1.16.0 week, month and year were never auto-picked ("1,096 days ago").
15
+ * Pass `largestUnit: "day"` to keep a day count.
12
16
  * - `roundingMethod` controls how the distance rounds to the display unit.
17
+ * - `timeZone` anchors a calendar unit (week, month or year, auto-picked or forced). Omitted, it is
18
+ * `"UTC"`; pass `"local"` for the system time zone. An unknown zone returns `""` whatever the unit
19
+ * (ECMA-402 throws RangeError for it).
20
+ * - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
21
+ * rejects it.
13
22
  *
14
23
  * @param value UTC ISO string to format
15
- * @param locale optional: BCP 47 locale tag
24
+ * @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
16
25
  * @param options optional: { style, numeric, largestUnit, roundingMethod, reference, timeZone }
17
26
  * @returns the formatted relative-time string, or "" on invalid input
18
27
  *
19
- * @example formatRelativeUtc("2024-03-17T14:30:45+00:00[UTC]", "en-US") // "2 years ago"
20
- * @example formatRelativeUtc(value, "en-US", { roundingMethod: "floor" }) // rounds toward the earlier boundary
28
+ * @example formatRelativeUtc("2026-01-15T14:30:45Z", "en-US", { reference: "2026-04-15T14:30:45Z" }) // "3 months ago"
29
+ * @example formatRelativeUtc("2026-01-15T00:00:00Z", "en-US", { reference: "2026-01-15T10:30:00Z", roundingMethod: "floor" }) // "11 hours ago" (−10.5 hours floors to −11; the default rounds to 10)
30
+ * @example formatRelativeUtc("2026-01-15T00:00:00Z", "en-US", { reference: "2026-01-15T00:30:00Z", timeZone: "Invalid/Zone" }) // ""
31
+ * @example formatRelativeUtc("2026-01-15T14:30:45Z", "en-US", null as never) // ""
21
32
  * @example formatRelativeUtc("not-a-date") // ""
33
+ * @example formatRelativeUtc("2024-03-15T11:30:00Z", ["fr-FR", "en-US"], { reference: "2024-03-15T12:00:00Z" }) // "il y a 30 minutes"
22
34
  */
23
- export declare function formatRelativeUtc(value: string, locale?: string, options?: FormatRelativeUtcOptions): string;
35
+ export declare function formatRelativeUtc(value: string, locale?: string | string[], options?: FormatRelativeUtcOptions): string;