@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
|
@@ -4,15 +4,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Instant.compare for comparison.
|
|
6
6
|
* - Returns false if start > end or inputs are invalid.
|
|
7
|
-
* - Use options.inclusiveStart/inclusiveEnd to control boundaries.
|
|
8
7
|
* - Each value is a safe integer or a digit string (`"1705000000000"`); anything else returns false.
|
|
9
|
-
* - `timeZone` is only validated (the comparison is on exact instants): omitted is UTC, `"local"`
|
|
10
|
-
* the system zone, and an unknown zone returns false.
|
|
11
8
|
*
|
|
12
9
|
* @param value Unix epoch to check: a safe integer, or a string of optionally negative ASCII digits
|
|
13
10
|
* @param start Unix epoch for range start, in the same form and unit
|
|
14
11
|
* @param end Unix epoch for range end, in the same form and unit
|
|
15
|
-
* @param options optional:
|
|
12
|
+
* @param options optional: how the epochs are read and whether each end of the range is included
|
|
16
13
|
* @returns boolean indicating whether value is between start and end
|
|
17
14
|
*
|
|
18
15
|
* @example isBetweenUnix(1705000000000, 1704000000000, 1706000000000) // true
|
|
@@ -22,8 +19,33 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
22
19
|
* @example isBetweenUnix(1705000000000, 1704000000000, 1706000000000, { timeZone: "Mars/Olympus" }) // false (unknown zone)
|
|
23
20
|
*/
|
|
24
21
|
export declare function isBetweenUnix(value: number | string, start: number | string, end: number | string, options?: {
|
|
22
|
+
/**
|
|
23
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
24
|
+
* plural. Any other value returns `false`.
|
|
25
|
+
*
|
|
26
|
+
* @defaultValue `"milliseconds"`
|
|
27
|
+
*/
|
|
25
28
|
epochUnit?: UnixUnit;
|
|
29
|
+
/**
|
|
30
|
+
* A time zone that is validated only: the comparison is on exact instants, so the zone never
|
|
31
|
+
* changes the result. It is an IANA name, a UTC offset, or `"local"` for the system time zone.
|
|
32
|
+
* An unknown zone returns `false`.
|
|
33
|
+
*
|
|
34
|
+
* @defaultValue `"UTC"`
|
|
35
|
+
*/
|
|
26
36
|
timeZone?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Whether `value` equal to `start` counts as inside the range. `false` requires it to be after
|
|
39
|
+
* `start`.
|
|
40
|
+
*
|
|
41
|
+
* @defaultValue `true`
|
|
42
|
+
*/
|
|
27
43
|
inclusiveStart?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Whether `value` equal to `end` counts as inside the range. `false` requires it to be before
|
|
46
|
+
* `end`.
|
|
47
|
+
*
|
|
48
|
+
* @defaultValue `true`
|
|
49
|
+
*/
|
|
28
50
|
inclusiveEnd?: boolean;
|
|
29
51
|
}): boolean;
|
|
@@ -3,20 +3,18 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
3
3
|
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
4
4
|
import { resolveUnixEpochUnit, unixEpochToInstant, } from "../../internal/unixEpochValue.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
6
7
|
/**
|
|
7
8
|
* Return true when the Unix timestamp is between start and end (inclusive by default).
|
|
8
9
|
*
|
|
9
10
|
* - Uses Temporal.Instant.compare for comparison.
|
|
10
11
|
* - Returns false if start > end or inputs are invalid.
|
|
11
|
-
* - Use options.inclusiveStart/inclusiveEnd to control boundaries.
|
|
12
12
|
* - Each value is a safe integer or a digit string (`"1705000000000"`); anything else returns false.
|
|
13
|
-
* - `timeZone` is only validated (the comparison is on exact instants): omitted is UTC, `"local"`
|
|
14
|
-
* the system zone, and an unknown zone returns false.
|
|
15
13
|
*
|
|
16
14
|
* @param value Unix epoch to check: a safe integer, or a string of optionally negative ASCII digits
|
|
17
15
|
* @param start Unix epoch for range start, in the same form and unit
|
|
18
16
|
* @param end Unix epoch for range end, in the same form and unit
|
|
19
|
-
* @param options optional:
|
|
17
|
+
* @param options optional: how the epochs are read and whether each end of the range is included
|
|
20
18
|
* @returns boolean indicating whether value is between start and end
|
|
21
19
|
*
|
|
22
20
|
* @example isBetweenUnix(1705000000000, 1704000000000, 1706000000000) // true
|
|
@@ -36,8 +34,8 @@ export function isBetweenUnix(value, start, end, options) {
|
|
|
36
34
|
// reading of it gives `false`: ECMA-402 reads a boolean option through ToBoolean (null → false),
|
|
37
35
|
// and the house rule rejects an invalid member outright — neither yields `true`. So `null`
|
|
38
36
|
// behaves here exactly as `0` and `""` already do.
|
|
39
|
-
const inclusiveStart = options?.inclusiveStart
|
|
40
|
-
const inclusiveEnd = options?.inclusiveEnd
|
|
37
|
+
const inclusiveStart = optionOrDefault(options?.inclusiveStart, true);
|
|
38
|
+
const inclusiveEnd = optionOrDefault(options?.inclusiveEnd, true);
|
|
41
39
|
if (!timeZone || epochUnit === null)
|
|
42
40
|
return false;
|
|
43
41
|
const instant = unixEpochToInstant(value, epochUnit);
|
|
@@ -14,12 +14,10 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
14
14
|
* 1727532300000 (03:50+13:45) truncated to the hour gives 1727532900000, 15 minutes later.
|
|
15
15
|
* Use `floorToZone` for a boundary that never exceeds the instant.
|
|
16
16
|
* - `value` is a safe integer or a digit string (`"1706661000000"`); anything else returns null.
|
|
17
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone. An unknown zone returns
|
|
18
|
-
* null.
|
|
19
17
|
* - Returns null for invalid input.
|
|
20
18
|
*
|
|
21
19
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
22
|
-
* @param options
|
|
20
|
+
* @param options rounding settings: the unit to round to, how to round, and how `value` is read
|
|
23
21
|
* @returns Rounded Unix epoch number, or null on invalid input
|
|
24
22
|
*
|
|
25
23
|
* @example roundUnix(1706661000000, { smallestUnit: "hour", timeZone: "UTC" }) // 1706662800000 (00:30 is a tie; halfExpand rounds up)
|
|
@@ -33,9 +31,39 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
33
31
|
* @example roundUnix(NaN, { smallestUnit: "hour" }) // null
|
|
34
32
|
*/
|
|
35
33
|
export declare function roundUnix(value: number | string, options: {
|
|
34
|
+
/**
|
|
35
|
+
* The unit to round to, from `"day"` down to `"nanosecond"`, singular or plural. A larger unit
|
|
36
|
+
* returns `null`, as `Temporal.ZonedDateTime.prototype.round` accepts none above `"day"`.
|
|
37
|
+
*/
|
|
36
38
|
smallestUnit: Temporal.SmallestUnit<"day" | "hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond">;
|
|
39
|
+
/**
|
|
40
|
+
* The number of `smallestUnit` steps to round to, such as `15` with `"minute"` for quarter
|
|
41
|
+
* hours. It must divide the next larger unit evenly and be smaller than it, and must be `1` for
|
|
42
|
+
* `"day"`; any other value returns `null`. A non-integer is truncated first, as Temporal does.
|
|
43
|
+
*
|
|
44
|
+
* @defaultValue `1`, Temporal's default.
|
|
45
|
+
*/
|
|
37
46
|
roundingIncrement?: number;
|
|
47
|
+
/**
|
|
48
|
+
* The step a value between two steps is rounded to. `"halfExpand"` picks the nearer step and
|
|
49
|
+
* sends a tie to the later one; `"floor"` and `"trunc"` pick the earlier step, `"ceil"` and
|
|
50
|
+
* `"expand"` the later, and the other `"half…"` modes differ only in how a tie breaks.
|
|
51
|
+
*
|
|
52
|
+
* @defaultValue `"halfExpand"`, Temporal's default.
|
|
53
|
+
*/
|
|
38
54
|
roundingMode?: Temporal.RoundingMode;
|
|
55
|
+
/**
|
|
56
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
57
|
+
* plural. Any other value returns `null`. The result is in the same unit.
|
|
58
|
+
*
|
|
59
|
+
* @defaultValue `"milliseconds"`
|
|
60
|
+
*/
|
|
39
61
|
epochUnit?: UnixUnit;
|
|
62
|
+
/**
|
|
63
|
+
* The time zone the wall clock is rounded in: an IANA name, a UTC offset, or `"local"` for the
|
|
64
|
+
* system time zone. An unknown zone returns `null`.
|
|
65
|
+
*
|
|
66
|
+
* @defaultValue `"UTC"`
|
|
67
|
+
*/
|
|
40
68
|
timeZone?: string;
|
|
41
69
|
}): number | null;
|
|
@@ -28,12 +28,10 @@ function isZonedRoundingUnit(unit) {
|
|
|
28
28
|
* 1727532300000 (03:50+13:45) truncated to the hour gives 1727532900000, 15 minutes later.
|
|
29
29
|
* Use `floorToZone` for a boundary that never exceeds the instant.
|
|
30
30
|
* - `value` is a safe integer or a digit string (`"1706661000000"`); anything else returns null.
|
|
31
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone. An unknown zone returns
|
|
32
|
-
* null.
|
|
33
31
|
* - Returns null for invalid input.
|
|
34
32
|
*
|
|
35
33
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
36
|
-
* @param options
|
|
34
|
+
* @param options rounding settings: the unit to round to, how to round, and how `value` is read
|
|
37
35
|
* @returns Rounded Unix epoch number, or null on invalid input
|
|
38
36
|
*
|
|
39
37
|
* @example roundUnix(1706661000000, { smallestUnit: "hour", timeZone: "UTC" }) // 1706662800000 (00:30 is a tie; halfExpand rounds up)
|
|
@@ -53,9 +51,8 @@ export function roundUnix(value, options) {
|
|
|
53
51
|
const { roundingIncrement, roundingMode } = options;
|
|
54
52
|
const epochUnit = resolveUnixEpochUnit(options.epochUnit);
|
|
55
53
|
const timeZone = normalizeTimeZone(options.timeZone);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
: options.smallestUnit;
|
|
54
|
+
// One read (GetOption): resolveDateTimeUnit returns a value that is not a string unchanged.
|
|
55
|
+
const smallestUnit = resolveDateTimeUnit(options.smallestUnit);
|
|
59
56
|
if (!timeZone || epochUnit === null || !isValidDateTimeUnit(smallestUnit)) {
|
|
60
57
|
return null;
|
|
61
58
|
}
|
|
@@ -12,20 +12,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
12
12
|
* - `fields` may set any of `year`, `month`, `monthCode`, `day`, `hour`, `minute`, `second`,
|
|
13
13
|
* `millisecond`, `microsecond`, `nanosecond`, `era`, and/or `eraYear`; omitted fields keep
|
|
14
14
|
* their current value. An empty object is a no-op.
|
|
15
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
16
|
-
* `month: 2` on a value whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
17
|
-
* (resulting in null).
|
|
18
15
|
* - `value` is a safe integer or a digit string (`"1710072000000"`); anything else returns null.
|
|
19
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone.
|
|
20
|
-
* - `offset` defaults to `"prefer"`, as `Temporal.ZonedDateTime.prototype.with`: the source's
|
|
21
|
-
* offset is kept while it is still valid for the new wall-clock time, so a repeated hour stays on
|
|
22
|
-
* the same side of a fall-back. Pass `offset: "ignore"` to re-resolve the wall clock with
|
|
23
|
-
* `disambiguation`.
|
|
24
16
|
* - Returns null for invalid input.
|
|
25
17
|
*
|
|
26
18
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
27
19
|
* @param fields Partial<Temporal.ZonedDateTimeLike> object (excluding calendar/timeZone/offset) specifying fields to set
|
|
28
|
-
* @param options optional:
|
|
20
|
+
* @param options optional: how `value` is read, and how an out-of-range field or a skipped or repeated wall-clock time is resolved
|
|
29
21
|
* @returns Unix epoch number with fields set, or null on invalid input
|
|
30
22
|
*
|
|
31
23
|
* @example setUnix(1710072000000, { hour: 9 }, { timeZone: "UTC" }) // 1710061200000 (2024-03-10T09:00:00Z)
|
|
@@ -36,9 +28,43 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
36
28
|
* @example setUnix(NaN, { hour: 9 }) // null
|
|
37
29
|
*/
|
|
38
30
|
export declare function setUnix(value: number | string, fields: Omit<Temporal.ZonedDateTimeLike, "calendar" | "timeZone" | "offset">, options?: {
|
|
31
|
+
/**
|
|
32
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
33
|
+
* plural. Any other value returns `null`. The result is in the same unit.
|
|
34
|
+
*
|
|
35
|
+
* @defaultValue `"milliseconds"`
|
|
36
|
+
*/
|
|
39
37
|
epochUnit?: UnixUnit;
|
|
38
|
+
/**
|
|
39
|
+
* The time zone the fields are set in: an IANA name, a UTC offset, or `"local"` for the system
|
|
40
|
+
* time zone. An unknown zone returns `null`.
|
|
41
|
+
*
|
|
42
|
+
* @defaultValue `"UTC"`
|
|
43
|
+
*/
|
|
40
44
|
timeZone?: string;
|
|
45
|
+
/**
|
|
46
|
+
* How an out-of-range field is handled, such as `month: 2` on a value whose day is 31.
|
|
47
|
+
* `"constrain"` clamps to the nearest valid value, and `"reject"` returns `null`.
|
|
48
|
+
*
|
|
49
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
50
|
+
*/
|
|
41
51
|
overflow?: Overflow;
|
|
52
|
+
/**
|
|
53
|
+
* How a wall-clock time that a zone transition skips or repeats is resolved, once `offset` does
|
|
54
|
+
* not settle it. `"compatible"` takes the later time in a gap and the earlier of a repeat,
|
|
55
|
+
* `"earlier"` and `"later"` take that side, and `"reject"` returns `null`.
|
|
56
|
+
*
|
|
57
|
+
* @defaultValue `"compatible"`, Temporal's default.
|
|
58
|
+
*/
|
|
42
59
|
disambiguation?: Disambiguation;
|
|
60
|
+
/**
|
|
61
|
+
* How the source's UTC offset is weighed against the new wall-clock time, as in
|
|
62
|
+
* `Temporal.ZonedDateTime.prototype.with`. `"prefer"` keeps it while it is still valid, so a
|
|
63
|
+
* repeated hour stays on the same side of a fall-back, and `"use"` keeps it always. `"ignore"`
|
|
64
|
+
* re-resolves the wall clock with `disambiguation`, and `"reject"` returns `null` when the
|
|
65
|
+
* offset is no longer valid.
|
|
66
|
+
*
|
|
67
|
+
* @defaultValue `"prefer"`, Temporal's default.
|
|
68
|
+
*/
|
|
43
69
|
offset?: Offset;
|
|
44
70
|
}): number | null;
|
|
@@ -2,6 +2,7 @@ import { resolveOverflow, withZonedFields } from "../../internal/index.js";
|
|
|
2
2
|
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
3
3
|
import { resolveUnixEpochUnit, toUnixEpoch, unixEpochToInstant, } from "../../internal/unixEpochValue.js";
|
|
4
4
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
5
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
5
6
|
/**
|
|
6
7
|
* Return a Unix epoch value with the given `fields` set on `value`, interpreted in `timeZone`.
|
|
7
8
|
*
|
|
@@ -13,20 +14,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
13
14
|
* - `fields` may set any of `year`, `month`, `monthCode`, `day`, `hour`, `minute`, `second`,
|
|
14
15
|
* `millisecond`, `microsecond`, `nanosecond`, `era`, and/or `eraYear`; omitted fields keep
|
|
15
16
|
* their current value. An empty object is a no-op.
|
|
16
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
17
|
-
* `month: 2` on a value whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
18
|
-
* (resulting in null).
|
|
19
17
|
* - `value` is a safe integer or a digit string (`"1710072000000"`); anything else returns null.
|
|
20
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone.
|
|
21
|
-
* - `offset` defaults to `"prefer"`, as `Temporal.ZonedDateTime.prototype.with`: the source's
|
|
22
|
-
* offset is kept while it is still valid for the new wall-clock time, so a repeated hour stays on
|
|
23
|
-
* the same side of a fall-back. Pass `offset: "ignore"` to re-resolve the wall clock with
|
|
24
|
-
* `disambiguation`.
|
|
25
18
|
* - Returns null for invalid input.
|
|
26
19
|
*
|
|
27
20
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
28
21
|
* @param fields Partial<Temporal.ZonedDateTimeLike> object (excluding calendar/timeZone/offset) specifying fields to set
|
|
29
|
-
* @param options optional:
|
|
22
|
+
* @param options optional: how `value` is read, and how an out-of-range field or a skipped or repeated wall-clock time is resolved
|
|
30
23
|
* @returns Unix epoch number with fields set, or null on invalid input
|
|
31
24
|
*
|
|
32
25
|
* @example setUnix(1710072000000, { hour: 9 }, { timeZone: "UTC" }) // 1710061200000 (2024-03-10T09:00:00Z)
|
|
@@ -49,11 +42,9 @@ export function setUnix(value, fields, options) {
|
|
|
49
42
|
if (instant === null)
|
|
50
43
|
return null;
|
|
51
44
|
const overflow = resolveOverflow(options?.overflow);
|
|
52
|
-
const disambiguation = options?.disambiguation
|
|
53
|
-
? "compatible"
|
|
54
|
-
: options.disambiguation;
|
|
45
|
+
const disambiguation = optionOrDefault(options?.disambiguation, "compatible");
|
|
55
46
|
// Temporal ZonedDateTime.prototype.with: GetTemporalOffsetOption(options, "prefer").
|
|
56
|
-
const offset = options?.offset
|
|
47
|
+
const offset = optionOrDefault(options?.offset, "prefer");
|
|
57
48
|
try {
|
|
58
49
|
const zoned = instant.toZonedDateTimeISO(timeZone);
|
|
59
50
|
// Temporal.ZonedDateTime.prototype.with() throws on an empty fields object ("no supported
|
|
@@ -9,11 +9,9 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
9
9
|
* takes neither. Those ignored options were removed in 1.16.0.
|
|
10
10
|
* - Returns null for invalid input.
|
|
11
11
|
* - `value` is a safe integer or a digit string (`"1706659200000"`); anything else returns null.
|
|
12
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone. An unknown zone returns
|
|
13
|
-
* null.
|
|
14
12
|
*
|
|
15
13
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
16
|
-
* @param options optional:
|
|
14
|
+
* @param options optional: how `value` is read and the zone the quarter is found in
|
|
17
15
|
* @returns Unix epoch number representing the start of the quarter, or null on invalid input
|
|
18
16
|
*
|
|
19
17
|
* @example startOfQuarterForUnix(1706659200000, { timeZone: "UTC" }) // 1704067200000
|
|
@@ -23,6 +21,18 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
23
21
|
* @example startOfQuarterForUnix(NaN) // null
|
|
24
22
|
*/
|
|
25
23
|
export declare function startOfQuarterForUnix(value: number | string, options?: {
|
|
24
|
+
/**
|
|
25
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
26
|
+
* plural. Any other value returns `null`. The result is in the same unit.
|
|
27
|
+
*
|
|
28
|
+
* @defaultValue `"milliseconds"`
|
|
29
|
+
*/
|
|
26
30
|
epochUnit?: UnixUnit;
|
|
31
|
+
/**
|
|
32
|
+
* The time zone the unit boundaries are found in: an IANA name, a UTC offset, or `"local"` for
|
|
33
|
+
* the system time zone. An unknown zone returns `null`.
|
|
34
|
+
*
|
|
35
|
+
* @defaultValue `"UTC"`
|
|
36
|
+
*/
|
|
27
37
|
timeZone?: string;
|
|
28
38
|
}): number | null;
|
|
@@ -10,11 +10,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
10
10
|
* takes neither. Those ignored options were removed in 1.16.0.
|
|
11
11
|
* - Returns null for invalid input.
|
|
12
12
|
* - `value` is a safe integer or a digit string (`"1706659200000"`); anything else returns null.
|
|
13
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone. An unknown zone returns
|
|
14
|
-
* null.
|
|
15
13
|
*
|
|
16
14
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
17
|
-
* @param options optional:
|
|
15
|
+
* @param options optional: how `value` is read and the zone the quarter is found in
|
|
18
16
|
* @returns Unix epoch number representing the start of the quarter, or null on invalid input
|
|
19
17
|
*
|
|
20
18
|
* @example startOfQuarterForUnix(1706659200000, { timeZone: "UTC" }) // 1704067200000
|
|
@@ -8,15 +8,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
8
8
|
* - Returns the real start of the local `unit` containing `value` in `timeZone` — the same bucket `floorToZone` uses — so the result is never after `value`: the second pass of a repeated fall-back hour starts at its own 1am, and `Pacific/Chatham`'s 15-minute spring-forward hour starts at 03:45.
|
|
9
9
|
* - Takes no `disambiguation` or `offset`: a boundary is always a real instant, as TC39's `startOfDay()`
|
|
10
10
|
* takes neither. Those ignored options were removed in 1.16.0.
|
|
11
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns null, for every unit.
|
|
12
11
|
* - Returns null for invalid input.
|
|
13
12
|
* - `value` is a safe integer or a digit string (`"1706659200000"`); anything else returns null.
|
|
14
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone. An unknown zone returns
|
|
15
|
-
* null.
|
|
16
13
|
*
|
|
17
14
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
18
15
|
* @param unit Temporal.DateUnit | Temporal.TimeUnit to specify the start
|
|
19
|
-
* @param options optional:
|
|
16
|
+
* @param options optional: how `value` is read, the zone the unit is found in and the first day of the week
|
|
20
17
|
* @returns Unix epoch number representing the start of the unit, or null on invalid input
|
|
21
18
|
*
|
|
22
19
|
* @example startOfUnix(1706659200000, "year", { timeZone: "UTC" }) // 1704067200000
|
|
@@ -29,7 +26,26 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
29
26
|
* @example startOfUnix(NaN, "day") // null
|
|
30
27
|
*/
|
|
31
28
|
export declare function startOfUnix(value: number | string, unit: Temporal.DateTimeUnit | Temporal.PluralUnit<Temporal.DateTimeUnit>, options?: {
|
|
29
|
+
/**
|
|
30
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
31
|
+
* plural. Any other value returns `null`. The result is in the same unit.
|
|
32
|
+
*
|
|
33
|
+
* @defaultValue `"milliseconds"`
|
|
34
|
+
*/
|
|
32
35
|
epochUnit?: UnixUnit;
|
|
36
|
+
/**
|
|
37
|
+
* The time zone the unit boundaries are found in: an IANA name, a UTC offset, or `"local"` for
|
|
38
|
+
* the system time zone. An unknown zone returns `null`.
|
|
39
|
+
*
|
|
40
|
+
* @defaultValue `"UTC"`
|
|
41
|
+
*/
|
|
33
42
|
timeZone?: string;
|
|
43
|
+
/**
|
|
44
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
45
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
46
|
+
* null, whatever the unit.
|
|
47
|
+
*
|
|
48
|
+
* @defaultValue `"monday"`
|
|
49
|
+
*/
|
|
34
50
|
weekStartsOn?: "monday" | "sunday";
|
|
35
51
|
}): number | null;
|
|
@@ -10,15 +10,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
10
10
|
* - Returns the real start of the local `unit` containing `value` in `timeZone` — the same bucket `floorToZone` uses — so the result is never after `value`: the second pass of a repeated fall-back hour starts at its own 1am, and `Pacific/Chatham`'s 15-minute spring-forward hour starts at 03:45.
|
|
11
11
|
* - Takes no `disambiguation` or `offset`: a boundary is always a real instant, as TC39's `startOfDay()`
|
|
12
12
|
* takes neither. Those ignored options were removed in 1.16.0.
|
|
13
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns null, for every unit.
|
|
14
13
|
* - Returns null for invalid input.
|
|
15
14
|
* - `value` is a safe integer or a digit string (`"1706659200000"`); anything else returns null.
|
|
16
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone. An unknown zone returns
|
|
17
|
-
* null.
|
|
18
15
|
*
|
|
19
16
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
20
17
|
* @param unit Temporal.DateUnit | Temporal.TimeUnit to specify the start
|
|
21
|
-
* @param options optional:
|
|
18
|
+
* @param options optional: how `value` is read, the zone the unit is found in and the first day of the week
|
|
22
19
|
* @returns Unix epoch number representing the start of the unit, or null on invalid input
|
|
23
20
|
*
|
|
24
21
|
* @example startOfUnix(1706659200000, "year", { timeZone: "UTC" }) // 1704067200000
|
|
@@ -6,15 +6,11 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
6
6
|
* - Converts to ZonedDateTime, subtracts the duration, then converts back to epoch.
|
|
7
7
|
* - Validates duration units and values.
|
|
8
8
|
* - `value` is a safe integer or a digit string (`"1706659200000"`); anything else returns null.
|
|
9
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone.
|
|
10
9
|
* - Returns null for invalid input.
|
|
11
10
|
*
|
|
12
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
13
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in null).
|
|
14
|
-
*
|
|
15
11
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
16
12
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
17
|
-
* @param options optional:
|
|
13
|
+
* @param options optional: how `value` is read and how an out-of-range result day is handled
|
|
18
14
|
* @returns Unix epoch number after subtraction, or null on invalid input
|
|
19
15
|
*
|
|
20
16
|
* @example subtractUnix(1706745600000, { days: 1 }) // 1706659200000
|
|
@@ -25,7 +21,25 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
25
21
|
* @example subtractUnix(1706659200000, { days: 1 }, { timeZone: "Mars/Olympus" }) // null (unknown zone)
|
|
26
22
|
*/
|
|
27
23
|
export declare function subtractUnix(value: number | string, units: Partial<Record<DateTimeDurationUnit, number>>, options?: {
|
|
24
|
+
/**
|
|
25
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
26
|
+
* plural. Any other value returns `null`. The result is in the same unit.
|
|
27
|
+
*
|
|
28
|
+
* @defaultValue `"milliseconds"`
|
|
29
|
+
*/
|
|
28
30
|
epochUnit?: UnixUnit;
|
|
31
|
+
/**
|
|
32
|
+
* The time zone the calendar arithmetic runs in: an IANA name, a UTC offset, or `"local"` for
|
|
33
|
+
* the system time zone. An unknown zone returns `null`.
|
|
34
|
+
*
|
|
35
|
+
* @defaultValue `"UTC"`
|
|
36
|
+
*/
|
|
29
37
|
timeZone?: string;
|
|
38
|
+
/**
|
|
39
|
+
* How a result day that does not exist in its month is handled, such as March 31 minus one
|
|
40
|
+
* month. `"constrain"` clamps to the last valid day, and `"reject"` returns `null`.
|
|
41
|
+
*
|
|
42
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
43
|
+
*/
|
|
30
44
|
overflow?: Overflow;
|
|
31
45
|
}): number | null;
|
|
@@ -9,15 +9,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
9
|
* - Converts to ZonedDateTime, subtracts the duration, then converts back to epoch.
|
|
10
10
|
* - Validates duration units and values.
|
|
11
11
|
* - `value` is a safe integer or a digit string (`"1706659200000"`); anything else returns null.
|
|
12
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone.
|
|
13
12
|
* - Returns null for invalid input.
|
|
14
13
|
*
|
|
15
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
16
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in null).
|
|
17
|
-
*
|
|
18
14
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
19
15
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
20
|
-
* @param options optional:
|
|
16
|
+
* @param options optional: how `value` is read and how an out-of-range result day is handled
|
|
21
17
|
* @returns Unix epoch number after subtraction, or null on invalid input
|
|
22
18
|
*
|
|
23
19
|
* @example subtractUnix(1706745600000, { days: 1 }) // 1706659200000
|
|
@@ -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` and `value2` are equal, otherwise `false`
|
|
14
14
|
*
|
|
15
15
|
* @example areUnixEqual(1706659200, 1706659200) // true
|
|
@@ -21,5 +21,11 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
21
21
|
* @example areUnixEqual("1706659200.0", 1706659200) // false (not a digit string)
|
|
22
22
|
*/
|
|
23
23
|
export declare function areUnixEqual(value1: number | string, value2: number | string, options?: {
|
|
24
|
+
/**
|
|
25
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
26
|
+
* plural. Any other value returns `false`.
|
|
27
|
+
*
|
|
28
|
+
* @defaultValue `"milliseconds"`
|
|
29
|
+
*/
|
|
24
30
|
epochUnit?: UnixUnit;
|
|
25
31
|
}): 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` and `value2` are equal, otherwise `false`
|
|
15
15
|
*
|
|
16
16
|
* @example areUnixEqual(1706659200, 1706659200) // true
|
|
@@ -3,19 +3,17 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Compare two Unix epoch values for equality at a given unit.
|
|
5
5
|
*
|
|
6
|
-
* - Both values are resolved to the start of `unit` in `options.timeZone`
|
|
7
|
-
*
|
|
8
|
-
* calendar days in that zone, not raw epoch buckets.
|
|
6
|
+
* - Both values are resolved to the start of `unit` in `options.timeZone` before comparison,
|
|
7
|
+
* so `"day"` compares calendar days in that zone, not raw epoch buckets.
|
|
9
8
|
* - The start of `unit` is the real local bucket (see `startOfUnix`), so two epochs are equal
|
|
10
9
|
* only when they fall in the same bucket — including one a zone transition shortened, like
|
|
11
10
|
* `Pacific/Chatham`'s 15-minute 03:00 hour on its 2024 spring-forward.
|
|
12
11
|
* - `"month"` requires the same month AND year, matching `areDateTimesEqualBy`.
|
|
13
12
|
* - Each value is a safe integer or a string of optionally negative ASCII digits; `unit` may be
|
|
14
|
-
* singular or plural.
|
|
15
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
13
|
+
* singular or plural.
|
|
16
14
|
* - Returns false for an unsupported unit (including `"quarter"`) or invalid input.
|
|
17
15
|
*
|
|
18
|
-
* Mapping from date-fns
|
|
16
|
+
* Mapping from date-fns:
|
|
19
17
|
* - `isSameDay(a, b)` → `areUnixEqualBy(a, b, "day")`
|
|
20
18
|
* - `isSameMonth(a, b)` → `areUnixEqualBy(a, b, "month")`
|
|
21
19
|
* - `isSameYear(a, b)` → `areUnixEqualBy(a, b, "year")`
|
|
@@ -23,7 +21,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
23
21
|
* @param value1 first Unix epoch: a safe integer or a digit string
|
|
24
22
|
* @param value2 second Unix epoch, in the same unit
|
|
25
23
|
* @param unit Temporal.DateUnit | Temporal.TimeUnit to compare by
|
|
26
|
-
* @param options optional:
|
|
24
|
+
* @param options optional: how both epochs are read, the zone the unit is found in and the first day of the week
|
|
27
25
|
* @returns true if both values share the same start-of-unit boundary, false on an unsupported unit or invalid input
|
|
28
26
|
*
|
|
29
27
|
* @example areUnixEqualBy(1710498000000, 1710503000000, "day", { timeZone: "UTC" }) // true (both fall on 2024-03-15 in UTC)
|
|
@@ -32,7 +30,26 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
32
30
|
* @example areUnixEqualBy(Number.NaN, 1710498000000, "day") // false
|
|
33
31
|
*/
|
|
34
32
|
export declare function areUnixEqualBy(value1: number | string, value2: number | string, unit: Temporal.DateTimeUnit | Temporal.PluralUnit<Temporal.DateTimeUnit>, options?: {
|
|
33
|
+
/**
|
|
34
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
35
|
+
* plural. Any other value returns `false`.
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue `"milliseconds"`
|
|
38
|
+
*/
|
|
35
39
|
epochUnit?: UnixUnit;
|
|
40
|
+
/**
|
|
41
|
+
* The time zone the unit boundaries are found in: an IANA name, a UTC offset, or `"local"` for
|
|
42
|
+
* the system time zone. An unknown zone returns `false`.
|
|
43
|
+
*
|
|
44
|
+
* @defaultValue `"UTC"`
|
|
45
|
+
*/
|
|
36
46
|
timeZone?: string;
|
|
47
|
+
/**
|
|
48
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
49
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
50
|
+
* false, whatever the unit.
|
|
51
|
+
*
|
|
52
|
+
* @defaultValue `"monday"`
|
|
53
|
+
*/
|
|
37
54
|
weekStartsOn?: "monday" | "sunday";
|
|
38
55
|
}): boolean;
|
|
@@ -3,19 +3,17 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Compare two Unix epoch values for equality at a given unit.
|
|
5
5
|
*
|
|
6
|
-
* - Both values are resolved to the start of `unit` in `options.timeZone`
|
|
7
|
-
*
|
|
8
|
-
* calendar days in that zone, not raw epoch buckets.
|
|
6
|
+
* - Both values are resolved to the start of `unit` in `options.timeZone` before comparison,
|
|
7
|
+
* so `"day"` compares calendar days in that zone, not raw epoch buckets.
|
|
9
8
|
* - The start of `unit` is the real local bucket (see `startOfUnix`), so two epochs are equal
|
|
10
9
|
* only when they fall in the same bucket — including one a zone transition shortened, like
|
|
11
10
|
* `Pacific/Chatham`'s 15-minute 03:00 hour on its 2024 spring-forward.
|
|
12
11
|
* - `"month"` requires the same month AND year, matching `areDateTimesEqualBy`.
|
|
13
12
|
* - Each value is a safe integer or a string of optionally negative ASCII digits; `unit` may be
|
|
14
|
-
* singular or plural.
|
|
15
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
13
|
+
* singular or plural.
|
|
16
14
|
* - Returns false for an unsupported unit (including `"quarter"`) or invalid input.
|
|
17
15
|
*
|
|
18
|
-
* Mapping from date-fns
|
|
16
|
+
* Mapping from date-fns:
|
|
19
17
|
* - `isSameDay(a, b)` → `areUnixEqualBy(a, b, "day")`
|
|
20
18
|
* - `isSameMonth(a, b)` → `areUnixEqualBy(a, b, "month")`
|
|
21
19
|
* - `isSameYear(a, b)` → `areUnixEqualBy(a, b, "year")`
|
|
@@ -23,7 +21,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
23
21
|
* @param value1 first Unix epoch: a safe integer or a digit string
|
|
24
22
|
* @param value2 second Unix epoch, in the same unit
|
|
25
23
|
* @param unit Temporal.DateUnit | Temporal.TimeUnit to compare by
|
|
26
|
-
* @param options optional:
|
|
24
|
+
* @param options optional: how both epochs are read, the zone the unit is found in and the first day of the week
|
|
27
25
|
* @returns true if both values share the same start-of-unit boundary, false on an unsupported unit or invalid input
|
|
28
26
|
*
|
|
29
27
|
* @example areUnixEqualBy(1710498000000, 1710503000000, "day", { timeZone: "UTC" }) // true (both fall on 2024-03-15 in UTC)
|
|
@@ -36,8 +34,14 @@ export function areUnixEqualBy(value1, value2, unit, options) {
|
|
|
36
34
|
return false;
|
|
37
35
|
}
|
|
38
36
|
try {
|
|
39
|
-
|
|
40
|
-
const
|
|
37
|
+
// Each option is read once (GetOption); both values are then measured with the same ones.
|
|
38
|
+
const read = {
|
|
39
|
+
epochUnit: options?.epochUnit,
|
|
40
|
+
timeZone: options?.timeZone,
|
|
41
|
+
weekStartsOn: options?.weekStartsOn,
|
|
42
|
+
};
|
|
43
|
+
const start1 = startOfUnix(value1, unit, read);
|
|
44
|
+
const start2 = startOfUnix(value2, unit, read);
|
|
41
45
|
return start1 !== null && start1 === start2;
|
|
42
46
|
}
|
|
43
47
|
catch {
|
|
@@ -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 after `value2`, otherwise `false`
|
|
14
14
|
*
|
|
15
15
|
* @example isAfterUnix(1706659200, 1704067200) // true
|
|
@@ -19,5 +19,11 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
19
19
|
* @example isAfterUnix(" 1706659200", 1704067200) // false (a padded string is not an epoch)
|
|
20
20
|
*/
|
|
21
21
|
export declare function isAfterUnix(value1: number | string, value2: number | string, options?: {
|
|
22
|
+
/**
|
|
23
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
24
|
+
* plural. Any other value returns `false`.
|
|
25
|
+
*
|
|
26
|
+
* @defaultValue `"milliseconds"`
|
|
27
|
+
*/
|
|
22
28
|
epochUnit?: UnixUnit;
|
|
23
29
|
}): boolean;
|