@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
@@ -12,7 +12,7 @@
12
12
  * import { getZonedOffsetAs } from "@northguild/gmt/zoned";
13
13
  * getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "minutes");
14
14
  */
15
- export type ZonedOffsetUnit = "minutes" | "nanoseconds";
15
+ export type ZonedOffsetUnit = "minutes" | "nanoseconds" | "minute" | "nanosecond";
16
16
  /**
17
17
  * Read a zoned value's UTC offset as a number, in the given unit.
18
18
  *
@@ -24,16 +24,18 @@ export type ZonedOffsetUnit = "minutes" | "nanoseconds";
24
24
  * - "minutes" divides by 60e9 — every IANA offset is a whole number of
25
25
  * minutes, so this never truncates a fraction.
26
26
  * - Negative offsets (west of UTC) return a negative number.
27
+ * - `unit` accepts the plural or singular name (`"minutes"` or `"minute"`), as Temporal does.
27
28
  * - Returns null on invalid `value` or `unit`.
28
29
  *
29
30
  * @param value zoned ISO 8601 datetime string
30
- * @param unit "minutes" | "nanoseconds"
31
+ * @param unit "minutes" | "nanoseconds" (or the singular "minute" | "nanosecond")
31
32
  * @returns the offset in the requested unit, or null on invalid input
32
33
  *
33
34
  * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "minutes") // -240
34
35
  * @example getZonedOffsetAs("2024-05-15T12:00:00+05:45[Asia/Kathmandu]", "minutes") // 345
35
36
  * @example getZonedOffsetAs("2024-02-29T12:00:00+00:00[UTC]", "nanoseconds") // 0
36
37
  * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "nanoseconds") // -14400000000000
38
+ * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "minute") // -240 (singular unit name)
37
39
  * @example getZonedOffsetAs("invalid", "minutes") // null
38
40
  * @example getZonedOffsetAs("2024-02-29T12:00:00+00:00[UTC]", "fortnights" as never) // null
39
41
  */
@@ -1,8 +1,11 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  const NANOSECONDS_PER_MINUTE = 60_000_000_000;
4
4
  function isValidZonedOffsetUnit(unit) {
5
- return unit === "minutes" || unit === "nanoseconds";
5
+ return (unit === "minutes" ||
6
+ unit === "nanoseconds" ||
7
+ unit === "minute" ||
8
+ unit === "nanosecond");
6
9
  }
7
10
  /**
8
11
  * Read a zoned value's UTC offset as a number, in the given unit.
@@ -15,16 +18,18 @@ function isValidZonedOffsetUnit(unit) {
15
18
  * - "minutes" divides by 60e9 — every IANA offset is a whole number of
16
19
  * minutes, so this never truncates a fraction.
17
20
  * - Negative offsets (west of UTC) return a negative number.
21
+ * - `unit` accepts the plural or singular name (`"minutes"` or `"minute"`), as Temporal does.
18
22
  * - Returns null on invalid `value` or `unit`.
19
23
  *
20
24
  * @param value zoned ISO 8601 datetime string
21
- * @param unit "minutes" | "nanoseconds"
25
+ * @param unit "minutes" | "nanoseconds" (or the singular "minute" | "nanosecond")
22
26
  * @returns the offset in the requested unit, or null on invalid input
23
27
  *
24
28
  * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "minutes") // -240
25
29
  * @example getZonedOffsetAs("2024-05-15T12:00:00+05:45[Asia/Kathmandu]", "minutes") // 345
26
30
  * @example getZonedOffsetAs("2024-02-29T12:00:00+00:00[UTC]", "nanoseconds") // 0
27
31
  * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "nanoseconds") // -14400000000000
32
+ * @example getZonedOffsetAs("2024-07-15T12:00:00-04:00[America/New_York]", "minute") // -240 (singular unit name)
28
33
  * @example getZonedOffsetAs("invalid", "minutes") // null
29
34
  * @example getZonedOffsetAs("2024-02-29T12:00:00+00:00[UTC]", "fortnights" as never) // null
30
35
  */
@@ -33,8 +38,8 @@ export function getZonedOffsetAs(value, unit) {
33
38
  return null;
34
39
  }
35
40
  try {
36
- const { offsetNanoseconds } = Temporal.ZonedDateTime.from(value);
37
- return unit === "nanoseconds"
41
+ const { offsetNanoseconds } = zonedDateTimeFrom(value);
42
+ return unit === "nanoseconds" || unit === "nanosecond"
38
43
  ? offsetNanoseconds
39
44
  : offsetNanoseconds / NANOSECONDS_PER_MINUTE;
40
45
  }
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Extract the plain date portion from an ISO 8601 zoned datetime string.
5
5
  *
@@ -17,7 +17,7 @@ export function parseDateFromZoned(value) {
17
17
  return "";
18
18
  }
19
19
  try {
20
- const zonedDateTime = Temporal.ZonedDateTime.from(value);
20
+ const zonedDateTime = zonedDateTimeFrom(value);
21
21
  return zonedDateTime?.toPlainDate().toString();
22
22
  }
23
23
  catch {
@@ -1,6 +1,6 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isLeapSecond } from "../../plain/validate/isLeapSecond.js";
3
2
  import { isValidZonedDateTime } from "../validate/isValidZonedDateTime.js";
3
+ import { zonedDateTimeFrom } from "../../internal/index.js";
4
4
  /**
5
5
  * Parse a zoned datetime and return the plain local datetime portion as an ISO plain datetime string.
6
6
  *
@@ -19,7 +19,7 @@ export const parseDateTimeFromZoned = (value) => {
19
19
  return "";
20
20
  }
21
21
  try {
22
- return Temporal.ZonedDateTime.from(value).toPlainDateTime().toString();
22
+ return zonedDateTimeFrom(value).toPlainDateTime().toString();
23
23
  }
24
24
  catch {
25
25
  return "";
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Return the day (1-31) from a zoned datetime string.
5
5
  *
@@ -17,7 +17,7 @@ export function parseDayFromZoned(value) {
17
17
  return "";
18
18
  }
19
19
  try {
20
- const zonedDateTime = Temporal.ZonedDateTime.from(value);
20
+ const zonedDateTime = zonedDateTimeFrom(value);
21
21
  return zonedDateTime.day.toString().padStart(2, "0");
22
22
  }
23
23
  catch {
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Return the day of the week (1-7, Monday-Sunday) from a zoned datetime string.
5
5
  *
@@ -18,7 +18,7 @@ export function parseDayOfWeekFromZoned(value) {
18
18
  return null;
19
19
  }
20
20
  try {
21
- const zonedDateTime = Temporal.ZonedDateTime.from(value);
21
+ const zonedDateTime = zonedDateTimeFrom(value);
22
22
  return zonedDateTime.dayOfWeek;
23
23
  }
24
24
  catch {
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Return the hour (0-23) from a zoned datetime string.
5
5
  *
@@ -17,7 +17,7 @@ export function parseHourFromZoned(value) {
17
17
  return "";
18
18
  }
19
19
  try {
20
- const zonedDateTime = Temporal.ZonedDateTime.from(value);
20
+ const zonedDateTime = zonedDateTimeFrom(value);
21
21
  return zonedDateTime.hour.toString().padStart(2, "0");
22
22
  }
23
23
  catch {
@@ -7,7 +7,8 @@
7
7
  * @param value ISO zoned datetime string (e.g., "2024-03-15T14:30:45.123456+00:00[UTC]")
8
8
  * @returns Microsecond (000-999) or "" on invalid input
9
9
  *
10
- * @example parseMicrosecondFromZoned("2024-03-15T14:30:45.123+00:00[UTC]") // "123"
10
+ * @example parseMicrosecondFromZoned("2024-03-15T14:30:45.123+00:00[UTC]") // "000"
11
+ * @example parseMicrosecondFromZoned("2024-03-15T14:30:45.123456+00:00[UTC]") // "456"
11
12
  * @example parseMicrosecondFromZoned("invalid") // ""
12
13
  */
13
14
  export declare function parseMicrosecondFromZoned(value: string): string;
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Return the microsecond (0-999) from a zoned datetime string.
5
5
  *
@@ -9,7 +9,8 @@ import { isValidZonedDateTime } from "../validate/index.js";
9
9
  * @param value ISO zoned datetime string (e.g., "2024-03-15T14:30:45.123456+00:00[UTC]")
10
10
  * @returns Microsecond (000-999) or "" on invalid input
11
11
  *
12
- * @example parseMicrosecondFromZoned("2024-03-15T14:30:45.123+00:00[UTC]") // "123"
12
+ * @example parseMicrosecondFromZoned("2024-03-15T14:30:45.123+00:00[UTC]") // "000"
13
+ * @example parseMicrosecondFromZoned("2024-03-15T14:30:45.123456+00:00[UTC]") // "456"
13
14
  * @example parseMicrosecondFromZoned("invalid") // ""
14
15
  */
15
16
  export function parseMicrosecondFromZoned(value) {
@@ -17,7 +18,7 @@ export function parseMicrosecondFromZoned(value) {
17
18
  return "";
18
19
  }
19
20
  try {
20
- const zonedDateTime = Temporal.ZonedDateTime.from(value);
21
+ const zonedDateTime = zonedDateTimeFrom(value);
21
22
  return (zonedDateTime.microsecond ?? 0).toString().padStart(3, "0");
22
23
  }
23
24
  catch {
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Return the millisecond (0-999) from a zoned datetime string.
5
5
  *
@@ -17,7 +17,7 @@ export function parseMillisecondFromZoned(value) {
17
17
  return "";
18
18
  }
19
19
  try {
20
- const zonedDateTime = Temporal.ZonedDateTime.from(value);
20
+ const zonedDateTime = zonedDateTimeFrom(value);
21
21
  return zonedDateTime.millisecond.toString().padStart(3, "0");
22
22
  }
23
23
  catch {
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Return the minute (0-59) from a zoned datetime string.
5
5
  *
@@ -17,7 +17,7 @@ export function parseMinuteFromZoned(value) {
17
17
  return "";
18
18
  }
19
19
  try {
20
- const zonedDateTime = Temporal.ZonedDateTime.from(value);
20
+ const zonedDateTime = zonedDateTimeFrom(value);
21
21
  return zonedDateTime.minute.toString().padStart(2, "0");
22
22
  }
23
23
  catch {
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Return the month (1-12) from a zoned datetime string.
5
5
  *
@@ -17,7 +17,7 @@ export function parseMonthFromZoned(value) {
17
17
  return "";
18
18
  }
19
19
  try {
20
- const zonedDateTime = Temporal.ZonedDateTime.from(value);
20
+ const zonedDateTime = zonedDateTimeFrom(value);
21
21
  return zonedDateTime.month.toString().padStart(2, "0");
22
22
  }
23
23
  catch {
@@ -7,7 +7,8 @@
7
7
  * @param value ISO zoned datetime string (e.g., "2024-03-15T14:30:45.123456789+00:00[UTC]")
8
8
  * @returns Nanosecond (000-999) or "" on invalid input
9
9
  *
10
- * @example parseNanosecondFromZoned("2024-03-15T14:30:45.123+00:00[UTC]") // "123"
10
+ * @example parseNanosecondFromZoned("2024-03-15T14:30:45.123+00:00[UTC]") // "000"
11
+ * @example parseNanosecondFromZoned("2024-03-15T14:30:45.123456789+00:00[UTC]") // "789"
11
12
  * @example parseNanosecondFromZoned("invalid") // ""
12
13
  */
13
14
  export declare function parseNanosecondFromZoned(value: string): string;
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Return the nanosecond (0-999) from a zoned datetime string.
5
5
  *
@@ -9,7 +9,8 @@ import { isValidZonedDateTime } from "../validate/index.js";
9
9
  * @param value ISO zoned datetime string (e.g., "2024-03-15T14:30:45.123456789+00:00[UTC]")
10
10
  * @returns Nanosecond (000-999) or "" on invalid input
11
11
  *
12
- * @example parseNanosecondFromZoned("2024-03-15T14:30:45.123+00:00[UTC]") // "123"
12
+ * @example parseNanosecondFromZoned("2024-03-15T14:30:45.123+00:00[UTC]") // "000"
13
+ * @example parseNanosecondFromZoned("2024-03-15T14:30:45.123456789+00:00[UTC]") // "789"
13
14
  * @example parseNanosecondFromZoned("invalid") // ""
14
15
  */
15
16
  export function parseNanosecondFromZoned(value) {
@@ -17,7 +18,7 @@ export function parseNanosecondFromZoned(value) {
17
18
  return "";
18
19
  }
19
20
  try {
20
- const zonedDateTime = Temporal.ZonedDateTime.from(value);
21
+ const zonedDateTime = zonedDateTimeFrom(value);
21
22
  return (zonedDateTime.nanosecond ?? 0).toString().padStart(3, "0");
22
23
  }
23
24
  catch {
@@ -2,25 +2,45 @@
2
2
  * Parse an RFC 5322 (RFC 2822) date-time string — the fixed grammar email
3
3
  * `Date:` headers use — into a zoned ISO 8601 datetime string.
4
4
  *
5
- * - **Decoding, not display.** Accepts English weekday/month abbreviations
6
- * only, per the fixed grammar (see `formatRfc2822`'s JSDoc and roadmap
7
- * Decision 1).
8
- * - Accepts a leading day-of-week (not cross-validated against the computed
9
- * date, the same deliberate scope limit `parseDateTimeWithPattern`/J11
10
- * uses for its `EEEE`/`EEE` tokens) and an optional `:ss` seconds field.
11
- * - Accepts a 1- or 2-digit day (the formal grammar's `1*2DIGIT`), unlike
12
- * `parseHttp`/`parseSql`, which both require exactly 2 digits.
13
- * - Accepts a numeric `+HHMM`/`-HHMM` offset or one of RFC 5322's obsolete
14
- * named zones (`GMT`, `UT`, and the eight North American zones); any other
15
- * obs-zone letter is unrecognized and rejected.
5
+ * - **Decoding, not display.** Weekday and month names are English, per the
6
+ * fixed grammar (see `formatRfc2822`'s JSDoc and roadmap Decision 1); like
7
+ * every ABNF literal they match in any case (RFC 5234 §2.3).
8
+ * - **Reads what a conformant receiver must.** RFC 5322 §3.3 syntax: folding
9
+ * white space (spaces, tabs, folded lines), nested comments such as a
10
+ * trailing `(EDT)`, a 1- or 2-digit day, a 4-or-more-digit year and optional
11
+ * seconds. §4 obsolete syntax, which "MUST be accepted and parsed": comments
12
+ * and white space between any tokens, and 2- or 3-digit years (00–49 → 20xx,
13
+ * 50–99 → 19xx, 3 digits → +1900).
14
+ * - **Zones.** A numeric `+hhmm`/`-hhmm` (minutes 00–59), or an obsolete
15
+ * alphabetic zone: `UT`/`GMT` are `+0000`, and `EST`/`EDT`/`CST`/`CDT`/
16
+ * `MST`/`MDT`/`PST`/`PDT` have the offsets §4.3 gives them. Military
17
+ * one-letter zones and any other alphabetic zone are read as `-0000`, as
18
+ * §4.3 says they SHOULD be; `J` is not a zone and returns `""`.
19
+ * - **`-0000` and `+0000` both become `+00:00`.** RFC 5322 §3.3 gives `-0000`
20
+ * the meaning "no information about the local time zone"; a Temporal offset
21
+ * cannot carry that distinction, so it is lost.
22
+ * - **The day-of-week must match the date.** RFC 5322 §3.3: "the day-of-week
23
+ * (if included) MUST be the day implied by the date". A mismatch returns `""`.
16
24
  * - The resulting offset becomes the zoned string's time zone identifier
17
- * (e.g. `-05:00`), since RFC 2822 carries no IANA zone name to recover.
25
+ * (e.g. `-05:00`), since RFC 5322 carries no IANA zone name to recover.
26
+ * An offset of 24 hours or more cannot be represented and returns `""`.
27
+ * - An impossible calendar date (`31 Feb`, `29 Feb 2023`) returns `""`: a parser never
28
+ * invents a date, so fields are validated with `overflow: "reject"`, not clamped.
29
+ * - For the strict current-syntax shape alone, test the exported `rfc2822DateTime` pattern.
30
+ * - **Compatibility:** before 1.16.0 a day-of-week that did not match the date was ignored.
31
+ * Remove the day-of-week to parse such a string: the date alone decides the result.
18
32
  *
19
33
  * @param value RFC 5322 date-time string (e.g. "Fri, 15 Mar 2024 14:30:00 -0400")
20
34
  * @returns zoned ISO 8601 datetime string, or "" on invalid input
21
35
  *
22
36
  * @example parseRfc2822("Fri, 15 Mar 2024 14:30:00 -0400") // "2024-03-15T14:30:00-04:00[-04:00]"
23
37
  * @example parseRfc2822("5 Jan 2024 09:00:00 GMT") // "2024-01-05T09:00:00+00:00[+00:00]"
38
+ * @example parseRfc2822("fri,15 Mar 24 14:30 -0400 (EDT)") // "2024-03-15T14:30:00-04:00[-04:00]" (obsolete 2-digit year, comment)
39
+ * @example parseRfc2822("Fri, 15 Mar 2024 14:30:00 CEST") // "2024-03-15T14:30:00+00:00[+00:00]" (unknown zone → -0000)
40
+ * @example parseRfc2822("Fri, 15 Mar 2024 14:30:00 -0000") // "2024-03-15T14:30:00+00:00[+00:00]"
41
+ * @example parseRfc2822("Sat, 15 Mar 2024 14:30:00 -0400") // "" (15 Mar 2024 was a Friday)
42
+ * @example parseRfc2822("15 Mar 2024 14:30:00 -0400") // "2024-03-15T14:30:00-04:00[-04:00]" — the weekday removed
43
+ * @example parseRfc2822("Sat, 31 Feb 2024 14:30:00 -0400") // "" (impossible date)
24
44
  * @example parseRfc2822("not a date") // ""
25
45
  */
26
46
  export declare function parseRfc2822(value: string): string;
@@ -1,69 +1,71 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
- import { ENGLISH_MONTH_NAMES } from "../../internal/index.js";
3
- import { rfc2822DateTime } from "../../regex/index.js";
4
- // RFC 5322 §4.3 "obsolete date and time" — named zones an email parser must
5
- // still accept even though `formatRfc2822` never emits them. Any obs-zone
6
- // single-letter military zone outside this table is unrecognized ("" per
7
- // the spec's own admission that those are ambiguous) and rejected.
8
- const NAMED_ZONE_OFFSETS = {
9
- UT: "+0000",
10
- GMT: "+0000",
11
- EST: "-0500",
12
- EDT: "-0400",
13
- CST: "-0600",
14
- CDT: "-0500",
15
- MST: "-0700",
16
- MDT: "-0600",
17
- PST: "-0800",
18
- PDT: "-0700",
19
- };
2
+ import { readRfc5322DateTime } from "../../internal/rfc5322DateTime.js";
20
3
  /**
21
4
  * Parse an RFC 5322 (RFC 2822) date-time string — the fixed grammar email
22
5
  * `Date:` headers use — into a zoned ISO 8601 datetime string.
23
6
  *
24
- * - **Decoding, not display.** Accepts English weekday/month abbreviations
25
- * only, per the fixed grammar (see `formatRfc2822`'s JSDoc and roadmap
26
- * Decision 1).
27
- * - Accepts a leading day-of-week (not cross-validated against the computed
28
- * date, the same deliberate scope limit `parseDateTimeWithPattern`/J11
29
- * uses for its `EEEE`/`EEE` tokens) and an optional `:ss` seconds field.
30
- * - Accepts a 1- or 2-digit day (the formal grammar's `1*2DIGIT`), unlike
31
- * `parseHttp`/`parseSql`, which both require exactly 2 digits.
32
- * - Accepts a numeric `+HHMM`/`-HHMM` offset or one of RFC 5322's obsolete
33
- * named zones (`GMT`, `UT`, and the eight North American zones); any other
34
- * obs-zone letter is unrecognized and rejected.
7
+ * - **Decoding, not display.** Weekday and month names are English, per the
8
+ * fixed grammar (see `formatRfc2822`'s JSDoc and roadmap Decision 1); like
9
+ * every ABNF literal they match in any case (RFC 5234 §2.3).
10
+ * - **Reads what a conformant receiver must.** RFC 5322 §3.3 syntax: folding
11
+ * white space (spaces, tabs, folded lines), nested comments such as a
12
+ * trailing `(EDT)`, a 1- or 2-digit day, a 4-or-more-digit year and optional
13
+ * seconds. §4 obsolete syntax, which "MUST be accepted and parsed": comments
14
+ * and white space between any tokens, and 2- or 3-digit years (00–49 → 20xx,
15
+ * 50–99 → 19xx, 3 digits → +1900).
16
+ * - **Zones.** A numeric `+hhmm`/`-hhmm` (minutes 00–59), or an obsolete
17
+ * alphabetic zone: `UT`/`GMT` are `+0000`, and `EST`/`EDT`/`CST`/`CDT`/
18
+ * `MST`/`MDT`/`PST`/`PDT` have the offsets §4.3 gives them. Military
19
+ * one-letter zones and any other alphabetic zone are read as `-0000`, as
20
+ * §4.3 says they SHOULD be; `J` is not a zone and returns `""`.
21
+ * - **`-0000` and `+0000` both become `+00:00`.** RFC 5322 §3.3 gives `-0000`
22
+ * the meaning "no information about the local time zone"; a Temporal offset
23
+ * cannot carry that distinction, so it is lost.
24
+ * - **The day-of-week must match the date.** RFC 5322 §3.3: "the day-of-week
25
+ * (if included) MUST be the day implied by the date". A mismatch returns `""`.
35
26
  * - The resulting offset becomes the zoned string's time zone identifier
36
- * (e.g. `-05:00`), since RFC 2822 carries no IANA zone name to recover.
27
+ * (e.g. `-05:00`), since RFC 5322 carries no IANA zone name to recover.
28
+ * An offset of 24 hours or more cannot be represented and returns `""`.
29
+ * - An impossible calendar date (`31 Feb`, `29 Feb 2023`) returns `""`: a parser never
30
+ * invents a date, so fields are validated with `overflow: "reject"`, not clamped.
31
+ * - For the strict current-syntax shape alone, test the exported `rfc2822DateTime` pattern.
32
+ * - **Compatibility:** before 1.16.0 a day-of-week that did not match the date was ignored.
33
+ * Remove the day-of-week to parse such a string: the date alone decides the result.
37
34
  *
38
35
  * @param value RFC 5322 date-time string (e.g. "Fri, 15 Mar 2024 14:30:00 -0400")
39
36
  * @returns zoned ISO 8601 datetime string, or "" on invalid input
40
37
  *
41
38
  * @example parseRfc2822("Fri, 15 Mar 2024 14:30:00 -0400") // "2024-03-15T14:30:00-04:00[-04:00]"
42
39
  * @example parseRfc2822("5 Jan 2024 09:00:00 GMT") // "2024-01-05T09:00:00+00:00[+00:00]"
40
+ * @example parseRfc2822("fri,15 Mar 24 14:30 -0400 (EDT)") // "2024-03-15T14:30:00-04:00[-04:00]" (obsolete 2-digit year, comment)
41
+ * @example parseRfc2822("Fri, 15 Mar 2024 14:30:00 CEST") // "2024-03-15T14:30:00+00:00[+00:00]" (unknown zone → -0000)
42
+ * @example parseRfc2822("Fri, 15 Mar 2024 14:30:00 -0000") // "2024-03-15T14:30:00+00:00[+00:00]"
43
+ * @example parseRfc2822("Sat, 15 Mar 2024 14:30:00 -0400") // "" (15 Mar 2024 was a Friday)
44
+ * @example parseRfc2822("15 Mar 2024 14:30:00 -0400") // "2024-03-15T14:30:00-04:00[-04:00]" — the weekday removed
45
+ * @example parseRfc2822("Sat, 31 Feb 2024 14:30:00 -0400") // "" (impossible date)
43
46
  * @example parseRfc2822("not a date") // ""
44
47
  */
45
48
  export function parseRfc2822(value) {
46
49
  if (typeof value !== "string")
47
50
  return "";
48
- const match = rfc2822DateTime.exec(value);
49
- if (match === null)
51
+ const fields = readRfc5322DateTime(value);
52
+ if (fields === null)
50
53
  return "";
51
- const [, , dayStr, monthName, yearStr, hourStr, minuteStr, secondStr, zone] = match;
52
- const monthIndex = ENGLISH_MONTH_NAMES.indexOf(monthName);
53
- if (monthIndex === -1)
54
- return "";
55
- const numericOffset = NAMED_ZONE_OFFSETS[zone] ?? zone;
56
- const offset = `${numericOffset.slice(0, 3)}:${numericOffset.slice(3)}`;
57
54
  try {
58
55
  const plainDateTime = Temporal.PlainDateTime.from({
59
- year: Number(yearStr),
60
- month: monthIndex + 1,
61
- day: Number(dayStr),
62
- hour: Number(hourStr),
63
- minute: Number(minuteStr),
64
- second: secondStr === undefined ? 0 : Number(secondStr),
56
+ year: fields.year,
57
+ month: fields.month,
58
+ day: fields.day,
59
+ hour: fields.hour,
60
+ minute: fields.minute,
61
+ second: fields.second,
65
62
  }, { overflow: "reject" });
66
- return plainDateTime.toZonedDateTime(offset).toString();
63
+ // "the day-of-week (if included) MUST be the day implied by the date"
64
+ if (fields.dayOfWeek !== undefined &&
65
+ fields.dayOfWeek !== plainDateTime.dayOfWeek) {
66
+ return "";
67
+ }
68
+ return plainDateTime.toZonedDateTime(fields.offset).toString();
67
69
  }
68
70
  catch {
69
71
  return "";
@@ -8,6 +8,11 @@
8
8
  * - RFC 3339 carries no IANA zone name, so the parsed offset becomes the
9
9
  * result's time zone identifier too (e.g. `Z` → `+00:00[+00:00]`) — the
10
10
  * same fixed-offset-as-zone convention `parseRfc2822` uses.
11
+ * - **`Z` and `-00:00` become `+00:00`.** RFC 9557 §2.2 (updating RFC 3339
12
+ * §4.3) gives `Z` and the older `-00:00` the meaning "the time in UTC is
13
+ * known, but the offset to local time is unknown", unlike `+00:00`. A
14
+ * Temporal offset cannot carry that distinction, so it is lost; the instant
15
+ * is exact.
11
16
  * - Rejects GMT's own bracketed zoned strings (`...+00:00[UTC]`) — that
12
17
  * annotation is not valid RFC 3339 input; use `Temporal.ZonedDateTime.from`
13
18
  * / `isValidZonedDateTime` directly for GMT's native format instead.
@@ -17,6 +22,7 @@
17
22
  *
18
23
  * @example parseRfc3339("2024-03-15T14:30:00-04:00") // "2024-03-15T14:30:00-04:00[-04:00]"
19
24
  * @example parseRfc3339("2024-03-15T14:30:00Z") // "2024-03-15T14:30:00+00:00[+00:00]"
25
+ * @example parseRfc3339("2024-03-15T14:30:00-00:00") // "2024-03-15T14:30:00+00:00[+00:00]"
20
26
  * @example parseRfc3339("2024-03-15T14:30:00+00:00[UTC]") // "" (bracket annotation not valid RFC 3339)
21
27
  * @example parseRfc3339("not a date") // ""
22
28
  */
@@ -10,6 +10,11 @@ import { rfc3339DateTime } from "../../regex/index.js";
10
10
  * - RFC 3339 carries no IANA zone name, so the parsed offset becomes the
11
11
  * result's time zone identifier too (e.g. `Z` → `+00:00[+00:00]`) — the
12
12
  * same fixed-offset-as-zone convention `parseRfc2822` uses.
13
+ * - **`Z` and `-00:00` become `+00:00`.** RFC 9557 §2.2 (updating RFC 3339
14
+ * §4.3) gives `Z` and the older `-00:00` the meaning "the time in UTC is
15
+ * known, but the offset to local time is unknown", unlike `+00:00`. A
16
+ * Temporal offset cannot carry that distinction, so it is lost; the instant
17
+ * is exact.
13
18
  * - Rejects GMT's own bracketed zoned strings (`...+00:00[UTC]`) — that
14
19
  * annotation is not valid RFC 3339 input; use `Temporal.ZonedDateTime.from`
15
20
  * / `isValidZonedDateTime` directly for GMT's native format instead.
@@ -19,6 +24,7 @@ import { rfc3339DateTime } from "../../regex/index.js";
19
24
  *
20
25
  * @example parseRfc3339("2024-03-15T14:30:00-04:00") // "2024-03-15T14:30:00-04:00[-04:00]"
21
26
  * @example parseRfc3339("2024-03-15T14:30:00Z") // "2024-03-15T14:30:00+00:00[+00:00]"
27
+ * @example parseRfc3339("2024-03-15T14:30:00-00:00") // "2024-03-15T14:30:00+00:00[+00:00]"
22
28
  * @example parseRfc3339("2024-03-15T14:30:00+00:00[UTC]") // "" (bracket annotation not valid RFC 3339)
23
29
  * @example parseRfc3339("not a date") // ""
24
30
  */
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Return the second (0-59) from a zoned datetime string.
5
5
  *
@@ -17,7 +17,7 @@ export function parseSecondFromZoned(value) {
17
17
  return "";
18
18
  }
19
19
  try {
20
- const zonedDateTime = Temporal.ZonedDateTime.from(value);
20
+ const zonedDateTime = zonedDateTimeFrom(value);
21
21
  return zonedDateTime.second.toString().padStart(2, "0");
22
22
  }
23
23
  catch {
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Extract the plain time portion from an ISO 8601 zoned datetime string.
5
5
  *
@@ -17,7 +17,7 @@ export function parseTimeFromZoned(value) {
17
17
  return "";
18
18
  }
19
19
  try {
20
- const zonedDateTime = Temporal.ZonedDateTime.from(value);
20
+ const zonedDateTime = zonedDateTimeFrom(value);
21
21
  return zonedDateTime?.toPlainTime().toString();
22
22
  }
23
23
  catch {
@@ -1,5 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
1
  import { isValidZonedDateTime } from "../validate/index.js";
2
+ import { zonedDateTimeFrom } from "../../internal/index.js";
3
3
  /**
4
4
  * Extract the IANA timeZone identifier from an ISO 8601 zoned datetime string.
5
5
  *
@@ -17,7 +17,7 @@ export function parseTimeZoneFromZoned(value) {
17
17
  return "";
18
18
  }
19
19
  try {
20
- return Temporal.ZonedDateTime.from(value).timeZoneId ?? "";
20
+ return zonedDateTimeFrom(value).timeZoneId ?? "";
21
21
  }
22
22
  catch {
23
23
  return "";
@@ -1,6 +1,8 @@
1
+ import type { Temporal } from "@js-temporal/polyfill";
1
2
  /**
2
3
  * Units supported by `parseUnitFromZoned` when extracting a value from a zoned
3
- * ISO string. Includes `timeZone` for reading the zone identifier.
4
+ * ISO string. Includes `timeZone` for reading the zone identifier. Each Temporal unit is also
5
+ * accepted in its plural form (`"months"`), as Temporal accepts.
4
6
  *
5
7
  * @remarks Members:
6
8
  *
@@ -15,27 +17,34 @@
15
17
  * | `minute` | Zero-padded 2. |
16
18
  * | `second` | Zero-padded 2. |
17
19
  * | `millisecond` | Zero-padded 3. |
18
- * | `nanosecond` | Zero-padded 3. |
20
+ * | `microsecond` | Zero-padded 3 (Temporal's 0–999 field). |
21
+ * | `nanosecond` | Zero-padded 3 (Temporal's 0–999 field). |
19
22
  * | `timeZone` | IANA timeZone identifier string. |
20
23
  *
21
24
  * @example
22
25
  * import { ZonedParseUnit } from "@northguild/gmt/zoned";
23
26
  * const u: ZonedParseUnit = "month";
24
27
  */
25
- export type ZonedParseUnit = "year" | "month" | "week" | "day" | "dayOfWeek" | "hour" | "minute" | "second" | "millisecond" | "nanosecond" | "timeZone";
28
+ export type ZonedParseUnit = Temporal.SmallestUnit<"year" | "month" | "week" | "day" | "hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond"> | "dayOfWeek" | "timeZone";
26
29
  /**
27
30
  * Return the requested unit value from an ISO 8601 zoned datetime string.
28
31
  *
29
- * - Valid units: "year", "month", "week", "day", "dayOfWeek", "hour", "minute", "second", "millisecond", "nanosecond", "timeZone".
32
+ * - Valid units: "year", "month", "week", "day", "dayOfWeek", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "timeZone".
30
33
  * - Uses Temporal.ZonedDateTime.from to parse.
34
+ * - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
35
+ * does; `"dayOfWeek"` has no plural.
36
+ * - `weekStartsOn: "sunday"` numbers weeks by UTS #35 (week 1 holds 1 January, so late-December
37
+ * days can be week 1); any value other than `"monday"` or `"sunday"` returns "".
31
38
  * - Returns "" for invalid input.
32
39
  *
33
40
  * @param value zoned ISO 8601 datetime string
34
41
  * @param unit unit to extract
35
- * @param options optional settings (e.g. weekStartsOn for week calculations)
42
+ * @param optionsArg optional settings (e.g. weekStartsOn for week calculations); a non-object value (such as `null`) is invalid
36
43
  * @returns string representation of the requested unit or "" when invalid
37
44
  *
38
45
  * @example parseUnitFromZoned("2024-02-29T12:34:56.789+00:00[UTC]", "year") // "2024"
46
+ * @example parseUnitFromZoned("2024-02-29T12:34:56.789+00:00[UTC]", "milliseconds") // "789"
47
+ * @example parseUnitFromZoned("2024-12-31T12:00:00+00:00[UTC]", "week", { weekStartsOn: "sunday" }) // "1"
39
48
  * @example parseUnitFromZoned("invalid", "year") // ""
40
49
  */
41
50
  export declare function parseUnitFromZoned(value: string, unit: ZonedParseUnit, optionsArg?: {