@northguild/gmt 1.17.0 → 1.18.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.
- package/README.md +462 -22
- package/dist/calendar/calculate/bucketRange.d.ts +3 -3
- package/dist/calendar/calculate/bucketRange.js +6 -6
- package/dist/calendar/calculate/floorToZone.d.ts +5 -3
- package/dist/calendar/calculate/floorToZone.js +6 -5
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +21 -8
- package/dist/calendar/calculate/getFiscalPeriod.js +9 -8
- package/dist/calendar/calculate/getIsoWeekDate.d.ts +10 -5
- package/dist/calendar/calculate/getIsoWeekDate.js +1 -5
- package/dist/calendar/calculate/getOrdinalDate.d.ts +10 -3
- package/dist/calendar/calculate/getOrdinalDate.js +2 -3
- package/dist/calendar/calculate/getQuarter.d.ts +21 -9
- package/dist/calendar/calculate/getQuarter.js +8 -12
- package/dist/calendar/hours/addOperatingTime.d.ts +53 -0
- package/dist/calendar/hours/addOperatingTime.js +59 -0
- package/dist/calendar/hours/index.d.ts +7 -0
- package/dist/calendar/hours/index.js +7 -0
- package/dist/calendar/hours/isOpenAt.d.ts +39 -0
- package/dist/calendar/hours/isOpenAt.js +44 -0
- package/dist/calendar/hours/nextCloseAt.d.ts +49 -0
- package/dist/calendar/hours/nextCloseAt.js +51 -0
- package/dist/calendar/hours/nextOpenAt.d.ts +45 -0
- package/dist/calendar/hours/nextOpenAt.js +47 -0
- package/dist/calendar/hours/operatingIntervals.d.ts +43 -0
- package/dist/calendar/hours/operatingIntervals.js +52 -0
- package/dist/calendar/hours/operatingTimeBetween.d.ts +40 -0
- package/dist/calendar/hours/operatingTimeBetween.js +49 -0
- package/dist/calendar/hours/recurringWindows.d.ts +61 -0
- package/dist/calendar/hours/recurringWindows.js +80 -0
- package/dist/calendar/index.d.ts +1 -0
- package/dist/calendar/index.js +1 -0
- package/dist/duration/calculate/durationAs.d.ts +13 -8
- package/dist/duration/calculate/durationAs.js +4 -8
- package/dist/duration/compare/compareDurations.d.ts +12 -6
- package/dist/duration/compare/compareDurations.js +3 -6
- package/dist/duration/format/formatDuration.d.ts +16 -4
- package/dist/duration/format/formatDuration.js +4 -5
- package/dist/duration/normalize/normalizeDuration.d.ts +39 -14
- package/dist/duration/normalize/normalizeDuration.js +6 -15
- package/dist/duration/parse/parseDuration.d.ts +21 -3
- package/dist/duration/parse/parseDuration.js +1 -3
- package/dist/instant/convert/classifyLocal.d.ts +1 -1
- package/dist/instant/convert/classifyLocal.js +1 -1
- package/dist/instant/convert/fromOffsetInstant.d.ts +3 -1
- package/dist/instant/convert/fromOffsetInstant.js +3 -1
- package/dist/instant/convert/resolveLocal.d.ts +12 -7
- package/dist/instant/convert/resolveLocal.js +6 -10
- package/dist/instant/convert/toOffsetInstant.d.ts +22 -9
- package/dist/instant/convert/toOffsetInstant.js +10 -3
- package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
- package/dist/intermodal/calculate/billingTimeline.js +2 -2
- package/dist/intermodal/calculate/chargeableDays.d.ts +13 -11
- package/dist/intermodal/calculate/chargeableDays.js +4 -9
- package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
- package/dist/intermodal/calculate/demurrageClock.js +7 -7
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +5 -4
- package/dist/intermodal/calculate/freeTimeExpiry.js +6 -6
- package/dist/internal/businessCalendar.d.ts +5 -0
- package/dist/internal/businessCalendar.js +5 -1
- package/dist/internal/cycleFieldValue.d.ts +6 -4
- package/dist/internal/cycleFieldValue.js +6 -4
- package/dist/internal/daylightTime.d.ts +33 -0
- package/dist/internal/daylightTime.js +164 -0
- package/dist/internal/durationUntilString.js +4 -3
- package/dist/internal/englishCalendarNames.js +1 -2
- package/dist/internal/epochNanoseconds.d.ts +2 -0
- package/dist/internal/epochNanoseconds.js +2 -0
- package/dist/internal/exactDuration.d.ts +37 -0
- package/dist/internal/exactDuration.js +64 -0
- package/dist/internal/exactMoment.d.ts +72 -0
- package/dist/internal/exactMoment.js +114 -0
- package/dist/internal/fiscalCalendar.d.ts +4 -3
- package/dist/internal/fiscalCalendar.js +4 -3
- package/dist/internal/formatCalendarDays.d.ts +2 -2
- package/dist/internal/formatRelativeDuration.d.ts +21 -1
- package/dist/internal/formatRelativeDuration.js +47 -7
- package/dist/internal/index.d.ts +9 -4
- package/dist/internal/index.js +9 -4
- package/dist/internal/instantFormatOptions.js +2 -1
- package/dist/internal/instantNanoseconds.d.ts +75 -9
- package/dist/internal/instantNanoseconds.js +192 -11
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/monthGridWeekRow.d.ts +2 -1
- package/dist/internal/monthGridWeekRow.js +2 -1
- package/dist/internal/normalizeTimeZone.d.ts +2 -2
- package/dist/internal/normalizeTimeZone.js +2 -2
- package/dist/internal/operatingSchedule.d.ts +129 -0
- package/dist/internal/operatingSchedule.js +668 -0
- package/dist/internal/optionOrDefault.d.ts +18 -0
- package/dist/internal/optionOrDefault.js +20 -0
- package/dist/internal/patternToken.d.ts +2 -2
- package/dist/internal/patternToken.js +28 -13
- package/dist/internal/plainDateUntil.js +10 -6
- package/dist/internal/punctuality.d.ts +38 -0
- package/dist/internal/punctuality.js +59 -0
- package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
- package/dist/internal/readDateTimeFormatOptions.js +93 -0
- package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
- package/dist/internal/resolveDurationRelativeTo.js +11 -1
- package/dist/internal/resolveRelativeRounding.d.ts +17 -6
- package/dist/internal/resolveRelativeRounding.js +27 -7
- package/dist/internal/resolveRelativeUnit.d.ts +30 -0
- package/dist/internal/resolveRelativeUnit.js +40 -0
- package/dist/internal/splitStep.d.ts +24 -1
- package/dist/internal/splitStep.js +34 -2
- package/dist/internal/startOrEndOfZoned.js +2 -3
- package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
- package/dist/internal/temporalCompat/capabilities.js +35 -3
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/repros.d.ts +1 -1
- package/dist/internal/temporalCompat/repros.js +157 -0
- package/dist/internal/timestampEvents.d.ts +32 -0
- package/dist/internal/timestampEvents.js +76 -0
- package/dist/internal/utcZonedDateTime.d.ts +5 -2
- package/dist/internal/utcZonedDateTime.js +8 -5
- package/dist/internal/zonedBucket.js +8 -6
- package/dist/internal/zonedLocalDates.js +1 -1
- package/dist/internal/zonedTransitionSearch.d.ts +27 -0
- package/dist/internal/zonedTransitionSearch.js +218 -0
- package/dist/internal/zonedWallClock.d.ts +21 -7
- package/dist/internal/zonedWallClock.js +87 -18
- package/dist/internal/zonedWallClockOperations.d.ts +26 -13
- package/dist/internal/zonedWallClockOperations.js +87 -34
- package/dist/interval/validate/isValidInterval.d.ts +6 -3
- package/dist/interval/validate/isValidInterval.js +6 -3
- package/dist/plain/calculate/addDate.d.ts +11 -8
- package/dist/plain/calculate/addDate.js +5 -8
- package/dist/plain/calculate/addDateTime.d.ts +7 -4
- package/dist/plain/calculate/addDateTime.js +1 -4
- package/dist/plain/calculate/cycleDate.d.ts +16 -7
- package/dist/plain/calculate/cycleDate.js +3 -7
- package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
- package/dist/plain/calculate/cycleDateTime.js +1 -4
- package/dist/plain/calculate/cycleTime.d.ts +10 -5
- package/dist/plain/calculate/cycleTime.js +3 -5
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDate.js +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.js +1 -1
- package/dist/plain/calculate/diffDateTime.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.js +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
- package/dist/plain/calculate/diffTime.d.ts +1 -1
- package/dist/plain/calculate/diffTime.js +1 -1
- package/dist/plain/calculate/endOfDate.d.ts +8 -3
- package/dist/plain/calculate/endOfDate.js +1 -3
- package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
- package/dist/plain/calculate/endOfDateTime.js +1 -5
- package/dist/plain/calculate/endOfTime.d.ts +8 -2
- package/dist/plain/calculate/endOfTime.js +1 -2
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
- package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
- package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
- package/dist/plain/calculate/getWeekOfMonth.js +7 -4
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
- package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
- package/dist/plain/calculate/getWeeksInMonth.js +5 -2
- package/dist/plain/calculate/nextWeekday.d.ts +7 -3
- package/dist/plain/calculate/nextWeekday.js +1 -3
- package/dist/plain/calculate/previousWeekday.d.ts +7 -3
- package/dist/plain/calculate/previousWeekday.js +1 -3
- package/dist/plain/calculate/roundDate.d.ts +20 -7
- package/dist/plain/calculate/roundDate.js +3 -10
- package/dist/plain/calculate/roundDateTime.d.ts +22 -8
- package/dist/plain/calculate/roundDateTime.js +3 -11
- package/dist/plain/calculate/roundTime.d.ts +20 -4
- package/dist/plain/calculate/roundTime.js +3 -7
- package/dist/plain/calculate/setDate.d.ts +7 -5
- package/dist/plain/calculate/setDate.js +1 -5
- package/dist/plain/calculate/setDateTime.d.ts +8 -5
- package/dist/plain/calculate/setDateTime.js +1 -5
- package/dist/plain/calculate/setTime.d.ts +10 -6
- package/dist/plain/calculate/setTime.js +4 -6
- package/dist/plain/calculate/startOfDate.d.ts +8 -2
- package/dist/plain/calculate/startOfDate.js +1 -2
- package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
- package/dist/plain/calculate/startOfDateTime.js +1 -2
- package/dist/plain/calculate/startOfTime.d.ts +8 -1
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractDate.d.ts +7 -4
- package/dist/plain/calculate/subtractDate.js +1 -4
- package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
- package/dist/plain/calculate/subtractDateTime.js +1 -4
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
- package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
- package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
- package/dist/plain/compare/areDatesEqualBy.js +8 -6
- package/dist/plain/compare/isBetweenDate.d.ts +13 -2
- package/dist/plain/compare/isBetweenDate.js +4 -4
- package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenDateTime.js +4 -4
- package/dist/plain/compare/isBetweenTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenTime.js +4 -4
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +1 -1
- package/dist/plain/compare/isThisUnit.js +1 -1
- package/dist/plain/format/formatCalendar.d.ts +21 -14
- package/dist/plain/format/formatCalendar.js +21 -16
- package/dist/plain/format/formatDate.js +5 -3
- package/dist/plain/format/formatDateRange.js +4 -2
- package/dist/plain/format/formatDateTime.js +4 -2
- package/dist/plain/format/formatDateTimeRange.js +4 -2
- package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
- package/dist/plain/format/formatDateTimeToParts.js +10 -6
- package/dist/plain/format/formatDateToParts.d.ts +13 -2
- package/dist/plain/format/formatDateToParts.js +8 -4
- package/dist/plain/format/formatRelativeDate.d.ts +16 -3
- package/dist/plain/format/formatRelativeDate.js +26 -15
- package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeDateTime.js +8 -5
- package/dist/plain/format/formatRelativeTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeTime.js +21 -13
- package/dist/plain/format/formatTime.js +4 -2
- package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
- package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDate.js +1 -3
- package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
- package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
- package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDate.js +2 -0
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
- package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtTime.js +2 -0
- package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
- package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
- package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
- package/dist/plain/map/mapDatesInRange.d.ts +8 -4
- package/dist/plain/map/mapDatesInRange.js +1 -4
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseDateTimeWithPattern.js +10 -7
- package/dist/plain/parse/parseDateWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseDateWithPattern.js +10 -7
- package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseTimeWithPattern.js +10 -7
- package/dist/plain/parse/parseUnitFromDate.d.ts +11 -3
- package/dist/plain/parse/parseUnitFromDate.js +3 -3
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +11 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +3 -3
- package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDate.js +2 -6
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
- package/dist/plain/validate/isValidDateRange.d.ts +19 -4
- package/dist/plain/validate/isValidDateRange.js +1 -4
- package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidDateTimeRange.js +2 -5
- package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidTimeRange.js +2 -5
- package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
- package/dist/precision/convert/fromExcelSerial.js +4 -5
- package/dist/precision/convert/fromNanoseconds.d.ts +1 -1
- package/dist/precision/convert/fromNanoseconds.js +1 -1
- package/dist/precision/convert/toExcelSerial.d.ts +9 -3
- package/dist/precision/convert/toExcelSerial.js +3 -4
- package/dist/precision/convert/toNanoseconds.d.ts +11 -6
- package/dist/precision/convert/toNanoseconds.js +11 -6
- package/dist/precision/validate/isValidInstant.d.ts +12 -3
- package/dist/precision/validate/isValidInstant.js +12 -3
- package/dist/span/calculate/spanMs.d.ts +10 -4
- package/dist/span/calculate/spanMs.js +10 -4
- package/dist/span/calculate/spanNs.d.ts +10 -4
- package/dist/span/calculate/spanNs.js +10 -4
- package/dist/span/validate/isValidSpan.d.ts +8 -3
- package/dist/span/validate/isValidSpan.js +8 -3
- package/dist/transport/calculate/bestAvailable.d.ts +47 -0
- package/dist/transport/calculate/bestAvailable.js +76 -0
- package/dist/transport/calculate/crossingTime.d.ts +58 -0
- package/dist/transport/calculate/crossingTime.js +76 -0
- package/dist/transport/calculate/cutoffAt.d.ts +90 -0
- package/dist/transport/calculate/cutoffAt.js +209 -0
- package/dist/transport/calculate/cutoffSchedule.d.ts +70 -0
- package/dist/transport/calculate/cutoffSchedule.js +71 -0
- package/dist/transport/calculate/dwellTime.d.ts +16 -7
- package/dist/transport/calculate/dwellTime.js +12 -8
- package/dist/transport/calculate/estimateDrift.d.ts +65 -0
- package/dist/transport/calculate/estimateDrift.js +75 -0
- package/dist/transport/calculate/index.d.ts +8 -0
- package/dist/transport/calculate/index.js +8 -0
- package/dist/transport/calculate/nextDeparture.d.ts +78 -0
- package/dist/transport/calculate/nextDeparture.js +131 -0
- package/dist/transport/calculate/punctualityRate.d.ts +42 -0
- package/dist/transport/calculate/punctualityRate.js +59 -0
- package/dist/transport/calculate/scheduleDelivery.d.ts +150 -0
- package/dist/transport/calculate/scheduleDelivery.js +300 -0
- package/dist/transport/calculate/transitTime.d.ts +21 -3
- package/dist/transport/calculate/transitTime.js +29 -46
- package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
- package/dist/transport/compare/classifyPunctuality.js +64 -0
- package/dist/transport/compare/index.d.ts +4 -0
- package/dist/transport/compare/index.js +4 -0
- package/dist/transport/compare/isPastCutoff.d.ts +33 -0
- package/dist/transport/compare/isPastCutoff.js +48 -0
- package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
- package/dist/transport/compare/scheduleDeviation.js +53 -0
- package/dist/transport/compare/timeToCutoff.d.ts +31 -0
- package/dist/transport/compare/timeToCutoff.js +47 -0
- package/dist/transport/convert/etaAtZone.d.ts +7 -0
- package/dist/transport/convert/etaAtZone.js +9 -4
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.js +1 -0
- package/dist/types/business-calendar.d.ts +19 -14
- package/dist/types/calendar-options.d.ts +15 -3
- package/dist/types/date-cycle-field.d.ts +5 -0
- package/dist/types/date-duration-unit.d.ts +4 -0
- package/dist/types/date-time-cycle-field.d.ts +4 -0
- package/dist/types/date-time-duration-units.d.ts +4 -0
- package/dist/types/date-time-unit.d.ts +4 -0
- package/dist/types/date-unit.d.ts +4 -0
- package/dist/types/disambiguation.d.ts +8 -0
- package/dist/types/duration-relative-to.d.ts +8 -0
- package/dist/types/duration-string-options.d.ts +28 -0
- package/dist/types/fiscal-calendar.d.ts +1 -1
- package/dist/types/fractional-digit.d.ts +5 -0
- package/dist/types/free-time-options.d.ts +21 -11
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.js +2 -1
- package/dist/types/interval.d.ts +8 -1
- package/dist/types/offset.d.ts +9 -0
- package/dist/types/operating-schedule.d.ts +71 -0
- package/dist/types/overflow.d.ts +6 -0
- package/dist/types/relative-rounding-method.d.ts +6 -0
- package/dist/types/relative-time-options.d.ts +33 -5
- package/dist/types/rounding-options.d.ts +27 -0
- package/dist/types/time-cycle-field.d.ts +4 -0
- package/dist/types/time-duration-unit.d.ts +4 -0
- package/dist/types/time-unit.d.ts +4 -0
- package/dist/types/transport-timestamps.d.ts +54 -0
- package/dist/types/transport-timestamps.js +0 -0
- package/dist/unix/calculate/addUnix.d.ts +19 -5
- package/dist/unix/calculate/addUnix.js +1 -5
- package/dist/unix/calculate/diffUnix.d.ts +13 -3
- package/dist/unix/calculate/diffUnix.js +1 -3
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +13 -3
- package/dist/unix/calculate/diffUnixAsDuration.js +1 -3
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +13 -3
- package/dist/unix/calculate/endOfQuarterForUnix.js +1 -3
- package/dist/unix/calculate/endOfUnix.d.ts +20 -4
- package/dist/unix/calculate/endOfUnix.js +1 -4
- package/dist/unix/calculate/isBetweenUnix.d.ts +26 -4
- package/dist/unix/calculate/isBetweenUnix.js +4 -6
- package/dist/unix/calculate/roundUnix.d.ts +31 -3
- package/dist/unix/calculate/roundUnix.js +3 -6
- package/dist/unix/calculate/setUnix.d.ts +35 -9
- package/dist/unix/calculate/setUnix.js +4 -13
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +13 -3
- package/dist/unix/calculate/startOfQuarterForUnix.js +1 -3
- package/dist/unix/calculate/startOfUnix.d.ts +20 -4
- package/dist/unix/calculate/startOfUnix.js +1 -4
- package/dist/unix/calculate/subtractUnix.d.ts +19 -5
- package/dist/unix/calculate/subtractUnix.js +1 -5
- package/dist/unix/compare/areUnixEqual.d.ts +7 -1
- package/dist/unix/compare/areUnixEqual.js +1 -1
- package/dist/unix/compare/areUnixEqualBy.d.ts +24 -7
- package/dist/unix/compare/areUnixEqualBy.js +13 -9
- package/dist/unix/compare/isAfterUnix.d.ts +7 -1
- package/dist/unix/compare/isAfterUnix.js +1 -1
- package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
- package/dist/unix/compare/isBeforeUnix.js +1 -1
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +14 -4
- package/dist/unix/convert/convertUnixToPlainDate.js +2 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +14 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.js +2 -4
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +14 -4
- package/dist/unix/convert/convertUnixToPlainTime.js +2 -4
- package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
- package/dist/unix/convert/convertUnixToUtc.js +3 -4
- package/dist/unix/convert/convertUnixToZoned.d.ts +10 -5
- package/dist/unix/convert/convertUnixToZoned.js +4 -5
- package/dist/unix/format/formatCalendarUnix.d.ts +27 -19
- package/dist/unix/format/formatCalendarUnix.js +4 -5
- package/dist/unix/format/formatRelativeUnix.d.ts +54 -5
- package/dist/unix/format/formatRelativeUnix.js +3 -5
- package/dist/unix/format/formatUnix.d.ts +24 -6
- package/dist/unix/format/formatUnix.js +8 -7
- package/dist/unix/get/getUnixNow.d.ts +8 -3
- package/dist/unix/get/getUnixNow.js +1 -3
- package/dist/unix/interval/intervalCountUnix.d.ts +14 -5
- package/dist/unix/interval/intervalCountUnix.js +2 -5
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
- package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +33 -5
- package/dist/unix/interval/intervalFromDurationUnix.js +6 -5
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalLengthUnix.d.ts +16 -6
- package/dist/unix/interval/intervalLengthUnix.js +4 -6
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +13 -3
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +1 -3
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
- package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
- package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +42 -11
- package/dist/unix/interval/splitIntervalByUnitUnix.js +21 -16
- package/dist/unix/parse/parseDateFromUnix.d.ts +13 -2
- package/dist/unix/parse/parseDateFromUnix.js +1 -2
- package/dist/unix/parse/parseDayFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseDayFromUnix.js +2 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +13 -1
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +1 -1
- package/dist/unix/parse/parseHourFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseHourFromUnix.js +2 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMonthFromUnix.js +2 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseSecondFromUnix.js +2 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +13 -2
- package/dist/unix/parse/parseTimeFromUnix.js +1 -2
- package/dist/unix/parse/parseUnitFromUnix.d.ts +22 -3
- package/dist/unix/parse/parseUnitFromUnix.js +2 -3
- package/dist/unix/parse/parseWeekFromUnix.d.ts +23 -7
- package/dist/unix/parse/parseWeekFromUnix.js +3 -7
- package/dist/unix/parse/parseYearFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseYearFromUnix.js +2 -2
- package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
- package/dist/unix/validate/isValidUnixRange.js +1 -4
- package/dist/utc/calculate/addUtc.d.ts +7 -4
- package/dist/utc/calculate/addUtc.js +1 -4
- package/dist/utc/calculate/diffUtc.d.ts +1 -1
- package/dist/utc/calculate/diffUtc.js +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +16 -3
- package/dist/utc/calculate/endOfUtc.js +2 -3
- package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
- package/dist/utc/calculate/isBetweenUtc.js +4 -4
- package/dist/utc/calculate/roundUtc.d.ts +26 -9
- package/dist/utc/calculate/roundUtc.js +3 -12
- package/dist/utc/calculate/setUtc.d.ts +7 -4
- package/dist/utc/calculate/setUtc.js +1 -4
- package/dist/utc/calculate/startOfUtc.d.ts +15 -2
- package/dist/utc/calculate/startOfUtc.js +1 -2
- package/dist/utc/calculate/subtractUtc.d.ts +7 -4
- package/dist/utc/calculate/subtractUtc.js +1 -4
- package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
- package/dist/utc/compare/areUtcEqualBy.js +2 -3
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +8 -3
- package/dist/utc/convert/convertUtcToPlainDate.js +5 -6
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +8 -3
- package/dist/utc/convert/convertUtcToPlainDateTime.js +5 -6
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +8 -3
- package/dist/utc/convert/convertUtcToPlainTime.js +5 -6
- package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
- package/dist/utc/convert/convertUtcToUnix.js +3 -4
- package/dist/utc/convert/convertUtcToZoned.d.ts +1 -1
- package/dist/utc/convert/convertUtcToZoned.js +1 -1
- package/dist/utc/format/formatCalendarUtc.d.ts +19 -8
- package/dist/utc/format/formatCalendarUtc.js +8 -6
- package/dist/utc/format/formatHttp.d.ts +1 -1
- package/dist/utc/format/formatHttp.js +1 -1
- package/dist/utc/format/formatRelativeUtc.d.ts +30 -10
- package/dist/utc/format/formatRelativeUtc.js +9 -11
- package/dist/utc/format/formatUtc.d.ts +17 -15
- package/dist/utc/format/formatUtc.js +8 -8
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
- package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
- package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
- package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
- package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
- package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
- package/dist/utc/parse/parseDateFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseDateFromUtc.js +1 -3
- package/dist/utc/parse/parseDayFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseDayFromUtc.js +1 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +4 -6
- package/dist/utc/parse/parseHourFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseHourFromUtc.js +1 -3
- package/dist/utc/parse/parseHttp.d.ts +1 -1
- package/dist/utc/parse/parseHttp.js +1 -1
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMicrosecondFromUtc.js +1 -3
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMillisecondFromUtc.js +1 -3
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMinuteFromUtc.js +1 -3
- package/dist/utc/parse/parseMonthFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMonthFromUtc.js +1 -3
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseNanosecondFromUtc.js +1 -3
- package/dist/utc/parse/parseSecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseSecondFromUtc.js +1 -3
- package/dist/utc/parse/parseTimeFromUtc.d.ts +8 -3
- package/dist/utc/parse/parseTimeFromUtc.js +5 -6
- package/dist/utc/parse/parseUnitFromUtc.d.ts +17 -5
- package/dist/utc/parse/parseUnitFromUtc.js +6 -8
- package/dist/utc/parse/parseWeekFromUtc.d.ts +18 -10
- package/dist/utc/parse/parseWeekFromUtc.js +7 -13
- package/dist/utc/parse/parseYearFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseYearFromUtc.js +1 -3
- package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
- package/dist/utc/validate/isValidUtcRange.js +2 -5
- package/dist/zoned/calculate/addZoned.d.ts +20 -10
- package/dist/zoned/calculate/addZoned.js +6 -13
- package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
- package/dist/zoned/calculate/cycleZoned.js +1 -8
- package/dist/zoned/calculate/diffZoned.d.ts +1 -1
- package/dist/zoned/calculate/diffZoned.js +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
- package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
- package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
- package/dist/zoned/calculate/roundZoned.d.ts +21 -4
- package/dist/zoned/calculate/roundZoned.js +3 -7
- package/dist/zoned/calculate/setZoned.d.ts +25 -8
- package/dist/zoned/calculate/setZoned.js +4 -12
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
- package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
- package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
- package/dist/zoned/calculate/startOfZoned.js +1 -3
- package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
- package/dist/zoned/calculate/subtractZoned.js +6 -13
- package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
- package/dist/zoned/compare/areZonedEqualBy.js +7 -5
- package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
- package/dist/zoned/compare/isBetweenZoned.js +4 -3
- package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
- package/dist/zoned/compare/isInDaylightSaving.js +40 -44
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +18 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +6 -11
- package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
- package/dist/zoned/convert/convertZonedToUnix.js +2 -4
- package/dist/zoned/convert/convertZonedToZoned.d.ts +1 -1
- package/dist/zoned/convert/convertZonedToZoned.js +1 -1
- package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
- package/dist/zoned/format/formatCalendarZoned.js +13 -9
- package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
- package/dist/zoned/format/formatRelativeZoned.js +7 -4
- package/dist/zoned/format/formatRfc2822.d.ts +2 -2
- package/dist/zoned/format/formatRfc2822.js +2 -2
- package/dist/zoned/format/formatRfc3339.d.ts +2 -3
- package/dist/zoned/format/formatRfc3339.js +2 -3
- package/dist/zoned/format/formatTimeZoneName.d.ts +12 -3
- package/dist/zoned/format/formatTimeZoneName.js +5 -4
- package/dist/zoned/format/formatZonedDateTime.js +2 -1
- package/dist/zoned/format/formatZonedRange.js +2 -1
- package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
- package/dist/zoned/format/formatZonedToParts.js +8 -5
- package/dist/zoned/get/getDstTransitions.d.ts +9 -10
- package/dist/zoned/get/getDstTransitions.js +12 -3
- package/dist/zoned/get/getTimeZoneOffset.d.ts +4 -1
- package/dist/zoned/get/getTimeZoneOffset.js +6 -3
- package/dist/zoned/get/getZonedNow.d.ts +13 -1
- package/dist/zoned/get/getZonedNow.js +12 -3
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
- package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
- package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
- package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
- package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
- package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +9 -3
- package/dist/zoned/parse/parseUnitFromZoned.js +1 -3
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +42 -11
- package/dist/zoned/validate/hasDaylightSaving.js +47 -31
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
- package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
- package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
- package/dist/zoned/validate/isValidZonedRange.js +1 -4
- package/package.json +18 -5
- package/skills/gmt-arithmetic/SKILL.md +1 -1
- package/skills/gmt-basics/SKILL.md +10 -1
- package/skills/gmt-integration/SKILL.md +10 -5
- package/skills/gmt-timezone/SKILL.md +150 -21
- package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
- package/dist/internal/resolveReadingTimeZone.js +0 -18
- package/dist/types/duration-unit.d.ts +0 -5
- /package/dist/types/{duration-unit.js → operating-schedule.js} +0 -0
|
@@ -5,12 +5,11 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
5
5
|
*
|
|
6
6
|
* - Converts to ZonedDateTime, sets to start of unit, converts back to Instant.
|
|
7
7
|
* - Supports: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", each also in its plural form (`"days"`), as Temporal accepts.
|
|
8
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
9
8
|
* - Returns "" for invalid input.
|
|
10
9
|
*
|
|
11
10
|
* @param value ISO UTC datetime string
|
|
12
11
|
* @param unit date or time unit, singular or plural, to specify the start
|
|
13
|
-
* @param options
|
|
12
|
+
* @param options Where a week starts, and the precision of the result
|
|
14
13
|
* @returns UTC Instant string representing the start of the unit, or "" on invalid input
|
|
15
14
|
*
|
|
16
15
|
* @example startOfUtc("2024-03-15T14:30:45Z", "year") // "2024-01-01T00:00:00Z"
|
|
@@ -19,6 +18,20 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
19
18
|
* @example startOfUtc("invalid", "year") // ""
|
|
20
19
|
*/
|
|
21
20
|
export declare function startOfUtc(value: string, unit: Temporal.SmallestUnit<Temporal.DateTimeUnit>, options?: {
|
|
21
|
+
/**
|
|
22
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
23
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
24
|
+
* `""`, whatever the unit.
|
|
25
|
+
*
|
|
26
|
+
* @defaultValue `"monday"`
|
|
27
|
+
*/
|
|
22
28
|
weekStartsOn?: "monday" | "sunday";
|
|
29
|
+
/**
|
|
30
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
31
|
+
* drop trailing zeros. Fewer digits than `unit` names truncate, as Temporal's `toString` does.
|
|
32
|
+
*
|
|
33
|
+
* @defaultValue The digits `unit` names: `3` for `"millisecond"`, `6` for `"microsecond"`, `9`
|
|
34
|
+
* for `"nanosecond"` and `0` for any coarser unit.
|
|
35
|
+
*/
|
|
23
36
|
fractionalSecondDigits?: FractionalDigit;
|
|
24
37
|
}): string;
|
|
@@ -5,12 +5,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
5
5
|
*
|
|
6
6
|
* - Converts to ZonedDateTime, sets to start of unit, converts back to Instant.
|
|
7
7
|
* - Supports: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", each also in its plural form (`"days"`), as Temporal accepts.
|
|
8
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
9
8
|
* - Returns "" for invalid input.
|
|
10
9
|
*
|
|
11
10
|
* @param value ISO UTC datetime string
|
|
12
11
|
* @param unit date or time unit, singular or plural, to specify the start
|
|
13
|
-
* @param options
|
|
12
|
+
* @param options Where a week starts, and the precision of the result
|
|
14
13
|
* @returns UTC Instant string representing the start of the unit, or "" on invalid input
|
|
15
14
|
*
|
|
16
15
|
* @example startOfUtc("2024-03-15T14:30:45Z", "year") // "2024-01-01T00:00:00Z"
|
|
@@ -6,12 +6,9 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
6
6
|
* - Validates duration units and values.
|
|
7
7
|
* - Returns "" for invalid input.
|
|
8
8
|
*
|
|
9
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
10
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
11
|
-
*
|
|
12
9
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
13
10
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
14
|
-
* @param options
|
|
11
|
+
* @param options How an out-of-range result is handled
|
|
15
12
|
* @returns UTC Instant string after subtraction, or "" on invalid input
|
|
16
13
|
*
|
|
17
14
|
* @example subtractUtc("2024-03-15T12:00:00Z", { days: 5 }) // "2024-03-10T12:00:00Z"
|
|
@@ -19,5 +16,11 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
19
16
|
* @example subtractUtc("invalid", { days: 5 }) // ""
|
|
20
17
|
*/
|
|
21
18
|
export declare function subtractUtc(value: string, units: Partial<Record<DateTimeDurationUnit, number>>, options?: {
|
|
19
|
+
/**
|
|
20
|
+
* What to do when the result is not a real date. `"constrain"` clamps it to the last valid day,
|
|
21
|
+
* so Mar 31 − 1 month is Feb 29/28 (TC39 Temporal); `"reject"` returns `""`.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
24
|
+
*/
|
|
22
25
|
overflow?: Overflow;
|
|
23
26
|
}): string;
|
|
@@ -11,12 +11,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
11
11
|
* - Validates duration units and values.
|
|
12
12
|
* - Returns "" for invalid input.
|
|
13
13
|
*
|
|
14
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
15
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
16
|
-
*
|
|
17
14
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
18
15
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
19
|
-
* @param options
|
|
16
|
+
* @param options How an out-of-range result is handled
|
|
20
17
|
* @returns UTC Instant string after subtraction, or "" on invalid input
|
|
21
18
|
*
|
|
22
19
|
* @example subtractUtc("2024-03-15T12:00:00Z", { days: 5 }) // "2024-03-10T12:00:00Z"
|
|
@@ -7,13 +7,12 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
7
7
|
* unambiguous).
|
|
8
8
|
* - `"month"` requires the same month AND year, matching `areDateTimesEqualBy`.
|
|
9
9
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
10
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
11
10
|
* - Returns false for an unsupported unit or invalid input.
|
|
12
11
|
* - Takes no `fractionalSecondDigits`: equality compares full-precision `unit` boundaries, and output
|
|
13
12
|
* digits cannot change which bucket a value is in. That ignored option was removed in 1.16.0; to
|
|
14
13
|
* compare more coarsely, pass a coarser unit (0 digits is `"second"`, 3 is `"millisecond"`).
|
|
15
14
|
*
|
|
16
|
-
* Mapping from date-fns
|
|
15
|
+
* Mapping from date-fns:
|
|
17
16
|
* - `isSameDay(a, b)` → `areUtcEqualBy(a, b, "day")`
|
|
18
17
|
* - `isSameMonth(a, b)` → `areUtcEqualBy(a, b, "month")`
|
|
19
18
|
* - `isSameYear(a, b)` → `areUtcEqualBy(a, b, "year")`
|
|
@@ -21,7 +20,7 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
21
20
|
* @param value1 first UTC ISO datetime string
|
|
22
21
|
* @param value2 second UTC ISO datetime string
|
|
23
22
|
* @param unit date or time unit, singular or plural, to compare by
|
|
24
|
-
* @param options
|
|
23
|
+
* @param options Where a week starts
|
|
25
24
|
* @returns true if both values share the same start-of-unit boundary, false on an unsupported unit or invalid input
|
|
26
25
|
*
|
|
27
26
|
* @example areUtcEqualBy("2024-03-15T02:00:00Z", "2024-03-15T22:00:00Z", "day") // true
|
|
@@ -31,5 +30,12 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
31
30
|
* @example areUtcEqualBy("invalid", "2024-03-15T02:00:00Z", "day") // false
|
|
32
31
|
*/
|
|
33
32
|
export declare function areUtcEqualBy(value1: string, value2: string, unit: Temporal.SmallestUnit<Temporal.DateTimeUnit>, options?: {
|
|
33
|
+
/**
|
|
34
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
35
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
36
|
+
* false, whatever the unit.
|
|
37
|
+
*
|
|
38
|
+
* @defaultValue `"monday"`
|
|
39
|
+
*/
|
|
34
40
|
weekStartsOn?: "monday" | "sunday";
|
|
35
41
|
}): boolean;
|
|
@@ -13,13 +13,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
13
13
|
* unambiguous).
|
|
14
14
|
* - `"month"` requires the same month AND year, matching `areDateTimesEqualBy`.
|
|
15
15
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
16
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
17
16
|
* - Returns false for an unsupported unit or invalid input.
|
|
18
17
|
* - Takes no `fractionalSecondDigits`: equality compares full-precision `unit` boundaries, and output
|
|
19
18
|
* digits cannot change which bucket a value is in. That ignored option was removed in 1.16.0; to
|
|
20
19
|
* compare more coarsely, pass a coarser unit (0 digits is `"second"`, 3 is `"millisecond"`).
|
|
21
20
|
*
|
|
22
|
-
* Mapping from date-fns
|
|
21
|
+
* Mapping from date-fns:
|
|
23
22
|
* - `isSameDay(a, b)` → `areUtcEqualBy(a, b, "day")`
|
|
24
23
|
* - `isSameMonth(a, b)` → `areUtcEqualBy(a, b, "month")`
|
|
25
24
|
* - `isSameYear(a, b)` → `areUtcEqualBy(a, b, "year")`
|
|
@@ -27,7 +26,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
27
26
|
* @param value1 first UTC ISO datetime string
|
|
28
27
|
* @param value2 second UTC ISO datetime string
|
|
29
28
|
* @param unit date or time unit, singular or plural, to compare by
|
|
30
|
-
* @param options
|
|
29
|
+
* @param options Where a week starts
|
|
31
30
|
* @returns true if both values share the same start-of-unit boundary, false on an unsupported unit or invalid input
|
|
32
31
|
*
|
|
33
32
|
* @example areUtcEqualBy("2024-03-15T02:00:00Z", "2024-03-15T22:00:00Z", "day") // true
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Convert a UTC datetime string to a plain date string in the format "YYYY-MM-DD".
|
|
3
3
|
*
|
|
4
|
-
* - Converts to
|
|
5
|
-
* - Defaults to UTC if no timezone specified.
|
|
4
|
+
* - Converts to the `timeZone` option's zone before extracting the date.
|
|
6
5
|
* - Returns "" for invalid input.
|
|
7
6
|
*
|
|
8
7
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
9
|
-
* @param options
|
|
8
|
+
* @param options The time zone the value is read in
|
|
10
9
|
* @returns plain date string in "YYYY-MM-DD" format or "" on invalid input
|
|
11
10
|
*
|
|
12
11
|
* @example convertUtcToPlainDate("2024-02-29T00:00:00Z") // "2024-02-29"
|
|
@@ -14,5 +13,11 @@
|
|
|
14
13
|
* @example convertUtcToPlainDate("invalid") // ""
|
|
15
14
|
*/
|
|
16
15
|
export declare function convertUtcToPlainDate(value: string, options?: {
|
|
16
|
+
/**
|
|
17
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
18
|
+
* the system time zone. An unknown zone returns `""`.
|
|
19
|
+
*
|
|
20
|
+
* @defaultValue `"UTC"`
|
|
21
|
+
*/
|
|
17
22
|
timeZone?: string;
|
|
18
23
|
}): string;
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import {
|
|
3
|
+
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
4
4
|
import { isValidUtc } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
6
|
/**
|
|
7
7
|
* Convert a UTC datetime string to a plain date string in the format "YYYY-MM-DD".
|
|
8
8
|
*
|
|
9
|
-
* - Converts to
|
|
10
|
-
* - Defaults to UTC if no timezone specified.
|
|
9
|
+
* - Converts to the `timeZone` option's zone before extracting the date.
|
|
11
10
|
* - Returns "" for invalid input.
|
|
12
11
|
*
|
|
13
12
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
14
|
-
* @param options
|
|
13
|
+
* @param options The time zone the value is read in
|
|
15
14
|
* @returns plain date string in "YYYY-MM-DD" format or "" on invalid input
|
|
16
15
|
*
|
|
17
16
|
* @example convertUtcToPlainDate("2024-02-29T00:00:00Z") // "2024-02-29"
|
|
@@ -23,8 +22,8 @@ export function convertUtcToPlainDate(value, options) {
|
|
|
23
22
|
if (!isOptionsArgument(options)) {
|
|
24
23
|
return "";
|
|
25
24
|
}
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
25
|
+
const timeZone = normalizeTimeZone(options?.timeZone);
|
|
26
|
+
if (timeZone === "")
|
|
28
27
|
return "";
|
|
29
28
|
if (!isValidUtc(value))
|
|
30
29
|
return "";
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Convert a UTC datetime string to a plain datetime string in the format "YYYY-MM-DDTHH:mm:ss".
|
|
3
3
|
*
|
|
4
|
-
* - Converts to
|
|
5
|
-
* - Defaults to UTC if no timezone specified.
|
|
4
|
+
* - Converts to the `timeZone` option's zone before extracting the datetime.
|
|
6
5
|
* - Returns "" for invalid input.
|
|
7
6
|
*
|
|
8
7
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
9
|
-
* @param options
|
|
8
|
+
* @param options The time zone the value is read in
|
|
10
9
|
* @returns plain datetime string in "YYYY-MM-DDTHH:mm:ss" format or "" on invalid input
|
|
11
10
|
*
|
|
12
11
|
* @example convertUtcToPlainDateTime("2024-02-29T00:00:00Z") // "2024-02-29T00:00:00"
|
|
@@ -14,5 +13,11 @@
|
|
|
14
13
|
* @example convertUtcToPlainDateTime("invalid") // ""
|
|
15
14
|
*/
|
|
16
15
|
export declare function convertUtcToPlainDateTime(value: string, options?: {
|
|
16
|
+
/**
|
|
17
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
18
|
+
* the system time zone. An unknown zone returns `""`.
|
|
19
|
+
*
|
|
20
|
+
* @defaultValue `"UTC"`
|
|
21
|
+
*/
|
|
17
22
|
timeZone?: string;
|
|
18
23
|
}): string;
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import {
|
|
3
|
+
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
4
4
|
import { isValidUtc } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
6
|
/**
|
|
7
7
|
* Convert a UTC datetime string to a plain datetime string in the format "YYYY-MM-DDTHH:mm:ss".
|
|
8
8
|
*
|
|
9
|
-
* - Converts to
|
|
10
|
-
* - Defaults to UTC if no timezone specified.
|
|
9
|
+
* - Converts to the `timeZone` option's zone before extracting the datetime.
|
|
11
10
|
* - Returns "" for invalid input.
|
|
12
11
|
*
|
|
13
12
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
14
|
-
* @param options
|
|
13
|
+
* @param options The time zone the value is read in
|
|
15
14
|
* @returns plain datetime string in "YYYY-MM-DDTHH:mm:ss" format or "" on invalid input
|
|
16
15
|
*
|
|
17
16
|
* @example convertUtcToPlainDateTime("2024-02-29T00:00:00Z") // "2024-02-29T00:00:00"
|
|
@@ -23,8 +22,8 @@ export function convertUtcToPlainDateTime(value, options) {
|
|
|
23
22
|
if (!isOptionsArgument(options)) {
|
|
24
23
|
return "";
|
|
25
24
|
}
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
25
|
+
const timeZone = normalizeTimeZone(options?.timeZone);
|
|
26
|
+
if (timeZone === "")
|
|
28
27
|
return "";
|
|
29
28
|
if (!isValidUtc(value))
|
|
30
29
|
return "";
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Convert a UTC datetime string to a plain time string in the format "HH:mm:ss".
|
|
3
3
|
*
|
|
4
|
-
* - Converts to
|
|
5
|
-
* - Defaults to UTC if no timezone specified.
|
|
4
|
+
* - Converts to the `timeZone` option's zone before extracting the time.
|
|
6
5
|
* - Returns "" for invalid input.
|
|
7
6
|
*
|
|
8
7
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
9
|
-
* @param options
|
|
8
|
+
* @param options The time zone the value is read in
|
|
10
9
|
* @returns plain time string in "HH:mm:ss" format or "" on invalid input
|
|
11
10
|
*
|
|
12
11
|
* @example convertUtcToPlainTime("2024-02-29T00:00:00Z") // "00:00:00"
|
|
@@ -14,5 +13,11 @@
|
|
|
14
13
|
* @example convertUtcToPlainTime("invalid") // ""
|
|
15
14
|
*/
|
|
16
15
|
export declare function convertUtcToPlainTime(value: string, options?: {
|
|
16
|
+
/**
|
|
17
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
18
|
+
* the system time zone. An unknown zone returns `""`.
|
|
19
|
+
*
|
|
20
|
+
* @defaultValue `"UTC"`
|
|
21
|
+
*/
|
|
17
22
|
timeZone?: string;
|
|
18
23
|
}): string;
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import {
|
|
3
|
+
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
4
4
|
import { isValidUtc } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
6
|
/**
|
|
7
7
|
* Convert a UTC datetime string to a plain time string in the format "HH:mm:ss".
|
|
8
8
|
*
|
|
9
|
-
* - Converts to
|
|
10
|
-
* - Defaults to UTC if no timezone specified.
|
|
9
|
+
* - Converts to the `timeZone` option's zone before extracting the time.
|
|
11
10
|
* - Returns "" for invalid input.
|
|
12
11
|
*
|
|
13
12
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
14
|
-
* @param options
|
|
13
|
+
* @param options The time zone the value is read in
|
|
15
14
|
* @returns plain time string in "HH:mm:ss" format or "" on invalid input
|
|
16
15
|
*
|
|
17
16
|
* @example convertUtcToPlainTime("2024-02-29T00:00:00Z") // "00:00:00"
|
|
@@ -23,8 +22,8 @@ export function convertUtcToPlainTime(value, options) {
|
|
|
23
22
|
if (!isOptionsArgument(options)) {
|
|
24
23
|
return "";
|
|
25
24
|
}
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
25
|
+
const timeZone = normalizeTimeZone(options?.timeZone);
|
|
26
|
+
if (timeZone === "")
|
|
28
27
|
return "";
|
|
29
28
|
if (!isValidUtc(value))
|
|
30
29
|
return "";
|
|
@@ -4,13 +4,12 @@ import type { UnixUnit } from "../../unix/validate/isValidUnixUnit.js";
|
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Instant.from to parse.
|
|
6
6
|
* - Seconds floor toward −∞, so `"1969-12-31T23:59:59.5Z"` is second `-1` (POSIX `time_t`).
|
|
7
|
-
* - `options
|
|
8
|
-
*
|
|
9
|
-
* as a bare `"seconds"` string) returns null.
|
|
7
|
+
* - `options` must be an object or omitted: a non-object value (such as a bare `"seconds"` string)
|
|
8
|
+
* returns null.
|
|
10
9
|
* - Returns null for invalid input.
|
|
11
10
|
*
|
|
12
11
|
* @param value UTC Instant string
|
|
13
|
-
* @param options
|
|
12
|
+
* @param options The unit of the returned epoch value
|
|
14
13
|
* @returns epoch number or null on invalid
|
|
15
14
|
*
|
|
16
15
|
* @example convertUtcToUnix("2024-02-29T00:00:00Z") // 1709164800000
|
|
@@ -20,5 +19,11 @@ import type { UnixUnit } from "../../unix/validate/isValidUnixUnit.js";
|
|
|
20
19
|
* @example convertUtcToUnix("invalid") // null
|
|
21
20
|
*/
|
|
22
21
|
export declare function convertUtcToUnix(value: string, options?: {
|
|
22
|
+
/**
|
|
23
|
+
* The unit the epoch value is returned in: `"seconds"` or `"milliseconds"`, singular or plural.
|
|
24
|
+
* An explicit `undefined` is the same as omitted; any other value returns `null`.
|
|
25
|
+
*
|
|
26
|
+
* @defaultValue `"milliseconds"`
|
|
27
|
+
*/
|
|
23
28
|
epochUnit?: UnixUnit;
|
|
24
29
|
}): number | null;
|
|
@@ -6,13 +6,12 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
6
6
|
*
|
|
7
7
|
* - Uses Temporal.Instant.from to parse.
|
|
8
8
|
* - Seconds floor toward −∞, so `"1969-12-31T23:59:59.5Z"` is second `-1` (POSIX `time_t`).
|
|
9
|
-
* - `options
|
|
10
|
-
*
|
|
11
|
-
* as a bare `"seconds"` string) returns null.
|
|
9
|
+
* - `options` must be an object or omitted: a non-object value (such as a bare `"seconds"` string)
|
|
10
|
+
* returns null.
|
|
12
11
|
* - Returns null for invalid input.
|
|
13
12
|
*
|
|
14
13
|
* @param value UTC Instant string
|
|
15
|
-
* @param options
|
|
14
|
+
* @param options The unit of the returned epoch value
|
|
16
15
|
* @returns epoch number or null on invalid
|
|
17
16
|
*
|
|
18
17
|
* @example convertUtcToUnix("2024-02-29T00:00:00Z") // 1709164800000
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* - Returns "" for invalid input.
|
|
7
7
|
*
|
|
8
8
|
* @param value UTC Instant string
|
|
9
|
-
* @param timeZone IANA
|
|
9
|
+
* @param timeZone IANA name or UTC offset
|
|
10
10
|
* @returns zoned ISO 8601 string or "" on invalid
|
|
11
11
|
*
|
|
12
12
|
* @example convertUtcToZoned("2024-02-29T00:00:00Z", "America/New_York") // "2024-02-28T19:00:00-05:00[America/New_York]"
|
|
@@ -9,7 +9,7 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
9
9
|
* - Returns "" for invalid input.
|
|
10
10
|
*
|
|
11
11
|
* @param value UTC Instant string
|
|
12
|
-
* @param timeZone IANA
|
|
12
|
+
* @param timeZone IANA name or UTC offset
|
|
13
13
|
* @returns zoned ISO 8601 string or "" on invalid
|
|
14
14
|
*
|
|
15
15
|
* @example convertUtcToZoned("2024-02-29T00:00:00Z", "America/New_York") // "2024-02-28T19:00:00-05:00[America/New_York]"
|
|
@@ -1,27 +1,38 @@
|
|
|
1
1
|
import type { CalendarOptions } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Options for `formatCalendarUtc`: the instant the day label is measured from, the time zone the
|
|
4
|
+
* days and the clock time are read in, and the width of the time-of-day half.
|
|
5
|
+
*/
|
|
2
6
|
export interface FormatCalendarUtcOptions extends CalendarOptions {
|
|
3
7
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
8
|
+
* The time zone used for both the calendar-day comparison and the rendered clock time: an IANA
|
|
9
|
+
* name, a UTC offset, or `"local"` for the system time zone. An unknown zone returns `""`, as
|
|
10
|
+
* ECMA-402 throws RangeError for it.
|
|
11
|
+
*
|
|
12
|
+
* @defaultValue `"UTC"`
|
|
7
13
|
*/
|
|
8
14
|
timeZone?: string;
|
|
9
|
-
/**
|
|
10
|
-
|
|
15
|
+
/**
|
|
16
|
+
* The length of the time-of-day part, as the `timeStyle` of `Intl.DateTimeFormat`. `"short"`
|
|
17
|
+
* writes hours and minutes, `"medium"` adds seconds, `"long"` adds the short time zone name
|
|
18
|
+
* ("EDT") and `"full"` the long one ("Eastern Daylight Time"). Any other value returns `""`.
|
|
19
|
+
*
|
|
20
|
+
* @defaultValue `"short"`
|
|
21
|
+
*/
|
|
22
|
+
timeStyle?: "short" | "medium" | "long" | "full";
|
|
11
23
|
}
|
|
12
24
|
/**
|
|
13
25
|
* Format a UTC ISO string as a relative day label plus time-of-day, e.g.
|
|
14
26
|
* "Tomorrow at 2:30 PM" — the UTC counterpart of `formatCalendar`. See that
|
|
15
27
|
* function's JSDoc for the day-label/threshold/connector design; this
|
|
16
|
-
* variant compares calendar days and renders the clock time in `timeZone
|
|
17
|
-
* (default `"UTC"`).
|
|
28
|
+
* variant compares calendar days and renders the clock time in `timeZone`.
|
|
18
29
|
*
|
|
19
30
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
20
31
|
* rejects it.
|
|
21
32
|
*
|
|
22
33
|
* @param value UTC ISO string to format
|
|
23
34
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
24
|
-
* @param options
|
|
35
|
+
* @param options The reference instant, the time zone and the time style
|
|
25
36
|
* @returns the formatted calendar string, or "" on invalid input
|
|
26
37
|
*
|
|
27
38
|
* @example formatCalendarUtc("2026-03-16T18:30:00Z", "en-US", { timeZone: "America/New_York", reference: "2026-03-15T13:00:00Z" }) // "tomorrow at 2:30 PM"
|
|
@@ -3,19 +3,19 @@ import { formatCalendarInstants } from "../../internal/formatCalendarDays.js";
|
|
|
3
3
|
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
4
4
|
import { toInstantFromUtc, toReferenceInstantFromUtc, } from "../../internal/toInstantFromUtc.js";
|
|
5
5
|
import { isValidUtc } from "../validate/index.js";
|
|
6
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
6
7
|
/**
|
|
7
8
|
* Format a UTC ISO string as a relative day label plus time-of-day, e.g.
|
|
8
9
|
* "Tomorrow at 2:30 PM" — the UTC counterpart of `formatCalendar`. See that
|
|
9
10
|
* function's JSDoc for the day-label/threshold/connector design; this
|
|
10
|
-
* variant compares calendar days and renders the clock time in `timeZone
|
|
11
|
-
* (default `"UTC"`).
|
|
11
|
+
* variant compares calendar days and renders the clock time in `timeZone`.
|
|
12
12
|
*
|
|
13
13
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
14
14
|
* rejects it.
|
|
15
15
|
*
|
|
16
16
|
* @param value UTC ISO string to format
|
|
17
17
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
18
|
-
* @param options
|
|
18
|
+
* @param options The reference instant, the time zone and the time style
|
|
19
19
|
* @returns the formatted calendar string, or "" on invalid input
|
|
20
20
|
*
|
|
21
21
|
* @example formatCalendarUtc("2026-03-16T18:30:00Z", "en-US", { timeZone: "America/New_York", reference: "2026-03-15T13:00:00Z" }) // "tomorrow at 2:30 PM"
|
|
@@ -36,16 +36,18 @@ export function formatCalendarUtc(value, locale, options = {}) {
|
|
|
36
36
|
const timeZone = normalizeTimeZone(options.timeZone);
|
|
37
37
|
if (!timeZone)
|
|
38
38
|
return "";
|
|
39
|
-
|
|
39
|
+
// Each option is read once (GetOption).
|
|
40
|
+
const referenceOption = options.reference;
|
|
41
|
+
if (referenceOption !== undefined && !isValidUtc(referenceOption))
|
|
40
42
|
return "";
|
|
41
43
|
const target = toInstantFromUtc(value);
|
|
42
44
|
if (target === null)
|
|
43
45
|
return "";
|
|
44
|
-
const reference = toReferenceInstantFromUtc(
|
|
46
|
+
const reference = toReferenceInstantFromUtc(referenceOption);
|
|
45
47
|
if (reference === null)
|
|
46
48
|
return "";
|
|
47
49
|
try {
|
|
48
|
-
return formatCalendarInstants(target, reference, timeZone, locale, options.timeStyle
|
|
50
|
+
return formatCalendarInstants(target, reference, timeZone, locale, optionOrDefault(options.timeStyle, "short"));
|
|
49
51
|
}
|
|
50
52
|
catch {
|
|
51
53
|
return "";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* - **Fixed grammar, not a display format.** RFC 9110 mandates English
|
|
6
6
|
* weekday/month abbreviations and a literal `GMT` suffix regardless of
|
|
7
7
|
* caller locale — there is no locale-appropriate alternative ordering to
|
|
8
|
-
* lose
|
|
8
|
+
* lose.
|
|
9
9
|
* - Always `GMT`; HTTP-date carries no offset variation to preserve.
|
|
10
10
|
* - Fractional seconds in `value` are truncated — IMF-fixdate has no
|
|
11
11
|
* sub-second field.
|
|
@@ -8,7 +8,7 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
8
8
|
* - **Fixed grammar, not a display format.** RFC 9110 mandates English
|
|
9
9
|
* weekday/month abbreviations and a literal `GMT` suffix regardless of
|
|
10
10
|
* caller locale — there is no locale-appropriate alternative ordering to
|
|
11
|
-
* lose
|
|
11
|
+
* lose.
|
|
12
12
|
* - Always `GMT`; HTTP-date carries no offset variation to preserve.
|
|
13
13
|
* - Fractional seconds in `value` are truncated — IMF-fixdate has no
|
|
14
14
|
* sub-second field.
|
|
@@ -1,28 +1,48 @@
|
|
|
1
1
|
import type { RelativeTimeFormatOptions, RelativeUnit } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Options for `formatRelativeUtc`: the instant the distance is measured from, the unit it is shown
|
|
4
|
+
* in, how it rounds, and the wording `Intl.RelativeTimeFormat` uses.
|
|
5
|
+
*/
|
|
2
6
|
export interface FormatRelativeUtcOptions extends RelativeTimeFormatOptions {
|
|
3
|
-
|
|
7
|
+
/**
|
|
8
|
+
* The unit the distance is written in, whatever its size: `"second"`, `"minute"`, `"hour"`,
|
|
9
|
+
* `"day"`, `"week"`, `"month"` or `"year"`, singular or plural. Any other value returns `""`.
|
|
10
|
+
* Omitted, the unit is picked from the distance: second under a minute, minute under an hour,
|
|
11
|
+
* hour under a day, day under 7 days, week under 28, month under 365 and year beyond.
|
|
12
|
+
*
|
|
13
|
+
* @defaultValue None. The unit is picked from the distance.
|
|
14
|
+
*/
|
|
15
|
+
largestUnit?: RelativeUnit | `${RelativeUnit}s`;
|
|
16
|
+
/**
|
|
17
|
+
* The instant the distance is measured from, as a UTC ISO string. Any other value returns `""`.
|
|
18
|
+
*
|
|
19
|
+
* @defaultValue The current instant.
|
|
20
|
+
*/
|
|
4
21
|
reference?: string;
|
|
22
|
+
/**
|
|
23
|
+
* The time zone that anchors a calendar unit (week, month or year): an IANA name, a UTC offset,
|
|
24
|
+
* or `"local"` for the system time zone. An unknown zone returns `""` whatever the unit, as
|
|
25
|
+
* ECMA-402 throws RangeError for it.
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue `"UTC"`
|
|
28
|
+
*/
|
|
5
29
|
timeZone?: string;
|
|
6
30
|
}
|
|
7
31
|
/**
|
|
8
32
|
* Format the relative time between a UTC ISO string and a reference instant.
|
|
9
33
|
*
|
|
10
|
-
* -
|
|
11
|
-
*
|
|
12
|
-
* day under 7 days, week under 28, month under 365, year beyond — so a 3-year distance reads
|
|
13
|
-
* "3 years ago".
|
|
34
|
+
* - Picks the display unit from the distance, using `formatRelativeDate`'s day thresholds past a
|
|
35
|
+
* day, so a 3-year distance reads "3 years ago".
|
|
14
36
|
* - **Compatibility:** before 1.16.0 week, month and year were never auto-picked ("1,096 days ago").
|
|
15
37
|
* Pass `largestUnit: "day"` to keep a day count.
|
|
16
|
-
* - `
|
|
17
|
-
*
|
|
18
|
-
* `"UTC"`; pass `"local"` for the system time zone. An unknown zone returns `""` whatever the unit
|
|
19
|
-
* (ECMA-402 throws RangeError for it).
|
|
38
|
+
* - `largestUnit` is one of the seven units from `"second"` to `"year"`, singular or plural. Any
|
|
39
|
+
* other value returns `""`.
|
|
20
40
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
21
41
|
* rejects it.
|
|
22
42
|
*
|
|
23
43
|
* @param value UTC ISO string to format
|
|
24
44
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
25
|
-
* @param options
|
|
45
|
+
* @param options The reference instant, the display unit, rounding, wording and time zone
|
|
26
46
|
* @returns the formatted relative-time string, or "" on invalid input
|
|
27
47
|
*
|
|
28
48
|
* @example formatRelativeUtc("2026-01-15T14:30:45Z", "en-US", { reference: "2026-04-15T14:30:45Z" }) // "3 months ago"
|
|
@@ -7,22 +7,18 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
7
7
|
/**
|
|
8
8
|
* Format the relative time between a UTC ISO string and a reference instant.
|
|
9
9
|
*
|
|
10
|
-
* -
|
|
11
|
-
*
|
|
12
|
-
* day under 7 days, week under 28, month under 365, year beyond — so a 3-year distance reads
|
|
13
|
-
* "3 years ago".
|
|
10
|
+
* - Picks the display unit from the distance, using `formatRelativeDate`'s day thresholds past a
|
|
11
|
+
* day, so a 3-year distance reads "3 years ago".
|
|
14
12
|
* - **Compatibility:** before 1.16.0 week, month and year were never auto-picked ("1,096 days ago").
|
|
15
13
|
* Pass `largestUnit: "day"` to keep a day count.
|
|
16
|
-
* - `
|
|
17
|
-
*
|
|
18
|
-
* `"UTC"`; pass `"local"` for the system time zone. An unknown zone returns `""` whatever the unit
|
|
19
|
-
* (ECMA-402 throws RangeError for it).
|
|
14
|
+
* - `largestUnit` is one of the seven units from `"second"` to `"year"`, singular or plural. Any
|
|
15
|
+
* other value returns `""`.
|
|
20
16
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
21
17
|
* rejects it.
|
|
22
18
|
*
|
|
23
19
|
* @param value UTC ISO string to format
|
|
24
20
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
25
|
-
* @param options
|
|
21
|
+
* @param options The reference instant, the display unit, rounding, wording and time zone
|
|
26
22
|
* @returns the formatted relative-time string, or "" on invalid input
|
|
27
23
|
*
|
|
28
24
|
* @example formatRelativeUtc("2026-01-15T14:30:45Z", "en-US", { reference: "2026-04-15T14:30:45Z" }) // "3 months ago"
|
|
@@ -43,12 +39,14 @@ export function formatRelativeUtc(value, locale, options = {}) {
|
|
|
43
39
|
const tz = normalizeTimeZone(options.timeZone);
|
|
44
40
|
if (!tz)
|
|
45
41
|
return "";
|
|
46
|
-
|
|
42
|
+
// Each option is read once (GetOption).
|
|
43
|
+
const referenceOption = options.reference;
|
|
44
|
+
if (referenceOption !== undefined && !isValidUtc(referenceOption))
|
|
47
45
|
return "";
|
|
48
46
|
const target = toInstantFromUtc(value);
|
|
49
47
|
if (target === null)
|
|
50
48
|
return "";
|
|
51
|
-
const reference = toReferenceInstantFromUtc(
|
|
49
|
+
const reference = toReferenceInstantFromUtc(referenceOption);
|
|
52
50
|
if (reference === null)
|
|
53
51
|
return "";
|
|
54
52
|
try {
|