@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
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Options for `formatUtc`. Extends `Intl.DateTimeFormatOptions`; only the
|
|
3
|
-
* added/overridden members are
|
|
3
|
+
* added/overridden members are declared here. All `Intl.DateTimeFormatOptions`
|
|
4
4
|
* (`dateStyle`, `timeStyle`, etc.) apply to the time-of-day portion.
|
|
5
5
|
*
|
|
6
|
-
* @remarks Members:
|
|
7
|
-
*
|
|
8
|
-
* | Member | Type | Default | Description |
|
|
9
|
-
* | --- | --- | --- | --- |
|
|
10
|
-
* | `timeZone` | `string` | `"UTC"` | IANA zone for rendering; omitted is UTC, `"local"` is the system zone, and an unknown zone makes `formatUtc` return `""`. |
|
|
11
|
-
* | `includeTimeZoneName` | `boolean` | `false` | Appends the localized zone name (style via `Intl`) when true. |
|
|
12
|
-
*
|
|
13
6
|
* @example
|
|
14
7
|
* import { FormatUtcOptions } from "@northguild/gmt/utc";
|
|
15
8
|
* const opts: FormatUtcOptions = { includeTimeZoneName: true };
|
|
16
9
|
*/
|
|
17
10
|
export interface FormatUtcOptions extends Intl.DateTimeFormatOptions {
|
|
11
|
+
/**
|
|
12
|
+
* The time zone the value is rendered in: an IANA name, a UTC offset, or `"local"` for the system
|
|
13
|
+
* time zone. An unknown zone returns `""`, as ECMA-402 throws RangeError for it.
|
|
14
|
+
*
|
|
15
|
+
* @defaultValue `"UTC"`
|
|
16
|
+
*/
|
|
18
17
|
timeZone?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the localized time zone name is appended. When true the value is formatted as Temporal's
|
|
20
|
+
* ECMA-402 ZonedDateTime format does, which adds a short zone name to the defaults; when false, as
|
|
21
|
+
* the PlainDateTime format does, and `timeZoneName` is ignored.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue `false`
|
|
24
|
+
*/
|
|
19
25
|
includeTimeZoneName?: boolean;
|
|
20
26
|
}
|
|
21
27
|
/**
|
|
22
28
|
* Format a UTC ISO string as a localized date/time string.
|
|
23
29
|
*
|
|
24
30
|
* - Returns `""` if the input is not a valid UTC string.
|
|
25
|
-
* -
|
|
26
|
-
*
|
|
27
|
-
* - Without `includeTimeZoneName` the wall clock is formatted as Temporal's ECMA-402 PlainDateTime
|
|
28
|
-
* format does (`timeZoneName` is ignored); with it, as the ZonedDateTime format does (a short
|
|
29
|
-
* zone name is added to the defaults). Either way the requested fields and style widths are kept,
|
|
30
|
-
* and `era` alone still gets the date and time defaults.
|
|
31
|
+
* - The requested fields and style widths are kept, and `era` alone still gets the date and time
|
|
32
|
+
* defaults.
|
|
31
33
|
* - **Compatibility:** before 1.16.0 some locales and calendars lost a requested width (ja-JP with
|
|
32
34
|
* the japanese calendar and `month: "long"` gave `"R6/2"`), a `long`/`full` `timeStyle` replaced
|
|
33
35
|
* the `dateStyle` width, `era` alone dropped the time, and `timeZoneName` alone without
|
|
@@ -36,7 +38,7 @@ export interface FormatUtcOptions extends Intl.DateTimeFormatOptions {
|
|
|
36
38
|
*
|
|
37
39
|
* @param value UTC ISO string to format
|
|
38
40
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
39
|
-
* @param options
|
|
41
|
+
* @param options The time zone, the zone-name switch and any `Intl.DateTimeFormatOptions`
|
|
40
42
|
* @returns the formatted date/time string, or "" on invalid input
|
|
41
43
|
*
|
|
42
44
|
* @example formatUtc("2026-03-16T18:30:00Z") // "3/16/2026, 6:30:00 PM"
|
|
@@ -4,16 +4,14 @@ import { normalizeDateTime } from "../../internal/normalizeDateTime.js";
|
|
|
4
4
|
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
5
5
|
import { toInstantFromUtc } from "../../internal/toInstantFromUtc.js";
|
|
6
6
|
import { isValidUtc } from "../validate/index.js";
|
|
7
|
+
import { readDateTimeFormatOptions } from "../../internal/readDateTimeFormatOptions.js";
|
|
8
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
7
9
|
/**
|
|
8
10
|
* Format a UTC ISO string as a localized date/time string.
|
|
9
11
|
*
|
|
10
12
|
* - Returns `""` if the input is not a valid UTC string.
|
|
11
|
-
* -
|
|
12
|
-
*
|
|
13
|
-
* - Without `includeTimeZoneName` the wall clock is formatted as Temporal's ECMA-402 PlainDateTime
|
|
14
|
-
* format does (`timeZoneName` is ignored); with it, as the ZonedDateTime format does (a short
|
|
15
|
-
* zone name is added to the defaults). Either way the requested fields and style widths are kept,
|
|
16
|
-
* and `era` alone still gets the date and time defaults.
|
|
13
|
+
* - The requested fields and style widths are kept, and `era` alone still gets the date and time
|
|
14
|
+
* defaults.
|
|
17
15
|
* - **Compatibility:** before 1.16.0 some locales and calendars lost a requested width (ja-JP with
|
|
18
16
|
* the japanese calendar and `month: "long"` gave `"R6/2"`), a `long`/`full` `timeStyle` replaced
|
|
19
17
|
* the `dateStyle` width, `era` alone dropped the time, and `timeZoneName` alone without
|
|
@@ -22,7 +20,7 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
22
20
|
*
|
|
23
21
|
* @param value UTC ISO string to format
|
|
24
22
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
25
|
-
* @param options
|
|
23
|
+
* @param options The time zone, the zone-name switch and any `Intl.DateTimeFormatOptions`
|
|
26
24
|
* @returns the formatted date/time string, or "" on invalid input
|
|
27
25
|
*
|
|
28
26
|
* @example formatUtc("2026-03-16T18:30:00Z") // "3/16/2026, 6:30:00 PM"
|
|
@@ -45,7 +43,9 @@ export function formatUtc(value, locale, options) {
|
|
|
45
43
|
return "";
|
|
46
44
|
if (!isValidUtc(value))
|
|
47
45
|
return "";
|
|
48
|
-
|
|
46
|
+
// Each option is read once (GetOption), inherited ones included.
|
|
47
|
+
const includeTimeZoneName = optionOrDefault(options?.includeTimeZoneName, false);
|
|
48
|
+
const { timeZone, ...intlOptions } = readDateTimeFormatOptions(options);
|
|
49
49
|
const instant = toInstantFromUtc(value);
|
|
50
50
|
if (instant === null)
|
|
51
51
|
return "";
|
|
@@ -27,6 +27,12 @@
|
|
|
27
27
|
* @example intervalDifferenceUtc("invalid", "2024-12-31T17:00:00Z", "2024-06-01T12:00:00Z", "2024-07-01T13:00:00Z") // []
|
|
28
28
|
*/
|
|
29
29
|
export declare function intervalDifferenceUtc(aStart: string, aEnd: string, bStart: string, bEnd: string): Array<{
|
|
30
|
+
/** The instant the interval begins at, as an ISO 8601 UTC string ending in `Z`. */
|
|
30
31
|
start: string;
|
|
32
|
+
/**
|
|
33
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
34
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
35
|
+
* than `start`.
|
|
36
|
+
*/
|
|
31
37
|
end: string;
|
|
32
38
|
}>;
|
|
@@ -10,18 +10,19 @@
|
|
|
10
10
|
* split is exact whenever the span divides evenly by `n` and within half a nanosecond of the
|
|
11
11
|
* exact cut otherwise, at any span length (no double arithmetic) — no DST is involved, since
|
|
12
12
|
* UTC has no time zone offset.
|
|
13
|
+
* - When `n` is larger than the number of nanoseconds in the interval, some pieces are empty (their
|
|
14
|
+
* `start` equals their `end`): the result always has exactly `n` pieces.
|
|
13
15
|
* - `n === 1` returns the original interval unchanged, as a single-element array.
|
|
14
16
|
* - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals.
|
|
15
17
|
* - Returns `[]` when `n` is not a positive integer, or on invalid input (unparseable
|
|
16
18
|
* start/end, `start > end`, leap-second strings).
|
|
17
|
-
* - `
|
|
18
|
-
*
|
|
19
|
-
* before building any piece. An invalid `maxPieces` also returns `[]`.
|
|
19
|
+
* - Returns `[]` before building any piece when `n` exceeds the longest possible array
|
|
20
|
+
* (2^32 - 1).
|
|
20
21
|
*
|
|
21
22
|
* @param start ISO UTC datetime string for the interval start
|
|
22
23
|
* @param end ISO UTC datetime string for the interval end
|
|
23
24
|
* @param n number of equal sub-intervals to produce (positive integer)
|
|
24
|
-
* @param options
|
|
25
|
+
* @param options A limit on the size of the result
|
|
25
26
|
* @returns array of `n` `{ start, end }` records, or `[]` on invalid input
|
|
26
27
|
*
|
|
27
28
|
* @example intervalDivideEquallyUtc("2024-01-01T00:00:00Z", "2024-01-04T00:00:00Z", 3) // [{ start: "2024-01-01T00:00:00Z", end: "2024-01-02T00:00:00Z" }, { start: "2024-01-02T00:00:00Z", end: "2024-01-03T00:00:00Z" }, { start: "2024-01-03T00:00:00Z", end: "2024-01-04T00:00:00Z" }]
|
|
@@ -32,8 +33,21 @@
|
|
|
32
33
|
* @example intervalDivideEquallyUtc("2024-01-01T00:00:00Z", "2024-01-04T00:00:00Z", 3, { maxPieces: 3 }) // [{ start: "2024-01-01T00:00:00Z", end: "2024-01-02T00:00:00Z" }, { start: "2024-01-02T00:00:00Z", end: "2024-01-03T00:00:00Z" }, { start: "2024-01-03T00:00:00Z", end: "2024-01-04T00:00:00Z" }]
|
|
33
34
|
*/
|
|
34
35
|
export declare function intervalDivideEquallyUtc(start: string, end: string, n: number, options?: {
|
|
36
|
+
/**
|
|
37
|
+
* The most records the result may hold. A result that would hold more, or more than the longest
|
|
38
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
39
|
+
* positive safe integer also returns `[]`.
|
|
40
|
+
*
|
|
41
|
+
* @defaultValue `1_000_000`
|
|
42
|
+
*/
|
|
35
43
|
maxPieces?: number;
|
|
36
44
|
}): Array<{
|
|
45
|
+
/** The instant the interval begins at, as an ISO 8601 UTC string ending in `Z`. */
|
|
37
46
|
start: string;
|
|
47
|
+
/**
|
|
48
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
49
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
50
|
+
* `start`, which makes the interval empty.
|
|
51
|
+
*/
|
|
38
52
|
end: string;
|
|
39
53
|
}>;
|
|
@@ -15,18 +15,19 @@ import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js
|
|
|
15
15
|
* split is exact whenever the span divides evenly by `n` and within half a nanosecond of the
|
|
16
16
|
* exact cut otherwise, at any span length (no double arithmetic) — no DST is involved, since
|
|
17
17
|
* UTC has no time zone offset.
|
|
18
|
+
* - When `n` is larger than the number of nanoseconds in the interval, some pieces are empty (their
|
|
19
|
+
* `start` equals their `end`): the result always has exactly `n` pieces.
|
|
18
20
|
* - `n === 1` returns the original interval unchanged, as a single-element array.
|
|
19
21
|
* - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals.
|
|
20
22
|
* - Returns `[]` when `n` is not a positive integer, or on invalid input (unparseable
|
|
21
23
|
* start/end, `start > end`, leap-second strings).
|
|
22
|
-
* - `
|
|
23
|
-
*
|
|
24
|
-
* before building any piece. An invalid `maxPieces` also returns `[]`.
|
|
24
|
+
* - Returns `[]` before building any piece when `n` exceeds the longest possible array
|
|
25
|
+
* (2^32 - 1).
|
|
25
26
|
*
|
|
26
27
|
* @param start ISO UTC datetime string for the interval start
|
|
27
28
|
* @param end ISO UTC datetime string for the interval end
|
|
28
29
|
* @param n number of equal sub-intervals to produce (positive integer)
|
|
29
|
-
* @param options
|
|
30
|
+
* @param options A limit on the size of the result
|
|
30
31
|
* @returns array of `n` `{ start, end }` records, or `[]` on invalid input
|
|
31
32
|
*
|
|
32
33
|
* @example intervalDivideEquallyUtc("2024-01-01T00:00:00Z", "2024-01-04T00:00:00Z", 3) // [{ start: "2024-01-01T00:00:00Z", end: "2024-01-02T00:00:00Z" }, { start: "2024-01-02T00:00:00Z", end: "2024-01-03T00:00:00Z" }, { start: "2024-01-03T00:00:00Z", end: "2024-01-04T00:00:00Z" }]
|
|
@@ -10,15 +10,13 @@ import type { Overflow } from "../../types/index.js";
|
|
|
10
10
|
* reference point (mirrors `addUtc`).
|
|
11
11
|
* - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
|
|
12
12
|
* happens, mirroring `intervalIntersectionUtc`'s `start > end` rejection.
|
|
13
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
14
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
|
|
15
13
|
* - Returns null on invalid input (unparseable `value`, invalid `duration`, or an `anchor` other
|
|
16
14
|
* than `"start"`/`"end"`).
|
|
17
15
|
*
|
|
18
16
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
19
17
|
* @param duration ISO 8601 duration string
|
|
20
18
|
* @param anchor "start" | "end" — which endpoint `value` represents
|
|
21
|
-
* @param options
|
|
19
|
+
* @param options How an out-of-range result is handled
|
|
22
20
|
* @returns `{ start, end }` with the constructed span (UTC Instant strings), or null on invalid input
|
|
23
21
|
*
|
|
24
22
|
* @example intervalFromDurationUtc("2024-01-01T00:00:00Z", "P1D", "start") // { start: "2024-01-01T00:00:00Z", end: "2024-01-02T00:00:00Z" }
|
|
@@ -28,8 +26,20 @@ import type { Overflow } from "../../types/index.js";
|
|
|
28
26
|
* @example intervalFromDurationUtc("invalid", "P1D", "start") // null
|
|
29
27
|
*/
|
|
30
28
|
export declare function intervalFromDurationUtc(value: string, duration: string, anchor: "start" | "end", options?: {
|
|
29
|
+
/**
|
|
30
|
+
* What to do when the result is not a real date. `"constrain"` clamps it to the last valid day,
|
|
31
|
+
* so Jan 31 + 1 month is Feb 29/28 (TC39 Temporal); `"reject"` returns `null`.
|
|
32
|
+
*
|
|
33
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
34
|
+
*/
|
|
31
35
|
overflow?: Overflow;
|
|
32
36
|
}): {
|
|
37
|
+
/** The instant the interval begins at, as an ISO 8601 UTC string ending in `Z`. */
|
|
33
38
|
start: string;
|
|
39
|
+
/**
|
|
40
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
41
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
42
|
+
* `start`, which makes the interval empty.
|
|
43
|
+
*/
|
|
34
44
|
end: string;
|
|
35
45
|
} | null;
|
|
@@ -15,15 +15,13 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
15
15
|
* reference point (mirrors `addUtc`).
|
|
16
16
|
* - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
|
|
17
17
|
* happens, mirroring `intervalIntersectionUtc`'s `start > end` rejection.
|
|
18
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
19
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
|
|
20
18
|
* - Returns null on invalid input (unparseable `value`, invalid `duration`, or an `anchor` other
|
|
21
19
|
* than `"start"`/`"end"`).
|
|
22
20
|
*
|
|
23
21
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
24
22
|
* @param duration ISO 8601 duration string
|
|
25
23
|
* @param anchor "start" | "end" — which endpoint `value` represents
|
|
26
|
-
* @param options
|
|
24
|
+
* @param options How an out-of-range result is handled
|
|
27
25
|
* @returns `{ start, end }` with the constructed span (UTC Instant strings), or null on invalid input
|
|
28
26
|
*
|
|
29
27
|
* @example intervalFromDurationUtc("2024-01-01T00:00:00Z", "P1D", "start") // { start: "2024-01-01T00:00:00Z", end: "2024-01-02T00:00:00Z" }
|
|
@@ -24,6 +24,12 @@
|
|
|
24
24
|
* @example intervalIntersectionUtc("invalid", "2024-06-30T23:59:59Z", "2024-04-01T00:00:00Z", "2024-12-31T23:59:59Z") // null
|
|
25
25
|
*/
|
|
26
26
|
export declare function intervalIntersectionUtc(aStart: string, aEnd: string, bStart: string, bEnd: string): {
|
|
27
|
+
/** The instant the interval begins at, as an ISO 8601 UTC string ending in `Z`. */
|
|
27
28
|
start: string;
|
|
29
|
+
/**
|
|
30
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
31
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
32
|
+
* `start`, which makes the interval empty.
|
|
33
|
+
*/
|
|
28
34
|
end: string;
|
|
29
35
|
} | null;
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* there, so the pieces share no value and together cover the interval exactly once (the rule
|
|
14
14
|
* CORE-6's `splitIntervalAt` uses).
|
|
15
15
|
* - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
|
|
16
|
+
* - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
|
|
17
|
+
* equal to `end`): the result is then that one empty piece, whatever the points.
|
|
16
18
|
* - Returns `[]` when `points` is not an array, when any element is not a valid ISO UTC
|
|
17
19
|
* datetime string, or on invalid input (unparseable start/end, `start > end`, leap-second
|
|
18
20
|
* strings).
|
|
@@ -27,6 +29,12 @@
|
|
|
27
29
|
* @example intervalSplitAtUtc("invalid", "2024-01-10T00:00:00Z", ["2024-01-05T00:00:00Z"]) // []
|
|
28
30
|
*/
|
|
29
31
|
export declare function intervalSplitAtUtc(start: string, end: string, points: string[]): Array<{
|
|
32
|
+
/** The instant the interval begins at, as an ISO 8601 UTC string ending in `Z`. */
|
|
30
33
|
start: string;
|
|
34
|
+
/**
|
|
35
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
36
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
37
|
+
* `start`, which makes the interval empty.
|
|
38
|
+
*/
|
|
31
39
|
end: string;
|
|
32
40
|
}>;
|
|
@@ -16,6 +16,8 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
16
16
|
* there, so the pieces share no value and together cover the interval exactly once (the rule
|
|
17
17
|
* CORE-6's `splitIntervalAt` uses).
|
|
18
18
|
* - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
|
|
19
|
+
* - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
|
|
20
|
+
* equal to `end`): the result is then that one empty piece, whatever the points.
|
|
19
21
|
* - Returns `[]` when `points` is not an array, when any element is not a valid ISO UTC
|
|
20
22
|
* datetime string, or on invalid input (unparseable start/end, `start > end`, leap-second
|
|
21
23
|
* strings).
|
|
@@ -27,6 +27,12 @@
|
|
|
27
27
|
* @example intervalUnionUtc("invalid", "2024-06-30T23:59:59Z", "2024-04-01T00:00:00Z", "2024-12-31T23:59:59Z") // null
|
|
28
28
|
*/
|
|
29
29
|
export declare function intervalUnionUtc(aStart: string, aEnd: string, bStart: string, bEnd: string): {
|
|
30
|
+
/** The instant the interval begins at, as an ISO 8601 UTC string ending in `Z`. */
|
|
30
31
|
start: string;
|
|
32
|
+
/**
|
|
33
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
34
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
35
|
+
* than `start`.
|
|
36
|
+
*/
|
|
31
37
|
end: string;
|
|
32
38
|
} | null;
|
|
@@ -26,6 +26,12 @@ export declare function intervalXorAllUtc(intervals: Array<{
|
|
|
26
26
|
start: string;
|
|
27
27
|
end: string;
|
|
28
28
|
}>): Array<{
|
|
29
|
+
/** The instant the interval begins at, as an ISO 8601 UTC string ending in `Z`. */
|
|
29
30
|
start: string;
|
|
31
|
+
/**
|
|
32
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
33
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
34
|
+
* than `start`.
|
|
35
|
+
*/
|
|
30
36
|
end: string;
|
|
31
37
|
}>;
|
|
@@ -22,6 +22,12 @@
|
|
|
22
22
|
* @example intervalXorUtc("invalid", "2024-06-30T12:00:00Z", "2024-07-01T13:00:00Z", "2024-12-31T17:00:00Z") // []
|
|
23
23
|
*/
|
|
24
24
|
export declare function intervalXorUtc(aStart: string, aEnd: string, bStart: string, bEnd: string): Array<{
|
|
25
|
+
/** The instant the interval begins at, as an ISO 8601 UTC string ending in `Z`. */
|
|
25
26
|
start: string;
|
|
27
|
+
/**
|
|
28
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
29
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
30
|
+
* than `start`.
|
|
31
|
+
*/
|
|
26
32
|
end: string;
|
|
27
33
|
}>;
|
|
@@ -27,6 +27,12 @@ export declare function mergeIntervalsUtc(intervals: Array<{
|
|
|
27
27
|
start: string;
|
|
28
28
|
end: string;
|
|
29
29
|
}>): Array<{
|
|
30
|
+
/** The instant the interval begins at, as an ISO 8601 UTC string ending in `Z`. */
|
|
30
31
|
start: string;
|
|
32
|
+
/**
|
|
33
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
34
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
35
|
+
* than `start`.
|
|
36
|
+
*/
|
|
31
37
|
end: string;
|
|
32
38
|
}>;
|
|
@@ -8,8 +8,11 @@
|
|
|
8
8
|
* CORE-6's `splitIntervalAt` uses).
|
|
9
9
|
* - The final sub-interval is trimmed so its `end` never exceeds the original `end`.
|
|
10
10
|
* - Calendar-unit boundaries (years, months, weeks, days) are computed from `start`
|
|
11
|
-
* (`start + k × amount
|
|
12
|
-
*
|
|
11
|
+
* (`start + k × amount`), so month-end starts don't drift: a monthly split from January 31
|
|
12
|
+
* lands on February 29, March 31, April 30. Temporal's `add` constrains a day the month lacks
|
|
13
|
+
* to the month's last day, and stepping from that boundary would keep the shortened day
|
|
14
|
+
* (February 29, then March 29).
|
|
15
|
+
* - Comparison: Luxon's `Interval.splitBy` computes each boundary from the start the same way.
|
|
13
16
|
* - Exact-unit boundaries (hours and smaller) step from the previous boundary. Exact units never
|
|
14
17
|
* clamp, and stepping keeps nanosecond precision where `k × amount` would pass
|
|
15
18
|
* `Number.MAX_SAFE_INTEGER`.
|
|
@@ -18,15 +21,12 @@
|
|
|
18
21
|
* - Returns `[{ start, end }]` when `start === end` (zero-length interval).
|
|
19
22
|
* - Returns `[]` on invalid input (unparseable start/end, unsupported unit, non-positive amount,
|
|
20
23
|
* leap-second strings).
|
|
21
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: a split
|
|
22
|
-
* into more slices returns `[]`, decided from the span before stepping where it can be, and
|
|
23
|
-
* otherwise as soon as slice `maxPieces + 1` is due. An invalid `maxPieces` also returns `[]`.
|
|
24
24
|
*
|
|
25
25
|
* @param start ISO UTC datetime string for the interval start
|
|
26
26
|
* @param end ISO UTC datetime string for the interval end
|
|
27
27
|
* @param unit duration unit string — any `DateTimeDurationUnit`
|
|
28
28
|
* @param amount positive number of units per step
|
|
29
|
-
* @param options
|
|
29
|
+
* @param options A limit on the size of the result
|
|
30
30
|
* @returns array of `{ start, end }` records, or [] on invalid input
|
|
31
31
|
*
|
|
32
32
|
* @example splitIntervalByUnitUtc("2024-01-01T00:00:00Z", "2024-01-02T00:00:00Z", "hour", 6) // [{ start: "2024-01-01T00:00:00Z", end: "2024-01-01T06:00:00Z" }, { start: "2024-01-01T06:00:00Z", end: "2024-01-01T12:00:00Z" }, { start: "2024-01-01T12:00:00Z", end: "2024-01-01T18:00:00Z" }, { start: "2024-01-01T18:00:00Z", end: "2024-01-02T00:00:00Z" }]
|
|
@@ -39,8 +39,21 @@
|
|
|
39
39
|
* @example splitIntervalByUnitUtc("+275760-09-12T23:00:00Z", "+275760-09-13T00:00:00Z", "hour", 2) // [{ start: "+275760-09-12T23:00:00Z", end: "+275760-09-13T00:00:00Z" }] (the step past the last instant is trimmed to `end`)
|
|
40
40
|
*/
|
|
41
41
|
export declare function splitIntervalByUnitUtc(start: string, end: string, unit: string, amount: number, options?: {
|
|
42
|
+
/**
|
|
43
|
+
* The most records the result may hold. A result that would hold more, or more than the longest
|
|
44
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
45
|
+
* positive safe integer also returns `[]`.
|
|
46
|
+
*
|
|
47
|
+
* @defaultValue `1_000_000`
|
|
48
|
+
*/
|
|
42
49
|
maxPieces?: number;
|
|
43
50
|
}): Array<{
|
|
51
|
+
/** The instant the interval begins at, as an ISO 8601 UTC string ending in `Z`. */
|
|
44
52
|
start: string;
|
|
53
|
+
/**
|
|
54
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
55
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
56
|
+
* `start`, which makes the interval empty.
|
|
57
|
+
*/
|
|
45
58
|
end: string;
|
|
46
59
|
}>;
|
|
@@ -15,8 +15,11 @@ import { minSlicesForSpan } from "../../internal/splitStep.js";
|
|
|
15
15
|
* CORE-6's `splitIntervalAt` uses).
|
|
16
16
|
* - The final sub-interval is trimmed so its `end` never exceeds the original `end`.
|
|
17
17
|
* - Calendar-unit boundaries (years, months, weeks, days) are computed from `start`
|
|
18
|
-
* (`start + k × amount
|
|
19
|
-
*
|
|
18
|
+
* (`start + k × amount`), so month-end starts don't drift: a monthly split from January 31
|
|
19
|
+
* lands on February 29, March 31, April 30. Temporal's `add` constrains a day the month lacks
|
|
20
|
+
* to the month's last day, and stepping from that boundary would keep the shortened day
|
|
21
|
+
* (February 29, then March 29).
|
|
22
|
+
* - Comparison: Luxon's `Interval.splitBy` computes each boundary from the start the same way.
|
|
20
23
|
* - Exact-unit boundaries (hours and smaller) step from the previous boundary. Exact units never
|
|
21
24
|
* clamp, and stepping keeps nanosecond precision where `k × amount` would pass
|
|
22
25
|
* `Number.MAX_SAFE_INTEGER`.
|
|
@@ -25,15 +28,12 @@ import { minSlicesForSpan } from "../../internal/splitStep.js";
|
|
|
25
28
|
* - Returns `[{ start, end }]` when `start === end` (zero-length interval).
|
|
26
29
|
* - Returns `[]` on invalid input (unparseable start/end, unsupported unit, non-positive amount,
|
|
27
30
|
* leap-second strings).
|
|
28
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: a split
|
|
29
|
-
* into more slices returns `[]`, decided from the span before stepping where it can be, and
|
|
30
|
-
* otherwise as soon as slice `maxPieces + 1` is due. An invalid `maxPieces` also returns `[]`.
|
|
31
31
|
*
|
|
32
32
|
* @param start ISO UTC datetime string for the interval start
|
|
33
33
|
* @param end ISO UTC datetime string for the interval end
|
|
34
34
|
* @param unit duration unit string — any `DateTimeDurationUnit`
|
|
35
35
|
* @param amount positive number of units per step
|
|
36
|
-
* @param options
|
|
36
|
+
* @param options A limit on the size of the result
|
|
37
37
|
* @returns array of `{ start, end }` records, or [] on invalid input
|
|
38
38
|
*
|
|
39
39
|
* @example splitIntervalByUnitUtc("2024-01-01T00:00:00Z", "2024-01-02T00:00:00Z", "hour", 6) // [{ start: "2024-01-01T00:00:00Z", end: "2024-01-01T06:00:00Z" }, { start: "2024-01-01T06:00:00Z", end: "2024-01-01T12:00:00Z" }, { start: "2024-01-01T12:00:00Z", end: "2024-01-01T18:00:00Z" }, { start: "2024-01-01T18:00:00Z", end: "2024-01-02T00:00:00Z" }]
|
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
* Extract the date portion from a UTC datetime string.
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Instant.from to parse, converts to UTC date.
|
|
5
|
-
* - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
|
|
6
|
-
* `parseTimeFromUtc` does; an invalid zone returns "".
|
|
7
5
|
* - Returns "" for invalid input.
|
|
8
6
|
*
|
|
9
7
|
* @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
|
|
10
|
-
* @param options
|
|
8
|
+
* @param options The time zone the value is read in
|
|
11
9
|
* @returns ISO date string (e.g., "2024-03-17") or "" on invalid input
|
|
12
10
|
*
|
|
13
11
|
* @example parseDateFromUtc("2024-03-17T14:30:45Z") // "2024-03-17"
|
|
@@ -15,5 +13,11 @@
|
|
|
15
13
|
* @example parseDateFromUtc("invalid") // ""
|
|
16
14
|
*/
|
|
17
15
|
export declare function parseDateFromUtc(value: string, options?: {
|
|
16
|
+
/**
|
|
17
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
18
|
+
* the system time zone. An unknown zone returns `""`.
|
|
19
|
+
*
|
|
20
|
+
* @defaultValue `"UTC"`
|
|
21
|
+
*/
|
|
18
22
|
timeZone?: string;
|
|
19
23
|
}): string;
|
|
@@ -4,12 +4,10 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
4
4
|
* Extract the date portion from a UTC datetime string.
|
|
5
5
|
*
|
|
6
6
|
* - Uses Temporal.Instant.from to parse, converts to UTC date.
|
|
7
|
-
* - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
|
|
8
|
-
* `parseTimeFromUtc` does; an invalid zone returns "".
|
|
9
7
|
* - Returns "" for invalid input.
|
|
10
8
|
*
|
|
11
9
|
* @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
|
|
12
|
-
* @param options
|
|
10
|
+
* @param options The time zone the value is read in
|
|
13
11
|
* @returns ISO date string (e.g., "2024-03-17") or "" on invalid input
|
|
14
12
|
*
|
|
15
13
|
* @example parseDateFromUtc("2024-03-17T14:30:45Z") // "2024-03-17"
|
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
* Return the day of month (1-31) from a UTC datetime string.
|
|
3
3
|
*
|
|
4
4
|
* - Returns zero-padded string for day.
|
|
5
|
-
* - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
|
|
6
|
-
* `parseTimeFromUtc` does; an invalid zone returns "".
|
|
7
5
|
* - Returns "" for invalid input.
|
|
8
6
|
*
|
|
9
7
|
* @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
|
|
10
|
-
* @param options
|
|
8
|
+
* @param options The time zone the value is read in
|
|
11
9
|
* @returns Day (01-31) or "" on invalid input
|
|
12
10
|
*
|
|
13
11
|
* @example parseDayFromUtc("2024-03-17T14:30:45Z") // "17"
|
|
@@ -15,5 +13,11 @@
|
|
|
15
13
|
* @example parseDayFromUtc("invalid") // ""
|
|
16
14
|
*/
|
|
17
15
|
export declare function parseDayFromUtc(value: string, options?: {
|
|
16
|
+
/**
|
|
17
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
18
|
+
* the system time zone. An unknown zone returns `""`.
|
|
19
|
+
*
|
|
20
|
+
* @defaultValue `"UTC"`
|
|
21
|
+
*/
|
|
18
22
|
timeZone?: string;
|
|
19
23
|
}): string;
|
|
@@ -4,12 +4,10 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
4
4
|
* Return the day of month (1-31) from a UTC datetime string.
|
|
5
5
|
*
|
|
6
6
|
* - Returns zero-padded string for day.
|
|
7
|
-
* - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
|
|
8
|
-
* `parseTimeFromUtc` does; an invalid zone returns "".
|
|
9
7
|
* - Returns "" for invalid input.
|
|
10
8
|
*
|
|
11
9
|
* @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
|
|
12
|
-
* @param options
|
|
10
|
+
* @param options The time zone the value is read in
|
|
13
11
|
* @returns Day (01-31) or "" on invalid input
|
|
14
12
|
*
|
|
15
13
|
* @example parseDayFromUtc("2024-03-17T14:30:45Z") // "17"
|
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
* Return the day of week (1-7) from a UTC datetime string.
|
|
3
3
|
*
|
|
4
4
|
* - Monday=1 through Sunday=7.
|
|
5
|
-
* - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
|
|
6
|
-
* `parseTimeFromUtc` does; an invalid zone returns null.
|
|
7
5
|
* - Returns null for invalid input.
|
|
8
6
|
*
|
|
9
7
|
* @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
|
|
10
|
-
* @param options
|
|
8
|
+
* @param options The time zone the value is read in
|
|
11
9
|
* @returns Day of week (1-7) or null on invalid input
|
|
12
10
|
*
|
|
13
11
|
* @example parseDayOfWeekFromUtc("2024-03-17T14:30:45Z") // 7
|
|
@@ -16,5 +14,11 @@
|
|
|
16
14
|
* @example parseDayOfWeekFromUtc("invalid") // null
|
|
17
15
|
*/
|
|
18
16
|
export declare function parseDayOfWeekFromUtc(value: string, options?: {
|
|
17
|
+
/**
|
|
18
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
19
|
+
* the system time zone. An unknown zone returns `null`.
|
|
20
|
+
*
|
|
21
|
+
* @defaultValue `"UTC"`
|
|
22
|
+
*/
|
|
19
23
|
timeZone?: string;
|
|
20
24
|
}): number | null;
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import {
|
|
2
|
+
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
3
3
|
import { isValidUtc } from "../validate/index.js";
|
|
4
4
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
5
5
|
/**
|
|
6
6
|
* Return the day of week (1-7) from a UTC datetime string.
|
|
7
7
|
*
|
|
8
8
|
* - Monday=1 through Sunday=7.
|
|
9
|
-
* - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
|
|
10
|
-
* `parseTimeFromUtc` does; an invalid zone returns null.
|
|
11
9
|
* - Returns null for invalid input.
|
|
12
10
|
*
|
|
13
11
|
* @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
|
|
14
|
-
* @param options
|
|
12
|
+
* @param options The time zone the value is read in
|
|
15
13
|
* @returns Day of week (1-7) or null on invalid input
|
|
16
14
|
*
|
|
17
15
|
* @example parseDayOfWeekFromUtc("2024-03-17T14:30:45Z") // 7
|
|
@@ -26,8 +24,8 @@ export function parseDayOfWeekFromUtc(value, options) {
|
|
|
26
24
|
}
|
|
27
25
|
if (!isValidUtc(value))
|
|
28
26
|
return null;
|
|
29
|
-
const timeZone =
|
|
30
|
-
if (timeZone ===
|
|
27
|
+
const timeZone = normalizeTimeZone(options?.timeZone);
|
|
28
|
+
if (timeZone === "")
|
|
31
29
|
return null;
|
|
32
30
|
try {
|
|
33
31
|
const dateTime = Temporal.Instant.from(value).toZonedDateTimeISO(timeZone);
|
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
* Return the hour (0-23) from a UTC datetime string.
|
|
3
3
|
*
|
|
4
4
|
* - Returns zero-padded string for hour.
|
|
5
|
-
* - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
|
|
6
|
-
* `parseTimeFromUtc` does; an invalid zone returns "".
|
|
7
5
|
* - Returns "" for invalid input.
|
|
8
6
|
*
|
|
9
7
|
* @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
|
|
10
|
-
* @param options
|
|
8
|
+
* @param options The time zone the value is read in
|
|
11
9
|
* @returns Hour (00-23) or "" on invalid input
|
|
12
10
|
*
|
|
13
11
|
* @example parseHourFromUtc("2024-03-17T14:30:45Z") // "14"
|
|
@@ -15,5 +13,11 @@
|
|
|
15
13
|
* @example parseHourFromUtc("invalid") // ""
|
|
16
14
|
*/
|
|
17
15
|
export declare function parseHourFromUtc(value: string, options?: {
|
|
16
|
+
/**
|
|
17
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset, or `"local"` for
|
|
18
|
+
* the system time zone. An unknown zone returns `""`.
|
|
19
|
+
*
|
|
20
|
+
* @defaultValue `"UTC"`
|
|
21
|
+
*/
|
|
18
22
|
timeZone?: string;
|
|
19
23
|
}): string;
|
|
@@ -4,12 +4,10 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
4
4
|
* Return the hour (0-23) from a UTC datetime string.
|
|
5
5
|
*
|
|
6
6
|
* - Returns zero-padded string for hour.
|
|
7
|
-
* - Reads the value on the wall clock of `options.timeZone` (an IANA zone, default UTC), as
|
|
8
|
-
* `parseTimeFromUtc` does; an invalid zone returns "".
|
|
9
7
|
* - Returns "" for invalid input.
|
|
10
8
|
*
|
|
11
9
|
* @param value ISO UTC datetime string (e.g., "2024-03-17T14:30:45Z")
|
|
12
|
-
* @param options
|
|
10
|
+
* @param options The time zone the value is read in
|
|
13
11
|
* @returns Hour (00-23) or "" on invalid input
|
|
14
12
|
*
|
|
15
13
|
* @example parseHourFromUtc("2024-03-17T14:30:45Z") // "14"
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* `Last-Modified`/`Date`/`Expires` use — into a UTC ISO 8601 datetime string.
|
|
4
4
|
*
|
|
5
5
|
* - **Decoding, not display.** Accepts English weekday/month names only, per
|
|
6
|
-
* the fixed grammar (see `formatHttp`'s JSDoc
|
|
6
|
+
* the fixed grammar (see `formatHttp`'s JSDoc).
|
|
7
7
|
* - **All three HTTP-date formats**, as RFC 9110 §5.6.7 requires ("A
|
|
8
8
|
* recipient that parses a timestamp value in an HTTP field MUST accept all
|
|
9
9
|
* three"): IMF-fixdate (`Sun, 06 Nov 1994 08:49:37 GMT`), the obsolete
|