@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
|
@@ -13,13 +13,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
13
13
|
* unambiguous).
|
|
14
14
|
* - `"month"` requires the same month AND year, matching `areDateTimesEqualBy`.
|
|
15
15
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
16
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
17
16
|
* - Returns false for an unsupported unit or invalid input.
|
|
18
17
|
* - Takes no `fractionalSecondDigits`: equality compares full-precision `unit` boundaries, and output
|
|
19
18
|
* digits cannot change which bucket a value is in. That ignored option was removed in 1.16.0; to
|
|
20
19
|
* compare more coarsely, pass a coarser unit (0 digits is `"second"`, 3 is `"millisecond"`).
|
|
21
20
|
*
|
|
22
|
-
* Mapping from date-fns
|
|
21
|
+
* Mapping from date-fns:
|
|
23
22
|
* - `isSameDay(a, b)` → `areUtcEqualBy(a, b, "day")`
|
|
24
23
|
* - `isSameMonth(a, b)` → `areUtcEqualBy(a, b, "month")`
|
|
25
24
|
* - `isSameYear(a, b)` → `areUtcEqualBy(a, b, "year")`
|
|
@@ -27,7 +26,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
27
26
|
* @param value1 first UTC ISO datetime string
|
|
28
27
|
* @param value2 second UTC ISO datetime string
|
|
29
28
|
* @param unit date or time unit, singular or plural, to compare by
|
|
30
|
-
* @param options
|
|
29
|
+
* @param options Where a week starts
|
|
31
30
|
* @returns true if both values share the same start-of-unit boundary, false on an unsupported unit or invalid input
|
|
32
31
|
*
|
|
33
32
|
* @example areUtcEqualBy("2024-03-15T02:00:00Z", "2024-03-15T22:00:00Z", "day") // true
|
|
@@ -1,18 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Convert a UTC datetime string to a plain date string in the format "YYYY-MM-DD".
|
|
3
3
|
*
|
|
4
|
-
* - Converts to
|
|
5
|
-
* -
|
|
4
|
+
* - Converts to the `timeZone` option's zone before extracting the date.
|
|
5
|
+
* - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
|
|
6
|
+
* Temporal writes it, so the result is always a string `isValidDate` accepts.
|
|
6
7
|
* - Returns "" for invalid input.
|
|
7
8
|
*
|
|
8
9
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
9
|
-
* @param options
|
|
10
|
+
* @param options The time zone the value is read in
|
|
10
11
|
* @returns plain date string in "YYYY-MM-DD" format or "" on invalid input
|
|
11
12
|
*
|
|
12
13
|
* @example convertUtcToPlainDate("2024-02-29T00:00:00Z") // "2024-02-29"
|
|
13
14
|
* @example convertUtcToPlainDate("2024-02-29T00:00:00Z", { timeZone: "America/New_York" }) // "2024-02-28"
|
|
14
15
|
* @example convertUtcToPlainDate("invalid") // ""
|
|
16
|
+
* @example convertUtcToPlainDate("+010000-01-01T00:00:00Z") // "+010000-01-01" (a year past 9999 has a sign and six digits)
|
|
17
|
+
* @example convertUtcToPlainDate("1970-01-01T00:30:00Z", { timeZone: "-00:44:30" }) // "1969-12-31" (a stored offset with seconds)
|
|
15
18
|
*/
|
|
16
19
|
export declare function convertUtcToPlainDate(value: string, options?: {
|
|
20
|
+
/**
|
|
21
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset (a time zone
|
|
22
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
23
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
24
|
+
* `""`.
|
|
25
|
+
*
|
|
26
|
+
* @defaultValue `"UTC"`
|
|
27
|
+
*/
|
|
17
28
|
timeZone?: string;
|
|
18
29
|
}): string;
|
|
@@ -1,39 +1,41 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import {
|
|
3
|
+
import { frameWallClock, normalizeZoneFrame } from "../../internal/zoneFrame.js";
|
|
4
4
|
import { isValidUtc } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
6
|
/**
|
|
7
7
|
* Convert a UTC datetime string to a plain date string in the format "YYYY-MM-DD".
|
|
8
8
|
*
|
|
9
|
-
* - Converts to
|
|
10
|
-
* -
|
|
9
|
+
* - Converts to the `timeZone` option's zone before extracting the date.
|
|
10
|
+
* - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
|
|
11
|
+
* Temporal writes it, so the result is always a string `isValidDate` accepts.
|
|
11
12
|
* - Returns "" for invalid input.
|
|
12
13
|
*
|
|
13
14
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
14
|
-
* @param options
|
|
15
|
+
* @param options The time zone the value is read in
|
|
15
16
|
* @returns plain date string in "YYYY-MM-DD" format or "" on invalid input
|
|
16
17
|
*
|
|
17
18
|
* @example convertUtcToPlainDate("2024-02-29T00:00:00Z") // "2024-02-29"
|
|
18
19
|
* @example convertUtcToPlainDate("2024-02-29T00:00:00Z", { timeZone: "America/New_York" }) // "2024-02-28"
|
|
19
20
|
* @example convertUtcToPlainDate("invalid") // ""
|
|
21
|
+
* @example convertUtcToPlainDate("+010000-01-01T00:00:00Z") // "+010000-01-01" (a year past 9999 has a sign and six digits)
|
|
22
|
+
* @example convertUtcToPlainDate("1970-01-01T00:30:00Z", { timeZone: "-00:44:30" }) // "1969-12-31" (a stored offset with seconds)
|
|
20
23
|
*/
|
|
21
24
|
export function convertUtcToPlainDate(value, options) {
|
|
22
25
|
try {
|
|
23
26
|
if (!isOptionsArgument(options)) {
|
|
24
27
|
return "";
|
|
25
28
|
}
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
29
|
+
const frame = normalizeZoneFrame(options?.timeZone);
|
|
30
|
+
if (frame === null)
|
|
28
31
|
return "";
|
|
29
32
|
if (!isValidUtc(value))
|
|
30
33
|
return "";
|
|
31
34
|
try {
|
|
32
35
|
const instant = Temporal.Instant.from(value);
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
.padStart(2, "0")}-${zonedDateTime.day.toString().padStart(2, "0")}`;
|
|
36
|
+
const wallClock = frameWallClock(instant, frame);
|
|
37
|
+
// Temporal writes the date, so a year outside 0000 to 9999 gets its sign and six digits.
|
|
38
|
+
return wallClock.toPlainDate().toString();
|
|
37
39
|
}
|
|
38
40
|
catch {
|
|
39
41
|
return "";
|
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Convert a UTC datetime string to a plain datetime string in the format "YYYY-MM-DDTHH:mm:ss".
|
|
3
3
|
*
|
|
4
|
-
* - Converts to
|
|
5
|
-
* -
|
|
4
|
+
* - Converts to the `timeZone` option's zone before extracting the datetime.
|
|
5
|
+
* - The time is cut to the second: a fraction of a second in `value` is dropped.
|
|
6
|
+
* - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
|
|
7
|
+
* Temporal writes it, so the result is always a string `isValidDateTime` accepts.
|
|
6
8
|
* - Returns "" for invalid input.
|
|
7
9
|
*
|
|
8
10
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
9
|
-
* @param options
|
|
11
|
+
* @param options The time zone the value is read in
|
|
10
12
|
* @returns plain datetime string in "YYYY-MM-DDTHH:mm:ss" format or "" on invalid input
|
|
11
13
|
*
|
|
12
14
|
* @example convertUtcToPlainDateTime("2024-02-29T00:00:00Z") // "2024-02-29T00:00:00"
|
|
13
15
|
* @example convertUtcToPlainDateTime("2024-02-29T00:00:00Z", { timeZone: "America/New_York" }) // "2024-02-28T19:00:00"
|
|
14
16
|
* @example convertUtcToPlainDateTime("invalid") // ""
|
|
17
|
+
* @example convertUtcToPlainDateTime("+010000-01-01T00:00:00Z") // "+010000-01-01T00:00:00" (a year past 9999 has a sign and six digits)
|
|
18
|
+
* @example convertUtcToPlainDateTime("1970-01-01T12:44:30Z", { timeZone: "-00:44:30" }) // "1970-01-01T12:00:00" (a stored offset with seconds)
|
|
15
19
|
*/
|
|
16
20
|
export declare function convertUtcToPlainDateTime(value: string, options?: {
|
|
21
|
+
/**
|
|
22
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset (a time zone
|
|
23
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
24
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
25
|
+
* `""`.
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue `"UTC"`
|
|
28
|
+
*/
|
|
17
29
|
timeZone?: string;
|
|
18
30
|
}): string;
|
|
@@ -1,45 +1,43 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import {
|
|
3
|
+
import { frameWallClock, normalizeZoneFrame } from "../../internal/zoneFrame.js";
|
|
4
4
|
import { isValidUtc } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
6
|
/**
|
|
7
7
|
* Convert a UTC datetime string to a plain datetime string in the format "YYYY-MM-DDTHH:mm:ss".
|
|
8
8
|
*
|
|
9
|
-
* - Converts to
|
|
10
|
-
* -
|
|
9
|
+
* - Converts to the `timeZone` option's zone before extracting the datetime.
|
|
10
|
+
* - The time is cut to the second: a fraction of a second in `value` is dropped.
|
|
11
|
+
* - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
|
|
12
|
+
* Temporal writes it, so the result is always a string `isValidDateTime` accepts.
|
|
11
13
|
* - Returns "" for invalid input.
|
|
12
14
|
*
|
|
13
15
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
14
|
-
* @param options
|
|
16
|
+
* @param options The time zone the value is read in
|
|
15
17
|
* @returns plain datetime string in "YYYY-MM-DDTHH:mm:ss" format or "" on invalid input
|
|
16
18
|
*
|
|
17
19
|
* @example convertUtcToPlainDateTime("2024-02-29T00:00:00Z") // "2024-02-29T00:00:00"
|
|
18
20
|
* @example convertUtcToPlainDateTime("2024-02-29T00:00:00Z", { timeZone: "America/New_York" }) // "2024-02-28T19:00:00"
|
|
19
21
|
* @example convertUtcToPlainDateTime("invalid") // ""
|
|
22
|
+
* @example convertUtcToPlainDateTime("+010000-01-01T00:00:00Z") // "+010000-01-01T00:00:00" (a year past 9999 has a sign and six digits)
|
|
23
|
+
* @example convertUtcToPlainDateTime("1970-01-01T12:44:30Z", { timeZone: "-00:44:30" }) // "1970-01-01T12:00:00" (a stored offset with seconds)
|
|
20
24
|
*/
|
|
21
25
|
export function convertUtcToPlainDateTime(value, options) {
|
|
22
26
|
try {
|
|
23
27
|
if (!isOptionsArgument(options)) {
|
|
24
28
|
return "";
|
|
25
29
|
}
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
30
|
+
const frame = normalizeZoneFrame(options?.timeZone);
|
|
31
|
+
if (frame === null)
|
|
28
32
|
return "";
|
|
29
33
|
if (!isValidUtc(value))
|
|
30
34
|
return "";
|
|
31
35
|
try {
|
|
32
36
|
const instant = Temporal.Instant.from(value);
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
.toString()
|
|
38
|
-
.padStart(2, "0")}T${zonedDateTime.hour
|
|
39
|
-
.toString()
|
|
40
|
-
.padStart(2, "0")}:${zonedDateTime.minute
|
|
41
|
-
.toString()
|
|
42
|
-
.padStart(2, "0")}:${zonedDateTime.second.toString().padStart(2, "0")}`;
|
|
37
|
+
const wallClock = frameWallClock(instant, frame);
|
|
38
|
+
// Temporal writes the date-time, so a year outside 0000 to 9999 gets its sign and six
|
|
39
|
+
// digits. `smallestUnit: "second"` always prints the seconds and cuts off any fraction.
|
|
40
|
+
return wallClock.toString({ smallestUnit: "second" });
|
|
43
41
|
}
|
|
44
42
|
catch {
|
|
45
43
|
return "";
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Convert a UTC datetime string to a plain time string in the format "HH:mm:ss".
|
|
3
3
|
*
|
|
4
|
-
* - Converts to
|
|
5
|
-
* - Defaults to UTC if no timezone specified.
|
|
4
|
+
* - Converts to the `timeZone` option's zone before extracting the time.
|
|
6
5
|
* - Returns "" for invalid input.
|
|
7
6
|
*
|
|
8
7
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
9
|
-
* @param options
|
|
8
|
+
* @param options The time zone the value is read in
|
|
10
9
|
* @returns plain time string in "HH:mm:ss" format or "" on invalid input
|
|
11
10
|
*
|
|
12
11
|
* @example convertUtcToPlainTime("2024-02-29T00:00:00Z") // "00:00:00"
|
|
13
12
|
* @example convertUtcToPlainTime("2024-02-29T00:00:00Z", { timeZone: "America/New_York" }) // "19:00:00"
|
|
14
13
|
* @example convertUtcToPlainTime("invalid") // ""
|
|
14
|
+
* @example convertUtcToPlainTime("1970-01-01T12:44:30Z", { timeZone: "-00:44:30" }) // "12:00:00" (a stored offset with seconds)
|
|
15
15
|
*/
|
|
16
16
|
export declare function convertUtcToPlainTime(value: string, options?: {
|
|
17
|
+
/**
|
|
18
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset (a time zone
|
|
19
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
20
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
21
|
+
* `""`.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue `"UTC"`
|
|
24
|
+
*/
|
|
17
25
|
timeZone?: string;
|
|
18
26
|
}): string;
|
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import {
|
|
3
|
+
import { frameWallClock, normalizeZoneFrame } from "../../internal/zoneFrame.js";
|
|
4
4
|
import { isValidUtc } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
6
|
/**
|
|
7
7
|
* Convert a UTC datetime string to a plain time string in the format "HH:mm:ss".
|
|
8
8
|
*
|
|
9
|
-
* - Converts to
|
|
10
|
-
* - Defaults to UTC if no timezone specified.
|
|
9
|
+
* - Converts to the `timeZone` option's zone before extracting the time.
|
|
11
10
|
* - Returns "" for invalid input.
|
|
12
11
|
*
|
|
13
12
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
14
|
-
* @param options
|
|
13
|
+
* @param options The time zone the value is read in
|
|
15
14
|
* @returns plain time string in "HH:mm:ss" format or "" on invalid input
|
|
16
15
|
*
|
|
17
16
|
* @example convertUtcToPlainTime("2024-02-29T00:00:00Z") // "00:00:00"
|
|
18
17
|
* @example convertUtcToPlainTime("2024-02-29T00:00:00Z", { timeZone: "America/New_York" }) // "19:00:00"
|
|
19
18
|
* @example convertUtcToPlainTime("invalid") // ""
|
|
19
|
+
* @example convertUtcToPlainTime("1970-01-01T12:44:30Z", { timeZone: "-00:44:30" }) // "12:00:00" (a stored offset with seconds)
|
|
20
20
|
*/
|
|
21
21
|
export function convertUtcToPlainTime(value, options) {
|
|
22
22
|
try {
|
|
23
23
|
if (!isOptionsArgument(options)) {
|
|
24
24
|
return "";
|
|
25
25
|
}
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
26
|
+
const frame = normalizeZoneFrame(options?.timeZone);
|
|
27
|
+
if (frame === null)
|
|
28
28
|
return "";
|
|
29
29
|
if (!isValidUtc(value))
|
|
30
30
|
return "";
|
|
31
31
|
try {
|
|
32
32
|
const instant = Temporal.Instant.from(value);
|
|
33
|
-
const
|
|
34
|
-
return `${
|
|
33
|
+
const wallClock = frameWallClock(instant, frame);
|
|
34
|
+
return `${wallClock.hour.toString().padStart(2, "0")}:${wallClock.minute
|
|
35
35
|
.toString()
|
|
36
|
-
.padStart(2, "0")}:${
|
|
36
|
+
.padStart(2, "0")}:${wallClock.second.toString().padStart(2, "0")}`;
|
|
37
37
|
}
|
|
38
38
|
catch {
|
|
39
39
|
return "";
|
|
@@ -4,13 +4,12 @@ import type { UnixUnit } from "../../unix/validate/isValidUnixUnit.js";
|
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Instant.from to parse.
|
|
6
6
|
* - Seconds floor toward −∞, so `"1969-12-31T23:59:59.5Z"` is second `-1` (POSIX `time_t`).
|
|
7
|
-
* - `options
|
|
8
|
-
*
|
|
9
|
-
* as a bare `"seconds"` string) returns null.
|
|
7
|
+
* - `options` must be an object or omitted: a non-object value (such as a bare `"seconds"` string)
|
|
8
|
+
* returns null.
|
|
10
9
|
* - Returns null for invalid input.
|
|
11
10
|
*
|
|
12
11
|
* @param value UTC Instant string
|
|
13
|
-
* @param options
|
|
12
|
+
* @param options The unit of the returned epoch value
|
|
14
13
|
* @returns epoch number or null on invalid
|
|
15
14
|
*
|
|
16
15
|
* @example convertUtcToUnix("2024-02-29T00:00:00Z") // 1709164800000
|
|
@@ -20,5 +19,11 @@ import type { UnixUnit } from "../../unix/validate/isValidUnixUnit.js";
|
|
|
20
19
|
* @example convertUtcToUnix("invalid") // null
|
|
21
20
|
*/
|
|
22
21
|
export declare function convertUtcToUnix(value: string, options?: {
|
|
22
|
+
/**
|
|
23
|
+
* The unit the epoch value is returned in: `"seconds"` or `"milliseconds"`, singular or plural.
|
|
24
|
+
* An explicit `undefined` is the same as omitted; any other value returns `null`.
|
|
25
|
+
*
|
|
26
|
+
* @defaultValue `"milliseconds"`
|
|
27
|
+
*/
|
|
23
28
|
epochUnit?: UnixUnit;
|
|
24
29
|
}): number | null;
|
|
@@ -6,13 +6,12 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
6
6
|
*
|
|
7
7
|
* - Uses Temporal.Instant.from to parse.
|
|
8
8
|
* - Seconds floor toward −∞, so `"1969-12-31T23:59:59.5Z"` is second `-1` (POSIX `time_t`).
|
|
9
|
-
* - `options
|
|
10
|
-
*
|
|
11
|
-
* as a bare `"seconds"` string) returns null.
|
|
9
|
+
* - `options` must be an object or omitted: a non-object value (such as a bare `"seconds"` string)
|
|
10
|
+
* returns null.
|
|
12
11
|
* - Returns null for invalid input.
|
|
13
12
|
*
|
|
14
13
|
* @param value UTC Instant string
|
|
15
|
-
* @param options
|
|
14
|
+
* @param options The unit of the returned epoch value
|
|
16
15
|
* @returns epoch number or null on invalid
|
|
17
16
|
*
|
|
18
17
|
* @example convertUtcToUnix("2024-02-29T00:00:00Z") // 1709164800000
|
|
@@ -4,9 +4,13 @@
|
|
|
4
4
|
* - Uses Temporal.Instant.from to parse, converts to specified timezone.
|
|
5
5
|
* - Validates both UTC input and timezone.
|
|
6
6
|
* - Returns "" for invalid input.
|
|
7
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. A written zone cannot carry seconds (RFC
|
|
8
|
+
* 9557 §4.1), so the result could not name it. Pass the IANA name, or call
|
|
9
|
+
* `fromOffsetInstant({ instant, offset })` for the local time with its full offset and no
|
|
10
|
+
* bracket.
|
|
7
11
|
*
|
|
8
12
|
* @param value UTC Instant string
|
|
9
|
-
* @param timeZone IANA
|
|
13
|
+
* @param timeZone IANA name or a UTC offset to the minute (what `isValidTimeZone` accepts)
|
|
10
14
|
* @returns zoned ISO 8601 string or "" on invalid
|
|
11
15
|
*
|
|
12
16
|
* @example convertUtcToZoned("2024-02-29T00:00:00Z", "America/New_York") // "2024-02-28T19:00:00-05:00[America/New_York]"
|
|
@@ -7,9 +7,13 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
7
7
|
* - Uses Temporal.Instant.from to parse, converts to specified timezone.
|
|
8
8
|
* - Validates both UTC input and timezone.
|
|
9
9
|
* - Returns "" for invalid input.
|
|
10
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. A written zone cannot carry seconds (RFC
|
|
11
|
+
* 9557 §4.1), so the result could not name it. Pass the IANA name, or call
|
|
12
|
+
* `fromOffsetInstant({ instant, offset })` for the local time with its full offset and no
|
|
13
|
+
* bracket.
|
|
10
14
|
*
|
|
11
15
|
* @param value UTC Instant string
|
|
12
|
-
* @param timeZone IANA
|
|
16
|
+
* @param timeZone IANA name or a UTC offset to the minute (what `isValidTimeZone` accepts)
|
|
13
17
|
* @returns zoned ISO 8601 string or "" on invalid
|
|
14
18
|
*
|
|
15
19
|
* @example convertUtcToZoned("2024-02-29T00:00:00Z", "America/New_York") // "2024-02-28T19:00:00-05:00[America/New_York]"
|
|
@@ -1,27 +1,42 @@
|
|
|
1
1
|
import type { CalendarOptions } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Options for `formatCalendarUtc`: the instant the day label is measured from, the time zone the
|
|
4
|
+
* days and the clock time are read in, and the width of the time-of-day half.
|
|
5
|
+
*/
|
|
2
6
|
export interface FormatCalendarUtcOptions extends CalendarOptions {
|
|
3
7
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
8
|
+
* The time zone used for both the calendar-day comparison and the rendered clock time: an IANA
|
|
9
|
+
* name, a UTC offset to the minute (what `isValidTimeZone` accepts), or `"local"` for the system
|
|
10
|
+
* time zone. An unknown zone returns `""`, as ECMA-402 throws RangeError for it.
|
|
11
|
+
*
|
|
12
|
+
* @defaultValue `"UTC"`
|
|
7
13
|
*/
|
|
8
14
|
timeZone?: string;
|
|
9
|
-
/**
|
|
10
|
-
|
|
15
|
+
/**
|
|
16
|
+
* The length of the time-of-day part, as the `timeStyle` of `Intl.DateTimeFormat`. `"short"`
|
|
17
|
+
* writes hours and minutes, `"medium"` adds seconds, `"long"` adds the short time zone name
|
|
18
|
+
* ("EDT") and `"full"` the long one ("Eastern Daylight Time"). Any other value returns `""`.
|
|
19
|
+
*
|
|
20
|
+
* @defaultValue `"short"`
|
|
21
|
+
*/
|
|
22
|
+
timeStyle?: "short" | "medium" | "long" | "full";
|
|
11
23
|
}
|
|
12
24
|
/**
|
|
13
25
|
* Format a UTC ISO string as a relative day label plus time-of-day, e.g.
|
|
14
26
|
* "Tomorrow at 2:30 PM" — the UTC counterpart of `formatCalendar`. See that
|
|
15
27
|
* function's JSDoc for the day-label/threshold/connector design; this
|
|
16
|
-
* variant compares calendar days and renders the clock time in `timeZone
|
|
17
|
-
* (default `"UTC"`).
|
|
28
|
+
* variant compares calendar days and renders the clock time in `timeZone`.
|
|
18
29
|
*
|
|
19
30
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
20
31
|
* rejects it.
|
|
32
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. `Intl.DateTimeFormat` takes a time zone
|
|
33
|
+
* identifier only: constructing one with an offset that has seconds throws (ECMA-402, the
|
|
34
|
+
* `DateTimeFormat` construction step "If parseResult contains more than one MinuteSecond Parse
|
|
35
|
+
* Node, throw a RangeError exception"). Pass the IANA name.
|
|
21
36
|
*
|
|
22
37
|
* @param value UTC ISO string to format
|
|
23
38
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
24
|
-
* @param options
|
|
39
|
+
* @param options The reference instant, the time zone and the time style
|
|
25
40
|
* @returns the formatted calendar string, or "" on invalid input
|
|
26
41
|
*
|
|
27
42
|
* @example formatCalendarUtc("2026-03-16T18:30:00Z", "en-US", { timeZone: "America/New_York", reference: "2026-03-15T13:00:00Z" }) // "tomorrow at 2:30 PM"
|
|
@@ -3,19 +3,24 @@ import { formatCalendarInstants } from "../../internal/formatCalendarDays.js";
|
|
|
3
3
|
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
4
4
|
import { toInstantFromUtc, toReferenceInstantFromUtc, } from "../../internal/toInstantFromUtc.js";
|
|
5
5
|
import { isValidUtc } from "../validate/index.js";
|
|
6
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
7
|
+
import { isObject } from "../../internal/isObject.js";
|
|
6
8
|
/**
|
|
7
9
|
* Format a UTC ISO string as a relative day label plus time-of-day, e.g.
|
|
8
10
|
* "Tomorrow at 2:30 PM" — the UTC counterpart of `formatCalendar`. See that
|
|
9
11
|
* function's JSDoc for the day-label/threshold/connector design; this
|
|
10
|
-
* variant compares calendar days and renders the clock time in `timeZone
|
|
11
|
-
* (default `"UTC"`).
|
|
12
|
+
* variant compares calendar days and renders the clock time in `timeZone`.
|
|
12
13
|
*
|
|
13
14
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
14
15
|
* rejects it.
|
|
16
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. `Intl.DateTimeFormat` takes a time zone
|
|
17
|
+
* identifier only: constructing one with an offset that has seconds throws (ECMA-402, the
|
|
18
|
+
* `DateTimeFormat` construction step "If parseResult contains more than one MinuteSecond Parse
|
|
19
|
+
* Node, throw a RangeError exception"). Pass the IANA name.
|
|
15
20
|
*
|
|
16
21
|
* @param value UTC ISO string to format
|
|
17
22
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
18
|
-
* @param options
|
|
23
|
+
* @param options The reference instant, the time zone and the time style
|
|
19
24
|
* @returns the formatted calendar string, or "" on invalid input
|
|
20
25
|
*
|
|
21
26
|
* @example formatCalendarUtc("2026-03-16T18:30:00Z", "en-US", { timeZone: "America/New_York", reference: "2026-03-15T13:00:00Z" }) // "tomorrow at 2:30 PM"
|
|
@@ -28,7 +33,7 @@ export function formatCalendarUtc(value, locale, options = {}) {
|
|
|
28
33
|
try {
|
|
29
34
|
// Temporal GetOptionsObject: undefined is defaults (the parameter default); anything else that is
|
|
30
35
|
// not an object, including null, is a TypeError.
|
|
31
|
-
if (options
|
|
36
|
+
if (!isObject(options))
|
|
32
37
|
return "";
|
|
33
38
|
if (!isValidUtc(value))
|
|
34
39
|
return "";
|
|
@@ -36,16 +41,18 @@ export function formatCalendarUtc(value, locale, options = {}) {
|
|
|
36
41
|
const timeZone = normalizeTimeZone(options.timeZone);
|
|
37
42
|
if (!timeZone)
|
|
38
43
|
return "";
|
|
39
|
-
|
|
44
|
+
// Each option is read once (GetOption).
|
|
45
|
+
const referenceOption = options.reference;
|
|
46
|
+
if (referenceOption !== undefined && !isValidUtc(referenceOption))
|
|
40
47
|
return "";
|
|
41
48
|
const target = toInstantFromUtc(value);
|
|
42
49
|
if (target === null)
|
|
43
50
|
return "";
|
|
44
|
-
const reference = toReferenceInstantFromUtc(
|
|
51
|
+
const reference = toReferenceInstantFromUtc(referenceOption);
|
|
45
52
|
if (reference === null)
|
|
46
53
|
return "";
|
|
47
54
|
try {
|
|
48
|
-
return formatCalendarInstants(target, reference, timeZone, locale, options.timeStyle
|
|
55
|
+
return formatCalendarInstants(target, reference, timeZone, locale, optionOrDefault(options.timeStyle, "short"));
|
|
49
56
|
}
|
|
50
57
|
catch {
|
|
51
58
|
return "";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Format a UTC ISO 8601 datetime string as an
|
|
3
|
-
*
|
|
2
|
+
* Format a UTC ISO 8601 datetime string as an HTTP header date — the RFC 9110
|
|
3
|
+
* IMF-fixdate that headers like `Last-Modified`/`Date`/`Expires` require.
|
|
4
4
|
*
|
|
5
5
|
* - **Fixed grammar, not a display format.** RFC 9110 mandates English
|
|
6
6
|
* weekday/month abbreviations and a literal `GMT` suffix regardless of
|
|
7
7
|
* caller locale — there is no locale-appropriate alternative ordering to
|
|
8
|
-
* lose
|
|
8
|
+
* lose.
|
|
9
9
|
* - Always `GMT`; HTTP-date carries no offset variation to preserve.
|
|
10
10
|
* - Fractional seconds in `value` are truncated — IMF-fixdate has no
|
|
11
11
|
* sub-second field.
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
* @param value UTC ISO 8601 datetime string (e.g. "2024-03-15T14:30:00Z")
|
|
20
20
|
* @returns RFC 9110 IMF-fixdate string, or "" on invalid input or a year outside 0000–9999
|
|
21
21
|
*
|
|
22
|
-
* @example
|
|
23
|
-
* @example
|
|
24
|
-
* @example
|
|
22
|
+
* @example formatHttpDate("2024-03-15T14:30:00Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
|
|
23
|
+
* @example formatHttpDate("2024-03-15T14:30:00.500Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
|
|
24
|
+
* @example formatHttpDate("-000001-06-15T12:00:00Z") // ""
|
|
25
25
|
* @example Temporal.Instant.from("-000001-06-15T12:00:00Z").toString() // "-000001-06-15T12:00:00Z"
|
|
26
|
-
* @example
|
|
26
|
+
* @example formatHttpDate("invalid") // ""
|
|
27
27
|
*/
|
|
28
|
-
export declare function
|
|
28
|
+
export declare function formatHttpDate(value: string): string;
|
|
@@ -2,13 +2,13 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
2
2
|
import { englishDateTimeStem } from "../../internal/englishCalendarNames.js";
|
|
3
3
|
import { isValidUtc } from "../validate/index.js";
|
|
4
4
|
/**
|
|
5
|
-
* Format a UTC ISO 8601 datetime string as an
|
|
6
|
-
*
|
|
5
|
+
* Format a UTC ISO 8601 datetime string as an HTTP header date — the RFC 9110
|
|
6
|
+
* IMF-fixdate that headers like `Last-Modified`/`Date`/`Expires` require.
|
|
7
7
|
*
|
|
8
8
|
* - **Fixed grammar, not a display format.** RFC 9110 mandates English
|
|
9
9
|
* weekday/month abbreviations and a literal `GMT` suffix regardless of
|
|
10
10
|
* caller locale — there is no locale-appropriate alternative ordering to
|
|
11
|
-
* lose
|
|
11
|
+
* lose.
|
|
12
12
|
* - Always `GMT`; HTTP-date carries no offset variation to preserve.
|
|
13
13
|
* - Fractional seconds in `value` are truncated — IMF-fixdate has no
|
|
14
14
|
* sub-second field.
|
|
@@ -22,13 +22,13 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
22
22
|
* @param value UTC ISO 8601 datetime string (e.g. "2024-03-15T14:30:00Z")
|
|
23
23
|
* @returns RFC 9110 IMF-fixdate string, or "" on invalid input or a year outside 0000–9999
|
|
24
24
|
*
|
|
25
|
-
* @example
|
|
26
|
-
* @example
|
|
27
|
-
* @example
|
|
25
|
+
* @example formatHttpDate("2024-03-15T14:30:00Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
|
|
26
|
+
* @example formatHttpDate("2024-03-15T14:30:00.500Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
|
|
27
|
+
* @example formatHttpDate("-000001-06-15T12:00:00Z") // ""
|
|
28
28
|
* @example Temporal.Instant.from("-000001-06-15T12:00:00Z").toString() // "-000001-06-15T12:00:00Z"
|
|
29
|
-
* @example
|
|
29
|
+
* @example formatHttpDate("invalid") // ""
|
|
30
30
|
*/
|
|
31
|
-
export function
|
|
31
|
+
export function formatHttpDate(value) {
|
|
32
32
|
if (!isValidUtc(value))
|
|
33
33
|
return "";
|
|
34
34
|
try {
|
|
@@ -1,28 +1,55 @@
|
|
|
1
1
|
import type { RelativeTimeFormatOptions, RelativeUnit } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Options for `formatRelativeUtc`: the instant the distance is measured from, the unit it is shown
|
|
4
|
+
* in, how it rounds, and the wording `Intl.RelativeTimeFormat` uses.
|
|
5
|
+
*/
|
|
2
6
|
export interface FormatRelativeUtcOptions extends RelativeTimeFormatOptions {
|
|
3
|
-
|
|
7
|
+
/**
|
|
8
|
+
* The unit the distance is written in, whatever its size: `"second"`, `"minute"`, `"hour"`,
|
|
9
|
+
* `"day"`, `"week"`, `"month"` or `"year"`, singular or plural. Any other value returns `""`.
|
|
10
|
+
* Omitted, the unit is picked from the distance: second under a minute, minute under an hour,
|
|
11
|
+
* hour under a day, day under 7 days, week under 28, month under 365 and year beyond.
|
|
12
|
+
*
|
|
13
|
+
* @defaultValue None. The unit is picked from the distance.
|
|
14
|
+
*/
|
|
15
|
+
largestUnit?: RelativeUnit | `${RelativeUnit}s`;
|
|
16
|
+
/**
|
|
17
|
+
* The instant the distance is measured from, as a UTC ISO string. Any other value returns `""`.
|
|
18
|
+
*
|
|
19
|
+
* @defaultValue The current instant.
|
|
20
|
+
*/
|
|
4
21
|
reference?: string;
|
|
22
|
+
/**
|
|
23
|
+
* The time zone that anchors a calendar unit (week, month or year): an IANA name, a UTC offset (a
|
|
24
|
+
* time zone identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
25
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
26
|
+
* `""` whatever the unit.
|
|
27
|
+
*
|
|
28
|
+
* @defaultValue `"UTC"`
|
|
29
|
+
*/
|
|
5
30
|
timeZone?: string;
|
|
6
31
|
}
|
|
7
32
|
/**
|
|
8
33
|
* Format the relative time between a UTC ISO string and a reference instant.
|
|
9
34
|
*
|
|
10
|
-
* -
|
|
11
|
-
*
|
|
12
|
-
* day under 7 days, week under 28, month under 365, year beyond — so a 3-year distance reads
|
|
13
|
-
* "3 years ago".
|
|
35
|
+
* - Picks the display unit from the distance, using `formatRelativeDate`'s day thresholds past a
|
|
36
|
+
* day, so a 3-year distance reads "3 years ago".
|
|
14
37
|
* - **Compatibility:** before 1.16.0 week, month and year were never auto-picked ("1,096 days ago").
|
|
15
38
|
* Pass `largestUnit: "day"` to keep a day count.
|
|
16
|
-
* - `
|
|
17
|
-
*
|
|
18
|
-
* `"UTC"`; pass `"local"` for the system time zone. An unknown zone returns `""` whatever the unit
|
|
19
|
-
* (ECMA-402 throws RangeError for it).
|
|
39
|
+
* - `largestUnit` is one of the seven units from `"second"` to `"year"`, singular or plural. Any
|
|
40
|
+
* other value returns `""`.
|
|
20
41
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
21
42
|
* rejects it.
|
|
43
|
+
* - **Limit at an offset with seconds.** A month or a year is measured from `reference`, placed in
|
|
44
|
+
* the offset's whole-minute zone and moved by its seconds, and the moved instant must be inside
|
|
45
|
+
* Temporal's range. So when one is measured and `reference` is within the offset's seconds (under
|
|
46
|
+
* a minute) of the last instant Temporal supports (`+275760-09-13T00:00:00Z`) for an offset east
|
|
47
|
+
* of UTC, or of the first (`-271821-04-20T00:00:00Z`) for one west, this returns `""`. An offset
|
|
48
|
+
* to the minute has no such limit.
|
|
22
49
|
*
|
|
23
50
|
* @param value UTC ISO string to format
|
|
24
51
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
25
|
-
* @param options
|
|
52
|
+
* @param options The reference instant, the display unit, rounding, wording and time zone
|
|
26
53
|
* @returns the formatted relative-time string, or "" on invalid input
|
|
27
54
|
*
|
|
28
55
|
* @example formatRelativeUtc("2026-01-15T14:30:45Z", "en-US", { reference: "2026-04-15T14:30:45Z" }) // "3 months ago"
|
|
@@ -31,5 +58,6 @@ export interface FormatRelativeUtcOptions extends RelativeTimeFormatOptions {
|
|
|
31
58
|
* @example formatRelativeUtc("2026-01-15T14:30:45Z", "en-US", null as never) // ""
|
|
32
59
|
* @example formatRelativeUtc("not-a-date") // ""
|
|
33
60
|
* @example formatRelativeUtc("2024-03-15T11:30:00Z", ["fr-FR", "en-US"], { reference: "2024-03-15T12:00:00Z" }) // "il y a 30 minutes"
|
|
61
|
+
* @example formatRelativeUtc("1970-01-03T12:00:00Z", "en-US", { reference: "1970-01-01T12:00:00Z", timeZone: "-00:44:30" }) // "in 2 days" (a stored offset with seconds)
|
|
34
62
|
*/
|
|
35
63
|
export declare function formatRelativeUtc(value: string, locale?: string | string[], options?: FormatRelativeUtcOptions): string;
|