@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
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isoStringBody } from "../../internal/isoStringBody.js";
|
|
3
|
-
import { plainDate } from "../../regex/index.js";
|
|
4
|
-
import { isLeapSecond } from "./isLeapSecond.js";
|
|
1
|
+
import { isDateString } from "../../internal/inputChecks.js";
|
|
5
2
|
/**
|
|
6
3
|
* Return true if `value` is a valid ISO PlainDate string.
|
|
7
4
|
*
|
|
@@ -26,17 +23,5 @@ import { isLeapSecond } from "./isLeapSecond.js";
|
|
|
26
23
|
* @example isValidDate("2024-12-31T23:59:60") // false (leap second - not a valid date)
|
|
27
24
|
*/
|
|
28
25
|
export function isValidDate(value) {
|
|
29
|
-
|
|
30
|
-
if (isLeapSecond(body)) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
if (!plainDate.test(body)) {
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
try {
|
|
37
|
-
return Temporal.PlainDate.from(value).calendarId === "iso8601";
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
26
|
+
return isDateString(value);
|
|
42
27
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* @example isValidDateTime("2024-02-29T12:34:56") // true
|
|
15
15
|
* @example isValidDateTime("2024-02-30T12:34:56") // false (invalid date)
|
|
16
|
-
* @example isValidDateTime("2024-02-29T12:34:56[
|
|
16
|
+
* @example isValidDateTime("2024-02-29T12:34:56[Asia/Kolkata]") // true (time zone annotation ignored)
|
|
17
17
|
* @example isValidDateTime("2024-02-29T12:34:56[!foo=bar]") // false (unknown critical annotation)
|
|
18
18
|
* @example isValidDateTime("2024-02-29T12:34:56[u-ca=hebrew]") // false (non-ISO calendar)
|
|
19
19
|
* @example isValidDateTime("2024-02-29T24:00:00") // false (invalid time)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
2
|
import { isoStringBody } from "../../internal/isoStringBody.js";
|
|
3
3
|
import { plainDateTime } from "../../regex/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import { hasSecond60 } from "./hasSecond60.js";
|
|
5
5
|
/**
|
|
6
6
|
* Return true when `value` is a valid PlainDateTime string.
|
|
7
7
|
*
|
|
@@ -17,7 +17,7 @@ import { isLeapSecond } from "./isLeapSecond.js";
|
|
|
17
17
|
*
|
|
18
18
|
* @example isValidDateTime("2024-02-29T12:34:56") // true
|
|
19
19
|
* @example isValidDateTime("2024-02-30T12:34:56") // false (invalid date)
|
|
20
|
-
* @example isValidDateTime("2024-02-29T12:34:56[
|
|
20
|
+
* @example isValidDateTime("2024-02-29T12:34:56[Asia/Kolkata]") // true (time zone annotation ignored)
|
|
21
21
|
* @example isValidDateTime("2024-02-29T12:34:56[!foo=bar]") // false (unknown critical annotation)
|
|
22
22
|
* @example isValidDateTime("2024-02-29T12:34:56[u-ca=hebrew]") // false (non-ISO calendar)
|
|
23
23
|
* @example isValidDateTime("2024-02-29T24:00:00") // false (invalid time)
|
|
@@ -25,7 +25,7 @@ import { isLeapSecond } from "./isLeapSecond.js";
|
|
|
25
25
|
*/
|
|
26
26
|
export function isValidDateTime(value) {
|
|
27
27
|
const body = isoStringBody(value);
|
|
28
|
-
if (
|
|
28
|
+
if (hasSecond60(body)) {
|
|
29
29
|
return false;
|
|
30
30
|
}
|
|
31
31
|
if (!plainDateTime.test(body)) {
|
|
@@ -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 { isValidDateTime } from "./isValidDateTime.js";
|
|
4
4
|
import { isObject, isOptionsArgument } from "../../internal/isObject.js";
|
|
5
5
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
2
|
import { isoStringBody } from "../../internal/isoStringBody.js";
|
|
3
3
|
import { plainDate, plainDateTime } from "../../regex/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import { hasSecond60 } from "./hasSecond60.js";
|
|
5
5
|
/**
|
|
6
6
|
* Return true when the input is a valid PlainDate or PlainDateTime ISO string.
|
|
7
7
|
*
|
|
@@ -25,7 +25,7 @@ import { isLeapSecond } from "./isLeapSecond.js";
|
|
|
25
25
|
*/
|
|
26
26
|
export function isValidIsoDateLike(value) {
|
|
27
27
|
const body = isoStringBody(value);
|
|
28
|
-
if (
|
|
28
|
+
if (hasSecond60(body)) {
|
|
29
29
|
return false;
|
|
30
30
|
}
|
|
31
31
|
if (plainDate.test(body)) {
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isoStringBody } from "../../internal/isoStringBody.js";
|
|
3
|
-
import { plainTime } from "../../regex/index.js";
|
|
4
|
-
import { isLeapSecond } from "./isLeapSecond.js";
|
|
1
|
+
import { isTimeString } from "../../internal/inputChecks.js";
|
|
5
2
|
/**
|
|
6
3
|
* Return true when `value` is a valid ISO PlainTime string.
|
|
7
4
|
*
|
|
@@ -23,18 +20,5 @@ import { isLeapSecond } from "./isLeapSecond.js";
|
|
|
23
20
|
* @example isValidTime("23:59:60") // false (leap second)
|
|
24
21
|
*/
|
|
25
22
|
export function isValidTime(value) {
|
|
26
|
-
|
|
27
|
-
if (isLeapSecond(body)) {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
if (!plainTime.test(body)) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
try {
|
|
34
|
-
Temporal.PlainTime.from(value);
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
23
|
+
return isTimeString(value);
|
|
40
24
|
}
|
|
@@ -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 { isValidTime } from "./isValidTime.js";
|
|
4
4
|
import { isObject, isOptionsArgument } from "../../internal/isObject.js";
|
|
5
5
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Convert nanoseconds since the Unix epoch back to an ISO 8601 string.
|
|
3
3
|
*
|
|
4
4
|
* - Returns a UTC instant string when no time zone is given, and a zoned string
|
|
5
|
-
* (`"...[
|
|
5
|
+
* (`"...[Asia/Tokyo]"`) when one is.
|
|
6
6
|
* - No disambiguation policy applies: an instant maps to exactly one wall time in a zone,
|
|
7
7
|
* so DST gaps and overlaps cannot arise on this direction of the conversion.
|
|
8
8
|
* - A time zone, when given, must be a time zone identifier: an IANA name or a UTC offset to the
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
*
|
|
27
27
|
* @example fromNanoseconds(0n) // "1970-01-01T00:00:00Z"
|
|
28
28
|
* @example fromNanoseconds(1710072000123456789n) // "2024-03-10T12:00:00.123456789Z"
|
|
29
|
-
* @example fromNanoseconds(1710072000123456789n, "
|
|
29
|
+
* @example fromNanoseconds(1710072000123456789n, "Asia/Tokyo") // "2024-03-10T21:00:00.123456789+09:00[Asia/Tokyo]"
|
|
30
30
|
* @example fromNanoseconds(-1000000000n) // "1969-12-31T23:59:59Z"
|
|
31
31
|
* @example fromNanoseconds(0n, "Not/AZone") // ""
|
|
32
32
|
* @example fromNanoseconds(0n, undefined) // "1970-01-01T00:00:00Z" — undefined is the same as omitted
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
2
|
import { isValidEpochNanoseconds } from "../../internal/index.js";
|
|
3
3
|
import { isValidTimeZone } from "../../zoned/validate/index.js";
|
|
4
4
|
/**
|
|
5
5
|
* Convert nanoseconds since the Unix epoch back to an ISO 8601 string.
|
|
6
6
|
*
|
|
7
7
|
* - Returns a UTC instant string when no time zone is given, and a zoned string
|
|
8
|
-
* (`"...[
|
|
8
|
+
* (`"...[Asia/Tokyo]"`) when one is.
|
|
9
9
|
* - No disambiguation policy applies: an instant maps to exactly one wall time in a zone,
|
|
10
10
|
* so DST gaps and overlaps cannot arise on this direction of the conversion.
|
|
11
11
|
* - A time zone, when given, must be a time zone identifier: an IANA name or a UTC offset to the
|
|
@@ -29,7 +29,7 @@ import { isValidTimeZone } from "../../zoned/validate/index.js";
|
|
|
29
29
|
*
|
|
30
30
|
* @example fromNanoseconds(0n) // "1970-01-01T00:00:00Z"
|
|
31
31
|
* @example fromNanoseconds(1710072000123456789n) // "2024-03-10T12:00:00.123456789Z"
|
|
32
|
-
* @example fromNanoseconds(1710072000123456789n, "
|
|
32
|
+
* @example fromNanoseconds(1710072000123456789n, "Asia/Tokyo") // "2024-03-10T21:00:00.123456789+09:00[Asia/Tokyo]"
|
|
33
33
|
* @example fromNanoseconds(-1000000000n) // "1969-12-31T23:59:59Z"
|
|
34
34
|
* @example fromNanoseconds(0n, "Not/AZone") // ""
|
|
35
35
|
* @example fromNanoseconds(0n, undefined) // "1970-01-01T00:00:00Z" — undefined is the same as omitted
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
* @example toNanoseconds("1970-01-01T00:00:00Z") // 0n
|
|
33
33
|
* @example toNanoseconds("2024-03-10T12:00:00.123456789Z") // 1710072000123456789n
|
|
34
34
|
* @example toNanoseconds("1969-12-31T23:59:59Z") // -1000000000n
|
|
35
|
-
* @example toNanoseconds("2024-03-10T12:00:00
|
|
36
|
-
* @example toNanoseconds("2024-03-10T12:00:00+05:00[
|
|
35
|
+
* @example toNanoseconds("2024-03-10T12:00:00+05:30[Asia/Kolkata]") // 1710052200000000000n
|
|
36
|
+
* @example toNanoseconds("2024-03-10T12:00:00+05:00[Asia/Kolkata]") // 1710054000000000000n — the offset decides, the zone is not checked
|
|
37
37
|
* @example toNanoseconds("1960-01-01T00:20:00-00:45[Africa/Monrovia]") // -315615330000000000n — the zone's −00:44:30, which `-00:45` rounds
|
|
38
38
|
* @example toNanoseconds("2024-03-10T12:00:00") // 0n — no offset designator
|
|
39
39
|
* @example toNanoseconds("20240310T120000Z") // 0n — basic format
|
|
@@ -33,8 +33,8 @@ import { parseInstantNanoseconds } from "../../internal/index.js";
|
|
|
33
33
|
* @example toNanoseconds("1970-01-01T00:00:00Z") // 0n
|
|
34
34
|
* @example toNanoseconds("2024-03-10T12:00:00.123456789Z") // 1710072000123456789n
|
|
35
35
|
* @example toNanoseconds("1969-12-31T23:59:59Z") // -1000000000n
|
|
36
|
-
* @example toNanoseconds("2024-03-10T12:00:00
|
|
37
|
-
* @example toNanoseconds("2024-03-10T12:00:00+05:00[
|
|
36
|
+
* @example toNanoseconds("2024-03-10T12:00:00+05:30[Asia/Kolkata]") // 1710052200000000000n
|
|
37
|
+
* @example toNanoseconds("2024-03-10T12:00:00+05:00[Asia/Kolkata]") // 1710054000000000000n — the offset decides, the zone is not checked
|
|
38
38
|
* @example toNanoseconds("1960-01-01T00:20:00-00:45[Africa/Monrovia]") // -315615330000000000n — the zone's −00:44:30, which `-00:45` rounds
|
|
39
39
|
* @example toNanoseconds("2024-03-10T12:00:00") // 0n — no offset designator
|
|
40
40
|
* @example toNanoseconds("20240310T120000Z") // 0n — basic format
|
package/dist/precision/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Re-export
|
|
2
|
-
export
|
|
1
|
+
// Re-export `Temporal`, `Intl` and `toTemporalInstant` from the internal seam so every namespace subpath offers them
|
|
2
|
+
export { Intl, Temporal, toTemporalInstant } from "../internal/temporal.js";
|
|
3
3
|
export * from "./calculate/index.js";
|
|
4
4
|
export * from "./convert/index.js";
|
|
5
5
|
export * from "./format/index.js";
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
*
|
|
36
36
|
* @example isValidInstant("2024-03-10T12:00:00Z") // true
|
|
37
37
|
* @example isValidInstant("1970-01-01T00:00:00Z") // true — the epoch, where toNanoseconds returns 0n
|
|
38
|
-
* @example isValidInstant("2024-03-10T12:00:00
|
|
38
|
+
* @example isValidInstant("2024-03-10T12:00:00+05:30[Asia/Kolkata]") // true
|
|
39
39
|
* @example isValidInstant("2024-03-10T12:00:00Z[Not/AZone]") // true — the zone annotation is not checked
|
|
40
40
|
* @example isValidInstant("2024-03-10T12:00:00-05:00") // true — isValidUtc says false
|
|
41
41
|
* @example isValidInstant("2024-03-10 12:00:00Z") // false — space separator (extended format only)
|
|
@@ -36,7 +36,7 @@ import { parseInstantNanoseconds } from "../../internal/index.js";
|
|
|
36
36
|
*
|
|
37
37
|
* @example isValidInstant("2024-03-10T12:00:00Z") // true
|
|
38
38
|
* @example isValidInstant("1970-01-01T00:00:00Z") // true — the epoch, where toNanoseconds returns 0n
|
|
39
|
-
* @example isValidInstant("2024-03-10T12:00:00
|
|
39
|
+
* @example isValidInstant("2024-03-10T12:00:00+05:30[Asia/Kolkata]") // true
|
|
40
40
|
* @example isValidInstant("2024-03-10T12:00:00Z[Not/AZone]") // true — the zone annotation is not checked
|
|
41
41
|
* @example isValidInstant("2024-03-10T12:00:00-05:00") // true — isValidUtc says false
|
|
42
42
|
* @example isValidInstant("2024-03-10 12:00:00Z") // false — space separator (extended format only)
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* and reads — the zoned sibling of `calendarDate` (regex/calendar-date.ts):
|
|
4
4
|
*
|
|
5
5
|
* <date>T<time><offset>[<timeZone>][u-ca=<id>]
|
|
6
|
-
* 2024-02-24T14:30:00
|
|
6
|
+
* 2024-02-24T14:30:00+02:00[Asia/Jerusalem][u-ca=hebrew]
|
|
7
7
|
*
|
|
8
8
|
* This is exactly `Temporal.ZonedDateTime#toString()` for a non-ISO calendar. The digits are ISO
|
|
9
9
|
* and the calendar annotation follows the time zone annotation, in RFC 9557 §4.1 order. The date,
|
|
10
10
|
* time and offset are ISO 8601 extended format with an upper-case `Z`. The date
|
|
11
11
|
* half and the annotation are the same groups as `calendarDate`'s. The offset is optional; the
|
|
12
|
-
* time zone annotation may carry RFC 9557's critical flag (`[!
|
|
12
|
+
* time zone annotation may carry RFC 9557's critical flag (`[!Asia/Jerusalem]`), and so may the
|
|
13
13
|
* calendar annotation.
|
|
14
14
|
*
|
|
15
15
|
* A match proves shape only: `internal/calendarZonedString.ts` hands the string to
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* Capture groups: 1 year, 2 month, 3 day, 4 time, 5 offset (optional), 6 time zone annotation
|
|
24
24
|
* (with its critical flag, if any), 7 calendar critical flag (`"!"` or undefined), 8 calendar id.
|
|
25
25
|
*
|
|
26
|
-
* @example calendarZonedDateTime.test("2024-02-24T14:30:00
|
|
27
|
-
* @example calendarZonedDateTime.test("2024-02-24T14:30:00
|
|
26
|
+
* @example calendarZonedDateTime.test("2024-02-24T14:30:00+02:00[Asia/Jerusalem][u-ca=hebrew]") // true
|
|
27
|
+
* @example calendarZonedDateTime.test("2024-02-24T14:30:00+02:00[u-ca=hebrew][Asia/Jerusalem]") // false (calendar before zone)
|
|
28
28
|
* @example calendarZonedDateTime.test("2024-03-15T14:30:00Z[UTC]") // false (no calendar annotation)
|
|
29
29
|
*/
|
|
30
30
|
export declare const calendarZonedDateTime: RegExp;
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* and reads — the zoned sibling of `calendarDate` (regex/calendar-date.ts):
|
|
4
4
|
*
|
|
5
5
|
* <date>T<time><offset>[<timeZone>][u-ca=<id>]
|
|
6
|
-
* 2024-02-24T14:30:00
|
|
6
|
+
* 2024-02-24T14:30:00+02:00[Asia/Jerusalem][u-ca=hebrew]
|
|
7
7
|
*
|
|
8
8
|
* This is exactly `Temporal.ZonedDateTime#toString()` for a non-ISO calendar. The digits are ISO
|
|
9
9
|
* and the calendar annotation follows the time zone annotation, in RFC 9557 §4.1 order. The date,
|
|
10
10
|
* time and offset are ISO 8601 extended format with an upper-case `Z`. The date
|
|
11
11
|
* half and the annotation are the same groups as `calendarDate`'s. The offset is optional; the
|
|
12
|
-
* time zone annotation may carry RFC 9557's critical flag (`[!
|
|
12
|
+
* time zone annotation may carry RFC 9557's critical flag (`[!Asia/Jerusalem]`), and so may the
|
|
13
13
|
* calendar annotation.
|
|
14
14
|
*
|
|
15
15
|
* A match proves shape only: `internal/calendarZonedString.ts` hands the string to
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* Capture groups: 1 year, 2 month, 3 day, 4 time, 5 offset (optional), 6 time zone annotation
|
|
24
24
|
* (with its critical flag, if any), 7 calendar critical flag (`"!"` or undefined), 8 calendar id.
|
|
25
25
|
*
|
|
26
|
-
* @example calendarZonedDateTime.test("2024-02-24T14:30:00
|
|
27
|
-
* @example calendarZonedDateTime.test("2024-02-24T14:30:00
|
|
26
|
+
* @example calendarZonedDateTime.test("2024-02-24T14:30:00+02:00[Asia/Jerusalem][u-ca=hebrew]") // true
|
|
27
|
+
* @example calendarZonedDateTime.test("2024-02-24T14:30:00+02:00[u-ca=hebrew][Asia/Jerusalem]") // false (calendar before zone)
|
|
28
28
|
* @example calendarZonedDateTime.test("2024-03-15T14:30:00Z[UTC]") // false (no calendar annotation)
|
|
29
29
|
*/
|
|
30
30
|
export const calendarZonedDateTime = /^(\d{4}|\+\d{6}|-(?!0{6})\d{6})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])T(\d{2}:\d{2}(?::\d{2}(?:[.,]\d{1,9})?)?)((?:[+-]\d{2}:\d{2}(?::\d{2}(?:[.,]\d{1,9})?)?)|Z)?\[(!?[^[\]=!]+)\]\[(!)?u-ca=([A-Za-z0-9]+(?:-[A-Za-z0-9]+)*)\]$/;
|
package/dist/regex/index.d.ts
CHANGED
package/dist/regex/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Re-export
|
|
2
|
-
export
|
|
1
|
+
// Re-export `Temporal`, `Intl` and `toTemporalInstant` from the internal seam so every namespace subpath offers them
|
|
2
|
+
export { Intl, Temporal, toTemporalInstant } from "../internal/temporal.js";
|
|
3
3
|
export * from "./calendar-date.js";
|
|
4
4
|
export * from "./calendar-zoned-date-time.js";
|
|
5
5
|
export * from "./date.js";
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* - Rejecting a leap second is GMT's decision, not the grammar's range: Temporal's
|
|
16
16
|
* `TimeSecond` and RFC 3339's `time-second` both admit 60. GMT refuses the value because
|
|
17
17
|
* Temporal cannot represent it and would otherwise read it as `:59`.
|
|
18
|
-
* - Used by `
|
|
18
|
+
* - Used by `hasSecond60`. Validators reject a second of 60 in their own patterns.
|
|
19
19
|
*
|
|
20
20
|
* @example leapSecond.test("2024-12-31T23:59:60Z") // true
|
|
21
21
|
* @example leapSecond.test("2024-12-31T23:59:60.123+00:00") // true
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* - Rejecting a leap second is GMT's decision, not the grammar's range: Temporal's
|
|
16
16
|
* `TimeSecond` and RFC 3339's `time-second` both admit 60. GMT refuses the value because
|
|
17
17
|
* Temporal cannot represent it and would otherwise read it as `:59`.
|
|
18
|
-
* - Used by `
|
|
18
|
+
* - Used by `hasSecond60`. Validators reject a second of 60 in their own patterns.
|
|
19
19
|
*
|
|
20
20
|
* @example leapSecond.test("2024-12-31T23:59:60Z") // true
|
|
21
21
|
* @example leapSecond.test("2024-12-31T23:59:60.123+00:00") // true
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
* `Etc/GMT+5`). Temporal must accept every Zone and Link name in the IANA database, and tzdb's
|
|
15
15
|
* `backward` file has more than forty slash-less ones.
|
|
16
16
|
* - Letter case is not checked: ECMA-402 matches an identifier ASCII-case-insensitively, so `utc`
|
|
17
|
-
* and `
|
|
17
|
+
* and `asia/kolkata` name the same zones as `UTC` and `Asia/Kolkata`.
|
|
18
18
|
* - SHAPE ONLY. Whether the name exists is decided by Temporal: its only consumer,
|
|
19
19
|
* `isValidTimeZone`, also requires `Temporal.ZonedDateTime.from` to accept the zone.
|
|
20
20
|
*
|
|
21
21
|
* @example timeZoneLike.test("UTC") // true
|
|
22
|
-
* @example timeZoneLike.test("
|
|
22
|
+
* @example timeZoneLike.test("Asia/Kolkata") // true
|
|
23
23
|
* @example timeZoneLike.test("Japan") // true (single-component IANA link)
|
|
24
24
|
* @example timeZoneLike.test("Etc/GMT+5") // true
|
|
25
25
|
* @example timeZoneLike.test("Custom/Zone") // true (shape only; existence is not checked)
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
* `Etc/GMT+5`). Temporal must accept every Zone and Link name in the IANA database, and tzdb's
|
|
15
15
|
* `backward` file has more than forty slash-less ones.
|
|
16
16
|
* - Letter case is not checked: ECMA-402 matches an identifier ASCII-case-insensitively, so `utc`
|
|
17
|
-
* and `
|
|
17
|
+
* and `asia/kolkata` name the same zones as `UTC` and `Asia/Kolkata`.
|
|
18
18
|
* - SHAPE ONLY. Whether the name exists is decided by Temporal: its only consumer,
|
|
19
19
|
* `isValidTimeZone`, also requires `Temporal.ZonedDateTime.from` to accept the zone.
|
|
20
20
|
*
|
|
21
21
|
* @example timeZoneLike.test("UTC") // true
|
|
22
|
-
* @example timeZoneLike.test("
|
|
22
|
+
* @example timeZoneLike.test("Asia/Kolkata") // true
|
|
23
23
|
* @example timeZoneLike.test("Japan") // true (single-component IANA link)
|
|
24
24
|
* @example timeZoneLike.test("Etc/GMT+5") // true
|
|
25
25
|
* @example timeZoneLike.test("Custom/Zone") // true (shape only; existence is not checked)
|
|
@@ -39,7 +39,8 @@
|
|
|
39
39
|
* - Leap seconds are not counted. UTC repeats a second rather than numbering a 61st one, so
|
|
40
40
|
* a span across one is a second short of the physical elapsed time; against a smeared
|
|
41
41
|
* clock (Google, AWS, Meta) the error is up to a second spread over the smear window.
|
|
42
|
-
*
|
|
42
|
+
* For a leap-second-exact span, convert both ends with `toTAI` or add
|
|
43
|
+
* `leapSecondsBetween(start, end)` seconds, both from `timescale/`.
|
|
43
44
|
*
|
|
44
45
|
* @param start ISO 8601 instant string the span is measured from
|
|
45
46
|
* @param end ISO 8601 instant string the span is measured to
|
|
@@ -49,8 +50,8 @@
|
|
|
49
50
|
* @example spanMs("2024-03-10T12:00:01Z", "2024-03-10T12:00:00Z") // -1000
|
|
50
51
|
* @example spanMs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00Z") // 0
|
|
51
52
|
* @example spanMs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00.123456789Z") // 123.456789
|
|
52
|
-
* @example spanMs("2024-03-
|
|
53
|
-
* @example spanMs("2024-03-10T12:00:00+05:00[
|
|
53
|
+
* @example spanMs("2024-03-30T12:00:00+00:00[Europe/London]", "2024-03-31T12:00:00+01:00[Europe/London]") // 82800000 — 23 hours, not 24
|
|
54
|
+
* @example spanMs("2024-03-10T12:00:00+05:00[Asia/Tokyo]", "2024-03-10T12:00:00-04:00[Asia/Tokyo]") // 32400000 — offsets decide, the zone is not checked
|
|
54
55
|
* @example spanMs("1960-01-01T01:04:30Z", "1960-01-01T00:20:00-00:45[Africa/Monrovia]") // 0 — the zone's −00:44:30, which `-00:45` rounds
|
|
55
56
|
* @example spanMs("-271821-04-20T00:00:00Z", "+275760-09-13T00:00:00Z") // null — past the safe integer range, use spanNs
|
|
56
57
|
* @example spanMs("2024-03-10T12:00:00Z", "invalid") // null
|
|
@@ -51,7 +51,8 @@ const MAX_SAFE_NANOSECONDS = BigInt(Number.MAX_SAFE_INTEGER) * NANOSECONDS_PER_M
|
|
|
51
51
|
* - Leap seconds are not counted. UTC repeats a second rather than numbering a 61st one, so
|
|
52
52
|
* a span across one is a second short of the physical elapsed time; against a smeared
|
|
53
53
|
* clock (Google, AWS, Meta) the error is up to a second spread over the smear window.
|
|
54
|
-
*
|
|
54
|
+
* For a leap-second-exact span, convert both ends with `toTAI` or add
|
|
55
|
+
* `leapSecondsBetween(start, end)` seconds, both from `timescale/`.
|
|
55
56
|
*
|
|
56
57
|
* @param start ISO 8601 instant string the span is measured from
|
|
57
58
|
* @param end ISO 8601 instant string the span is measured to
|
|
@@ -61,8 +62,8 @@ const MAX_SAFE_NANOSECONDS = BigInt(Number.MAX_SAFE_INTEGER) * NANOSECONDS_PER_M
|
|
|
61
62
|
* @example spanMs("2024-03-10T12:00:01Z", "2024-03-10T12:00:00Z") // -1000
|
|
62
63
|
* @example spanMs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00Z") // 0
|
|
63
64
|
* @example spanMs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00.123456789Z") // 123.456789
|
|
64
|
-
* @example spanMs("2024-03-
|
|
65
|
-
* @example spanMs("2024-03-10T12:00:00+05:00[
|
|
65
|
+
* @example spanMs("2024-03-30T12:00:00+00:00[Europe/London]", "2024-03-31T12:00:00+01:00[Europe/London]") // 82800000 — 23 hours, not 24
|
|
66
|
+
* @example spanMs("2024-03-10T12:00:00+05:00[Asia/Tokyo]", "2024-03-10T12:00:00-04:00[Asia/Tokyo]") // 32400000 — offsets decide, the zone is not checked
|
|
66
67
|
* @example spanMs("1960-01-01T01:04:30Z", "1960-01-01T00:20:00-00:45[Africa/Monrovia]") // 0 — the zone's −00:44:30, which `-00:45` rounds
|
|
67
68
|
* @example spanMs("-271821-04-20T00:00:00Z", "+275760-09-13T00:00:00Z") // null — past the safe integer range, use spanNs
|
|
68
69
|
* @example spanMs("2024-03-10T12:00:00Z", "invalid") // null
|
|
@@ -31,7 +31,8 @@
|
|
|
31
31
|
* - Leap seconds are not counted. UTC repeats a second rather than numbering a 61st one, so
|
|
32
32
|
* a span across one is a second short of the physical elapsed time; against a smeared
|
|
33
33
|
* clock (Google, AWS, Meta) the error is up to a second spread over the smear window.
|
|
34
|
-
*
|
|
34
|
+
* For a leap-second-exact span, convert both ends with `toTAI` or add
|
|
35
|
+
* `leapSecondsBetween(start, end)` seconds, both from `timescale/`.
|
|
35
36
|
*
|
|
36
37
|
* @param start ISO 8601 instant string the span is measured from
|
|
37
38
|
* @param end ISO 8601 instant string the span is measured to
|
|
@@ -41,8 +42,8 @@
|
|
|
41
42
|
* @example spanNs("2024-03-10T12:00:01Z", "2024-03-10T12:00:00Z") // -1000000000n
|
|
42
43
|
* @example spanNs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00Z") // 0n
|
|
43
44
|
* @example spanNs("2024-03-10T12:00:00.123456789Z", "2024-03-10T12:00:00.123456790Z") // 1n
|
|
44
|
-
* @example spanNs("2024-03-10T07:00:00-05:00[America/
|
|
45
|
-
* @example spanNs("2024-03-10T12:00:00+05:00[
|
|
45
|
+
* @example spanNs("2024-03-10T07:00:00-05:00[America/Bogota]", "2024-03-10T12:00:00Z") // 0n — same instant, different zones
|
|
46
|
+
* @example spanNs("2024-03-10T12:00:00+05:00[Asia/Tokyo]", "2024-03-10T12:00:00-04:00[Asia/Tokyo]") // 32400000000000n — offsets decide, the zone is not checked
|
|
46
47
|
* @example spanNs("1960-01-01T01:04:30Z", "1960-01-01T00:20:00-00:45[Africa/Monrovia]") // 0n — the zone's −00:44:30, which `-00:45` rounds
|
|
47
48
|
* @example spanNs("2024-03-10T12:00:00Z", "invalid") // null
|
|
48
49
|
*/
|
|
@@ -32,7 +32,8 @@ import { parseInstantNanoseconds } from "../../internal/index.js";
|
|
|
32
32
|
* - Leap seconds are not counted. UTC repeats a second rather than numbering a 61st one, so
|
|
33
33
|
* a span across one is a second short of the physical elapsed time; against a smeared
|
|
34
34
|
* clock (Google, AWS, Meta) the error is up to a second spread over the smear window.
|
|
35
|
-
*
|
|
35
|
+
* For a leap-second-exact span, convert both ends with `toTAI` or add
|
|
36
|
+
* `leapSecondsBetween(start, end)` seconds, both from `timescale/`.
|
|
36
37
|
*
|
|
37
38
|
* @param start ISO 8601 instant string the span is measured from
|
|
38
39
|
* @param end ISO 8601 instant string the span is measured to
|
|
@@ -42,8 +43,8 @@ import { parseInstantNanoseconds } from "../../internal/index.js";
|
|
|
42
43
|
* @example spanNs("2024-03-10T12:00:01Z", "2024-03-10T12:00:00Z") // -1000000000n
|
|
43
44
|
* @example spanNs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00Z") // 0n
|
|
44
45
|
* @example spanNs("2024-03-10T12:00:00.123456789Z", "2024-03-10T12:00:00.123456790Z") // 1n
|
|
45
|
-
* @example spanNs("2024-03-10T07:00:00-05:00[America/
|
|
46
|
-
* @example spanNs("2024-03-10T12:00:00+05:00[
|
|
46
|
+
* @example spanNs("2024-03-10T07:00:00-05:00[America/Bogota]", "2024-03-10T12:00:00Z") // 0n — same instant, different zones
|
|
47
|
+
* @example spanNs("2024-03-10T12:00:00+05:00[Asia/Tokyo]", "2024-03-10T12:00:00-04:00[Asia/Tokyo]") // 32400000000000n — offsets decide, the zone is not checked
|
|
47
48
|
* @example spanNs("1960-01-01T01:04:30Z", "1960-01-01T00:20:00-00:45[Africa/Monrovia]") // 0n — the zone's −00:44:30, which `-00:45` rounds
|
|
48
49
|
* @example spanNs("2024-03-10T12:00:00Z", "invalid") // null
|
|
49
50
|
*/
|
|
@@ -28,8 +28,8 @@ export type WallClockSpanUnit = "days" | "hours" | "day" | "hour";
|
|
|
28
28
|
* The wall clock is read straight off the string with `Temporal.PlainDateTime.from`. Going
|
|
29
29
|
* via `ZonedDateTime` would be a local → instant → local round trip, and that round trip is
|
|
30
30
|
* lossy at exactly the DST edges this function exists to get right: an offset-less
|
|
31
|
-
* `"2024-03-
|
|
32
|
-
* Temporal's default `compatible` disambiguation would silently advance it to `
|
|
31
|
+
* `"2024-03-31T01:30:00[Europe/London]"` names a wall time that never occurred, and
|
|
32
|
+
* Temporal's default `compatible` disambiguation would silently advance it to `02:30`,
|
|
33
33
|
* turning a 24-hour answer into 23. A nonexistent or ambiguous local time is measured as
|
|
34
34
|
* written instead — for a clock-face question, the digits in the string *are* the answer.
|
|
35
35
|
* - Requires a bracketed IANA time zone on both endpoints, as `isValidZonedDateTime` does —
|
|
@@ -38,8 +38,8 @@ export type WallClockSpanUnit = "days" | "hours" | "day" | "hour";
|
|
|
38
38
|
* `[u-ca=...]` calendar annotations are rejected; `days` and `hours` mean the same thing in
|
|
39
39
|
* every calendar system, so the annotation would change nothing.
|
|
40
40
|
* - The endpoints need not share a zone. When they differ, this is the distance between two
|
|
41
|
-
* local wall clocks — a flight leaving
|
|
42
|
-
* next local day is
|
|
41
|
+
* local wall clocks — a flight leaving São Paulo at 23:00 and landing in Berlin at 15:00 the
|
|
42
|
+
* next local day is 16 wall-clock hours, and 12 elapsed hours by `spanMs`.
|
|
43
43
|
* - Returns `null` on invalid input, not `0` — `0` is the span between a wall time and itself.
|
|
44
44
|
*
|
|
45
45
|
* @param start zoned ISO 8601 datetime string the span is measured from
|
|
@@ -47,14 +47,14 @@ export type WallClockSpanUnit = "days" | "hours" | "day" | "hour";
|
|
|
47
47
|
* @param unit "days" or "hours" (or the singular "day" or "hour") of wall-clock distance
|
|
48
48
|
* @returns whole wall-clock units, negative when start is after end, or null on invalid input
|
|
49
49
|
*
|
|
50
|
-
* @example spanWallClock("2024-03-
|
|
51
|
-
* @example spanWallClock("2024-
|
|
52
|
-
* @example spanWallClock("2024-03-01T12:00:00
|
|
53
|
-
* @example spanWallClock("2024-03-02T18:00:00
|
|
54
|
-
* @example spanWallClock("2024-03-10T23:00:00-
|
|
55
|
-
* @example spanWallClock("2024-03-
|
|
56
|
-
* @example spanWallClock("2024-03-01T12:00:00
|
|
50
|
+
* @example spanWallClock("2024-03-30T12:00:00+00:00[Europe/London]", "2024-03-31T12:00:00+01:00[Europe/London]", "hours") // 24 — spanMs reports 82800000 (23 hours)
|
|
51
|
+
* @example spanWallClock("2024-04-06T12:00:00+11:00[Australia/Sydney]", "2024-04-07T12:00:00+10:00[Australia/Sydney]", "days") // 1 — spanMs reports 90000000 (25 hours)
|
|
52
|
+
* @example spanWallClock("2024-03-01T12:00:00+05:30[Asia/Kolkata]", "2024-03-02T18:00:00+05:30[Asia/Kolkata]", "days") // 1 — truncated toward zero
|
|
53
|
+
* @example spanWallClock("2024-03-02T18:00:00+05:30[Asia/Kolkata]", "2024-03-01T12:00:00+05:30[Asia/Kolkata]", "hours") // -30
|
|
54
|
+
* @example spanWallClock("2024-03-10T23:00:00-03:00[America/Sao_Paulo]", "2024-03-11T15:00:00+01:00[Europe/Berlin]", "hours") // 16 — each endpoint's own wall clock
|
|
55
|
+
* @example spanWallClock("2024-03-31T01:30:00[Europe/London]", "2024-04-01T01:30:00[Europe/London]", "hours") // 24 — a wall time that never occurred is measured as written
|
|
56
|
+
* @example spanWallClock("2024-03-01T12:00:00+02:00[Africa/Johannesburg]", "2024-03-02T12:00:00+02:00[Africa/Johannesburg]", "day") // 1 — singular unit name
|
|
57
57
|
* @example spanWallClock("2024-03-10T12:00:00Z", "2024-03-11T12:00:00Z", "days") // null — no bracketed time zone
|
|
58
|
-
* @example spanWallClock("2024-03-01T12:00:00
|
|
58
|
+
* @example spanWallClock("2024-03-01T12:00:00+02:00[Africa/Johannesburg]", "2024-03-02T12:00:00+02:00[Africa/Johannesburg]", "minutes") // null
|
|
59
59
|
*/
|
|
60
60
|
export declare function spanWallClock(start: string, end: string, unit: WallClockSpanUnit): number | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
2
|
import { isValidZonedDateTime } from "../../zoned/validate/index.js";
|
|
3
3
|
const WALL_CLOCK_SPAN_UNITS = {
|
|
4
4
|
days: "day",
|
|
@@ -26,8 +26,8 @@ const WALL_CLOCK_SPAN_UNITS = {
|
|
|
26
26
|
* The wall clock is read straight off the string with `Temporal.PlainDateTime.from`. Going
|
|
27
27
|
* via `ZonedDateTime` would be a local → instant → local round trip, and that round trip is
|
|
28
28
|
* lossy at exactly the DST edges this function exists to get right: an offset-less
|
|
29
|
-
* `"2024-03-
|
|
30
|
-
* Temporal's default `compatible` disambiguation would silently advance it to `
|
|
29
|
+
* `"2024-03-31T01:30:00[Europe/London]"` names a wall time that never occurred, and
|
|
30
|
+
* Temporal's default `compatible` disambiguation would silently advance it to `02:30`,
|
|
31
31
|
* turning a 24-hour answer into 23. A nonexistent or ambiguous local time is measured as
|
|
32
32
|
* written instead — for a clock-face question, the digits in the string *are* the answer.
|
|
33
33
|
* - Requires a bracketed IANA time zone on both endpoints, as `isValidZonedDateTime` does —
|
|
@@ -36,8 +36,8 @@ const WALL_CLOCK_SPAN_UNITS = {
|
|
|
36
36
|
* `[u-ca=...]` calendar annotations are rejected; `days` and `hours` mean the same thing in
|
|
37
37
|
* every calendar system, so the annotation would change nothing.
|
|
38
38
|
* - The endpoints need not share a zone. When they differ, this is the distance between two
|
|
39
|
-
* local wall clocks — a flight leaving
|
|
40
|
-
* next local day is
|
|
39
|
+
* local wall clocks — a flight leaving São Paulo at 23:00 and landing in Berlin at 15:00 the
|
|
40
|
+
* next local day is 16 wall-clock hours, and 12 elapsed hours by `spanMs`.
|
|
41
41
|
* - Returns `null` on invalid input, not `0` — `0` is the span between a wall time and itself.
|
|
42
42
|
*
|
|
43
43
|
* @param start zoned ISO 8601 datetime string the span is measured from
|
|
@@ -45,15 +45,15 @@ const WALL_CLOCK_SPAN_UNITS = {
|
|
|
45
45
|
* @param unit "days" or "hours" (or the singular "day" or "hour") of wall-clock distance
|
|
46
46
|
* @returns whole wall-clock units, negative when start is after end, or null on invalid input
|
|
47
47
|
*
|
|
48
|
-
* @example spanWallClock("2024-03-
|
|
49
|
-
* @example spanWallClock("2024-
|
|
50
|
-
* @example spanWallClock("2024-03-01T12:00:00
|
|
51
|
-
* @example spanWallClock("2024-03-02T18:00:00
|
|
52
|
-
* @example spanWallClock("2024-03-10T23:00:00-
|
|
53
|
-
* @example spanWallClock("2024-03-
|
|
54
|
-
* @example spanWallClock("2024-03-01T12:00:00
|
|
48
|
+
* @example spanWallClock("2024-03-30T12:00:00+00:00[Europe/London]", "2024-03-31T12:00:00+01:00[Europe/London]", "hours") // 24 — spanMs reports 82800000 (23 hours)
|
|
49
|
+
* @example spanWallClock("2024-04-06T12:00:00+11:00[Australia/Sydney]", "2024-04-07T12:00:00+10:00[Australia/Sydney]", "days") // 1 — spanMs reports 90000000 (25 hours)
|
|
50
|
+
* @example spanWallClock("2024-03-01T12:00:00+05:30[Asia/Kolkata]", "2024-03-02T18:00:00+05:30[Asia/Kolkata]", "days") // 1 — truncated toward zero
|
|
51
|
+
* @example spanWallClock("2024-03-02T18:00:00+05:30[Asia/Kolkata]", "2024-03-01T12:00:00+05:30[Asia/Kolkata]", "hours") // -30
|
|
52
|
+
* @example spanWallClock("2024-03-10T23:00:00-03:00[America/Sao_Paulo]", "2024-03-11T15:00:00+01:00[Europe/Berlin]", "hours") // 16 — each endpoint's own wall clock
|
|
53
|
+
* @example spanWallClock("2024-03-31T01:30:00[Europe/London]", "2024-04-01T01:30:00[Europe/London]", "hours") // 24 — a wall time that never occurred is measured as written
|
|
54
|
+
* @example spanWallClock("2024-03-01T12:00:00+02:00[Africa/Johannesburg]", "2024-03-02T12:00:00+02:00[Africa/Johannesburg]", "day") // 1 — singular unit name
|
|
55
55
|
* @example spanWallClock("2024-03-10T12:00:00Z", "2024-03-11T12:00:00Z", "days") // null — no bracketed time zone
|
|
56
|
-
* @example spanWallClock("2024-03-01T12:00:00
|
|
56
|
+
* @example spanWallClock("2024-03-01T12:00:00+02:00[Africa/Johannesburg]", "2024-03-02T12:00:00+02:00[Africa/Johannesburg]", "minutes") // null
|
|
57
57
|
*/
|
|
58
58
|
export function spanWallClock(start, end, unit) {
|
|
59
59
|
if (typeof unit !== "string") {
|
package/dist/span/index.d.ts
CHANGED
package/dist/span/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Re-export
|
|
2
|
-
export
|
|
1
|
+
// Re-export `Temporal`, `Intl` and `toTemporalInstant` from the internal seam so every namespace subpath offers them
|
|
2
|
+
export { Intl, Temporal, toTemporalInstant } from "../internal/temporal.js";
|
|
3
3
|
export * from "./calculate/index.js";
|
|
4
4
|
export * from "./validate/index.js";
|