@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
|
@@ -8,13 +8,9 @@ import type { Disambiguation, Overflow } from "../../types/index.js";
|
|
|
8
8
|
* resolve against `value` itself — no separate `relativeTo` is needed.
|
|
9
9
|
* - Follows Temporal's AddZonedDateTime: the date portion of the duration (years, months, weeks,
|
|
10
10
|
* days) moves the wall-clock date, then the time portion (hours and smaller) is added (subtracted
|
|
11
|
-
* for `anchor: "end"`) in exact time. `disambiguation`
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* (DST-end) overlap "compatible" and "earlier" take the earlier instant and "later" the later
|
|
15
|
-
* one; in a spring-forward (DST-start) gap "compatible" and "later" move the wall clock forward by
|
|
16
|
-
* the gap length and "earlier" back by it; "reject" returns null for both. It never re-resolves
|
|
17
|
-
* the exact-time result, so a time-only duration ignores it.
|
|
11
|
+
* for `anchor: "end"`) in exact time. `disambiguation` applies ONLY to the intermediate
|
|
12
|
+
* wall-clock date-time after the date portion, exactly as Temporal's GetEpochNanosecondsFor
|
|
13
|
+
* resolves it. It never re-resolves the exact-time result.
|
|
18
14
|
* - Compatibility: before 1.16.0 a date portion landing in a spring-forward gap was always moved
|
|
19
15
|
* forward, whatever `disambiguation` said. Pass "compatible" (or omit it) to keep that result.
|
|
20
16
|
* - Compatibility: before 1.16.0 a non-"compatible" `disambiguation` re-resolved the final wall
|
|
@@ -25,8 +21,6 @@ import type { Disambiguation, Overflow } from "../../types/index.js";
|
|
|
25
21
|
* from a plain date-time, which has no UTC offset for it to act on.
|
|
26
22
|
* - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
|
|
27
23
|
* happens, mirroring `intervalIntersectionZoned`'s `start > end` rejection.
|
|
28
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
29
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
|
|
30
24
|
* - Accepts a RFC 9557 calendar-annotated zoned string (as produced by `convertZonedToCalendar`) as
|
|
31
25
|
* well as a bare ISO one — E7 (issue #152). Calendar units in `duration` resolve against that
|
|
32
26
|
* calendar, and both returned endpoints are re-derived in it via `formatZonedInCalendar`. There
|
|
@@ -37,7 +31,7 @@ import type { Disambiguation, Overflow } from "../../types/index.js";
|
|
|
37
31
|
* @param value ISO 8601 zoned datetime string, optionally calendar-annotated
|
|
38
32
|
* @param duration ISO 8601 duration string
|
|
39
33
|
* @param anchor "start" | "end" — which endpoint `value` represents
|
|
40
|
-
* @param options optional
|
|
34
|
+
* @param options optional settings for resolving a DST gap or overlap and an out-of-range date
|
|
41
35
|
* @returns `{ start, end }` with the constructed span, or null on invalid input
|
|
42
36
|
*
|
|
43
37
|
* @example intervalFromDurationZoned("2024-01-01T00:00:00+00:00[UTC]", "P1D", "start") // { start: "2024-01-01T00:00:00+00:00[UTC]", end: "2024-01-02T00:00:00+00:00[UTC]" }
|
|
@@ -51,9 +45,34 @@ import type { Disambiguation, Overflow } from "../../types/index.js";
|
|
|
51
45
|
* @example intervalFromDurationZoned("invalid", "P1D", "start") // null
|
|
52
46
|
*/
|
|
53
47
|
export declare function intervalFromDurationZoned(value: string, duration: string, anchor: "start" | "end", options?: {
|
|
48
|
+
/**
|
|
49
|
+
* How the intermediate wall-clock date-time, reached after the date portion of the duration is
|
|
50
|
+
* applied, resolves when it falls in a DST gap or overlap. In a fall-back overlap
|
|
51
|
+
* `"compatible"` and `"earlier"` take the earlier instant and `"later"` the later one; in a
|
|
52
|
+
* spring-forward gap `"compatible"` and `"later"` move the wall clock forward by the gap length
|
|
53
|
+
* and `"earlier"` back by it. `"reject"` returns `null` for both, and a time-only duration
|
|
54
|
+
* ignores the option.
|
|
55
|
+
*
|
|
56
|
+
* @defaultValue `"compatible"`, Temporal's default.
|
|
57
|
+
*/
|
|
54
58
|
disambiguation?: Disambiguation;
|
|
59
|
+
/**
|
|
60
|
+
* What happens when the result names a day its month does not have, such as adding 1 month to
|
|
61
|
+
* 31 January. `"constrain"` clamps to the last valid day; `"reject"` returns `null`.
|
|
62
|
+
*
|
|
63
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
64
|
+
*/
|
|
55
65
|
overflow?: Overflow;
|
|
56
66
|
}): {
|
|
67
|
+
/**
|
|
68
|
+
* The instant the interval begins at, as a zoned ISO 8601 string with offset and bracketed time
|
|
69
|
+
* zone. It keeps a calendar annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
70
|
+
*/
|
|
57
71
|
start: string;
|
|
72
|
+
/**
|
|
73
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
74
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
75
|
+
* `start`, which makes the interval empty.
|
|
76
|
+
*/
|
|
58
77
|
end: string;
|
|
59
78
|
} | null;
|
|
@@ -3,6 +3,7 @@ import { isValidDuration } from "../../duration/validate/index.js";
|
|
|
3
3
|
import { addToZonedDisambiguated, calendarSystemOfZonedValue, formatZonedInCalendar, parseCalendarZonedValue, resolveOverflow, } from "../../internal/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
|
* Construct a zoned interval from a single point plus an ISO 8601 duration, anchored at either end.
|
|
8
9
|
*
|
|
@@ -12,13 +13,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
12
13
|
* resolve against `value` itself — no separate `relativeTo` is needed.
|
|
13
14
|
* - Follows Temporal's AddZonedDateTime: the date portion of the duration (years, months, weeks,
|
|
14
15
|
* days) moves the wall-clock date, then the time portion (hours and smaller) is added (subtracted
|
|
15
|
-
* for `anchor: "end"`) in exact time. `disambiguation`
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* (DST-end) overlap "compatible" and "earlier" take the earlier instant and "later" the later
|
|
19
|
-
* one; in a spring-forward (DST-start) gap "compatible" and "later" move the wall clock forward by
|
|
20
|
-
* the gap length and "earlier" back by it; "reject" returns null for both. It never re-resolves
|
|
21
|
-
* the exact-time result, so a time-only duration ignores it.
|
|
16
|
+
* for `anchor: "end"`) in exact time. `disambiguation` applies ONLY to the intermediate
|
|
17
|
+
* wall-clock date-time after the date portion, exactly as Temporal's GetEpochNanosecondsFor
|
|
18
|
+
* resolves it. It never re-resolves the exact-time result.
|
|
22
19
|
* - Compatibility: before 1.16.0 a date portion landing in a spring-forward gap was always moved
|
|
23
20
|
* forward, whatever `disambiguation` said. Pass "compatible" (or omit it) to keep that result.
|
|
24
21
|
* - Compatibility: before 1.16.0 a non-"compatible" `disambiguation` re-resolved the final wall
|
|
@@ -29,8 +26,6 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
29
26
|
* from a plain date-time, which has no UTC offset for it to act on.
|
|
30
27
|
* - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
|
|
31
28
|
* happens, mirroring `intervalIntersectionZoned`'s `start > end` rejection.
|
|
32
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
33
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
|
|
34
29
|
* - Accepts a RFC 9557 calendar-annotated zoned string (as produced by `convertZonedToCalendar`) as
|
|
35
30
|
* well as a bare ISO one — E7 (issue #152). Calendar units in `duration` resolve against that
|
|
36
31
|
* calendar, and both returned endpoints are re-derived in it via `formatZonedInCalendar`. There
|
|
@@ -41,7 +36,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
41
36
|
* @param value ISO 8601 zoned datetime string, optionally calendar-annotated
|
|
42
37
|
* @param duration ISO 8601 duration string
|
|
43
38
|
* @param anchor "start" | "end" — which endpoint `value` represents
|
|
44
|
-
* @param options optional
|
|
39
|
+
* @param options optional settings for resolving a DST gap or overlap and an out-of-range date
|
|
45
40
|
* @returns `{ start, end }` with the constructed span, or null on invalid input
|
|
46
41
|
*
|
|
47
42
|
* @example intervalFromDurationZoned("2024-01-01T00:00:00+00:00[UTC]", "P1D", "start") // { start: "2024-01-01T00:00:00+00:00[UTC]", end: "2024-01-02T00:00:00+00:00[UTC]" }
|
|
@@ -68,9 +63,7 @@ export function intervalFromDurationZoned(value, duration, anchor, options) {
|
|
|
68
63
|
if (anchor !== "start" && anchor !== "end") {
|
|
69
64
|
return null;
|
|
70
65
|
}
|
|
71
|
-
const disambiguation = options?.disambiguation
|
|
72
|
-
? "compatible"
|
|
73
|
-
: options.disambiguation;
|
|
66
|
+
const disambiguation = optionOrDefault(options?.disambiguation, "compatible");
|
|
74
67
|
const overflow = resolveOverflow(options?.overflow);
|
|
75
68
|
try {
|
|
76
69
|
const calendar = calendarSystemOfZonedValue(value);
|
|
@@ -37,6 +37,15 @@
|
|
|
37
37
|
* @example intervalIntersectionZoned("invalid", "2024-06-30T23:59:59+00:00[UTC]", "2024-04-01T00:00:00+00:00[UTC]", "2024-12-31T23:59:59+00:00[UTC]") // null
|
|
38
38
|
*/
|
|
39
39
|
export declare function intervalIntersectionZoned(aStart: string, aEnd: string, bStart: string, bEnd: string): {
|
|
40
|
+
/**
|
|
41
|
+
* The instant the interval begins at, as a zoned ISO 8601 string with offset and bracketed time
|
|
42
|
+
* zone. It keeps a calendar annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
43
|
+
*/
|
|
40
44
|
start: string;
|
|
45
|
+
/**
|
|
46
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
47
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
48
|
+
* `start`, which makes the interval empty.
|
|
49
|
+
*/
|
|
41
50
|
end: string;
|
|
42
51
|
} | null;
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* each record's `end` is the next record's `start` and belongs only to that next record, so the
|
|
14
14
|
* pieces share no instant and together cover `[start, end)` exactly once.
|
|
15
15
|
* - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
|
|
16
|
+
* - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
|
|
17
|
+
* equal to `end`): the result is then that one empty piece, whatever the points.
|
|
16
18
|
* - Returns `[]` when `points` is not an array, when any element is not a valid ISO
|
|
17
19
|
* ZonedDateTime string, or on invalid input (unparseable start/end, `start > end`,
|
|
18
20
|
* leap-second strings).
|
|
@@ -34,6 +36,15 @@
|
|
|
34
36
|
* @example intervalSplitAtZoned("invalid", "2024-01-10T00:00:00+00:00[UTC]", ["2024-01-05T00:00:00+00:00[UTC]"]) // []
|
|
35
37
|
*/
|
|
36
38
|
export declare function intervalSplitAtZoned(start: string, end: string, points: string[]): Array<{
|
|
39
|
+
/**
|
|
40
|
+
* The instant the interval begins at, as a zoned ISO 8601 string with offset and bracketed time
|
|
41
|
+
* zone. It keeps a calendar annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
42
|
+
*/
|
|
37
43
|
start: string;
|
|
44
|
+
/**
|
|
45
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
46
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
47
|
+
* `start`, which makes the interval empty.
|
|
48
|
+
*/
|
|
38
49
|
end: string;
|
|
39
50
|
}>;
|
|
@@ -17,6 +17,8 @@ import { isValidCalendarZonedInterval } from "./validate/index.js";
|
|
|
17
17
|
* each record's `end` is the next record's `start` and belongs only to that next record, so the
|
|
18
18
|
* pieces share no instant and together cover `[start, end)` exactly once.
|
|
19
19
|
* - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
|
|
20
|
+
* - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
|
|
21
|
+
* equal to `end`): the result is then that one empty piece, whatever the points.
|
|
20
22
|
* - Returns `[]` when `points` is not an array, when any element is not a valid ISO
|
|
21
23
|
* ZonedDateTime string, or on invalid input (unparseable start/end, `start > end`,
|
|
22
24
|
* leap-second strings).
|
|
@@ -39,6 +39,15 @@
|
|
|
39
39
|
* @example intervalUnionZoned("invalid", "2024-06-30T23:59:59+00:00[UTC]", "2024-04-01T00:00:00+00:00[UTC]", "2024-12-31T23:59:59+00:00[UTC]") // null
|
|
40
40
|
*/
|
|
41
41
|
export declare function intervalUnionZoned(aStart: string, aEnd: string, bStart: string, bEnd: string): {
|
|
42
|
+
/**
|
|
43
|
+
* The instant the interval begins at, as a zoned ISO 8601 string with offset and bracketed time
|
|
44
|
+
* zone. It keeps a calendar annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
45
|
+
*/
|
|
42
46
|
start: string;
|
|
47
|
+
/**
|
|
48
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
49
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
50
|
+
* than `start`.
|
|
51
|
+
*/
|
|
43
52
|
end: string;
|
|
44
53
|
} | null;
|
|
@@ -34,6 +34,15 @@ export declare function intervalXorAllZoned(intervals: Array<{
|
|
|
34
34
|
start: string;
|
|
35
35
|
end: string;
|
|
36
36
|
}>): Array<{
|
|
37
|
+
/**
|
|
38
|
+
* The instant the interval begins at, as a zoned ISO 8601 string with offset and bracketed time
|
|
39
|
+
* zone. It keeps a calendar annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
40
|
+
*/
|
|
37
41
|
start: string;
|
|
42
|
+
/**
|
|
43
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
44
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
45
|
+
* than `start`.
|
|
46
|
+
*/
|
|
38
47
|
end: string;
|
|
39
48
|
}>;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
3
|
import { calendarOfAllZonedValues, formatZonedInCalendar, halfOpenXor, parseCalendarZonedValue, } from "../../internal/index.js";
|
|
4
4
|
import { isValidCalendarZonedInterval } from "./validate/index.js";
|
|
5
|
+
import { isObject } from "../../internal/isObject.js";
|
|
5
6
|
/**
|
|
6
7
|
* Return the symmetric difference across a list of zoned intervals — the set of instants
|
|
7
8
|
* covered by an odd number of the input intervals.
|
|
@@ -39,8 +40,7 @@ export function intervalXorAllZoned(intervals) {
|
|
|
39
40
|
if (!Array.isArray(intervals) || intervals.length === 0) {
|
|
40
41
|
return [];
|
|
41
42
|
}
|
|
42
|
-
if (!intervals.every((interval) => interval &&
|
|
43
|
-
typeof interval === "object" &&
|
|
43
|
+
if (!intervals.every((interval) => isObject(interval) &&
|
|
44
44
|
typeof interval.start === "string" &&
|
|
45
45
|
typeof interval.end === "string" &&
|
|
46
46
|
isValidCalendarZonedInterval(interval.start, interval.end))) {
|
|
@@ -44,6 +44,15 @@
|
|
|
44
44
|
* @example intervalXorZoned("invalid", "2024-06-30T12:00:00+00:00[UTC]", "2024-07-01T13:00:00+00:00[UTC]", "2024-12-31T17:00:00+00:00[UTC]") // []
|
|
45
45
|
*/
|
|
46
46
|
export declare function intervalXorZoned(aStart: string, aEnd: string, bStart: string, bEnd: string): Array<{
|
|
47
|
+
/**
|
|
48
|
+
* The instant the interval begins at, as a zoned ISO 8601 string with offset and bracketed time
|
|
49
|
+
* zone. It keeps a calendar annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
50
|
+
*/
|
|
47
51
|
start: string;
|
|
52
|
+
/**
|
|
53
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
54
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
55
|
+
* than `start`.
|
|
56
|
+
*/
|
|
48
57
|
end: string;
|
|
49
58
|
}>;
|
|
@@ -38,6 +38,15 @@ export declare function mergeIntervalsZoned(intervals: Array<{
|
|
|
38
38
|
start: string;
|
|
39
39
|
end: string;
|
|
40
40
|
}>): Array<{
|
|
41
|
+
/**
|
|
42
|
+
* The instant the interval begins at, as a zoned ISO 8601 string with offset and bracketed time
|
|
43
|
+
* zone. It keeps a calendar annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
44
|
+
*/
|
|
41
45
|
start: string;
|
|
46
|
+
/**
|
|
47
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
48
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
49
|
+
* than `start`.
|
|
50
|
+
*/
|
|
42
51
|
end: string;
|
|
43
52
|
}>;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
3
|
import { calendarOfAllZonedValues, formatZonedInCalendar, halfOpenMerge, parseCalendarZonedValue, } from "../../internal/index.js";
|
|
4
4
|
import { isValidCalendarZonedInterval } from "./validate/index.js";
|
|
5
|
+
import { isObject } from "../../internal/isObject.js";
|
|
5
6
|
/**
|
|
6
7
|
* Collapse a list of zoned intervals into the minimum set of non-overlapping intervals.
|
|
7
8
|
*
|
|
@@ -43,8 +44,7 @@ export function mergeIntervalsZoned(intervals) {
|
|
|
43
44
|
if (!Array.isArray(intervals) || intervals.length === 0) {
|
|
44
45
|
return [];
|
|
45
46
|
}
|
|
46
|
-
if (!intervals.every((interval) => interval &&
|
|
47
|
-
typeof interval === "object" &&
|
|
47
|
+
if (!intervals.every((interval) => isObject(interval) &&
|
|
48
48
|
typeof interval.start === "string" &&
|
|
49
49
|
typeof interval.end === "string" &&
|
|
50
50
|
isValidCalendarZonedInterval(interval.start, interval.end))) {
|
|
@@ -6,14 +6,20 @@
|
|
|
6
6
|
* no instant and together cover `[start, end)` exactly once.
|
|
7
7
|
* - The final sub-interval is trimmed so its `end` never exceeds the original `end`.
|
|
8
8
|
* - Calendar-unit boundaries (years, months, weeks, days) are computed from `start`
|
|
9
|
-
* (`start + k × amount
|
|
10
|
-
*
|
|
9
|
+
* (`start + k × amount`), so month-end starts don't drift: a monthly split from January 31
|
|
10
|
+
* lands on February 29, March 31, April 30. Temporal's `add` constrains a day the month lacks
|
|
11
|
+
* to the month's last day, and stepping from that boundary would keep the shortened day
|
|
12
|
+
* (February 29, then March 29).
|
|
13
|
+
* - Comparison: Luxon's `Interval.splitBy` computes each boundary from the start the same way.
|
|
11
14
|
* - Exact-unit boundaries (hours and smaller) step from the previous boundary. Exact units never
|
|
12
15
|
* clamp, and stepping keeps nanosecond precision where `k × amount` would pass
|
|
13
16
|
* `Number.MAX_SAFE_INTEGER`.
|
|
14
17
|
* - A calendar step that resolves to the same instant as the previous boundary (a deleted local
|
|
15
18
|
* day, such as 30 December 2011 in `Pacific/Apia`) is skipped, so no empty slice is produced.
|
|
16
19
|
* A step that goes backwards returns `[]`.
|
|
20
|
+
* - `start` and `end` may name different time zones. Steps are taken from `start`, so the first
|
|
21
|
+
* `start` and every inner boundary are written in `start`'s zone; the last `end` is the `end`
|
|
22
|
+
* argument, in its own zone.
|
|
17
23
|
* - Returns `[{ start, end }]` when `start === end` (zero-length interval).
|
|
18
24
|
* - Accepts RFC 9557 calendar-annotated zoned strings (as produced by `convertZonedToCalendar`) as
|
|
19
25
|
* well as bare ISO ones — E7 (issue #152). Stepping by a calendar unit ("1 month") resolves
|
|
@@ -24,9 +30,8 @@
|
|
|
24
30
|
* string (E7's D7-zoned).
|
|
25
31
|
* - Returns `[]` on invalid input (unparseable start/end, unsupported unit, non-positive amount,
|
|
26
32
|
* leap-second strings).
|
|
27
|
-
* - `options.maxPieces`
|
|
28
|
-
*
|
|
29
|
-
* otherwise as soon as slice `maxPieces + 1` is due. An invalid `maxPieces` also returns `[]`.
|
|
33
|
+
* - A split into more than `options.maxPieces` slices returns `[]`, decided from the span before
|
|
34
|
+
* stepping where it can be, and otherwise as soon as slice `maxPieces + 1` is due.
|
|
30
35
|
* - Compatibility: since 1.16.0 calendar strings are RFC 9557 (ISO digits, the `[u-ca=<id>]`
|
|
31
36
|
* annotation after the zone, canonical calendar ids); see `isValidCalendarZonedDateTime`.
|
|
32
37
|
*
|
|
@@ -34,7 +39,7 @@
|
|
|
34
39
|
* @param end ISO 8601 zoned datetime string for the interval end
|
|
35
40
|
* @param unit duration unit string — any `DateTimeDurationUnit`
|
|
36
41
|
* @param amount positive number of units per step
|
|
37
|
-
* @param options optional
|
|
42
|
+
* @param options optional limit on the size of the output
|
|
38
43
|
* @returns array of `{ start, end }` records, or [] on invalid input
|
|
39
44
|
*
|
|
40
45
|
* @example splitIntervalByUnitZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-02T00:00:00+00:00[UTC]", "hour", 6) // [{ start: "2024-01-01T00:00:00+00:00[UTC]", end: "2024-01-01T06:00:00+00:00[UTC]" }, { start: "2024-01-01T06:00:00+00:00[UTC]", end: "2024-01-01T12:00:00+00:00[UTC]" }, { start: "2024-01-01T12:00:00+00:00[UTC]", end: "2024-01-01T18:00:00+00:00[UTC]" }, { start: "2024-01-01T18:00:00+00:00[UTC]", end: "2024-01-02T00:00:00+00:00[UTC]" }]
|
|
@@ -47,8 +52,24 @@
|
|
|
47
52
|
* @example splitIntervalByUnitZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-01T01:30:00+00:00[UTC]", "hour", 1, { maxPieces: 2 }) // [{ start: "2024-01-01T00:00:00+00:00[UTC]", end: "2024-01-01T01:00:00+00:00[UTC]" }, { start: "2024-01-01T01:00:00+00:00[UTC]", end: "2024-01-01T01:30:00+00:00[UTC]" }]
|
|
48
53
|
*/
|
|
49
54
|
export declare function splitIntervalByUnitZoned(start: string, end: string, unit: string, amount: number, options?: {
|
|
55
|
+
/**
|
|
56
|
+
* The most records the result may hold. A result that would hold more, or more than the longest
|
|
57
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
58
|
+
* positive safe integer also returns `[]`.
|
|
59
|
+
*
|
|
60
|
+
* @defaultValue `1_000_000`
|
|
61
|
+
*/
|
|
50
62
|
maxPieces?: number;
|
|
51
63
|
}): Array<{
|
|
64
|
+
/**
|
|
65
|
+
* The instant the interval begins at, as a zoned ISO 8601 string with offset and bracketed time
|
|
66
|
+
* zone. It keeps a calendar annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
67
|
+
*/
|
|
52
68
|
start: string;
|
|
69
|
+
/**
|
|
70
|
+
* The first instant after the interval, in the same format as `start`. It is exclusive: the
|
|
71
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
72
|
+
* `start`, which makes the interval empty.
|
|
73
|
+
*/
|
|
53
74
|
end: string;
|
|
54
75
|
}>;
|
|
@@ -13,14 +13,20 @@ import { minSlicesForSpan } from "../../internal/splitStep.js";
|
|
|
13
13
|
* no instant and together cover `[start, end)` exactly once.
|
|
14
14
|
* - The final sub-interval is trimmed so its `end` never exceeds the original `end`.
|
|
15
15
|
* - Calendar-unit boundaries (years, months, weeks, days) are computed from `start`
|
|
16
|
-
* (`start + k × amount
|
|
17
|
-
*
|
|
16
|
+
* (`start + k × amount`), so month-end starts don't drift: a monthly split from January 31
|
|
17
|
+
* lands on February 29, March 31, April 30. Temporal's `add` constrains a day the month lacks
|
|
18
|
+
* to the month's last day, and stepping from that boundary would keep the shortened day
|
|
19
|
+
* (February 29, then March 29).
|
|
20
|
+
* - Comparison: Luxon's `Interval.splitBy` computes each boundary from the start the same way.
|
|
18
21
|
* - Exact-unit boundaries (hours and smaller) step from the previous boundary. Exact units never
|
|
19
22
|
* clamp, and stepping keeps nanosecond precision where `k × amount` would pass
|
|
20
23
|
* `Number.MAX_SAFE_INTEGER`.
|
|
21
24
|
* - A calendar step that resolves to the same instant as the previous boundary (a deleted local
|
|
22
25
|
* day, such as 30 December 2011 in `Pacific/Apia`) is skipped, so no empty slice is produced.
|
|
23
26
|
* A step that goes backwards returns `[]`.
|
|
27
|
+
* - `start` and `end` may name different time zones. Steps are taken from `start`, so the first
|
|
28
|
+
* `start` and every inner boundary are written in `start`'s zone; the last `end` is the `end`
|
|
29
|
+
* argument, in its own zone.
|
|
24
30
|
* - Returns `[{ start, end }]` when `start === end` (zero-length interval).
|
|
25
31
|
* - Accepts RFC 9557 calendar-annotated zoned strings (as produced by `convertZonedToCalendar`) as
|
|
26
32
|
* well as bare ISO ones — E7 (issue #152). Stepping by a calendar unit ("1 month") resolves
|
|
@@ -31,9 +37,8 @@ import { minSlicesForSpan } from "../../internal/splitStep.js";
|
|
|
31
37
|
* string (E7's D7-zoned).
|
|
32
38
|
* - Returns `[]` on invalid input (unparseable start/end, unsupported unit, non-positive amount,
|
|
33
39
|
* leap-second strings).
|
|
34
|
-
* - `options.maxPieces`
|
|
35
|
-
*
|
|
36
|
-
* otherwise as soon as slice `maxPieces + 1` is due. An invalid `maxPieces` also returns `[]`.
|
|
40
|
+
* - A split into more than `options.maxPieces` slices returns `[]`, decided from the span before
|
|
41
|
+
* stepping where it can be, and otherwise as soon as slice `maxPieces + 1` is due.
|
|
37
42
|
* - Compatibility: since 1.16.0 calendar strings are RFC 9557 (ISO digits, the `[u-ca=<id>]`
|
|
38
43
|
* annotation after the zone, canonical calendar ids); see `isValidCalendarZonedDateTime`.
|
|
39
44
|
*
|
|
@@ -41,7 +46,7 @@ import { minSlicesForSpan } from "../../internal/splitStep.js";
|
|
|
41
46
|
* @param end ISO 8601 zoned datetime string for the interval end
|
|
42
47
|
* @param unit duration unit string — any `DateTimeDurationUnit`
|
|
43
48
|
* @param amount positive number of units per step
|
|
44
|
-
* @param options optional
|
|
49
|
+
* @param options optional limit on the size of the output
|
|
45
50
|
* @returns array of `{ start, end }` records, or [] on invalid input
|
|
46
51
|
*
|
|
47
52
|
* @example splitIntervalByUnitZoned("2024-01-01T00:00:00+00:00[UTC]", "2024-01-02T00:00:00+00:00[UTC]", "hour", 6) // [{ start: "2024-01-01T00:00:00+00:00[UTC]", end: "2024-01-01T06:00:00+00:00[UTC]" }, { start: "2024-01-01T06:00:00+00:00[UTC]", end: "2024-01-01T12:00:00+00:00[UTC]" }, { start: "2024-01-01T12:00:00+00:00[UTC]", end: "2024-01-01T18:00:00+00:00[UTC]" }, { start: "2024-01-01T18:00:00+00:00[UTC]", end: "2024-01-02T00:00:00+00:00[UTC]" }]
|
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Both datetimes must have the same timezone.
|
|
5
5
|
* - Returns [] for invalid inputs, mismatched timezones, start > end, or invalid step.
|
|
6
|
-
* - `options.maxPieces`
|
|
7
|
-
* range holds more dates than that, it returns `[]` without generating any. An invalid
|
|
8
|
-
* `maxPieces` also returns `[]`.
|
|
6
|
+
* - A range holding more dates than `options.maxPieces` returns `[]` without generating any.
|
|
9
7
|
* - An explicit `undefined` `stepDays` is the default step, so `(start, end, undefined, options)`
|
|
10
8
|
* reaches `options`. **Compatibility:** before 1.16.0 it returned `[]`.
|
|
11
9
|
* - **End-inclusive, where the `interval*` functions are half-open.** This enumerates the dates a
|
|
@@ -16,7 +14,7 @@
|
|
|
16
14
|
* @param startZonedDateTime start zoned ISO 8601 datetime string
|
|
17
15
|
* @param endZonedDateTime end zoned ISO 8601 datetime string
|
|
18
16
|
* @param stepDays optional positive integer step in days
|
|
19
|
-
* @param options optional
|
|
17
|
+
* @param options optional limit on the size of the output
|
|
20
18
|
* @returns array of ISO date strings or [] when invalid
|
|
21
19
|
*
|
|
22
20
|
* @example mapZonedDatesInRange("+275760-09-12T00:00:00+00:00[UTC]", "+275760-09-13T00:00:00+00:00[UTC]") // ["+275760-09-12", "+275760-09-13"] (a range ending on the maximum instant)
|
|
@@ -28,5 +26,12 @@
|
|
|
28
26
|
* @example mapZonedDatesInRange("2024-02-28T12:00:00+00:00[UTC]", "2024-03-02T12:00:00+00:00[UTC]", 1, { maxPieces: 10 }) // ["2024-02-28", "2024-02-29", "2024-03-01", "2024-03-02"]
|
|
29
27
|
*/
|
|
30
28
|
export declare function mapZonedDatesInRange(startZonedDateTime: string, endZonedDateTime: string, stepDays?: number, options?: {
|
|
29
|
+
/**
|
|
30
|
+
* The most dates the result may hold. A result that would hold more, or more than the longest
|
|
31
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
32
|
+
* positive safe integer also returns `[]`.
|
|
33
|
+
*
|
|
34
|
+
* @defaultValue `1_000_000`
|
|
35
|
+
*/
|
|
31
36
|
maxPieces?: number;
|
|
32
37
|
}): string[];
|
|
@@ -8,9 +8,7 @@ import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js
|
|
|
8
8
|
*
|
|
9
9
|
* - Both datetimes must have the same timezone.
|
|
10
10
|
* - Returns [] for invalid inputs, mismatched timezones, start > end, or invalid step.
|
|
11
|
-
* - `options.maxPieces`
|
|
12
|
-
* range holds more dates than that, it returns `[]` without generating any. An invalid
|
|
13
|
-
* `maxPieces` also returns `[]`.
|
|
11
|
+
* - A range holding more dates than `options.maxPieces` returns `[]` without generating any.
|
|
14
12
|
* - An explicit `undefined` `stepDays` is the default step, so `(start, end, undefined, options)`
|
|
15
13
|
* reaches `options`. **Compatibility:** before 1.16.0 it returned `[]`.
|
|
16
14
|
* - **End-inclusive, where the `interval*` functions are half-open.** This enumerates the dates a
|
|
@@ -21,7 +19,7 @@ import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js
|
|
|
21
19
|
* @param startZonedDateTime start zoned ISO 8601 datetime string
|
|
22
20
|
* @param endZonedDateTime end zoned ISO 8601 datetime string
|
|
23
21
|
* @param stepDays optional positive integer step in days
|
|
24
|
-
* @param options optional
|
|
22
|
+
* @param options optional limit on the size of the output
|
|
25
23
|
* @returns array of ISO date strings or [] when invalid
|
|
26
24
|
*
|
|
27
25
|
* @example mapZonedDatesInRange("+275760-09-12T00:00:00+00:00[UTC]", "+275760-09-13T00:00:00+00:00[UTC]") // ["+275760-09-12", "+275760-09-13"] (a range ending on the maximum instant)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* `Date:` headers use — into a zoned ISO 8601 datetime string.
|
|
4
4
|
*
|
|
5
5
|
* - **Decoding, not display.** Weekday and month names are English, per the
|
|
6
|
-
* fixed grammar (see `formatRfc2822`'s JSDoc
|
|
6
|
+
* fixed grammar (see `formatRfc2822`'s JSDoc); like
|
|
7
7
|
* every ABNF literal they match in any case (RFC 5234 §2.3).
|
|
8
8
|
* - **Reads what a conformant receiver must.** RFC 5322 §3.3 syntax: folding
|
|
9
9
|
* white space (spaces, tabs, folded lines), nested comments such as a
|
|
@@ -5,7 +5,7 @@ import { readRfc5322DateTime } from "../../internal/rfc5322DateTime.js";
|
|
|
5
5
|
* `Date:` headers use — into a zoned ISO 8601 datetime string.
|
|
6
6
|
*
|
|
7
7
|
* - **Decoding, not display.** Weekday and month names are English, per the
|
|
8
|
-
* fixed grammar (see `formatRfc2822`'s JSDoc
|
|
8
|
+
* fixed grammar (see `formatRfc2822`'s JSDoc); like
|
|
9
9
|
* every ABNF literal they match in any case (RFC 5234 §2.3).
|
|
10
10
|
* - **Reads what a conformant receiver must.** RFC 5322 §3.3 syntax: folding
|
|
11
11
|
* white space (spaces, tabs, folded lines), nested comments such as a
|
|
@@ -8,7 +8,7 @@ import type { Temporal } from "@js-temporal/polyfill";
|
|
|
8
8
|
*
|
|
9
9
|
* | Member | Description |
|
|
10
10
|
* | --- | --- |
|
|
11
|
-
* | `year` |
|
|
11
|
+
* | `year` | Four digits (e.g. `2024`, `0005`); a sign and six digits outside 0000–9999 (e.g. `+010000`). |
|
|
12
12
|
* | `month` | Zero-padded 2 (e.g. `03`). |
|
|
13
13
|
* | `week` | Week-of-year, 1–53 (`weekStartsOn`-controlled). |
|
|
14
14
|
* | `day` | Zero-padded 2. |
|
|
@@ -33,20 +33,29 @@ export type ZonedParseUnit = Temporal.SmallestUnit<"year" | "month" | "week" | "
|
|
|
33
33
|
* - Uses Temporal.ZonedDateTime.from to parse.
|
|
34
34
|
* - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
|
|
35
35
|
* does; `"dayOfWeek"` has no plural.
|
|
36
|
-
* - `weekStartsOn: "sunday"` numbers weeks by UTS #35 (week 1 holds 1 January, so late-December
|
|
37
|
-
* days can be week 1); any value other than `"monday"` or `"sunday"` returns "".
|
|
38
36
|
* - Returns "" for invalid input.
|
|
37
|
+
* - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
|
|
38
|
+
* sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
39
39
|
*
|
|
40
40
|
* @param value zoned ISO 8601 datetime string
|
|
41
41
|
* @param unit unit to extract
|
|
42
|
-
* @param optionsArg optional
|
|
42
|
+
* @param optionsArg optional setting for the week's first day; a non-object value (such as `null`) is invalid
|
|
43
43
|
* @returns string representation of the requested unit or "" when invalid
|
|
44
44
|
*
|
|
45
45
|
* @example parseUnitFromZoned("2024-02-29T12:34:56.789+00:00[UTC]", "year") // "2024"
|
|
46
|
+
* @example parseUnitFromZoned("0005-06-01T12:30:00+00:00[UTC]", "year") // "0005"
|
|
46
47
|
* @example parseUnitFromZoned("2024-02-29T12:34:56.789+00:00[UTC]", "milliseconds") // "789"
|
|
47
48
|
* @example parseUnitFromZoned("2024-12-31T12:00:00+00:00[UTC]", "week", { weekStartsOn: "sunday" }) // "1"
|
|
48
49
|
* @example parseUnitFromZoned("invalid", "year") // ""
|
|
49
50
|
*/
|
|
50
51
|
export declare function parseUnitFromZoned(value: string, unit: ZonedParseUnit, optionsArg?: {
|
|
52
|
+
/**
|
|
53
|
+
* The first day of the week, which sets how the `"week"` unit is numbered. `"monday"` gives the
|
|
54
|
+
* ISO 8601 week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS
|
|
55
|
+
* #35 week number with a Sunday first day and one minimal day, where week 1 holds 1 January.
|
|
56
|
+
* Any other value returns `""`, whatever the unit.
|
|
57
|
+
*
|
|
58
|
+
* @defaultValue `"monday"`
|
|
59
|
+
*/
|
|
51
60
|
weekStartsOn?: "monday" | "sunday";
|
|
52
61
|
}): string;
|
|
@@ -4,6 +4,7 @@ import { zonedDateTimeFrom } from "../../internal/index.js";
|
|
|
4
4
|
import { resolveDateTimeUnit } from "../../internal/resolveDateTimeUnit.js";
|
|
5
5
|
import { resolveWeekStartsOn } from "../../internal/resolveWeekStartsOn.js";
|
|
6
6
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
7
|
+
import { isoYearString } from "../../internal/isoYearString.js";
|
|
7
8
|
function isValidZonedUnit(unit) {
|
|
8
9
|
return [
|
|
9
10
|
"year",
|
|
@@ -27,16 +28,17 @@ function isValidZonedUnit(unit) {
|
|
|
27
28
|
* - Uses Temporal.ZonedDateTime.from to parse.
|
|
28
29
|
* - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
|
|
29
30
|
* does; `"dayOfWeek"` has no plural.
|
|
30
|
-
* - `weekStartsOn: "sunday"` numbers weeks by UTS #35 (week 1 holds 1 January, so late-December
|
|
31
|
-
* days can be week 1); any value other than `"monday"` or `"sunday"` returns "".
|
|
32
31
|
* - Returns "" for invalid input.
|
|
32
|
+
* - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
|
|
33
|
+
* sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
33
34
|
*
|
|
34
35
|
* @param value zoned ISO 8601 datetime string
|
|
35
36
|
* @param unit unit to extract
|
|
36
|
-
* @param optionsArg optional
|
|
37
|
+
* @param optionsArg optional setting for the week's first day; a non-object value (such as `null`) is invalid
|
|
37
38
|
* @returns string representation of the requested unit or "" when invalid
|
|
38
39
|
*
|
|
39
40
|
* @example parseUnitFromZoned("2024-02-29T12:34:56.789+00:00[UTC]", "year") // "2024"
|
|
41
|
+
* @example parseUnitFromZoned("0005-06-01T12:30:00+00:00[UTC]", "year") // "0005"
|
|
40
42
|
* @example parseUnitFromZoned("2024-02-29T12:34:56.789+00:00[UTC]", "milliseconds") // "789"
|
|
41
43
|
* @example parseUnitFromZoned("2024-12-31T12:00:00+00:00[UTC]", "week", { weekStartsOn: "sunday" }) // "1"
|
|
42
44
|
* @example parseUnitFromZoned("invalid", "year") // ""
|
|
@@ -58,7 +60,7 @@ export function parseUnitFromZoned(value, unit, optionsArg) {
|
|
|
58
60
|
const zonedDateTime = zonedDateTimeFrom(value);
|
|
59
61
|
switch (resolvedUnit) {
|
|
60
62
|
case "year":
|
|
61
|
-
return zonedDateTime.year
|
|
63
|
+
return isoYearString(zonedDateTime.year);
|
|
62
64
|
case "month":
|
|
63
65
|
return zonedDateTime.month.toString().padStart(2, "0");
|
|
64
66
|
case "week":
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Return the week of the year for a given ISO 8601 zoned datetime string.
|
|
3
3
|
*
|
|
4
|
-
* - `"monday"`
|
|
4
|
+
* - `"monday"` is the ISO 8601 week of the week-year: week 1 is the week containing the
|
|
5
5
|
* first Thursday, so late-December days can be week 1 of the next year (a value on 2024-12-31
|
|
6
6
|
* → 1). The result is 1–53.
|
|
7
7
|
* - `"sunday"` is the UTS #35 week of the week-year with a Sunday first day and minimal days 1:
|
|
8
8
|
* week 1 is the Sunday-first week holding 1 January, so late-December days can be week 1 of the
|
|
9
9
|
* next year (2024-12-31 → 1, 2000-12-30 → 53). The result is 1–53.
|
|
10
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
|
|
11
10
|
* - The week is read from the value's own date on its own wall clock.
|
|
12
11
|
* - Returns null for invalid input.
|
|
13
12
|
*
|
|
14
13
|
* @param value ISO zoned datetime string
|
|
15
|
-
* @param optionsArg optional
|
|
14
|
+
* @param optionsArg optional setting for the week's first day
|
|
16
15
|
* @returns Week number (1-53), or null on invalid input
|
|
17
16
|
*
|
|
18
17
|
* @example parseWeekFromZoned("2024-01-01T14:30:45.123+00:00[UTC]") // 1
|
|
@@ -23,5 +22,13 @@
|
|
|
23
22
|
* @example parseWeekFromZoned("invalid") // null
|
|
24
23
|
*/
|
|
25
24
|
export declare function parseWeekFromZoned(value: string, optionsArg?: {
|
|
25
|
+
/**
|
|
26
|
+
* The first day of the week, which sets how the week is numbered. `"monday"` gives the ISO 8601
|
|
27
|
+
* week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS #35 week
|
|
28
|
+
* number with a Sunday first day and one minimal day, where week 1 holds 1 January. Any other
|
|
29
|
+
* value returns `null`.
|
|
30
|
+
*
|
|
31
|
+
* @defaultValue `"monday"`
|
|
32
|
+
*/
|
|
26
33
|
weekStartsOn?: "monday" | "sunday";
|
|
27
34
|
}): number | null;
|
|
@@ -6,18 +6,17 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
6
6
|
/**
|
|
7
7
|
* Return the week of the year for a given ISO 8601 zoned datetime string.
|
|
8
8
|
*
|
|
9
|
-
* - `"monday"`
|
|
9
|
+
* - `"monday"` is the ISO 8601 week of the week-year: week 1 is the week containing the
|
|
10
10
|
* first Thursday, so late-December days can be week 1 of the next year (a value on 2024-12-31
|
|
11
11
|
* → 1). The result is 1–53.
|
|
12
12
|
* - `"sunday"` is the UTS #35 week of the week-year with a Sunday first day and minimal days 1:
|
|
13
13
|
* week 1 is the Sunday-first week holding 1 January, so late-December days can be week 1 of the
|
|
14
14
|
* next year (2024-12-31 → 1, 2000-12-30 → 53). The result is 1–53.
|
|
15
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
|
|
16
15
|
* - The week is read from the value's own date on its own wall clock.
|
|
17
16
|
* - Returns null for invalid input.
|
|
18
17
|
*
|
|
19
18
|
* @param value ISO zoned datetime string
|
|
20
|
-
* @param optionsArg optional
|
|
19
|
+
* @param optionsArg optional setting for the week's first day
|
|
21
20
|
* @returns Week number (1-53), or null on invalid input
|
|
22
21
|
*
|
|
23
22
|
* @example parseWeekFromZoned("2024-01-01T14:30:45.123+00:00[UTC]") // 1
|