@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
|
@@ -3,12 +3,10 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
3
3
|
* Return the current Unix timestamp in either seconds or milliseconds.
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Now.instant() to get current time.
|
|
6
|
-
* - `options.epochUnit` is `"seconds"` or `"milliseconds"` (singular accepted), default
|
|
7
|
-
* `"milliseconds"`. Seconds floor toward −∞, as POSIX `time_t` counts whole elapsed seconds.
|
|
8
6
|
* - An explicit `undefined` is the same as omitted. An unknown `epochUnit`, or a non-object
|
|
9
7
|
* `options` (such as a bare `"seconds"` string), returns null.
|
|
10
8
|
*
|
|
11
|
-
* @param options optional:
|
|
9
|
+
* @param options optional: the unit of the result
|
|
12
10
|
* @returns the current unix timestamp, or null on invalid options
|
|
13
11
|
*
|
|
14
12
|
* @example getUnixNow() // 1700000000000
|
|
@@ -17,5 +15,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
17
15
|
* @example getUnixNow("seconds" as never) // null (options must be an object)
|
|
18
16
|
*/
|
|
19
17
|
export declare function getUnixNow(options?: {
|
|
18
|
+
/**
|
|
19
|
+
* The unit of the returned epoch: `"seconds"` or `"milliseconds"`, singular or plural. Seconds
|
|
20
|
+
* floor toward −∞, as POSIX `time_t` counts whole elapsed seconds. Any other value returns
|
|
21
|
+
* `null`.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue `"milliseconds"`
|
|
24
|
+
*/
|
|
20
25
|
epochUnit?: UnixUnit;
|
|
21
26
|
}): number | null;
|
|
@@ -4,12 +4,10 @@ import { resolveUnixEpochUnitOptions, toUnixEpoch, } from "../../internal/unixEp
|
|
|
4
4
|
* Return the current Unix timestamp in either seconds or milliseconds.
|
|
5
5
|
*
|
|
6
6
|
* - Uses Temporal.Now.instant() to get current time.
|
|
7
|
-
* - `options.epochUnit` is `"seconds"` or `"milliseconds"` (singular accepted), default
|
|
8
|
-
* `"milliseconds"`. Seconds floor toward −∞, as POSIX `time_t` counts whole elapsed seconds.
|
|
9
7
|
* - An explicit `undefined` is the same as omitted. An unknown `epochUnit`, or a non-object
|
|
10
8
|
* `options` (such as a bare `"seconds"` string), returns null.
|
|
11
9
|
*
|
|
12
|
-
* @param options optional:
|
|
10
|
+
* @param options optional: the unit of the result
|
|
13
11
|
* @returns the current unix timestamp, or null on invalid options
|
|
14
12
|
*
|
|
15
13
|
* @example getUnixNow() // 1700000000000
|
|
@@ -7,10 +7,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
7
7
|
* - The end boundary is excluded: midnight to midnight two days later counts 2 days.
|
|
8
8
|
* - A zero-length interval (`start === end`) returns `0`: the empty `[start, start)` holds no instant,
|
|
9
9
|
* so it touches no unit (before 1.16.0 it counted 1 when mid-unit).
|
|
10
|
-
* -
|
|
11
|
-
* accepted). Each is a safe integer or a string of optionally negative ASCII digits.
|
|
12
|
-
* - Uses `options.timeZone` for calendar-unit boundaries: omitted is `"UTC"`, `"local"` is the
|
|
13
|
-
* system zone, and an unknown zone returns `null`.
|
|
10
|
+
* - `start` and `end` are each a safe integer or a string of optionally negative ASCII digits.
|
|
14
11
|
* - Counts the real local buckets `floorToZone`/`bucketRange` walk in that zone: a bucket
|
|
15
12
|
* shorter than its unit still counts once (a 15-minute `Pacific/Chatham` hour on its
|
|
16
13
|
* spring-forward), and a local day the zone deleted counts not at all
|
|
@@ -28,7 +25,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
28
25
|
* @param start Unix epoch in `epochUnit` — interval start
|
|
29
26
|
* @param end Unix epoch in `epochUnit` — interval end
|
|
30
27
|
* @param unit unit string — any `DateTimeUnit`, singular or plural
|
|
31
|
-
* @param options optional:
|
|
28
|
+
* @param options optional: how the epochs are read and the zone the boundaries are found in
|
|
32
29
|
* @returns number of unit boundaries touched, or null on invalid input
|
|
33
30
|
*
|
|
34
31
|
* @example intervalCountUnix(0, 86400000, "hour") // 24
|
|
@@ -40,6 +37,18 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
40
37
|
* @example intervalCountUnix(NaN, 86400000, "hour") // null
|
|
41
38
|
*/
|
|
42
39
|
export declare function intervalCountUnix(start: number | string, end: number | string, unit: string, options?: {
|
|
40
|
+
/**
|
|
41
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
42
|
+
* plural. Any other value returns `null`.
|
|
43
|
+
*
|
|
44
|
+
* @defaultValue `"milliseconds"`
|
|
45
|
+
*/
|
|
43
46
|
epochUnit?: UnixUnit;
|
|
47
|
+
/**
|
|
48
|
+
* The time zone the unit boundaries are found in: an IANA name, a UTC offset, or `"local"` for
|
|
49
|
+
* the system time zone. An unknown zone returns `null`.
|
|
50
|
+
*
|
|
51
|
+
* @defaultValue `"UTC"`
|
|
52
|
+
*/
|
|
44
53
|
timeZone?: string;
|
|
45
54
|
}): number | null;
|
|
@@ -10,10 +10,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
10
10
|
* - The end boundary is excluded: midnight to midnight two days later counts 2 days.
|
|
11
11
|
* - A zero-length interval (`start === end`) returns `0`: the empty `[start, start)` holds no instant,
|
|
12
12
|
* so it touches no unit (before 1.16.0 it counted 1 when mid-unit).
|
|
13
|
-
* -
|
|
14
|
-
* accepted). Each is a safe integer or a string of optionally negative ASCII digits.
|
|
15
|
-
* - Uses `options.timeZone` for calendar-unit boundaries: omitted is `"UTC"`, `"local"` is the
|
|
16
|
-
* system zone, and an unknown zone returns `null`.
|
|
13
|
+
* - `start` and `end` are each a safe integer or a string of optionally negative ASCII digits.
|
|
17
14
|
* - Counts the real local buckets `floorToZone`/`bucketRange` walk in that zone: a bucket
|
|
18
15
|
* shorter than its unit still counts once (a 15-minute `Pacific/Chatham` hour on its
|
|
19
16
|
* spring-forward), and a local day the zone deleted counts not at all
|
|
@@ -31,7 +28,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
31
28
|
* @param start Unix epoch in `epochUnit` — interval start
|
|
32
29
|
* @param end Unix epoch in `epochUnit` — interval end
|
|
33
30
|
* @param unit unit string — any `DateTimeUnit`, singular or plural
|
|
34
|
-
* @param options optional:
|
|
31
|
+
* @param options optional: how the epochs are read and the zone the boundaries are found in
|
|
35
32
|
* @returns number of unit boundaries touched, or null on invalid input
|
|
36
33
|
*
|
|
37
34
|
* @example intervalCountUnix(0, 86400000, "hour") // 24
|
|
@@ -28,6 +28,12 @@
|
|
|
28
28
|
* @example intervalDifferenceUnix(5, 10, 0, 5) // [{ start: 5, end: 10 }] (B ends where A starts)
|
|
29
29
|
*/
|
|
30
30
|
export declare function intervalDifferenceUnix(aStart: number | string, aEnd: number | string, bStart: number | string, bEnd: number | string): Array<{
|
|
31
|
+
/** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
|
|
31
32
|
start: number;
|
|
33
|
+
/**
|
|
34
|
+
* The first instant after the interval, in the same unit as `start`. It is exclusive: the
|
|
35
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
36
|
+
* than `start`.
|
|
37
|
+
*/
|
|
32
38
|
end: number;
|
|
33
39
|
}>;
|
|
@@ -9,20 +9,21 @@
|
|
|
9
9
|
* milliseconds), taken in `bigint` so no product past 2^53 loses a unit: the split is exact
|
|
10
10
|
* whenever the total divides evenly by `n`, and within half a unit of the exact cut otherwise (an
|
|
11
11
|
* exact half rounds up). No time zone is involved.
|
|
12
|
+
* - When `n` is larger than the number of whole epoch units in the interval, some pieces are empty (their
|
|
13
|
+
* `start` equals their `end`): the result always has exactly `n` pieces.
|
|
12
14
|
* - `n === 1` returns the original interval unchanged, as a single-element array.
|
|
13
15
|
* - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals, each
|
|
14
16
|
* an empty `[start, start)` that holds no instant.
|
|
15
17
|
* - Returns `[]` when `n` is not a positive integer, or on invalid input (`start`/`end` that is
|
|
16
18
|
* not a safe integer or numeric string of one — fractions, empty strings and values beyond
|
|
17
19
|
* ±(2^53 − 1) are invalid — or `start > end`).
|
|
18
|
-
* - `
|
|
19
|
-
*
|
|
20
|
-
* before building any piece. An invalid `maxPieces` also returns `[]`.
|
|
20
|
+
* - Returns `[]` before building any piece when `n` exceeds `options.maxPieces` or the longest
|
|
21
|
+
* possible array (2^32 - 1).
|
|
21
22
|
*
|
|
22
23
|
* @param start Unix epoch value, in the one unit all epoch arguments share — interval start
|
|
23
24
|
* @param end Unix epoch value, in the one unit all epoch arguments share — interval end
|
|
24
25
|
* @param n number of equal sub-intervals to produce (positive integer)
|
|
25
|
-
* @param options optional:
|
|
26
|
+
* @param options optional: the limit on the number of pieces
|
|
26
27
|
* @returns array of `n` `{ start, end }` records, or `[]` on invalid input
|
|
27
28
|
*
|
|
28
29
|
* @example intervalDivideEquallyUnix(0, 90000000, 3) // [{ start: 0, end: 30000000 }, { start: 30000000, end: 60000000 }, { start: 60000000, end: 90000000 }]
|
|
@@ -34,8 +35,21 @@
|
|
|
34
35
|
* @example intervalDivideEquallyUnix(0, 90000000, 3, { maxPieces: 3 }) // [{ start: 0, end: 30000000 }, { start: 30000000, end: 60000000 }, { start: 60000000, end: 90000000 }]
|
|
35
36
|
*/
|
|
36
37
|
export declare function intervalDivideEquallyUnix(start: number | string, end: number | string, n: number, options?: {
|
|
38
|
+
/**
|
|
39
|
+
* The most records the result may hold. A result that would hold more, or more than the longest
|
|
40
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
41
|
+
* positive safe integer also returns `[]`.
|
|
42
|
+
*
|
|
43
|
+
* @defaultValue `1_000_000`
|
|
44
|
+
*/
|
|
37
45
|
maxPieces?: number;
|
|
38
46
|
}): Array<{
|
|
47
|
+
/** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
|
|
39
48
|
start: number;
|
|
49
|
+
/**
|
|
50
|
+
* The first instant after the interval, in the same unit as `start`. It is exclusive: the
|
|
51
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
52
|
+
* `start`, which makes the interval empty.
|
|
53
|
+
*/
|
|
40
54
|
end: number;
|
|
41
55
|
}>;
|
|
@@ -13,20 +13,21 @@ import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js
|
|
|
13
13
|
* milliseconds), taken in `bigint` so no product past 2^53 loses a unit: the split is exact
|
|
14
14
|
* whenever the total divides evenly by `n`, and within half a unit of the exact cut otherwise (an
|
|
15
15
|
* exact half rounds up). No time zone is involved.
|
|
16
|
+
* - When `n` is larger than the number of whole epoch units in the interval, some pieces are empty (their
|
|
17
|
+
* `start` equals their `end`): the result always has exactly `n` pieces.
|
|
16
18
|
* - `n === 1` returns the original interval unchanged, as a single-element array.
|
|
17
19
|
* - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals, each
|
|
18
20
|
* an empty `[start, start)` that holds no instant.
|
|
19
21
|
* - Returns `[]` when `n` is not a positive integer, or on invalid input (`start`/`end` that is
|
|
20
22
|
* not a safe integer or numeric string of one — fractions, empty strings and values beyond
|
|
21
23
|
* ±(2^53 − 1) are invalid — or `start > end`).
|
|
22
|
-
* - `
|
|
23
|
-
*
|
|
24
|
-
* before building any piece. An invalid `maxPieces` also returns `[]`.
|
|
24
|
+
* - Returns `[]` before building any piece when `n` exceeds `options.maxPieces` or the longest
|
|
25
|
+
* possible array (2^32 - 1).
|
|
25
26
|
*
|
|
26
27
|
* @param start Unix epoch value, in the one unit all epoch arguments share — interval start
|
|
27
28
|
* @param end Unix epoch value, in the one unit all epoch arguments share — interval end
|
|
28
29
|
* @param n number of equal sub-intervals to produce (positive integer)
|
|
29
|
-
* @param options optional:
|
|
30
|
+
* @param options optional: the limit on the number of pieces
|
|
30
31
|
* @returns array of `n` `{ start, end }` records, or `[]` on invalid input
|
|
31
32
|
*
|
|
32
33
|
* @example intervalDivideEquallyUnix(0, 90000000, 3) // [{ start: 0, end: 30000000 }, { start: 30000000, end: 60000000 }, { start: 60000000, end: 90000000 }]
|
|
@@ -5,15 +5,16 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
5
5
|
*
|
|
6
6
|
* - `anchor: "start"` treats `value` as the interval start and adds `duration` to get the end.
|
|
7
7
|
* - `anchor: "end"` treats `value` as the interval end and subtracts `duration` to get the start.
|
|
8
|
-
* - Converts to `ZonedDateTime` in `timeZone
|
|
9
|
-
* is the system zone), adds/subtracts
|
|
8
|
+
* - Converts to `ZonedDateTime` in `timeZone`, adds/subtracts
|
|
10
9
|
* the duration there, then converts back to epoch — this is what lets calendar units (years/months/
|
|
11
10
|
* weeks/days) resolve without a `relativeTo`: unlike a bare `Temporal.Instant`, the `ZonedDateTime`
|
|
12
11
|
* supplies its own implicit reference point.
|
|
12
|
+
* - The computed boundary is floored to a whole `epochUnit`, so a duration shorter than one unit does
|
|
13
|
+
* not survive: with `anchor: "start"` the interval is empty (`"PT0.5S"` in seconds gives the
|
|
14
|
+
* same `{ start, end }` as `"PT0S"`), and with `anchor: "end"` the start falls back to the
|
|
15
|
+
* previous whole unit, making the interval one unit long.
|
|
13
16
|
* - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
|
|
14
17
|
* happens, mirroring `intervalIntersectionUnix`'s `start > end` rejection.
|
|
15
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
16
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
|
|
17
18
|
* - Returns null on invalid input (a `value` that is not a safe integer or numeric string of one —
|
|
18
19
|
* fractions, empty strings and values beyond ±(2^53 − 1) are invalid — invalid `duration`, an
|
|
19
20
|
* `anchor` other than `"start"`/`"end"`, or an invalid/unavailable timeZone).
|
|
@@ -21,7 +22,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
21
22
|
* @param value Unix epoch value (seconds or milliseconds): a safe integer or a digit string
|
|
22
23
|
* @param duration ISO 8601 duration string
|
|
23
24
|
* @param anchor "start" | "end" — which endpoint `value` represents
|
|
24
|
-
* @param options optional:
|
|
25
|
+
* @param options optional: how `value` is read and how an out-of-range result day is handled
|
|
25
26
|
* @returns `{ start, end }` with the constructed span (epoch numbers), or null on invalid input
|
|
26
27
|
*
|
|
27
28
|
* @example intervalFromDurationUnix(1704067200000, "P1D", "start", { timeZone: "UTC" }) // { start: 1704067200000, end: 1704153600000 }
|
|
@@ -32,10 +33,37 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
32
33
|
* @example intervalFromDurationUnix(NaN, "P1D", "start") // null
|
|
33
34
|
*/
|
|
34
35
|
export declare function intervalFromDurationUnix(value: number | string, duration: string, anchor: "start" | "end", options?: {
|
|
36
|
+
/**
|
|
37
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
38
|
+
* plural. Any other value returns `null`. The result is in the same unit.
|
|
39
|
+
*
|
|
40
|
+
* @defaultValue `"milliseconds"`
|
|
41
|
+
*/
|
|
35
42
|
epochUnit?: UnixUnit;
|
|
43
|
+
/**
|
|
44
|
+
* The time zone the calendar arithmetic runs in: an IANA name, a UTC offset, or `"local"` for
|
|
45
|
+
* the system time zone. An unknown zone returns `null`.
|
|
46
|
+
*
|
|
47
|
+
* @defaultValue `"UTC"`
|
|
48
|
+
*/
|
|
36
49
|
timeZone?: string;
|
|
50
|
+
/**
|
|
51
|
+
* How a result day that does not exist in its month is handled, such as January 31 plus one
|
|
52
|
+
* month. `"constrain"` clamps to the last valid day, and `"reject"` returns `null`.
|
|
53
|
+
*
|
|
54
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
55
|
+
*/
|
|
37
56
|
overflow?: Overflow;
|
|
38
57
|
}): {
|
|
58
|
+
/**
|
|
59
|
+
* The instant the interval begins at, as a Unix epoch number counted in `epochUnit`. A boundary
|
|
60
|
+
* that falls between two whole units is rounded down to the earlier one.
|
|
61
|
+
*/
|
|
39
62
|
start: number;
|
|
63
|
+
/**
|
|
64
|
+
* The first instant after the interval, counted in `epochUnit` and rounded as `start` is. It is
|
|
65
|
+
* exclusive: the interval holds everything from `start` up to but not including this value. It
|
|
66
|
+
* can equal `start`, which makes the interval empty.
|
|
67
|
+
*/
|
|
40
68
|
end: number;
|
|
41
69
|
} | null;
|
|
@@ -10,15 +10,16 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
10
10
|
*
|
|
11
11
|
* - `anchor: "start"` treats `value` as the interval start and adds `duration` to get the end.
|
|
12
12
|
* - `anchor: "end"` treats `value` as the interval end and subtracts `duration` to get the start.
|
|
13
|
-
* - Converts to `ZonedDateTime` in `timeZone
|
|
14
|
-
* is the system zone), adds/subtracts
|
|
13
|
+
* - Converts to `ZonedDateTime` in `timeZone`, adds/subtracts
|
|
15
14
|
* the duration there, then converts back to epoch — this is what lets calendar units (years/months/
|
|
16
15
|
* weeks/days) resolve without a `relativeTo`: unlike a bare `Temporal.Instant`, the `ZonedDateTime`
|
|
17
16
|
* supplies its own implicit reference point.
|
|
17
|
+
* - The computed boundary is floored to a whole `epochUnit`, so a duration shorter than one unit does
|
|
18
|
+
* not survive: with `anchor: "start"` the interval is empty (`"PT0.5S"` in seconds gives the
|
|
19
|
+
* same `{ start, end }` as `"PT0S"`), and with `anchor: "end"` the start falls back to the
|
|
20
|
+
* previous whole unit, making the interval one unit long.
|
|
18
21
|
* - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
|
|
19
22
|
* happens, mirroring `intervalIntersectionUnix`'s `start > end` rejection.
|
|
20
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
21
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
|
|
22
23
|
* - Returns null on invalid input (a `value` that is not a safe integer or numeric string of one —
|
|
23
24
|
* fractions, empty strings and values beyond ±(2^53 − 1) are invalid — invalid `duration`, an
|
|
24
25
|
* `anchor` other than `"start"`/`"end"`, or an invalid/unavailable timeZone).
|
|
@@ -26,7 +27,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
26
27
|
* @param value Unix epoch value (seconds or milliseconds): a safe integer or a digit string
|
|
27
28
|
* @param duration ISO 8601 duration string
|
|
28
29
|
* @param anchor "start" | "end" — which endpoint `value` represents
|
|
29
|
-
* @param options optional:
|
|
30
|
+
* @param options optional: how `value` is read and how an out-of-range result day is handled
|
|
30
31
|
* @returns `{ start, end }` with the constructed span (epoch numbers), or null on invalid input
|
|
31
32
|
*
|
|
32
33
|
* @example intervalFromDurationUnix(1704067200000, "P1D", "start", { timeZone: "UTC" }) // { start: 1704067200000, end: 1704153600000 }
|
|
@@ -26,6 +26,12 @@
|
|
|
26
26
|
* @example intervalIntersectionUnix("0", "1700000000", "1000000", "2000000") // { start: 1000000, end: 2000000 }
|
|
27
27
|
*/
|
|
28
28
|
export declare function intervalIntersectionUnix(aStart: number | string, aEnd: number | string, bStart: number | string, bEnd: number | string): {
|
|
29
|
+
/** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
|
|
29
30
|
start: number;
|
|
31
|
+
/**
|
|
32
|
+
* The first instant after the interval, in the same unit as `start`. It is exclusive: the
|
|
33
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
34
|
+
* `start`, which makes the interval empty.
|
|
35
|
+
*/
|
|
30
36
|
end: number;
|
|
31
37
|
} | null;
|
|
@@ -4,11 +4,9 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
4
4
|
*
|
|
5
5
|
* - Distinct from `intervalCountUnix`, which counts local calendar `unit` boundaries *crossed*
|
|
6
6
|
* rather than measuring exact duration.
|
|
7
|
-
* -
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* zone, and an unknown zone returns `null`. Fixed-length units (hour, minute, second, …) are
|
|
11
|
-
* zone-independent; a day is a local day, so New York's 23-hour 2024-03-10 is 1 day long there.
|
|
7
|
+
* - `start` and `end` are each a safe integer or a string of optionally negative ASCII digits.
|
|
8
|
+
* - Fixed-length units (hour, minute, second, …) are zone-independent; a day is a local day in
|
|
9
|
+
* `options.timeZone`, so New York's 23-hour 2024-03-10 is 1 day long there.
|
|
12
10
|
* - Accepts singular or plural units (`"day"` and `"days"` behave identically).
|
|
13
11
|
* - Returns `0` for a zero-length interval (`start === end`).
|
|
14
12
|
* - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
|
|
@@ -18,7 +16,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
18
16
|
* @param start Unix epoch in `epochUnit` — interval start
|
|
19
17
|
* @param end Unix epoch in `epochUnit` — interval end
|
|
20
18
|
* @param unit unit string — any `DateTimeUnit`, singular or plural
|
|
21
|
-
* @param options optional:
|
|
19
|
+
* @param options optional: how the epochs are read and the zone calendar units are measured in
|
|
22
20
|
* @returns exact length of the interval expressed in `unit`, or null on invalid input
|
|
23
21
|
*
|
|
24
22
|
* @example intervalLengthUnix(0, 86400000, "hour") // 24
|
|
@@ -31,6 +29,18 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
31
29
|
* @example intervalLengthUnix(NaN, 86400000, "hour") // null
|
|
32
30
|
*/
|
|
33
31
|
export declare function intervalLengthUnix(start: number | string, end: number | string, unit: string, options?: {
|
|
32
|
+
/**
|
|
33
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
34
|
+
* plural. Any other value returns `null`.
|
|
35
|
+
*
|
|
36
|
+
* @defaultValue `"milliseconds"`
|
|
37
|
+
*/
|
|
34
38
|
epochUnit?: UnixUnit;
|
|
39
|
+
/**
|
|
40
|
+
* The time zone calendar units are measured in: an IANA name, a UTC offset, or `"local"` for
|
|
41
|
+
* the system time zone. An unknown zone returns `null`.
|
|
42
|
+
*
|
|
43
|
+
* @defaultValue `"UTC"`
|
|
44
|
+
*/
|
|
35
45
|
timeZone?: string;
|
|
36
46
|
}): number | null;
|
|
@@ -7,11 +7,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
7
7
|
*
|
|
8
8
|
* - Distinct from `intervalCountUnix`, which counts local calendar `unit` boundaries *crossed*
|
|
9
9
|
* rather than measuring exact duration.
|
|
10
|
-
* -
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* zone, and an unknown zone returns `null`. Fixed-length units (hour, minute, second, …) are
|
|
14
|
-
* zone-independent; a day is a local day, so New York's 23-hour 2024-03-10 is 1 day long there.
|
|
10
|
+
* - `start` and `end` are each a safe integer or a string of optionally negative ASCII digits.
|
|
11
|
+
* - Fixed-length units (hour, minute, second, …) are zone-independent; a day is a local day in
|
|
12
|
+
* `options.timeZone`, so New York's 23-hour 2024-03-10 is 1 day long there.
|
|
15
13
|
* - Accepts singular or plural units (`"day"` and `"days"` behave identically).
|
|
16
14
|
* - Returns `0` for a zero-length interval (`start === end`).
|
|
17
15
|
* - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
|
|
@@ -21,7 +19,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
21
19
|
* @param start Unix epoch in `epochUnit` — interval start
|
|
22
20
|
* @param end Unix epoch in `epochUnit` — interval end
|
|
23
21
|
* @param unit unit string — any `DateTimeUnit`, singular or plural
|
|
24
|
-
* @param options optional:
|
|
22
|
+
* @param options optional: how the epochs are read and the zone calendar units are measured in
|
|
25
23
|
* @returns exact length of the interval expressed in `unit`, or null on invalid input
|
|
26
24
|
*
|
|
27
25
|
* @example intervalLengthUnix(0, 86400000, "hour") // 24
|
|
@@ -6,8 +6,6 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
6
6
|
* - Counts the local dates that hold at least one instant of the half-open intersection
|
|
7
7
|
* `[max(aStart, bStart), min(aEnd, bEnd))`. The end is excluded, so an intersection ending at
|
|
8
8
|
* local midnight does not touch the date that midnight starts.
|
|
9
|
-
* - Uses `"UTC"` by default (consistent with `addUnix` and `intervalCountUnix`); `"local"` is the
|
|
10
|
-
* system zone and an unknown zone returns `null`.
|
|
11
9
|
* - Each instant in the intersection contributes its own local date in `timeZone`, and each date
|
|
12
10
|
* counts once. A date the zone deleted is not counted (`Pacific/Apia` skipped 2011-12-30), and a
|
|
13
11
|
* fall-back into the previous date does not lose that date (`America/Goose_Bay`, 2010-11-07).
|
|
@@ -31,7 +29,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
31
29
|
* @param aEnd Unix epoch value (seconds or milliseconds) — first interval end
|
|
32
30
|
* @param bStart Unix epoch value (seconds or milliseconds) — second interval start
|
|
33
31
|
* @param bEnd Unix epoch value (seconds or milliseconds) — second interval end
|
|
34
|
-
* @param options optional:
|
|
32
|
+
* @param options optional: how the epochs are read and the zone the dates are counted in
|
|
35
33
|
* @returns number of shared calendar dates, `0` when disjoint, or null on invalid input
|
|
36
34
|
*
|
|
37
35
|
* @example intervalOverlappingDaysUnix(0, 172800000, 86400000, 259200000, { timeZone: "UTC" }) // 1 (the intersection [86400000, 172800000) is 1970-01-02)
|
|
@@ -43,6 +41,18 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
43
41
|
* @example intervalOverlappingDaysUnix(NaN, 172800000, 86400000, 259200000, { timeZone: "UTC" }) // null
|
|
44
42
|
*/
|
|
45
43
|
export declare function intervalOverlappingDaysUnix(aStart: number | string, aEnd: number | string, bStart: number | string, bEnd: number | string, options?: {
|
|
44
|
+
/**
|
|
45
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
46
|
+
* plural. Any other value returns `null`.
|
|
47
|
+
*
|
|
48
|
+
* @defaultValue `"milliseconds"`
|
|
49
|
+
*/
|
|
46
50
|
epochUnit?: UnixUnit;
|
|
51
|
+
/**
|
|
52
|
+
* The time zone the calendar dates are counted in: an IANA name, a UTC offset, or `"local"` for
|
|
53
|
+
* the system time zone. An unknown zone returns `null`.
|
|
54
|
+
*
|
|
55
|
+
* @defaultValue `"UTC"`
|
|
56
|
+
*/
|
|
47
57
|
timeZone?: string;
|
|
48
58
|
}): number | null;
|
|
@@ -9,8 +9,6 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
9
|
* - Counts the local dates that hold at least one instant of the half-open intersection
|
|
10
10
|
* `[max(aStart, bStart), min(aEnd, bEnd))`. The end is excluded, so an intersection ending at
|
|
11
11
|
* local midnight does not touch the date that midnight starts.
|
|
12
|
-
* - Uses `"UTC"` by default (consistent with `addUnix` and `intervalCountUnix`); `"local"` is the
|
|
13
|
-
* system zone and an unknown zone returns `null`.
|
|
14
12
|
* - Each instant in the intersection contributes its own local date in `timeZone`, and each date
|
|
15
13
|
* counts once. A date the zone deleted is not counted (`Pacific/Apia` skipped 2011-12-30), and a
|
|
16
14
|
* fall-back into the previous date does not lose that date (`America/Goose_Bay`, 2010-11-07).
|
|
@@ -34,7 +32,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
34
32
|
* @param aEnd Unix epoch value (seconds or milliseconds) — first interval end
|
|
35
33
|
* @param bStart Unix epoch value (seconds or milliseconds) — second interval start
|
|
36
34
|
* @param bEnd Unix epoch value (seconds or milliseconds) — second interval end
|
|
37
|
-
* @param options optional:
|
|
35
|
+
* @param options optional: how the epochs are read and the zone the dates are counted in
|
|
38
36
|
* @returns number of shared calendar dates, `0` when disjoint, or null on invalid input
|
|
39
37
|
*
|
|
40
38
|
* @example intervalOverlappingDaysUnix(0, 172800000, 86400000, 259200000, { timeZone: "UTC" }) // 1 (the intersection [86400000, 172800000) is 1970-01-02)
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* each record's `end` is the next record's `start` and belongs only to that next record, so the
|
|
12
12
|
* pieces share no value and together cover `[start, end)` exactly once.
|
|
13
13
|
* - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
|
|
14
|
+
* - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
|
|
15
|
+
* equal to `end`): the result is then that one empty piece, whatever the points.
|
|
14
16
|
* - Returns `[]` when `points` is not an array, or when `start`, `end` or any point is not a safe
|
|
15
17
|
* integer (or numeric string of one) — fractions, empty strings and values beyond ±(2^53 − 1)
|
|
16
18
|
* are invalid even when they would fall outside the interval — or when `start > end`.
|
|
@@ -26,6 +28,12 @@
|
|
|
26
28
|
* @example intervalSplitAtUnix(0, 100000, [50000.5]) // [] (fractional point)
|
|
27
29
|
*/
|
|
28
30
|
export declare function intervalSplitAtUnix(start: number | string, end: number | string, points: Array<number | string>): Array<{
|
|
31
|
+
/** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
|
|
29
32
|
start: number;
|
|
33
|
+
/**
|
|
34
|
+
* The first instant after the interval, in the same unit as `start`. It is exclusive: the
|
|
35
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
36
|
+
* `start`, which makes the interval empty.
|
|
37
|
+
*/
|
|
30
38
|
end: number;
|
|
31
39
|
}>;
|
|
@@ -12,6 +12,8 @@ import { parseUnixEpochInterval, parseUnixEpochValue } from "../../internal/inde
|
|
|
12
12
|
* each record's `end` is the next record's `start` and belongs only to that next record, so the
|
|
13
13
|
* pieces share no value and together cover `[start, end)` exactly once.
|
|
14
14
|
* - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
|
|
15
|
+
* - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
|
|
16
|
+
* equal to `end`): the result is then that one empty piece, whatever the points.
|
|
15
17
|
* - Returns `[]` when `points` is not an array, or when `start`, `end` or any point is not a safe
|
|
16
18
|
* integer (or numeric string of one) — fractions, empty strings and values beyond ±(2^53 − 1)
|
|
17
19
|
* are invalid even when they would fall outside the interval — or when `start > end`.
|
|
@@ -26,6 +26,12 @@
|
|
|
26
26
|
* @example intervalUnionUnix("0", "1700000000", "1000000", "2000000") // { start: 0, end: 1700000000 }
|
|
27
27
|
*/
|
|
28
28
|
export declare function intervalUnionUnix(aStart: number | string, aEnd: number | string, bStart: number | string, bEnd: number | string): {
|
|
29
|
+
/** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
|
|
29
30
|
start: number;
|
|
31
|
+
/**
|
|
32
|
+
* The first instant after the interval, in the same unit as `start`. It is exclusive: the
|
|
33
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
34
|
+
* than `start`.
|
|
35
|
+
*/
|
|
30
36
|
end: number;
|
|
31
37
|
} | null;
|
|
@@ -25,6 +25,12 @@ export declare function intervalXorAllUnix(intervals: Array<{
|
|
|
25
25
|
start: number | string;
|
|
26
26
|
end: number | string;
|
|
27
27
|
}>): Array<{
|
|
28
|
+
/** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
|
|
28
29
|
start: number;
|
|
30
|
+
/**
|
|
31
|
+
* The first instant after the interval, in the same unit as `start`. It is exclusive: the
|
|
32
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
33
|
+
* than `start`.
|
|
34
|
+
*/
|
|
29
35
|
end: number;
|
|
30
36
|
}>;
|
|
@@ -31,6 +31,12 @@
|
|
|
31
31
|
* @example intervalXorUnix(0, 1, 0.5, 2) // [] (fractional epoch)
|
|
32
32
|
*/
|
|
33
33
|
export declare function intervalXorUnix(aStart: number | string, aEnd: number | string, bStart: number | string, bEnd: number | string): Array<{
|
|
34
|
+
/** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
|
|
34
35
|
start: number;
|
|
36
|
+
/**
|
|
37
|
+
* The first instant after the interval, in the same unit as `start`. It is exclusive: the
|
|
38
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
39
|
+
* than `start`.
|
|
40
|
+
*/
|
|
35
41
|
end: number;
|
|
36
42
|
}>;
|
|
@@ -26,6 +26,12 @@ export declare function mergeIntervalsUnix(intervals: Array<{
|
|
|
26
26
|
start: number | string;
|
|
27
27
|
end: number | string;
|
|
28
28
|
}>): Array<{
|
|
29
|
+
/** The instant the interval begins at, as a Unix epoch number in the unit the arguments share. */
|
|
29
30
|
start: number;
|
|
31
|
+
/**
|
|
32
|
+
* The first instant after the interval, in the same unit as `start`. It is exclusive: the
|
|
33
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
34
|
+
* than `start`.
|
|
35
|
+
*/
|
|
30
36
|
end: number;
|
|
31
37
|
}>;
|
|
@@ -7,34 +7,36 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
7
7
|
* no value and together cover `[start, end)` exactly once.
|
|
8
8
|
* - The final sub-interval is trimmed so its `end` never exceeds the original `end`.
|
|
9
9
|
* - Calendar-unit boundaries (years, months, weeks, days) are computed from `start`
|
|
10
|
-
* (`start + k × amount
|
|
11
|
-
*
|
|
10
|
+
* (`start + k × amount`), so month-end starts don't drift: a monthly split from January 31
|
|
11
|
+
* lands on February 29, March 31, April 30. Temporal's `add` constrains a day the month lacks
|
|
12
|
+
* to the month's last day, and stepping from that boundary would keep the shortened day
|
|
13
|
+
* (February 29, then March 29).
|
|
14
|
+
* - Comparison: Luxon's `Interval.splitBy` computes each boundary from the start the same way.
|
|
12
15
|
* - Exact-unit boundaries (hours and smaller) step from the previous boundary. Exact units never
|
|
13
16
|
* clamp, and stepping keeps nanosecond precision where `k × amount` would pass
|
|
14
17
|
* `Number.MAX_SAFE_INTEGER` (boundaries are then floored to milliseconds).
|
|
15
18
|
* - A calendar step that resolves to the same instant as the previous boundary (a deleted local
|
|
16
19
|
* day, such as 30 December 2011 in `Pacific/Apia`) is skipped, so no empty slice is produced.
|
|
17
20
|
* A step that goes backwards returns `[]`.
|
|
21
|
+
* - A step finer than `epochUnit` (500 milliseconds when the epochs are seconds, any microsecond
|
|
22
|
+
* or nanosecond step shorter than a millisecond) cannot be written in that unit: its boundaries
|
|
23
|
+
* floor to every whole unit from `start` to `end`, so the pieces are one `epochUnit` long and
|
|
24
|
+
* none is empty. `maxPieces` counts those pieces.
|
|
18
25
|
* - Returns `[{ start, end }]` when `start === end` (zero-length interval).
|
|
19
26
|
* - Returns `[]` on invalid input (`start`/`end` that is not a safe integer or numeric string of
|
|
20
27
|
* one — fractions, empty strings and values beyond ±(2^53 − 1) are invalid — unsupported unit,
|
|
21
28
|
* non-positive amount, an invalid `epochUnit` or an unknown `timeZone`).
|
|
22
29
|
*
|
|
23
|
-
* -
|
|
24
|
-
* by default, `"seconds"`; singular accepted). Each input is a safe integer or a string of
|
|
25
|
-
* optionally negative ASCII digits.
|
|
26
|
-
* - Calendar-unit arithmetic runs in `options.timeZone`: omitted is `"UTC"`, `"local"` is the
|
|
27
|
-
* system zone, and an unknown zone returns `[]`.
|
|
30
|
+
* - `start` and `end` are each a safe integer or a string of optionally negative ASCII digits.
|
|
28
31
|
* - Accepts singular or plural units (`"day"` and `"days"` behave identically).
|
|
29
|
-
* - `options.maxPieces`
|
|
30
|
-
*
|
|
31
|
-
* otherwise as soon as slice `maxPieces + 1` is due. An invalid `maxPieces` also returns `[]`.
|
|
32
|
+
* - A split into more than `options.maxPieces` slices returns `[]`, decided from the span before
|
|
33
|
+
* stepping where it can be, and otherwise as soon as slice `maxPieces + 1` is due.
|
|
32
34
|
*
|
|
33
35
|
* @param start Unix epoch in `epochUnit` — interval start
|
|
34
36
|
* @param end Unix epoch in `epochUnit` — interval end
|
|
35
37
|
* @param unit duration unit string — any `DateTimeDurationUnit`, singular or plural
|
|
36
38
|
* @param amount positive number of units per step
|
|
37
|
-
* @param options optional:
|
|
39
|
+
* @param options optional: the limit on the number of slices, how the epochs are read and the zone calendar steps run in
|
|
38
40
|
* @returns array of `{ start, end }` records, or [] on invalid input
|
|
39
41
|
*
|
|
40
42
|
* @example splitIntervalByUnitUnix(0, 86400000, "hour", 6) // [{ start: 0, end: 21600000 }, { start: 21600000, end: 43200000 }, { start: 43200000, end: 64800000 }, { start: 64800000, end: 86400000 }]
|
|
@@ -46,12 +48,41 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
46
48
|
* @example splitIntervalByUnitUnix(0, 86400000, "hour", 6, { maxPieces: 4 }) // [{ start: 0, end: 21600000 }, { start: 21600000, end: 43200000 }, { start: 43200000, end: 64800000 }, { start: 64800000, end: 86400000 }]
|
|
47
49
|
* @example splitIntervalByUnitUnix(1710046800000, 1710216000000, "day", 1, { timeZone: "America/New_York" }) // [{ start: 1710046800000, end: 1710129600000 }, { start: 1710129600000, end: 1710216000000 }] (the first local day is 23 hours)
|
|
48
50
|
* @example splitIntervalByUnitUnix("0", "86400", "hours", 12, { epochUnit: "second" }) // [{ start: 0, end: 43200 }, { start: 43200, end: 86400 }]
|
|
51
|
+
* @example splitIntervalByUnitUnix(0, 2, "millisecond", 500, { epochUnit: "seconds" }) // [{ start: 0, end: 1 }, { start: 1, end: 2 }] (a step finer than the epoch unit gives one-second pieces)
|
|
49
52
|
*/
|
|
50
53
|
export declare function splitIntervalByUnitUnix(start: number | string, end: number | string, unit: string, amount: number, options?: {
|
|
54
|
+
/**
|
|
55
|
+
* The most records the result may hold. A result that would hold more, or more than the longest
|
|
56
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
57
|
+
* positive safe integer also returns `[]`.
|
|
58
|
+
*
|
|
59
|
+
* @defaultValue `1_000_000`
|
|
60
|
+
*/
|
|
51
61
|
maxPieces?: number;
|
|
62
|
+
/**
|
|
63
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
64
|
+
* plural. Any other value returns `[]`. The result is in the same unit.
|
|
65
|
+
*
|
|
66
|
+
* @defaultValue `"milliseconds"`
|
|
67
|
+
*/
|
|
52
68
|
epochUnit?: UnixUnit;
|
|
69
|
+
/**
|
|
70
|
+
* The time zone the calendar arithmetic runs in: an IANA name, a UTC offset, or `"local"` for
|
|
71
|
+
* the system time zone. An unknown zone returns `[]`.
|
|
72
|
+
*
|
|
73
|
+
* @defaultValue `"UTC"`
|
|
74
|
+
*/
|
|
53
75
|
timeZone?: string;
|
|
54
76
|
}): Array<{
|
|
77
|
+
/**
|
|
78
|
+
* The instant the interval begins at, as a Unix epoch number counted in `epochUnit`. A boundary
|
|
79
|
+
* that falls between two whole units is rounded down to the earlier one.
|
|
80
|
+
*/
|
|
55
81
|
start: number;
|
|
82
|
+
/**
|
|
83
|
+
* The first instant after the interval, counted in `epochUnit` and rounded as `start` is. It is
|
|
84
|
+
* exclusive: the interval holds everything from `start` up to but not including this value. It
|
|
85
|
+
* can equal `start`, which makes the interval empty.
|
|
86
|
+
*/
|
|
56
87
|
end: number;
|
|
57
88
|
}>;
|