@northguild/gmt 1.17.0 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -2480
- package/dist/calendar/calculate/bucketRange.d.ts +12 -4
- package/dist/calendar/calculate/bucketRange.js +20 -63
- package/dist/calendar/calculate/floorToZone.d.ts +14 -4
- package/dist/calendar/calculate/floorToZone.js +18 -9
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +21 -8
- package/dist/calendar/calculate/getFiscalPeriod.js +9 -8
- package/dist/calendar/calculate/getIsoWeekDate.d.ts +10 -5
- package/dist/calendar/calculate/getIsoWeekDate.js +1 -5
- package/dist/calendar/calculate/getOrdinalDate.d.ts +10 -3
- package/dist/calendar/calculate/getOrdinalDate.js +2 -3
- package/dist/calendar/calculate/getQuarter.d.ts +21 -9
- package/dist/calendar/calculate/getQuarter.js +8 -12
- package/dist/calendar/hours/addOperatingTime.d.ts +59 -0
- package/dist/calendar/hours/addOperatingTime.js +65 -0
- package/dist/calendar/hours/index.d.ts +7 -0
- package/dist/calendar/hours/index.js +7 -0
- package/dist/calendar/hours/isOpenAt.d.ts +45 -0
- package/dist/calendar/hours/isOpenAt.js +50 -0
- package/dist/calendar/hours/nextCloseAt.d.ts +55 -0
- package/dist/calendar/hours/nextCloseAt.js +57 -0
- package/dist/calendar/hours/nextOpenAt.d.ts +51 -0
- package/dist/calendar/hours/nextOpenAt.js +53 -0
- package/dist/calendar/hours/operatingIntervals.d.ts +48 -0
- package/dist/calendar/hours/operatingIntervals.js +57 -0
- package/dist/calendar/hours/operatingTimeBetween.d.ts +45 -0
- package/dist/calendar/hours/operatingTimeBetween.js +54 -0
- package/dist/calendar/hours/recurringWindows.d.ts +68 -0
- package/dist/calendar/hours/recurringWindows.js +88 -0
- package/dist/calendar/index.d.ts +1 -0
- package/dist/calendar/index.js +1 -0
- package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
- package/dist/duration/calculate/durationFromUnits.js +67 -0
- package/dist/duration/calculate/getDurationUnit.d.ts +2 -2
- package/dist/duration/calculate/getDurationUnit.js +2 -2
- package/dist/duration/calculate/index.d.ts +3 -1
- package/dist/duration/calculate/index.js +3 -1
- package/dist/duration/calculate/negateDuration.d.ts +1 -1
- package/dist/duration/calculate/negateDuration.js +1 -1
- package/dist/duration/calculate/totalDuration.d.ts +73 -0
- package/dist/duration/calculate/{durationAs.js → totalDuration.js} +29 -27
- package/dist/duration/calculate/totalUnits.d.ts +49 -0
- package/dist/duration/calculate/totalUnits.js +73 -0
- package/dist/duration/compare/compareDurations.d.ts +13 -7
- package/dist/duration/compare/compareDurations.js +4 -7
- package/dist/duration/format/formatDuration.d.ts +16 -4
- package/dist/duration/format/formatDuration.js +4 -5
- package/dist/duration/normalize/normalizeDuration.d.ts +39 -14
- package/dist/duration/normalize/normalizeDuration.js +6 -15
- package/dist/duration/parse/parseDuration.d.ts +21 -3
- package/dist/duration/parse/parseDuration.js +1 -3
- package/dist/duty/calculate/dutyDayFor.d.ts +38 -0
- package/dist/duty/calculate/dutyDayFor.js +71 -0
- package/dist/duty/calculate/dutyTotals.d.ts +24 -0
- package/dist/duty/calculate/dutyTotals.js +41 -0
- package/dist/duty/calculate/dutyViolations.d.ts +74 -0
- package/dist/duty/calculate/dutyViolations.js +65 -0
- package/dist/duty/calculate/evaluateDutyLog.d.ts +77 -0
- package/dist/duty/calculate/evaluateDutyLog.js +75 -0
- package/dist/duty/calculate/index.d.ts +7 -0
- package/dist/duty/calculate/index.js +7 -0
- package/dist/duty/calculate/longestRun.d.ts +28 -0
- package/dist/duty/calculate/longestRun.js +54 -0
- package/dist/duty/calculate/qualifyingRestPairs.d.ts +37 -0
- package/dist/duty/calculate/qualifyingRestPairs.js +58 -0
- package/dist/duty/calculate/qualifyingRests.d.ts +27 -0
- package/dist/duty/calculate/qualifyingRests.js +49 -0
- package/dist/duty/index.d.ts +3 -0
- package/dist/duty/index.js +4 -0
- package/dist/duty/validate/index.d.ts +1 -0
- package/dist/duty/validate/index.js +1 -0
- package/dist/duty/validate/isValidDutyLog.d.ts +24 -0
- package/dist/duty/validate/isValidDutyLog.js +34 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/instant/convert/classifyLocal.d.ts +5 -1
- package/dist/instant/convert/classifyLocal.js +16 -6
- package/dist/instant/convert/fromOffsetInstant.d.ts +7 -1
- package/dist/instant/convert/fromOffsetInstant.js +9 -2
- package/dist/instant/convert/resolveLocal.d.ts +18 -8
- package/dist/instant/convert/resolveLocal.js +21 -17
- package/dist/instant/convert/toOffsetInstant.d.ts +33 -16
- package/dist/instant/convert/toOffsetInstant.js +28 -13
- package/dist/instant/index.d.ts +1 -0
- package/dist/instant/index.js +1 -0
- package/dist/instant/validate/index.d.ts +1 -0
- package/dist/instant/validate/index.js +1 -0
- package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
- package/dist/instant/validate/isValidUtcOffset.js +35 -0
- package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
- package/dist/intermodal/calculate/billingTimeline.js +2 -2
- package/dist/intermodal/calculate/chargeableDays.d.ts +19 -11
- package/dist/intermodal/calculate/chargeableDays.js +13 -10
- package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
- package/dist/intermodal/calculate/demurrageClock.js +7 -7
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +12 -4
- package/dist/intermodal/calculate/freeTimeExpiry.js +19 -8
- package/dist/intermodal/calculate/index.d.ts +1 -0
- package/dist/intermodal/calculate/index.js +1 -0
- package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
- package/dist/intermodal/calculate/multimodalETA.js +145 -0
- package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
- package/dist/intermodal/format/bolTimestamp.js +78 -0
- package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
- package/dist/intermodal/format/formatEdifactDate.js +42 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
- package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
- package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
- package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactTime.js +43 -0
- package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
- package/dist/intermodal/format/formatEpcisEvent.js +79 -0
- package/dist/intermodal/format/formatX12Date.d.ts +35 -0
- package/dist/intermodal/format/formatX12Date.js +43 -0
- package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
- package/dist/intermodal/format/formatX12DateRange.js +45 -0
- package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
- package/dist/intermodal/format/formatX12DateTime.js +47 -0
- package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
- package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
- package/dist/intermodal/format/formatX12Time.d.ts +42 -0
- package/dist/intermodal/format/formatX12Time.js +50 -0
- package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
- package/dist/intermodal/format/formatX12TimeElement.js +54 -0
- package/dist/intermodal/format/index.d.ts +14 -0
- package/dist/intermodal/format/index.js +14 -0
- package/dist/intermodal/index.d.ts +3 -0
- package/dist/intermodal/index.js +3 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
- package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
- package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
- package/dist/intermodal/parse/index.d.ts +18 -0
- package/dist/intermodal/parse/index.js +18 -0
- package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactDate.js +45 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
- package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactTime.js +45 -0
- package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
- package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
- package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
- package/dist/intermodal/parse/parseX12Date.js +47 -0
- package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
- package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
- package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
- package/dist/intermodal/parse/parseX12DateRange.js +52 -0
- package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
- package/dist/intermodal/parse/parseX12DateTime.js +53 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
- package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
- package/dist/intermodal/parse/parseX12Time.js +77 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
- package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
- package/dist/intermodal/validate/index.d.ts +18 -0
- package/dist/intermodal/validate/index.js +18 -0
- package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
- package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
- package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
- package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
- package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
- package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
- package/dist/intermodal/validate/isValidX12Date.js +30 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
- package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
- package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
- package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
- package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12Time.js +40 -0
- package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
- package/dist/internal/businessCalendar.d.ts +5 -0
- package/dist/internal/businessCalendar.js +9 -10
- package/dist/internal/cycleFieldValue.d.ts +6 -4
- package/dist/internal/cycleFieldValue.js +6 -4
- package/dist/internal/daylightTime.d.ts +33 -0
- package/dist/internal/daylightTime.js +164 -0
- package/dist/internal/durationUntilString.js +4 -3
- package/dist/internal/dutyEngine.d.ts +125 -0
- package/dist/internal/dutyEngine.js +1746 -0
- package/dist/internal/dutyLog.d.ts +27 -0
- package/dist/internal/dutyLog.js +47 -0
- package/dist/internal/dutyPeriods.d.ts +135 -0
- package/dist/internal/dutyPeriods.js +369 -0
- package/dist/internal/dutyRules.d.ts +197 -0
- package/dist/internal/dutyRules.js +484 -0
- package/dist/internal/ediDateTimeFields.d.ts +97 -0
- package/dist/internal/ediDateTimeFields.js +288 -0
- package/dist/internal/ediDateTimeWriter.d.ts +92 -0
- package/dist/internal/ediDateTimeWriter.js +298 -0
- package/dist/internal/ediGrammar.d.ts +158 -0
- package/dist/internal/ediGrammar.js +384 -0
- package/dist/internal/englishCalendarNames.d.ts +3 -1
- package/dist/internal/englishCalendarNames.js +4 -3
- package/dist/internal/epochNanoseconds.d.ts +2 -0
- package/dist/internal/epochNanoseconds.js +2 -0
- package/dist/internal/exactDuration.d.ts +37 -0
- package/dist/internal/exactDuration.js +64 -0
- package/dist/internal/exactMoment.d.ts +72 -0
- package/dist/internal/exactMoment.js +114 -0
- package/dist/internal/fiscalCalendar.d.ts +4 -3
- package/dist/internal/fiscalCalendar.js +4 -3
- package/dist/internal/formatCalendarDays.d.ts +2 -2
- package/dist/internal/formatRelativeDuration.d.ts +21 -1
- package/dist/internal/formatRelativeDuration.js +47 -7
- package/dist/internal/freeTimeLedger.d.ts +5 -0
- package/dist/internal/freeTimeLedger.js +11 -2
- package/dist/internal/index.d.ts +12 -4
- package/dist/internal/index.js +16 -4
- package/dist/internal/instantFormatOptions.js +2 -1
- package/dist/internal/instantNanoseconds.d.ts +75 -9
- package/dist/internal/instantNanoseconds.js +192 -11
- package/dist/internal/intervalNanoseconds.js +2 -1
- package/dist/internal/isObject.d.ts +13 -6
- package/dist/internal/isObject.js +14 -7
- package/dist/internal/isoYearString.d.ts +21 -0
- package/dist/internal/isoYearString.js +27 -0
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/maxPieces.js +2 -1
- package/dist/internal/monthGridWeekRow.d.ts +2 -1
- package/dist/internal/monthGridWeekRow.js +2 -1
- package/dist/internal/normalizeTimeZone.d.ts +5 -2
- package/dist/internal/normalizeTimeZone.js +5 -2
- package/dist/internal/operatingSchedule.d.ts +138 -0
- package/dist/internal/operatingSchedule.js +756 -0
- package/dist/internal/optionOrDefault.d.ts +18 -0
- package/dist/internal/optionOrDefault.js +20 -0
- package/dist/internal/patternToken.d.ts +12 -5
- package/dist/internal/patternToken.js +59 -25
- package/dist/internal/plainDateUntil.js +10 -6
- package/dist/internal/punctuality.d.ts +38 -0
- package/dist/internal/punctuality.js +59 -0
- package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
- package/dist/internal/readDateTimeFormatOptions.js +93 -0
- package/dist/internal/readDurationUnits.d.ts +34 -0
- package/dist/internal/readDurationUnits.js +78 -0
- package/dist/internal/readSetFields.d.ts +50 -0
- package/dist/internal/readSetFields.js +179 -0
- package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
- package/dist/internal/resolveDurationRelativeTo.js +11 -1
- package/dist/internal/resolveRelativeRounding.d.ts +17 -6
- package/dist/internal/resolveRelativeRounding.js +27 -7
- package/dist/internal/resolveRelativeUnit.d.ts +30 -0
- package/dist/internal/resolveRelativeUnit.js +40 -0
- package/dist/internal/resolveUnixIntervalPair.d.ts +8 -2
- package/dist/internal/resolveUnixIntervalPair.js +11 -7
- package/dist/internal/splitStep.d.ts +24 -1
- package/dist/internal/splitStep.js +34 -2
- package/dist/internal/startOrEndOfUnix.d.ts +2 -1
- package/dist/internal/startOrEndOfUnix.js +9 -6
- package/dist/internal/startOrEndOfZoned.js +2 -3
- package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
- package/dist/internal/temporalCompat/capabilities.js +35 -3
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/repros.d.ts +1 -1
- package/dist/internal/temporalCompat/repros.js +157 -0
- package/dist/internal/timestampEvents.d.ts +32 -0
- package/dist/internal/timestampEvents.js +76 -0
- package/dist/internal/twoDigitYear.d.ts +19 -0
- package/dist/internal/twoDigitYear.js +22 -0
- package/dist/internal/unixEpochValue.js +3 -2
- package/dist/internal/unixWallClock.d.ts +24 -0
- package/dist/internal/unixWallClock.js +35 -0
- package/dist/internal/utcWallClock.d.ts +20 -0
- package/dist/internal/utcWallClock.js +32 -0
- package/dist/internal/yearWindowStart.d.ts +28 -0
- package/dist/internal/yearWindowStart.js +52 -0
- package/dist/internal/zoneBucketCap.d.ts +18 -0
- package/dist/internal/zoneBucketCap.js +64 -0
- package/dist/internal/zoneFrame.d.ts +180 -0
- package/dist/internal/zoneFrame.js +221 -0
- package/dist/internal/zonedBucket.js +8 -6
- package/dist/internal/zonedLocalDates.js +1 -1
- package/dist/internal/zonedNowUnitValue.d.ts +7 -4
- package/dist/internal/zonedNowUnitValue.js +8 -4
- package/dist/internal/zonedTransitionSearch.d.ts +27 -0
- package/dist/internal/zonedTransitionSearch.js +218 -0
- package/dist/internal/zonedWallClock.d.ts +21 -7
- package/dist/internal/zonedWallClock.js +87 -18
- package/dist/internal/zonedWallClockDifference.js +4 -4
- package/dist/internal/zonedWallClockOperations.d.ts +31 -15
- package/dist/internal/zonedWallClockOperations.js +93 -43
- package/dist/interval/validate/isValidInterval.d.ts +6 -3
- package/dist/interval/validate/isValidInterval.js +6 -3
- package/dist/plain/calculate/addDate.d.ts +11 -8
- package/dist/plain/calculate/addDate.js +9 -15
- package/dist/plain/calculate/addDateTime.d.ts +7 -4
- package/dist/plain/calculate/addDateTime.js +5 -11
- package/dist/plain/calculate/addTime.js +4 -7
- package/dist/plain/calculate/cycleDate.d.ts +16 -7
- package/dist/plain/calculate/cycleDate.js +3 -7
- package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
- package/dist/plain/calculate/cycleDateTime.js +1 -4
- package/dist/plain/calculate/cycleTime.d.ts +10 -5
- package/dist/plain/calculate/cycleTime.js +3 -5
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDate.js +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.js +1 -1
- package/dist/plain/calculate/diffDateTime.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.js +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
- package/dist/plain/calculate/diffTime.d.ts +1 -1
- package/dist/plain/calculate/diffTime.js +1 -1
- package/dist/plain/calculate/endOfDate.d.ts +8 -3
- package/dist/plain/calculate/endOfDate.js +1 -3
- package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
- package/dist/plain/calculate/endOfDateTime.js +1 -5
- package/dist/plain/calculate/endOfTime.d.ts +9 -3
- package/dist/plain/calculate/endOfTime.js +1 -2
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
- package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
- package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
- package/dist/plain/calculate/getWeekOfMonth.js +7 -4
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
- package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
- package/dist/plain/calculate/getWeeksInMonth.js +5 -2
- package/dist/plain/calculate/nextWeekday.d.ts +7 -3
- package/dist/plain/calculate/nextWeekday.js +1 -3
- package/dist/plain/calculate/previousWeekday.d.ts +7 -3
- package/dist/plain/calculate/previousWeekday.js +1 -3
- package/dist/plain/calculate/roundDate.d.ts +20 -7
- package/dist/plain/calculate/roundDate.js +3 -10
- package/dist/plain/calculate/roundDateTime.d.ts +22 -8
- package/dist/plain/calculate/roundDateTime.js +3 -11
- package/dist/plain/calculate/roundTime.d.ts +20 -4
- package/dist/plain/calculate/roundTime.js +3 -7
- package/dist/plain/calculate/setDate.d.ts +27 -8
- package/dist/plain/calculate/setDate.js +28 -12
- package/dist/plain/calculate/setDateTime.d.ts +23 -8
- package/dist/plain/calculate/setDateTime.js +23 -12
- package/dist/plain/calculate/setTime.d.ts +23 -7
- package/dist/plain/calculate/setTime.js +25 -12
- package/dist/plain/calculate/startOfDate.d.ts +8 -2
- package/dist/plain/calculate/startOfDate.js +1 -2
- package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
- package/dist/plain/calculate/startOfDateTime.js +1 -2
- package/dist/plain/calculate/startOfTime.d.ts +9 -2
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractDate.d.ts +7 -4
- package/dist/plain/calculate/subtractDate.js +5 -11
- package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
- package/dist/plain/calculate/subtractDateTime.js +5 -11
- package/dist/plain/calculate/subtractTime.js +4 -7
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
- package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
- package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
- package/dist/plain/compare/areDatesEqualBy.js +8 -6
- package/dist/plain/compare/isBetweenDate.d.ts +13 -2
- package/dist/plain/compare/isBetweenDate.js +4 -4
- package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenDateTime.js +4 -4
- package/dist/plain/compare/isBetweenTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenTime.js +4 -4
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +1 -1
- package/dist/plain/compare/isThisUnit.js +1 -1
- package/dist/plain/format/formatCalendar.d.ts +21 -14
- package/dist/plain/format/formatCalendar.js +23 -17
- package/dist/plain/format/formatDate.js +5 -3
- package/dist/plain/format/formatDateRange.js +4 -2
- package/dist/plain/format/formatDateTime.js +4 -2
- package/dist/plain/format/formatDateTimeRange.js +4 -2
- package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
- package/dist/plain/format/formatDateTimeToParts.js +10 -6
- package/dist/plain/format/formatDateToParts.d.ts +13 -2
- package/dist/plain/format/formatDateToParts.js +8 -4
- package/dist/plain/format/formatRelativeDate.d.ts +16 -3
- package/dist/plain/format/formatRelativeDate.js +28 -16
- package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeDateTime.js +10 -6
- package/dist/plain/format/formatRelativeTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeTime.js +23 -14
- package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
- package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +7 -7
- package/dist/plain/format/formatTime.js +4 -2
- package/dist/plain/format/index.d.ts +1 -1
- package/dist/plain/format/index.js +1 -1
- package/dist/plain/get/getNowUnit.d.ts +2 -0
- package/dist/plain/get/getNowUnit.js +2 -0
- package/dist/plain/get/getYear.d.ts +2 -0
- package/dist/plain/get/getYear.js +4 -3
- package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
- package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDate.js +1 -3
- package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
- package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
- package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDate.js +2 -0
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
- package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtTime.js +2 -0
- package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
- package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.js +2 -2
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDateTime.js +2 -2
- package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllTime.js +2 -2
- package/dist/plain/interval/intervalXorDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.js +2 -2
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDateTime.js +2 -2
- package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsTime.js +2 -2
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
- package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
- package/dist/plain/map/mapDatesInRange.d.ts +8 -4
- package/dist/plain/map/mapDatesInRange.js +1 -4
- package/dist/plain/parse/index.d.ts +1 -1
- package/dist/plain/parse/index.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +25 -9
- package/dist/plain/parse/parseDateTimeWithPattern.js +29 -11
- package/dist/plain/parse/parseDateWithPattern.d.ts +26 -9
- package/dist/plain/parse/parseDateWithPattern.js +30 -11
- package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
- package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +8 -8
- package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseTimeWithPattern.js +11 -7
- package/dist/plain/parse/parseUnitFromDate.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDate.js +8 -4
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +8 -4
- package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDate.js +2 -6
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
- package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
- package/dist/plain/parse/parseYearFromDate.js +7 -3
- package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
- package/dist/plain/parse/parseYearFromDateTime.js +6 -3
- package/dist/plain/validate/index.d.ts +1 -0
- package/dist/plain/validate/index.js +1 -0
- package/dist/plain/validate/isValidDateRange.d.ts +19 -4
- package/dist/plain/validate/isValidDateRange.js +1 -4
- package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidDateTimeRange.js +2 -5
- package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
- package/dist/plain/validate/isValidSqlDateTime.js +36 -0
- package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidTimeRange.js +2 -5
- package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
- package/dist/precision/convert/fromExcelSerial.js +4 -5
- package/dist/precision/convert/fromNanoseconds.d.ts +9 -3
- package/dist/precision/convert/fromNanoseconds.js +9 -3
- package/dist/precision/convert/toExcelSerial.d.ts +9 -3
- package/dist/precision/convert/toExcelSerial.js +3 -4
- package/dist/precision/convert/toNanoseconds.d.ts +11 -6
- package/dist/precision/convert/toNanoseconds.js +11 -6
- package/dist/precision/validate/isValidInstant.d.ts +12 -3
- package/dist/precision/validate/isValidInstant.js +12 -3
- package/dist/regex/epcis.d.ts +60 -0
- package/dist/regex/epcis.js +60 -0
- package/dist/regex/http-date.d.ts +6 -4
- package/dist/regex/http-date.js +6 -4
- package/dist/regex/index.d.ts +1 -0
- package/dist/regex/index.js +1 -0
- package/dist/regex/rfc-2822.d.ts +2 -0
- package/dist/regex/rfc-2822.js +2 -0
- package/dist/regex/rfc-3339.d.ts +3 -1
- package/dist/regex/rfc-3339.js +3 -1
- package/dist/regex/sql-date-time.d.ts +2 -1
- package/dist/regex/sql-date-time.js +2 -1
- package/dist/regex/time-zone-like.d.ts +3 -2
- package/dist/regex/time-zone-like.js +3 -2
- package/dist/regex/utc-offset.d.ts +2 -1
- package/dist/regex/utc-offset.js +2 -1
- package/dist/span/calculate/spanMs.d.ts +10 -4
- package/dist/span/calculate/spanMs.js +10 -4
- package/dist/span/calculate/spanNs.d.ts +10 -4
- package/dist/span/calculate/spanNs.js +10 -4
- package/dist/span/validate/isValidSpan.d.ts +8 -3
- package/dist/span/validate/isValidSpan.js +8 -3
- package/dist/transport/calculate/bestAvailable.d.ts +47 -0
- package/dist/transport/calculate/bestAvailable.js +76 -0
- package/dist/transport/calculate/crossingTime.d.ts +63 -0
- package/dist/transport/calculate/crossingTime.js +81 -0
- package/dist/transport/calculate/cutoffAt.d.ts +95 -0
- package/dist/transport/calculate/cutoffAt.js +211 -0
- package/dist/transport/calculate/cutoffSchedule.d.ts +75 -0
- package/dist/transport/calculate/cutoffSchedule.js +73 -0
- package/dist/transport/calculate/dwellTime.d.ts +22 -8
- package/dist/transport/calculate/dwellTime.js +18 -9
- package/dist/transport/calculate/estimateDrift.d.ts +65 -0
- package/dist/transport/calculate/estimateDrift.js +75 -0
- package/dist/transport/calculate/index.d.ts +8 -0
- package/dist/transport/calculate/index.js +8 -0
- package/dist/transport/calculate/nextDeparture.d.ts +78 -0
- package/dist/transport/calculate/nextDeparture.js +131 -0
- package/dist/transport/calculate/punctualityRate.d.ts +42 -0
- package/dist/transport/calculate/punctualityRate.js +59 -0
- package/dist/transport/calculate/scheduleDelivery.d.ts +158 -0
- package/dist/transport/calculate/scheduleDelivery.js +305 -0
- package/dist/transport/calculate/transitTime.d.ts +21 -3
- package/dist/transport/calculate/transitTime.js +29 -46
- package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
- package/dist/transport/compare/classifyPunctuality.js +64 -0
- package/dist/transport/compare/index.d.ts +4 -0
- package/dist/transport/compare/index.js +4 -0
- package/dist/transport/compare/isPastCutoff.d.ts +33 -0
- package/dist/transport/compare/isPastCutoff.js +48 -0
- package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
- package/dist/transport/compare/scheduleDeviation.js +53 -0
- package/dist/transport/compare/timeToCutoff.d.ts +31 -0
- package/dist/transport/compare/timeToCutoff.js +47 -0
- package/dist/transport/convert/etaAtZone.d.ts +13 -1
- package/dist/transport/convert/etaAtZone.js +15 -5
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.js +1 -0
- package/dist/types/business-calendar.d.ts +20 -14
- package/dist/types/calendar-options.d.ts +15 -3
- package/dist/types/date-cycle-field.d.ts +5 -0
- package/dist/types/date-duration-unit.d.ts +4 -0
- package/dist/types/date-time-cycle-field.d.ts +4 -0
- package/dist/types/date-time-duration-units.d.ts +4 -0
- package/dist/types/date-time-unit.d.ts +4 -0
- package/dist/types/date-unit.d.ts +4 -0
- package/dist/types/disambiguation.d.ts +8 -0
- package/dist/types/duration-relative-to.d.ts +8 -0
- package/dist/types/duration-string-options.d.ts +28 -0
- package/dist/types/duty.d.ts +777 -0
- package/dist/types/edi.d.ts +407 -0
- package/dist/types/edi.js +0 -0
- package/dist/types/epcis.d.ts +25 -0
- package/dist/types/epcis.js +0 -0
- package/dist/types/exact-duration-unit.d.ts +8 -0
- package/dist/types/exact-duration-unit.js +0 -0
- package/dist/types/fiscal-calendar.d.ts +1 -1
- package/dist/types/fractional-digit.d.ts +5 -0
- package/dist/types/free-time-options.d.ts +22 -11
- package/dist/types/index.d.ts +7 -1
- package/dist/types/index.js +7 -1
- package/dist/types/interval.d.ts +8 -1
- package/dist/types/offset.d.ts +9 -0
- package/dist/types/operating-schedule.d.ts +72 -0
- package/dist/types/operating-schedule.js +0 -0
- package/dist/types/overflow.d.ts +6 -0
- package/dist/types/relative-rounding-method.d.ts +6 -0
- package/dist/types/relative-time-options.d.ts +33 -5
- package/dist/types/rounding-options.d.ts +27 -0
- package/dist/types/time-cycle-field.d.ts +4 -0
- package/dist/types/time-duration-unit.d.ts +4 -0
- package/dist/types/time-unit.d.ts +4 -0
- package/dist/types/transport-timestamps.d.ts +54 -0
- package/dist/types/transport-timestamps.js +0 -0
- package/dist/types/two-digit-year.d.ts +23 -0
- package/dist/types/two-digit-year.js +0 -0
- package/dist/types/zone-bucket-unit.d.ts +1 -1
- package/dist/unix/calculate/addUnix.d.ts +28 -5
- package/dist/unix/calculate/addUnix.js +15 -16
- package/dist/unix/calculate/diffUnix.d.ts +21 -3
- package/dist/unix/calculate/diffUnix.js +12 -9
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +21 -3
- package/dist/unix/calculate/diffUnixAsDuration.js +11 -8
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/endOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/endOfUnix.d.ts +29 -4
- package/dist/unix/calculate/endOfUnix.js +8 -4
- package/dist/unix/calculate/isBetweenUnix.d.ts +27 -4
- package/dist/unix/calculate/isBetweenUnix.js +7 -9
- package/dist/unix/calculate/roundUnix.d.ts +39 -3
- package/dist/unix/calculate/roundUnix.js +16 -12
- package/dist/unix/calculate/setUnix.d.ts +58 -12
- package/dist/unix/calculate/setUnix.js +37 -25
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/startOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/startOfUnix.d.ts +29 -4
- package/dist/unix/calculate/startOfUnix.js +8 -4
- package/dist/unix/calculate/subtractUnix.d.ts +27 -5
- package/dist/unix/calculate/subtractUnix.js +14 -16
- package/dist/unix/compare/areUnixEqual.d.ts +7 -1
- package/dist/unix/compare/areUnixEqual.js +1 -1
- package/dist/unix/compare/areUnixEqualBy.d.ts +33 -7
- package/dist/unix/compare/areUnixEqualBy.js +20 -9
- package/dist/unix/compare/isAfterUnix.d.ts +7 -1
- package/dist/unix/compare/isAfterUnix.js +1 -1
- package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
- package/dist/unix/compare/isBeforeUnix.js +1 -1
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainDate.js +7 -8
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.js +7 -8
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainTime.js +7 -8
- package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
- package/dist/unix/convert/convertUnixToUtc.js +3 -4
- package/dist/unix/convert/convertUnixToZoned.d.ts +14 -5
- package/dist/unix/convert/convertUnixToZoned.js +8 -5
- package/dist/unix/format/formatCalendarUnix.d.ts +31 -19
- package/dist/unix/format/formatCalendarUnix.js +10 -6
- package/dist/unix/format/formatRelativeUnix.d.ts +62 -5
- package/dist/unix/format/formatRelativeUnix.js +16 -10
- package/dist/unix/format/formatUnix.d.ts +29 -6
- package/dist/unix/format/formatUnix.js +12 -7
- package/dist/unix/get/getUnixDay.d.ts +1 -3
- package/dist/unix/get/getUnixDay.js +5 -12
- package/dist/unix/get/getUnixHour.d.ts +1 -3
- package/dist/unix/get/getUnixHour.js +5 -12
- package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
- package/dist/unix/get/getUnixMicrosecond.js +4 -11
- package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
- package/dist/unix/get/getUnixMillisecond.js +5 -12
- package/dist/unix/get/getUnixMinute.d.ts +1 -3
- package/dist/unix/get/getUnixMinute.js +5 -12
- package/dist/unix/get/getUnixMonth.d.ts +1 -3
- package/dist/unix/get/getUnixMonth.js +5 -12
- package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
- package/dist/unix/get/getUnixNanosecond.js +4 -11
- package/dist/unix/get/getUnixNow.d.ts +8 -3
- package/dist/unix/get/getUnixNow.js +1 -3
- package/dist/unix/get/getUnixNowUnit.d.ts +2 -0
- package/dist/unix/get/getUnixNowUnit.js +2 -0
- package/dist/unix/get/getUnixSecond.d.ts +1 -3
- package/dist/unix/get/getUnixSecond.js +5 -12
- package/dist/unix/get/getUnixYear.d.ts +3 -3
- package/dist/unix/get/getUnixYear.js +5 -12
- package/dist/unix/interval/intervalCountUnix.d.ts +23 -5
- package/dist/unix/interval/intervalCountUnix.js +9 -5
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
- package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +41 -5
- package/dist/unix/interval/intervalFromDurationUnix.js +18 -12
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalLengthUnix.d.ts +24 -6
- package/dist/unix/interval/intervalLengthUnix.js +10 -6
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +21 -3
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +11 -8
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
- package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
- package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +50 -11
- package/dist/unix/interval/splitIntervalByUnitUnix.js +33 -22
- package/dist/unix/parse/parseDateFromUnix.d.ts +15 -2
- package/dist/unix/parse/parseDateFromUnix.js +4 -5
- package/dist/unix/parse/parseDayFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseDayFromUnix.js +2 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +15 -1
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +3 -3
- package/dist/unix/parse/parseHourFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseHourFromUnix.js +2 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMonthFromUnix.js +2 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseSecondFromUnix.js +2 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseTimeFromUnix.js +5 -5
- package/dist/unix/parse/parseUnitFromUnix.d.ts +29 -4
- package/dist/unix/parse/parseUnitFromUnix.js +23 -17
- package/dist/unix/parse/parseWeekFromUnix.d.ts +24 -7
- package/dist/unix/parse/parseWeekFromUnix.js +7 -11
- package/dist/unix/parse/parseYearFromUnix.d.ts +20 -3
- package/dist/unix/parse/parseYearFromUnix.js +6 -3
- package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
- package/dist/unix/validate/isValidUnixRange.js +1 -4
- package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
- package/dist/utc/calculate/addUtc.d.ts +7 -4
- package/dist/utc/calculate/addUtc.js +5 -11
- package/dist/utc/calculate/diffUtc.d.ts +1 -1
- package/dist/utc/calculate/diffUtc.js +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +16 -3
- package/dist/utc/calculate/endOfUtc.js +2 -3
- package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
- package/dist/utc/calculate/isBetweenUtc.js +4 -4
- package/dist/utc/calculate/roundUtc.d.ts +26 -9
- package/dist/utc/calculate/roundUtc.js +3 -12
- package/dist/utc/calculate/setUtc.d.ts +23 -7
- package/dist/utc/calculate/setUtc.js +23 -12
- package/dist/utc/calculate/startOfUtc.d.ts +15 -2
- package/dist/utc/calculate/startOfUtc.js +1 -2
- package/dist/utc/calculate/subtractUtc.d.ts +7 -4
- package/dist/utc/calculate/subtractUtc.js +5 -11
- package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
- package/dist/utc/compare/areUtcEqualBy.js +2 -3
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +14 -3
- package/dist/utc/convert/convertUtcToPlainDate.js +12 -10
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +15 -3
- package/dist/utc/convert/convertUtcToPlainDateTime.js +14 -16
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +11 -3
- package/dist/utc/convert/convertUtcToPlainTime.js +9 -9
- package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
- package/dist/utc/convert/convertUtcToUnix.js +3 -4
- package/dist/utc/convert/convertUtcToZoned.d.ts +5 -1
- package/dist/utc/convert/convertUtcToZoned.js +5 -1
- package/dist/utc/format/formatCalendarUtc.d.ts +23 -8
- package/dist/utc/format/formatCalendarUtc.js +14 -7
- package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +8 -8
- package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +8 -8
- package/dist/utc/format/formatRelativeUtc.d.ts +38 -10
- package/dist/utc/format/formatRelativeUtc.js +22 -16
- package/dist/utc/format/formatUtc.d.ts +22 -15
- package/dist/utc/format/formatUtc.js +12 -8
- package/dist/utc/format/index.d.ts +1 -1
- package/dist/utc/format/index.js +1 -1
- package/dist/utc/get/getUtcDay.d.ts +1 -3
- package/dist/utc/get/getUtcDay.js +5 -12
- package/dist/utc/get/getUtcHour.d.ts +1 -3
- package/dist/utc/get/getUtcHour.js +5 -12
- package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
- package/dist/utc/get/getUtcMicrosecond.js +4 -11
- package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
- package/dist/utc/get/getUtcMillisecond.js +5 -12
- package/dist/utc/get/getUtcMinute.d.ts +1 -3
- package/dist/utc/get/getUtcMinute.js +5 -12
- package/dist/utc/get/getUtcMonth.d.ts +1 -3
- package/dist/utc/get/getUtcMonth.js +5 -12
- package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
- package/dist/utc/get/getUtcNanosecond.js +4 -11
- package/dist/utc/get/getUtcNow.d.ts +1 -3
- package/dist/utc/get/getUtcNow.js +2 -9
- package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
- package/dist/utc/get/getUtcNowUnit.js +2 -0
- package/dist/utc/get/getUtcSecond.d.ts +1 -3
- package/dist/utc/get/getUtcSecond.js +5 -12
- package/dist/utc/get/getUtcYear.d.ts +3 -3
- package/dist/utc/get/getUtcYear.js +5 -12
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
- package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
- package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
- package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
- package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.js +2 -2
- package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
- package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
- package/dist/utc/parse/index.d.ts +1 -1
- package/dist/utc/parse/index.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDateFromUtc.js +3 -5
- package/dist/utc/parse/parseDayFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayFromUtc.js +3 -5
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +5 -7
- package/dist/utc/parse/parseHourFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseHourFromUtc.js +3 -5
- package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
- package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +12 -12
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMicrosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMillisecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMinuteFromUtc.js +3 -5
- package/dist/utc/parse/parseMonthFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMonthFromUtc.js +3 -5
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseNanosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseSecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseSecondFromUtc.js +3 -5
- package/dist/utc/parse/parseTimeFromUtc.d.ts +11 -3
- package/dist/utc/parse/parseTimeFromUtc.js +7 -7
- package/dist/utc/parse/parseUnitFromUtc.d.ts +25 -6
- package/dist/utc/parse/parseUnitFromUtc.js +14 -10
- package/dist/utc/parse/parseWeekFromUtc.d.ts +20 -10
- package/dist/utc/parse/parseWeekFromUtc.js +8 -14
- package/dist/utc/parse/parseYearFromUtc.d.ts +13 -5
- package/dist/utc/parse/parseYearFromUtc.js +9 -8
- package/dist/utc/validate/index.d.ts +2 -0
- package/dist/utc/validate/index.js +2 -0
- package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
- package/dist/utc/validate/isValidHttpDate.js +38 -0
- package/dist/utc/validate/isValidUtc.d.ts +4 -0
- package/dist/utc/validate/isValidUtc.js +4 -0
- package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
- package/dist/utc/validate/isValidUtcRange.js +2 -5
- package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
- package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
- package/dist/zoned/calculate/addZoned.d.ts +20 -10
- package/dist/zoned/calculate/addZoned.js +10 -20
- package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
- package/dist/zoned/calculate/cycleZoned.js +1 -8
- package/dist/zoned/calculate/diffZoned.d.ts +1 -1
- package/dist/zoned/calculate/diffZoned.js +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
- package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
- package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
- package/dist/zoned/calculate/roundZoned.d.ts +21 -4
- package/dist/zoned/calculate/roundZoned.js +3 -7
- package/dist/zoned/calculate/setZoned.d.ts +44 -13
- package/dist/zoned/calculate/setZoned.js +30 -21
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
- package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
- package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
- package/dist/zoned/calculate/startOfZoned.js +1 -3
- package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
- package/dist/zoned/calculate/subtractZoned.js +10 -20
- package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
- package/dist/zoned/compare/areZonedEqualBy.js +7 -5
- package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
- package/dist/zoned/compare/isBetweenZoned.js +4 -3
- package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
- package/dist/zoned/compare/isInDaylightSaving.js +40 -44
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +21 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +9 -11
- package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
- package/dist/zoned/convert/convertZonedToUnix.js +2 -4
- package/dist/zoned/convert/convertZonedToZoned.d.ts +5 -1
- package/dist/zoned/convert/convertZonedToZoned.js +5 -1
- package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
- package/dist/zoned/format/formatCalendarZoned.js +15 -10
- package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
- package/dist/zoned/format/formatRelativeZoned.js +9 -5
- package/dist/zoned/format/formatRfc2822.d.ts +2 -2
- package/dist/zoned/format/formatRfc2822.js +2 -2
- package/dist/zoned/format/formatRfc3339.d.ts +2 -3
- package/dist/zoned/format/formatRfc3339.js +2 -3
- package/dist/zoned/format/formatTimeZoneName.d.ts +16 -3
- package/dist/zoned/format/formatTimeZoneName.js +9 -4
- package/dist/zoned/format/formatZonedDateTime.js +2 -1
- package/dist/zoned/format/formatZonedRange.js +2 -1
- package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
- package/dist/zoned/format/formatZonedToParts.js +8 -5
- package/dist/zoned/get/getDstTransitions.d.ts +11 -10
- package/dist/zoned/get/getDstTransitions.js +21 -7
- package/dist/zoned/get/getSystemTimeZone.d.ts +3 -1
- package/dist/zoned/get/getSystemTimeZone.js +5 -2
- package/dist/zoned/get/getTimeZoneOffset.d.ts +13 -2
- package/dist/zoned/get/getTimeZoneOffset.js +22 -6
- package/dist/zoned/get/getZonedDay.d.ts +2 -1
- package/dist/zoned/get/getZonedDay.js +6 -7
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +2 -1
- package/dist/zoned/get/getZonedDayOfWeek.js +6 -5
- package/dist/zoned/get/getZonedHour.d.ts +2 -1
- package/dist/zoned/get/getZonedHour.js +6 -7
- package/dist/zoned/get/getZonedMicrosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMicrosecond.js +6 -5
- package/dist/zoned/get/getZonedMillisecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMillisecond.js +6 -7
- package/dist/zoned/get/getZonedMinute.d.ts +2 -1
- package/dist/zoned/get/getZonedMinute.js +6 -7
- package/dist/zoned/get/getZonedMonth.d.ts +2 -1
- package/dist/zoned/get/getZonedMonth.js +6 -7
- package/dist/zoned/get/getZonedNanosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedNanosecond.js +6 -5
- package/dist/zoned/get/getZonedNow.d.ts +18 -2
- package/dist/zoned/get/getZonedNow.js +17 -4
- package/dist/zoned/get/getZonedNowUnit.d.ts +6 -3
- package/dist/zoned/get/getZonedNowUnit.js +10 -7
- package/dist/zoned/get/getZonedSecond.d.ts +2 -1
- package/dist/zoned/get/getZonedSecond.js +6 -7
- package/dist/zoned/get/getZonedToday.d.ts +2 -1
- package/dist/zoned/get/getZonedToday.js +6 -5
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +2 -1
- package/dist/zoned/get/getZonedWeekOfYear.js +6 -5
- package/dist/zoned/get/getZonedYear.d.ts +4 -1
- package/dist/zoned/get/getZonedYear.js +9 -7
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
- package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
- package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
- package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.js +2 -2
- package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.js +2 -2
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
- package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
- package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +13 -4
- package/dist/zoned/parse/parseUnitFromZoned.js +6 -4
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
- package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
- package/dist/zoned/parse/parseYearFromZoned.js +6 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +45 -12
- package/dist/zoned/validate/hasDaylightSaving.js +54 -32
- package/dist/zoned/validate/index.d.ts +2 -0
- package/dist/zoned/validate/index.js +2 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
- package/dist/zoned/validate/isValidTimeZone.d.ts +5 -1
- package/dist/zoned/validate/isValidTimeZone.js +6 -2
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
- package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
- package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
- package/dist/zoned/validate/isValidZonedRange.js +1 -4
- package/package.json +67 -5
- package/skills/gmt-arithmetic/SKILL.md +99 -12
- package/skills/gmt-basics/SKILL.md +64 -13
- package/skills/gmt-integration/SKILL.md +33 -13
- package/skills/gmt-timezone/SKILL.md +265 -31
- package/dist/duration/calculate/durationAs.d.ts +0 -62
- package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
- package/dist/internal/resolveReadingTimeZone.js +0 -18
- package/dist/internal/unixZonedDateTime.d.ts +0 -22
- package/dist/internal/unixZonedDateTime.js +0 -32
- package/dist/internal/utcZonedDateTime.d.ts +0 -16
- package/dist/internal/utcZonedDateTime.js +0 -28
- package/dist/types/duration-unit.d.ts +0 -5
- /package/dist/types/{duration-unit.js → duty.js} +0 -0
|
@@ -5,8 +5,11 @@
|
|
|
5
5
|
* - The count depends on which day the week starts — the same month can
|
|
6
6
|
* span 4, 5, or 6 rows depending on locale (e.g. February 2026 is 4
|
|
7
7
|
* rows starting Sunday but 5 rows starting Monday).
|
|
8
|
-
* -
|
|
9
|
-
*
|
|
8
|
+
* - The count is the row the month's last day falls on, where row 1 holds
|
|
9
|
+
* the 1st (see `getWeekOfMonth`). This is GMT's own rule for sizing a
|
|
10
|
+
* month grid, not a standard's; CLDR's `minDays` plays no part.
|
|
11
|
+
* - Comparison: `@internationalized/date`'s `getWeeksInMonth` returns the
|
|
12
|
+
* same number for the same first day of week.
|
|
10
13
|
* - Resolves the locale's first day of week via
|
|
11
14
|
* `Intl.Locale.prototype.weekInfo`.
|
|
12
15
|
* - Returns null if `value` or `locale` is invalid.
|
|
@@ -9,8 +9,11 @@ import { isValidDate } from "../validate/index.js";
|
|
|
9
9
|
* - The count depends on which day the week starts — the same month can
|
|
10
10
|
* span 4, 5, or 6 rows depending on locale (e.g. February 2026 is 4
|
|
11
11
|
* rows starting Sunday but 5 rows starting Monday).
|
|
12
|
-
* -
|
|
13
|
-
*
|
|
12
|
+
* - The count is the row the month's last day falls on, where row 1 holds
|
|
13
|
+
* the 1st (see `getWeekOfMonth`). This is GMT's own rule for sizing a
|
|
14
|
+
* month grid, not a standard's; CLDR's `minDays` plays no part.
|
|
15
|
+
* - Comparison: `@internationalized/date`'s `getWeeksInMonth` returns the
|
|
16
|
+
* same number for the same first day of week.
|
|
14
17
|
* - Resolves the locale's first day of week via
|
|
15
18
|
* `Intl.Locale.prototype.weekInfo`.
|
|
16
19
|
* - Returns null if `value` or `locale` is invalid.
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - `dayOfWeek` uses Temporal's ISO numbering: 1 (Monday) through 7 (Sunday), consistent with
|
|
5
5
|
* `getDayOfWeek`/`parseDayOfWeekFromDate`.
|
|
6
|
-
* - `options.inclusive` (default `false`) controls what happens when `value` already falls on
|
|
7
|
-
* `dayOfWeek`: `false` advances a full week (matching date-fns), `true` returns `value` as-is.
|
|
8
6
|
* - Returns "" on invalid input.
|
|
9
7
|
*
|
|
10
8
|
* Replaces date-fns's sixteen `next*` functions with one parameterized call:
|
|
@@ -22,7 +20,7 @@
|
|
|
22
20
|
*
|
|
23
21
|
* @param value ISO PlainDate string
|
|
24
22
|
* @param dayOfWeek target ISO day of week (1-7, Monday-Sunday)
|
|
25
|
-
* @param options
|
|
23
|
+
* @param options Whether `value` itself can be the result
|
|
26
24
|
* @returns ISO PlainDate string for the next occurrence of `dayOfWeek`, or "" on invalid input
|
|
27
25
|
*
|
|
28
26
|
* @example nextWeekday("2024-03-15", 5) // "2024-03-22" (2024-03-15 is already a Friday, so it advances a full week)
|
|
@@ -32,5 +30,11 @@
|
|
|
32
30
|
* @example nextWeekday("2024-03-15", 8) // "" (dayOfWeek out of range)
|
|
33
31
|
*/
|
|
34
32
|
export declare function nextWeekday(value: string, dayOfWeek: number, options?: {
|
|
33
|
+
/**
|
|
34
|
+
* Whether `value` counts when it already falls on `dayOfWeek`. `true` returns `value`
|
|
35
|
+
* unchanged; `false` advances a full week.
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue `false`
|
|
38
|
+
*/
|
|
35
39
|
inclusive?: boolean;
|
|
36
40
|
}): string;
|
|
@@ -8,8 +8,6 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
8
8
|
*
|
|
9
9
|
* - `dayOfWeek` uses Temporal's ISO numbering: 1 (Monday) through 7 (Sunday), consistent with
|
|
10
10
|
* `getDayOfWeek`/`parseDayOfWeekFromDate`.
|
|
11
|
-
* - `options.inclusive` (default `false`) controls what happens when `value` already falls on
|
|
12
|
-
* `dayOfWeek`: `false` advances a full week (matching date-fns), `true` returns `value` as-is.
|
|
13
11
|
* - Returns "" on invalid input.
|
|
14
12
|
*
|
|
15
13
|
* Replaces date-fns's sixteen `next*` functions with one parameterized call:
|
|
@@ -27,7 +25,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
27
25
|
*
|
|
28
26
|
* @param value ISO PlainDate string
|
|
29
27
|
* @param dayOfWeek target ISO day of week (1-7, Monday-Sunday)
|
|
30
|
-
* @param options
|
|
28
|
+
* @param options Whether `value` itself can be the result
|
|
31
29
|
* @returns ISO PlainDate string for the next occurrence of `dayOfWeek`, or "" on invalid input
|
|
32
30
|
*
|
|
33
31
|
* @example nextWeekday("2024-03-15", 5) // "2024-03-22" (2024-03-15 is already a Friday, so it advances a full week)
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - `dayOfWeek` uses Temporal's ISO numbering: 1 (Monday) through 7 (Sunday), consistent with
|
|
5
5
|
* `getDayOfWeek`/`parseDayOfWeekFromDate`.
|
|
6
|
-
* - `options.inclusive` (default `false`) controls what happens when `value` already falls on
|
|
7
|
-
* `dayOfWeek`: `false` goes back a full week (matching date-fns), `true` returns `value` as-is.
|
|
8
6
|
* - Returns "" on invalid input.
|
|
9
7
|
*
|
|
10
8
|
* Replaces date-fns's sixteen `previous*` functions with one parameterized call:
|
|
@@ -22,7 +20,7 @@
|
|
|
22
20
|
*
|
|
23
21
|
* @param value ISO PlainDate string
|
|
24
22
|
* @param dayOfWeek target ISO day of week (1-7, Monday-Sunday)
|
|
25
|
-
* @param options
|
|
23
|
+
* @param options Whether `value` itself can be the result
|
|
26
24
|
* @returns ISO PlainDate string for the previous occurrence of `dayOfWeek`, or "" on invalid input
|
|
27
25
|
*
|
|
28
26
|
* @example previousWeekday("2024-03-15", 5) // "2024-03-08" (2024-03-15 is already a Friday, so it goes back a full week)
|
|
@@ -32,5 +30,11 @@
|
|
|
32
30
|
* @example previousWeekday("2024-03-15", 0) // "" (dayOfWeek out of range)
|
|
33
31
|
*/
|
|
34
32
|
export declare function previousWeekday(value: string, dayOfWeek: number, options?: {
|
|
33
|
+
/**
|
|
34
|
+
* Whether `value` counts when it already falls on `dayOfWeek`. `true` returns `value`
|
|
35
|
+
* unchanged; `false` goes back a full week.
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue `false`
|
|
38
|
+
*/
|
|
35
39
|
inclusive?: boolean;
|
|
36
40
|
}): string;
|
|
@@ -8,8 +8,6 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
8
8
|
*
|
|
9
9
|
* - `dayOfWeek` uses Temporal's ISO numbering: 1 (Monday) through 7 (Sunday), consistent with
|
|
10
10
|
* `getDayOfWeek`/`parseDayOfWeekFromDate`.
|
|
11
|
-
* - `options.inclusive` (default `false`) controls what happens when `value` already falls on
|
|
12
|
-
* `dayOfWeek`: `false` goes back a full week (matching date-fns), `true` returns `value` as-is.
|
|
13
11
|
* - Returns "" on invalid input.
|
|
14
12
|
*
|
|
15
13
|
* Replaces date-fns's sixteen `previous*` functions with one parameterized call:
|
|
@@ -27,7 +25,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
27
25
|
*
|
|
28
26
|
* @param value ISO PlainDate string
|
|
29
27
|
* @param dayOfWeek target ISO day of week (1-7, Monday-Sunday)
|
|
30
|
-
* @param options
|
|
28
|
+
* @param options Whether `value` itself can be the result
|
|
31
29
|
* @returns ISO PlainDate string for the previous occurrence of `dayOfWeek`, or "" on invalid input
|
|
32
30
|
*
|
|
33
31
|
* @example previousWeekday("2024-03-15", 5) // "2024-03-08" (2024-03-15 is already a Friday, so it goes back a full week)
|
|
@@ -4,9 +4,6 @@ import type { DateUnit } from "../../types/index.js";
|
|
|
4
4
|
* Round an ISO 8601 date string to the specified date unit.
|
|
5
5
|
*
|
|
6
6
|
* - Returns "" for invalid inputs.
|
|
7
|
-
* - Accepts date units: "year", "month", "week", "day", each in its singular or plural form
|
|
8
|
-
* ("month" or "months"), as Temporal's GetTemporalUnitValuedOption accepts both (§13.17).
|
|
9
|
-
* - Time units ("hour", "minute", etc.) are rejected and return "".
|
|
10
7
|
* - All date units use manual start-of-unit rounding. Weeks start on Monday.
|
|
11
8
|
* - The rounding grid is anchored at the unit containing `value`, so `"halfEven"` breaks an exact
|
|
12
9
|
* tie towards that unit's start (multiple 0, the even one).
|
|
@@ -15,13 +12,10 @@ import type { DateUnit } from "../../types/index.js";
|
|
|
15
12
|
* When it rounds down to that unrepresentable start, the result is "".
|
|
16
13
|
* - In the last representable year (`+275760`) a date that rounds down still returns its unit's
|
|
17
14
|
* start; only rounding up past `+275760-09-13` returns "".
|
|
18
|
-
* - `roundingIncrement` and `roundingMode` are read as Temporal reads them: a non-integer increment
|
|
19
|
-
* is truncated (`1.5` rounds by 1), an increment below 1 or not finite returns "", and a
|
|
20
|
-
* `roundingMode` outside Temporal's nine returns "" (previously it floored silently).
|
|
21
15
|
* - Wraps all Temporal calls in try-catch; returns "" on any error.
|
|
22
16
|
*
|
|
23
17
|
* @param value ISO 8601 date string
|
|
24
|
-
* @param options
|
|
18
|
+
* @param options The unit to round to and how to round
|
|
25
19
|
* @returns Rounded ISO 8601 date string, or "" on invalid input
|
|
26
20
|
*
|
|
27
21
|
* @example roundDate("2024-06-15", { smallestUnit: "year" }) // "2024-01-01"
|
|
@@ -38,7 +32,26 @@ import type { DateUnit } from "../../types/index.js";
|
|
|
38
32
|
* @example roundDate("invalid", { smallestUnit: "year" }) // ""
|
|
39
33
|
*/
|
|
40
34
|
export declare function roundDate(value: string, options: {
|
|
35
|
+
/**
|
|
36
|
+
* The unit to round to: `"year"`, `"month"`, `"week"` or `"day"`, singular or plural, as
|
|
37
|
+
* Temporal's GetTemporalUnitValuedOption accepts both (§13.17). A time unit such as `"hour"`
|
|
38
|
+
* returns `""`.
|
|
39
|
+
*/
|
|
41
40
|
smallestUnit: Temporal.SmallestUnit<DateUnit>;
|
|
41
|
+
/**
|
|
42
|
+
* How many units make one rounding step, counted from the unit that holds `value`. Read as
|
|
43
|
+
* Temporal reads it: a non-integer is truncated (`1.5` rounds by 1), and a value below 1 or not
|
|
44
|
+
* finite returns `""`.
|
|
45
|
+
*
|
|
46
|
+
* @defaultValue `1`, Temporal's default.
|
|
47
|
+
*/
|
|
42
48
|
roundingIncrement?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Which way a date between two steps goes: one of Temporal's nine rounding modes, such as
|
|
51
|
+
* `"floor"`, `"ceil"` or `"halfExpand"` (to the nearer step, a tie going up). Any other value
|
|
52
|
+
* returns `""`.
|
|
53
|
+
*
|
|
54
|
+
* @defaultValue `"halfExpand"`, Temporal's default.
|
|
55
|
+
*/
|
|
43
56
|
roundingMode?: Temporal.RoundingMode;
|
|
44
57
|
}): string;
|
|
@@ -10,9 +10,6 @@ import { isObject } from "../../internal/isObject.js";
|
|
|
10
10
|
* Round an ISO 8601 date string to the specified date unit.
|
|
11
11
|
*
|
|
12
12
|
* - Returns "" for invalid inputs.
|
|
13
|
-
* - Accepts date units: "year", "month", "week", "day", each in its singular or plural form
|
|
14
|
-
* ("month" or "months"), as Temporal's GetTemporalUnitValuedOption accepts both (§13.17).
|
|
15
|
-
* - Time units ("hour", "minute", etc.) are rejected and return "".
|
|
16
13
|
* - All date units use manual start-of-unit rounding. Weeks start on Monday.
|
|
17
14
|
* - The rounding grid is anchored at the unit containing `value`, so `"halfEven"` breaks an exact
|
|
18
15
|
* tie towards that unit's start (multiple 0, the even one).
|
|
@@ -21,13 +18,10 @@ import { isObject } from "../../internal/isObject.js";
|
|
|
21
18
|
* When it rounds down to that unrepresentable start, the result is "".
|
|
22
19
|
* - In the last representable year (`+275760`) a date that rounds down still returns its unit's
|
|
23
20
|
* start; only rounding up past `+275760-09-13` returns "".
|
|
24
|
-
* - `roundingIncrement` and `roundingMode` are read as Temporal reads them: a non-integer increment
|
|
25
|
-
* is truncated (`1.5` rounds by 1), an increment below 1 or not finite returns "", and a
|
|
26
|
-
* `roundingMode` outside Temporal's nine returns "" (previously it floored silently).
|
|
27
21
|
* - Wraps all Temporal calls in try-catch; returns "" on any error.
|
|
28
22
|
*
|
|
29
23
|
* @param value ISO 8601 date string
|
|
30
|
-
* @param options
|
|
24
|
+
* @param options The unit to round to and how to round
|
|
31
25
|
* @returns Rounded ISO 8601 date string, or "" on invalid input
|
|
32
26
|
*
|
|
33
27
|
* @example roundDate("2024-06-15", { smallestUnit: "year" }) // "2024-01-01"
|
|
@@ -48,9 +42,8 @@ export function roundDate(value, options) {
|
|
|
48
42
|
if (!isObject(options))
|
|
49
43
|
return "";
|
|
50
44
|
const { roundingIncrement, roundingMode } = options;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
: options.smallestUnit;
|
|
45
|
+
// One read (GetOption): resolveDateTimeUnit returns a value that is not a string unchanged.
|
|
46
|
+
const smallestUnit = resolveDateTimeUnit(options.smallestUnit);
|
|
54
47
|
if (!isValidDate(value) || !isValidDateUnit(smallestUnit))
|
|
55
48
|
return "";
|
|
56
49
|
try {
|
|
@@ -4,9 +4,6 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
4
4
|
* Round an ISO 8601 datetime string to the specified date-time unit.
|
|
5
5
|
*
|
|
6
6
|
* - Returns "" for invalid inputs.
|
|
7
|
-
* - Accepts all date and time units: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
|
|
8
|
-
* - Each unit is accepted in its singular or plural form ("day" or "days"), as Temporal's
|
|
9
|
-
* GetTemporalUnitValuedOption accepts both.
|
|
10
7
|
* - Time units use Temporal.PlainDateTime.round() directly.
|
|
11
8
|
* - Date units (year, month, week) use manual start-of-unit rounding. Weeks start on Monday.
|
|
12
9
|
* - For date units the rounding grid is anchored at the unit containing `value`, so `"halfEven"`
|
|
@@ -18,17 +15,13 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
18
15
|
* that unrepresentable start, the result is "".
|
|
19
16
|
* - In the last representable year (`+275760`) a value that rounds down to a date unit still
|
|
20
17
|
* returns that unit's start; only rounding up past `+275760-09-13T23:59:59.999999999` returns "".
|
|
21
|
-
* - `roundingIncrement` and `roundingMode` are read as Temporal reads them for every unit: a
|
|
22
|
-
* non-integer increment is truncated (`1.5` rounds by 1), an increment below 1 or not finite
|
|
23
|
-
* returns "", and a `roundingMode` outside Temporal's nine returns "" (previously a date unit
|
|
24
|
-
* floored silently).
|
|
25
18
|
* - Wraps all Temporal calls in try-catch; returns "" on any error.
|
|
26
19
|
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
27
20
|
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
28
21
|
* hides the precision the unit asked for.
|
|
29
22
|
*
|
|
30
23
|
* @param value ISO 8601 datetime string
|
|
31
|
-
* @param options
|
|
24
|
+
* @param options The unit to round to and how to round
|
|
32
25
|
* @returns Rounded ISO 8601 datetime string, or "" on invalid input
|
|
33
26
|
*
|
|
34
27
|
* @example roundDateTime("2024-06-15T12:34:56", { smallestUnit: "year" }) // "2024-01-01T00:00:00"
|
|
@@ -44,7 +37,28 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
44
37
|
* @example roundDateTime("invalid", { smallestUnit: "year" }) // ""
|
|
45
38
|
*/
|
|
46
39
|
export declare function roundDateTime(value: string, options: {
|
|
40
|
+
/**
|
|
41
|
+
* The unit to round to, any date or time unit from `"year"` to `"nanosecond"`, singular
|
|
42
|
+
* or plural, as Temporal's GetTemporalUnitValuedOption accepts both. It also sets how
|
|
43
|
+
* many fractional-second digits the result is written with.
|
|
44
|
+
*/
|
|
47
45
|
smallestUnit: Temporal.SmallestUnit<DateTimeUnit>;
|
|
46
|
+
/**
|
|
47
|
+
* How many units make one rounding step. For `"day"` and the time units Temporal
|
|
48
|
+
* requires it to divide the next larger unit evenly and be smaller than it (`15` minutes,
|
|
49
|
+
* not `7` or `60`; a day only by `1`); for `"year"`, `"month"` and `"week"` the steps are
|
|
50
|
+
* counted from the unit that holds `value`. A non-integer is truncated, and a value below 1
|
|
51
|
+
* or not finite returns `""`.
|
|
52
|
+
*
|
|
53
|
+
* @defaultValue `1`, Temporal's default.
|
|
54
|
+
*/
|
|
48
55
|
roundingIncrement?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Which way a value between two steps goes: one of Temporal's nine rounding modes, such as
|
|
58
|
+
* `"floor"`, `"ceil"` or `"halfExpand"` (to the nearer step, a tie going up). Any other value
|
|
59
|
+
* returns `""`.
|
|
60
|
+
*
|
|
61
|
+
* @defaultValue `"halfExpand"`, Temporal's default.
|
|
62
|
+
*/
|
|
49
63
|
roundingMode?: Temporal.RoundingMode;
|
|
50
64
|
}): string;
|
|
@@ -85,9 +85,6 @@ function roundDateUnit(source, smallestUnit, increment, mode) {
|
|
|
85
85
|
* Round an ISO 8601 datetime string to the specified date-time unit.
|
|
86
86
|
*
|
|
87
87
|
* - Returns "" for invalid inputs.
|
|
88
|
-
* - Accepts all date and time units: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
|
|
89
|
-
* - Each unit is accepted in its singular or plural form ("day" or "days"), as Temporal's
|
|
90
|
-
* GetTemporalUnitValuedOption accepts both.
|
|
91
88
|
* - Time units use Temporal.PlainDateTime.round() directly.
|
|
92
89
|
* - Date units (year, month, week) use manual start-of-unit rounding. Weeks start on Monday.
|
|
93
90
|
* - For date units the rounding grid is anchored at the unit containing `value`, so `"halfEven"`
|
|
@@ -99,17 +96,13 @@ function roundDateUnit(source, smallestUnit, increment, mode) {
|
|
|
99
96
|
* that unrepresentable start, the result is "".
|
|
100
97
|
* - In the last representable year (`+275760`) a value that rounds down to a date unit still
|
|
101
98
|
* returns that unit's start; only rounding up past `+275760-09-13T23:59:59.999999999` returns "".
|
|
102
|
-
* - `roundingIncrement` and `roundingMode` are read as Temporal reads them for every unit: a
|
|
103
|
-
* non-integer increment is truncated (`1.5` rounds by 1), an increment below 1 or not finite
|
|
104
|
-
* returns "", and a `roundingMode` outside Temporal's nine returns "" (previously a date unit
|
|
105
|
-
* floored silently).
|
|
106
99
|
* - Wraps all Temporal calls in try-catch; returns "" on any error.
|
|
107
100
|
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
108
101
|
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
109
102
|
* hides the precision the unit asked for.
|
|
110
103
|
*
|
|
111
104
|
* @param value ISO 8601 datetime string
|
|
112
|
-
* @param options
|
|
105
|
+
* @param options The unit to round to and how to round
|
|
113
106
|
* @returns Rounded ISO 8601 datetime string, or "" on invalid input
|
|
114
107
|
*
|
|
115
108
|
* @example roundDateTime("2024-06-15T12:34:56", { smallestUnit: "year" }) // "2024-01-01T00:00:00"
|
|
@@ -129,9 +122,8 @@ export function roundDateTime(value, options) {
|
|
|
129
122
|
if (!isObject(options))
|
|
130
123
|
return "";
|
|
131
124
|
const { roundingIncrement, roundingMode } = options;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
: options.smallestUnit;
|
|
125
|
+
// One read (GetOption): resolveDateTimeUnit returns a value that is not a string unchanged.
|
|
126
|
+
const smallestUnit = resolveDateTimeUnit(options.smallestUnit);
|
|
135
127
|
if (!isValidDateTime(value) || !isValidDateTimeUnit(smallestUnit))
|
|
136
128
|
return "";
|
|
137
129
|
try {
|
|
@@ -3,16 +3,13 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
3
3
|
* Round an ISO 8601 time string to the specified time unit.
|
|
4
4
|
*
|
|
5
5
|
* - Returns "" for invalid inputs.
|
|
6
|
-
* - Only time units are accepted: "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
|
|
7
|
-
* - Each unit is accepted in its singular or plural form ("hour" or "hours"), as Temporal's
|
|
8
|
-
* GetTemporalUnitValuedOption accepts both.
|
|
9
6
|
* - Wraps Temporal.PlainTime.round() which throws on invalid options.
|
|
10
7
|
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
11
8
|
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
12
9
|
* hides the precision the unit asked for.
|
|
13
10
|
*
|
|
14
11
|
* @param value ISO 8601 time string
|
|
15
|
-
* @param options
|
|
12
|
+
* @param options The unit to round to and how to round
|
|
16
13
|
* @returns Rounded ISO 8601 time string, or "" on invalid input
|
|
17
14
|
*
|
|
18
15
|
* @example roundTime("12:34:56", { smallestUnit: "hour" }) // "13:00:00"
|
|
@@ -23,7 +20,26 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
23
20
|
* @example roundTime("invalid", { smallestUnit: "hour" }) // ""
|
|
24
21
|
*/
|
|
25
22
|
export declare function roundTime(value: string, options: {
|
|
23
|
+
/**
|
|
24
|
+
* The unit to round to, a time unit from `"hour"` to `"nanosecond"`, singular or plural, as
|
|
25
|
+
* Temporal's GetTemporalUnitValuedOption accepts both. It also sets how many fractional-second
|
|
26
|
+
* digits the result is written with. A date unit returns `""`.
|
|
27
|
+
*/
|
|
26
28
|
smallestUnit: Temporal.SmallestUnit<Temporal.TimeUnit>;
|
|
29
|
+
/**
|
|
30
|
+
* How many units make one rounding step. Temporal requires it to divide the next larger
|
|
31
|
+
* unit evenly and be smaller than it (`15` minutes, not `7` or `60`), and truncates a
|
|
32
|
+
* non-integer; any other value returns `""`.
|
|
33
|
+
*
|
|
34
|
+
* @defaultValue `1`, Temporal's default.
|
|
35
|
+
*/
|
|
27
36
|
roundingIncrement?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Which way a time between two steps goes: one of Temporal's nine rounding modes, such as
|
|
39
|
+
* `"floor"`, `"ceil"` or `"halfExpand"` (to the nearer step, a tie going up). Any other value
|
|
40
|
+
* returns `""`.
|
|
41
|
+
*
|
|
42
|
+
* @defaultValue `"halfExpand"`, Temporal's default.
|
|
43
|
+
*/
|
|
28
44
|
roundingMode?: Temporal.RoundingMode;
|
|
29
45
|
}): string;
|
|
@@ -6,16 +6,13 @@ import { isValidTime, isValidTimeUnit } from "../validate/index.js";
|
|
|
6
6
|
* Round an ISO 8601 time string to the specified time unit.
|
|
7
7
|
*
|
|
8
8
|
* - Returns "" for invalid inputs.
|
|
9
|
-
* - Only time units are accepted: "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
|
* - Wraps Temporal.PlainTime.round() which throws on invalid options.
|
|
13
10
|
* - Output precision follows `smallestUnit`: no fractional seconds for "second" and coarser,
|
|
14
11
|
* 3 digits for "millisecond", 6 for "microsecond" and 9 for "nanosecond", so the result never
|
|
15
12
|
* hides the precision the unit asked for.
|
|
16
13
|
*
|
|
17
14
|
* @param value ISO 8601 time string
|
|
18
|
-
* @param options
|
|
15
|
+
* @param options The unit to round to and how to round
|
|
19
16
|
* @returns Rounded ISO 8601 time string, or "" on invalid input
|
|
20
17
|
*
|
|
21
18
|
* @example roundTime("12:34:56", { smallestUnit: "hour" }) // "13:00:00"
|
|
@@ -30,9 +27,8 @@ export function roundTime(value, options) {
|
|
|
30
27
|
if (!isObject(options))
|
|
31
28
|
return "";
|
|
32
29
|
const { roundingIncrement, roundingMode } = options;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
: options.smallestUnit;
|
|
30
|
+
// One read (GetOption): resolveDateTimeUnit returns a value that is not a string unchanged.
|
|
31
|
+
const smallestUnit = resolveDateTimeUnit(options.smallestUnit);
|
|
36
32
|
if (!isValidTime(value) || !isValidTimeUnit(smallestUnit))
|
|
37
33
|
return "";
|
|
38
34
|
try {
|
|
@@ -8,25 +8,44 @@ import type { Overflow } from "../../types/index.js";
|
|
|
8
8
|
* field-by-field: each sequential `.add()` resolves overflow against its own intermediate
|
|
9
9
|
* value, so setting month-then-day vs. day-then-month on the same target can silently
|
|
10
10
|
* diverge — `.with()` has no such order-dependence.
|
|
11
|
-
* - `fields` may set `year`, `month`, `monthCode
|
|
12
|
-
*
|
|
11
|
+
* - `fields` may set `year`, `month`, `monthCode` and/or `day`; omitted fields keep their current
|
|
12
|
+
* value. An object with no field set, such as `{}` or `{ year: undefined }`, is a no-op.
|
|
13
|
+
* - Values are not converted: `year`, `month` and `day` must be integer numbers and `monthCode` a
|
|
14
|
+
* string. `null`, a numeric string, a boolean or a fraction returns "", where Temporal would
|
|
15
|
+
* convert or truncate it. A bigint, `NaN` or an infinity returns "" too. A number too large for
|
|
16
|
+
* its field follows `overflow`. A month or day below 1, or a date outside Temporal's range,
|
|
17
|
+
* returns "".
|
|
18
|
+
* - An own key that is not one of these fields, such as a misspelt `yaer`, returns "". So does a
|
|
19
|
+
* field this function does not take, such as `hour`, or a `calendar` or `timeZone` property,
|
|
20
|
+
* whether own, inherited or a getter. A field is read with a property get, as Temporal reads it,
|
|
21
|
+
* so an inherited or getter field is set.
|
|
22
|
+
* - A Temporal date or time object returns "", as Temporal's `with` refuses one. One whose
|
|
23
|
+
* prototype has been replaced with `Object.prototype`, `null` or `Function.prototype` sets
|
|
24
|
+
* nothing instead.
|
|
13
25
|
* - Returns "" for invalid input.
|
|
14
26
|
*
|
|
15
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
16
|
-
* `month: 2` on a date whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
17
|
-
* (resulting in "").
|
|
18
|
-
*
|
|
19
27
|
* @param value ISO PlainDate string
|
|
20
28
|
* @param fields Partial<Temporal.PlainDateLike> object specifying fields to set
|
|
21
|
-
* @param options
|
|
29
|
+
* @param options How an out-of-range field value is handled
|
|
22
30
|
* @returns ISO PlainDate string with fields set, or "" on invalid input
|
|
23
31
|
*
|
|
24
32
|
* @example setDate("2024-03-10", { year: 2025 }) // "2025-03-10"
|
|
25
33
|
* @example setDate("2024-01-31", { month: 2 }) // "2024-02-29" (constrain clamps to the last valid day)
|
|
26
34
|
* @example setDate("2024-01-31", { month: 2 }, { overflow: "reject" }) // ""
|
|
35
|
+
* @example setDate("2024-01-31", { month: 13 }) // "2024-12-31" (too large: constrain clamps it)
|
|
36
|
+
* @example setDate("2024-01-31", { month: 0 }) // "" (below 1, under either overflow)
|
|
27
37
|
* @example setDate("2024-03-10", {}) // "2024-03-10" (empty fields object is a no-op)
|
|
38
|
+
* @example setDate("2024-01-31", { year: "2025" }) // "" (not converted)
|
|
39
|
+
* @example setDate("2024-01-31", { year: 2025, yaer: 1 }) // "" (misspelt key)
|
|
40
|
+
* @example setDate("2024-03-10", { year: 2025, hour: 5 }) // "" (setDate takes no hour)
|
|
28
41
|
* @example setDate("invalid", { year: 2025 }) // ""
|
|
29
42
|
*/
|
|
30
|
-
export declare function setDate(value: string, fields: Omit<Temporal.PlainDateLike, "calendar">, options?: {
|
|
43
|
+
export declare function setDate(value: string, fields: Omit<Temporal.PlainDateLike, "calendar" | "era" | "eraYear">, options?: {
|
|
44
|
+
/**
|
|
45
|
+
* What to do when the fields do not form a real date. `"constrain"` clamps to the last valid
|
|
46
|
+
* day, so `month: 2` on the 31st gives Feb 29 or 28; `"reject"` returns `""`.
|
|
47
|
+
*
|
|
48
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
49
|
+
*/
|
|
31
50
|
overflow?: Overflow;
|
|
32
51
|
}): string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import { resolveOverflow } from "../../internal/index.js";
|
|
2
|
+
import { DATE_FIELDS, readSetFields, resolveOverflow } from "../../internal/index.js";
|
|
3
3
|
import { isValidDate } from "../validate/index.js";
|
|
4
4
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
5
5
|
/**
|
|
@@ -10,23 +10,36 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
10
10
|
* field-by-field: each sequential `.add()` resolves overflow against its own intermediate
|
|
11
11
|
* value, so setting month-then-day vs. day-then-month on the same target can silently
|
|
12
12
|
* diverge — `.with()` has no such order-dependence.
|
|
13
|
-
* - `fields` may set `year`, `month`, `monthCode
|
|
14
|
-
*
|
|
13
|
+
* - `fields` may set `year`, `month`, `monthCode` and/or `day`; omitted fields keep their current
|
|
14
|
+
* value. An object with no field set, such as `{}` or `{ year: undefined }`, is a no-op.
|
|
15
|
+
* - Values are not converted: `year`, `month` and `day` must be integer numbers and `monthCode` a
|
|
16
|
+
* string. `null`, a numeric string, a boolean or a fraction returns "", where Temporal would
|
|
17
|
+
* convert or truncate it. A bigint, `NaN` or an infinity returns "" too. A number too large for
|
|
18
|
+
* its field follows `overflow`. A month or day below 1, or a date outside Temporal's range,
|
|
19
|
+
* returns "".
|
|
20
|
+
* - An own key that is not one of these fields, such as a misspelt `yaer`, returns "". So does a
|
|
21
|
+
* field this function does not take, such as `hour`, or a `calendar` or `timeZone` property,
|
|
22
|
+
* whether own, inherited or a getter. A field is read with a property get, as Temporal reads it,
|
|
23
|
+
* so an inherited or getter field is set.
|
|
24
|
+
* - A Temporal date or time object returns "", as Temporal's `with` refuses one. One whose
|
|
25
|
+
* prototype has been replaced with `Object.prototype`, `null` or `Function.prototype` sets
|
|
26
|
+
* nothing instead.
|
|
15
27
|
* - Returns "" for invalid input.
|
|
16
28
|
*
|
|
17
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
18
|
-
* `month: 2` on a date whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
19
|
-
* (resulting in "").
|
|
20
|
-
*
|
|
21
29
|
* @param value ISO PlainDate string
|
|
22
30
|
* @param fields Partial<Temporal.PlainDateLike> object specifying fields to set
|
|
23
|
-
* @param options
|
|
31
|
+
* @param options How an out-of-range field value is handled
|
|
24
32
|
* @returns ISO PlainDate string with fields set, or "" on invalid input
|
|
25
33
|
*
|
|
26
34
|
* @example setDate("2024-03-10", { year: 2025 }) // "2025-03-10"
|
|
27
35
|
* @example setDate("2024-01-31", { month: 2 }) // "2024-02-29" (constrain clamps to the last valid day)
|
|
28
36
|
* @example setDate("2024-01-31", { month: 2 }, { overflow: "reject" }) // ""
|
|
37
|
+
* @example setDate("2024-01-31", { month: 13 }) // "2024-12-31" (too large: constrain clamps it)
|
|
38
|
+
* @example setDate("2024-01-31", { month: 0 }) // "" (below 1, under either overflow)
|
|
29
39
|
* @example setDate("2024-03-10", {}) // "2024-03-10" (empty fields object is a no-op)
|
|
40
|
+
* @example setDate("2024-01-31", { year: "2025" }) // "" (not converted)
|
|
41
|
+
* @example setDate("2024-01-31", { year: 2025, yaer: 1 }) // "" (misspelt key)
|
|
42
|
+
* @example setDate("2024-03-10", { year: 2025, hour: 5 }) // "" (setDate takes no hour)
|
|
30
43
|
* @example setDate("invalid", { year: 2025 }) // ""
|
|
31
44
|
*/
|
|
32
45
|
export function setDate(value, fields, options) {
|
|
@@ -37,12 +50,15 @@ export function setDate(value, fields, options) {
|
|
|
37
50
|
return "";
|
|
38
51
|
try {
|
|
39
52
|
const date = Temporal.PlainDate.from(value);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
53
|
+
const set = readSetFields(fields, DATE_FIELDS);
|
|
54
|
+
if (set === null)
|
|
55
|
+
return "";
|
|
56
|
+
// Only the values readSetFields checked reach Temporal. An empty result sets nothing: a
|
|
57
|
+
// no-op here, where Temporal's with() would throw.
|
|
58
|
+
if (Object.keys(set).length === 0)
|
|
43
59
|
return date.toString();
|
|
44
60
|
return date
|
|
45
|
-
.with(
|
|
61
|
+
.with(set, { overflow: resolveOverflow(options?.overflow) })
|
|
46
62
|
.toString();
|
|
47
63
|
}
|
|
48
64
|
catch {
|
|
@@ -7,25 +7,40 @@ import type { Overflow } from "../../types/index.js";
|
|
|
7
7
|
* single atomic overflow pass — see `setDate`'s doc for why that matters over composing
|
|
8
8
|
* `addDateTime()` calls field-by-field.
|
|
9
9
|
* - `fields` may set any of `year`, `month`, `monthCode`, `day`, `hour`, `minute`, `second`,
|
|
10
|
-
* `millisecond`, `microsecond
|
|
11
|
-
*
|
|
10
|
+
* `millisecond`, `microsecond` and/or `nanosecond`; omitted fields keep their current value. An
|
|
11
|
+
* object with no field set, such as `{}` or `{ year: undefined }`, is a no-op.
|
|
12
|
+
* - Values are not converted: `monthCode` must be a string and every other field an integer number.
|
|
13
|
+
* `null`, a numeric string, a boolean or a fraction returns "", where Temporal would convert or
|
|
14
|
+
* truncate it. A bigint, `NaN` or an infinity returns "" too. A number too large for its
|
|
15
|
+
* field follows `overflow`. A month or day below 1, or a date outside Temporal's range, returns
|
|
16
|
+
* "".
|
|
17
|
+
* - An own key that is not one of these fields, such as a misspelt `yaer`, returns "". So does an
|
|
18
|
+
* era, or a `calendar` or `timeZone` property, whether own, inherited or a getter. A field is
|
|
19
|
+
* read with a property get, as Temporal reads it, so an inherited or getter field is set.
|
|
20
|
+
* - A Temporal date or time object returns "", as Temporal's `with` refuses one. One whose
|
|
21
|
+
* prototype has been replaced with `Object.prototype`, `null` or `Function.prototype` sets
|
|
22
|
+
* nothing instead.
|
|
12
23
|
* - Returns "" for invalid input.
|
|
13
24
|
*
|
|
14
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
15
|
-
* `month: 2` on a datetime whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
16
|
-
* (resulting in "").
|
|
17
|
-
*
|
|
18
25
|
* @param value ISO PlainDateTime string
|
|
19
26
|
* @param fields Partial<Temporal.PlainDateTimeLike> object specifying fields to set
|
|
20
|
-
* @param options
|
|
27
|
+
* @param options How an out-of-range field value is handled
|
|
21
28
|
* @returns ISO PlainDateTime string with fields set, or "" on invalid input
|
|
22
29
|
*
|
|
23
30
|
* @example setDateTime("2024-03-10T12:00:00", { hour: 9 }) // "2024-03-10T09:00:00"
|
|
24
31
|
* @example setDateTime("2024-01-31T12:00:00", { month: 2 }) // "2024-02-29T12:00:00" (constrain clamps to the last valid day)
|
|
25
32
|
* @example setDateTime("2024-01-31T12:00:00", { month: 2 }, { overflow: "reject" }) // ""
|
|
26
33
|
* @example setDateTime("2024-03-10T12:00:00", {}) // "2024-03-10T12:00:00" (empty fields object is a no-op)
|
|
34
|
+
* @example setDateTime("2024-03-10T12:00:00", { hour: "9" }) // "" (not converted)
|
|
27
35
|
* @example setDateTime("invalid", { hour: 9 }) // ""
|
|
28
36
|
*/
|
|
29
|
-
export declare function setDateTime(value: string, fields: Omit<Temporal.PlainDateTimeLike, "calendar">, options?: {
|
|
37
|
+
export declare function setDateTime(value: string, fields: Omit<Temporal.PlainDateTimeLike, "calendar" | "era" | "eraYear">, options?: {
|
|
38
|
+
/**
|
|
39
|
+
* What to do when the fields do not form a real date-time. `"constrain"` clamps each field to
|
|
40
|
+
* its nearest valid value, so `month: 2` on the 31st gives Feb 29 or 28; `"reject"` returns
|
|
41
|
+
* `""`.
|
|
42
|
+
*
|
|
43
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
44
|
+
*/
|
|
30
45
|
overflow?: Overflow;
|
|
31
46
|
}): string;
|