@northguild/gmt 1.17.0 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +462 -22
- package/dist/calendar/calculate/bucketRange.d.ts +3 -3
- package/dist/calendar/calculate/bucketRange.js +6 -6
- package/dist/calendar/calculate/floorToZone.d.ts +5 -3
- package/dist/calendar/calculate/floorToZone.js +6 -5
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +21 -8
- package/dist/calendar/calculate/getFiscalPeriod.js +9 -8
- package/dist/calendar/calculate/getIsoWeekDate.d.ts +10 -5
- package/dist/calendar/calculate/getIsoWeekDate.js +1 -5
- package/dist/calendar/calculate/getOrdinalDate.d.ts +10 -3
- package/dist/calendar/calculate/getOrdinalDate.js +2 -3
- package/dist/calendar/calculate/getQuarter.d.ts +21 -9
- package/dist/calendar/calculate/getQuarter.js +8 -12
- package/dist/calendar/hours/addOperatingTime.d.ts +53 -0
- package/dist/calendar/hours/addOperatingTime.js +59 -0
- package/dist/calendar/hours/index.d.ts +7 -0
- package/dist/calendar/hours/index.js +7 -0
- package/dist/calendar/hours/isOpenAt.d.ts +39 -0
- package/dist/calendar/hours/isOpenAt.js +44 -0
- package/dist/calendar/hours/nextCloseAt.d.ts +49 -0
- package/dist/calendar/hours/nextCloseAt.js +51 -0
- package/dist/calendar/hours/nextOpenAt.d.ts +45 -0
- package/dist/calendar/hours/nextOpenAt.js +47 -0
- package/dist/calendar/hours/operatingIntervals.d.ts +43 -0
- package/dist/calendar/hours/operatingIntervals.js +52 -0
- package/dist/calendar/hours/operatingTimeBetween.d.ts +40 -0
- package/dist/calendar/hours/operatingTimeBetween.js +49 -0
- package/dist/calendar/hours/recurringWindows.d.ts +61 -0
- package/dist/calendar/hours/recurringWindows.js +80 -0
- package/dist/calendar/index.d.ts +1 -0
- package/dist/calendar/index.js +1 -0
- package/dist/duration/calculate/durationAs.d.ts +13 -8
- package/dist/duration/calculate/durationAs.js +4 -8
- package/dist/duration/compare/compareDurations.d.ts +12 -6
- package/dist/duration/compare/compareDurations.js +3 -6
- package/dist/duration/format/formatDuration.d.ts +16 -4
- package/dist/duration/format/formatDuration.js +4 -5
- package/dist/duration/normalize/normalizeDuration.d.ts +39 -14
- package/dist/duration/normalize/normalizeDuration.js +6 -15
- package/dist/duration/parse/parseDuration.d.ts +21 -3
- package/dist/duration/parse/parseDuration.js +1 -3
- package/dist/instant/convert/classifyLocal.d.ts +1 -1
- package/dist/instant/convert/classifyLocal.js +1 -1
- package/dist/instant/convert/fromOffsetInstant.d.ts +3 -1
- package/dist/instant/convert/fromOffsetInstant.js +3 -1
- package/dist/instant/convert/resolveLocal.d.ts +12 -7
- package/dist/instant/convert/resolveLocal.js +6 -10
- package/dist/instant/convert/toOffsetInstant.d.ts +22 -9
- package/dist/instant/convert/toOffsetInstant.js +10 -3
- package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
- package/dist/intermodal/calculate/billingTimeline.js +2 -2
- package/dist/intermodal/calculate/chargeableDays.d.ts +13 -11
- package/dist/intermodal/calculate/chargeableDays.js +4 -9
- package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
- package/dist/intermodal/calculate/demurrageClock.js +7 -7
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +5 -4
- package/dist/intermodal/calculate/freeTimeExpiry.js +6 -6
- package/dist/internal/businessCalendar.d.ts +5 -0
- package/dist/internal/businessCalendar.js +5 -1
- package/dist/internal/cycleFieldValue.d.ts +6 -4
- package/dist/internal/cycleFieldValue.js +6 -4
- package/dist/internal/daylightTime.d.ts +33 -0
- package/dist/internal/daylightTime.js +164 -0
- package/dist/internal/durationUntilString.js +4 -3
- package/dist/internal/englishCalendarNames.js +1 -2
- package/dist/internal/epochNanoseconds.d.ts +2 -0
- package/dist/internal/epochNanoseconds.js +2 -0
- package/dist/internal/exactDuration.d.ts +37 -0
- package/dist/internal/exactDuration.js +64 -0
- package/dist/internal/exactMoment.d.ts +72 -0
- package/dist/internal/exactMoment.js +114 -0
- package/dist/internal/fiscalCalendar.d.ts +4 -3
- package/dist/internal/fiscalCalendar.js +4 -3
- package/dist/internal/formatCalendarDays.d.ts +2 -2
- package/dist/internal/formatRelativeDuration.d.ts +21 -1
- package/dist/internal/formatRelativeDuration.js +47 -7
- package/dist/internal/index.d.ts +9 -4
- package/dist/internal/index.js +9 -4
- package/dist/internal/instantFormatOptions.js +2 -1
- package/dist/internal/instantNanoseconds.d.ts +75 -9
- package/dist/internal/instantNanoseconds.js +192 -11
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/monthGridWeekRow.d.ts +2 -1
- package/dist/internal/monthGridWeekRow.js +2 -1
- package/dist/internal/normalizeTimeZone.d.ts +2 -2
- package/dist/internal/normalizeTimeZone.js +2 -2
- package/dist/internal/operatingSchedule.d.ts +129 -0
- package/dist/internal/operatingSchedule.js +668 -0
- package/dist/internal/optionOrDefault.d.ts +18 -0
- package/dist/internal/optionOrDefault.js +20 -0
- package/dist/internal/patternToken.d.ts +2 -2
- package/dist/internal/patternToken.js +28 -13
- package/dist/internal/plainDateUntil.js +10 -6
- package/dist/internal/punctuality.d.ts +38 -0
- package/dist/internal/punctuality.js +59 -0
- package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
- package/dist/internal/readDateTimeFormatOptions.js +93 -0
- package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
- package/dist/internal/resolveDurationRelativeTo.js +11 -1
- package/dist/internal/resolveRelativeRounding.d.ts +17 -6
- package/dist/internal/resolveRelativeRounding.js +27 -7
- package/dist/internal/resolveRelativeUnit.d.ts +30 -0
- package/dist/internal/resolveRelativeUnit.js +40 -0
- package/dist/internal/splitStep.d.ts +24 -1
- package/dist/internal/splitStep.js +34 -2
- package/dist/internal/startOrEndOfZoned.js +2 -3
- package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
- package/dist/internal/temporalCompat/capabilities.js +35 -3
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/repros.d.ts +1 -1
- package/dist/internal/temporalCompat/repros.js +157 -0
- package/dist/internal/timestampEvents.d.ts +32 -0
- package/dist/internal/timestampEvents.js +76 -0
- package/dist/internal/utcZonedDateTime.d.ts +5 -2
- package/dist/internal/utcZonedDateTime.js +8 -5
- package/dist/internal/zonedBucket.js +8 -6
- package/dist/internal/zonedLocalDates.js +1 -1
- package/dist/internal/zonedTransitionSearch.d.ts +27 -0
- package/dist/internal/zonedTransitionSearch.js +218 -0
- package/dist/internal/zonedWallClock.d.ts +21 -7
- package/dist/internal/zonedWallClock.js +87 -18
- package/dist/internal/zonedWallClockOperations.d.ts +26 -13
- package/dist/internal/zonedWallClockOperations.js +87 -34
- package/dist/interval/validate/isValidInterval.d.ts +6 -3
- package/dist/interval/validate/isValidInterval.js +6 -3
- package/dist/plain/calculate/addDate.d.ts +11 -8
- package/dist/plain/calculate/addDate.js +5 -8
- package/dist/plain/calculate/addDateTime.d.ts +7 -4
- package/dist/plain/calculate/addDateTime.js +1 -4
- package/dist/plain/calculate/cycleDate.d.ts +16 -7
- package/dist/plain/calculate/cycleDate.js +3 -7
- package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
- package/dist/plain/calculate/cycleDateTime.js +1 -4
- package/dist/plain/calculate/cycleTime.d.ts +10 -5
- package/dist/plain/calculate/cycleTime.js +3 -5
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDate.js +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.js +1 -1
- package/dist/plain/calculate/diffDateTime.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.js +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
- package/dist/plain/calculate/diffTime.d.ts +1 -1
- package/dist/plain/calculate/diffTime.js +1 -1
- package/dist/plain/calculate/endOfDate.d.ts +8 -3
- package/dist/plain/calculate/endOfDate.js +1 -3
- package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
- package/dist/plain/calculate/endOfDateTime.js +1 -5
- package/dist/plain/calculate/endOfTime.d.ts +8 -2
- package/dist/plain/calculate/endOfTime.js +1 -2
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
- package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
- package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
- package/dist/plain/calculate/getWeekOfMonth.js +7 -4
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
- package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
- package/dist/plain/calculate/getWeeksInMonth.js +5 -2
- package/dist/plain/calculate/nextWeekday.d.ts +7 -3
- package/dist/plain/calculate/nextWeekday.js +1 -3
- package/dist/plain/calculate/previousWeekday.d.ts +7 -3
- package/dist/plain/calculate/previousWeekday.js +1 -3
- package/dist/plain/calculate/roundDate.d.ts +20 -7
- package/dist/plain/calculate/roundDate.js +3 -10
- package/dist/plain/calculate/roundDateTime.d.ts +22 -8
- package/dist/plain/calculate/roundDateTime.js +3 -11
- package/dist/plain/calculate/roundTime.d.ts +20 -4
- package/dist/plain/calculate/roundTime.js +3 -7
- package/dist/plain/calculate/setDate.d.ts +7 -5
- package/dist/plain/calculate/setDate.js +1 -5
- package/dist/plain/calculate/setDateTime.d.ts +8 -5
- package/dist/plain/calculate/setDateTime.js +1 -5
- package/dist/plain/calculate/setTime.d.ts +10 -6
- package/dist/plain/calculate/setTime.js +4 -6
- package/dist/plain/calculate/startOfDate.d.ts +8 -2
- package/dist/plain/calculate/startOfDate.js +1 -2
- package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
- package/dist/plain/calculate/startOfDateTime.js +1 -2
- package/dist/plain/calculate/startOfTime.d.ts +8 -1
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractDate.d.ts +7 -4
- package/dist/plain/calculate/subtractDate.js +1 -4
- package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
- package/dist/plain/calculate/subtractDateTime.js +1 -4
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
- package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
- package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
- package/dist/plain/compare/areDatesEqualBy.js +8 -6
- package/dist/plain/compare/isBetweenDate.d.ts +13 -2
- package/dist/plain/compare/isBetweenDate.js +4 -4
- package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenDateTime.js +4 -4
- package/dist/plain/compare/isBetweenTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenTime.js +4 -4
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +1 -1
- package/dist/plain/compare/isThisUnit.js +1 -1
- package/dist/plain/format/formatCalendar.d.ts +21 -14
- package/dist/plain/format/formatCalendar.js +21 -16
- package/dist/plain/format/formatDate.js +5 -3
- package/dist/plain/format/formatDateRange.js +4 -2
- package/dist/plain/format/formatDateTime.js +4 -2
- package/dist/plain/format/formatDateTimeRange.js +4 -2
- package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
- package/dist/plain/format/formatDateTimeToParts.js +10 -6
- package/dist/plain/format/formatDateToParts.d.ts +13 -2
- package/dist/plain/format/formatDateToParts.js +8 -4
- package/dist/plain/format/formatRelativeDate.d.ts +16 -3
- package/dist/plain/format/formatRelativeDate.js +26 -15
- package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeDateTime.js +8 -5
- package/dist/plain/format/formatRelativeTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeTime.js +21 -13
- package/dist/plain/format/formatTime.js +4 -2
- package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
- package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDate.js +1 -3
- package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
- package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
- package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDate.js +2 -0
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
- package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtTime.js +2 -0
- package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
- package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
- package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
- package/dist/plain/map/mapDatesInRange.d.ts +8 -4
- package/dist/plain/map/mapDatesInRange.js +1 -4
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseDateTimeWithPattern.js +10 -7
- package/dist/plain/parse/parseDateWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseDateWithPattern.js +10 -7
- package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseTimeWithPattern.js +10 -7
- package/dist/plain/parse/parseUnitFromDate.d.ts +11 -3
- package/dist/plain/parse/parseUnitFromDate.js +3 -3
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +11 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +3 -3
- package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDate.js +2 -6
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
- package/dist/plain/validate/isValidDateRange.d.ts +19 -4
- package/dist/plain/validate/isValidDateRange.js +1 -4
- package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidDateTimeRange.js +2 -5
- package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidTimeRange.js +2 -5
- package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
- package/dist/precision/convert/fromExcelSerial.js +4 -5
- package/dist/precision/convert/fromNanoseconds.d.ts +1 -1
- package/dist/precision/convert/fromNanoseconds.js +1 -1
- package/dist/precision/convert/toExcelSerial.d.ts +9 -3
- package/dist/precision/convert/toExcelSerial.js +3 -4
- package/dist/precision/convert/toNanoseconds.d.ts +11 -6
- package/dist/precision/convert/toNanoseconds.js +11 -6
- package/dist/precision/validate/isValidInstant.d.ts +12 -3
- package/dist/precision/validate/isValidInstant.js +12 -3
- package/dist/span/calculate/spanMs.d.ts +10 -4
- package/dist/span/calculate/spanMs.js +10 -4
- package/dist/span/calculate/spanNs.d.ts +10 -4
- package/dist/span/calculate/spanNs.js +10 -4
- package/dist/span/validate/isValidSpan.d.ts +8 -3
- package/dist/span/validate/isValidSpan.js +8 -3
- package/dist/transport/calculate/bestAvailable.d.ts +47 -0
- package/dist/transport/calculate/bestAvailable.js +76 -0
- package/dist/transport/calculate/crossingTime.d.ts +58 -0
- package/dist/transport/calculate/crossingTime.js +76 -0
- package/dist/transport/calculate/cutoffAt.d.ts +90 -0
- package/dist/transport/calculate/cutoffAt.js +209 -0
- package/dist/transport/calculate/cutoffSchedule.d.ts +70 -0
- package/dist/transport/calculate/cutoffSchedule.js +71 -0
- package/dist/transport/calculate/dwellTime.d.ts +16 -7
- package/dist/transport/calculate/dwellTime.js +12 -8
- package/dist/transport/calculate/estimateDrift.d.ts +65 -0
- package/dist/transport/calculate/estimateDrift.js +75 -0
- package/dist/transport/calculate/index.d.ts +8 -0
- package/dist/transport/calculate/index.js +8 -0
- package/dist/transport/calculate/nextDeparture.d.ts +78 -0
- package/dist/transport/calculate/nextDeparture.js +131 -0
- package/dist/transport/calculate/punctualityRate.d.ts +42 -0
- package/dist/transport/calculate/punctualityRate.js +59 -0
- package/dist/transport/calculate/scheduleDelivery.d.ts +150 -0
- package/dist/transport/calculate/scheduleDelivery.js +300 -0
- package/dist/transport/calculate/transitTime.d.ts +21 -3
- package/dist/transport/calculate/transitTime.js +29 -46
- package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
- package/dist/transport/compare/classifyPunctuality.js +64 -0
- package/dist/transport/compare/index.d.ts +4 -0
- package/dist/transport/compare/index.js +4 -0
- package/dist/transport/compare/isPastCutoff.d.ts +33 -0
- package/dist/transport/compare/isPastCutoff.js +48 -0
- package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
- package/dist/transport/compare/scheduleDeviation.js +53 -0
- package/dist/transport/compare/timeToCutoff.d.ts +31 -0
- package/dist/transport/compare/timeToCutoff.js +47 -0
- package/dist/transport/convert/etaAtZone.d.ts +7 -0
- package/dist/transport/convert/etaAtZone.js +9 -4
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.js +1 -0
- package/dist/types/business-calendar.d.ts +19 -14
- package/dist/types/calendar-options.d.ts +15 -3
- package/dist/types/date-cycle-field.d.ts +5 -0
- package/dist/types/date-duration-unit.d.ts +4 -0
- package/dist/types/date-time-cycle-field.d.ts +4 -0
- package/dist/types/date-time-duration-units.d.ts +4 -0
- package/dist/types/date-time-unit.d.ts +4 -0
- package/dist/types/date-unit.d.ts +4 -0
- package/dist/types/disambiguation.d.ts +8 -0
- package/dist/types/duration-relative-to.d.ts +8 -0
- package/dist/types/duration-string-options.d.ts +28 -0
- package/dist/types/fiscal-calendar.d.ts +1 -1
- package/dist/types/fractional-digit.d.ts +5 -0
- package/dist/types/free-time-options.d.ts +21 -11
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.js +2 -1
- package/dist/types/interval.d.ts +8 -1
- package/dist/types/offset.d.ts +9 -0
- package/dist/types/operating-schedule.d.ts +71 -0
- package/dist/types/overflow.d.ts +6 -0
- package/dist/types/relative-rounding-method.d.ts +6 -0
- package/dist/types/relative-time-options.d.ts +33 -5
- package/dist/types/rounding-options.d.ts +27 -0
- package/dist/types/time-cycle-field.d.ts +4 -0
- package/dist/types/time-duration-unit.d.ts +4 -0
- package/dist/types/time-unit.d.ts +4 -0
- package/dist/types/transport-timestamps.d.ts +54 -0
- package/dist/types/transport-timestamps.js +0 -0
- package/dist/unix/calculate/addUnix.d.ts +19 -5
- package/dist/unix/calculate/addUnix.js +1 -5
- package/dist/unix/calculate/diffUnix.d.ts +13 -3
- package/dist/unix/calculate/diffUnix.js +1 -3
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +13 -3
- package/dist/unix/calculate/diffUnixAsDuration.js +1 -3
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +13 -3
- package/dist/unix/calculate/endOfQuarterForUnix.js +1 -3
- package/dist/unix/calculate/endOfUnix.d.ts +20 -4
- package/dist/unix/calculate/endOfUnix.js +1 -4
- package/dist/unix/calculate/isBetweenUnix.d.ts +26 -4
- package/dist/unix/calculate/isBetweenUnix.js +4 -6
- package/dist/unix/calculate/roundUnix.d.ts +31 -3
- package/dist/unix/calculate/roundUnix.js +3 -6
- package/dist/unix/calculate/setUnix.d.ts +35 -9
- package/dist/unix/calculate/setUnix.js +4 -13
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +13 -3
- package/dist/unix/calculate/startOfQuarterForUnix.js +1 -3
- package/dist/unix/calculate/startOfUnix.d.ts +20 -4
- package/dist/unix/calculate/startOfUnix.js +1 -4
- package/dist/unix/calculate/subtractUnix.d.ts +19 -5
- package/dist/unix/calculate/subtractUnix.js +1 -5
- package/dist/unix/compare/areUnixEqual.d.ts +7 -1
- package/dist/unix/compare/areUnixEqual.js +1 -1
- package/dist/unix/compare/areUnixEqualBy.d.ts +24 -7
- package/dist/unix/compare/areUnixEqualBy.js +13 -9
- package/dist/unix/compare/isAfterUnix.d.ts +7 -1
- package/dist/unix/compare/isAfterUnix.js +1 -1
- package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
- package/dist/unix/compare/isBeforeUnix.js +1 -1
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +14 -4
- package/dist/unix/convert/convertUnixToPlainDate.js +2 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +14 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.js +2 -4
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +14 -4
- package/dist/unix/convert/convertUnixToPlainTime.js +2 -4
- package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
- package/dist/unix/convert/convertUnixToUtc.js +3 -4
- package/dist/unix/convert/convertUnixToZoned.d.ts +10 -5
- package/dist/unix/convert/convertUnixToZoned.js +4 -5
- package/dist/unix/format/formatCalendarUnix.d.ts +27 -19
- package/dist/unix/format/formatCalendarUnix.js +4 -5
- package/dist/unix/format/formatRelativeUnix.d.ts +54 -5
- package/dist/unix/format/formatRelativeUnix.js +3 -5
- package/dist/unix/format/formatUnix.d.ts +24 -6
- package/dist/unix/format/formatUnix.js +8 -7
- package/dist/unix/get/getUnixNow.d.ts +8 -3
- package/dist/unix/get/getUnixNow.js +1 -3
- package/dist/unix/interval/intervalCountUnix.d.ts +14 -5
- package/dist/unix/interval/intervalCountUnix.js +2 -5
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
- package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +33 -5
- package/dist/unix/interval/intervalFromDurationUnix.js +6 -5
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalLengthUnix.d.ts +16 -6
- package/dist/unix/interval/intervalLengthUnix.js +4 -6
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +13 -3
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +1 -3
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
- package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
- package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +42 -11
- package/dist/unix/interval/splitIntervalByUnitUnix.js +21 -16
- package/dist/unix/parse/parseDateFromUnix.d.ts +13 -2
- package/dist/unix/parse/parseDateFromUnix.js +1 -2
- package/dist/unix/parse/parseDayFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseDayFromUnix.js +2 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +13 -1
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +1 -1
- package/dist/unix/parse/parseHourFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseHourFromUnix.js +2 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMonthFromUnix.js +2 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseSecondFromUnix.js +2 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +13 -2
- package/dist/unix/parse/parseTimeFromUnix.js +1 -2
- package/dist/unix/parse/parseUnitFromUnix.d.ts +22 -3
- package/dist/unix/parse/parseUnitFromUnix.js +2 -3
- package/dist/unix/parse/parseWeekFromUnix.d.ts +23 -7
- package/dist/unix/parse/parseWeekFromUnix.js +3 -7
- package/dist/unix/parse/parseYearFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseYearFromUnix.js +2 -2
- package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
- package/dist/unix/validate/isValidUnixRange.js +1 -4
- package/dist/utc/calculate/addUtc.d.ts +7 -4
- package/dist/utc/calculate/addUtc.js +1 -4
- package/dist/utc/calculate/diffUtc.d.ts +1 -1
- package/dist/utc/calculate/diffUtc.js +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +16 -3
- package/dist/utc/calculate/endOfUtc.js +2 -3
- package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
- package/dist/utc/calculate/isBetweenUtc.js +4 -4
- package/dist/utc/calculate/roundUtc.d.ts +26 -9
- package/dist/utc/calculate/roundUtc.js +3 -12
- package/dist/utc/calculate/setUtc.d.ts +7 -4
- package/dist/utc/calculate/setUtc.js +1 -4
- package/dist/utc/calculate/startOfUtc.d.ts +15 -2
- package/dist/utc/calculate/startOfUtc.js +1 -2
- package/dist/utc/calculate/subtractUtc.d.ts +7 -4
- package/dist/utc/calculate/subtractUtc.js +1 -4
- package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
- package/dist/utc/compare/areUtcEqualBy.js +2 -3
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +8 -3
- package/dist/utc/convert/convertUtcToPlainDate.js +5 -6
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +8 -3
- package/dist/utc/convert/convertUtcToPlainDateTime.js +5 -6
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +8 -3
- package/dist/utc/convert/convertUtcToPlainTime.js +5 -6
- package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
- package/dist/utc/convert/convertUtcToUnix.js +3 -4
- package/dist/utc/convert/convertUtcToZoned.d.ts +1 -1
- package/dist/utc/convert/convertUtcToZoned.js +1 -1
- package/dist/utc/format/formatCalendarUtc.d.ts +19 -8
- package/dist/utc/format/formatCalendarUtc.js +8 -6
- package/dist/utc/format/formatHttp.d.ts +1 -1
- package/dist/utc/format/formatHttp.js +1 -1
- package/dist/utc/format/formatRelativeUtc.d.ts +30 -10
- package/dist/utc/format/formatRelativeUtc.js +9 -11
- package/dist/utc/format/formatUtc.d.ts +17 -15
- package/dist/utc/format/formatUtc.js +8 -8
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
- package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
- package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
- package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
- package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
- package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
- package/dist/utc/parse/parseDateFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseDateFromUtc.js +1 -3
- package/dist/utc/parse/parseDayFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseDayFromUtc.js +1 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +4 -6
- package/dist/utc/parse/parseHourFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseHourFromUtc.js +1 -3
- package/dist/utc/parse/parseHttp.d.ts +1 -1
- package/dist/utc/parse/parseHttp.js +1 -1
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMicrosecondFromUtc.js +1 -3
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMillisecondFromUtc.js +1 -3
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMinuteFromUtc.js +1 -3
- package/dist/utc/parse/parseMonthFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMonthFromUtc.js +1 -3
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseNanosecondFromUtc.js +1 -3
- package/dist/utc/parse/parseSecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseSecondFromUtc.js +1 -3
- package/dist/utc/parse/parseTimeFromUtc.d.ts +8 -3
- package/dist/utc/parse/parseTimeFromUtc.js +5 -6
- package/dist/utc/parse/parseUnitFromUtc.d.ts +17 -5
- package/dist/utc/parse/parseUnitFromUtc.js +6 -8
- package/dist/utc/parse/parseWeekFromUtc.d.ts +18 -10
- package/dist/utc/parse/parseWeekFromUtc.js +7 -13
- package/dist/utc/parse/parseYearFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseYearFromUtc.js +1 -3
- package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
- package/dist/utc/validate/isValidUtcRange.js +2 -5
- package/dist/zoned/calculate/addZoned.d.ts +20 -10
- package/dist/zoned/calculate/addZoned.js +6 -13
- package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
- package/dist/zoned/calculate/cycleZoned.js +1 -8
- package/dist/zoned/calculate/diffZoned.d.ts +1 -1
- package/dist/zoned/calculate/diffZoned.js +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
- package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
- package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
- package/dist/zoned/calculate/roundZoned.d.ts +21 -4
- package/dist/zoned/calculate/roundZoned.js +3 -7
- package/dist/zoned/calculate/setZoned.d.ts +25 -8
- package/dist/zoned/calculate/setZoned.js +4 -12
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
- package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
- package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
- package/dist/zoned/calculate/startOfZoned.js +1 -3
- package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
- package/dist/zoned/calculate/subtractZoned.js +6 -13
- package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
- package/dist/zoned/compare/areZonedEqualBy.js +7 -5
- package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
- package/dist/zoned/compare/isBetweenZoned.js +4 -3
- package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
- package/dist/zoned/compare/isInDaylightSaving.js +40 -44
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +18 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +6 -11
- package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
- package/dist/zoned/convert/convertZonedToUnix.js +2 -4
- package/dist/zoned/convert/convertZonedToZoned.d.ts +1 -1
- package/dist/zoned/convert/convertZonedToZoned.js +1 -1
- package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
- package/dist/zoned/format/formatCalendarZoned.js +13 -9
- package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
- package/dist/zoned/format/formatRelativeZoned.js +7 -4
- package/dist/zoned/format/formatRfc2822.d.ts +2 -2
- package/dist/zoned/format/formatRfc2822.js +2 -2
- package/dist/zoned/format/formatRfc3339.d.ts +2 -3
- package/dist/zoned/format/formatRfc3339.js +2 -3
- package/dist/zoned/format/formatTimeZoneName.d.ts +12 -3
- package/dist/zoned/format/formatTimeZoneName.js +5 -4
- package/dist/zoned/format/formatZonedDateTime.js +2 -1
- package/dist/zoned/format/formatZonedRange.js +2 -1
- package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
- package/dist/zoned/format/formatZonedToParts.js +8 -5
- package/dist/zoned/get/getDstTransitions.d.ts +9 -10
- package/dist/zoned/get/getDstTransitions.js +12 -3
- package/dist/zoned/get/getTimeZoneOffset.d.ts +4 -1
- package/dist/zoned/get/getTimeZoneOffset.js +6 -3
- package/dist/zoned/get/getZonedNow.d.ts +13 -1
- package/dist/zoned/get/getZonedNow.js +12 -3
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
- package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
- package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
- package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
- package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
- package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +9 -3
- package/dist/zoned/parse/parseUnitFromZoned.js +1 -3
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +42 -11
- package/dist/zoned/validate/hasDaylightSaving.js +47 -31
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
- package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
- package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
- package/dist/zoned/validate/isValidZonedRange.js +1 -4
- package/package.json +18 -5
- package/skills/gmt-arithmetic/SKILL.md +1 -1
- package/skills/gmt-basics/SKILL.md +10 -1
- package/skills/gmt-integration/SKILL.md +10 -5
- package/skills/gmt-timezone/SKILL.md +150 -21
- package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
- package/dist/internal/resolveReadingTimeZone.js +0 -18
- package/dist/types/duration-unit.d.ts +0 -5
- /package/dist/types/{duration-unit.js → operating-schedule.js} +0 -0
|
@@ -4,9 +4,6 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
4
4
|
* Round an ISO 8601 datetime string to the specified date-time unit.
|
|
5
5
|
*
|
|
6
6
|
* - Returns "" for invalid inputs.
|
|
7
|
-
* - Accepts all date and time units: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
|
|
8
|
-
* - Each unit is accepted in its singular or plural form ("day" or "days"), as Temporal's
|
|
9
|
-
* GetTemporalUnitValuedOption accepts both.
|
|
10
7
|
* - Time units use Temporal.PlainDateTime.round() directly.
|
|
11
8
|
* - Date units (year, month, week) use manual start-of-unit rounding. Weeks start on Monday.
|
|
12
9
|
* - For date units the rounding grid is anchored at the unit containing `value`, so `"halfEven"`
|
|
@@ -18,17 +15,13 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
18
15
|
* that unrepresentable start, the result is "".
|
|
19
16
|
* - In the last representable year (`+275760`) a value that rounds down to a date unit still
|
|
20
17
|
* returns that unit's start; only rounding up past `+275760-09-13T23:59:59.999999999` returns "".
|
|
21
|
-
* - `roundingIncrement` and `roundingMode` are read as Temporal reads them for every unit: a
|
|
22
|
-
* non-integer increment is truncated (`1.5` rounds by 1), an increment below 1 or not finite
|
|
23
|
-
* returns "", and a `roundingMode` outside Temporal's nine returns "" (previously a date unit
|
|
24
|
-
* floored silently).
|
|
25
18
|
* - Wraps all Temporal calls in try-catch; returns "" on any error.
|
|
26
19
|
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
27
20
|
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
28
21
|
* hides the precision the unit asked for.
|
|
29
22
|
*
|
|
30
23
|
* @param value ISO 8601 datetime string
|
|
31
|
-
* @param options
|
|
24
|
+
* @param options The unit to round to and how to round
|
|
32
25
|
* @returns Rounded ISO 8601 datetime string, or "" on invalid input
|
|
33
26
|
*
|
|
34
27
|
* @example roundDateTime("2024-06-15T12:34:56", { smallestUnit: "year" }) // "2024-01-01T00:00:00"
|
|
@@ -44,7 +37,28 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
44
37
|
* @example roundDateTime("invalid", { smallestUnit: "year" }) // ""
|
|
45
38
|
*/
|
|
46
39
|
export declare function roundDateTime(value: string, options: {
|
|
40
|
+
/**
|
|
41
|
+
* The unit to round to, any date or time unit from `"year"` to `"nanosecond"`, singular
|
|
42
|
+
* or plural, as Temporal's GetTemporalUnitValuedOption accepts both. It also sets how
|
|
43
|
+
* many fractional-second digits the result is written with.
|
|
44
|
+
*/
|
|
47
45
|
smallestUnit: Temporal.SmallestUnit<DateTimeUnit>;
|
|
46
|
+
/**
|
|
47
|
+
* How many units make one rounding step. For `"day"` and the time units Temporal
|
|
48
|
+
* requires it to divide the next larger unit evenly and be smaller than it (`15` minutes,
|
|
49
|
+
* not `7` or `60`; a day only by `1`); for `"year"`, `"month"` and `"week"` the steps are
|
|
50
|
+
* counted from the unit that holds `value`. A non-integer is truncated, and a value below 1
|
|
51
|
+
* or not finite returns `""`.
|
|
52
|
+
*
|
|
53
|
+
* @defaultValue `1`, Temporal's default.
|
|
54
|
+
*/
|
|
48
55
|
roundingIncrement?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Which way a value between two steps goes: one of Temporal's nine rounding modes, such as
|
|
58
|
+
* `"floor"`, `"ceil"` or `"halfExpand"` (to the nearer step, a tie going up). Any other value
|
|
59
|
+
* returns `""`.
|
|
60
|
+
*
|
|
61
|
+
* @defaultValue `"halfExpand"`, Temporal's default.
|
|
62
|
+
*/
|
|
49
63
|
roundingMode?: Temporal.RoundingMode;
|
|
50
64
|
}): string;
|
|
@@ -85,9 +85,6 @@ function roundDateUnit(source, smallestUnit, increment, mode) {
|
|
|
85
85
|
* Round an ISO 8601 datetime string to the specified date-time unit.
|
|
86
86
|
*
|
|
87
87
|
* - Returns "" for invalid inputs.
|
|
88
|
-
* - Accepts all date and time units: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
|
|
89
|
-
* - Each unit is accepted in its singular or plural form ("day" or "days"), as Temporal's
|
|
90
|
-
* GetTemporalUnitValuedOption accepts both.
|
|
91
88
|
* - Time units use Temporal.PlainDateTime.round() directly.
|
|
92
89
|
* - Date units (year, month, week) use manual start-of-unit rounding. Weeks start on Monday.
|
|
93
90
|
* - For date units the rounding grid is anchored at the unit containing `value`, so `"halfEven"`
|
|
@@ -99,17 +96,13 @@ function roundDateUnit(source, smallestUnit, increment, mode) {
|
|
|
99
96
|
* that unrepresentable start, the result is "".
|
|
100
97
|
* - In the last representable year (`+275760`) a value that rounds down to a date unit still
|
|
101
98
|
* returns that unit's start; only rounding up past `+275760-09-13T23:59:59.999999999` returns "".
|
|
102
|
-
* - `roundingIncrement` and `roundingMode` are read as Temporal reads them for every unit: a
|
|
103
|
-
* non-integer increment is truncated (`1.5` rounds by 1), an increment below 1 or not finite
|
|
104
|
-
* returns "", and a `roundingMode` outside Temporal's nine returns "" (previously a date unit
|
|
105
|
-
* floored silently).
|
|
106
99
|
* - Wraps all Temporal calls in try-catch; returns "" on any error.
|
|
107
100
|
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
108
101
|
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
109
102
|
* hides the precision the unit asked for.
|
|
110
103
|
*
|
|
111
104
|
* @param value ISO 8601 datetime string
|
|
112
|
-
* @param options
|
|
105
|
+
* @param options The unit to round to and how to round
|
|
113
106
|
* @returns Rounded ISO 8601 datetime string, or "" on invalid input
|
|
114
107
|
*
|
|
115
108
|
* @example roundDateTime("2024-06-15T12:34:56", { smallestUnit: "year" }) // "2024-01-01T00:00:00"
|
|
@@ -129,9 +122,8 @@ export function roundDateTime(value, options) {
|
|
|
129
122
|
if (!isObject(options))
|
|
130
123
|
return "";
|
|
131
124
|
const { roundingIncrement, roundingMode } = options;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
: options.smallestUnit;
|
|
125
|
+
// One read (GetOption): resolveDateTimeUnit returns a value that is not a string unchanged.
|
|
126
|
+
const smallestUnit = resolveDateTimeUnit(options.smallestUnit);
|
|
135
127
|
if (!isValidDateTime(value) || !isValidDateTimeUnit(smallestUnit))
|
|
136
128
|
return "";
|
|
137
129
|
try {
|
|
@@ -3,16 +3,13 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
3
3
|
* Round an ISO 8601 time string to the specified time unit.
|
|
4
4
|
*
|
|
5
5
|
* - Returns "" for invalid inputs.
|
|
6
|
-
* - Only time units are accepted: "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
|
|
7
|
-
* - Each unit is accepted in its singular or plural form ("hour" or "hours"), as Temporal's
|
|
8
|
-
* GetTemporalUnitValuedOption accepts both.
|
|
9
6
|
* - Wraps Temporal.PlainTime.round() which throws on invalid options.
|
|
10
7
|
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
11
8
|
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
12
9
|
* hides the precision the unit asked for.
|
|
13
10
|
*
|
|
14
11
|
* @param value ISO 8601 time string
|
|
15
|
-
* @param options
|
|
12
|
+
* @param options The unit to round to and how to round
|
|
16
13
|
* @returns Rounded ISO 8601 time string, or "" on invalid input
|
|
17
14
|
*
|
|
18
15
|
* @example roundTime("12:34:56", { smallestUnit: "hour" }) // "13:00:00"
|
|
@@ -23,7 +20,26 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
23
20
|
* @example roundTime("invalid", { smallestUnit: "hour" }) // ""
|
|
24
21
|
*/
|
|
25
22
|
export declare function roundTime(value: string, options: {
|
|
23
|
+
/**
|
|
24
|
+
* The unit to round to, a time unit from `"hour"` to `"nanosecond"`, singular or plural, as
|
|
25
|
+
* Temporal's GetTemporalUnitValuedOption accepts both. It also sets how many fractional-second
|
|
26
|
+
* digits the result is written with. A date unit returns `""`.
|
|
27
|
+
*/
|
|
26
28
|
smallestUnit: Temporal.SmallestUnit<Temporal.TimeUnit>;
|
|
29
|
+
/**
|
|
30
|
+
* How many units make one rounding step. Temporal requires it to divide the next larger
|
|
31
|
+
* unit evenly and be smaller than it (`15` minutes, not `7` or `60`), and truncates a
|
|
32
|
+
* non-integer; any other value returns `""`.
|
|
33
|
+
*
|
|
34
|
+
* @defaultValue `1`, Temporal's default.
|
|
35
|
+
*/
|
|
27
36
|
roundingIncrement?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Which way a time between two steps goes: one of Temporal's nine rounding modes, such as
|
|
39
|
+
* `"floor"`, `"ceil"` or `"halfExpand"` (to the nearer step, a tie going up). Any other value
|
|
40
|
+
* returns `""`.
|
|
41
|
+
*
|
|
42
|
+
* @defaultValue `"halfExpand"`, Temporal's default.
|
|
43
|
+
*/
|
|
28
44
|
roundingMode?: Temporal.RoundingMode;
|
|
29
45
|
}): string;
|
|
@@ -6,16 +6,13 @@ import { isValidTime, isValidTimeUnit } from "../validate/index.js";
|
|
|
6
6
|
* Round an ISO 8601 time string to the specified time unit.
|
|
7
7
|
*
|
|
8
8
|
* - Returns "" for invalid inputs.
|
|
9
|
-
* - Only time units are accepted: "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
|
|
10
|
-
* - Each unit is accepted in its singular or plural form ("hour" or "hours"), as Temporal's
|
|
11
|
-
* GetTemporalUnitValuedOption accepts both.
|
|
12
9
|
* - Wraps Temporal.PlainTime.round() which throws on invalid options.
|
|
13
10
|
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
14
11
|
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
15
12
|
* hides the precision the unit asked for.
|
|
16
13
|
*
|
|
17
14
|
* @param value ISO 8601 time string
|
|
18
|
-
* @param options
|
|
15
|
+
* @param options The unit to round to and how to round
|
|
19
16
|
* @returns Rounded ISO 8601 time string, or "" on invalid input
|
|
20
17
|
*
|
|
21
18
|
* @example roundTime("12:34:56", { smallestUnit: "hour" }) // "13:00:00"
|
|
@@ -30,9 +27,8 @@ export function roundTime(value, options) {
|
|
|
30
27
|
if (!isObject(options))
|
|
31
28
|
return "";
|
|
32
29
|
const { roundingIncrement, roundingMode } = options;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
: options.smallestUnit;
|
|
30
|
+
// One read (GetOption): resolveDateTimeUnit returns a value that is not a string unchanged.
|
|
31
|
+
const smallestUnit = resolveDateTimeUnit(options.smallestUnit);
|
|
36
32
|
if (!isValidTime(value) || !isValidTimeUnit(smallestUnit))
|
|
37
33
|
return "";
|
|
38
34
|
try {
|
|
@@ -12,13 +12,9 @@ import type { Overflow } from "../../types/index.js";
|
|
|
12
12
|
* fields keep their current value. An empty object is a no-op.
|
|
13
13
|
* - Returns "" for invalid input.
|
|
14
14
|
*
|
|
15
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
16
|
-
* `month: 2` on a date whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
17
|
-
* (resulting in "").
|
|
18
|
-
*
|
|
19
15
|
* @param value ISO PlainDate string
|
|
20
16
|
* @param fields Partial<Temporal.PlainDateLike> object specifying fields to set
|
|
21
|
-
* @param options
|
|
17
|
+
* @param options How an out-of-range field value is handled
|
|
22
18
|
* @returns ISO PlainDate string with fields set, or "" on invalid input
|
|
23
19
|
*
|
|
24
20
|
* @example setDate("2024-03-10", { year: 2025 }) // "2025-03-10"
|
|
@@ -28,5 +24,11 @@ import type { Overflow } from "../../types/index.js";
|
|
|
28
24
|
* @example setDate("invalid", { year: 2025 }) // ""
|
|
29
25
|
*/
|
|
30
26
|
export declare function setDate(value: string, fields: Omit<Temporal.PlainDateLike, "calendar">, options?: {
|
|
27
|
+
/**
|
|
28
|
+
* What to do when the fields do not form a real date. `"constrain"` clamps to the last valid
|
|
29
|
+
* day, so `month: 2` on the 31st gives Feb 29 or 28; `"reject"` returns `""`.
|
|
30
|
+
*
|
|
31
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
32
|
+
*/
|
|
31
33
|
overflow?: Overflow;
|
|
32
34
|
}): string;
|
|
@@ -14,13 +14,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
14
14
|
* fields keep their current value. An empty object is a no-op.
|
|
15
15
|
* - Returns "" for invalid input.
|
|
16
16
|
*
|
|
17
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
18
|
-
* `month: 2` on a date whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
19
|
-
* (resulting in "").
|
|
20
|
-
*
|
|
21
17
|
* @param value ISO PlainDate string
|
|
22
18
|
* @param fields Partial<Temporal.PlainDateLike> object specifying fields to set
|
|
23
|
-
* @param options
|
|
19
|
+
* @param options How an out-of-range field value is handled
|
|
24
20
|
* @returns ISO PlainDate string with fields set, or "" on invalid input
|
|
25
21
|
*
|
|
26
22
|
* @example setDate("2024-03-10", { year: 2025 }) // "2025-03-10"
|
|
@@ -11,13 +11,9 @@ import type { Overflow } from "../../types/index.js";
|
|
|
11
11
|
* their current value. An empty object is a no-op.
|
|
12
12
|
* - Returns "" for invalid input.
|
|
13
13
|
*
|
|
14
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
15
|
-
* `month: 2` on a datetime whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
16
|
-
* (resulting in "").
|
|
17
|
-
*
|
|
18
14
|
* @param value ISO PlainDateTime string
|
|
19
15
|
* @param fields Partial<Temporal.PlainDateTimeLike> object specifying fields to set
|
|
20
|
-
* @param options
|
|
16
|
+
* @param options How an out-of-range field value is handled
|
|
21
17
|
* @returns ISO PlainDateTime string with fields set, or "" on invalid input
|
|
22
18
|
*
|
|
23
19
|
* @example setDateTime("2024-03-10T12:00:00", { hour: 9 }) // "2024-03-10T09:00:00"
|
|
@@ -27,5 +23,12 @@ import type { Overflow } from "../../types/index.js";
|
|
|
27
23
|
* @example setDateTime("invalid", { hour: 9 }) // ""
|
|
28
24
|
*/
|
|
29
25
|
export declare function setDateTime(value: string, fields: Omit<Temporal.PlainDateTimeLike, "calendar">, options?: {
|
|
26
|
+
/**
|
|
27
|
+
* What to do when the fields do not form a real date-time. `"constrain"` clamps each field to
|
|
28
|
+
* its nearest valid value, so `month: 2` on the 31st gives Feb 29 or 28; `"reject"` returns
|
|
29
|
+
* `""`.
|
|
30
|
+
*
|
|
31
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
32
|
+
*/
|
|
30
33
|
overflow?: Overflow;
|
|
31
34
|
}): string;
|
|
@@ -13,13 +13,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
13
13
|
* their current value. An empty object is a no-op.
|
|
14
14
|
* - Returns "" for invalid input.
|
|
15
15
|
*
|
|
16
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
17
|
-
* `month: 2` on a datetime whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
18
|
-
* (resulting in "").
|
|
19
|
-
*
|
|
20
16
|
* @param value ISO PlainDateTime string
|
|
21
17
|
* @param fields Partial<Temporal.PlainDateTimeLike> object specifying fields to set
|
|
22
|
-
* @param options
|
|
18
|
+
* @param options How an out-of-range field value is handled
|
|
23
19
|
* @returns ISO PlainDateTime string with fields set, or "" on invalid input
|
|
24
20
|
*
|
|
25
21
|
* @example setDateTime("2024-03-10T12:00:00", { hour: 9 }) // "2024-03-10T09:00:00"
|
|
@@ -8,16 +8,14 @@ import type { Overflow } from "../../types/index.js";
|
|
|
8
8
|
* `addTime()` calls field-by-field.
|
|
9
9
|
* - `fields` may set any of `hour`, `minute`, `second`, `millisecond`, `microsecond`, and/or
|
|
10
10
|
* `nanosecond`; omitted fields keep their current value. An empty object is a no-op.
|
|
11
|
+
* - Unlike `addTime`, which takes no `overflow` because addition always wraps around the clock,
|
|
12
|
+
* `overflow` has an effect here: `.with()` assigns fixed field values rather than adding a
|
|
13
|
+
* delta.
|
|
11
14
|
* - Returns "" for invalid input.
|
|
12
15
|
*
|
|
13
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range field values, e.g.
|
|
14
|
-
* `hour: 25`: "constrain" clamps to 23, "reject" throws (resulting in ""). Unlike `addTime`
|
|
15
|
-
* (which takes no `overflow`, because addition always wraps around the clock), `overflow` has
|
|
16
|
-
* a real effect here because `.with()` assigns fixed field values rather than adding a delta.
|
|
17
|
-
*
|
|
18
16
|
* @param value ISO PlainTime string
|
|
19
17
|
* @param fields Partial<Temporal.PlainTimeLike> object specifying fields to set
|
|
20
|
-
* @param options
|
|
18
|
+
* @param options How an out-of-range field value is handled
|
|
21
19
|
* @returns ISO PlainTime string with fields set, or "" on invalid input
|
|
22
20
|
*
|
|
23
21
|
* @example setTime("12:00:00", { hour: 9 }) // "09:00:00"
|
|
@@ -27,5 +25,11 @@ import type { Overflow } from "../../types/index.js";
|
|
|
27
25
|
* @example setTime("invalid", { hour: 9 }) // ""
|
|
28
26
|
*/
|
|
29
27
|
export declare function setTime(value: string, fields: Temporal.PlainTimeLike, options?: {
|
|
28
|
+
/**
|
|
29
|
+
* What to do when a field value is out of range. `"constrain"` clamps it to the nearest valid
|
|
30
|
+
* value, so `hour: 25` becomes 23; `"reject"` returns `""`.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
33
|
+
*/
|
|
30
34
|
overflow?: Overflow;
|
|
31
35
|
}): string;
|
|
@@ -10,16 +10,14 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
10
10
|
* `addTime()` calls field-by-field.
|
|
11
11
|
* - `fields` may set any of `hour`, `minute`, `second`, `millisecond`, `microsecond`, and/or
|
|
12
12
|
* `nanosecond`; omitted fields keep their current value. An empty object is a no-op.
|
|
13
|
+
* - Unlike `addTime`, which takes no `overflow` because addition always wraps around the clock,
|
|
14
|
+
* `overflow` has an effect here: `.with()` assigns fixed field values rather than adding a
|
|
15
|
+
* delta.
|
|
13
16
|
* - Returns "" for invalid input.
|
|
14
17
|
*
|
|
15
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range field values, e.g.
|
|
16
|
-
* `hour: 25`: "constrain" clamps to 23, "reject" throws (resulting in ""). Unlike `addTime`
|
|
17
|
-
* (which takes no `overflow`, because addition always wraps around the clock), `overflow` has
|
|
18
|
-
* a real effect here because `.with()` assigns fixed field values rather than adding a delta.
|
|
19
|
-
*
|
|
20
18
|
* @param value ISO PlainTime string
|
|
21
19
|
* @param fields Partial<Temporal.PlainTimeLike> object specifying fields to set
|
|
22
|
-
* @param options
|
|
20
|
+
* @param options How an out-of-range field value is handled
|
|
23
21
|
* @returns ISO PlainTime string with fields set, or "" on invalid input
|
|
24
22
|
*
|
|
25
23
|
* @example setTime("12:00:00", { hour: 9 }) // "09:00:00"
|
|
@@ -4,12 +4,11 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - `"day"` returns the date itself: a date is already a whole day, as `endOfDate` treats it.
|
|
6
6
|
* - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
|
|
7
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
8
7
|
* - Returns "" for invalid inputs.
|
|
9
8
|
*
|
|
10
9
|
* @param value ISO 8601 date string
|
|
11
10
|
* @param unit date unit, singular or plural, to specify the unit for the start
|
|
12
|
-
* @param optionsArg
|
|
11
|
+
* @param optionsArg How the week is defined
|
|
13
12
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
14
13
|
*
|
|
15
14
|
* @example startOfDate("2024-02-29", "month") // "2024-02-01"
|
|
@@ -18,5 +17,12 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
18
17
|
* @example startOfDate("invalid-date", "month") // ""
|
|
19
18
|
*/
|
|
20
19
|
export declare function startOfDate(value: string, unit: Temporal.SmallestUnit<Temporal.DateUnit>, optionsArg?: {
|
|
20
|
+
/**
|
|
21
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
22
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
23
|
+
* `""`, whatever the unit.
|
|
24
|
+
*
|
|
25
|
+
* @defaultValue `"monday"`
|
|
26
|
+
*/
|
|
21
27
|
weekStartsOn?: "monday" | "sunday";
|
|
22
28
|
}): string;
|
|
@@ -10,12 +10,11 @@ const supported = ["year", "month", "week", "day"];
|
|
|
10
10
|
*
|
|
11
11
|
* - `"day"` returns the date itself: a date is already a whole day, as `endOfDate` treats it.
|
|
12
12
|
* - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
|
|
13
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
14
13
|
* - Returns "" for invalid inputs.
|
|
15
14
|
*
|
|
16
15
|
* @param value ISO 8601 date string
|
|
17
16
|
* @param unit date unit, singular or plural, to specify the unit for the start
|
|
18
|
-
* @param optionsArg
|
|
17
|
+
* @param optionsArg How the week is defined
|
|
19
18
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
20
19
|
*
|
|
21
20
|
* @example startOfDate("2024-02-29", "month") // "2024-02-01"
|
|
@@ -4,12 +4,11 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
4
4
|
* Return the start of the specified date-time `unit` for a given ISO 8601 datetime string.
|
|
5
5
|
*
|
|
6
6
|
* - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
|
|
7
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
8
7
|
* - Returns "" for invalid inputs.
|
|
9
8
|
*
|
|
10
9
|
* @param value ISO 8601 datetime string
|
|
11
10
|
* @param unit date or time unit, singular or plural, to specify the unit for the start
|
|
12
|
-
* @param optionsArg
|
|
11
|
+
* @param optionsArg How the week is defined and how the result is written
|
|
13
12
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
14
13
|
*
|
|
15
14
|
* @example startOfDateTime("2024-02-29T12:34:56", "month") // "2024-02-01T00:00:00"
|
|
@@ -17,6 +16,20 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
17
16
|
* @example startOfDateTime("invalid-datetime", "month") // ""
|
|
18
17
|
*/
|
|
19
18
|
export declare function startOfDateTime(value: string, unit: Temporal.SmallestUnit<Temporal.DateTimeUnit>, optionsArg?: {
|
|
19
|
+
/**
|
|
20
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
21
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
22
|
+
* `""`, whatever the unit.
|
|
23
|
+
*
|
|
24
|
+
* @defaultValue `"monday"`
|
|
25
|
+
*/
|
|
20
26
|
weekStartsOn?: "monday" | "sunday";
|
|
27
|
+
/**
|
|
28
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
29
|
+
* drop trailing zeros. Fewer digits than `unit` names truncate, as Temporal's `toString` does.
|
|
30
|
+
*
|
|
31
|
+
* @defaultValue The digits `unit` names: `3` for `"millisecond"`, `6` for `"microsecond"`, `9`
|
|
32
|
+
* for `"nanosecond"` and `0` for any coarser unit.
|
|
33
|
+
*/
|
|
21
34
|
fractionalSecondDigits?: FractionalDigit;
|
|
22
35
|
}): string;
|
|
@@ -9,12 +9,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
9
|
* Return the start of the specified date-time `unit` for a given ISO 8601 datetime string.
|
|
10
10
|
*
|
|
11
11
|
* - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
|
|
12
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
13
12
|
* - Returns "" for invalid inputs.
|
|
14
13
|
*
|
|
15
14
|
* @param value ISO 8601 datetime string
|
|
16
15
|
* @param unit date or time unit, singular or plural, to specify the unit for the start
|
|
17
|
-
* @param optionsArg
|
|
16
|
+
* @param optionsArg How the week is defined and how the result is written
|
|
18
17
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
19
18
|
*
|
|
20
19
|
* @example startOfDateTime("2024-02-29T12:34:56", "month") // "2024-02-01T00:00:00"
|
|
@@ -20,7 +20,7 @@ export type StartOfTimeUnit = Temporal.SmallestUnit<Temporal.TimeUnit | "day">;
|
|
|
20
20
|
*
|
|
21
21
|
* @param value ISO 8601 time string
|
|
22
22
|
* @param unit StartOfTimeUnit to specify the unit for the start
|
|
23
|
-
* @param optionsArg
|
|
23
|
+
* @param optionsArg How the result is written
|
|
24
24
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
25
25
|
*
|
|
26
26
|
* @example startOfTime("12:34:56", "hour") // "12:00:00"
|
|
@@ -29,5 +29,12 @@ export type StartOfTimeUnit = Temporal.SmallestUnit<Temporal.TimeUnit | "day">;
|
|
|
29
29
|
* @example startOfTime("invalid", "hour") // ""
|
|
30
30
|
*/
|
|
31
31
|
export declare function startOfTime(value: string, unit: StartOfTimeUnit, optionsArg?: {
|
|
32
|
+
/**
|
|
33
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
34
|
+
* drop trailing zeros. Fewer digits than `unit` names truncate, as Temporal's `toString` does.
|
|
35
|
+
*
|
|
36
|
+
* @defaultValue The digits `unit` names: `3` for `"millisecond"`, `6` for `"microsecond"`, `9`
|
|
37
|
+
* for `"nanosecond"` and `0` for any coarser unit.
|
|
38
|
+
*/
|
|
32
39
|
fractionalSecondDigits?: FractionalDigit;
|
|
33
40
|
}): string;
|
|
@@ -25,7 +25,7 @@ const supported = [
|
|
|
25
25
|
*
|
|
26
26
|
* @param value ISO 8601 time string
|
|
27
27
|
* @param unit StartOfTimeUnit to specify the unit for the start
|
|
28
|
-
* @param optionsArg
|
|
28
|
+
* @param optionsArg How the result is written
|
|
29
29
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
30
30
|
*
|
|
31
31
|
* @example startOfTime("12:34:56", "hour") // "12:00:00"
|
|
@@ -10,12 +10,9 @@ import type { DateDurationUnit, Overflow } from "../../types/index.js";
|
|
|
10
10
|
* calendar ids); see `isValidCalendarDate`.
|
|
11
11
|
* - Returns "" for invalid inputs.
|
|
12
12
|
*
|
|
13
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
14
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
15
|
-
*
|
|
16
13
|
* @param value ISO PlainDate string, optionally calendar-annotated
|
|
17
14
|
* @param units Partial<Record<DateDurationUnit, number>> object specifying units to subtract
|
|
18
|
-
* @param options
|
|
15
|
+
* @param options How an out-of-range result is handled
|
|
19
16
|
* @returns ISO PlainDate string after subtraction, or "" on invalid input
|
|
20
17
|
*
|
|
21
18
|
* @example subtractDate("2024-03-15", { days: 5 }) // "2024-03-10"
|
|
@@ -24,5 +21,11 @@ import type { DateDurationUnit, Overflow } from "../../types/index.js";
|
|
|
24
21
|
* @example subtractDate("2024-03-25[u-ca=hebrew]", { months: 1 }) // "2024-02-24[u-ca=hebrew]" (15 Adar II 5784 -> 15 Adar I)
|
|
25
22
|
*/
|
|
26
23
|
export declare function subtractDate(value: string, units: Partial<Record<DateDurationUnit, number>>, options?: {
|
|
24
|
+
/**
|
|
25
|
+
* What to do when the result is not a real date. `"constrain"` clamps it to the last valid day,
|
|
26
|
+
* so Mar 31 - 1 month is Feb 29 or 28; `"reject"` returns `""`.
|
|
27
|
+
*
|
|
28
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
29
|
+
*/
|
|
27
30
|
overflow?: Overflow;
|
|
28
31
|
}): string;
|
|
@@ -14,12 +14,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
14
14
|
* calendar ids); see `isValidCalendarDate`.
|
|
15
15
|
* - Returns "" for invalid inputs.
|
|
16
16
|
*
|
|
17
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
18
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
19
|
-
*
|
|
20
17
|
* @param value ISO PlainDate string, optionally calendar-annotated
|
|
21
18
|
* @param units Partial<Record<DateDurationUnit, number>> object specifying units to subtract
|
|
22
|
-
* @param options
|
|
19
|
+
* @param options How an out-of-range result is handled
|
|
23
20
|
* @returns ISO PlainDate string after subtraction, or "" on invalid input
|
|
24
21
|
*
|
|
25
22
|
* @example subtractDate("2024-03-15", { days: 5 }) // "2024-03-10"
|
|
@@ -5,12 +5,9 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
5
5
|
* - Validates `value`, `units`, and `amount` before performing the subtract.
|
|
6
6
|
* - Returns "" for invalid inputs.
|
|
7
7
|
*
|
|
8
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
9
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
10
|
-
*
|
|
11
8
|
* @param value ISO PlainDateTime string
|
|
12
9
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
13
|
-
* @param options
|
|
10
|
+
* @param options How an out-of-range result is handled
|
|
14
11
|
* @returns ISO PlainDateTime string after subtraction, or "" on invalid input
|
|
15
12
|
*
|
|
16
13
|
* @example subtractDateTime("2024-03-15T12:00:00", { days: 5 }) // "2024-03-10T12:00:00"
|
|
@@ -18,5 +15,11 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
18
15
|
* @example subtractDateTime("2024-03-31T12:00:00", { months: 1 }, { overflow: "reject" }) // ""
|
|
19
16
|
*/
|
|
20
17
|
export declare function subtractDateTime(value: string, units: Partial<Record<DateTimeDurationUnit, number>>, options?: {
|
|
18
|
+
/**
|
|
19
|
+
* What to do when the result is not a real date. `"constrain"` clamps it to the last valid day,
|
|
20
|
+
* so Mar 31 - 1 month is Feb 29 or 28; `"reject"` returns `""`.
|
|
21
|
+
*
|
|
22
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
23
|
+
*/
|
|
21
24
|
overflow?: Overflow;
|
|
22
25
|
}): string;
|
|
@@ -9,12 +9,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
9
|
* - Validates `value`, `units`, and `amount` before performing the subtract.
|
|
10
10
|
* - Returns "" for invalid inputs.
|
|
11
11
|
*
|
|
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 "").
|
|
14
|
-
*
|
|
15
12
|
* @param value ISO PlainDateTime string
|
|
16
13
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
17
|
-
* @param options
|
|
14
|
+
* @param options How an out-of-range result is handled
|
|
18
15
|
* @returns ISO PlainDateTime string after subtraction, or "" on invalid input
|
|
19
16
|
*
|
|
20
17
|
* @example subtractDateTime("2024-03-15T12:00:00", { days: 5 }) // "2024-03-10T12:00:00"
|
|
@@ -4,18 +4,19 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - Equality means both values share the same start-of-`unit` boundary, so
|
|
6
6
|
* `"month"` requires the same month AND year — March 2023 and March 2024 are
|
|
7
|
-
* NOT equal by month
|
|
8
|
-
* `
|
|
7
|
+
* NOT equal by month. A calendar month is a year and a month together, as in
|
|
8
|
+
* Temporal's `PlainYearMonth`, not a bare month-of-year number.
|
|
9
|
+
* - Comparison: date-fns's `isSameMonth` and Luxon's `dt.hasSame(other, "month")`
|
|
10
|
+
* give the same answer.
|
|
9
11
|
* - Supports the full `Temporal.DateUnit | Temporal.TimeUnit` range, down to
|
|
10
12
|
* `"nanosecond"`.
|
|
11
13
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
12
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
13
14
|
* - Returns false for an unsupported unit or invalid input.
|
|
14
15
|
* - Takes no `fractionalSecondDigits`: equality compares full-precision `unit` boundaries, and output
|
|
15
16
|
* digits cannot change which bucket a value is in. That ignored option was removed in 1.16.0; to
|
|
16
17
|
* compare more coarsely, pass a coarser unit (0 digits is `"second"`, 3 is `"millisecond"`).
|
|
17
18
|
*
|
|
18
|
-
* Mapping from date-fns
|
|
19
|
+
* Mapping from date-fns:
|
|
19
20
|
* - `isSameDay(a, b)` → `areDateTimesEqualBy(a, b, "day")`
|
|
20
21
|
* - `isSameHour(a, b)` → `areDateTimesEqualBy(a, b, "hour")`
|
|
21
22
|
* - `isSameMinute(a, b)` → `areDateTimesEqualBy(a, b, "minute")`
|
|
@@ -26,7 +27,7 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
26
27
|
* @param value1 first ISO datetime string
|
|
27
28
|
* @param value2 second ISO datetime string
|
|
28
29
|
* @param unit date or time unit, singular or plural, to compare by
|
|
29
|
-
* @param optionsArg
|
|
30
|
+
* @param optionsArg How the week is defined
|
|
30
31
|
* @returns true if both datetimes share the same start-of-unit boundary, false on an unsupported unit or invalid input
|
|
31
32
|
*
|
|
32
33
|
* @example areDateTimesEqualBy("2024-03-15T10:00:00", "2024-03-15T18:00:00", "day") // true
|
|
@@ -38,5 +39,12 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
38
39
|
* @example areDateTimesEqualBy("invalid", "2024-03-15T10:00:00", "day") // false
|
|
39
40
|
*/
|
|
40
41
|
export declare function areDateTimesEqualBy(value1: string, value2: string, unit: Temporal.SmallestUnit<Temporal.DateTimeUnit>, optionsArg?: {
|
|
42
|
+
/**
|
|
43
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
44
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
45
|
+
* false, whatever the unit.
|
|
46
|
+
*
|
|
47
|
+
* @defaultValue `"monday"`
|
|
48
|
+
*/
|
|
41
49
|
weekStartsOn?: "monday" | "sunday";
|
|
42
50
|
}): boolean;
|
|
@@ -9,18 +9,19 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
9
|
*
|
|
10
10
|
* - Equality means both values share the same start-of-`unit` boundary, so
|
|
11
11
|
* `"month"` requires the same month AND year — March 2023 and March 2024 are
|
|
12
|
-
* NOT equal by month
|
|
13
|
-
* `
|
|
12
|
+
* NOT equal by month. A calendar month is a year and a month together, as in
|
|
13
|
+
* Temporal's `PlainYearMonth`, not a bare month-of-year number.
|
|
14
|
+
* - Comparison: date-fns's `isSameMonth` and Luxon's `dt.hasSame(other, "month")`
|
|
15
|
+
* give the same answer.
|
|
14
16
|
* - Supports the full `Temporal.DateUnit | Temporal.TimeUnit` range, down to
|
|
15
17
|
* `"nanosecond"`.
|
|
16
18
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
17
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
18
19
|
* - Returns false for an unsupported unit or invalid input.
|
|
19
20
|
* - Takes no `fractionalSecondDigits`: equality compares full-precision `unit` boundaries, and output
|
|
20
21
|
* digits cannot change which bucket a value is in. That ignored option was removed in 1.16.0; to
|
|
21
22
|
* compare more coarsely, pass a coarser unit (0 digits is `"second"`, 3 is `"millisecond"`).
|
|
22
23
|
*
|
|
23
|
-
* Mapping from date-fns
|
|
24
|
+
* Mapping from date-fns:
|
|
24
25
|
* - `isSameDay(a, b)` → `areDateTimesEqualBy(a, b, "day")`
|
|
25
26
|
* - `isSameHour(a, b)` → `areDateTimesEqualBy(a, b, "hour")`
|
|
26
27
|
* - `isSameMinute(a, b)` → `areDateTimesEqualBy(a, b, "minute")`
|
|
@@ -31,7 +32,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
31
32
|
* @param value1 first ISO datetime string
|
|
32
33
|
* @param value2 second ISO datetime string
|
|
33
34
|
* @param unit date or time unit, singular or plural, to compare by
|
|
34
|
-
* @param optionsArg
|
|
35
|
+
* @param optionsArg How the week is defined
|
|
35
36
|
* @returns true if both datetimes share the same start-of-unit boundary, false on an unsupported unit or invalid input
|
|
36
37
|
*
|
|
37
38
|
* @example areDateTimesEqualBy("2024-03-15T10:00:00", "2024-03-15T18:00:00", "day") // true
|