@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import { resolveOverflow } from "../../internal/index.js";
|
|
2
|
+
import { DATE_TIME_FIELDS, readSetFields, resolveOverflow, } from "../../internal/index.js";
|
|
3
3
|
import { isValidDateTime } from "../validate/index.js";
|
|
4
4
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
5
5
|
/**
|
|
@@ -9,23 +9,31 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
9
|
* single atomic overflow pass — see `setDate`'s doc for why that matters over composing
|
|
10
10
|
* `addDateTime()` calls field-by-field.
|
|
11
11
|
* - `fields` may set any of `year`, `month`, `monthCode`, `day`, `hour`, `minute`, `second`,
|
|
12
|
-
* `millisecond`, `microsecond
|
|
13
|
-
*
|
|
12
|
+
* `millisecond`, `microsecond` and/or `nanosecond`; omitted fields keep their current value. An
|
|
13
|
+
* object with no field set, such as `{}` or `{ year: undefined }`, is a no-op.
|
|
14
|
+
* - Values are not converted: `monthCode` must be a string and every other field an integer number.
|
|
15
|
+
* `null`, a numeric string, a boolean or a fraction returns "", where Temporal would convert or
|
|
16
|
+
* truncate it. A bigint, `NaN` or an infinity returns "" too. A number too large for its
|
|
17
|
+
* field follows `overflow`. A month or day below 1, or a date outside Temporal's range, returns
|
|
18
|
+
* "".
|
|
19
|
+
* - An own key that is not one of these fields, such as a misspelt `yaer`, returns "". So does an
|
|
20
|
+
* era, or a `calendar` or `timeZone` property, whether own, inherited or a getter. A field is
|
|
21
|
+
* read with a property get, as Temporal reads it, so an inherited or getter field is set.
|
|
22
|
+
* - A Temporal date or time object returns "", as Temporal's `with` refuses one. One whose
|
|
23
|
+
* prototype has been replaced with `Object.prototype`, `null` or `Function.prototype` sets
|
|
24
|
+
* nothing instead.
|
|
14
25
|
* - Returns "" for invalid input.
|
|
15
26
|
*
|
|
16
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. setting
|
|
17
|
-
* `month: 2` on a datetime whose `day` is 31: "constrain" clamps to Feb 29/28, "reject" throws
|
|
18
|
-
* (resulting in "").
|
|
19
|
-
*
|
|
20
27
|
* @param value ISO PlainDateTime string
|
|
21
28
|
* @param fields Partial<Temporal.PlainDateTimeLike> object specifying fields to set
|
|
22
|
-
* @param options
|
|
29
|
+
* @param options How an out-of-range field value is handled
|
|
23
30
|
* @returns ISO PlainDateTime string with fields set, or "" on invalid input
|
|
24
31
|
*
|
|
25
32
|
* @example setDateTime("2024-03-10T12:00:00", { hour: 9 }) // "2024-03-10T09:00:00"
|
|
26
33
|
* @example setDateTime("2024-01-31T12:00:00", { month: 2 }) // "2024-02-29T12:00:00" (constrain clamps to the last valid day)
|
|
27
34
|
* @example setDateTime("2024-01-31T12:00:00", { month: 2 }, { overflow: "reject" }) // ""
|
|
28
35
|
* @example setDateTime("2024-03-10T12:00:00", {}) // "2024-03-10T12:00:00" (empty fields object is a no-op)
|
|
36
|
+
* @example setDateTime("2024-03-10T12:00:00", { hour: "9" }) // "" (not converted)
|
|
29
37
|
* @example setDateTime("invalid", { hour: 9 }) // ""
|
|
30
38
|
*/
|
|
31
39
|
export function setDateTime(value, fields, options) {
|
|
@@ -36,12 +44,15 @@ export function setDateTime(value, fields, options) {
|
|
|
36
44
|
return "";
|
|
37
45
|
try {
|
|
38
46
|
const dateTime = Temporal.PlainDateTime.from(value);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
47
|
+
const set = readSetFields(fields, DATE_TIME_FIELDS);
|
|
48
|
+
if (set === null)
|
|
49
|
+
return "";
|
|
50
|
+
// Only the values readSetFields checked reach Temporal. An empty result sets nothing: a
|
|
51
|
+
// no-op here, where Temporal's with() would throw.
|
|
52
|
+
if (Object.keys(set).length === 0)
|
|
42
53
|
return dateTime.toString();
|
|
43
54
|
return dateTime
|
|
44
|
-
.with(
|
|
55
|
+
.with(set, { overflow: resolveOverflow(options?.overflow) })
|
|
45
56
|
.toString();
|
|
46
57
|
}
|
|
47
58
|
catch {
|
|
@@ -7,25 +7,41 @@ import type { Overflow } from "../../types/index.js";
|
|
|
7
7
|
* single atomic overflow pass — see `setDate`'s doc for why that matters over composing
|
|
8
8
|
* `addTime()` calls field-by-field.
|
|
9
9
|
* - `fields` may set any of `hour`, `minute`, `second`, `millisecond`, `microsecond`, and/or
|
|
10
|
-
* `nanosecond`; omitted fields keep their current value. An
|
|
10
|
+
* `nanosecond`; omitted fields keep their current value. An object with no field set, such as
|
|
11
|
+
* `{}` or `{ hour: undefined }`, is a no-op.
|
|
12
|
+
* - Values are not converted: all six fields must be integer numbers. `null`, a numeric string, a
|
|
13
|
+
* boolean or a fraction returns "", where Temporal would convert or truncate it. A bigint, `NaN`
|
|
14
|
+
* or an infinity returns "" too. An out-of-range number follows `overflow`.
|
|
15
|
+
* - An own key that is not one of these fields, such as a misspelt `huor`, returns "". So does a
|
|
16
|
+
* date field, such as `year`, or a `calendar` or `timeZone` property, whether own, inherited or a
|
|
17
|
+
* getter. A field is read with a property get, as Temporal reads it, so an inherited or getter
|
|
18
|
+
* field is set.
|
|
19
|
+
* - A Temporal date or time object returns "", as Temporal's `with` refuses one. One whose
|
|
20
|
+
* prototype has been replaced with `Object.prototype`, `null` or `Function.prototype` sets
|
|
21
|
+
* nothing instead.
|
|
22
|
+
* - Unlike `addTime`, which takes no `overflow` because addition always wraps around the clock,
|
|
23
|
+
* `overflow` has an effect here: `.with()` assigns fixed field values rather than adding a
|
|
24
|
+
* delta.
|
|
11
25
|
* - Returns "" for invalid input.
|
|
12
26
|
*
|
|
13
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range field values, e.g.
|
|
14
|
-
* `hour: 25`: "constrain" clamps to 23, "reject" throws (resulting in ""). Unlike `addTime`
|
|
15
|
-
* (which takes no `overflow`, because addition always wraps around the clock), `overflow` has
|
|
16
|
-
* a real effect here because `.with()` assigns fixed field values rather than adding a delta.
|
|
17
|
-
*
|
|
18
27
|
* @param value ISO PlainTime string
|
|
19
28
|
* @param fields Partial<Temporal.PlainTimeLike> object specifying fields to set
|
|
20
|
-
* @param options
|
|
29
|
+
* @param options How an out-of-range field value is handled
|
|
21
30
|
* @returns ISO PlainTime string with fields set, or "" on invalid input
|
|
22
31
|
*
|
|
23
32
|
* @example setTime("12:00:00", { hour: 9 }) // "09:00:00"
|
|
24
33
|
* @example setTime("12:00:00", { hour: 25 }) // "23:00:00" (constrain clamps to the max valid hour)
|
|
25
34
|
* @example setTime("12:00:00", { hour: 25 }, { overflow: "reject" }) // ""
|
|
26
35
|
* @example setTime("12:00:00", {}) // "12:00:00" (empty fields object is a no-op)
|
|
36
|
+
* @example setTime("12:00:00", { hour: 9.5 }) // "" (not truncated)
|
|
27
37
|
* @example setTime("invalid", { hour: 9 }) // ""
|
|
28
38
|
*/
|
|
29
39
|
export declare function setTime(value: string, fields: Temporal.PlainTimeLike, options?: {
|
|
40
|
+
/**
|
|
41
|
+
* What to do when a field value is out of range. `"constrain"` clamps it to the nearest valid
|
|
42
|
+
* value, so `hour: 25` becomes 23; `"reject"` returns `""`.
|
|
43
|
+
*
|
|
44
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
45
|
+
*/
|
|
30
46
|
overflow?: Overflow;
|
|
31
47
|
}): string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import { resolveOverflow } from "../../internal/index.js";
|
|
2
|
+
import { TIME_FIELDS, readSetFields, resolveOverflow } from "../../internal/index.js";
|
|
3
3
|
import { isValidTime } from "../validate/index.js";
|
|
4
4
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
5
5
|
/**
|
|
@@ -9,23 +9,33 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
9
|
* single atomic overflow pass — see `setDate`'s doc for why that matters over composing
|
|
10
10
|
* `addTime()` calls field-by-field.
|
|
11
11
|
* - `fields` may set any of `hour`, `minute`, `second`, `millisecond`, `microsecond`, and/or
|
|
12
|
-
* `nanosecond`; omitted fields keep their current value. An
|
|
12
|
+
* `nanosecond`; omitted fields keep their current value. An object with no field set, such as
|
|
13
|
+
* `{}` or `{ hour: undefined }`, is a no-op.
|
|
14
|
+
* - Values are not converted: all six fields must be integer numbers. `null`, a numeric string, a
|
|
15
|
+
* boolean or a fraction returns "", where Temporal would convert or truncate it. A bigint, `NaN`
|
|
16
|
+
* or an infinity returns "" too. An out-of-range number follows `overflow`.
|
|
17
|
+
* - An own key that is not one of these fields, such as a misspelt `huor`, returns "". So does a
|
|
18
|
+
* date field, such as `year`, or a `calendar` or `timeZone` property, whether own, inherited or a
|
|
19
|
+
* getter. A field is read with a property get, as Temporal reads it, so an inherited or getter
|
|
20
|
+
* field is set.
|
|
21
|
+
* - A Temporal date or time object returns "", as Temporal's `with` refuses one. One whose
|
|
22
|
+
* prototype has been replaced with `Object.prototype`, `null` or `Function.prototype` sets
|
|
23
|
+
* nothing instead.
|
|
24
|
+
* - Unlike `addTime`, which takes no `overflow` because addition always wraps around the clock,
|
|
25
|
+
* `overflow` has an effect here: `.with()` assigns fixed field values rather than adding a
|
|
26
|
+
* delta.
|
|
13
27
|
* - Returns "" for invalid input.
|
|
14
28
|
*
|
|
15
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range field values, e.g.
|
|
16
|
-
* `hour: 25`: "constrain" clamps to 23, "reject" throws (resulting in ""). Unlike `addTime`
|
|
17
|
-
* (which takes no `overflow`, because addition always wraps around the clock), `overflow` has
|
|
18
|
-
* a real effect here because `.with()` assigns fixed field values rather than adding a delta.
|
|
19
|
-
*
|
|
20
29
|
* @param value ISO PlainTime string
|
|
21
30
|
* @param fields Partial<Temporal.PlainTimeLike> object specifying fields to set
|
|
22
|
-
* @param options
|
|
31
|
+
* @param options How an out-of-range field value is handled
|
|
23
32
|
* @returns ISO PlainTime string with fields set, or "" on invalid input
|
|
24
33
|
*
|
|
25
34
|
* @example setTime("12:00:00", { hour: 9 }) // "09:00:00"
|
|
26
35
|
* @example setTime("12:00:00", { hour: 25 }) // "23:00:00" (constrain clamps to the max valid hour)
|
|
27
36
|
* @example setTime("12:00:00", { hour: 25 }, { overflow: "reject" }) // ""
|
|
28
37
|
* @example setTime("12:00:00", {}) // "12:00:00" (empty fields object is a no-op)
|
|
38
|
+
* @example setTime("12:00:00", { hour: 9.5 }) // "" (not truncated)
|
|
29
39
|
* @example setTime("invalid", { hour: 9 }) // ""
|
|
30
40
|
*/
|
|
31
41
|
export function setTime(value, fields, options) {
|
|
@@ -36,12 +46,15 @@ export function setTime(value, fields, options) {
|
|
|
36
46
|
return "";
|
|
37
47
|
try {
|
|
38
48
|
const time = Temporal.PlainTime.from(value);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
49
|
+
const set = readSetFields(fields, TIME_FIELDS);
|
|
50
|
+
if (set === null)
|
|
51
|
+
return "";
|
|
52
|
+
// Only the values readSetFields checked reach Temporal. An empty result sets nothing: a
|
|
53
|
+
// no-op here, where Temporal's with() would throw.
|
|
54
|
+
if (Object.keys(set).length === 0)
|
|
42
55
|
return time.toString();
|
|
43
56
|
return time
|
|
44
|
-
.with(
|
|
57
|
+
.with(set, { overflow: resolveOverflow(options?.overflow) })
|
|
45
58
|
.toString();
|
|
46
59
|
}
|
|
47
60
|
catch {
|
|
@@ -4,12 +4,11 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - `"day"` returns the date itself: a date is already a whole day, as `endOfDate` treats it.
|
|
6
6
|
* - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
|
|
7
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
8
7
|
* - Returns "" for invalid inputs.
|
|
9
8
|
*
|
|
10
9
|
* @param value ISO 8601 date string
|
|
11
10
|
* @param unit date unit, singular or plural, to specify the unit for the start
|
|
12
|
-
* @param optionsArg
|
|
11
|
+
* @param optionsArg How the week is defined
|
|
13
12
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
14
13
|
*
|
|
15
14
|
* @example startOfDate("2024-02-29", "month") // "2024-02-01"
|
|
@@ -18,5 +17,12 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
18
17
|
* @example startOfDate("invalid-date", "month") // ""
|
|
19
18
|
*/
|
|
20
19
|
export declare function startOfDate(value: string, unit: Temporal.SmallestUnit<Temporal.DateUnit>, optionsArg?: {
|
|
20
|
+
/**
|
|
21
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
22
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
23
|
+
* `""`, whatever the unit.
|
|
24
|
+
*
|
|
25
|
+
* @defaultValue `"monday"`
|
|
26
|
+
*/
|
|
21
27
|
weekStartsOn?: "monday" | "sunday";
|
|
22
28
|
}): string;
|
|
@@ -10,12 +10,11 @@ const supported = ["year", "month", "week", "day"];
|
|
|
10
10
|
*
|
|
11
11
|
* - `"day"` returns the date itself: a date is already a whole day, as `endOfDate` treats it.
|
|
12
12
|
* - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
|
|
13
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
14
13
|
* - Returns "" for invalid inputs.
|
|
15
14
|
*
|
|
16
15
|
* @param value ISO 8601 date string
|
|
17
16
|
* @param unit date unit, singular or plural, to specify the unit for the start
|
|
18
|
-
* @param optionsArg
|
|
17
|
+
* @param optionsArg How the week is defined
|
|
19
18
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
20
19
|
*
|
|
21
20
|
* @example startOfDate("2024-02-29", "month") // "2024-02-01"
|
|
@@ -4,12 +4,11 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
4
4
|
* Return the start of the specified date-time `unit` for a given ISO 8601 datetime string.
|
|
5
5
|
*
|
|
6
6
|
* - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
|
|
7
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
8
7
|
* - Returns "" for invalid inputs.
|
|
9
8
|
*
|
|
10
9
|
* @param value ISO 8601 datetime string
|
|
11
10
|
* @param unit date or time unit, singular or plural, to specify the unit for the start
|
|
12
|
-
* @param optionsArg
|
|
11
|
+
* @param optionsArg How the week is defined and how the result is written
|
|
13
12
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
14
13
|
*
|
|
15
14
|
* @example startOfDateTime("2024-02-29T12:34:56", "month") // "2024-02-01T00:00:00"
|
|
@@ -17,6 +16,20 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
17
16
|
* @example startOfDateTime("invalid-datetime", "month") // ""
|
|
18
17
|
*/
|
|
19
18
|
export declare function startOfDateTime(value: string, unit: Temporal.SmallestUnit<Temporal.DateTimeUnit>, optionsArg?: {
|
|
19
|
+
/**
|
|
20
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
21
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
22
|
+
* `""`, whatever the unit.
|
|
23
|
+
*
|
|
24
|
+
* @defaultValue `"monday"`
|
|
25
|
+
*/
|
|
20
26
|
weekStartsOn?: "monday" | "sunday";
|
|
27
|
+
/**
|
|
28
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
29
|
+
* drop trailing zeros. Fewer digits than `unit` names truncate, as Temporal's `toString` does.
|
|
30
|
+
*
|
|
31
|
+
* @defaultValue The digits `unit` names: `3` for `"millisecond"`, `6` for `"microsecond"`, `9`
|
|
32
|
+
* for `"nanosecond"` and `0` for any coarser unit.
|
|
33
|
+
*/
|
|
21
34
|
fractionalSecondDigits?: FractionalDigit;
|
|
22
35
|
}): string;
|
|
@@ -9,12 +9,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
9
|
* Return the start of the specified date-time `unit` for a given ISO 8601 datetime string.
|
|
10
10
|
*
|
|
11
11
|
* - `unit` accepts the singular or plural name (`"month"` or `"months"`), as Temporal does.
|
|
12
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns "".
|
|
13
12
|
* - Returns "" for invalid inputs.
|
|
14
13
|
*
|
|
15
14
|
* @param value ISO 8601 datetime string
|
|
16
15
|
* @param unit date or time unit, singular or plural, to specify the unit for the start
|
|
17
|
-
* @param optionsArg
|
|
16
|
+
* @param optionsArg How the week is defined and how the result is written
|
|
18
17
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
19
18
|
*
|
|
20
19
|
* @example startOfDateTime("2024-02-29T12:34:56", "month") // "2024-02-01T00:00:00"
|
|
@@ -7,7 +7,7 @@ import type { FractionalDigit } from "../../types/index.js";
|
|
|
7
7
|
* import { StartOfTimeUnit } from "@northguild/gmt/plain";
|
|
8
8
|
* const unit: StartOfTimeUnit = "hours";
|
|
9
9
|
*/
|
|
10
|
-
export type StartOfTimeUnit = Temporal.SmallestUnit<Temporal.TimeUnit
|
|
10
|
+
export type StartOfTimeUnit = Temporal.SmallestUnit<"day" | Temporal.TimeUnit>;
|
|
11
11
|
/**
|
|
12
12
|
* Return the start of the specified time `unit` for a given ISO 8601 time string.
|
|
13
13
|
*
|
|
@@ -20,7 +20,7 @@ export type StartOfTimeUnit = Temporal.SmallestUnit<Temporal.TimeUnit | "day">;
|
|
|
20
20
|
*
|
|
21
21
|
* @param value ISO 8601 time string
|
|
22
22
|
* @param unit StartOfTimeUnit to specify the unit for the start
|
|
23
|
-
* @param optionsArg
|
|
23
|
+
* @param optionsArg How the result is written
|
|
24
24
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
25
25
|
*
|
|
26
26
|
* @example startOfTime("12:34:56", "hour") // "12:00:00"
|
|
@@ -29,5 +29,12 @@ export type StartOfTimeUnit = Temporal.SmallestUnit<Temporal.TimeUnit | "day">;
|
|
|
29
29
|
* @example startOfTime("invalid", "hour") // ""
|
|
30
30
|
*/
|
|
31
31
|
export declare function startOfTime(value: string, unit: StartOfTimeUnit, optionsArg?: {
|
|
32
|
+
/**
|
|
33
|
+
* The number of fractional-second digits the result is written with, `0` to `9`, or `"auto"` to
|
|
34
|
+
* drop trailing zeros. Fewer digits than `unit` names truncate, as Temporal's `toString` does.
|
|
35
|
+
*
|
|
36
|
+
* @defaultValue The digits `unit` names: `3` for `"millisecond"`, `6` for `"microsecond"`, `9`
|
|
37
|
+
* for `"nanosecond"` and `0` for any coarser unit.
|
|
38
|
+
*/
|
|
32
39
|
fractionalSecondDigits?: FractionalDigit;
|
|
33
40
|
}): string;
|
|
@@ -25,7 +25,7 @@ const supported = [
|
|
|
25
25
|
*
|
|
26
26
|
* @param value ISO 8601 time string
|
|
27
27
|
* @param unit StartOfTimeUnit to specify the unit for the start
|
|
28
|
-
* @param optionsArg
|
|
28
|
+
* @param optionsArg How the result is written
|
|
29
29
|
* @returns ISO 8601 string representing the start of the specified unit, or "" on invalid input
|
|
30
30
|
*
|
|
31
31
|
* @example startOfTime("12:34:56", "hour") // "12:00:00"
|
|
@@ -10,12 +10,9 @@ import type { DateDurationUnit, Overflow } from "../../types/index.js";
|
|
|
10
10
|
* calendar ids); see `isValidCalendarDate`.
|
|
11
11
|
* - Returns "" for invalid inputs.
|
|
12
12
|
*
|
|
13
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
14
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
15
|
-
*
|
|
16
13
|
* @param value ISO PlainDate string, optionally calendar-annotated
|
|
17
14
|
* @param units Partial<Record<DateDurationUnit, number>> object specifying units to subtract
|
|
18
|
-
* @param options
|
|
15
|
+
* @param options How an out-of-range result is handled
|
|
19
16
|
* @returns ISO PlainDate string after subtraction, or "" on invalid input
|
|
20
17
|
*
|
|
21
18
|
* @example subtractDate("2024-03-15", { days: 5 }) // "2024-03-10"
|
|
@@ -24,5 +21,11 @@ import type { DateDurationUnit, Overflow } from "../../types/index.js";
|
|
|
24
21
|
* @example subtractDate("2024-03-25[u-ca=hebrew]", { months: 1 }) // "2024-02-24[u-ca=hebrew]" (15 Adar II 5784 -> 15 Adar I)
|
|
25
22
|
*/
|
|
26
23
|
export declare function subtractDate(value: string, units: Partial<Record<DateDurationUnit, number>>, options?: {
|
|
24
|
+
/**
|
|
25
|
+
* What to do when the result is not a real date. `"constrain"` clamps it to the last valid day,
|
|
26
|
+
* so Mar 31 - 1 month is Feb 29 or 28; `"reject"` returns `""`.
|
|
27
|
+
*
|
|
28
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
29
|
+
*/
|
|
27
30
|
overflow?: Overflow;
|
|
28
31
|
}): string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import { calendarSystemOfDateValue, formatDateInCalendar,
|
|
3
|
+
import { calendarSystemOfDateValue, formatDateInCalendar, parseCalendarDateValue, plainDateAdd, readDurationUnits, resolveOverflow, } from "../../internal/index.js";
|
|
4
4
|
import { isValidCalendarDate, isValidDateDurationUnit } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
6
|
/**
|
|
@@ -14,12 +14,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
14
14
|
* calendar ids); see `isValidCalendarDate`.
|
|
15
15
|
* - Returns "" for invalid inputs.
|
|
16
16
|
*
|
|
17
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
18
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
19
|
-
*
|
|
20
17
|
* @param value ISO PlainDate string, optionally calendar-annotated
|
|
21
18
|
* @param units Partial<Record<DateDurationUnit, number>> object specifying units to subtract
|
|
22
|
-
* @param options
|
|
19
|
+
* @param options How an out-of-range result is handled
|
|
23
20
|
* @returns ISO PlainDate string after subtraction, or "" on invalid input
|
|
24
21
|
*
|
|
25
22
|
* @example subtractDate("2024-03-15", { days: 5 }) // "2024-03-10"
|
|
@@ -33,11 +30,8 @@ export function subtractDate(value, units, options) {
|
|
|
33
30
|
return "";
|
|
34
31
|
}
|
|
35
32
|
const validDate = isValidCalendarDate(value);
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
Object.keys(units).every(isValidDateDurationUnit);
|
|
39
|
-
const validAmounts = validUnits && Object.values(units).every(isValidAmount);
|
|
40
|
-
if (!validDate || !validUnits || !validAmounts) {
|
|
33
|
+
const amounts = readDurationUnits(units, isValidDateDurationUnit);
|
|
34
|
+
if (!validDate || amounts === null) {
|
|
41
35
|
return "";
|
|
42
36
|
}
|
|
43
37
|
try {
|
|
@@ -46,7 +40,7 @@ export function subtractDate(value, units, options) {
|
|
|
46
40
|
return "";
|
|
47
41
|
}
|
|
48
42
|
const date = parseCalendarDateValue(value);
|
|
49
|
-
const result = plainDateAdd(date, Temporal.Duration.from(
|
|
43
|
+
const result = plainDateAdd(date, Temporal.Duration.from(amounts).negated(), resolveOverflow(options?.overflow));
|
|
50
44
|
return formatDateInCalendar(result, calendar);
|
|
51
45
|
}
|
|
52
46
|
catch {
|
|
@@ -5,12 +5,9 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
5
5
|
* - Validates `value`, `units`, and `amount` before performing the subtract.
|
|
6
6
|
* - Returns "" for invalid inputs.
|
|
7
7
|
*
|
|
8
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
9
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
10
|
-
*
|
|
11
8
|
* @param value ISO PlainDateTime string
|
|
12
9
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
13
|
-
* @param options
|
|
10
|
+
* @param options How an out-of-range result is handled
|
|
14
11
|
* @returns ISO PlainDateTime string after subtraction, or "" on invalid input
|
|
15
12
|
*
|
|
16
13
|
* @example subtractDateTime("2024-03-15T12:00:00", { days: 5 }) // "2024-03-10T12:00:00"
|
|
@@ -18,5 +15,11 @@ import type { DateTimeDurationUnit, Overflow } from "../../types/index.js";
|
|
|
18
15
|
* @example subtractDateTime("2024-03-31T12:00:00", { months: 1 }, { overflow: "reject" }) // ""
|
|
19
16
|
*/
|
|
20
17
|
export declare function subtractDateTime(value: string, units: Partial<Record<DateTimeDurationUnit, number>>, options?: {
|
|
18
|
+
/**
|
|
19
|
+
* What to do when the result is not a real date. `"constrain"` clamps it to the last valid day,
|
|
20
|
+
* so Mar 31 - 1 month is Feb 29 or 28; `"reject"` returns `""`.
|
|
21
|
+
*
|
|
22
|
+
* @defaultValue `"constrain"`, Temporal's default.
|
|
23
|
+
*/
|
|
21
24
|
overflow?: Overflow;
|
|
22
25
|
}): string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import {
|
|
3
|
+
import { readDurationUnits, resolveOverflow } from "../../internal/index.js";
|
|
4
4
|
import { isValidDateTime, isValidDateTimeDurationUnit } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
6
|
/**
|
|
@@ -9,12 +9,9 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
9
|
* - Validates `value`, `units`, and `amount` before performing the subtract.
|
|
10
10
|
* - Returns "" for invalid inputs.
|
|
11
11
|
*
|
|
12
|
-
* `overflow` ("constrain" (default) | "reject") controls out-of-range results, e.g. subtracting
|
|
13
|
-
* 1 month from Mar 31: "constrain" clamps to Feb 29/28, "reject" throws (resulting in "").
|
|
14
|
-
*
|
|
15
12
|
* @param value ISO PlainDateTime string
|
|
16
13
|
* @param units Partial<Record<DateTimeDurationUnit, number>> object specifying units to subtract
|
|
17
|
-
* @param options
|
|
14
|
+
* @param options How an out-of-range result is handled
|
|
18
15
|
* @returns ISO PlainDateTime string after subtraction, or "" on invalid input
|
|
19
16
|
*
|
|
20
17
|
* @example subtractDateTime("2024-03-15T12:00:00", { days: 5 }) // "2024-03-10T12:00:00"
|
|
@@ -27,17 +24,14 @@ export function subtractDateTime(value, units, options) {
|
|
|
27
24
|
return "";
|
|
28
25
|
}
|
|
29
26
|
const validDateTime = isValidDateTime(value);
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
Object.keys(units).every(isValidDateTimeDurationUnit);
|
|
33
|
-
const validAmounts = validUnits && Object.values(units).every(isValidAmount);
|
|
34
|
-
if (!validDateTime || !validUnits || !validAmounts) {
|
|
27
|
+
const amounts = readDurationUnits(units, isValidDateTimeDurationUnit);
|
|
28
|
+
if (!validDateTime || amounts === null) {
|
|
35
29
|
return "";
|
|
36
30
|
}
|
|
37
31
|
try {
|
|
38
32
|
const dateTime = Temporal.PlainDateTime.from(value);
|
|
39
33
|
return dateTime
|
|
40
|
-
.subtract(
|
|
34
|
+
.subtract(amounts, { overflow: resolveOverflow(options?.overflow) })
|
|
41
35
|
.toString();
|
|
42
36
|
}
|
|
43
37
|
catch {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import {
|
|
3
|
+
import { readDurationUnits } from "../../internal/index.js";
|
|
4
4
|
import { isValidTime, isValidTimeDurationUnit } from "../validate/index.js";
|
|
5
5
|
/**
|
|
6
6
|
* Return a PlainTime ISO string with `units` subtracted from `value`.
|
|
@@ -22,16 +22,13 @@ import { isValidTime, isValidTimeDurationUnit } from "../validate/index.js";
|
|
|
22
22
|
export function subtractTime(value, units) {
|
|
23
23
|
try {
|
|
24
24
|
const validTime = isValidTime(value);
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
Object.keys(units).every(isValidTimeDurationUnit);
|
|
28
|
-
const validAmounts = validUnits && Object.values(units).every(isValidAmount);
|
|
29
|
-
if (!validTime || !validUnits || !validAmounts) {
|
|
25
|
+
const amounts = readDurationUnits(units, isValidTimeDurationUnit);
|
|
26
|
+
if (!validTime || amounts === null) {
|
|
30
27
|
return "";
|
|
31
28
|
}
|
|
32
29
|
try {
|
|
33
30
|
const time = Temporal.PlainTime.from(value);
|
|
34
|
-
return time.subtract(
|
|
31
|
+
return time.subtract(amounts).toString();
|
|
35
32
|
}
|
|
36
33
|
catch {
|
|
37
34
|
return "";
|
|
@@ -4,18 +4,19 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - Equality means both values share the same start-of-`unit` boundary, so
|
|
6
6
|
* `"month"` requires the same month AND year — March 2023 and March 2024 are
|
|
7
|
-
* NOT equal by month
|
|
8
|
-
* `
|
|
7
|
+
* NOT equal by month. A calendar month is a year and a month together, as in
|
|
8
|
+
* Temporal's `PlainYearMonth`, not a bare month-of-year number.
|
|
9
|
+
* - Comparison: date-fns's `isSameMonth` and Luxon's `dt.hasSame(other, "month")`
|
|
10
|
+
* give the same answer.
|
|
9
11
|
* - Supports the full `Temporal.DateUnit | Temporal.TimeUnit` range, down to
|
|
10
12
|
* `"nanosecond"`.
|
|
11
13
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
12
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
13
14
|
* - Returns false for an unsupported unit or invalid input.
|
|
14
15
|
* - Takes no `fractionalSecondDigits`: equality compares full-precision `unit` boundaries, and output
|
|
15
16
|
* digits cannot change which bucket a value is in. That ignored option was removed in 1.16.0; to
|
|
16
17
|
* compare more coarsely, pass a coarser unit (0 digits is `"second"`, 3 is `"millisecond"`).
|
|
17
18
|
*
|
|
18
|
-
* Mapping from date-fns
|
|
19
|
+
* Mapping from date-fns:
|
|
19
20
|
* - `isSameDay(a, b)` → `areDateTimesEqualBy(a, b, "day")`
|
|
20
21
|
* - `isSameHour(a, b)` → `areDateTimesEqualBy(a, b, "hour")`
|
|
21
22
|
* - `isSameMinute(a, b)` → `areDateTimesEqualBy(a, b, "minute")`
|
|
@@ -26,7 +27,7 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
26
27
|
* @param value1 first ISO datetime string
|
|
27
28
|
* @param value2 second ISO datetime string
|
|
28
29
|
* @param unit date or time unit, singular or plural, to compare by
|
|
29
|
-
* @param optionsArg
|
|
30
|
+
* @param optionsArg How the week is defined
|
|
30
31
|
* @returns true if both datetimes share the same start-of-unit boundary, false on an unsupported unit or invalid input
|
|
31
32
|
*
|
|
32
33
|
* @example areDateTimesEqualBy("2024-03-15T10:00:00", "2024-03-15T18:00:00", "day") // true
|
|
@@ -38,5 +39,12 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
38
39
|
* @example areDateTimesEqualBy("invalid", "2024-03-15T10:00:00", "day") // false
|
|
39
40
|
*/
|
|
40
41
|
export declare function areDateTimesEqualBy(value1: string, value2: string, unit: Temporal.SmallestUnit<Temporal.DateTimeUnit>, optionsArg?: {
|
|
42
|
+
/**
|
|
43
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
44
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
45
|
+
* false, whatever the unit.
|
|
46
|
+
*
|
|
47
|
+
* @defaultValue `"monday"`
|
|
48
|
+
*/
|
|
41
49
|
weekStartsOn?: "monday" | "sunday";
|
|
42
50
|
}): boolean;
|
|
@@ -9,18 +9,19 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
9
|
*
|
|
10
10
|
* - Equality means both values share the same start-of-`unit` boundary, so
|
|
11
11
|
* `"month"` requires the same month AND year — March 2023 and March 2024 are
|
|
12
|
-
* NOT equal by month
|
|
13
|
-
* `
|
|
12
|
+
* NOT equal by month. A calendar month is a year and a month together, as in
|
|
13
|
+
* Temporal's `PlainYearMonth`, not a bare month-of-year number.
|
|
14
|
+
* - Comparison: date-fns's `isSameMonth` and Luxon's `dt.hasSame(other, "month")`
|
|
15
|
+
* give the same answer.
|
|
14
16
|
* - Supports the full `Temporal.DateUnit | Temporal.TimeUnit` range, down to
|
|
15
17
|
* `"nanosecond"`.
|
|
16
18
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
17
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
18
19
|
* - Returns false for an unsupported unit or invalid input.
|
|
19
20
|
* - Takes no `fractionalSecondDigits`: equality compares full-precision `unit` boundaries, and output
|
|
20
21
|
* digits cannot change which bucket a value is in. That ignored option was removed in 1.16.0; to
|
|
21
22
|
* compare more coarsely, pass a coarser unit (0 digits is `"second"`, 3 is `"millisecond"`).
|
|
22
23
|
*
|
|
23
|
-
* Mapping from date-fns
|
|
24
|
+
* Mapping from date-fns:
|
|
24
25
|
* - `isSameDay(a, b)` → `areDateTimesEqualBy(a, b, "day")`
|
|
25
26
|
* - `isSameHour(a, b)` → `areDateTimesEqualBy(a, b, "hour")`
|
|
26
27
|
* - `isSameMinute(a, b)` → `areDateTimesEqualBy(a, b, "minute")`
|
|
@@ -31,7 +32,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
31
32
|
* @param value1 first ISO datetime string
|
|
32
33
|
* @param value2 second ISO datetime string
|
|
33
34
|
* @param unit date or time unit, singular or plural, to compare by
|
|
34
|
-
* @param optionsArg
|
|
35
|
+
* @param optionsArg How the week is defined
|
|
35
36
|
* @returns true if both datetimes share the same start-of-unit boundary, false on an unsupported unit or invalid input
|
|
36
37
|
*
|
|
37
38
|
* @example areDateTimesEqualBy("2024-03-15T10:00:00", "2024-03-15T18:00:00", "day") // true
|
|
@@ -4,19 +4,21 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - Equality means both values share the same start-of-`unit` boundary, so
|
|
6
6
|
* `"month"` requires the same month AND year — March 2023 and March 2024 are
|
|
7
|
-
* NOT equal by month
|
|
8
|
-
* `
|
|
9
|
-
* callers expecting a bare "same month-of-year"
|
|
7
|
+
* NOT equal by month. A calendar month is a year and a month together, as in
|
|
8
|
+
* Temporal's `PlainYearMonth`, not a bare month-of-year number. This is a
|
|
9
|
+
* common point of confusion for callers expecting a bare "same month-of-year"
|
|
10
|
+
* comparison.
|
|
11
|
+
* - Comparison: date-fns's `isSameMonth` and Luxon's `dt.hasSame(other, "month")`
|
|
12
|
+
* give the same answer.
|
|
10
13
|
* - `"day"` matches `areDatesEqual` for PlainDate inputs only: `areDatesEqual` also accepts
|
|
11
14
|
* PlainDateTime strings (`areDatesEqual("2024-01-01", "2024-01-01T10:00")` is `true`), while this
|
|
12
15
|
* function accepts PlainDate strings only (`areDatesEqualBy` with those inputs and `"day"` is
|
|
13
16
|
* `false`).
|
|
14
17
|
* - `"year"`, `"month"`, `"week"` are computed via `startOfDate`.
|
|
15
18
|
* - `unit` accepts the singular or plural name (`"day"` or `"days"`), as Temporal does.
|
|
16
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns false.
|
|
17
19
|
* - Returns false for an unsupported unit or invalid input.
|
|
18
20
|
*
|
|
19
|
-
* Mapping from date-fns
|
|
21
|
+
* Mapping from date-fns:
|
|
20
22
|
* - `isSameDay(a, b)` → `areDatesEqualBy(a, b, "day")`
|
|
21
23
|
* - `isSameWeek(a, b, options)` → `areDatesEqualBy(a, b, "week", { weekStartsOn })`
|
|
22
24
|
* - `isSameMonth(a, b)` → `areDatesEqualBy(a, b, "month")`
|
|
@@ -25,7 +27,7 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
25
27
|
* @param value1 first ISO date string
|
|
26
28
|
* @param value2 second ISO date string
|
|
27
29
|
* @param unit date unit to compare by ("year" | "month" | "week" | "day", or its plural)
|
|
28
|
-
* @param optionsArg
|
|
30
|
+
* @param optionsArg How the week is defined
|
|
29
31
|
* @returns true if both dates share the same start-of-unit boundary, false on an unsupported unit or invalid input
|
|
30
32
|
*
|
|
31
33
|
* @example areDatesEqualBy("2024-03-15", "2024-03-20", "month") // true
|
|
@@ -37,5 +39,12 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
37
39
|
* @example areDatesEqualBy("invalid", "2024-03-15", "month") // false
|
|
38
40
|
*/
|
|
39
41
|
export declare function areDatesEqualBy(value1: string, value2: string, unit: Temporal.SmallestUnit<Temporal.DateUnit>, optionsArg?: {
|
|
42
|
+
/**
|
|
43
|
+
* The first day of the week, which sets where a `"week"` unit starts. `"monday"` is the ISO
|
|
44
|
+
* 8601 week, Monday to Sunday; `"sunday"` runs Sunday to Saturday. Any other value returns
|
|
45
|
+
* false, whatever the unit.
|
|
46
|
+
*
|
|
47
|
+
* @defaultValue `"monday"`
|
|
48
|
+
*/
|
|
40
49
|
weekStartsOn?: "monday" | "sunday";
|
|
41
50
|
}): boolean;
|