@northguild/gmt 1.19.0 → 1.20.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 +12 -12
- package/dist/calendar/business/businessDaysBetween.d.ts +2 -2
- package/dist/calendar/business/businessDaysBetween.js +11 -35
- package/dist/calendar/business/mergeCalendars.d.ts +1 -1
- package/dist/calendar/business/mergeCalendars.js +8 -9
- package/dist/calendar/business/nextBusinessDay.d.ts +2 -2
- package/dist/calendar/business/nextBusinessDay.js +2 -2
- package/dist/calendar/business/previousBusinessDay.d.ts +2 -2
- package/dist/calendar/business/previousBusinessDay.js +2 -2
- package/dist/calendar/business/rollDate.d.ts +3 -3
- package/dist/calendar/business/rollDate.js +10 -43
- package/dist/calendar/calculate/bucketRange.d.ts +9 -9
- package/dist/calendar/calculate/bucketRange.js +9 -9
- package/dist/calendar/calculate/floorToZone.d.ts +2 -2
- package/dist/calendar/calculate/floorToZone.js +1 -1
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +50 -40
- package/dist/calendar/calculate/getFiscalPeriod.js +78 -57
- package/dist/calendar/calculate/getQuarter.d.ts +26 -21
- package/dist/calendar/calculate/getQuarter.js +48 -19
- package/dist/calendar/hours/addOperatingTime.d.ts +3 -3
- package/dist/calendar/hours/addOperatingTime.js +3 -3
- package/dist/calendar/hours/isOpenAt.d.ts +3 -3
- package/dist/calendar/hours/isOpenAt.js +3 -3
- package/dist/calendar/hours/nextCloseAt.d.ts +2 -2
- package/dist/calendar/hours/nextCloseAt.js +2 -2
- package/dist/calendar/hours/nextOpenAt.d.ts +3 -3
- package/dist/calendar/hours/nextOpenAt.js +3 -3
- package/dist/calendar/hours/operatingIntervals.d.ts +2 -2
- package/dist/calendar/hours/operatingIntervals.js +4 -6
- package/dist/calendar/hours/operatingTimeBetween.d.ts +3 -3
- package/dist/calendar/hours/operatingTimeBetween.js +6 -8
- package/dist/calendar/hours/recurringWindows.d.ts +5 -5
- package/dist/calendar/hours/recurringWindows.js +9 -10
- package/dist/calendar/index.d.ts +1 -1
- package/dist/calendar/index.js +2 -2
- package/dist/calendar/validate/index.d.ts +3 -0
- package/dist/calendar/validate/index.js +3 -0
- package/dist/calendar/validate/isValidFiscalCalendar.d.ts +23 -0
- package/dist/calendar/validate/isValidFiscalCalendar.js +44 -0
- package/dist/calendar/validate/isValidFiscalExtraWeek.d.ts +19 -0
- package/dist/calendar/validate/isValidFiscalExtraWeek.js +23 -0
- package/dist/calendar/validate/isValidFiscalPattern.d.ts +7 -7
- package/dist/calendar/validate/isValidFiscalPattern.js +7 -7
- package/dist/calendar/validate/isValidFiscalYearLabel.d.ts +20 -0
- package/dist/calendar/validate/isValidFiscalYearLabel.js +24 -0
- package/dist/calendar/validate/isValidRollConvention.js +2 -10
- package/dist/calendar/validate/isValidZoneBucketUnit.d.ts +1 -1
- package/dist/duration/calculate/absDuration.js +1 -1
- package/dist/duration/calculate/addDuration.js +1 -1
- package/dist/duration/calculate/durationFromUnits.js +1 -1
- package/dist/duration/calculate/getDurationSign.js +1 -1
- package/dist/duration/calculate/getDurationUnit.d.ts +1 -1
- package/dist/duration/calculate/getDurationUnit.js +1 -1
- package/dist/duration/calculate/negateDuration.js +1 -1
- package/dist/duration/calculate/subtractDuration.js +1 -1
- package/dist/duration/calculate/totalDuration.d.ts +4 -4
- package/dist/duration/calculate/totalDuration.js +4 -4
- package/dist/duration/calculate/totalUnits.js +1 -1
- package/dist/duration/compare/compareDurations.d.ts +3 -3
- package/dist/duration/compare/compareDurations.js +3 -3
- package/dist/duration/format/formatDuration.d.ts +9 -9
- package/dist/duration/format/formatDuration.js +14 -13
- package/dist/duration/index.d.ts +1 -1
- package/dist/duration/index.js +2 -2
- package/dist/duration/normalize/normalizeDuration.d.ts +3 -3
- package/dist/duration/normalize/normalizeDuration.js +3 -3
- package/dist/duration/parse/parseDuration.d.ts +1 -1
- package/dist/duration/parse/parseDuration.js +1 -1
- package/dist/duration/validate/isValidDuration.js +2 -11
- package/dist/gnss/convert/gnssToUtc.d.ts +24 -0
- package/dist/gnss/convert/gnssToUtc.js +39 -0
- package/dist/gnss/convert/gnssWeekToUtc.d.ts +53 -0
- package/dist/gnss/convert/gnssWeekToUtc.js +80 -0
- package/dist/gnss/convert/index.d.ts +6 -0
- package/dist/gnss/convert/index.js +6 -0
- package/dist/gnss/convert/rinexWeekToUtc.d.ts +34 -0
- package/dist/gnss/convert/rinexWeekToUtc.js +57 -0
- package/dist/gnss/convert/utcToGnss.d.ts +38 -0
- package/dist/gnss/convert/utcToGnss.js +53 -0
- package/dist/gnss/convert/utcToGnssWeek.d.ts +24 -0
- package/dist/gnss/convert/utcToGnssWeek.js +40 -0
- package/dist/gnss/convert/utcToRinexWeek.d.ts +19 -0
- package/dist/gnss/convert/utcToRinexWeek.js +45 -0
- package/dist/gnss/index.d.ts +2 -0
- package/dist/gnss/index.js +3 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -2
- package/dist/instant/convert/classifyLocal.d.ts +4 -4
- package/dist/instant/convert/classifyLocal.js +8 -19
- package/dist/instant/convert/fromOffsetInstant.d.ts +4 -4
- package/dist/instant/convert/fromOffsetInstant.js +5 -5
- package/dist/instant/convert/resolveLocal.d.ts +9 -9
- package/dist/instant/convert/resolveLocal.js +9 -9
- package/dist/instant/convert/toOffsetInstant.d.ts +11 -11
- package/dist/instant/convert/toOffsetInstant.js +11 -28
- package/dist/instant/index.d.ts +1 -1
- package/dist/instant/index.js +2 -2
- package/dist/instant/validate/isValidUtcOffset.d.ts +1 -1
- package/dist/instant/validate/isValidUtcOffset.js +1 -1
- package/dist/intermodal/calculate/billingTimeline.js +1 -1
- package/dist/intermodal/calculate/chargeableDays.d.ts +12 -12
- package/dist/intermodal/calculate/chargeableDays.js +17 -16
- package/dist/intermodal/calculate/demurrageClock.d.ts +1 -1
- package/dist/intermodal/calculate/demurrageClock.js +2 -2
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +10 -10
- package/dist/intermodal/calculate/freeTimeExpiry.js +19 -15
- package/dist/intermodal/calculate/multimodalETA.d.ts +1 -1
- package/dist/intermodal/calculate/multimodalETA.js +2 -2
- package/dist/intermodal/format/bolTimestamp.d.ts +6 -6
- package/dist/intermodal/format/bolTimestamp.js +6 -6
- package/dist/intermodal/format/formatEpcisEvent.d.ts +1 -1
- package/dist/intermodal/format/formatEpcisEvent.js +2 -2
- package/dist/intermodal/index.d.ts +1 -1
- package/dist/intermodal/index.js +2 -2
- package/dist/intermodal/parse/parseEpcisEvent.js +1 -1
- package/dist/intermodal/validate/isValidEpcisEventTime.js +1 -1
- package/dist/internal/advanceToWeekday.d.ts +1 -1
- package/dist/internal/businessCalendar.d.ts +28 -12
- package/dist/internal/businessCalendar.js +129 -118
- package/dist/internal/businessDayValues.js +1 -1
- package/dist/internal/calendarDatePairPolicy.d.ts +1 -1
- package/dist/internal/calendarDateString.d.ts +1 -1
- package/dist/internal/calendarDateString.js +1 -1
- package/dist/internal/calendarSystemIds.js +1 -1
- package/dist/internal/calendarValueOfDate.js +1 -1
- package/dist/internal/calendarZonedPairPolicy.d.ts +1 -1
- package/dist/internal/calendarZonedString.d.ts +3 -3
- package/dist/internal/calendarZonedString.js +4 -4
- package/dist/internal/compareUnixEpochs.js +1 -1
- package/dist/internal/cutoffAtResolved.d.ts +62 -0
- package/dist/internal/cutoffAtResolved.js +162 -0
- package/dist/internal/cycleFieldValue.d.ts +0 -2
- package/dist/internal/cycleFieldValue.js +0 -2
- package/dist/internal/dateTimeUnitHelpers.d.ts +1 -1
- package/dist/internal/dateUnitHelpers.d.ts +1 -1
- package/dist/internal/daylightTime.d.ts +1 -1
- package/dist/internal/differenceRecord.d.ts +1 -1
- package/dist/internal/durationUntilString.d.ts +1 -1
- package/dist/internal/durationUntilString.js +1 -1
- package/dist/internal/dutyEngine.d.ts +6 -6
- package/dist/internal/dutyEngine.js +206 -197
- package/dist/internal/dutyPeriods.d.ts +1 -1
- package/dist/internal/dutyPeriods.js +8 -2
- package/dist/internal/dutyRules.d.ts +2 -1
- package/dist/internal/dutyRules.js +1 -1
- package/dist/internal/dutyRunIndex.d.ts +150 -0
- package/dist/internal/dutyRunIndex.js +398 -0
- package/dist/internal/earlierOccurrence.d.ts +41 -0
- package/dist/internal/earlierOccurrence.js +57 -0
- package/dist/internal/ediDateTimeFields.js +1 -1
- package/dist/internal/ediDateTimeWriter.js +1 -1
- package/dist/internal/englishCalendarNames.d.ts +1 -1
- package/dist/internal/epochDay.d.ts +41 -0
- package/dist/internal/epochDay.js +129 -0
- package/dist/internal/exactDuration.js +1 -1
- package/dist/internal/exactMoment.d.ts +4 -4
- package/dist/internal/exactMoment.js +5 -5
- package/dist/internal/fiscalCalendar.d.ts +41 -7
- package/dist/internal/fiscalCalendar.js +77 -9
- package/dist/internal/foreignEpochs.d.ts +5 -0
- package/dist/internal/foreignEpochs.js +5 -0
- package/dist/internal/formatCalendarDays.d.ts +4 -4
- package/dist/internal/formatCalendarDays.js +6 -5
- package/dist/internal/formatDateInCalendar.d.ts +1 -1
- package/dist/internal/formatRelativeDuration.d.ts +7 -7
- package/dist/internal/formatRelativeDuration.js +8 -7
- package/dist/internal/formatterCache.d.ts +40 -0
- package/dist/internal/formatterCache.js +181 -0
- package/dist/internal/freeTimeLedger.d.ts +31 -43
- package/dist/internal/freeTimeLedger.js +322 -30
- package/dist/internal/getLocaleWeekYearBounds.d.ts +1 -1
- package/dist/internal/gnssTimeScales.d.ts +53 -0
- package/dist/internal/gnssTimeScales.js +128 -0
- package/dist/internal/gnssWeek.d.ts +92 -0
- package/dist/internal/gnssWeek.js +212 -0
- package/dist/internal/halfOpenIntervals.d.ts +1 -1
- package/dist/internal/halfOpenIntervals.js +1 -1
- package/dist/internal/hasCalendarAnnotation.d.ts +3 -3
- package/dist/internal/hasCalendarAnnotation.js +3 -3
- package/dist/internal/hourDurationString.js +1 -1
- package/dist/internal/httpDateFields.js +1 -1
- package/dist/internal/index.d.ts +9 -3
- package/dist/internal/index.js +9 -3
- package/dist/internal/inputChecks.d.ts +53 -0
- package/dist/internal/inputChecks.js +132 -0
- package/dist/internal/instantFormatOptions.d.ts +1 -1
- package/dist/internal/instantFormatOptions.js +4 -8
- package/dist/internal/instantIntervalText.js +1 -1
- package/dist/internal/instantNanoseconds.d.ts +2 -2
- package/dist/internal/instantNanoseconds.js +2 -2
- package/dist/internal/intervalCountHelpers.d.ts +1 -1
- package/dist/internal/isoStringBody.d.ts +2 -2
- package/dist/internal/isoStringBody.js +2 -2
- package/dist/internal/joinDateTimeConnector.js +3 -2
- package/dist/internal/leapSeconds.d.ts +63 -0
- package/dist/internal/leapSeconds.js +162 -0
- package/dist/internal/localeWeekInfo.d.ts +1 -1
- package/dist/internal/localeWeekInfo.js +1 -1
- package/dist/internal/monthGridWeekRow.d.ts +1 -1
- package/dist/internal/normalizeDateTime.d.ts +2 -1
- package/dist/internal/normalizeDateTime.js +3 -2
- package/dist/internal/normalizeTimeZone.d.ts +1 -1
- package/dist/internal/normalizeTimeZone.js +1 -1
- package/dist/internal/offsetTimeline.d.ts +56 -0
- package/dist/internal/offsetTimeline.js +166 -0
- package/dist/internal/operatingSchedule.d.ts +28 -32
- package/dist/internal/operatingSchedule.js +538 -176
- package/dist/internal/patternToken.js +10 -7
- package/dist/internal/plainDateAdd.d.ts +1 -1
- package/dist/internal/plainDateAdd.js +1 -1
- package/dist/internal/plainDateUntil.d.ts +1 -1
- package/dist/internal/plainDateUntil.js +1 -1
- package/dist/internal/readSetFields.js +1 -1
- package/dist/internal/resolveDurationRelativeTo.d.ts +1 -1
- package/dist/internal/resolveDurationRelativeTo.js +1 -1
- package/dist/internal/resolveLocale.d.ts +2 -2
- package/dist/internal/resolveLocale.js +2 -2
- package/dist/internal/resolveManualRoundingOptions.d.ts +1 -1
- package/dist/internal/resolveUnixIntervalPair.d.ts +1 -1
- package/dist/internal/rinexWeek.d.ts +22 -0
- package/dist/internal/rinexWeek.js +30 -0
- package/dist/internal/rollBusinessDate.d.ts +15 -0
- package/dist/internal/rollBusinessDate.js +46 -0
- package/dist/internal/splitStep.d.ts +1 -1
- package/dist/internal/splitStep.js +1 -1
- package/dist/internal/startOrEndOfUnix.d.ts +1 -1
- package/dist/internal/startOrEndOfUtc.d.ts +1 -1
- package/dist/internal/startOrEndOfUtc.js +1 -1
- package/dist/internal/startOrEndOfZoned.d.ts +1 -1
- package/dist/internal/temporal.d.ts +5 -0
- package/dist/internal/temporal.js +5 -0
- package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +1 -1
- package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +1 -1
- package/dist/internal/temporalCompat/calendarDateFromFields.js +1 -1
- package/dist/internal/temporalCompat/calendarFields.d.ts +1 -1
- package/dist/internal/temporalCompat/capabilities.d.ts +27 -5
- package/dist/internal/temporalCompat/capabilities.js +28 -4
- package/dist/internal/temporalCompat/fieldSearch.d.ts +1 -1
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/fixedDay.d.ts +1 -1
- package/dist/internal/temporalCompat/fixedDay.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/largeMonthSpan.js +1 -1
- package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +1 -1
- package/dist/internal/temporalCompat/nonIsoArithmetic.js +1 -1
- package/dist/internal/temporalCompat/probeRepros.d.ts +35 -0
- package/dist/internal/temporalCompat/probeRepros.js +571 -0
- package/dist/internal/temporalCompat/readArithmeticModel.js +2 -2
- package/dist/internal/temporalCompat/repros.d.ts +3 -10
- package/dist/internal/temporalCompat/repros.js +13 -520
- package/dist/internal/timeScaleString.d.ts +47 -0
- package/dist/internal/timeScaleString.js +86 -0
- package/dist/internal/toInstantFromUtc.d.ts +1 -1
- package/dist/internal/toInstantFromUtc.js +1 -1
- package/dist/internal/unixEpochValue.d.ts +1 -1
- package/dist/internal/unixEpochValue.js +1 -1
- package/dist/internal/unixFormatReference.d.ts +1 -1
- package/dist/internal/unixFormatReference.js +1 -1
- package/dist/internal/unixWallClock.d.ts +1 -1
- package/dist/internal/utcOffsetString.d.ts +16 -0
- package/dist/internal/utcOffsetString.js +31 -1
- package/dist/internal/utcReading.d.ts +59 -0
- package/dist/internal/utcReading.js +113 -0
- package/dist/internal/utcWallClock.d.ts +1 -1
- package/dist/internal/utcWallClock.js +1 -1
- package/dist/internal/validatedZones.d.ts +20 -0
- package/dist/internal/validatedZones.js +33 -0
- package/dist/internal/wallClockAtOffset.d.ts +1 -1
- package/dist/internal/yearWindowStart.js +1 -1
- package/dist/internal/zoneBucketCap.d.ts +1 -1
- package/dist/internal/zoneBucketCap.js +2 -2
- package/dist/internal/zoneFrame.d.ts +4 -4
- package/dist/internal/zoneFrame.js +4 -4
- package/dist/internal/zonedBucket.d.ts +2 -2
- package/dist/internal/zonedBucket.js +92 -21
- package/dist/internal/zonedFormatReference.d.ts +1 -1
- package/dist/internal/zonedFormatReference.js +1 -1
- package/dist/internal/zonedLocalDates.d.ts +1 -1
- package/dist/internal/zonedLocalDates.js +22 -19
- package/dist/internal/zonedNowUnitValue.d.ts +1 -1
- package/dist/internal/zonedNowUnitValue.js +1 -1
- package/dist/internal/zonedTransitionSearch.d.ts +2 -0
- package/dist/internal/zonedTransitionSearch.js +165 -16
- package/dist/internal/zonedWallClock.d.ts +15 -4
- package/dist/internal/zonedWallClock.js +34 -6
- package/dist/internal/zonedWallClockDifference.d.ts +1 -1
- package/dist/internal/zonedWallClockDifference.js +2 -2
- package/dist/internal/zonedWallClockOperations.d.ts +2 -2
- package/dist/internal/zonedWallClockOperations.js +51 -6
- package/dist/internal/zonelessCalendarDate.d.ts +1 -1
- package/dist/internal/zonelessCalendarDate.js +1 -1
- package/dist/interval/index.d.ts +1 -1
- package/dist/interval/index.js +2 -2
- package/dist/plain/calculate/addBusinessDays.d.ts +2 -2
- package/dist/plain/calculate/addBusinessDays.js +2 -2
- package/dist/plain/calculate/addDateTime.js +1 -1
- package/dist/plain/calculate/addTime.js +1 -1
- package/dist/plain/calculate/clampDate.js +1 -1
- package/dist/plain/calculate/closestDateTo.js +1 -1
- package/dist/plain/calculate/cycleDate.js +1 -1
- package/dist/plain/calculate/cycleDateTime.js +1 -1
- package/dist/plain/calculate/cycleTime.js +1 -1
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +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 +1 -1
- package/dist/plain/calculate/endOfDate.js +1 -1
- package/dist/plain/calculate/endOfDateTime.d.ts +1 -1
- package/dist/plain/calculate/endOfDateTime.js +1 -1
- package/dist/plain/calculate/endOfQuarterForDate.js +1 -1
- package/dist/plain/calculate/endOfQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/endOfTime.d.ts +1 -1
- package/dist/plain/calculate/endOfTime.js +1 -1
- package/dist/plain/calculate/getDayOfYear.js +1 -1
- package/dist/plain/calculate/getDaysInMonth.js +1 -1
- package/dist/plain/calculate/getDaysInYear.js +1 -1
- package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +6 -6
- package/dist/plain/calculate/getLocaleDayOfWeek.js +7 -7
- package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +4 -4
- package/dist/plain/calculate/getLocaleEndOfWeek.js +5 -5
- package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +5 -5
- package/dist/plain/calculate/getLocaleStartOfWeek.js +6 -6
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +10 -10
- package/dist/plain/calculate/getLocaleWeekYear.js +11 -11
- package/dist/plain/calculate/getQuarterForDate.js +1 -1
- package/dist/plain/calculate/getQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/getWeekNumber.js +1 -1
- package/dist/plain/calculate/getWeekOfMonth.d.ts +10 -14
- package/dist/plain/calculate/getWeekOfMonth.js +11 -15
- package/dist/plain/calculate/getWeekYear.js +1 -1
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +7 -7
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +8 -8
- package/dist/plain/calculate/getWeeksInMonth.d.ts +8 -11
- package/dist/plain/calculate/getWeeksInMonth.js +9 -12
- package/dist/plain/calculate/getWeeksInYear.js +1 -1
- package/dist/plain/calculate/maxDate.js +1 -1
- package/dist/plain/calculate/maxDateTime.js +1 -1
- package/dist/plain/calculate/maxTime.js +1 -1
- package/dist/plain/calculate/minDate.js +1 -1
- package/dist/plain/calculate/minDateTime.js +1 -1
- package/dist/plain/calculate/minTime.js +1 -1
- package/dist/plain/calculate/nextWeekday.d.ts +14 -12
- package/dist/plain/calculate/nextWeekday.js +15 -13
- package/dist/plain/calculate/previousWeekday.d.ts +14 -12
- package/dist/plain/calculate/previousWeekday.js +15 -13
- package/dist/plain/calculate/roundDate.d.ts +1 -1
- package/dist/plain/calculate/roundDate.js +1 -1
- package/dist/plain/calculate/roundDateTime.d.ts +1 -1
- package/dist/plain/calculate/roundDateTime.js +1 -1
- package/dist/plain/calculate/roundTime.d.ts +1 -1
- package/dist/plain/calculate/roundTime.js +1 -1
- package/dist/plain/calculate/setDate.d.ts +1 -1
- package/dist/plain/calculate/setDate.js +1 -1
- package/dist/plain/calculate/setDateTime.d.ts +1 -1
- package/dist/plain/calculate/setDateTime.js +1 -1
- package/dist/plain/calculate/setTime.d.ts +1 -1
- package/dist/plain/calculate/setTime.js +1 -1
- package/dist/plain/calculate/sortDateTimes.js +1 -1
- package/dist/plain/calculate/sortDates.js +1 -1
- package/dist/plain/calculate/sortTimes.js +1 -1
- package/dist/plain/calculate/startOfDate.d.ts +1 -1
- package/dist/plain/calculate/startOfDate.js +1 -1
- package/dist/plain/calculate/startOfDateTime.d.ts +1 -1
- package/dist/plain/calculate/startOfDateTime.js +1 -1
- package/dist/plain/calculate/startOfQuarterForDate.js +1 -1
- package/dist/plain/calculate/startOfQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/startOfTime.d.ts +1 -1
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractBusinessDays.d.ts +2 -2
- package/dist/plain/calculate/subtractBusinessDays.js +2 -2
- package/dist/plain/calculate/subtractDate.js +1 -1
- package/dist/plain/calculate/subtractDateTime.js +1 -1
- package/dist/plain/calculate/subtractTime.js +1 -1
- package/dist/plain/calculate/weekOfYearForDate.js +1 -1
- package/dist/plain/calculate/weekOfYearForDateTime.js +1 -1
- package/dist/plain/chop/chopDate.js +1 -1
- package/dist/plain/chop/chopMilliseconds.js +1 -1
- package/dist/plain/chop/chopSeconds.js +1 -1
- package/dist/plain/chop/chopTime.js +1 -1
- package/dist/plain/compare/areDateTimesEqual.js +1 -1
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +2 -4
- package/dist/plain/compare/areDateTimesEqualBy.js +2 -4
- package/dist/plain/compare/areDatesEqual.js +1 -1
- package/dist/plain/compare/areDatesEqualBy.d.ts +5 -5
- package/dist/plain/compare/areDatesEqualBy.js +5 -5
- package/dist/plain/compare/areTimesEqual.js +1 -1
- package/dist/plain/compare/isAfterDate.js +1 -1
- package/dist/plain/compare/isAfterDateTime.js +1 -1
- package/dist/plain/compare/isAfterTime.js +1 -1
- package/dist/plain/compare/isBeforeDate.js +1 -1
- package/dist/plain/compare/isBeforeDateTime.js +1 -1
- package/dist/plain/compare/isBeforeTime.js +1 -1
- package/dist/plain/compare/isBetweenDate.js +1 -1
- package/dist/plain/compare/isBetweenDateTime.js +1 -1
- package/dist/plain/compare/isBetweenTime.js +1 -1
- package/dist/plain/compare/isBusinessDay.d.ts +2 -2
- package/dist/plain/compare/isBusinessDay.js +3 -3
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +8 -6
- package/dist/plain/compare/isThisUnit.js +7 -5
- package/dist/plain/compare/isWeekend.d.ts +5 -5
- package/dist/plain/compare/isWeekend.js +6 -6
- package/dist/plain/format/formatCalendar.d.ts +3 -5
- package/dist/plain/format/formatCalendar.js +10 -9
- package/dist/plain/format/formatDate.d.ts +4 -4
- package/dist/plain/format/formatDate.js +8 -7
- package/dist/plain/format/formatDateRange.d.ts +4 -4
- package/dist/plain/format/formatDateRange.js +8 -7
- package/dist/plain/format/formatDateTime.d.ts +4 -4
- package/dist/plain/format/formatDateTime.js +8 -7
- package/dist/plain/format/formatDateTimeRange.d.ts +4 -4
- package/dist/plain/format/formatDateTimeRange.js +8 -7
- package/dist/plain/format/formatDateTimeToParts.d.ts +6 -6
- package/dist/plain/format/formatDateTimeToParts.js +10 -9
- package/dist/plain/format/formatDateToParts.d.ts +6 -6
- package/dist/plain/format/formatDateToParts.js +10 -9
- package/dist/plain/format/formatRelativeDate.d.ts +3 -3
- package/dist/plain/format/formatRelativeDate.js +4 -4
- package/dist/plain/format/formatRelativeDateTime.d.ts +3 -3
- package/dist/plain/format/formatRelativeDateTime.js +4 -4
- package/dist/plain/format/formatRelativeTime.d.ts +3 -3
- package/dist/plain/format/formatRelativeTime.js +4 -4
- package/dist/plain/format/formatSqlDateTime.js +1 -1
- package/dist/plain/format/formatTime.d.ts +4 -4
- package/dist/plain/format/formatTime.js +8 -7
- package/dist/plain/get/getDay.js +1 -1
- package/dist/plain/get/getDayOfWeek.js +1 -1
- package/dist/plain/get/getHour.js +1 -1
- package/dist/plain/get/getMicrosecond.js +1 -1
- package/dist/plain/get/getMillisecond.js +1 -1
- package/dist/plain/get/getMinute.js +1 -1
- package/dist/plain/get/getMonth.js +1 -1
- package/dist/plain/get/getNanosecond.js +1 -1
- package/dist/plain/get/getNow.js +1 -1
- package/dist/plain/get/getNowUnit.js +1 -1
- package/dist/plain/get/getSecond.js +1 -1
- package/dist/plain/get/getToday.js +1 -1
- package/dist/plain/get/getWeekOfYear.js +1 -1
- package/dist/plain/get/getYear.js +1 -1
- package/dist/plain/index.d.ts +1 -1
- package/dist/plain/index.js +2 -2
- package/dist/plain/interval/intervalAbutsDate.d.ts +1 -2
- package/dist/plain/interval/intervalAbutsDate.js +2 -3
- package/dist/plain/interval/intervalAbutsDateTime.js +1 -1
- package/dist/plain/interval/intervalAbutsTime.js +1 -1
- package/dist/plain/interval/intervalContainsDate.d.ts +1 -1
- package/dist/plain/interval/intervalContainsDate.js +2 -2
- package/dist/plain/interval/intervalContainsDateTime.js +1 -1
- package/dist/plain/interval/intervalContainsTime.js +1 -1
- package/dist/plain/interval/intervalCountDate.js +1 -1
- package/dist/plain/interval/intervalCountDateTime.js +1 -1
- package/dist/plain/interval/intervalCountTime.js +1 -1
- package/dist/plain/interval/intervalDifferenceDate.d.ts +1 -1
- package/dist/plain/interval/intervalDifferenceDate.js +2 -2
- package/dist/plain/interval/intervalDifferenceDateTime.js +1 -1
- package/dist/plain/interval/intervalDifferenceTime.js +1 -1
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +3 -3
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -3
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +1 -1
- package/dist/plain/interval/intervalDivideEquallyTime.js +1 -1
- package/dist/plain/interval/intervalEngulfsDate.d.ts +1 -1
- package/dist/plain/interval/intervalEngulfsDate.js +2 -2
- package/dist/plain/interval/intervalEngulfsDateTime.js +1 -1
- package/dist/plain/interval/intervalEngulfsTime.js +1 -1
- package/dist/plain/interval/intervalFromDurationDate.js +1 -1
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -1
- package/dist/plain/interval/intervalFromDurationTime.js +1 -1
- package/dist/plain/interval/intervalIntersectionDate.d.ts +1 -1
- package/dist/plain/interval/intervalIntersectionDate.js +2 -2
- package/dist/plain/interval/intervalIntersectionDateTime.js +1 -1
- package/dist/plain/interval/intervalIntersectionTime.js +1 -1
- package/dist/plain/interval/intervalLengthDateTime.js +1 -1
- package/dist/plain/interval/intervalLengthTime.js +1 -1
- package/dist/plain/interval/intervalOverlappingDaysDate.js +1 -1
- package/dist/plain/interval/intervalOverlappingDaysDateTime.js +1 -1
- package/dist/plain/interval/intervalSplitAtDate.d.ts +1 -1
- package/dist/plain/interval/intervalSplitAtDate.js +2 -2
- package/dist/plain/interval/intervalSplitAtDateTime.js +1 -1
- package/dist/plain/interval/intervalSplitAtTime.js +1 -1
- package/dist/plain/interval/intervalUnionDate.d.ts +2 -2
- package/dist/plain/interval/intervalUnionDate.js +3 -3
- package/dist/plain/interval/intervalUnionDateTime.js +1 -1
- package/dist/plain/interval/intervalUnionTime.js +1 -1
- package/dist/plain/interval/intervalXorAllDate.d.ts +1 -1
- package/dist/plain/interval/intervalXorAllDate.js +2 -2
- package/dist/plain/interval/intervalXorAllDateTime.js +1 -1
- package/dist/plain/interval/intervalXorAllTime.js +1 -1
- package/dist/plain/interval/intervalXorDate.d.ts +1 -1
- package/dist/plain/interval/intervalXorDate.js +2 -2
- package/dist/plain/interval/intervalXorDateTime.js +1 -1
- package/dist/plain/interval/intervalXorTime.js +1 -1
- package/dist/plain/interval/intervalsOverlapDate.d.ts +1 -1
- package/dist/plain/interval/intervalsOverlapDate.js +2 -2
- package/dist/plain/interval/intervalsOverlapDateTime.js +1 -1
- package/dist/plain/interval/intervalsOverlapTime.js +1 -1
- package/dist/plain/interval/mergeIntervalsDate.d.ts +1 -1
- package/dist/plain/interval/mergeIntervalsDate.js +2 -2
- package/dist/plain/interval/mergeIntervalsDateTime.js +1 -1
- package/dist/plain/interval/mergeIntervalsTime.js +1 -1
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +2 -3
- package/dist/plain/interval/splitIntervalByUnitDate.js +3 -4
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +2 -1
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +3 -2
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -1
- package/dist/plain/interval/validate/isValidDateInterval.d.ts +1 -1
- package/dist/plain/interval/validate/isValidDateInterval.js +2 -2
- package/dist/plain/interval/validate/isValidDateTimeInterval.js +1 -1
- package/dist/plain/interval/validate/isValidTimeInterval.js +1 -1
- package/dist/plain/locale/getLocaleEraNames.d.ts +6 -6
- package/dist/plain/locale/getLocaleEraNames.js +8 -7
- package/dist/plain/locale/getLocaleMeridiems.d.ts +5 -5
- package/dist/plain/locale/getLocaleMeridiems.js +7 -6
- package/dist/plain/locale/getLocaleMonthNames.d.ts +6 -6
- package/dist/plain/locale/getLocaleMonthNames.js +17 -11
- package/dist/plain/locale/getLocaleWeekdayNames.d.ts +3 -3
- package/dist/plain/locale/getLocaleWeekdayNames.js +12 -5
- package/dist/plain/map/mapDatesInRange.js +1 -1
- package/dist/plain/map/mapDaysInMonth.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +14 -13
- package/dist/plain/parse/parseDateTimeWithPattern.js +15 -14
- package/dist/plain/parse/parseDateWithPattern.d.ts +18 -17
- package/dist/plain/parse/parseDateWithPattern.js +19 -18
- package/dist/plain/parse/parseDayFromDate.js +1 -1
- package/dist/plain/parse/parseDayFromDateTime.js +1 -1
- package/dist/plain/parse/parseDayOfWeekFromDate.js +1 -1
- package/dist/plain/parse/parseDayOfWeekFromDateTime.js +1 -1
- package/dist/plain/parse/parseHourFromDateTime.js +1 -1
- package/dist/plain/parse/parseHourFromTime.js +1 -1
- package/dist/plain/parse/parseMicrosecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseMicrosecondFromTime.js +1 -1
- package/dist/plain/parse/parseMillisecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseMillisecondFromTime.js +1 -1
- package/dist/plain/parse/parseMinuteFromDateTime.js +1 -1
- package/dist/plain/parse/parseMinuteFromTime.js +1 -1
- package/dist/plain/parse/parseMonthFromDate.js +1 -1
- package/dist/plain/parse/parseMonthFromDateTime.js +1 -1
- package/dist/plain/parse/parseNanosecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseNanosecondFromTime.js +1 -1
- package/dist/plain/parse/parseSecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseSecondFromTime.js +1 -1
- package/dist/plain/parse/parseSqlDateTime.js +1 -1
- package/dist/plain/parse/parseTimeWithPattern.d.ts +6 -4
- package/dist/plain/parse/parseTimeWithPattern.js +7 -5
- package/dist/plain/parse/parseUnitFromDate.d.ts +1 -1
- package/dist/plain/parse/parseUnitFromDate.js +1 -1
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +1 -1
- package/dist/plain/parse/parseUnitFromDateTime.js +1 -1
- package/dist/plain/parse/parseUnitFromTime.d.ts +1 -1
- package/dist/plain/parse/parseUnitFromTime.js +1 -1
- package/dist/plain/parse/parseWeekFromDateTime.js +1 -1
- package/dist/plain/parse/parseYearFromDate.js +1 -1
- package/dist/plain/parse/parseYearFromDateTime.js +1 -1
- package/dist/plain/validate/{isLeapSecond.d.ts → hasSecond60.d.ts} +16 -14
- package/dist/plain/validate/{isLeapSecond.js → hasSecond60.js} +16 -14
- package/dist/plain/validate/index.d.ts +1 -1
- package/dist/plain/validate/index.js +1 -1
- package/dist/plain/validate/isLeapYear.js +1 -1
- package/dist/plain/validate/isValidDate.js +2 -17
- package/dist/plain/validate/isValidDateRange.js +1 -1
- package/dist/plain/validate/isValidDateTime.d.ts +1 -1
- package/dist/plain/validate/isValidDateTime.js +4 -4
- package/dist/plain/validate/isValidDateTimeRange.js +1 -1
- package/dist/plain/validate/isValidIsoDateLike.js +3 -3
- package/dist/plain/validate/isValidTime.js +2 -18
- package/dist/plain/validate/isValidTimeRange.js +1 -1
- package/dist/precision/convert/fromNanoseconds.d.ts +2 -2
- package/dist/precision/convert/fromNanoseconds.js +3 -3
- package/dist/precision/convert/toNanoseconds.d.ts +2 -2
- package/dist/precision/convert/toNanoseconds.js +2 -2
- package/dist/precision/index.d.ts +1 -1
- package/dist/precision/index.js +2 -2
- package/dist/precision/validate/isValidInstant.d.ts +1 -1
- package/dist/precision/validate/isValidInstant.js +1 -1
- package/dist/regex/calendar-zoned-date-time.d.ts +4 -4
- package/dist/regex/calendar-zoned-date-time.js +4 -4
- package/dist/regex/index.d.ts +1 -1
- package/dist/regex/index.js +2 -2
- package/dist/regex/leap-second.d.ts +1 -1
- package/dist/regex/leap-second.js +1 -1
- package/dist/regex/time-zone-like.d.ts +2 -2
- package/dist/regex/time-zone-like.js +2 -2
- package/dist/span/calculate/spanMs.d.ts +4 -3
- package/dist/span/calculate/spanMs.js +4 -3
- package/dist/span/calculate/spanNs.d.ts +4 -3
- package/dist/span/calculate/spanNs.js +4 -3
- package/dist/span/calculate/spanWallClock.d.ts +12 -12
- package/dist/span/calculate/spanWallClock.js +13 -13
- package/dist/span/index.d.ts +1 -1
- package/dist/span/index.js +2 -2
- package/dist/span/validate/isValidSpan.d.ts +3 -3
- package/dist/span/validate/isValidSpan.js +3 -3
- package/dist/timescale/calculate/index.d.ts +3 -0
- package/dist/timescale/calculate/index.js +3 -0
- package/dist/timescale/calculate/leapSecondsBetween.d.ts +26 -0
- package/dist/timescale/calculate/leapSecondsBetween.js +62 -0
- package/dist/timescale/calculate/nextLeapSecond.d.ts +18 -0
- package/dist/timescale/calculate/nextLeapSecond.js +33 -0
- package/dist/timescale/calculate/taiMinusUtc.d.ts +21 -0
- package/dist/timescale/calculate/taiMinusUtc.js +38 -0
- package/dist/timescale/convert/fromTAI.d.ts +22 -0
- package/dist/timescale/convert/fromTAI.js +35 -0
- package/dist/timescale/convert/index.d.ts +2 -0
- package/dist/timescale/convert/index.js +2 -0
- package/dist/timescale/convert/toTAI.d.ts +23 -0
- package/dist/timescale/convert/toTAI.js +39 -0
- package/dist/timescale/index.d.ts +4 -0
- package/dist/timescale/index.js +5 -0
- package/dist/timescale/validate/index.d.ts +1 -0
- package/dist/timescale/validate/index.js +1 -0
- package/dist/timescale/validate/isLeapSecond.d.ts +25 -0
- package/dist/timescale/validate/isLeapSecond.js +36 -0
- package/dist/transport/calculate/crossingTime.d.ts +2 -2
- package/dist/transport/calculate/crossingTime.js +3 -3
- package/dist/transport/calculate/cutoffAt.d.ts +4 -4
- package/dist/transport/calculate/cutoffAt.js +24 -133
- package/dist/transport/calculate/cutoffSchedule.d.ts +2 -2
- package/dist/transport/calculate/cutoffSchedule.js +52 -20
- package/dist/transport/calculate/dwellTime.d.ts +3 -3
- package/dist/transport/calculate/dwellTime.js +4 -4
- package/dist/transport/calculate/estimateDrift.d.ts +1 -1
- package/dist/transport/calculate/estimateDrift.js +1 -1
- package/dist/transport/calculate/nextDeparture.d.ts +2 -2
- package/dist/transport/calculate/nextDeparture.js +2 -2
- package/dist/transport/calculate/scheduleDelivery.d.ts +2 -2
- package/dist/transport/calculate/scheduleDelivery.js +3 -3
- package/dist/transport/calculate/transitTime.d.ts +11 -11
- package/dist/transport/calculate/transitTime.js +11 -11
- package/dist/transport/compare/classifyPunctuality.d.ts +1 -1
- package/dist/transport/compare/classifyPunctuality.js +1 -1
- package/dist/transport/compare/isPastCutoff.d.ts +1 -1
- package/dist/transport/compare/isPastCutoff.js +2 -2
- package/dist/transport/compare/scheduleDeviation.d.ts +1 -1
- package/dist/transport/compare/scheduleDeviation.js +1 -1
- package/dist/transport/compare/timeToCutoff.d.ts +1 -1
- package/dist/transport/compare/timeToCutoff.js +1 -1
- package/dist/transport/convert/etaAtZone.d.ts +2 -2
- package/dist/transport/convert/etaAtZone.js +2 -2
- package/dist/transport/index.d.ts +1 -1
- package/dist/transport/index.js +2 -2
- package/dist/types/date-duration-unit.d.ts +1 -1
- package/dist/types/date-time-duration-units.d.ts +1 -1
- package/dist/types/date-time-unit.d.ts +1 -1
- package/dist/types/date-unit.d.ts +1 -1
- package/dist/types/disambiguation.d.ts +1 -1
- package/dist/types/duration-relative-to.d.ts +1 -1
- package/dist/types/duration-string-options.d.ts +1 -1
- package/dist/types/exact-duration-unit.d.ts +1 -1
- package/dist/types/fiscal-calendar.d.ts +40 -4
- package/dist/types/gnss.d.ts +51 -0
- package/dist/types/gnss.js +0 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +2 -0
- package/dist/types/now-unit.d.ts +1 -1
- package/dist/types/offset.d.ts +1 -1
- package/dist/types/overflow.d.ts +1 -1
- package/dist/types/rounding-options.d.ts +1 -1
- package/dist/types/stored-zoned-classification.d.ts +83 -0
- package/dist/types/stored-zoned-classification.js +0 -0
- package/dist/types/time-duration-unit.d.ts +1 -1
- package/dist/types/time-unit.d.ts +1 -1
- package/dist/types/utc-now-unit.d.ts +1 -1
- package/dist/unix/calculate/diffUnix.d.ts +1 -1
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +1 -1
- package/dist/unix/calculate/endOfUnix.d.ts +2 -2
- package/dist/unix/calculate/endOfUnix.js +1 -1
- package/dist/unix/calculate/isBetweenUnix.js +1 -1
- package/dist/unix/calculate/roundUnix.d.ts +7 -5
- package/dist/unix/calculate/roundUnix.js +6 -4
- package/dist/unix/calculate/setUnix.d.ts +3 -3
- package/dist/unix/calculate/setUnix.js +2 -2
- package/dist/unix/calculate/startOfUnix.d.ts +2 -2
- package/dist/unix/calculate/startOfUnix.js +1 -1
- package/dist/unix/compare/areUnixEqualBy.d.ts +6 -6
- package/dist/unix/compare/areUnixEqualBy.js +5 -5
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +1 -1
- package/dist/unix/convert/convertUnixToPlainTime.js +1 -1
- package/dist/unix/convert/convertUnixToZoned.d.ts +1 -1
- package/dist/unix/convert/convertUnixToZoned.js +1 -1
- package/dist/unix/format/formatCalendarUnix.d.ts +10 -9
- package/dist/unix/format/formatCalendarUnix.js +6 -6
- package/dist/unix/format/formatRelativeUnix.d.ts +7 -7
- package/dist/unix/format/formatRelativeUnix.js +7 -7
- package/dist/unix/format/formatUnix.d.ts +9 -9
- package/dist/unix/format/formatUnix.js +9 -9
- package/dist/unix/get/getUnixDay.js +1 -1
- package/dist/unix/get/getUnixHour.js +1 -1
- package/dist/unix/get/getUnixMicrosecond.js +1 -1
- package/dist/unix/get/getUnixMillisecond.js +1 -1
- package/dist/unix/get/getUnixMinute.js +1 -1
- package/dist/unix/get/getUnixMonth.js +1 -1
- package/dist/unix/get/getUnixNanosecond.js +1 -1
- package/dist/unix/get/getUnixNow.js +1 -1
- package/dist/unix/get/getUnixNowUnit.d.ts +1 -1
- package/dist/unix/get/getUnixNowUnit.js +1 -1
- package/dist/unix/get/getUnixSecond.js +1 -1
- package/dist/unix/get/getUnixYear.js +1 -1
- package/dist/unix/index.d.ts +1 -1
- package/dist/unix/index.js +2 -2
- package/dist/unix/interval/intervalFromDurationUnix.js +1 -1
- package/dist/unix/interval/intervalLengthUnix.d.ts +2 -2
- package/dist/unix/interval/intervalLengthUnix.js +2 -2
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +3 -2
- package/dist/unix/interval/splitIntervalByUnitUnix.js +4 -3
- package/dist/unix/parse/parseUnitFromUnix.d.ts +1 -1
- package/dist/utc/calculate/addUtc.js +1 -1
- 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/endOfQuarterForUtc.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +1 -1
- package/dist/utc/calculate/isBetweenUtc.js +1 -1
- package/dist/utc/calculate/maxUtc.js +1 -1
- package/dist/utc/calculate/minUtc.js +1 -1
- package/dist/utc/calculate/roundUtc.d.ts +1 -1
- package/dist/utc/calculate/roundUtc.js +1 -1
- package/dist/utc/calculate/setUtc.d.ts +1 -1
- package/dist/utc/calculate/setUtc.js +1 -1
- package/dist/utc/calculate/sortUtc.js +1 -1
- package/dist/utc/calculate/startOfQuarterForUtc.js +1 -1
- package/dist/utc/calculate/startOfUtc.d.ts +1 -1
- package/dist/utc/calculate/subtractUtc.js +1 -1
- package/dist/utc/compare/areUtcEqual.js +1 -1
- package/dist/utc/compare/areUtcEqualBy.d.ts +2 -2
- package/dist/utc/compare/areUtcEqualBy.js +2 -2
- package/dist/utc/compare/isAfterUtc.js +1 -1
- package/dist/utc/compare/isBeforeUtc.js +1 -1
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +1 -1
- package/dist/utc/convert/convertUtcToPlainDate.js +2 -2
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +1 -1
- package/dist/utc/convert/convertUtcToPlainDateTime.js +2 -2
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +1 -1
- package/dist/utc/convert/convertUtcToPlainTime.js +2 -2
- package/dist/utc/convert/convertUtcToUnix.js +1 -1
- package/dist/utc/convert/convertUtcToZoned.d.ts +1 -1
- package/dist/utc/convert/convertUtcToZoned.js +2 -2
- package/dist/utc/format/formatCalendarUtc.d.ts +6 -5
- package/dist/utc/format/formatCalendarUtc.js +3 -3
- package/dist/utc/format/formatHttpDate.js +1 -1
- package/dist/utc/format/formatRelativeUtc.d.ts +5 -5
- package/dist/utc/format/formatRelativeUtc.js +5 -5
- package/dist/utc/format/formatUtc.d.ts +8 -8
- package/dist/utc/format/formatUtc.js +8 -8
- package/dist/utc/get/getUtcDay.js +1 -1
- package/dist/utc/get/getUtcHour.js +1 -1
- package/dist/utc/get/getUtcMicrosecond.js +1 -1
- package/dist/utc/get/getUtcMillisecond.js +1 -1
- package/dist/utc/get/getUtcMinute.js +1 -1
- package/dist/utc/get/getUtcMonth.js +1 -1
- package/dist/utc/get/getUtcNanosecond.js +1 -1
- package/dist/utc/get/getUtcNow.js +1 -1
- package/dist/utc/get/getUtcNowUnit.js +1 -1
- package/dist/utc/get/getUtcSecond.js +1 -1
- package/dist/utc/get/getUtcYear.js +1 -1
- package/dist/utc/index.d.ts +1 -1
- package/dist/utc/index.js +2 -2
- package/dist/utc/interval/intervalAbutsUtc.js +1 -1
- package/dist/utc/interval/intervalContainsUtc.js +1 -1
- package/dist/utc/interval/intervalCountUtc.js +1 -1
- package/dist/utc/interval/intervalDivideEquallyUtc.js +1 -1
- package/dist/utc/interval/intervalEngulfsUtc.js +1 -1
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -1
- package/dist/utc/interval/intervalLengthUtc.js +1 -1
- package/dist/utc/interval/intervalOverlappingDaysUtc.js +1 -1
- package/dist/utc/interval/intervalSplitAtUtc.js +1 -1
- package/dist/utc/interval/intervalXorAllUtc.js +1 -1
- package/dist/utc/interval/intervalXorUtc.js +1 -1
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +2 -1
- package/dist/utc/interval/splitIntervalByUnitUtc.js +3 -2
- package/dist/utc/interval/validate/isValidUtcInterval.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseDateFromUtc.js +1 -1
- package/dist/utc/parse/parseDayFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseDayFromUtc.js +1 -1
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +2 -2
- package/dist/utc/parse/parseHourFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseHourFromUtc.js +1 -1
- package/dist/utc/parse/parseHttpDate.js +1 -1
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseMicrosecondFromUtc.js +1 -1
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseMillisecondFromUtc.js +1 -1
- package/dist/utc/parse/parseMonthFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseMonthFromUtc.js +1 -1
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseNanosecondFromUtc.js +1 -1
- package/dist/utc/parse/parseSecondFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseSecondFromUtc.js +1 -1
- package/dist/utc/parse/parseTimeFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseTimeFromUtc.js +2 -2
- package/dist/utc/parse/parseUnitFromUtc.d.ts +2 -2
- package/dist/utc/parse/parseUnitFromUtc.js +2 -2
- package/dist/utc/parse/parseWeekFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseWeekFromUtc.js +2 -2
- package/dist/utc/parse/parseYearFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseYearFromUtc.js +1 -1
- package/dist/utc/validate/isValidUtc.js +3 -3
- package/dist/utc/validate/isValidUtcRange.js +1 -1
- package/dist/{duty → workforce}/calculate/dutyDayFor.js +1 -1
- package/dist/{duty → workforce}/calculate/evaluateDutyLog.js +1 -1
- package/dist/{duty → workforce}/calculate/longestRun.js +1 -1
- package/dist/{duty → workforce}/calculate/qualifyingRestPairs.js +1 -1
- package/dist/{duty → workforce}/calculate/qualifyingRests.js +1 -1
- package/dist/workforce/index.d.ts +3 -0
- package/dist/workforce/index.js +4 -0
- package/dist/{duty → workforce}/validate/isValidDutyLog.d.ts +2 -2
- package/dist/{duty → workforce}/validate/isValidDutyLog.js +2 -2
- package/dist/zoned/calculate/addZoned.d.ts +15 -15
- package/dist/zoned/calculate/addZoned.js +15 -15
- package/dist/zoned/calculate/addZonedBusinessDays.d.ts +5 -4
- package/dist/zoned/calculate/addZonedBusinessDays.js +5 -4
- package/dist/zoned/calculate/clampZoned.js +1 -1
- package/dist/zoned/calculate/diffZoned.d.ts +8 -8
- package/dist/zoned/calculate/diffZoned.js +7 -7
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +5 -5
- package/dist/zoned/calculate/diffZonedAsDuration.js +4 -4
- package/dist/zoned/calculate/endOfZoned.d.ts +3 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -2
- package/dist/zoned/calculate/getHoursInZonedDay.d.ts +2 -2
- package/dist/zoned/calculate/getHoursInZonedDay.js +2 -2
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +6 -5
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +6 -5
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +5 -5
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -5
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +6 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +6 -6
- package/dist/zoned/calculate/maxZoned.d.ts +2 -2
- package/dist/zoned/calculate/maxZoned.js +3 -3
- package/dist/zoned/calculate/minZoned.d.ts +2 -2
- package/dist/zoned/calculate/minZoned.js +3 -3
- package/dist/zoned/calculate/roundZoned.d.ts +11 -9
- package/dist/zoned/calculate/roundZoned.js +11 -9
- package/dist/zoned/calculate/setZoned.d.ts +8 -8
- package/dist/zoned/calculate/setZoned.js +8 -8
- package/dist/zoned/calculate/sortZoned.d.ts +3 -3
- package/dist/zoned/calculate/sortZoned.js +4 -4
- package/dist/zoned/calculate/startOfZoned.d.ts +3 -3
- package/dist/zoned/calculate/startOfZoned.js +2 -2
- package/dist/zoned/calculate/subtractZoned.d.ts +14 -14
- package/dist/zoned/calculate/subtractZoned.js +14 -14
- package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +5 -4
- package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -4
- package/dist/zoned/chop/chopZonedDate.d.ts +1 -1
- package/dist/zoned/chop/chopZonedDate.js +1 -1
- package/dist/zoned/chop/chopZonedMilliseconds.d.ts +1 -1
- package/dist/zoned/chop/chopZonedMilliseconds.js +1 -1
- package/dist/zoned/chop/chopZonedSeconds.d.ts +1 -1
- package/dist/zoned/chop/chopZonedSeconds.js +1 -1
- package/dist/zoned/chop/chopZonedTime.d.ts +1 -1
- package/dist/zoned/chop/chopZonedTime.js +1 -1
- package/dist/zoned/chop/chopZonedTimezone.d.ts +1 -1
- package/dist/zoned/chop/chopZonedTimezone.js +1 -1
- package/dist/zoned/classify/classifyStoredZoned.d.ts +46 -0
- package/dist/zoned/classify/classifyStoredZoned.js +177 -0
- package/dist/zoned/classify/index.d.ts +1 -0
- package/dist/zoned/classify/index.js +1 -0
- package/dist/zoned/compare/areZonedEqual.js +1 -1
- package/dist/zoned/compare/areZonedEqualBy.d.ts +8 -10
- package/dist/zoned/compare/areZonedEqualBy.js +8 -10
- package/dist/zoned/compare/isAfterZoned.js +1 -1
- package/dist/zoned/compare/isBeforeZoned.d.ts +2 -2
- package/dist/zoned/compare/isBeforeZoned.js +3 -3
- package/dist/zoned/compare/isBetweenZoned.js +1 -1
- package/dist/zoned/compare/isInDaylightSaving.d.ts +2 -2
- package/dist/zoned/compare/isInDaylightSaving.js +2 -2
- package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -6
- package/dist/zoned/compare/isZonedBusinessDay.js +7 -6
- package/dist/zoned/compare/isZonedFuture.js +1 -1
- package/dist/zoned/compare/isZonedPast.js +1 -1
- package/dist/zoned/compare/isZonedRelativeDay.d.ts +2 -2
- package/dist/zoned/compare/isZonedRelativeDay.js +3 -3
- package/dist/zoned/compare/isZonedThisUnit.d.ts +7 -7
- package/dist/zoned/compare/isZonedThisUnit.js +7 -7
- package/dist/zoned/compare/isZonedWeekend.d.ts +5 -5
- package/dist/zoned/compare/isZonedWeekend.js +5 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +6 -6
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +6 -6
- package/dist/zoned/convert/convertZonedToCalendar.d.ts +5 -5
- package/dist/zoned/convert/convertZonedToCalendar.js +5 -5
- package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +3 -3
- package/dist/zoned/convert/convertZonedToPlainDateTime.js +3 -3
- package/dist/zoned/convert/convertZonedToZoned.d.ts +2 -2
- package/dist/zoned/convert/convertZonedToZoned.js +2 -2
- package/dist/zoned/format/formatCalendarZoned.d.ts +7 -6
- package/dist/zoned/format/formatCalendarZoned.js +5 -5
- package/dist/zoned/format/formatRelativeZoned.d.ts +3 -3
- package/dist/zoned/format/formatRelativeZoned.js +4 -4
- package/dist/zoned/format/formatRfc2822.d.ts +3 -3
- package/dist/zoned/format/formatRfc2822.js +3 -3
- package/dist/zoned/format/formatRfc3339.d.ts +2 -2
- package/dist/zoned/format/formatRfc3339.js +2 -2
- package/dist/zoned/format/formatTimeZoneName.d.ts +17 -17
- package/dist/zoned/format/formatTimeZoneName.js +13 -12
- package/dist/zoned/format/formatZonedDateTime.d.ts +10 -10
- package/dist/zoned/format/formatZonedDateTime.js +12 -11
- package/dist/zoned/format/formatZonedRange.d.ts +7 -7
- package/dist/zoned/format/formatZonedRange.js +9 -8
- package/dist/zoned/format/formatZonedToParts.d.ts +11 -11
- package/dist/zoned/format/formatZonedToParts.js +13 -12
- package/dist/zoned/get/getDstTransitions.d.ts +9 -9
- package/dist/zoned/get/getDstTransitions.js +3 -3
- package/dist/zoned/get/getSystemTimeZone.d.ts +2 -2
- package/dist/zoned/get/getSystemTimeZone.js +2 -2
- package/dist/zoned/get/getTimeZoneOffset.d.ts +5 -5
- package/dist/zoned/get/getTimeZoneOffset.js +5 -5
- package/dist/zoned/get/getTimeZones.d.ts +1 -1
- package/dist/zoned/get/getTimeZones.js +1 -1
- package/dist/zoned/get/getZonedDay.d.ts +1 -1
- package/dist/zoned/get/getZonedDay.js +1 -1
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +1 -1
- package/dist/zoned/get/getZonedDayOfWeek.js +1 -1
- package/dist/zoned/get/getZonedHour.d.ts +1 -1
- package/dist/zoned/get/getZonedHour.js +1 -1
- package/dist/zoned/get/getZonedMicrosecond.d.ts +1 -1
- package/dist/zoned/get/getZonedMicrosecond.js +1 -1
- package/dist/zoned/get/getZonedMillisecond.d.ts +1 -1
- package/dist/zoned/get/getZonedMillisecond.js +1 -1
- package/dist/zoned/get/getZonedMinute.d.ts +1 -1
- package/dist/zoned/get/getZonedMinute.js +1 -1
- package/dist/zoned/get/getZonedMonth.d.ts +1 -1
- package/dist/zoned/get/getZonedMonth.js +1 -1
- package/dist/zoned/get/getZonedNanosecond.d.ts +1 -1
- package/dist/zoned/get/getZonedNanosecond.js +1 -1
- package/dist/zoned/get/getZonedNow.d.ts +4 -4
- package/dist/zoned/get/getZonedNow.js +4 -4
- package/dist/zoned/get/getZonedNowUnit.d.ts +2 -2
- package/dist/zoned/get/getZonedNowUnit.js +1 -1
- package/dist/zoned/get/getZonedSecond.d.ts +1 -1
- package/dist/zoned/get/getZonedSecond.js +1 -1
- package/dist/zoned/get/getZonedToday.d.ts +1 -1
- package/dist/zoned/get/getZonedToday.js +1 -1
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +1 -1
- package/dist/zoned/get/getZonedWeekOfYear.js +1 -1
- package/dist/zoned/get/getZonedYear.d.ts +1 -1
- package/dist/zoned/get/getZonedYear.js +1 -1
- package/dist/zoned/index.d.ts +2 -1
- package/dist/zoned/index.js +3 -2
- package/dist/zoned/interval/intervalAbutsZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalAbutsZoned.js +3 -3
- package/dist/zoned/interval/intervalContainsZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalContainsZoned.js +2 -2
- package/dist/zoned/interval/intervalCountZoned.d.ts +4 -4
- package/dist/zoned/interval/intervalCountZoned.js +5 -5
- package/dist/zoned/interval/intervalDifferenceZoned.js +1 -1
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +2 -2
- package/dist/zoned/interval/intervalEngulfsZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalEngulfsZoned.js +2 -2
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +6 -6
- package/dist/zoned/interval/intervalFromDurationZoned.js +7 -7
- package/dist/zoned/interval/intervalIntersectionZoned.js +1 -1
- package/dist/zoned/interval/intervalLengthZoned.d.ts +5 -5
- package/dist/zoned/interval/intervalLengthZoned.js +5 -5
- package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalOverlappingDaysZoned.js +3 -3
- package/dist/zoned/interval/intervalSplitAtZoned.js +14 -16
- package/dist/zoned/interval/intervalUnionZoned.js +1 -1
- package/dist/zoned/interval/intervalXorAllZoned.js +1 -1
- package/dist/zoned/interval/intervalXorZoned.js +1 -1
- package/dist/zoned/interval/intervalsOverlapZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalsOverlapZoned.js +3 -3
- package/dist/zoned/interval/mergeIntervalsZoned.js +1 -1
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +2 -1
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +3 -2
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +2 -2
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +3 -3
- package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +1 -1
- package/dist/zoned/interval/validate/isValidZonedInterval.js +2 -2
- package/dist/zoned/map/mapZonedDatesInRange.js +1 -1
- package/dist/zoned/map/mapZonedHoursInDay.d.ts +1 -1
- package/dist/zoned/map/mapZonedHoursInDay.js +2 -2
- package/dist/zoned/parse/getZonedOffset.d.ts +1 -1
- package/dist/zoned/parse/getZonedOffset.js +1 -1
- package/dist/zoned/parse/getZonedOffsetAs.d.ts +6 -6
- package/dist/zoned/parse/getZonedOffsetAs.js +3 -3
- package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseRfc3339.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +1 -1
- package/dist/zoned/validate/hasDaylightSaving.d.ts +2 -2
- package/dist/zoned/validate/hasDaylightSaving.js +3 -3
- package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +8 -8
- package/dist/zoned/validate/isValidCalendarZonedDateTime.js +8 -8
- package/dist/zoned/validate/isValidTimeZone.d.ts +1 -1
- package/dist/zoned/validate/isValidTimeZone.js +3 -18
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +7 -7
- package/dist/zoned/validate/isValidZonedDateTime.js +9 -9
- package/dist/zoned/validate/isValidZonedRange.d.ts +1 -1
- package/dist/zoned/validate/isValidZonedRange.js +5 -5
- package/package.json +71 -21
- package/skills/gmt-arithmetic/SKILL.md +18 -59
- package/skills/gmt-basics/SKILL.md +32 -12
- package/skills/gmt-gnss/SKILL.md +92 -0
- package/skills/gmt-integration/SKILL.md +48 -15
- package/skills/gmt-intermodal/SKILL.md +189 -0
- package/skills/gmt-timezone/SKILL.md +34 -257
- package/skills/gmt-transport/SKILL.md +133 -0
- package/skills/gmt-workforce/SKILL.md +84 -0
- package/dist/duty/index.d.ts +0 -3
- package/dist/duty/index.js +0 -4
- /package/dist/{duty → workforce}/calculate/dutyDayFor.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/dutyTotals.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/dutyTotals.js +0 -0
- /package/dist/{duty → workforce}/calculate/dutyViolations.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/dutyViolations.js +0 -0
- /package/dist/{duty → workforce}/calculate/evaluateDutyLog.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/index.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/index.js +0 -0
- /package/dist/{duty → workforce}/calculate/longestRun.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/qualifyingRestPairs.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/qualifyingRests.d.ts +0 -0
- /package/dist/{duty → workforce}/validate/index.d.ts +0 -0
- /package/dist/{duty → workforce}/validate/index.js +0 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
|
+
import { formatUtcOffset, isoStringBody, isWithinIsoDaysRange, TIME_ZONE_ANNOTATION, UTC_OFFSET_WITH_SECONDS, writtenOffset, zonedDateTimeFrom, } from "../../internal/index.js";
|
|
3
|
+
import { classifyWall } from "../../internal/earlierOccurrence.js";
|
|
4
|
+
import { hasInstantShape, hasZonedDateTimeShape, } from "../../internal/isoStringBody.js";
|
|
5
|
+
import { hasSecond60 } from "../../plain/validate/hasSecond60.js";
|
|
6
|
+
import { utcOffset } from "../../regex/index.js";
|
|
7
|
+
/** A leading RFC 9557 time zone annotation: `[zone]` or `[!zone]`, with no `=`. */
|
|
8
|
+
const timeZoneAnnotation = new RegExp(`^${TIME_ZONE_ANNOTATION}`);
|
|
9
|
+
/**
|
|
10
|
+
* Says whether a stored RFC 9557 string with both an offset and a zone still names one
|
|
11
|
+
* instant under this host's time zone rules, and gives every reading when it does not.
|
|
12
|
+
*
|
|
13
|
+
* An offset stored next to a zone is a claim about the zone's rules. When the rules change
|
|
14
|
+
* after the string was written, the offset and the zone can disagree (RFC 9557 §3.4), or the
|
|
15
|
+
* local time can fall into a new gap or overlap. Each of Temporal's `offset` values
|
|
16
|
+
* (`use`, `ignore`, `prefer`, `reject`) is one choice among the readings returned.
|
|
17
|
+
*
|
|
18
|
+
* Resolution: none. No reading is chosen. An ambiguous or nonexistent local time returns both
|
|
19
|
+
* its `earlier` and `later` readings, as `disambiguation` names them, and the instant the
|
|
20
|
+
* stored offset gives.
|
|
21
|
+
*
|
|
22
|
+
* - Five kinds. `valid`: the local time occurs once, at the stored offset. `validInOverlap`: it
|
|
23
|
+
* occurs twice and the stored offset picks `instant`, which is `earlier` or `later`.
|
|
24
|
+
* `offsetMismatch`: it occurs once, but not at the stored offset. `ambiguous`: it occurs
|
|
25
|
+
* twice and the stored offset picks neither. `nonexistent`: it falls in a gap.
|
|
26
|
+
* - Every kind carries `atStoredOffset`, the instant `offset: "use"` gives. It differs from
|
|
27
|
+
* `instant` when an offset written to the minute matches a zone offset with seconds
|
|
28
|
+
* (`Africa/Monrovia`, `-00:45` for `-00:44:30`). An offset written with seconds must match
|
|
29
|
+
* exactly.
|
|
30
|
+
* - Each reading is a `Temporal.Instant#toString` string ending in `Z`, and each offset is
|
|
31
|
+
* `±HH:MM[:SS]`. `storedOffset` keeps the seconds as written, so `-00:45:00` stays
|
|
32
|
+
* `-00:45:00`; `zoneOffset` drops a zero seconds part.
|
|
33
|
+
* - The result depends on the host's tzdb: the same string can be `valid` on one host and
|
|
34
|
+
* `offsetMismatch` on another. On Node, `process.versions.tz` names the release. Browsers
|
|
35
|
+
* expose no equivalent.
|
|
36
|
+
* - `…Z[zone]` is always `valid` (Temporal reads `Z` as exact, RFC 9557 §3.4 Figure 2), even
|
|
37
|
+
* inside an overlap or a gap. `-00:00` is a numeric offset of zero, as Temporal reads it,
|
|
38
|
+
* so it can be an `offsetMismatch`.
|
|
39
|
+
* - Returns null for a string with no offset, no zone annotation, a bracketed offset in place
|
|
40
|
+
* of an IANA zone, an unknown zone, an offset finer than a second, a calendar other than
|
|
41
|
+
* `iso8601`, second 60, basic format, a reading outside the instant range, a local date of
|
|
42
|
+
* `-271821-04-19` (which Temporal's `prefer` and `reject` refuse), or any non-string input.
|
|
43
|
+
*
|
|
44
|
+
* @param value RFC 9557 string with a UTC offset and a bracketed IANA time zone
|
|
45
|
+
* @returns the classification with every reading as a `Z` instant string, or `null` for any
|
|
46
|
+
* other input
|
|
47
|
+
*
|
|
48
|
+
* @example classifyStoredZoned("2016-12-01T09:00:00+02:00[Europe/Istanbul]") // { kind: "offsetMismatch", storedOffset: "+02:00", zoneOffset: "+03:00", atStoredOffset: "2016-12-01T07:00:00Z", atZoneOffset: "2016-12-01T06:00:00Z" }
|
|
49
|
+
* @example classifyStoredZoned("2026-03-29T01:30:00+00:00[Europe/London]") // { kind: "nonexistent", earlier: "2026-03-29T00:30:00Z", later: "2026-03-29T01:30:00Z", atStoredOffset: "2026-03-29T01:30:00Z" }
|
|
50
|
+
* @example classifyStoredZoned("2026-10-25T01:30:00+01:00[Europe/London]") // { kind: "validInOverlap", instant: "2026-10-25T00:30:00Z", earlier: "2026-10-25T00:30:00Z", later: "2026-10-25T01:30:00Z", atStoredOffset: "2026-10-25T00:30:00Z" }
|
|
51
|
+
* @example classifyStoredZoned("2026-03-29T01:30:00[Europe/London]") // null
|
|
52
|
+
*/
|
|
53
|
+
export function classifyStoredZoned(value) {
|
|
54
|
+
if (typeof value !== "string" ||
|
|
55
|
+
hasSecond60(value) ||
|
|
56
|
+
!hasZonedDateTimeShape(value) ||
|
|
57
|
+
!hasInstantShape(value)) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
return classifyShaped(value);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A `Z` string. It is offsetBehaviour exact (Temporal §6.5.2): no candidate is checked, so the
|
|
69
|
+
* exact read is the whole answer. It also keeps `Z` strings at the instant-range edge, where an
|
|
70
|
+
* `ignore` read would resolve the zone's wall clock outside the range.
|
|
71
|
+
*/
|
|
72
|
+
function classifyExact(value) {
|
|
73
|
+
const exact = zonedDateTimeFrom(value);
|
|
74
|
+
// A bracketed offset names no place, and Temporal accepts it; GMT does not.
|
|
75
|
+
if (utcOffset.test(exact.timeZoneId) || exact.calendarId !== "iso8601") {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
const instant = exact.toInstant().toString();
|
|
79
|
+
return { kind: "valid", instant, atStoredOffset: instant };
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The offset as written: `writtenOffset` drops a seconds part of zero, so `-00:45:00` is put back
|
|
83
|
+
* when the body wrote seconds. Without it a caller could not tell `-00:45:00` (which must match
|
|
84
|
+
* the zone exactly) from `-00:45` (which may match `-00:44:30`).
|
|
85
|
+
*/
|
|
86
|
+
function withWrittenSeconds(offset, body) {
|
|
87
|
+
return offset !== null &&
|
|
88
|
+
offset.length === 6 &&
|
|
89
|
+
UTC_OFFSET_WITH_SECONDS.test(body)
|
|
90
|
+
? `${offset}:00`
|
|
91
|
+
: offset;
|
|
92
|
+
}
|
|
93
|
+
/** What the stored offset says, or null when it cannot be trusted. */
|
|
94
|
+
function readStored(value, body) {
|
|
95
|
+
const use = zonedDateTimeFrom(value, { offset: "use" }).toInstant();
|
|
96
|
+
const storedOffset = withWrittenSeconds(writtenOffset(use, body), body);
|
|
97
|
+
const wall = Temporal.PlainDateTime.from(body);
|
|
98
|
+
// Temporal's `prefer` and `reject` refuse a local date outside CheckISODaysRange (§6.5.1
|
|
99
|
+
// step 7), so the stored offset cannot be checked and the string is not a valid stored time.
|
|
100
|
+
// `use` accepts that date. TC39's `ignore` accepts it too, but polyfill 0.5.1 throws there, so
|
|
101
|
+
// the `ignore` read in `classifyShaped` can throw first; `classifyStoredZoned` catches that and
|
|
102
|
+
// returns the same null.
|
|
103
|
+
return storedOffset === null || !isWithinIsoDaysRange(wall)
|
|
104
|
+
? null
|
|
105
|
+
: { use, storedOffset, wall };
|
|
106
|
+
}
|
|
107
|
+
/** The classification of a string that passed the shape gate; throws where Temporal throws. */
|
|
108
|
+
function classifyShaped(value) {
|
|
109
|
+
const body = isoStringBody(value);
|
|
110
|
+
// Only a time zone annotation makes the string zoned (RFC 9557 §4.1).
|
|
111
|
+
if (!timeZoneAnnotation.test(value.slice(body.length))) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
if (body.endsWith("Z") || body.endsWith("z")) {
|
|
115
|
+
return classifyExact(value);
|
|
116
|
+
}
|
|
117
|
+
const zoned = zonedDateTimeFrom(value, { offset: "ignore" });
|
|
118
|
+
// A bracketed offset names no place, and Temporal accepts it; GMT does not.
|
|
119
|
+
if (utcOffset.test(zoned.timeZoneId) || zoned.calendarId !== "iso8601") {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
const stored = readStored(value, body);
|
|
123
|
+
if (stored === null) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const { use, storedOffset, wall } = stored;
|
|
127
|
+
const { kind, earliest, latest } = classifyWall(wall, zoned.timeZoneId);
|
|
128
|
+
const readings = {
|
|
129
|
+
earlier: earliest.toInstant().toString(),
|
|
130
|
+
later: latest.toInstant().toString(),
|
|
131
|
+
atStoredOffset: use.toString(),
|
|
132
|
+
};
|
|
133
|
+
if (kind === "nonexistent") {
|
|
134
|
+
return { kind, ...readings };
|
|
135
|
+
}
|
|
136
|
+
// `reject` is Temporal §6.5.1: the stored offset must match a candidate instant.
|
|
137
|
+
const matched = matchStoredOffset(value);
|
|
138
|
+
if (kind === "ambiguous") {
|
|
139
|
+
return classifyOverlap(matched, readings);
|
|
140
|
+
}
|
|
141
|
+
return classifyUnique(matched, readings, storedOffset, earliest);
|
|
142
|
+
}
|
|
143
|
+
/** A repeated wall clock: valid in the overlap when the stored offset picks one of its readings. */
|
|
144
|
+
function classifyOverlap(matched, readings) {
|
|
145
|
+
return matched === null
|
|
146
|
+
? { kind: "ambiguous", ...readings }
|
|
147
|
+
: { kind: "validInOverlap", instant: matched, ...readings };
|
|
148
|
+
}
|
|
149
|
+
/** A wall clock with one reading: valid when the stored offset matches it, otherwise a mismatch. */
|
|
150
|
+
function classifyUnique(matched, readings, storedOffset, earliest) {
|
|
151
|
+
if (matched !== null) {
|
|
152
|
+
return {
|
|
153
|
+
kind: "valid",
|
|
154
|
+
instant: matched,
|
|
155
|
+
atStoredOffset: readings.atStoredOffset,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
const zoneOffset = formatUtcOffset(BigInt(earliest.offsetNanoseconds));
|
|
159
|
+
return zoneOffset === null
|
|
160
|
+
? null
|
|
161
|
+
: {
|
|
162
|
+
kind: "offsetMismatch",
|
|
163
|
+
storedOffset,
|
|
164
|
+
zoneOffset,
|
|
165
|
+
atStoredOffset: readings.atStoredOffset,
|
|
166
|
+
atZoneOffset: readings.earlier,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/** The instant the stored offset picks under `offset: "reject"`, or null when nothing matches. */
|
|
170
|
+
function matchStoredOffset(value) {
|
|
171
|
+
try {
|
|
172
|
+
return zonedDateTimeFrom(value).toInstant().toString();
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./classifyStoredZoned.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./classifyStoredZoned.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
2
|
import type { DateTimeUnit } from "../../types/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* Compare two zoned ISO datetime strings for equality at a given unit.
|
|
@@ -9,21 +9,19 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
9
9
|
* another, and this function answers per each value's own zone, because a
|
|
10
10
|
* `Temporal.ZonedDateTime` reads its calendar and clock fields in its own
|
|
11
11
|
* time zone.
|
|
12
|
-
* - Comparison: Luxon's `dt.hasSame(other, unit)` also compares the two values'
|
|
13
|
-
* local times.
|
|
14
12
|
* - Each value's start-of-unit is its real local bucket (see `startOfZoned`), so a bucket a
|
|
15
13
|
* zone transition shortened is still its own unit: in `Pacific/Chatham` on its 2024
|
|
16
14
|
* spring-forward, 03:50 and 04:05 are different hours, because the 03:00 hour lasted only
|
|
17
15
|
* from 03:45 to 04:00.
|
|
18
16
|
* - Two values in the same time zone are equal only when their bucket starts are the same
|
|
19
|
-
* instant, as in `areUnixEqualBy`: both passes of
|
|
17
|
+
* instant, as in `areUnixEqualBy`: both passes of London's repeated 01:00 on its 2024
|
|
20
18
|
* fall-back read the same wall clock but are different hours. Values in different zones are
|
|
21
19
|
* compared by their buckets' local labels, since their instants never line up.
|
|
22
20
|
* - `"month"` requires the same month AND year, matching `areDateTimesEqualBy`.
|
|
23
21
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
24
22
|
* - Returns false for an unsupported unit or invalid input.
|
|
25
23
|
*
|
|
26
|
-
*
|
|
24
|
+
* Migrating from date-fns:
|
|
27
25
|
* - `isSameDay(a, b)` → `areZonedEqualBy(a, b, "day")`
|
|
28
26
|
* - `isSameMonth(a, b)` → `areZonedEqualBy(a, b, "month")`
|
|
29
27
|
* - `isSameYear(a, b)` → `areZonedEqualBy(a, b, "year")`
|
|
@@ -34,11 +32,11 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
34
32
|
* @param optionsArg optional setting for the week's first day
|
|
35
33
|
* @returns true if both values share the same local start-of-unit boundary, false on an unsupported unit or invalid input
|
|
36
34
|
*
|
|
37
|
-
* @example areZonedEqualBy("2024-03-15T10:00:00
|
|
38
|
-
* @example areZonedEqualBy("2024-03-15T10:00:00
|
|
39
|
-
* @example areZonedEqualBy("2024-03-15T23:30:00-
|
|
40
|
-
* @example areZonedEqualBy("2024-
|
|
41
|
-
* @example areZonedEqualBy("invalid", "2024-03-15T10:00:00
|
|
35
|
+
* @example areZonedEqualBy("2024-03-15T10:00:00+09:00[Asia/Tokyo]", "2024-03-15T20:00:00+01:00[Europe/Berlin]", "day") // true (both are local March 15 in their own zone)
|
|
36
|
+
* @example areZonedEqualBy("2024-03-15T10:00:00+09:00[Asia/Tokyo]", "2024-03-15T20:00:00+01:00[Europe/Berlin]", "days") // true (plural unit)
|
|
37
|
+
* @example areZonedEqualBy("2024-03-15T23:30:00-03:00[America/Sao_Paulo]", "2024-03-16T02:30:00+00:00[UTC]", "day") // false (same instant, different local calendar day per zone)
|
|
38
|
+
* @example areZonedEqualBy("2024-10-27T01:30:00+01:00[Europe/London]", "2024-10-27T01:30:00+00:00[Europe/London]", "hour") // false (both read 01:30, but they sit in the two different real 01:00 hours)
|
|
39
|
+
* @example areZonedEqualBy("invalid", "2024-03-15T10:00:00+02:00[Africa/Johannesburg]", "day") // false
|
|
42
40
|
*/
|
|
43
41
|
export declare function areZonedEqualBy(value1: string, value2: string, unit: Temporal.SmallestUnit<DateTimeUnit>, optionsArg?: {
|
|
44
42
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
2
|
import { isValidDateTimeUnit } from "../../plain/validate/index.js";
|
|
3
3
|
import { startOfZoned } from "../calculate/startOfZoned.js";
|
|
4
4
|
import { isValidZonedDateTime } from "../validate/index.js";
|
|
@@ -15,21 +15,19 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
15
15
|
* another, and this function answers per each value's own zone, because a
|
|
16
16
|
* `Temporal.ZonedDateTime` reads its calendar and clock fields in its own
|
|
17
17
|
* time zone.
|
|
18
|
-
* - Comparison: Luxon's `dt.hasSame(other, unit)` also compares the two values'
|
|
19
|
-
* local times.
|
|
20
18
|
* - Each value's start-of-unit is its real local bucket (see `startOfZoned`), so a bucket a
|
|
21
19
|
* zone transition shortened is still its own unit: in `Pacific/Chatham` on its 2024
|
|
22
20
|
* spring-forward, 03:50 and 04:05 are different hours, because the 03:00 hour lasted only
|
|
23
21
|
* from 03:45 to 04:00.
|
|
24
22
|
* - Two values in the same time zone are equal only when their bucket starts are the same
|
|
25
|
-
* instant, as in `areUnixEqualBy`: both passes of
|
|
23
|
+
* instant, as in `areUnixEqualBy`: both passes of London's repeated 01:00 on its 2024
|
|
26
24
|
* fall-back read the same wall clock but are different hours. Values in different zones are
|
|
27
25
|
* compared by their buckets' local labels, since their instants never line up.
|
|
28
26
|
* - `"month"` requires the same month AND year, matching `areDateTimesEqualBy`.
|
|
29
27
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
30
28
|
* - Returns false for an unsupported unit or invalid input.
|
|
31
29
|
*
|
|
32
|
-
*
|
|
30
|
+
* Migrating from date-fns:
|
|
33
31
|
* - `isSameDay(a, b)` → `areZonedEqualBy(a, b, "day")`
|
|
34
32
|
* - `isSameMonth(a, b)` → `areZonedEqualBy(a, b, "month")`
|
|
35
33
|
* - `isSameYear(a, b)` → `areZonedEqualBy(a, b, "year")`
|
|
@@ -40,11 +38,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
40
38
|
* @param optionsArg optional setting for the week's first day
|
|
41
39
|
* @returns true if both values share the same local start-of-unit boundary, false on an unsupported unit or invalid input
|
|
42
40
|
*
|
|
43
|
-
* @example areZonedEqualBy("2024-03-15T10:00:00
|
|
44
|
-
* @example areZonedEqualBy("2024-03-15T10:00:00
|
|
45
|
-
* @example areZonedEqualBy("2024-03-15T23:30:00-
|
|
46
|
-
* @example areZonedEqualBy("2024-
|
|
47
|
-
* @example areZonedEqualBy("invalid", "2024-03-15T10:00:00
|
|
41
|
+
* @example areZonedEqualBy("2024-03-15T10:00:00+09:00[Asia/Tokyo]", "2024-03-15T20:00:00+01:00[Europe/Berlin]", "day") // true (both are local March 15 in their own zone)
|
|
42
|
+
* @example areZonedEqualBy("2024-03-15T10:00:00+09:00[Asia/Tokyo]", "2024-03-15T20:00:00+01:00[Europe/Berlin]", "days") // true (plural unit)
|
|
43
|
+
* @example areZonedEqualBy("2024-03-15T23:30:00-03:00[America/Sao_Paulo]", "2024-03-16T02:30:00+00:00[UTC]", "day") // false (same instant, different local calendar day per zone)
|
|
44
|
+
* @example areZonedEqualBy("2024-10-27T01:30:00+01:00[Europe/London]", "2024-10-27T01:30:00+00:00[Europe/London]", "hour") // false (both read 01:30, but they sit in the two different real 01:00 hours)
|
|
45
|
+
* @example areZonedEqualBy("invalid", "2024-03-15T10:00:00+02:00[Africa/Johannesburg]", "day") // false
|
|
48
46
|
*/
|
|
49
47
|
export function areZonedEqualBy(value1, value2, unit, optionsArg) {
|
|
50
48
|
try {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* @param value2 second zoned datetime string
|
|
10
10
|
* @returns `true` if `value1` is before `value2`, otherwise `false`
|
|
11
11
|
*
|
|
12
|
-
* @example isBeforeZoned("2024-03-17T14:30:45
|
|
13
|
-
* @example isBeforeZoned("invalid", "2024-03-17T14:30:45
|
|
12
|
+
* @example isBeforeZoned("2024-03-17T14:30:45+02:00[Africa/Johannesburg]", "2024-03-17T15:30:45+02:00[Africa/Johannesburg]") // true
|
|
13
|
+
* @example isBeforeZoned("invalid", "2024-03-17T14:30:45+02:00[Africa/Johannesburg]") // false
|
|
14
14
|
*/
|
|
15
15
|
export declare function isBeforeZoned(value1: string, value2: string): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
2
|
import { isValidZonedDateTime } from "../validate/index.js";
|
|
3
3
|
import { zonedDateTimeFrom } from "../../internal/index.js";
|
|
4
4
|
/**
|
|
@@ -12,8 +12,8 @@ import { zonedDateTimeFrom } from "../../internal/index.js";
|
|
|
12
12
|
* @param value2 second zoned datetime string
|
|
13
13
|
* @returns `true` if `value1` is before `value2`, otherwise `false`
|
|
14
14
|
*
|
|
15
|
-
* @example isBeforeZoned("2024-03-17T14:30:45
|
|
16
|
-
* @example isBeforeZoned("invalid", "2024-03-17T14:30:45
|
|
15
|
+
* @example isBeforeZoned("2024-03-17T14:30:45+02:00[Africa/Johannesburg]", "2024-03-17T15:30:45+02:00[Africa/Johannesburg]") // true
|
|
16
|
+
* @example isBeforeZoned("invalid", "2024-03-17T14:30:45+02:00[Africa/Johannesburg]") // false
|
|
17
17
|
*/
|
|
18
18
|
export function isBeforeZoned(value1, value2) {
|
|
19
19
|
if (!isValidZonedDateTime(value1) || !isValidZonedDateTime(value2)) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- cross-family Temporal type clone, by design (rule 5)
|
|
2
|
-
import { Temporal } from "
|
|
2
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
3
3
|
import { isValidZonedDateTime } from "../validate/index.js";
|
|
4
4
|
import { zonedDateTimeFrom } from "../../internal/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
* @param value zoned ISO 8601 datetime string
|
|
38
38
|
* @returns true if the instant is in daylight saving time, false otherwise or on invalid input
|
|
39
39
|
*
|
|
40
|
-
* @example isInDaylightSaving("2024-07-15T12:00:00
|
|
41
|
-
* @example isInDaylightSaving("2024-01-15T12:00:00
|
|
40
|
+
* @example isInDaylightSaving("2024-07-15T12:00:00+01:00[Europe/London]") // true
|
|
41
|
+
* @example isInDaylightSaving("2024-01-15T12:00:00+00:00[Europe/London]") // false
|
|
42
42
|
* @example isInDaylightSaving("2024-01-15T12:00:00+11:00[Australia/Sydney]") // true (southern-hemisphere summer)
|
|
43
43
|
* @example isInDaylightSaving("2024-07-15T12:00:00+09:00[Asia/Tokyo]") // false (Asia/Tokyo has no DST)
|
|
44
44
|
* @example isInDaylightSaving("2015-07-01T12:00:00+03:00[Europe/Istanbul]") // true (undone 2015-11-08)
|
|
@@ -39,8 +39,8 @@ import { isInDaylightTime, zonedDateTimeFrom } from "../../internal/index.js";
|
|
|
39
39
|
* @param value zoned ISO 8601 datetime string
|
|
40
40
|
* @returns true if the instant is in daylight saving time, false otherwise or on invalid input
|
|
41
41
|
*
|
|
42
|
-
* @example isInDaylightSaving("2024-07-15T12:00:00
|
|
43
|
-
* @example isInDaylightSaving("2024-01-15T12:00:00
|
|
42
|
+
* @example isInDaylightSaving("2024-07-15T12:00:00+01:00[Europe/London]") // true
|
|
43
|
+
* @example isInDaylightSaving("2024-01-15T12:00:00+00:00[Europe/London]") // false
|
|
44
44
|
* @example isInDaylightSaving("2024-01-15T12:00:00+11:00[Australia/Sydney]") // true (southern-hemisphere summer)
|
|
45
45
|
* @example isInDaylightSaving("2024-07-15T12:00:00+09:00[Asia/Tokyo]") // false (Asia/Tokyo has no DST)
|
|
46
46
|
* @example isInDaylightSaving("2015-07-01T12:00:00+03:00[Europe/Istanbul]") // true (undone 2015-11-08)
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Return true when `value` falls on a Monday–Friday
|
|
2
|
+
* Return true when `value` falls on a Monday–Friday business day in the given timezone.
|
|
3
3
|
*
|
|
4
|
-
* - Uses
|
|
5
|
-
*
|
|
4
|
+
* - Uses a fixed Monday–Friday business week (ISO weekday numbers 1 … 5), matching
|
|
5
|
+
* `addZonedBusinessDays`/`subtractZonedBusinessDays`. Saturday–Sunday is CLDR's
|
|
6
|
+
* world-default weekend; ISO 8601 numbers the weekdays but defines no weekend.
|
|
6
7
|
* - Locale-agnostic: no `Intl.Locale` lookup and no holiday calendar.
|
|
7
8
|
* - Returns false if `value` is invalid.
|
|
8
9
|
*
|
|
@@ -17,9 +18,9 @@
|
|
|
17
18
|
* @param value ISO 8601 zoned datetime string
|
|
18
19
|
* @returns true if `value` is a Monday–Friday business day, false on invalid input
|
|
19
20
|
*
|
|
20
|
-
* @example isZonedBusinessDay("2024-02-05T10:00:00
|
|
21
|
-
* @example isZonedBusinessDay("2024-02-10T10:00:00
|
|
22
|
-
* @example isZonedBusinessDay("2024-02-04T10:00:00
|
|
21
|
+
* @example isZonedBusinessDay("2024-02-05T10:00:00+05:30[Asia/Kolkata]") // true (Monday)
|
|
22
|
+
* @example isZonedBusinessDay("2024-02-10T10:00:00+05:30[Asia/Kolkata]") // false (Saturday)
|
|
23
|
+
* @example isZonedBusinessDay("2024-02-04T10:00:00+05:30[Asia/Kolkata]") // false (Sunday)
|
|
23
24
|
* @example isZonedBusinessDay("invalid") // false
|
|
24
25
|
*/
|
|
25
26
|
export declare function isZonedBusinessDay(value: string): boolean;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { isValidZonedDateTime } from "../validate/index.js";
|
|
2
2
|
import { zonedDateTimeFrom } from "../../internal/index.js";
|
|
3
3
|
/**
|
|
4
|
-
* Return true when `value` falls on a Monday–Friday
|
|
4
|
+
* Return true when `value` falls on a Monday–Friday business day in the given timezone.
|
|
5
5
|
*
|
|
6
|
-
* - Uses
|
|
7
|
-
*
|
|
6
|
+
* - Uses a fixed Monday–Friday business week (ISO weekday numbers 1 … 5), matching
|
|
7
|
+
* `addZonedBusinessDays`/`subtractZonedBusinessDays`. Saturday–Sunday is CLDR's
|
|
8
|
+
* world-default weekend; ISO 8601 numbers the weekdays but defines no weekend.
|
|
8
9
|
* - Locale-agnostic: no `Intl.Locale` lookup and no holiday calendar.
|
|
9
10
|
* - Returns false if `value` is invalid.
|
|
10
11
|
*
|
|
@@ -19,9 +20,9 @@ import { zonedDateTimeFrom } from "../../internal/index.js";
|
|
|
19
20
|
* @param value ISO 8601 zoned datetime string
|
|
20
21
|
* @returns true if `value` is a Monday–Friday business day, false on invalid input
|
|
21
22
|
*
|
|
22
|
-
* @example isZonedBusinessDay("2024-02-05T10:00:00
|
|
23
|
-
* @example isZonedBusinessDay("2024-02-10T10:00:00
|
|
24
|
-
* @example isZonedBusinessDay("2024-02-04T10:00:00
|
|
23
|
+
* @example isZonedBusinessDay("2024-02-05T10:00:00+05:30[Asia/Kolkata]") // true (Monday)
|
|
24
|
+
* @example isZonedBusinessDay("2024-02-10T10:00:00+05:30[Asia/Kolkata]") // false (Saturday)
|
|
25
|
+
* @example isZonedBusinessDay("2024-02-04T10:00:00+05:30[Asia/Kolkata]") // false (Sunday)
|
|
25
26
|
* @example isZonedBusinessDay("invalid") // false
|
|
26
27
|
*/
|
|
27
28
|
export function isZonedBusinessDay(value) {
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
* @param offsetDays integer number of days from today in `value`'s own timeZone
|
|
18
18
|
* @returns true if `value`'s local day is exactly `offsetDays` days from today in its own timeZone, false on invalid input
|
|
19
19
|
*
|
|
20
|
-
* @example isZonedRelativeDay("2024-03-15T10:00:00
|
|
21
|
-
* @example isZonedRelativeDay("2024-03-14T10:00:00
|
|
20
|
+
* @example isZonedRelativeDay("2024-03-15T10:00:00+09:00[Asia/Tokyo]", 0) // true, if today is 2024-03-15 in Asia/Tokyo
|
|
21
|
+
* @example isZonedRelativeDay("2024-03-14T10:00:00+09:00[Asia/Tokyo]", -1) // true, if today is 2024-03-15 in Asia/Tokyo
|
|
22
22
|
* @example isZonedRelativeDay("2024-03-15T10:00:00+13:00[Pacific/Apia]", 0) // true, when the same instant is "yesterday" in Pacific/Niue
|
|
23
23
|
* @example isZonedRelativeDay("invalid", 0) // false
|
|
24
24
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
2
|
import { isValidZonedDateTime } from "../validate/index.js";
|
|
3
3
|
import { zonedDateTimeFrom } from "../../internal/index.js";
|
|
4
4
|
/**
|
|
@@ -20,8 +20,8 @@ import { zonedDateTimeFrom } from "../../internal/index.js";
|
|
|
20
20
|
* @param offsetDays integer number of days from today in `value`'s own timeZone
|
|
21
21
|
* @returns true if `value`'s local day is exactly `offsetDays` days from today in its own timeZone, false on invalid input
|
|
22
22
|
*
|
|
23
|
-
* @example isZonedRelativeDay("2024-03-15T10:00:00
|
|
24
|
-
* @example isZonedRelativeDay("2024-03-14T10:00:00
|
|
23
|
+
* @example isZonedRelativeDay("2024-03-15T10:00:00+09:00[Asia/Tokyo]", 0) // true, if today is 2024-03-15 in Asia/Tokyo
|
|
24
|
+
* @example isZonedRelativeDay("2024-03-14T10:00:00+09:00[Asia/Tokyo]", -1) // true, if today is 2024-03-15 in Asia/Tokyo
|
|
25
25
|
* @example isZonedRelativeDay("2024-03-15T10:00:00+13:00[Pacific/Apia]", 0) // true, when the same instant is "yesterday" in Pacific/Niue
|
|
26
26
|
* @example isZonedRelativeDay("invalid", 0) // false
|
|
27
27
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
2
|
/**
|
|
3
3
|
* Return true when `value`'s local calendar day falls in the same `unit` as
|
|
4
4
|
* today, both resolved in `value`'s own IANA timeZone.
|
|
@@ -22,15 +22,15 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
22
22
|
*
|
|
23
23
|
* @param value ISO ZonedDateTime string
|
|
24
24
|
* @param unit date unit to compare by ("year" | "month" | "week" | "day", or its plural)
|
|
25
|
-
* @param locale optional BCP 47 locale tag or preference list — sets the "week" start (e.g. "
|
|
25
|
+
* @param locale optional BCP 47 locale tag or preference list — sets the "week" start (e.g. "pt-BR", ["fr-FR", "en-US"])
|
|
26
26
|
* @returns true if `value`'s local day falls in the same `unit` as today in its own timeZone, false on an unsupported unit or invalid input
|
|
27
27
|
*
|
|
28
|
-
* @example isZonedThisUnit("2024-03-15T10:00:00
|
|
28
|
+
* @example isZonedThisUnit("2024-03-15T10:00:00+11:00[Australia/Sydney]", "month") // true, if today is any day in March 2024 in Australia/Sydney
|
|
29
29
|
* @example isZonedThisUnit("2024-02-26T10:00:00+01:00[Europe/Paris]", "week", "fr-FR") // true, if today is 2024-03-01 in Europe/Paris (same fr-FR Monday-start week)
|
|
30
|
-
* @example isZonedThisUnit("2024-03-15T10:00:00-
|
|
30
|
+
* @example isZonedThisUnit("2024-03-15T10:00:00-03:00[America/Sao_Paulo]", "hour" as never) // false (unsupported unit)
|
|
31
31
|
* @example isZonedThisUnit("invalid", "month") // false
|
|
32
|
-
* @example isZonedThisUnit("2024-03-15T10:00:00-
|
|
33
|
-
* @example isZonedThisUnit("2024-03-15T10:00:00-
|
|
34
|
-
* @example isZonedThisUnit("2024-03-15T10:00:00
|
|
32
|
+
* @example isZonedThisUnit("2024-03-15T10:00:00-03:00[America/Sao_Paulo]", "week", "not-a-locale-!!") // false (invalid locale)
|
|
33
|
+
* @example isZonedThisUnit("2024-03-15T10:00:00-03:00[America/Sao_Paulo]", "day", "not-a-locale-!!") // false (invalid locale, for every unit)
|
|
34
|
+
* @example isZonedThisUnit("2024-03-15T10:00:00+11:00[Australia/Sydney]", "months") // true, if today is any day in March 2024 in Australia/Sydney
|
|
35
35
|
*/
|
|
36
36
|
export declare function isZonedThisUnit(value: string, unit: Temporal.SmallestUnit<Temporal.DateUnit>, locale?: string | string[]): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
2
|
import { getLocaleStartOfWeek } from "../../plain/calculate/getLocaleStartOfWeek.js";
|
|
3
3
|
import { areDatesEqualBy } from "../../plain/compare/areDatesEqualBy.js";
|
|
4
4
|
import { isValidDateUnit } from "../../plain/validate/index.js";
|
|
@@ -29,16 +29,16 @@ import { resolveLocale } from "../../internal/resolveLocale.js";
|
|
|
29
29
|
*
|
|
30
30
|
* @param value ISO ZonedDateTime string
|
|
31
31
|
* @param unit date unit to compare by ("year" | "month" | "week" | "day", or its plural)
|
|
32
|
-
* @param locale optional BCP 47 locale tag or preference list — sets the "week" start (e.g. "
|
|
32
|
+
* @param locale optional BCP 47 locale tag or preference list — sets the "week" start (e.g. "pt-BR", ["fr-FR", "en-US"])
|
|
33
33
|
* @returns true if `value`'s local day falls in the same `unit` as today in its own timeZone, false on an unsupported unit or invalid input
|
|
34
34
|
*
|
|
35
|
-
* @example isZonedThisUnit("2024-03-15T10:00:00
|
|
35
|
+
* @example isZonedThisUnit("2024-03-15T10:00:00+11:00[Australia/Sydney]", "month") // true, if today is any day in March 2024 in Australia/Sydney
|
|
36
36
|
* @example isZonedThisUnit("2024-02-26T10:00:00+01:00[Europe/Paris]", "week", "fr-FR") // true, if today is 2024-03-01 in Europe/Paris (same fr-FR Monday-start week)
|
|
37
|
-
* @example isZonedThisUnit("2024-03-15T10:00:00-
|
|
37
|
+
* @example isZonedThisUnit("2024-03-15T10:00:00-03:00[America/Sao_Paulo]", "hour" as never) // false (unsupported unit)
|
|
38
38
|
* @example isZonedThisUnit("invalid", "month") // false
|
|
39
|
-
* @example isZonedThisUnit("2024-03-15T10:00:00-
|
|
40
|
-
* @example isZonedThisUnit("2024-03-15T10:00:00-
|
|
41
|
-
* @example isZonedThisUnit("2024-03-15T10:00:00
|
|
39
|
+
* @example isZonedThisUnit("2024-03-15T10:00:00-03:00[America/Sao_Paulo]", "week", "not-a-locale-!!") // false (invalid locale)
|
|
40
|
+
* @example isZonedThisUnit("2024-03-15T10:00:00-03:00[America/Sao_Paulo]", "day", "not-a-locale-!!") // false (invalid locale, for every unit)
|
|
41
|
+
* @example isZonedThisUnit("2024-03-15T10:00:00+11:00[Australia/Sydney]", "months") // true, if today is any day in March 2024 in Australia/Sydney
|
|
42
42
|
*/
|
|
43
43
|
export function isZonedThisUnit(value, unit, locale) {
|
|
44
44
|
try {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Return true when `value`'s local calendar day falls on a weekend for `locale`.
|
|
3
3
|
*
|
|
4
4
|
* - Uses `Intl.Locale.prototype.weekInfo` to resolve which ISO weekday
|
|
5
|
-
* numbers count as "weekend" for the locale (e.g. en-
|
|
5
|
+
* numbers count as "weekend" for the locale (e.g. en-GB: Sat/Sun,
|
|
6
6
|
* he-IL/ar-SA: Fri/Sat).
|
|
7
7
|
* - Checks the ZonedDateTime's own local day of week — no separate timezone
|
|
8
8
|
* conversion needed, since `value` already carries its IANA timezone.
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
* default locale, as ECMA-402 `ResolveLocale` requires.
|
|
15
15
|
*
|
|
16
16
|
* @param value ISO ZonedDateTime string
|
|
17
|
-
* @param locale BCP 47 locale tag (e.g. "en-
|
|
17
|
+
* @param locale BCP 47 locale tag (e.g. "en-GB", "he-IL"), or a preference list of tags (ECMA-402; the first with locale data is read). Required: omitted, or an empty list (which ECMA-402 would resolve to the host default), returns false
|
|
18
18
|
* @returns true if `value`'s local day is a weekend day in `locale`, false on invalid input
|
|
19
19
|
*
|
|
20
|
-
* @example isZonedWeekend("2024-02-03T10:00:00
|
|
20
|
+
* @example isZonedWeekend("2024-02-03T10:00:00+00:00[Europe/London]", "en-GB") // true (Saturday)
|
|
21
21
|
* @example isZonedWeekend("2024-02-02T10:00:00+02:00[Asia/Jerusalem]", "he-IL") // true (Friday, he-IL weekend is Fri/Sat)
|
|
22
22
|
* @example isZonedWeekend("2024-02-04T10:00:00+02:00[Asia/Jerusalem]", "he-IL") // false (Sunday)
|
|
23
|
-
* @example isZonedWeekend("invalid", "
|
|
24
|
-
* @example isZonedWeekend("2024-02-03T10:00:00
|
|
23
|
+
* @example isZonedWeekend("invalid", "ja-JP") // false
|
|
24
|
+
* @example isZonedWeekend("2024-02-03T10:00:00+09:00[Asia/Tokyo]", "not-a-locale-!!") // false
|
|
25
25
|
* @example isZonedWeekend("2024-05-17T12:00:00+02:00[Europe/Berlin]", ["ar-EG", "fr-FR"]) // true
|
|
26
26
|
*/
|
|
27
27
|
export declare function isZonedWeekend(value: string, locale: string | string[]): boolean;
|
|
@@ -4,7 +4,7 @@ import { isValidZonedDateTime } from "../validate/index.js";
|
|
|
4
4
|
* Return true when `value`'s local calendar day falls on a weekend for `locale`.
|
|
5
5
|
*
|
|
6
6
|
* - Uses `Intl.Locale.prototype.weekInfo` to resolve which ISO weekday
|
|
7
|
-
* numbers count as "weekend" for the locale (e.g. en-
|
|
7
|
+
* numbers count as "weekend" for the locale (e.g. en-GB: Sat/Sun,
|
|
8
8
|
* he-IL/ar-SA: Fri/Sat).
|
|
9
9
|
* - Checks the ZonedDateTime's own local day of week — no separate timezone
|
|
10
10
|
* conversion needed, since `value` already carries its IANA timezone.
|
|
@@ -16,14 +16,14 @@ import { isValidZonedDateTime } from "../validate/index.js";
|
|
|
16
16
|
* default locale, as ECMA-402 `ResolveLocale` requires.
|
|
17
17
|
*
|
|
18
18
|
* @param value ISO ZonedDateTime string
|
|
19
|
-
* @param locale BCP 47 locale tag (e.g. "en-
|
|
19
|
+
* @param locale BCP 47 locale tag (e.g. "en-GB", "he-IL"), or a preference list of tags (ECMA-402; the first with locale data is read). Required: omitted, or an empty list (which ECMA-402 would resolve to the host default), returns false
|
|
20
20
|
* @returns true if `value`'s local day is a weekend day in `locale`, false on invalid input
|
|
21
21
|
*
|
|
22
|
-
* @example isZonedWeekend("2024-02-03T10:00:00
|
|
22
|
+
* @example isZonedWeekend("2024-02-03T10:00:00+00:00[Europe/London]", "en-GB") // true (Saturday)
|
|
23
23
|
* @example isZonedWeekend("2024-02-02T10:00:00+02:00[Asia/Jerusalem]", "he-IL") // true (Friday, he-IL weekend is Fri/Sat)
|
|
24
24
|
* @example isZonedWeekend("2024-02-04T10:00:00+02:00[Asia/Jerusalem]", "he-IL") // false (Sunday)
|
|
25
|
-
* @example isZonedWeekend("invalid", "
|
|
26
|
-
* @example isZonedWeekend("2024-02-03T10:00:00
|
|
25
|
+
* @example isZonedWeekend("invalid", "ja-JP") // false
|
|
26
|
+
* @example isZonedWeekend("2024-02-03T10:00:00+09:00[Asia/Tokyo]", "not-a-locale-!!") // false
|
|
27
27
|
* @example isZonedWeekend("2024-05-17T12:00:00+02:00[Europe/Berlin]", ["ar-EG", "fr-FR"]) // true
|
|
28
28
|
*/
|
|
29
29
|
export function isZonedWeekend(value, locale) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
2
|
import type { Disambiguation } from "../../types/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* Attach the specified `timeZone` to a plain datetime string and return a zoned ISO 8601 datetime string.
|
|
@@ -18,13 +18,13 @@ import type { Disambiguation } from "../../types/index.js";
|
|
|
18
18
|
* @param optionsArg optional settings for the precision of the output string and for resolving a DST gap or overlap
|
|
19
19
|
* @returns zoned ISO 8601 datetime string or "" when invalid
|
|
20
20
|
*
|
|
21
|
-
* @example convertPlainDateTimeToZoned("2024-02-29T14:30:45", "
|
|
21
|
+
* @example convertPlainDateTimeToZoned("2024-02-29T14:30:45", "Asia/Tokyo") // "2024-02-29T14:30:45.000+09:00[Asia/Tokyo]"
|
|
22
22
|
* @example convertPlainDateTimeToZoned("2024-02-29T14:30:45.123456789", "UTC") // "2024-02-29T14:30:45.123+00:00[UTC]"
|
|
23
23
|
* @example convertPlainDateTimeToZoned("2024-02-29T14:30:45.123456789", "UTC", { smallestUnit: "nanoseconds" }) // "2024-02-29T14:30:45.123456789+00:00[UTC]"
|
|
24
|
-
* @example convertPlainDateTimeToZoned("invalid", "
|
|
25
|
-
* @example convertPlainDateTimeToZoned("2024-
|
|
26
|
-
* @example convertPlainDateTimeToZoned("2024-
|
|
27
|
-
* @example convertPlainDateTimeToZoned("2024-
|
|
24
|
+
* @example convertPlainDateTimeToZoned("invalid", "Asia/Kolkata") // ""
|
|
25
|
+
* @example convertPlainDateTimeToZoned("2024-10-06T02:30:00", "Australia/Sydney", { disambiguation: "earlier" }) // "2024-10-06T01:30:00.000+10:00[Australia/Sydney]" (spring-forward gap)
|
|
26
|
+
* @example convertPlainDateTimeToZoned("2024-10-27T01:30:00", "Europe/London", { disambiguation: "later" }) // "2024-10-27T01:30:00.000+00:00[Europe/London]" (fall-back overlap)
|
|
27
|
+
* @example convertPlainDateTimeToZoned("2024-10-06T02:30:00", "Australia/Sydney", { disambiguation: "reject" }) // ""
|
|
28
28
|
*/
|
|
29
29
|
export declare function convertPlainDateTimeToZoned(value: string, timeZone: string, optionsArg?: {
|
|
30
30
|
/**
|