@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
|
@@ -5,8 +5,7 @@ import type { DateTimeFormatOptions } from "../../types/index.js";
|
|
|
5
5
|
* - This is GMT's substitute for a token formatter (Luxon `toFormat`, date-fns
|
|
6
6
|
* `format`). A token pattern hard-codes field order and ships US ordering to
|
|
7
7
|
* every locale; `formatToParts` gives the caller full control over presentation
|
|
8
|
-
* while the *locale* keeps control of order.
|
|
9
|
-
* `context/roadmap/issues/J.md`.
|
|
8
|
+
* while the *locale* keeps control of order.
|
|
10
9
|
* - Each part is `{ type, value }` where `type` is one of:
|
|
11
10
|
* `"era"`, `"year"`, `"relatedYear"`, `"yearName"`, `"month"`, `"day"`, `"weekday"`,
|
|
12
11
|
* `"literal"`.
|
|
@@ -22,6 +21,9 @@ import type { DateTimeFormatOptions } from "../../types/index.js";
|
|
|
22
21
|
* ignored. With both `dateStyle` and `timeStyle` the parts keep the date style and drop the
|
|
23
22
|
* `timeStyle` (the `Intl.DateTimeFormat` entry point, required ~any~), whereas the text sibling
|
|
24
23
|
* `formatDate` returns `""` (`PlainDate#toLocaleString`, required ~date~, is a TypeError).
|
|
24
|
+
* - The `formatZonedToParts` example below writes the literal before the day period as
|
|
25
|
+
* `"\u202f"`, U+202F NARROW NO-BREAK SPACE, which Node 22 and 24 return; Node 26 returns an
|
|
26
|
+
* ordinary space there (see `formatZonedToParts`).
|
|
25
27
|
* - Returns `[]` for invalid input.
|
|
26
28
|
* - **Compatibility:** before 1.16.0 time options leaked a UTC midnight and a `"UTC"` zone name
|
|
27
29
|
* into the parts. `formatZonedToParts` on the date at midnight UTC returns those parts.
|
|
@@ -44,6 +46,15 @@ import type { DateTimeFormatOptions } from "../../types/index.js";
|
|
|
44
46
|
* @example formatDateToParts("2024-02-03", ["fr-FR", "en-US"]) // [{ type: "day", value: "03" }, { type: "literal", value: "/" }, …]
|
|
45
47
|
*/
|
|
46
48
|
export declare function formatDateToParts(value: string, locale?: string | string[], options?: DateTimeFormatOptions): Array<{
|
|
49
|
+
/**
|
|
50
|
+
* The kind of part, named as ECMA-402 `Intl.DateTimeFormat.prototype.formatToParts` names it: a
|
|
51
|
+
* field such as `"year"`, `"month"` or `"day"`, or `"literal"` for the separator text between
|
|
52
|
+
* fields.
|
|
53
|
+
*/
|
|
47
54
|
type: string;
|
|
55
|
+
/**
|
|
56
|
+
* The text of the part in the requested locale, exactly as the formatter wrote it. Joining every
|
|
57
|
+
* `value` in array order gives the whole formatted text.
|
|
58
|
+
*/
|
|
48
59
|
value: string;
|
|
49
60
|
}>;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { plainDateFormatOptions } from "../../internal/plainFormatOptions.js";
|
|
3
3
|
import { isValidDate } from "../validate/index.js";
|
|
4
|
+
import { readDateTimeFormatOptions } from "../../internal/readDateTimeFormatOptions.js";
|
|
4
5
|
/**
|
|
5
6
|
* Return the locale-formatted parts of a PlainDate.
|
|
6
7
|
*
|
|
7
8
|
* - This is GMT's substitute for a token formatter (Luxon `toFormat`, date-fns
|
|
8
9
|
* `format`). A token pattern hard-codes field order and ships US ordering to
|
|
9
10
|
* every locale; `formatToParts` gives the caller full control over presentation
|
|
10
|
-
* while the *locale* keeps control of order.
|
|
11
|
-
* `context/roadmap/issues/J.md`.
|
|
11
|
+
* while the *locale* keeps control of order.
|
|
12
12
|
* - Each part is `{ type, value }` where `type` is one of:
|
|
13
13
|
* `"era"`, `"year"`, `"relatedYear"`, `"yearName"`, `"month"`, `"day"`, `"weekday"`,
|
|
14
14
|
* `"literal"`.
|
|
@@ -24,6 +24,9 @@ import { isValidDate } from "../validate/index.js";
|
|
|
24
24
|
* ignored. With both `dateStyle` and `timeStyle` the parts keep the date style and drop the
|
|
25
25
|
* `timeStyle` (the `Intl.DateTimeFormat` entry point, required ~any~), whereas the text sibling
|
|
26
26
|
* `formatDate` returns `""` (`PlainDate#toLocaleString`, required ~date~, is a TypeError).
|
|
27
|
+
* - The `formatZonedToParts` example below writes the literal before the day period as
|
|
28
|
+
* `"\u202f"`, U+202F NARROW NO-BREAK SPACE, which Node 22 and 24 return; Node 26 returns an
|
|
29
|
+
* ordinary space there (see `formatZonedToParts`).
|
|
27
30
|
* - Returns `[]` for invalid input.
|
|
28
31
|
* - **Compatibility:** before 1.16.0 time options leaked a UTC midnight and a `"UTC"` zone name
|
|
29
32
|
* into the parts. `formatZonedToParts` on the date at midnight UTC returns those parts.
|
|
@@ -56,8 +59,9 @@ export function formatDateToParts(value, locale, options) {
|
|
|
56
59
|
// PlainDate format may contain, so no time or zone field can appear.
|
|
57
60
|
// Constructing with the caller's options first surfaces the TypeError or
|
|
58
61
|
// RangeError Intl.DateTimeFormat raises for invalid ones.
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
const read = readDateTimeFormatOptions(options);
|
|
63
|
+
new Intl.DateTimeFormat(locale, read);
|
|
64
|
+
const resolved = plainDateFormatOptions(read);
|
|
61
65
|
if (resolved === null) {
|
|
62
66
|
return [];
|
|
63
67
|
}
|
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
import type { RelativeDateUnit, RelativeTimeFormatOptions } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Options for `formatRelativeDate`: the reference date, the display unit, the rounding and the
|
|
4
|
+
* wording.
|
|
5
|
+
*/
|
|
2
6
|
export interface FormatRelativeDateOptions extends RelativeTimeFormatOptions {
|
|
3
|
-
|
|
7
|
+
/**
|
|
8
|
+
* The unit the distance is written in, whatever its size: `"day"`, `"week"`, `"month"` or
|
|
9
|
+
* `"year"`, singular or plural. Any other value returns `""`, a time unit such as `"hour"`
|
|
10
|
+
* included: a date has no time, and Temporal throws RangeError for a unit outside the units of
|
|
11
|
+
* the type. Omitted, the unit is picked from the distance: day under 7 days, week under 28,
|
|
12
|
+
* month under 365 and year beyond.
|
|
13
|
+
*
|
|
14
|
+
* @defaultValue None. The unit is picked from the distance.
|
|
15
|
+
*/
|
|
16
|
+
largestUnit?: RelativeDateUnit | `${RelativeDateUnit}s`;
|
|
4
17
|
}
|
|
5
18
|
/**
|
|
6
19
|
* Format the relative time between a plain date and a reference date.
|
|
7
20
|
*
|
|
8
21
|
* - Auto-picks the display unit (day/week/month/year) based on the distance, unless
|
|
9
22
|
* `largestUnit` forces one.
|
|
10
|
-
* - `
|
|
23
|
+
* - `largestUnit` is one of those four units, singular or plural. Any other value returns `""`.
|
|
11
24
|
* - `options` must be an object or omitted: `null` or any other primitive returns `""`, as
|
|
12
25
|
* Temporal's GetOptionsObject rejects it.
|
|
13
26
|
*
|
|
14
27
|
* @param value ISO date string to format
|
|
15
28
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
16
|
-
* @param options
|
|
29
|
+
* @param options How the distance is measured, rounded and worded
|
|
17
30
|
* @returns the formatted relative-time string, or "" on invalid input
|
|
18
31
|
*
|
|
19
32
|
* @example formatRelativeDate("2026-01-15", "en-US", { reference: "2026-04-15" }) // "3 months ago"
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import { durationTotal
|
|
2
|
+
import { durationTotal } from "../../internal/index.js";
|
|
3
|
+
import { formatRelativeAmount } from "../../internal/formatRelativeDuration.js";
|
|
3
4
|
import { isValidDate } from "../validate/index.js";
|
|
5
|
+
import { resolveRelativeUnit } from "../../internal/resolveRelativeUnit.js";
|
|
6
|
+
import { isObject } from "../../internal/isObject.js";
|
|
7
|
+
// Temporal's date unit group: the units a PlainDate difference may be written in.
|
|
8
|
+
const DATE_UNITS = [
|
|
9
|
+
"year",
|
|
10
|
+
"month",
|
|
11
|
+
"week",
|
|
12
|
+
"day",
|
|
13
|
+
];
|
|
4
14
|
const AUTO_UNITS = [
|
|
5
15
|
{ unit: "day", maxDays: 7 },
|
|
6
16
|
{ unit: "week", maxDays: 28 },
|
|
@@ -12,13 +22,13 @@ const AUTO_UNITS = [
|
|
|
12
22
|
*
|
|
13
23
|
* - Auto-picks the display unit (day/week/month/year) based on the distance, unless
|
|
14
24
|
* `largestUnit` forces one.
|
|
15
|
-
* - `
|
|
25
|
+
* - `largestUnit` is one of those four units, singular or plural. Any other value returns `""`.
|
|
16
26
|
* - `options` must be an object or omitted: `null` or any other primitive returns `""`, as
|
|
17
27
|
* Temporal's GetOptionsObject rejects it.
|
|
18
28
|
*
|
|
19
29
|
* @param value ISO date string to format
|
|
20
30
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
21
|
-
* @param options
|
|
31
|
+
* @param options How the distance is measured, rounded and worded
|
|
22
32
|
* @returns the formatted relative-time string, or "" on invalid input
|
|
23
33
|
*
|
|
24
34
|
* @example formatRelativeDate("2026-01-15", "en-US", { reference: "2026-04-15" }) // "3 months ago"
|
|
@@ -31,34 +41,36 @@ export function formatRelativeDate(value, locale, options = {}) {
|
|
|
31
41
|
try {
|
|
32
42
|
// Temporal GetOptionsObject: options must be an object or omitted; null and other primitives are
|
|
33
43
|
// invalid input.
|
|
34
|
-
if (options
|
|
44
|
+
if (!isObject(options))
|
|
35
45
|
return "";
|
|
36
46
|
if (!isValidDate(value))
|
|
37
47
|
return "";
|
|
38
|
-
|
|
48
|
+
// Each option is read once (GetOption).
|
|
49
|
+
const referenceOption = options.reference;
|
|
50
|
+
if (referenceOption !== undefined && !isValidDate(referenceOption))
|
|
39
51
|
return "";
|
|
40
52
|
try {
|
|
53
|
+
const forcedUnit = resolveRelativeUnit(options.largestUnit, DATE_UNITS);
|
|
54
|
+
const roundingMethod = options.roundingMethod;
|
|
41
55
|
const target = Temporal.PlainDate.from(value);
|
|
42
|
-
const reference =
|
|
43
|
-
? Temporal.PlainDate.from(
|
|
56
|
+
const reference = referenceOption
|
|
57
|
+
? Temporal.PlainDate.from(referenceOption)
|
|
44
58
|
: Temporal.Now.plainDateISO();
|
|
45
59
|
const diff = target.since(reference);
|
|
46
60
|
const absDays = Math.abs(diff.total("day"));
|
|
47
|
-
const unit =
|
|
61
|
+
const unit = forcedUnit === undefined
|
|
48
62
|
? (AUTO_UNITS.find((t) => absDays < t.maxDays)?.unit ?? "year")
|
|
49
|
-
:
|
|
50
|
-
let
|
|
63
|
+
: forcedUnit;
|
|
64
|
+
let total;
|
|
51
65
|
try {
|
|
52
|
-
|
|
66
|
+
total = diff.total(unit);
|
|
53
67
|
}
|
|
54
68
|
catch {
|
|
55
69
|
// month/year are calendrical and need a relativeTo anchor
|
|
56
|
-
|
|
70
|
+
total = durationTotal(diff, unit, reference);
|
|
57
71
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
style: options.style === undefined ? "long" : options.style,
|
|
61
|
-
}).format(amount, unit));
|
|
72
|
+
// Outside the retry: an invalid roundingMethod throws once, straight to the sentinel.
|
|
73
|
+
return formatRelativeAmount(total, unit, locale, options, roundingMethod);
|
|
62
74
|
}
|
|
63
75
|
catch {
|
|
64
76
|
return "";
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import type { RelativeDateTimeUnit, RelativeTimeFormatOptions } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Options for `formatRelativeDateTime`: the reference date-time, the display unit, the rounding
|
|
4
|
+
* and the wording.
|
|
5
|
+
*/
|
|
2
6
|
export interface FormatRelativeDateTimeOptions 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?: RelativeDateTimeUnit | `${RelativeDateTimeUnit}s`;
|
|
4
16
|
}
|
|
5
17
|
/**
|
|
6
18
|
* Format the relative time between a plain date-time and a reference date-time.
|
|
@@ -11,13 +23,14 @@ export interface FormatRelativeDateTimeOptions extends RelativeTimeFormatOptions
|
|
|
11
23
|
* "3 years ago".
|
|
12
24
|
* - **Compatibility:** before 1.16.0 week, month and year were never auto-picked ("1,096 days ago").
|
|
13
25
|
* Pass `largestUnit: "day"` to keep a day count.
|
|
14
|
-
* - `
|
|
26
|
+
* - `largestUnit` is one of the seven units from `"second"` to `"year"`, singular or plural. Any
|
|
27
|
+
* other value returns `""`.
|
|
15
28
|
* - `options` must be an object or omitted: `null` or any other primitive returns `""`, as
|
|
16
29
|
* Temporal's GetOptionsObject rejects it.
|
|
17
30
|
*
|
|
18
31
|
* @param value ISO date-time string to format
|
|
19
32
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
20
|
-
* @param options
|
|
33
|
+
* @param options How the distance is measured, rounded and worded
|
|
21
34
|
* @returns the formatted relative-time string, or "" on invalid input
|
|
22
35
|
*
|
|
23
36
|
* @example formatRelativeDateTime("2026-03-17T09:00:00", "en-GB", { style: "long", reference: "2026-03-17T06:00:00" }) // "in 3 hours"
|
|
@@ -3,6 +3,7 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
3
3
|
import { durationTotal } from "../../internal/index.js";
|
|
4
4
|
import { formatRelativeDuration } from "../../internal/formatRelativeDuration.js";
|
|
5
5
|
import { isValidDateTime } from "../validate/index.js";
|
|
6
|
+
import { isObject } from "../../internal/isObject.js";
|
|
6
7
|
/**
|
|
7
8
|
* Format the relative time between a plain date-time and a reference date-time.
|
|
8
9
|
*
|
|
@@ -12,13 +13,14 @@ import { isValidDateTime } from "../validate/index.js";
|
|
|
12
13
|
* "3 years ago".
|
|
13
14
|
* - **Compatibility:** before 1.16.0 week, month and year were never auto-picked ("1,096 days ago").
|
|
14
15
|
* Pass `largestUnit: "day"` to keep a day count.
|
|
15
|
-
* - `
|
|
16
|
+
* - `largestUnit` is one of the seven units from `"second"` to `"year"`, singular or plural. Any
|
|
17
|
+
* other value returns `""`.
|
|
16
18
|
* - `options` must be an object or omitted: `null` or any other primitive returns `""`, as
|
|
17
19
|
* Temporal's GetOptionsObject rejects it.
|
|
18
20
|
*
|
|
19
21
|
* @param value ISO date-time string to format
|
|
20
22
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
21
|
-
* @param options
|
|
23
|
+
* @param options How the distance is measured, rounded and worded
|
|
22
24
|
* @returns the formatted relative-time string, or "" on invalid input
|
|
23
25
|
*
|
|
24
26
|
* @example formatRelativeDateTime("2026-03-17T09:00:00", "en-GB", { style: "long", reference: "2026-03-17T06:00:00" }) // "in 3 hours"
|
|
@@ -32,16 +34,18 @@ export function formatRelativeDateTime(value, locale, options = {}) {
|
|
|
32
34
|
try {
|
|
33
35
|
// Temporal GetOptionsObject: options must be an object or omitted; null and other primitives are
|
|
34
36
|
// invalid input.
|
|
35
|
-
if (options
|
|
37
|
+
if (!isObject(options))
|
|
36
38
|
return "";
|
|
37
39
|
if (!isValidDateTime(value))
|
|
38
40
|
return "";
|
|
39
|
-
|
|
41
|
+
// Each option is read once (GetOption).
|
|
42
|
+
const referenceOption = options.reference;
|
|
43
|
+
if (referenceOption !== undefined && !isValidDateTime(referenceOption))
|
|
40
44
|
return "";
|
|
41
45
|
try {
|
|
42
46
|
const target = Temporal.PlainDateTime.from(value);
|
|
43
|
-
const reference =
|
|
44
|
-
? Temporal.PlainDateTime.from(
|
|
47
|
+
const reference = referenceOption
|
|
48
|
+
? Temporal.PlainDateTime.from(referenceOption)
|
|
45
49
|
: Temporal.Now.plainDateTimeISO();
|
|
46
50
|
const diff = target.since(reference);
|
|
47
51
|
// month/year are calendrical — relativeTo needs a PlainDate
|
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
import type { RelativeTimeFormatOptions, RelativeTimeUnit } from "../../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Options for `formatRelativeTime`: the reference time, the display unit, the rounding and the
|
|
4
|
+
* wording.
|
|
5
|
+
*/
|
|
2
6
|
export interface FormatRelativeTimeOptions extends RelativeTimeFormatOptions {
|
|
3
|
-
|
|
7
|
+
/**
|
|
8
|
+
* The unit the distance is written in, whatever its size: `"second"`, `"minute"` or `"hour"`,
|
|
9
|
+
* singular or plural. Any other value returns `""`, a date unit such as `"day"` included: a time
|
|
10
|
+
* has no date, and Temporal throws RangeError for a unit outside the units of the type. Omitted,
|
|
11
|
+
* the unit is picked from the distance: second under a minute, minute under an hour and hour
|
|
12
|
+
* beyond.
|
|
13
|
+
*
|
|
14
|
+
* @defaultValue None. The unit is picked from the distance.
|
|
15
|
+
*/
|
|
16
|
+
largestUnit?: RelativeTimeUnit | `${RelativeTimeUnit}s`;
|
|
4
17
|
}
|
|
5
18
|
/**
|
|
6
19
|
* Format the relative time between a plain time and a reference time.
|
|
7
20
|
*
|
|
8
21
|
* - Auto-picks the display unit (second/minute/hour) based on the distance, unless
|
|
9
22
|
* `largestUnit` forces one.
|
|
10
|
-
* - `
|
|
23
|
+
* - `largestUnit` is one of those three units, singular or plural. Any other value returns `""`.
|
|
11
24
|
* - `options` must be an object or omitted: `null` or any other primitive returns `""`, as
|
|
12
25
|
* Temporal's GetOptionsObject rejects it.
|
|
13
26
|
*
|
|
14
27
|
* @param value ISO time string to format
|
|
15
28
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
16
|
-
* @param options
|
|
29
|
+
* @param options How the distance is measured, rounded and worded
|
|
17
30
|
* @returns the formatted relative-time string, or "" on invalid input
|
|
18
31
|
*
|
|
19
32
|
* @example formatRelativeTime("14:30:00", "en-US", { style: "short", reference: "16:30:00" }) // "2 hr. ago"
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import {
|
|
2
|
+
import { formatRelativeAmount } from "../../internal/formatRelativeDuration.js";
|
|
3
3
|
import { isValidTime } from "../validate/index.js";
|
|
4
|
+
import { resolveRelativeUnit } from "../../internal/resolveRelativeUnit.js";
|
|
5
|
+
import { isObject } from "../../internal/isObject.js";
|
|
6
|
+
// Temporal's time unit group down to the second: the units a PlainTime difference may be written
|
|
7
|
+
// in, less the sub-second units, which Intl.RelativeTimeFormat does not have.
|
|
8
|
+
const TIME_UNITS = [
|
|
9
|
+
"hour",
|
|
10
|
+
"minute",
|
|
11
|
+
"second",
|
|
12
|
+
];
|
|
4
13
|
const AUTO_UNITS = [
|
|
5
14
|
{ unit: "second", maxSeconds: 60 },
|
|
6
15
|
{ unit: "minute", maxSeconds: 3_600 },
|
|
@@ -11,13 +20,13 @@ const AUTO_UNITS = [
|
|
|
11
20
|
*
|
|
12
21
|
* - Auto-picks the display unit (second/minute/hour) based on the distance, unless
|
|
13
22
|
* `largestUnit` forces one.
|
|
14
|
-
* - `
|
|
23
|
+
* - `largestUnit` is one of those three units, singular or plural. Any other value returns `""`.
|
|
15
24
|
* - `options` must be an object or omitted: `null` or any other primitive returns `""`, as
|
|
16
25
|
* Temporal's GetOptionsObject rejects it.
|
|
17
26
|
*
|
|
18
27
|
* @param value ISO time string to format
|
|
19
28
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
20
|
-
* @param options
|
|
29
|
+
* @param options How the distance is measured, rounded and worded
|
|
21
30
|
* @returns the formatted relative-time string, or "" on invalid input
|
|
22
31
|
*
|
|
23
32
|
* @example formatRelativeTime("14:30:00", "en-US", { style: "short", reference: "16:30:00" }) // "2 hr. ago"
|
|
@@ -30,27 +39,27 @@ export function formatRelativeTime(value, locale, options = {}) {
|
|
|
30
39
|
try {
|
|
31
40
|
// Temporal GetOptionsObject: options must be an object or omitted; null and other primitives are
|
|
32
41
|
// invalid input.
|
|
33
|
-
if (options
|
|
42
|
+
if (!isObject(options))
|
|
34
43
|
return "";
|
|
35
44
|
if (!isValidTime(value))
|
|
36
45
|
return "";
|
|
37
|
-
|
|
46
|
+
// Each option is read once (GetOption).
|
|
47
|
+
const referenceOption = options.reference;
|
|
48
|
+
if (referenceOption !== undefined && !isValidTime(referenceOption))
|
|
38
49
|
return "";
|
|
39
50
|
try {
|
|
51
|
+
const forcedUnit = resolveRelativeUnit(options.largestUnit, TIME_UNITS);
|
|
52
|
+
const roundingMethod = options.roundingMethod;
|
|
40
53
|
const target = Temporal.PlainTime.from(value);
|
|
41
|
-
const reference =
|
|
42
|
-
? Temporal.PlainTime.from(
|
|
54
|
+
const reference = referenceOption
|
|
55
|
+
? Temporal.PlainTime.from(referenceOption)
|
|
43
56
|
: Temporal.Now.plainTimeISO();
|
|
44
57
|
const diff = target.since(reference);
|
|
45
58
|
const absSeconds = Math.abs(diff.total("second"));
|
|
46
|
-
const unit =
|
|
59
|
+
const unit = forcedUnit === undefined
|
|
47
60
|
? (AUTO_UNITS.find((t) => absSeconds < t.maxSeconds)?.unit ?? "hour")
|
|
48
|
-
:
|
|
49
|
-
|
|
50
|
-
return normalizeDateTime(new Intl.RelativeTimeFormat(locale, {
|
|
51
|
-
numeric: options.numeric === undefined ? "auto" : options.numeric,
|
|
52
|
-
style: options.style === undefined ? "long" : options.style,
|
|
53
|
-
}).format(amount, unit));
|
|
61
|
+
: forcedUnit;
|
|
62
|
+
return formatRelativeAmount(diff.total(unit), unit, locale, options, roundingMethod);
|
|
54
63
|
}
|
|
55
64
|
catch {
|
|
56
65
|
return "";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* `YYYY-MM-DD HH:MM:SS[.fff]` form of standard SQL `TIMESTAMP` and MySQL/SQLite `DATETIME`
|
|
4
4
|
* columns.
|
|
5
5
|
*
|
|
6
|
-
* - **Grammar:** SQL-92 §5.3 `<timestamp string>` and the ODBC `ts` escape, which `
|
|
6
|
+
* - **Grammar:** SQL-92 §5.3 `<timestamp string>` and the ODBC `ts` escape, which `parseSqlDateTime`
|
|
7
7
|
* reads: the date, a single space, and the time with seconds always written.
|
|
8
8
|
* - A year outside SQL-92's `0001`–`9999` (Table 10) returns `""`: the literal has no sign and
|
|
9
9
|
* no expanded year to write it with.
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
* @param value plain ISO 8601 datetime string (e.g. "2024-03-15T14:30:00")
|
|
17
17
|
* @returns SQL timestamp literal, or "" on invalid input
|
|
18
18
|
*
|
|
19
|
-
* @example
|
|
20
|
-
* @example
|
|
21
|
-
* @example
|
|
22
|
-
* @example
|
|
23
|
-
* @example
|
|
19
|
+
* @example formatSqlDateTime("2024-03-15T14:30:00") // "2024-03-15 14:30:00"
|
|
20
|
+
* @example formatSqlDateTime("2024-03-15T14:30") // "2024-03-15 14:30:00"
|
|
21
|
+
* @example formatSqlDateTime("2024-03-15T14:30:00.500") // "2024-03-15 14:30:00.5"
|
|
22
|
+
* @example formatSqlDateTime("0000-01-01T00:00:00") // "" (year outside 0001–9999)
|
|
23
|
+
* @example formatSqlDateTime("invalid") // ""
|
|
24
24
|
*/
|
|
25
|
-
export declare function
|
|
25
|
+
export declare function formatSqlDateTime(value: string): string;
|
|
@@ -5,7 +5,7 @@ import { isValidDateTime } from "../validate/index.js";
|
|
|
5
5
|
* `YYYY-MM-DD HH:MM:SS[.fff]` form of standard SQL `TIMESTAMP` and MySQL/SQLite `DATETIME`
|
|
6
6
|
* columns.
|
|
7
7
|
*
|
|
8
|
-
* - **Grammar:** SQL-92 §5.3 `<timestamp string>` and the ODBC `ts` escape, which `
|
|
8
|
+
* - **Grammar:** SQL-92 §5.3 `<timestamp string>` and the ODBC `ts` escape, which `parseSqlDateTime`
|
|
9
9
|
* reads: the date, a single space, and the time with seconds always written.
|
|
10
10
|
* - A year outside SQL-92's `0001`–`9999` (Table 10) returns `""`: the literal has no sign and
|
|
11
11
|
* no expanded year to write it with.
|
|
@@ -18,13 +18,13 @@ import { isValidDateTime } from "../validate/index.js";
|
|
|
18
18
|
* @param value plain ISO 8601 datetime string (e.g. "2024-03-15T14:30:00")
|
|
19
19
|
* @returns SQL timestamp literal, or "" on invalid input
|
|
20
20
|
*
|
|
21
|
-
* @example
|
|
22
|
-
* @example
|
|
23
|
-
* @example
|
|
24
|
-
* @example
|
|
25
|
-
* @example
|
|
21
|
+
* @example formatSqlDateTime("2024-03-15T14:30:00") // "2024-03-15 14:30:00"
|
|
22
|
+
* @example formatSqlDateTime("2024-03-15T14:30") // "2024-03-15 14:30:00"
|
|
23
|
+
* @example formatSqlDateTime("2024-03-15T14:30:00.500") // "2024-03-15 14:30:00.5"
|
|
24
|
+
* @example formatSqlDateTime("0000-01-01T00:00:00") // "" (year outside 0001–9999)
|
|
25
|
+
* @example formatSqlDateTime("invalid") // ""
|
|
26
26
|
*/
|
|
27
|
-
export function
|
|
27
|
+
export function formatSqlDateTime(value) {
|
|
28
28
|
if (!isValidDateTime(value))
|
|
29
29
|
return "";
|
|
30
30
|
try {
|
|
@@ -2,6 +2,7 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
2
2
|
import { normalizeDateTime } from "../../internal/index.js";
|
|
3
3
|
import { plainTimeFormatOptions } from "../../internal/plainFormatOptions.js";
|
|
4
4
|
import { isValidTime } from "../validate/index.js";
|
|
5
|
+
import { readDateTimeFormatOptions } from "../../internal/readDateTimeFormatOptions.js";
|
|
5
6
|
/**
|
|
6
7
|
* Return a localized string for a PlainTime ISO input using Intl options.
|
|
7
8
|
*
|
|
@@ -42,8 +43,9 @@ export function formatTime(value, locale, options) {
|
|
|
42
43
|
// (CreateDateTimeFormat ~time~, ~time~). Constructing with the caller's
|
|
43
44
|
// options first surfaces the TypeError or RangeError Intl.DateTimeFormat
|
|
44
45
|
// raises for invalid ones.
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
const read = readDateTimeFormatOptions(options);
|
|
47
|
+
new Intl.DateTimeFormat(locale, read);
|
|
48
|
+
const resolved = plainTimeFormatOptions(read);
|
|
47
49
|
if (resolved === null) {
|
|
48
50
|
return "";
|
|
49
51
|
}
|
|
@@ -8,5 +8,5 @@ export * from "./formatDateToParts.js";
|
|
|
8
8
|
export * from "./formatRelativeDate.js";
|
|
9
9
|
export * from "./formatRelativeDateTime.js";
|
|
10
10
|
export * from "./formatRelativeTime.js";
|
|
11
|
-
export * from "./
|
|
11
|
+
export * from "./formatSqlDateTime.js";
|
|
12
12
|
export * from "./formatTime.js";
|
|
@@ -8,5 +8,5 @@ export * from "./formatDateToParts.js";
|
|
|
8
8
|
export * from "./formatRelativeDate.js";
|
|
9
9
|
export * from "./formatRelativeDateTime.js";
|
|
10
10
|
export * from "./formatRelativeTime.js";
|
|
11
|
-
export * from "./
|
|
11
|
+
export * from "./formatSqlDateTime.js";
|
|
12
12
|
export * from "./formatTime.js";
|
|
@@ -8,6 +8,8 @@ export type { NowUnit };
|
|
|
8
8
|
* - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
|
|
9
9
|
* does; `"dayOfWeek"` has no plural.
|
|
10
10
|
* - Returns "" when unit is invalid or system timezone is unavailable.
|
|
11
|
+
* - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
|
|
12
|
+
* sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
11
13
|
*
|
|
12
14
|
* @param unit unit to extract from current local time
|
|
13
15
|
* @returns string representation of the requested unit or "" on invalid
|
|
@@ -15,6 +15,8 @@ function isValidPlainNowUnit(unit) {
|
|
|
15
15
|
* - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
|
|
16
16
|
* does; `"dayOfWeek"` has no plural.
|
|
17
17
|
* - Returns "" when unit is invalid or system timezone is unavailable.
|
|
18
|
+
* - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
|
|
19
|
+
* sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
18
20
|
*
|
|
19
21
|
* @param unit unit to extract from current local time
|
|
20
22
|
* @returns string representation of the requested unit or "" on invalid
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Now.zonedDateTimeISO to get current year in system timezone.
|
|
5
5
|
* - Returns zero-padded string (e.g., "2024").
|
|
6
|
+
* - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
|
|
7
|
+
* Temporal writes it at the head of a date.
|
|
6
8
|
* - Returns "" when system timezone is unavailable.
|
|
7
9
|
*
|
|
8
10
|
* @returns current year string (zero-padded) or "" on invalid
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { getSystemTimeZone } from "../../zoned/get/getSystemTimeZone.js";
|
|
3
|
+
import { isoYearString } from "../../internal/isoYearString.js";
|
|
3
4
|
/**
|
|
4
5
|
* Return the current year as a zero-padded string in the system timeZone.
|
|
5
6
|
*
|
|
6
7
|
* - Uses Temporal.Now.zonedDateTimeISO to get current year in system timezone.
|
|
7
8
|
* - Returns zero-padded string (e.g., "2024").
|
|
9
|
+
* - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
|
|
10
|
+
* Temporal writes it at the head of a date.
|
|
8
11
|
* - Returns "" when system timezone is unavailable.
|
|
9
12
|
*
|
|
10
13
|
* @returns current year string (zero-padded) or "" on invalid
|
|
@@ -17,9 +20,7 @@ export function getYear() {
|
|
|
17
20
|
if (!timeZone)
|
|
18
21
|
return "";
|
|
19
22
|
try {
|
|
20
|
-
return Temporal.Now.zonedDateTimeISO(timeZone)
|
|
21
|
-
.year.toString()
|
|
22
|
-
.padStart(4, "0");
|
|
23
|
+
return isoYearString(Temporal.Now.zonedDateTimeISO(timeZone).year);
|
|
23
24
|
}
|
|
24
25
|
catch {
|
|
25
26
|
return "";
|
|
@@ -32,6 +32,15 @@
|
|
|
32
32
|
* @example intervalDifferenceDate("invalid", "2024-12-31", "2024-06-01", "2024-07-01") // []
|
|
33
33
|
*/
|
|
34
34
|
export declare function intervalDifferenceDate(aStart: string, aEnd: string, bStart: string, bEnd: string): Array<{
|
|
35
|
+
/**
|
|
36
|
+
* The date the interval begins on, as an ISO 8601 date (`YYYY-MM-DD`). It keeps a calendar
|
|
37
|
+
* annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
38
|
+
*/
|
|
35
39
|
start: string;
|
|
40
|
+
/**
|
|
41
|
+
* The first date after the interval, in the same format as `start`. It is exclusive: the interval
|
|
42
|
+
* holds everything from `start` up to but not including this value. It is always later than
|
|
43
|
+
* `start`.
|
|
44
|
+
*/
|
|
36
45
|
end: string;
|
|
37
46
|
}>;
|
|
@@ -25,6 +25,15 @@
|
|
|
25
25
|
* @example intervalDifferenceDateTime("invalid", "2024-12-31T17:00:00", "2024-06-01T12:00:00", "2024-07-01T13:00:00") // []
|
|
26
26
|
*/
|
|
27
27
|
export declare function intervalDifferenceDateTime(aStart: string, aEnd: string, bStart: string, bEnd: string): Array<{
|
|
28
|
+
/**
|
|
29
|
+
* The date-time the interval begins at, as an ISO 8601 date-time string with no offset or time
|
|
30
|
+
* zone.
|
|
31
|
+
*/
|
|
28
32
|
start: string;
|
|
33
|
+
/**
|
|
34
|
+
* The first date-time after the interval, in the same format as `start`. It is exclusive: the
|
|
35
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
36
|
+
* than `start`.
|
|
37
|
+
*/
|
|
29
38
|
end: string;
|
|
30
39
|
}>;
|
|
@@ -27,6 +27,15 @@
|
|
|
27
27
|
* @example intervalDifferenceTime("invalid", "17:00:00", "12:00:00", "13:00:00") // []
|
|
28
28
|
*/
|
|
29
29
|
export declare function intervalDifferenceTime(aStart: string, aEnd: string, bStart: string, bEnd: string): Array<{
|
|
30
|
+
/**
|
|
31
|
+
* The clock time the interval begins at, as an ISO 8601 time string with no date, offset or time
|
|
32
|
+
* zone.
|
|
33
|
+
*/
|
|
30
34
|
start: string;
|
|
35
|
+
/**
|
|
36
|
+
* The first clock time after the interval, in the same format as `start`. It is exclusive: the
|
|
37
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
38
|
+
* than `start`.
|
|
39
|
+
*/
|
|
31
40
|
end: string;
|
|
32
41
|
}>;
|