@northguild/gmt 1.19.0 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -12
- package/dist/calendar/business/businessDaysBetween.d.ts +2 -2
- package/dist/calendar/business/businessDaysBetween.js +11 -35
- package/dist/calendar/business/mergeCalendars.d.ts +1 -1
- package/dist/calendar/business/mergeCalendars.js +8 -9
- package/dist/calendar/business/nextBusinessDay.d.ts +2 -2
- package/dist/calendar/business/nextBusinessDay.js +2 -2
- package/dist/calendar/business/previousBusinessDay.d.ts +2 -2
- package/dist/calendar/business/previousBusinessDay.js +2 -2
- package/dist/calendar/business/rollDate.d.ts +3 -3
- package/dist/calendar/business/rollDate.js +10 -43
- package/dist/calendar/calculate/bucketRange.d.ts +9 -9
- package/dist/calendar/calculate/bucketRange.js +9 -9
- package/dist/calendar/calculate/floorToZone.d.ts +2 -2
- package/dist/calendar/calculate/floorToZone.js +1 -1
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +50 -40
- package/dist/calendar/calculate/getFiscalPeriod.js +78 -57
- package/dist/calendar/calculate/getQuarter.d.ts +26 -21
- package/dist/calendar/calculate/getQuarter.js +48 -19
- package/dist/calendar/hours/addOperatingTime.d.ts +3 -3
- package/dist/calendar/hours/addOperatingTime.js +3 -3
- package/dist/calendar/hours/isOpenAt.d.ts +3 -3
- package/dist/calendar/hours/isOpenAt.js +3 -3
- package/dist/calendar/hours/nextCloseAt.d.ts +2 -2
- package/dist/calendar/hours/nextCloseAt.js +2 -2
- package/dist/calendar/hours/nextOpenAt.d.ts +3 -3
- package/dist/calendar/hours/nextOpenAt.js +3 -3
- package/dist/calendar/hours/operatingIntervals.d.ts +2 -2
- package/dist/calendar/hours/operatingIntervals.js +4 -6
- package/dist/calendar/hours/operatingTimeBetween.d.ts +3 -3
- package/dist/calendar/hours/operatingTimeBetween.js +6 -8
- package/dist/calendar/hours/recurringWindows.d.ts +5 -5
- package/dist/calendar/hours/recurringWindows.js +9 -10
- package/dist/calendar/index.d.ts +1 -1
- package/dist/calendar/index.js +2 -2
- package/dist/calendar/validate/index.d.ts +3 -0
- package/dist/calendar/validate/index.js +3 -0
- package/dist/calendar/validate/isValidFiscalCalendar.d.ts +23 -0
- package/dist/calendar/validate/isValidFiscalCalendar.js +44 -0
- package/dist/calendar/validate/isValidFiscalExtraWeek.d.ts +19 -0
- package/dist/calendar/validate/isValidFiscalExtraWeek.js +23 -0
- package/dist/calendar/validate/isValidFiscalPattern.d.ts +7 -7
- package/dist/calendar/validate/isValidFiscalPattern.js +7 -7
- package/dist/calendar/validate/isValidFiscalYearLabel.d.ts +20 -0
- package/dist/calendar/validate/isValidFiscalYearLabel.js +24 -0
- package/dist/calendar/validate/isValidRollConvention.js +2 -10
- package/dist/calendar/validate/isValidZoneBucketUnit.d.ts +1 -1
- package/dist/duration/calculate/absDuration.js +1 -1
- package/dist/duration/calculate/addDuration.js +1 -1
- package/dist/duration/calculate/durationFromUnits.js +1 -1
- package/dist/duration/calculate/getDurationSign.js +1 -1
- package/dist/duration/calculate/getDurationUnit.d.ts +1 -1
- package/dist/duration/calculate/getDurationUnit.js +1 -1
- package/dist/duration/calculate/negateDuration.js +1 -1
- package/dist/duration/calculate/subtractDuration.js +1 -1
- package/dist/duration/calculate/totalDuration.d.ts +4 -4
- package/dist/duration/calculate/totalDuration.js +4 -4
- package/dist/duration/calculate/totalUnits.js +1 -1
- package/dist/duration/compare/compareDurations.d.ts +3 -3
- package/dist/duration/compare/compareDurations.js +3 -3
- package/dist/duration/format/formatDuration.d.ts +9 -9
- package/dist/duration/format/formatDuration.js +14 -13
- package/dist/duration/index.d.ts +1 -1
- package/dist/duration/index.js +2 -2
- package/dist/duration/normalize/normalizeDuration.d.ts +3 -3
- package/dist/duration/normalize/normalizeDuration.js +3 -3
- package/dist/duration/parse/parseDuration.d.ts +1 -1
- package/dist/duration/parse/parseDuration.js +1 -1
- package/dist/duration/validate/isValidDuration.js +2 -11
- package/dist/gnss/convert/gnssToUtc.d.ts +24 -0
- package/dist/gnss/convert/gnssToUtc.js +39 -0
- package/dist/gnss/convert/gnssWeekToUtc.d.ts +53 -0
- package/dist/gnss/convert/gnssWeekToUtc.js +80 -0
- package/dist/gnss/convert/index.d.ts +6 -0
- package/dist/gnss/convert/index.js +6 -0
- package/dist/gnss/convert/rinexWeekToUtc.d.ts +34 -0
- package/dist/gnss/convert/rinexWeekToUtc.js +57 -0
- package/dist/gnss/convert/utcToGnss.d.ts +38 -0
- package/dist/gnss/convert/utcToGnss.js +53 -0
- package/dist/gnss/convert/utcToGnssWeek.d.ts +24 -0
- package/dist/gnss/convert/utcToGnssWeek.js +40 -0
- package/dist/gnss/convert/utcToRinexWeek.d.ts +19 -0
- package/dist/gnss/convert/utcToRinexWeek.js +45 -0
- package/dist/gnss/index.d.ts +2 -0
- package/dist/gnss/index.js +3 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -2
- package/dist/instant/convert/classifyLocal.d.ts +4 -4
- package/dist/instant/convert/classifyLocal.js +8 -19
- package/dist/instant/convert/fromOffsetInstant.d.ts +4 -4
- package/dist/instant/convert/fromOffsetInstant.js +5 -5
- package/dist/instant/convert/resolveLocal.d.ts +9 -9
- package/dist/instant/convert/resolveLocal.js +9 -9
- package/dist/instant/convert/toOffsetInstant.d.ts +11 -11
- package/dist/instant/convert/toOffsetInstant.js +11 -28
- package/dist/instant/index.d.ts +1 -1
- package/dist/instant/index.js +2 -2
- package/dist/instant/validate/isValidUtcOffset.d.ts +1 -1
- package/dist/instant/validate/isValidUtcOffset.js +1 -1
- package/dist/intermodal/calculate/billingTimeline.js +1 -1
- package/dist/intermodal/calculate/chargeableDays.d.ts +12 -12
- package/dist/intermodal/calculate/chargeableDays.js +17 -16
- package/dist/intermodal/calculate/demurrageClock.d.ts +1 -1
- package/dist/intermodal/calculate/demurrageClock.js +2 -2
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +10 -10
- package/dist/intermodal/calculate/freeTimeExpiry.js +19 -15
- package/dist/intermodal/calculate/multimodalETA.d.ts +1 -1
- package/dist/intermodal/calculate/multimodalETA.js +2 -2
- package/dist/intermodal/format/bolTimestamp.d.ts +6 -6
- package/dist/intermodal/format/bolTimestamp.js +6 -6
- package/dist/intermodal/format/formatEpcisEvent.d.ts +1 -1
- package/dist/intermodal/format/formatEpcisEvent.js +2 -2
- package/dist/intermodal/index.d.ts +1 -1
- package/dist/intermodal/index.js +2 -2
- package/dist/intermodal/parse/parseEpcisEvent.js +1 -1
- package/dist/intermodal/validate/isValidEpcisEventTime.js +1 -1
- package/dist/internal/advanceToWeekday.d.ts +1 -1
- package/dist/internal/businessCalendar.d.ts +28 -12
- package/dist/internal/businessCalendar.js +129 -118
- package/dist/internal/businessDayValues.js +1 -1
- package/dist/internal/calendarDatePairPolicy.d.ts +1 -1
- package/dist/internal/calendarDateString.d.ts +1 -1
- package/dist/internal/calendarDateString.js +1 -1
- package/dist/internal/calendarSystemIds.js +1 -1
- package/dist/internal/calendarValueOfDate.js +1 -1
- package/dist/internal/calendarZonedPairPolicy.d.ts +1 -1
- package/dist/internal/calendarZonedString.d.ts +3 -3
- package/dist/internal/calendarZonedString.js +4 -4
- package/dist/internal/compareUnixEpochs.js +1 -1
- package/dist/internal/cutoffAtResolved.d.ts +62 -0
- package/dist/internal/cutoffAtResolved.js +162 -0
- package/dist/internal/cycleFieldValue.d.ts +0 -2
- package/dist/internal/cycleFieldValue.js +0 -2
- package/dist/internal/dateTimeUnitHelpers.d.ts +1 -1
- package/dist/internal/dateUnitHelpers.d.ts +1 -1
- package/dist/internal/daylightTime.d.ts +1 -1
- package/dist/internal/differenceRecord.d.ts +1 -1
- package/dist/internal/durationUntilString.d.ts +1 -1
- package/dist/internal/durationUntilString.js +1 -1
- package/dist/internal/dutyEngine.d.ts +6 -6
- package/dist/internal/dutyEngine.js +206 -197
- package/dist/internal/dutyPeriods.d.ts +1 -1
- package/dist/internal/dutyPeriods.js +8 -2
- package/dist/internal/dutyRules.d.ts +2 -1
- package/dist/internal/dutyRules.js +1 -1
- package/dist/internal/dutyRunIndex.d.ts +150 -0
- package/dist/internal/dutyRunIndex.js +398 -0
- package/dist/internal/earlierOccurrence.d.ts +41 -0
- package/dist/internal/earlierOccurrence.js +57 -0
- package/dist/internal/ediDateTimeFields.js +1 -1
- package/dist/internal/ediDateTimeWriter.js +1 -1
- package/dist/internal/englishCalendarNames.d.ts +1 -1
- package/dist/internal/epochDay.d.ts +41 -0
- package/dist/internal/epochDay.js +129 -0
- package/dist/internal/exactDuration.js +1 -1
- package/dist/internal/exactMoment.d.ts +4 -4
- package/dist/internal/exactMoment.js +5 -5
- package/dist/internal/fiscalCalendar.d.ts +41 -7
- package/dist/internal/fiscalCalendar.js +77 -9
- package/dist/internal/foreignEpochs.d.ts +5 -0
- package/dist/internal/foreignEpochs.js +5 -0
- package/dist/internal/formatCalendarDays.d.ts +4 -4
- package/dist/internal/formatCalendarDays.js +6 -5
- package/dist/internal/formatDateInCalendar.d.ts +1 -1
- package/dist/internal/formatRelativeDuration.d.ts +7 -7
- package/dist/internal/formatRelativeDuration.js +8 -7
- package/dist/internal/formatterCache.d.ts +40 -0
- package/dist/internal/formatterCache.js +181 -0
- package/dist/internal/freeTimeLedger.d.ts +31 -43
- package/dist/internal/freeTimeLedger.js +322 -30
- package/dist/internal/getLocaleWeekYearBounds.d.ts +1 -1
- package/dist/internal/gnssTimeScales.d.ts +53 -0
- package/dist/internal/gnssTimeScales.js +128 -0
- package/dist/internal/gnssWeek.d.ts +92 -0
- package/dist/internal/gnssWeek.js +212 -0
- package/dist/internal/halfOpenIntervals.d.ts +1 -1
- package/dist/internal/halfOpenIntervals.js +1 -1
- package/dist/internal/hasCalendarAnnotation.d.ts +3 -3
- package/dist/internal/hasCalendarAnnotation.js +3 -3
- package/dist/internal/hourDurationString.js +1 -1
- package/dist/internal/httpDateFields.js +1 -1
- package/dist/internal/index.d.ts +9 -3
- package/dist/internal/index.js +9 -3
- package/dist/internal/inputChecks.d.ts +53 -0
- package/dist/internal/inputChecks.js +132 -0
- package/dist/internal/instantFormatOptions.d.ts +1 -1
- package/dist/internal/instantFormatOptions.js +4 -8
- package/dist/internal/instantIntervalText.js +1 -1
- package/dist/internal/instantNanoseconds.d.ts +2 -2
- package/dist/internal/instantNanoseconds.js +2 -2
- package/dist/internal/intervalCountHelpers.d.ts +1 -1
- package/dist/internal/isoStringBody.d.ts +2 -2
- package/dist/internal/isoStringBody.js +2 -2
- package/dist/internal/joinDateTimeConnector.js +3 -2
- package/dist/internal/leapSeconds.d.ts +63 -0
- package/dist/internal/leapSeconds.js +162 -0
- package/dist/internal/localeWeekInfo.d.ts +1 -1
- package/dist/internal/localeWeekInfo.js +1 -1
- package/dist/internal/monthGridWeekRow.d.ts +1 -1
- package/dist/internal/normalizeDateTime.d.ts +2 -1
- package/dist/internal/normalizeDateTime.js +3 -2
- package/dist/internal/normalizeTimeZone.d.ts +1 -1
- package/dist/internal/normalizeTimeZone.js +1 -1
- package/dist/internal/offsetTimeline.d.ts +56 -0
- package/dist/internal/offsetTimeline.js +166 -0
- package/dist/internal/operatingSchedule.d.ts +28 -32
- package/dist/internal/operatingSchedule.js +538 -176
- package/dist/internal/patternToken.js +10 -7
- package/dist/internal/plainDateAdd.d.ts +1 -1
- package/dist/internal/plainDateAdd.js +1 -1
- package/dist/internal/plainDateUntil.d.ts +1 -1
- package/dist/internal/plainDateUntil.js +1 -1
- package/dist/internal/readSetFields.js +1 -1
- package/dist/internal/resolveDurationRelativeTo.d.ts +1 -1
- package/dist/internal/resolveDurationRelativeTo.js +1 -1
- package/dist/internal/resolveLocale.d.ts +2 -2
- package/dist/internal/resolveLocale.js +2 -2
- package/dist/internal/resolveManualRoundingOptions.d.ts +1 -1
- package/dist/internal/resolveUnixIntervalPair.d.ts +1 -1
- package/dist/internal/rinexWeek.d.ts +22 -0
- package/dist/internal/rinexWeek.js +30 -0
- package/dist/internal/rollBusinessDate.d.ts +15 -0
- package/dist/internal/rollBusinessDate.js +46 -0
- package/dist/internal/splitStep.d.ts +1 -1
- package/dist/internal/splitStep.js +1 -1
- package/dist/internal/startOrEndOfUnix.d.ts +1 -1
- package/dist/internal/startOrEndOfUtc.d.ts +1 -1
- package/dist/internal/startOrEndOfUtc.js +1 -1
- package/dist/internal/startOrEndOfZoned.d.ts +1 -1
- package/dist/internal/temporal.d.ts +5 -0
- package/dist/internal/temporal.js +5 -0
- package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +1 -1
- package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +1 -1
- package/dist/internal/temporalCompat/calendarDateFromFields.js +1 -1
- package/dist/internal/temporalCompat/calendarFields.d.ts +1 -1
- package/dist/internal/temporalCompat/capabilities.d.ts +27 -5
- package/dist/internal/temporalCompat/capabilities.js +28 -4
- package/dist/internal/temporalCompat/fieldSearch.d.ts +1 -1
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/fixedDay.d.ts +1 -1
- package/dist/internal/temporalCompat/fixedDay.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/largeMonthSpan.js +1 -1
- package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +1 -1
- package/dist/internal/temporalCompat/nonIsoArithmetic.js +1 -1
- package/dist/internal/temporalCompat/probeRepros.d.ts +35 -0
- package/dist/internal/temporalCompat/probeRepros.js +571 -0
- package/dist/internal/temporalCompat/readArithmeticModel.js +2 -2
- package/dist/internal/temporalCompat/repros.d.ts +3 -10
- package/dist/internal/temporalCompat/repros.js +13 -520
- package/dist/internal/timeScaleString.d.ts +47 -0
- package/dist/internal/timeScaleString.js +86 -0
- package/dist/internal/toInstantFromUtc.d.ts +1 -1
- package/dist/internal/toInstantFromUtc.js +1 -1
- package/dist/internal/unixEpochValue.d.ts +1 -1
- package/dist/internal/unixEpochValue.js +1 -1
- package/dist/internal/unixFormatReference.d.ts +1 -1
- package/dist/internal/unixFormatReference.js +1 -1
- package/dist/internal/unixWallClock.d.ts +1 -1
- package/dist/internal/utcOffsetString.d.ts +16 -0
- package/dist/internal/utcOffsetString.js +31 -1
- package/dist/internal/utcReading.d.ts +59 -0
- package/dist/internal/utcReading.js +113 -0
- package/dist/internal/utcWallClock.d.ts +1 -1
- package/dist/internal/utcWallClock.js +1 -1
- package/dist/internal/validatedZones.d.ts +20 -0
- package/dist/internal/validatedZones.js +33 -0
- package/dist/internal/wallClockAtOffset.d.ts +1 -1
- package/dist/internal/yearWindowStart.js +1 -1
- package/dist/internal/zoneBucketCap.d.ts +1 -1
- package/dist/internal/zoneBucketCap.js +2 -2
- package/dist/internal/zoneFrame.d.ts +4 -4
- package/dist/internal/zoneFrame.js +4 -4
- package/dist/internal/zonedBucket.d.ts +2 -2
- package/dist/internal/zonedBucket.js +92 -21
- package/dist/internal/zonedFormatReference.d.ts +1 -1
- package/dist/internal/zonedFormatReference.js +1 -1
- package/dist/internal/zonedLocalDates.d.ts +1 -1
- package/dist/internal/zonedLocalDates.js +22 -19
- package/dist/internal/zonedNowUnitValue.d.ts +1 -1
- package/dist/internal/zonedNowUnitValue.js +1 -1
- package/dist/internal/zonedTransitionSearch.d.ts +2 -0
- package/dist/internal/zonedTransitionSearch.js +165 -16
- package/dist/internal/zonedWallClock.d.ts +15 -4
- package/dist/internal/zonedWallClock.js +34 -6
- package/dist/internal/zonedWallClockDifference.d.ts +1 -1
- package/dist/internal/zonedWallClockDifference.js +2 -2
- package/dist/internal/zonedWallClockOperations.d.ts +2 -2
- package/dist/internal/zonedWallClockOperations.js +51 -6
- package/dist/internal/zonelessCalendarDate.d.ts +1 -1
- package/dist/internal/zonelessCalendarDate.js +1 -1
- package/dist/interval/index.d.ts +1 -1
- package/dist/interval/index.js +2 -2
- package/dist/plain/calculate/addBusinessDays.d.ts +2 -2
- package/dist/plain/calculate/addBusinessDays.js +2 -2
- package/dist/plain/calculate/addDateTime.js +1 -1
- package/dist/plain/calculate/addTime.js +1 -1
- package/dist/plain/calculate/clampDate.js +1 -1
- package/dist/plain/calculate/closestDateTo.js +1 -1
- package/dist/plain/calculate/cycleDate.js +1 -1
- package/dist/plain/calculate/cycleDateTime.js +1 -1
- package/dist/plain/calculate/cycleTime.js +1 -1
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.js +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
- package/dist/plain/calculate/diffTime.d.ts +1 -1
- package/dist/plain/calculate/diffTime.js +1 -1
- package/dist/plain/calculate/endOfDate.d.ts +1 -1
- package/dist/plain/calculate/endOfDate.js +1 -1
- package/dist/plain/calculate/endOfDateTime.d.ts +1 -1
- package/dist/plain/calculate/endOfDateTime.js +1 -1
- package/dist/plain/calculate/endOfQuarterForDate.js +1 -1
- package/dist/plain/calculate/endOfQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/endOfTime.d.ts +1 -1
- package/dist/plain/calculate/endOfTime.js +1 -1
- package/dist/plain/calculate/getDayOfYear.js +1 -1
- package/dist/plain/calculate/getDaysInMonth.js +1 -1
- package/dist/plain/calculate/getDaysInYear.js +1 -1
- package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +6 -6
- package/dist/plain/calculate/getLocaleDayOfWeek.js +7 -7
- package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +4 -4
- package/dist/plain/calculate/getLocaleEndOfWeek.js +5 -5
- package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +5 -5
- package/dist/plain/calculate/getLocaleStartOfWeek.js +6 -6
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +10 -10
- package/dist/plain/calculate/getLocaleWeekYear.js +11 -11
- package/dist/plain/calculate/getQuarterForDate.js +1 -1
- package/dist/plain/calculate/getQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/getWeekNumber.js +1 -1
- package/dist/plain/calculate/getWeekOfMonth.d.ts +10 -14
- package/dist/plain/calculate/getWeekOfMonth.js +11 -15
- package/dist/plain/calculate/getWeekYear.js +1 -1
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +7 -7
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +8 -8
- package/dist/plain/calculate/getWeeksInMonth.d.ts +8 -11
- package/dist/plain/calculate/getWeeksInMonth.js +9 -12
- package/dist/plain/calculate/getWeeksInYear.js +1 -1
- package/dist/plain/calculate/maxDate.js +1 -1
- package/dist/plain/calculate/maxDateTime.js +1 -1
- package/dist/plain/calculate/maxTime.js +1 -1
- package/dist/plain/calculate/minDate.js +1 -1
- package/dist/plain/calculate/minDateTime.js +1 -1
- package/dist/plain/calculate/minTime.js +1 -1
- package/dist/plain/calculate/nextWeekday.d.ts +14 -12
- package/dist/plain/calculate/nextWeekday.js +15 -13
- package/dist/plain/calculate/previousWeekday.d.ts +14 -12
- package/dist/plain/calculate/previousWeekday.js +15 -13
- package/dist/plain/calculate/roundDate.d.ts +1 -1
- package/dist/plain/calculate/roundDate.js +1 -1
- package/dist/plain/calculate/roundDateTime.d.ts +1 -1
- package/dist/plain/calculate/roundDateTime.js +1 -1
- package/dist/plain/calculate/roundTime.d.ts +1 -1
- package/dist/plain/calculate/roundTime.js +1 -1
- package/dist/plain/calculate/setDate.d.ts +1 -1
- package/dist/plain/calculate/setDate.js +1 -1
- package/dist/plain/calculate/setDateTime.d.ts +1 -1
- package/dist/plain/calculate/setDateTime.js +1 -1
- package/dist/plain/calculate/setTime.d.ts +1 -1
- package/dist/plain/calculate/setTime.js +1 -1
- package/dist/plain/calculate/sortDateTimes.js +1 -1
- package/dist/plain/calculate/sortDates.js +1 -1
- package/dist/plain/calculate/sortTimes.js +1 -1
- package/dist/plain/calculate/startOfDate.d.ts +1 -1
- package/dist/plain/calculate/startOfDate.js +1 -1
- package/dist/plain/calculate/startOfDateTime.d.ts +1 -1
- package/dist/plain/calculate/startOfDateTime.js +1 -1
- package/dist/plain/calculate/startOfQuarterForDate.js +1 -1
- package/dist/plain/calculate/startOfQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/startOfTime.d.ts +1 -1
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractBusinessDays.d.ts +2 -2
- package/dist/plain/calculate/subtractBusinessDays.js +2 -2
- package/dist/plain/calculate/subtractDate.js +1 -1
- package/dist/plain/calculate/subtractDateTime.js +1 -1
- package/dist/plain/calculate/subtractTime.js +1 -1
- package/dist/plain/calculate/weekOfYearForDate.js +1 -1
- package/dist/plain/calculate/weekOfYearForDateTime.js +1 -1
- package/dist/plain/chop/chopDate.js +1 -1
- package/dist/plain/chop/chopMilliseconds.js +1 -1
- package/dist/plain/chop/chopSeconds.js +1 -1
- package/dist/plain/chop/chopTime.js +1 -1
- package/dist/plain/compare/areDateTimesEqual.js +1 -1
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +2 -4
- package/dist/plain/compare/areDateTimesEqualBy.js +2 -4
- package/dist/plain/compare/areDatesEqual.js +1 -1
- package/dist/plain/compare/areDatesEqualBy.d.ts +5 -5
- package/dist/plain/compare/areDatesEqualBy.js +5 -5
- package/dist/plain/compare/areTimesEqual.js +1 -1
- package/dist/plain/compare/isAfterDate.js +1 -1
- package/dist/plain/compare/isAfterDateTime.js +1 -1
- package/dist/plain/compare/isAfterTime.js +1 -1
- package/dist/plain/compare/isBeforeDate.js +1 -1
- package/dist/plain/compare/isBeforeDateTime.js +1 -1
- package/dist/plain/compare/isBeforeTime.js +1 -1
- package/dist/plain/compare/isBetweenDate.js +1 -1
- package/dist/plain/compare/isBetweenDateTime.js +1 -1
- package/dist/plain/compare/isBetweenTime.js +1 -1
- package/dist/plain/compare/isBusinessDay.d.ts +2 -2
- package/dist/plain/compare/isBusinessDay.js +3 -3
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +8 -6
- package/dist/plain/compare/isThisUnit.js +7 -5
- package/dist/plain/compare/isWeekend.d.ts +5 -5
- package/dist/plain/compare/isWeekend.js +6 -6
- package/dist/plain/format/formatCalendar.d.ts +3 -5
- package/dist/plain/format/formatCalendar.js +10 -9
- package/dist/plain/format/formatDate.d.ts +4 -4
- package/dist/plain/format/formatDate.js +8 -7
- package/dist/plain/format/formatDateRange.d.ts +4 -4
- package/dist/plain/format/formatDateRange.js +8 -7
- package/dist/plain/format/formatDateTime.d.ts +4 -4
- package/dist/plain/format/formatDateTime.js +8 -7
- package/dist/plain/format/formatDateTimeRange.d.ts +4 -4
- package/dist/plain/format/formatDateTimeRange.js +8 -7
- package/dist/plain/format/formatDateTimeToParts.d.ts +6 -6
- package/dist/plain/format/formatDateTimeToParts.js +10 -9
- package/dist/plain/format/formatDateToParts.d.ts +6 -6
- package/dist/plain/format/formatDateToParts.js +10 -9
- package/dist/plain/format/formatRelativeDate.d.ts +3 -3
- package/dist/plain/format/formatRelativeDate.js +4 -4
- package/dist/plain/format/formatRelativeDateTime.d.ts +3 -3
- package/dist/plain/format/formatRelativeDateTime.js +4 -4
- package/dist/plain/format/formatRelativeTime.d.ts +3 -3
- package/dist/plain/format/formatRelativeTime.js +4 -4
- package/dist/plain/format/formatSqlDateTime.js +1 -1
- package/dist/plain/format/formatTime.d.ts +4 -4
- package/dist/plain/format/formatTime.js +8 -7
- package/dist/plain/get/getDay.js +1 -1
- package/dist/plain/get/getDayOfWeek.js +1 -1
- package/dist/plain/get/getHour.js +1 -1
- package/dist/plain/get/getMicrosecond.js +1 -1
- package/dist/plain/get/getMillisecond.js +1 -1
- package/dist/plain/get/getMinute.js +1 -1
- package/dist/plain/get/getMonth.js +1 -1
- package/dist/plain/get/getNanosecond.js +1 -1
- package/dist/plain/get/getNow.js +1 -1
- package/dist/plain/get/getNowUnit.js +1 -1
- package/dist/plain/get/getSecond.js +1 -1
- package/dist/plain/get/getToday.js +1 -1
- package/dist/plain/get/getWeekOfYear.js +1 -1
- package/dist/plain/get/getYear.js +1 -1
- package/dist/plain/index.d.ts +1 -1
- package/dist/plain/index.js +2 -2
- package/dist/plain/interval/intervalAbutsDate.d.ts +1 -2
- package/dist/plain/interval/intervalAbutsDate.js +2 -3
- package/dist/plain/interval/intervalAbutsDateTime.js +1 -1
- package/dist/plain/interval/intervalAbutsTime.js +1 -1
- package/dist/plain/interval/intervalContainsDate.d.ts +1 -1
- package/dist/plain/interval/intervalContainsDate.js +2 -2
- package/dist/plain/interval/intervalContainsDateTime.js +1 -1
- package/dist/plain/interval/intervalContainsTime.js +1 -1
- package/dist/plain/interval/intervalCountDate.js +1 -1
- package/dist/plain/interval/intervalCountDateTime.js +1 -1
- package/dist/plain/interval/intervalCountTime.js +1 -1
- package/dist/plain/interval/intervalDifferenceDate.d.ts +1 -1
- package/dist/plain/interval/intervalDifferenceDate.js +2 -2
- package/dist/plain/interval/intervalDifferenceDateTime.js +1 -1
- package/dist/plain/interval/intervalDifferenceTime.js +1 -1
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +3 -3
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -3
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +1 -1
- package/dist/plain/interval/intervalDivideEquallyTime.js +1 -1
- package/dist/plain/interval/intervalEngulfsDate.d.ts +1 -1
- package/dist/plain/interval/intervalEngulfsDate.js +2 -2
- package/dist/plain/interval/intervalEngulfsDateTime.js +1 -1
- package/dist/plain/interval/intervalEngulfsTime.js +1 -1
- package/dist/plain/interval/intervalFromDurationDate.js +1 -1
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -1
- package/dist/plain/interval/intervalFromDurationTime.js +1 -1
- package/dist/plain/interval/intervalIntersectionDate.d.ts +1 -1
- package/dist/plain/interval/intervalIntersectionDate.js +2 -2
- package/dist/plain/interval/intervalIntersectionDateTime.js +1 -1
- package/dist/plain/interval/intervalIntersectionTime.js +1 -1
- package/dist/plain/interval/intervalLengthDateTime.js +1 -1
- package/dist/plain/interval/intervalLengthTime.js +1 -1
- package/dist/plain/interval/intervalOverlappingDaysDate.js +1 -1
- package/dist/plain/interval/intervalOverlappingDaysDateTime.js +1 -1
- package/dist/plain/interval/intervalSplitAtDate.d.ts +1 -1
- package/dist/plain/interval/intervalSplitAtDate.js +2 -2
- package/dist/plain/interval/intervalSplitAtDateTime.js +1 -1
- package/dist/plain/interval/intervalSplitAtTime.js +1 -1
- package/dist/plain/interval/intervalUnionDate.d.ts +2 -2
- package/dist/plain/interval/intervalUnionDate.js +3 -3
- package/dist/plain/interval/intervalUnionDateTime.js +1 -1
- package/dist/plain/interval/intervalUnionTime.js +1 -1
- package/dist/plain/interval/intervalXorAllDate.d.ts +1 -1
- package/dist/plain/interval/intervalXorAllDate.js +2 -2
- package/dist/plain/interval/intervalXorAllDateTime.js +1 -1
- package/dist/plain/interval/intervalXorAllTime.js +1 -1
- package/dist/plain/interval/intervalXorDate.d.ts +1 -1
- package/dist/plain/interval/intervalXorDate.js +2 -2
- package/dist/plain/interval/intervalXorDateTime.js +1 -1
- package/dist/plain/interval/intervalXorTime.js +1 -1
- package/dist/plain/interval/intervalsOverlapDate.d.ts +1 -1
- package/dist/plain/interval/intervalsOverlapDate.js +2 -2
- package/dist/plain/interval/intervalsOverlapDateTime.js +1 -1
- package/dist/plain/interval/intervalsOverlapTime.js +1 -1
- package/dist/plain/interval/mergeIntervalsDate.d.ts +1 -1
- package/dist/plain/interval/mergeIntervalsDate.js +2 -2
- package/dist/plain/interval/mergeIntervalsDateTime.js +1 -1
- package/dist/plain/interval/mergeIntervalsTime.js +1 -1
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +2 -3
- package/dist/plain/interval/splitIntervalByUnitDate.js +3 -4
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +2 -1
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +3 -2
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -1
- package/dist/plain/interval/validate/isValidDateInterval.d.ts +1 -1
- package/dist/plain/interval/validate/isValidDateInterval.js +2 -2
- package/dist/plain/interval/validate/isValidDateTimeInterval.js +1 -1
- package/dist/plain/interval/validate/isValidTimeInterval.js +1 -1
- package/dist/plain/locale/getLocaleEraNames.d.ts +6 -6
- package/dist/plain/locale/getLocaleEraNames.js +8 -7
- package/dist/plain/locale/getLocaleMeridiems.d.ts +5 -5
- package/dist/plain/locale/getLocaleMeridiems.js +7 -6
- package/dist/plain/locale/getLocaleMonthNames.d.ts +6 -6
- package/dist/plain/locale/getLocaleMonthNames.js +17 -11
- package/dist/plain/locale/getLocaleWeekdayNames.d.ts +3 -3
- package/dist/plain/locale/getLocaleWeekdayNames.js +12 -5
- package/dist/plain/map/mapDatesInRange.js +1 -1
- package/dist/plain/map/mapDaysInMonth.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +14 -13
- package/dist/plain/parse/parseDateTimeWithPattern.js +15 -14
- package/dist/plain/parse/parseDateWithPattern.d.ts +18 -17
- package/dist/plain/parse/parseDateWithPattern.js +19 -18
- package/dist/plain/parse/parseDayFromDate.js +1 -1
- package/dist/plain/parse/parseDayFromDateTime.js +1 -1
- package/dist/plain/parse/parseDayOfWeekFromDate.js +1 -1
- package/dist/plain/parse/parseDayOfWeekFromDateTime.js +1 -1
- package/dist/plain/parse/parseHourFromDateTime.js +1 -1
- package/dist/plain/parse/parseHourFromTime.js +1 -1
- package/dist/plain/parse/parseMicrosecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseMicrosecondFromTime.js +1 -1
- package/dist/plain/parse/parseMillisecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseMillisecondFromTime.js +1 -1
- package/dist/plain/parse/parseMinuteFromDateTime.js +1 -1
- package/dist/plain/parse/parseMinuteFromTime.js +1 -1
- package/dist/plain/parse/parseMonthFromDate.js +1 -1
- package/dist/plain/parse/parseMonthFromDateTime.js +1 -1
- package/dist/plain/parse/parseNanosecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseNanosecondFromTime.js +1 -1
- package/dist/plain/parse/parseSecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseSecondFromTime.js +1 -1
- package/dist/plain/parse/parseSqlDateTime.js +1 -1
- package/dist/plain/parse/parseTimeWithPattern.d.ts +6 -4
- package/dist/plain/parse/parseTimeWithPattern.js +7 -5
- package/dist/plain/parse/parseUnitFromDate.d.ts +1 -1
- package/dist/plain/parse/parseUnitFromDate.js +1 -1
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +1 -1
- package/dist/plain/parse/parseUnitFromDateTime.js +1 -1
- package/dist/plain/parse/parseUnitFromTime.d.ts +1 -1
- package/dist/plain/parse/parseUnitFromTime.js +1 -1
- package/dist/plain/parse/parseWeekFromDateTime.js +1 -1
- package/dist/plain/parse/parseYearFromDate.js +1 -1
- package/dist/plain/parse/parseYearFromDateTime.js +1 -1
- package/dist/plain/validate/{isLeapSecond.d.ts → hasSecond60.d.ts} +16 -14
- package/dist/plain/validate/{isLeapSecond.js → hasSecond60.js} +16 -14
- package/dist/plain/validate/index.d.ts +1 -1
- package/dist/plain/validate/index.js +1 -1
- package/dist/plain/validate/isLeapYear.js +1 -1
- package/dist/plain/validate/isValidDate.js +2 -17
- package/dist/plain/validate/isValidDateRange.js +1 -1
- package/dist/plain/validate/isValidDateTime.d.ts +1 -1
- package/dist/plain/validate/isValidDateTime.js +4 -4
- package/dist/plain/validate/isValidDateTimeRange.js +1 -1
- package/dist/plain/validate/isValidIsoDateLike.js +3 -3
- package/dist/plain/validate/isValidTime.js +2 -18
- package/dist/plain/validate/isValidTimeRange.js +1 -1
- package/dist/precision/convert/fromNanoseconds.d.ts +2 -2
- package/dist/precision/convert/fromNanoseconds.js +3 -3
- package/dist/precision/convert/toNanoseconds.d.ts +2 -2
- package/dist/precision/convert/toNanoseconds.js +2 -2
- package/dist/precision/index.d.ts +1 -1
- package/dist/precision/index.js +2 -2
- package/dist/precision/validate/isValidInstant.d.ts +1 -1
- package/dist/precision/validate/isValidInstant.js +1 -1
- package/dist/regex/calendar-zoned-date-time.d.ts +4 -4
- package/dist/regex/calendar-zoned-date-time.js +4 -4
- package/dist/regex/index.d.ts +1 -1
- package/dist/regex/index.js +2 -2
- package/dist/regex/leap-second.d.ts +1 -1
- package/dist/regex/leap-second.js +1 -1
- package/dist/regex/time-zone-like.d.ts +2 -2
- package/dist/regex/time-zone-like.js +2 -2
- package/dist/span/calculate/spanMs.d.ts +4 -3
- package/dist/span/calculate/spanMs.js +4 -3
- package/dist/span/calculate/spanNs.d.ts +4 -3
- package/dist/span/calculate/spanNs.js +4 -3
- package/dist/span/calculate/spanWallClock.d.ts +12 -12
- package/dist/span/calculate/spanWallClock.js +13 -13
- package/dist/span/index.d.ts +1 -1
- package/dist/span/index.js +2 -2
- package/dist/span/validate/isValidSpan.d.ts +3 -3
- package/dist/span/validate/isValidSpan.js +3 -3
- package/dist/timescale/calculate/index.d.ts +3 -0
- package/dist/timescale/calculate/index.js +3 -0
- package/dist/timescale/calculate/leapSecondsBetween.d.ts +26 -0
- package/dist/timescale/calculate/leapSecondsBetween.js +62 -0
- package/dist/timescale/calculate/nextLeapSecond.d.ts +18 -0
- package/dist/timescale/calculate/nextLeapSecond.js +33 -0
- package/dist/timescale/calculate/taiMinusUtc.d.ts +21 -0
- package/dist/timescale/calculate/taiMinusUtc.js +38 -0
- package/dist/timescale/convert/fromTAI.d.ts +22 -0
- package/dist/timescale/convert/fromTAI.js +35 -0
- package/dist/timescale/convert/index.d.ts +2 -0
- package/dist/timescale/convert/index.js +2 -0
- package/dist/timescale/convert/toTAI.d.ts +23 -0
- package/dist/timescale/convert/toTAI.js +39 -0
- package/dist/timescale/index.d.ts +4 -0
- package/dist/timescale/index.js +5 -0
- package/dist/timescale/validate/index.d.ts +1 -0
- package/dist/timescale/validate/index.js +1 -0
- package/dist/timescale/validate/isLeapSecond.d.ts +25 -0
- package/dist/timescale/validate/isLeapSecond.js +36 -0
- package/dist/transport/calculate/crossingTime.d.ts +2 -2
- package/dist/transport/calculate/crossingTime.js +3 -3
- package/dist/transport/calculate/cutoffAt.d.ts +4 -4
- package/dist/transport/calculate/cutoffAt.js +24 -133
- package/dist/transport/calculate/cutoffSchedule.d.ts +2 -2
- package/dist/transport/calculate/cutoffSchedule.js +52 -20
- package/dist/transport/calculate/dwellTime.d.ts +3 -3
- package/dist/transport/calculate/dwellTime.js +4 -4
- package/dist/transport/calculate/estimateDrift.d.ts +1 -1
- package/dist/transport/calculate/estimateDrift.js +1 -1
- package/dist/transport/calculate/nextDeparture.d.ts +2 -2
- package/dist/transport/calculate/nextDeparture.js +2 -2
- package/dist/transport/calculate/scheduleDelivery.d.ts +2 -2
- package/dist/transport/calculate/scheduleDelivery.js +3 -3
- package/dist/transport/calculate/transitTime.d.ts +11 -11
- package/dist/transport/calculate/transitTime.js +11 -11
- package/dist/transport/compare/classifyPunctuality.d.ts +1 -1
- package/dist/transport/compare/classifyPunctuality.js +1 -1
- package/dist/transport/compare/isPastCutoff.d.ts +1 -1
- package/dist/transport/compare/isPastCutoff.js +2 -2
- package/dist/transport/compare/scheduleDeviation.d.ts +1 -1
- package/dist/transport/compare/scheduleDeviation.js +1 -1
- package/dist/transport/compare/timeToCutoff.d.ts +1 -1
- package/dist/transport/compare/timeToCutoff.js +1 -1
- package/dist/transport/convert/etaAtZone.d.ts +2 -2
- package/dist/transport/convert/etaAtZone.js +2 -2
- package/dist/transport/index.d.ts +1 -1
- package/dist/transport/index.js +2 -2
- package/dist/types/date-duration-unit.d.ts +1 -1
- package/dist/types/date-time-duration-units.d.ts +1 -1
- package/dist/types/date-time-unit.d.ts +1 -1
- package/dist/types/date-unit.d.ts +1 -1
- package/dist/types/disambiguation.d.ts +1 -1
- package/dist/types/duration-relative-to.d.ts +1 -1
- package/dist/types/duration-string-options.d.ts +1 -1
- package/dist/types/exact-duration-unit.d.ts +1 -1
- package/dist/types/fiscal-calendar.d.ts +40 -4
- package/dist/types/gnss.d.ts +51 -0
- package/dist/types/gnss.js +0 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +2 -0
- package/dist/types/now-unit.d.ts +1 -1
- package/dist/types/offset.d.ts +1 -1
- package/dist/types/overflow.d.ts +1 -1
- package/dist/types/rounding-options.d.ts +1 -1
- package/dist/types/stored-zoned-classification.d.ts +83 -0
- package/dist/types/stored-zoned-classification.js +0 -0
- package/dist/types/time-duration-unit.d.ts +1 -1
- package/dist/types/time-unit.d.ts +1 -1
- package/dist/types/utc-now-unit.d.ts +1 -1
- package/dist/unix/calculate/diffUnix.d.ts +1 -1
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +1 -1
- package/dist/unix/calculate/endOfUnix.d.ts +2 -2
- package/dist/unix/calculate/endOfUnix.js +1 -1
- package/dist/unix/calculate/isBetweenUnix.js +1 -1
- package/dist/unix/calculate/roundUnix.d.ts +7 -5
- package/dist/unix/calculate/roundUnix.js +6 -4
- package/dist/unix/calculate/setUnix.d.ts +3 -3
- package/dist/unix/calculate/setUnix.js +2 -2
- package/dist/unix/calculate/startOfUnix.d.ts +2 -2
- package/dist/unix/calculate/startOfUnix.js +1 -1
- package/dist/unix/compare/areUnixEqualBy.d.ts +6 -6
- package/dist/unix/compare/areUnixEqualBy.js +5 -5
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +1 -1
- package/dist/unix/convert/convertUnixToPlainTime.js +1 -1
- package/dist/unix/convert/convertUnixToZoned.d.ts +1 -1
- package/dist/unix/convert/convertUnixToZoned.js +1 -1
- package/dist/unix/format/formatCalendarUnix.d.ts +10 -9
- package/dist/unix/format/formatCalendarUnix.js +6 -6
- package/dist/unix/format/formatRelativeUnix.d.ts +7 -7
- package/dist/unix/format/formatRelativeUnix.js +7 -7
- package/dist/unix/format/formatUnix.d.ts +9 -9
- package/dist/unix/format/formatUnix.js +9 -9
- package/dist/unix/get/getUnixDay.js +1 -1
- package/dist/unix/get/getUnixHour.js +1 -1
- package/dist/unix/get/getUnixMicrosecond.js +1 -1
- package/dist/unix/get/getUnixMillisecond.js +1 -1
- package/dist/unix/get/getUnixMinute.js +1 -1
- package/dist/unix/get/getUnixMonth.js +1 -1
- package/dist/unix/get/getUnixNanosecond.js +1 -1
- package/dist/unix/get/getUnixNow.js +1 -1
- package/dist/unix/get/getUnixNowUnit.d.ts +1 -1
- package/dist/unix/get/getUnixNowUnit.js +1 -1
- package/dist/unix/get/getUnixSecond.js +1 -1
- package/dist/unix/get/getUnixYear.js +1 -1
- package/dist/unix/index.d.ts +1 -1
- package/dist/unix/index.js +2 -2
- package/dist/unix/interval/intervalFromDurationUnix.js +1 -1
- package/dist/unix/interval/intervalLengthUnix.d.ts +2 -2
- package/dist/unix/interval/intervalLengthUnix.js +2 -2
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +3 -2
- package/dist/unix/interval/splitIntervalByUnitUnix.js +4 -3
- package/dist/unix/parse/parseUnitFromUnix.d.ts +1 -1
- package/dist/utc/calculate/addUtc.js +1 -1
- package/dist/utc/calculate/diffUtc.d.ts +1 -1
- package/dist/utc/calculate/diffUtc.js +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
- package/dist/utc/calculate/endOfQuarterForUtc.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +1 -1
- package/dist/utc/calculate/isBetweenUtc.js +1 -1
- package/dist/utc/calculate/maxUtc.js +1 -1
- package/dist/utc/calculate/minUtc.js +1 -1
- package/dist/utc/calculate/roundUtc.d.ts +1 -1
- package/dist/utc/calculate/roundUtc.js +1 -1
- package/dist/utc/calculate/setUtc.d.ts +1 -1
- package/dist/utc/calculate/setUtc.js +1 -1
- package/dist/utc/calculate/sortUtc.js +1 -1
- package/dist/utc/calculate/startOfQuarterForUtc.js +1 -1
- package/dist/utc/calculate/startOfUtc.d.ts +1 -1
- package/dist/utc/calculate/subtractUtc.js +1 -1
- package/dist/utc/compare/areUtcEqual.js +1 -1
- package/dist/utc/compare/areUtcEqualBy.d.ts +2 -2
- package/dist/utc/compare/areUtcEqualBy.js +2 -2
- package/dist/utc/compare/isAfterUtc.js +1 -1
- package/dist/utc/compare/isBeforeUtc.js +1 -1
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +1 -1
- package/dist/utc/convert/convertUtcToPlainDate.js +2 -2
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +1 -1
- package/dist/utc/convert/convertUtcToPlainDateTime.js +2 -2
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +1 -1
- package/dist/utc/convert/convertUtcToPlainTime.js +2 -2
- package/dist/utc/convert/convertUtcToUnix.js +1 -1
- package/dist/utc/convert/convertUtcToZoned.d.ts +1 -1
- package/dist/utc/convert/convertUtcToZoned.js +2 -2
- package/dist/utc/format/formatCalendarUtc.d.ts +6 -5
- package/dist/utc/format/formatCalendarUtc.js +3 -3
- package/dist/utc/format/formatHttpDate.js +1 -1
- package/dist/utc/format/formatRelativeUtc.d.ts +5 -5
- package/dist/utc/format/formatRelativeUtc.js +5 -5
- package/dist/utc/format/formatUtc.d.ts +8 -8
- package/dist/utc/format/formatUtc.js +8 -8
- package/dist/utc/get/getUtcDay.js +1 -1
- package/dist/utc/get/getUtcHour.js +1 -1
- package/dist/utc/get/getUtcMicrosecond.js +1 -1
- package/dist/utc/get/getUtcMillisecond.js +1 -1
- package/dist/utc/get/getUtcMinute.js +1 -1
- package/dist/utc/get/getUtcMonth.js +1 -1
- package/dist/utc/get/getUtcNanosecond.js +1 -1
- package/dist/utc/get/getUtcNow.js +1 -1
- package/dist/utc/get/getUtcNowUnit.js +1 -1
- package/dist/utc/get/getUtcSecond.js +1 -1
- package/dist/utc/get/getUtcYear.js +1 -1
- package/dist/utc/index.d.ts +1 -1
- package/dist/utc/index.js +2 -2
- package/dist/utc/interval/intervalAbutsUtc.js +1 -1
- package/dist/utc/interval/intervalContainsUtc.js +1 -1
- package/dist/utc/interval/intervalCountUtc.js +1 -1
- package/dist/utc/interval/intervalDivideEquallyUtc.js +1 -1
- package/dist/utc/interval/intervalEngulfsUtc.js +1 -1
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -1
- package/dist/utc/interval/intervalLengthUtc.js +1 -1
- package/dist/utc/interval/intervalOverlappingDaysUtc.js +1 -1
- package/dist/utc/interval/intervalSplitAtUtc.js +1 -1
- package/dist/utc/interval/intervalXorAllUtc.js +1 -1
- package/dist/utc/interval/intervalXorUtc.js +1 -1
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +2 -1
- package/dist/utc/interval/splitIntervalByUnitUtc.js +3 -2
- package/dist/utc/interval/validate/isValidUtcInterval.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseDateFromUtc.js +1 -1
- package/dist/utc/parse/parseDayFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseDayFromUtc.js +1 -1
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +2 -2
- package/dist/utc/parse/parseHourFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseHourFromUtc.js +1 -1
- package/dist/utc/parse/parseHttpDate.js +1 -1
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseMicrosecondFromUtc.js +1 -1
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseMillisecondFromUtc.js +1 -1
- package/dist/utc/parse/parseMonthFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseMonthFromUtc.js +1 -1
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseNanosecondFromUtc.js +1 -1
- package/dist/utc/parse/parseSecondFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseSecondFromUtc.js +1 -1
- package/dist/utc/parse/parseTimeFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseTimeFromUtc.js +2 -2
- package/dist/utc/parse/parseUnitFromUtc.d.ts +2 -2
- package/dist/utc/parse/parseUnitFromUtc.js +2 -2
- package/dist/utc/parse/parseWeekFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseWeekFromUtc.js +2 -2
- package/dist/utc/parse/parseYearFromUtc.d.ts +1 -1
- package/dist/utc/parse/parseYearFromUtc.js +1 -1
- package/dist/utc/validate/isValidUtc.js +3 -3
- package/dist/utc/validate/isValidUtcRange.js +1 -1
- package/dist/{duty → workforce}/calculate/dutyDayFor.js +1 -1
- package/dist/{duty → workforce}/calculate/evaluateDutyLog.js +1 -1
- package/dist/{duty → workforce}/calculate/longestRun.js +1 -1
- package/dist/{duty → workforce}/calculate/qualifyingRestPairs.js +1 -1
- package/dist/{duty → workforce}/calculate/qualifyingRests.js +1 -1
- package/dist/workforce/index.d.ts +3 -0
- package/dist/workforce/index.js +4 -0
- package/dist/{duty → workforce}/validate/isValidDutyLog.d.ts +2 -2
- package/dist/{duty → workforce}/validate/isValidDutyLog.js +2 -2
- package/dist/zoned/calculate/addZoned.d.ts +15 -15
- package/dist/zoned/calculate/addZoned.js +15 -15
- package/dist/zoned/calculate/addZonedBusinessDays.d.ts +5 -4
- package/dist/zoned/calculate/addZonedBusinessDays.js +5 -4
- package/dist/zoned/calculate/clampZoned.js +1 -1
- package/dist/zoned/calculate/diffZoned.d.ts +8 -8
- package/dist/zoned/calculate/diffZoned.js +7 -7
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +5 -5
- package/dist/zoned/calculate/diffZonedAsDuration.js +4 -4
- package/dist/zoned/calculate/endOfZoned.d.ts +3 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -2
- package/dist/zoned/calculate/getHoursInZonedDay.d.ts +2 -2
- package/dist/zoned/calculate/getHoursInZonedDay.js +2 -2
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +6 -5
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +6 -5
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +5 -5
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -5
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +6 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +6 -6
- package/dist/zoned/calculate/maxZoned.d.ts +2 -2
- package/dist/zoned/calculate/maxZoned.js +3 -3
- package/dist/zoned/calculate/minZoned.d.ts +2 -2
- package/dist/zoned/calculate/minZoned.js +3 -3
- package/dist/zoned/calculate/roundZoned.d.ts +11 -9
- package/dist/zoned/calculate/roundZoned.js +11 -9
- package/dist/zoned/calculate/setZoned.d.ts +8 -8
- package/dist/zoned/calculate/setZoned.js +8 -8
- package/dist/zoned/calculate/sortZoned.d.ts +3 -3
- package/dist/zoned/calculate/sortZoned.js +4 -4
- package/dist/zoned/calculate/startOfZoned.d.ts +3 -3
- package/dist/zoned/calculate/startOfZoned.js +2 -2
- package/dist/zoned/calculate/subtractZoned.d.ts +14 -14
- package/dist/zoned/calculate/subtractZoned.js +14 -14
- package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +5 -4
- package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -4
- package/dist/zoned/chop/chopZonedDate.d.ts +1 -1
- package/dist/zoned/chop/chopZonedDate.js +1 -1
- package/dist/zoned/chop/chopZonedMilliseconds.d.ts +1 -1
- package/dist/zoned/chop/chopZonedMilliseconds.js +1 -1
- package/dist/zoned/chop/chopZonedSeconds.d.ts +1 -1
- package/dist/zoned/chop/chopZonedSeconds.js +1 -1
- package/dist/zoned/chop/chopZonedTime.d.ts +1 -1
- package/dist/zoned/chop/chopZonedTime.js +1 -1
- package/dist/zoned/chop/chopZonedTimezone.d.ts +1 -1
- package/dist/zoned/chop/chopZonedTimezone.js +1 -1
- package/dist/zoned/classify/classifyStoredZoned.d.ts +46 -0
- package/dist/zoned/classify/classifyStoredZoned.js +177 -0
- package/dist/zoned/classify/index.d.ts +1 -0
- package/dist/zoned/classify/index.js +1 -0
- package/dist/zoned/compare/areZonedEqual.js +1 -1
- package/dist/zoned/compare/areZonedEqualBy.d.ts +8 -10
- package/dist/zoned/compare/areZonedEqualBy.js +8 -10
- package/dist/zoned/compare/isAfterZoned.js +1 -1
- package/dist/zoned/compare/isBeforeZoned.d.ts +2 -2
- package/dist/zoned/compare/isBeforeZoned.js +3 -3
- package/dist/zoned/compare/isBetweenZoned.js +1 -1
- package/dist/zoned/compare/isInDaylightSaving.d.ts +2 -2
- package/dist/zoned/compare/isInDaylightSaving.js +2 -2
- package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -6
- package/dist/zoned/compare/isZonedBusinessDay.js +7 -6
- package/dist/zoned/compare/isZonedFuture.js +1 -1
- package/dist/zoned/compare/isZonedPast.js +1 -1
- package/dist/zoned/compare/isZonedRelativeDay.d.ts +2 -2
- package/dist/zoned/compare/isZonedRelativeDay.js +3 -3
- package/dist/zoned/compare/isZonedThisUnit.d.ts +7 -7
- package/dist/zoned/compare/isZonedThisUnit.js +7 -7
- package/dist/zoned/compare/isZonedWeekend.d.ts +5 -5
- package/dist/zoned/compare/isZonedWeekend.js +5 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +6 -6
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +6 -6
- package/dist/zoned/convert/convertZonedToCalendar.d.ts +5 -5
- package/dist/zoned/convert/convertZonedToCalendar.js +5 -5
- package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +3 -3
- package/dist/zoned/convert/convertZonedToPlainDateTime.js +3 -3
- package/dist/zoned/convert/convertZonedToZoned.d.ts +2 -2
- package/dist/zoned/convert/convertZonedToZoned.js +2 -2
- package/dist/zoned/format/formatCalendarZoned.d.ts +7 -6
- package/dist/zoned/format/formatCalendarZoned.js +5 -5
- package/dist/zoned/format/formatRelativeZoned.d.ts +3 -3
- package/dist/zoned/format/formatRelativeZoned.js +4 -4
- package/dist/zoned/format/formatRfc2822.d.ts +3 -3
- package/dist/zoned/format/formatRfc2822.js +3 -3
- package/dist/zoned/format/formatRfc3339.d.ts +2 -2
- package/dist/zoned/format/formatRfc3339.js +2 -2
- package/dist/zoned/format/formatTimeZoneName.d.ts +17 -17
- package/dist/zoned/format/formatTimeZoneName.js +13 -12
- package/dist/zoned/format/formatZonedDateTime.d.ts +10 -10
- package/dist/zoned/format/formatZonedDateTime.js +12 -11
- package/dist/zoned/format/formatZonedRange.d.ts +7 -7
- package/dist/zoned/format/formatZonedRange.js +9 -8
- package/dist/zoned/format/formatZonedToParts.d.ts +11 -11
- package/dist/zoned/format/formatZonedToParts.js +13 -12
- package/dist/zoned/get/getDstTransitions.d.ts +9 -9
- package/dist/zoned/get/getDstTransitions.js +3 -3
- package/dist/zoned/get/getSystemTimeZone.d.ts +2 -2
- package/dist/zoned/get/getSystemTimeZone.js +2 -2
- package/dist/zoned/get/getTimeZoneOffset.d.ts +5 -5
- package/dist/zoned/get/getTimeZoneOffset.js +5 -5
- package/dist/zoned/get/getTimeZones.d.ts +1 -1
- package/dist/zoned/get/getTimeZones.js +1 -1
- package/dist/zoned/get/getZonedDay.d.ts +1 -1
- package/dist/zoned/get/getZonedDay.js +1 -1
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +1 -1
- package/dist/zoned/get/getZonedDayOfWeek.js +1 -1
- package/dist/zoned/get/getZonedHour.d.ts +1 -1
- package/dist/zoned/get/getZonedHour.js +1 -1
- package/dist/zoned/get/getZonedMicrosecond.d.ts +1 -1
- package/dist/zoned/get/getZonedMicrosecond.js +1 -1
- package/dist/zoned/get/getZonedMillisecond.d.ts +1 -1
- package/dist/zoned/get/getZonedMillisecond.js +1 -1
- package/dist/zoned/get/getZonedMinute.d.ts +1 -1
- package/dist/zoned/get/getZonedMinute.js +1 -1
- package/dist/zoned/get/getZonedMonth.d.ts +1 -1
- package/dist/zoned/get/getZonedMonth.js +1 -1
- package/dist/zoned/get/getZonedNanosecond.d.ts +1 -1
- package/dist/zoned/get/getZonedNanosecond.js +1 -1
- package/dist/zoned/get/getZonedNow.d.ts +4 -4
- package/dist/zoned/get/getZonedNow.js +4 -4
- package/dist/zoned/get/getZonedNowUnit.d.ts +2 -2
- package/dist/zoned/get/getZonedNowUnit.js +1 -1
- package/dist/zoned/get/getZonedSecond.d.ts +1 -1
- package/dist/zoned/get/getZonedSecond.js +1 -1
- package/dist/zoned/get/getZonedToday.d.ts +1 -1
- package/dist/zoned/get/getZonedToday.js +1 -1
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +1 -1
- package/dist/zoned/get/getZonedWeekOfYear.js +1 -1
- package/dist/zoned/get/getZonedYear.d.ts +1 -1
- package/dist/zoned/get/getZonedYear.js +1 -1
- package/dist/zoned/index.d.ts +2 -1
- package/dist/zoned/index.js +3 -2
- package/dist/zoned/interval/intervalAbutsZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalAbutsZoned.js +3 -3
- package/dist/zoned/interval/intervalContainsZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalContainsZoned.js +2 -2
- package/dist/zoned/interval/intervalCountZoned.d.ts +4 -4
- package/dist/zoned/interval/intervalCountZoned.js +5 -5
- package/dist/zoned/interval/intervalDifferenceZoned.js +1 -1
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +2 -2
- package/dist/zoned/interval/intervalEngulfsZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalEngulfsZoned.js +2 -2
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +6 -6
- package/dist/zoned/interval/intervalFromDurationZoned.js +7 -7
- package/dist/zoned/interval/intervalIntersectionZoned.js +1 -1
- package/dist/zoned/interval/intervalLengthZoned.d.ts +5 -5
- package/dist/zoned/interval/intervalLengthZoned.js +5 -5
- package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalOverlappingDaysZoned.js +3 -3
- package/dist/zoned/interval/intervalSplitAtZoned.js +14 -16
- package/dist/zoned/interval/intervalUnionZoned.js +1 -1
- package/dist/zoned/interval/intervalXorAllZoned.js +1 -1
- package/dist/zoned/interval/intervalXorZoned.js +1 -1
- package/dist/zoned/interval/intervalsOverlapZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalsOverlapZoned.js +3 -3
- package/dist/zoned/interval/mergeIntervalsZoned.js +1 -1
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +2 -1
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +3 -2
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +2 -2
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +3 -3
- package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +1 -1
- package/dist/zoned/interval/validate/isValidZonedInterval.js +2 -2
- package/dist/zoned/map/mapZonedDatesInRange.js +1 -1
- package/dist/zoned/map/mapZonedHoursInDay.d.ts +1 -1
- package/dist/zoned/map/mapZonedHoursInDay.js +2 -2
- package/dist/zoned/parse/getZonedOffset.d.ts +1 -1
- package/dist/zoned/parse/getZonedOffset.js +1 -1
- package/dist/zoned/parse/getZonedOffsetAs.d.ts +6 -6
- package/dist/zoned/parse/getZonedOffsetAs.js +3 -3
- package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseRfc3339.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +1 -1
- package/dist/zoned/validate/hasDaylightSaving.d.ts +2 -2
- package/dist/zoned/validate/hasDaylightSaving.js +3 -3
- package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +8 -8
- package/dist/zoned/validate/isValidCalendarZonedDateTime.js +8 -8
- package/dist/zoned/validate/isValidTimeZone.d.ts +1 -1
- package/dist/zoned/validate/isValidTimeZone.js +3 -18
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +7 -7
- package/dist/zoned/validate/isValidZonedDateTime.js +9 -9
- package/dist/zoned/validate/isValidZonedRange.d.ts +1 -1
- package/dist/zoned/validate/isValidZonedRange.js +5 -5
- package/package.json +71 -21
- package/skills/gmt-arithmetic/SKILL.md +18 -59
- package/skills/gmt-basics/SKILL.md +32 -12
- package/skills/gmt-gnss/SKILL.md +92 -0
- package/skills/gmt-integration/SKILL.md +48 -15
- package/skills/gmt-intermodal/SKILL.md +189 -0
- package/skills/gmt-timezone/SKILL.md +34 -257
- package/skills/gmt-transport/SKILL.md +133 -0
- package/skills/gmt-workforce/SKILL.md +84 -0
- package/dist/duty/index.d.ts +0 -3
- package/dist/duty/index.js +0 -4
- /package/dist/{duty → workforce}/calculate/dutyDayFor.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/dutyTotals.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/dutyTotals.js +0 -0
- /package/dist/{duty → workforce}/calculate/dutyViolations.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/dutyViolations.js +0 -0
- /package/dist/{duty → workforce}/calculate/evaluateDutyLog.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/index.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/index.js +0 -0
- /package/dist/{duty → workforce}/calculate/longestRun.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/qualifyingRestPairs.d.ts +0 -0
- /package/dist/{duty → workforce}/calculate/qualifyingRests.d.ts +0 -0
- /package/dist/{duty → workforce}/validate/index.d.ts +0 -0
- /package/dist/{duty → workforce}/validate/index.js +0 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { GnssSystem, GnssWeek, GnssWeekCounter } from "../types/gnss.js";
|
|
2
|
+
/** The scale a week counter counts on, and after how many weeks it wraps. */
|
|
3
|
+
export interface GnssWeekCounterSpec {
|
|
4
|
+
/** The satellite time scale whose epoch is week 0 of era 0. */
|
|
5
|
+
readonly system: GnssSystem;
|
|
6
|
+
/** The number of week values the counter can show: it wraps to 0 after `modulus − 1`. */
|
|
7
|
+
readonly modulus: bigint;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The broadcast week counters, each with exactly one width. GLONASS broadcasts no week number,
|
|
11
|
+
* so it has none.
|
|
12
|
+
*/
|
|
13
|
+
export declare const GNSS_WEEK_COUNTERS: Readonly<Record<GnssWeekCounter, GnssWeekCounterSpec>>;
|
|
14
|
+
/**
|
|
15
|
+
* Whether a value names one of the eight broadcast week counters.
|
|
16
|
+
*
|
|
17
|
+
* @param value candidate counter
|
|
18
|
+
* @returns true for a `GnssWeekCounter` member
|
|
19
|
+
*/
|
|
20
|
+
export declare function isGnssWeekCounter(value: unknown): value is GnssWeekCounter;
|
|
21
|
+
/**
|
|
22
|
+
* A week number as a bigint: any safe integer from 0. The caller checks a counter's modulus.
|
|
23
|
+
*
|
|
24
|
+
* @param week candidate week number
|
|
25
|
+
* @returns the week, or null when it is not a safe integer ≥ 0
|
|
26
|
+
*/
|
|
27
|
+
export declare function weekNumber(week: unknown): bigint | null;
|
|
28
|
+
/**
|
|
29
|
+
* Seconds of week as nanoseconds, rounded to the nearest nanosecond (TC39 Temporal's resolution;
|
|
30
|
+
* a GMT rule). Valid from 0 up to but not including one week, 604 800 s (IS-GPS-200N §3.3.4).
|
|
31
|
+
*
|
|
32
|
+
* @param timeOfWeekSeconds candidate seconds of week
|
|
33
|
+
* @returns the time of week in nanoseconds, or null when it is not a finite number in range or
|
|
34
|
+
* rounds to a whole week
|
|
35
|
+
*/
|
|
36
|
+
export declare function timeOfWeekNanoseconds(timeOfWeekSeconds: unknown): bigint | null;
|
|
37
|
+
/**
|
|
38
|
+
* The label `fullWeek` weeks and `timeOfWeek` nanoseconds after an epoch label.
|
|
39
|
+
*
|
|
40
|
+
* @param epochLabel week 0's first label, label nanoseconds
|
|
41
|
+
* @param fullWeek weeks since the epoch, never wrapped
|
|
42
|
+
* @param timeOfWeek nanoseconds into that week
|
|
43
|
+
* @returns the label, label nanoseconds
|
|
44
|
+
*/
|
|
45
|
+
export declare function labelOfFullWeek(epochLabel: bigint, fullWeek: bigint, timeOfWeek: bigint): bigint;
|
|
46
|
+
/**
|
|
47
|
+
* Split a label into whole weeks since an epoch label and seconds into the week. The seconds are
|
|
48
|
+
* a `number`: the nearest double to the exact nanosecond count.
|
|
49
|
+
*
|
|
50
|
+
* @param epochLabel week 0's first label, label nanoseconds
|
|
51
|
+
* @param labelNanoseconds the label to split
|
|
52
|
+
* @returns the full week and seconds of week, or null before the epoch
|
|
53
|
+
*/
|
|
54
|
+
export declare function weeksSince(epochLabel: bigint, labelNanoseconds: bigint): {
|
|
55
|
+
fullWeek: bigint;
|
|
56
|
+
timeOfWeekSeconds: number;
|
|
57
|
+
} | null;
|
|
58
|
+
/**
|
|
59
|
+
* The era a week number belongs to.
|
|
60
|
+
*
|
|
61
|
+
* - An integer from 0 is the era itself.
|
|
62
|
+
* - `"rolling"` reads `Temporal.Now.instant()` once and picks the era within half a counter
|
|
63
|
+
* period of the current week, clamped at era 0. Call it inside `try`: the clock read can throw.
|
|
64
|
+
* - `{ notBefore }` reads `notBefore` once and picks the earliest occurrence at or after it, so a
|
|
65
|
+
* pivot before the counter's epoch gives era 0; other keys are ignored. It never reads the clock.
|
|
66
|
+
*
|
|
67
|
+
* @param counter the week counter
|
|
68
|
+
* @param week the week number the counter shows
|
|
69
|
+
* @param timeOfWeek nanoseconds into the week
|
|
70
|
+
* @param rolloverEra an integer era from 0, "rolling", or `{ notBefore }`
|
|
71
|
+
* @returns the era, or null for any other value, when the clock reads before the counter's epoch,
|
|
72
|
+
* or for a pivot that is not an instant string or is an unlisted second 60
|
|
73
|
+
*/
|
|
74
|
+
export declare function resolveRolloverEra(counter: GnssWeekCounter, week: bigint, timeOfWeek: bigint, rolloverEra: unknown): bigint | null;
|
|
75
|
+
/**
|
|
76
|
+
* The label of a week time on a counter: epoch + (era × modulus + week) weeks + time of week.
|
|
77
|
+
*
|
|
78
|
+
* @param counter the week counter
|
|
79
|
+
* @param week the week number the counter shows
|
|
80
|
+
* @param timeOfWeek nanoseconds into the week
|
|
81
|
+
* @param era how many times the counter has wrapped
|
|
82
|
+
* @returns the label on the counter's scale, label nanoseconds
|
|
83
|
+
*/
|
|
84
|
+
export declare function labelOfWeek(counter: GnssWeekCounter, week: bigint, timeOfWeek: bigint, era: bigint): bigint;
|
|
85
|
+
/**
|
|
86
|
+
* The week, time of week and era of a label on a counter's scale.
|
|
87
|
+
*
|
|
88
|
+
* @param counter the week counter
|
|
89
|
+
* @param labelNanoseconds a label on the counter's scale
|
|
90
|
+
* @returns a new `GnssWeek`, or null before the counter's epoch
|
|
91
|
+
*/
|
|
92
|
+
export declare function weekOfLabel(counter: GnssWeekCounter, labelNanoseconds: bigint): GnssWeek | null;
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { Temporal } from "./temporal.js";
|
|
2
|
+
import { NANOSECONDS_PER_SECOND, NANOSECONDS_PER_WEEK } from "./foreignEpochs.js";
|
|
3
|
+
import { GNSS_TIME_SCALES, scaleLabelOfUtc } from "./gnssTimeScales.js";
|
|
4
|
+
import { isObject } from "./isObject.js";
|
|
5
|
+
import { LEAP_SECOND_STEPS, taiOfUtc } from "./leapSeconds.js";
|
|
6
|
+
import { parseUtcReading } from "./utcReading.js";
|
|
7
|
+
/**
|
|
8
|
+
* The broadcast week counters, each with exactly one width. GLONASS broadcasts no week number,
|
|
9
|
+
* so it has none.
|
|
10
|
+
*/
|
|
11
|
+
export const GNSS_WEEK_COUNTERS = Object.freeze({
|
|
12
|
+
// IS-GPS-200N §20.3.3.3.1.1: LNAV week, "a modulo 1024 binary representation".
|
|
13
|
+
"GPS-LNAV": Object.freeze({ system: "GPS", modulus: 1024n }),
|
|
14
|
+
// IS-GPS-200N §30.3.3.1.1.1: CNAV week, "a modulo-8192 binary representation".
|
|
15
|
+
"GPS-CNAV": Object.freeze({ system: "GPS", modulus: 8192n }),
|
|
16
|
+
// Galileo OS SIS ICD Issue 2.2 §5.1.2, Table 69: 12-bit week, "covers 4096 weeks".
|
|
17
|
+
GAL: Object.freeze({ system: "GAL", modulus: 4096n }),
|
|
18
|
+
// BDS-SIS-ICD-B1I-3.0 §5.2.4.4: 13-bit week number, "0 through 8191".
|
|
19
|
+
BDT: Object.freeze({ system: "BDT", modulus: 8192n }),
|
|
20
|
+
// IS-QZSS-PNT-006 §4.1.2.3(1): LNAV week modulo 1024.
|
|
21
|
+
"QZS-LNAV": Object.freeze({ system: "QZS", modulus: 1024n }),
|
|
22
|
+
// IS-QZSS-PNT-006 §4.2.2: CNAV week modulo 8192.
|
|
23
|
+
"QZS-CNAV": Object.freeze({ system: "QZS", modulus: 8192n }),
|
|
24
|
+
// ISRO-IRNSS-ICD-SPS-1.1 §5.7: L5/S week "coded on 10 bits … which covers 1024 weeks".
|
|
25
|
+
"IRN-LNAV": Object.freeze({ system: "IRN", modulus: 1024n }),
|
|
26
|
+
// ISRO-NAVIC-ICD-SPS-L1-1.0 §5.6: L1 week "on 13 bits … which covers 8192 weeks".
|
|
27
|
+
"IRN-L1NV": Object.freeze({ system: "IRN", modulus: 8192n }),
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* Whether a value names one of the eight broadcast week counters.
|
|
31
|
+
*
|
|
32
|
+
* @param value candidate counter
|
|
33
|
+
* @returns true for a `GnssWeekCounter` member
|
|
34
|
+
*/
|
|
35
|
+
export function isGnssWeekCounter(value) {
|
|
36
|
+
return typeof value === "string" && Object.hasOwn(GNSS_WEEK_COUNTERS, value);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A week number as a bigint: any safe integer from 0. The caller checks a counter's modulus.
|
|
40
|
+
*
|
|
41
|
+
* @param week candidate week number
|
|
42
|
+
* @returns the week, or null when it is not a safe integer ≥ 0
|
|
43
|
+
*/
|
|
44
|
+
export function weekNumber(week) {
|
|
45
|
+
return Number.isSafeInteger(week) && week >= 0
|
|
46
|
+
? BigInt(week)
|
|
47
|
+
: null;
|
|
48
|
+
}
|
|
49
|
+
/** Nanoseconds in one second, as a `number`, for reading a seconds-of-week `number`. */
|
|
50
|
+
const NANOSECONDS_PER_SECOND_NUMBER = Number(NANOSECONDS_PER_SECOND);
|
|
51
|
+
/**
|
|
52
|
+
* Seconds of week as nanoseconds, rounded to the nearest nanosecond (TC39 Temporal's resolution;
|
|
53
|
+
* a GMT rule). Valid from 0 up to but not including one week, 604 800 s (IS-GPS-200N §3.3.4).
|
|
54
|
+
*
|
|
55
|
+
* @param timeOfWeekSeconds candidate seconds of week
|
|
56
|
+
* @returns the time of week in nanoseconds, or null when it is not a finite number in range or
|
|
57
|
+
* rounds to a whole week
|
|
58
|
+
*/
|
|
59
|
+
export function timeOfWeekNanoseconds(timeOfWeekSeconds) {
|
|
60
|
+
if (typeof timeOfWeekSeconds !== "number" ||
|
|
61
|
+
!Number.isFinite(timeOfWeekSeconds) ||
|
|
62
|
+
timeOfWeekSeconds < 0) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const nanoseconds = BigInt(Math.round(timeOfWeekSeconds * NANOSECONDS_PER_SECOND_NUMBER));
|
|
66
|
+
return nanoseconds < NANOSECONDS_PER_WEEK ? nanoseconds : null;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The label `fullWeek` weeks and `timeOfWeek` nanoseconds after an epoch label.
|
|
70
|
+
*
|
|
71
|
+
* @param epochLabel week 0's first label, label nanoseconds
|
|
72
|
+
* @param fullWeek weeks since the epoch, never wrapped
|
|
73
|
+
* @param timeOfWeek nanoseconds into that week
|
|
74
|
+
* @returns the label, label nanoseconds
|
|
75
|
+
*/
|
|
76
|
+
export function labelOfFullWeek(epochLabel, fullWeek, timeOfWeek) {
|
|
77
|
+
return epochLabel + fullWeek * NANOSECONDS_PER_WEEK + timeOfWeek;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Split a label into whole weeks since an epoch label and seconds into the week. The seconds are
|
|
81
|
+
* a `number`: the nearest double to the exact nanosecond count.
|
|
82
|
+
*
|
|
83
|
+
* @param epochLabel week 0's first label, label nanoseconds
|
|
84
|
+
* @param labelNanoseconds the label to split
|
|
85
|
+
* @returns the full week and seconds of week, or null before the epoch
|
|
86
|
+
*/
|
|
87
|
+
export function weeksSince(epochLabel, labelNanoseconds) {
|
|
88
|
+
const elapsed = labelNanoseconds - epochLabel;
|
|
89
|
+
if (elapsed < 0n) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
fullWeek: elapsed / NANOSECONDS_PER_WEEK,
|
|
94
|
+
timeOfWeekSeconds: Number(elapsed % NANOSECONDS_PER_WEEK) / NANOSECONDS_PER_SECOND_NUMBER,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The era that puts a week within half a counter period of the current one:
|
|
99
|
+
* `Fnow − M/2 < F ≤ Fnow + M/2`, clamped at era 0 (a GMT rule, after the rolling two-digit-year
|
|
100
|
+
* window). Reads `Temporal.Now.instant()` once; call it inside `try`, as the clock read can throw.
|
|
101
|
+
*
|
|
102
|
+
* @param counter the week counter
|
|
103
|
+
* @param week the week number the counter shows
|
|
104
|
+
* @returns the era, or null when the clock reads before the counter's epoch
|
|
105
|
+
*/
|
|
106
|
+
function rollingEra(counter, week) {
|
|
107
|
+
const { system, modulus } = GNSS_WEEK_COUNTERS[counter];
|
|
108
|
+
const now = scaleLabelOfUtc(system, {
|
|
109
|
+
epochNanoseconds: Temporal.Now.instant().epochNanoseconds,
|
|
110
|
+
secondSixty: false,
|
|
111
|
+
});
|
|
112
|
+
if (now === null) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
const currentWeek = (now.labelNanoseconds - GNSS_TIME_SCALES[system].epochLabel) /
|
|
116
|
+
NANOSECONDS_PER_WEEK;
|
|
117
|
+
const numerator = currentWeek - week + modulus / 2n;
|
|
118
|
+
return numerator < 0n ? 0n : numerator / modulus;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The era of the earliest occurrence of a week time whose label is at or after a pivot's label:
|
|
122
|
+
* `Lp ≤ L < Lp + period`. Labels are compared, not UTC instants: every scale with a week counter
|
|
123
|
+
* is continuous, so label order is instant order and a listed leap second keeps its place.
|
|
124
|
+
*
|
|
125
|
+
* @param counter the week counter
|
|
126
|
+
* @param week the week number the counter shows
|
|
127
|
+
* @param timeOfWeek nanoseconds into the week
|
|
128
|
+
* @param notBefore the pivot, an ISO 8601 UTC instant string; a listed second 60 is accepted
|
|
129
|
+
* @returns the era (0 for a pivot before the counter's epoch), or null when the pivot is not an
|
|
130
|
+
* instant string or is a second 60 the leap-second table does not list
|
|
131
|
+
*/
|
|
132
|
+
function pivotEra(counter, week, timeOfWeek, notBefore) {
|
|
133
|
+
const reading = parseUtcReading(notBefore);
|
|
134
|
+
if (reading === null) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
const { system, modulus } = GNSS_WEEK_COUNTERS[counter];
|
|
138
|
+
const pivot = scaleLabelOfUtc(system, reading);
|
|
139
|
+
if (pivot === null) {
|
|
140
|
+
// No label: either a second 60 the table does not list (not an instant), or an instant before
|
|
141
|
+
// the counter's epoch, including before 1972 where TAI − UTC is undefined. The earliest
|
|
142
|
+
// occurrence at or after an instant before the epoch is era 0.
|
|
143
|
+
return taiOfUtc(LEAP_SECOND_STEPS, reading) === null && reading.secondSixty
|
|
144
|
+
? null
|
|
145
|
+
: 0n;
|
|
146
|
+
}
|
|
147
|
+
const eraZero = labelOfWeek(counter, week, timeOfWeek, 0n);
|
|
148
|
+
if (pivot.labelNanoseconds <= eraZero) {
|
|
149
|
+
return 0n;
|
|
150
|
+
}
|
|
151
|
+
const period = modulus * NANOSECONDS_PER_WEEK;
|
|
152
|
+
// Ceiling division of a positive bigint: an occurrence exactly at the pivot counts.
|
|
153
|
+
return (pivot.labelNanoseconds - eraZero + period - 1n) / period;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The era a week number belongs to.
|
|
157
|
+
*
|
|
158
|
+
* - An integer from 0 is the era itself.
|
|
159
|
+
* - `"rolling"` reads `Temporal.Now.instant()` once and picks the era within half a counter
|
|
160
|
+
* period of the current week, clamped at era 0. Call it inside `try`: the clock read can throw.
|
|
161
|
+
* - `{ notBefore }` reads `notBefore` once and picks the earliest occurrence at or after it, so a
|
|
162
|
+
* pivot before the counter's epoch gives era 0; other keys are ignored. It never reads the clock.
|
|
163
|
+
*
|
|
164
|
+
* @param counter the week counter
|
|
165
|
+
* @param week the week number the counter shows
|
|
166
|
+
* @param timeOfWeek nanoseconds into the week
|
|
167
|
+
* @param rolloverEra an integer era from 0, "rolling", or `{ notBefore }`
|
|
168
|
+
* @returns the era, or null for any other value, when the clock reads before the counter's epoch,
|
|
169
|
+
* or for a pivot that is not an instant string or is an unlisted second 60
|
|
170
|
+
*/
|
|
171
|
+
export function resolveRolloverEra(counter, week, timeOfWeek, rolloverEra) {
|
|
172
|
+
if (rolloverEra === "rolling") {
|
|
173
|
+
return rollingEra(counter, week);
|
|
174
|
+
}
|
|
175
|
+
if (isObject(rolloverEra)) {
|
|
176
|
+
const { notBefore } = rolloverEra;
|
|
177
|
+
return pivotEra(counter, week, timeOfWeek, notBefore);
|
|
178
|
+
}
|
|
179
|
+
return weekNumber(rolloverEra);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* The label of a week time on a counter: epoch + (era × modulus + week) weeks + time of week.
|
|
183
|
+
*
|
|
184
|
+
* @param counter the week counter
|
|
185
|
+
* @param week the week number the counter shows
|
|
186
|
+
* @param timeOfWeek nanoseconds into the week
|
|
187
|
+
* @param era how many times the counter has wrapped
|
|
188
|
+
* @returns the label on the counter's scale, label nanoseconds
|
|
189
|
+
*/
|
|
190
|
+
export function labelOfWeek(counter, week, timeOfWeek, era) {
|
|
191
|
+
const { system, modulus } = GNSS_WEEK_COUNTERS[counter];
|
|
192
|
+
return labelOfFullWeek(GNSS_TIME_SCALES[system].epochLabel, era * modulus + week, timeOfWeek);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* The week, time of week and era of a label on a counter's scale.
|
|
196
|
+
*
|
|
197
|
+
* @param counter the week counter
|
|
198
|
+
* @param labelNanoseconds a label on the counter's scale
|
|
199
|
+
* @returns a new `GnssWeek`, or null before the counter's epoch
|
|
200
|
+
*/
|
|
201
|
+
export function weekOfLabel(counter, labelNanoseconds) {
|
|
202
|
+
const { system, modulus } = GNSS_WEEK_COUNTERS[counter];
|
|
203
|
+
const split = weeksSince(GNSS_TIME_SCALES[system].epochLabel, labelNanoseconds);
|
|
204
|
+
if (split === null) {
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
return {
|
|
208
|
+
week: Number(split.fullWeek % modulus),
|
|
209
|
+
timeOfWeekSeconds: split.timeOfWeekSeconds,
|
|
210
|
+
era: Number(split.fullWeek / modulus),
|
|
211
|
+
};
|
|
212
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* `t ∈ [start, end) ⇔ start ≤ t < end` — EWD831, SQL:2011 closed-open `PERIOD`
|
|
5
5
|
* (ISO/IEC 9075-2:2011) and RFC 5545 §3.6.1 non-inclusive `DTEND`. These helpers carry the same
|
|
6
|
-
* rules as the CORE-6 `interval/` namespace (see `context/
|
|
6
|
+
* rules as the CORE-6 `interval/` namespace (see `context/coding-standards.md` § 8, half-open intervals)
|
|
7
7
|
* for the positional families whose values are not instants (`PlainDate`, `PlainDateTime`,
|
|
8
8
|
* `PlainTime`) and for the relations `interval/` has no function for.
|
|
9
9
|
*
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* `t ∈ [start, end) ⇔ start ≤ t < end` — EWD831, SQL:2011 closed-open `PERIOD`
|
|
5
5
|
* (ISO/IEC 9075-2:2011) and RFC 5545 §3.6.1 non-inclusive `DTEND`. These helpers carry the same
|
|
6
|
-
* rules as the CORE-6 `interval/` namespace (see `context/
|
|
6
|
+
* rules as the CORE-6 `interval/` namespace (see `context/coding-standards.md` § 8, half-open intervals)
|
|
7
7
|
* for the positional families whose values are not instants (`PlainDate`, `PlainDateTime`,
|
|
8
8
|
* `PlainTime`) and for the relations `interval/` has no function for.
|
|
9
9
|
*
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* RFC 9557 lets any suffix annotation carry a critical flag (§3.3; `critical-flag` in the §4.1
|
|
5
5
|
* ABNF), and Temporal honours it for the calendar key:
|
|
6
|
-
* `Temporal.ZonedDateTime.from("5784-01-01T14:30:00
|
|
6
|
+
* `Temporal.ZonedDateTime.from("5784-01-01T14:30:00+02:00[Asia/Jerusalem][!u-ca=hebrew]")`
|
|
7
7
|
* succeeds in the Hebrew calendar, reading ISO year 5784 as Hebrew year 9544. The flag only makes
|
|
8
8
|
* the annotation harder to ignore, so `[!u-ca=...]` is detected exactly like `[u-ca=...]`. A
|
|
9
|
-
* critical time-zone annotation (`[!
|
|
9
|
+
* critical time-zone annotation (`[!Asia/Jerusalem]`) carries no key and does not match.
|
|
10
10
|
* Temporal rejects an upper-case `[U-CA=` key outright, so it needs no special case.
|
|
11
11
|
*
|
|
12
12
|
* Since CORE-8 (#22) the non-calendar validators no longer use it: `isValidDate`,
|
|
@@ -22,6 +22,6 @@
|
|
|
22
22
|
*
|
|
23
23
|
* @example hasCalendarAnnotation("2024-02-10T12:00:00Z[u-ca=hebrew]") // true
|
|
24
24
|
* @example hasCalendarAnnotation("2024-02-10T12:00:00Z[!u-ca=hebrew]") // true (critical flag)
|
|
25
|
-
* @example hasCalendarAnnotation("2024-02-10T12:00:00
|
|
25
|
+
* @example hasCalendarAnnotation("2024-02-10T12:00:00+02:00[!Asia/Jerusalem]") // false (a zone, not a calendar)
|
|
26
26
|
*/
|
|
27
27
|
export declare function hasCalendarAnnotation(value: string): boolean;
|
|
@@ -5,10 +5,10 @@ const calendarAnnotation = /\[!?u-ca=/;
|
|
|
5
5
|
*
|
|
6
6
|
* RFC 9557 lets any suffix annotation carry a critical flag (§3.3; `critical-flag` in the §4.1
|
|
7
7
|
* ABNF), and Temporal honours it for the calendar key:
|
|
8
|
-
* `Temporal.ZonedDateTime.from("5784-01-01T14:30:00
|
|
8
|
+
* `Temporal.ZonedDateTime.from("5784-01-01T14:30:00+02:00[Asia/Jerusalem][!u-ca=hebrew]")`
|
|
9
9
|
* succeeds in the Hebrew calendar, reading ISO year 5784 as Hebrew year 9544. The flag only makes
|
|
10
10
|
* the annotation harder to ignore, so `[!u-ca=...]` is detected exactly like `[u-ca=...]`. A
|
|
11
|
-
* critical time-zone annotation (`[!
|
|
11
|
+
* critical time-zone annotation (`[!Asia/Jerusalem]`) carries no key and does not match.
|
|
12
12
|
* Temporal rejects an upper-case `[U-CA=` key outright, so it needs no special case.
|
|
13
13
|
*
|
|
14
14
|
* Since CORE-8 (#22) the non-calendar validators no longer use it: `isValidDate`,
|
|
@@ -24,7 +24,7 @@ const calendarAnnotation = /\[!?u-ca=/;
|
|
|
24
24
|
*
|
|
25
25
|
* @example hasCalendarAnnotation("2024-02-10T12:00:00Z[u-ca=hebrew]") // true
|
|
26
26
|
* @example hasCalendarAnnotation("2024-02-10T12:00:00Z[!u-ca=hebrew]") // true (critical flag)
|
|
27
|
-
* @example hasCalendarAnnotation("2024-02-10T12:00:00
|
|
27
|
+
* @example hasCalendarAnnotation("2024-02-10T12:00:00+02:00[!Asia/Jerusalem]") // false (a zone, not a calendar)
|
|
28
28
|
*/
|
|
29
29
|
export function hasCalendarAnnotation(value) {
|
|
30
30
|
return typeof value === "string" && calendarAnnotation.test(value);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "./temporal.js";
|
|
2
2
|
import { NANOSECONDS_PER_MICROSECOND, NANOSECONDS_PER_MILLISECOND, NANOSECONDS_PER_SECOND, } from "./foreignEpochs.js";
|
|
3
3
|
const NANOSECONDS_PER_HOUR = 3600000000000n;
|
|
4
4
|
const NANOSECONDS_PER_MINUTE = 60000000000n;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Temporal } from "
|
|
1
|
+
import { Temporal } from "./temporal.js";
|
|
2
2
|
import { ENGLISH_MONTH_NAMES, ENGLISH_WEEKDAY_NAMES, } from "./englishCalendarNames.js";
|
|
3
3
|
// RFC 9110 §5.6.7 obsolete formats. HTTP-date is case-sensitive (%s strings).
|
|
4
4
|
// rfc850-date = day-name-l "," SP date2 SP time-of-day SP GMT
|
package/dist/internal/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { calendarOfAllZonedValues, calendarSystemOfZonedValue, } from "./calenda
|
|
|
8
8
|
export { formatZonedInCalendar, parseCalendarZonedValue, } from "./calendarZonedString.js";
|
|
9
9
|
export { cycleFieldValue } from "./cycleFieldValue.js";
|
|
10
10
|
export { isInDaylightTime, observesDaylightTime } from "./daylightTime.js";
|
|
11
|
-
export { fiscalPeriodOfWeek, fiscalYearOf } from "./fiscalCalendar.js";
|
|
11
|
+
export { fiscalPeriodOfWeek, fiscalYearLabel, fiscalYearOf, gregorianCycleShift, } from "./fiscalCalendar.js";
|
|
12
12
|
export { floorDivide } from "./floorDivide.js";
|
|
13
13
|
export { DOT_NET_TICKS_EPOCH_OFFSET, EXCEL_1900_EPOCH_NANOSECONDS, EXCEL_1900_PHANTOM_END_NANOSECONDS, EXCEL_1900_PRE_PHANTOM_EPOCH_NANOSECONDS, EXCEL_1904_EPOCH_NANOSECONDS, EXCEL_PHANTOM_SERIAL, FILE_TIME_EPOCH_OFFSET_TICKS, MAX_DOT_NET_TICKS, MAX_EXCEL_1900_SERIAL_EXCLUSIVE, MAX_EXCEL_1904_SERIAL_EXCLUSIVE, MAX_FILE_TIME, MILLISECONDS_PER_DAY, MIN_DOT_NET_TICKS, MIN_EXCEL_1900_SERIAL, MIN_EXCEL_1904_SERIAL, MIN_FILE_TIME, MIN_PG_MICROSECONDS, NANOSECONDS_PER_DAY, NANOSECONDS_PER_DAY_NUMBER, NANOSECONDS_PER_MICROSECOND, NANOSECONDS_PER_MILLISECOND, NANOSECONDS_PER_SECOND, NANOSECONDS_PER_TICK, NTP_EPOCH_OFFSET_NANOSECONDS, NTP_ERA_UNITS, NTP_UNITS_PER_SECOND, PG_EPOCH_OFFSET_MICROSECONDS, } from "./foreignEpochs.js";
|
|
14
14
|
export { isValidEpochNanoseconds, MAX_EPOCH_NANOSECOND_DIGITS, } from "./epochNanoseconds.js";
|
|
@@ -27,7 +27,12 @@ export { canonicalInstantIntervals } from "./instantIntervalText.js";
|
|
|
27
27
|
export { instantFrom, parseInstantNanoseconds } from "./instantNanoseconds.js";
|
|
28
28
|
export { coalesceIntervalNanoseconds, parseIntervalNanoseconds, parseIntervalNanosecondsList, } from "./intervalNanoseconds.js";
|
|
29
29
|
export { resolveDurationRelativeTo } from "./resolveDurationRelativeTo.js";
|
|
30
|
-
export { formatUtcOffset, parseUtcOffsetNanoseconds } from "./utcOffsetString.js";
|
|
30
|
+
export { formatUtcOffset, parseUtcOffsetNanoseconds, writtenOffset, } from "./utcOffsetString.js";
|
|
31
|
+
export { formatUtcReading, parseUtcReading } from "./utcReading.js";
|
|
32
|
+
export { isGnssSystem, scaleLabelOfUtc, utcOfScaleLabel, } from "./gnssTimeScales.js";
|
|
33
|
+
export { GNSS_WEEK_COUNTERS, isGnssWeekCounter, labelOfFullWeek, labelOfWeek, resolveRolloverEra, timeOfWeekNanoseconds, weekNumber, weekOfLabel, weeksSince, } from "./gnssWeek.js";
|
|
34
|
+
export { isRinexWeekSystem, RINEX_WEEK_EPOCHS } from "./rinexWeek.js";
|
|
35
|
+
export { formatTimeScaleString, parseTimeScaleString } from "./timeScaleString.js";
|
|
31
36
|
export { ENGLISH_MONTH_NAMES, ENGLISH_WEEKDAY_NAMES, } from "./englishCalendarNames.js";
|
|
32
37
|
export { defaultFractionalDigits } from "./defaultFractionalDigits.js";
|
|
33
38
|
export { getLocaleFirstDayOfWeek } from "./getLocaleFirstDayOfWeek.js";
|
|
@@ -38,6 +43,7 @@ export { getUnitSpan } from "./intervalCountHelpers.js";
|
|
|
38
43
|
export { isObject, isOptionsArgument } from "./isObject.js";
|
|
39
44
|
export { isValidAmount } from "./isValidAmount.js";
|
|
40
45
|
export { joinDateTimeConnector } from "./joinDateTimeConnector.js";
|
|
46
|
+
export { LEAP_SECOND_STEPS, nextStepIndex, stepReading, taiOfUtc, utcOfTai, } from "./leapSeconds.js";
|
|
41
47
|
export { isValidDayOfWeek } from "./isValidDayOfWeek.js";
|
|
42
48
|
export { monthGridWeekRow } from "./monthGridWeekRow.js";
|
|
43
49
|
export { normalizeDateTime } from "./normalizeDateTime.js";
|
|
@@ -55,7 +61,7 @@ export { tileByUnit } from "./splitStep.js";
|
|
|
55
61
|
export { parseTimestampEvents } from "./timestampEvents.js";
|
|
56
62
|
export { countZonedBuckets, nextZonedBucketStart, type WeekStartDay, zonedUnitEnd, zonedUnitStart, } from "./zonedBucket.js";
|
|
57
63
|
export { countZonedLocalDates } from "./zonedLocalDates.js";
|
|
58
|
-
export { zonedDateTimeFrom } from "./zonedWallClock.js";
|
|
64
|
+
export { isWithinIsoDaysRange, UTC_OFFSET_WITH_SECONDS, zonedDateTimeFrom, } from "./zonedWallClock.js";
|
|
59
65
|
export { wallClockAtOffset } from "./wallClockAtOffset.js";
|
|
60
66
|
export { durationCompare, durationRound, durationTotal, isCalendarDifferenceAcrossZones, plainUntilWithRounding, zonedUntil, } from "./zonedWallClockDifference.js";
|
|
61
67
|
export { addToZoned, addToZonedDisambiguated, plainToZoned, roundZonedDateTime, subtractFromZoned, withZonedFields, zonedHoursInDay, zonedNextTransition, zonedStartOfDay, } from "./zonedWallClockOperations.js";
|
package/dist/internal/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export { calendarOfAllZonedValues, calendarSystemOfZonedValue, } from "./calenda
|
|
|
8
8
|
export { formatZonedInCalendar, parseCalendarZonedValue, } from "./calendarZonedString.js";
|
|
9
9
|
export { cycleFieldValue } from "./cycleFieldValue.js";
|
|
10
10
|
export { isInDaylightTime, observesDaylightTime } from "./daylightTime.js";
|
|
11
|
-
export { fiscalPeriodOfWeek, fiscalYearOf } from "./fiscalCalendar.js";
|
|
11
|
+
export { fiscalPeriodOfWeek, fiscalYearLabel, fiscalYearOf, gregorianCycleShift, } from "./fiscalCalendar.js";
|
|
12
12
|
export { floorDivide } from "./floorDivide.js";
|
|
13
13
|
export { DOT_NET_TICKS_EPOCH_OFFSET, EXCEL_1900_EPOCH_NANOSECONDS, EXCEL_1900_PHANTOM_END_NANOSECONDS, EXCEL_1900_PRE_PHANTOM_EPOCH_NANOSECONDS, EXCEL_1904_EPOCH_NANOSECONDS, EXCEL_PHANTOM_SERIAL, FILE_TIME_EPOCH_OFFSET_TICKS, MAX_DOT_NET_TICKS, MAX_EXCEL_1900_SERIAL_EXCLUSIVE, MAX_EXCEL_1904_SERIAL_EXCLUSIVE, MAX_FILE_TIME, MILLISECONDS_PER_DAY, MIN_DOT_NET_TICKS, MIN_EXCEL_1900_SERIAL, MIN_EXCEL_1904_SERIAL, MIN_FILE_TIME, MIN_PG_MICROSECONDS, NANOSECONDS_PER_DAY, NANOSECONDS_PER_DAY_NUMBER, NANOSECONDS_PER_MICROSECOND, NANOSECONDS_PER_MILLISECOND, NANOSECONDS_PER_SECOND, NANOSECONDS_PER_TICK, NTP_EPOCH_OFFSET_NANOSECONDS, NTP_ERA_UNITS, NTP_UNITS_PER_SECOND, PG_EPOCH_OFFSET_MICROSECONDS, } from "./foreignEpochs.js";
|
|
14
14
|
export { isValidEpochNanoseconds, MAX_EPOCH_NANOSECOND_DIGITS, } from "./epochNanoseconds.js";
|
|
@@ -31,7 +31,12 @@ export { canonicalInstantIntervals } from "./instantIntervalText.js";
|
|
|
31
31
|
export { instantFrom, parseInstantNanoseconds } from "./instantNanoseconds.js";
|
|
32
32
|
export { coalesceIntervalNanoseconds, parseIntervalNanoseconds, parseIntervalNanosecondsList, } from "./intervalNanoseconds.js";
|
|
33
33
|
export { resolveDurationRelativeTo } from "./resolveDurationRelativeTo.js";
|
|
34
|
-
export { formatUtcOffset, parseUtcOffsetNanoseconds } from "./utcOffsetString.js";
|
|
34
|
+
export { formatUtcOffset, parseUtcOffsetNanoseconds, writtenOffset, } from "./utcOffsetString.js";
|
|
35
|
+
export { formatUtcReading, parseUtcReading } from "./utcReading.js";
|
|
36
|
+
export { isGnssSystem, scaleLabelOfUtc, utcOfScaleLabel, } from "./gnssTimeScales.js";
|
|
37
|
+
export { GNSS_WEEK_COUNTERS, isGnssWeekCounter, labelOfFullWeek, labelOfWeek, resolveRolloverEra, timeOfWeekNanoseconds, weekNumber, weekOfLabel, weeksSince, } from "./gnssWeek.js";
|
|
38
|
+
export { isRinexWeekSystem, RINEX_WEEK_EPOCHS } from "./rinexWeek.js";
|
|
39
|
+
export { formatTimeScaleString, parseTimeScaleString } from "./timeScaleString.js";
|
|
35
40
|
export { ENGLISH_MONTH_NAMES, ENGLISH_WEEKDAY_NAMES, } from "./englishCalendarNames.js";
|
|
36
41
|
export { defaultFractionalDigits } from "./defaultFractionalDigits.js";
|
|
37
42
|
export { getLocaleFirstDayOfWeek } from "./getLocaleFirstDayOfWeek.js";
|
|
@@ -42,6 +47,7 @@ export { getUnitSpan } from "./intervalCountHelpers.js";
|
|
|
42
47
|
export { isObject, isOptionsArgument } from "./isObject.js";
|
|
43
48
|
export { isValidAmount } from "./isValidAmount.js";
|
|
44
49
|
export { joinDateTimeConnector } from "./joinDateTimeConnector.js";
|
|
50
|
+
export { LEAP_SECOND_STEPS, nextStepIndex, stepReading, taiOfUtc, utcOfTai, } from "./leapSeconds.js";
|
|
45
51
|
export { isValidDayOfWeek } from "./isValidDayOfWeek.js";
|
|
46
52
|
export { monthGridWeekRow } from "./monthGridWeekRow.js";
|
|
47
53
|
export { normalizeDateTime } from "./normalizeDateTime.js";
|
|
@@ -59,7 +65,7 @@ export { tileByUnit } from "./splitStep.js";
|
|
|
59
65
|
export { parseTimestampEvents } from "./timestampEvents.js";
|
|
60
66
|
export { countZonedBuckets, nextZonedBucketStart, zonedUnitEnd, zonedUnitStart, } from "./zonedBucket.js";
|
|
61
67
|
export { countZonedLocalDates } from "./zonedLocalDates.js";
|
|
62
|
-
export { zonedDateTimeFrom } from "./zonedWallClock.js";
|
|
68
|
+
export { isWithinIsoDaysRange, UTC_OFFSET_WITH_SECONDS, zonedDateTimeFrom, } from "./zonedWallClock.js";
|
|
63
69
|
export { wallClockAtOffset } from "./wallClockAtOffset.js";
|
|
64
70
|
export { durationCompare, durationRound, durationTotal, isCalendarDifferenceAcrossZones, plainUntilWithRounding, zonedUntil, } from "./zonedWallClockDifference.js";
|
|
65
71
|
export { addToZoned, addToZonedDisambiguated, plainToZoned, roundZonedDateTime, subtractFromZoned, withZonedFields, zonedHoursInDay, zonedNextTransition, zonedStartOfDay, } from "./zonedWallClockOperations.js";
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { RollConvention } from "../types/index.js";
|
|
2
|
+
/** The cores of the `isValid*` functions, so a public function never calls another. */
|
|
3
|
+
/**
|
|
4
|
+
* The check behind `isValidTimeZone`: an IANA name or a UTC offset to the minute. A pass is
|
|
5
|
+
* remembered, so a repeat builds nothing.
|
|
6
|
+
*
|
|
7
|
+
* @param timeZone the candidate
|
|
8
|
+
* @returns whether it names a zone
|
|
9
|
+
*
|
|
10
|
+
* @example isZoneId("Europe/London") // true
|
|
11
|
+
* @example isZoneId("Not/AZone") // false
|
|
12
|
+
*/
|
|
13
|
+
export declare function isZoneId(timeZone: unknown): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* The check behind `isValidTime`: a plain ISO 8601 time of day.
|
|
16
|
+
*
|
|
17
|
+
* @param value the candidate string
|
|
18
|
+
* @returns whether Temporal reads it as a `PlainTime` and it has the strict shape
|
|
19
|
+
*
|
|
20
|
+
* @example isTimeString("17:00") // true
|
|
21
|
+
* @example isTimeString("25:00") // false
|
|
22
|
+
*/
|
|
23
|
+
export declare function isTimeString(value: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The check behind `isValidDate`: a plain ISO 8601 calendar date.
|
|
26
|
+
*
|
|
27
|
+
* @param value the candidate string
|
|
28
|
+
* @returns whether Temporal reads it as an ISO calendar `PlainDate` and it has the strict shape
|
|
29
|
+
*
|
|
30
|
+
* @example isDateString("2024-02-29") // true
|
|
31
|
+
* @example isDateString("2024-02-30") // false
|
|
32
|
+
*/
|
|
33
|
+
export declare function isDateString(value: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* The check behind `isValidDuration`: an ISO 8601 duration string.
|
|
36
|
+
*
|
|
37
|
+
* @param value the candidate
|
|
38
|
+
* @returns whether it is a string Temporal reads as a `Duration`
|
|
39
|
+
*
|
|
40
|
+
* @example isDurationString("P1DT2H") // true
|
|
41
|
+
* @example isDurationString("2 days") // false
|
|
42
|
+
*/
|
|
43
|
+
export declare function isDurationString(value: unknown): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* The check behind `isValidRollConvention`: membership in the roll set.
|
|
46
|
+
*
|
|
47
|
+
* @param convention the candidate
|
|
48
|
+
* @returns whether it is one of the six conventions
|
|
49
|
+
*
|
|
50
|
+
* @example isRollConventionName("following") // true
|
|
51
|
+
* @example isRollConventionName("nearest") // false
|
|
52
|
+
*/
|
|
53
|
+
export declare function isRollConventionName(convention: unknown): convention is RollConvention;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { Temporal } from "./temporal.js";
|
|
2
|
+
import { isoStringBody } from "./isoStringBody.js";
|
|
3
|
+
import { isRememberedZone, rememberZone } from "./validatedZones.js";
|
|
4
|
+
import { hasSecond60 } from "../plain/validate/hasSecond60.js";
|
|
5
|
+
import { plainDate, plainTime, timeZoneLike } from "../regex/index.js";
|
|
6
|
+
/** The cores of the `isValid*` functions, so a public function never calls another. */
|
|
7
|
+
/**
|
|
8
|
+
* The check behind `isValidTimeZone`: an IANA name or a UTC offset to the minute. A pass is
|
|
9
|
+
* remembered, so a repeat builds nothing.
|
|
10
|
+
*
|
|
11
|
+
* @param timeZone the candidate
|
|
12
|
+
* @returns whether it names a zone
|
|
13
|
+
*
|
|
14
|
+
* @example isZoneId("Europe/London") // true
|
|
15
|
+
* @example isZoneId("Not/AZone") // false
|
|
16
|
+
*/
|
|
17
|
+
export function isZoneId(timeZone) {
|
|
18
|
+
if (typeof timeZone === "string" && isRememberedZone(timeZone)) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
// The fixed 2020 bag is never near the range edge, so `zonedDateTimeFrom`'s only
|
|
23
|
+
// workaround does not apply; calling Temporal directly keeps `zonedWallClock` out of the
|
|
24
|
+
// business-day entries.
|
|
25
|
+
Temporal.ZonedDateTime.from({
|
|
26
|
+
year: 2020,
|
|
27
|
+
month: 2,
|
|
28
|
+
day: 28,
|
|
29
|
+
hour: 0,
|
|
30
|
+
minute: 0,
|
|
31
|
+
second: 0,
|
|
32
|
+
timeZone: timeZone,
|
|
33
|
+
});
|
|
34
|
+
if (!timeZoneLike.test(timeZone)) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
// Only a pass is stored, so hostile strings cannot grow the set.
|
|
38
|
+
if (typeof timeZone !== "string") {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
rememberZone(timeZone);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The check behind `isValidTime`: a plain ISO 8601 time of day.
|
|
50
|
+
*
|
|
51
|
+
* @param value the candidate string
|
|
52
|
+
* @returns whether Temporal reads it as a `PlainTime` and it has the strict shape
|
|
53
|
+
*
|
|
54
|
+
* @example isTimeString("17:00") // true
|
|
55
|
+
* @example isTimeString("25:00") // false
|
|
56
|
+
*/
|
|
57
|
+
export function isTimeString(value) {
|
|
58
|
+
const body = isoStringBody(value);
|
|
59
|
+
if (hasSecond60(body) || !plainTime.test(body)) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
Temporal.PlainTime.from(value);
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The check behind `isValidDate`: a plain ISO 8601 calendar date.
|
|
72
|
+
*
|
|
73
|
+
* @param value the candidate string
|
|
74
|
+
* @returns whether Temporal reads it as an ISO calendar `PlainDate` and it has the strict shape
|
|
75
|
+
*
|
|
76
|
+
* @example isDateString("2024-02-29") // true
|
|
77
|
+
* @example isDateString("2024-02-30") // false
|
|
78
|
+
*/
|
|
79
|
+
export function isDateString(value) {
|
|
80
|
+
const body = isoStringBody(value);
|
|
81
|
+
if (hasSecond60(body) || !plainDate.test(body)) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
return Temporal.PlainDate.from(value).calendarId === "iso8601";
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The check behind `isValidDuration`: an ISO 8601 duration string.
|
|
93
|
+
*
|
|
94
|
+
* @param value the candidate
|
|
95
|
+
* @returns whether it is a string Temporal reads as a `Duration`
|
|
96
|
+
*
|
|
97
|
+
* @example isDurationString("P1DT2H") // true
|
|
98
|
+
* @example isDurationString("2 days") // false
|
|
99
|
+
*/
|
|
100
|
+
export function isDurationString(value) {
|
|
101
|
+
if (typeof value !== "string") {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
Temporal.Duration.from(value);
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const ROLL_CONVENTIONS = [
|
|
113
|
+
"following",
|
|
114
|
+
"modifiedFollowing",
|
|
115
|
+
"preceding",
|
|
116
|
+
"modifiedPreceding",
|
|
117
|
+
"endOfMonth",
|
|
118
|
+
"none",
|
|
119
|
+
];
|
|
120
|
+
/**
|
|
121
|
+
* The check behind `isValidRollConvention`: membership in the roll set.
|
|
122
|
+
*
|
|
123
|
+
* @param convention the candidate
|
|
124
|
+
* @returns whether it is one of the six conventions
|
|
125
|
+
*
|
|
126
|
+
* @example isRollConventionName("following") // true
|
|
127
|
+
* @example isRollConventionName("nearest") // false
|
|
128
|
+
*/
|
|
129
|
+
export function isRollConventionName(convention) {
|
|
130
|
+
return (typeof convention === "string" &&
|
|
131
|
+
ROLL_CONVENTIONS.includes(convention));
|
|
132
|
+
}
|