@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
|
@@ -29,15 +29,14 @@ export type PlainNowUnit = "year" | "month" | "week" | "day" | "dayOfWeek" | "ho
|
|
|
29
29
|
* Extract a unit from a unix epoch value.
|
|
30
30
|
*
|
|
31
31
|
* - Valid units: "year", "month", "week", "day", "dayOfWeek", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond". Temporal units may also be plural ("hours").
|
|
32
|
-
* - `value` is a safe integer or a string of optionally negative ASCII digits
|
|
32
|
+
* - `value` is a safe integer or a string of optionally negative ASCII digits.
|
|
33
33
|
* - `microsecond` and `nanosecond` are the 0–999 Temporal fields, zero-padded to 3 digits.
|
|
34
34
|
* - Converts to ZonedDateTime then extracts the unit.
|
|
35
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "", for every unit.
|
|
36
35
|
* - Returns "" for invalid input.
|
|
37
36
|
*
|
|
38
37
|
* @param value unix epoch in milliseconds or seconds: a safe integer, or a string of optionally negative ASCII digits
|
|
39
38
|
* @param unit unit to extract (e.g. "year", "month", "hour")
|
|
40
|
-
* @param options optional:
|
|
39
|
+
* @param options optional: how `value` is read, the zone its wall clock is read in and the first day of the week; a non-object value (such as `null`) is invalid
|
|
41
40
|
* @returns extracted unit value as string, or "" on invalid input
|
|
42
41
|
*
|
|
43
42
|
* @example parseUnitFromUnix(1700000000000, "year") // "2023"
|
|
@@ -50,7 +49,27 @@ export type PlainNowUnit = "year" | "month" | "week" | "day" | "dayOfWeek" | "ho
|
|
|
50
49
|
* @example parseUnitFromUnix("", "year") // "" (a blank string is not epoch 0)
|
|
51
50
|
*/
|
|
52
51
|
export declare function parseUnitFromUnix(value: number | string, unit: PlainNowUnit | Temporal.PluralUnit<Temporal.DateTimeUnit>, options?: {
|
|
52
|
+
/**
|
|
53
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
54
|
+
* plural. Any other value returns `""`.
|
|
55
|
+
*
|
|
56
|
+
* @defaultValue `"milliseconds"`
|
|
57
|
+
*/
|
|
53
58
|
epochUnit?: UnixUnit;
|
|
59
|
+
/**
|
|
60
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
61
|
+
* the system time zone. An unknown zone returns `""`.
|
|
62
|
+
*
|
|
63
|
+
* @defaultValue `"UTC"`
|
|
64
|
+
*/
|
|
54
65
|
timeZone?: string;
|
|
66
|
+
/**
|
|
67
|
+
* The first day of the week, which sets how the `"week"` unit is numbered. `"monday"` gives the
|
|
68
|
+
* ISO 8601 week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS
|
|
69
|
+
* #35 week number with a Sunday first day and one minimal day, where week 1 holds 1 January.
|
|
70
|
+
* Any other value returns `""`, whatever the unit.
|
|
71
|
+
*
|
|
72
|
+
* @defaultValue `"monday"`
|
|
73
|
+
*/
|
|
55
74
|
weekStartsOn?: "monday" | "sunday";
|
|
56
75
|
}): string;
|
|
@@ -7,15 +7,14 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
7
7
|
* Extract a unit from a unix epoch value.
|
|
8
8
|
*
|
|
9
9
|
* - Valid units: "year", "month", "week", "day", "dayOfWeek", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond". Temporal units may also be plural ("hours").
|
|
10
|
-
* - `value` is a safe integer or a string of optionally negative ASCII digits
|
|
10
|
+
* - `value` is a safe integer or a string of optionally negative ASCII digits.
|
|
11
11
|
* - `microsecond` and `nanosecond` are the 0–999 Temporal fields, zero-padded to 3 digits.
|
|
12
12
|
* - Converts to ZonedDateTime then extracts the unit.
|
|
13
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "", for every unit.
|
|
14
13
|
* - Returns "" for invalid input.
|
|
15
14
|
*
|
|
16
15
|
* @param value unix epoch in milliseconds or seconds: a safe integer, or a string of optionally negative ASCII digits
|
|
17
16
|
* @param unit unit to extract (e.g. "year", "month", "hour")
|
|
18
|
-
* @param options optional:
|
|
17
|
+
* @param options optional: how `value` is read, the zone its wall clock is read in and the first day of the week; a non-object value (such as `null`) is invalid
|
|
19
18
|
* @returns extracted unit value as string, or "" on invalid input
|
|
20
19
|
*
|
|
21
20
|
* @example parseUnitFromUnix(1700000000000, "year") // "2023"
|
|
@@ -2,16 +2,12 @@ import type { UnixUnit } from "../validate/index.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Return the week number from a unix epoch value.
|
|
4
4
|
*
|
|
5
|
-
* -
|
|
6
|
-
*
|
|
7
|
-
* - `"sunday"` is the UTS #35 week of the week-year with a Sunday first day and minimal days 1:
|
|
8
|
-
* week 1 is the Sunday-first week holding 1 January, so late-December days can be week 1 of the
|
|
9
|
-
* next year. The result is 1–53 — see `getWeekNumber`.
|
|
10
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
|
|
5
|
+
* - Returns the week of the week-year, 1–53, so late-December days can be week 1 of the next
|
|
6
|
+
* year — see `getWeekNumber`.
|
|
11
7
|
* - Returns null for invalid input.
|
|
12
8
|
*
|
|
13
9
|
* @param value unix epoch in milliseconds or seconds: a safe integer, or a string of optionally negative ASCII digits
|
|
14
|
-
* @param options optional:
|
|
10
|
+
* @param options optional: how `value` is read, the zone its date is read in and the first day of the week; a non-object value (such as `null`) is invalid
|
|
15
11
|
* @returns Week number (1-53 for "monday" and for "sunday") or null on invalid input
|
|
16
12
|
*
|
|
17
13
|
* @example parseWeekFromUnix(1704067200000, { timeZone: "UTC" }) // 1
|
|
@@ -22,7 +18,27 @@ import type { UnixUnit } from "../validate/index.js";
|
|
|
22
18
|
* @example parseWeekFromUnix(1735646400000, { weekStartsOn: "sunday", timeZone: "UTC" }) // 1 (2024-12-31T12:00:00Z; its Sunday-first week holds 1 January 2025)
|
|
23
19
|
*/
|
|
24
20
|
export declare function parseWeekFromUnix(value: number | string, options?: {
|
|
21
|
+
/**
|
|
22
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
23
|
+
* plural. Any other value returns `null`.
|
|
24
|
+
*
|
|
25
|
+
* @defaultValue `"milliseconds"`
|
|
26
|
+
*/
|
|
25
27
|
epochUnit?: UnixUnit;
|
|
28
|
+
/**
|
|
29
|
+
* The time zone the date is read in: an IANA name, a UTC offset, or `"local"` for the system
|
|
30
|
+
* time zone. An unknown zone returns `null`.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue `"UTC"`
|
|
33
|
+
*/
|
|
26
34
|
timeZone?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The first day of the week, which sets how the week is numbered. `"monday"` gives the ISO 8601
|
|
37
|
+
* week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS #35 week
|
|
38
|
+
* number with a Sunday first day and one minimal day, where week 1 holds 1 January. Any other
|
|
39
|
+
* value returns `null`.
|
|
40
|
+
*
|
|
41
|
+
* @defaultValue `"monday"`
|
|
42
|
+
*/
|
|
27
43
|
weekStartsOn?: "monday" | "sunday";
|
|
28
44
|
}): number | null;
|
|
@@ -5,16 +5,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Return the week number from a unix epoch value.
|
|
7
7
|
*
|
|
8
|
-
* -
|
|
9
|
-
*
|
|
10
|
-
* - `"sunday"` is the UTS #35 week of the week-year with a Sunday first day and minimal days 1:
|
|
11
|
-
* week 1 is the Sunday-first week holding 1 January, so late-December days can be week 1 of the
|
|
12
|
-
* next year. The result is 1–53 — see `getWeekNumber`.
|
|
13
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
|
|
8
|
+
* - Returns the week of the week-year, 1–53, so late-December days can be week 1 of the next
|
|
9
|
+
* year — see `getWeekNumber`.
|
|
14
10
|
* - Returns null for invalid input.
|
|
15
11
|
*
|
|
16
12
|
* @param value unix epoch in milliseconds or seconds: a safe integer, or a string of optionally negative ASCII digits
|
|
17
|
-
* @param options optional:
|
|
13
|
+
* @param options optional: how `value` is read, the zone its date is read in and the first day of the week; a non-object value (such as `null`) is invalid
|
|
18
14
|
* @returns Week number (1-53 for "monday" and for "sunday") or null on invalid input
|
|
19
15
|
*
|
|
20
16
|
* @example parseWeekFromUnix(1704067200000, { timeZone: "UTC" }) // 1
|
|
@@ -3,11 +3,11 @@ import type { UnixUnit } from "../validate/index.js";
|
|
|
3
3
|
* Return the year from a unix epoch value.
|
|
4
4
|
*
|
|
5
5
|
* - Delegates to {@link parseUnitFromUnix} with unit "year".
|
|
6
|
-
* - `value` is a safe integer or a digit string
|
|
6
|
+
* - `value` is a safe integer or a digit string.
|
|
7
7
|
* - Returns "" for invalid input.
|
|
8
8
|
*
|
|
9
9
|
* @param value unix epoch in milliseconds or seconds: a safe integer, or a string of optionally negative ASCII digits
|
|
10
|
-
* @param options optional:
|
|
10
|
+
* @param options optional: how `value` is read and the zone its wall clock is read in
|
|
11
11
|
* @returns Year (YYYY) or "" on invalid input
|
|
12
12
|
*
|
|
13
13
|
* @example parseYearFromUnix(1700000000000) // "2023"
|
|
@@ -16,6 +16,18 @@ import type { UnixUnit } from "../validate/index.js";
|
|
|
16
16
|
* @example parseYearFromUnix("") // "" (a blank string is not epoch 0)
|
|
17
17
|
*/
|
|
18
18
|
export declare function parseYearFromUnix(value: number | string, options?: {
|
|
19
|
+
/**
|
|
20
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
21
|
+
* plural. Any other value returns `""`.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue `"milliseconds"`
|
|
24
|
+
*/
|
|
19
25
|
epochUnit?: UnixUnit;
|
|
26
|
+
/**
|
|
27
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
28
|
+
* the system time zone. An unknown zone returns `""`.
|
|
29
|
+
*
|
|
30
|
+
* @defaultValue `"UTC"`
|
|
31
|
+
*/
|
|
20
32
|
timeZone?: string;
|
|
21
33
|
}): string;
|
|
@@ -4,11 +4,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
4
4
|
* Return the year from a unix epoch value.
|
|
5
5
|
*
|
|
6
6
|
* - Delegates to {@link parseUnitFromUnix} with unit "year".
|
|
7
|
-
* - `value` is a safe integer or a digit string
|
|
7
|
+
* - `value` is a safe integer or a digit string.
|
|
8
8
|
* - Returns "" for invalid input.
|
|
9
9
|
*
|
|
10
10
|
* @param value unix epoch in milliseconds or seconds: a safe integer, or a string of optionally negative ASCII digits
|
|
11
|
-
* @param options optional:
|
|
11
|
+
* @param options optional: how `value` is read and the zone its wall clock is read in
|
|
12
12
|
* @returns Year (YYYY) or "" on invalid input
|
|
13
13
|
*
|
|
14
14
|
* @example parseYearFromUnix(1700000000000) // "2023"
|
|
@@ -7,11 +7,8 @@
|
|
|
7
7
|
* - Fractional values, `NaN`, `±Infinity` and anything beyond ±(2^53 − 1) return `false`.
|
|
8
8
|
* - Strings with whitespace, `+`, a decimal point, an exponent or hex digits return `false`, and an
|
|
9
9
|
* empty string is not epoch 0.
|
|
10
|
-
* - Equal `value1 === value2` is valid only when `options.allowEqual` is true.
|
|
11
10
|
*
|
|
12
|
-
* @param
|
|
13
|
-
* @param value2 second Unix epoch value (seconds or milliseconds)
|
|
14
|
-
* @param options optional allowEqual flag
|
|
11
|
+
* @param props the two epoch values and the settings for the check
|
|
15
12
|
* @returns boolean indicating whether the Unix range is valid
|
|
16
13
|
*
|
|
17
14
|
* @example isValidUnixRange({ value1: 0, value2: 1700000000 }) // true
|
|
@@ -22,9 +19,28 @@
|
|
|
22
19
|
* @example isValidUnixRange({ value1: "0", value2: "1e3" }) // false (exponent notation is not an epoch)
|
|
23
20
|
*/
|
|
24
21
|
export declare function isValidUnixRange(props: {
|
|
22
|
+
/**
|
|
23
|
+
* The start of the range: a Unix epoch in seconds or milliseconds, as a safe integer or a digit
|
|
24
|
+
* string.
|
|
25
|
+
*/
|
|
25
26
|
value1: number | string;
|
|
27
|
+
/**
|
|
28
|
+
* The end of the range, in the same form and unit as `value1`.
|
|
29
|
+
*/
|
|
26
30
|
value2: number | string;
|
|
31
|
+
/**
|
|
32
|
+
* The settings for the comparison. It must be an object or omitted; any other value, `null`
|
|
33
|
+
* included, returns `false`.
|
|
34
|
+
*
|
|
35
|
+
* @defaultValue None. Equal values are not a valid range.
|
|
36
|
+
*/
|
|
27
37
|
options?: {
|
|
38
|
+
/**
|
|
39
|
+
* Whether `value1` equal to `value2` is a valid range. `false` requires `value1` to be
|
|
40
|
+
* before `value2`.
|
|
41
|
+
*
|
|
42
|
+
* @defaultValue `false`
|
|
43
|
+
*/
|
|
28
44
|
allowEqual?: boolean;
|
|
29
45
|
};
|
|
30
46
|
}): boolean;
|
|
@@ -8,11 +8,8 @@ import { isObject, isOptionsArgument, parseUnixEpochValue, } from "../../interna
|
|
|
8
8
|
* - Fractional values, `NaN`, `±Infinity` and anything beyond ±(2^53 − 1) return `false`.
|
|
9
9
|
* - Strings with whitespace, `+`, a decimal point, an exponent or hex digits return `false`, and an
|
|
10
10
|
* empty string is not epoch 0.
|
|
11
|
-
* - Equal `value1 === value2` is valid only when `options.allowEqual` is true.
|
|
12
11
|
*
|
|
13
|
-
* @param
|
|
14
|
-
* @param value2 second Unix epoch value (seconds or milliseconds)
|
|
15
|
-
* @param options optional allowEqual flag
|
|
12
|
+
* @param props the two epoch values and the settings for the check
|
|
16
13
|
* @returns boolean indicating whether the Unix range is valid
|
|
17
14
|
*
|
|
18
15
|
* @example isValidUnixRange({ value1: 0, value2: 1700000000 }) // true
|
|
@@ -6,12 +6,9 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
6
6
|
* - Validates duration units and values.
|
|
7
7
|
* - Returns "" for invalid input.
|
|
8
8
|
*
|
|
9
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
10
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
11
|
-
*
|
|
12
9
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
13
10
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to add
|
|
14
|
-
* @param options
|
|
11
|
+
* @param options How an out-of-range result is handled
|
|
15
12
|
* @returns UTC Instant string after addition, or "" on invalid input
|
|
16
13
|
*
|
|
17
14
|
* @example addUtc("2024-03-10T12:00:00Z", { days: 5 }) // "2024-03-15T12:00:00Z"
|
|
@@ -19,5 +16,11 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
19
16
|
* @example addUtc("invalid", { days: 5 }) // ""
|
|
20
17
|
*/
|
|
21
18
|
export declare function addUtc(value: string, units: Partial<Record<DateTimeDurationUnit, number>>, options?: {
|
|
19
|
+
/**
|
|
20
|
+
* What to do when the result is not a real date. `"constrain"` clamps it to the last valid day,
|
|
21
|
+
* so Jan 31 + 1 month is Feb 29/28 (TC39 Temporal); `"reject"` returns `""`.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
24
|
+
*/
|
|
22
25
|
overflow?: Overflow;
|
|
23
26
|
}): string;
|
|
@@ -11,12 +11,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
11
11
|
* - Validates duration units and values.
|
|
12
12
|
* - Returns "" for invalid input.
|
|
13
13
|
*
|
|
14
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
15
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
16
|
-
*
|
|
17
14
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
18
15
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to add
|
|
19
|
-
* @param options
|
|
16
|
+
* @param options How an out-of-range result is handled
|
|
20
17
|
* @returns UTC Instant string after addition, or "" on invalid input
|
|
21
18
|
*
|
|
22
19
|
* @example addUtc("2024-03-10T12:00:00Z", { days: 5 }) // "2024-03-15T12:00:00Z"
|
|
@@ -31,7 +31,7 @@ import type { DateTimeDurationUnit, RoundingOptions } from "../../types/index.js
|
|
|
31
31
|
* @param value1 UTC ISO datetime string (start)
|
|
32
32
|
* @param value2 UTC ISO datetime string (end)
|
|
33
33
|
* @param units DateTimeDurationUnit | DateTimeDurationUnit[] to measure the difference
|
|
34
|
-
* @param options optional:
|
|
34
|
+
* @param options optional: how the difference is rounded; a non-object value (such as `null`) is invalid
|
|
35
35
|
* @returns numeric difference in the requested unit, or null on invalid input
|
|
36
36
|
*
|
|
37
37
|
* @example diffUtc("2024-03-10T12:00:00Z", "2024-03-11T12:00:00Z", "hours") // 24
|
|
@@ -38,7 +38,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
38
38
|
* @param value1 UTC ISO datetime string (start)
|
|
39
39
|
* @param value2 UTC ISO datetime string (end)
|
|
40
40
|
* @param units DateTimeDurationUnit | DateTimeDurationUnit[] to measure the difference
|
|
41
|
-
* @param options optional:
|
|
41
|
+
* @param options optional: how the difference is rounded; a non-object value (such as `null`) is invalid
|
|
42
42
|
* @returns numeric difference in the requested unit, or null on invalid input
|
|
43
43
|
*
|
|
44
44
|
* @example diffUtc("2024-03-10T12:00:00Z", "2024-03-11T12:00:00Z", "hours") // 24
|
|
@@ -21,7 +21,7 @@ import type { DateTimeDurationUnit, DurationStringOptions, RoundingOptions } fro
|
|
|
21
21
|
* @param value1 UTC ISO datetime string (start)
|
|
22
22
|
* @param value2 UTC ISO datetime string (end)
|
|
23
23
|
* @param unit DateTimeDurationUnit to use as the duration's largestUnit
|
|
24
|
-
* @param options optional:
|
|
24
|
+
* @param options optional: how the difference is rounded and how the string is rendered; a non-object value (such as `null`) is invalid
|
|
25
25
|
* @returns ISO 8601 duration string, or "" on invalid input
|
|
26
26
|
*
|
|
27
27
|
* @example diffUtcAsDuration("2024-03-10T12:00:00Z", "2024-03-11T12:00:00Z", "hours") // "PT24H"
|
|
@@ -25,7 +25,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
25
25
|
* @param value1 UTC ISO datetime string (start)
|
|
26
26
|
* @param value2 UTC ISO datetime string (end)
|
|
27
27
|
* @param unit DateTimeDurationUnit to use as the duration's largestUnit
|
|
28
|
-
* @param options optional:
|
|
28
|
+
* @param options optional: how the difference is rounded and how the string is rendered; a non-object value (such as `null`) is invalid
|
|
29
29
|
* @returns ISO 8601 duration string, or "" on invalid input
|
|
30
30
|
*
|
|
31
31
|
* @example diffUtcAsDuration("2024-03-10T12:00:00Z", "2024-03-11T12:00:00Z", "hours") // "PT24H"
|
|
@@ -5,8 +5,7 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
5
5
|
*
|
|
6
6
|
* - Converts to ZonedDateTime, sets to end of unit, converts back to Instant.
|
|
7
7
|
* - Supports: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", each also in its plural form (`"days"`), as Temporal accepts.
|
|
8
|
-
* -
|
|
9
|
-
* - The end is written at nanosecond precision by default, so the string names the end itself; an explicit `fractionalSecondDigits` (0, 3, 6 or 9) truncates it, as Temporal's `toString` does.
|
|
8
|
+
* - The end is the last nanosecond of the unit, one nanosecond before the next unit starts.
|
|
10
9
|
* - Returns "" for invalid input.
|
|
11
10
|
* - **Compatibility:** before 1.16.0 the default printed only the digits the unit names — none for
|
|
12
11
|
* `second` and coarser, 3 for `millisecond`, 6 for `microsecond` — which wrote a moment earlier
|
|
@@ -14,7 +13,7 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
14
13
|
*
|
|
15
14
|
* @param value ISO UTC datetime string
|
|
16
15
|
* @param unit date or time unit, singular or plural, to specify the end
|
|
17
|
-
* @param options
|
|
16
|
+
* @param options Where a week starts, and the precision of the result
|
|
18
17
|
* @returns UTC Instant string representing the end of the unit, or "" on invalid input
|
|
19
18
|
*
|
|
20
19
|
* @example endOfUtc("2024-03-15T14:30:45Z", "year") // "2024-12-31T23:59:59.999999999Z"
|
|
@@ -24,6 +23,20 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
24
23
|
* @example endOfUtc("invalid", "year") // ""
|
|
25
24
|
*/
|
|
26
25
|
export declare function endOfUtc(value: string, unit: Temporal.SmallestUnit<Temporal.DateTimeUnit>, options?: {
|
|
26
|
+
/**
|
|
27
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
28
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
29
|
+
* `""`, whatever the unit.
|
|
30
|
+
*
|
|
31
|
+
* @defaultValue `"monday"`
|
|
32
|
+
*/
|
|
27
33
|
weekStartsOn?: "monday" | "sunday";
|
|
34
|
+
/**
|
|
35
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
36
|
+
* drop trailing zeros. Fewer than 9 digits truncate the string, as Temporal's `toString` does,
|
|
37
|
+
* so it names a moment before the end.
|
|
38
|
+
*
|
|
39
|
+
* @defaultValue `9`
|
|
40
|
+
*/
|
|
28
41
|
fractionalSecondDigits?: FractionalDigit;
|
|
29
42
|
}): string;
|
|
@@ -5,8 +5,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
5
5
|
*
|
|
6
6
|
* - Converts to ZonedDateTime, sets to end of unit, converts back to Instant.
|
|
7
7
|
* - Supports: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", each also in its plural form (`"days"`), as Temporal accepts.
|
|
8
|
-
* -
|
|
9
|
-
* - The end is written at nanosecond precision by default, so the string names the end itself; an explicit `fractionalSecondDigits` (0, 3, 6 or 9) truncates it, as Temporal's `toString` does.
|
|
8
|
+
* - The end is the last nanosecond of the unit, one nanosecond before the next unit starts.
|
|
10
9
|
* - Returns "" for invalid input.
|
|
11
10
|
* - **Compatibility:** before 1.16.0 the default printed only the digits the unit names — none for
|
|
12
11
|
* `second` and coarser, 3 for `millisecond`, 6 for `microsecond` — which wrote a moment earlier
|
|
@@ -14,7 +13,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
14
13
|
*
|
|
15
14
|
* @param value ISO UTC datetime string
|
|
16
15
|
* @param unit date or time unit, singular or plural, to specify the end
|
|
17
|
-
* @param options
|
|
16
|
+
* @param options Where a week starts, and the precision of the result
|
|
18
17
|
* @returns UTC Instant string representing the end of the unit, or "" on invalid input
|
|
19
18
|
*
|
|
20
19
|
* @example endOfUtc("2024-03-15T14:30:45Z", "year") // "2024-12-31T23:59:59.999999999Z"
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Instant.compare for comparison.
|
|
5
5
|
* - Returns false if start > end or inputs are invalid.
|
|
6
|
-
* - Use options.inclusiveStart/inclusiveEnd to control boundaries.
|
|
7
6
|
*
|
|
8
7
|
* @param value ISO UTC datetime string to check
|
|
9
8
|
* @param start ISO UTC datetime string for range start
|
|
10
9
|
* @param end ISO UTC datetime string for range end
|
|
11
|
-
* @param options
|
|
10
|
+
* @param options Whether each boundary counts as inside the range
|
|
12
11
|
* @returns boolean indicating whether value is between start and end
|
|
13
12
|
*
|
|
14
13
|
* @example isBetweenUtc("2024-03-15T12:00:00Z", "2024-03-10T12:00:00Z", "2024-03-20T12:00:00Z") // true
|
|
@@ -16,6 +15,18 @@
|
|
|
16
15
|
* @example isBetweenUtc("invalid", "2024-03-10T12:00:00Z", "2024-03-20T12:00:00Z") // false
|
|
17
16
|
*/
|
|
18
17
|
export declare function isBetweenUtc(value: string, start: string, end: string, options?: {
|
|
18
|
+
/**
|
|
19
|
+
* Whether `value` equal to `start` counts as inside the range. `false` requires it to be after
|
|
20
|
+
* `start`.
|
|
21
|
+
*
|
|
22
|
+
* @defaultValue `true`
|
|
23
|
+
*/
|
|
19
24
|
inclusiveStart?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Whether `value` equal to `end` counts as inside the range. `false` requires it to be before
|
|
27
|
+
* `end`.
|
|
28
|
+
*
|
|
29
|
+
* @defaultValue `true`
|
|
30
|
+
*/
|
|
20
31
|
inclusiveEnd?: boolean;
|
|
21
32
|
}): boolean;
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
3
|
import { isValidUtc } from "../validate/index.js";
|
|
4
4
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
5
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
5
6
|
/**
|
|
6
7
|
* Return true when `value` is between `start` and `end` (inclusive by default).
|
|
7
8
|
*
|
|
8
9
|
* - Uses Temporal.Instant.compare for comparison.
|
|
9
10
|
* - Returns false if start > end or inputs are invalid.
|
|
10
|
-
* - Use options.inclusiveStart/inclusiveEnd to control boundaries.
|
|
11
11
|
*
|
|
12
12
|
* @param value ISO UTC datetime string to check
|
|
13
13
|
* @param start ISO UTC datetime string for range start
|
|
14
14
|
* @param end ISO UTC datetime string for range end
|
|
15
|
-
* @param options
|
|
15
|
+
* @param options Whether each boundary counts as inside the range
|
|
16
16
|
* @returns boolean indicating whether value is between start and end
|
|
17
17
|
*
|
|
18
18
|
* @example isBetweenUtc("2024-03-15T12:00:00Z", "2024-03-10T12:00:00Z", "2024-03-20T12:00:00Z") // true
|
|
@@ -28,8 +28,8 @@ export function isBetweenUtc(value, start, end, options) {
|
|
|
28
28
|
// reading of it gives `false`: ECMA-402 reads a boolean option through ToBoolean (null → false),
|
|
29
29
|
// and the house rule rejects an invalid member outright — neither yields `true`. So `null`
|
|
30
30
|
// behaves here exactly as `0` and `""` already do.
|
|
31
|
-
const inclusiveStart = options?.inclusiveStart
|
|
32
|
-
const inclusiveEnd = options?.inclusiveEnd
|
|
31
|
+
const inclusiveStart = optionOrDefault(options?.inclusiveStart, true);
|
|
32
|
+
const inclusiveEnd = optionOrDefault(options?.inclusiveEnd, true);
|
|
33
33
|
if (!isValidUtc(value) || !isValidUtc(start) || !isValidUtc(end)) {
|
|
34
34
|
return false;
|
|
35
35
|
}
|
|
@@ -4,22 +4,14 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
4
4
|
* Round a UTC datetime string to the specified unit.
|
|
5
5
|
*
|
|
6
6
|
* - Converts to Instant, rounds, converts back to UTC Instant string.
|
|
7
|
-
* - Supports: "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
|
|
8
|
-
* - Each unit is accepted in its singular or plural form ("hour" or "hours"), as Temporal's
|
|
9
|
-
* GetTemporalUnitValuedOption accepts both.
|
|
10
7
|
* - Day and larger units ("day", "week", "month", "year") return "". This is the Temporal spec, not
|
|
11
8
|
* a polyfill limitation: `Instant.prototype.round` validates `smallestUnit` as a time unit
|
|
12
9
|
* (ValidateTemporalUnitValue with ~time~), because an instant has no calendar or zone to define a
|
|
13
10
|
* day. Round a zoned value with `roundZoned` for a day boundary.
|
|
14
11
|
* - Wraps all Temporal calls in try-catch; returns "" on any error.
|
|
15
|
-
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
16
|
-
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
17
|
-
* hides the precision the unit asked for.
|
|
18
|
-
* - `fractionalSecondDigits` overrides that count outright, coarser or finer than the unit; an
|
|
19
|
-
* invalid value returns "".
|
|
20
12
|
*
|
|
21
13
|
* @param value ISO UTC datetime string
|
|
22
|
-
* @param options
|
|
14
|
+
* @param options What to round to, how, and the precision of the result
|
|
23
15
|
* @returns Rounded ISO UTC Instant string, or "" on invalid input
|
|
24
16
|
*
|
|
25
17
|
* @example roundUtc("2024-06-15T12:34:56Z", { smallestUnit: "hour" }) // "2024-06-15T13:00:00Z"
|
|
@@ -33,8 +25,33 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
33
25
|
* @example roundUtc("", { smallestUnit: "hour" }) // ""
|
|
34
26
|
*/
|
|
35
27
|
export declare function roundUtc(value: string, options: {
|
|
28
|
+
/**
|
|
29
|
+
* The unit to round to: `"hour"`, `"minute"`, `"second"`, `"millisecond"`, `"microsecond"` or
|
|
30
|
+
* `"nanosecond"`, singular or plural as Temporal's GetTemporalUnitValuedOption accepts both.
|
|
31
|
+
*/
|
|
36
32
|
smallestUnit: Temporal.SmallestUnit<"hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond">;
|
|
33
|
+
/**
|
|
34
|
+
* The multiple of `smallestUnit` to round to, such as 15 for quarter hours. It must divide a
|
|
35
|
+
* 24-hour day evenly (Temporal's `Instant.prototype.round`); any other value returns `""`.
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue `1`, Temporal's default.
|
|
38
|
+
*/
|
|
37
39
|
roundingIncrement?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Which multiple a value between two is rounded to. `"halfExpand"` picks the nearer one and
|
|
42
|
+
* sends a tie to the later instant; `"floor"` and `"trunc"` pick the earlier, `"ceil"` and
|
|
43
|
+
* `"expand"` the later, and the other `"half…"` modes differ only in how a tie breaks.
|
|
44
|
+
*
|
|
45
|
+
* @defaultValue `"halfExpand"`, Temporal's default.
|
|
46
|
+
*/
|
|
38
47
|
roundingMode?: Temporal.RoundingMode;
|
|
48
|
+
/**
|
|
49
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
50
|
+
* drop trailing zeros. It overrides the unit's own count, coarser or finer; an invalid value
|
|
51
|
+
* returns `""`.
|
|
52
|
+
*
|
|
53
|
+
* @defaultValue The digits `smallestUnit` names: `3` for `"millisecond"`, `6` for
|
|
54
|
+
* `"microsecond"`, `9` for `"nanosecond"` and `0` for any coarser unit.
|
|
55
|
+
*/
|
|
39
56
|
fractionalSecondDigits?: FractionalDigit;
|
|
40
57
|
}): string;
|
|
@@ -6,22 +6,14 @@ import { isValidUtc } from "../validate/isValidUtc.js";
|
|
|
6
6
|
* Round a UTC datetime string to the specified unit.
|
|
7
7
|
*
|
|
8
8
|
* - Converts to Instant, rounds, converts back to UTC Instant string.
|
|
9
|
-
* - Supports: "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
|
* - Day and larger units ("day", "week", "month", "year") return "". This is the Temporal spec, not
|
|
13
10
|
* a polyfill limitation: `Instant.prototype.round` validates `smallestUnit` as a time unit
|
|
14
11
|
* (ValidateTemporalUnitValue with ~time~), because an instant has no calendar or zone to define a
|
|
15
12
|
* day. Round a zoned value with `roundZoned` for a day boundary.
|
|
16
13
|
* - Wraps all Temporal calls in try-catch; returns "" on any error.
|
|
17
|
-
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
18
|
-
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
19
|
-
* hides the precision the unit asked for.
|
|
20
|
-
* - `fractionalSecondDigits` overrides that count outright, coarser or finer than the unit; an
|
|
21
|
-
* invalid value returns "".
|
|
22
14
|
*
|
|
23
15
|
* @param value ISO UTC datetime string
|
|
24
|
-
* @param options
|
|
16
|
+
* @param options What to round to, how, and the precision of the result
|
|
25
17
|
* @returns Rounded ISO UTC Instant string, or "" on invalid input
|
|
26
18
|
*
|
|
27
19
|
* @example roundUtc("2024-06-15T12:34:56Z", { smallestUnit: "hour" }) // "2024-06-15T13:00:00Z"
|
|
@@ -39,9 +31,8 @@ export function roundUtc(value, options) {
|
|
|
39
31
|
if (!isObject(options))
|
|
40
32
|
return "";
|
|
41
33
|
const { roundingIncrement, roundingMode, fractionalSecondDigits } = options;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
: options.smallestUnit;
|
|
34
|
+
// One read (GetOption): resolveDateTimeUnit returns a value that is not a string unchanged.
|
|
35
|
+
const smallestUnit = resolveDateTimeUnit(options.smallestUnit);
|
|
45
36
|
// Temporal Instant.prototype.round: ValidateTemporalUnitValue(smallestUnit, ~time~)
|
|
46
37
|
if (!isValidUtc(value) || !isValidTimeUnit(smallestUnit))
|
|
47
38
|
return "";
|
|
@@ -11,16 +11,13 @@ import type { Overflow } from "../../types/index.js";
|
|
|
11
11
|
* - `fields` may set any of `year`, `month`, `monthCode`, `day`, `hour`, `minute`, `second`,
|
|
12
12
|
* `millisecond`, `microsecond`, `nanosecond`, `era`, and/or `eraYear`; omitted fields keep
|
|
13
13
|
* their current value. An empty object is a no-op.
|
|
14
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
15
|
-
* `month: 2` on a value whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
16
|
-
* (resulting in "").
|
|
17
14
|
* - There are no `disambiguation` or `offset` options (removed in 1.16.0): a UTC instant's wall
|
|
18
15
|
* clock is never ambiguous and its offset is always +00:00, so neither had anything to act on.
|
|
19
16
|
* - Returns "" for invalid input.
|
|
20
17
|
*
|
|
21
18
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
22
19
|
* @param fields Partial<Temporal.ZonedDateTimeLike> object (excluding calendar/timeZone/offset) specifying fields to set
|
|
23
|
-
* @param options
|
|
20
|
+
* @param options How an out-of-range result is handled
|
|
24
21
|
* @returns UTC Instant string with fields set, or "" on invalid input
|
|
25
22
|
*
|
|
26
23
|
* @example setUtc("2024-03-10T12:00:00Z", { hour: 9 }) // "2024-03-10T09:00:00Z"
|
|
@@ -30,5 +27,11 @@ import type { Overflow } from "../../types/index.js";
|
|
|
30
27
|
* @example setUtc("invalid", { hour: 9 }) // ""
|
|
31
28
|
*/
|
|
32
29
|
export declare function setUtc(value: string, fields: Omit<Temporal.ZonedDateTimeLike, "calendar" | "timeZone" | "offset">, options?: {
|
|
30
|
+
/**
|
|
31
|
+
* What to do when the result is not a real date. `"constrain"` clamps it to the last valid day,
|
|
32
|
+
* so `month: 2` on Jan 31 is Feb 29/28 (TC39 Temporal); `"reject"` returns `""`.
|
|
33
|
+
*
|
|
34
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
35
|
+
*/
|
|
33
36
|
overflow?: Overflow;
|
|
34
37
|
}): string;
|
|
@@ -13,16 +13,13 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
13
13
|
* - `fields` may set any of `year`, `month`, `monthCode`, `day`, `hour`, `minute`, `second`,
|
|
14
14
|
* `millisecond`, `microsecond`, `nanosecond`, `era`, and/or `eraYear`; omitted fields keep
|
|
15
15
|
* their current value. An empty object is a no-op.
|
|
16
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
17
|
-
* `month: 2` on a value whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
18
|
-
* (resulting in "").
|
|
19
16
|
* - There are no `disambiguation` or `offset` options (removed in 1.16.0): a UTC instant's wall
|
|
20
17
|
* clock is never ambiguous and its offset is always +00:00, so neither had anything to act on.
|
|
21
18
|
* - Returns "" for invalid input.
|
|
22
19
|
*
|
|
23
20
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
24
21
|
* @param fields Partial<Temporal.ZonedDateTimeLike> object (excluding calendar/timeZone/offset) specifying fields to set
|
|
25
|
-
* @param options
|
|
22
|
+
* @param options How an out-of-range result is handled
|
|
26
23
|
* @returns UTC Instant string with fields set, or "" on invalid input
|
|
27
24
|
*
|
|
28
25
|
* @example setUtc("2024-03-10T12:00:00Z", { hour: 9 }) // "2024-03-10T09:00:00Z"
|