@northguild/gmt 1.15.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1143) hide show
  1. package/README.md +1133 -272
  2. package/dist/calendar/business/businessDaysBetween.d.ts +37 -0
  3. package/dist/calendar/business/businessDaysBetween.js +89 -0
  4. package/dist/calendar/business/index.d.ts +7 -0
  5. package/dist/calendar/business/index.js +10 -0
  6. package/dist/calendar/business/mergeCalendars.d.ts +33 -0
  7. package/dist/calendar/business/mergeCalendars.js +68 -0
  8. package/dist/calendar/business/nextBusinessDay.d.ts +30 -0
  9. package/dist/calendar/business/nextBusinessDay.js +39 -0
  10. package/dist/calendar/business/previousBusinessDay.d.ts +30 -0
  11. package/dist/calendar/business/previousBusinessDay.js +39 -0
  12. package/dist/calendar/business/rollDate.d.ts +59 -0
  13. package/dist/calendar/business/rollDate.js +116 -0
  14. package/dist/calendar/calculate/bucketRange.d.ts +49 -0
  15. package/dist/calendar/calculate/bucketRange.js +169 -0
  16. package/dist/calendar/calculate/floorToZone.d.ts +42 -0
  17. package/dist/calendar/calculate/floorToZone.js +62 -0
  18. package/dist/calendar/calculate/getFiscalPeriod.d.ts +64 -0
  19. package/dist/calendar/calculate/getFiscalPeriod.js +96 -0
  20. package/dist/calendar/calculate/getIsoWeekDate.d.ts +35 -0
  21. package/dist/calendar/calculate/getIsoWeekDate.js +41 -0
  22. package/dist/calendar/calculate/getOrdinalDate.d.ts +25 -0
  23. package/dist/calendar/calculate/getOrdinalDate.js +28 -0
  24. package/dist/calendar/calculate/getQuarter.d.ts +36 -0
  25. package/dist/calendar/calculate/getQuarter.js +64 -0
  26. package/dist/calendar/calculate/index.d.ts +6 -0
  27. package/dist/calendar/calculate/index.js +6 -0
  28. package/dist/calendar/index.d.ts +4 -0
  29. package/dist/calendar/index.js +5 -0
  30. package/dist/calendar/validate/index.d.ts +4 -0
  31. package/dist/calendar/validate/index.js +4 -0
  32. package/dist/calendar/validate/isValidBusinessCalendar.d.ts +31 -0
  33. package/dist/calendar/validate/isValidBusinessCalendar.js +40 -0
  34. package/dist/calendar/validate/isValidFiscalPattern.d.ts +25 -0
  35. package/dist/calendar/validate/isValidFiscalPattern.js +29 -0
  36. package/dist/calendar/validate/isValidRollConvention.d.ts +28 -0
  37. package/dist/calendar/validate/isValidRollConvention.js +38 -0
  38. package/dist/calendar/validate/isValidZoneBucketUnit.d.ts +31 -0
  39. package/dist/calendar/validate/isValidZoneBucketUnit.js +39 -0
  40. package/dist/duration/calculate/durationAs.d.ts +27 -3
  41. package/dist/duration/calculate/durationAs.js +34 -8
  42. package/dist/duration/calculate/getDurationUnit.d.ts +5 -2
  43. package/dist/duration/calculate/getDurationUnit.js +7 -3
  44. package/dist/duration/compare/compareDurations.d.ts +25 -2
  45. package/dist/duration/compare/compareDurations.js +31 -7
  46. package/dist/duration/format/formatDuration.d.ts +14 -5
  47. package/dist/duration/format/formatDuration.js +47 -11
  48. package/dist/duration/index.d.ts +1 -0
  49. package/dist/duration/index.js +2 -0
  50. package/dist/duration/normalize/normalizeDuration.d.ts +33 -6
  51. package/dist/duration/normalize/normalizeDuration.js +41 -12
  52. package/dist/duration/parse/parseDuration.js +4 -0
  53. package/dist/index.d.ts +7 -0
  54. package/dist/index.js +7 -0
  55. package/dist/instant/convert/classifyLocal.d.ts +50 -0
  56. package/dist/instant/convert/classifyLocal.js +60 -0
  57. package/dist/instant/convert/fromOffsetInstant.d.ts +47 -0
  58. package/dist/instant/convert/fromOffsetInstant.js +91 -0
  59. package/dist/instant/convert/index.d.ts +4 -0
  60. package/dist/instant/convert/index.js +4 -0
  61. package/dist/instant/convert/resolveLocal.d.ts +40 -0
  62. package/dist/instant/convert/resolveLocal.js +76 -0
  63. package/dist/instant/convert/toOffsetInstant.d.ts +96 -0
  64. package/dist/instant/convert/toOffsetInstant.js +162 -0
  65. package/dist/instant/index.d.ts +2 -0
  66. package/dist/instant/index.js +3 -0
  67. package/dist/intermodal/calculate/billingTimeline.d.ts +94 -0
  68. package/dist/intermodal/calculate/billingTimeline.js +168 -0
  69. package/dist/intermodal/calculate/chargeableDays.d.ts +98 -0
  70. package/dist/intermodal/calculate/chargeableDays.js +101 -0
  71. package/dist/intermodal/calculate/demurrageClock.d.ts +93 -0
  72. package/dist/intermodal/calculate/demurrageClock.js +140 -0
  73. package/dist/intermodal/calculate/freeTimeExpiry.d.ts +66 -0
  74. package/dist/intermodal/calculate/freeTimeExpiry.js +82 -0
  75. package/dist/intermodal/calculate/index.d.ts +4 -0
  76. package/dist/intermodal/calculate/index.js +4 -0
  77. package/dist/intermodal/index.d.ts +2 -0
  78. package/dist/intermodal/index.js +3 -0
  79. package/dist/internal/adjustZonedBusinessDays.js +9 -7
  80. package/dist/internal/businessCalendar.d.ts +46 -0
  81. package/dist/internal/businessCalendar.js +230 -0
  82. package/dist/internal/businessDayValues.d.ts +20 -0
  83. package/dist/internal/businessDayValues.js +54 -0
  84. package/dist/internal/calendarDatePairPolicy.d.ts +10 -12
  85. package/dist/internal/calendarDatePairPolicy.js +13 -19
  86. package/dist/internal/calendarDateString.d.ts +32 -58
  87. package/dist/internal/calendarDateString.js +51 -93
  88. package/dist/internal/calendarSystemIds.d.ts +26 -2
  89. package/dist/internal/calendarSystemIds.js +57 -51
  90. package/dist/internal/calendarValueOfDate.d.ts +10 -12
  91. package/dist/internal/calendarValueOfDate.js +22 -20
  92. package/dist/internal/calendarValueOfZoned.d.ts +14 -17
  93. package/dist/internal/calendarValueOfZoned.js +25 -25
  94. package/dist/internal/calendarZonedPairPolicy.d.ts +11 -18
  95. package/dist/internal/calendarZonedPairPolicy.js +14 -25
  96. package/dist/internal/calendarZonedString.d.ts +41 -65
  97. package/dist/internal/calendarZonedString.js +52 -101
  98. package/dist/internal/compareUnixEpochs.d.ts +14 -0
  99. package/dist/internal/compareUnixEpochs.js +25 -0
  100. package/dist/internal/dateTimeUnitHelpers.d.ts +18 -0
  101. package/dist/internal/dateTimeUnitHelpers.js +27 -0
  102. package/dist/internal/dateUnitHelpers.d.ts +39 -1
  103. package/dist/internal/dateUnitHelpers.js +73 -11
  104. package/dist/internal/defaultFractionalDigits.d.ts +14 -0
  105. package/dist/internal/defaultFractionalDigits.js +23 -0
  106. package/dist/internal/differenceRecord.d.ts +32 -0
  107. package/dist/internal/differenceRecord.js +79 -0
  108. package/dist/internal/divisionBoundary.d.ts +19 -0
  109. package/dist/internal/divisionBoundary.js +23 -0
  110. package/dist/internal/durationUntilString.d.ts +1 -1
  111. package/dist/internal/durationUntilString.js +10 -2
  112. package/dist/internal/englishCalendarNames.d.ts +11 -0
  113. package/dist/internal/englishCalendarNames.js +21 -1
  114. package/dist/internal/epochNanoseconds.d.ts +27 -0
  115. package/dist/internal/epochNanoseconds.js +31 -0
  116. package/dist/internal/fiscalCalendar.d.ts +36 -0
  117. package/dist/internal/fiscalCalendar.js +86 -0
  118. package/dist/internal/floorDivide.d.ts +15 -0
  119. package/dist/internal/floorDivide.js +18 -0
  120. package/dist/internal/foreignEpochs.d.ts +134 -0
  121. package/dist/internal/foreignEpochs.js +139 -0
  122. package/dist/internal/formatCalendarDays.d.ts +28 -0
  123. package/dist/internal/formatCalendarDays.js +49 -0
  124. package/dist/internal/formatDateInCalendar.d.ts +14 -39
  125. package/dist/internal/formatDateInCalendar.js +16 -47
  126. package/dist/internal/formatRelativeDuration.d.ts +27 -0
  127. package/dist/internal/formatRelativeDuration.js +45 -0
  128. package/dist/internal/freeTimeLedger.d.ts +93 -0
  129. package/dist/internal/freeTimeLedger.js +262 -0
  130. package/dist/internal/getLocaleFirstDayOfWeek.d.ts +9 -6
  131. package/dist/internal/getLocaleFirstDayOfWeek.js +9 -10
  132. package/dist/internal/getLocaleWeekYearBounds.d.ts +17 -9
  133. package/dist/internal/getLocaleWeekYearBounds.js +45 -26
  134. package/dist/internal/getLocaleWeekendDays.d.ts +9 -18
  135. package/dist/internal/getLocaleWeekendDays.js +9 -5
  136. package/dist/internal/halfOpenIntervals.d.ts +102 -0
  137. package/dist/internal/halfOpenIntervals.js +180 -0
  138. package/dist/internal/hasCalendarAnnotation.d.ts +20 -20
  139. package/dist/internal/hasCalendarAnnotation.js +23 -21
  140. package/dist/internal/hourDurationString.d.ts +16 -0
  141. package/dist/internal/hourDurationString.js +47 -0
  142. package/dist/internal/httpDateFields.d.ts +24 -0
  143. package/dist/internal/httpDateFields.js +86 -0
  144. package/dist/internal/index.d.ts +30 -9
  145. package/dist/internal/index.js +30 -9
  146. package/dist/internal/instantFormatOptions.d.ts +43 -0
  147. package/dist/internal/instantFormatOptions.js +99 -0
  148. package/dist/internal/instantIntervalText.d.ts +20 -0
  149. package/dist/internal/instantIntervalText.js +25 -0
  150. package/dist/internal/instantNanoseconds.d.ts +25 -0
  151. package/dist/internal/instantNanoseconds.js +41 -0
  152. package/dist/internal/intervalCountHelpers.d.ts +16 -10
  153. package/dist/internal/intervalCountHelpers.js +1 -31
  154. package/dist/internal/intervalNanoseconds.d.ts +47 -0
  155. package/dist/internal/intervalNanoseconds.js +86 -0
  156. package/dist/internal/isObject.d.ts +26 -0
  157. package/dist/internal/isObject.js +30 -0
  158. package/dist/internal/isoStringBody.d.ts +66 -0
  159. package/dist/internal/isoStringBody.js +105 -0
  160. package/dist/internal/joinDateTimeConnector.d.ts +1 -1
  161. package/dist/internal/localeWeekInfo.d.ts +34 -0
  162. package/dist/internal/localeWeekInfo.js +27 -0
  163. package/dist/internal/maxPieces.d.ts +41 -0
  164. package/dist/internal/maxPieces.js +53 -0
  165. package/dist/internal/measureNearRangeEnd.d.ts +26 -0
  166. package/dist/internal/measureNearRangeEnd.js +47 -0
  167. package/dist/internal/monthGridWeekRow.d.ts +4 -1
  168. package/dist/internal/monthGridWeekRow.js +3 -0
  169. package/dist/internal/normalizeTimeZone.d.ts +17 -10
  170. package/dist/internal/normalizeTimeZone.js +25 -15
  171. package/dist/internal/patternToken.d.ts +2 -1
  172. package/dist/internal/patternToken.js +10 -4
  173. package/dist/internal/plainDateAdd.d.ts +20 -0
  174. package/dist/internal/plainDateAdd.js +42 -0
  175. package/dist/internal/plainDateUntil.d.ts +21 -0
  176. package/dist/internal/plainDateUntil.js +48 -0
  177. package/dist/internal/plainFormatOptions.d.ts +59 -0
  178. package/dist/internal/plainFormatOptions.js +165 -0
  179. package/dist/internal/resolveDateTimeUnit.d.ts +4 -1
  180. package/dist/internal/resolveDateTimeUnit.js +2 -12
  181. package/dist/internal/resolveDurationRelativeTo.d.ts +28 -22
  182. package/dist/internal/resolveDurationRelativeTo.js +69 -25
  183. package/dist/internal/resolveDurationUnit.d.ts +4 -1
  184. package/dist/internal/resolveDurationUnit.js +2 -11
  185. package/dist/internal/resolveLocale.d.ts +37 -0
  186. package/dist/internal/resolveLocale.js +59 -0
  187. package/dist/internal/resolveManualRoundingOptions.d.ts +23 -0
  188. package/dist/internal/resolveManualRoundingOptions.js +39 -0
  189. package/dist/internal/resolveMinimalDaysInFirstWeek.d.ts +19 -0
  190. package/dist/internal/resolveMinimalDaysInFirstWeek.js +28 -0
  191. package/dist/internal/resolveOverflow.d.ts +6 -0
  192. package/dist/internal/resolveOverflow.js +7 -1
  193. package/dist/internal/resolveReadingTimeZone.d.ts +11 -0
  194. package/dist/internal/resolveReadingTimeZone.js +18 -0
  195. package/dist/internal/resolveUnixIntervalPair.d.ts +30 -0
  196. package/dist/internal/resolveUnixIntervalPair.js +53 -0
  197. package/dist/internal/resolveWeekStartsOn.d.ts +12 -0
  198. package/dist/internal/resolveWeekStartsOn.js +18 -0
  199. package/dist/internal/rfc5322DateTime.d.ts +26 -0
  200. package/dist/internal/rfc5322DateTime.js +176 -0
  201. package/dist/internal/splitStep.d.ts +81 -0
  202. package/dist/internal/splitStep.js +182 -0
  203. package/dist/internal/startOrEndOfUnix.d.ts +26 -0
  204. package/dist/internal/startOrEndOfUnix.js +47 -0
  205. package/dist/{utc/calculate → internal}/startOrEndOfUtc.d.ts +8 -4
  206. package/dist/{utc/calculate → internal}/startOrEndOfUtc.js +30 -26
  207. package/dist/internal/startOrEndOfZoned.d.ts +22 -0
  208. package/dist/internal/startOrEndOfZoned.js +49 -0
  209. package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +33 -0
  210. package/dist/internal/temporalCompat/calendarDateArithmetic.js +199 -0
  211. package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +36 -0
  212. package/dist/internal/temporalCompat/calendarDateFromFields.js +120 -0
  213. package/dist/internal/temporalCompat/calendarFields.d.ts +25 -0
  214. package/dist/internal/temporalCompat/calendarFields.js +131 -0
  215. package/dist/internal/temporalCompat/capabilities.d.ts +28 -0
  216. package/dist/internal/temporalCompat/capabilities.js +74 -0
  217. package/dist/internal/temporalCompat/fieldSearch.d.ts +21 -0
  218. package/dist/internal/temporalCompat/fieldSearch.js +83 -0
  219. package/dist/internal/temporalCompat/fixedDay.d.ts +25 -0
  220. package/dist/internal/temporalCompat/fixedDay.js +45 -0
  221. package/dist/internal/temporalCompat/hebrewArithmetic.d.ts +19 -0
  222. package/dist/internal/temporalCompat/hebrewArithmetic.js +150 -0
  223. package/dist/internal/temporalCompat/index.d.ts +4 -0
  224. package/dist/internal/temporalCompat/index.js +5 -0
  225. package/dist/internal/temporalCompat/indianArithmetic.d.ts +16 -0
  226. package/dist/internal/temporalCompat/indianArithmetic.js +87 -0
  227. package/dist/internal/temporalCompat/largeMonthSpan.d.ts +19 -0
  228. package/dist/internal/temporalCompat/largeMonthSpan.js +199 -0
  229. package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +59 -0
  230. package/dist/internal/temporalCompat/nonIsoArithmetic.js +220 -0
  231. package/dist/internal/temporalCompat/readArithmeticModel.d.ts +3 -0
  232. package/dist/internal/temporalCompat/readArithmeticModel.js +284 -0
  233. package/dist/internal/temporalCompat/repros.d.ts +31 -0
  234. package/dist/internal/temporalCompat/repros.js +556 -0
  235. package/dist/internal/toInstantFromUtc.d.ts +10 -0
  236. package/dist/internal/toInstantFromUtc.js +19 -0
  237. package/dist/internal/unixEpochValue.d.ts +166 -0
  238. package/dist/internal/unixEpochValue.js +245 -0
  239. package/dist/internal/unixFormatReference.d.ts +18 -0
  240. package/dist/internal/unixFormatReference.js +44 -0
  241. package/dist/internal/unixZonedDateTime.d.ts +22 -0
  242. package/dist/internal/unixZonedDateTime.js +32 -0
  243. package/dist/internal/utcOffsetString.d.ts +39 -0
  244. package/dist/internal/utcOffsetString.js +75 -0
  245. package/dist/internal/utcZonedDateTime.d.ts +16 -0
  246. package/dist/internal/utcZonedDateTime.js +28 -0
  247. package/dist/internal/wallClockAtOffset.d.ts +22 -0
  248. package/dist/internal/wallClockAtOffset.js +26 -0
  249. package/dist/internal/zonedBucket.d.ts +91 -0
  250. package/dist/internal/zonedBucket.js +441 -0
  251. package/dist/internal/zonedFormatReference.d.ts +15 -0
  252. package/dist/internal/zonedFormatReference.js +24 -0
  253. package/dist/internal/zonedLocalDates.d.ts +15 -0
  254. package/dist/internal/zonedLocalDates.js +58 -0
  255. package/dist/internal/zonedNowUnitValue.d.ts +24 -0
  256. package/dist/internal/zonedNowUnitValue.js +58 -0
  257. package/dist/internal/zonedWallClock.d.ts +84 -0
  258. package/dist/internal/zonedWallClock.js +427 -0
  259. package/dist/internal/zonedWallClockDifference.d.ts +92 -0
  260. package/dist/internal/zonedWallClockDifference.js +1174 -0
  261. package/dist/internal/zonedWallClockOperations.d.ts +132 -0
  262. package/dist/internal/zonedWallClockOperations.js +553 -0
  263. package/dist/internal/zonelessCalendarDate.d.ts +12 -0
  264. package/dist/internal/zonelessCalendarDate.js +22 -0
  265. package/dist/interval/calculate/clampInterval.d.ts +22 -0
  266. package/dist/interval/calculate/clampInterval.js +31 -0
  267. package/dist/interval/calculate/index.d.ts +6 -0
  268. package/dist/interval/calculate/index.js +6 -0
  269. package/dist/interval/calculate/intersectIntervals.d.ts +23 -0
  270. package/dist/interval/calculate/intersectIntervals.js +43 -0
  271. package/dist/interval/calculate/mergeIntervals.d.ts +28 -0
  272. package/dist/interval/calculate/mergeIntervals.js +44 -0
  273. package/dist/interval/calculate/splitIntervalAt.d.ts +28 -0
  274. package/dist/interval/calculate/splitIntervalAt.js +63 -0
  275. package/dist/interval/calculate/subtractIntervals.d.ts +31 -0
  276. package/dist/interval/calculate/subtractIntervals.js +64 -0
  277. package/dist/interval/calculate/sumIntervals.d.ts +26 -0
  278. package/dist/interval/calculate/sumIntervals.js +40 -0
  279. package/dist/interval/compare/index.d.ts +2 -0
  280. package/dist/interval/compare/index.js +2 -0
  281. package/dist/interval/compare/intervalContains.d.ts +25 -0
  282. package/dist/interval/compare/intervalContains.js +39 -0
  283. package/dist/interval/compare/intervalsOverlap.d.ts +28 -0
  284. package/dist/interval/compare/intervalsOverlap.js +42 -0
  285. package/dist/interval/index.d.ts +4 -0
  286. package/dist/interval/index.js +5 -0
  287. package/dist/interval/validate/index.d.ts +1 -0
  288. package/dist/interval/validate/index.js +1 -0
  289. package/dist/interval/validate/isValidInterval.d.ts +29 -0
  290. package/dist/interval/validate/isValidInterval.js +38 -0
  291. package/dist/plain/calculate/addBusinessDays.d.ts +26 -9
  292. package/dist/plain/calculate/addBusinessDays.js +29 -21
  293. package/dist/plain/calculate/addDate.d.ts +9 -8
  294. package/dist/plain/calculate/addDate.js +35 -22
  295. package/dist/plain/calculate/addDateTime.js +24 -10
  296. package/dist/plain/calculate/addTime.d.ts +5 -8
  297. package/dist/plain/calculate/addTime.js +23 -16
  298. package/dist/plain/calculate/clampDate.js +3 -3
  299. package/dist/plain/calculate/closestDateTo.d.ts +11 -7
  300. package/dist/plain/calculate/closestDateTo.js +36 -24
  301. package/dist/plain/calculate/cycleDate.d.ts +1 -1
  302. package/dist/plain/calculate/cycleDate.js +10 -3
  303. package/dist/plain/calculate/cycleDateTime.d.ts +1 -1
  304. package/dist/plain/calculate/cycleDateTime.js +10 -3
  305. package/dist/plain/calculate/cycleTime.d.ts +6 -8
  306. package/dist/plain/calculate/cycleTime.js +15 -9
  307. package/dist/plain/calculate/diffDate.d.ts +31 -14
  308. package/dist/plain/calculate/diffDate.js +73 -38
  309. package/dist/plain/calculate/diffDateAsDuration.d.ts +13 -8
  310. package/dist/plain/calculate/diffDateAsDuration.js +22 -9
  311. package/dist/plain/calculate/diffDateTime.d.ts +17 -5
  312. package/dist/plain/calculate/diffDateTime.js +67 -28
  313. package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +2 -2
  314. package/dist/plain/calculate/diffDateTimeAsDuration.js +10 -3
  315. package/dist/plain/calculate/diffTime.d.ts +18 -5
  316. package/dist/plain/calculate/diffTime.js +68 -27
  317. package/dist/plain/calculate/endOfDate.d.ts +10 -2
  318. package/dist/plain/calculate/endOfDate.js +52 -27
  319. package/dist/plain/calculate/endOfDateTime.d.ts +17 -2
  320. package/dist/plain/calculate/endOfDateTime.js +126 -103
  321. package/dist/plain/calculate/endOfTime.d.ts +16 -2
  322. package/dist/plain/calculate/endOfTime.js +77 -59
  323. package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +13 -5
  324. package/dist/plain/calculate/getLargestDateDurationUnit.js +26 -10
  325. package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +13 -6
  326. package/dist/plain/calculate/getLargestDateTimeDurationUnit.js +37 -22
  327. package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +13 -6
  328. package/dist/plain/calculate/getLargestTimeDurationUnit.js +33 -18
  329. package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +8 -4
  330. package/dist/plain/calculate/getLocaleDayOfWeek.js +8 -3
  331. package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +8 -4
  332. package/dist/plain/calculate/getLocaleEndOfWeek.js +8 -3
  333. package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +8 -4
  334. package/dist/plain/calculate/getLocaleStartOfWeek.js +8 -3
  335. package/dist/plain/calculate/getLocaleWeekYear.d.ts +29 -19
  336. package/dist/plain/calculate/getLocaleWeekYear.js +48 -28
  337. package/dist/plain/calculate/getWeekNumber.d.ts +21 -2
  338. package/dist/plain/calculate/getWeekNumber.js +33 -12
  339. package/dist/plain/calculate/getWeekOfMonth.d.ts +4 -2
  340. package/dist/plain/calculate/getWeekOfMonth.js +8 -3
  341. package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +25 -14
  342. package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +45 -25
  343. package/dist/plain/calculate/getWeeksInMonth.d.ts +4 -2
  344. package/dist/plain/calculate/getWeeksInMonth.js +8 -3
  345. package/dist/plain/calculate/getWeeksInYear.d.ts +5 -4
  346. package/dist/plain/calculate/getWeeksInYear.js +9 -14
  347. package/dist/plain/calculate/maxDate.js +19 -12
  348. package/dist/plain/calculate/maxDateTime.js +19 -12
  349. package/dist/plain/calculate/maxTime.js +19 -12
  350. package/dist/plain/calculate/minDate.js +19 -12
  351. package/dist/plain/calculate/minDateTime.js +19 -12
  352. package/dist/plain/calculate/minTime.js +19 -12
  353. package/dist/plain/calculate/nextWeekday.js +5 -0
  354. package/dist/plain/calculate/previousWeekday.js +5 -0
  355. package/dist/plain/calculate/roundDate.d.ts +23 -5
  356. package/dist/plain/calculate/roundDate.js +88 -46
  357. package/dist/plain/calculate/roundDateTime.d.ts +27 -3
  358. package/dist/plain/calculate/roundDateTime.js +128 -69
  359. package/dist/plain/calculate/roundTime.d.ts +8 -1
  360. package/dist/plain/calculate/roundTime.js +32 -17
  361. package/dist/plain/calculate/setDate.js +4 -0
  362. package/dist/plain/calculate/setDateTime.js +4 -0
  363. package/dist/plain/calculate/setTime.d.ts +1 -1
  364. package/dist/plain/calculate/setTime.js +5 -1
  365. package/dist/plain/calculate/sortDateTimes.js +17 -10
  366. package/dist/plain/calculate/sortDates.js +17 -10
  367. package/dist/plain/calculate/sortTimes.js +17 -10
  368. package/dist/plain/calculate/startOfDate.d.ts +7 -2
  369. package/dist/plain/calculate/startOfDate.js +52 -27
  370. package/dist/plain/calculate/startOfDateTime.d.ts +5 -2
  371. package/dist/plain/calculate/startOfDateTime.js +81 -62
  372. package/dist/plain/calculate/startOfQuarterForDateTime.d.ts +2 -0
  373. package/dist/plain/calculate/startOfQuarterForDateTime.js +12 -1
  374. package/dist/plain/calculate/startOfTime.d.ts +15 -2
  375. package/dist/plain/calculate/startOfTime.js +33 -37
  376. package/dist/plain/calculate/subtractBusinessDays.d.ts +25 -10
  377. package/dist/plain/calculate/subtractBusinessDays.js +28 -22
  378. package/dist/plain/calculate/subtractDate.d.ts +8 -7
  379. package/dist/plain/calculate/subtractDate.js +35 -21
  380. package/dist/plain/calculate/subtractDateTime.js +24 -10
  381. package/dist/plain/calculate/subtractTime.d.ts +5 -8
  382. package/dist/plain/calculate/subtractTime.js +23 -16
  383. package/dist/plain/chop/index.d.ts +0 -1
  384. package/dist/plain/chop/index.js +0 -1
  385. package/dist/plain/compare/areDateTimesEqualBy.d.ts +10 -5
  386. package/dist/plain/compare/areDateTimesEqualBy.js +35 -10
  387. package/dist/plain/compare/areDatesEqualBy.d.ts +10 -3
  388. package/dist/plain/compare/areDatesEqualBy.js +41 -14
  389. package/dist/plain/compare/isBetweenDate.js +32 -16
  390. package/dist/plain/compare/isBetweenDateTime.js +34 -18
  391. package/dist/plain/compare/isBetweenTime.js +32 -16
  392. package/dist/plain/compare/isBusinessDay.d.ts +25 -11
  393. package/dist/plain/compare/isBusinessDay.js +36 -15
  394. package/dist/plain/compare/isThisUnit.d.ts +13 -4
  395. package/dist/plain/compare/isThisUnit.js +33 -13
  396. package/dist/plain/compare/isWeekend.d.ts +8 -4
  397. package/dist/plain/compare/isWeekend.js +7 -3
  398. package/dist/plain/convert/convertDateToCalendar.d.ts +34 -33
  399. package/dist/plain/convert/convertDateToCalendar.js +41 -40
  400. package/dist/plain/format/formatCalendar.d.ts +12 -6
  401. package/dist/plain/format/formatCalendar.js +47 -25
  402. package/dist/plain/format/formatDate.d.ts +21 -4
  403. package/dist/plain/format/formatDate.js +37 -5
  404. package/dist/plain/format/formatDateRange.d.ts +17 -4
  405. package/dist/plain/format/formatDateRange.js +29 -5
  406. package/dist/plain/format/formatDateTime.d.ts +22 -4
  407. package/dist/plain/format/formatDateTime.js +31 -5
  408. package/dist/plain/format/formatDateTimeRange.d.ts +20 -4
  409. package/dist/plain/format/formatDateTimeRange.js +29 -5
  410. package/dist/plain/format/formatDateTimeToParts.d.ts +32 -6
  411. package/dist/plain/format/formatDateTimeToParts.js +40 -14
  412. package/dist/plain/format/formatDateToParts.d.ts +24 -3
  413. package/dist/plain/format/formatDateToParts.js +36 -11
  414. package/dist/plain/format/formatRelativeDate.d.ts +7 -3
  415. package/dist/plain/format/formatRelativeDate.js +39 -24
  416. package/dist/plain/format/formatRelativeDateTime.d.ts +15 -6
  417. package/dist/plain/format/formatRelativeDateTime.js +35 -33
  418. package/dist/plain/format/formatRelativeTime.d.ts +8 -4
  419. package/dist/plain/format/formatRelativeTime.js +36 -21
  420. package/dist/plain/format/formatSql.d.ts +15 -10
  421. package/dist/plain/format/formatSql.js +20 -11
  422. package/dist/plain/format/formatTime.d.ts +18 -4
  423. package/dist/plain/format/formatTime.js +32 -5
  424. package/dist/plain/get/getNowUnit.d.ts +3 -0
  425. package/dist/plain/get/getNowUnit.js +14 -29
  426. package/dist/plain/index.js +1 -1
  427. package/dist/plain/interval/intervalAbutsDate.d.ts +12 -7
  428. package/dist/plain/interval/intervalAbutsDate.js +15 -19
  429. package/dist/plain/interval/intervalAbutsDateTime.d.ts +9 -7
  430. package/dist/plain/interval/intervalAbutsDateTime.js +17 -23
  431. package/dist/plain/interval/intervalAbutsTime.d.ts +11 -5
  432. package/dist/plain/interval/intervalAbutsTime.js +19 -21
  433. package/dist/plain/interval/intervalContainsDate.d.ts +17 -10
  434. package/dist/plain/interval/intervalContainsDate.js +20 -15
  435. package/dist/plain/interval/intervalContainsDateTime.d.ts +16 -11
  436. package/dist/plain/interval/intervalContainsDateTime.js +24 -20
  437. package/dist/plain/interval/intervalContainsTime.d.ts +20 -10
  438. package/dist/plain/interval/intervalContainsTime.js +28 -19
  439. package/dist/plain/interval/intervalCountDate.d.ts +13 -8
  440. package/dist/plain/interval/intervalCountDate.js +46 -14
  441. package/dist/plain/interval/intervalCountDateTime.d.ts +6 -4
  442. package/dist/plain/interval/intervalCountDateTime.js +63 -18
  443. package/dist/plain/interval/intervalCountTime.d.ts +3 -4
  444. package/dist/plain/interval/intervalCountTime.js +9 -9
  445. package/dist/plain/interval/intervalDifferenceDate.d.ts +13 -6
  446. package/dist/plain/interval/intervalDifferenceDate.js +19 -32
  447. package/dist/plain/interval/intervalDifferenceDateTime.d.ts +10 -4
  448. package/dist/plain/interval/intervalDifferenceDateTime.js +21 -27
  449. package/dist/plain/interval/intervalDifferenceTime.d.ts +11 -4
  450. package/dist/plain/interval/intervalDifferenceTime.js +22 -27
  451. package/dist/plain/interval/intervalDivideEquallyDate.d.ts +16 -4
  452. package/dist/plain/interval/intervalDivideEquallyDate.js +57 -33
  453. package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +16 -4
  454. package/dist/plain/interval/intervalDivideEquallyDateTime.js +67 -31
  455. package/dist/plain/interval/intervalDivideEquallyTime.d.ts +16 -4
  456. package/dist/plain/interval/intervalDivideEquallyTime.js +58 -31
  457. package/dist/plain/interval/intervalEngulfsDate.d.ts +16 -9
  458. package/dist/plain/interval/intervalEngulfsDate.js +19 -12
  459. package/dist/plain/interval/intervalEngulfsDateTime.d.ts +16 -11
  460. package/dist/plain/interval/intervalEngulfsDateTime.js +24 -18
  461. package/dist/plain/interval/intervalEngulfsTime.d.ts +18 -8
  462. package/dist/plain/interval/intervalEngulfsTime.js +26 -15
  463. package/dist/plain/interval/intervalFromDurationDate.d.ts +5 -4
  464. package/dist/plain/interval/intervalFromDurationDate.js +11 -8
  465. package/dist/plain/interval/intervalFromDurationDateTime.js +4 -0
  466. package/dist/plain/interval/intervalFromDurationTime.d.ts +10 -12
  467. package/dist/plain/interval/intervalFromDurationTime.js +28 -17
  468. package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -4
  469. package/dist/plain/interval/intervalIntersectionDate.js +14 -9
  470. package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -4
  471. package/dist/plain/interval/intervalIntersectionDateTime.js +19 -13
  472. package/dist/plain/interval/intervalIntersectionTime.d.ts +7 -3
  473. package/dist/plain/interval/intervalIntersectionTime.js +17 -12
  474. package/dist/plain/interval/intervalLengthDate.d.ts +9 -6
  475. package/dist/plain/interval/intervalLengthDate.js +40 -8
  476. package/dist/plain/interval/intervalLengthDateTime.js +2 -2
  477. package/dist/plain/interval/intervalOverlappingDaysDate.d.ts +16 -17
  478. package/dist/plain/interval/intervalOverlappingDaysDate.js +30 -30
  479. package/dist/plain/interval/intervalOverlappingDaysDateTime.d.ts +7 -12
  480. package/dist/plain/interval/intervalOverlappingDaysDateTime.js +24 -24
  481. package/dist/plain/interval/intervalSplitAtDate.d.ts +10 -5
  482. package/dist/plain/interval/intervalSplitAtDate.js +48 -36
  483. package/dist/plain/interval/intervalSplitAtDateTime.d.ts +9 -4
  484. package/dist/plain/interval/intervalSplitAtDateTime.js +44 -32
  485. package/dist/plain/interval/intervalSplitAtTime.d.ts +9 -4
  486. package/dist/plain/interval/intervalSplitAtTime.js +44 -32
  487. package/dist/plain/interval/intervalUnionDate.d.ts +14 -6
  488. package/dist/plain/interval/intervalUnionDate.js +19 -11
  489. package/dist/plain/interval/intervalUnionDateTime.d.ts +12 -5
  490. package/dist/plain/interval/intervalUnionDateTime.js +22 -14
  491. package/dist/plain/interval/intervalUnionTime.d.ts +10 -3
  492. package/dist/plain/interval/intervalUnionTime.js +20 -12
  493. package/dist/plain/interval/intervalXorAllDate.d.ts +11 -10
  494. package/dist/plain/interval/intervalXorAllDate.js +37 -59
  495. package/dist/plain/interval/intervalXorAllDateTime.d.ts +7 -5
  496. package/dist/plain/interval/intervalXorAllDateTime.js +28 -48
  497. package/dist/plain/interval/intervalXorAllTime.d.ts +8 -4
  498. package/dist/plain/interval/intervalXorAllTime.js +29 -47
  499. package/dist/plain/interval/intervalXorDate.d.ts +10 -9
  500. package/dist/plain/interval/intervalXorDate.js +19 -54
  501. package/dist/plain/interval/intervalXorDateTime.d.ts +9 -7
  502. package/dist/plain/interval/intervalXorDateTime.js +23 -50
  503. package/dist/plain/interval/intervalXorTime.d.ts +8 -7
  504. package/dist/plain/interval/intervalXorTime.js +22 -50
  505. package/dist/plain/interval/intervalsOverlapDate.d.ts +14 -7
  506. package/dist/plain/interval/intervalsOverlapDate.js +17 -10
  507. package/dist/plain/interval/intervalsOverlapDateTime.d.ts +12 -7
  508. package/dist/plain/interval/intervalsOverlapDateTime.js +20 -14
  509. package/dist/plain/interval/intervalsOverlapTime.d.ts +10 -5
  510. package/dist/plain/interval/intervalsOverlapTime.js +18 -12
  511. package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -5
  512. package/dist/plain/interval/mergeIntervalsDate.js +37 -38
  513. package/dist/plain/interval/mergeIntervalsDateTime.d.ts +7 -3
  514. package/dist/plain/interval/mergeIntervalsDateTime.js +31 -32
  515. package/dist/plain/interval/mergeIntervalsTime.d.ts +7 -3
  516. package/dist/plain/interval/mergeIntervalsTime.js +31 -31
  517. package/dist/plain/interval/splitIntervalByUnitDate.d.ts +26 -6
  518. package/dist/plain/interval/splitIntervalByUnitDate.js +76 -43
  519. package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -2
  520. package/dist/plain/interval/splitIntervalByUnitDateTime.js +65 -39
  521. package/dist/plain/interval/splitIntervalByUnitTime.d.ts +18 -2
  522. package/dist/plain/interval/splitIntervalByUnitTime.js +76 -39
  523. package/dist/plain/interval/validate/isValidDateInterval.d.ts +4 -2
  524. package/dist/plain/interval/validate/isValidDateInterval.js +4 -2
  525. package/dist/plain/interval/validate/isValidDateTimeInterval.d.ts +5 -0
  526. package/dist/plain/interval/validate/isValidDateTimeInterval.js +7 -2
  527. package/dist/plain/interval/validate/isValidTimeInterval.d.ts +5 -0
  528. package/dist/plain/interval/validate/isValidTimeInterval.js +8 -18
  529. package/dist/plain/locale/getLocaleEraNames.d.ts +14 -4
  530. package/dist/plain/locale/getLocaleEraNames.js +56 -41
  531. package/dist/plain/locale/getLocaleMeridiems.d.ts +7 -4
  532. package/dist/plain/locale/getLocaleMeridiems.js +28 -22
  533. package/dist/plain/locale/getLocaleMonthNames.d.ts +14 -4
  534. package/dist/plain/locale/getLocaleMonthNames.js +34 -19
  535. package/dist/plain/locale/getLocaleWeekdayNames.d.ts +14 -7
  536. package/dist/plain/locale/getLocaleWeekdayNames.js +40 -22
  537. package/dist/plain/map/mapDatesInRange.d.ts +18 -1
  538. package/dist/plain/map/mapDatesInRange.js +53 -17
  539. package/dist/plain/parse/parseDateTimeWithPattern.d.ts +3 -2
  540. package/dist/plain/parse/parseDateTimeWithPattern.js +30 -24
  541. package/dist/plain/parse/parseDateWithPattern.d.ts +3 -2
  542. package/dist/plain/parse/parseDateWithPattern.js +22 -16
  543. package/dist/plain/parse/parseMicrosecondFromDateTime.d.ts +2 -1
  544. package/dist/plain/parse/parseMicrosecondFromDateTime.js +2 -1
  545. package/dist/plain/parse/parseMicrosecondFromTime.d.ts +2 -1
  546. package/dist/plain/parse/parseMicrosecondFromTime.js +2 -1
  547. package/dist/plain/parse/parseNanosecondFromDateTime.d.ts +2 -1
  548. package/dist/plain/parse/parseNanosecondFromDateTime.js +2 -1
  549. package/dist/plain/parse/parseNanosecondFromTime.d.ts +2 -1
  550. package/dist/plain/parse/parseNanosecondFromTime.js +2 -1
  551. package/dist/plain/parse/parseSql.d.ts +15 -12
  552. package/dist/plain/parse/parseSql.js +16 -13
  553. package/dist/plain/parse/parseTimeWithPattern.d.ts +3 -2
  554. package/dist/plain/parse/parseTimeWithPattern.js +27 -21
  555. package/dist/plain/parse/parseUnitFromDate.d.ts +9 -2
  556. package/dist/plain/parse/parseUnitFromDate.js +39 -19
  557. package/dist/plain/parse/parseUnitFromDateTime.d.ts +11 -3
  558. package/dist/plain/parse/parseUnitFromDateTime.js +54 -28
  559. package/dist/plain/parse/parseUnitFromTime.d.ts +9 -3
  560. package/dist/plain/parse/parseUnitFromTime.js +13 -3
  561. package/dist/plain/parse/parseWeekFromDate.d.ts +5 -0
  562. package/dist/plain/parse/parseWeekFromDate.js +24 -5
  563. package/dist/plain/parse/parseWeekFromDateTime.d.ts +5 -0
  564. package/dist/plain/parse/parseWeekFromDateTime.js +26 -5
  565. package/dist/plain/validate/isLeapSecond.d.ts +27 -9
  566. package/dist/plain/validate/isLeapSecond.js +30 -9
  567. package/dist/plain/validate/isLeapYear.d.ts +7 -1
  568. package/dist/plain/validate/isLeapYear.js +10 -1
  569. package/dist/plain/validate/isValidCalendarDate.d.ts +37 -6
  570. package/dist/plain/validate/isValidCalendarDate.js +37 -6
  571. package/dist/plain/validate/isValidDate.d.ts +9 -1
  572. package/dist/plain/validate/isValidDate.js +14 -5
  573. package/dist/plain/validate/isValidDateRange.d.ts +11 -4
  574. package/dist/plain/validate/isValidDateRange.js +32 -22
  575. package/dist/plain/validate/isValidDateTime.d.ts +7 -1
  576. package/dist/plain/validate/isValidDateTime.js +12 -5
  577. package/dist/plain/validate/isValidDateTimeRange.d.ts +3 -2
  578. package/dist/plain/validate/isValidDateTimeRange.js +30 -15
  579. package/dist/plain/validate/isValidIsoDateLike.d.ts +6 -1
  580. package/dist/plain/validate/isValidIsoDateLike.js +13 -8
  581. package/dist/plain/validate/isValidTime.d.ts +6 -1
  582. package/dist/plain/validate/isValidTime.js +10 -3
  583. package/dist/plain/validate/isValidTimeRange.d.ts +4 -2
  584. package/dist/plain/validate/isValidTimeRange.js +31 -27
  585. package/dist/precision/calculate/index.d.ts +1 -0
  586. package/dist/precision/calculate/index.js +1 -0
  587. package/dist/precision/calculate/truncateNanoseconds.d.ts +37 -0
  588. package/dist/precision/calculate/truncateNanoseconds.js +41 -0
  589. package/dist/precision/convert/fromDotNetTicks.d.ts +30 -0
  590. package/dist/precision/convert/fromDotNetTicks.js +39 -0
  591. package/dist/precision/convert/fromExcelSerial.d.ts +38 -0
  592. package/dist/precision/convert/fromExcelSerial.js +81 -0
  593. package/dist/precision/convert/fromFileTime.d.ts +30 -0
  594. package/dist/precision/convert/fromFileTime.js +39 -0
  595. package/dist/precision/convert/fromNanoseconds.d.ts +29 -0
  596. package/dist/precision/convert/fromNanoseconds.js +50 -0
  597. package/dist/precision/convert/fromNtpTimestamp.d.ts +43 -0
  598. package/dist/precision/convert/fromNtpTimestamp.js +57 -0
  599. package/dist/precision/convert/fromPgMicroseconds.d.ts +26 -0
  600. package/dist/precision/convert/fromPgMicroseconds.js +33 -0
  601. package/dist/precision/convert/index.d.ts +12 -0
  602. package/dist/precision/convert/index.js +12 -0
  603. package/dist/precision/convert/toDotNetTicks.d.ts +29 -0
  604. package/dist/precision/convert/toDotNetTicks.js +40 -0
  605. package/dist/precision/convert/toExcelSerial.d.ts +56 -0
  606. package/dist/precision/convert/toExcelSerial.js +85 -0
  607. package/dist/precision/convert/toFileTime.d.ts +31 -0
  608. package/dist/precision/convert/toFileTime.js +43 -0
  609. package/dist/precision/convert/toNanoseconds.d.ts +37 -0
  610. package/dist/precision/convert/toNanoseconds.js +40 -0
  611. package/dist/precision/convert/toNtpTimestamp.d.ts +30 -0
  612. package/dist/precision/convert/toNtpTimestamp.js +38 -0
  613. package/dist/precision/convert/toPgMicroseconds.d.ts +29 -0
  614. package/dist/precision/convert/toPgMicroseconds.js +42 -0
  615. package/dist/precision/format/formatNanoseconds.d.ts +26 -0
  616. package/dist/precision/format/formatNanoseconds.js +32 -0
  617. package/dist/precision/format/index.d.ts +1 -0
  618. package/dist/precision/format/index.js +1 -0
  619. package/dist/precision/index.d.ts +6 -0
  620. package/dist/precision/index.js +7 -0
  621. package/dist/precision/parse/index.d.ts +1 -0
  622. package/dist/precision/parse/index.js +1 -0
  623. package/dist/precision/parse/parseNanoseconds.d.ts +27 -0
  624. package/dist/precision/parse/parseNanoseconds.js +32 -0
  625. package/dist/precision/validate/index.d.ts +3 -0
  626. package/dist/precision/validate/index.js +3 -0
  627. package/dist/precision/validate/isValidInstant.d.ts +37 -0
  628. package/dist/precision/validate/isValidInstant.js +40 -0
  629. package/dist/precision/validate/isValidNanoPattern.d.ts +27 -0
  630. package/dist/precision/validate/isValidNanoPattern.js +40 -0
  631. package/dist/precision/validate/isValidNanoseconds.d.ts +25 -0
  632. package/dist/precision/validate/isValidNanoseconds.js +28 -0
  633. package/dist/regex/calendar-date.d.ts +25 -14
  634. package/dist/regex/calendar-date.js +26 -15
  635. package/dist/regex/calendar-zoned-date-time.d.ts +22 -38
  636. package/dist/regex/calendar-zoned-date-time.js +23 -39
  637. package/dist/regex/date-time.d.ts +14 -4
  638. package/dist/regex/date-time.js +15 -5
  639. package/dist/regex/date.d.ts +45 -3
  640. package/dist/regex/date.js +47 -5
  641. package/dist/regex/http-date.d.ts +10 -6
  642. package/dist/regex/http-date.js +10 -6
  643. package/dist/regex/index.d.ts +3 -0
  644. package/dist/regex/index.js +4 -0
  645. package/dist/regex/leap-second.d.ts +41 -8
  646. package/dist/regex/leap-second.js +42 -9
  647. package/dist/regex/nanoseconds.d.ts +20 -0
  648. package/dist/regex/nanoseconds.js +20 -0
  649. package/dist/regex/rfc-2822.d.ts +15 -7
  650. package/dist/regex/rfc-2822.js +15 -7
  651. package/dist/regex/rfc-3339.d.ts +8 -1
  652. package/dist/regex/rfc-3339.js +9 -2
  653. package/dist/regex/sql-date-time.d.ts +27 -8
  654. package/dist/regex/sql-date-time.js +28 -9
  655. package/dist/regex/time-zone-like.d.ts +24 -15
  656. package/dist/regex/time-zone-like.js +25 -16
  657. package/dist/regex/time.d.ts +20 -6
  658. package/dist/regex/time.js +20 -6
  659. package/dist/regex/unix.d.ts +13 -5
  660. package/dist/regex/unix.js +13 -5
  661. package/dist/regex/utc-date-time.d.ts +19 -9
  662. package/dist/regex/utc-date-time.js +20 -10
  663. package/dist/regex/utc-offset.d.ts +24 -0
  664. package/dist/regex/utc-offset.js +24 -0
  665. package/dist/span/calculate/index.d.ts +3 -0
  666. package/dist/span/calculate/index.js +3 -0
  667. package/dist/span/calculate/spanMs.d.ts +52 -0
  668. package/dist/span/calculate/spanMs.js +80 -0
  669. package/dist/span/calculate/spanNs.d.ts +43 -0
  670. package/dist/span/calculate/spanNs.js +51 -0
  671. package/dist/span/calculate/spanWallClock.d.ts +60 -0
  672. package/dist/span/calculate/spanWallClock.js +80 -0
  673. package/dist/span/index.d.ts +3 -0
  674. package/dist/span/index.js +4 -0
  675. package/dist/span/validate/index.d.ts +1 -0
  676. package/dist/span/validate/index.js +1 -0
  677. package/dist/span/validate/isValidSpan.d.ts +37 -0
  678. package/dist/span/validate/isValidSpan.js +41 -0
  679. package/dist/transport/calculate/dwellTime.d.ts +72 -0
  680. package/dist/transport/calculate/dwellTime.js +126 -0
  681. package/dist/transport/calculate/index.d.ts +2 -0
  682. package/dist/transport/calculate/index.js +2 -0
  683. package/dist/transport/calculate/transitTime.d.ts +53 -0
  684. package/dist/transport/calculate/transitTime.js +118 -0
  685. package/dist/transport/convert/etaAtZone.d.ts +36 -0
  686. package/dist/transport/convert/etaAtZone.js +53 -0
  687. package/dist/transport/convert/index.d.ts +1 -0
  688. package/dist/transport/convert/index.js +1 -0
  689. package/dist/transport/index.d.ts +3 -0
  690. package/dist/transport/index.js +4 -0
  691. package/dist/types/business-calendar.d.ts +27 -0
  692. package/dist/types/business-calendar.js +0 -0
  693. package/dist/types/calendar-system.d.ts +9 -1
  694. package/dist/types/fiscal-calendar.d.ts +22 -0
  695. package/dist/types/fiscal-calendar.js +0 -0
  696. package/dist/types/free-time-options.d.ts +34 -0
  697. package/dist/types/free-time-options.js +0 -0
  698. package/dist/types/index.d.ts +7 -0
  699. package/dist/types/index.js +6 -0
  700. package/dist/types/interval.d.ts +18 -0
  701. package/dist/types/interval.js +0 -0
  702. package/dist/types/now-unit.d.ts +1 -1
  703. package/dist/types/roll-convention.d.ts +32 -0
  704. package/dist/types/roll-convention.js +0 -0
  705. package/dist/types/utc-now-unit.d.ts +1 -1
  706. package/dist/types/zone-bucket-unit.d.ts +11 -0
  707. package/dist/types/zone-bucket-unit.js +0 -0
  708. package/dist/unix/calculate/addUnix.d.ts +10 -4
  709. package/dist/unix/calculate/addUnix.js +39 -26
  710. package/dist/unix/calculate/diffUnix.d.ts +38 -11
  711. package/dist/unix/calculate/diffUnix.js +84 -40
  712. package/dist/unix/calculate/diffUnixAsDuration.d.ts +17 -7
  713. package/dist/unix/calculate/diffUnixAsDuration.js +42 -23
  714. package/dist/unix/calculate/endOfQuarterForUnix.d.ts +15 -11
  715. package/dist/unix/calculate/endOfQuarterForUnix.js +20 -39
  716. package/dist/unix/calculate/endOfUnix.d.ts +23 -18
  717. package/dist/unix/calculate/endOfUnix.js +37 -15
  718. package/dist/unix/calculate/isBetweenUnix.d.ts +12 -6
  719. package/dist/unix/calculate/isBetweenUnix.js +34 -23
  720. package/dist/unix/calculate/maxUnix.d.ts +6 -3
  721. package/dist/unix/calculate/maxUnix.js +17 -8
  722. package/dist/unix/calculate/minUnix.d.ts +6 -3
  723. package/dist/unix/calculate/minUnix.js +17 -8
  724. package/dist/unix/calculate/roundUnix.d.ts +24 -10
  725. package/dist/unix/calculate/roundUnix.js +67 -42
  726. package/dist/unix/calculate/setUnix.d.ts +14 -5
  727. package/dist/unix/calculate/setUnix.js +48 -29
  728. package/dist/unix/calculate/sortUnix.d.ts +6 -3
  729. package/dist/unix/calculate/sortUnix.js +19 -11
  730. package/dist/unix/calculate/startOfQuarterForUnix.d.ts +17 -12
  731. package/dist/unix/calculate/startOfQuarterForUnix.js +22 -30
  732. package/dist/unix/calculate/startOfUnix.d.ts +23 -18
  733. package/dist/unix/calculate/startOfUnix.js +37 -15
  734. package/dist/unix/calculate/subtractUnix.d.ts +10 -4
  735. package/dist/unix/calculate/subtractUnix.js +39 -26
  736. package/dist/unix/compare/areUnixEqual.d.ts +9 -5
  737. package/dist/unix/compare/areUnixEqual.js +17 -13
  738. package/dist/unix/compare/areUnixEqualBy.d.ts +14 -7
  739. package/dist/unix/compare/areUnixEqualBy.js +14 -7
  740. package/dist/unix/compare/isAfterUnix.d.ts +8 -4
  741. package/dist/unix/compare/isAfterUnix.js +16 -12
  742. package/dist/unix/compare/isBeforeUnix.d.ts +7 -4
  743. package/dist/unix/compare/isBeforeUnix.js +15 -12
  744. package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -9
  745. package/dist/unix/convert/convertUnixToPlainDate.js +34 -21
  746. package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +15 -9
  747. package/dist/unix/convert/convertUnixToPlainDateTime.js +32 -21
  748. package/dist/unix/convert/convertUnixToPlainTime.d.ts +15 -9
  749. package/dist/unix/convert/convertUnixToPlainTime.js +32 -21
  750. package/dist/unix/convert/convertUnixToUtc.d.ts +15 -7
  751. package/dist/unix/convert/convertUnixToUtc.js +20 -15
  752. package/dist/unix/convert/convertUnixToZoned.d.ts +17 -10
  753. package/dist/unix/convert/convertUnixToZoned.js +31 -20
  754. package/dist/unix/format/formatCalendarUnix.d.ts +22 -19
  755. package/dist/unix/format/formatCalendarUnix.js +35 -81
  756. package/dist/unix/format/formatRelativeUnix.d.ts +25 -8
  757. package/dist/unix/format/formatRelativeUnix.js +46 -93
  758. package/dist/unix/format/formatUnix.d.ts +26 -4
  759. package/dist/unix/format/formatUnix.js +48 -34
  760. package/dist/unix/get/getUnixNow.d.ts +13 -7
  761. package/dist/unix/get/getUnixNow.js +27 -17
  762. package/dist/unix/get/getUnixNowUnit.d.ts +5 -2
  763. package/dist/unix/get/getUnixNowUnit.js +9 -35
  764. package/dist/unix/index.d.ts +1 -0
  765. package/dist/unix/index.js +2 -0
  766. package/dist/unix/interval/intervalAbutsUnix.d.ts +17 -12
  767. package/dist/unix/interval/intervalAbutsUnix.js +23 -41
  768. package/dist/unix/interval/intervalContainsUnix.d.ts +17 -7
  769. package/dist/unix/interval/intervalContainsUnix.js +25 -37
  770. package/dist/unix/interval/intervalCountUnix.d.ts +30 -13
  771. package/dist/unix/interval/intervalCountUnix.js +49 -23
  772. package/dist/unix/interval/intervalDifferenceUnix.d.ts +19 -10
  773. package/dist/unix/interval/intervalDifferenceUnix.js +25 -43
  774. package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +24 -10
  775. package/dist/unix/interval/intervalDivideEquallyUnix.js +57 -36
  776. package/dist/unix/interval/intervalEngulfsUnix.d.ts +13 -7
  777. package/dist/unix/interval/intervalEngulfsUnix.js +18 -30
  778. package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -6
  779. package/dist/unix/interval/intervalFromDurationUnix.js +51 -39
  780. package/dist/unix/interval/intervalIntersectionUnix.d.ts +18 -11
  781. package/dist/unix/interval/intervalIntersectionUnix.js +25 -46
  782. package/dist/unix/interval/intervalLengthUnix.d.ts +21 -9
  783. package/dist/unix/interval/intervalLengthUnix.js +41 -18
  784. package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +26 -12
  785. package/dist/unix/interval/intervalOverlappingDaysUnix.js +67 -63
  786. package/dist/unix/interval/intervalSplitAtUnix.d.ts +11 -6
  787. package/dist/unix/interval/intervalSplitAtUnix.js +41 -34
  788. package/dist/unix/interval/intervalUnionUnix.d.ts +15 -9
  789. package/dist/unix/interval/intervalUnionUnix.js +20 -42
  790. package/dist/unix/interval/intervalXorAllUnix.d.ts +8 -6
  791. package/dist/unix/interval/intervalXorAllUnix.js +21 -56
  792. package/dist/unix/interval/intervalXorUnix.d.ts +22 -11
  793. package/dist/unix/interval/intervalXorUnix.js +28 -56
  794. package/dist/unix/interval/intervalsOverlapUnix.d.ts +16 -10
  795. package/dist/unix/interval/intervalsOverlapUnix.js +21 -37
  796. package/dist/unix/interval/mergeIntervalsUnix.d.ts +10 -4
  797. package/dist/unix/interval/mergeIntervalsUnix.js +25 -36
  798. package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +38 -8
  799. package/dist/unix/interval/splitIntervalByUnitUnix.js +72 -56
  800. package/dist/unix/interval/validate/isValidUnixInterval.d.ts +12 -6
  801. package/dist/unix/interval/validate/isValidUnixInterval.js +17 -16
  802. package/dist/unix/parse/index.d.ts +2 -0
  803. package/dist/unix/parse/index.js +2 -0
  804. package/dist/unix/parse/parseDateFromUnix.d.ts +10 -8
  805. package/dist/unix/parse/parseDateFromUnix.js +17 -29
  806. package/dist/unix/parse/parseDayFromUnix.d.ts +6 -4
  807. package/dist/unix/parse/parseDayFromUnix.js +18 -5
  808. package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +8 -5
  809. package/dist/unix/parse/parseDayOfWeekFromUnix.js +15 -28
  810. package/dist/unix/parse/parseHourFromUnix.d.ts +6 -4
  811. package/dist/unix/parse/parseHourFromUnix.js +18 -5
  812. package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
  813. package/dist/unix/parse/parseMicrosecondFromUnix.js +16 -3
  814. package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
  815. package/dist/unix/parse/parseMillisecondFromUnix.js +16 -3
  816. package/dist/unix/parse/parseMinuteFromUnix.d.ts +6 -4
  817. package/dist/unix/parse/parseMinuteFromUnix.js +18 -5
  818. package/dist/unix/parse/parseMonthFromUnix.d.ts +6 -4
  819. package/dist/unix/parse/parseMonthFromUnix.js +18 -5
  820. package/dist/unix/parse/parseNanosecondFromUnix.d.ts +8 -5
  821. package/dist/unix/parse/parseNanosecondFromUnix.js +20 -6
  822. package/dist/unix/parse/parseSecondFromUnix.d.ts +5 -3
  823. package/dist/unix/parse/parseSecondFromUnix.js +17 -4
  824. package/dist/unix/parse/parseTimeFromUnix.d.ts +10 -8
  825. package/dist/unix/parse/parseTimeFromUnix.js +17 -29
  826. package/dist/unix/parse/parseUnitFromUnix.d.ts +18 -11
  827. package/dist/unix/parse/parseUnitFromUnix.js +57 -55
  828. package/dist/unix/parse/parseWeekFromUnix.d.ts +15 -7
  829. package/dist/unix/parse/parseWeekFromUnix.js +32 -30
  830. package/dist/unix/parse/parseYearFromUnix.d.ts +5 -3
  831. package/dist/unix/parse/parseYearFromUnix.js +17 -4
  832. package/dist/unix/validate/isValidUnixMilliseconds.d.ts +8 -5
  833. package/dist/unix/validate/isValidUnixMilliseconds.js +10 -9
  834. package/dist/unix/validate/isValidUnixRange.d.ts +13 -7
  835. package/dist/unix/validate/isValidUnixRange.js +29 -19
  836. package/dist/unix/validate/isValidUnixSeconds.d.ts +8 -5
  837. package/dist/unix/validate/isValidUnixSeconds.js +10 -9
  838. package/dist/unix/validate/isValidUnixUnit.d.ts +9 -7
  839. package/dist/unix/validate/isValidUnixUnit.js +6 -8
  840. package/dist/utc/calculate/addUtc.js +26 -12
  841. package/dist/utc/calculate/diffUtc.d.ts +22 -7
  842. package/dist/utc/calculate/diffUtc.js +75 -31
  843. package/dist/utc/calculate/diffUtcAsDuration.d.ts +2 -2
  844. package/dist/utc/calculate/diffUtcAsDuration.js +10 -3
  845. package/dist/utc/calculate/endOfQuarterForUtc.d.ts +1 -1
  846. package/dist/utc/calculate/endOfQuarterForUtc.js +1 -1
  847. package/dist/utc/calculate/endOfUtc.d.ts +11 -4
  848. package/dist/utc/calculate/endOfUtc.js +22 -5
  849. package/dist/utc/calculate/isBetweenUtc.js +40 -24
  850. package/dist/utc/calculate/maxUtc.js +19 -12
  851. package/dist/utc/calculate/minUtc.js +19 -12
  852. package/dist/utc/calculate/roundUtc.d.ts +16 -2
  853. package/dist/utc/calculate/roundUtc.js +42 -31
  854. package/dist/utc/calculate/setUtc.d.ts +4 -8
  855. package/dist/utc/calculate/setUtc.js +25 -18
  856. package/dist/utc/calculate/sortUtc.js +17 -10
  857. package/dist/utc/calculate/startOfQuarterForUtc.d.ts +2 -0
  858. package/dist/utc/calculate/startOfQuarterForUtc.js +12 -1
  859. package/dist/utc/calculate/startOfUtc.d.ts +6 -4
  860. package/dist/utc/calculate/startOfUtc.js +17 -5
  861. package/dist/utc/calculate/subtractUtc.js +26 -12
  862. package/dist/utc/chop/chopUtc.d.ts +5 -2
  863. package/dist/utc/chop/chopUtc.js +8 -4
  864. package/dist/utc/compare/areUtcEqualBy.d.ts +10 -5
  865. package/dist/utc/compare/areUtcEqualBy.js +34 -11
  866. package/dist/utc/convert/convertUtcToPlainDate.js +22 -10
  867. package/dist/utc/convert/convertUtcToPlainDateTime.js +28 -16
  868. package/dist/utc/convert/convertUtcToPlainTime.js +22 -10
  869. package/dist/utc/convert/convertUtcToUnix.d.ts +12 -5
  870. package/dist/utc/convert/convertUtcToUnix.js +22 -13
  871. package/dist/utc/format/formatCalendarUtc.d.ts +11 -6
  872. package/dist/utc/format/formatCalendarUtc.js +32 -41
  873. package/dist/utc/format/formatHttp.d.ts +9 -3
  874. package/dist/utc/format/formatHttp.js +14 -12
  875. package/dist/utc/format/formatRelativeUtc.d.ts +18 -6
  876. package/dist/utc/format/formatRelativeUtc.js +43 -51
  877. package/dist/utc/format/formatUtc.d.ts +20 -3
  878. package/dist/utc/format/formatUtc.js +41 -12
  879. package/dist/utc/get/getUtcNowUnit.d.ts +3 -0
  880. package/dist/utc/get/getUtcNowUnit.js +11 -33
  881. package/dist/utc/index.d.ts +1 -0
  882. package/dist/utc/index.js +2 -0
  883. package/dist/utc/interval/intervalAbutsUtc.d.ts +10 -7
  884. package/dist/utc/interval/intervalAbutsUtc.js +18 -30
  885. package/dist/utc/interval/intervalContainsUtc.d.ts +19 -11
  886. package/dist/utc/interval/intervalContainsUtc.js +33 -34
  887. package/dist/utc/interval/intervalCountUtc.d.ts +3 -4
  888. package/dist/utc/interval/intervalCountUtc.js +12 -18
  889. package/dist/utc/interval/intervalDifferenceUtc.d.ts +13 -5
  890. package/dist/utc/interval/intervalDifferenceUtc.js +25 -51
  891. package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +16 -3
  892. package/dist/utc/interval/intervalDivideEquallyUtc.js +54 -34
  893. package/dist/utc/interval/intervalEngulfsUtc.d.ts +17 -12
  894. package/dist/utc/interval/intervalEngulfsUtc.js +25 -26
  895. package/dist/utc/interval/intervalFromDurationUtc.js +5 -0
  896. package/dist/utc/interval/intervalIntersectionUtc.d.ts +12 -6
  897. package/dist/utc/interval/intervalIntersectionUtc.js +24 -41
  898. package/dist/utc/interval/intervalLengthUtc.js +5 -7
  899. package/dist/utc/interval/intervalOverlappingDaysUtc.d.ts +7 -13
  900. package/dist/utc/interval/intervalOverlappingDaysUtc.js +25 -36
  901. package/dist/utc/interval/intervalSplitAtUtc.d.ts +7 -2
  902. package/dist/utc/interval/intervalSplitAtUtc.js +39 -33
  903. package/dist/utc/interval/intervalUnionUtc.d.ts +15 -7
  904. package/dist/utc/interval/intervalUnionUtc.js +31 -42
  905. package/dist/utc/interval/intervalXorAllUtc.d.ts +7 -4
  906. package/dist/utc/interval/intervalXorAllUtc.js +30 -52
  907. package/dist/utc/interval/intervalXorUtc.d.ts +8 -6
  908. package/dist/utc/interval/intervalXorUtc.js +22 -56
  909. package/dist/utc/interval/intervalsOverlapUtc.d.ts +15 -9
  910. package/dist/utc/interval/intervalsOverlapUtc.js +23 -39
  911. package/dist/utc/interval/mergeIntervalsUtc.d.ts +9 -2
  912. package/dist/utc/interval/mergeIntervalsUtc.js +23 -36
  913. package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +23 -2
  914. package/dist/utc/interval/splitIntervalByUnitUtc.js +65 -44
  915. package/dist/utc/interval/validate/isValidUtcInterval.d.ts +5 -0
  916. package/dist/utc/interval/validate/isValidUtcInterval.js +7 -6
  917. package/dist/utc/parse/parseDateFromUtc.d.ts +7 -1
  918. package/dist/utc/parse/parseDateFromUtc.js +14 -9
  919. package/dist/utc/parse/parseDayFromUtc.d.ts +7 -1
  920. package/dist/utc/parse/parseDayFromUtc.js +14 -8
  921. package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +7 -1
  922. package/dist/utc/parse/parseDayOfWeekFromUtc.js +24 -6
  923. package/dist/utc/parse/parseHourFromUtc.d.ts +7 -1
  924. package/dist/utc/parse/parseHourFromUtc.js +14 -8
  925. package/dist/utc/parse/parseHttp.d.ts +39 -14
  926. package/dist/utc/parse/parseHttp.js +69 -28
  927. package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -2
  928. package/dist/utc/parse/parseMicrosecondFromUtc.js +18 -9
  929. package/dist/utc/parse/parseMillisecondFromUtc.d.ts +7 -1
  930. package/dist/utc/parse/parseMillisecondFromUtc.js +16 -8
  931. package/dist/utc/parse/parseMinuteFromUtc.d.ts +7 -1
  932. package/dist/utc/parse/parseMinuteFromUtc.js +14 -8
  933. package/dist/utc/parse/parseMonthFromUtc.d.ts +7 -1
  934. package/dist/utc/parse/parseMonthFromUtc.js +14 -8
  935. package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -2
  936. package/dist/utc/parse/parseNanosecondFromUtc.js +18 -9
  937. package/dist/utc/parse/parseSecondFromUtc.d.ts +7 -1
  938. package/dist/utc/parse/parseSecondFromUtc.js +14 -8
  939. package/dist/utc/parse/parseTimeFromUtc.js +21 -10
  940. package/dist/utc/parse/parseUnitFromUtc.d.ts +18 -7
  941. package/dist/utc/parse/parseUnitFromUtc.js +58 -31
  942. package/dist/utc/parse/parseWeekFromUtc.d.ts +16 -3
  943. package/dist/utc/parse/parseWeekFromUtc.js +38 -10
  944. package/dist/utc/parse/parseYearFromUtc.d.ts +7 -1
  945. package/dist/utc/parse/parseYearFromUtc.js +14 -8
  946. package/dist/utc/validate/isValidUtc.d.ts +8 -1
  947. package/dist/utc/validate/isValidUtc.js +12 -3
  948. package/dist/utc/validate/isValidUtcRange.d.ts +3 -2
  949. package/dist/utc/validate/isValidUtcRange.js +30 -19
  950. package/dist/zoned/calculate/addZoned.d.ts +40 -27
  951. package/dist/zoned/calculate/addZoned.js +71 -56
  952. package/dist/zoned/calculate/addZonedBusinessDays.d.ts +2 -0
  953. package/dist/zoned/calculate/addZonedBusinessDays.js +5 -2
  954. package/dist/zoned/calculate/clampZoned.js +4 -3
  955. package/dist/zoned/calculate/closestZonedTo.d.ts +6 -6
  956. package/dist/zoned/calculate/closestZonedTo.js +35 -26
  957. package/dist/zoned/calculate/cycleZoned.d.ts +10 -7
  958. package/dist/zoned/calculate/cycleZoned.js +19 -11
  959. package/dist/zoned/calculate/diffZoned.d.ts +39 -17
  960. package/dist/zoned/calculate/diffZoned.js +90 -45
  961. package/dist/zoned/calculate/diffZonedAsDuration.d.ts +19 -9
  962. package/dist/zoned/calculate/diffZonedAsDuration.js +32 -15
  963. package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +11 -11
  964. package/dist/zoned/calculate/endOfQuarterForZoned.js +32 -31
  965. package/dist/zoned/calculate/endOfZoned.d.ts +21 -14
  966. package/dist/zoned/calculate/endOfZoned.js +25 -111
  967. package/dist/zoned/calculate/getHoursInZonedDay.d.ts +8 -1
  968. package/dist/zoned/calculate/getHoursInZonedDay.js +10 -14
  969. package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +8 -4
  970. package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +9 -6
  971. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +20 -26
  972. package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +40 -44
  973. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +16 -24
  974. package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +36 -42
  975. package/dist/zoned/calculate/getQuarterForZoned.js +2 -2
  976. package/dist/zoned/calculate/maxZoned.js +20 -12
  977. package/dist/zoned/calculate/minZoned.d.ts +1 -1
  978. package/dist/zoned/calculate/minZoned.js +21 -13
  979. package/dist/zoned/calculate/roundZoned.d.ts +18 -4
  980. package/dist/zoned/calculate/roundZoned.js +58 -33
  981. package/dist/zoned/calculate/setZoned.d.ts +9 -3
  982. package/dist/zoned/calculate/setZoned.js +39 -18
  983. package/dist/zoned/calculate/sortZoned.js +18 -10
  984. package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +4 -7
  985. package/dist/zoned/calculate/startOfQuarterForZoned.js +23 -17
  986. package/dist/zoned/calculate/startOfZoned.d.ts +17 -13
  987. package/dist/zoned/calculate/startOfZoned.js +21 -103
  988. package/dist/zoned/calculate/subtractZoned.d.ts +36 -24
  989. package/dist/zoned/calculate/subtractZoned.js +66 -50
  990. package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +2 -0
  991. package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -2
  992. package/dist/zoned/chop/chopZonedDate.js +2 -2
  993. package/dist/zoned/chop/chopZonedDateTime.js +2 -2
  994. package/dist/zoned/chop/chopZonedMilliseconds.js +2 -2
  995. package/dist/zoned/chop/chopZonedSeconds.js +2 -2
  996. package/dist/zoned/chop/chopZonedTime.js +2 -2
  997. package/dist/zoned/chop/chopZonedTimezone.js +2 -2
  998. package/dist/zoned/compare/areZonedEqual.js +3 -2
  999. package/dist/zoned/compare/areZonedEqualBy.d.ts +15 -2
  1000. package/dist/zoned/compare/areZonedEqualBy.js +45 -12
  1001. package/dist/zoned/compare/isAfterZoned.js +3 -2
  1002. package/dist/zoned/compare/isBeforeZoned.d.ts +1 -1
  1003. package/dist/zoned/compare/isBeforeZoned.js +4 -3
  1004. package/dist/zoned/compare/isBetweenZoned.js +46 -29
  1005. package/dist/zoned/compare/isInDaylightSaving.js +4 -4
  1006. package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -4
  1007. package/dist/zoned/compare/isZonedBusinessDay.js +9 -6
  1008. package/dist/zoned/compare/isZonedFuture.js +2 -1
  1009. package/dist/zoned/compare/isZonedPast.js +2 -1
  1010. package/dist/zoned/compare/isZonedRelativeDay.js +2 -1
  1011. package/dist/zoned/compare/isZonedThisUnit.d.ts +12 -4
  1012. package/dist/zoned/compare/isZonedThisUnit.js +37 -16
  1013. package/dist/zoned/compare/isZonedWeekend.d.ts +8 -4
  1014. package/dist/zoned/compare/isZonedWeekend.js +9 -6
  1015. package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +10 -5
  1016. package/dist/zoned/convert/convertPlainDateTimeToZoned.js +34 -16
  1017. package/dist/zoned/convert/convertZonedToCalendar.d.ts +26 -38
  1018. package/dist/zoned/convert/convertZonedToCalendar.js +33 -48
  1019. package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +6 -0
  1020. package/dist/zoned/convert/convertZonedToPlainDateTime.js +8 -2
  1021. package/dist/zoned/convert/convertZonedToUnix.d.ts +12 -6
  1022. package/dist/zoned/convert/convertZonedToUnix.js +23 -16
  1023. package/dist/zoned/convert/convertZonedToUtc.js +2 -2
  1024. package/dist/zoned/convert/convertZonedToZoned.js +2 -2
  1025. package/dist/zoned/format/formatCalendarZoned.d.ts +7 -3
  1026. package/dist/zoned/format/formatCalendarZoned.js +37 -39
  1027. package/dist/zoned/format/formatRelativeZoned.d.ts +15 -6
  1028. package/dist/zoned/format/formatRelativeZoned.js +54 -54
  1029. package/dist/zoned/format/formatRfc2822.d.ts +14 -1
  1030. package/dist/zoned/format/formatRfc2822.js +27 -13
  1031. package/dist/zoned/format/formatRfc3339.d.ts +14 -1
  1032. package/dist/zoned/format/formatRfc3339.js +29 -3
  1033. package/dist/zoned/format/formatTimeZoneName.d.ts +3 -2
  1034. package/dist/zoned/format/formatTimeZoneName.js +28 -18
  1035. package/dist/zoned/format/formatZonedDateTime.d.ts +25 -5
  1036. package/dist/zoned/format/formatZonedDateTime.js +40 -9
  1037. package/dist/zoned/format/formatZonedRange.d.ts +24 -6
  1038. package/dist/zoned/format/formatZonedRange.js +61 -28
  1039. package/dist/zoned/format/formatZonedToParts.d.ts +29 -6
  1040. package/dist/zoned/format/formatZonedToParts.js +42 -13
  1041. package/dist/zoned/get/getDstTransitions.d.ts +6 -1
  1042. package/dist/zoned/get/getDstTransitions.js +17 -15
  1043. package/dist/zoned/get/getTimeZoneOffset.d.ts +11 -1
  1044. package/dist/zoned/get/getTimeZoneOffset.js +19 -2
  1045. package/dist/zoned/get/getZonedNow.js +20 -9
  1046. package/dist/zoned/get/getZonedNowUnit.d.ts +8 -4
  1047. package/dist/zoned/get/getZonedNowUnit.js +15 -31
  1048. package/dist/zoned/index.js +1 -1
  1049. package/dist/zoned/interval/intervalAbutsZoned.d.ts +18 -11
  1050. package/dist/zoned/interval/intervalAbutsZoned.js +24 -25
  1051. package/dist/zoned/interval/intervalContainsZoned.d.ts +16 -7
  1052. package/dist/zoned/interval/intervalContainsZoned.js +22 -14
  1053. package/dist/zoned/interval/intervalCountZoned.d.ts +19 -11
  1054. package/dist/zoned/interval/intervalCountZoned.js +32 -27
  1055. package/dist/zoned/interval/intervalDifferenceZoned.d.ts +13 -7
  1056. package/dist/zoned/interval/intervalDifferenceZoned.js +24 -36
  1057. package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +18 -9
  1058. package/dist/zoned/interval/intervalDivideEquallyZoned.js +67 -46
  1059. package/dist/zoned/interval/intervalEngulfsZoned.d.ts +10 -5
  1060. package/dist/zoned/interval/intervalEngulfsZoned.js +16 -10
  1061. package/dist/zoned/interval/intervalFromDurationZoned.d.ts +25 -11
  1062. package/dist/zoned/interval/intervalFromDurationZoned.js +61 -44
  1063. package/dist/zoned/interval/intervalIntersectionZoned.d.ts +12 -6
  1064. package/dist/zoned/interval/intervalIntersectionZoned.js +24 -18
  1065. package/dist/zoned/interval/intervalLengthZoned.d.ts +15 -6
  1066. package/dist/zoned/interval/intervalLengthZoned.js +23 -9
  1067. package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +28 -17
  1068. package/dist/zoned/interval/intervalOverlappingDaysZoned.js +46 -34
  1069. package/dist/zoned/interval/intervalSplitAtZoned.d.ts +6 -3
  1070. package/dist/zoned/interval/intervalSplitAtZoned.js +52 -42
  1071. package/dist/zoned/interval/intervalUnionZoned.d.ts +14 -8
  1072. package/dist/zoned/interval/intervalUnionZoned.js +25 -20
  1073. package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -7
  1074. package/dist/zoned/interval/intervalXorAllZoned.js +42 -73
  1075. package/dist/zoned/interval/intervalXorZoned.d.ts +20 -12
  1076. package/dist/zoned/interval/intervalXorZoned.js +34 -64
  1077. package/dist/zoned/interval/intervalsOverlapZoned.d.ts +15 -7
  1078. package/dist/zoned/interval/intervalsOverlapZoned.js +21 -12
  1079. package/dist/zoned/interval/mergeIntervalsZoned.d.ts +10 -3
  1080. package/dist/zoned/interval/mergeIntervalsZoned.js +44 -41
  1081. package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +28 -5
  1082. package/dist/zoned/interval/splitIntervalByUnitZoned.js +72 -39
  1083. package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +13 -10
  1084. package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +13 -10
  1085. package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +7 -5
  1086. package/dist/zoned/interval/validate/isValidZonedInterval.js +12 -16
  1087. package/dist/zoned/map/mapZonedDatesInRange.d.ts +17 -1
  1088. package/dist/zoned/map/mapZonedDatesInRange.js +62 -26
  1089. package/dist/zoned/map/mapZonedHoursInDay.d.ts +10 -13
  1090. package/dist/zoned/map/mapZonedHoursInDay.js +13 -21
  1091. package/dist/zoned/parse/getZonedOffset.js +2 -2
  1092. package/dist/zoned/parse/getZonedOffsetAs.d.ts +4 -2
  1093. package/dist/zoned/parse/getZonedOffsetAs.js +10 -5
  1094. package/dist/zoned/parse/parseDateFromZoned.js +2 -2
  1095. package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
  1096. package/dist/zoned/parse/parseDayFromZoned.js +2 -2
  1097. package/dist/zoned/parse/parseDayOfWeekFromZoned.js +2 -2
  1098. package/dist/zoned/parse/parseHourFromZoned.js +2 -2
  1099. package/dist/zoned/parse/parseMicrosecondFromZoned.d.ts +2 -1
  1100. package/dist/zoned/parse/parseMicrosecondFromZoned.js +4 -3
  1101. package/dist/zoned/parse/parseMillisecondFromZoned.js +2 -2
  1102. package/dist/zoned/parse/parseMinuteFromZoned.js +2 -2
  1103. package/dist/zoned/parse/parseMonthFromZoned.js +2 -2
  1104. package/dist/zoned/parse/parseNanosecondFromZoned.d.ts +2 -1
  1105. package/dist/zoned/parse/parseNanosecondFromZoned.js +4 -3
  1106. package/dist/zoned/parse/parseRfc2822.d.ts +32 -12
  1107. package/dist/zoned/parse/parseRfc2822.js +47 -45
  1108. package/dist/zoned/parse/parseRfc3339.d.ts +6 -0
  1109. package/dist/zoned/parse/parseRfc3339.js +6 -0
  1110. package/dist/zoned/parse/parseSecondFromZoned.js +2 -2
  1111. package/dist/zoned/parse/parseTimeFromZoned.js +2 -2
  1112. package/dist/zoned/parse/parseTimeZoneFromZoned.js +2 -2
  1113. package/dist/zoned/parse/parseUnitFromZoned.d.ts +14 -5
  1114. package/dist/zoned/parse/parseUnitFromZoned.js +59 -33
  1115. package/dist/zoned/parse/parseWeekFromZoned.d.ts +13 -3
  1116. package/dist/zoned/parse/parseWeekFromZoned.js +34 -10
  1117. package/dist/zoned/parse/parseYearFromZoned.js +2 -2
  1118. package/dist/zoned/validate/hasDaylightSaving.js +3 -3
  1119. package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +31 -16
  1120. package/dist/zoned/validate/isValidCalendarZonedDateTime.js +31 -16
  1121. package/dist/zoned/validate/isValidTimeZone.d.ts +15 -2
  1122. package/dist/zoned/validate/isValidTimeZone.js +17 -4
  1123. package/dist/zoned/validate/isValidZonedDateTime.d.ts +14 -7
  1124. package/dist/zoned/validate/isValidZonedDateTime.js +20 -12
  1125. package/dist/zoned/validate/isValidZonedRange.d.ts +9 -2
  1126. package/dist/zoned/validate/isValidZonedRange.js +44 -16
  1127. package/package.json +510 -34
  1128. package/skills/gmt-arithmetic/SKILL.md +197 -16
  1129. package/skills/gmt-basics/SKILL.md +61 -14
  1130. package/skills/gmt-integration/SKILL.md +54 -8
  1131. package/skills/gmt-timezone/SKILL.md +208 -24
  1132. package/dist/internal/advanceBusinessDays.d.ts +0 -2
  1133. package/dist/internal/advanceBusinessDays.js +0 -15
  1134. package/dist/internal/ethiopicFamilyCalendar.d.ts +0 -47
  1135. package/dist/internal/ethiopicFamilyCalendar.js +0 -136
  1136. package/dist/internal/getLocaleMinimalDaysInFirstWeek.d.ts +0 -20
  1137. package/dist/internal/getLocaleMinimalDaysInFirstWeek.js +0 -31
  1138. package/dist/internal/resolveUnixTimeZone.d.ts +0 -20
  1139. package/dist/internal/resolveUnixTimeZone.js +0 -30
  1140. package/dist/unix/calculate/startOrEndOfUnix.d.ts +0 -27
  1141. package/dist/unix/calculate/startOrEndOfUnix.js +0 -140
  1142. package/dist/unix/interval/resolveUnixIntervalPair.d.ts +0 -7
  1143. package/dist/unix/interval/resolveUnixIntervalPair.js +0 -36
@@ -1,15 +1,34 @@
1
1
  /**
2
- * RegExp matching an ANSI SQL / ODBC timestamp literal: `YYYY-MM-DD HH:mm[:ss[.fffffffff]]`.
2
+ * RegExp matching a SQL timestamp literal without a time zone: `YYYY-MM-DD HH:MM:SS[.fffffffff]`.
3
3
  *
4
- * - Uses a space separator (never `T`), always zero-padded.
5
- * - Fractional seconds use `.` only (not `,`) and support 1–9 digits.
6
- * - Shape-only validation; real calendar validation is delegated to
7
- * `Temporal.PlainDateTime.from` in `parseSql`.
4
+ * The grammar is SQL-92 §5.3 `<timestamp string>` and the ODBC `ts` escape
5
+ * (`yyyy-mm-dd hh:mm:ss[.f...]`):
6
+ *
7
+ * - `<date value> <space> <time value>`: a single space separator, never `T`.
8
+ * - Syntax Rule 21: the year is four digits and every other field two digits, zero-padded. No
9
+ * sign and no expanded year.
10
+ * - Table 10: YEAR `0001`–`9999`, MONTH `01`–`12`, DAY `01`–`31`, HOUR `00`–`23`, MINUTE
11
+ * `00`–`59`.
12
+ * - Seconds are required (`<time value>` is `<hours value>:<minutes value>:<seconds value>`).
13
+ * - `<seconds value> ::= <seconds integer value> [ <period> [ <seconds fraction> ] ]`: an optional
14
+ * `.` then up to 9 fraction digits. SQL-92 leaves the precision to the implementation; 9 is
15
+ * Temporal's nanosecond.
16
+ * - SECOND `60`–`61` does not match, although Table 10 allows them: GMT rejects leap seconds
17
+ * because Temporal would read one as `:59`.
18
+ * - Shape-only validation; the calendar date is checked by `Temporal.PlainDateTime.from` in
19
+ * `parseSql`.
20
+ *
21
+ * Capture groups: 1 month, 2 day, 3 hour. The year, minute, second and fraction are not
22
+ * captured.
8
23
  *
9
24
  * @example sqlDateTime.test("2024-03-15 14:30:00.123456789") // true
10
- * @example sqlDateTime.test("2024-03-15 14:30") // true (seconds omitted)
11
- * @example sqlDateTime.test("2024-03-15T14:30:00") // false (T separator)
25
+ * @example sqlDateTime.test("0001-01-01 00:00:00") // true (the first year SQL allows)
26
+ * @example sqlDateTime.test("2024-03-15 14:30:00.") // true (period with no fraction)
27
+ * @example sqlDateTime.test("2024-03-15 14:30") // false (seconds are required)
28
+ * @example sqlDateTime.test("0000-01-01 00:00:00") // false (year outside 0001–9999)
29
+ * @example sqlDateTime.test("+002024-03-15 14:30:00") // false (expanded year)
30
+ * @example sqlDateTime.test("2024-03-15T14:30:00") // false (T separator)
12
31
  * @example sqlDateTime.test("2024-3-5 14:30:00") // false (unpadded)
13
- * @example sqlDateTime.test("2024-03-15 14:30:60") // false (invalid second)
32
+ * @example sqlDateTime.test("2024-03-15 14:30:60") // false (leap second; GMT rejects it)
14
33
  */
15
- export const sqlDateTime = /^(?:\d{4}|[+-]\d{6})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9](?:\.[0-9]{1,9})?)?$/;
34
+ export const sqlDateTime = /^(?!0000)\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\.[0-9]{0,9})?$/;
@@ -1,22 +1,31 @@
1
1
  /**
2
- * RegExp matching a timezone identifier in one of three forms:
2
+ * RegExp matching the shape of a time zone identifier: Temporal's `TimeZoneIdentifier` grammar
3
+ * (§14.6.2 Time Zone Identifiers), `UTCOffset[~SubMinutePrecision] | TimeZoneIANAName`.
3
4
  *
4
- * 1. Literal `UTC` or `GMT`.
5
- * 2. IANA-style bracketed zone: `Area/Locality` (e.g. `America/New_York`, `Asia/Tokyo`),
6
- * with support for arbitrarily deep nesting (`Area/SubArea/Locality`).
7
- * 3. Any other `[A-Za-z_+-]+(?:/[A-Za-z0-9_+-]+)+` shape — permissive enough to accept
8
- * custom or future zone identifiers without rejecting them at the shape layer.
9
- *
10
- * This is a SHAPE-ONLY check used by `isValidZonedDateTime` and similar validators.
11
- * Real timezone validation (existence, IANA database membership) is delegated to
12
- * `Temporal.Zone.from` in `internal/calendarZonedString.ts`.
5
+ * - An offset identifier (`UTCOffset[~SubMinutePrecision]`): an ASCII sign and a two-digit hour
6
+ * `00`–`23`, optionally followed by two minute digits `00`–`59`, with or without `:` (`+05`,
7
+ * `+0530`, `-08:00`). No seconds and no fraction. `Intl.DateTimeFormat` accepts the same
8
+ * offsets (ECMA-402 `IsTimeZoneOffsetString`).
9
+ * - An IANA name (`TimeZoneIANAName`): one or more `/`-separated components. Each starts with a
10
+ * letter, `.` or `_` (`TZLeadingChar`) and continues with letters, digits, `.`, `_`, `-` or `+`
11
+ * (`TZChar`). So single-component names match (`UTC`, `Japan`, `Zulu`, `EST5EDT`, `GMT+0`,
12
+ * `NZ-CHAT`), as do `Area/Location` names at any depth (`America/Argentina/Buenos_Aires`,
13
+ * `Etc/GMT+5`). Temporal must accept every Zone and Link name in the IANA database, and tzdb's
14
+ * `backward` file has more than forty slash-less ones.
15
+ * - Letter case is not checked: ECMA-402 matches an identifier ASCII-case-insensitively, so `utc`
16
+ * and `america/new_york` name the same zones as `UTC` and `America/New_York`.
17
+ * - SHAPE ONLY. Whether the name exists is decided by Temporal: its only consumer,
18
+ * `isValidTimeZone`, also requires `Temporal.ZonedDateTime.from` to accept the zone.
13
19
  *
14
20
  * @example timeZoneLike.test("UTC") // true
15
- * @example timeZoneLike.test("GMT") // true
16
21
  * @example timeZoneLike.test("America/New_York") // true
17
- * @example timeZoneLike.test("Asia/Tokyo") // true
18
- * @example timeZoneLike.test("Custom/Zone") // true (permissive)
19
- * @example timeZoneLike.test("+05:00") // false (numeric offset, not a zone id)
20
- * @example timeZoneLike.test("UTC+05:00") // false (mixed form)
22
+ * @example timeZoneLike.test("Japan") // true (single-component IANA link)
23
+ * @example timeZoneLike.test("Etc/GMT+5") // true
24
+ * @example timeZoneLike.test("Custom/Zone") // true (shape only; existence is not checked)
25
+ * @example timeZoneLike.test("+05:00") // true (an offset identifier)
26
+ * @example timeZoneLike.test("-0800") // true (a basic-format offset identifier)
27
+ * @example timeZoneLike.test("+05:00:00") // false (no seconds in an offset identifier)
28
+ * @example timeZoneLike.test("-foo/bar") // false (a name cannot start with - or +)
29
+ * @example timeZoneLike.test("UTC+05:00") // false (":" is not a name character)
21
30
  */
22
31
  export declare const timeZoneLike: RegExp;
@@ -1,22 +1,31 @@
1
1
  /**
2
- * RegExp matching a timezone identifier in one of three forms:
2
+ * RegExp matching the shape of a time zone identifier: Temporal's `TimeZoneIdentifier` grammar
3
+ * (§14.6.2 Time Zone Identifiers), `UTCOffset[~SubMinutePrecision] | TimeZoneIANAName`.
3
4
  *
4
- * 1. Literal `UTC` or `GMT`.
5
- * 2. IANA-style bracketed zone: `Area/Locality` (e.g. `America/New_York`, `Asia/Tokyo`),
6
- * with support for arbitrarily deep nesting (`Area/SubArea/Locality`).
7
- * 3. Any other `[A-Za-z_+-]+(?:/[A-Za-z0-9_+-]+)+` shape — permissive enough to accept
8
- * custom or future zone identifiers without rejecting them at the shape layer.
9
- *
10
- * This is a SHAPE-ONLY check used by `isValidZonedDateTime` and similar validators.
11
- * Real timezone validation (existence, IANA database membership) is delegated to
12
- * `Temporal.Zone.from` in `internal/calendarZonedString.ts`.
5
+ * - An offset identifier (`UTCOffset[~SubMinutePrecision]`): an ASCII sign and a two-digit hour
6
+ * `00`–`23`, optionally followed by two minute digits `00`–`59`, with or without `:` (`+05`,
7
+ * `+0530`, `-08:00`). No seconds and no fraction. `Intl.DateTimeFormat` accepts the same
8
+ * offsets (ECMA-402 `IsTimeZoneOffsetString`).
9
+ * - An IANA name (`TimeZoneIANAName`): one or more `/`-separated components. Each starts with a
10
+ * letter, `.` or `_` (`TZLeadingChar`) and continues with letters, digits, `.`, `_`, `-` or `+`
11
+ * (`TZChar`). So single-component names match (`UTC`, `Japan`, `Zulu`, `EST5EDT`, `GMT+0`,
12
+ * `NZ-CHAT`), as do `Area/Location` names at any depth (`America/Argentina/Buenos_Aires`,
13
+ * `Etc/GMT+5`). Temporal must accept every Zone and Link name in the IANA database, and tzdb's
14
+ * `backward` file has more than forty slash-less ones.
15
+ * - Letter case is not checked: ECMA-402 matches an identifier ASCII-case-insensitively, so `utc`
16
+ * and `america/new_york` name the same zones as `UTC` and `America/New_York`.
17
+ * - SHAPE ONLY. Whether the name exists is decided by Temporal: its only consumer,
18
+ * `isValidTimeZone`, also requires `Temporal.ZonedDateTime.from` to accept the zone.
13
19
  *
14
20
  * @example timeZoneLike.test("UTC") // true
15
- * @example timeZoneLike.test("GMT") // true
16
21
  * @example timeZoneLike.test("America/New_York") // true
17
- * @example timeZoneLike.test("Asia/Tokyo") // true
18
- * @example timeZoneLike.test("Custom/Zone") // true (permissive)
19
- * @example timeZoneLike.test("+05:00") // false (numeric offset, not a zone id)
20
- * @example timeZoneLike.test("UTC+05:00") // false (mixed form)
22
+ * @example timeZoneLike.test("Japan") // true (single-component IANA link)
23
+ * @example timeZoneLike.test("Etc/GMT+5") // true
24
+ * @example timeZoneLike.test("Custom/Zone") // true (shape only; existence is not checked)
25
+ * @example timeZoneLike.test("+05:00") // true (an offset identifier)
26
+ * @example timeZoneLike.test("-0800") // true (a basic-format offset identifier)
27
+ * @example timeZoneLike.test("+05:00:00") // false (no seconds in an offset identifier)
28
+ * @example timeZoneLike.test("-foo/bar") // false (a name cannot start with - or +)
29
+ * @example timeZoneLike.test("UTC+05:00") // false (":" is not a name character)
21
30
  */
22
- export const timeZoneLike = /^(?:UTC|GMT|[A-Za-z_+-]+(?:\/[A-Za-z0-9_+-]+)+)$/;
31
+ export const timeZoneLike = /^(?:[+-](?:[01][0-9]|2[0-3])(?::?[0-5][0-9])?|[A-Za-z._][A-Za-z0-9._+-]*(?:\/[A-Za-z._][A-Za-z0-9._+-]*)*)$/;
@@ -18,12 +18,15 @@ export declare const hour: RegExp;
18
18
  */
19
19
  export declare const minute: RegExp;
20
20
  /**
21
- * RegExp matching an ISO 8601 second: `00`–`59`.
21
+ * RegExp matching a second of `00`–`59`.
22
+ *
23
+ * - Temporal's `TimeSecond` and RFC 3339's `time-second` both admit `60` (a leap second). GMT
24
+ * rejects it by decision, because Temporal would read it as `:59`; `leapSecond` detects one.
22
25
  *
23
26
  * @example second.test("00") // true
24
27
  * @example second.test("30") // true
25
28
  * @example second.test("59") // true
26
- * @example second.test("60") // false (out of range; leap seconds use a different pattern)
29
+ * @example second.test("60") // false (a leap second; GMT rejects it, see `leapSecond`)
27
30
  */
28
31
  export declare const second: RegExp;
29
32
  /**
@@ -34,13 +37,17 @@ export declare const second: RegExp;
34
37
  *
35
38
  * @example fractionalSecond.test("123") // true (milliseconds)
36
39
  * @example fractionalSecond.test("123456789") // true (nanoseconds)
37
- * @example fractionalSecond.test("0") // false (must be 1–9 digits)
40
+ * @example fractionalSecond.test("1234567890") // false (more than 9 digits)
38
41
  * @example fractionalSecond.test("") // false (empty)
39
42
  */
40
43
  export declare const fractionalSecond: RegExp;
41
44
  /**
42
45
  * Backward-compatible alias for `fractionalSecond`. Prefer `fractionalSecond` for new
43
46
  * usage — the pattern matches 1–9 digits of fractional seconds, not just milliseconds.
47
+ *
48
+ * @example millisecond.test("123") // true
49
+ * @example millisecond.test("123456789") // true (nanoseconds, despite the name)
50
+ * @example millisecond.test("1234567890") // false (more than 9 digits)
44
51
  */
45
52
  export declare const millisecond: RegExp;
46
53
  /**
@@ -50,16 +57,23 @@ export declare const millisecond: RegExp;
50
57
  * - Minutes and seconds: `00`–`59`, zero-padded.
51
58
  * - Seconds are optional; fractional seconds use `.` or `,` followed by 1–9 digits.
52
59
  * - No timezone designator — this is a plain/local time only.
60
+ * - Second `60` does not match: GMT rejects leap seconds (Temporal's `TimeSecond` admits one
61
+ * and would read it as `:59`).
53
62
  * - Shape-only validation; real field validation is delegated to
54
- * `Temporal.PlainTime.from` in `parseTime`.
63
+ * `Temporal.PlainTime.from` in `isValidTime`.
64
+ *
65
+ * Capture groups: 1 hour. The minute, second and fraction are not captured.
55
66
  *
56
- * Capture groups: 1 hour, 2 minute, 3 second (optional), 4 fractional (optional).
67
+ * The written form only, with no RFC 9557 annotation. `isValidTime` reads more: it matches this
68
+ * against the part before the first `[` and lets Temporal read the annotations
69
+ * (`"…[u-ca=iso8601]"`, an elective `"…[foo=bar]"`).
57
70
  *
58
71
  * @example plainTime.test("14:30") // true
59
72
  * @example plainTime.test("14:30:00") // true
60
73
  * @example plainTime.test("14:30:00.123") // true (fractional seconds)
61
74
  * @example plainTime.test("14:30:00,123") // true (comma separator)
62
75
  * @example plainTime.test("24:00:00") // false (hour out of range)
63
- * @example plainTime.test("14:30:60") // false (second out of range)
76
+ * @example plainTime.exec("14:30:45.5")?.slice(1) // ["14"] (hour)
77
+ * @example plainTime.test("14:30:60") // false (leap second; GMT rejects it)
64
78
  */
65
79
  export declare const plainTime: RegExp;
@@ -18,12 +18,15 @@ export const hour = /^(0[0-9]|1[0-9]|2[0-3])$/;
18
18
  */
19
19
  export const minute = /^[0-5][0-9]$/;
20
20
  /**
21
- * RegExp matching an ISO 8601 second: `00`–`59`.
21
+ * RegExp matching a second of `00`–`59`.
22
+ *
23
+ * - Temporal's `TimeSecond` and RFC 3339's `time-second` both admit `60` (a leap second). GMT
24
+ * rejects it by decision, because Temporal would read it as `:59`; `leapSecond` detects one.
22
25
  *
23
26
  * @example second.test("00") // true
24
27
  * @example second.test("30") // true
25
28
  * @example second.test("59") // true
26
- * @example second.test("60") // false (out of range; leap seconds use a different pattern)
29
+ * @example second.test("60") // false (a leap second; GMT rejects it, see `leapSecond`)
27
30
  */
28
31
  export const second = /^[0-5][0-9]$/;
29
32
  /**
@@ -34,13 +37,17 @@ export const second = /^[0-5][0-9]$/;
34
37
  *
35
38
  * @example fractionalSecond.test("123") // true (milliseconds)
36
39
  * @example fractionalSecond.test("123456789") // true (nanoseconds)
37
- * @example fractionalSecond.test("0") // false (must be 1–9 digits)
40
+ * @example fractionalSecond.test("1234567890") // false (more than 9 digits)
38
41
  * @example fractionalSecond.test("") // false (empty)
39
42
  */
40
43
  export const fractionalSecond = /^[0-9]{1,9}$/;
41
44
  /**
42
45
  * Backward-compatible alias for `fractionalSecond`. Prefer `fractionalSecond` for new
43
46
  * usage — the pattern matches 1–9 digits of fractional seconds, not just milliseconds.
47
+ *
48
+ * @example millisecond.test("123") // true
49
+ * @example millisecond.test("123456789") // true (nanoseconds, despite the name)
50
+ * @example millisecond.test("1234567890") // false (more than 9 digits)
44
51
  */
45
52
  export const millisecond = fractionalSecond;
46
53
  /**
@@ -50,16 +57,23 @@ export const millisecond = fractionalSecond;
50
57
  * - Minutes and seconds: `00`–`59`, zero-padded.
51
58
  * - Seconds are optional; fractional seconds use `.` or `,` followed by 1–9 digits.
52
59
  * - No timezone designator — this is a plain/local time only.
60
+ * - Second `60` does not match: GMT rejects leap seconds (Temporal's `TimeSecond` admits one
61
+ * and would read it as `:59`).
53
62
  * - Shape-only validation; real field validation is delegated to
54
- * `Temporal.PlainTime.from` in `parseTime`.
63
+ * `Temporal.PlainTime.from` in `isValidTime`.
64
+ *
65
+ * Capture groups: 1 hour. The minute, second and fraction are not captured.
55
66
  *
56
- * Capture groups: 1 hour, 2 minute, 3 second (optional), 4 fractional (optional).
67
+ * The written form only, with no RFC 9557 annotation. `isValidTime` reads more: it matches this
68
+ * against the part before the first `[` and lets Temporal read the annotations
69
+ * (`"…[u-ca=iso8601]"`, an elective `"…[foo=bar]"`).
57
70
  *
58
71
  * @example plainTime.test("14:30") // true
59
72
  * @example plainTime.test("14:30:00") // true
60
73
  * @example plainTime.test("14:30:00.123") // true (fractional seconds)
61
74
  * @example plainTime.test("14:30:00,123") // true (comma separator)
62
75
  * @example plainTime.test("24:00:00") // false (hour out of range)
63
- * @example plainTime.test("14:30:60") // false (second out of range)
76
+ * @example plainTime.exec("14:30:45.5")?.slice(1) // ["14"] (hour)
77
+ * @example plainTime.test("14:30:60") // false (leap second; GMT rejects it)
64
78
  */
65
79
  export const plainTime = /^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9](?:[.,][0-9]{1,9})?)?$/;
@@ -1,23 +1,31 @@
1
1
  /**
2
2
  * RegExp matching a Unix timestamp in seconds: exactly 10 digits.
3
3
  *
4
- * - Covers the range from `0000000000` (1970-01-01T00:00:00Z) through
5
- * `3999999999` (2096-10-11T03:33:19Z), which is the practical range for
6
- * 10-digit Unix-second timestamps.
4
+ * - Matches `0000000000` (1970-01-01T00:00:00Z) through `9999999999`
5
+ * (2286-11-20T17:46:39Z).
6
+ * - Does not match an unpadded value (`"999999999"`, `"0"`), so every real timestamp before
7
+ * `1000000000` (2001-09-09T01:46:40Z) needs zero-padding to match, and never matches a
8
+ * negative (pre-1970) timestamp.
7
9
  *
8
10
  * @example unixSeconds.test("1710511800") // true
9
11
  * @example unixSeconds.test("0000000000") // true (epoch)
12
+ * @example unixSeconds.test("9999999999") // true (2286-11-20T17:46:39Z)
13
+ * @example unixSeconds.test("999999999") // false (unpadded; 2001-09-09T01:46:39Z)
14
+ * @example unixSeconds.test("-1") // false (negative)
10
15
  * @example unixSeconds.test("17105118001") // false (11 digits)
11
16
  */
12
17
  export declare const unixSeconds: RegExp;
13
18
  /**
14
19
  * RegExp matching a Unix timestamp in milliseconds: exactly 13 digits.
15
20
  *
16
- * - Covers the range from `0000000000000` (1970-01-01T00:00:00Z) through
17
- * `3999999999999` (2096-10-11T03:33:19.999Z).
21
+ * - Matches `0000000000000` (1970-01-01T00:00:00Z) through `9999999999999`
22
+ * (2286-11-20T17:46:39.999Z).
23
+ * - Does not match an unpadded value, so every real timestamp before `1000000000000`
24
+ * (2001-09-09T01:46:40Z) needs zero-padding to match, and never matches a negative one.
18
25
  *
19
26
  * @example unixMilliseconds.test("1710511800123") // true
20
27
  * @example unixMilliseconds.test("0000000000000") // true (epoch)
28
+ * @example unixMilliseconds.test("999999999999") // false (unpadded, 12 digits)
21
29
  * @example unixMilliseconds.test("17105118001") // false (11 digits)
22
30
  */
23
31
  export declare const unixMilliseconds: RegExp;
@@ -1,23 +1,31 @@
1
1
  /**
2
2
  * RegExp matching a Unix timestamp in seconds: exactly 10 digits.
3
3
  *
4
- * - Covers the range from `0000000000` (1970-01-01T00:00:00Z) through
5
- * `3999999999` (2096-10-11T03:33:19Z), which is the practical range for
6
- * 10-digit Unix-second timestamps.
4
+ * - Matches `0000000000` (1970-01-01T00:00:00Z) through `9999999999`
5
+ * (2286-11-20T17:46:39Z).
6
+ * - Does not match an unpadded value (`"999999999"`, `"0"`), so every real timestamp before
7
+ * `1000000000` (2001-09-09T01:46:40Z) needs zero-padding to match, and never matches a
8
+ * negative (pre-1970) timestamp.
7
9
  *
8
10
  * @example unixSeconds.test("1710511800") // true
9
11
  * @example unixSeconds.test("0000000000") // true (epoch)
12
+ * @example unixSeconds.test("9999999999") // true (2286-11-20T17:46:39Z)
13
+ * @example unixSeconds.test("999999999") // false (unpadded; 2001-09-09T01:46:39Z)
14
+ * @example unixSeconds.test("-1") // false (negative)
10
15
  * @example unixSeconds.test("17105118001") // false (11 digits)
11
16
  */
12
17
  export const unixSeconds = /^\d{10}$/;
13
18
  /**
14
19
  * RegExp matching a Unix timestamp in milliseconds: exactly 13 digits.
15
20
  *
16
- * - Covers the range from `0000000000000` (1970-01-01T00:00:00Z) through
17
- * `3999999999999` (2096-10-11T03:33:19.999Z).
21
+ * - Matches `0000000000000` (1970-01-01T00:00:00Z) through `9999999999999`
22
+ * (2286-11-20T17:46:39.999Z).
23
+ * - Does not match an unpadded value, so every real timestamp before `1000000000000`
24
+ * (2001-09-09T01:46:40Z) needs zero-padding to match, and never matches a negative one.
18
25
  *
19
26
  * @example unixMilliseconds.test("1710511800123") // true
20
27
  * @example unixMilliseconds.test("0000000000000") // true (epoch)
28
+ * @example unixMilliseconds.test("999999999999") // false (unpadded, 12 digits)
21
29
  * @example unixMilliseconds.test("17105118001") // false (11 digits)
22
30
  */
23
31
  export const unixMilliseconds = /^\d{13}$/;
@@ -1,20 +1,30 @@
1
1
  /**
2
2
  * RegExp matching ISO 8601 UTC datetime: `<date>T<time>Z` with optional fractional
3
- * seconds. The timezone designator accepts `Z` or `z` (lowercase is accepted for
4
- * leniency, though GMT's own formatter always emits uppercase).
3
+ * seconds, in ISO 8601 extended format. The designator is an upper-case `Z`:
4
+ * a lower-case `z`, which RFC 3339 §5.6 and Temporal also read, does not match (`rfc3339DateTime`
5
+ * is the RFC 3339 pattern that accepts it).
5
6
  *
6
- * - Date half: `YYYY-MM-DD` or `±YYYYYY-MM-DD` (6-digit year with sign).
7
+ * - Date half: `YYYY-MM-DD` or `±YYYYYY-MM-DD` (6-digit year with sign, never `-000000`,
8
+ * which is a Syntax Error in Temporal's `DateYear`).
7
9
  * - Time half: `HH:mm` with optional `:ss[.fffffffff]` (fractional seconds use `.` or `,`).
8
- * - No numeric offset — only the `Z`/`z` UTC designator is accepted.
9
- * - Shape-only validation; real calendar validation is delegated to
10
- * `Temporal.PlainDateTime.from` in `parseUtcDateTime`.
10
+ * - Second `60` does not match. Temporal's `TimeSecond` admits it, but GMT rejects leap
11
+ * seconds because Temporal would read one as `:59`.
12
+ * - No numeric offset — only the `Z` UTC designator is accepted.
13
+ * - Shape-only validation; real validation is delegated to `Temporal.Instant.from` in
14
+ * `isValidUtc`.
11
15
  *
12
- * Capture groups: 1 year, 2 month, 3 day, 4 hour, 5 minute, 6 second (optional),
13
- * 7 fractional (optional).
16
+ * Capture groups: 1 month, 2 day, 3 hour. The year, minute, second and fraction are not
17
+ * captured.
18
+ *
19
+ * The written form only, with no RFC 9557 annotation. `isValidUtc` reads more: it matches this
20
+ * against the part before the first `[` and lets Temporal read the annotations
21
+ * (`"…[u-ca=iso8601]"`, an elective `"…[foo=bar]"`).
14
22
  *
15
23
  * @example utcDateTime.test("2024-03-15T14:30:00Z") // true
16
- * @example utcDateTime.test("2024-03-15T14:30z") // true (lowercase z)
24
+ * @example utcDateTime.test("2024-03-15T14:30z") // false (lower-case z)
17
25
  * @example utcDateTime.test("2024-03-15T14:30:00.123Z") // true (fractional seconds)
26
+ * @example utcDateTime.exec("2024-03-15T14:30:45.5Z")?.slice(1) // ["03", "15", "14"] (month, day, hour)
27
+ * @example utcDateTime.test("-000000-01-01T00:00Z") // false (negative zero year)
18
28
  * @example utcDateTime.test("2024-03-15T14:30:00+00:00") // false (numeric offset)
19
29
  * @example utcDateTime.test("2024-03-15T14:30:00") // false (no timezone)
20
30
  */
@@ -1,21 +1,31 @@
1
1
  /**
2
2
  * RegExp matching ISO 8601 UTC datetime: `<date>T<time>Z` with optional fractional
3
- * seconds. The timezone designator accepts `Z` or `z` (lowercase is accepted for
4
- * leniency, though GMT's own formatter always emits uppercase).
3
+ * seconds, in ISO 8601 extended format. The designator is an upper-case `Z`:
4
+ * a lower-case `z`, which RFC 3339 §5.6 and Temporal also read, does not match (`rfc3339DateTime`
5
+ * is the RFC 3339 pattern that accepts it).
5
6
  *
6
- * - Date half: `YYYY-MM-DD` or `±YYYYYY-MM-DD` (6-digit year with sign).
7
+ * - Date half: `YYYY-MM-DD` or `±YYYYYY-MM-DD` (6-digit year with sign, never `-000000`,
8
+ * which is a Syntax Error in Temporal's `DateYear`).
7
9
  * - Time half: `HH:mm` with optional `:ss[.fffffffff]` (fractional seconds use `.` or `,`).
8
- * - No numeric offset — only the `Z`/`z` UTC designator is accepted.
9
- * - Shape-only validation; real calendar validation is delegated to
10
- * `Temporal.PlainDateTime.from` in `parseUtcDateTime`.
10
+ * - Second `60` does not match. Temporal's `TimeSecond` admits it, but GMT rejects leap
11
+ * seconds because Temporal would read one as `:59`.
12
+ * - No numeric offset — only the `Z` UTC designator is accepted.
13
+ * - Shape-only validation; real validation is delegated to `Temporal.Instant.from` in
14
+ * `isValidUtc`.
11
15
  *
12
- * Capture groups: 1 year, 2 month, 3 day, 4 hour, 5 minute, 6 second (optional),
13
- * 7 fractional (optional).
16
+ * Capture groups: 1 month, 2 day, 3 hour. The year, minute, second and fraction are not
17
+ * captured.
18
+ *
19
+ * The written form only, with no RFC 9557 annotation. `isValidUtc` reads more: it matches this
20
+ * against the part before the first `[` and lets Temporal read the annotations
21
+ * (`"…[u-ca=iso8601]"`, an elective `"…[foo=bar]"`).
14
22
  *
15
23
  * @example utcDateTime.test("2024-03-15T14:30:00Z") // true
16
- * @example utcDateTime.test("2024-03-15T14:30z") // true (lowercase z)
24
+ * @example utcDateTime.test("2024-03-15T14:30z") // false (lower-case z)
17
25
  * @example utcDateTime.test("2024-03-15T14:30:00.123Z") // true (fractional seconds)
26
+ * @example utcDateTime.exec("2024-03-15T14:30:45.5Z")?.slice(1) // ["03", "15", "14"] (month, day, hour)
27
+ * @example utcDateTime.test("-000000-01-01T00:00Z") // false (negative zero year)
18
28
  * @example utcDateTime.test("2024-03-15T14:30:00+00:00") // false (numeric offset)
19
29
  * @example utcDateTime.test("2024-03-15T14:30:00") // false (no timezone)
20
30
  */
21
- export const utcDateTime = /^(?:\d{4}|[+-]\d{6})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9](?:[.,]\d{1,9})?)?[Zz]$/;
31
+ export const utcDateTime = /^(?:\d{4}|\+\d{6}|-(?!0{6})\d{6})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9](?:[.,]\d{1,9})?)?Z$/;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * RegExp matching an ISO 8601 UTC offset in the extended form GMT's offset-instant pair
3
+ * stores: `±HH:MM`, optionally `±HH:MM:SS`.
4
+ *
5
+ * - Anchored, so it matches a whole offset rather than the offset half of a datetime string.
6
+ * - `Z` is deliberately **not** matched. `Z` is a designator meaning "this string is already
7
+ * UTC"; the pair's `offset` field records where the event happened, and for UTC that is
8
+ * `+00:00`. Accepting both would give one fact two spellings.
9
+ * - Seconds are allowed because IANA offsets were not always whole minutes: `Africa/Monrovia`
10
+ * ran at `-00:44:30` until 1972, and `toOffsetInstant` reports it as written rather than
11
+ * rounding a real offset to a convenient one.
12
+ * - Sub-second offsets are rejected. ISO 8601 permits them and `Temporal.Instant.from` parses
13
+ * them, but no zone, and no standard that stores this pair, has ever used one.
14
+ * - Shape only. Whether the offset is in Temporal's representable range is a separate check —
15
+ * `internal/utcOffsetString.ts` applies both.
16
+ *
17
+ * @example utcOffset.test("-04:00") // true
18
+ * @example utcOffset.test("+05:45") // true
19
+ * @example utcOffset.test("-00:44:30") // true (Africa/Monrovia before 1972)
20
+ * @example utcOffset.test("Z") // false (a designator, not an offset)
21
+ * @example utcOffset.test("-0400") // false (basic format)
22
+ * @example utcOffset.test("+24:00") // false (out of range)
23
+ */
24
+ export declare const utcOffset: RegExp;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * RegExp matching an ISO 8601 UTC offset in the extended form GMT's offset-instant pair
3
+ * stores: `±HH:MM`, optionally `±HH:MM:SS`.
4
+ *
5
+ * - Anchored, so it matches a whole offset rather than the offset half of a datetime string.
6
+ * - `Z` is deliberately **not** matched. `Z` is a designator meaning "this string is already
7
+ * UTC"; the pair's `offset` field records where the event happened, and for UTC that is
8
+ * `+00:00`. Accepting both would give one fact two spellings.
9
+ * - Seconds are allowed because IANA offsets were not always whole minutes: `Africa/Monrovia`
10
+ * ran at `-00:44:30` until 1972, and `toOffsetInstant` reports it as written rather than
11
+ * rounding a real offset to a convenient one.
12
+ * - Sub-second offsets are rejected. ISO 8601 permits them and `Temporal.Instant.from` parses
13
+ * them, but no zone, and no standard that stores this pair, has ever used one.
14
+ * - Shape only. Whether the offset is in Temporal's representable range is a separate check —
15
+ * `internal/utcOffsetString.ts` applies both.
16
+ *
17
+ * @example utcOffset.test("-04:00") // true
18
+ * @example utcOffset.test("+05:45") // true
19
+ * @example utcOffset.test("-00:44:30") // true (Africa/Monrovia before 1972)
20
+ * @example utcOffset.test("Z") // false (a designator, not an offset)
21
+ * @example utcOffset.test("-0400") // false (basic format)
22
+ * @example utcOffset.test("+24:00") // false (out of range)
23
+ */
24
+ export const utcOffset = /^[+-](?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?$/;
@@ -0,0 +1,3 @@
1
+ export * from "./spanMs.js";
2
+ export * from "./spanNs.js";
3
+ export * from "./spanWallClock.js";
@@ -0,0 +1,3 @@
1
+ export * from "./spanMs.js";
2
+ export * from "./spanNs.js";
3
+ export * from "./spanWallClock.js";
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Return the exact elapsed milliseconds between two ISO 8601 instant strings.
3
+ *
4
+ * The universal span primitive for profiling and observability. Fractional, like
5
+ * `performance.now()` — a sub-millisecond span is reported as a fraction, not rounded away.
6
+ *
7
+ * - Signed: negative when `start` is after `end`, so `spanMs(b, a)` is exactly
8
+ * `-spanMs(a, b)`.
9
+ * - Measures **exact elapsed time**, never calendar distance. A wall-clock day containing a
10
+ * DST transition is 23 or 25 hours (or 24.5, in `Australia/Lord_Howe`), and `spanMs`
11
+ * reports the hours that actually elapsed. `spanWallClock` answers the calendar question;
12
+ * conflating the two is the most common span bug there is.
13
+ * - Accepts anything `toNanoseconds` does: the full RFC 9557 instant grammar, no leap
14
+ * seconds; calendar and elective annotations are ignored, as `Temporal.Instant.from` ignores
15
+ * them. An offset designator (`Z`, `±HH:MM`) is
16
+ * required, optionally followed by a bracketed IANA zone — a bracket alone is not enough,
17
+ * which is the one string shape `spanWallClock` accepts and these two do not. The
18
+ * endpoints need not share a zone; an instant is an instant.
19
+ * - **A bracketed zone annotation is syntactic only.** As in `Temporal.Instant.from`, it is
20
+ * ignored: each offset alone fixes its instant, and a zone that does not exist or disagrees
21
+ * with the offset is not checked. `spanWallClock`, by contrast, rejects a mismatched offset.
22
+ * - Returns `null` on invalid input, not `0` — `0` is the span between an instant and itself.
23
+ * `null`, not `NaN`, because that is GMT's sentinel for every number-returning function:
24
+ * it is the one a caller already checks for, and the only one `strictNullChecks` forces
25
+ * them to handle. A `NaN` would type as plain `number` and propagate silently through
26
+ * arithmetic. `spanNs` and `spanWallClock` return `null` for the same reason.
27
+ * - **Safe range.** Returns `null` when the exact span exceeds `Number.MAX_SAFE_INTEGER`
28
+ * milliseconds (±9_007_199_254_740_991 ms, about ±285,000 years), which two instants at
29
+ * opposite ends of `Temporal.Instant`'s range do. A sub-millisecond fraction counts
30
+ * toward that ceiling, so any number returned is a safe integer or below. Use `spanNs`
31
+ * past it — it carries the exact value as a `bigint`.
32
+ * Sub-millisecond fidelity goes first, long before the ceiling: a double carries the
33
+ * nanosecond digits exactly only while the span is under 2^53 ns, roughly 104 days.
34
+ * - Leap seconds are not counted. UTC repeats a second rather than numbering a 61st one, so
35
+ * a span across one is a second short of the physical elapsed time; against a smeared
36
+ * clock (Google, AWS, Meta) the error is up to a second spread over the smear window.
37
+ * Leap-second-exact spans need a TAI scale, which GMT does not yet ship.
38
+ *
39
+ * @param start ISO 8601 instant string the span is measured from
40
+ * @param end ISO 8601 instant string the span is measured to
41
+ * @returns exact elapsed milliseconds, negative when start is after end, or null on invalid input
42
+ *
43
+ * @example spanMs("2024-03-10T12:00:00Z", "2024-03-10T12:00:01Z") // 1000
44
+ * @example spanMs("2024-03-10T12:00:01Z", "2024-03-10T12:00:00Z") // -1000
45
+ * @example spanMs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00Z") // 0
46
+ * @example spanMs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00.123456789Z") // 123.456789
47
+ * @example spanMs("2024-03-09T12:00:00-05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 82800000 — 23 hours, not 24
48
+ * @example spanMs("2024-03-10T12:00:00+05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 32400000 — offsets decide, the zone is ignored
49
+ * @example spanMs("-271821-04-20T00:00:00Z", "+275760-09-13T00:00:00Z") // null — past the safe integer range, use spanNs
50
+ * @example spanMs("2024-03-10T12:00:00Z", "invalid") // null
51
+ */
52
+ export declare function spanMs(start: string, end: string): number | null;