@northguild/gmt 1.16.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 +742 -21
- 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/index.d.ts +2 -0
- package/dist/index.js +2 -0
- 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 +6 -12
- package/dist/instant/convert/resolveLocal.d.ts +12 -7
- package/dist/instant/convert/resolveLocal.js +6 -10
- package/dist/instant/convert/toOffsetInstant.d.ts +37 -1
- package/dist/instant/convert/toOffsetInstant.js +12 -28
- package/dist/intermodal/calculate/billingTimeline.d.ts +114 -0
- package/dist/intermodal/calculate/billingTimeline.js +168 -0
- package/dist/intermodal/calculate/chargeableDays.d.ts +100 -0
- package/dist/intermodal/calculate/chargeableDays.js +96 -0
- package/dist/intermodal/calculate/demurrageClock.d.ts +102 -0
- package/dist/intermodal/calculate/demurrageClock.js +140 -0
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +67 -0
- package/dist/intermodal/calculate/freeTimeExpiry.js +82 -0
- package/dist/intermodal/calculate/index.d.ts +4 -0
- package/dist/intermodal/calculate/index.js +4 -0
- package/dist/intermodal/index.d.ts +2 -0
- package/dist/intermodal/index.js +3 -0
- 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/freeTimeLedger.d.ts +93 -0
- package/dist/internal/freeTimeLedger.js +262 -0
- package/dist/internal/index.d.ts +10 -3
- package/dist/internal/index.js +10 -3
- 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/isoStringBody.d.ts +26 -0
- package/dist/internal/isoStringBody.js +22 -2
- 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/wallClockAtOffset.d.ts +22 -0
- package/dist/internal/wallClockAtOffset.js +26 -0
- 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/zonedWallClockDifference.js +5 -4
- 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 +81 -0
- package/dist/transport/calculate/dwellTime.js +130 -0
- package/dist/transport/calculate/estimateDrift.d.ts +65 -0
- package/dist/transport/calculate/estimateDrift.js +75 -0
- package/dist/transport/calculate/index.d.ts +10 -0
- package/dist/transport/calculate/index.js +10 -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 +71 -0
- package/dist/transport/calculate/transitTime.js +101 -0
- 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 +43 -0
- package/dist/transport/convert/etaAtZone.js +58 -0
- package/dist/transport/convert/index.d.ts +1 -0
- package/dist/transport/convert/index.js +1 -0
- package/dist/transport/index.d.ts +4 -0
- package/dist/transport/index.js +5 -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 +44 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.js +3 -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/operating-schedule.js +0 -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 +53 -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 +210 -14
- 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 → free-time-options.js} +0 -0
|
@@ -10,7 +10,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
10
10
|
*
|
|
11
11
|
* @param value1 first unix epoch: a safe integer or a digit string
|
|
12
12
|
* @param value2 second unix epoch, in the same unit
|
|
13
|
-
* @param options optional:
|
|
13
|
+
* @param options optional: how both epochs are read
|
|
14
14
|
* @returns `true` if `value1` is after `value2`, otherwise `false`
|
|
15
15
|
*
|
|
16
16
|
* @example isAfterUnix(1706659200, 1704067200) // true
|
|
@@ -9,7 +9,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
9
9
|
*
|
|
10
10
|
* @param value1 first unix epoch: a safe integer or a digit string
|
|
11
11
|
* @param value2 second unix epoch, in the same unit
|
|
12
|
-
* @param options optional:
|
|
12
|
+
* @param options optional: how both epochs are read
|
|
13
13
|
* @returns `true` if `value1` is before `value2`, otherwise `false`
|
|
14
14
|
*
|
|
15
15
|
* @example isBeforeUnix(1704067200, 1706659200) // true
|
|
@@ -20,5 +20,11 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
20
20
|
* @example isBeforeUnix("-1", "0") // true (digit strings)
|
|
21
21
|
*/
|
|
22
22
|
export declare function isBeforeUnix(value1: number | string, value2: number | string, options?: {
|
|
23
|
+
/**
|
|
24
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
25
|
+
* plural. Any other value returns `false`.
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue `"milliseconds"`
|
|
28
|
+
*/
|
|
23
29
|
epochUnit?: UnixUnit;
|
|
24
30
|
}): boolean;
|
|
@@ -10,7 +10,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
10
10
|
*
|
|
11
11
|
* @param value1 first unix epoch: a safe integer or a digit string
|
|
12
12
|
* @param value2 second unix epoch, in the same unit
|
|
13
|
-
* @param options optional:
|
|
13
|
+
* @param options optional: how both epochs are read
|
|
14
14
|
* @returns `true` if `value1` is before `value2`, otherwise `false`
|
|
15
15
|
*
|
|
16
16
|
* @example isBeforeUnix(1704067200, 1706659200) // true
|
|
@@ -2,15 +2,13 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Convert a Unix timestamp to a plain date string in the format "YYYY-MM-DD".
|
|
4
4
|
*
|
|
5
|
-
* - Converts to PlainDate in `timeZone
|
|
6
|
-
* unknown zone returns "".
|
|
5
|
+
* - Converts to PlainDate in `timeZone`.
|
|
7
6
|
* - `unix` is a safe integer or a string of optionally negative ASCII digits; anything else returns
|
|
8
7
|
* "".
|
|
9
|
-
* - Validates epoch unit ("seconds" | "milliseconds", singular accepted).
|
|
10
8
|
* - Returns "" for invalid input.
|
|
11
9
|
*
|
|
12
10
|
* @param unix Unix epoch: a safe integer or a digit string
|
|
13
|
-
* @param options optional:
|
|
11
|
+
* @param options optional: how `unix` is read and the zone its wall clock is read in
|
|
14
12
|
* @returns plain date string in "YYYY-MM-DD" format or "" on invalid input
|
|
15
13
|
*
|
|
16
14
|
* @example convertUnixToPlainDate(1709164800000, { timeZone: "UTC" }) // "2024-02-29"
|
|
@@ -22,6 +20,18 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
22
20
|
* @example convertUnixToPlainDate(NaN) // ""
|
|
23
21
|
*/
|
|
24
22
|
export declare function convertUnixToPlainDate(unix: number | string, options?: {
|
|
23
|
+
/**
|
|
24
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
25
|
+
* plural. Any other value returns `""`.
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue `"milliseconds"`
|
|
28
|
+
*/
|
|
25
29
|
epochUnit?: UnixUnit;
|
|
30
|
+
/**
|
|
31
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
32
|
+
* the system time zone. An unknown zone returns `""`.
|
|
33
|
+
*
|
|
34
|
+
* @defaultValue `"UTC"`
|
|
35
|
+
*/
|
|
26
36
|
timeZone?: string;
|
|
27
37
|
}): string;
|
|
@@ -5,15 +5,13 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Convert a Unix timestamp to a plain date string in the format "YYYY-MM-DD".
|
|
7
7
|
*
|
|
8
|
-
* - Converts to PlainDate in `timeZone
|
|
9
|
-
* unknown zone returns "".
|
|
8
|
+
* - Converts to PlainDate in `timeZone`.
|
|
10
9
|
* - `unix` is a safe integer or a string of optionally negative ASCII digits; anything else returns
|
|
11
10
|
* "".
|
|
12
|
-
* - Validates epoch unit ("seconds" | "milliseconds", singular accepted).
|
|
13
11
|
* - Returns "" for invalid input.
|
|
14
12
|
*
|
|
15
13
|
* @param unix Unix epoch: a safe integer or a digit string
|
|
16
|
-
* @param options optional:
|
|
14
|
+
* @param options optional: how `unix` is read and the zone its wall clock is read in
|
|
17
15
|
* @returns plain date string in "YYYY-MM-DD" format or "" on invalid input
|
|
18
16
|
*
|
|
19
17
|
* @example convertUnixToPlainDate(1709164800000, { timeZone: "UTC" }) // "2024-02-29"
|
|
@@ -2,15 +2,13 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Convert a Unix timestamp to a plain datetime string in the format "YYYY-MM-DDTHH:mm:ss".
|
|
4
4
|
*
|
|
5
|
-
* - Converts to PlainDateTime in `timeZone
|
|
6
|
-
* unknown zone returns "".
|
|
5
|
+
* - Converts to PlainDateTime in `timeZone`.
|
|
7
6
|
* - `unix` is a safe integer or a string of optionally negative ASCII digits; anything else returns
|
|
8
7
|
* "".
|
|
9
|
-
* - Validates epoch unit ("seconds" | "milliseconds", singular accepted).
|
|
10
8
|
* - Returns "" for invalid input.
|
|
11
9
|
*
|
|
12
10
|
* @param unix Unix epoch: a safe integer or a digit string
|
|
13
|
-
* @param options optional:
|
|
11
|
+
* @param options optional: how `unix` is read and the zone its wall clock is read in
|
|
14
12
|
* @returns plain datetime string in "YYYY-MM-DDTHH:mm:ss" format or "" on invalid input
|
|
15
13
|
*
|
|
16
14
|
* @example convertUnixToPlainDateTime(1709164800000, { timeZone: "UTC" }) // "2024-02-29T00:00:00"
|
|
@@ -20,6 +18,18 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
20
18
|
* @example convertUnixToPlainDateTime(NaN) // ""
|
|
21
19
|
*/
|
|
22
20
|
export declare function convertUnixToPlainDateTime(unix: number | string, options?: {
|
|
21
|
+
/**
|
|
22
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
23
|
+
* plural. Any other value returns `""`.
|
|
24
|
+
*
|
|
25
|
+
* @defaultValue `"milliseconds"`
|
|
26
|
+
*/
|
|
23
27
|
epochUnit?: UnixUnit;
|
|
28
|
+
/**
|
|
29
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
30
|
+
* the system time zone. An unknown zone returns `""`.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue `"UTC"`
|
|
33
|
+
*/
|
|
24
34
|
timeZone?: string;
|
|
25
35
|
}): string;
|
|
@@ -5,15 +5,13 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Convert a Unix timestamp to a plain datetime string in the format "YYYY-MM-DDTHH:mm:ss".
|
|
7
7
|
*
|
|
8
|
-
* - Converts to PlainDateTime in `timeZone
|
|
9
|
-
* unknown zone returns "".
|
|
8
|
+
* - Converts to PlainDateTime in `timeZone`.
|
|
10
9
|
* - `unix` is a safe integer or a string of optionally negative ASCII digits; anything else returns
|
|
11
10
|
* "".
|
|
12
|
-
* - Validates epoch unit ("seconds" | "milliseconds", singular accepted).
|
|
13
11
|
* - Returns "" for invalid input.
|
|
14
12
|
*
|
|
15
13
|
* @param unix Unix epoch: a safe integer or a digit string
|
|
16
|
-
* @param options optional:
|
|
14
|
+
* @param options optional: how `unix` is read and the zone its wall clock is read in
|
|
17
15
|
* @returns plain datetime string in "YYYY-MM-DDTHH:mm:ss" format or "" on invalid input
|
|
18
16
|
*
|
|
19
17
|
* @example convertUnixToPlainDateTime(1709164800000, { timeZone: "UTC" }) // "2024-02-29T00:00:00"
|
|
@@ -2,15 +2,13 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Convert a Unix timestamp to a plain time string in the format "HH:mm:ss".
|
|
4
4
|
*
|
|
5
|
-
* - Converts to PlainTime in `timeZone
|
|
6
|
-
* unknown zone returns "".
|
|
5
|
+
* - Converts to PlainTime in `timeZone`.
|
|
7
6
|
* - `unix` is a safe integer or a string of optionally negative ASCII digits; anything else returns
|
|
8
7
|
* "".
|
|
9
|
-
* - Validates epoch unit ("seconds" | "milliseconds", singular accepted).
|
|
10
8
|
* - Returns "" for invalid input.
|
|
11
9
|
*
|
|
12
10
|
* @param unix Unix epoch: a safe integer or a digit string
|
|
13
|
-
* @param options optional:
|
|
11
|
+
* @param options optional: how `unix` is read and the zone its wall clock is read in
|
|
14
12
|
* @returns plain time string in "HH:mm:ss" format or "" on invalid input
|
|
15
13
|
*
|
|
16
14
|
* @example convertUnixToPlainTime(1706659200000, { timeZone: "UTC" }) // "00:00:00"
|
|
@@ -20,6 +18,18 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
20
18
|
* @example convertUnixToPlainTime(NaN) // ""
|
|
21
19
|
*/
|
|
22
20
|
export declare function convertUnixToPlainTime(unix: number | string, options?: {
|
|
21
|
+
/**
|
|
22
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
23
|
+
* plural. Any other value returns `""`.
|
|
24
|
+
*
|
|
25
|
+
* @defaultValue `"milliseconds"`
|
|
26
|
+
*/
|
|
23
27
|
epochUnit?: UnixUnit;
|
|
28
|
+
/**
|
|
29
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
30
|
+
* the system time zone. An unknown zone returns `""`.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue `"UTC"`
|
|
33
|
+
*/
|
|
24
34
|
timeZone?: string;
|
|
25
35
|
}): string;
|
|
@@ -5,15 +5,13 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Convert a Unix timestamp to a plain time string in the format "HH:mm:ss".
|
|
7
7
|
*
|
|
8
|
-
* - Converts to PlainTime in `timeZone
|
|
9
|
-
* unknown zone returns "".
|
|
8
|
+
* - Converts to PlainTime in `timeZone`.
|
|
10
9
|
* - `unix` is a safe integer or a string of optionally negative ASCII digits; anything else returns
|
|
11
10
|
* "".
|
|
12
|
-
* - Validates epoch unit ("seconds" | "milliseconds", singular accepted).
|
|
13
11
|
* - Returns "" for invalid input.
|
|
14
12
|
*
|
|
15
13
|
* @param unix Unix epoch: a safe integer or a digit string
|
|
16
|
-
* @param options optional:
|
|
14
|
+
* @param options optional: how `unix` is read and the zone its wall clock is read in
|
|
17
15
|
* @returns plain time string in "HH:mm:ss" format or "" on invalid input
|
|
18
16
|
*
|
|
19
17
|
* @example convertUnixToPlainTime(1706659200000, { timeZone: "UTC" }) // "00:00:00"
|
|
@@ -5,12 +5,11 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
5
5
|
* - Converts to UTC Instant using Temporal.Instant.
|
|
6
6
|
* - `value` is a safe integer or a string of optionally negative ASCII digits; anything else, or an
|
|
7
7
|
* instant outside the Temporal range, returns "".
|
|
8
|
-
* - `options
|
|
9
|
-
* `"
|
|
10
|
-
* as a bare `"seconds"` string) returns "".
|
|
8
|
+
* - An explicit `undefined` `options` is the same as omitted; a non-object `options` (such as a
|
|
9
|
+
* bare `"seconds"` string) returns "".
|
|
11
10
|
*
|
|
12
11
|
* @param value epoch value: a safe integer or a digit string
|
|
13
|
-
* @param options optional:
|
|
12
|
+
* @param options optional: how `value` is read
|
|
14
13
|
* @returns UTC Instant string or "" on invalid
|
|
15
14
|
*
|
|
16
15
|
* @example convertUnixToUtc(1709164800000) // "2024-02-29T00:00:00Z"
|
|
@@ -21,5 +20,11 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
21
20
|
* @example convertUnixToUtc(NaN) // ""
|
|
22
21
|
*/
|
|
23
22
|
export declare function convertUnixToUtc(value: number | string, options?: {
|
|
23
|
+
/**
|
|
24
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
25
|
+
* plural. Any other value returns `""`.
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue `"milliseconds"`
|
|
28
|
+
*/
|
|
24
29
|
epochUnit?: UnixUnit;
|
|
25
30
|
}): string;
|
|
@@ -5,12 +5,11 @@ import { resolveUnixEpochUnitOptions, unixEpochToInstant, } from "../../internal
|
|
|
5
5
|
* - Converts to UTC Instant using Temporal.Instant.
|
|
6
6
|
* - `value` is a safe integer or a string of optionally negative ASCII digits; anything else, or an
|
|
7
7
|
* instant outside the Temporal range, returns "".
|
|
8
|
-
* - `options
|
|
9
|
-
* `"
|
|
10
|
-
* as a bare `"seconds"` string) returns "".
|
|
8
|
+
* - An explicit `undefined` `options` is the same as omitted; a non-object `options` (such as a
|
|
9
|
+
* bare `"seconds"` string) returns "".
|
|
11
10
|
*
|
|
12
11
|
* @param value epoch value: a safe integer or a digit string
|
|
13
|
-
* @param options optional:
|
|
12
|
+
* @param options optional: how `value` is read
|
|
14
13
|
* @returns UTC Instant string or "" on invalid
|
|
15
14
|
*
|
|
16
15
|
* @example convertUnixToUtc(1709164800000) // "2024-02-29T00:00:00Z"
|
|
@@ -5,13 +5,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
5
5
|
* - Converts to ZonedDateTime using the specified timezone (required; an unknown zone returns "").
|
|
6
6
|
* - `value` is a safe integer or a string of optionally negative ASCII digits; anything else, or an
|
|
7
7
|
* instant outside the Temporal range, returns "".
|
|
8
|
-
* - `options
|
|
9
|
-
* `"
|
|
10
|
-
* as a bare `"seconds"` string) returns "".
|
|
8
|
+
* - An explicit `undefined` `options` is the same as omitted; a non-object `options` (such as a
|
|
9
|
+
* bare `"seconds"` string) returns "".
|
|
11
10
|
*
|
|
12
11
|
* @param value epoch value: a safe integer or a digit string
|
|
13
|
-
* @param timeZone IANA
|
|
14
|
-
* @param options optional:
|
|
12
|
+
* @param timeZone IANA name or UTC offset
|
|
13
|
+
* @param options optional: how `value` is read
|
|
15
14
|
* @returns zoned ISO 8601 string or "" on invalid
|
|
16
15
|
*
|
|
17
16
|
* @example convertUnixToZoned(1709164800000, "America/New_York") // "2024-02-28T19:00:00-05:00[America/New_York]"
|
|
@@ -21,5 +20,11 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
21
20
|
* @example convertUnixToZoned(NaN, "UTC") // ""
|
|
22
21
|
*/
|
|
23
22
|
export declare function convertUnixToZoned(value: number | string, timeZone: string, options?: {
|
|
23
|
+
/**
|
|
24
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
25
|
+
* plural. Any other value returns `""`.
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue `"milliseconds"`
|
|
28
|
+
*/
|
|
24
29
|
epochUnit?: UnixUnit;
|
|
25
30
|
}): string;
|
|
@@ -6,13 +6,12 @@ import { isValidTimeZone } from "../../zoned/validate/index.js";
|
|
|
6
6
|
* - Converts to ZonedDateTime using the specified timezone (required; an unknown zone returns "").
|
|
7
7
|
* - `value` is a safe integer or a string of optionally negative ASCII digits; anything else, or an
|
|
8
8
|
* instant outside the Temporal range, returns "".
|
|
9
|
-
* - `options
|
|
10
|
-
* `"
|
|
11
|
-
* as a bare `"seconds"` string) returns "".
|
|
9
|
+
* - An explicit `undefined` `options` is the same as omitted; a non-object `options` (such as a
|
|
10
|
+
* bare `"seconds"` string) returns "".
|
|
12
11
|
*
|
|
13
12
|
* @param value epoch value: a safe integer or a digit string
|
|
14
|
-
* @param timeZone IANA
|
|
15
|
-
* @param options optional:
|
|
13
|
+
* @param timeZone IANA name or UTC offset
|
|
14
|
+
* @param options optional: how `value` is read
|
|
16
15
|
* @returns zoned ISO 8601 string or "" on invalid
|
|
17
16
|
*
|
|
18
17
|
* @example convertUnixToZoned(1709164800000, "America/New_York") // "2024-02-28T19:00:00-05:00[America/New_York]"
|
|
@@ -3,48 +3,56 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
3
3
|
* Options for `formatCalendarUnix`. Like `formatCalendar`, it takes a `reference` and a `timeStyle`
|
|
4
4
|
* (here also `"full"`); it adds `epochUnit` and `timeZone` for the unix domain.
|
|
5
5
|
*
|
|
6
|
-
* @remarks Members:
|
|
7
|
-
*
|
|
8
|
-
* | Member | Type | Default | Description |
|
|
9
|
-
* | --- | --- | --- | --- |
|
|
10
|
-
* | `reference` | `string\|number` | now (UTC) | Anchor epoch/ISO for the "today/tomorrow" comparison. |
|
|
11
|
-
* | `epochUnit` | `"milliseconds"\|"seconds"` | `"milliseconds"` | Interpretation of epoch `value`/`reference`; singular names are accepted. |
|
|
12
|
-
* | `timeZone` | `string` | `"UTC"` | IANA zone for both day-comparison and clock-time rendering; `"local"` is the system zone; an unknown zone returns `""`. |
|
|
13
|
-
* | `timeStyle` | `"short"\|"medium"\|"full"` | `"short"` | `Intl` `timeStyle` for the time-of-day portion. |
|
|
14
|
-
*
|
|
15
6
|
* @example
|
|
16
7
|
* import { FormatCalendarUnixOptions } from "@northguild/gmt/unix";
|
|
17
8
|
* const opts: FormatCalendarUnixOptions = { timeZone: "America/New_York" };
|
|
18
9
|
*/
|
|
19
10
|
export interface FormatCalendarUnixOptions {
|
|
20
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* The instant the day label is measured from, as a UTC ISO string, or an epoch in `epochUnit`
|
|
13
|
+
* given as a safe integer or a digit string. Any other value returns `""`.
|
|
14
|
+
*
|
|
15
|
+
* @defaultValue The current instant.
|
|
16
|
+
*/
|
|
21
17
|
reference?: string | number;
|
|
18
|
+
/**
|
|
19
|
+
* The unit `value` and a numeric `reference` are counted in: `"seconds"` or `"milliseconds"`,
|
|
20
|
+
* singular or plural. Any other value returns `""`.
|
|
21
|
+
*
|
|
22
|
+
* @defaultValue `"milliseconds"`
|
|
23
|
+
*/
|
|
22
24
|
epochUnit?: UnixUnit;
|
|
23
25
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
26
|
+
* The time zone used for both the calendar-day comparison and the rendered clock time: an IANA
|
|
27
|
+
* name, a UTC offset, or `"local"` for the system time zone. An unknown zone returns `""`, as
|
|
28
|
+
* ECMA-402 throws RangeError for it.
|
|
29
|
+
*
|
|
30
|
+
* @defaultValue `"UTC"`
|
|
27
31
|
*/
|
|
28
32
|
timeZone?: string;
|
|
29
|
-
/**
|
|
30
|
-
|
|
33
|
+
/**
|
|
34
|
+
* The length of the time-of-day part, as the `timeStyle` of `Intl.DateTimeFormat`. `"short"`
|
|
35
|
+
* writes hours and minutes, `"medium"` adds seconds, `"long"` adds the short time zone name
|
|
36
|
+
* ("EDT") and `"full"` the long one ("Eastern Daylight Time"). Any other value returns `""`.
|
|
37
|
+
*
|
|
38
|
+
* @defaultValue `"short"`
|
|
39
|
+
*/
|
|
40
|
+
timeStyle?: "short" | "medium" | "long" | "full";
|
|
31
41
|
}
|
|
32
42
|
/**
|
|
33
43
|
* Format a unix epoch value as a relative day label plus time-of-day, e.g.
|
|
34
44
|
* "Tomorrow at 2:30 PM" — the unix counterpart of `formatCalendar`. See
|
|
35
45
|
* that function's JSDoc for the day-label/threshold/connector design; this
|
|
36
|
-
* variant compares calendar days and renders the clock time in `timeZone
|
|
37
|
-
* (default `"UTC"`).
|
|
46
|
+
* variant compares calendar days and renders the clock time in `timeZone`.
|
|
38
47
|
*
|
|
39
48
|
* - `value` and a numeric `reference` are safe integers or strings of optionally negative ASCII
|
|
40
49
|
* digits; anything else returns `""`.
|
|
41
50
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
42
51
|
* rejects it.
|
|
43
|
-
* - An unknown `timeZone` returns `""`; `"local"` is the system zone.
|
|
44
52
|
*
|
|
45
53
|
* @param value unix epoch (string or number, per `epochUnit`) to format
|
|
46
54
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
47
|
-
* @param options optional:
|
|
55
|
+
* @param options optional: the reference instant, how epochs are read, the zone and the width of the time
|
|
48
56
|
* @returns the formatted calendar string, or "" on invalid input
|
|
49
57
|
*
|
|
50
58
|
* @example formatCalendarUnix(1710685845000, "en-US", { epochUnit: "milliseconds", timeZone: "America/New_York" }) // day label + time relative to "now", or the absolute fallback beyond the ±6-day threshold
|
|
@@ -2,22 +2,21 @@ import { formatCalendarInstants } from "../../internal/formatCalendarDays.js";
|
|
|
2
2
|
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
3
3
|
import { resolveUnixEpochUnit, unixEpochToInstant, } from "../../internal/unixEpochValue.js";
|
|
4
4
|
import { resolveUnixFormatReference } from "../../internal/unixFormatReference.js";
|
|
5
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
5
6
|
/**
|
|
6
7
|
* Format a unix epoch value as a relative day label plus time-of-day, e.g.
|
|
7
8
|
* "Tomorrow at 2:30 PM" — the unix counterpart of `formatCalendar`. See
|
|
8
9
|
* that function's JSDoc for the day-label/threshold/connector design; this
|
|
9
|
-
* variant compares calendar days and renders the clock time in `timeZone
|
|
10
|
-
* (default `"UTC"`).
|
|
10
|
+
* variant compares calendar days and renders the clock time in `timeZone`.
|
|
11
11
|
*
|
|
12
12
|
* - `value` and a numeric `reference` are safe integers or strings of optionally negative ASCII
|
|
13
13
|
* digits; anything else returns `""`.
|
|
14
14
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
15
15
|
* rejects it.
|
|
16
|
-
* - An unknown `timeZone` returns `""`; `"local"` is the system zone.
|
|
17
16
|
*
|
|
18
17
|
* @param value unix epoch (string or number, per `epochUnit`) to format
|
|
19
18
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
20
|
-
* @param options optional:
|
|
19
|
+
* @param options optional: the reference instant, how epochs are read, the zone and the width of the time
|
|
21
20
|
* @returns the formatted calendar string, or "" on invalid input
|
|
22
21
|
*
|
|
23
22
|
* @example formatCalendarUnix(1710685845000, "en-US", { epochUnit: "milliseconds", timeZone: "America/New_York" }) // day label + time relative to "now", or the absolute fallback beyond the ±6-day threshold
|
|
@@ -47,7 +46,7 @@ export function formatCalendarUnix(value, locale, options = {}) {
|
|
|
47
46
|
if (reference === null)
|
|
48
47
|
return "";
|
|
49
48
|
try {
|
|
50
|
-
return formatCalendarInstants(target, reference, timeZone, locale, options.timeStyle
|
|
49
|
+
return formatCalendarInstants(target, reference, timeZone, locale, optionOrDefault(options.timeStyle, "short"));
|
|
51
50
|
}
|
|
52
51
|
catch {
|
|
53
52
|
return "";
|
|
@@ -1,12 +1,63 @@
|
|
|
1
1
|
import type { RelativeRoundingMethod, RelativeUnit } from "../../types/index.js";
|
|
2
2
|
import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
3
|
+
/**
|
|
4
|
+
* Options for `formatRelativeUnix`: the wording of the phrase, the unit and rounding of the
|
|
5
|
+
* distance, and the reference instant, epoch unit and time zone the distance is measured with.
|
|
6
|
+
*/
|
|
3
7
|
export interface FormatRelativeUnixOptions {
|
|
8
|
+
/**
|
|
9
|
+
* The length of the unit name, as the `style` of `Intl.RelativeTimeFormat`: `"long"` ("in 3
|
|
10
|
+
* months"), `"short"` ("in 3 mo.") or `"narrow"` (the locale's most compact form).
|
|
11
|
+
*
|
|
12
|
+
* @defaultValue `"long"`
|
|
13
|
+
*/
|
|
4
14
|
style?: "long" | "short" | "narrow";
|
|
15
|
+
/**
|
|
16
|
+
* Whether a distance may be written as a word instead of a number, as the `numeric` option of
|
|
17
|
+
* `Intl.RelativeTimeFormat`. `"auto"` uses the locale's word where it has one ("yesterday", "next
|
|
18
|
+
* year"); `"always"` writes the number every time ("1 day ago").
|
|
19
|
+
*
|
|
20
|
+
* @defaultValue `"auto"`
|
|
21
|
+
*/
|
|
5
22
|
numeric?: "always" | "auto";
|
|
23
|
+
/**
|
|
24
|
+
* The unit the distance is written in, whatever its size: `"second"`, `"minute"`, `"hour"`,
|
|
25
|
+
* `"day"`, `"week"`, `"month"` or `"year"`, singular or plural. Any other value returns `""`.
|
|
26
|
+
* Omitted, the unit is picked from the distance: second under a minute, minute under an hour,
|
|
27
|
+
* hour under a day, day under 7 days, week under 28, month under 365 and year beyond.
|
|
28
|
+
*
|
|
29
|
+
* @defaultValue None. The unit is picked from the distance.
|
|
30
|
+
*/
|
|
6
31
|
largestUnit?: RelativeUnit | `${RelativeUnit}s`;
|
|
32
|
+
/**
|
|
33
|
+
* The way a fractional distance becomes the whole number displayed: `"round"` goes to the nearest
|
|
34
|
+
* whole number, `"floor"` down and `"ceil"` up. It applies to the signed value, where a past
|
|
35
|
+
* distance is negative, so `"floor"` turns −1.5 hours into "2 hours ago".
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue `"round"`
|
|
38
|
+
*/
|
|
7
39
|
roundingMethod?: RelativeRoundingMethod;
|
|
40
|
+
/**
|
|
41
|
+
* The unit `value` and a numeric `reference` are counted in: `"seconds"` or `"milliseconds"`,
|
|
42
|
+
* singular or plural. Any other value returns `""`.
|
|
43
|
+
*
|
|
44
|
+
* @defaultValue `"milliseconds"`
|
|
45
|
+
*/
|
|
8
46
|
epochUnit?: UnixUnit;
|
|
47
|
+
/**
|
|
48
|
+
* The instant the distance is measured from, as a UTC ISO string, or an epoch in `epochUnit`
|
|
49
|
+
* given as a safe integer or a digit string. Any other value returns `""`.
|
|
50
|
+
*
|
|
51
|
+
* @defaultValue The current instant.
|
|
52
|
+
*/
|
|
9
53
|
reference?: string | number;
|
|
54
|
+
/**
|
|
55
|
+
* The time zone that anchors a calendar unit (week, month or year): an IANA name, a UTC offset,
|
|
56
|
+
* or `"local"` for the system time zone. An unknown zone returns `""` whatever the unit, as
|
|
57
|
+
* ECMA-402 throws RangeError for it.
|
|
58
|
+
*
|
|
59
|
+
* @defaultValue `"UTC"`
|
|
60
|
+
*/
|
|
10
61
|
timeZone?: string;
|
|
11
62
|
}
|
|
12
63
|
/**
|
|
@@ -18,10 +69,8 @@ export interface FormatRelativeUnixOptions {
|
|
|
18
69
|
* "3 years ago".
|
|
19
70
|
* - **Compatibility:** before 1.16.0 week, month and year were never auto-picked ("1,096 days ago").
|
|
20
71
|
* Pass `largestUnit: "day"` to keep a day count.
|
|
21
|
-
* - `
|
|
22
|
-
*
|
|
23
|
-
* `"UTC"`, as in every `unix/` function; `"local"` is the system zone; an unknown zone returns
|
|
24
|
-
* `""` whatever the unit (ECMA-402 throws RangeError for it).
|
|
72
|
+
* - `largestUnit` is one of the seven units from `"second"` to `"year"`, singular or plural. Any
|
|
73
|
+
* other value returns `""`.
|
|
25
74
|
* - `value` and a numeric `reference` are safe integers or strings of optionally negative ASCII
|
|
26
75
|
* digits; `largestUnit` and `epochUnit` accept singular or plural names.
|
|
27
76
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
@@ -29,7 +78,7 @@ export interface FormatRelativeUnixOptions {
|
|
|
29
78
|
*
|
|
30
79
|
* @param value unix epoch (string or number, per `epochUnit`) to format
|
|
31
80
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
32
|
-
* @param options optional:
|
|
81
|
+
* @param options optional: the wording, the unit and rounding of the distance, and what it is measured from
|
|
33
82
|
* @returns the formatted relative-time string, or "" on invalid input
|
|
34
83
|
*
|
|
35
84
|
* @example formatRelativeUnix(1710685845000, "en-US", { epochUnit: "milliseconds", reference: 1805358645000 }) // "3 years ago"
|
|
@@ -13,10 +13,8 @@ import { durationTotal } from "../../internal/zonedWallClockDifference.js";
|
|
|
13
13
|
* "3 years ago".
|
|
14
14
|
* - **Compatibility:** before 1.16.0 week, month and year were never auto-picked ("1,096 days ago").
|
|
15
15
|
* Pass `largestUnit: "day"` to keep a day count.
|
|
16
|
-
* - `
|
|
17
|
-
*
|
|
18
|
-
* `"UTC"`, as in every `unix/` function; `"local"` is the system zone; an unknown zone returns
|
|
19
|
-
* `""` whatever the unit (ECMA-402 throws RangeError for it).
|
|
16
|
+
* - `largestUnit` is one of the seven units from `"second"` to `"year"`, singular or plural. Any
|
|
17
|
+
* other value returns `""`.
|
|
20
18
|
* - `value` and a numeric `reference` are safe integers or strings of optionally negative ASCII
|
|
21
19
|
* digits; `largestUnit` and `epochUnit` accept singular or plural names.
|
|
22
20
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
@@ -24,7 +22,7 @@ import { durationTotal } from "../../internal/zonedWallClockDifference.js";
|
|
|
24
22
|
*
|
|
25
23
|
* @param value unix epoch (string or number, per `epochUnit`) to format
|
|
26
24
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
27
|
-
* @param options optional:
|
|
25
|
+
* @param options optional: the wording, the unit and rounding of the distance, and what it is measured from
|
|
28
26
|
* @returns the formatted relative-time string, or "" on invalid input
|
|
29
27
|
*
|
|
30
28
|
* @example formatRelativeUnix(1710685845000, "en-US", { epochUnit: "milliseconds", reference: 1805358645000 }) // "3 years ago"
|
|
@@ -1,19 +1,37 @@
|
|
|
1
1
|
import type { UnixUnit } from "../validate/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Options for `formatUnix`: every `Intl.DateTimeFormatOptions` field, plus the epoch unit, the
|
|
4
|
+
* time zone the value is rendered in and whether the zone name is shown.
|
|
5
|
+
*/
|
|
2
6
|
export interface FormatUnixOptions extends Intl.DateTimeFormatOptions {
|
|
7
|
+
/**
|
|
8
|
+
* The unit `value` is counted in: `"seconds"` or `"milliseconds"`, singular or plural. Any other
|
|
9
|
+
* value returns `""`.
|
|
10
|
+
*
|
|
11
|
+
* @defaultValue `"milliseconds"`
|
|
12
|
+
*/
|
|
3
13
|
epochUnit?: UnixUnit;
|
|
14
|
+
/**
|
|
15
|
+
* The time zone the value is rendered in: an IANA name, a UTC offset, or `"local"` for the system
|
|
16
|
+
* time zone. An unknown zone returns `""`, as ECMA-402 throws RangeError for it.
|
|
17
|
+
*
|
|
18
|
+
* @defaultValue `"UTC"`
|
|
19
|
+
*/
|
|
4
20
|
timeZone?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Whether the value is formatted as a zoned date-time, which adds the localized time zone name.
|
|
23
|
+
* When `false` the wall clock is formatted on its own and `timeZoneName` is ignored.
|
|
24
|
+
*
|
|
25
|
+
* @defaultValue `false`
|
|
26
|
+
*/
|
|
5
27
|
includeTimeZoneName?: boolean;
|
|
6
28
|
}
|
|
7
29
|
/**
|
|
8
30
|
* Format a unix epoch value (string or number) as a localized date/time string.
|
|
9
31
|
*
|
|
10
32
|
* - Returns `""` if the input is not a valid unix epoch value for the given `epochUnit`.
|
|
11
|
-
* - `epochUnit` controls whether the input is interpreted as `"milliseconds"` or `"seconds"`; defaults to `"milliseconds"`.
|
|
12
33
|
* - `value` is a safe integer or a string of optionally negative ASCII digits (no whitespace, `+`,
|
|
13
|
-
* decimal point or exponent)
|
|
14
|
-
* - `timeZone` controls the IANA zone used for rendering; defaults to `"UTC"`, `"local"` is the
|
|
15
|
-
* system zone, and an unknown zone returns `""` (ECMA-402 throws RangeError for it).
|
|
16
|
-
* - `includeTimeZoneName` appends the localized timezone name when true.
|
|
34
|
+
* decimal point or exponent).
|
|
17
35
|
* - Without `includeTimeZoneName` the wall clock is formatted as Temporal's ECMA-402 PlainDateTime
|
|
18
36
|
* format does (`timeZoneName` is ignored); with it, as the ZonedDateTime format does (a short
|
|
19
37
|
* zone name is added to the defaults). Either way the requested fields and style widths are kept,
|
|
@@ -26,7 +44,7 @@ export interface FormatUnixOptions extends Intl.DateTimeFormatOptions {
|
|
|
26
44
|
*
|
|
27
45
|
* @param value unix epoch value to format (string or number, per `epochUnit`)
|
|
28
46
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
29
|
-
* @param options optional:
|
|
47
|
+
* @param options optional: `Intl.DateTimeFormatOptions` fields, plus how `value` is read, the zone and whether its name is shown
|
|
30
48
|
* @returns the formatted date/time string, or "" on invalid input
|
|
31
49
|
*
|
|
32
50
|
* @example formatUnix("1710685845000", "en-US", { epochUnit: "milliseconds" }) // "3/17/2024, 2:30:45 PM"
|
|
@@ -3,16 +3,14 @@ import { formatWallClockOrZoned } from "../../internal/instantFormatOptions.js";
|
|
|
3
3
|
import { normalizeDateTime } from "../../internal/normalizeDateTime.js";
|
|
4
4
|
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
5
5
|
import { resolveUnixEpochUnit, unixEpochToInstant, } from "../../internal/unixEpochValue.js";
|
|
6
|
+
import { readDateTimeFormatOptions } from "../../internal/readDateTimeFormatOptions.js";
|
|
7
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
6
8
|
/**
|
|
7
9
|
* Format a unix epoch value (string or number) as a localized date/time string.
|
|
8
10
|
*
|
|
9
11
|
* - Returns `""` if the input is not a valid unix epoch value for the given `epochUnit`.
|
|
10
|
-
* - `epochUnit` controls whether the input is interpreted as `"milliseconds"` or `"seconds"`; defaults to `"milliseconds"`.
|
|
11
12
|
* - `value` is a safe integer or a string of optionally negative ASCII digits (no whitespace, `+`,
|
|
12
|
-
* decimal point or exponent)
|
|
13
|
-
* - `timeZone` controls the IANA zone used for rendering; defaults to `"UTC"`, `"local"` is the
|
|
14
|
-
* system zone, and an unknown zone returns `""` (ECMA-402 throws RangeError for it).
|
|
15
|
-
* - `includeTimeZoneName` appends the localized timezone name when true.
|
|
13
|
+
* decimal point or exponent).
|
|
16
14
|
* - Without `includeTimeZoneName` the wall clock is formatted as Temporal's ECMA-402 PlainDateTime
|
|
17
15
|
* format does (`timeZoneName` is ignored); with it, as the ZonedDateTime format does (a short
|
|
18
16
|
* zone name is added to the defaults). Either way the requested fields and style widths are kept,
|
|
@@ -25,7 +23,7 @@ import { resolveUnixEpochUnit, unixEpochToInstant, } from "../../internal/unixEp
|
|
|
25
23
|
*
|
|
26
24
|
* @param value unix epoch value to format (string or number, per `epochUnit`)
|
|
27
25
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
28
|
-
* @param options optional:
|
|
26
|
+
* @param options optional: `Intl.DateTimeFormatOptions` fields, plus how `value` is read, the zone and whether its name is shown
|
|
29
27
|
* @returns the formatted date/time string, or "" on invalid input
|
|
30
28
|
*
|
|
31
29
|
* @example formatUnix("1710685845000", "en-US", { epochUnit: "milliseconds" }) // "3/17/2024, 2:30:45 PM"
|
|
@@ -48,7 +46,10 @@ export function formatUnix(value, locale, options) {
|
|
|
48
46
|
// ECMA-402 CoerceOptionsToObject: undefined is defaults; null is a TypeError.
|
|
49
47
|
if (options === null)
|
|
50
48
|
return "";
|
|
51
|
-
|
|
49
|
+
// Each option is read once (GetOption), inherited ones included.
|
|
50
|
+
const epochUnit = options?.epochUnit;
|
|
51
|
+
const includeTimeZoneName = optionOrDefault(options?.includeTimeZoneName, false);
|
|
52
|
+
const { timeZone, ...intlOptions } = readDateTimeFormatOptions(options);
|
|
52
53
|
const resolvedUnit = resolveUnixEpochUnit(epochUnit);
|
|
53
54
|
if (resolvedUnit === null)
|
|
54
55
|
return "";
|