@northguild/gmt 1.17.0 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -2480
- package/dist/calendar/calculate/bucketRange.d.ts +12 -4
- package/dist/calendar/calculate/bucketRange.js +20 -63
- package/dist/calendar/calculate/floorToZone.d.ts +14 -4
- package/dist/calendar/calculate/floorToZone.js +18 -9
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +21 -8
- package/dist/calendar/calculate/getFiscalPeriod.js +9 -8
- package/dist/calendar/calculate/getIsoWeekDate.d.ts +10 -5
- package/dist/calendar/calculate/getIsoWeekDate.js +1 -5
- package/dist/calendar/calculate/getOrdinalDate.d.ts +10 -3
- package/dist/calendar/calculate/getOrdinalDate.js +2 -3
- package/dist/calendar/calculate/getQuarter.d.ts +21 -9
- package/dist/calendar/calculate/getQuarter.js +8 -12
- package/dist/calendar/hours/addOperatingTime.d.ts +59 -0
- package/dist/calendar/hours/addOperatingTime.js +65 -0
- package/dist/calendar/hours/index.d.ts +7 -0
- package/dist/calendar/hours/index.js +7 -0
- package/dist/calendar/hours/isOpenAt.d.ts +45 -0
- package/dist/calendar/hours/isOpenAt.js +50 -0
- package/dist/calendar/hours/nextCloseAt.d.ts +55 -0
- package/dist/calendar/hours/nextCloseAt.js +57 -0
- package/dist/calendar/hours/nextOpenAt.d.ts +51 -0
- package/dist/calendar/hours/nextOpenAt.js +53 -0
- package/dist/calendar/hours/operatingIntervals.d.ts +48 -0
- package/dist/calendar/hours/operatingIntervals.js +57 -0
- package/dist/calendar/hours/operatingTimeBetween.d.ts +45 -0
- package/dist/calendar/hours/operatingTimeBetween.js +54 -0
- package/dist/calendar/hours/recurringWindows.d.ts +68 -0
- package/dist/calendar/hours/recurringWindows.js +88 -0
- package/dist/calendar/index.d.ts +1 -0
- package/dist/calendar/index.js +1 -0
- package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
- package/dist/duration/calculate/durationFromUnits.js +67 -0
- package/dist/duration/calculate/getDurationUnit.d.ts +2 -2
- package/dist/duration/calculate/getDurationUnit.js +2 -2
- package/dist/duration/calculate/index.d.ts +3 -1
- package/dist/duration/calculate/index.js +3 -1
- package/dist/duration/calculate/negateDuration.d.ts +1 -1
- package/dist/duration/calculate/negateDuration.js +1 -1
- package/dist/duration/calculate/totalDuration.d.ts +73 -0
- package/dist/duration/calculate/{durationAs.js → totalDuration.js} +29 -27
- package/dist/duration/calculate/totalUnits.d.ts +49 -0
- package/dist/duration/calculate/totalUnits.js +73 -0
- package/dist/duration/compare/compareDurations.d.ts +13 -7
- package/dist/duration/compare/compareDurations.js +4 -7
- package/dist/duration/format/formatDuration.d.ts +16 -4
- package/dist/duration/format/formatDuration.js +4 -5
- package/dist/duration/normalize/normalizeDuration.d.ts +39 -14
- package/dist/duration/normalize/normalizeDuration.js +6 -15
- package/dist/duration/parse/parseDuration.d.ts +21 -3
- package/dist/duration/parse/parseDuration.js +1 -3
- package/dist/duty/calculate/dutyDayFor.d.ts +38 -0
- package/dist/duty/calculate/dutyDayFor.js +71 -0
- package/dist/duty/calculate/dutyTotals.d.ts +24 -0
- package/dist/duty/calculate/dutyTotals.js +41 -0
- package/dist/duty/calculate/dutyViolations.d.ts +74 -0
- package/dist/duty/calculate/dutyViolations.js +65 -0
- package/dist/duty/calculate/evaluateDutyLog.d.ts +77 -0
- package/dist/duty/calculate/evaluateDutyLog.js +75 -0
- package/dist/duty/calculate/index.d.ts +7 -0
- package/dist/duty/calculate/index.js +7 -0
- package/dist/duty/calculate/longestRun.d.ts +28 -0
- package/dist/duty/calculate/longestRun.js +54 -0
- package/dist/duty/calculate/qualifyingRestPairs.d.ts +37 -0
- package/dist/duty/calculate/qualifyingRestPairs.js +58 -0
- package/dist/duty/calculate/qualifyingRests.d.ts +27 -0
- package/dist/duty/calculate/qualifyingRests.js +49 -0
- package/dist/duty/index.d.ts +3 -0
- package/dist/duty/index.js +4 -0
- package/dist/duty/validate/index.d.ts +1 -0
- package/dist/duty/validate/index.js +1 -0
- package/dist/duty/validate/isValidDutyLog.d.ts +24 -0
- package/dist/duty/validate/isValidDutyLog.js +34 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/instant/convert/classifyLocal.d.ts +5 -1
- package/dist/instant/convert/classifyLocal.js +16 -6
- package/dist/instant/convert/fromOffsetInstant.d.ts +7 -1
- package/dist/instant/convert/fromOffsetInstant.js +9 -2
- package/dist/instant/convert/resolveLocal.d.ts +18 -8
- package/dist/instant/convert/resolveLocal.js +21 -17
- package/dist/instant/convert/toOffsetInstant.d.ts +33 -16
- package/dist/instant/convert/toOffsetInstant.js +28 -13
- package/dist/instant/index.d.ts +1 -0
- package/dist/instant/index.js +1 -0
- package/dist/instant/validate/index.d.ts +1 -0
- package/dist/instant/validate/index.js +1 -0
- package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
- package/dist/instant/validate/isValidUtcOffset.js +35 -0
- package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
- package/dist/intermodal/calculate/billingTimeline.js +2 -2
- package/dist/intermodal/calculate/chargeableDays.d.ts +19 -11
- package/dist/intermodal/calculate/chargeableDays.js +13 -10
- package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
- package/dist/intermodal/calculate/demurrageClock.js +7 -7
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +12 -4
- package/dist/intermodal/calculate/freeTimeExpiry.js +19 -8
- package/dist/intermodal/calculate/index.d.ts +1 -0
- package/dist/intermodal/calculate/index.js +1 -0
- package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
- package/dist/intermodal/calculate/multimodalETA.js +145 -0
- package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
- package/dist/intermodal/format/bolTimestamp.js +78 -0
- package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
- package/dist/intermodal/format/formatEdifactDate.js +42 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
- package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
- package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
- package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactTime.js +43 -0
- package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
- package/dist/intermodal/format/formatEpcisEvent.js +79 -0
- package/dist/intermodal/format/formatX12Date.d.ts +35 -0
- package/dist/intermodal/format/formatX12Date.js +43 -0
- package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
- package/dist/intermodal/format/formatX12DateRange.js +45 -0
- package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
- package/dist/intermodal/format/formatX12DateTime.js +47 -0
- package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
- package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
- package/dist/intermodal/format/formatX12Time.d.ts +42 -0
- package/dist/intermodal/format/formatX12Time.js +50 -0
- package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
- package/dist/intermodal/format/formatX12TimeElement.js +54 -0
- package/dist/intermodal/format/index.d.ts +14 -0
- package/dist/intermodal/format/index.js +14 -0
- package/dist/intermodal/index.d.ts +3 -0
- package/dist/intermodal/index.js +3 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
- package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
- package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
- package/dist/intermodal/parse/index.d.ts +18 -0
- package/dist/intermodal/parse/index.js +18 -0
- package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactDate.js +45 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
- package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactTime.js +45 -0
- package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
- package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
- package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
- package/dist/intermodal/parse/parseX12Date.js +47 -0
- package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
- package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
- package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
- package/dist/intermodal/parse/parseX12DateRange.js +52 -0
- package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
- package/dist/intermodal/parse/parseX12DateTime.js +53 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
- package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
- package/dist/intermodal/parse/parseX12Time.js +77 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
- package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
- package/dist/intermodal/validate/index.d.ts +18 -0
- package/dist/intermodal/validate/index.js +18 -0
- package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
- package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
- package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
- package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
- package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
- package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
- package/dist/intermodal/validate/isValidX12Date.js +30 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
- package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
- package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
- package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
- package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12Time.js +40 -0
- package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
- package/dist/internal/businessCalendar.d.ts +5 -0
- package/dist/internal/businessCalendar.js +9 -10
- package/dist/internal/cycleFieldValue.d.ts +6 -4
- package/dist/internal/cycleFieldValue.js +6 -4
- package/dist/internal/daylightTime.d.ts +33 -0
- package/dist/internal/daylightTime.js +164 -0
- package/dist/internal/durationUntilString.js +4 -3
- package/dist/internal/dutyEngine.d.ts +125 -0
- package/dist/internal/dutyEngine.js +1746 -0
- package/dist/internal/dutyLog.d.ts +27 -0
- package/dist/internal/dutyLog.js +47 -0
- package/dist/internal/dutyPeriods.d.ts +135 -0
- package/dist/internal/dutyPeriods.js +369 -0
- package/dist/internal/dutyRules.d.ts +197 -0
- package/dist/internal/dutyRules.js +484 -0
- package/dist/internal/ediDateTimeFields.d.ts +97 -0
- package/dist/internal/ediDateTimeFields.js +288 -0
- package/dist/internal/ediDateTimeWriter.d.ts +92 -0
- package/dist/internal/ediDateTimeWriter.js +298 -0
- package/dist/internal/ediGrammar.d.ts +158 -0
- package/dist/internal/ediGrammar.js +384 -0
- package/dist/internal/englishCalendarNames.d.ts +3 -1
- package/dist/internal/englishCalendarNames.js +4 -3
- package/dist/internal/epochNanoseconds.d.ts +2 -0
- package/dist/internal/epochNanoseconds.js +2 -0
- package/dist/internal/exactDuration.d.ts +37 -0
- package/dist/internal/exactDuration.js +64 -0
- package/dist/internal/exactMoment.d.ts +72 -0
- package/dist/internal/exactMoment.js +114 -0
- package/dist/internal/fiscalCalendar.d.ts +4 -3
- package/dist/internal/fiscalCalendar.js +4 -3
- package/dist/internal/formatCalendarDays.d.ts +2 -2
- package/dist/internal/formatRelativeDuration.d.ts +21 -1
- package/dist/internal/formatRelativeDuration.js +47 -7
- package/dist/internal/freeTimeLedger.d.ts +5 -0
- package/dist/internal/freeTimeLedger.js +11 -2
- package/dist/internal/index.d.ts +12 -4
- package/dist/internal/index.js +16 -4
- package/dist/internal/instantFormatOptions.js +2 -1
- package/dist/internal/instantNanoseconds.d.ts +75 -9
- package/dist/internal/instantNanoseconds.js +192 -11
- package/dist/internal/intervalNanoseconds.js +2 -1
- package/dist/internal/isObject.d.ts +13 -6
- package/dist/internal/isObject.js +14 -7
- package/dist/internal/isoYearString.d.ts +21 -0
- package/dist/internal/isoYearString.js +27 -0
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/maxPieces.js +2 -1
- package/dist/internal/monthGridWeekRow.d.ts +2 -1
- package/dist/internal/monthGridWeekRow.js +2 -1
- package/dist/internal/normalizeTimeZone.d.ts +5 -2
- package/dist/internal/normalizeTimeZone.js +5 -2
- package/dist/internal/operatingSchedule.d.ts +138 -0
- package/dist/internal/operatingSchedule.js +756 -0
- package/dist/internal/optionOrDefault.d.ts +18 -0
- package/dist/internal/optionOrDefault.js +20 -0
- package/dist/internal/patternToken.d.ts +12 -5
- package/dist/internal/patternToken.js +59 -25
- package/dist/internal/plainDateUntil.js +10 -6
- package/dist/internal/punctuality.d.ts +38 -0
- package/dist/internal/punctuality.js +59 -0
- package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
- package/dist/internal/readDateTimeFormatOptions.js +93 -0
- package/dist/internal/readDurationUnits.d.ts +34 -0
- package/dist/internal/readDurationUnits.js +78 -0
- package/dist/internal/readSetFields.d.ts +50 -0
- package/dist/internal/readSetFields.js +179 -0
- package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
- package/dist/internal/resolveDurationRelativeTo.js +11 -1
- package/dist/internal/resolveRelativeRounding.d.ts +17 -6
- package/dist/internal/resolveRelativeRounding.js +27 -7
- package/dist/internal/resolveRelativeUnit.d.ts +30 -0
- package/dist/internal/resolveRelativeUnit.js +40 -0
- package/dist/internal/resolveUnixIntervalPair.d.ts +8 -2
- package/dist/internal/resolveUnixIntervalPair.js +11 -7
- package/dist/internal/splitStep.d.ts +24 -1
- package/dist/internal/splitStep.js +34 -2
- package/dist/internal/startOrEndOfUnix.d.ts +2 -1
- package/dist/internal/startOrEndOfUnix.js +9 -6
- package/dist/internal/startOrEndOfZoned.js +2 -3
- package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
- package/dist/internal/temporalCompat/capabilities.js +35 -3
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/repros.d.ts +1 -1
- package/dist/internal/temporalCompat/repros.js +157 -0
- package/dist/internal/timestampEvents.d.ts +32 -0
- package/dist/internal/timestampEvents.js +76 -0
- package/dist/internal/twoDigitYear.d.ts +19 -0
- package/dist/internal/twoDigitYear.js +22 -0
- package/dist/internal/unixEpochValue.js +3 -2
- package/dist/internal/unixWallClock.d.ts +24 -0
- package/dist/internal/unixWallClock.js +35 -0
- package/dist/internal/utcWallClock.d.ts +20 -0
- package/dist/internal/utcWallClock.js +32 -0
- package/dist/internal/yearWindowStart.d.ts +28 -0
- package/dist/internal/yearWindowStart.js +52 -0
- package/dist/internal/zoneBucketCap.d.ts +18 -0
- package/dist/internal/zoneBucketCap.js +64 -0
- package/dist/internal/zoneFrame.d.ts +180 -0
- package/dist/internal/zoneFrame.js +221 -0
- package/dist/internal/zonedBucket.js +8 -6
- package/dist/internal/zonedLocalDates.js +1 -1
- package/dist/internal/zonedNowUnitValue.d.ts +7 -4
- package/dist/internal/zonedNowUnitValue.js +8 -4
- package/dist/internal/zonedTransitionSearch.d.ts +27 -0
- package/dist/internal/zonedTransitionSearch.js +218 -0
- package/dist/internal/zonedWallClock.d.ts +21 -7
- package/dist/internal/zonedWallClock.js +87 -18
- package/dist/internal/zonedWallClockDifference.js +4 -4
- package/dist/internal/zonedWallClockOperations.d.ts +31 -15
- package/dist/internal/zonedWallClockOperations.js +93 -43
- package/dist/interval/validate/isValidInterval.d.ts +6 -3
- package/dist/interval/validate/isValidInterval.js +6 -3
- package/dist/plain/calculate/addDate.d.ts +11 -8
- package/dist/plain/calculate/addDate.js +9 -15
- package/dist/plain/calculate/addDateTime.d.ts +7 -4
- package/dist/plain/calculate/addDateTime.js +5 -11
- package/dist/plain/calculate/addTime.js +4 -7
- package/dist/plain/calculate/cycleDate.d.ts +16 -7
- package/dist/plain/calculate/cycleDate.js +3 -7
- package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
- package/dist/plain/calculate/cycleDateTime.js +1 -4
- package/dist/plain/calculate/cycleTime.d.ts +10 -5
- package/dist/plain/calculate/cycleTime.js +3 -5
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDate.js +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.js +1 -1
- package/dist/plain/calculate/diffDateTime.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.js +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
- package/dist/plain/calculate/diffTime.d.ts +1 -1
- package/dist/plain/calculate/diffTime.js +1 -1
- package/dist/plain/calculate/endOfDate.d.ts +8 -3
- package/dist/plain/calculate/endOfDate.js +1 -3
- package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
- package/dist/plain/calculate/endOfDateTime.js +1 -5
- package/dist/plain/calculate/endOfTime.d.ts +9 -3
- package/dist/plain/calculate/endOfTime.js +1 -2
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
- package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
- package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
- package/dist/plain/calculate/getWeekOfMonth.js +7 -4
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
- package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
- package/dist/plain/calculate/getWeeksInMonth.js +5 -2
- package/dist/plain/calculate/nextWeekday.d.ts +7 -3
- package/dist/plain/calculate/nextWeekday.js +1 -3
- package/dist/plain/calculate/previousWeekday.d.ts +7 -3
- package/dist/plain/calculate/previousWeekday.js +1 -3
- package/dist/plain/calculate/roundDate.d.ts +20 -7
- package/dist/plain/calculate/roundDate.js +3 -10
- package/dist/plain/calculate/roundDateTime.d.ts +22 -8
- package/dist/plain/calculate/roundDateTime.js +3 -11
- package/dist/plain/calculate/roundTime.d.ts +20 -4
- package/dist/plain/calculate/roundTime.js +3 -7
- package/dist/plain/calculate/setDate.d.ts +27 -8
- package/dist/plain/calculate/setDate.js +28 -12
- package/dist/plain/calculate/setDateTime.d.ts +23 -8
- package/dist/plain/calculate/setDateTime.js +23 -12
- package/dist/plain/calculate/setTime.d.ts +23 -7
- package/dist/plain/calculate/setTime.js +25 -12
- package/dist/plain/calculate/startOfDate.d.ts +8 -2
- package/dist/plain/calculate/startOfDate.js +1 -2
- package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
- package/dist/plain/calculate/startOfDateTime.js +1 -2
- package/dist/plain/calculate/startOfTime.d.ts +9 -2
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractDate.d.ts +7 -4
- package/dist/plain/calculate/subtractDate.js +5 -11
- package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
- package/dist/plain/calculate/subtractDateTime.js +5 -11
- package/dist/plain/calculate/subtractTime.js +4 -7
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
- package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
- package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
- package/dist/plain/compare/areDatesEqualBy.js +8 -6
- package/dist/plain/compare/isBetweenDate.d.ts +13 -2
- package/dist/plain/compare/isBetweenDate.js +4 -4
- package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenDateTime.js +4 -4
- package/dist/plain/compare/isBetweenTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenTime.js +4 -4
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +1 -1
- package/dist/plain/compare/isThisUnit.js +1 -1
- package/dist/plain/format/formatCalendar.d.ts +21 -14
- package/dist/plain/format/formatCalendar.js +23 -17
- package/dist/plain/format/formatDate.js +5 -3
- package/dist/plain/format/formatDateRange.js +4 -2
- package/dist/plain/format/formatDateTime.js +4 -2
- package/dist/plain/format/formatDateTimeRange.js +4 -2
- package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
- package/dist/plain/format/formatDateTimeToParts.js +10 -6
- package/dist/plain/format/formatDateToParts.d.ts +13 -2
- package/dist/plain/format/formatDateToParts.js +8 -4
- package/dist/plain/format/formatRelativeDate.d.ts +16 -3
- package/dist/plain/format/formatRelativeDate.js +28 -16
- package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeDateTime.js +10 -6
- package/dist/plain/format/formatRelativeTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeTime.js +23 -14
- package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
- package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +7 -7
- package/dist/plain/format/formatTime.js +4 -2
- package/dist/plain/format/index.d.ts +1 -1
- package/dist/plain/format/index.js +1 -1
- package/dist/plain/get/getNowUnit.d.ts +2 -0
- package/dist/plain/get/getNowUnit.js +2 -0
- package/dist/plain/get/getYear.d.ts +2 -0
- package/dist/plain/get/getYear.js +4 -3
- package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
- package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDate.js +1 -3
- package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
- package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
- package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDate.js +2 -0
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
- package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtTime.js +2 -0
- package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
- package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.js +2 -2
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDateTime.js +2 -2
- package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllTime.js +2 -2
- package/dist/plain/interval/intervalXorDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.js +2 -2
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDateTime.js +2 -2
- package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsTime.js +2 -2
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
- package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
- package/dist/plain/map/mapDatesInRange.d.ts +8 -4
- package/dist/plain/map/mapDatesInRange.js +1 -4
- package/dist/plain/parse/index.d.ts +1 -1
- package/dist/plain/parse/index.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +25 -9
- package/dist/plain/parse/parseDateTimeWithPattern.js +29 -11
- package/dist/plain/parse/parseDateWithPattern.d.ts +26 -9
- package/dist/plain/parse/parseDateWithPattern.js +30 -11
- package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
- package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +8 -8
- package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseTimeWithPattern.js +11 -7
- package/dist/plain/parse/parseUnitFromDate.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDate.js +8 -4
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +8 -4
- package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDate.js +2 -6
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
- package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
- package/dist/plain/parse/parseYearFromDate.js +7 -3
- package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
- package/dist/plain/parse/parseYearFromDateTime.js +6 -3
- package/dist/plain/validate/index.d.ts +1 -0
- package/dist/plain/validate/index.js +1 -0
- package/dist/plain/validate/isValidDateRange.d.ts +19 -4
- package/dist/plain/validate/isValidDateRange.js +1 -4
- package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidDateTimeRange.js +2 -5
- package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
- package/dist/plain/validate/isValidSqlDateTime.js +36 -0
- package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidTimeRange.js +2 -5
- package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
- package/dist/precision/convert/fromExcelSerial.js +4 -5
- package/dist/precision/convert/fromNanoseconds.d.ts +9 -3
- package/dist/precision/convert/fromNanoseconds.js +9 -3
- package/dist/precision/convert/toExcelSerial.d.ts +9 -3
- package/dist/precision/convert/toExcelSerial.js +3 -4
- package/dist/precision/convert/toNanoseconds.d.ts +11 -6
- package/dist/precision/convert/toNanoseconds.js +11 -6
- package/dist/precision/validate/isValidInstant.d.ts +12 -3
- package/dist/precision/validate/isValidInstant.js +12 -3
- package/dist/regex/epcis.d.ts +60 -0
- package/dist/regex/epcis.js +60 -0
- package/dist/regex/http-date.d.ts +6 -4
- package/dist/regex/http-date.js +6 -4
- package/dist/regex/index.d.ts +1 -0
- package/dist/regex/index.js +1 -0
- package/dist/regex/rfc-2822.d.ts +2 -0
- package/dist/regex/rfc-2822.js +2 -0
- package/dist/regex/rfc-3339.d.ts +3 -1
- package/dist/regex/rfc-3339.js +3 -1
- package/dist/regex/sql-date-time.d.ts +2 -1
- package/dist/regex/sql-date-time.js +2 -1
- package/dist/regex/time-zone-like.d.ts +3 -2
- package/dist/regex/time-zone-like.js +3 -2
- package/dist/regex/utc-offset.d.ts +2 -1
- package/dist/regex/utc-offset.js +2 -1
- package/dist/span/calculate/spanMs.d.ts +10 -4
- package/dist/span/calculate/spanMs.js +10 -4
- package/dist/span/calculate/spanNs.d.ts +10 -4
- package/dist/span/calculate/spanNs.js +10 -4
- package/dist/span/validate/isValidSpan.d.ts +8 -3
- package/dist/span/validate/isValidSpan.js +8 -3
- package/dist/transport/calculate/bestAvailable.d.ts +47 -0
- package/dist/transport/calculate/bestAvailable.js +76 -0
- package/dist/transport/calculate/crossingTime.d.ts +63 -0
- package/dist/transport/calculate/crossingTime.js +81 -0
- package/dist/transport/calculate/cutoffAt.d.ts +95 -0
- package/dist/transport/calculate/cutoffAt.js +211 -0
- package/dist/transport/calculate/cutoffSchedule.d.ts +75 -0
- package/dist/transport/calculate/cutoffSchedule.js +73 -0
- package/dist/transport/calculate/dwellTime.d.ts +22 -8
- package/dist/transport/calculate/dwellTime.js +18 -9
- package/dist/transport/calculate/estimateDrift.d.ts +65 -0
- package/dist/transport/calculate/estimateDrift.js +75 -0
- package/dist/transport/calculate/index.d.ts +8 -0
- package/dist/transport/calculate/index.js +8 -0
- package/dist/transport/calculate/nextDeparture.d.ts +78 -0
- package/dist/transport/calculate/nextDeparture.js +131 -0
- package/dist/transport/calculate/punctualityRate.d.ts +42 -0
- package/dist/transport/calculate/punctualityRate.js +59 -0
- package/dist/transport/calculate/scheduleDelivery.d.ts +158 -0
- package/dist/transport/calculate/scheduleDelivery.js +305 -0
- package/dist/transport/calculate/transitTime.d.ts +21 -3
- package/dist/transport/calculate/transitTime.js +29 -46
- package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
- package/dist/transport/compare/classifyPunctuality.js +64 -0
- package/dist/transport/compare/index.d.ts +4 -0
- package/dist/transport/compare/index.js +4 -0
- package/dist/transport/compare/isPastCutoff.d.ts +33 -0
- package/dist/transport/compare/isPastCutoff.js +48 -0
- package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
- package/dist/transport/compare/scheduleDeviation.js +53 -0
- package/dist/transport/compare/timeToCutoff.d.ts +31 -0
- package/dist/transport/compare/timeToCutoff.js +47 -0
- package/dist/transport/convert/etaAtZone.d.ts +13 -1
- package/dist/transport/convert/etaAtZone.js +15 -5
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.js +1 -0
- package/dist/types/business-calendar.d.ts +20 -14
- package/dist/types/calendar-options.d.ts +15 -3
- package/dist/types/date-cycle-field.d.ts +5 -0
- package/dist/types/date-duration-unit.d.ts +4 -0
- package/dist/types/date-time-cycle-field.d.ts +4 -0
- package/dist/types/date-time-duration-units.d.ts +4 -0
- package/dist/types/date-time-unit.d.ts +4 -0
- package/dist/types/date-unit.d.ts +4 -0
- package/dist/types/disambiguation.d.ts +8 -0
- package/dist/types/duration-relative-to.d.ts +8 -0
- package/dist/types/duration-string-options.d.ts +28 -0
- package/dist/types/duty.d.ts +777 -0
- package/dist/types/edi.d.ts +407 -0
- package/dist/types/edi.js +0 -0
- package/dist/types/epcis.d.ts +25 -0
- package/dist/types/epcis.js +0 -0
- package/dist/types/exact-duration-unit.d.ts +8 -0
- package/dist/types/exact-duration-unit.js +0 -0
- package/dist/types/fiscal-calendar.d.ts +1 -1
- package/dist/types/fractional-digit.d.ts +5 -0
- package/dist/types/free-time-options.d.ts +22 -11
- package/dist/types/index.d.ts +7 -1
- package/dist/types/index.js +7 -1
- package/dist/types/interval.d.ts +8 -1
- package/dist/types/offset.d.ts +9 -0
- package/dist/types/operating-schedule.d.ts +72 -0
- package/dist/types/operating-schedule.js +0 -0
- package/dist/types/overflow.d.ts +6 -0
- package/dist/types/relative-rounding-method.d.ts +6 -0
- package/dist/types/relative-time-options.d.ts +33 -5
- package/dist/types/rounding-options.d.ts +27 -0
- package/dist/types/time-cycle-field.d.ts +4 -0
- package/dist/types/time-duration-unit.d.ts +4 -0
- package/dist/types/time-unit.d.ts +4 -0
- package/dist/types/transport-timestamps.d.ts +54 -0
- package/dist/types/transport-timestamps.js +0 -0
- package/dist/types/two-digit-year.d.ts +23 -0
- package/dist/types/two-digit-year.js +0 -0
- package/dist/types/zone-bucket-unit.d.ts +1 -1
- package/dist/unix/calculate/addUnix.d.ts +28 -5
- package/dist/unix/calculate/addUnix.js +15 -16
- package/dist/unix/calculate/diffUnix.d.ts +21 -3
- package/dist/unix/calculate/diffUnix.js +12 -9
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +21 -3
- package/dist/unix/calculate/diffUnixAsDuration.js +11 -8
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/endOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/endOfUnix.d.ts +29 -4
- package/dist/unix/calculate/endOfUnix.js +8 -4
- package/dist/unix/calculate/isBetweenUnix.d.ts +27 -4
- package/dist/unix/calculate/isBetweenUnix.js +7 -9
- package/dist/unix/calculate/roundUnix.d.ts +39 -3
- package/dist/unix/calculate/roundUnix.js +16 -12
- package/dist/unix/calculate/setUnix.d.ts +58 -12
- package/dist/unix/calculate/setUnix.js +37 -25
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/startOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/startOfUnix.d.ts +29 -4
- package/dist/unix/calculate/startOfUnix.js +8 -4
- package/dist/unix/calculate/subtractUnix.d.ts +27 -5
- package/dist/unix/calculate/subtractUnix.js +14 -16
- package/dist/unix/compare/areUnixEqual.d.ts +7 -1
- package/dist/unix/compare/areUnixEqual.js +1 -1
- package/dist/unix/compare/areUnixEqualBy.d.ts +33 -7
- package/dist/unix/compare/areUnixEqualBy.js +20 -9
- package/dist/unix/compare/isAfterUnix.d.ts +7 -1
- package/dist/unix/compare/isAfterUnix.js +1 -1
- package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
- package/dist/unix/compare/isBeforeUnix.js +1 -1
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainDate.js +7 -8
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.js +7 -8
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainTime.js +7 -8
- package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
- package/dist/unix/convert/convertUnixToUtc.js +3 -4
- package/dist/unix/convert/convertUnixToZoned.d.ts +14 -5
- package/dist/unix/convert/convertUnixToZoned.js +8 -5
- package/dist/unix/format/formatCalendarUnix.d.ts +31 -19
- package/dist/unix/format/formatCalendarUnix.js +10 -6
- package/dist/unix/format/formatRelativeUnix.d.ts +62 -5
- package/dist/unix/format/formatRelativeUnix.js +16 -10
- package/dist/unix/format/formatUnix.d.ts +29 -6
- package/dist/unix/format/formatUnix.js +12 -7
- package/dist/unix/get/getUnixDay.d.ts +1 -3
- package/dist/unix/get/getUnixDay.js +5 -12
- package/dist/unix/get/getUnixHour.d.ts +1 -3
- package/dist/unix/get/getUnixHour.js +5 -12
- package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
- package/dist/unix/get/getUnixMicrosecond.js +4 -11
- package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
- package/dist/unix/get/getUnixMillisecond.js +5 -12
- package/dist/unix/get/getUnixMinute.d.ts +1 -3
- package/dist/unix/get/getUnixMinute.js +5 -12
- package/dist/unix/get/getUnixMonth.d.ts +1 -3
- package/dist/unix/get/getUnixMonth.js +5 -12
- package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
- package/dist/unix/get/getUnixNanosecond.js +4 -11
- package/dist/unix/get/getUnixNow.d.ts +8 -3
- package/dist/unix/get/getUnixNow.js +1 -3
- package/dist/unix/get/getUnixNowUnit.d.ts +2 -0
- package/dist/unix/get/getUnixNowUnit.js +2 -0
- package/dist/unix/get/getUnixSecond.d.ts +1 -3
- package/dist/unix/get/getUnixSecond.js +5 -12
- package/dist/unix/get/getUnixYear.d.ts +3 -3
- package/dist/unix/get/getUnixYear.js +5 -12
- package/dist/unix/interval/intervalCountUnix.d.ts +23 -5
- package/dist/unix/interval/intervalCountUnix.js +9 -5
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
- package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +41 -5
- package/dist/unix/interval/intervalFromDurationUnix.js +18 -12
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalLengthUnix.d.ts +24 -6
- package/dist/unix/interval/intervalLengthUnix.js +10 -6
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +21 -3
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +11 -8
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
- package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
- package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +50 -11
- package/dist/unix/interval/splitIntervalByUnitUnix.js +33 -22
- package/dist/unix/parse/parseDateFromUnix.d.ts +15 -2
- package/dist/unix/parse/parseDateFromUnix.js +4 -5
- package/dist/unix/parse/parseDayFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseDayFromUnix.js +2 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +15 -1
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +3 -3
- package/dist/unix/parse/parseHourFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseHourFromUnix.js +2 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMonthFromUnix.js +2 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseSecondFromUnix.js +2 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseTimeFromUnix.js +5 -5
- package/dist/unix/parse/parseUnitFromUnix.d.ts +29 -4
- package/dist/unix/parse/parseUnitFromUnix.js +23 -17
- package/dist/unix/parse/parseWeekFromUnix.d.ts +24 -7
- package/dist/unix/parse/parseWeekFromUnix.js +7 -11
- package/dist/unix/parse/parseYearFromUnix.d.ts +20 -3
- package/dist/unix/parse/parseYearFromUnix.js +6 -3
- package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
- package/dist/unix/validate/isValidUnixRange.js +1 -4
- package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
- package/dist/utc/calculate/addUtc.d.ts +7 -4
- package/dist/utc/calculate/addUtc.js +5 -11
- package/dist/utc/calculate/diffUtc.d.ts +1 -1
- package/dist/utc/calculate/diffUtc.js +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +16 -3
- package/dist/utc/calculate/endOfUtc.js +2 -3
- package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
- package/dist/utc/calculate/isBetweenUtc.js +4 -4
- package/dist/utc/calculate/roundUtc.d.ts +26 -9
- package/dist/utc/calculate/roundUtc.js +3 -12
- package/dist/utc/calculate/setUtc.d.ts +23 -7
- package/dist/utc/calculate/setUtc.js +23 -12
- package/dist/utc/calculate/startOfUtc.d.ts +15 -2
- package/dist/utc/calculate/startOfUtc.js +1 -2
- package/dist/utc/calculate/subtractUtc.d.ts +7 -4
- package/dist/utc/calculate/subtractUtc.js +5 -11
- package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
- package/dist/utc/compare/areUtcEqualBy.js +2 -3
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +14 -3
- package/dist/utc/convert/convertUtcToPlainDate.js +12 -10
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +15 -3
- package/dist/utc/convert/convertUtcToPlainDateTime.js +14 -16
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +11 -3
- package/dist/utc/convert/convertUtcToPlainTime.js +9 -9
- package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
- package/dist/utc/convert/convertUtcToUnix.js +3 -4
- package/dist/utc/convert/convertUtcToZoned.d.ts +5 -1
- package/dist/utc/convert/convertUtcToZoned.js +5 -1
- package/dist/utc/format/formatCalendarUtc.d.ts +23 -8
- package/dist/utc/format/formatCalendarUtc.js +14 -7
- package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +8 -8
- package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +8 -8
- package/dist/utc/format/formatRelativeUtc.d.ts +38 -10
- package/dist/utc/format/formatRelativeUtc.js +22 -16
- package/dist/utc/format/formatUtc.d.ts +22 -15
- package/dist/utc/format/formatUtc.js +12 -8
- package/dist/utc/format/index.d.ts +1 -1
- package/dist/utc/format/index.js +1 -1
- package/dist/utc/get/getUtcDay.d.ts +1 -3
- package/dist/utc/get/getUtcDay.js +5 -12
- package/dist/utc/get/getUtcHour.d.ts +1 -3
- package/dist/utc/get/getUtcHour.js +5 -12
- package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
- package/dist/utc/get/getUtcMicrosecond.js +4 -11
- package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
- package/dist/utc/get/getUtcMillisecond.js +5 -12
- package/dist/utc/get/getUtcMinute.d.ts +1 -3
- package/dist/utc/get/getUtcMinute.js +5 -12
- package/dist/utc/get/getUtcMonth.d.ts +1 -3
- package/dist/utc/get/getUtcMonth.js +5 -12
- package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
- package/dist/utc/get/getUtcNanosecond.js +4 -11
- package/dist/utc/get/getUtcNow.d.ts +1 -3
- package/dist/utc/get/getUtcNow.js +2 -9
- package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
- package/dist/utc/get/getUtcNowUnit.js +2 -0
- package/dist/utc/get/getUtcSecond.d.ts +1 -3
- package/dist/utc/get/getUtcSecond.js +5 -12
- package/dist/utc/get/getUtcYear.d.ts +3 -3
- package/dist/utc/get/getUtcYear.js +5 -12
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
- package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
- package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
- package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
- package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.js +2 -2
- package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
- package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
- package/dist/utc/parse/index.d.ts +1 -1
- package/dist/utc/parse/index.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDateFromUtc.js +3 -5
- package/dist/utc/parse/parseDayFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayFromUtc.js +3 -5
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +5 -7
- package/dist/utc/parse/parseHourFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseHourFromUtc.js +3 -5
- package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
- package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +12 -12
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMicrosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMillisecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMinuteFromUtc.js +3 -5
- package/dist/utc/parse/parseMonthFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMonthFromUtc.js +3 -5
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseNanosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseSecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseSecondFromUtc.js +3 -5
- package/dist/utc/parse/parseTimeFromUtc.d.ts +11 -3
- package/dist/utc/parse/parseTimeFromUtc.js +7 -7
- package/dist/utc/parse/parseUnitFromUtc.d.ts +25 -6
- package/dist/utc/parse/parseUnitFromUtc.js +14 -10
- package/dist/utc/parse/parseWeekFromUtc.d.ts +20 -10
- package/dist/utc/parse/parseWeekFromUtc.js +8 -14
- package/dist/utc/parse/parseYearFromUtc.d.ts +13 -5
- package/dist/utc/parse/parseYearFromUtc.js +9 -8
- package/dist/utc/validate/index.d.ts +2 -0
- package/dist/utc/validate/index.js +2 -0
- package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
- package/dist/utc/validate/isValidHttpDate.js +38 -0
- package/dist/utc/validate/isValidUtc.d.ts +4 -0
- package/dist/utc/validate/isValidUtc.js +4 -0
- package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
- package/dist/utc/validate/isValidUtcRange.js +2 -5
- package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
- package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
- package/dist/zoned/calculate/addZoned.d.ts +20 -10
- package/dist/zoned/calculate/addZoned.js +10 -20
- package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
- package/dist/zoned/calculate/cycleZoned.js +1 -8
- package/dist/zoned/calculate/diffZoned.d.ts +1 -1
- package/dist/zoned/calculate/diffZoned.js +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
- package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
- package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
- package/dist/zoned/calculate/roundZoned.d.ts +21 -4
- package/dist/zoned/calculate/roundZoned.js +3 -7
- package/dist/zoned/calculate/setZoned.d.ts +44 -13
- package/dist/zoned/calculate/setZoned.js +30 -21
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
- package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
- package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
- package/dist/zoned/calculate/startOfZoned.js +1 -3
- package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
- package/dist/zoned/calculate/subtractZoned.js +10 -20
- package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
- package/dist/zoned/compare/areZonedEqualBy.js +7 -5
- package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
- package/dist/zoned/compare/isBetweenZoned.js +4 -3
- package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
- package/dist/zoned/compare/isInDaylightSaving.js +40 -44
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +21 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +9 -11
- package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
- package/dist/zoned/convert/convertZonedToUnix.js +2 -4
- package/dist/zoned/convert/convertZonedToZoned.d.ts +5 -1
- package/dist/zoned/convert/convertZonedToZoned.js +5 -1
- package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
- package/dist/zoned/format/formatCalendarZoned.js +15 -10
- package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
- package/dist/zoned/format/formatRelativeZoned.js +9 -5
- package/dist/zoned/format/formatRfc2822.d.ts +2 -2
- package/dist/zoned/format/formatRfc2822.js +2 -2
- package/dist/zoned/format/formatRfc3339.d.ts +2 -3
- package/dist/zoned/format/formatRfc3339.js +2 -3
- package/dist/zoned/format/formatTimeZoneName.d.ts +16 -3
- package/dist/zoned/format/formatTimeZoneName.js +9 -4
- package/dist/zoned/format/formatZonedDateTime.js +2 -1
- package/dist/zoned/format/formatZonedRange.js +2 -1
- package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
- package/dist/zoned/format/formatZonedToParts.js +8 -5
- package/dist/zoned/get/getDstTransitions.d.ts +11 -10
- package/dist/zoned/get/getDstTransitions.js +21 -7
- package/dist/zoned/get/getSystemTimeZone.d.ts +3 -1
- package/dist/zoned/get/getSystemTimeZone.js +5 -2
- package/dist/zoned/get/getTimeZoneOffset.d.ts +13 -2
- package/dist/zoned/get/getTimeZoneOffset.js +22 -6
- package/dist/zoned/get/getZonedDay.d.ts +2 -1
- package/dist/zoned/get/getZonedDay.js +6 -7
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +2 -1
- package/dist/zoned/get/getZonedDayOfWeek.js +6 -5
- package/dist/zoned/get/getZonedHour.d.ts +2 -1
- package/dist/zoned/get/getZonedHour.js +6 -7
- package/dist/zoned/get/getZonedMicrosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMicrosecond.js +6 -5
- package/dist/zoned/get/getZonedMillisecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMillisecond.js +6 -7
- package/dist/zoned/get/getZonedMinute.d.ts +2 -1
- package/dist/zoned/get/getZonedMinute.js +6 -7
- package/dist/zoned/get/getZonedMonth.d.ts +2 -1
- package/dist/zoned/get/getZonedMonth.js +6 -7
- package/dist/zoned/get/getZonedNanosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedNanosecond.js +6 -5
- package/dist/zoned/get/getZonedNow.d.ts +18 -2
- package/dist/zoned/get/getZonedNow.js +17 -4
- package/dist/zoned/get/getZonedNowUnit.d.ts +6 -3
- package/dist/zoned/get/getZonedNowUnit.js +10 -7
- package/dist/zoned/get/getZonedSecond.d.ts +2 -1
- package/dist/zoned/get/getZonedSecond.js +6 -7
- package/dist/zoned/get/getZonedToday.d.ts +2 -1
- package/dist/zoned/get/getZonedToday.js +6 -5
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +2 -1
- package/dist/zoned/get/getZonedWeekOfYear.js +6 -5
- package/dist/zoned/get/getZonedYear.d.ts +4 -1
- package/dist/zoned/get/getZonedYear.js +9 -7
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
- package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
- package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
- package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.js +2 -2
- package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.js +2 -2
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
- package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
- package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +13 -4
- package/dist/zoned/parse/parseUnitFromZoned.js +6 -4
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
- package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
- package/dist/zoned/parse/parseYearFromZoned.js +6 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +45 -12
- package/dist/zoned/validate/hasDaylightSaving.js +54 -32
- package/dist/zoned/validate/index.d.ts +2 -0
- package/dist/zoned/validate/index.js +2 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
- package/dist/zoned/validate/isValidTimeZone.d.ts +5 -1
- package/dist/zoned/validate/isValidTimeZone.js +6 -2
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
- package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
- package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
- package/dist/zoned/validate/isValidZonedRange.js +1 -4
- package/package.json +67 -5
- package/skills/gmt-arithmetic/SKILL.md +99 -12
- package/skills/gmt-basics/SKILL.md +64 -13
- package/skills/gmt-integration/SKILL.md +33 -13
- package/skills/gmt-timezone/SKILL.md +265 -31
- package/dist/duration/calculate/durationAs.d.ts +0 -62
- package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
- package/dist/internal/resolveReadingTimeZone.js +0 -18
- package/dist/internal/unixZonedDateTime.d.ts +0 -22
- package/dist/internal/unixZonedDateTime.js +0 -32
- package/dist/internal/utcZonedDateTime.d.ts +0 -16
- package/dist/internal/utcZonedDateTime.js +0 -28
- package/dist/types/duration-unit.d.ts +0 -5
- /package/dist/types/{duration-unit.js → duty.js} +0 -0
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* the nearest whole day (`round(totalDays · i / n)`, computed exactly in `bigint`, an exact half
|
|
11
11
|
* rounding up) — when `totalDays` isn't evenly divisible by `n`, the resulting sub-intervals
|
|
12
12
|
* differ by at most one day rather than being mathematically exact.
|
|
13
|
+
* - When `n` is larger than the number of whole days in the interval, some pieces are empty (their
|
|
14
|
+
* `start` equals their `end`): the result always has exactly `n` pieces.
|
|
13
15
|
* - `n === 1` returns the original interval unchanged, as a single-element array.
|
|
14
16
|
* - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals.
|
|
15
17
|
* - Returns `[]` when `n` is not a positive integer, or on invalid input (unparseable
|
|
@@ -18,14 +20,11 @@
|
|
|
18
20
|
* carry the *same* calendar tag (or both be bare ISO); a mismatch returns `[]` (E5 decision
|
|
19
21
|
* of record D4). Internal boundaries are computed in whole days (calendar-independent), then
|
|
20
22
|
* re-formatted in the shared calendar.
|
|
21
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: when `n`
|
|
22
|
-
* exceeds it, or exceeds the longest possible array (2^32 - 1), the function returns `[]`
|
|
23
|
-
* before building any piece. An invalid `maxPieces` also returns `[]`.
|
|
24
23
|
*
|
|
25
24
|
* @param start ISO PlainDate string for the interval start, optionally calendar-annotated
|
|
26
25
|
* @param end ISO PlainDate string for the interval end, optionally calendar-annotated
|
|
27
26
|
* @param n number of equal sub-intervals to produce (positive integer)
|
|
28
|
-
* @param options
|
|
27
|
+
* @param options The limit on the size of the result
|
|
29
28
|
* @returns array of `n` `{ start, end }` records, or `[]` on invalid input / mismatched calendars
|
|
30
29
|
*
|
|
31
30
|
* @example intervalDivideEquallyDate("2024-01-01", "2024-01-05", 4) // [{ start: "2024-01-01", end: "2024-01-02" }, { start: "2024-01-02", end: "2024-01-03" }, { start: "2024-01-03", end: "2024-01-04" }, { start: "2024-01-04", end: "2024-01-05" }]
|
|
@@ -38,8 +37,24 @@
|
|
|
38
37
|
* @example intervalDivideEquallyDate("2024-01-01", "2024-01-10", 3, { maxPieces: 3 }) // [{ start: "2024-01-01", end: "2024-01-04" }, { start: "2024-01-04", end: "2024-01-07" }, { start: "2024-01-07", end: "2024-01-10" }]
|
|
39
38
|
*/
|
|
40
39
|
export declare function intervalDivideEquallyDate(start: string, end: string, n: number, options?: {
|
|
40
|
+
/**
|
|
41
|
+
* The most records the result may hold. A result that would hold more, or more than the longest
|
|
42
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
43
|
+
* positive safe integer also returns `[]`.
|
|
44
|
+
*
|
|
45
|
+
* @defaultValue `1_000_000`
|
|
46
|
+
*/
|
|
41
47
|
maxPieces?: number;
|
|
42
48
|
}): Array<{
|
|
49
|
+
/**
|
|
50
|
+
* The date the interval begins on, as an ISO 8601 date (`YYYY-MM-DD`). It keeps a calendar
|
|
51
|
+
* annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
52
|
+
*/
|
|
43
53
|
start: string;
|
|
54
|
+
/**
|
|
55
|
+
* The first date after the interval, in the same format as `start`. It is exclusive: the interval
|
|
56
|
+
* holds everything from `start` up to but not including this value. It can equal `start`, which
|
|
57
|
+
* makes the interval empty.
|
|
58
|
+
*/
|
|
44
59
|
end: string;
|
|
45
60
|
}>;
|
|
@@ -15,6 +15,8 @@ import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js
|
|
|
15
15
|
* the nearest whole day (`round(totalDays · i / n)`, computed exactly in `bigint`, an exact half
|
|
16
16
|
* rounding up) — when `totalDays` isn't evenly divisible by `n`, the resulting sub-intervals
|
|
17
17
|
* differ by at most one day rather than being mathematically exact.
|
|
18
|
+
* - When `n` is larger than the number of whole days in the interval, some pieces are empty (their
|
|
19
|
+
* `start` equals their `end`): the result always has exactly `n` pieces.
|
|
18
20
|
* - `n === 1` returns the original interval unchanged, as a single-element array.
|
|
19
21
|
* - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals.
|
|
20
22
|
* - Returns `[]` when `n` is not a positive integer, or on invalid input (unparseable
|
|
@@ -23,14 +25,11 @@ import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js
|
|
|
23
25
|
* carry the *same* calendar tag (or both be bare ISO); a mismatch returns `[]` (E5 decision
|
|
24
26
|
* of record D4). Internal boundaries are computed in whole days (calendar-independent), then
|
|
25
27
|
* re-formatted in the shared calendar.
|
|
26
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: when `n`
|
|
27
|
-
* exceeds it, or exceeds the longest possible array (2^32 - 1), the function returns `[]`
|
|
28
|
-
* before building any piece. An invalid `maxPieces` also returns `[]`.
|
|
29
28
|
*
|
|
30
29
|
* @param start ISO PlainDate string for the interval start, optionally calendar-annotated
|
|
31
30
|
* @param end ISO PlainDate string for the interval end, optionally calendar-annotated
|
|
32
31
|
* @param n number of equal sub-intervals to produce (positive integer)
|
|
33
|
-
* @param options
|
|
32
|
+
* @param options The limit on the size of the result
|
|
34
33
|
* @returns array of `n` `{ start, end }` records, or `[]` on invalid input / mismatched calendars
|
|
35
34
|
*
|
|
36
35
|
* @example intervalDivideEquallyDate("2024-01-01", "2024-01-05", 4) // [{ start: "2024-01-01", end: "2024-01-02" }, { start: "2024-01-02", end: "2024-01-03" }, { start: "2024-01-03", end: "2024-01-04" }, { start: "2024-01-04", end: "2024-01-05" }]
|
|
@@ -10,18 +10,17 @@
|
|
|
10
10
|
* `bigint`: the split is exact whenever the total divides evenly by `n`, and within half a
|
|
11
11
|
* nanosecond of the exact cut otherwise (an exact half rounds up), at any span length — the
|
|
12
12
|
* whole PlainDateTime range included.
|
|
13
|
+
* - When `n` is larger than the number of nanoseconds in the interval, some pieces are empty (their
|
|
14
|
+
* `start` equals their `end`): the result always has exactly `n` pieces.
|
|
13
15
|
* - `n === 1` returns the original interval unchanged, as a single-element array.
|
|
14
16
|
* - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals.
|
|
15
17
|
* - Returns `[]` when `n` is not a positive integer, or on invalid input (unparseable
|
|
16
18
|
* start/end, `start > end`).
|
|
17
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: when `n`
|
|
18
|
-
* exceeds it, or exceeds the longest possible array (2^32 - 1), the function returns `[]`
|
|
19
|
-
* before building any piece. An invalid `maxPieces` also returns `[]`.
|
|
20
19
|
*
|
|
21
20
|
* @param start ISO PlainDateTime string for the interval start
|
|
22
21
|
* @param end ISO PlainDateTime string for the interval end
|
|
23
22
|
* @param n number of equal sub-intervals to produce (positive integer)
|
|
24
|
-
* @param options
|
|
23
|
+
* @param options The limit on the size of the result
|
|
25
24
|
* @returns array of `n` `{ start, end }` records, or `[]` on invalid input
|
|
26
25
|
*
|
|
27
26
|
* @example intervalDivideEquallyDateTime("2024-01-01T00:00:00", "2024-01-04T00:00:00", 3) // [{ start: "2024-01-01T00:00:00", end: "2024-01-02T00:00:00" }, { start: "2024-01-02T00:00:00", end: "2024-01-03T00:00:00" }, { start: "2024-01-03T00:00:00", end: "2024-01-04T00:00:00" }]
|
|
@@ -32,8 +31,24 @@
|
|
|
32
31
|
* @example intervalDivideEquallyDateTime("2024-01-01T00:00:00", "2024-01-04T00:00:00", 3, { maxPieces: 3 }) // [{ start: "2024-01-01T00:00:00", end: "2024-01-02T00:00:00" }, { start: "2024-01-02T00:00:00", end: "2024-01-03T00:00:00" }, { start: "2024-01-03T00:00:00", end: "2024-01-04T00:00:00" }]
|
|
33
32
|
*/
|
|
34
33
|
export declare function intervalDivideEquallyDateTime(start: string, end: string, n: number, options?: {
|
|
34
|
+
/**
|
|
35
|
+
* The most records the result may hold. A result that would hold more, or more than the longest
|
|
36
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
37
|
+
* positive safe integer also returns `[]`.
|
|
38
|
+
*
|
|
39
|
+
* @defaultValue `1_000_000`
|
|
40
|
+
*/
|
|
35
41
|
maxPieces?: number;
|
|
36
42
|
}): Array<{
|
|
43
|
+
/**
|
|
44
|
+
* The date-time the interval begins at, as an ISO 8601 date-time string with no offset or time
|
|
45
|
+
* zone.
|
|
46
|
+
*/
|
|
37
47
|
start: string;
|
|
48
|
+
/**
|
|
49
|
+
* The first date-time after the interval, in the same format as `start`. It is exclusive: the
|
|
50
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
51
|
+
* `start`, which makes the interval empty.
|
|
52
|
+
*/
|
|
38
53
|
end: string;
|
|
39
54
|
}>;
|
|
@@ -16,18 +16,17 @@ const NANOSECONDS_PER_DAY = 86400000000000n;
|
|
|
16
16
|
* `bigint`: the split is exact whenever the total divides evenly by `n`, and within half a
|
|
17
17
|
* nanosecond of the exact cut otherwise (an exact half rounds up), at any span length — the
|
|
18
18
|
* whole PlainDateTime range included.
|
|
19
|
+
* - When `n` is larger than the number of nanoseconds in the interval, some pieces are empty (their
|
|
20
|
+
* `start` equals their `end`): the result always has exactly `n` pieces.
|
|
19
21
|
* - `n === 1` returns the original interval unchanged, as a single-element array.
|
|
20
22
|
* - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals.
|
|
21
23
|
* - Returns `[]` when `n` is not a positive integer, or on invalid input (unparseable
|
|
22
24
|
* start/end, `start > end`).
|
|
23
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: when `n`
|
|
24
|
-
* exceeds it, or exceeds the longest possible array (2^32 - 1), the function returns `[]`
|
|
25
|
-
* before building any piece. An invalid `maxPieces` also returns `[]`.
|
|
26
25
|
*
|
|
27
26
|
* @param start ISO PlainDateTime string for the interval start
|
|
28
27
|
* @param end ISO PlainDateTime string for the interval end
|
|
29
28
|
* @param n number of equal sub-intervals to produce (positive integer)
|
|
30
|
-
* @param options
|
|
29
|
+
* @param options The limit on the size of the result
|
|
31
30
|
* @returns array of `n` `{ start, end }` records, or `[]` on invalid input
|
|
32
31
|
*
|
|
33
32
|
* @example intervalDivideEquallyDateTime("2024-01-01T00:00:00", "2024-01-04T00:00:00", 3) // [{ start: "2024-01-01T00:00:00", end: "2024-01-02T00:00:00" }, { start: "2024-01-02T00:00:00", end: "2024-01-03T00:00:00" }, { start: "2024-01-03T00:00:00", end: "2024-01-04T00:00:00" }]
|
|
@@ -10,18 +10,17 @@
|
|
|
10
10
|
* integer nanoseconds, computed in `bigint`: the split is exact whenever the total divides
|
|
11
11
|
* evenly by `n`, and within half a nanosecond of the exact cut otherwise (an exact half rounds
|
|
12
12
|
* up).
|
|
13
|
+
* - When `n` is larger than the number of nanoseconds in the interval, some pieces are empty (their
|
|
14
|
+
* `start` equals their `end`): the result always has exactly `n` pieces.
|
|
13
15
|
* - `n === 1` returns the original interval unchanged, as a single-element array.
|
|
14
16
|
* - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals.
|
|
15
17
|
* - Returns `[]` when `n` is not a positive integer, or on invalid input (unparseable
|
|
16
18
|
* start/end, `start > end`).
|
|
17
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: when `n`
|
|
18
|
-
* exceeds it, or exceeds the longest possible array (2^32 - 1), the function returns `[]`
|
|
19
|
-
* before building any piece. An invalid `maxPieces` also returns `[]`.
|
|
20
19
|
*
|
|
21
20
|
* @param start ISO PlainTime string for the interval start
|
|
22
21
|
* @param end ISO PlainTime string for the interval end
|
|
23
22
|
* @param n number of equal sub-intervals to produce (positive integer)
|
|
24
|
-
* @param options
|
|
23
|
+
* @param options The limit on the size of the result
|
|
25
24
|
* @returns array of `n` `{ start, end }` records, or `[]` on invalid input
|
|
26
25
|
*
|
|
27
26
|
* @example intervalDivideEquallyTime("09:00:00", "17:00:00", 4) // [{ start: "09:00:00", end: "11:00:00" }, { start: "11:00:00", end: "13:00:00" }, { start: "13:00:00", end: "15:00:00" }, { start: "15:00:00", end: "17:00:00" }]
|
|
@@ -33,8 +32,24 @@
|
|
|
33
32
|
* @example intervalDivideEquallyTime("09:00:00", "17:00:00", 3, { maxPieces: 3 }) // [{ start: "09:00:00", end: "11:40:00" }, { start: "11:40:00", end: "14:20:00" }, { start: "14:20:00", end: "17:00:00" }]
|
|
34
33
|
*/
|
|
35
34
|
export declare function intervalDivideEquallyTime(start: string, end: string, n: number, options?: {
|
|
35
|
+
/**
|
|
36
|
+
* The most records the result may hold. A result that would hold more, or more than the longest
|
|
37
|
+
* possible array (2^32 - 1 elements), returns `[]` and none is built. A value that is not a
|
|
38
|
+
* positive safe integer also returns `[]`.
|
|
39
|
+
*
|
|
40
|
+
* @defaultValue `1_000_000`
|
|
41
|
+
*/
|
|
36
42
|
maxPieces?: number;
|
|
37
43
|
}): Array<{
|
|
44
|
+
/**
|
|
45
|
+
* The clock time the interval begins at, as an ISO 8601 time string with no date, offset or time
|
|
46
|
+
* zone.
|
|
47
|
+
*/
|
|
38
48
|
start: string;
|
|
49
|
+
/**
|
|
50
|
+
* The first clock time after the interval, in the same format as `start`. It is exclusive: the
|
|
51
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
52
|
+
* `start`, which makes the interval empty.
|
|
53
|
+
*/
|
|
39
54
|
end: string;
|
|
40
55
|
}>;
|
|
@@ -15,18 +15,17 @@ import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js
|
|
|
15
15
|
* integer nanoseconds, computed in `bigint`: the split is exact whenever the total divides
|
|
16
16
|
* evenly by `n`, and within half a nanosecond of the exact cut otherwise (an exact half rounds
|
|
17
17
|
* up).
|
|
18
|
+
* - When `n` is larger than the number of nanoseconds in the interval, some pieces are empty (their
|
|
19
|
+
* `start` equals their `end`): the result always has exactly `n` pieces.
|
|
18
20
|
* - `n === 1` returns the original interval unchanged, as a single-element array.
|
|
19
21
|
* - A zero-length interval (`start === end`) returns `n` identical zero-length sub-intervals.
|
|
20
22
|
* - Returns `[]` when `n` is not a positive integer, or on invalid input (unparseable
|
|
21
23
|
* start/end, `start > end`).
|
|
22
|
-
* - `options.maxPieces` (positive safe integer, default `1_000_000`) bounds the output: when `n`
|
|
23
|
-
* exceeds it, or exceeds the longest possible array (2^32 - 1), the function returns `[]`
|
|
24
|
-
* before building any piece. An invalid `maxPieces` also returns `[]`.
|
|
25
24
|
*
|
|
26
25
|
* @param start ISO PlainTime string for the interval start
|
|
27
26
|
* @param end ISO PlainTime string for the interval end
|
|
28
27
|
* @param n number of equal sub-intervals to produce (positive integer)
|
|
29
|
-
* @param options
|
|
28
|
+
* @param options The limit on the size of the result
|
|
30
29
|
* @returns array of `n` `{ start, end }` records, or `[]` on invalid input
|
|
31
30
|
*
|
|
32
31
|
* @example intervalDivideEquallyTime("09:00:00", "17:00:00", 4) // [{ start: "09:00:00", end: "11:00:00" }, { start: "11:00:00", end: "13:00:00" }, { start: "13:00:00", end: "15:00:00" }, { start: "15:00:00", end: "17:00:00" }]
|
|
@@ -9,8 +9,6 @@ import type { Overflow } from "../../types/index.js";
|
|
|
9
9
|
* unlike `addDuration`. Time units count as whole 24-hour days, as Temporal's do.
|
|
10
10
|
* - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
|
|
11
11
|
* happens, mirroring `intervalIntersectionDate`'s `start > end` rejection.
|
|
12
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
13
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
|
|
14
12
|
* - Accepts a RFC 9557 calendar-annotated PlainDate string — E5 (issue #78). The computed endpoint
|
|
15
13
|
* is resolved in `value`'s own calendar (no `relativeTo`/pair-matching question, since there
|
|
16
14
|
* is only one calendar-tagged input) and both endpoints are re-formatted in that calendar,
|
|
@@ -22,7 +20,7 @@ import type { Overflow } from "../../types/index.js";
|
|
|
22
20
|
* @param value ISO PlainDate string, optionally calendar-annotated
|
|
23
21
|
* @param duration ISO 8601 duration string
|
|
24
22
|
* @param anchor "start" | "end" — which endpoint `value` represents
|
|
25
|
-
* @param options
|
|
23
|
+
* @param options How an out-of-range endpoint is handled
|
|
26
24
|
* @returns `{ start, end }` with the constructed span, or null on invalid input
|
|
27
25
|
*
|
|
28
26
|
* @example intervalFromDurationDate("2024-01-01", "P1M", "start") // { start: "2024-01-01", end: "2024-02-01" }
|
|
@@ -33,8 +31,23 @@ import type { Overflow } from "../../types/index.js";
|
|
|
33
31
|
* @example intervalFromDurationDate("2024-02-24[u-ca=hebrew]", "P1M", "start") // { start: "2024-02-24[u-ca=hebrew]", end: "2024-03-25[u-ca=hebrew]" } (Adar I -> Adar)
|
|
34
32
|
*/
|
|
35
33
|
export declare function intervalFromDurationDate(value: string, duration: string, anchor: "start" | "end", options?: {
|
|
34
|
+
/**
|
|
35
|
+
* What to do when the computed endpoint is not a real date. `"constrain"` clamps it to the
|
|
36
|
+
* last valid day, so Jan 31 + 1 month is Feb 29 or 28; `"reject"` returns `null`.
|
|
37
|
+
*
|
|
38
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
39
|
+
*/
|
|
36
40
|
overflow?: Overflow;
|
|
37
41
|
}): {
|
|
42
|
+
/**
|
|
43
|
+
* The date the interval begins on, as an ISO 8601 date (`YYYY-MM-DD`). It keeps a calendar
|
|
44
|
+
* annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
45
|
+
*/
|
|
38
46
|
start: string;
|
|
47
|
+
/**
|
|
48
|
+
* The first date after the interval, in the same format as `start`. It is exclusive: the interval
|
|
49
|
+
* holds everything from `start` up to but not including this value. It can equal `start`, which
|
|
50
|
+
* makes the interval empty.
|
|
51
|
+
*/
|
|
39
52
|
end: string;
|
|
40
53
|
} | null;
|
|
@@ -13,8 +13,6 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
13
13
|
* unlike `addDuration`. Time units count as whole 24-hour days, as Temporal's do.
|
|
14
14
|
* - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
|
|
15
15
|
* happens, mirroring `intervalIntersectionDate`'s `start > end` rejection.
|
|
16
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
17
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
|
|
18
16
|
* - Accepts a RFC 9557 calendar-annotated PlainDate string — E5 (issue #78). The computed endpoint
|
|
19
17
|
* is resolved in `value`'s own calendar (no `relativeTo`/pair-matching question, since there
|
|
20
18
|
* is only one calendar-tagged input) and both endpoints are re-formatted in that calendar,
|
|
@@ -26,7 +24,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
26
24
|
* @param value ISO PlainDate string, optionally calendar-annotated
|
|
27
25
|
* @param duration ISO 8601 duration string
|
|
28
26
|
* @param anchor "start" | "end" — which endpoint `value` represents
|
|
29
|
-
* @param options
|
|
27
|
+
* @param options How an out-of-range endpoint is handled
|
|
30
28
|
* @returns `{ start, end }` with the constructed span, or null on invalid input
|
|
31
29
|
*
|
|
32
30
|
* @example intervalFromDurationDate("2024-01-01", "P1M", "start") // { start: "2024-01-01", end: "2024-02-01" }
|
|
@@ -8,15 +8,13 @@ import type { Overflow } from "../../types/index.js";
|
|
|
8
8
|
* resolve against `value` itself — no separate `relativeTo` is needed, unlike `addDuration`.
|
|
9
9
|
* - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
|
|
10
10
|
* happens, mirroring `intervalIntersectionDateTime`'s `start > end` rejection.
|
|
11
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
12
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
|
|
13
11
|
* - Returns null on invalid input (unparseable `value`, invalid `duration`, or an `anchor` other
|
|
14
12
|
* than `"start"`/`"end"`).
|
|
15
13
|
*
|
|
16
14
|
* @param value ISO PlainDateTime string
|
|
17
15
|
* @param duration ISO 8601 duration string
|
|
18
16
|
* @param anchor "start" | "end" — which endpoint `value` represents
|
|
19
|
-
* @param options
|
|
17
|
+
* @param options How an out-of-range endpoint is handled
|
|
20
18
|
* @returns `{ start, end }` with the constructed span, or null on invalid input
|
|
21
19
|
*
|
|
22
20
|
* @example intervalFromDurationDateTime("2024-01-01T00:00:00", "P1DT2H", "start") // { start: "2024-01-01T00:00:00", end: "2024-01-02T02:00:00" }
|
|
@@ -26,8 +24,23 @@ import type { Overflow } from "../../types/index.js";
|
|
|
26
24
|
* @example intervalFromDurationDateTime("invalid", "P1D", "start") // null
|
|
27
25
|
*/
|
|
28
26
|
export declare function intervalFromDurationDateTime(value: string, duration: string, anchor: "start" | "end", options?: {
|
|
27
|
+
/**
|
|
28
|
+
* What to do when the computed endpoint is not a real date. `"constrain"` clamps it to the
|
|
29
|
+
* last valid day, so Jan 31 + 1 month is Feb 29 or 28; `"reject"` returns `null`.
|
|
30
|
+
*
|
|
31
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
32
|
+
*/
|
|
29
33
|
overflow?: Overflow;
|
|
30
34
|
}): {
|
|
35
|
+
/**
|
|
36
|
+
* The date-time the interval begins at, as an ISO 8601 date-time string with no offset or time
|
|
37
|
+
* zone.
|
|
38
|
+
*/
|
|
31
39
|
start: string;
|
|
40
|
+
/**
|
|
41
|
+
* The first date-time after the interval, in the same format as `start`. It is exclusive: the
|
|
42
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
43
|
+
* `start`, which makes the interval empty.
|
|
44
|
+
*/
|
|
32
45
|
end: string;
|
|
33
46
|
} | null;
|
|
@@ -12,15 +12,13 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
12
12
|
* resolve against `value` itself — no separate `relativeTo` is needed, unlike `addDuration`.
|
|
13
13
|
* - A negative `duration` (e.g. `"-P1D"`) can invert the computed span; returns null when that
|
|
14
14
|
* happens, mirroring `intervalIntersectionDateTime`'s `start > end` rejection.
|
|
15
|
-
* - `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. adding 1 month
|
|
16
|
-
* to Jan 31: "constrain" clamps to Feb 29/28, "reject" returns null.
|
|
17
15
|
* - Returns null on invalid input (unparseable `value`, invalid `duration`, or an `anchor` other
|
|
18
16
|
* than `"start"`/`"end"`).
|
|
19
17
|
*
|
|
20
18
|
* @param value ISO PlainDateTime string
|
|
21
19
|
* @param duration ISO 8601 duration string
|
|
22
20
|
* @param anchor "start" | "end" — which endpoint `value` represents
|
|
23
|
-
* @param options
|
|
21
|
+
* @param options How an out-of-range endpoint is handled
|
|
24
22
|
* @returns `{ start, end }` with the constructed span, or null on invalid input
|
|
25
23
|
*
|
|
26
24
|
* @example intervalFromDurationDateTime("2024-01-01T00:00:00", "P1DT2H", "start") // { start: "2024-01-01T00:00:00", end: "2024-01-02T02:00:00" }
|
|
@@ -31,6 +31,15 @@
|
|
|
31
31
|
* @example intervalFromDurationTime("invalid", "PT1H", "start") // null
|
|
32
32
|
*/
|
|
33
33
|
export declare function intervalFromDurationTime(value: string, duration: string, anchor: "start" | "end"): {
|
|
34
|
+
/**
|
|
35
|
+
* The clock time the interval begins at, as an ISO 8601 time string with no date, offset or time
|
|
36
|
+
* zone.
|
|
37
|
+
*/
|
|
34
38
|
start: string;
|
|
39
|
+
/**
|
|
40
|
+
* The first clock time after the interval, in the same format as `start`. It is exclusive: the
|
|
41
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
42
|
+
* `start`, which makes the interval empty.
|
|
43
|
+
*/
|
|
35
44
|
end: string;
|
|
36
45
|
} | null;
|
|
@@ -28,6 +28,15 @@
|
|
|
28
28
|
* @example intervalIntersectionDate("invalid", "2024-06-30", "2024-04-01", "2024-12-31") // null
|
|
29
29
|
*/
|
|
30
30
|
export declare function intervalIntersectionDate(aStart: string, aEnd: string, bStart: string, bEnd: string): {
|
|
31
|
+
/**
|
|
32
|
+
* The date the interval begins on, as an ISO 8601 date (`YYYY-MM-DD`). It keeps a calendar
|
|
33
|
+
* annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
34
|
+
*/
|
|
31
35
|
start: string;
|
|
36
|
+
/**
|
|
37
|
+
* The first date after the interval, in the same format as `start`. It is exclusive: the interval
|
|
38
|
+
* holds everything from `start` up to but not including this value. It can equal `start`, which
|
|
39
|
+
* makes the interval empty.
|
|
40
|
+
*/
|
|
32
41
|
end: string;
|
|
33
42
|
} | null;
|
|
@@ -23,6 +23,15 @@
|
|
|
23
23
|
* @example intervalIntersectionDateTime("invalid", "2024-06-30T23:59:59", "2024-04-01T00:00:00", "2024-12-31T23:59:59") // null
|
|
24
24
|
*/
|
|
25
25
|
export declare function intervalIntersectionDateTime(aStart: string, aEnd: string, bStart: string, bEnd: string): {
|
|
26
|
+
/**
|
|
27
|
+
* The date-time the interval begins at, as an ISO 8601 date-time string with no offset or time
|
|
28
|
+
* zone.
|
|
29
|
+
*/
|
|
26
30
|
start: string;
|
|
31
|
+
/**
|
|
32
|
+
* The first date-time after the interval, in the same format as `start`. It is exclusive: the
|
|
33
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
34
|
+
* `start`, which makes the interval empty.
|
|
35
|
+
*/
|
|
27
36
|
end: string;
|
|
28
37
|
} | null;
|
|
@@ -23,6 +23,15 @@
|
|
|
23
23
|
* @example intervalIntersectionTime("invalid", "17:00:00", "12:00:00", "18:00:00") // null
|
|
24
24
|
*/
|
|
25
25
|
export declare function intervalIntersectionTime(aStart: string, aEnd: string, bStart: string, bEnd: string): {
|
|
26
|
+
/**
|
|
27
|
+
* The clock time the interval begins at, as an ISO 8601 time string with no date, offset or time
|
|
28
|
+
* zone.
|
|
29
|
+
*/
|
|
26
30
|
start: string;
|
|
31
|
+
/**
|
|
32
|
+
* The first clock time after the interval, in the same format as `start`. It is exclusive: the
|
|
33
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
34
|
+
* `start`, which makes the interval empty.
|
|
35
|
+
*/
|
|
27
36
|
end: string;
|
|
28
37
|
} | null;
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* there, so the pieces share no value and together cover the interval exactly once (the rule
|
|
15
15
|
* CORE-6's `splitIntervalAt` uses).
|
|
16
16
|
* - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
|
|
17
|
+
* - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
|
|
18
|
+
* equal to `end`): the result is then that one empty piece, whatever the points.
|
|
17
19
|
* - Returns `[]` when `points` is not an array, when any element is not a valid ISO PlainDate
|
|
18
20
|
* string, or on invalid input (unparseable start/end, `start > end`).
|
|
19
21
|
* - Accepts RFC 9557 calendar-annotated PlainDate strings — E5 (issue #78). `start`, `end`, and
|
|
@@ -34,6 +36,15 @@
|
|
|
34
36
|
* @example intervalSplitAtDate("2024-01-01", "2024-01-10", ["not-a-date"]) // []
|
|
35
37
|
*/
|
|
36
38
|
export declare function intervalSplitAtDate(start: string, end: string, points: string[]): Array<{
|
|
39
|
+
/**
|
|
40
|
+
* The date the interval begins on, as an ISO 8601 date (`YYYY-MM-DD`). It keeps a calendar
|
|
41
|
+
* annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
42
|
+
*/
|
|
37
43
|
start: string;
|
|
44
|
+
/**
|
|
45
|
+
* The first date after the interval, in the same format as `start`. It is exclusive: the interval
|
|
46
|
+
* holds everything from `start` up to but not including this value. It can equal `start`, which
|
|
47
|
+
* makes the interval empty.
|
|
48
|
+
*/
|
|
38
49
|
end: string;
|
|
39
50
|
}>;
|
|
@@ -18,6 +18,8 @@ import { isValidDateInterval } from "./validate/index.js";
|
|
|
18
18
|
* there, so the pieces share no value and together cover the interval exactly once (the rule
|
|
19
19
|
* CORE-6's `splitIntervalAt` uses).
|
|
20
20
|
* - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
|
|
21
|
+
* - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
|
|
22
|
+
* equal to `end`): the result is then that one empty piece, whatever the points.
|
|
21
23
|
* - Returns `[]` when `points` is not an array, when any element is not a valid ISO PlainDate
|
|
22
24
|
* string, or on invalid input (unparseable start/end, `start > end`).
|
|
23
25
|
* - Accepts RFC 9557 calendar-annotated PlainDate strings — E5 (issue #78). `start`, `end`, and
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* there, so the pieces share no value and together cover the interval exactly once (the rule
|
|
15
15
|
* CORE-6's `splitIntervalAt` uses).
|
|
16
16
|
* - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
|
|
17
|
+
* - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
|
|
18
|
+
* equal to `end`): the result is then that one empty piece, whatever the points.
|
|
17
19
|
* - Returns `[]` when `points` is not an array, when any element is not a valid ISO
|
|
18
20
|
* PlainDateTime string, or on invalid input (unparseable start/end, `start > end`).
|
|
19
21
|
*
|
|
@@ -28,6 +30,15 @@
|
|
|
28
30
|
* @example intervalSplitAtDateTime("2024-01-01T00:00:00", "2024-01-10T00:00:00", ["not-a-datetime"]) // []
|
|
29
31
|
*/
|
|
30
32
|
export declare function intervalSplitAtDateTime(start: string, end: string, points: string[]): Array<{
|
|
33
|
+
/**
|
|
34
|
+
* The date-time the interval begins at, as an ISO 8601 date-time string with no offset or time
|
|
35
|
+
* zone.
|
|
36
|
+
*/
|
|
31
37
|
start: string;
|
|
38
|
+
/**
|
|
39
|
+
* The first date-time after the interval, in the same format as `start`. It is exclusive: the
|
|
40
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
41
|
+
* `start`, which makes the interval empty.
|
|
42
|
+
*/
|
|
32
43
|
end: string;
|
|
33
44
|
}>;
|
|
@@ -17,6 +17,8 @@ import { isValidDateTime } from "../validate/index.js";
|
|
|
17
17
|
* there, so the pieces share no value and together cover the interval exactly once (the rule
|
|
18
18
|
* CORE-6's `splitIntervalAt` uses).
|
|
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
|
* PlainDateTime string, or on invalid input (unparseable start/end, `start > end`).
|
|
22
24
|
*
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* there, so the pieces share no value and together cover the interval exactly once (the rule
|
|
15
15
|
* CORE-6's `splitIntervalAt` uses).
|
|
16
16
|
* - Returns `[{ start, end }]` (the whole interval, unsplit) when no valid in-range point remains.
|
|
17
|
+
* - A piece's `end` equals its `start` only when the interval itself is zero-length (`start`
|
|
18
|
+
* equal to `end`): the result is then that one empty piece, whatever the points.
|
|
17
19
|
* - Returns `[]` when `points` is not an array, when any element is not a valid ISO PlainTime
|
|
18
20
|
* string, or on invalid input (unparseable start/end, `start > end`).
|
|
19
21
|
*
|
|
@@ -30,6 +32,15 @@
|
|
|
30
32
|
* @example intervalSplitAtTime("09:00:00", "17:00:00", ["not-a-time"]) // []
|
|
31
33
|
*/
|
|
32
34
|
export declare function intervalSplitAtTime(start: string, end: string, points: string[]): Array<{
|
|
35
|
+
/**
|
|
36
|
+
* The clock time the interval begins at, as an ISO 8601 time string with no date, offset or time
|
|
37
|
+
* zone.
|
|
38
|
+
*/
|
|
33
39
|
start: string;
|
|
40
|
+
/**
|
|
41
|
+
* The first clock time after the interval, in the same format as `start`. It is exclusive: the
|
|
42
|
+
* interval holds everything from `start` up to but not including this value. It can equal
|
|
43
|
+
* `start`, which makes the interval empty.
|
|
44
|
+
*/
|
|
34
45
|
end: string;
|
|
35
46
|
}>;
|
|
@@ -17,6 +17,8 @@ import { isValidTime } from "../validate/index.js";
|
|
|
17
17
|
* there, so the pieces share no value and together cover the interval exactly once (the rule
|
|
18
18
|
* CORE-6's `splitIntervalAt` uses).
|
|
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 PlainTime
|
|
21
23
|
* string, or on invalid input (unparseable start/end, `start > end`).
|
|
22
24
|
*
|
|
@@ -32,6 +32,15 @@
|
|
|
32
32
|
* @example intervalUnionDate("2024-01-01[u-ca=hebrew]", "2024-06-30", "2024-04-01", "2024-12-31") // null (mismatched calendars)
|
|
33
33
|
*/
|
|
34
34
|
export declare function intervalUnionDate(aStart: string, aEnd: string, bStart: string, bEnd: string): {
|
|
35
|
+
/**
|
|
36
|
+
* The date the interval begins on, as an ISO 8601 date (`YYYY-MM-DD`). It keeps a calendar
|
|
37
|
+
* annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
38
|
+
*/
|
|
35
39
|
start: string;
|
|
40
|
+
/**
|
|
41
|
+
* The first date after the interval, in the same format as `start`. It is exclusive: the interval
|
|
42
|
+
* holds everything from `start` up to but not including this value. It is always later than
|
|
43
|
+
* `start`.
|
|
44
|
+
*/
|
|
36
45
|
end: string;
|
|
37
46
|
} | null;
|
|
@@ -26,6 +26,15 @@
|
|
|
26
26
|
* @example intervalUnionDateTime("invalid", "2024-06-30T23:59:59", "2024-04-01T00:00:00", "2024-12-31T23:59:59") // null
|
|
27
27
|
*/
|
|
28
28
|
export declare function intervalUnionDateTime(aStart: string, aEnd: string, bStart: string, bEnd: string): {
|
|
29
|
+
/**
|
|
30
|
+
* The date-time the interval begins at, as an ISO 8601 date-time string with no offset or time
|
|
31
|
+
* zone.
|
|
32
|
+
*/
|
|
29
33
|
start: string;
|
|
34
|
+
/**
|
|
35
|
+
* The first date-time after the interval, in the same format as `start`. It is exclusive: the
|
|
36
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
37
|
+
* than `start`.
|
|
38
|
+
*/
|
|
30
39
|
end: string;
|
|
31
40
|
} | null;
|
|
@@ -26,6 +26,15 @@
|
|
|
26
26
|
* @example intervalUnionTime("invalid", "17:00:00", "12:00:00", "18:00:00") // null
|
|
27
27
|
*/
|
|
28
28
|
export declare function intervalUnionTime(aStart: string, aEnd: string, bStart: string, bEnd: string): {
|
|
29
|
+
/**
|
|
30
|
+
* The clock time the interval begins at, as an ISO 8601 time string with no date, offset or time
|
|
31
|
+
* zone.
|
|
32
|
+
*/
|
|
29
33
|
start: string;
|
|
34
|
+
/**
|
|
35
|
+
* The first clock time after the interval, in the same format as `start`. It is exclusive: the
|
|
36
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
37
|
+
* than `start`.
|
|
38
|
+
*/
|
|
30
39
|
end: string;
|
|
31
40
|
} | null;
|
|
@@ -31,6 +31,15 @@ export declare function intervalXorAllDate(intervals: Array<{
|
|
|
31
31
|
start: string;
|
|
32
32
|
end: string;
|
|
33
33
|
}>): Array<{
|
|
34
|
+
/**
|
|
35
|
+
* The date the interval begins on, as an ISO 8601 date (`YYYY-MM-DD`). It keeps a calendar
|
|
36
|
+
* annotation such as `[u-ca=hebrew]` when the inputs carry one.
|
|
37
|
+
*/
|
|
34
38
|
start: string;
|
|
39
|
+
/**
|
|
40
|
+
* The first date after the interval, in the same format as `start`. It is exclusive: the interval
|
|
41
|
+
* holds everything from `start` up to but not including this value. It is always later than
|
|
42
|
+
* `start`.
|
|
43
|
+
*/
|
|
35
44
|
end: string;
|
|
36
45
|
}>;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
3
|
import { calendarOfAllDateValues, formatDateInCalendar, halfOpenXor, parseCalendarDateValue, } from "../../internal/index.js";
|
|
4
4
|
import { isValidDateInterval } from "./validate/index.js";
|
|
5
|
+
import { isObject } from "../../internal/isObject.js";
|
|
5
6
|
/**
|
|
6
7
|
* Return the symmetric difference across a list of date intervals — the set of dates covered
|
|
7
8
|
* by an odd number of the input intervals.
|
|
@@ -36,8 +37,7 @@ export function intervalXorAllDate(intervals) {
|
|
|
36
37
|
if (!Array.isArray(intervals) || intervals.length === 0) {
|
|
37
38
|
return [];
|
|
38
39
|
}
|
|
39
|
-
if (!intervals.every((interval) => interval &&
|
|
40
|
-
typeof interval === "object" &&
|
|
40
|
+
if (!intervals.every((interval) => isObject(interval) &&
|
|
41
41
|
isValidDateInterval(interval.start, interval.end))) {
|
|
42
42
|
return [];
|
|
43
43
|
}
|
|
@@ -26,6 +26,15 @@ export declare function intervalXorAllDateTime(intervals: Array<{
|
|
|
26
26
|
start: string;
|
|
27
27
|
end: string;
|
|
28
28
|
}>): Array<{
|
|
29
|
+
/**
|
|
30
|
+
* The date-time the interval begins at, as an ISO 8601 date-time string with no offset or time
|
|
31
|
+
* zone.
|
|
32
|
+
*/
|
|
29
33
|
start: string;
|
|
34
|
+
/**
|
|
35
|
+
* The first date-time after the interval, in the same format as `start`. It is exclusive: the
|
|
36
|
+
* interval holds everything from `start` up to but not including this value. It is always later
|
|
37
|
+
* than `start`.
|
|
38
|
+
*/
|
|
30
39
|
end: string;
|
|
31
40
|
}>;
|