@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
|
@@ -6,12 +6,9 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
6
6
|
* - Validates duration units and values.
|
|
7
7
|
* - Returns "" for invalid input.
|
|
8
8
|
*
|
|
9
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
10
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
11
|
-
*
|
|
12
9
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
13
10
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to add
|
|
14
|
-
* @param options
|
|
11
|
+
* @param options How an out-of-range result is handled
|
|
15
12
|
* @returns UTC Instant string after addition, or "" on invalid input
|
|
16
13
|
*
|
|
17
14
|
* @example addUtc("2024-03-10T12:00:00Z", { days: 5 }) // "2024-03-15T12:00:00Z"
|
|
@@ -19,5 +16,11 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
19
16
|
* @example addUtc("invalid", { days: 5 }) // ""
|
|
20
17
|
*/
|
|
21
18
|
export declare function addUtc(value: string, units: Partial<Record<DateTimeDurationUnit, number>>, options?: {
|
|
19
|
+
/**
|
|
20
|
+
* What to do when the result is not a real date. `"constrain"` clamps it to the last valid day,
|
|
21
|
+
* so Jan 31 + 1 month is Feb 29/28 (TC39 Temporal); `"reject"` returns `""`.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
24
|
+
*/
|
|
22
25
|
overflow?: Overflow;
|
|
23
26
|
}): string;
|
|
@@ -1,6 +1,6 @@
|
|
|
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 { readDurationUnits, resolveOverflow } from "../../internal/index.js";
|
|
4
4
|
import { isValidDateTimeDurationUnit } from "../../plain/validate/index.js";
|
|
5
5
|
import { isValidUtc } from "../validate/isValidUtc.js";
|
|
6
6
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
@@ -11,12 +11,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
11
11
|
* - Validates duration units and values.
|
|
12
12
|
* - Returns "" for invalid input.
|
|
13
13
|
*
|
|
14
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
15
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
16
|
-
*
|
|
17
14
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
18
15
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to add
|
|
19
|
-
* @param options
|
|
16
|
+
* @param options How an out-of-range result is handled
|
|
20
17
|
* @returns UTC Instant string after addition, or "" on invalid input
|
|
21
18
|
*
|
|
22
19
|
* @example addUtc("2024-03-10T12:00:00Z", { days: 5 }) // "2024-03-15T12:00:00Z"
|
|
@@ -29,17 +26,14 @@ export function addUtc(value, units, options) {
|
|
|
29
26
|
return "";
|
|
30
27
|
}
|
|
31
28
|
const validUtc = isValidUtc(value);
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
Object.keys(units).every(isValidDateTimeDurationUnit);
|
|
35
|
-
const validAmounts = validUnits && Object.values(units).every(isValidAmount);
|
|
36
|
-
if (!validUtc || !validUnits || !validAmounts) {
|
|
29
|
+
const amounts = readDurationUnits(units, isValidDateTimeDurationUnit);
|
|
30
|
+
if (!validUtc || amounts === null) {
|
|
37
31
|
return "";
|
|
38
32
|
}
|
|
39
33
|
try {
|
|
40
34
|
const instant = Temporal.Instant.from(value);
|
|
41
35
|
const zoned = instant.toZonedDateTimeISO("UTC");
|
|
42
|
-
const result = zoned.add(
|
|
36
|
+
const result = zoned.add(amounts, {
|
|
43
37
|
overflow: resolveOverflow(options?.overflow),
|
|
44
38
|
});
|
|
45
39
|
return result.toInstant().toString();
|
|
@@ -31,7 +31,7 @@ import type { DateTimeDurationUnit, RoundingOptions } from "../../types/index.js
|
|
|
31
31
|
* @param value1 UTC ISO datetime string (start)
|
|
32
32
|
* @param value2 UTC ISO datetime string (end)
|
|
33
33
|
* @param units DateTimeDurationUnit | DateTimeDurationUnit[] to measure the difference
|
|
34
|
-
* @param options optional:
|
|
34
|
+
* @param options optional: how the difference is rounded; a non-object value (such as `null`) is invalid
|
|
35
35
|
* @returns numeric difference in the requested unit, or null on invalid input
|
|
36
36
|
*
|
|
37
37
|
* @example diffUtc("2024-03-10T12:00:00Z", "2024-03-11T12:00:00Z", "hours") // 24
|
|
@@ -38,7 +38,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
38
38
|
* @param value1 UTC ISO datetime string (start)
|
|
39
39
|
* @param value2 UTC ISO datetime string (end)
|
|
40
40
|
* @param units DateTimeDurationUnit | DateTimeDurationUnit[] to measure the difference
|
|
41
|
-
* @param options optional:
|
|
41
|
+
* @param options optional: how the difference is rounded; a non-object value (such as `null`) is invalid
|
|
42
42
|
* @returns numeric difference in the requested unit, or null on invalid input
|
|
43
43
|
*
|
|
44
44
|
* @example diffUtc("2024-03-10T12:00:00Z", "2024-03-11T12:00:00Z", "hours") // 24
|
|
@@ -21,7 +21,7 @@ import type { DateTimeDurationUnit, DurationStringOptions, RoundingOptions } fro
|
|
|
21
21
|
* @param value1 UTC ISO datetime string (start)
|
|
22
22
|
* @param value2 UTC ISO datetime string (end)
|
|
23
23
|
* @param unit DateTimeDurationUnit to use as the duration's largestUnit
|
|
24
|
-
* @param options optional:
|
|
24
|
+
* @param options optional: how the difference is rounded and how the string is rendered; a non-object value (such as `null`) is invalid
|
|
25
25
|
* @returns ISO 8601 duration string, or "" on invalid input
|
|
26
26
|
*
|
|
27
27
|
* @example diffUtcAsDuration("2024-03-10T12:00:00Z", "2024-03-11T12:00:00Z", "hours") // "PT24H"
|
|
@@ -25,7 +25,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
25
25
|
* @param value1 UTC ISO datetime string (start)
|
|
26
26
|
* @param value2 UTC ISO datetime string (end)
|
|
27
27
|
* @param unit DateTimeDurationUnit to use as the duration's largestUnit
|
|
28
|
-
* @param options optional:
|
|
28
|
+
* @param options optional: how the difference is rounded and how the string is rendered; a non-object value (such as `null`) is invalid
|
|
29
29
|
* @returns ISO 8601 duration string, or "" on invalid input
|
|
30
30
|
*
|
|
31
31
|
* @example diffUtcAsDuration("2024-03-10T12:00:00Z", "2024-03-11T12:00:00Z", "hours") // "PT24H"
|
|
@@ -5,8 +5,7 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
5
5
|
*
|
|
6
6
|
* - Converts to ZonedDateTime, sets to end of unit, converts back to Instant.
|
|
7
7
|
* - Supports: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", each also in its plural form (`"days"`), as Temporal accepts.
|
|
8
|
-
* -
|
|
9
|
-
* - The end is written at nanosecond precision by default, so the string names the end itself; an explicit `fractionalSecondDigits` (0, 3, 6 or 9) truncates it, as Temporal's `toString` does.
|
|
8
|
+
* - The end is the last nanosecond of the unit, one nanosecond before the next unit starts.
|
|
10
9
|
* - Returns "" for invalid input.
|
|
11
10
|
* - **Compatibility:** before 1.16.0 the default printed only the digits the unit names — none for
|
|
12
11
|
* `second` and coarser, 3 for `millisecond`, 6 for `microsecond` — which wrote a moment earlier
|
|
@@ -14,7 +13,7 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
14
13
|
*
|
|
15
14
|
* @param value ISO UTC datetime string
|
|
16
15
|
* @param unit date or time unit, singular or plural, to specify the end
|
|
17
|
-
* @param options
|
|
16
|
+
* @param options Where a week starts, and the precision of the result
|
|
18
17
|
* @returns UTC Instant string representing the end of the unit, or "" on invalid input
|
|
19
18
|
*
|
|
20
19
|
* @example endOfUtc("2024-03-15T14:30:45Z", "year") // "2024-12-31T23:59:59.999999999Z"
|
|
@@ -24,6 +23,20 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
24
23
|
* @example endOfUtc("invalid", "year") // ""
|
|
25
24
|
*/
|
|
26
25
|
export declare function endOfUtc(value: string, unit: Temporal.SmallestUnit<Temporal.DateTimeUnit>, options?: {
|
|
26
|
+
/**
|
|
27
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
28
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
29
|
+
* `""`, whatever the unit.
|
|
30
|
+
*
|
|
31
|
+
* @defaultValue `"monday"`
|
|
32
|
+
*/
|
|
27
33
|
weekStartsOn?: "monday" | "sunday";
|
|
34
|
+
/**
|
|
35
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
36
|
+
* drop trailing zeros. Fewer than 9 digits truncate the string, as Temporal's `toString` does,
|
|
37
|
+
* so it names a moment before the end.
|
|
38
|
+
*
|
|
39
|
+
* @defaultValue `9`
|
|
40
|
+
*/
|
|
28
41
|
fractionalSecondDigits?: FractionalDigit;
|
|
29
42
|
}): string;
|
|
@@ -5,8 +5,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
5
5
|
*
|
|
6
6
|
* - Converts to ZonedDateTime, sets to end of unit, converts back to Instant.
|
|
7
7
|
* - Supports: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", each also in its plural form (`"days"`), as Temporal accepts.
|
|
8
|
-
* -
|
|
9
|
-
* - The end is written at nanosecond precision by default, so the string names the end itself; an explicit `fractionalSecondDigits` (0, 3, 6 or 9) truncates it, as Temporal's `toString` does.
|
|
8
|
+
* - The end is the last nanosecond of the unit, one nanosecond before the next unit starts.
|
|
10
9
|
* - Returns "" for invalid input.
|
|
11
10
|
* - **Compatibility:** before 1.16.0 the default printed only the digits the unit names — none for
|
|
12
11
|
* `second` and coarser, 3 for `millisecond`, 6 for `microsecond` — which wrote a moment earlier
|
|
@@ -14,7 +13,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
14
13
|
*
|
|
15
14
|
* @param value ISO UTC datetime string
|
|
16
15
|
* @param unit date or time unit, singular or plural, to specify the end
|
|
17
|
-
* @param options
|
|
16
|
+
* @param options Where a week starts, and the precision of the result
|
|
18
17
|
* @returns UTC Instant string representing the end of the unit, or "" on invalid input
|
|
19
18
|
*
|
|
20
19
|
* @example endOfUtc("2024-03-15T14:30:45Z", "year") // "2024-12-31T23:59:59.999999999Z"
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Instant.compare for comparison.
|
|
5
5
|
* - Returns false if start > end or inputs are invalid.
|
|
6
|
-
* - Use options.inclusiveStart/inclusiveEnd to control boundaries.
|
|
7
6
|
*
|
|
8
7
|
* @param value ISO UTC datetime string to check
|
|
9
8
|
* @param start ISO UTC datetime string for range start
|
|
10
9
|
* @param end ISO UTC datetime string for range end
|
|
11
|
-
* @param options
|
|
10
|
+
* @param options Whether each boundary counts as inside the range
|
|
12
11
|
* @returns boolean indicating whether value is between start and end
|
|
13
12
|
*
|
|
14
13
|
* @example isBetweenUtc("2024-03-15T12:00:00Z", "2024-03-10T12:00:00Z", "2024-03-20T12:00:00Z") // true
|
|
@@ -16,6 +15,18 @@
|
|
|
16
15
|
* @example isBetweenUtc("invalid", "2024-03-10T12:00:00Z", "2024-03-20T12:00:00Z") // false
|
|
17
16
|
*/
|
|
18
17
|
export declare function isBetweenUtc(value: string, start: string, end: string, options?: {
|
|
18
|
+
/**
|
|
19
|
+
* Whether `value` equal to `start` counts as inside the range. `false` requires it to be after
|
|
20
|
+
* `start`.
|
|
21
|
+
*
|
|
22
|
+
* @defaultValue `true`
|
|
23
|
+
*/
|
|
19
24
|
inclusiveStart?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Whether `value` equal to `end` counts as inside the range. `false` requires it to be before
|
|
27
|
+
* `end`.
|
|
28
|
+
*
|
|
29
|
+
* @defaultValue `true`
|
|
30
|
+
*/
|
|
20
31
|
inclusiveEnd?: boolean;
|
|
21
32
|
}): boolean;
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
3
|
import { isValidUtc } from "../validate/index.js";
|
|
4
4
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
5
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
5
6
|
/**
|
|
6
7
|
* Return true when `value` is between `start` and `end` (inclusive by default).
|
|
7
8
|
*
|
|
8
9
|
* - Uses Temporal.Instant.compare for comparison.
|
|
9
10
|
* - Returns false if start > end or inputs are invalid.
|
|
10
|
-
* - Use options.inclusiveStart/inclusiveEnd to control boundaries.
|
|
11
11
|
*
|
|
12
12
|
* @param value ISO UTC datetime string to check
|
|
13
13
|
* @param start ISO UTC datetime string for range start
|
|
14
14
|
* @param end ISO UTC datetime string for range end
|
|
15
|
-
* @param options
|
|
15
|
+
* @param options Whether each boundary counts as inside the range
|
|
16
16
|
* @returns boolean indicating whether value is between start and end
|
|
17
17
|
*
|
|
18
18
|
* @example isBetweenUtc("2024-03-15T12:00:00Z", "2024-03-10T12:00:00Z", "2024-03-20T12:00:00Z") // true
|
|
@@ -28,8 +28,8 @@ export function isBetweenUtc(value, start, end, options) {
|
|
|
28
28
|
// reading of it gives `false`: ECMA-402 reads a boolean option through ToBoolean (null → false),
|
|
29
29
|
// and the house rule rejects an invalid member outright — neither yields `true`. So `null`
|
|
30
30
|
// behaves here exactly as `0` and `""` already do.
|
|
31
|
-
const inclusiveStart = options?.inclusiveStart
|
|
32
|
-
const inclusiveEnd = options?.inclusiveEnd
|
|
31
|
+
const inclusiveStart = optionOrDefault(options?.inclusiveStart, true);
|
|
32
|
+
const inclusiveEnd = optionOrDefault(options?.inclusiveEnd, true);
|
|
33
33
|
if (!isValidUtc(value) || !isValidUtc(start) || !isValidUtc(end)) {
|
|
34
34
|
return false;
|
|
35
35
|
}
|
|
@@ -4,22 +4,14 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
4
4
|
* Round a UTC datetime string to the specified unit.
|
|
5
5
|
*
|
|
6
6
|
* - Converts to Instant, rounds, converts back to UTC Instant string.
|
|
7
|
-
* - Supports: "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
|
|
8
|
-
* - Each unit is accepted in its singular or plural form ("hour" or "hours"), as Temporal's
|
|
9
|
-
* GetTemporalUnitValuedOption accepts both.
|
|
10
7
|
* - Day and larger units ("day", "week", "month", "year") return "". This is the Temporal spec, not
|
|
11
8
|
* a polyfill limitation: `Instant.prototype.round` validates `smallestUnit` as a time unit
|
|
12
9
|
* (ValidateTemporalUnitValue with ~time~), because an instant has no calendar or zone to define a
|
|
13
10
|
* day. Round a zoned value with `roundZoned` for a day boundary.
|
|
14
11
|
* - Wraps all Temporal calls in try-catch; returns "" on any error.
|
|
15
|
-
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
16
|
-
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
17
|
-
* hides the precision the unit asked for.
|
|
18
|
-
* - `fractionalSecondDigits` overrides that count outright, coarser or finer than the unit; an
|
|
19
|
-
* invalid value returns "".
|
|
20
12
|
*
|
|
21
13
|
* @param value ISO UTC datetime string
|
|
22
|
-
* @param options
|
|
14
|
+
* @param options What to round to, how, and the precision of the result
|
|
23
15
|
* @returns Rounded ISO UTC Instant string, or "" on invalid input
|
|
24
16
|
*
|
|
25
17
|
* @example roundUtc("2024-06-15T12:34:56Z", { smallestUnit: "hour" }) // "2024-06-15T13:00:00Z"
|
|
@@ -33,8 +25,33 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
33
25
|
* @example roundUtc("", { smallestUnit: "hour" }) // ""
|
|
34
26
|
*/
|
|
35
27
|
export declare function roundUtc(value: string, options: {
|
|
28
|
+
/**
|
|
29
|
+
* The unit to round to: `"hour"`, `"minute"`, `"second"`, `"millisecond"`, `"microsecond"` or
|
|
30
|
+
* `"nanosecond"`, singular or plural as Temporal's GetTemporalUnitValuedOption accepts both.
|
|
31
|
+
*/
|
|
36
32
|
smallestUnit: Temporal.SmallestUnit<"hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond">;
|
|
33
|
+
/**
|
|
34
|
+
* The multiple of `smallestUnit` to round to, such as 15 for quarter hours. It must divide a
|
|
35
|
+
* 24-hour day evenly (Temporal's `Instant.prototype.round`); any other value returns `""`.
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue `1`, Temporal's default.
|
|
38
|
+
*/
|
|
37
39
|
roundingIncrement?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Which multiple a value between two is rounded to. `"halfExpand"` picks the nearer one and
|
|
42
|
+
* sends a tie to the later instant; `"floor"` and `"trunc"` pick the earlier, `"ceil"` and
|
|
43
|
+
* `"expand"` the later, and the other `"half…"` modes differ only in how a tie breaks.
|
|
44
|
+
*
|
|
45
|
+
* @defaultValue `"halfExpand"`, Temporal's default.
|
|
46
|
+
*/
|
|
38
47
|
roundingMode?: Temporal.RoundingMode;
|
|
48
|
+
/**
|
|
49
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
50
|
+
* drop trailing zeros. It overrides the unit's own count, coarser or finer; an invalid value
|
|
51
|
+
* returns `""`.
|
|
52
|
+
*
|
|
53
|
+
* @defaultValue The digits `smallestUnit` names: `3` for `"millisecond"`, `6` for
|
|
54
|
+
* `"microsecond"`, `9` for `"nanosecond"` and `0` for any coarser unit.
|
|
55
|
+
*/
|
|
39
56
|
fractionalSecondDigits?: FractionalDigit;
|
|
40
57
|
}): string;
|
|
@@ -6,22 +6,14 @@ import { isValidUtc } from "../validate/isValidUtc.js";
|
|
|
6
6
|
* Round a UTC datetime string to the specified unit.
|
|
7
7
|
*
|
|
8
8
|
* - Converts to Instant, rounds, converts back to UTC Instant string.
|
|
9
|
-
* - Supports: "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
|
|
10
|
-
* - Each unit is accepted in its singular or plural form ("hour" or "hours"), as Temporal's
|
|
11
|
-
* GetTemporalUnitValuedOption accepts both.
|
|
12
9
|
* - Day and larger units ("day", "week", "month", "year") return "". This is the Temporal spec, not
|
|
13
10
|
* a polyfill limitation: `Instant.prototype.round` validates `smallestUnit` as a time unit
|
|
14
11
|
* (ValidateTemporalUnitValue with ~time~), because an instant has no calendar or zone to define a
|
|
15
12
|
* day. Round a zoned value with `roundZoned` for a day boundary.
|
|
16
13
|
* - Wraps all Temporal calls in try-catch; returns "" on any error.
|
|
17
|
-
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
18
|
-
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
19
|
-
* hides the precision the unit asked for.
|
|
20
|
-
* - `fractionalSecondDigits` overrides that count outright, coarser or finer than the unit; an
|
|
21
|
-
* invalid value returns "".
|
|
22
14
|
*
|
|
23
15
|
* @param value ISO UTC datetime string
|
|
24
|
-
* @param options
|
|
16
|
+
* @param options What to round to, how, and the precision of the result
|
|
25
17
|
* @returns Rounded ISO UTC Instant string, or "" on invalid input
|
|
26
18
|
*
|
|
27
19
|
* @example roundUtc("2024-06-15T12:34:56Z", { smallestUnit: "hour" }) // "2024-06-15T13:00:00Z"
|
|
@@ -39,9 +31,8 @@ export function roundUtc(value, options) {
|
|
|
39
31
|
if (!isObject(options))
|
|
40
32
|
return "";
|
|
41
33
|
const { roundingIncrement, roundingMode, fractionalSecondDigits } = options;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
: options.smallestUnit;
|
|
34
|
+
// One read (GetOption): resolveDateTimeUnit returns a value that is not a string unchanged.
|
|
35
|
+
const smallestUnit = resolveDateTimeUnit(options.smallestUnit);
|
|
45
36
|
// Temporal Instant.prototype.round: ValidateTemporalUnitValue(smallestUnit, ~time~)
|
|
46
37
|
if (!isValidUtc(value) || !isValidTimeUnit(smallestUnit))
|
|
47
38
|
return "";
|
|
@@ -9,26 +9,42 @@ import type { Overflow } from "../../types/index.js";
|
|
|
9
9
|
* `addUtc()` calls field-by-field — see `setDate`'s doc for why order-independent field
|
|
10
10
|
* resolution matters.
|
|
11
11
|
* - `fields` may set any of `year`, `month`, `monthCode`, `day`, `hour`, `minute`, `second`,
|
|
12
|
-
* `millisecond`, `microsecond
|
|
13
|
-
*
|
|
14
|
-
* - `
|
|
15
|
-
* `
|
|
16
|
-
*
|
|
12
|
+
* `millisecond`, `microsecond` and/or `nanosecond`; omitted fields keep their current value. An
|
|
13
|
+
* object with no field set, such as `{}` or `{ year: undefined }`, is a no-op.
|
|
14
|
+
* - Values are not converted: `monthCode` must be a string and every other field an integer number.
|
|
15
|
+
* `null`, a numeric string, a boolean or a fraction returns "", where Temporal would convert or
|
|
16
|
+
* truncate it. A bigint, `NaN` or an infinity returns "" too. A number too large for its
|
|
17
|
+
* field follows `overflow`. A month or day below 1, or a date outside Temporal's range, returns
|
|
18
|
+
* "".
|
|
19
|
+
* - An own key that is not one of these fields, such as a misspelt `yaer`, returns "". So does an
|
|
20
|
+
* era, an `offset`, or a `calendar` or `timeZone` property, whether own, inherited or a getter. A
|
|
21
|
+
* field is read with a property get, as Temporal reads it, so an inherited or getter field is
|
|
22
|
+
* set.
|
|
23
|
+
* - A Temporal date or time object returns "", as Temporal's `with` refuses one. One whose
|
|
24
|
+
* prototype has been replaced with `Object.prototype`, `null` or `Function.prototype` sets
|
|
25
|
+
* nothing instead.
|
|
17
26
|
* - There are no `disambiguation` or `offset` options (removed in 1.16.0): a UTC instant's wall
|
|
18
27
|
* clock is never ambiguous and its offset is always +00:00, so neither had anything to act on.
|
|
19
28
|
* - Returns "" for invalid input.
|
|
20
29
|
*
|
|
21
30
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
22
31
|
* @param fields Partial<Temporal.ZonedDateTimeLike> object (excluding calendar/timeZone/offset) specifying fields to set
|
|
23
|
-
* @param options
|
|
32
|
+
* @param options How an out-of-range result is handled
|
|
24
33
|
* @returns UTC Instant string with fields set, or "" on invalid input
|
|
25
34
|
*
|
|
26
35
|
* @example setUtc("2024-03-10T12:00:00Z", { hour: 9 }) // "2024-03-10T09:00:00Z"
|
|
27
36
|
* @example setUtc("2024-01-31T12:00:00Z", { month: 2 }) // "2024-02-29T12:00:00Z" (constrain clamps to the last valid day)
|
|
28
37
|
* @example setUtc("2024-01-31T12:00:00Z", { month: 2 }, { overflow: "reject" }) // ""
|
|
29
38
|
* @example setUtc("2024-03-10T12:00:00Z", {}) // "2024-03-10T12:00:00Z" (empty fields object is a no-op)
|
|
39
|
+
* @example setUtc("2024-03-10T12:00:00Z", { hour: "9" }) // "" (not converted)
|
|
30
40
|
* @example setUtc("invalid", { hour: 9 }) // ""
|
|
31
41
|
*/
|
|
32
|
-
export declare function setUtc(value: string, fields: Omit<Temporal.ZonedDateTimeLike, "calendar" | "timeZone" | "offset">, options?: {
|
|
42
|
+
export declare function setUtc(value: string, fields: Omit<Temporal.ZonedDateTimeLike, "calendar" | "timeZone" | "offset" | "era" | "eraYear">, options?: {
|
|
43
|
+
/**
|
|
44
|
+
* What to do when the result is not a real date. `"constrain"` clamps it to the last valid day,
|
|
45
|
+
* so `month: 2` on Jan 31 is Feb 29/28 (TC39 Temporal); `"reject"` returns `""`.
|
|
46
|
+
*
|
|
47
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
48
|
+
*/
|
|
33
49
|
overflow?: Overflow;
|
|
34
50
|
}): string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import { resolveOverflow } from "../../internal/index.js";
|
|
2
|
+
import { DATE_TIME_FIELDS, readSetFields, resolveOverflow, } from "../../internal/index.js";
|
|
3
3
|
import { isValidUtc } from "../validate/isValidUtc.js";
|
|
4
4
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
5
5
|
/**
|
|
@@ -11,24 +11,34 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
11
11
|
* `addUtc()` calls field-by-field — see `setDate`'s doc for why order-independent field
|
|
12
12
|
* resolution matters.
|
|
13
13
|
* - `fields` may set any of `year`, `month`, `monthCode`, `day`, `hour`, `minute`, `second`,
|
|
14
|
-
* `millisecond`, `microsecond
|
|
15
|
-
*
|
|
16
|
-
* - `
|
|
17
|
-
* `
|
|
18
|
-
*
|
|
14
|
+
* `millisecond`, `microsecond` and/or `nanosecond`; omitted fields keep their current value. An
|
|
15
|
+
* object with no field set, such as `{}` or `{ year: undefined }`, is a no-op.
|
|
16
|
+
* - Values are not converted: `monthCode` must be a string and every other field an integer number.
|
|
17
|
+
* `null`, a numeric string, a boolean or a fraction returns "", where Temporal would convert or
|
|
18
|
+
* truncate it. A bigint, `NaN` or an infinity returns "" too. A number too large for its
|
|
19
|
+
* field follows `overflow`. A month or day below 1, or a date outside Temporal's range, returns
|
|
20
|
+
* "".
|
|
21
|
+
* - An own key that is not one of these fields, such as a misspelt `yaer`, returns "". So does an
|
|
22
|
+
* era, an `offset`, or a `calendar` or `timeZone` property, whether own, inherited or a getter. A
|
|
23
|
+
* field is read with a property get, as Temporal reads it, so an inherited or getter field is
|
|
24
|
+
* set.
|
|
25
|
+
* - A Temporal date or time object returns "", as Temporal's `with` refuses one. One whose
|
|
26
|
+
* prototype has been replaced with `Object.prototype`, `null` or `Function.prototype` sets
|
|
27
|
+
* nothing instead.
|
|
19
28
|
* - There are no `disambiguation` or `offset` options (removed in 1.16.0): a UTC instant's wall
|
|
20
29
|
* clock is never ambiguous and its offset is always +00:00, so neither had anything to act on.
|
|
21
30
|
* - Returns "" for invalid input.
|
|
22
31
|
*
|
|
23
32
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
24
33
|
* @param fields Partial<Temporal.ZonedDateTimeLike> object (excluding calendar/timeZone/offset) specifying fields to set
|
|
25
|
-
* @param options
|
|
34
|
+
* @param options How an out-of-range result is handled
|
|
26
35
|
* @returns UTC Instant string with fields set, or "" on invalid input
|
|
27
36
|
*
|
|
28
37
|
* @example setUtc("2024-03-10T12:00:00Z", { hour: 9 }) // "2024-03-10T09:00:00Z"
|
|
29
38
|
* @example setUtc("2024-01-31T12:00:00Z", { month: 2 }) // "2024-02-29T12:00:00Z" (constrain clamps to the last valid day)
|
|
30
39
|
* @example setUtc("2024-01-31T12:00:00Z", { month: 2 }, { overflow: "reject" }) // ""
|
|
31
40
|
* @example setUtc("2024-03-10T12:00:00Z", {}) // "2024-03-10T12:00:00Z" (empty fields object is a no-op)
|
|
41
|
+
* @example setUtc("2024-03-10T12:00:00Z", { hour: "9" }) // "" (not converted)
|
|
32
42
|
* @example setUtc("invalid", { hour: 9 }) // ""
|
|
33
43
|
*/
|
|
34
44
|
export function setUtc(value, fields, options) {
|
|
@@ -42,11 +52,12 @@ export function setUtc(value, fields, options) {
|
|
|
42
52
|
try {
|
|
43
53
|
const instant = Temporal.Instant.from(value);
|
|
44
54
|
const zoned = instant.toZonedDateTimeISO("UTC");
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
55
|
+
const set = readSetFields(fields, DATE_TIME_FIELDS);
|
|
56
|
+
if (set === null)
|
|
57
|
+
return "";
|
|
58
|
+
// Only the values readSetFields checked reach Temporal. An empty result sets nothing: a
|
|
59
|
+
// no-op here, where Temporal's with() would throw.
|
|
60
|
+
const result = Object.keys(set).length === 0 ? zoned : zoned.with(set, { overflow });
|
|
50
61
|
return result.toInstant().toString();
|
|
51
62
|
}
|
|
52
63
|
catch {
|
|
@@ -5,12 +5,11 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
5
5
|
*
|
|
6
6
|
* - Converts to ZonedDateTime, sets to start of unit, converts back to Instant.
|
|
7
7
|
* - Supports: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", each also in its plural form (`"days"`), as Temporal accepts.
|
|
8
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
9
8
|
* - Returns "" for invalid input.
|
|
10
9
|
*
|
|
11
10
|
* @param value ISO UTC datetime string
|
|
12
11
|
* @param unit date or time unit, singular or plural, to specify the start
|
|
13
|
-
* @param options
|
|
12
|
+
* @param options Where a week starts, and the precision of the result
|
|
14
13
|
* @returns UTC Instant string representing the start of the unit, or "" on invalid input
|
|
15
14
|
*
|
|
16
15
|
* @example startOfUtc("2024-03-15T14:30:45Z", "year") // "2024-01-01T00:00:00Z"
|
|
@@ -19,6 +18,20 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
19
18
|
* @example startOfUtc("invalid", "year") // ""
|
|
20
19
|
*/
|
|
21
20
|
export declare function startOfUtc(value: string, unit: Temporal.SmallestUnit<Temporal.DateTimeUnit>, options?: {
|
|
21
|
+
/**
|
|
22
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
23
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
24
|
+
* `""`, whatever the unit.
|
|
25
|
+
*
|
|
26
|
+
* @defaultValue `"monday"`
|
|
27
|
+
*/
|
|
22
28
|
weekStartsOn?: "monday" | "sunday";
|
|
29
|
+
/**
|
|
30
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
31
|
+
* drop trailing zeros. Fewer digits than `unit` names truncate, as Temporal's `toString` does.
|
|
32
|
+
*
|
|
33
|
+
* @defaultValue The digits `unit` names: `3` for `"millisecond"`, `6` for `"microsecond"`, `9`
|
|
34
|
+
* for `"nanosecond"` and `0` for any coarser unit.
|
|
35
|
+
*/
|
|
23
36
|
fractionalSecondDigits?: FractionalDigit;
|
|
24
37
|
}): string;
|
|
@@ -5,12 +5,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
5
5
|
*
|
|
6
6
|
* - Converts to ZonedDateTime, sets to start of unit, converts back to Instant.
|
|
7
7
|
* - Supports: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", each also in its plural form (`"days"`), as Temporal accepts.
|
|
8
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
9
8
|
* - Returns "" for invalid input.
|
|
10
9
|
*
|
|
11
10
|
* @param value ISO UTC datetime string
|
|
12
11
|
* @param unit date or time unit, singular or plural, to specify the start
|
|
13
|
-
* @param options
|
|
12
|
+
* @param options Where a week starts, and the precision of the result
|
|
14
13
|
* @returns UTC Instant string representing the start of the unit, or "" on invalid input
|
|
15
14
|
*
|
|
16
15
|
* @example startOfUtc("2024-03-15T14:30:45Z", "year") // "2024-01-01T00:00:00Z"
|
|
@@ -6,12 +6,9 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
6
6
|
* - Validates duration units and values.
|
|
7
7
|
* - Returns "" for invalid input.
|
|
8
8
|
*
|
|
9
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
10
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
11
|
-
*
|
|
12
9
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
13
10
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
14
|
-
* @param options
|
|
11
|
+
* @param options How an out-of-range result is handled
|
|
15
12
|
* @returns UTC Instant string after subtraction, or "" on invalid input
|
|
16
13
|
*
|
|
17
14
|
* @example subtractUtc("2024-03-15T12:00:00Z", { days: 5 }) // "2024-03-10T12:00:00Z"
|
|
@@ -19,5 +16,11 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
19
16
|
* @example subtractUtc("invalid", { days: 5 }) // ""
|
|
20
17
|
*/
|
|
21
18
|
export declare function subtractUtc(value: string, units: Partial<Record<DateTimeDurationUnit, number>>, options?: {
|
|
19
|
+
/**
|
|
20
|
+
* What to do when the result is not a real date. `"constrain"` clamps it to the last valid day,
|
|
21
|
+
* so Mar 31 − 1 month is Feb 29/28 (TC39 Temporal); `"reject"` returns `""`.
|
|
22
|
+
*
|
|
23
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
24
|
+
*/
|
|
22
25
|
overflow?: Overflow;
|
|
23
26
|
}): string;
|
|
@@ -1,6 +1,6 @@
|
|
|
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 { readDurationUnits, resolveOverflow } from "../../internal/index.js";
|
|
4
4
|
import { isValidDateTimeDurationUnit } from "../../plain/validate/index.js";
|
|
5
5
|
import { isValidUtc } from "../validate/index.js";
|
|
6
6
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
@@ -11,12 +11,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
11
11
|
* - Validates duration units and values.
|
|
12
12
|
* - Returns "" for invalid input.
|
|
13
13
|
*
|
|
14
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
15
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
16
|
-
*
|
|
17
14
|
* @param value ISO UTC datetime string (e.g. "2024-03-10T12:00:00Z")
|
|
18
15
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
19
|
-
* @param options
|
|
16
|
+
* @param options How an out-of-range result is handled
|
|
20
17
|
* @returns UTC Instant string after subtraction, or "" on invalid input
|
|
21
18
|
*
|
|
22
19
|
* @example subtractUtc("2024-03-15T12:00:00Z", { days: 5 }) // "2024-03-10T12:00:00Z"
|
|
@@ -29,17 +26,14 @@ export function subtractUtc(value, units, options) {
|
|
|
29
26
|
return "";
|
|
30
27
|
}
|
|
31
28
|
const validUtc = isValidUtc(value);
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
Object.keys(units).every(isValidDateTimeDurationUnit);
|
|
35
|
-
const validAmounts = validUnits && Object.values(units).every(isValidAmount);
|
|
36
|
-
if (!validUtc || !validUnits || !validAmounts) {
|
|
29
|
+
const amounts = readDurationUnits(units, isValidDateTimeDurationUnit);
|
|
30
|
+
if (!validUtc || amounts === null) {
|
|
37
31
|
return "";
|
|
38
32
|
}
|
|
39
33
|
try {
|
|
40
34
|
const instant = Temporal.Instant.from(value);
|
|
41
35
|
const zoned = instant.toZonedDateTimeISO("UTC");
|
|
42
|
-
const result = zoned.subtract(
|
|
36
|
+
const result = zoned.subtract(amounts, {
|
|
43
37
|
overflow: resolveOverflow(options?.overflow),
|
|
44
38
|
});
|
|
45
39
|
return result.toInstant().toString();
|
|
@@ -7,13 +7,12 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
7
7
|
* unambiguous).
|
|
8
8
|
* - `"month"` requires the same month AND year, matching `areDateTimesEqualBy`.
|
|
9
9
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
10
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
11
10
|
* - Returns false for an unsupported unit or invalid input.
|
|
12
11
|
* - Takes no `fractionalSecondDigits`: equality compares full-precision `unit` boundaries, and output
|
|
13
12
|
* digits cannot change which bucket a value is in. That ignored option was removed in 1.16.0; to
|
|
14
13
|
* compare more coarsely, pass a coarser unit (0 digits is `"second"`, 3 is `"millisecond"`).
|
|
15
14
|
*
|
|
16
|
-
* Mapping from date-fns
|
|
15
|
+
* Mapping from date-fns:
|
|
17
16
|
* - `isSameDay(a, b)` → `areUtcEqualBy(a, b, "day")`
|
|
18
17
|
* - `isSameMonth(a, b)` → `areUtcEqualBy(a, b, "month")`
|
|
19
18
|
* - `isSameYear(a, b)` → `areUtcEqualBy(a, b, "year")`
|
|
@@ -21,7 +20,7 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
21
20
|
* @param value1 first UTC ISO datetime string
|
|
22
21
|
* @param value2 second UTC ISO datetime string
|
|
23
22
|
* @param unit date or time unit, singular or plural, to compare by
|
|
24
|
-
* @param options
|
|
23
|
+
* @param options Where a week starts
|
|
25
24
|
* @returns true if both values share the same start-of-unit boundary, false on an unsupported unit or invalid input
|
|
26
25
|
*
|
|
27
26
|
* @example areUtcEqualBy("2024-03-15T02:00:00Z", "2024-03-15T22:00:00Z", "day") // true
|
|
@@ -31,5 +30,12 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
31
30
|
* @example areUtcEqualBy("invalid", "2024-03-15T02:00:00Z", "day") // false
|
|
32
31
|
*/
|
|
33
32
|
export declare function areUtcEqualBy(value1: string, value2: string, unit: Temporal.SmallestUnit<Temporal.DateTimeUnit>, options?: {
|
|
33
|
+
/**
|
|
34
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
35
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
36
|
+
* false, whatever the unit.
|
|
37
|
+
*
|
|
38
|
+
* @defaultValue `"monday"`
|
|
39
|
+
*/
|
|
34
40
|
weekStartsOn?: "monday" | "sunday";
|
|
35
41
|
}): boolean;
|