@northguild/gmt 1.14.2 → 1.16.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 (1163) hide show
  1. package/README.md +887 -277
  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 +6 -0
  54. package/dist/index.js +6 -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 +99 -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 +73 -0
  64. package/dist/instant/convert/toOffsetInstant.js +185 -0
  65. package/dist/instant/index.d.ts +2 -0
  66. package/dist/instant/index.js +3 -0
  67. package/dist/internal/adjustZonedBusinessDays.js +9 -7
  68. package/dist/internal/businessCalendar.d.ts +46 -0
  69. package/dist/internal/businessCalendar.js +230 -0
  70. package/dist/internal/businessDayValues.d.ts +20 -0
  71. package/dist/internal/businessDayValues.js +54 -0
  72. package/dist/internal/calendarDatePairPolicy.d.ts +10 -12
  73. package/dist/internal/calendarDatePairPolicy.js +13 -19
  74. package/dist/internal/calendarDateString.d.ts +32 -58
  75. package/dist/internal/calendarDateString.js +51 -93
  76. package/dist/internal/calendarSystemIds.d.ts +26 -2
  77. package/dist/internal/calendarSystemIds.js +57 -51
  78. package/dist/internal/calendarValueOfDate.d.ts +10 -12
  79. package/dist/internal/calendarValueOfDate.js +22 -20
  80. package/dist/internal/calendarValueOfZoned.d.ts +14 -17
  81. package/dist/internal/calendarValueOfZoned.js +25 -25
  82. package/dist/internal/calendarZonedPairPolicy.d.ts +11 -18
  83. package/dist/internal/calendarZonedPairPolicy.js +14 -25
  84. package/dist/internal/calendarZonedString.d.ts +41 -65
  85. package/dist/internal/calendarZonedString.js +52 -101
  86. package/dist/internal/compareUnixEpochs.d.ts +14 -0
  87. package/dist/internal/compareUnixEpochs.js +25 -0
  88. package/dist/internal/dateTimeUnitHelpers.d.ts +18 -0
  89. package/dist/internal/dateTimeUnitHelpers.js +27 -0
  90. package/dist/internal/dateUnitHelpers.d.ts +39 -1
  91. package/dist/internal/dateUnitHelpers.js +73 -11
  92. package/dist/internal/defaultFractionalDigits.d.ts +14 -0
  93. package/dist/internal/defaultFractionalDigits.js +23 -0
  94. package/dist/internal/differenceRecord.d.ts +32 -0
  95. package/dist/internal/differenceRecord.js +79 -0
  96. package/dist/internal/divisionBoundary.d.ts +19 -0
  97. package/dist/internal/divisionBoundary.js +23 -0
  98. package/dist/internal/durationUntilString.d.ts +1 -1
  99. package/dist/internal/durationUntilString.js +10 -2
  100. package/dist/internal/englishCalendarNames.d.ts +11 -0
  101. package/dist/internal/englishCalendarNames.js +21 -1
  102. package/dist/internal/epochNanoseconds.d.ts +27 -0
  103. package/dist/internal/epochNanoseconds.js +31 -0
  104. package/dist/internal/fiscalCalendar.d.ts +36 -0
  105. package/dist/internal/fiscalCalendar.js +86 -0
  106. package/dist/internal/floorDivide.d.ts +15 -0
  107. package/dist/internal/floorDivide.js +18 -0
  108. package/dist/internal/foreignEpochs.d.ts +134 -0
  109. package/dist/internal/foreignEpochs.js +139 -0
  110. package/dist/internal/formatCalendarDays.d.ts +28 -0
  111. package/dist/internal/formatCalendarDays.js +49 -0
  112. package/dist/internal/formatDateInCalendar.d.ts +14 -39
  113. package/dist/internal/formatDateInCalendar.js +16 -47
  114. package/dist/internal/formatRelativeDuration.d.ts +27 -0
  115. package/dist/internal/formatRelativeDuration.js +45 -0
  116. package/dist/internal/getLocaleFirstDayOfWeek.d.ts +9 -6
  117. package/dist/internal/getLocaleFirstDayOfWeek.js +9 -10
  118. package/dist/internal/getLocaleWeekYearBounds.d.ts +17 -9
  119. package/dist/internal/getLocaleWeekYearBounds.js +45 -26
  120. package/dist/internal/getLocaleWeekendDays.d.ts +9 -18
  121. package/dist/internal/getLocaleWeekendDays.js +9 -5
  122. package/dist/internal/halfOpenIntervals.d.ts +102 -0
  123. package/dist/internal/halfOpenIntervals.js +180 -0
  124. package/dist/internal/hasCalendarAnnotation.d.ts +20 -20
  125. package/dist/internal/hasCalendarAnnotation.js +23 -21
  126. package/dist/internal/hourDurationString.d.ts +16 -0
  127. package/dist/internal/hourDurationString.js +47 -0
  128. package/dist/internal/httpDateFields.d.ts +24 -0
  129. package/dist/internal/httpDateFields.js +86 -0
  130. package/dist/internal/index.d.ts +28 -9
  131. package/dist/internal/index.js +28 -9
  132. package/dist/internal/instantFormatOptions.d.ts +43 -0
  133. package/dist/internal/instantFormatOptions.js +99 -0
  134. package/dist/internal/instantIntervalText.d.ts +20 -0
  135. package/dist/internal/instantIntervalText.js +25 -0
  136. package/dist/internal/instantNanoseconds.d.ts +25 -0
  137. package/dist/internal/instantNanoseconds.js +41 -0
  138. package/dist/internal/intervalCountHelpers.d.ts +16 -10
  139. package/dist/internal/intervalCountHelpers.js +1 -31
  140. package/dist/internal/intervalNanoseconds.d.ts +47 -0
  141. package/dist/internal/intervalNanoseconds.js +86 -0
  142. package/dist/internal/isObject.d.ts +26 -0
  143. package/dist/internal/isObject.js +30 -0
  144. package/dist/internal/isoStringBody.d.ts +40 -0
  145. package/dist/internal/isoStringBody.js +85 -0
  146. package/dist/internal/joinDateTimeConnector.d.ts +1 -1
  147. package/dist/internal/localeWeekInfo.d.ts +34 -0
  148. package/dist/internal/localeWeekInfo.js +27 -0
  149. package/dist/internal/maxPieces.d.ts +41 -0
  150. package/dist/internal/maxPieces.js +53 -0
  151. package/dist/internal/measureNearRangeEnd.d.ts +26 -0
  152. package/dist/internal/measureNearRangeEnd.js +47 -0
  153. package/dist/internal/monthGridWeekRow.d.ts +4 -1
  154. package/dist/internal/monthGridWeekRow.js +3 -0
  155. package/dist/internal/normalizeTimeZone.d.ts +17 -10
  156. package/dist/internal/normalizeTimeZone.js +25 -15
  157. package/dist/internal/patternToken.d.ts +2 -1
  158. package/dist/internal/patternToken.js +10 -4
  159. package/dist/internal/plainDateAdd.d.ts +20 -0
  160. package/dist/internal/plainDateAdd.js +42 -0
  161. package/dist/internal/plainDateUntil.d.ts +21 -0
  162. package/dist/internal/plainDateUntil.js +48 -0
  163. package/dist/internal/plainFormatOptions.d.ts +59 -0
  164. package/dist/internal/plainFormatOptions.js +165 -0
  165. package/dist/internal/resolveDateTimeUnit.d.ts +4 -1
  166. package/dist/internal/resolveDateTimeUnit.js +2 -12
  167. package/dist/internal/resolveDurationRelativeTo.d.ts +28 -22
  168. package/dist/internal/resolveDurationRelativeTo.js +69 -25
  169. package/dist/internal/resolveDurationUnit.d.ts +4 -1
  170. package/dist/internal/resolveDurationUnit.js +2 -11
  171. package/dist/internal/resolveLocale.d.ts +37 -0
  172. package/dist/internal/resolveLocale.js +59 -0
  173. package/dist/internal/resolveManualRoundingOptions.d.ts +23 -0
  174. package/dist/internal/resolveManualRoundingOptions.js +39 -0
  175. package/dist/internal/resolveMinimalDaysInFirstWeek.d.ts +19 -0
  176. package/dist/internal/resolveMinimalDaysInFirstWeek.js +28 -0
  177. package/dist/internal/resolveOverflow.d.ts +6 -0
  178. package/dist/internal/resolveOverflow.js +7 -1
  179. package/dist/internal/resolveReadingTimeZone.d.ts +11 -0
  180. package/dist/internal/resolveReadingTimeZone.js +18 -0
  181. package/dist/internal/resolveUnixIntervalPair.d.ts +30 -0
  182. package/dist/internal/resolveUnixIntervalPair.js +53 -0
  183. package/dist/internal/resolveWeekStartsOn.d.ts +12 -0
  184. package/dist/internal/resolveWeekStartsOn.js +18 -0
  185. package/dist/internal/rfc5322DateTime.d.ts +26 -0
  186. package/dist/internal/rfc5322DateTime.js +176 -0
  187. package/dist/internal/splitStep.d.ts +81 -0
  188. package/dist/internal/splitStep.js +182 -0
  189. package/dist/internal/startOrEndOfUnix.d.ts +26 -0
  190. package/dist/internal/startOrEndOfUnix.js +47 -0
  191. package/dist/internal/startOrEndOfUtc.d.ts +27 -0
  192. package/dist/{utc/calculate → internal}/startOrEndOfUtc.js +45 -24
  193. package/dist/internal/startOrEndOfZoned.d.ts +22 -0
  194. package/dist/internal/startOrEndOfZoned.js +49 -0
  195. package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +33 -0
  196. package/dist/internal/temporalCompat/calendarDateArithmetic.js +199 -0
  197. package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +36 -0
  198. package/dist/internal/temporalCompat/calendarDateFromFields.js +120 -0
  199. package/dist/internal/temporalCompat/calendarFields.d.ts +25 -0
  200. package/dist/internal/temporalCompat/calendarFields.js +131 -0
  201. package/dist/internal/temporalCompat/capabilities.d.ts +28 -0
  202. package/dist/internal/temporalCompat/capabilities.js +74 -0
  203. package/dist/internal/temporalCompat/fieldSearch.d.ts +21 -0
  204. package/dist/internal/temporalCompat/fieldSearch.js +83 -0
  205. package/dist/internal/temporalCompat/fixedDay.d.ts +25 -0
  206. package/dist/internal/temporalCompat/fixedDay.js +45 -0
  207. package/dist/internal/temporalCompat/hebrewArithmetic.d.ts +19 -0
  208. package/dist/internal/temporalCompat/hebrewArithmetic.js +150 -0
  209. package/dist/internal/temporalCompat/index.d.ts +4 -0
  210. package/dist/internal/temporalCompat/index.js +5 -0
  211. package/dist/internal/temporalCompat/indianArithmetic.d.ts +16 -0
  212. package/dist/internal/temporalCompat/indianArithmetic.js +87 -0
  213. package/dist/internal/temporalCompat/largeMonthSpan.d.ts +19 -0
  214. package/dist/internal/temporalCompat/largeMonthSpan.js +199 -0
  215. package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +59 -0
  216. package/dist/internal/temporalCompat/nonIsoArithmetic.js +220 -0
  217. package/dist/internal/temporalCompat/readArithmeticModel.d.ts +3 -0
  218. package/dist/internal/temporalCompat/readArithmeticModel.js +284 -0
  219. package/dist/internal/temporalCompat/repros.d.ts +31 -0
  220. package/dist/internal/temporalCompat/repros.js +556 -0
  221. package/dist/internal/toInstantFromUtc.d.ts +10 -0
  222. package/dist/internal/toInstantFromUtc.js +19 -0
  223. package/dist/internal/unixEpochValue.d.ts +166 -0
  224. package/dist/internal/unixEpochValue.js +245 -0
  225. package/dist/internal/unixFormatReference.d.ts +18 -0
  226. package/dist/internal/unixFormatReference.js +44 -0
  227. package/dist/internal/unixZonedDateTime.d.ts +22 -0
  228. package/dist/internal/unixZonedDateTime.js +32 -0
  229. package/dist/internal/utcOffsetString.d.ts +39 -0
  230. package/dist/internal/utcOffsetString.js +75 -0
  231. package/dist/internal/utcZonedDateTime.d.ts +16 -0
  232. package/dist/internal/utcZonedDateTime.js +28 -0
  233. package/dist/internal/zonedBucket.d.ts +91 -0
  234. package/dist/internal/zonedBucket.js +441 -0
  235. package/dist/internal/zonedFormatReference.d.ts +15 -0
  236. package/dist/internal/zonedFormatReference.js +24 -0
  237. package/dist/internal/zonedLocalDates.d.ts +15 -0
  238. package/dist/internal/zonedLocalDates.js +58 -0
  239. package/dist/internal/zonedNowUnitValue.d.ts +24 -0
  240. package/dist/internal/zonedNowUnitValue.js +58 -0
  241. package/dist/internal/zonedWallClock.d.ts +84 -0
  242. package/dist/internal/zonedWallClock.js +427 -0
  243. package/dist/internal/zonedWallClockDifference.d.ts +92 -0
  244. package/dist/internal/zonedWallClockDifference.js +1173 -0
  245. package/dist/internal/zonedWallClockOperations.d.ts +132 -0
  246. package/dist/internal/zonedWallClockOperations.js +553 -0
  247. package/dist/internal/zonelessCalendarDate.d.ts +12 -0
  248. package/dist/internal/zonelessCalendarDate.js +22 -0
  249. package/dist/interval/calculate/clampInterval.d.ts +22 -0
  250. package/dist/interval/calculate/clampInterval.js +31 -0
  251. package/dist/interval/calculate/index.d.ts +6 -0
  252. package/dist/interval/calculate/index.js +6 -0
  253. package/dist/interval/calculate/intersectIntervals.d.ts +23 -0
  254. package/dist/interval/calculate/intersectIntervals.js +43 -0
  255. package/dist/interval/calculate/mergeIntervals.d.ts +28 -0
  256. package/dist/interval/calculate/mergeIntervals.js +44 -0
  257. package/dist/interval/calculate/splitIntervalAt.d.ts +28 -0
  258. package/dist/interval/calculate/splitIntervalAt.js +63 -0
  259. package/dist/interval/calculate/subtractIntervals.d.ts +31 -0
  260. package/dist/interval/calculate/subtractIntervals.js +64 -0
  261. package/dist/interval/calculate/sumIntervals.d.ts +26 -0
  262. package/dist/interval/calculate/sumIntervals.js +40 -0
  263. package/dist/interval/compare/index.d.ts +2 -0
  264. package/dist/interval/compare/index.js +2 -0
  265. package/dist/interval/compare/intervalContains.d.ts +25 -0
  266. package/dist/interval/compare/intervalContains.js +39 -0
  267. package/dist/interval/compare/intervalsOverlap.d.ts +28 -0
  268. package/dist/interval/compare/intervalsOverlap.js +42 -0
  269. package/dist/interval/index.d.ts +4 -0
  270. package/dist/interval/index.js +5 -0
  271. package/dist/interval/validate/index.d.ts +1 -0
  272. package/dist/interval/validate/index.js +1 -0
  273. package/dist/interval/validate/isValidInterval.d.ts +29 -0
  274. package/dist/interval/validate/isValidInterval.js +38 -0
  275. package/dist/plain/calculate/addBusinessDays.d.ts +26 -9
  276. package/dist/plain/calculate/addBusinessDays.js +29 -21
  277. package/dist/plain/calculate/addDate.d.ts +9 -8
  278. package/dist/plain/calculate/addDate.js +35 -22
  279. package/dist/plain/calculate/addDateTime.js +24 -10
  280. package/dist/plain/calculate/addTime.d.ts +5 -8
  281. package/dist/plain/calculate/addTime.js +23 -16
  282. package/dist/plain/calculate/clampDate.js +3 -3
  283. package/dist/plain/calculate/closestDateTo.d.ts +11 -7
  284. package/dist/plain/calculate/closestDateTo.js +36 -24
  285. package/dist/plain/calculate/cycleDate.d.ts +1 -1
  286. package/dist/plain/calculate/cycleDate.js +10 -3
  287. package/dist/plain/calculate/cycleDateTime.d.ts +1 -1
  288. package/dist/plain/calculate/cycleDateTime.js +10 -3
  289. package/dist/plain/calculate/cycleTime.d.ts +6 -8
  290. package/dist/plain/calculate/cycleTime.js +15 -9
  291. package/dist/plain/calculate/diffDate.d.ts +31 -14
  292. package/dist/plain/calculate/diffDate.js +73 -38
  293. package/dist/plain/calculate/diffDateAsDuration.d.ts +13 -8
  294. package/dist/plain/calculate/diffDateAsDuration.js +23 -10
  295. package/dist/plain/calculate/diffDateTime.d.ts +17 -5
  296. package/dist/plain/calculate/diffDateTime.js +67 -28
  297. package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +2 -2
  298. package/dist/plain/calculate/diffDateTimeAsDuration.js +10 -3
  299. package/dist/plain/calculate/diffTime.d.ts +18 -5
  300. package/dist/plain/calculate/diffTime.js +68 -27
  301. package/dist/plain/calculate/endOfDate.d.ts +10 -2
  302. package/dist/plain/calculate/endOfDate.js +52 -27
  303. package/dist/plain/calculate/endOfDateTime.d.ts +17 -2
  304. package/dist/plain/calculate/endOfDateTime.js +126 -103
  305. package/dist/plain/calculate/endOfTime.d.ts +16 -2
  306. package/dist/plain/calculate/endOfTime.js +77 -59
  307. package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +13 -5
  308. package/dist/plain/calculate/getLargestDateDurationUnit.js +26 -10
  309. package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +13 -6
  310. package/dist/plain/calculate/getLargestDateTimeDurationUnit.js +37 -22
  311. package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +13 -6
  312. package/dist/plain/calculate/getLargestTimeDurationUnit.js +33 -18
  313. package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +8 -4
  314. package/dist/plain/calculate/getLocaleDayOfWeek.js +8 -3
  315. package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +8 -4
  316. package/dist/plain/calculate/getLocaleEndOfWeek.js +8 -3
  317. package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +8 -4
  318. package/dist/plain/calculate/getLocaleStartOfWeek.js +8 -3
  319. package/dist/plain/calculate/getLocaleWeekYear.d.ts +29 -19
  320. package/dist/plain/calculate/getLocaleWeekYear.js +48 -28
  321. package/dist/plain/calculate/getWeekNumber.d.ts +21 -2
  322. package/dist/plain/calculate/getWeekNumber.js +33 -12
  323. package/dist/plain/calculate/getWeekOfMonth.d.ts +4 -2
  324. package/dist/plain/calculate/getWeekOfMonth.js +8 -3
  325. package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +25 -14
  326. package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +45 -25
  327. package/dist/plain/calculate/getWeeksInMonth.d.ts +4 -2
  328. package/dist/plain/calculate/getWeeksInMonth.js +8 -3
  329. package/dist/plain/calculate/getWeeksInYear.d.ts +5 -4
  330. package/dist/plain/calculate/getWeeksInYear.js +9 -14
  331. package/dist/plain/calculate/index.d.ts +2 -1
  332. package/dist/plain/calculate/index.js +2 -1
  333. package/dist/plain/calculate/maxDate.js +19 -12
  334. package/dist/plain/calculate/maxDateTime.js +19 -12
  335. package/dist/plain/calculate/maxTime.js +19 -12
  336. package/dist/plain/calculate/minDate.js +19 -12
  337. package/dist/plain/calculate/minDateTime.js +19 -12
  338. package/dist/plain/calculate/minTime.js +19 -12
  339. package/dist/plain/calculate/nextWeekday.js +5 -0
  340. package/dist/plain/calculate/previousWeekday.js +5 -0
  341. package/dist/plain/calculate/roundDate.d.ts +23 -5
  342. package/dist/plain/calculate/roundDate.js +88 -46
  343. package/dist/plain/calculate/roundDateTime.d.ts +27 -3
  344. package/dist/plain/calculate/roundDateTime.js +128 -69
  345. package/dist/plain/calculate/roundTime.d.ts +8 -1
  346. package/dist/plain/calculate/roundTime.js +32 -17
  347. package/dist/plain/calculate/setDate.js +4 -0
  348. package/dist/plain/calculate/setDateTime.js +4 -0
  349. package/dist/plain/calculate/setTime.d.ts +1 -1
  350. package/dist/plain/calculate/setTime.js +5 -1
  351. package/dist/plain/calculate/sortDateTimes.js +17 -10
  352. package/dist/plain/calculate/sortDates.js +17 -10
  353. package/dist/plain/calculate/sortTimes.js +17 -10
  354. package/dist/plain/calculate/startOfDate.d.ts +7 -2
  355. package/dist/plain/calculate/startOfDate.js +52 -27
  356. package/dist/plain/calculate/startOfDateTime.d.ts +5 -2
  357. package/dist/plain/calculate/startOfDateTime.js +81 -62
  358. package/dist/plain/calculate/startOfQuarterForDateTime.d.ts +2 -0
  359. package/dist/plain/calculate/startOfQuarterForDateTime.js +12 -1
  360. package/dist/plain/calculate/startOfTime.d.ts +15 -2
  361. package/dist/plain/calculate/startOfTime.js +33 -37
  362. package/dist/plain/calculate/subtractBusinessDays.d.ts +25 -10
  363. package/dist/plain/calculate/subtractBusinessDays.js +28 -22
  364. package/dist/plain/calculate/subtractDate.d.ts +8 -7
  365. package/dist/plain/calculate/subtractDate.js +35 -21
  366. package/dist/plain/calculate/subtractDateTime.js +24 -10
  367. package/dist/plain/calculate/subtractTime.d.ts +5 -8
  368. package/dist/plain/calculate/subtractTime.js +23 -16
  369. package/dist/plain/calculate/{weekOfYear.d.ts → weekOfYearForDate.d.ts} +0 -14
  370. package/dist/plain/calculate/weekOfYearForDate.js +28 -0
  371. package/dist/plain/calculate/weekOfYearForDateTime.d.ts +14 -0
  372. package/dist/plain/calculate/{weekOfYear.js → weekOfYearForDateTime.js} +1 -27
  373. package/dist/plain/chop/index.d.ts +0 -1
  374. package/dist/plain/chop/index.js +0 -1
  375. package/dist/plain/compare/areDateTimesEqualBy.d.ts +10 -5
  376. package/dist/plain/compare/areDateTimesEqualBy.js +35 -10
  377. package/dist/plain/compare/areDatesEqualBy.d.ts +10 -3
  378. package/dist/plain/compare/areDatesEqualBy.js +41 -14
  379. package/dist/plain/compare/isBetweenDate.js +32 -16
  380. package/dist/plain/compare/isBetweenDateTime.js +34 -18
  381. package/dist/plain/compare/isBetweenTime.js +32 -16
  382. package/dist/plain/compare/isBusinessDay.d.ts +25 -11
  383. package/dist/plain/compare/isBusinessDay.js +36 -15
  384. package/dist/plain/compare/isThisUnit.d.ts +13 -4
  385. package/dist/plain/compare/isThisUnit.js +33 -13
  386. package/dist/plain/compare/isWeekend.d.ts +8 -4
  387. package/dist/plain/compare/isWeekend.js +7 -3
  388. package/dist/plain/convert/convertDateToCalendar.d.ts +34 -33
  389. package/dist/plain/convert/convertDateToCalendar.js +41 -40
  390. package/dist/plain/format/formatCalendar.d.ts +14 -8
  391. package/dist/plain/format/formatCalendar.js +47 -25
  392. package/dist/plain/format/formatDate.d.ts +22 -4
  393. package/dist/plain/format/formatDate.js +37 -5
  394. package/dist/plain/format/formatDateRange.d.ts +18 -4
  395. package/dist/plain/format/formatDateRange.js +29 -5
  396. package/dist/plain/format/formatDateTime.d.ts +23 -4
  397. package/dist/plain/format/formatDateTime.js +31 -5
  398. package/dist/plain/format/formatDateTimeRange.d.ts +21 -4
  399. package/dist/plain/format/formatDateTimeRange.js +29 -5
  400. package/dist/plain/format/formatDateTimeToParts.d.ts +33 -6
  401. package/dist/plain/format/formatDateTimeToParts.js +40 -14
  402. package/dist/plain/format/formatDateToParts.d.ts +25 -3
  403. package/dist/plain/format/formatDateToParts.js +36 -11
  404. package/dist/plain/format/formatRelativeDate.d.ts +10 -17
  405. package/dist/plain/format/formatRelativeDate.js +39 -24
  406. package/dist/plain/format/formatRelativeDateTime.d.ts +18 -20
  407. package/dist/plain/format/formatRelativeDateTime.js +35 -33
  408. package/dist/plain/format/formatRelativeTime.d.ts +11 -18
  409. package/dist/plain/format/formatRelativeTime.js +36 -21
  410. package/dist/plain/format/formatSql.d.ts +15 -10
  411. package/dist/plain/format/formatSql.js +20 -11
  412. package/dist/plain/format/formatTime.d.ts +19 -4
  413. package/dist/plain/format/formatTime.js +32 -5
  414. package/dist/plain/get/getNowUnit.d.ts +5 -3
  415. package/dist/plain/get/getNowUnit.js +14 -29
  416. package/dist/plain/index.js +1 -1
  417. package/dist/plain/interval/intervalAbutsDate.d.ts +12 -7
  418. package/dist/plain/interval/intervalAbutsDate.js +15 -19
  419. package/dist/plain/interval/intervalAbutsDateTime.d.ts +9 -7
  420. package/dist/plain/interval/intervalAbutsDateTime.js +17 -23
  421. package/dist/plain/interval/intervalAbutsTime.d.ts +11 -5
  422. package/dist/plain/interval/intervalAbutsTime.js +19 -21
  423. package/dist/plain/interval/intervalContainsDate.d.ts +17 -10
  424. package/dist/plain/interval/intervalContainsDate.js +20 -15
  425. package/dist/plain/interval/intervalContainsDateTime.d.ts +16 -11
  426. package/dist/plain/interval/intervalContainsDateTime.js +24 -20
  427. package/dist/plain/interval/intervalContainsTime.d.ts +20 -10
  428. package/dist/plain/interval/intervalContainsTime.js +28 -19
  429. package/dist/plain/interval/intervalCountDate.d.ts +13 -8
  430. package/dist/plain/interval/intervalCountDate.js +46 -14
  431. package/dist/plain/interval/intervalCountDateTime.d.ts +6 -4
  432. package/dist/plain/interval/intervalCountDateTime.js +63 -18
  433. package/dist/plain/interval/intervalCountTime.d.ts +3 -4
  434. package/dist/plain/interval/intervalCountTime.js +9 -9
  435. package/dist/plain/interval/intervalDifferenceDate.d.ts +13 -6
  436. package/dist/plain/interval/intervalDifferenceDate.js +19 -32
  437. package/dist/plain/interval/intervalDifferenceDateTime.d.ts +10 -4
  438. package/dist/plain/interval/intervalDifferenceDateTime.js +21 -27
  439. package/dist/plain/interval/intervalDifferenceTime.d.ts +11 -4
  440. package/dist/plain/interval/intervalDifferenceTime.js +22 -27
  441. package/dist/plain/interval/intervalDivideEquallyDate.d.ts +16 -4
  442. package/dist/plain/interval/intervalDivideEquallyDate.js +57 -33
  443. package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +16 -4
  444. package/dist/plain/interval/intervalDivideEquallyDateTime.js +67 -31
  445. package/dist/plain/interval/intervalDivideEquallyTime.d.ts +16 -4
  446. package/dist/plain/interval/intervalDivideEquallyTime.js +58 -31
  447. package/dist/plain/interval/intervalEngulfsDate.d.ts +16 -9
  448. package/dist/plain/interval/intervalEngulfsDate.js +19 -12
  449. package/dist/plain/interval/intervalEngulfsDateTime.d.ts +16 -11
  450. package/dist/plain/interval/intervalEngulfsDateTime.js +24 -18
  451. package/dist/plain/interval/intervalEngulfsTime.d.ts +18 -8
  452. package/dist/plain/interval/intervalEngulfsTime.js +26 -15
  453. package/dist/plain/interval/intervalFromDurationDate.d.ts +5 -4
  454. package/dist/plain/interval/intervalFromDurationDate.js +11 -8
  455. package/dist/plain/interval/intervalFromDurationDateTime.js +4 -0
  456. package/dist/plain/interval/intervalFromDurationTime.d.ts +10 -12
  457. package/dist/plain/interval/intervalFromDurationTime.js +28 -17
  458. package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -4
  459. package/dist/plain/interval/intervalIntersectionDate.js +14 -9
  460. package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -4
  461. package/dist/plain/interval/intervalIntersectionDateTime.js +19 -13
  462. package/dist/plain/interval/intervalIntersectionTime.d.ts +7 -3
  463. package/dist/plain/interval/intervalIntersectionTime.js +17 -12
  464. package/dist/plain/interval/intervalLengthDate.d.ts +9 -6
  465. package/dist/plain/interval/intervalLengthDate.js +40 -8
  466. package/dist/plain/interval/intervalLengthDateTime.js +2 -2
  467. package/dist/plain/interval/intervalOverlappingDaysDate.d.ts +16 -17
  468. package/dist/plain/interval/intervalOverlappingDaysDate.js +30 -30
  469. package/dist/plain/interval/intervalOverlappingDaysDateTime.d.ts +7 -12
  470. package/dist/plain/interval/intervalOverlappingDaysDateTime.js +24 -24
  471. package/dist/plain/interval/intervalSplitAtDate.d.ts +10 -5
  472. package/dist/plain/interval/intervalSplitAtDate.js +48 -36
  473. package/dist/plain/interval/intervalSplitAtDateTime.d.ts +9 -4
  474. package/dist/plain/interval/intervalSplitAtDateTime.js +44 -32
  475. package/dist/plain/interval/intervalSplitAtTime.d.ts +9 -4
  476. package/dist/plain/interval/intervalSplitAtTime.js +44 -32
  477. package/dist/plain/interval/intervalUnionDate.d.ts +14 -6
  478. package/dist/plain/interval/intervalUnionDate.js +19 -11
  479. package/dist/plain/interval/intervalUnionDateTime.d.ts +12 -5
  480. package/dist/plain/interval/intervalUnionDateTime.js +22 -14
  481. package/dist/plain/interval/intervalUnionTime.d.ts +10 -3
  482. package/dist/plain/interval/intervalUnionTime.js +20 -12
  483. package/dist/plain/interval/intervalXorAllDate.d.ts +11 -10
  484. package/dist/plain/interval/intervalXorAllDate.js +37 -59
  485. package/dist/plain/interval/intervalXorAllDateTime.d.ts +7 -5
  486. package/dist/plain/interval/intervalXorAllDateTime.js +28 -48
  487. package/dist/plain/interval/intervalXorAllTime.d.ts +8 -4
  488. package/dist/plain/interval/intervalXorAllTime.js +29 -47
  489. package/dist/plain/interval/intervalXorDate.d.ts +10 -9
  490. package/dist/plain/interval/intervalXorDate.js +19 -54
  491. package/dist/plain/interval/intervalXorDateTime.d.ts +9 -7
  492. package/dist/plain/interval/intervalXorDateTime.js +23 -50
  493. package/dist/plain/interval/intervalXorTime.d.ts +8 -7
  494. package/dist/plain/interval/intervalXorTime.js +22 -50
  495. package/dist/plain/interval/intervalsOverlapDate.d.ts +14 -7
  496. package/dist/plain/interval/intervalsOverlapDate.js +17 -10
  497. package/dist/plain/interval/intervalsOverlapDateTime.d.ts +12 -7
  498. package/dist/plain/interval/intervalsOverlapDateTime.js +20 -14
  499. package/dist/plain/interval/intervalsOverlapTime.d.ts +10 -5
  500. package/dist/plain/interval/intervalsOverlapTime.js +18 -12
  501. package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -5
  502. package/dist/plain/interval/mergeIntervalsDate.js +37 -38
  503. package/dist/plain/interval/mergeIntervalsDateTime.d.ts +7 -3
  504. package/dist/plain/interval/mergeIntervalsDateTime.js +31 -32
  505. package/dist/plain/interval/mergeIntervalsTime.d.ts +7 -3
  506. package/dist/plain/interval/mergeIntervalsTime.js +31 -31
  507. package/dist/plain/interval/splitIntervalByUnitDate.d.ts +26 -6
  508. package/dist/plain/interval/splitIntervalByUnitDate.js +76 -43
  509. package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -2
  510. package/dist/plain/interval/splitIntervalByUnitDateTime.js +65 -39
  511. package/dist/plain/interval/splitIntervalByUnitTime.d.ts +18 -2
  512. package/dist/plain/interval/splitIntervalByUnitTime.js +76 -39
  513. package/dist/plain/interval/validate/isValidDateInterval.d.ts +4 -2
  514. package/dist/plain/interval/validate/isValidDateInterval.js +4 -2
  515. package/dist/plain/interval/validate/isValidDateTimeInterval.d.ts +5 -0
  516. package/dist/plain/interval/validate/isValidDateTimeInterval.js +7 -2
  517. package/dist/plain/interval/validate/isValidTimeInterval.d.ts +5 -0
  518. package/dist/plain/interval/validate/isValidTimeInterval.js +8 -18
  519. package/dist/plain/locale/getLocaleEraNames.d.ts +14 -4
  520. package/dist/plain/locale/getLocaleEraNames.js +56 -41
  521. package/dist/plain/locale/getLocaleMeridiems.d.ts +7 -4
  522. package/dist/plain/locale/getLocaleMeridiems.js +28 -22
  523. package/dist/plain/locale/getLocaleMonthNames.d.ts +14 -4
  524. package/dist/plain/locale/getLocaleMonthNames.js +34 -19
  525. package/dist/plain/locale/getLocaleWeekdayNames.d.ts +14 -7
  526. package/dist/plain/locale/getLocaleWeekdayNames.js +40 -22
  527. package/dist/plain/map/mapDatesInRange.d.ts +18 -1
  528. package/dist/plain/map/mapDatesInRange.js +53 -17
  529. package/dist/plain/parse/parseDateTimeWithPattern.d.ts +3 -2
  530. package/dist/plain/parse/parseDateTimeWithPattern.js +30 -24
  531. package/dist/plain/parse/parseDateWithPattern.d.ts +3 -2
  532. package/dist/plain/parse/parseDateWithPattern.js +22 -16
  533. package/dist/plain/parse/parseMicrosecondFromDateTime.d.ts +2 -1
  534. package/dist/plain/parse/parseMicrosecondFromDateTime.js +2 -1
  535. package/dist/plain/parse/parseMicrosecondFromTime.d.ts +2 -1
  536. package/dist/plain/parse/parseMicrosecondFromTime.js +2 -1
  537. package/dist/plain/parse/parseNanosecondFromDateTime.d.ts +2 -1
  538. package/dist/plain/parse/parseNanosecondFromDateTime.js +2 -1
  539. package/dist/plain/parse/parseNanosecondFromTime.d.ts +2 -1
  540. package/dist/plain/parse/parseNanosecondFromTime.js +2 -1
  541. package/dist/plain/parse/parseSql.d.ts +15 -12
  542. package/dist/plain/parse/parseSql.js +16 -13
  543. package/dist/plain/parse/parseTimeWithPattern.d.ts +3 -2
  544. package/dist/plain/parse/parseTimeWithPattern.js +27 -21
  545. package/dist/plain/parse/parseUnitFromDate.d.ts +9 -2
  546. package/dist/plain/parse/parseUnitFromDate.js +39 -19
  547. package/dist/plain/parse/parseUnitFromDateTime.d.ts +11 -3
  548. package/dist/plain/parse/parseUnitFromDateTime.js +54 -28
  549. package/dist/plain/parse/parseUnitFromTime.d.ts +9 -3
  550. package/dist/plain/parse/parseUnitFromTime.js +13 -3
  551. package/dist/plain/parse/parseWeekFromDate.d.ts +5 -0
  552. package/dist/plain/parse/parseWeekFromDate.js +24 -5
  553. package/dist/plain/parse/parseWeekFromDateTime.d.ts +5 -0
  554. package/dist/plain/parse/parseWeekFromDateTime.js +26 -5
  555. package/dist/plain/validate/isLeapSecond.d.ts +27 -9
  556. package/dist/plain/validate/isLeapSecond.js +30 -9
  557. package/dist/plain/validate/isLeapYear.d.ts +7 -1
  558. package/dist/plain/validate/isLeapYear.js +10 -1
  559. package/dist/plain/validate/isValidCalendarDate.d.ts +37 -6
  560. package/dist/plain/validate/isValidCalendarDate.js +37 -6
  561. package/dist/plain/validate/isValidDate.d.ts +9 -1
  562. package/dist/plain/validate/isValidDate.js +14 -5
  563. package/dist/plain/validate/isValidDateRange.d.ts +11 -4
  564. package/dist/plain/validate/isValidDateRange.js +32 -22
  565. package/dist/plain/validate/isValidDateTime.d.ts +7 -1
  566. package/dist/plain/validate/isValidDateTime.js +12 -5
  567. package/dist/plain/validate/isValidDateTimeRange.d.ts +3 -2
  568. package/dist/plain/validate/isValidDateTimeRange.js +30 -15
  569. package/dist/plain/validate/isValidIsoDateLike.d.ts +6 -1
  570. package/dist/plain/validate/isValidIsoDateLike.js +13 -8
  571. package/dist/plain/validate/isValidTime.d.ts +6 -1
  572. package/dist/plain/validate/isValidTime.js +10 -3
  573. package/dist/plain/validate/isValidTimeRange.d.ts +4 -2
  574. package/dist/plain/validate/isValidTimeRange.js +31 -27
  575. package/dist/precision/calculate/index.d.ts +1 -0
  576. package/dist/precision/calculate/index.js +1 -0
  577. package/dist/precision/calculate/truncateNanoseconds.d.ts +37 -0
  578. package/dist/precision/calculate/truncateNanoseconds.js +41 -0
  579. package/dist/precision/convert/fromDotNetTicks.d.ts +30 -0
  580. package/dist/precision/convert/fromDotNetTicks.js +39 -0
  581. package/dist/precision/convert/fromExcelSerial.d.ts +38 -0
  582. package/dist/precision/convert/fromExcelSerial.js +81 -0
  583. package/dist/precision/convert/fromFileTime.d.ts +30 -0
  584. package/dist/precision/convert/fromFileTime.js +39 -0
  585. package/dist/precision/convert/fromNanoseconds.d.ts +29 -0
  586. package/dist/precision/convert/fromNanoseconds.js +50 -0
  587. package/dist/precision/convert/fromNtpTimestamp.d.ts +43 -0
  588. package/dist/precision/convert/fromNtpTimestamp.js +57 -0
  589. package/dist/precision/convert/fromPgMicroseconds.d.ts +26 -0
  590. package/dist/precision/convert/fromPgMicroseconds.js +33 -0
  591. package/dist/precision/convert/index.d.ts +12 -0
  592. package/dist/precision/convert/index.js +12 -0
  593. package/dist/precision/convert/toDotNetTicks.d.ts +29 -0
  594. package/dist/precision/convert/toDotNetTicks.js +40 -0
  595. package/dist/precision/convert/toExcelSerial.d.ts +56 -0
  596. package/dist/precision/convert/toExcelSerial.js +85 -0
  597. package/dist/precision/convert/toFileTime.d.ts +31 -0
  598. package/dist/precision/convert/toFileTime.js +43 -0
  599. package/dist/precision/convert/toNanoseconds.d.ts +37 -0
  600. package/dist/precision/convert/toNanoseconds.js +40 -0
  601. package/dist/precision/convert/toNtpTimestamp.d.ts +30 -0
  602. package/dist/precision/convert/toNtpTimestamp.js +38 -0
  603. package/dist/precision/convert/toPgMicroseconds.d.ts +29 -0
  604. package/dist/precision/convert/toPgMicroseconds.js +42 -0
  605. package/dist/precision/format/formatNanoseconds.d.ts +26 -0
  606. package/dist/precision/format/formatNanoseconds.js +32 -0
  607. package/dist/precision/format/index.d.ts +1 -0
  608. package/dist/precision/format/index.js +1 -0
  609. package/dist/precision/index.d.ts +6 -0
  610. package/dist/precision/index.js +7 -0
  611. package/dist/precision/parse/index.d.ts +1 -0
  612. package/dist/precision/parse/index.js +1 -0
  613. package/dist/precision/parse/parseNanoseconds.d.ts +27 -0
  614. package/dist/precision/parse/parseNanoseconds.js +32 -0
  615. package/dist/precision/validate/index.d.ts +3 -0
  616. package/dist/precision/validate/index.js +3 -0
  617. package/dist/precision/validate/isValidInstant.d.ts +37 -0
  618. package/dist/precision/validate/isValidInstant.js +40 -0
  619. package/dist/precision/validate/isValidNanoPattern.d.ts +27 -0
  620. package/dist/precision/validate/isValidNanoPattern.js +40 -0
  621. package/dist/precision/validate/isValidNanoseconds.d.ts +25 -0
  622. package/dist/precision/validate/isValidNanoseconds.js +28 -0
  623. package/dist/regex/calendar-date.d.ts +30 -0
  624. package/dist/regex/calendar-date.js +31 -11
  625. package/dist/regex/calendar-zoned-date-time.d.ts +29 -0
  626. package/dist/regex/calendar-zoned-date-time.js +30 -41
  627. package/dist/regex/date-time.d.ts +28 -0
  628. package/dist/regex/date-time.js +29 -2
  629. package/dist/regex/date.d.ts +58 -0
  630. package/dist/regex/date.js +60 -3
  631. package/dist/regex/http-date.d.ts +19 -0
  632. package/dist/regex/http-date.js +19 -6
  633. package/dist/regex/index.d.ts +3 -0
  634. package/dist/regex/index.js +4 -0
  635. package/dist/regex/leap-second.d.ts +45 -0
  636. package/dist/regex/leap-second.js +46 -2
  637. package/dist/regex/nanoseconds.d.ts +20 -0
  638. package/dist/regex/nanoseconds.js +20 -0
  639. package/dist/regex/rfc-2822.d.ts +26 -0
  640. package/dist/regex/rfc-2822.js +26 -8
  641. package/dist/regex/rfc-3339.d.ts +26 -0
  642. package/dist/regex/rfc-3339.js +27 -7
  643. package/dist/regex/sql-date-time.d.ts +33 -0
  644. package/dist/regex/sql-date-time.js +34 -7
  645. package/dist/regex/time-zone-like.d.ts +30 -0
  646. package/dist/regex/time-zone-like.js +31 -1
  647. package/dist/regex/time.d.ts +73 -0
  648. package/dist/regex/time.js +73 -3
  649. package/dist/regex/unix.d.ts +29 -0
  650. package/dist/regex/unix.js +29 -0
  651. package/dist/regex/utc-date-time.d.ts +30 -0
  652. package/dist/regex/utc-date-time.js +31 -2
  653. package/dist/regex/utc-offset.d.ts +24 -0
  654. package/dist/regex/utc-offset.js +24 -0
  655. package/dist/span/calculate/index.d.ts +3 -0
  656. package/dist/span/calculate/index.js +3 -0
  657. package/dist/span/calculate/spanMs.d.ts +52 -0
  658. package/dist/span/calculate/spanMs.js +80 -0
  659. package/dist/span/calculate/spanNs.d.ts +43 -0
  660. package/dist/span/calculate/spanNs.js +51 -0
  661. package/dist/span/calculate/spanWallClock.d.ts +60 -0
  662. package/dist/span/calculate/spanWallClock.js +80 -0
  663. package/dist/span/index.d.ts +3 -0
  664. package/dist/span/index.js +4 -0
  665. package/dist/span/validate/index.d.ts +1 -0
  666. package/dist/span/validate/index.js +1 -0
  667. package/dist/span/validate/isValidSpan.d.ts +37 -0
  668. package/dist/span/validate/isValidSpan.js +41 -0
  669. package/dist/types/business-calendar.d.ts +27 -0
  670. package/dist/types/business-calendar.js +0 -0
  671. package/dist/types/calendar-options.d.ts +11 -0
  672. package/dist/types/calendar-options.js +0 -0
  673. package/dist/types/calendar-system.d.ts +9 -1
  674. package/dist/types/datetime-format-options.d.ts +6 -0
  675. package/dist/types/datetime-format-options.js +0 -0
  676. package/dist/types/duration-unit.d.ts +5 -0
  677. package/dist/types/duration-unit.js +0 -0
  678. package/dist/types/fiscal-calendar.d.ts +22 -0
  679. package/dist/types/fiscal-calendar.js +0 -0
  680. package/dist/types/index.d.ts +17 -0
  681. package/dist/types/index.js +16 -0
  682. package/dist/types/interval.d.ts +18 -0
  683. package/dist/types/interval.js +0 -0
  684. package/dist/types/now-unit.d.ts +5 -0
  685. package/dist/types/now-unit.js +0 -0
  686. package/dist/types/relative-date-time-unit.d.ts +6 -0
  687. package/dist/types/relative-date-time-unit.js +0 -0
  688. package/dist/types/relative-date-unit.d.ts +5 -0
  689. package/dist/types/relative-date-unit.js +0 -0
  690. package/dist/types/relative-time-options.d.ts +18 -0
  691. package/dist/types/relative-time-options.js +0 -0
  692. package/dist/types/relative-time-unit.d.ts +5 -0
  693. package/dist/types/relative-time-unit.js +0 -0
  694. package/dist/types/relative-unit.d.ts +6 -0
  695. package/dist/types/relative-unit.js +0 -0
  696. package/dist/types/roll-convention.d.ts +32 -0
  697. package/dist/types/roll-convention.js +0 -0
  698. package/dist/types/unix-now-unit.d.ts +5 -0
  699. package/dist/types/unix-now-unit.js +0 -0
  700. package/dist/types/utc-now-unit.d.ts +5 -0
  701. package/dist/types/utc-now-unit.js +0 -0
  702. package/dist/types/zone-bucket-unit.d.ts +11 -0
  703. package/dist/types/zone-bucket-unit.js +0 -0
  704. package/dist/unix/calculate/addUnix.d.ts +10 -4
  705. package/dist/unix/calculate/addUnix.js +39 -26
  706. package/dist/unix/calculate/diffUnix.d.ts +38 -11
  707. package/dist/unix/calculate/diffUnix.js +84 -40
  708. package/dist/unix/calculate/diffUnixAsDuration.d.ts +17 -7
  709. package/dist/unix/calculate/diffUnixAsDuration.js +42 -23
  710. package/dist/unix/calculate/endOfQuarterForUnix.d.ts +15 -11
  711. package/dist/unix/calculate/endOfQuarterForUnix.js +20 -39
  712. package/dist/unix/calculate/endOfUnix.d.ts +23 -18
  713. package/dist/unix/calculate/endOfUnix.js +37 -15
  714. package/dist/unix/calculate/isBetweenUnix.d.ts +12 -6
  715. package/dist/unix/calculate/isBetweenUnix.js +34 -23
  716. package/dist/unix/calculate/maxUnix.d.ts +6 -3
  717. package/dist/unix/calculate/maxUnix.js +17 -8
  718. package/dist/unix/calculate/minUnix.d.ts +6 -3
  719. package/dist/unix/calculate/minUnix.js +17 -8
  720. package/dist/unix/calculate/roundUnix.d.ts +24 -10
  721. package/dist/unix/calculate/roundUnix.js +67 -42
  722. package/dist/unix/calculate/setUnix.d.ts +14 -5
  723. package/dist/unix/calculate/setUnix.js +48 -29
  724. package/dist/unix/calculate/sortUnix.d.ts +6 -3
  725. package/dist/unix/calculate/sortUnix.js +19 -11
  726. package/dist/unix/calculate/startOfQuarterForUnix.d.ts +17 -12
  727. package/dist/unix/calculate/startOfQuarterForUnix.js +22 -30
  728. package/dist/unix/calculate/startOfUnix.d.ts +23 -18
  729. package/dist/unix/calculate/startOfUnix.js +37 -15
  730. package/dist/unix/calculate/subtractUnix.d.ts +10 -4
  731. package/dist/unix/calculate/subtractUnix.js +39 -26
  732. package/dist/unix/compare/areUnixEqual.d.ts +9 -5
  733. package/dist/unix/compare/areUnixEqual.js +17 -13
  734. package/dist/unix/compare/areUnixEqualBy.d.ts +14 -7
  735. package/dist/unix/compare/areUnixEqualBy.js +14 -7
  736. package/dist/unix/compare/isAfterUnix.d.ts +8 -4
  737. package/dist/unix/compare/isAfterUnix.js +16 -12
  738. package/dist/unix/compare/isBeforeUnix.d.ts +7 -4
  739. package/dist/unix/compare/isBeforeUnix.js +15 -12
  740. package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -9
  741. package/dist/unix/convert/convertUnixToPlainDate.js +34 -21
  742. package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +15 -9
  743. package/dist/unix/convert/convertUnixToPlainDateTime.js +32 -21
  744. package/dist/unix/convert/convertUnixToPlainTime.d.ts +15 -9
  745. package/dist/unix/convert/convertUnixToPlainTime.js +32 -21
  746. package/dist/unix/convert/convertUnixToUtc.d.ts +15 -7
  747. package/dist/unix/convert/convertUnixToUtc.js +20 -15
  748. package/dist/unix/convert/convertUnixToZoned.d.ts +17 -10
  749. package/dist/unix/convert/convertUnixToZoned.js +31 -20
  750. package/dist/unix/format/formatCalendarUnix.d.ts +35 -6
  751. package/dist/unix/format/formatCalendarUnix.js +35 -81
  752. package/dist/unix/format/formatRelativeUnix.d.ts +26 -16
  753. package/dist/unix/format/formatRelativeUnix.js +46 -93
  754. package/dist/unix/format/formatUnix.d.ts +43 -2
  755. package/dist/unix/format/formatUnix.js +65 -32
  756. package/dist/unix/get/getUnixNow.d.ts +13 -7
  757. package/dist/unix/get/getUnixNow.js +27 -17
  758. package/dist/unix/get/getUnixNowUnit.d.ts +7 -5
  759. package/dist/unix/get/getUnixNowUnit.js +9 -35
  760. package/dist/unix/index.d.ts +1 -0
  761. package/dist/unix/index.js +2 -0
  762. package/dist/unix/interval/intervalAbutsUnix.d.ts +17 -12
  763. package/dist/unix/interval/intervalAbutsUnix.js +23 -41
  764. package/dist/unix/interval/intervalContainsUnix.d.ts +17 -7
  765. package/dist/unix/interval/intervalContainsUnix.js +25 -37
  766. package/dist/unix/interval/intervalCountUnix.d.ts +30 -13
  767. package/dist/unix/interval/intervalCountUnix.js +49 -23
  768. package/dist/unix/interval/intervalDifferenceUnix.d.ts +19 -10
  769. package/dist/unix/interval/intervalDifferenceUnix.js +25 -43
  770. package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +24 -10
  771. package/dist/unix/interval/intervalDivideEquallyUnix.js +57 -36
  772. package/dist/unix/interval/intervalEngulfsUnix.d.ts +13 -7
  773. package/dist/unix/interval/intervalEngulfsUnix.js +18 -30
  774. package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -6
  775. package/dist/unix/interval/intervalFromDurationUnix.js +51 -39
  776. package/dist/unix/interval/intervalIntersectionUnix.d.ts +18 -11
  777. package/dist/unix/interval/intervalIntersectionUnix.js +25 -46
  778. package/dist/unix/interval/intervalLengthUnix.d.ts +21 -9
  779. package/dist/unix/interval/intervalLengthUnix.js +41 -18
  780. package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +26 -12
  781. package/dist/unix/interval/intervalOverlappingDaysUnix.js +67 -63
  782. package/dist/unix/interval/intervalSplitAtUnix.d.ts +11 -6
  783. package/dist/unix/interval/intervalSplitAtUnix.js +41 -34
  784. package/dist/unix/interval/intervalUnionUnix.d.ts +15 -9
  785. package/dist/unix/interval/intervalUnionUnix.js +20 -42
  786. package/dist/unix/interval/intervalXorAllUnix.d.ts +8 -6
  787. package/dist/unix/interval/intervalXorAllUnix.js +21 -56
  788. package/dist/unix/interval/intervalXorUnix.d.ts +22 -11
  789. package/dist/unix/interval/intervalXorUnix.js +28 -56
  790. package/dist/unix/interval/intervalsOverlapUnix.d.ts +16 -10
  791. package/dist/unix/interval/intervalsOverlapUnix.js +21 -37
  792. package/dist/unix/interval/mergeIntervalsUnix.d.ts +10 -4
  793. package/dist/unix/interval/mergeIntervalsUnix.js +25 -36
  794. package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +38 -8
  795. package/dist/unix/interval/splitIntervalByUnitUnix.js +72 -56
  796. package/dist/unix/interval/validate/isValidUnixInterval.d.ts +12 -6
  797. package/dist/unix/interval/validate/isValidUnixInterval.js +17 -16
  798. package/dist/unix/parse/index.d.ts +2 -0
  799. package/dist/unix/parse/index.js +2 -0
  800. package/dist/unix/parse/parseDateFromUnix.d.ts +10 -8
  801. package/dist/unix/parse/parseDateFromUnix.js +17 -29
  802. package/dist/unix/parse/parseDayFromUnix.d.ts +6 -4
  803. package/dist/unix/parse/parseDayFromUnix.js +18 -5
  804. package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +8 -5
  805. package/dist/unix/parse/parseDayOfWeekFromUnix.js +15 -28
  806. package/dist/unix/parse/parseHourFromUnix.d.ts +6 -4
  807. package/dist/unix/parse/parseHourFromUnix.js +18 -5
  808. package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
  809. package/dist/unix/parse/parseMicrosecondFromUnix.js +16 -3
  810. package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
  811. package/dist/unix/parse/parseMillisecondFromUnix.js +16 -3
  812. package/dist/unix/parse/parseMinuteFromUnix.d.ts +6 -4
  813. package/dist/unix/parse/parseMinuteFromUnix.js +18 -5
  814. package/dist/unix/parse/parseMonthFromUnix.d.ts +6 -4
  815. package/dist/unix/parse/parseMonthFromUnix.js +18 -5
  816. package/dist/unix/parse/parseNanosecondFromUnix.d.ts +8 -5
  817. package/dist/unix/parse/parseNanosecondFromUnix.js +20 -6
  818. package/dist/unix/parse/parseSecondFromUnix.d.ts +5 -3
  819. package/dist/unix/parse/parseSecondFromUnix.js +17 -4
  820. package/dist/unix/parse/parseTimeFromUnix.d.ts +10 -8
  821. package/dist/unix/parse/parseTimeFromUnix.js +17 -29
  822. package/dist/unix/parse/parseUnitFromUnix.d.ts +40 -9
  823. package/dist/unix/parse/parseUnitFromUnix.js +57 -55
  824. package/dist/unix/parse/parseWeekFromUnix.d.ts +15 -7
  825. package/dist/unix/parse/parseWeekFromUnix.js +32 -30
  826. package/dist/unix/parse/parseYearFromUnix.d.ts +5 -3
  827. package/dist/unix/parse/parseYearFromUnix.js +17 -4
  828. package/dist/unix/validate/isValidUnixMilliseconds.d.ts +8 -5
  829. package/dist/unix/validate/isValidUnixMilliseconds.js +10 -9
  830. package/dist/unix/validate/isValidUnixRange.d.ts +13 -7
  831. package/dist/unix/validate/isValidUnixRange.js +29 -19
  832. package/dist/unix/validate/isValidUnixSeconds.d.ts +8 -5
  833. package/dist/unix/validate/isValidUnixSeconds.js +10 -9
  834. package/dist/unix/validate/isValidUnixUnit.d.ts +22 -5
  835. package/dist/unix/validate/isValidUnixUnit.js +6 -8
  836. package/dist/utc/calculate/addUtc.js +26 -12
  837. package/dist/utc/calculate/diffUtc.d.ts +22 -7
  838. package/dist/utc/calculate/diffUtc.js +75 -31
  839. package/dist/utc/calculate/diffUtcAsDuration.d.ts +2 -2
  840. package/dist/utc/calculate/diffUtcAsDuration.js +10 -3
  841. package/dist/utc/calculate/endOfQuarterForUtc.d.ts +1 -1
  842. package/dist/utc/calculate/endOfQuarterForUtc.js +1 -1
  843. package/dist/utc/calculate/endOfUtc.d.ts +11 -4
  844. package/dist/utc/calculate/endOfUtc.js +22 -5
  845. package/dist/utc/calculate/isBetweenUtc.js +40 -24
  846. package/dist/utc/calculate/maxUtc.js +19 -12
  847. package/dist/utc/calculate/minUtc.js +19 -12
  848. package/dist/utc/calculate/roundUtc.d.ts +16 -2
  849. package/dist/utc/calculate/roundUtc.js +42 -31
  850. package/dist/utc/calculate/setUtc.d.ts +4 -8
  851. package/dist/utc/calculate/setUtc.js +25 -18
  852. package/dist/utc/calculate/sortUtc.js +17 -10
  853. package/dist/utc/calculate/startOfQuarterForUtc.d.ts +2 -0
  854. package/dist/utc/calculate/startOfQuarterForUtc.js +12 -1
  855. package/dist/utc/calculate/startOfUtc.d.ts +6 -4
  856. package/dist/utc/calculate/startOfUtc.js +17 -5
  857. package/dist/utc/calculate/subtractUtc.js +26 -12
  858. package/dist/utc/chop/chopUtc.d.ts +5 -2
  859. package/dist/utc/chop/chopUtc.js +8 -4
  860. package/dist/utc/compare/areUtcEqualBy.d.ts +10 -5
  861. package/dist/utc/compare/areUtcEqualBy.js +34 -11
  862. package/dist/utc/convert/convertUtcToPlainDate.js +22 -10
  863. package/dist/utc/convert/convertUtcToPlainDateTime.js +28 -16
  864. package/dist/utc/convert/convertUtcToPlainTime.js +22 -10
  865. package/dist/utc/convert/convertUtcToUnix.d.ts +12 -5
  866. package/dist/utc/convert/convertUtcToUnix.js +22 -13
  867. package/dist/utc/format/formatCalendarUtc.d.ts +13 -8
  868. package/dist/utc/format/formatCalendarUtc.js +32 -41
  869. package/dist/utc/format/formatHttp.d.ts +9 -3
  870. package/dist/utc/format/formatHttp.js +14 -12
  871. package/dist/utc/format/formatRelativeUtc.d.ts +20 -18
  872. package/dist/utc/format/formatRelativeUtc.js +43 -51
  873. package/dist/utc/format/formatUtc.d.ts +51 -1
  874. package/dist/utc/format/formatUtc.js +57 -11
  875. package/dist/utc/get/getUtcNowUnit.d.ts +5 -3
  876. package/dist/utc/get/getUtcNowUnit.js +11 -33
  877. package/dist/utc/index.d.ts +1 -0
  878. package/dist/utc/index.js +2 -0
  879. package/dist/utc/interval/intervalAbutsUtc.d.ts +10 -7
  880. package/dist/utc/interval/intervalAbutsUtc.js +18 -30
  881. package/dist/utc/interval/intervalContainsUtc.d.ts +19 -11
  882. package/dist/utc/interval/intervalContainsUtc.js +33 -34
  883. package/dist/utc/interval/intervalCountUtc.d.ts +3 -4
  884. package/dist/utc/interval/intervalCountUtc.js +12 -18
  885. package/dist/utc/interval/intervalDifferenceUtc.d.ts +13 -5
  886. package/dist/utc/interval/intervalDifferenceUtc.js +25 -51
  887. package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +16 -3
  888. package/dist/utc/interval/intervalDivideEquallyUtc.js +54 -34
  889. package/dist/utc/interval/intervalEngulfsUtc.d.ts +17 -12
  890. package/dist/utc/interval/intervalEngulfsUtc.js +25 -26
  891. package/dist/utc/interval/intervalFromDurationUtc.js +5 -0
  892. package/dist/utc/interval/intervalIntersectionUtc.d.ts +12 -6
  893. package/dist/utc/interval/intervalIntersectionUtc.js +24 -41
  894. package/dist/utc/interval/intervalLengthUtc.js +5 -7
  895. package/dist/utc/interval/intervalOverlappingDaysUtc.d.ts +7 -13
  896. package/dist/utc/interval/intervalOverlappingDaysUtc.js +25 -36
  897. package/dist/utc/interval/intervalSplitAtUtc.d.ts +7 -2
  898. package/dist/utc/interval/intervalSplitAtUtc.js +39 -33
  899. package/dist/utc/interval/intervalUnionUtc.d.ts +15 -7
  900. package/dist/utc/interval/intervalUnionUtc.js +31 -42
  901. package/dist/utc/interval/intervalXorAllUtc.d.ts +7 -4
  902. package/dist/utc/interval/intervalXorAllUtc.js +30 -52
  903. package/dist/utc/interval/intervalXorUtc.d.ts +8 -6
  904. package/dist/utc/interval/intervalXorUtc.js +22 -56
  905. package/dist/utc/interval/intervalsOverlapUtc.d.ts +15 -9
  906. package/dist/utc/interval/intervalsOverlapUtc.js +23 -39
  907. package/dist/utc/interval/mergeIntervalsUtc.d.ts +9 -2
  908. package/dist/utc/interval/mergeIntervalsUtc.js +23 -36
  909. package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +23 -2
  910. package/dist/utc/interval/splitIntervalByUnitUtc.js +65 -44
  911. package/dist/utc/interval/validate/isValidUtcInterval.d.ts +5 -0
  912. package/dist/utc/interval/validate/isValidUtcInterval.js +7 -6
  913. package/dist/utc/parse/parseDateFromUtc.d.ts +7 -1
  914. package/dist/utc/parse/parseDateFromUtc.js +14 -9
  915. package/dist/utc/parse/parseDayFromUtc.d.ts +7 -1
  916. package/dist/utc/parse/parseDayFromUtc.js +14 -8
  917. package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +7 -1
  918. package/dist/utc/parse/parseDayOfWeekFromUtc.js +24 -6
  919. package/dist/utc/parse/parseHourFromUtc.d.ts +7 -1
  920. package/dist/utc/parse/parseHourFromUtc.js +14 -8
  921. package/dist/utc/parse/parseHttp.d.ts +39 -14
  922. package/dist/utc/parse/parseHttp.js +69 -28
  923. package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -2
  924. package/dist/utc/parse/parseMicrosecondFromUtc.js +18 -9
  925. package/dist/utc/parse/parseMillisecondFromUtc.d.ts +7 -1
  926. package/dist/utc/parse/parseMillisecondFromUtc.js +16 -8
  927. package/dist/utc/parse/parseMinuteFromUtc.d.ts +7 -1
  928. package/dist/utc/parse/parseMinuteFromUtc.js +14 -8
  929. package/dist/utc/parse/parseMonthFromUtc.d.ts +7 -1
  930. package/dist/utc/parse/parseMonthFromUtc.js +14 -8
  931. package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -2
  932. package/dist/utc/parse/parseNanosecondFromUtc.js +18 -9
  933. package/dist/utc/parse/parseSecondFromUtc.d.ts +7 -1
  934. package/dist/utc/parse/parseSecondFromUtc.js +14 -8
  935. package/dist/utc/parse/parseTimeFromUtc.js +21 -10
  936. package/dist/utc/parse/parseUnitFromUtc.d.ts +39 -5
  937. package/dist/utc/parse/parseUnitFromUtc.js +58 -31
  938. package/dist/utc/parse/parseWeekFromUtc.d.ts +16 -3
  939. package/dist/utc/parse/parseWeekFromUtc.js +38 -10
  940. package/dist/utc/parse/parseYearFromUtc.d.ts +7 -1
  941. package/dist/utc/parse/parseYearFromUtc.js +14 -8
  942. package/dist/utc/validate/isValidUtc.d.ts +8 -1
  943. package/dist/utc/validate/isValidUtc.js +12 -3
  944. package/dist/utc/validate/isValidUtcRange.d.ts +3 -2
  945. package/dist/utc/validate/isValidUtcRange.js +30 -19
  946. package/dist/zoned/calculate/addZoned.d.ts +40 -27
  947. package/dist/zoned/calculate/addZoned.js +71 -56
  948. package/dist/zoned/calculate/addZonedBusinessDays.d.ts +2 -0
  949. package/dist/zoned/calculate/addZonedBusinessDays.js +5 -2
  950. package/dist/zoned/calculate/clampZoned.js +4 -3
  951. package/dist/zoned/calculate/closestZonedTo.d.ts +6 -6
  952. package/dist/zoned/calculate/closestZonedTo.js +35 -26
  953. package/dist/zoned/calculate/cycleZoned.d.ts +10 -7
  954. package/dist/zoned/calculate/cycleZoned.js +19 -11
  955. package/dist/zoned/calculate/diffZoned.d.ts +39 -17
  956. package/dist/zoned/calculate/diffZoned.js +90 -45
  957. package/dist/zoned/calculate/diffZonedAsDuration.d.ts +19 -9
  958. package/dist/zoned/calculate/diffZonedAsDuration.js +32 -15
  959. package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +11 -11
  960. package/dist/zoned/calculate/endOfQuarterForZoned.js +32 -31
  961. package/dist/zoned/calculate/endOfZoned.d.ts +21 -14
  962. package/dist/zoned/calculate/endOfZoned.js +25 -111
  963. package/dist/zoned/calculate/getHoursInZonedDay.d.ts +8 -1
  964. package/dist/zoned/calculate/getHoursInZonedDay.js +10 -14
  965. package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +8 -4
  966. package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +9 -6
  967. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +20 -26
  968. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +40 -44
  969. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +16 -24
  970. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +36 -42
  971. package/dist/zoned/calculate/getQuarterForZoned.js +2 -2
  972. package/dist/zoned/calculate/maxZoned.js +20 -12
  973. package/dist/zoned/calculate/minZoned.d.ts +1 -1
  974. package/dist/zoned/calculate/minZoned.js +21 -13
  975. package/dist/zoned/calculate/roundZoned.d.ts +18 -4
  976. package/dist/zoned/calculate/roundZoned.js +58 -33
  977. package/dist/zoned/calculate/setZoned.d.ts +9 -3
  978. package/dist/zoned/calculate/setZoned.js +39 -18
  979. package/dist/zoned/calculate/sortZoned.js +18 -10
  980. package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +4 -7
  981. package/dist/zoned/calculate/startOfQuarterForZoned.js +23 -17
  982. package/dist/zoned/calculate/startOfZoned.d.ts +17 -13
  983. package/dist/zoned/calculate/startOfZoned.js +21 -103
  984. package/dist/zoned/calculate/subtractZoned.d.ts +36 -24
  985. package/dist/zoned/calculate/subtractZoned.js +66 -50
  986. package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +2 -0
  987. package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -2
  988. package/dist/zoned/chop/chopZonedDate.js +2 -2
  989. package/dist/zoned/chop/chopZonedDateTime.js +2 -2
  990. package/dist/zoned/chop/chopZonedMilliseconds.js +2 -2
  991. package/dist/zoned/chop/chopZonedSeconds.js +2 -2
  992. package/dist/zoned/chop/chopZonedTime.js +2 -2
  993. package/dist/zoned/chop/chopZonedTimezone.js +2 -2
  994. package/dist/zoned/compare/areZonedEqual.js +3 -2
  995. package/dist/zoned/compare/areZonedEqualBy.d.ts +15 -2
  996. package/dist/zoned/compare/areZonedEqualBy.js +45 -12
  997. package/dist/zoned/compare/isAfterZoned.js +3 -2
  998. package/dist/zoned/compare/isBeforeZoned.d.ts +1 -1
  999. package/dist/zoned/compare/isBeforeZoned.js +4 -3
  1000. package/dist/zoned/compare/isBetweenZoned.js +46 -29
  1001. package/dist/zoned/compare/isInDaylightSaving.js +4 -4
  1002. package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -4
  1003. package/dist/zoned/compare/isZonedBusinessDay.js +9 -6
  1004. package/dist/zoned/compare/isZonedFuture.js +2 -1
  1005. package/dist/zoned/compare/isZonedPast.js +2 -1
  1006. package/dist/zoned/compare/isZonedRelativeDay.js +2 -1
  1007. package/dist/zoned/compare/isZonedThisUnit.d.ts +12 -4
  1008. package/dist/zoned/compare/isZonedThisUnit.js +37 -16
  1009. package/dist/zoned/compare/isZonedWeekend.d.ts +8 -4
  1010. package/dist/zoned/compare/isZonedWeekend.js +9 -6
  1011. package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +10 -5
  1012. package/dist/zoned/convert/convertPlainDateTimeToZoned.js +34 -16
  1013. package/dist/zoned/convert/convertZonedToCalendar.d.ts +26 -38
  1014. package/dist/zoned/convert/convertZonedToCalendar.js +33 -48
  1015. package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +6 -0
  1016. package/dist/zoned/convert/convertZonedToPlainDateTime.js +8 -2
  1017. package/dist/zoned/convert/convertZonedToUnix.d.ts +12 -6
  1018. package/dist/zoned/convert/convertZonedToUnix.js +23 -16
  1019. package/dist/zoned/convert/convertZonedToUtc.js +2 -2
  1020. package/dist/zoned/convert/convertZonedToZoned.js +2 -2
  1021. package/dist/zoned/format/formatCalendarZoned.d.ts +7 -3
  1022. package/dist/zoned/format/formatCalendarZoned.js +37 -39
  1023. package/dist/zoned/format/formatRelativeZoned.d.ts +16 -14
  1024. package/dist/zoned/format/formatRelativeZoned.js +54 -54
  1025. package/dist/zoned/format/formatRfc2822.d.ts +14 -1
  1026. package/dist/zoned/format/formatRfc2822.js +27 -13
  1027. package/dist/zoned/format/formatRfc3339.d.ts +14 -1
  1028. package/dist/zoned/format/formatRfc3339.js +29 -3
  1029. package/dist/zoned/format/formatTimeZoneName.d.ts +18 -2
  1030. package/dist/zoned/format/formatTimeZoneName.js +28 -18
  1031. package/dist/zoned/format/formatZonedDateTime.d.ts +26 -5
  1032. package/dist/zoned/format/formatZonedDateTime.js +40 -9
  1033. package/dist/zoned/format/formatZonedRange.d.ts +25 -6
  1034. package/dist/zoned/format/formatZonedRange.js +61 -28
  1035. package/dist/zoned/format/formatZonedToParts.d.ts +30 -6
  1036. package/dist/zoned/format/formatZonedToParts.js +42 -13
  1037. package/dist/zoned/get/getDstTransitions.d.ts +24 -3
  1038. package/dist/zoned/get/getDstTransitions.js +17 -15
  1039. package/dist/zoned/get/getTimeZoneOffset.d.ts +11 -1
  1040. package/dist/zoned/get/getTimeZoneOffset.js +19 -2
  1041. package/dist/zoned/get/getZonedNow.js +20 -9
  1042. package/dist/zoned/get/getZonedNowUnit.d.ts +30 -2
  1043. package/dist/zoned/get/getZonedNowUnit.js +15 -31
  1044. package/dist/zoned/index.js +1 -1
  1045. package/dist/zoned/interval/intervalAbutsZoned.d.ts +18 -11
  1046. package/dist/zoned/interval/intervalAbutsZoned.js +24 -25
  1047. package/dist/zoned/interval/intervalContainsZoned.d.ts +16 -7
  1048. package/dist/zoned/interval/intervalContainsZoned.js +22 -14
  1049. package/dist/zoned/interval/intervalCountZoned.d.ts +19 -11
  1050. package/dist/zoned/interval/intervalCountZoned.js +32 -27
  1051. package/dist/zoned/interval/intervalDifferenceZoned.d.ts +14 -8
  1052. package/dist/zoned/interval/intervalDifferenceZoned.js +25 -37
  1053. package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +18 -9
  1054. package/dist/zoned/interval/intervalDivideEquallyZoned.js +67 -46
  1055. package/dist/zoned/interval/intervalEngulfsZoned.d.ts +10 -5
  1056. package/dist/zoned/interval/intervalEngulfsZoned.js +16 -10
  1057. package/dist/zoned/interval/intervalFromDurationZoned.d.ts +25 -11
  1058. package/dist/zoned/interval/intervalFromDurationZoned.js +61 -44
  1059. package/dist/zoned/interval/intervalIntersectionZoned.d.ts +12 -6
  1060. package/dist/zoned/interval/intervalIntersectionZoned.js +24 -18
  1061. package/dist/zoned/interval/intervalLengthZoned.d.ts +15 -6
  1062. package/dist/zoned/interval/intervalLengthZoned.js +23 -9
  1063. package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +28 -17
  1064. package/dist/zoned/interval/intervalOverlappingDaysZoned.js +46 -34
  1065. package/dist/zoned/interval/intervalSplitAtZoned.d.ts +6 -3
  1066. package/dist/zoned/interval/intervalSplitAtZoned.js +52 -42
  1067. package/dist/zoned/interval/intervalUnionZoned.d.ts +14 -8
  1068. package/dist/zoned/interval/intervalUnionZoned.js +25 -20
  1069. package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -7
  1070. package/dist/zoned/interval/intervalXorAllZoned.js +42 -73
  1071. package/dist/zoned/interval/intervalXorZoned.d.ts +20 -10
  1072. package/dist/zoned/interval/intervalXorZoned.js +34 -62
  1073. package/dist/zoned/interval/intervalsOverlapZoned.d.ts +15 -7
  1074. package/dist/zoned/interval/intervalsOverlapZoned.js +21 -12
  1075. package/dist/zoned/interval/mergeIntervalsZoned.d.ts +10 -3
  1076. package/dist/zoned/interval/mergeIntervalsZoned.js +44 -41
  1077. package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +28 -5
  1078. package/dist/zoned/interval/splitIntervalByUnitZoned.js +72 -39
  1079. package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +13 -10
  1080. package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +13 -10
  1081. package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +7 -5
  1082. package/dist/zoned/interval/validate/isValidZonedInterval.js +12 -16
  1083. package/dist/zoned/map/mapZonedDatesInRange.d.ts +17 -1
  1084. package/dist/zoned/map/mapZonedDatesInRange.js +62 -26
  1085. package/dist/zoned/map/mapZonedHoursInDay.d.ts +10 -13
  1086. package/dist/zoned/map/mapZonedHoursInDay.js +13 -21
  1087. package/dist/zoned/parse/getZonedOffset.js +2 -2
  1088. package/dist/zoned/parse/getZonedOffsetAs.d.ts +15 -2
  1089. package/dist/zoned/parse/getZonedOffsetAs.js +10 -5
  1090. package/dist/zoned/parse/parseDateFromZoned.js +2 -2
  1091. package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
  1092. package/dist/zoned/parse/parseDayFromZoned.js +2 -2
  1093. package/dist/zoned/parse/parseDayOfWeekFromZoned.js +2 -2
  1094. package/dist/zoned/parse/parseHourFromZoned.js +2 -2
  1095. package/dist/zoned/parse/parseMicrosecondFromZoned.d.ts +2 -1
  1096. package/dist/zoned/parse/parseMicrosecondFromZoned.js +4 -3
  1097. package/dist/zoned/parse/parseMillisecondFromZoned.js +2 -2
  1098. package/dist/zoned/parse/parseMinuteFromZoned.js +2 -2
  1099. package/dist/zoned/parse/parseMonthFromZoned.js +2 -2
  1100. package/dist/zoned/parse/parseNanosecondFromZoned.d.ts +2 -1
  1101. package/dist/zoned/parse/parseNanosecondFromZoned.js +4 -3
  1102. package/dist/zoned/parse/parseRfc2822.d.ts +32 -12
  1103. package/dist/zoned/parse/parseRfc2822.js +47 -45
  1104. package/dist/zoned/parse/parseRfc3339.d.ts +6 -0
  1105. package/dist/zoned/parse/parseRfc3339.js +6 -0
  1106. package/dist/zoned/parse/parseSecondFromZoned.js +2 -2
  1107. package/dist/zoned/parse/parseTimeFromZoned.js +2 -2
  1108. package/dist/zoned/parse/parseTimeZoneFromZoned.js +2 -2
  1109. package/dist/zoned/parse/parseUnitFromZoned.d.ts +36 -3
  1110. package/dist/zoned/parse/parseUnitFromZoned.js +59 -33
  1111. package/dist/zoned/parse/parseWeekFromZoned.d.ts +13 -3
  1112. package/dist/zoned/parse/parseWeekFromZoned.js +34 -10
  1113. package/dist/zoned/parse/parseYearFromZoned.js +2 -2
  1114. package/dist/zoned/validate/hasDaylightSaving.js +3 -3
  1115. package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +31 -16
  1116. package/dist/zoned/validate/isValidCalendarZonedDateTime.js +31 -16
  1117. package/dist/zoned/validate/isValidTimeZone.d.ts +15 -2
  1118. package/dist/zoned/validate/isValidTimeZone.js +17 -4
  1119. package/dist/zoned/validate/isValidZonedDateTime.d.ts +14 -7
  1120. package/dist/zoned/validate/isValidZonedDateTime.js +20 -12
  1121. package/dist/zoned/validate/isValidZonedRange.d.ts +9 -2
  1122. package/dist/zoned/validate/isValidZonedRange.js +44 -16
  1123. package/package.json +487 -28
  1124. package/skills/gmt-arithmetic/SKILL.md +264 -0
  1125. package/skills/gmt-basics/SKILL.md +127 -0
  1126. package/skills/gmt-integration/SKILL.md +119 -0
  1127. package/skills/gmt-timezone/SKILL.md +197 -0
  1128. package/dist/internal/advanceBusinessDays.d.ts +0 -2
  1129. package/dist/internal/advanceBusinessDays.js +0 -15
  1130. package/dist/internal/ethiopicFamilyCalendar.d.ts +0 -47
  1131. package/dist/internal/ethiopicFamilyCalendar.js +0 -136
  1132. package/dist/internal/getLocaleMinimalDaysInFirstWeek.d.ts +0 -20
  1133. package/dist/internal/getLocaleMinimalDaysInFirstWeek.js +0 -31
  1134. package/dist/internal/resolveUnixTimeZone.d.ts +0 -20
  1135. package/dist/internal/resolveUnixTimeZone.js +0 -30
  1136. package/dist/unix/calculate/startOrEndOfUnix.d.ts +0 -9
  1137. package/dist/unix/calculate/startOrEndOfUnix.js +0 -122
  1138. package/dist/unix/interval/resolveUnixIntervalPair.d.ts +0 -7
  1139. package/dist/unix/interval/resolveUnixIntervalPair.js +0 -36
  1140. package/dist/utc/calculate/startOrEndOfUtc.d.ts +0 -6
  1141. package/skills/_artifacts/domain_map.yaml +0 -547
  1142. package/skills/_artifacts/skill_spec.md +0 -67
  1143. package/skills/_artifacts/skill_tree.yaml +0 -278
  1144. package/skills/api-expansion-workflow/SKILL.md +0 -52
  1145. package/skills/app-integration/SKILL.md +0 -38
  1146. package/skills/calculate-dates/SKILL.md +0 -432
  1147. package/skills/compare-dates/SKILL.md +0 -412
  1148. package/skills/convert-types/SKILL.md +0 -305
  1149. package/skills/durations/SKILL.md +0 -418
  1150. package/skills/format-date-time/SKILL.md +0 -486
  1151. package/skills/format-date-time/references/format-api.md +0 -34
  1152. package/skills/format-relative-time/SKILL.md +0 -223
  1153. package/skills/get-current/SKILL.md +0 -229
  1154. package/skills/interval-ops/SKILL.md +0 -432
  1155. package/skills/issue-creation/SKILL.md +0 -118
  1156. package/skills/lint-package-suggestion/SKILL.md +0 -37
  1157. package/skills/new-method-implementation/SKILL.md +0 -71
  1158. package/skills/parse-date-time/SKILL.md +0 -349
  1159. package/skills/pr-contribution/SKILL.md +0 -180
  1160. package/skills/unit-test-generation/SKILL.md +0 -56
  1161. package/skills/validate-dates/SKILL.md +0 -438
  1162. package/skills/zoned-date-ops/SKILL.md +0 -422
  1163. package/skills/zoned-date-ops/references/timezones.md +0 -13
@@ -1,32 +1,30 @@
1
- import type { RelativeRoundingMethod } from "../../types/index.js";
2
- type RelativeUnit = "year" | "month" | "week" | "day" | "hour" | "minute" | "second";
3
- export interface FormatRelativeDateTimeOptions {
4
- style?: "long" | "short" | "narrow";
5
- numeric?: "always" | "auto";
6
- largestUnit?: RelativeUnit;
7
- /**
8
- * How the computed distance rounds to the display unit: "floor" rounds toward the
9
- * earlier boundary, "ceil" toward the later boundary, "round" (default) to the nearest —
10
- * matches current behavior when omitted.
11
- */
12
- roundingMethod?: RelativeRoundingMethod;
13
- reference?: string;
1
+ import type { RelativeDateTimeUnit, RelativeTimeFormatOptions } from "../../types/index.js";
2
+ export interface FormatRelativeDateTimeOptions extends RelativeTimeFormatOptions {
3
+ largestUnit?: RelativeDateTimeUnit;
14
4
  }
15
5
  /**
16
6
  * Format the relative time between a plain date-time and a reference date-time.
17
7
  *
18
- * - Auto-picks the display unit (second through year) based on the distance, unless
19
- * `largestUnit` forces one.
8
+ * - Auto-picks the display unit based on the distance, unless `largestUnit` forces one: second
9
+ * under a minute, minute under an hour, hour under a day, then `formatRelativeDate`'s thresholds —
10
+ * day under 7 days, week under 28, month under 365, year beyond — so a 3-year distance reads
11
+ * "3 years ago".
12
+ * - **Compatibility:** before 1.16.0 week, month and year were never auto-picked ("1,096 days ago").
13
+ * Pass `largestUnit: "day"` to keep a day count.
20
14
  * - `roundingMethod` controls how the distance rounds to the display unit.
15
+ * - `options` must be an object or omitted: `null` or any other primitive returns `""`, as
16
+ * Temporal's GetOptionsObject rejects it.
21
17
  *
22
18
  * @param value ISO date-time string to format
23
- * @param locale optional: BCP 47 locale tag
19
+ * @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
24
20
  * @param options optional: { style, numeric, largestUnit, roundingMethod, reference }
25
21
  * @returns the formatted relative-time string, or "" on invalid input
26
22
  *
27
- * @example formatRelativeDateTime("2026-03-17T09:00:00", "en-GB", { style: "long" }) // "in 3 hours"
28
- * @example formatRelativeDateTime(value, "en-US", { roundingMethod: "floor" }) // rounds toward the earlier boundary
23
+ * @example formatRelativeDateTime("2026-03-17T09:00:00", "en-GB", { style: "long", reference: "2026-03-17T06:00:00" }) // "in 3 hours"
24
+ * @example formatRelativeDateTime("2026-01-15T00:00:00", "en-US", { reference: "2026-01-15T10:30:00", roundingMethod: "floor" }) // "11 hours ago" (−10.5 hours floors to −11; the default rounds to 10)
25
+ * @example formatRelativeDateTime("2021-03-15T12:00:00", "en-US", { reference: "2024-03-15T12:00:00" }) // "3 years ago"
29
26
  * @example formatRelativeDateTime("not-a-date") // ""
27
+ * @example formatRelativeDateTime("2024-03-15T09:00:00", ["fr-FR", "en-US"], { reference: "2024-03-15T12:00:00" }) // "il y a 3 heures"
28
+ * @example formatRelativeDateTime("2024-03-12T10:00:00", "en-US", null as never) // "" (null options)
30
29
  */
31
- export declare function formatRelativeDateTime(value: string, locale?: string, options?: FormatRelativeDateTimeOptions): string;
32
- export {};
30
+ export declare function formatRelativeDateTime(value: string, locale?: string | string[], options?: FormatRelativeDateTimeOptions): string;
@@ -1,57 +1,59 @@
1
+ // fallow-ignore-file code-duplication -- cross-family Temporal type clone, by design (rule 5)
1
2
  import { Temporal } from "@js-temporal/polyfill";
2
- import { normalizeDateTime, resolveRelativeRounding } from "../../internal/index.js";
3
+ import { durationTotal } from "../../internal/index.js";
4
+ import { formatRelativeDuration } from "../../internal/formatRelativeDuration.js";
3
5
  import { isValidDateTime } from "../validate/index.js";
4
- const AUTO_UNITS = [
5
- { unit: "second", maxSeconds: 60 },
6
- { unit: "minute", maxSeconds: 3_600 },
7
- { unit: "hour", maxSeconds: 86_400 },
8
- { unit: "day", maxSeconds: Infinity },
9
- ];
10
6
  /**
11
7
  * Format the relative time between a plain date-time and a reference date-time.
12
8
  *
13
- * - Auto-picks the display unit (second through year) based on the distance, unless
14
- * `largestUnit` forces one.
9
+ * - Auto-picks the display unit based on the distance, unless `largestUnit` forces one: second
10
+ * under a minute, minute under an hour, hour under a day, then `formatRelativeDate`'s thresholds —
11
+ * day under 7 days, week under 28, month under 365, year beyond — so a 3-year distance reads
12
+ * "3 years ago".
13
+ * - **Compatibility:** before 1.16.0 week, month and year were never auto-picked ("1,096 days ago").
14
+ * Pass `largestUnit: "day"` to keep a day count.
15
15
  * - `roundingMethod` controls how the distance rounds to the display unit.
16
+ * - `options` must be an object or omitted: `null` or any other primitive returns `""`, as
17
+ * Temporal's GetOptionsObject rejects it.
16
18
  *
17
19
  * @param value ISO date-time string to format
18
- * @param locale optional: BCP 47 locale tag
20
+ * @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
19
21
  * @param options optional: { style, numeric, largestUnit, roundingMethod, reference }
20
22
  * @returns the formatted relative-time string, or "" on invalid input
21
23
  *
22
- * @example formatRelativeDateTime("2026-03-17T09:00:00", "en-GB", { style: "long" }) // "in 3 hours"
23
- * @example formatRelativeDateTime(value, "en-US", { roundingMethod: "floor" }) // rounds toward the earlier boundary
24
+ * @example formatRelativeDateTime("2026-03-17T09:00:00", "en-GB", { style: "long", reference: "2026-03-17T06:00:00" }) // "in 3 hours"
25
+ * @example formatRelativeDateTime("2026-01-15T00:00:00", "en-US", { reference: "2026-01-15T10:30:00", roundingMethod: "floor" }) // "11 hours ago" (−10.5 hours floors to −11; the default rounds to 10)
26
+ * @example formatRelativeDateTime("2021-03-15T12:00:00", "en-US", { reference: "2024-03-15T12:00:00" }) // "3 years ago"
24
27
  * @example formatRelativeDateTime("not-a-date") // ""
28
+ * @example formatRelativeDateTime("2024-03-15T09:00:00", ["fr-FR", "en-US"], { reference: "2024-03-15T12:00:00" }) // "il y a 3 heures"
29
+ * @example formatRelativeDateTime("2024-03-12T10:00:00", "en-US", null as never) // "" (null options)
25
30
  */
26
31
  export function formatRelativeDateTime(value, locale, options = {}) {
27
- if (!isValidDateTime(value))
28
- return "";
29
- if (options.reference !== undefined && !isValidDateTime(options.reference))
30
- return "";
31
32
  try {
32
- const target = Temporal.PlainDateTime.from(value);
33
- const reference = options.reference
34
- ? Temporal.PlainDateTime.from(options.reference)
35
- : Temporal.Now.plainDateTimeISO();
36
- const diff = target.since(reference);
37
- const absSeconds = Math.abs(diff.total("second"));
38
- const unit = options.largestUnit ??
39
- AUTO_UNITS.find((t) => absSeconds < t.maxSeconds)?.unit ??
40
- "day";
41
- let amount;
33
+ // Temporal GetOptionsObject: options must be an object or omitted; null and other primitives are
34
+ // invalid input.
35
+ if (options === null || typeof options !== "object")
36
+ return "";
37
+ if (!isValidDateTime(value))
38
+ return "";
39
+ if (options.reference !== undefined && !isValidDateTime(options.reference))
40
+ return "";
42
41
  try {
43
- amount = resolveRelativeRounding(diff.total(unit), options.roundingMethod);
42
+ const target = Temporal.PlainDateTime.from(value);
43
+ const reference = options.reference
44
+ ? Temporal.PlainDateTime.from(options.reference)
45
+ : Temporal.Now.plainDateTimeISO();
46
+ const diff = target.since(reference);
47
+ // month/year are calendrical — relativeTo needs a PlainDate
48
+ return formatRelativeDuration(diff, locale, options, (unit) => durationTotal(diff, unit, reference.toPlainDate()));
44
49
  }
45
50
  catch {
46
- // month/year are calendrical — relativeTo needs a PlainDate
47
- amount = resolveRelativeRounding(diff.total({ unit, relativeTo: reference.toPlainDate() }), options.roundingMethod);
51
+ return "";
48
52
  }
49
- return normalizeDateTime(new Intl.RelativeTimeFormat(locale, {
50
- numeric: options.numeric ?? "auto",
51
- style: options.style ?? "long",
52
- }).format(amount, unit));
53
53
  }
54
54
  catch {
55
+ // Never throws (Core Rule 3): a hostile
56
+ // argument is invalid input, not an exception.
55
57
  return "";
56
58
  }
57
59
  }
@@ -1,16 +1,6 @@
1
- import type { RelativeRoundingMethod } from "../../types/index.js";
2
- type RelativeUnit = "hour" | "minute" | "second";
3
- export interface FormatRelativeTimeOptions {
4
- style?: "long" | "short" | "narrow";
5
- numeric?: "always" | "auto";
6
- largestUnit?: RelativeUnit;
7
- /**
8
- * How the computed distance rounds to the display unit: "floor" rounds toward the
9
- * earlier boundary, "ceil" toward the later boundary, "round" (default) to the nearest —
10
- * matches current behavior when omitted.
11
- */
12
- roundingMethod?: RelativeRoundingMethod;
13
- reference?: string;
1
+ import type { RelativeTimeFormatOptions, RelativeTimeUnit } from "../../types/index.js";
2
+ export interface FormatRelativeTimeOptions extends RelativeTimeFormatOptions {
3
+ largestUnit?: RelativeTimeUnit;
14
4
  }
15
5
  /**
16
6
  * Format the relative time between a plain time and a reference time.
@@ -18,15 +8,18 @@ export interface FormatRelativeTimeOptions {
18
8
  * - Auto-picks the display unit (second/minute/hour) based on the distance, unless
19
9
  * `largestUnit` forces one.
20
10
  * - `roundingMethod` controls how the distance rounds to the display unit.
11
+ * - `options` must be an object or omitted: `null` or any other primitive returns `""`, as
12
+ * Temporal's GetOptionsObject rejects it.
21
13
  *
22
14
  * @param value ISO time string to format
23
- * @param locale optional: BCP 47 locale tag
15
+ * @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
24
16
  * @param options optional: { style, numeric, largestUnit, roundingMethod, reference }
25
17
  * @returns the formatted relative-time string, or "" on invalid input
26
18
  *
27
- * @example formatRelativeTime("14:30:00", "en-US", { style: "short" }) // "2 hr. ago"
28
- * @example formatRelativeTime(value, "en-US", { roundingMethod: "floor" }) // rounds toward the earlier boundary
19
+ * @example formatRelativeTime("14:30:00", "en-US", { style: "short", reference: "16:30:00" }) // "2 hr. ago"
20
+ * @example formatRelativeTime("09:00:00", "en-US", { reference: "10:30:00", roundingMethod: "floor" }) // "2 hours ago" (−1.5 hours floors to −2)
29
21
  * @example formatRelativeTime("not-a-time") // ""
22
+ * @example formatRelativeTime("10:00:00", ["fr-FR", "en-US"], { reference: "12:00:00" }) // "il y a 2 heures"
23
+ * @example formatRelativeTime("10:00:00", "en-US", null as never) // "" (null options)
30
24
  */
31
- export declare function formatRelativeTime(value: string, locale?: string, options?: FormatRelativeTimeOptions): string;
32
- export {};
25
+ export declare function formatRelativeTime(value: string, locale?: string | string[], options?: FormatRelativeTimeOptions): string;
@@ -12,38 +12,53 @@ const AUTO_UNITS = [
12
12
  * - Auto-picks the display unit (second/minute/hour) based on the distance, unless
13
13
  * `largestUnit` forces one.
14
14
  * - `roundingMethod` controls how the distance rounds to the display unit.
15
+ * - `options` must be an object or omitted: `null` or any other primitive returns `""`, as
16
+ * Temporal's GetOptionsObject rejects it.
15
17
  *
16
18
  * @param value ISO time string to format
17
- * @param locale optional: BCP 47 locale tag
19
+ * @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
18
20
  * @param options optional: { style, numeric, largestUnit, roundingMethod, reference }
19
21
  * @returns the formatted relative-time string, or "" on invalid input
20
22
  *
21
- * @example formatRelativeTime("14:30:00", "en-US", { style: "short" }) // "2 hr. ago"
22
- * @example formatRelativeTime(value, "en-US", { roundingMethod: "floor" }) // rounds toward the earlier boundary
23
+ * @example formatRelativeTime("14:30:00", "en-US", { style: "short", reference: "16:30:00" }) // "2 hr. ago"
24
+ * @example formatRelativeTime("09:00:00", "en-US", { reference: "10:30:00", roundingMethod: "floor" }) // "2 hours ago" (−1.5 hours floors to −2)
23
25
  * @example formatRelativeTime("not-a-time") // ""
26
+ * @example formatRelativeTime("10:00:00", ["fr-FR", "en-US"], { reference: "12:00:00" }) // "il y a 2 heures"
27
+ * @example formatRelativeTime("10:00:00", "en-US", null as never) // "" (null options)
24
28
  */
25
29
  export function formatRelativeTime(value, locale, options = {}) {
26
- if (!isValidTime(value))
27
- return "";
28
- if (options.reference !== undefined && !isValidTime(options.reference))
29
- return "";
30
30
  try {
31
- const target = Temporal.PlainTime.from(value);
32
- const reference = options.reference
33
- ? Temporal.PlainTime.from(options.reference)
34
- : Temporal.Now.plainTimeISO();
35
- const diff = target.since(reference);
36
- const absSeconds = Math.abs(diff.total("second"));
37
- const unit = options.largestUnit ??
38
- AUTO_UNITS.find((t) => absSeconds < t.maxSeconds)?.unit ??
39
- "hour";
40
- const amount = resolveRelativeRounding(diff.total(unit), options.roundingMethod);
41
- return normalizeDateTime(new Intl.RelativeTimeFormat(locale, {
42
- numeric: options.numeric ?? "auto",
43
- style: options.style ?? "long",
44
- }).format(amount, unit));
31
+ // Temporal GetOptionsObject: options must be an object or omitted; null and other primitives are
32
+ // invalid input.
33
+ if (options === null || typeof options !== "object")
34
+ return "";
35
+ if (!isValidTime(value))
36
+ return "";
37
+ if (options.reference !== undefined && !isValidTime(options.reference))
38
+ return "";
39
+ try {
40
+ const target = Temporal.PlainTime.from(value);
41
+ const reference = options.reference
42
+ ? Temporal.PlainTime.from(options.reference)
43
+ : Temporal.Now.plainTimeISO();
44
+ const diff = target.since(reference);
45
+ const absSeconds = Math.abs(diff.total("second"));
46
+ const unit = options.largestUnit === undefined
47
+ ? (AUTO_UNITS.find((t) => absSeconds < t.maxSeconds)?.unit ?? "hour")
48
+ : options.largestUnit;
49
+ const amount = resolveRelativeRounding(diff.total(unit), options.roundingMethod);
50
+ return normalizeDateTime(new Intl.RelativeTimeFormat(locale, {
51
+ numeric: options.numeric === undefined ? "auto" : options.numeric,
52
+ style: options.style === undefined ? "long" : options.style,
53
+ }).format(amount, unit));
54
+ }
55
+ catch {
56
+ return "";
57
+ }
45
58
  }
46
59
  catch {
60
+ // Never throws (Core Rule 3): a hostile
61
+ // argument is invalid input, not an exception.
47
62
  return "";
48
63
  }
49
64
  }
@@ -1,20 +1,25 @@
1
1
  /**
2
- * Format a plain ISO 8601 datetime string as an ANSI SQL / ODBC datetime
3
- * literal — the `YYYY-MM-DD HH:MM:SS` form MySQL, SQLite, and standard SQL
4
- * `DATETIME`/`TIMESTAMP` columns (without a time zone) accept.
2
+ * Format a plain ISO 8601 datetime string as a SQL timestamp literal without a time zone — the
3
+ * `YYYY-MM-DD HH:MM:SS[.fff]` form of standard SQL `TIMESTAMP` and MySQL/SQLite `DATETIME`
4
+ * columns.
5
5
  *
6
- * - **Plain only.** SQL's offset-carrying `TIMESTAMPTZ` literal
7
- * (`YYYY-MM-DD HH:MM:SS±HH:MM`, e.g. PostgreSQL) is out of scope — this
8
- * targets the far more common tz-less `DATETIME` column shape. There is no
9
- * zoned counterpart in this story.
10
- * - The only change from GMT's own ISO output is the separator: `T` becomes
11
- * a single space. Fractional seconds, when present, are preserved as-is.
6
+ * - **Grammar:** SQL-92 §5.3 `<timestamp string>` and the ODBC `ts` escape, which `parseSql`
7
+ * reads: the date, a single space, and the time with seconds always written.
8
+ * - A year outside SQL-92's `0001`–`9999` (Table 10) returns `""`: the literal has no sign and
9
+ * no expanded year to write it with.
10
+ * - **Plain only.** SQL's offset-carrying `TIMESTAMP WITH TIME ZONE` literal
11
+ * (`YYYY-MM-DD HH:MM:SS±HH:MM`, e.g. PostgreSQL) is out of scope — this targets the far more
12
+ * common tz-less column shape. There is no zoned counterpart.
13
+ * - Fractional seconds are written as Temporal writes them: only the digits needed, with
14
+ * trailing zeros dropped (`.500` → `.5`).
12
15
  *
13
16
  * @param value plain ISO 8601 datetime string (e.g. "2024-03-15T14:30:00")
14
- * @returns SQL datetime literal, or "" on invalid input
17
+ * @returns SQL timestamp literal, or "" on invalid input
15
18
  *
16
19
  * @example formatSql("2024-03-15T14:30:00") // "2024-03-15 14:30:00"
20
+ * @example formatSql("2024-03-15T14:30") // "2024-03-15 14:30:00"
17
21
  * @example formatSql("2024-03-15T14:30:00.500") // "2024-03-15 14:30:00.5"
22
+ * @example formatSql("0000-01-01T00:00:00") // "" (year outside 0001–9999)
18
23
  * @example formatSql("invalid") // ""
19
24
  */
20
25
  export declare function formatSql(value: string): string;
@@ -1,29 +1,38 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { isValidDateTime } from "../validate/index.js";
3
3
  /**
4
- * Format a plain ISO 8601 datetime string as an ANSI SQL / ODBC datetime
5
- * literal — the `YYYY-MM-DD HH:MM:SS` form MySQL, SQLite, and standard SQL
6
- * `DATETIME`/`TIMESTAMP` columns (without a time zone) accept.
4
+ * Format a plain ISO 8601 datetime string as a SQL timestamp literal without a time zone — the
5
+ * `YYYY-MM-DD HH:MM:SS[.fff]` form of standard SQL `TIMESTAMP` and MySQL/SQLite `DATETIME`
6
+ * columns.
7
7
  *
8
- * - **Plain only.** SQL's offset-carrying `TIMESTAMPTZ` literal
9
- * (`YYYY-MM-DD HH:MM:SS±HH:MM`, e.g. PostgreSQL) is out of scope — this
10
- * targets the far more common tz-less `DATETIME` column shape. There is no
11
- * zoned counterpart in this story.
12
- * - The only change from GMT's own ISO output is the separator: `T` becomes
13
- * a single space. Fractional seconds, when present, are preserved as-is.
8
+ * - **Grammar:** SQL-92 §5.3 `<timestamp string>` and the ODBC `ts` escape, which `parseSql`
9
+ * reads: the date, a single space, and the time with seconds always written.
10
+ * - A year outside SQL-92's `0001`–`9999` (Table 10) returns `""`: the literal has no sign and
11
+ * no expanded year to write it with.
12
+ * - **Plain only.** SQL's offset-carrying `TIMESTAMP WITH TIME ZONE` literal
13
+ * (`YYYY-MM-DD HH:MM:SS±HH:MM`, e.g. PostgreSQL) is out of scope — this targets the far more
14
+ * common tz-less column shape. There is no zoned counterpart.
15
+ * - Fractional seconds are written as Temporal writes them: only the digits needed, with
16
+ * trailing zeros dropped (`.500` → `.5`).
14
17
  *
15
18
  * @param value plain ISO 8601 datetime string (e.g. "2024-03-15T14:30:00")
16
- * @returns SQL datetime literal, or "" on invalid input
19
+ * @returns SQL timestamp literal, or "" on invalid input
17
20
  *
18
21
  * @example formatSql("2024-03-15T14:30:00") // "2024-03-15 14:30:00"
22
+ * @example formatSql("2024-03-15T14:30") // "2024-03-15 14:30:00"
19
23
  * @example formatSql("2024-03-15T14:30:00.500") // "2024-03-15 14:30:00.5"
24
+ * @example formatSql("0000-01-01T00:00:00") // "" (year outside 0001–9999)
20
25
  * @example formatSql("invalid") // ""
21
26
  */
22
27
  export function formatSql(value) {
23
28
  if (!isValidDateTime(value))
24
29
  return "";
25
30
  try {
26
- return Temporal.PlainDateTime.from(value).toString().replace("T", " ");
31
+ const dateTime = Temporal.PlainDateTime.from(value);
32
+ // SQL-92 Table 10: YEAR 0001 to 9999.
33
+ if (dateTime.year < 1 || dateTime.year > 9999)
34
+ return "";
35
+ return dateTime.toString().replace("T", " ");
27
36
  }
28
37
  catch {
29
38
  return "";
@@ -1,17 +1,32 @@
1
+ import type { DateTimeFormatOptions } from "../../types/index.js";
1
2
  /**
2
3
  * Return a localized string for a PlainTime ISO input using Intl options.
3
4
  *
4
- * - Uses Temporal.PlainTime.toLocaleString for formatting.
5
+ * - Formats as Temporal's ECMA-402 PlainTime format (`PlainTime#toLocaleString`) does, through
6
+ * the runtime's `Intl.DateTimeFormat`. `era` and `timeZoneName` are ignored, so alone they get
7
+ * the hour, minute and second defaults.
5
8
  * - Accepts optional BCP 47 locale and Intl.DateTimeFormatOptions.
6
- * - Returns "" for invalid input.
9
+ * - Returns "" for invalid input, for a `dateStyle` (with or without `timeStyle`) and for only
10
+ * date fields, where `PlainTime#toLocaleString` throws a TypeError.
11
+ * - **Compatibility:** before 1.16.0 `era` or `timeZoneName` alone returned `""`, `era` beside a
12
+ * time field added the era name, and a `dateStyle` beside `timeStyle` was ignored. Pass only
13
+ * `timeStyle` to keep the styled text.
14
+ * - `options` null returns `""`, as ECMA-402's CoerceOptionsToObject rejects it. Any
15
+ * other non-object — a string, a number, a boolean — formats with the defaults, as
16
+ * `Intl.DateTimeFormat` does: CoerceOptionsToObject calls ToObject on it and the wrapper
17
+ * carries no recognised option. Only `null` and `undefined` are special-cased.
7
18
  *
8
19
  * @param value ISO PlainTime string
9
- * @param locale optional BCP 47 locale identifier
20
+ * @param locale optional BCP 47 locale identifier, or a preference list of tags (ECMA-402)
10
21
  * @param options optional Intl.DateTimeFormatOptions
11
22
  * @returns localized time string or "" on invalid input
12
23
  *
13
24
  * @example formatTime("14:30:00", "en-US", { timeStyle: "short" }) // "2:30 PM"
14
25
  * @example formatTime("14:30:00", "de-DE", { timeStyle: "short" }) // "14:30"
26
+ * @example formatTime("14:30:45", "en-US", { era: "long" }) // "2:30:45 PM"
27
+ * @example formatTime("14:30:45", "en-US", { dateStyle: "short", timeStyle: "short" }) // "" — a PlainTime has no date
28
+ * @example formatTime("14:30:45", "en-US", { timeStyle: "short" }) // "2:30 PM" — the pre-1.16.0 text
15
29
  * @example formatTime("invalid") // ""
30
+ * @example formatTime("14:30:45", ["fr-FR", "en-US"], { hour: "2-digit", minute: "2-digit" }) // "14:30"
16
31
  */
17
- export declare function formatTime(value: string, locale?: string, options?: Intl.DateTimeFormatOptions): string;
32
+ export declare function formatTime(value: string, locale?: string | string[], options?: DateTimeFormatOptions): string;
@@ -1,29 +1,56 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { normalizeDateTime } from "../../internal/index.js";
3
+ import { plainTimeFormatOptions } from "../../internal/plainFormatOptions.js";
3
4
  import { isValidTime } from "../validate/index.js";
4
5
  /**
5
6
  * Return a localized string for a PlainTime ISO input using Intl options.
6
7
  *
7
- * - Uses Temporal.PlainTime.toLocaleString for formatting.
8
+ * - Formats as Temporal's ECMA-402 PlainTime format (`PlainTime#toLocaleString`) does, through
9
+ * the runtime's `Intl.DateTimeFormat`. `era` and `timeZoneName` are ignored, so alone they get
10
+ * the hour, minute and second defaults.
8
11
  * - Accepts optional BCP 47 locale and Intl.DateTimeFormatOptions.
9
- * - Returns "" for invalid input.
12
+ * - Returns "" for invalid input, for a `dateStyle` (with or without `timeStyle`) and for only
13
+ * date fields, where `PlainTime#toLocaleString` throws a TypeError.
14
+ * - **Compatibility:** before 1.16.0 `era` or `timeZoneName` alone returned `""`, `era` beside a
15
+ * time field added the era name, and a `dateStyle` beside `timeStyle` was ignored. Pass only
16
+ * `timeStyle` to keep the styled text.
17
+ * - `options` null returns `""`, as ECMA-402's CoerceOptionsToObject rejects it. Any
18
+ * other non-object — a string, a number, a boolean — formats with the defaults, as
19
+ * `Intl.DateTimeFormat` does: CoerceOptionsToObject calls ToObject on it and the wrapper
20
+ * carries no recognised option. Only `null` and `undefined` are special-cased.
10
21
  *
11
22
  * @param value ISO PlainTime string
12
- * @param locale optional BCP 47 locale identifier
23
+ * @param locale optional BCP 47 locale identifier, or a preference list of tags (ECMA-402)
13
24
  * @param options optional Intl.DateTimeFormatOptions
14
25
  * @returns localized time string or "" on invalid input
15
26
  *
16
27
  * @example formatTime("14:30:00", "en-US", { timeStyle: "short" }) // "2:30 PM"
17
28
  * @example formatTime("14:30:00", "de-DE", { timeStyle: "short" }) // "14:30"
29
+ * @example formatTime("14:30:45", "en-US", { era: "long" }) // "2:30:45 PM"
30
+ * @example formatTime("14:30:45", "en-US", { dateStyle: "short", timeStyle: "short" }) // "" — a PlainTime has no date
31
+ * @example formatTime("14:30:45", "en-US", { timeStyle: "short" }) // "2:30 PM" — the pre-1.16.0 text
18
32
  * @example formatTime("invalid") // ""
33
+ * @example formatTime("14:30:45", ["fr-FR", "en-US"], { hour: "2-digit", minute: "2-digit" }) // "14:30"
19
34
  */
20
35
  export function formatTime(value, locale, options) {
21
36
  if (!isValidTime(value)) {
22
37
  return "";
23
38
  }
24
39
  try {
25
- const out = Temporal.PlainTime.from(value).toLocaleString(locale, options);
26
- return normalizeDateTime(out);
40
+ // The runtime's Intl.DateTimeFormat formats the time at the UTC anchor on
41
+ // 1970-01-01 with the options Temporal's PlainTime format resolves to
42
+ // (CreateDateTimeFormat ~time~, ~time~). Constructing with the caller's
43
+ // options first surfaces the TypeError or RangeError Intl.DateTimeFormat
44
+ // raises for invalid ones.
45
+ new Intl.DateTimeFormat(locale, options);
46
+ const resolved = plainTimeFormatOptions(options ?? {});
47
+ if (resolved === null) {
48
+ return "";
49
+ }
50
+ const epochMilliseconds = Temporal.PlainDate.from("1970-01-01")
51
+ .toPlainDateTime(Temporal.PlainTime.from(value))
52
+ .toZonedDateTime("UTC").epochMilliseconds;
53
+ return normalizeDateTime(new Intl.DateTimeFormat(locale, resolved).format(epochMilliseconds));
27
54
  }
28
55
  catch {
29
56
  return "";
@@ -1,10 +1,12 @@
1
- import type { DateTimeUnit } from "../../types/index.js";
2
- type NowUnit = DateTimeUnit | "dayOfWeek";
1
+ import type { NowUnit } from "../../types/index.js";
2
+ export type { NowUnit };
3
3
  /**
4
4
  * Return the requested current unit value using the system timeZone.
5
5
  *
6
6
  * - Valid units: "year", "month", "week", "day", "dayOfWeek", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
7
7
  * - Uses Temporal.Now.zonedDateTimeISO to get current time in system timezone.
8
+ * - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
9
+ * does; `"dayOfWeek"` has no plural.
8
10
  * - Returns "" when unit is invalid or system timezone is unavailable.
9
11
  *
10
12
  * @param unit unit to extract from current local time
@@ -21,7 +23,7 @@ type NowUnit = DateTimeUnit | "dayOfWeek";
21
23
  * @example getNowUnit("millisecond") // "000"
22
24
  * @example getNowUnit("microsecond") // "000"
23
25
  * @example getNowUnit("nanosecond") // "000"
26
+ * @example getNowUnit("hours") // "14", if the local time is 14:xx (plural unit name)
24
27
  * @example getNowUnit("invalid") // ""
25
28
  */
26
29
  export declare function getNowUnit(unit: NowUnit): string;
27
- export {};
@@ -1,7 +1,9 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
+ import { zonedNowUnitValue } from "../../internal/zonedNowUnitValue.js";
2
3
  import { getSystemTimeZone } from "../../zoned/get/getSystemTimeZone.js";
3
4
  import { parseWeekFromDate } from "../parse/index.js";
4
5
  import { isValidDateTimeUnit } from "../validate/index.js";
6
+ import { resolveDateTimeUnit } from "../../internal/resolveDateTimeUnit.js";
5
7
  function isValidPlainNowUnit(unit) {
6
8
  return isValidDateTimeUnit(unit) || ["dayOfWeek"].includes(unit);
7
9
  }
@@ -10,6 +12,8 @@ function isValidPlainNowUnit(unit) {
10
12
  *
11
13
  * - Valid units: "year", "month", "week", "day", "dayOfWeek", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
12
14
  * - Uses Temporal.Now.zonedDateTimeISO to get current time in system timezone.
15
+ * - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
16
+ * does; `"dayOfWeek"` has no plural.
13
17
  * - Returns "" when unit is invalid or system timezone is unavailable.
14
18
  *
15
19
  * @param unit unit to extract from current local time
@@ -26,10 +30,15 @@ function isValidPlainNowUnit(unit) {
26
30
  * @example getNowUnit("millisecond") // "000"
27
31
  * @example getNowUnit("microsecond") // "000"
28
32
  * @example getNowUnit("nanosecond") // "000"
33
+ * @example getNowUnit("hours") // "14", if the local time is 14:xx (plural unit name)
29
34
  * @example getNowUnit("invalid") // ""
30
35
  */
31
36
  export function getNowUnit(unit) {
32
- if (!isValidPlainNowUnit(String(unit ?? "")))
37
+ if (typeof unit !== "string") {
38
+ return "";
39
+ }
40
+ const resolvedUnit = resolveDateTimeUnit(unit);
41
+ if (!isValidPlainNowUnit(resolvedUnit))
33
42
  return "";
34
43
  const timeZone = getSystemTimeZone();
35
44
  if (!timeZone)
@@ -41,32 +50,8 @@ export function getNowUnit(unit) {
41
50
  catch {
42
51
  return "";
43
52
  }
44
- switch (unit) {
45
- case "year":
46
- return now.year.toString();
47
- case "month":
48
- return now.month.toString().padStart(2, "0");
49
- case "week": {
50
- const w = parseWeekFromDate(now.toPlainDate().toString());
51
- return w === null ? "" : w.toString();
52
- }
53
- case "day":
54
- return now.day.toString().padStart(2, "0");
55
- case "dayOfWeek":
56
- return now.dayOfWeek.toString();
57
- case "hour":
58
- return now.hour.toString().padStart(2, "0");
59
- case "minute":
60
- return now.minute.toString().padStart(2, "0");
61
- case "second":
62
- return now.second.toString().padStart(2, "0");
63
- case "millisecond":
64
- return now.millisecond.toString().padStart(3, "0");
65
- case "microsecond":
66
- return (now.microsecond ?? 0).toString().padStart(3, "0");
67
- case "nanosecond":
68
- return (now.nanosecond ?? 0).toString().padStart(3, "0");
69
- default:
70
- return "";
71
- }
53
+ return zonedNowUnitValue(now, resolvedUnit, (zdt) => {
54
+ const w = parseWeekFromDate(zdt.toPlainDate().toString());
55
+ return w === null ? "" : w.toString();
56
+ });
72
57
  }
@@ -1,4 +1,4 @@
1
- // Re-export all Temporal polyfill functionality for plain DateTime operations
1
+ // Re-export the Temporal polyfill (`Temporal`, `Intl`, `toTemporalInstant`) so every namespace subpath offers it
2
2
  export * from "@js-temporal/polyfill";
3
3
  export * from "./calculate/index.js";
4
4
  export * from "./chop/index.js";
@@ -1,15 +1,20 @@
1
1
  /**
2
- * Return true when two date intervals are exactly adjacent — one's end equals the other's start
3
- * with zero gap and zero overlap.
2
+ * Return true when two half-open date intervals `[aStart, aEnd)` and `[bStart, bEnd)` are exactly
3
+ * adjacent — one ends where the other starts, so they share nothing and leave no gap.
4
4
  *
5
+ * - Half-open: an interval holds every `t` with `start <= t < end`, so an interval's `end` is the
6
+ * first value after it. Returns `true` when `aEnd === bStart` or `bEnd === aStart` (Allen's
7
+ * "meets"). There is no one-day step: a one-day gap is a gap.
8
+ * - An empty interval (`start === end`) abuts nothing.
5
9
  * - Uses `Temporal.PlainDate.compare` for comparison.
6
- * - Returns `true` when `aEnd + 1 day === bStart` or `bEnd + 1 day === aStart`.
7
10
  * - Returns `false` when intervals overlap, are disjoint with a gap, or are invalid.
8
11
  * - Returns `false` on invalid input (wrong type, malformed strings).
9
- * - Accepts GMT calendar-annotated PlainDate strings (as produced by `convertDateToCalendar`) —
12
+ * - Accepts RFC 9557 calendar-annotated PlainDate strings (as produced by `convertDateToCalendar`) —
10
13
  * E5 (issue #78). Comparison is by calendar-independent ordering (`Temporal.PlainDate.compare`
11
14
  * ignores calendar), so the four endpoints may carry different or no calendar tags — E5
12
15
  * decision of record D4 (ordering-only functions accept mixed calendars).
16
+ * - Compatibility: since 1.16.0 calendar strings are RFC 9557 (ISO digits, `[u-ca=<id>]`, canonical
17
+ * calendar ids); see `isValidCalendarDate`.
13
18
  *
14
19
  * @param aStart ISO 8601 date string for the first interval start, optionally calendar-annotated
15
20
  * @param aEnd ISO 8601 date string for the first interval end, optionally calendar-annotated
@@ -17,9 +22,9 @@
17
22
  * @param bEnd ISO 8601 date string for the second interval end, optionally calendar-annotated
18
23
  * @returns true if intervals are exactly adjacent, or false on invalid input
19
24
  *
20
- * @example intervalAbutsDate("2024-01-01", "2024-06-30", "2024-07-01", "2024-12-31") // true
21
- * @example intervalAbutsDate("2024-07-01", "2024-12-31", "2024-01-01", "2024-06-30") // true
22
- * @example intervalAbutsDate("2024-01-01", "2024-06-30", "2024-07-02", "2024-12-31") // false (gap)
25
+ * @example intervalAbutsDate("2024-01-01", "2024-06-30", "2024-06-30", "2024-12-31") // true
26
+ * @example intervalAbutsDate("2024-06-30", "2024-12-31", "2024-01-01", "2024-06-30") // true
27
+ * @example intervalAbutsDate("2024-01-01", "2024-06-30", "2024-07-01", "2024-12-31") // false ([01-01, 06-30) ends before 06-30)
23
28
  * @example intervalAbutsDate("2024-01-01", "2024-07-01", "2024-06-30", "2024-12-31") // false (overlap)
24
29
  * @example intervalAbutsDate("invalid", "2024-06-30", "2024-07-01", "2024-12-31") // false
25
30
  */