@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
|
@@ -10,24 +10,30 @@ import type { Disambiguation, Offset, Overflow } from "../../types/index.js";
|
|
|
10
10
|
* equivalent to `.with()`'s, because Temporal's `ZonedDateTime.prototype.add()` doesn't accept
|
|
11
11
|
* `disambiguation`/`offset` at all.
|
|
12
12
|
* - `fields` may set any of `year`, `month`, `monthCode`, `day`, `hour`, `minute`, `second`,
|
|
13
|
-
* `millisecond`, `microsecond
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* -
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
13
|
+
* `millisecond`, `microsecond` and/or `nanosecond`; omitted fields keep their current value. An
|
|
14
|
+
* object with no field set, such as `{}` or `{ year: undefined }`, is a no-op.
|
|
15
|
+
* - Values are not converted: `monthCode` must be a string and every other field an integer number.
|
|
16
|
+
* `null`, a numeric string, a boolean or a fraction returns "", where Temporal would convert or
|
|
17
|
+
* truncate it. A bigint, `NaN` or an infinity returns "" too. A number too large for its
|
|
18
|
+
* field follows `overflow`. A month or day below 1, or a date outside Temporal's range, returns
|
|
19
|
+
* "".
|
|
20
|
+
* - An own key that is not one of these fields, such as a misspelt `yaer`, returns "". So does an
|
|
21
|
+
* era, an `offset`, or a `calendar` or `timeZone` property, whether own, inherited or a getter. A
|
|
22
|
+
* field is read with a property get, as Temporal reads it, so an inherited or getter field is
|
|
23
|
+
* 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.
|
|
27
|
+
* - `calendar`, `timeZone`, and `offset` are deliberately excluded from `fields` — this function
|
|
28
|
+
* only sets date/time components, never the zone or calendar identity, and `offset` is
|
|
29
|
+
* controlled separately via `options.offset`.
|
|
24
30
|
* - **Compatibility:** before 1.16.0 `offset` defaulted to `"ignore"`. Pass `{ offset: "ignore" }`
|
|
25
31
|
* to keep that resolution.
|
|
26
32
|
* - Returns "" for invalid input.
|
|
27
33
|
*
|
|
28
34
|
* @param value zoned ISO 8601 datetime string
|
|
29
35
|
* @param fields Partial<Temporal.ZonedDateTimeLike> object (excluding calendar/timeZone/offset) specifying fields to set
|
|
30
|
-
* @param options optional
|
|
36
|
+
* @param options optional settings for resolving an out-of-range date and the new wall-clock time
|
|
31
37
|
* @returns zoned ISO 8601 string with fields set, or "" on invalid input
|
|
32
38
|
*
|
|
33
39
|
* @example setZoned("2024-03-10T12:00:00-04:00[America/New_York]", { hour: 9 }) // "2024-03-10T09:00:00-04:00[America/New_York]"
|
|
@@ -36,10 +42,35 @@ import type { Disambiguation, Offset, Overflow } from "../../types/index.js";
|
|
|
36
42
|
* @example setZoned("2024-03-10T12:00:00-04:00[America/New_York]", {}) // "2024-03-10T12:00:00-04:00[America/New_York]" (empty fields object is a no-op)
|
|
37
43
|
* @example setZoned("2024-11-03T01:45:00-05:00[America/New_York]", { minute: 0 }, { disambiguation: "reject" }) // "2024-11-03T01:00:00-05:00[America/New_York]" (offset defaults to "prefer": the source's -05:00 is still valid, so it is kept and "reject" never fires)
|
|
38
44
|
* @example setZoned("2024-11-03T01:45:00-05:00[America/New_York]", { minute: 0 }, { disambiguation: "reject", offset: "ignore" }) // "" (offset "ignore" re-resolves the repeated 01:00, and "reject" throws)
|
|
45
|
+
* @example setZoned("2024-03-10T12:00:00-04:00[America/New_York]", { hour: "9" }) // "" (not converted)
|
|
39
46
|
* @example setZoned("invalid", { hour: 9 }) // ""
|
|
40
47
|
*/
|
|
41
|
-
export declare function setZoned(value: string, fields: Omit<Temporal.ZonedDateTimeLike, "calendar" | "timeZone" | "offset">, options?: {
|
|
48
|
+
export declare function setZoned(value: string, fields: Omit<Temporal.ZonedDateTimeLike, "calendar" | "timeZone" | "offset" | "era" | "eraYear">, options?: {
|
|
49
|
+
/**
|
|
50
|
+
* What happens when the result names a day its month does not have, such as setting `month: 2`
|
|
51
|
+
* on 31 January. `"constrain"` clamps to the last valid day; `"reject"` returns `""`.
|
|
52
|
+
*
|
|
53
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
54
|
+
*/
|
|
42
55
|
overflow?: Overflow;
|
|
56
|
+
/**
|
|
57
|
+
* How the new wall-clock time resolves when it falls in a DST gap or overlap and `offset` does
|
|
58
|
+
* not settle it. In a fall-back overlap `"compatible"` and `"earlier"` take the earlier instant
|
|
59
|
+
* and `"later"` the later one; in a spring-forward gap `"compatible"` and `"later"` move the
|
|
60
|
+
* wall clock forward by the gap length and `"earlier"` back by it. `"reject"` returns `""` for
|
|
61
|
+
* both.
|
|
62
|
+
*
|
|
63
|
+
* @defaultValue `"compatible"`, Temporal's default.
|
|
64
|
+
*/
|
|
43
65
|
disambiguation?: Disambiguation;
|
|
66
|
+
/**
|
|
67
|
+
* How the source's UTC offset is treated at the new wall-clock time, as in Temporal's
|
|
68
|
+
* `ZonedDateTime#with`. `"prefer"` keeps it while it is still valid there (a repeated fall-back
|
|
69
|
+
* hour) and otherwise resolves through `disambiguation`; `"ignore"` always resolves through
|
|
70
|
+
* `disambiguation`. `"use"` keeps the offset even when that moves the wall clock, and
|
|
71
|
+
* `"reject"` returns `""` when the offset is not valid for the new wall time.
|
|
72
|
+
*
|
|
73
|
+
* @defaultValue `"prefer"`, Temporal's default.
|
|
74
|
+
*/
|
|
44
75
|
offset?: Offset;
|
|
45
76
|
}): string;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import { resolveOverflow, withZonedFields, zonedDateTimeFrom, } from "../../internal/index.js";
|
|
2
|
+
import { DATE_TIME_FIELDS, readSetFields, resolveOverflow, withZonedFields, zonedDateTimeFrom, } from "../../internal/index.js";
|
|
3
3
|
import { isValidZonedDateTime } from "../validate/index.js";
|
|
4
4
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
5
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
5
6
|
/**
|
|
6
7
|
* Return a zoned ISO 8601 datetime string with the given `fields` set on `value`.
|
|
7
8
|
*
|
|
@@ -12,24 +13,30 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
12
13
|
* equivalent to `.with()`'s, because Temporal's `ZonedDateTime.prototype.add()` doesn't accept
|
|
13
14
|
* `disambiguation`/`offset` at all.
|
|
14
15
|
* - `fields` may set any of `year`, `month`, `monthCode`, `day`, `hour`, `minute`, `second`,
|
|
15
|
-
* `millisecond`, `microsecond
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* -
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
16
|
+
* `millisecond`, `microsecond` and/or `nanosecond`; omitted fields keep their current value. An
|
|
17
|
+
* object with no field set, such as `{}` or `{ year: undefined }`, is a no-op.
|
|
18
|
+
* - Values are not converted: `monthCode` must be a string and every other field an integer number.
|
|
19
|
+
* `null`, a numeric string, a boolean or a fraction returns "", where Temporal would convert or
|
|
20
|
+
* truncate it. A bigint, `NaN` or an infinity returns "" too. A number too large for its
|
|
21
|
+
* field follows `overflow`. A month or day below 1, or a date outside Temporal's range, returns
|
|
22
|
+
* "".
|
|
23
|
+
* - An own key that is not one of these fields, such as a misspelt `yaer`, returns "". So does an
|
|
24
|
+
* era, an `offset`, or a `calendar` or `timeZone` property, whether own, inherited or a getter. A
|
|
25
|
+
* field is read with a property get, as Temporal reads it, so an inherited or getter field is
|
|
26
|
+
* set.
|
|
27
|
+
* - A Temporal date or time object returns "", as Temporal's `with` refuses one. One whose
|
|
28
|
+
* prototype has been replaced with `Object.prototype`, `null` or `Function.prototype` sets
|
|
29
|
+
* nothing instead.
|
|
30
|
+
* - `calendar`, `timeZone`, and `offset` are deliberately excluded from `fields` — this function
|
|
31
|
+
* only sets date/time components, never the zone or calendar identity, and `offset` is
|
|
32
|
+
* controlled separately via `options.offset`.
|
|
26
33
|
* - **Compatibility:** before 1.16.0 `offset` defaulted to `"ignore"`. Pass `{ offset: "ignore" }`
|
|
27
34
|
* to keep that resolution.
|
|
28
35
|
* - Returns "" for invalid input.
|
|
29
36
|
*
|
|
30
37
|
* @param value zoned ISO 8601 datetime string
|
|
31
38
|
* @param fields Partial<Temporal.ZonedDateTimeLike> object (excluding calendar/timeZone/offset) specifying fields to set
|
|
32
|
-
* @param options optional
|
|
39
|
+
* @param options optional settings for resolving an out-of-range date and the new wall-clock time
|
|
33
40
|
* @returns zoned ISO 8601 string with fields set, or "" on invalid input
|
|
34
41
|
*
|
|
35
42
|
* @example setZoned("2024-03-10T12:00:00-04:00[America/New_York]", { hour: 9 }) // "2024-03-10T09:00:00-04:00[America/New_York]"
|
|
@@ -38,6 +45,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
38
45
|
* @example setZoned("2024-03-10T12:00:00-04:00[America/New_York]", {}) // "2024-03-10T12:00:00-04:00[America/New_York]" (empty fields object is a no-op)
|
|
39
46
|
* @example setZoned("2024-11-03T01:45:00-05:00[America/New_York]", { minute: 0 }, { disambiguation: "reject" }) // "2024-11-03T01:00:00-05:00[America/New_York]" (offset defaults to "prefer": the source's -05:00 is still valid, so it is kept and "reject" never fires)
|
|
40
47
|
* @example setZoned("2024-11-03T01:45:00-05:00[America/New_York]", { minute: 0 }, { disambiguation: "reject", offset: "ignore" }) // "" (offset "ignore" re-resolves the repeated 01:00, and "reject" throws)
|
|
48
|
+
* @example setZoned("2024-03-10T12:00:00-04:00[America/New_York]", { hour: "9" }) // "" (not converted)
|
|
41
49
|
* @example setZoned("invalid", { hour: 9 }) // ""
|
|
42
50
|
*/
|
|
43
51
|
export function setZoned(value, fields, options) {
|
|
@@ -48,18 +56,19 @@ export function setZoned(value, fields, options) {
|
|
|
48
56
|
if (!isValidZonedDateTime(value))
|
|
49
57
|
return "";
|
|
50
58
|
const overflow = resolveOverflow(options?.overflow);
|
|
51
|
-
const disambiguation = options?.disambiguation
|
|
52
|
-
? "compatible"
|
|
53
|
-
: options.disambiguation;
|
|
59
|
+
const disambiguation = optionOrDefault(options?.disambiguation, "compatible");
|
|
54
60
|
// Temporal ZonedDateTime#with's own default: keep the source offset while it is still valid.
|
|
55
|
-
const offset = options?.offset
|
|
61
|
+
const offset = optionOrDefault(options?.offset, "prefer");
|
|
56
62
|
try {
|
|
57
63
|
const zoned = zonedDateTimeFrom(value);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
64
|
+
const set = readSetFields(fields, DATE_TIME_FIELDS);
|
|
65
|
+
if (set === null)
|
|
66
|
+
return "";
|
|
67
|
+
// Only the values readSetFields checked reach Temporal, on both paths of withZonedFields. An
|
|
68
|
+
// empty result sets nothing: a no-op here, where Temporal's with() would throw.
|
|
69
|
+
if (Object.keys(set).length === 0)
|
|
61
70
|
return zoned.toString();
|
|
62
|
-
return withZonedFields(zoned,
|
|
71
|
+
return withZonedFields(zoned, set, {
|
|
63
72
|
overflow,
|
|
64
73
|
disambiguation,
|
|
65
74
|
offset,
|
|
@@ -4,11 +4,10 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
4
4
|
*
|
|
5
5
|
* - Calculates which quarter (1-4) the date falls into and returns the first instant of that quarter, with every field below the day reset — milliseconds, microseconds and nanoseconds included.
|
|
6
6
|
* - Returns the real start of the local quarter in `value`'s own zone (see `floorToZone`), so the result is never after `value`: a skipped first midnight starts at the quarter's first real instant, and a repeated one (`Africa/Tunis`, 1978-10-01) at its first pass.
|
|
7
|
-
* - `fractionalSecondDigits` controls how many fractional seconds are included in the output: 0 (default — no fractional seconds), 3 (milliseconds), 6 (microseconds), or 9 (nanoseconds).
|
|
8
7
|
* - Validation is performed on the input.
|
|
9
8
|
*
|
|
10
9
|
* @param value ISO ZonedDateTime string
|
|
11
|
-
* @param optionsArg optional
|
|
10
|
+
* @param optionsArg optional setting for the precision of the output string
|
|
12
11
|
* @returns ISO ZonedDateTime string for the start of the quarter, or "" on invalid input
|
|
13
12
|
*
|
|
14
13
|
* @example startOfQuarterForZoned("2024-02-15T14:30:00+00:00[UTC]") // "2024-01-01T00:00:00+00:00[UTC]"
|
|
@@ -18,5 +17,11 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
18
17
|
* @example startOfQuarterForZoned("invalid") // ""
|
|
19
18
|
*/
|
|
20
19
|
export declare function startOfQuarterForZoned(value: string, optionsArg?: {
|
|
20
|
+
/**
|
|
21
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
22
|
+
* drop trailing zeros. A start has no sub-second part, so any digits written are zeros.
|
|
23
|
+
*
|
|
24
|
+
* @defaultValue `0`
|
|
25
|
+
*/
|
|
21
26
|
fractionalSecondDigits?: FractionalDigit;
|
|
22
27
|
}): string;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { zonedDateTimeFrom, zonedUnitStart } from "../../internal/index.js";
|
|
2
2
|
import { isValidZonedDateTime } from "../validate/index.js";
|
|
3
3
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
4
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
4
5
|
/**
|
|
5
6
|
* Return the start of the quarter for a given zoned ISO datetime.
|
|
6
7
|
*
|
|
7
8
|
* - Calculates which quarter (1-4) the date falls into and returns the first instant of that quarter, with every field below the day reset — milliseconds, microseconds and nanoseconds included.
|
|
8
9
|
* - Returns the real start of the local quarter in `value`'s own zone (see `floorToZone`), so the result is never after `value`: a skipped first midnight starts at the quarter's first real instant, and a repeated one (`Africa/Tunis`, 1978-10-01) at its first pass.
|
|
9
|
-
* - `fractionalSecondDigits` controls how many fractional seconds are included in the output: 0 (default — no fractional seconds), 3 (milliseconds), 6 (microseconds), or 9 (nanoseconds).
|
|
10
10
|
* - Validation is performed on the input.
|
|
11
11
|
*
|
|
12
12
|
* @param value ISO ZonedDateTime string
|
|
13
|
-
* @param optionsArg optional
|
|
13
|
+
* @param optionsArg optional setting for the precision of the output string
|
|
14
14
|
* @returns ISO ZonedDateTime string for the start of the quarter, or "" on invalid input
|
|
15
15
|
*
|
|
16
16
|
* @example startOfQuarterForZoned("2024-02-15T14:30:00+00:00[UTC]") // "2024-01-01T00:00:00+00:00[UTC]"
|
|
@@ -27,9 +27,7 @@ export function startOfQuarterForZoned(value, optionsArg) {
|
|
|
27
27
|
if (!isValidZonedDateTime(value)) {
|
|
28
28
|
return "";
|
|
29
29
|
}
|
|
30
|
-
const fractionalSecondDigits = optionsArg?.fractionalSecondDigits
|
|
31
|
-
? 0
|
|
32
|
-
: optionsArg.fractionalSecondDigits;
|
|
30
|
+
const fractionalSecondDigits = optionOrDefault(optionsArg?.fractionalSecondDigits, 0);
|
|
33
31
|
try {
|
|
34
32
|
const start = zonedUnitStart(zonedDateTimeFrom(value), "quarter");
|
|
35
33
|
return start ? start.toString({ fractionalSecondDigits }) : "";
|
|
@@ -4,18 +4,16 @@ import type { DateTimeUnit, FractionalDigit } from "../../types/index.js";
|
|
|
4
4
|
* Return the start of the specified date-time `unit` for a given zoned ISO 8601 datetime string.
|
|
5
5
|
*
|
|
6
6
|
* - Supports: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", each also in its plural form (`"days"`), as Temporal accepts.
|
|
7
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
8
7
|
* - Returns the real start of the local `unit` containing `value` in its own zone — the same bucket `floorToZone` uses — so the result is never after `value`. A local hour `Pacific/Chatham`'s spring-forward leaves only 15 minutes long starts at 03:45, the second pass of New York's repeated fall-back hour starts at its own 01:00 (−05:00), and a day whose midnight was skipped starts at its first real instant.
|
|
9
8
|
* - A transition that reopens the previous local date makes that stretch its own bucket. `America/Goose_Bay` fell back at 00:01 on 7 November 2010, re-entering 6 November for 59 minutes, so `2010-11-06T23:30:00-04:00` has a day that starts at 23:01 — consistent with `floorToZone`, `bucketRange` and `intervalCountZoned`.
|
|
10
9
|
* - A midnight repeated on the same date stays one day: `America/Havana`'s 2024-11-03 starts at its first 00:00 (−04:00) and runs 25 hours, matching Temporal's `startOfDay()`.
|
|
11
10
|
* - Takes no `disambiguation` or `offset`: a boundary is always a real instant, as TC39's `startOfDay()`
|
|
12
11
|
* takes neither. Those ignored options were removed in 1.16.0.
|
|
13
|
-
* - `fractionalSecondDigits` defaults to 3, 6 or 9 for "millisecond", "microsecond" or "nanosecond", and 0 otherwise.
|
|
14
12
|
* - Returns "" for invalid input.
|
|
15
13
|
*
|
|
16
14
|
* @param value zoned ISO 8601 datetime string
|
|
17
15
|
* @param unit date or time unit, singular or plural, to specify the unit for the start
|
|
18
|
-
* @param
|
|
16
|
+
* @param optionsArg optional settings for the week's first day and the precision of the output string
|
|
19
17
|
* @returns zoned ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
20
18
|
*
|
|
21
19
|
* @example startOfZoned("2024-02-29T12:34:56+00:00[UTC]", "month") // "2024-02-01T00:00:00+00:00[UTC]"
|
|
@@ -26,6 +24,20 @@ import type { DateTimeUnit, FractionalDigit } from "../../types/index.js";
|
|
|
26
24
|
* @example startOfZoned("2024-11-03T00:30:00-05:00[America/Havana]", "day") // "2024-11-03T00:00:00-04:00[America/Havana]" (midnight repeated on the same date: one 25-hour day)
|
|
27
25
|
*/
|
|
28
26
|
export declare function startOfZoned(value: string, unit: Temporal.SmallestUnit<DateTimeUnit>, optionsArg?: {
|
|
27
|
+
/**
|
|
28
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
29
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
30
|
+
* `""`, whatever the unit.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue `"monday"`
|
|
33
|
+
*/
|
|
29
34
|
weekStartsOn?: "monday" | "sunday";
|
|
35
|
+
/**
|
|
36
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
37
|
+
* drop trailing zeros. Fewer digits than `unit` names truncate, as Temporal's `toString` does.
|
|
38
|
+
*
|
|
39
|
+
* @defaultValue The digits `unit` names: `3` for `"millisecond"`, `6` for `"microsecond"`, `9`
|
|
40
|
+
* for `"nanosecond"` and `0` for any coarser unit.
|
|
41
|
+
*/
|
|
30
42
|
fractionalSecondDigits?: FractionalDigit;
|
|
31
43
|
}): string;
|
|
@@ -4,18 +4,16 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
4
4
|
* Return the start of the specified date-time `unit` for a given zoned ISO 8601 datetime string.
|
|
5
5
|
*
|
|
6
6
|
* - Supports: "year", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", each also in its plural form (`"days"`), as Temporal accepts.
|
|
7
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
8
7
|
* - Returns the real start of the local `unit` containing `value` in its own zone — the same bucket `floorToZone` uses — so the result is never after `value`. A local hour `Pacific/Chatham`'s spring-forward leaves only 15 minutes long starts at 03:45, the second pass of New York's repeated fall-back hour starts at its own 01:00 (−05:00), and a day whose midnight was skipped starts at its first real instant.
|
|
9
8
|
* - A transition that reopens the previous local date makes that stretch its own bucket. `America/Goose_Bay` fell back at 00:01 on 7 November 2010, re-entering 6 November for 59 minutes, so `2010-11-06T23:30:00-04:00` has a day that starts at 23:01 — consistent with `floorToZone`, `bucketRange` and `intervalCountZoned`.
|
|
10
9
|
* - A midnight repeated on the same date stays one day: `America/Havana`'s 2024-11-03 starts at its first 00:00 (−04:00) and runs 25 hours, matching Temporal's `startOfDay()`.
|
|
11
10
|
* - Takes no `disambiguation` or `offset`: a boundary is always a real instant, as TC39's `startOfDay()`
|
|
12
11
|
* takes neither. Those ignored options were removed in 1.16.0.
|
|
13
|
-
* - `fractionalSecondDigits` defaults to 3, 6 or 9 for "millisecond", "microsecond" or "nanosecond", and 0 otherwise.
|
|
14
12
|
* - Returns "" for invalid input.
|
|
15
13
|
*
|
|
16
14
|
* @param value zoned ISO 8601 datetime string
|
|
17
15
|
* @param unit date or time unit, singular or plural, to specify the unit for the start
|
|
18
|
-
* @param
|
|
16
|
+
* @param optionsArg optional settings for the week's first day and the precision of the output string
|
|
19
17
|
* @returns zoned ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
20
18
|
*
|
|
21
19
|
* @example startOfZoned("2024-02-29T12:34:56+00:00[UTC]", "month") // "2024-02-01T00:00:00+00:00[UTC]"
|
|
@@ -13,13 +13,9 @@ import type { DateTimeDurationUnit, Disambiguation, Overflow } from "../../types
|
|
|
13
13
|
* annotation after the zone, canonical calendar ids); see `isValidCalendarZonedDateTime`.
|
|
14
14
|
* - Follows Temporal's AddZonedDateTime: the date portion of the duration (years, months, weeks,
|
|
15
15
|
* days) moves the wall-clock date, then the time portion (hours and smaller) is subtracted in exact
|
|
16
|
-
* time. `disambiguation`
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* and "earlier" take the earlier instant and "later" the later one; in a spring-forward
|
|
20
|
-
* (DST-start) gap "compatible" and "later" move the wall clock forward by the gap length and
|
|
21
|
-
* "earlier" back by it; "reject" returns "" for both. It never re-resolves the exact-time
|
|
22
|
-
* result, so a time-only duration ignores it.
|
|
16
|
+
* time. `disambiguation` applies ONLY to the intermediate wall-clock date-time after the date
|
|
17
|
+
* portion, exactly as Temporal's GetEpochNanosecondsFor resolves it. It never re-resolves the
|
|
18
|
+
* exact-time result.
|
|
23
19
|
* - Compatibility: before 1.16.0 a date portion landing in a spring-forward gap was always moved
|
|
24
20
|
* forward, whatever `disambiguation` said, so "earlier" matched "compatible" and "reject" did not
|
|
25
21
|
* fail. Pass "compatible" (or omit it) to keep the forward result.
|
|
@@ -31,13 +27,11 @@ import type { DateTimeDurationUnit, Disambiguation, Overflow } from "../../types
|
|
|
31
27
|
* - There is no `offset` option (removed in 1.16.0): the intermediate wall clock is resolved from
|
|
32
28
|
* a plain date-time, which has no UTC offset for it to act on (Temporal
|
|
33
29
|
* `PlainDateTime#toZonedDateTime` reads only `disambiguation`).
|
|
34
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
35
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
36
30
|
* - Returns "" for invalid input.
|
|
37
31
|
*
|
|
38
32
|
* @param value ISO 8601 zoned datetime string, optionally calendar-annotated
|
|
39
33
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
40
|
-
* @param optionsArg optional
|
|
34
|
+
* @param optionsArg optional settings for resolving a DST gap or overlap and an out-of-range date
|
|
41
35
|
* @returns zoned ISO 8601 string on success, or "" on invalid input
|
|
42
36
|
*
|
|
43
37
|
* @example subtractZoned("2024-03-10T12:00:00-04:00[America/New_York]", { days: 5 }) // "2024-03-05T12:00:00-05:00[America/New_York]"
|
|
@@ -54,6 +48,22 @@ import type { DateTimeDurationUnit, Disambiguation, Overflow } from "../../types
|
|
|
54
48
|
* @example subtractZoned("2024-03-10T14:30:00-04:00[u-ca=hebrew][America/New_York]", { days: 1 }) // "" (calendar before zone is not RFC 9557)
|
|
55
49
|
*/
|
|
56
50
|
export declare function subtractZoned(value: string, units: Partial<Record<DateTimeDurationUnit, number>>, optionsArg?: {
|
|
51
|
+
/**
|
|
52
|
+
* How the intermediate wall-clock date-time, reached after the date portion of the duration is
|
|
53
|
+
* applied, resolves when it falls in a DST gap or overlap. In a fall-back overlap
|
|
54
|
+
* `"compatible"` and `"earlier"` take the earlier instant and `"later"` the later one; in a
|
|
55
|
+
* spring-forward gap `"compatible"` and `"later"` move the wall clock forward by the gap length
|
|
56
|
+
* and `"earlier"` back by it. `"reject"` returns `""` for both, and a time-only duration
|
|
57
|
+
* ignores the option.
|
|
58
|
+
*
|
|
59
|
+
* @defaultValue `"compatible"`, Temporal's default.
|
|
60
|
+
*/
|
|
57
61
|
disambiguation?: Disambiguation;
|
|
62
|
+
/**
|
|
63
|
+
* What happens when the result names a day its month does not have, such as subtracting 1 month
|
|
64
|
+
* from 31 March. `"constrain"` clamps to the last valid day; `"reject"` returns `""`.
|
|
65
|
+
*
|
|
66
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
67
|
+
*/
|
|
58
68
|
overflow?: Overflow;
|
|
59
69
|
}): string;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
|
-
import { addToZonedDisambiguated, calendarSystemOfZonedValue, formatZonedInCalendar,
|
|
2
|
+
import { addToZonedDisambiguated, calendarSystemOfZonedValue, formatZonedInCalendar, parseCalendarZonedValue, readDurationUnits, resolveOverflow, } from "../../internal/index.js";
|
|
3
3
|
import { isValidDateTimeDurationUnit } from "../../plain/validate/index.js";
|
|
4
4
|
import { isValidCalendarZonedDateTime } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
6
7
|
/**
|
|
7
8
|
* Subtract a temporal amount from a zoned ISO 8601 datetime string and return a zoned ISO 8601 string.
|
|
8
9
|
*
|
|
@@ -17,13 +18,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
17
18
|
* annotation after the zone, canonical calendar ids); see `isValidCalendarZonedDateTime`.
|
|
18
19
|
* - Follows Temporal's AddZonedDateTime: the date portion of the duration (years, months, weeks,
|
|
19
20
|
* days) moves the wall-clock date, then the time portion (hours and smaller) is subtracted in exact
|
|
20
|
-
* time. `disambiguation`
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* and "earlier" take the earlier instant and "later" the later one; in a spring-forward
|
|
24
|
-
* (DST-start) gap "compatible" and "later" move the wall clock forward by the gap length and
|
|
25
|
-
* "earlier" back by it; "reject" returns "" for both. It never re-resolves the exact-time
|
|
26
|
-
* result, so a time-only duration ignores it.
|
|
21
|
+
* time. `disambiguation` applies ONLY to the intermediate wall-clock date-time after the date
|
|
22
|
+
* portion, exactly as Temporal's GetEpochNanosecondsFor resolves it. It never re-resolves the
|
|
23
|
+
* exact-time result.
|
|
27
24
|
* - Compatibility: before 1.16.0 a date portion landing in a spring-forward gap was always moved
|
|
28
25
|
* forward, whatever `disambiguation` said, so "earlier" matched "compatible" and "reject" did not
|
|
29
26
|
* fail. Pass "compatible" (or omit it) to keep the forward result.
|
|
@@ -35,13 +32,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
35
32
|
* - There is no `offset` option (removed in 1.16.0): the intermediate wall clock is resolved from
|
|
36
33
|
* a plain date-time, which has no UTC offset for it to act on (Temporal
|
|
37
34
|
* `PlainDateTime#toZonedDateTime` reads only `disambiguation`).
|
|
38
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
39
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
40
35
|
* - Returns "" for invalid input.
|
|
41
36
|
*
|
|
42
37
|
* @param value ISO 8601 zoned datetime string, optionally calendar-annotated
|
|
43
38
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
44
|
-
* @param optionsArg optional
|
|
39
|
+
* @param optionsArg optional settings for resolving a DST gap or overlap and an out-of-range date
|
|
45
40
|
* @returns zoned ISO 8601 string on success, or "" on invalid input
|
|
46
41
|
*
|
|
47
42
|
* @example subtractZoned("2024-03-10T12:00:00-04:00[America/New_York]", { days: 5 }) // "2024-03-05T12:00:00-05:00[America/New_York]"
|
|
@@ -63,16 +58,11 @@ export function subtractZoned(value, units, optionsArg) {
|
|
|
63
58
|
return "";
|
|
64
59
|
}
|
|
65
60
|
const validZonedDateTime = isValidCalendarZonedDateTime(value);
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
Object.keys(units).every(isValidDateTimeDurationUnit);
|
|
69
|
-
const validAmounts = validUnits && Object.values(units).every(isValidAmount);
|
|
70
|
-
if (!validZonedDateTime || !validUnits || !validAmounts) {
|
|
61
|
+
const amounts = readDurationUnits(units, isValidDateTimeDurationUnit);
|
|
62
|
+
if (!validZonedDateTime || amounts === null) {
|
|
71
63
|
return "";
|
|
72
64
|
}
|
|
73
|
-
const disambiguation = optionsArg?.disambiguation
|
|
74
|
-
? "compatible"
|
|
75
|
-
: optionsArg.disambiguation;
|
|
65
|
+
const disambiguation = optionOrDefault(optionsArg?.disambiguation, "compatible");
|
|
76
66
|
const overflow = resolveOverflow(optionsArg?.overflow);
|
|
77
67
|
try {
|
|
78
68
|
const calendar = calendarSystemOfZonedValue(value);
|
|
@@ -80,7 +70,7 @@ export function subtractZoned(value, units, optionsArg) {
|
|
|
80
70
|
return "";
|
|
81
71
|
}
|
|
82
72
|
const zoned = parseCalendarZonedValue(value);
|
|
83
|
-
const subtracted = addToZonedDisambiguated(zoned,
|
|
73
|
+
const subtracted = addToZonedDisambiguated(zoned, amounts, -1, {
|
|
84
74
|
overflow,
|
|
85
75
|
disambiguation,
|
|
86
76
|
});
|
|
@@ -6,8 +6,11 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
6
6
|
* - Equality is measured on each value's own local wall-clock fields (its own
|
|
7
7
|
* time zone), not on the underlying instant or time zone identifier — the
|
|
8
8
|
* same instant can be "the same day" in one zone and a different day in
|
|
9
|
-
* another, and this function answers per each value's own zone,
|
|
10
|
-
*
|
|
9
|
+
* another, and this function answers per each value's own zone, because a
|
|
10
|
+
* `Temporal.ZonedDateTime` reads its calendar and clock fields in its own
|
|
11
|
+
* time zone.
|
|
12
|
+
* - Comparison: Luxon's `dt.hasSame(other, unit)` also compares the two values'
|
|
13
|
+
* local times.
|
|
11
14
|
* - Each value's start-of-unit is its real local bucket (see `startOfZoned`), so a bucket a
|
|
12
15
|
* zone transition shortened is still its own unit: in `Pacific/Chatham` on its 2024
|
|
13
16
|
* spring-forward, 03:50 and 04:05 are different hours, because the 03:00 hour lasted only
|
|
@@ -18,10 +21,9 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
18
21
|
* compared by their buckets' local labels, since their instants never line up.
|
|
19
22
|
* - `"month"` requires the same month AND year, matching `areDateTimesEqualBy`.
|
|
20
23
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
21
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
22
24
|
* - Returns false for an unsupported unit or invalid input.
|
|
23
25
|
*
|
|
24
|
-
* Mapping from date-fns
|
|
26
|
+
* Mapping from date-fns:
|
|
25
27
|
* - `isSameDay(a, b)` → `areZonedEqualBy(a, b, "day")`
|
|
26
28
|
* - `isSameMonth(a, b)` → `areZonedEqualBy(a, b, "month")`
|
|
27
29
|
* - `isSameYear(a, b)` → `areZonedEqualBy(a, b, "year")`
|
|
@@ -29,7 +31,7 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
29
31
|
* @param value1 first zoned ISO datetime string
|
|
30
32
|
* @param value2 second zoned ISO datetime string
|
|
31
33
|
* @param unit date or time unit, singular or plural, to compare by
|
|
32
|
-
* @param optionsArg optional
|
|
34
|
+
* @param optionsArg optional setting for the week's first day
|
|
33
35
|
* @returns true if both values share the same local start-of-unit boundary, false on an unsupported unit or invalid input
|
|
34
36
|
*
|
|
35
37
|
* @example areZonedEqualBy("2024-03-15T10:00:00-04:00[America/New_York]", "2024-03-15T20:00:00+01:00[Europe/Berlin]", "day") // true (both are local March 15 in their own zone)
|
|
@@ -39,5 +41,12 @@ import type { DateTimeUnit } from "../../types/index.js";
|
|
|
39
41
|
* @example areZonedEqualBy("invalid", "2024-03-15T10:00:00-04:00[America/New_York]", "day") // false
|
|
40
42
|
*/
|
|
41
43
|
export declare function areZonedEqualBy(value1: string, value2: string, unit: Temporal.SmallestUnit<DateTimeUnit>, optionsArg?: {
|
|
44
|
+
/**
|
|
45
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
46
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
47
|
+
* false, whatever the unit.
|
|
48
|
+
*
|
|
49
|
+
* @defaultValue `"monday"`
|
|
50
|
+
*/
|
|
42
51
|
weekStartsOn?: "monday" | "sunday";
|
|
43
52
|
}): boolean;
|
|
@@ -12,8 +12,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
12
12
|
* - Equality is measured on each value's own local wall-clock fields (its own
|
|
13
13
|
* time zone), not on the underlying instant or time zone identifier — the
|
|
14
14
|
* same instant can be "the same day" in one zone and a different day in
|
|
15
|
-
* another, and this function answers per each value's own zone,
|
|
16
|
-
*
|
|
15
|
+
* another, and this function answers per each value's own zone, because a
|
|
16
|
+
* `Temporal.ZonedDateTime` reads its calendar and clock fields in its own
|
|
17
|
+
* time zone.
|
|
18
|
+
* - Comparison: Luxon's `dt.hasSame(other, unit)` also compares the two values'
|
|
19
|
+
* local times.
|
|
17
20
|
* - Each value's start-of-unit is its real local bucket (see `startOfZoned`), so a bucket a
|
|
18
21
|
* zone transition shortened is still its own unit: in `Pacific/Chatham` on its 2024
|
|
19
22
|
* spring-forward, 03:50 and 04:05 are different hours, because the 03:00 hour lasted only
|
|
@@ -24,10 +27,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
24
27
|
* compared by their buckets' local labels, since their instants never line up.
|
|
25
28
|
* - `"month"` requires the same month AND year, matching `areDateTimesEqualBy`.
|
|
26
29
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
27
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
28
30
|
* - Returns false for an unsupported unit or invalid input.
|
|
29
31
|
*
|
|
30
|
-
* Mapping from date-fns
|
|
32
|
+
* Mapping from date-fns:
|
|
31
33
|
* - `isSameDay(a, b)` → `areZonedEqualBy(a, b, "day")`
|
|
32
34
|
* - `isSameMonth(a, b)` → `areZonedEqualBy(a, b, "month")`
|
|
33
35
|
* - `isSameYear(a, b)` → `areZonedEqualBy(a, b, "year")`
|
|
@@ -35,7 +37,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
35
37
|
* @param value1 first zoned ISO datetime string
|
|
36
38
|
* @param value2 second zoned ISO datetime string
|
|
37
39
|
* @param unit date or time unit, singular or plural, to compare by
|
|
38
|
-
* @param optionsArg optional
|
|
40
|
+
* @param optionsArg optional setting for the week's first day
|
|
39
41
|
* @returns true if both values share the same local start-of-unit boundary, false on an unsupported unit or invalid input
|
|
40
42
|
*
|
|
41
43
|
* @example areZonedEqualBy("2024-03-15T10:00:00-04:00[America/New_York]", "2024-03-15T20:00:00+01:00[Europe/Berlin]", "day") // true (both are local March 15 in their own zone)
|
|
@@ -7,13 +7,25 @@
|
|
|
7
7
|
* @param zoned ISO ZonedDateTime string to check
|
|
8
8
|
* @param start ISO ZonedDateTime string for the start of the range
|
|
9
9
|
* @param end ISO ZonedDateTime string for the end of the range
|
|
10
|
-
* @param options optional
|
|
10
|
+
* @param options optional settings for whether each end of the range is included
|
|
11
11
|
* @returns boolean indicating whether zoned is between start and end
|
|
12
12
|
*
|
|
13
13
|
* @example isBetweenZoned("2024-02-29T12:00:00+00:00[UTC]", "2024-02-29T11:00:00+00:00[UTC]", "2024-02-29T13:00:00+00:00[UTC]") // true
|
|
14
14
|
* @example isBetweenZoned("invalid", "2024-02-29T11:00:00+00:00[UTC]", "2024-02-29T13:00:00+00:00[UTC]") // false
|
|
15
15
|
*/
|
|
16
16
|
export declare function isBetweenZoned(zoned: string, start: string, end: string, options?: {
|
|
17
|
+
/**
|
|
18
|
+
* Whether `zoned` at the same instant as `start` counts as inside the range. `false` requires
|
|
19
|
+
* it to be after `start`.
|
|
20
|
+
*
|
|
21
|
+
* @defaultValue `true`
|
|
22
|
+
*/
|
|
17
23
|
inclusiveStart?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether `zoned` at the same instant as `end` counts as inside the range. `false` requires it
|
|
26
|
+
* to be before `end`.
|
|
27
|
+
*
|
|
28
|
+
* @defaultValue `true`
|
|
29
|
+
*/
|
|
18
30
|
inclusiveEnd?: boolean;
|
|
19
31
|
}): boolean;
|
|
@@ -3,6 +3,7 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
3
3
|
import { isValidZonedDateTime } from "../validate/index.js";
|
|
4
4
|
import { zonedDateTimeFrom } from "../../internal/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
6
7
|
/**
|
|
7
8
|
* Return true when `zoned` is between `start` and `end` (inclusive by default).
|
|
8
9
|
*
|
|
@@ -12,7 +13,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
12
13
|
* @param zoned ISO ZonedDateTime string to check
|
|
13
14
|
* @param start ISO ZonedDateTime string for the start of the range
|
|
14
15
|
* @param end ISO ZonedDateTime string for the end of the range
|
|
15
|
-
* @param options optional
|
|
16
|
+
* @param options optional settings for whether each end of the range is included
|
|
16
17
|
* @returns boolean indicating whether zoned is between start and end
|
|
17
18
|
*
|
|
18
19
|
* @example isBetweenZoned("2024-02-29T12:00:00+00:00[UTC]", "2024-02-29T11:00:00+00:00[UTC]", "2024-02-29T13:00:00+00:00[UTC]") // true
|
|
@@ -27,8 +28,8 @@ export function isBetweenZoned(zoned, start, end, options) {
|
|
|
27
28
|
// reading of it gives `false`: ECMA-402 reads a boolean option through ToBoolean (null → false),
|
|
28
29
|
// and the house rule rejects an invalid member outright — neither yields `true`. So `null`
|
|
29
30
|
// behaves here exactly as `0` and `""` already do.
|
|
30
|
-
const inclusiveStart = options?.inclusiveStart
|
|
31
|
-
const inclusiveEnd = options?.inclusiveEnd
|
|
31
|
+
const inclusiveStart = optionOrDefault(options?.inclusiveStart, true);
|
|
32
|
+
const inclusiveEnd = optionOrDefault(options?.inclusiveEnd, true);
|
|
32
33
|
if (!isValidZonedDateTime(zoned) ||
|
|
33
34
|
!isValidZonedDateTime(start) ||
|
|
34
35
|
!isValidZonedDateTime(end)) {
|