@northguild/gmt 1.17.0 → 1.19.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 +55 -2480
- package/dist/calendar/calculate/bucketRange.d.ts +12 -4
- package/dist/calendar/calculate/bucketRange.js +20 -63
- package/dist/calendar/calculate/floorToZone.d.ts +14 -4
- package/dist/calendar/calculate/floorToZone.js +18 -9
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +21 -8
- package/dist/calendar/calculate/getFiscalPeriod.js +9 -8
- package/dist/calendar/calculate/getIsoWeekDate.d.ts +10 -5
- package/dist/calendar/calculate/getIsoWeekDate.js +1 -5
- package/dist/calendar/calculate/getOrdinalDate.d.ts +10 -3
- package/dist/calendar/calculate/getOrdinalDate.js +2 -3
- package/dist/calendar/calculate/getQuarter.d.ts +21 -9
- package/dist/calendar/calculate/getQuarter.js +8 -12
- package/dist/calendar/hours/addOperatingTime.d.ts +59 -0
- package/dist/calendar/hours/addOperatingTime.js +65 -0
- package/dist/calendar/hours/index.d.ts +7 -0
- package/dist/calendar/hours/index.js +7 -0
- package/dist/calendar/hours/isOpenAt.d.ts +45 -0
- package/dist/calendar/hours/isOpenAt.js +50 -0
- package/dist/calendar/hours/nextCloseAt.d.ts +55 -0
- package/dist/calendar/hours/nextCloseAt.js +57 -0
- package/dist/calendar/hours/nextOpenAt.d.ts +51 -0
- package/dist/calendar/hours/nextOpenAt.js +53 -0
- package/dist/calendar/hours/operatingIntervals.d.ts +48 -0
- package/dist/calendar/hours/operatingIntervals.js +57 -0
- package/dist/calendar/hours/operatingTimeBetween.d.ts +45 -0
- package/dist/calendar/hours/operatingTimeBetween.js +54 -0
- package/dist/calendar/hours/recurringWindows.d.ts +68 -0
- package/dist/calendar/hours/recurringWindows.js +88 -0
- package/dist/calendar/index.d.ts +1 -0
- package/dist/calendar/index.js +1 -0
- package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
- package/dist/duration/calculate/durationFromUnits.js +67 -0
- package/dist/duration/calculate/getDurationUnit.d.ts +2 -2
- package/dist/duration/calculate/getDurationUnit.js +2 -2
- package/dist/duration/calculate/index.d.ts +3 -1
- package/dist/duration/calculate/index.js +3 -1
- package/dist/duration/calculate/negateDuration.d.ts +1 -1
- package/dist/duration/calculate/negateDuration.js +1 -1
- package/dist/duration/calculate/totalDuration.d.ts +73 -0
- package/dist/duration/calculate/{durationAs.js → totalDuration.js} +29 -27
- package/dist/duration/calculate/totalUnits.d.ts +49 -0
- package/dist/duration/calculate/totalUnits.js +73 -0
- package/dist/duration/compare/compareDurations.d.ts +13 -7
- package/dist/duration/compare/compareDurations.js +4 -7
- package/dist/duration/format/formatDuration.d.ts +16 -4
- package/dist/duration/format/formatDuration.js +4 -5
- package/dist/duration/normalize/normalizeDuration.d.ts +39 -14
- package/dist/duration/normalize/normalizeDuration.js +6 -15
- package/dist/duration/parse/parseDuration.d.ts +21 -3
- package/dist/duration/parse/parseDuration.js +1 -3
- package/dist/duty/calculate/dutyDayFor.d.ts +38 -0
- package/dist/duty/calculate/dutyDayFor.js +71 -0
- package/dist/duty/calculate/dutyTotals.d.ts +24 -0
- package/dist/duty/calculate/dutyTotals.js +41 -0
- package/dist/duty/calculate/dutyViolations.d.ts +74 -0
- package/dist/duty/calculate/dutyViolations.js +65 -0
- package/dist/duty/calculate/evaluateDutyLog.d.ts +77 -0
- package/dist/duty/calculate/evaluateDutyLog.js +75 -0
- package/dist/duty/calculate/index.d.ts +7 -0
- package/dist/duty/calculate/index.js +7 -0
- package/dist/duty/calculate/longestRun.d.ts +28 -0
- package/dist/duty/calculate/longestRun.js +54 -0
- package/dist/duty/calculate/qualifyingRestPairs.d.ts +37 -0
- package/dist/duty/calculate/qualifyingRestPairs.js +58 -0
- package/dist/duty/calculate/qualifyingRests.d.ts +27 -0
- package/dist/duty/calculate/qualifyingRests.js +49 -0
- package/dist/duty/index.d.ts +3 -0
- package/dist/duty/index.js +4 -0
- package/dist/duty/validate/index.d.ts +1 -0
- package/dist/duty/validate/index.js +1 -0
- package/dist/duty/validate/isValidDutyLog.d.ts +24 -0
- package/dist/duty/validate/isValidDutyLog.js +34 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/instant/convert/classifyLocal.d.ts +5 -1
- package/dist/instant/convert/classifyLocal.js +16 -6
- package/dist/instant/convert/fromOffsetInstant.d.ts +7 -1
- package/dist/instant/convert/fromOffsetInstant.js +9 -2
- package/dist/instant/convert/resolveLocal.d.ts +18 -8
- package/dist/instant/convert/resolveLocal.js +21 -17
- package/dist/instant/convert/toOffsetInstant.d.ts +33 -16
- package/dist/instant/convert/toOffsetInstant.js +28 -13
- package/dist/instant/index.d.ts +1 -0
- package/dist/instant/index.js +1 -0
- package/dist/instant/validate/index.d.ts +1 -0
- package/dist/instant/validate/index.js +1 -0
- package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
- package/dist/instant/validate/isValidUtcOffset.js +35 -0
- package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
- package/dist/intermodal/calculate/billingTimeline.js +2 -2
- package/dist/intermodal/calculate/chargeableDays.d.ts +19 -11
- package/dist/intermodal/calculate/chargeableDays.js +13 -10
- package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
- package/dist/intermodal/calculate/demurrageClock.js +7 -7
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +12 -4
- package/dist/intermodal/calculate/freeTimeExpiry.js +19 -8
- package/dist/intermodal/calculate/index.d.ts +1 -0
- package/dist/intermodal/calculate/index.js +1 -0
- package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
- package/dist/intermodal/calculate/multimodalETA.js +145 -0
- package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
- package/dist/intermodal/format/bolTimestamp.js +78 -0
- package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
- package/dist/intermodal/format/formatEdifactDate.js +42 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
- package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
- package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
- package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactTime.js +43 -0
- package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
- package/dist/intermodal/format/formatEpcisEvent.js +79 -0
- package/dist/intermodal/format/formatX12Date.d.ts +35 -0
- package/dist/intermodal/format/formatX12Date.js +43 -0
- package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
- package/dist/intermodal/format/formatX12DateRange.js +45 -0
- package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
- package/dist/intermodal/format/formatX12DateTime.js +47 -0
- package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
- package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
- package/dist/intermodal/format/formatX12Time.d.ts +42 -0
- package/dist/intermodal/format/formatX12Time.js +50 -0
- package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
- package/dist/intermodal/format/formatX12TimeElement.js +54 -0
- package/dist/intermodal/format/index.d.ts +14 -0
- package/dist/intermodal/format/index.js +14 -0
- package/dist/intermodal/index.d.ts +3 -0
- package/dist/intermodal/index.js +3 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
- package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
- package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
- package/dist/intermodal/parse/index.d.ts +18 -0
- package/dist/intermodal/parse/index.js +18 -0
- package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactDate.js +45 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
- package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactTime.js +45 -0
- package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
- package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
- package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
- package/dist/intermodal/parse/parseX12Date.js +47 -0
- package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
- package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
- package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
- package/dist/intermodal/parse/parseX12DateRange.js +52 -0
- package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
- package/dist/intermodal/parse/parseX12DateTime.js +53 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
- package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
- package/dist/intermodal/parse/parseX12Time.js +77 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
- package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
- package/dist/intermodal/validate/index.d.ts +18 -0
- package/dist/intermodal/validate/index.js +18 -0
- package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
- package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
- package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
- package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
- package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
- package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
- package/dist/intermodal/validate/isValidX12Date.js +30 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
- package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
- package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
- package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
- package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12Time.js +40 -0
- package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
- package/dist/internal/businessCalendar.d.ts +5 -0
- package/dist/internal/businessCalendar.js +9 -10
- package/dist/internal/cycleFieldValue.d.ts +6 -4
- package/dist/internal/cycleFieldValue.js +6 -4
- package/dist/internal/daylightTime.d.ts +33 -0
- package/dist/internal/daylightTime.js +164 -0
- package/dist/internal/durationUntilString.js +4 -3
- package/dist/internal/dutyEngine.d.ts +125 -0
- package/dist/internal/dutyEngine.js +1746 -0
- package/dist/internal/dutyLog.d.ts +27 -0
- package/dist/internal/dutyLog.js +47 -0
- package/dist/internal/dutyPeriods.d.ts +135 -0
- package/dist/internal/dutyPeriods.js +369 -0
- package/dist/internal/dutyRules.d.ts +197 -0
- package/dist/internal/dutyRules.js +484 -0
- package/dist/internal/ediDateTimeFields.d.ts +97 -0
- package/dist/internal/ediDateTimeFields.js +288 -0
- package/dist/internal/ediDateTimeWriter.d.ts +92 -0
- package/dist/internal/ediDateTimeWriter.js +298 -0
- package/dist/internal/ediGrammar.d.ts +158 -0
- package/dist/internal/ediGrammar.js +384 -0
- package/dist/internal/englishCalendarNames.d.ts +3 -1
- package/dist/internal/englishCalendarNames.js +4 -3
- package/dist/internal/epochNanoseconds.d.ts +2 -0
- package/dist/internal/epochNanoseconds.js +2 -0
- package/dist/internal/exactDuration.d.ts +37 -0
- package/dist/internal/exactDuration.js +64 -0
- package/dist/internal/exactMoment.d.ts +72 -0
- package/dist/internal/exactMoment.js +114 -0
- package/dist/internal/fiscalCalendar.d.ts +4 -3
- package/dist/internal/fiscalCalendar.js +4 -3
- package/dist/internal/formatCalendarDays.d.ts +2 -2
- package/dist/internal/formatRelativeDuration.d.ts +21 -1
- package/dist/internal/formatRelativeDuration.js +47 -7
- package/dist/internal/freeTimeLedger.d.ts +5 -0
- package/dist/internal/freeTimeLedger.js +11 -2
- package/dist/internal/index.d.ts +12 -4
- package/dist/internal/index.js +16 -4
- package/dist/internal/instantFormatOptions.js +2 -1
- package/dist/internal/instantNanoseconds.d.ts +75 -9
- package/dist/internal/instantNanoseconds.js +192 -11
- package/dist/internal/intervalNanoseconds.js +2 -1
- package/dist/internal/isObject.d.ts +13 -6
- package/dist/internal/isObject.js +14 -7
- package/dist/internal/isoYearString.d.ts +21 -0
- package/dist/internal/isoYearString.js +27 -0
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/maxPieces.js +2 -1
- package/dist/internal/monthGridWeekRow.d.ts +2 -1
- package/dist/internal/monthGridWeekRow.js +2 -1
- package/dist/internal/normalizeTimeZone.d.ts +5 -2
- package/dist/internal/normalizeTimeZone.js +5 -2
- package/dist/internal/operatingSchedule.d.ts +138 -0
- package/dist/internal/operatingSchedule.js +756 -0
- package/dist/internal/optionOrDefault.d.ts +18 -0
- package/dist/internal/optionOrDefault.js +20 -0
- package/dist/internal/patternToken.d.ts +12 -5
- package/dist/internal/patternToken.js +59 -25
- package/dist/internal/plainDateUntil.js +10 -6
- package/dist/internal/punctuality.d.ts +38 -0
- package/dist/internal/punctuality.js +59 -0
- package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
- package/dist/internal/readDateTimeFormatOptions.js +93 -0
- package/dist/internal/readDurationUnits.d.ts +34 -0
- package/dist/internal/readDurationUnits.js +78 -0
- package/dist/internal/readSetFields.d.ts +50 -0
- package/dist/internal/readSetFields.js +179 -0
- package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
- package/dist/internal/resolveDurationRelativeTo.js +11 -1
- package/dist/internal/resolveRelativeRounding.d.ts +17 -6
- package/dist/internal/resolveRelativeRounding.js +27 -7
- package/dist/internal/resolveRelativeUnit.d.ts +30 -0
- package/dist/internal/resolveRelativeUnit.js +40 -0
- package/dist/internal/resolveUnixIntervalPair.d.ts +8 -2
- package/dist/internal/resolveUnixIntervalPair.js +11 -7
- package/dist/internal/splitStep.d.ts +24 -1
- package/dist/internal/splitStep.js +34 -2
- package/dist/internal/startOrEndOfUnix.d.ts +2 -1
- package/dist/internal/startOrEndOfUnix.js +9 -6
- package/dist/internal/startOrEndOfZoned.js +2 -3
- package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
- package/dist/internal/temporalCompat/capabilities.js +35 -3
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/repros.d.ts +1 -1
- package/dist/internal/temporalCompat/repros.js +157 -0
- package/dist/internal/timestampEvents.d.ts +32 -0
- package/dist/internal/timestampEvents.js +76 -0
- package/dist/internal/twoDigitYear.d.ts +19 -0
- package/dist/internal/twoDigitYear.js +22 -0
- package/dist/internal/unixEpochValue.js +3 -2
- package/dist/internal/unixWallClock.d.ts +24 -0
- package/dist/internal/unixWallClock.js +35 -0
- package/dist/internal/utcWallClock.d.ts +20 -0
- package/dist/internal/utcWallClock.js +32 -0
- package/dist/internal/yearWindowStart.d.ts +28 -0
- package/dist/internal/yearWindowStart.js +52 -0
- package/dist/internal/zoneBucketCap.d.ts +18 -0
- package/dist/internal/zoneBucketCap.js +64 -0
- package/dist/internal/zoneFrame.d.ts +180 -0
- package/dist/internal/zoneFrame.js +221 -0
- package/dist/internal/zonedBucket.js +8 -6
- package/dist/internal/zonedLocalDates.js +1 -1
- package/dist/internal/zonedNowUnitValue.d.ts +7 -4
- package/dist/internal/zonedNowUnitValue.js +8 -4
- package/dist/internal/zonedTransitionSearch.d.ts +27 -0
- package/dist/internal/zonedTransitionSearch.js +218 -0
- package/dist/internal/zonedWallClock.d.ts +21 -7
- package/dist/internal/zonedWallClock.js +87 -18
- package/dist/internal/zonedWallClockDifference.js +4 -4
- package/dist/internal/zonedWallClockOperations.d.ts +31 -15
- package/dist/internal/zonedWallClockOperations.js +93 -43
- package/dist/interval/validate/isValidInterval.d.ts +6 -3
- package/dist/interval/validate/isValidInterval.js +6 -3
- package/dist/plain/calculate/addDate.d.ts +11 -8
- package/dist/plain/calculate/addDate.js +9 -15
- package/dist/plain/calculate/addDateTime.d.ts +7 -4
- package/dist/plain/calculate/addDateTime.js +5 -11
- package/dist/plain/calculate/addTime.js +4 -7
- package/dist/plain/calculate/cycleDate.d.ts +16 -7
- package/dist/plain/calculate/cycleDate.js +3 -7
- package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
- package/dist/plain/calculate/cycleDateTime.js +1 -4
- package/dist/plain/calculate/cycleTime.d.ts +10 -5
- package/dist/plain/calculate/cycleTime.js +3 -5
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDate.js +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.js +1 -1
- package/dist/plain/calculate/diffDateTime.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.js +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
- package/dist/plain/calculate/diffTime.d.ts +1 -1
- package/dist/plain/calculate/diffTime.js +1 -1
- package/dist/plain/calculate/endOfDate.d.ts +8 -3
- package/dist/plain/calculate/endOfDate.js +1 -3
- package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
- package/dist/plain/calculate/endOfDateTime.js +1 -5
- package/dist/plain/calculate/endOfTime.d.ts +9 -3
- package/dist/plain/calculate/endOfTime.js +1 -2
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
- package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
- package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
- package/dist/plain/calculate/getWeekOfMonth.js +7 -4
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
- package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
- package/dist/plain/calculate/getWeeksInMonth.js +5 -2
- package/dist/plain/calculate/nextWeekday.d.ts +7 -3
- package/dist/plain/calculate/nextWeekday.js +1 -3
- package/dist/plain/calculate/previousWeekday.d.ts +7 -3
- package/dist/plain/calculate/previousWeekday.js +1 -3
- package/dist/plain/calculate/roundDate.d.ts +20 -7
- package/dist/plain/calculate/roundDate.js +3 -10
- package/dist/plain/calculate/roundDateTime.d.ts +22 -8
- package/dist/plain/calculate/roundDateTime.js +3 -11
- package/dist/plain/calculate/roundTime.d.ts +20 -4
- package/dist/plain/calculate/roundTime.js +3 -7
- package/dist/plain/calculate/setDate.d.ts +27 -8
- package/dist/plain/calculate/setDate.js +28 -12
- package/dist/plain/calculate/setDateTime.d.ts +23 -8
- package/dist/plain/calculate/setDateTime.js +23 -12
- package/dist/plain/calculate/setTime.d.ts +23 -7
- package/dist/plain/calculate/setTime.js +25 -12
- package/dist/plain/calculate/startOfDate.d.ts +8 -2
- package/dist/plain/calculate/startOfDate.js +1 -2
- package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
- package/dist/plain/calculate/startOfDateTime.js +1 -2
- package/dist/plain/calculate/startOfTime.d.ts +9 -2
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractDate.d.ts +7 -4
- package/dist/plain/calculate/subtractDate.js +5 -11
- package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
- package/dist/plain/calculate/subtractDateTime.js +5 -11
- package/dist/plain/calculate/subtractTime.js +4 -7
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
- package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
- package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
- package/dist/plain/compare/areDatesEqualBy.js +8 -6
- package/dist/plain/compare/isBetweenDate.d.ts +13 -2
- package/dist/plain/compare/isBetweenDate.js +4 -4
- package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenDateTime.js +4 -4
- package/dist/plain/compare/isBetweenTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenTime.js +4 -4
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +1 -1
- package/dist/plain/compare/isThisUnit.js +1 -1
- package/dist/plain/format/formatCalendar.d.ts +21 -14
- package/dist/plain/format/formatCalendar.js +23 -17
- package/dist/plain/format/formatDate.js +5 -3
- package/dist/plain/format/formatDateRange.js +4 -2
- package/dist/plain/format/formatDateTime.js +4 -2
- package/dist/plain/format/formatDateTimeRange.js +4 -2
- package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
- package/dist/plain/format/formatDateTimeToParts.js +10 -6
- package/dist/plain/format/formatDateToParts.d.ts +13 -2
- package/dist/plain/format/formatDateToParts.js +8 -4
- package/dist/plain/format/formatRelativeDate.d.ts +16 -3
- package/dist/plain/format/formatRelativeDate.js +28 -16
- package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeDateTime.js +10 -6
- package/dist/plain/format/formatRelativeTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeTime.js +23 -14
- package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
- package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +7 -7
- package/dist/plain/format/formatTime.js +4 -2
- package/dist/plain/format/index.d.ts +1 -1
- package/dist/plain/format/index.js +1 -1
- package/dist/plain/get/getNowUnit.d.ts +2 -0
- package/dist/plain/get/getNowUnit.js +2 -0
- package/dist/plain/get/getYear.d.ts +2 -0
- package/dist/plain/get/getYear.js +4 -3
- package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
- package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDate.js +1 -3
- package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
- package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
- package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDate.js +2 -0
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
- package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtTime.js +2 -0
- package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
- package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.js +2 -2
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDateTime.js +2 -2
- package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllTime.js +2 -2
- package/dist/plain/interval/intervalXorDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.js +2 -2
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDateTime.js +2 -2
- package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsTime.js +2 -2
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
- package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
- package/dist/plain/map/mapDatesInRange.d.ts +8 -4
- package/dist/plain/map/mapDatesInRange.js +1 -4
- package/dist/plain/parse/index.d.ts +1 -1
- package/dist/plain/parse/index.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +25 -9
- package/dist/plain/parse/parseDateTimeWithPattern.js +29 -11
- package/dist/plain/parse/parseDateWithPattern.d.ts +26 -9
- package/dist/plain/parse/parseDateWithPattern.js +30 -11
- package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
- package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +8 -8
- package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseTimeWithPattern.js +11 -7
- package/dist/plain/parse/parseUnitFromDate.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDate.js +8 -4
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +8 -4
- package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDate.js +2 -6
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
- package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
- package/dist/plain/parse/parseYearFromDate.js +7 -3
- package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
- package/dist/plain/parse/parseYearFromDateTime.js +6 -3
- package/dist/plain/validate/index.d.ts +1 -0
- package/dist/plain/validate/index.js +1 -0
- package/dist/plain/validate/isValidDateRange.d.ts +19 -4
- package/dist/plain/validate/isValidDateRange.js +1 -4
- package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidDateTimeRange.js +2 -5
- package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
- package/dist/plain/validate/isValidSqlDateTime.js +36 -0
- package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidTimeRange.js +2 -5
- package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
- package/dist/precision/convert/fromExcelSerial.js +4 -5
- package/dist/precision/convert/fromNanoseconds.d.ts +9 -3
- package/dist/precision/convert/fromNanoseconds.js +9 -3
- package/dist/precision/convert/toExcelSerial.d.ts +9 -3
- package/dist/precision/convert/toExcelSerial.js +3 -4
- package/dist/precision/convert/toNanoseconds.d.ts +11 -6
- package/dist/precision/convert/toNanoseconds.js +11 -6
- package/dist/precision/validate/isValidInstant.d.ts +12 -3
- package/dist/precision/validate/isValidInstant.js +12 -3
- package/dist/regex/epcis.d.ts +60 -0
- package/dist/regex/epcis.js +60 -0
- package/dist/regex/http-date.d.ts +6 -4
- package/dist/regex/http-date.js +6 -4
- package/dist/regex/index.d.ts +1 -0
- package/dist/regex/index.js +1 -0
- package/dist/regex/rfc-2822.d.ts +2 -0
- package/dist/regex/rfc-2822.js +2 -0
- package/dist/regex/rfc-3339.d.ts +3 -1
- package/dist/regex/rfc-3339.js +3 -1
- package/dist/regex/sql-date-time.d.ts +2 -1
- package/dist/regex/sql-date-time.js +2 -1
- package/dist/regex/time-zone-like.d.ts +3 -2
- package/dist/regex/time-zone-like.js +3 -2
- package/dist/regex/utc-offset.d.ts +2 -1
- package/dist/regex/utc-offset.js +2 -1
- package/dist/span/calculate/spanMs.d.ts +10 -4
- package/dist/span/calculate/spanMs.js +10 -4
- package/dist/span/calculate/spanNs.d.ts +10 -4
- package/dist/span/calculate/spanNs.js +10 -4
- package/dist/span/validate/isValidSpan.d.ts +8 -3
- package/dist/span/validate/isValidSpan.js +8 -3
- package/dist/transport/calculate/bestAvailable.d.ts +47 -0
- package/dist/transport/calculate/bestAvailable.js +76 -0
- package/dist/transport/calculate/crossingTime.d.ts +63 -0
- package/dist/transport/calculate/crossingTime.js +81 -0
- package/dist/transport/calculate/cutoffAt.d.ts +95 -0
- package/dist/transport/calculate/cutoffAt.js +211 -0
- package/dist/transport/calculate/cutoffSchedule.d.ts +75 -0
- package/dist/transport/calculate/cutoffSchedule.js +73 -0
- package/dist/transport/calculate/dwellTime.d.ts +22 -8
- package/dist/transport/calculate/dwellTime.js +18 -9
- package/dist/transport/calculate/estimateDrift.d.ts +65 -0
- package/dist/transport/calculate/estimateDrift.js +75 -0
- package/dist/transport/calculate/index.d.ts +8 -0
- package/dist/transport/calculate/index.js +8 -0
- package/dist/transport/calculate/nextDeparture.d.ts +78 -0
- package/dist/transport/calculate/nextDeparture.js +131 -0
- package/dist/transport/calculate/punctualityRate.d.ts +42 -0
- package/dist/transport/calculate/punctualityRate.js +59 -0
- package/dist/transport/calculate/scheduleDelivery.d.ts +158 -0
- package/dist/transport/calculate/scheduleDelivery.js +305 -0
- package/dist/transport/calculate/transitTime.d.ts +21 -3
- package/dist/transport/calculate/transitTime.js +29 -46
- package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
- package/dist/transport/compare/classifyPunctuality.js +64 -0
- package/dist/transport/compare/index.d.ts +4 -0
- package/dist/transport/compare/index.js +4 -0
- package/dist/transport/compare/isPastCutoff.d.ts +33 -0
- package/dist/transport/compare/isPastCutoff.js +48 -0
- package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
- package/dist/transport/compare/scheduleDeviation.js +53 -0
- package/dist/transport/compare/timeToCutoff.d.ts +31 -0
- package/dist/transport/compare/timeToCutoff.js +47 -0
- package/dist/transport/convert/etaAtZone.d.ts +13 -1
- package/dist/transport/convert/etaAtZone.js +15 -5
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.js +1 -0
- package/dist/types/business-calendar.d.ts +20 -14
- package/dist/types/calendar-options.d.ts +15 -3
- package/dist/types/date-cycle-field.d.ts +5 -0
- package/dist/types/date-duration-unit.d.ts +4 -0
- package/dist/types/date-time-cycle-field.d.ts +4 -0
- package/dist/types/date-time-duration-units.d.ts +4 -0
- package/dist/types/date-time-unit.d.ts +4 -0
- package/dist/types/date-unit.d.ts +4 -0
- package/dist/types/disambiguation.d.ts +8 -0
- package/dist/types/duration-relative-to.d.ts +8 -0
- package/dist/types/duration-string-options.d.ts +28 -0
- package/dist/types/duty.d.ts +777 -0
- package/dist/types/edi.d.ts +407 -0
- package/dist/types/edi.js +0 -0
- package/dist/types/epcis.d.ts +25 -0
- package/dist/types/epcis.js +0 -0
- package/dist/types/exact-duration-unit.d.ts +8 -0
- package/dist/types/exact-duration-unit.js +0 -0
- package/dist/types/fiscal-calendar.d.ts +1 -1
- package/dist/types/fractional-digit.d.ts +5 -0
- package/dist/types/free-time-options.d.ts +22 -11
- package/dist/types/index.d.ts +7 -1
- package/dist/types/index.js +7 -1
- package/dist/types/interval.d.ts +8 -1
- package/dist/types/offset.d.ts +9 -0
- package/dist/types/operating-schedule.d.ts +72 -0
- package/dist/types/operating-schedule.js +0 -0
- package/dist/types/overflow.d.ts +6 -0
- package/dist/types/relative-rounding-method.d.ts +6 -0
- package/dist/types/relative-time-options.d.ts +33 -5
- package/dist/types/rounding-options.d.ts +27 -0
- package/dist/types/time-cycle-field.d.ts +4 -0
- package/dist/types/time-duration-unit.d.ts +4 -0
- package/dist/types/time-unit.d.ts +4 -0
- package/dist/types/transport-timestamps.d.ts +54 -0
- package/dist/types/transport-timestamps.js +0 -0
- package/dist/types/two-digit-year.d.ts +23 -0
- package/dist/types/two-digit-year.js +0 -0
- package/dist/types/zone-bucket-unit.d.ts +1 -1
- package/dist/unix/calculate/addUnix.d.ts +28 -5
- package/dist/unix/calculate/addUnix.js +15 -16
- package/dist/unix/calculate/diffUnix.d.ts +21 -3
- package/dist/unix/calculate/diffUnix.js +12 -9
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +21 -3
- package/dist/unix/calculate/diffUnixAsDuration.js +11 -8
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/endOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/endOfUnix.d.ts +29 -4
- package/dist/unix/calculate/endOfUnix.js +8 -4
- package/dist/unix/calculate/isBetweenUnix.d.ts +27 -4
- package/dist/unix/calculate/isBetweenUnix.js +7 -9
- package/dist/unix/calculate/roundUnix.d.ts +39 -3
- package/dist/unix/calculate/roundUnix.js +16 -12
- package/dist/unix/calculate/setUnix.d.ts +58 -12
- package/dist/unix/calculate/setUnix.js +37 -25
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/startOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/startOfUnix.d.ts +29 -4
- package/dist/unix/calculate/startOfUnix.js +8 -4
- package/dist/unix/calculate/subtractUnix.d.ts +27 -5
- package/dist/unix/calculate/subtractUnix.js +14 -16
- package/dist/unix/compare/areUnixEqual.d.ts +7 -1
- package/dist/unix/compare/areUnixEqual.js +1 -1
- package/dist/unix/compare/areUnixEqualBy.d.ts +33 -7
- package/dist/unix/compare/areUnixEqualBy.js +20 -9
- package/dist/unix/compare/isAfterUnix.d.ts +7 -1
- package/dist/unix/compare/isAfterUnix.js +1 -1
- package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
- package/dist/unix/compare/isBeforeUnix.js +1 -1
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainDate.js +7 -8
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.js +7 -8
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainTime.js +7 -8
- package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
- package/dist/unix/convert/convertUnixToUtc.js +3 -4
- package/dist/unix/convert/convertUnixToZoned.d.ts +14 -5
- package/dist/unix/convert/convertUnixToZoned.js +8 -5
- package/dist/unix/format/formatCalendarUnix.d.ts +31 -19
- package/dist/unix/format/formatCalendarUnix.js +10 -6
- package/dist/unix/format/formatRelativeUnix.d.ts +62 -5
- package/dist/unix/format/formatRelativeUnix.js +16 -10
- package/dist/unix/format/formatUnix.d.ts +29 -6
- package/dist/unix/format/formatUnix.js +12 -7
- package/dist/unix/get/getUnixDay.d.ts +1 -3
- package/dist/unix/get/getUnixDay.js +5 -12
- package/dist/unix/get/getUnixHour.d.ts +1 -3
- package/dist/unix/get/getUnixHour.js +5 -12
- package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
- package/dist/unix/get/getUnixMicrosecond.js +4 -11
- package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
- package/dist/unix/get/getUnixMillisecond.js +5 -12
- package/dist/unix/get/getUnixMinute.d.ts +1 -3
- package/dist/unix/get/getUnixMinute.js +5 -12
- package/dist/unix/get/getUnixMonth.d.ts +1 -3
- package/dist/unix/get/getUnixMonth.js +5 -12
- package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
- package/dist/unix/get/getUnixNanosecond.js +4 -11
- package/dist/unix/get/getUnixNow.d.ts +8 -3
- package/dist/unix/get/getUnixNow.js +1 -3
- package/dist/unix/get/getUnixNowUnit.d.ts +2 -0
- package/dist/unix/get/getUnixNowUnit.js +2 -0
- package/dist/unix/get/getUnixSecond.d.ts +1 -3
- package/dist/unix/get/getUnixSecond.js +5 -12
- package/dist/unix/get/getUnixYear.d.ts +3 -3
- package/dist/unix/get/getUnixYear.js +5 -12
- package/dist/unix/interval/intervalCountUnix.d.ts +23 -5
- package/dist/unix/interval/intervalCountUnix.js +9 -5
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
- package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +41 -5
- package/dist/unix/interval/intervalFromDurationUnix.js +18 -12
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalLengthUnix.d.ts +24 -6
- package/dist/unix/interval/intervalLengthUnix.js +10 -6
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +21 -3
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +11 -8
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
- package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
- package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +50 -11
- package/dist/unix/interval/splitIntervalByUnitUnix.js +33 -22
- package/dist/unix/parse/parseDateFromUnix.d.ts +15 -2
- package/dist/unix/parse/parseDateFromUnix.js +4 -5
- package/dist/unix/parse/parseDayFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseDayFromUnix.js +2 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +15 -1
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +3 -3
- package/dist/unix/parse/parseHourFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseHourFromUnix.js +2 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMonthFromUnix.js +2 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseSecondFromUnix.js +2 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseTimeFromUnix.js +5 -5
- package/dist/unix/parse/parseUnitFromUnix.d.ts +29 -4
- package/dist/unix/parse/parseUnitFromUnix.js +23 -17
- package/dist/unix/parse/parseWeekFromUnix.d.ts +24 -7
- package/dist/unix/parse/parseWeekFromUnix.js +7 -11
- package/dist/unix/parse/parseYearFromUnix.d.ts +20 -3
- package/dist/unix/parse/parseYearFromUnix.js +6 -3
- package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
- package/dist/unix/validate/isValidUnixRange.js +1 -4
- package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
- package/dist/utc/calculate/addUtc.d.ts +7 -4
- package/dist/utc/calculate/addUtc.js +5 -11
- package/dist/utc/calculate/diffUtc.d.ts +1 -1
- package/dist/utc/calculate/diffUtc.js +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +16 -3
- package/dist/utc/calculate/endOfUtc.js +2 -3
- package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
- package/dist/utc/calculate/isBetweenUtc.js +4 -4
- package/dist/utc/calculate/roundUtc.d.ts +26 -9
- package/dist/utc/calculate/roundUtc.js +3 -12
- package/dist/utc/calculate/setUtc.d.ts +23 -7
- package/dist/utc/calculate/setUtc.js +23 -12
- package/dist/utc/calculate/startOfUtc.d.ts +15 -2
- package/dist/utc/calculate/startOfUtc.js +1 -2
- package/dist/utc/calculate/subtractUtc.d.ts +7 -4
- package/dist/utc/calculate/subtractUtc.js +5 -11
- package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
- package/dist/utc/compare/areUtcEqualBy.js +2 -3
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +14 -3
- package/dist/utc/convert/convertUtcToPlainDate.js +12 -10
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +15 -3
- package/dist/utc/convert/convertUtcToPlainDateTime.js +14 -16
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +11 -3
- package/dist/utc/convert/convertUtcToPlainTime.js +9 -9
- package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
- package/dist/utc/convert/convertUtcToUnix.js +3 -4
- package/dist/utc/convert/convertUtcToZoned.d.ts +5 -1
- package/dist/utc/convert/convertUtcToZoned.js +5 -1
- package/dist/utc/format/formatCalendarUtc.d.ts +23 -8
- package/dist/utc/format/formatCalendarUtc.js +14 -7
- package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +8 -8
- package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +8 -8
- package/dist/utc/format/formatRelativeUtc.d.ts +38 -10
- package/dist/utc/format/formatRelativeUtc.js +22 -16
- package/dist/utc/format/formatUtc.d.ts +22 -15
- package/dist/utc/format/formatUtc.js +12 -8
- package/dist/utc/format/index.d.ts +1 -1
- package/dist/utc/format/index.js +1 -1
- package/dist/utc/get/getUtcDay.d.ts +1 -3
- package/dist/utc/get/getUtcDay.js +5 -12
- package/dist/utc/get/getUtcHour.d.ts +1 -3
- package/dist/utc/get/getUtcHour.js +5 -12
- package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
- package/dist/utc/get/getUtcMicrosecond.js +4 -11
- package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
- package/dist/utc/get/getUtcMillisecond.js +5 -12
- package/dist/utc/get/getUtcMinute.d.ts +1 -3
- package/dist/utc/get/getUtcMinute.js +5 -12
- package/dist/utc/get/getUtcMonth.d.ts +1 -3
- package/dist/utc/get/getUtcMonth.js +5 -12
- package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
- package/dist/utc/get/getUtcNanosecond.js +4 -11
- package/dist/utc/get/getUtcNow.d.ts +1 -3
- package/dist/utc/get/getUtcNow.js +2 -9
- package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
- package/dist/utc/get/getUtcNowUnit.js +2 -0
- package/dist/utc/get/getUtcSecond.d.ts +1 -3
- package/dist/utc/get/getUtcSecond.js +5 -12
- package/dist/utc/get/getUtcYear.d.ts +3 -3
- package/dist/utc/get/getUtcYear.js +5 -12
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
- package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
- package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
- package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
- package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.js +2 -2
- package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
- package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
- package/dist/utc/parse/index.d.ts +1 -1
- package/dist/utc/parse/index.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDateFromUtc.js +3 -5
- package/dist/utc/parse/parseDayFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayFromUtc.js +3 -5
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +5 -7
- package/dist/utc/parse/parseHourFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseHourFromUtc.js +3 -5
- package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
- package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +12 -12
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMicrosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMillisecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMinuteFromUtc.js +3 -5
- package/dist/utc/parse/parseMonthFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMonthFromUtc.js +3 -5
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseNanosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseSecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseSecondFromUtc.js +3 -5
- package/dist/utc/parse/parseTimeFromUtc.d.ts +11 -3
- package/dist/utc/parse/parseTimeFromUtc.js +7 -7
- package/dist/utc/parse/parseUnitFromUtc.d.ts +25 -6
- package/dist/utc/parse/parseUnitFromUtc.js +14 -10
- package/dist/utc/parse/parseWeekFromUtc.d.ts +20 -10
- package/dist/utc/parse/parseWeekFromUtc.js +8 -14
- package/dist/utc/parse/parseYearFromUtc.d.ts +13 -5
- package/dist/utc/parse/parseYearFromUtc.js +9 -8
- package/dist/utc/validate/index.d.ts +2 -0
- package/dist/utc/validate/index.js +2 -0
- package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
- package/dist/utc/validate/isValidHttpDate.js +38 -0
- package/dist/utc/validate/isValidUtc.d.ts +4 -0
- package/dist/utc/validate/isValidUtc.js +4 -0
- package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
- package/dist/utc/validate/isValidUtcRange.js +2 -5
- package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
- package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
- package/dist/zoned/calculate/addZoned.d.ts +20 -10
- package/dist/zoned/calculate/addZoned.js +10 -20
- package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
- package/dist/zoned/calculate/cycleZoned.js +1 -8
- package/dist/zoned/calculate/diffZoned.d.ts +1 -1
- package/dist/zoned/calculate/diffZoned.js +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
- package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
- package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
- package/dist/zoned/calculate/roundZoned.d.ts +21 -4
- package/dist/zoned/calculate/roundZoned.js +3 -7
- package/dist/zoned/calculate/setZoned.d.ts +44 -13
- package/dist/zoned/calculate/setZoned.js +30 -21
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
- package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
- package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
- package/dist/zoned/calculate/startOfZoned.js +1 -3
- package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
- package/dist/zoned/calculate/subtractZoned.js +10 -20
- package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
- package/dist/zoned/compare/areZonedEqualBy.js +7 -5
- package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
- package/dist/zoned/compare/isBetweenZoned.js +4 -3
- package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
- package/dist/zoned/compare/isInDaylightSaving.js +40 -44
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +21 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +9 -11
- package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
- package/dist/zoned/convert/convertZonedToUnix.js +2 -4
- package/dist/zoned/convert/convertZonedToZoned.d.ts +5 -1
- package/dist/zoned/convert/convertZonedToZoned.js +5 -1
- package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
- package/dist/zoned/format/formatCalendarZoned.js +15 -10
- package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
- package/dist/zoned/format/formatRelativeZoned.js +9 -5
- package/dist/zoned/format/formatRfc2822.d.ts +2 -2
- package/dist/zoned/format/formatRfc2822.js +2 -2
- package/dist/zoned/format/formatRfc3339.d.ts +2 -3
- package/dist/zoned/format/formatRfc3339.js +2 -3
- package/dist/zoned/format/formatTimeZoneName.d.ts +16 -3
- package/dist/zoned/format/formatTimeZoneName.js +9 -4
- package/dist/zoned/format/formatZonedDateTime.js +2 -1
- package/dist/zoned/format/formatZonedRange.js +2 -1
- package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
- package/dist/zoned/format/formatZonedToParts.js +8 -5
- package/dist/zoned/get/getDstTransitions.d.ts +11 -10
- package/dist/zoned/get/getDstTransitions.js +21 -7
- package/dist/zoned/get/getSystemTimeZone.d.ts +3 -1
- package/dist/zoned/get/getSystemTimeZone.js +5 -2
- package/dist/zoned/get/getTimeZoneOffset.d.ts +13 -2
- package/dist/zoned/get/getTimeZoneOffset.js +22 -6
- package/dist/zoned/get/getZonedDay.d.ts +2 -1
- package/dist/zoned/get/getZonedDay.js +6 -7
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +2 -1
- package/dist/zoned/get/getZonedDayOfWeek.js +6 -5
- package/dist/zoned/get/getZonedHour.d.ts +2 -1
- package/dist/zoned/get/getZonedHour.js +6 -7
- package/dist/zoned/get/getZonedMicrosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMicrosecond.js +6 -5
- package/dist/zoned/get/getZonedMillisecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMillisecond.js +6 -7
- package/dist/zoned/get/getZonedMinute.d.ts +2 -1
- package/dist/zoned/get/getZonedMinute.js +6 -7
- package/dist/zoned/get/getZonedMonth.d.ts +2 -1
- package/dist/zoned/get/getZonedMonth.js +6 -7
- package/dist/zoned/get/getZonedNanosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedNanosecond.js +6 -5
- package/dist/zoned/get/getZonedNow.d.ts +18 -2
- package/dist/zoned/get/getZonedNow.js +17 -4
- package/dist/zoned/get/getZonedNowUnit.d.ts +6 -3
- package/dist/zoned/get/getZonedNowUnit.js +10 -7
- package/dist/zoned/get/getZonedSecond.d.ts +2 -1
- package/dist/zoned/get/getZonedSecond.js +6 -7
- package/dist/zoned/get/getZonedToday.d.ts +2 -1
- package/dist/zoned/get/getZonedToday.js +6 -5
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +2 -1
- package/dist/zoned/get/getZonedWeekOfYear.js +6 -5
- package/dist/zoned/get/getZonedYear.d.ts +4 -1
- package/dist/zoned/get/getZonedYear.js +9 -7
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
- package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
- package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
- package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.js +2 -2
- package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.js +2 -2
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
- package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
- package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +13 -4
- package/dist/zoned/parse/parseUnitFromZoned.js +6 -4
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
- package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
- package/dist/zoned/parse/parseYearFromZoned.js +6 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +45 -12
- package/dist/zoned/validate/hasDaylightSaving.js +54 -32
- package/dist/zoned/validate/index.d.ts +2 -0
- package/dist/zoned/validate/index.js +2 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
- package/dist/zoned/validate/isValidTimeZone.d.ts +5 -1
- package/dist/zoned/validate/isValidTimeZone.js +6 -2
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
- package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
- package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
- package/dist/zoned/validate/isValidZonedRange.js +1 -4
- package/package.json +67 -5
- package/skills/gmt-arithmetic/SKILL.md +99 -12
- package/skills/gmt-basics/SKILL.md +64 -13
- package/skills/gmt-integration/SKILL.md +33 -13
- package/skills/gmt-timezone/SKILL.md +265 -31
- package/dist/duration/calculate/durationAs.d.ts +0 -62
- package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
- package/dist/internal/resolveReadingTimeZone.js +0 -18
- package/dist/internal/unixZonedDateTime.d.ts +0 -22
- package/dist/internal/unixZonedDateTime.js +0 -32
- package/dist/internal/utcZonedDateTime.d.ts +0 -16
- package/dist/internal/utcZonedDateTime.js +0 -28
- package/dist/types/duration-unit.d.ts +0 -5
- /package/dist/types/{duration-unit.js → duty.js} +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { BusinessCalendar } from "./business-calendar.js";
|
|
2
|
+
/**
|
|
3
|
+
* An ISO weekday number: 1 (Monday) through 7 (Sunday), as `Temporal.PlainDate#dayOfWeek`
|
|
4
|
+
* reads it.
|
|
5
|
+
*/
|
|
6
|
+
export type IsoWeekday = 1 | 2 | 3 | 4 | 5 | 6 | 7;
|
|
7
|
+
/**
|
|
8
|
+
* A daily window of local wall time, half-open: open from `from` up to (not including) `to`.
|
|
9
|
+
*
|
|
10
|
+
* - `from` and `to` are wall-clock readings in the schedule's zone, not instants.
|
|
11
|
+
* - A window belongs to the date it starts on. A Friday night window listed under weekday 5
|
|
12
|
+
* runs into Saturday morning; a holiday or override on Friday removes or replaces it, and one
|
|
13
|
+
* on Saturday does not.
|
|
14
|
+
*/
|
|
15
|
+
export type LocalWindow = {
|
|
16
|
+
/**
|
|
17
|
+
* The wall time the window opens, as an ISO PlainTime string (`"09:00"`, `"17:30:00"`) that
|
|
18
|
+
* `isValidTime` accepts.
|
|
19
|
+
*/
|
|
20
|
+
from: string;
|
|
21
|
+
/**
|
|
22
|
+
* The wall time the window closes, as an ISO PlainTime string; the window does not include it.
|
|
23
|
+
* A value after `from` keeps the window inside one local date. A value at or before `from`
|
|
24
|
+
* wraps past midnight into the next local date: `{ from: "23:00", to: "06:00" }` is a night,
|
|
25
|
+
* and `{ from: "00:00", to: "00:00" }` is a whole day.
|
|
26
|
+
*/
|
|
27
|
+
to: string;
|
|
28
|
+
};
|
|
29
|
+
/** One local date whose windows differ from the weekly pattern. */
|
|
30
|
+
export type OperatingOverride = {
|
|
31
|
+
/** The local date the override applies to, as an ISO PlainDate string in the schedule's zone. */
|
|
32
|
+
date: string;
|
|
33
|
+
/**
|
|
34
|
+
* The windows that date has instead of its weekly ones, holiday or not. `[]` closes the date
|
|
35
|
+
* for the whole day.
|
|
36
|
+
*/
|
|
37
|
+
windows: LocalWindow[];
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Weekly opening hours in one zone, with dated exceptions.
|
|
41
|
+
*
|
|
42
|
+
* This is deliberately a weekly pattern with dated exceptions, not an RFC 5545 recurrence rule:
|
|
43
|
+
* there is no monthly or yearly recurrence.
|
|
44
|
+
*/
|
|
45
|
+
export type OperatingSchedule = {
|
|
46
|
+
/**
|
|
47
|
+
* The time zone the windows are read in, an IANA name or UTC offset: a time zone identifier
|
|
48
|
+
* (`+05:30`, `+0530`, `-08`) or a stored offset (`±HH:MM[:SS]`, what `getTimeZoneOffset`
|
|
49
|
+
* returns). A UTC offset such as `"+02:00"` observes no DST.
|
|
50
|
+
*/
|
|
51
|
+
timeZone: string;
|
|
52
|
+
/**
|
|
53
|
+
* The windows of each ISO weekday. A missing weekday, or `[]`, is closed all day. Windows of
|
|
54
|
+
* one weekday may overlap or touch; they are merged.
|
|
55
|
+
*/
|
|
56
|
+
weekly: Partial<Record<IsoWeekday, LocalWindow[]>>;
|
|
57
|
+
/**
|
|
58
|
+
* The local dates that are closed, as ISO PlainDate strings. A `BusinessCalendar` can be passed
|
|
59
|
+
* directly: its `holidays` are read, and its `weekend` and `timeZone` are not, because `weekly`
|
|
60
|
+
* already says which weekdays open and `timeZone` above is the zone.
|
|
61
|
+
*
|
|
62
|
+
* @defaultValue None. No date is closed as a holiday.
|
|
63
|
+
*/
|
|
64
|
+
holidays?: string[] | BusinessCalendar;
|
|
65
|
+
/**
|
|
66
|
+
* The single dates whose windows replace the weekly ones. An override wins over a holiday on the
|
|
67
|
+
* same date, and two overrides for one date make the schedule invalid.
|
|
68
|
+
*
|
|
69
|
+
* @defaultValue None. Every date follows the weekly pattern and the holidays.
|
|
70
|
+
*/
|
|
71
|
+
overrides?: OperatingOverride[];
|
|
72
|
+
};
|
|
File without changes
|
package/dist/types/overflow.d.ts
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
1
|
import type { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
/**
|
|
3
|
+
* What to do when a date or time field is out of range, as Temporal's `overflow` option
|
|
4
|
+
* (`Temporal.PlainDate.prototype.add(item, { overflow })`). `"constrain"` clamps the field to the
|
|
5
|
+
* nearest valid value, so January 31 plus one month is the last day of February; `"reject"`
|
|
6
|
+
* refuses the value.
|
|
7
|
+
*/
|
|
2
8
|
export type Overflow = Temporal.ArithmeticOptions["overflow"];
|
|
@@ -1 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How the `formatRelative*` functions round a fractional distance to a whole number of the unit
|
|
3
|
+
* displayed. It is applied to the signed value, where a past distance is negative: `"floor"`
|
|
4
|
+
* rounds toward negative infinity, `"ceil"` toward positive infinity, and `"round"` to the nearest
|
|
5
|
+
* whole number, a half going toward positive infinity.
|
|
6
|
+
*/
|
|
1
7
|
export type RelativeRoundingMethod = "floor" | "ceil" | "round";
|
|
@@ -5,14 +5,42 @@ import type { RelativeRoundingMethod } from "./relative-rounding-method.js";
|
|
|
5
5
|
* restrict `largestUnit` or add domain-specific fields.
|
|
6
6
|
*/
|
|
7
7
|
export interface RelativeTimeFormatOptions {
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* The length of the unit name, as the `style` of `Intl.RelativeTimeFormat`: `"long"` ("in 3
|
|
10
|
+
* months"), `"short"` ("in 3 mo.") or `"narrow"` (the locale's most compact form).
|
|
11
|
+
*
|
|
12
|
+
* @defaultValue `"long"`
|
|
13
|
+
*/
|
|
9
14
|
style?: "long" | "short" | "narrow";
|
|
10
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Whether a distance may be written as a word instead of a number, as the `numeric` option of
|
|
17
|
+
* `Intl.RelativeTimeFormat`. `"auto"` uses the locale's word where it has one ("yesterday",
|
|
18
|
+
* "next year"); `"always"` writes the number every time ("1 day ago").
|
|
19
|
+
*
|
|
20
|
+
* @defaultValue `"auto"`
|
|
21
|
+
*/
|
|
11
22
|
numeric?: "always" | "auto";
|
|
12
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* The one unit the distance is written in, whatever its size, so `"hour"` renders a day and a
|
|
25
|
+
* half as "in 36 hours". Each domain restricts the allowed values to the units its values have,
|
|
26
|
+
* singular or plural; any other value returns `""`.
|
|
27
|
+
*
|
|
28
|
+
* @defaultValue None. The unit is picked from the distance.
|
|
29
|
+
*/
|
|
13
30
|
largestUnit?: string;
|
|
14
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* The way a fractional distance becomes the whole number displayed: `"round"` goes to the nearest
|
|
33
|
+
* whole number, `"floor"` down and `"ceil"` up. It applies to the signed value, where a past
|
|
34
|
+
* distance is negative, so `"floor"` turns −1.5 hours into "2 hours ago".
|
|
35
|
+
*
|
|
36
|
+
* @defaultValue `"round"`
|
|
37
|
+
*/
|
|
15
38
|
roundingMethod?: RelativeRoundingMethod;
|
|
16
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* The moment the distance is measured from, as an ISO string in the same form as the value
|
|
41
|
+
* being formatted.
|
|
42
|
+
*
|
|
43
|
+
* @defaultValue The current date and time.
|
|
44
|
+
*/
|
|
17
45
|
reference?: string;
|
|
18
46
|
}
|
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
import type { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
/**
|
|
3
|
+
* How a difference is rounded, as the rounding options of Temporal's `until()` and `since()`
|
|
4
|
+
* (`Temporal.PlainDate.prototype.until(other, options)`). `Unit` is the set of units the values
|
|
5
|
+
* being compared have: date units for dates, time units for times.
|
|
6
|
+
*/
|
|
2
7
|
export type RoundingOptions<Unit extends Temporal.DateTimeUnit> = {
|
|
8
|
+
/**
|
|
9
|
+
* The smallest unit kept in the difference; anything smaller is rounded into it. It may not be
|
|
10
|
+
* larger than the largest unit asked for.
|
|
11
|
+
*
|
|
12
|
+
* @defaultValue None. The difference is not rounded: Temporal uses the smallest unit the
|
|
13
|
+
* values have, `"day"` for dates and `"nanosecond"` otherwise.
|
|
14
|
+
*/
|
|
3
15
|
smallestUnit?: Temporal.SmallestUnit<Unit>;
|
|
16
|
+
/**
|
|
17
|
+
* The step the smallest unit is rounded to, so `15` with `"minute"` rounds to a quarter of an
|
|
18
|
+
* hour. For a time unit it must divide the next larger unit evenly and be smaller than it (`15`
|
|
19
|
+
* or `30` minutes, not `7` or `60`); a date unit takes any whole number from 1 up. A non-integer
|
|
20
|
+
* is truncated first, as Temporal does, and any other value is invalid input.
|
|
21
|
+
*
|
|
22
|
+
* @defaultValue `1`, Temporal's default.
|
|
23
|
+
*/
|
|
4
24
|
roundingIncrement?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Which way a value between two steps goes. `"trunc"` rounds toward zero and `"halfExpand"` to
|
|
27
|
+
* the nearest step, a half going away from zero; the other modes are those of Temporal's
|
|
28
|
+
* `roundingMode` option.
|
|
29
|
+
*
|
|
30
|
+
* @defaultValue `"trunc"`, Temporal's default for a difference.
|
|
31
|
+
*/
|
|
5
32
|
roundingMode?: Temporal.RoundingMode;
|
|
6
33
|
};
|
|
@@ -1 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A time field `cycleTime`, `cycleDateTime` and `cycleZoned` can step and wrap, from `"hour"`
|
|
3
|
+
* down to `"nanosecond"`: the fields of Temporal's `PlainTime`.
|
|
4
|
+
*/
|
|
1
5
|
export type TimeCycleField = "hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond";
|
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
import type { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
/**
|
|
3
|
+
* A time field of an ISO 8601 duration, in the plural, from `"hours"` down to `"nanoseconds"`.
|
|
4
|
+
* It names the unit an amount of time is given in or a time difference is measured in.
|
|
5
|
+
*/
|
|
2
6
|
export type TimeDurationUnit = keyof Pick<Temporal.DurationLike, "hours" | "minutes" | "seconds" | "milliseconds" | "microseconds" | "nanoseconds">;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a transport timestamp claims to be, in DCSA's `eventClassifierCode` vocabulary:
|
|
3
|
+
*
|
|
4
|
+
* - `PLN`: planned, the schedule.
|
|
5
|
+
* - `EST`: estimated, a prediction that may be revised.
|
|
6
|
+
* - `REQ`: requested, the time one party asked another for.
|
|
7
|
+
* - `ACT`: actual, an observation of what happened.
|
|
8
|
+
*
|
|
9
|
+
* One field can hold all four. A value is only comparable with another once its class is known:
|
|
10
|
+
* an estimate compared with an actual as though both were observations is the standard
|
|
11
|
+
* visibility-dashboard error.
|
|
12
|
+
*/
|
|
13
|
+
export type TimestampClass = "PLN" | "EST" | "REQ" | "ACT";
|
|
14
|
+
/**
|
|
15
|
+
* One recorded timestamp of an event: what it claims, when it claims it, and when that claim was
|
|
16
|
+
* recorded.
|
|
17
|
+
*/
|
|
18
|
+
export type TimestampEvent = {
|
|
19
|
+
/** What the timestamp claims to be: planned, estimated, requested or actual. */
|
|
20
|
+
classifier: TimestampClass;
|
|
21
|
+
/**
|
|
22
|
+
* The moment the timestamp names, as an ISO 8601 instant (`Z` or an offset) or zoned string.
|
|
23
|
+
* Functions that return it echo it exactly as written.
|
|
24
|
+
*/
|
|
25
|
+
at: string;
|
|
26
|
+
/**
|
|
27
|
+
* When the timestamp was recorded or received, as an ISO 8601 instant or zoned string. It
|
|
28
|
+
* orders revisions of the same class: the latest recorded is the current one.
|
|
29
|
+
*/
|
|
30
|
+
recordedAt: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* The caller's punctuality tolerance, as ISO 8601 durations of exact time (a day is 24 hours;
|
|
34
|
+
* years, months and weeks are refused; neither may be negative).
|
|
35
|
+
*
|
|
36
|
+
* GMT holds no default: "on time" without a stated tolerance is not a measurement. A 15-minute
|
|
37
|
+
* tolerance is `{ late: "PT15M" }`; a day-based one is `{ late: "P1D", early: "P1D" }`.
|
|
38
|
+
*/
|
|
39
|
+
export type PunctualityTolerance = {
|
|
40
|
+
/**
|
|
41
|
+
* How far after the plan an arrival may be before it is late: a deviation of this much or more
|
|
42
|
+
* is late. `"PT0S"` makes every arrival at or after the plan late.
|
|
43
|
+
*/
|
|
44
|
+
late: string;
|
|
45
|
+
/**
|
|
46
|
+
* How far before the plan an arrival may be before it is early: a deviation of this much or
|
|
47
|
+
* more ahead of the plan is early.
|
|
48
|
+
*
|
|
49
|
+
* @defaultValue None. An early arrival is on time.
|
|
50
|
+
*/
|
|
51
|
+
early?: string;
|
|
52
|
+
};
|
|
53
|
+
/** An arrival's punctuality against a `PunctualityTolerance`. */
|
|
54
|
+
export type Punctuality = "early" | "onTime" | "late";
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a two-digit year (`yy` in a pattern, `YYMMDD` in an EDI value) gets its century.
|
|
3
|
+
*
|
|
4
|
+
* No standard says which century a two-digit year belongs to, so GMT holds no cut-off of its own:
|
|
5
|
+
* the caller names the hundred-year window. A two-digit year is a legacy form; a four-digit year
|
|
6
|
+
* is the one to ask a data source for.
|
|
7
|
+
*/
|
|
8
|
+
export interface TwoDigitYearOptions {
|
|
9
|
+
/**
|
|
10
|
+
* The hundred-year window a two-digit year falls in. A number is the first year of a fixed
|
|
11
|
+
* window, an integer from 0 to 9900: `2000` reads `00`–`99` as 2000–2099; `1950` reads `50`–`99`
|
|
12
|
+
* as 1950–1999 and `00`–`49` as 2000–2049. A fixed window gives the same answer in any year,
|
|
13
|
+
* so it is the form for stored data, archives and anything re-processed later. `"rolling"` is
|
|
14
|
+
* the hundred years around today: from 50 years before the current UTC calendar year to 49
|
|
15
|
+
* years after it (in 2026, 1976–2075). It is the form for live messages and never needs
|
|
16
|
+
* maintenance, but it gives a different answer for the same stored value as years pass. Any
|
|
17
|
+
* other value returns the function's sentinel.
|
|
18
|
+
*
|
|
19
|
+
* @defaultValue None. A value with a two-digit year returns the sentinel: no standard says which
|
|
20
|
+
* century it belongs to, so the caller states it.
|
|
21
|
+
*/
|
|
22
|
+
yearWindow?: "rolling" | number;
|
|
23
|
+
}
|
|
File without changes
|
|
@@ -6,15 +6,17 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
6
6
|
* - Converts to ZonedDateTime, adds the duration, then converts back to epoch.
|
|
7
7
|
* - Validates duration units and values.
|
|
8
8
|
* - `value` is a safe integer or a digit string (`"1706659200000"`); anything else returns null.
|
|
9
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone.
|
|
10
9
|
* - Returns null for invalid input.
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
11
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
12
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
13
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
14
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
15
|
+
* such limit.
|
|
14
16
|
*
|
|
15
17
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
16
18
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to add
|
|
17
|
-
* @param options optional:
|
|
19
|
+
* @param options optional: how `value` is read and how an out-of-range result day is handled
|
|
18
20
|
* @returns Unix epoch number after addition, or null on invalid input
|
|
19
21
|
*
|
|
20
22
|
* @example addUnix(1706659200000, { days: 1 }) // 1706745600000
|
|
@@ -23,9 +25,30 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
23
25
|
* @example addUnix(1.5, { days: 1 }) // null (not an integer epoch)
|
|
24
26
|
* @example addUnix("1706659200000", { days: 1 }) // 1706745600000 (digit string)
|
|
25
27
|
* @example addUnix(1706659200000, { days: 1 }, { timeZone: "Mars/Olympus" }) // null (unknown zone)
|
|
28
|
+
* @example addUnix(45870000, { days: 1 }, { timeZone: "-00:44:30" }) // 132270000 (a stored offset with seconds)
|
|
26
29
|
*/
|
|
27
30
|
export declare function addUnix(value: number | string, units: Partial<Record<DateTimeDurationUnit, number>>, options?: {
|
|
31
|
+
/**
|
|
32
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
33
|
+
* plural. Any other value returns `null`. The result is in the same unit.
|
|
34
|
+
*
|
|
35
|
+
* @defaultValue `"milliseconds"`
|
|
36
|
+
*/
|
|
28
37
|
epochUnit?: UnixUnit;
|
|
38
|
+
/**
|
|
39
|
+
* The time zone the calendar arithmetic runs in: an IANA name, a UTC offset (a time zone
|
|
40
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
41
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
42
|
+
* `null`.
|
|
43
|
+
*
|
|
44
|
+
* @defaultValue `"UTC"`
|
|
45
|
+
*/
|
|
29
46
|
timeZone?: string;
|
|
47
|
+
/**
|
|
48
|
+
* How a result day that does not exist in its month is handled, such as January 31 plus one
|
|
49
|
+
* month. `"constrain"` clamps to the last valid day, and `"reject"` returns `null`.
|
|
50
|
+
*
|
|
51
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
52
|
+
*/
|
|
30
53
|
overflow?: Overflow;
|
|
31
54
|
}): number | null;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { addToZoned,
|
|
2
|
-
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
1
|
+
import { addToZoned, frameInstant, frameZoned, normalizeZoneFrame, readDurationUnits, resolveOverflow, } from "../../internal/index.js";
|
|
3
2
|
import { resolveUnixEpochUnit, toUnixEpoch, unixEpochToInstant, } from "../../internal/unixEpochValue.js";
|
|
4
3
|
import { isValidDateTimeDurationUnit } from "../../plain/validate/index.js";
|
|
5
4
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
@@ -9,15 +8,17 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
8
|
* - Converts to ZonedDateTime, adds the duration, then converts back to epoch.
|
|
10
9
|
* - Validates duration units and values.
|
|
11
10
|
* - `value` is a safe integer or a digit string (`"1706659200000"`); anything else returns null.
|
|
12
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone.
|
|
13
11
|
* - Returns null for invalid input.
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
12
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
13
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
14
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
15
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
16
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
17
|
+
* such limit.
|
|
17
18
|
*
|
|
18
19
|
* @param value Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
19
20
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to add
|
|
20
|
-
* @param options optional:
|
|
21
|
+
* @param options optional: how `value` is read and how an out-of-range result day is handled
|
|
21
22
|
* @returns Unix epoch number after addition, or null on invalid input
|
|
22
23
|
*
|
|
23
24
|
* @example addUnix(1706659200000, { days: 1 }) // 1706745600000
|
|
@@ -26,6 +27,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
26
27
|
* @example addUnix(1.5, { days: 1 }) // null (not an integer epoch)
|
|
27
28
|
* @example addUnix("1706659200000", { days: 1 }) // 1706745600000 (digit string)
|
|
28
29
|
* @example addUnix(1706659200000, { days: 1 }, { timeZone: "Mars/Olympus" }) // null (unknown zone)
|
|
30
|
+
* @example addUnix(45870000, { days: 1 }, { timeZone: "-00:44:30" }) // 132270000 (a stored offset with seconds)
|
|
29
31
|
*/
|
|
30
32
|
export function addUnix(value, units, options) {
|
|
31
33
|
try {
|
|
@@ -33,15 +35,12 @@ export function addUnix(value, units, options) {
|
|
|
33
35
|
return null;
|
|
34
36
|
}
|
|
35
37
|
const epochUnit = resolveUnixEpochUnit(options?.epochUnit);
|
|
36
|
-
const
|
|
38
|
+
const frame = normalizeZoneFrame(options?.timeZone);
|
|
37
39
|
const overflow = resolveOverflow(options?.overflow);
|
|
38
|
-
if (
|
|
40
|
+
if (frame === null || epochUnit === null)
|
|
39
41
|
return null;
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
Object.keys(units).every(isValidDateTimeDurationUnit);
|
|
43
|
-
const validAmounts = validUnits && Object.values(units).every(isValidAmount);
|
|
44
|
-
if (!validUnits || !validAmounts) {
|
|
42
|
+
const amounts = readDurationUnits(units, isValidDateTimeDurationUnit);
|
|
43
|
+
if (amounts === null) {
|
|
45
44
|
return null;
|
|
46
45
|
}
|
|
47
46
|
const instant = unixEpochToInstant(value, epochUnit);
|
|
@@ -49,8 +48,8 @@ export function addUnix(value, units, options) {
|
|
|
49
48
|
return null;
|
|
50
49
|
}
|
|
51
50
|
try {
|
|
52
|
-
const zdt = instant
|
|
53
|
-
return toUnixEpoch(addToZoned(zdt,
|
|
51
|
+
const zdt = frameZoned(instant, frame);
|
|
52
|
+
return toUnixEpoch(frameInstant(addToZoned(zdt, amounts, { overflow }), frame), epochUnit);
|
|
54
53
|
}
|
|
55
54
|
catch {
|
|
56
55
|
return null;
|
|
@@ -33,15 +33,19 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
33
33
|
* gives the same number back. For an exact count use the `bigint` APIs: `spanNs` in `span/`,
|
|
34
34
|
* or `toNanoseconds` in `precision/`.
|
|
35
35
|
* - Each value is a safe integer or a digit string (`"1706659200000"`); anything else is invalid.
|
|
36
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone. An unknown zone is
|
|
37
|
-
* invalid.
|
|
38
36
|
* - Unit names may be singular or plural (`"day"` or `"days"`), as in Temporal; a record result
|
|
39
37
|
* keeps the plural keys.
|
|
38
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
39
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
40
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
41
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
42
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
43
|
+
* such limit.
|
|
40
44
|
*
|
|
41
45
|
* @param value1 first Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
42
46
|
* @param value2 second Unix epoch, in the same form and unit
|
|
43
47
|
* @param units DateTimeDurationUnit | DateTimeDurationUnit[] to measure the difference
|
|
44
|
-
* @param options optional:
|
|
48
|
+
* @param options optional: how the epochs are read and how the difference is rounded; a non-object value (such as `null`) is invalid
|
|
45
49
|
* @returns numeric difference in the requested unit, or null on invalid input
|
|
46
50
|
*
|
|
47
51
|
* @example diffUnix(1706745600000, 1706659200000, "days", { timeZone: "UTC" }) // -1 (measured from the first value to the second)
|
|
@@ -52,6 +56,20 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
52
56
|
* @example diffUnix(1704067200000, 1740787200000, ["years", "days"], { timeZone: "UTC" }) // { years: 1, days: 59 } (P1Y2M; the 2 months are carried into days)
|
|
53
57
|
*/
|
|
54
58
|
export declare function diffUnix(value1: number | string, value2: number | string, units: DateTimeDurationUnit | Temporal.DateTimeUnit | Array<DateTimeDurationUnit | Temporal.DateTimeUnit>, options?: {
|
|
59
|
+
/**
|
|
60
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
61
|
+
* plural. Any other value returns `null`.
|
|
62
|
+
*
|
|
63
|
+
* @defaultValue `"milliseconds"`
|
|
64
|
+
*/
|
|
55
65
|
epochUnit?: UnixUnit;
|
|
66
|
+
/**
|
|
67
|
+
* The time zone calendar units are measured in: an IANA name, a UTC offset (a time zone
|
|
68
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
69
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
70
|
+
* `null`.
|
|
71
|
+
*
|
|
72
|
+
* @defaultValue `"UTC"`
|
|
73
|
+
*/
|
|
56
74
|
timeZone?: string;
|
|
57
75
|
} & RoundingOptions<Temporal.DateTimeUnit>): number | Record<DateTimeDurationUnit, number> | null;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { addToZoned, resolveDurationUnit, zonedUntil } from "../../internal/index.js";
|
|
1
|
+
import { addToZoned, frameZoned, normalizeZoneFrame, resolveDurationUnit, zonedUntil, } from "../../internal/index.js";
|
|
2
2
|
import { differenceRecord } from "../../internal/differenceRecord.js";
|
|
3
|
-
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
4
3
|
import { resolveUnixEpochUnit, unixEpochToInstant, } from "../../internal/unixEpochValue.js";
|
|
5
4
|
import { getLargestDateTimeDurationUnit } from "../../plain/calculate/getLargestDateTimeDurationUnit.js";
|
|
6
5
|
import { isValidDateTimeDurationUnit } from "../../plain/validate/index.js";
|
|
@@ -37,15 +36,19 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
37
36
|
* gives the same number back. For an exact count use the `bigint` APIs: `spanNs` in `span/`,
|
|
38
37
|
* or `toNanoseconds` in `precision/`.
|
|
39
38
|
* - Each value is a safe integer or a digit string (`"1706659200000"`); anything else is invalid.
|
|
40
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone. An unknown zone is
|
|
41
|
-
* invalid.
|
|
42
39
|
* - Unit names may be singular or plural (`"day"` or `"days"`), as in Temporal; a record result
|
|
43
40
|
* keeps the plural keys.
|
|
41
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
42
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
43
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
44
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
45
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
46
|
+
* such limit.
|
|
44
47
|
*
|
|
45
48
|
* @param value1 first Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
46
49
|
* @param value2 second Unix epoch, in the same form and unit
|
|
47
50
|
* @param units DateTimeDurationUnit | DateTimeDurationUnit[] to measure the difference
|
|
48
|
-
* @param options optional:
|
|
51
|
+
* @param options optional: how the epochs are read and how the difference is rounded; a non-object value (such as `null`) is invalid
|
|
49
52
|
* @returns numeric difference in the requested unit, or null on invalid input
|
|
50
53
|
*
|
|
51
54
|
* @example diffUnix(1706745600000, 1706659200000, "days", { timeZone: "UTC" }) // -1 (measured from the first value to the second)
|
|
@@ -62,8 +65,8 @@ export function diffUnix(value1, value2, units, options) {
|
|
|
62
65
|
return null;
|
|
63
66
|
}
|
|
64
67
|
const epochUnit = resolveUnixEpochUnit(options?.epochUnit);
|
|
65
|
-
const
|
|
66
|
-
if (
|
|
68
|
+
const frame = normalizeZoneFrame(options?.timeZone);
|
|
69
|
+
if (frame === null || epochUnit === null)
|
|
67
70
|
return null;
|
|
68
71
|
const requested = Array.isArray(units) ? units : [units];
|
|
69
72
|
const plurals = requested.map((unit) => typeof unit === "string" ? resolveDurationUnit(unit) : "");
|
|
@@ -79,7 +82,7 @@ export function diffUnix(value1, value2, units, options) {
|
|
|
79
82
|
if (largestUnit === "")
|
|
80
83
|
return null;
|
|
81
84
|
try {
|
|
82
|
-
const duration = zonedUntil(instant1
|
|
85
|
+
const duration = zonedUntil(frameZoned(instant1, frame), frameZoned(instant2, frame), {
|
|
83
86
|
largestUnit,
|
|
84
87
|
smallestUnit: options?.smallestUnit,
|
|
85
88
|
roundingIncrement: options?.roundingIncrement,
|
|
@@ -89,7 +92,7 @@ export function diffUnix(value1, value2, units, options) {
|
|
|
89
92
|
return duration[plurals[0]] ?? 0;
|
|
90
93
|
}
|
|
91
94
|
// An unlisted unit between two listed units is carried into the next smaller listed unit.
|
|
92
|
-
const start = instant1
|
|
95
|
+
const start = frameZoned(instant1, frame);
|
|
93
96
|
// Record keys are the plural names, as in every other diff family.
|
|
94
97
|
return differenceRecord(start, duration, plurals, {
|
|
95
98
|
add: (from, amount) => addToZoned(from, amount),
|
|
@@ -23,14 +23,18 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
23
23
|
* above because both option sets have colliding `smallestUnit`/`roundingMode` keys with
|
|
24
24
|
* different Temporal types.
|
|
25
25
|
* - Each value is a safe integer or a digit string (`"1706659200000"`); anything else is invalid.
|
|
26
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone. An unknown zone is
|
|
27
|
-
* invalid.
|
|
28
26
|
* - Unit names may be singular or plural (`"day"` or `"days"`), as in Temporal.
|
|
27
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
28
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
29
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
30
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
31
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `""`. An offset to the minute has no
|
|
32
|
+
* such limit.
|
|
29
33
|
*
|
|
30
34
|
* @param value1 first Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
31
35
|
* @param value2 second Unix epoch, in the same form and unit
|
|
32
36
|
* @param unit DateTimeDurationUnit to use as the duration's largestUnit
|
|
33
|
-
* @param options optional:
|
|
37
|
+
* @param options optional: how the epochs are read, how the difference is rounded and how the string is rendered; a non-object value (such as `null`) is invalid
|
|
34
38
|
* @returns ISO 8601 duration string, or "" on invalid input
|
|
35
39
|
*
|
|
36
40
|
* @example diffUnixAsDuration(1706659200000, 1706745600000, "days") // "P1D"
|
|
@@ -40,6 +44,20 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
40
44
|
* @example diffUnixAsDuration(NaN, 1706745600000, "days") // ""
|
|
41
45
|
*/
|
|
42
46
|
export declare function diffUnixAsDuration(value1: number | string, value2: number | string, unit: DateTimeDurationUnit | Temporal.DateTimeUnit, options?: {
|
|
47
|
+
/**
|
|
48
|
+
* The unit the epoch values are counted in: `"seconds"` or `"milliseconds"`, singular or
|
|
49
|
+
* plural. Any other value returns `""`.
|
|
50
|
+
*
|
|
51
|
+
* @defaultValue `"milliseconds"`
|
|
52
|
+
*/
|
|
43
53
|
epochUnit?: UnixUnit;
|
|
54
|
+
/**
|
|
55
|
+
* The time zone calendar units are measured in: an IANA name, a UTC offset (a time zone
|
|
56
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
57
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
58
|
+
* `""`.
|
|
59
|
+
*
|
|
60
|
+
* @defaultValue `"UTC"`
|
|
61
|
+
*/
|
|
44
62
|
timeZone?: string;
|
|
45
63
|
} & RoundingOptions<Temporal.DateTimeUnit> & DurationStringOptions): string;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { durationUntilString, resolveDurationUnit } from "../../internal/index.js";
|
|
2
|
-
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
1
|
+
import { durationUntilString, frameZoned, normalizeZoneFrame, resolveDurationUnit, } from "../../internal/index.js";
|
|
3
2
|
import { resolveUnixEpochUnit, unixEpochToInstant, } from "../../internal/unixEpochValue.js";
|
|
4
3
|
import { isValidDateTimeDurationUnit } from "../../plain/validate/index.js";
|
|
5
4
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
@@ -25,14 +24,18 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
25
24
|
* above because both option sets have colliding `smallestUnit`/`roundingMode` keys with
|
|
26
25
|
* different Temporal types.
|
|
27
26
|
* - Each value is a safe integer or a digit string (`"1706659200000"`); anything else is invalid.
|
|
28
|
-
* - An omitted `timeZone` is UTC; pass `"local"` for the system time zone. An unknown zone is
|
|
29
|
-
* invalid.
|
|
30
27
|
* - Unit names may be singular or plural (`"day"` or `"days"`), as in Temporal.
|
|
28
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
29
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
30
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
31
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
32
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `""`. An offset to the minute has no
|
|
33
|
+
* such limit.
|
|
31
34
|
*
|
|
32
35
|
* @param value1 first Unix epoch: a safe integer, or a string of optionally negative ASCII digits
|
|
33
36
|
* @param value2 second Unix epoch, in the same form and unit
|
|
34
37
|
* @param unit DateTimeDurationUnit to use as the duration's largestUnit
|
|
35
|
-
* @param options optional:
|
|
38
|
+
* @param options optional: how the epochs are read, how the difference is rounded and how the string is rendered; a non-object value (such as `null`) is invalid
|
|
36
39
|
* @returns ISO 8601 duration string, or "" on invalid input
|
|
37
40
|
*
|
|
38
41
|
* @example diffUnixAsDuration(1706659200000, 1706745600000, "days") // "P1D"
|
|
@@ -48,8 +51,8 @@ export function diffUnixAsDuration(value1, value2, unit, options) {
|
|
|
48
51
|
return "";
|
|
49
52
|
}
|
|
50
53
|
const epochUnit = resolveUnixEpochUnit(options?.epochUnit);
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
54
|
+
const frame = normalizeZoneFrame(options?.timeZone);
|
|
55
|
+
if (frame === null || epochUnit === null)
|
|
53
56
|
return "";
|
|
54
57
|
const largestUnit = typeof unit === "string" ? resolveDurationUnit(unit) : unit;
|
|
55
58
|
if (!isValidDateTimeDurationUnit(largestUnit)) {
|
|
@@ -61,7 +64,7 @@ export function diffUnixAsDuration(value1, value2, unit, options) {
|
|
|
61
64
|
return "";
|
|
62
65
|
}
|
|
63
66
|
try {
|
|
64
|
-
return durationUntilString(instant1
|
|
67
|
+
return durationUntilString(frameZoned(instant1, frame), frameZoned(instant2, frame), largestUnit, options);
|
|
65
68
|
}
|
|
66
69
|
catch {
|
|
67
70
|
return "";
|