@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
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
* there, so the pieces share no value and together cover the interval exactly once (the rule
|
|
8
8
|
* CORE-6's `splitIntervalAt` uses).
|
|
9
9
|
* - The final sub-interval is trimmed so its `end` never exceeds the original `end`.
|
|
10
|
-
* - Each boundary is computed from `start` (`start + k × amount
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* - Each boundary is computed from `start` (`start + k × amount`), not by stepping from the
|
|
11
|
+
* previous boundary, so month-end starts don't drift: a monthly split from January 31 lands
|
|
12
|
+
* on February 29, March 31, April 30. Temporal's `add` constrains a day the month lacks to
|
|
13
|
+
* 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
|
* - A step that resolves to the same date as the previous boundary is skipped, so no empty
|
|
14
17
|
* slice is produced. A step that goes backwards returns `[]`.
|
|
15
18
|
* - Returns `[{ start, end }]` when `start === end` (zero-length interval).
|
|
@@ -22,9 +25,6 @@
|
|
|
22
25
|
* when `CalendarEquals` is false (before 1.16.0 it stepped in ISO). Each boundary's tag is
|
|
23
26
|
* re-derived from the actual stepped date, never copied — a month-by-month step can cross a
|
|
24
27
|
* leap-month or era boundary mid-split.
|
|
25
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: a split
|
|
26
|
-
* into more slices returns `[]`, decided from the span before stepping where it can be, and
|
|
27
|
-
* otherwise as soon as slice `maxPieces + 1` is due. An invalid `maxPieces` also returns `[]`.
|
|
28
28
|
* - Compatibility: since 1.16.0 calendar strings are RFC 9557 (ISO digits, `[u-ca=<id>]`, canonical
|
|
29
29
|
* calendar ids); see `isValidCalendarDate`.
|
|
30
30
|
*
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
* @param end ISO PlainDate string for the interval end, optionally calendar-annotated
|
|
33
33
|
* @param unit duration unit string — `"years" | "months" | "weeks" | "days"` (time units are ignored by PlainDate and return [])
|
|
34
34
|
* @param amount positive number of units per step
|
|
35
|
-
* @param options
|
|
35
|
+
* @param options The limit on the size of the result
|
|
36
36
|
* @returns array of `{ start, end }` records, or [] on invalid input
|
|
37
37
|
*
|
|
38
38
|
* @example splitIntervalByUnitDate("2024-01-01", "2024-01-10", "day", 2) // [{ start: "2024-01-01", end: "2024-01-03" }, { start: "2024-01-03", end: "2024-01-05" }, { start: "2024-01-05", end: "2024-01-07" }, { start: "2024-01-07", end: "2024-01-09" }, { start: "2024-01-09", end: "2024-01-10" }]
|
|
@@ -45,8 +45,24 @@
|
|
|
45
45
|
* @example splitIntervalByUnitDate("2024-01-01", "2024-01-10", "day", 2, { maxPieces: 5 }) // [{ start: "2024-01-01", end: "2024-01-03" }, { start: "2024-01-03", end: "2024-01-05" }, { start: "2024-01-05", end: "2024-01-07" }, { start: "2024-01-07", end: "2024-01-09" }, { start: "2024-01-09", end: "2024-01-10" }]
|
|
46
46
|
*/
|
|
47
47
|
export declare function splitIntervalByUnitDate(start: string, end: string, unit: string, amount: number, options?: {
|
|
48
|
+
/**
|
|
49
|
+
* The most records the result may hold. A result that would hold more, or more than the longest
|
|
50
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
51
|
+
* positive safe integer also returns `[]`.
|
|
52
|
+
*
|
|
53
|
+
* @defaultValue `1_000_000`
|
|
54
|
+
*/
|
|
48
55
|
maxPieces?: number;
|
|
49
56
|
}): Array<{
|
|
57
|
+
/**
|
|
58
|
+
* The date the interval begins on, as an ISO 8601 date (`YYYY-MM-DD`). It keeps a calendar
|
|
59
|
+
* annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
60
|
+
*/
|
|
50
61
|
start: string;
|
|
62
|
+
/**
|
|
63
|
+
* The first date after the interval, in the same format as `start`. It is exclusive: the interval
|
|
64
|
+
* holds everything from `start` up to but not including this value. It can equal `start`, which
|
|
65
|
+
* makes the interval empty.
|
|
66
|
+
*/
|
|
51
67
|
end: string;
|
|
52
68
|
}>;
|
|
@@ -13,9 +13,12 @@ import { minSlicesForSpan } from "../../internal/splitStep.js";
|
|
|
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
|
* - The final sub-interval is trimmed so its `end` never exceeds the original `end`.
|
|
16
|
-
* - Each boundary is computed from `start` (`start + k × amount
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* - Each boundary is computed from `start` (`start + k × amount`), not by stepping from the
|
|
17
|
+
* previous boundary, so month-end starts don't drift: a monthly split from January 31 lands
|
|
18
|
+
* on February 29, March 31, April 30. Temporal's `add` constrains a day the month lacks to
|
|
19
|
+
* the month's last day, and stepping from that boundary would keep the shortened day
|
|
20
|
+
* (February 29, then March 29).
|
|
21
|
+
* - Comparison: Luxon's `Interval.splitBy` computes each boundary from the start the same way.
|
|
19
22
|
* - A step that resolves to the same date as the previous boundary is skipped, so no empty
|
|
20
23
|
* slice is produced. A step that goes backwards returns `[]`.
|
|
21
24
|
* - Returns `[{ start, end }]` when `start === end` (zero-length interval).
|
|
@@ -28,9 +31,6 @@ import { minSlicesForSpan } from "../../internal/splitStep.js";
|
|
|
28
31
|
* when `CalendarEquals` is false (before 1.16.0 it stepped in ISO). Each boundary's tag is
|
|
29
32
|
* re-derived from the actual stepped date, never copied — a month-by-month step can cross a
|
|
30
33
|
* leap-month or era boundary mid-split.
|
|
31
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: a split
|
|
32
|
-
* into more slices returns `[]`, decided from the span before stepping where it can be, and
|
|
33
|
-
* otherwise as soon as slice `maxPieces + 1` is due. An invalid `maxPieces` also returns `[]`.
|
|
34
34
|
* - Compatibility: since 1.16.0 calendar strings are RFC 9557 (ISO digits, `[u-ca=<id>]`, canonical
|
|
35
35
|
* calendar ids); see `isValidCalendarDate`.
|
|
36
36
|
*
|
|
@@ -38,7 +38,7 @@ import { minSlicesForSpan } from "../../internal/splitStep.js";
|
|
|
38
38
|
* @param end ISO PlainDate string for the interval end, optionally calendar-annotated
|
|
39
39
|
* @param unit duration unit string — `"years" | "months" | "weeks" | "days"` (time units are ignored by PlainDate and return [])
|
|
40
40
|
* @param amount positive number of units per step
|
|
41
|
-
* @param options
|
|
41
|
+
* @param options The limit on the size of the result
|
|
42
42
|
* @returns array of `{ start, end }` records, or [] on invalid input
|
|
43
43
|
*
|
|
44
44
|
* @example splitIntervalByUnitDate("2024-01-01", "2024-01-10", "day", 2) // [{ start: "2024-01-01", end: "2024-01-03" }, { start: "2024-01-03", end: "2024-01-05" }, { start: "2024-01-05", end: "2024-01-07" }, { start: "2024-01-07", end: "2024-01-09" }, { start: "2024-01-09", end: "2024-01-10" }]
|
|
@@ -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`.
|
|
@@ -17,15 +20,12 @@
|
|
|
17
20
|
* slice is produced. A step that goes backwards returns `[]`.
|
|
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
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: a split
|
|
21
|
-
* into more slices returns `[]`, decided from the span before stepping where it can be, and
|
|
22
|
-
* otherwise as soon as slice `maxPieces + 1` is due. An invalid `maxPieces` also returns `[]`.
|
|
23
23
|
*
|
|
24
24
|
* @param start ISO PlainDateTime string for the interval start
|
|
25
25
|
* @param end ISO PlainDateTime string for the interval end
|
|
26
26
|
* @param unit duration unit string — any `DateTimeDurationUnit`
|
|
27
27
|
* @param amount positive number of units per step
|
|
28
|
-
* @param options
|
|
28
|
+
* @param options The limit on the size of the result
|
|
29
29
|
* @returns array of `{ start, end }` records, or [] on invalid input
|
|
30
30
|
*
|
|
31
31
|
* @example splitIntervalByUnitDateTime("2024-01-01T12:00:00", "2024-01-01T14:00:00", "hour", 1) // [{ start: "2024-01-01T12:00:00", end: "2024-01-01T13:00:00" }, { start: "2024-01-01T13:00:00", end: "2024-01-01T14:00:00" }]
|
|
@@ -37,8 +37,24 @@
|
|
|
37
37
|
* @example splitIntervalByUnitDateTime("2024-01-01T12:00:00", "2024-01-01T14:00:00", "hour", 1, { maxPieces: 2 }) // [{ start: "2024-01-01T12:00:00", end: "2024-01-01T13:00:00" }, { start: "2024-01-01T13:00:00", end: "2024-01-01T14:00:00" }]
|
|
38
38
|
*/
|
|
39
39
|
export declare function splitIntervalByUnitDateTime(start: string, end: string, unit: string, amount: number, options?: {
|
|
40
|
+
/**
|
|
41
|
+
* The most records the result may hold. A result that would hold more, or more than the longest
|
|
42
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
43
|
+
* positive safe integer also returns `[]`.
|
|
44
|
+
*
|
|
45
|
+
* @defaultValue `1_000_000`
|
|
46
|
+
*/
|
|
40
47
|
maxPieces?: number;
|
|
41
48
|
}): Array<{
|
|
49
|
+
/**
|
|
50
|
+
* The date-time the interval begins at, as an ISO 8601 date-time string with no offset or time
|
|
51
|
+
* zone.
|
|
52
|
+
*/
|
|
42
53
|
start: string;
|
|
54
|
+
/**
|
|
55
|
+
* The first date-time after the interval, in the same format as `start`. It is exclusive: the
|
|
56
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
57
|
+
* `start`, which makes the interval empty.
|
|
58
|
+
*/
|
|
43
59
|
end: string;
|
|
44
60
|
}>;
|
|
@@ -14,8 +14,11 @@ import { minSlicesForSpan } from "../../internal/splitStep.js";
|
|
|
14
14
|
* CORE-6's `splitIntervalAt` uses).
|
|
15
15
|
* - The final sub-interval is trimmed so its `end` never exceeds the original `end`.
|
|
16
16
|
* - Calendar-unit boundaries (years, months, weeks, days) are computed from `start`
|
|
17
|
-
* (`start + k × amount
|
|
18
|
-
*
|
|
17
|
+
* (`start + k × amount`), so month-end starts don't drift: a monthly split from January 31
|
|
18
|
+
* lands on February 29, March 31, April 30. Temporal's `add` constrains a day the month lacks
|
|
19
|
+
* to the month's last day, and stepping from that boundary would keep the shortened day
|
|
20
|
+
* (February 29, then March 29).
|
|
21
|
+
* - Comparison: Luxon's `Interval.splitBy` computes each boundary from the start the same way.
|
|
19
22
|
* - Exact-unit boundaries (hours and smaller) step from the previous boundary. Exact units never
|
|
20
23
|
* clamp, and stepping keeps nanosecond precision where `k × amount` would pass
|
|
21
24
|
* `Number.MAX_SAFE_INTEGER`.
|
|
@@ -23,15 +26,12 @@ import { minSlicesForSpan } from "../../internal/splitStep.js";
|
|
|
23
26
|
* slice is produced. A step that goes backwards returns `[]`.
|
|
24
27
|
* - Returns `[{ start, end }]` when `start === end` (zero-length interval).
|
|
25
28
|
* - Returns `[]` on invalid input (unparseable start/end, unsupported unit, non-positive amount).
|
|
26
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: a split
|
|
27
|
-
* into more slices returns `[]`, decided from the span before stepping where it can be, and
|
|
28
|
-
* otherwise as soon as slice `maxPieces + 1` is due. An invalid `maxPieces` also returns `[]`.
|
|
29
29
|
*
|
|
30
30
|
* @param start ISO PlainDateTime string for the interval start
|
|
31
31
|
* @param end ISO PlainDateTime string for the interval end
|
|
32
32
|
* @param unit duration unit string — any `DateTimeDurationUnit`
|
|
33
33
|
* @param amount positive number of units per step
|
|
34
|
-
* @param options
|
|
34
|
+
* @param options The limit on the size of the result
|
|
35
35
|
* @returns array of `{ start, end }` records, or [] on invalid input
|
|
36
36
|
*
|
|
37
37
|
* @example splitIntervalByUnitDateTime("2024-01-01T12:00:00", "2024-01-01T14:00:00", "hour", 1) // [{ start: "2024-01-01T12:00:00", end: "2024-01-01T13:00:00" }, { start: "2024-01-01T13:00:00", end: "2024-01-01T14:00:00" }]
|
|
@@ -13,15 +13,12 @@
|
|
|
13
13
|
* - Returns `[{ start, end }]` when `start === end` (zero-length interval).
|
|
14
14
|
* - Returns `[]` on invalid input (unparseable start/end, unsupported unit, non-positive amount,
|
|
15
15
|
* or a unit that has no effect on `PlainTime`, e.g. `"days"`).
|
|
16
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: a split
|
|
17
|
-
* into more slices returns `[]`, decided from the span before stepping. An invalid
|
|
18
|
-
* `maxPieces` also returns `[]`.
|
|
19
16
|
*
|
|
20
17
|
* @param start ISO PlainTime string for the interval start
|
|
21
18
|
* @param end ISO PlainTime string for the interval end
|
|
22
19
|
* @param unit duration unit string — `"hours" | "minutes" | "seconds" | "milliseconds" | "microseconds" | "nanoseconds"` (calendar units are ignored by PlainTime and return [])
|
|
23
20
|
* @param amount positive number of units per step
|
|
24
|
-
* @param options
|
|
21
|
+
* @param options The limit on the size of the result
|
|
25
22
|
* @returns array of `{ start, end }` records, or [] on invalid input
|
|
26
23
|
*
|
|
27
24
|
* @example splitIntervalByUnitTime("12:00:00", "14:00:00", "hour", 1) // [{ start: "12:00:00", end: "13:00:00" }, { start: "13:00:00", end: "14:00:00" }]
|
|
@@ -34,8 +31,24 @@
|
|
|
34
31
|
* @example splitIntervalByUnitTime("12:00:00", "14:30:00", "hour", 1, { maxPieces: 3 }) // [{ start: "12:00:00", end: "13:00:00" }, { start: "13:00:00", end: "14:00:00" }, { start: "14:00:00", end: "14:30:00" }]
|
|
35
32
|
*/
|
|
36
33
|
export declare function splitIntervalByUnitTime(start: string, end: string, unit: string, amount: number, options?: {
|
|
34
|
+
/**
|
|
35
|
+
* The most records the result may hold. A result that would hold more, or more than the longest
|
|
36
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
37
|
+
* positive safe integer also returns `[]`.
|
|
38
|
+
*
|
|
39
|
+
* @defaultValue `1_000_000`
|
|
40
|
+
*/
|
|
37
41
|
maxPieces?: number;
|
|
38
42
|
}): Array<{
|
|
43
|
+
/**
|
|
44
|
+
* The clock time the interval begins at, as an ISO 8601 time string with no date, offset or time
|
|
45
|
+
* zone.
|
|
46
|
+
*/
|
|
39
47
|
start: string;
|
|
48
|
+
/**
|
|
49
|
+
* The first clock time after the interval, in the same format as `start`. It is exclusive: the
|
|
50
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
51
|
+
* `start`, which makes the interval empty.
|
|
52
|
+
*/
|
|
40
53
|
end: string;
|
|
41
54
|
}>;
|
|
@@ -19,15 +19,12 @@ import { isExactDurationUnit, minSlicesForSpan, } from "../../internal/splitStep
|
|
|
19
19
|
* - Returns `[{ start, end }]` when `start === end` (zero-length interval).
|
|
20
20
|
* - Returns `[]` on invalid input (unparseable start/end, unsupported unit, non-positive amount,
|
|
21
21
|
* or a unit that has no effect on `PlainTime`, e.g. `"days"`).
|
|
22
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: a split
|
|
23
|
-
* into more slices returns `[]`, decided from the span before stepping. An invalid
|
|
24
|
-
* `maxPieces` also returns `[]`.
|
|
25
22
|
*
|
|
26
23
|
* @param start ISO PlainTime string for the interval start
|
|
27
24
|
* @param end ISO PlainTime string for the interval end
|
|
28
25
|
* @param unit duration unit string — `"hours" | "minutes" | "seconds" | "milliseconds" | "microseconds" | "nanoseconds"` (calendar units are ignored by PlainTime and return [])
|
|
29
26
|
* @param amount positive number of units per step
|
|
30
|
-
* @param options
|
|
27
|
+
* @param options The limit on the size of the result
|
|
31
28
|
* @returns array of `{ start, end }` records, or [] on invalid input
|
|
32
29
|
*
|
|
33
30
|
* @example splitIntervalByUnitTime("12:00:00", "14:00:00", "hour", 1) // [{ start: "12:00:00", end: "13:00:00" }, { start: "13:00:00", end: "14:00:00" }]
|
|
@@ -3,9 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Generates dates with optional step (default 1 day).
|
|
5
5
|
* - Returns [] if start > end, invalid inputs, or step <= 0.
|
|
6
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: when the
|
|
7
|
-
* range holds more dates than that, it returns `[]` without generating any. An invalid
|
|
8
|
-
* `maxPieces` also returns `[]`.
|
|
9
6
|
* - An explicit `undefined` `stepDays` is the default step, so `(start, end, undefined, options)`
|
|
10
7
|
* reaches `options`. **Compatibility:** before 1.16.0 it returned `[]`.
|
|
11
8
|
* - **End-inclusive, where the `interval*` functions are half-open.** This enumerates the dates a
|
|
@@ -17,7 +14,7 @@
|
|
|
17
14
|
* @param startDate ISO PlainDate string for the first date
|
|
18
15
|
* @param endDate ISO PlainDate string for the last date (inclusive)
|
|
19
16
|
* @param stepDays optional number of days to step between results
|
|
20
|
-
* @param options
|
|
17
|
+
* @param options The limit on the size of the result
|
|
21
18
|
* @returns array of ISO PlainDate strings, or [] on invalid input
|
|
22
19
|
*
|
|
23
20
|
* @example mapDatesInRange("2024-03-01", "2024-03-05") // ["2024-03-01", "2024-03-02", "2024-03-03", "2024-03-04", "2024-03-05"]
|
|
@@ -32,5 +29,12 @@
|
|
|
32
29
|
* @example mapDatesInRange("2024-03-01", "2024-03-05", 1, { maxPieces: 10 }) // ["2024-03-01", "2024-03-02", "2024-03-03", "2024-03-04", "2024-03-05"]
|
|
33
30
|
*/
|
|
34
31
|
export declare function mapDatesInRange(startDate: string, endDate: string, stepDays?: number, options?: {
|
|
32
|
+
/**
|
|
33
|
+
* The most dates the result may hold. A result that would hold more, or more than the longest
|
|
34
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
35
|
+
* positive safe integer also returns `[]`.
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue `1_000_000`
|
|
38
|
+
*/
|
|
35
39
|
maxPieces?: number;
|
|
36
40
|
}): string[];
|
|
@@ -7,9 +7,6 @@ import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js
|
|
|
7
7
|
*
|
|
8
8
|
* - Generates dates with optional step (default 1 day).
|
|
9
9
|
* - Returns [] if start > end, invalid inputs, or step <= 0.
|
|
10
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: when the
|
|
11
|
-
* range holds more dates than that, it returns `[]` without generating any. An invalid
|
|
12
|
-
* `maxPieces` also returns `[]`.
|
|
13
10
|
* - An explicit `undefined` `stepDays` is the default step, so `(start, end, undefined, options)`
|
|
14
11
|
* reaches `options`. **Compatibility:** before 1.16.0 it returned `[]`.
|
|
15
12
|
* - **End-inclusive, where the `interval*` functions are half-open.** This enumerates the dates a
|
|
@@ -21,7 +18,7 @@ import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js
|
|
|
21
18
|
* @param startDate ISO PlainDate string for the first date
|
|
22
19
|
* @param endDate ISO PlainDate string for the last date (inclusive)
|
|
23
20
|
* @param stepDays optional number of days to step between results
|
|
24
|
-
* @param options
|
|
21
|
+
* @param options The limit on the size of the result
|
|
25
22
|
* @returns array of ISO PlainDate strings, or [] on invalid input
|
|
26
23
|
*
|
|
27
24
|
* @example mapDatesInRange("2024-03-01", "2024-03-05") // ["2024-03-01", "2024-03-02", "2024-03-03", "2024-03-04", "2024-03-05"]
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
* producer format — a CSV column, a legacy API field, a partially-typed
|
|
8
8
|
* form value — not for generating locale-correct output. For display,
|
|
9
9
|
* use `formatDateTime`/`formatDateToParts`, which order fields per
|
|
10
|
-
* locale instead of hard-coding a field order (
|
|
11
|
-
*
|
|
12
|
-
* out of scope for GMT).
|
|
10
|
+
* locale instead of hard-coding a field order (a token *formatter*,
|
|
11
|
+
* the inverse of this function, is deliberately out of scope for GMT).
|
|
13
12
|
* - Accepts the full combined date + time token set (unlike
|
|
14
13
|
* `parseDateWithPattern`/`parseTimeWithPattern`, which each reject the
|
|
15
14
|
* other's tokens).
|
|
@@ -40,10 +39,13 @@
|
|
|
40
39
|
* | `GGGG` | era name (long) | locale | — | BCE label ⇒ final year = 1 − parsed year |
|
|
41
40
|
* | `GG` | era name (short) | locale | — | same resolution |
|
|
42
41
|
*
|
|
43
|
-
* -
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
42
|
+
* - Literal text follows the Unicode UTS #35 date format pattern rules.
|
|
43
|
+
* Text in `'single quotes'` is a literal, letters included. Two
|
|
44
|
+
* adjacent quotes `''` are one literal `'`, inside or outside quoted
|
|
45
|
+
* text: `"yyyy''MM"` reads `"2024'03"`, and `"'o''clock'"` reads
|
|
46
|
+
* `"o'clock"`. A quote that never closes makes the pattern malformed
|
|
47
|
+
* (`""`). Any other character that is not a letter (`/ - , space :`,
|
|
48
|
+
* digits and so on) is a literal with no quoting.
|
|
47
49
|
* - `MMMM`/`MMM`/`EEEE`/`EEE`/`a`/`GGGG`/`GG` are locale-aware. If
|
|
48
50
|
* `locale` is omitted and the pattern uses any of them, GMT defaults
|
|
49
51
|
* to `"en-US"` rather than returning `""` for every caller who didn't
|
|
@@ -79,6 +81,7 @@
|
|
|
79
81
|
*
|
|
80
82
|
* @example parseDateTimeWithPattern("03/15/2024 14:30:00", "MM/dd/yyyy HH:mm:ss") // "2024-03-15T14:30:00"
|
|
81
83
|
* @example parseDateTimeWithPattern("15-Mar-2024 02:30 PM", "dd-MMM-yyyy hh:mm a") // "2024-03-15T14:30:00"
|
|
84
|
+
* @example parseDateTimeWithPattern("Mar 15, '24 at 14:30", "MMM d, ''yy 'at' HH:mm") // "2024-03-15T14:30:00" ('' is one literal quote)
|
|
82
85
|
* @example parseDateTimeWithPattern("02/31/2024 14:30:00", "MM/dd/yyyy HH:mm:ss") // "" (shape-valid, not a real date)
|
|
83
86
|
* @example parseDateTimeWithPattern("not a date", "MM/dd/yyyy HH:mm:ss") // ""
|
|
84
87
|
* @example parseDateTimeWithPattern("19 mai 2024 10:20", "d MMMM yyyy HH:mm", ["fr-FR", "en-US"]) // "2024-05-19T10:20:00"
|
|
@@ -9,9 +9,8 @@ import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal
|
|
|
9
9
|
* producer format — a CSV column, a legacy API field, a partially-typed
|
|
10
10
|
* form value — not for generating locale-correct output. For display,
|
|
11
11
|
* use `formatDateTime`/`formatDateToParts`, which order fields per
|
|
12
|
-
* locale instead of hard-coding a field order (
|
|
13
|
-
*
|
|
14
|
-
* out of scope for GMT).
|
|
12
|
+
* locale instead of hard-coding a field order (a token *formatter*,
|
|
13
|
+
* the inverse of this function, is deliberately out of scope for GMT).
|
|
15
14
|
* - Accepts the full combined date + time token set (unlike
|
|
16
15
|
* `parseDateWithPattern`/`parseTimeWithPattern`, which each reject the
|
|
17
16
|
* other's tokens).
|
|
@@ -42,10 +41,13 @@ import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal
|
|
|
42
41
|
* | `GGGG` | era name (long) | locale | — | BCE label ⇒ final year = 1 − parsed year |
|
|
43
42
|
* | `GG` | era name (short) | locale | — | same resolution |
|
|
44
43
|
*
|
|
45
|
-
* -
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
44
|
+
* - Literal text follows the Unicode UTS #35 date format pattern rules.
|
|
45
|
+
* Text in `'single quotes'` is a literal, letters included. Two
|
|
46
|
+
* adjacent quotes `''` are one literal `'`, inside or outside quoted
|
|
47
|
+
* text: `"yyyy''MM"` reads `"2024'03"`, and `"'o''clock'"` reads
|
|
48
|
+
* `"o'clock"`. A quote that never closes makes the pattern malformed
|
|
49
|
+
* (`""`). Any other character that is not a letter (`/ - , space :`,
|
|
50
|
+
* digits and so on) is a literal with no quoting.
|
|
49
51
|
* - `MMMM`/`MMM`/`EEEE`/`EEE`/`a`/`GGGG`/`GG` are locale-aware. If
|
|
50
52
|
* `locale` is omitted and the pattern uses any of them, GMT defaults
|
|
51
53
|
* to `"en-US"` rather than returning `""` for every caller who didn't
|
|
@@ -81,6 +83,7 @@ import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal
|
|
|
81
83
|
*
|
|
82
84
|
* @example parseDateTimeWithPattern("03/15/2024 14:30:00", "MM/dd/yyyy HH:mm:ss") // "2024-03-15T14:30:00"
|
|
83
85
|
* @example parseDateTimeWithPattern("15-Mar-2024 02:30 PM", "dd-MMM-yyyy hh:mm a") // "2024-03-15T14:30:00"
|
|
86
|
+
* @example parseDateTimeWithPattern("Mar 15, '24 at 14:30", "MMM d, ''yy 'at' HH:mm") // "2024-03-15T14:30:00" ('' is one literal quote)
|
|
84
87
|
* @example parseDateTimeWithPattern("02/31/2024 14:30:00", "MM/dd/yyyy HH:mm:ss") // "" (shape-valid, not a real date)
|
|
85
88
|
* @example parseDateTimeWithPattern("not a date", "MM/dd/yyyy HH:mm:ss") // ""
|
|
86
89
|
* @example parseDateTimeWithPattern("19 mai 2024 10:20", "d MMMM yyyy HH:mm", ["fr-FR", "en-US"]) // "2024-05-19T10:20:00"
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
* producer format — a CSV column, a legacy API field, a partially-typed
|
|
8
8
|
* form value — not for generating locale-correct output. For display,
|
|
9
9
|
* use `formatDate`/`formatDateToParts`, which order fields per locale
|
|
10
|
-
* instead of hard-coding a field order (
|
|
11
|
-
*
|
|
12
|
-
* of scope for GMT).
|
|
10
|
+
* instead of hard-coding a field order (a token *formatter*, the
|
|
11
|
+
* inverse of this function, is deliberately out of scope for GMT).
|
|
13
12
|
* - `pattern` accepts only date-shaped tokens. A pattern containing a
|
|
14
13
|
* time-only token (`H h m s S a`) is malformed for this function and
|
|
15
14
|
* returns `""` — use `parseDateTimeWithPattern` for combined input.
|
|
@@ -30,10 +29,13 @@
|
|
|
30
29
|
* | `GGGG` | era name (long) | locale | — | BCE label ⇒ final year = 1 − parsed year |
|
|
31
30
|
* | `GG` | era name (short) | locale | — | same resolution |
|
|
32
31
|
*
|
|
33
|
-
* -
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
32
|
+
* - Literal text follows the Unicode UTS #35 date format pattern rules.
|
|
33
|
+
* Text in `'single quotes'` is a literal, letters included. Two
|
|
34
|
+
* adjacent quotes `''` are one literal `'`, inside or outside quoted
|
|
35
|
+
* text: `"yyyy''MM"` reads `"2024'03"`, and `"'o''clock'"` reads
|
|
36
|
+
* `"o'clock"`. A quote that never closes makes the pattern malformed
|
|
37
|
+
* (`""`). Any other character that is not a letter (`/ - , space`,
|
|
38
|
+
* digits and so on) is a literal with no quoting.
|
|
37
39
|
* - `MMMM`/`MMM`/`EEEE`/`EEE`/`GGGG`/`GG` are locale-aware. If `locale`
|
|
38
40
|
* is omitted and the pattern uses any of them, GMT defaults to
|
|
39
41
|
* `"en-US"` rather than returning `""` for every caller who didn't
|
|
@@ -62,6 +64,7 @@
|
|
|
62
64
|
*
|
|
63
65
|
* @example parseDateWithPattern("03/15/2024", "MM/dd/yyyy") // "2024-03-15"
|
|
64
66
|
* @example parseDateWithPattern("15-Mar-2024", "dd-MMM-yyyy") // "2024-03-15"
|
|
67
|
+
* @example parseDateWithPattern("Mar 15, '24", "MMM d, ''yy") // "2024-03-15" ('' is one literal quote)
|
|
65
68
|
* @example parseDateWithPattern("02/31/2024", "MM/dd/yyyy") // "" (shape-valid, not a real date)
|
|
66
69
|
* @example parseDateWithPattern("14:30", "HH:mm") // "" (time token in a date-only pattern)
|
|
67
70
|
* @example parseDateWithPattern("19 mai 2024", "d MMMM yyyy", ["fr-FR", "en-US"]) // "2024-05-19"
|
|
@@ -9,9 +9,8 @@ import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index
|
|
|
9
9
|
* producer format — a CSV column, a legacy API field, a partially-typed
|
|
10
10
|
* form value — not for generating locale-correct output. For display,
|
|
11
11
|
* use `formatDate`/`formatDateToParts`, which order fields per locale
|
|
12
|
-
* instead of hard-coding a field order (
|
|
13
|
-
*
|
|
14
|
-
* of scope for GMT).
|
|
12
|
+
* instead of hard-coding a field order (a token *formatter*, the
|
|
13
|
+
* inverse of this function, is deliberately out of scope for GMT).
|
|
15
14
|
* - `pattern` accepts only date-shaped tokens. A pattern containing a
|
|
16
15
|
* time-only token (`H h m s S a`) is malformed for this function and
|
|
17
16
|
* returns `""` — use `parseDateTimeWithPattern` for combined input.
|
|
@@ -32,10 +31,13 @@ import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index
|
|
|
32
31
|
* | `GGGG` | era name (long) | locale | — | BCE label ⇒ final year = 1 − parsed year |
|
|
33
32
|
* | `GG` | era name (short) | locale | — | same resolution |
|
|
34
33
|
*
|
|
35
|
-
* -
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
34
|
+
* - Literal text follows the Unicode UTS #35 date format pattern rules.
|
|
35
|
+
* Text in `'single quotes'` is a literal, letters included. Two
|
|
36
|
+
* adjacent quotes `''` are one literal `'`, inside or outside quoted
|
|
37
|
+
* text: `"yyyy''MM"` reads `"2024'03"`, and `"'o''clock'"` reads
|
|
38
|
+
* `"o'clock"`. A quote that never closes makes the pattern malformed
|
|
39
|
+
* (`""`). Any other character that is not a letter (`/ - , space`,
|
|
40
|
+
* digits and so on) is a literal with no quoting.
|
|
39
41
|
* - `MMMM`/`MMM`/`EEEE`/`EEE`/`GGGG`/`GG` are locale-aware. If `locale`
|
|
40
42
|
* is omitted and the pattern uses any of them, GMT defaults to
|
|
41
43
|
* `"en-US"` rather than returning `""` for every caller who didn't
|
|
@@ -64,6 +66,7 @@ import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index
|
|
|
64
66
|
*
|
|
65
67
|
* @example parseDateWithPattern("03/15/2024", "MM/dd/yyyy") // "2024-03-15"
|
|
66
68
|
* @example parseDateWithPattern("15-Mar-2024", "dd-MMM-yyyy") // "2024-03-15"
|
|
69
|
+
* @example parseDateWithPattern("Mar 15, '24", "MMM d, ''yy") // "2024-03-15" ('' is one literal quote)
|
|
67
70
|
* @example parseDateWithPattern("02/31/2024", "MM/dd/yyyy") // "" (shape-valid, not a real date)
|
|
68
71
|
* @example parseDateWithPattern("14:30", "HH:mm") // "" (time token in a date-only pattern)
|
|
69
72
|
* @example parseDateWithPattern("19 mai 2024", "d MMMM yyyy", ["fr-FR", "en-US"]) // "2024-05-19"
|
|
@@ -6,9 +6,8 @@
|
|
|
6
6
|
* producer format — a CSV column, a legacy API field, a partially-typed
|
|
7
7
|
* form value — not for generating locale-correct output. For display,
|
|
8
8
|
* use `formatTime`/`formatDateToParts`, which order fields per locale
|
|
9
|
-
* instead of hard-coding a field order (
|
|
10
|
-
*
|
|
11
|
-
* of scope for GMT).
|
|
9
|
+
* instead of hard-coding a field order (a token *formatter*, the
|
|
10
|
+
* inverse of this function, is deliberately out of scope for GMT).
|
|
12
11
|
* - `pattern` accepts only time-shaped tokens. A pattern containing a
|
|
13
12
|
* date-only token (`y M d E G`) is malformed for this function and
|
|
14
13
|
* returns `""` — use `parseDateTimeWithPattern` for combined input.
|
|
@@ -27,10 +26,13 @@
|
|
|
27
26
|
* | `SSS` | millisecond | 3 digits | 000–999 | |
|
|
28
27
|
* | `a` | meridiem | locale | — | `getLocaleMeridiems(locale)` → `[AM-label, PM-label]` |
|
|
29
28
|
*
|
|
30
|
-
* -
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
29
|
+
* - Literal text follows the Unicode UTS #35 date format pattern rules.
|
|
30
|
+
* Text in `'single quotes'` is a literal, letters included. Two
|
|
31
|
+
* adjacent quotes `''` are one literal `'`, inside or outside quoted
|
|
32
|
+
* text: `"HH''mm"` reads `"14'30"`, and `"'o''clock'"` reads
|
|
33
|
+
* `"o'clock"`. A quote that never closes makes the pattern malformed
|
|
34
|
+
* (`""`). Any other character that is not a letter (`: , space`,
|
|
35
|
+
* digits and so on) is a literal with no quoting.
|
|
34
36
|
* - `a` is locale-aware. If `locale` is omitted and the pattern uses
|
|
35
37
|
* `a`, GMT defaults to `"en-US"` rather than returning `""` for every
|
|
36
38
|
* caller who didn't have another locale in mind.
|
|
@@ -51,6 +53,7 @@
|
|
|
51
53
|
*
|
|
52
54
|
* @example parseTimeWithPattern("14:30:45", "HH:mm:ss") // "14:30:45"
|
|
53
55
|
* @example parseTimeWithPattern("02:30:45 PM", "hh:mm:ss a") // "14:30:45"
|
|
56
|
+
* @example parseTimeWithPattern("2 o'clock PM", "h 'o''clock' a") // "14:00:00" ('' is one literal quote)
|
|
54
57
|
* @example parseTimeWithPattern("25:00", "HH:mm") // "" (shape-valid, not a real time)
|
|
55
58
|
* @example parseTimeWithPattern("2024-03-15", "yyyy-MM-dd") // "" (date token in a time-only pattern)
|
|
56
59
|
* @example parseTimeWithPattern("午後 10:20", "a h:mm", ["ja-JP", "en-US"]) // "22:20:00"
|
|
@@ -8,9 +8,8 @@ import { parseValueWithPattern, TIME_PATTERN_FIELDS } from "../../internal/index
|
|
|
8
8
|
* producer format — a CSV column, a legacy API field, a partially-typed
|
|
9
9
|
* form value — not for generating locale-correct output. For display,
|
|
10
10
|
* use `formatTime`/`formatDateToParts`, which order fields per locale
|
|
11
|
-
* instead of hard-coding a field order (
|
|
12
|
-
*
|
|
13
|
-
* of scope for GMT).
|
|
11
|
+
* instead of hard-coding a field order (a token *formatter*, the
|
|
12
|
+
* inverse of this function, is deliberately out of scope for GMT).
|
|
14
13
|
* - `pattern` accepts only time-shaped tokens. A pattern containing a
|
|
15
14
|
* date-only token (`y M d E G`) is malformed for this function and
|
|
16
15
|
* returns `""` — use `parseDateTimeWithPattern` for combined input.
|
|
@@ -29,10 +28,13 @@ import { parseValueWithPattern, TIME_PATTERN_FIELDS } from "../../internal/index
|
|
|
29
28
|
* | `SSS` | millisecond | 3 digits | 000–999 | |
|
|
30
29
|
* | `a` | meridiem | locale | — | `getLocaleMeridiems(locale)` → `[AM-label, PM-label]` |
|
|
31
30
|
*
|
|
32
|
-
* -
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
31
|
+
* - Literal text follows the Unicode UTS #35 date format pattern rules.
|
|
32
|
+
* Text in `'single quotes'` is a literal, letters included. Two
|
|
33
|
+
* adjacent quotes `''` are one literal `'`, inside or outside quoted
|
|
34
|
+
* text: `"HH''mm"` reads `"14'30"`, and `"'o''clock'"` reads
|
|
35
|
+
* `"o'clock"`. A quote that never closes makes the pattern malformed
|
|
36
|
+
* (`""`). Any other character that is not a letter (`: , space`,
|
|
37
|
+
* digits and so on) is a literal with no quoting.
|
|
36
38
|
* - `a` is locale-aware. If `locale` is omitted and the pattern uses
|
|
37
39
|
* `a`, GMT defaults to `"en-US"` rather than returning `""` for every
|
|
38
40
|
* caller who didn't have another locale in mind.
|
|
@@ -53,6 +55,7 @@ import { parseValueWithPattern, TIME_PATTERN_FIELDS } from "../../internal/index
|
|
|
53
55
|
*
|
|
54
56
|
* @example parseTimeWithPattern("14:30:45", "HH:mm:ss") // "14:30:45"
|
|
55
57
|
* @example parseTimeWithPattern("02:30:45 PM", "hh:mm:ss a") // "14:30:45"
|
|
58
|
+
* @example parseTimeWithPattern("2 o'clock PM", "h 'o''clock' a") // "14:00:00" ('' is one literal quote)
|
|
56
59
|
* @example parseTimeWithPattern("25:00", "HH:mm") // "" (shape-valid, not a real time)
|
|
57
60
|
* @example parseTimeWithPattern("2024-03-15", "yyyy-MM-dd") // "" (date token in a time-only pattern)
|
|
58
61
|
* @example parseTimeWithPattern("午後 10:20", "a h:mm", ["ja-JP", "en-US"]) // "22:20:00"
|
|
@@ -6,13 +6,13 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
6
6
|
* - Returns zero-padded string for month and day.
|
|
7
7
|
* - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
|
|
8
8
|
* does; `"dayOfWeek"` has no plural.
|
|
9
|
-
* - `
|
|
10
|
-
*
|
|
9
|
+
* - `optionsArg` must be an object or omitted: `null` or any other primitive returns "", as
|
|
10
|
+
* Temporal's GetOptionsObject rejects it.
|
|
11
11
|
* - Returns "" for invalid input.
|
|
12
12
|
*
|
|
13
13
|
* @param value ISO PlainDate string
|
|
14
14
|
* @param unit unit to extract from the date
|
|
15
|
-
* @param optionsArg
|
|
15
|
+
* @param optionsArg How weeks are numbered
|
|
16
16
|
* @returns string representation of the requested unit or "" on invalid input
|
|
17
17
|
*
|
|
18
18
|
* @example parseUnitFromDate("2024-03-15", "year") // "2024"
|
|
@@ -26,5 +26,13 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
26
26
|
* @example parseUnitFromDate("2024-01-01", "week", { weekStartsOn: "sunday" }) // "1"
|
|
27
27
|
*/
|
|
28
28
|
export declare function parseUnitFromDate(value: string, unit: Temporal.SmallestUnit<"year" | "month" | "day" | "week"> | "dayOfWeek", optionsArg?: {
|
|
29
|
+
/**
|
|
30
|
+
* The first day of the week, which sets how the `"week"` unit is numbered. `"monday"` gives the
|
|
31
|
+
* ISO 8601 week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS
|
|
32
|
+
* #35 week number with a Sunday first day and one minimal day, where week 1 holds 1 January.
|
|
33
|
+
* Any other value returns `""`, whatever the unit.
|
|
34
|
+
*
|
|
35
|
+
* @defaultValue `"monday"`
|
|
36
|
+
*/
|
|
29
37
|
weekStartsOn?: "monday" | "sunday";
|
|
30
38
|
}): string;
|
|
@@ -11,13 +11,13 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
11
11
|
* - Returns zero-padded string for month and day.
|
|
12
12
|
* - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
|
|
13
13
|
* does; `"dayOfWeek"` has no plural.
|
|
14
|
-
* - `
|
|
15
|
-
*
|
|
14
|
+
* - `optionsArg` must be an object or omitted: `null` or any other primitive returns "", as
|
|
15
|
+
* Temporal's GetOptionsObject rejects it.
|
|
16
16
|
* - Returns "" for invalid input.
|
|
17
17
|
*
|
|
18
18
|
* @param value ISO PlainDate string
|
|
19
19
|
* @param unit unit to extract from the date
|
|
20
|
-
* @param optionsArg
|
|
20
|
+
* @param optionsArg How weeks are numbered
|
|
21
21
|
* @returns string representation of the requested unit or "" on invalid input
|
|
22
22
|
*
|
|
23
23
|
* @example parseUnitFromDate("2024-03-15", "year") // "2024"
|