@northguild/gmt 1.15.0 → 1.17.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 +1133 -272
- package/dist/calendar/business/businessDaysBetween.d.ts +37 -0
- package/dist/calendar/business/businessDaysBetween.js +89 -0
- package/dist/calendar/business/index.d.ts +7 -0
- package/dist/calendar/business/index.js +10 -0
- package/dist/calendar/business/mergeCalendars.d.ts +33 -0
- package/dist/calendar/business/mergeCalendars.js +68 -0
- package/dist/calendar/business/nextBusinessDay.d.ts +30 -0
- package/dist/calendar/business/nextBusinessDay.js +39 -0
- package/dist/calendar/business/previousBusinessDay.d.ts +30 -0
- package/dist/calendar/business/previousBusinessDay.js +39 -0
- package/dist/calendar/business/rollDate.d.ts +59 -0
- package/dist/calendar/business/rollDate.js +116 -0
- package/dist/calendar/calculate/bucketRange.d.ts +49 -0
- package/dist/calendar/calculate/bucketRange.js +169 -0
- package/dist/calendar/calculate/floorToZone.d.ts +42 -0
- package/dist/calendar/calculate/floorToZone.js +62 -0
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +64 -0
- package/dist/calendar/calculate/getFiscalPeriod.js +96 -0
- package/dist/calendar/calculate/getIsoWeekDate.d.ts +35 -0
- package/dist/calendar/calculate/getIsoWeekDate.js +41 -0
- package/dist/calendar/calculate/getOrdinalDate.d.ts +25 -0
- package/dist/calendar/calculate/getOrdinalDate.js +28 -0
- package/dist/calendar/calculate/getQuarter.d.ts +36 -0
- package/dist/calendar/calculate/getQuarter.js +64 -0
- package/dist/calendar/calculate/index.d.ts +6 -0
- package/dist/calendar/calculate/index.js +6 -0
- package/dist/calendar/index.d.ts +4 -0
- package/dist/calendar/index.js +5 -0
- package/dist/calendar/validate/index.d.ts +4 -0
- package/dist/calendar/validate/index.js +4 -0
- package/dist/calendar/validate/isValidBusinessCalendar.d.ts +31 -0
- package/dist/calendar/validate/isValidBusinessCalendar.js +40 -0
- package/dist/calendar/validate/isValidFiscalPattern.d.ts +25 -0
- package/dist/calendar/validate/isValidFiscalPattern.js +29 -0
- package/dist/calendar/validate/isValidRollConvention.d.ts +28 -0
- package/dist/calendar/validate/isValidRollConvention.js +38 -0
- package/dist/calendar/validate/isValidZoneBucketUnit.d.ts +31 -0
- package/dist/calendar/validate/isValidZoneBucketUnit.js +39 -0
- package/dist/duration/calculate/durationAs.d.ts +27 -3
- package/dist/duration/calculate/durationAs.js +34 -8
- package/dist/duration/calculate/getDurationUnit.d.ts +5 -2
- package/dist/duration/calculate/getDurationUnit.js +7 -3
- package/dist/duration/compare/compareDurations.d.ts +25 -2
- package/dist/duration/compare/compareDurations.js +31 -7
- package/dist/duration/format/formatDuration.d.ts +14 -5
- package/dist/duration/format/formatDuration.js +47 -11
- package/dist/duration/index.d.ts +1 -0
- package/dist/duration/index.js +2 -0
- package/dist/duration/normalize/normalizeDuration.d.ts +33 -6
- package/dist/duration/normalize/normalizeDuration.js +41 -12
- package/dist/duration/parse/parseDuration.js +4 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -0
- package/dist/instant/convert/classifyLocal.d.ts +50 -0
- package/dist/instant/convert/classifyLocal.js +60 -0
- package/dist/instant/convert/fromOffsetInstant.d.ts +47 -0
- package/dist/instant/convert/fromOffsetInstant.js +91 -0
- package/dist/instant/convert/index.d.ts +4 -0
- package/dist/instant/convert/index.js +4 -0
- package/dist/instant/convert/resolveLocal.d.ts +40 -0
- package/dist/instant/convert/resolveLocal.js +76 -0
- package/dist/instant/convert/toOffsetInstant.d.ts +96 -0
- package/dist/instant/convert/toOffsetInstant.js +162 -0
- package/dist/instant/index.d.ts +2 -0
- package/dist/instant/index.js +3 -0
- package/dist/intermodal/calculate/billingTimeline.d.ts +94 -0
- package/dist/intermodal/calculate/billingTimeline.js +168 -0
- package/dist/intermodal/calculate/chargeableDays.d.ts +98 -0
- package/dist/intermodal/calculate/chargeableDays.js +101 -0
- package/dist/intermodal/calculate/demurrageClock.d.ts +93 -0
- package/dist/intermodal/calculate/demurrageClock.js +140 -0
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +66 -0
- package/dist/intermodal/calculate/freeTimeExpiry.js +82 -0
- package/dist/intermodal/calculate/index.d.ts +4 -0
- package/dist/intermodal/calculate/index.js +4 -0
- package/dist/intermodal/index.d.ts +2 -0
- package/dist/intermodal/index.js +3 -0
- package/dist/internal/adjustZonedBusinessDays.js +9 -7
- package/dist/internal/businessCalendar.d.ts +46 -0
- package/dist/internal/businessCalendar.js +230 -0
- package/dist/internal/businessDayValues.d.ts +20 -0
- package/dist/internal/businessDayValues.js +54 -0
- package/dist/internal/calendarDatePairPolicy.d.ts +10 -12
- package/dist/internal/calendarDatePairPolicy.js +13 -19
- package/dist/internal/calendarDateString.d.ts +32 -58
- package/dist/internal/calendarDateString.js +51 -93
- package/dist/internal/calendarSystemIds.d.ts +26 -2
- package/dist/internal/calendarSystemIds.js +57 -51
- package/dist/internal/calendarValueOfDate.d.ts +10 -12
- package/dist/internal/calendarValueOfDate.js +22 -20
- package/dist/internal/calendarValueOfZoned.d.ts +14 -17
- package/dist/internal/calendarValueOfZoned.js +25 -25
- package/dist/internal/calendarZonedPairPolicy.d.ts +11 -18
- package/dist/internal/calendarZonedPairPolicy.js +14 -25
- package/dist/internal/calendarZonedString.d.ts +41 -65
- package/dist/internal/calendarZonedString.js +52 -101
- package/dist/internal/compareUnixEpochs.d.ts +14 -0
- package/dist/internal/compareUnixEpochs.js +25 -0
- package/dist/internal/dateTimeUnitHelpers.d.ts +18 -0
- package/dist/internal/dateTimeUnitHelpers.js +27 -0
- package/dist/internal/dateUnitHelpers.d.ts +39 -1
- package/dist/internal/dateUnitHelpers.js +73 -11
- package/dist/internal/defaultFractionalDigits.d.ts +14 -0
- package/dist/internal/defaultFractionalDigits.js +23 -0
- package/dist/internal/differenceRecord.d.ts +32 -0
- package/dist/internal/differenceRecord.js +79 -0
- package/dist/internal/divisionBoundary.d.ts +19 -0
- package/dist/internal/divisionBoundary.js +23 -0
- package/dist/internal/durationUntilString.d.ts +1 -1
- package/dist/internal/durationUntilString.js +10 -2
- package/dist/internal/englishCalendarNames.d.ts +11 -0
- package/dist/internal/englishCalendarNames.js +21 -1
- package/dist/internal/epochNanoseconds.d.ts +27 -0
- package/dist/internal/epochNanoseconds.js +31 -0
- package/dist/internal/fiscalCalendar.d.ts +36 -0
- package/dist/internal/fiscalCalendar.js +86 -0
- package/dist/internal/floorDivide.d.ts +15 -0
- package/dist/internal/floorDivide.js +18 -0
- package/dist/internal/foreignEpochs.d.ts +134 -0
- package/dist/internal/foreignEpochs.js +139 -0
- package/dist/internal/formatCalendarDays.d.ts +28 -0
- package/dist/internal/formatCalendarDays.js +49 -0
- package/dist/internal/formatDateInCalendar.d.ts +14 -39
- package/dist/internal/formatDateInCalendar.js +16 -47
- package/dist/internal/formatRelativeDuration.d.ts +27 -0
- package/dist/internal/formatRelativeDuration.js +45 -0
- package/dist/internal/freeTimeLedger.d.ts +93 -0
- package/dist/internal/freeTimeLedger.js +262 -0
- package/dist/internal/getLocaleFirstDayOfWeek.d.ts +9 -6
- package/dist/internal/getLocaleFirstDayOfWeek.js +9 -10
- package/dist/internal/getLocaleWeekYearBounds.d.ts +17 -9
- package/dist/internal/getLocaleWeekYearBounds.js +45 -26
- package/dist/internal/getLocaleWeekendDays.d.ts +9 -18
- package/dist/internal/getLocaleWeekendDays.js +9 -5
- package/dist/internal/halfOpenIntervals.d.ts +102 -0
- package/dist/internal/halfOpenIntervals.js +180 -0
- package/dist/internal/hasCalendarAnnotation.d.ts +20 -20
- package/dist/internal/hasCalendarAnnotation.js +23 -21
- package/dist/internal/hourDurationString.d.ts +16 -0
- package/dist/internal/hourDurationString.js +47 -0
- package/dist/internal/httpDateFields.d.ts +24 -0
- package/dist/internal/httpDateFields.js +86 -0
- package/dist/internal/index.d.ts +30 -9
- package/dist/internal/index.js +30 -9
- package/dist/internal/instantFormatOptions.d.ts +43 -0
- package/dist/internal/instantFormatOptions.js +99 -0
- package/dist/internal/instantIntervalText.d.ts +20 -0
- package/dist/internal/instantIntervalText.js +25 -0
- package/dist/internal/instantNanoseconds.d.ts +25 -0
- package/dist/internal/instantNanoseconds.js +41 -0
- package/dist/internal/intervalCountHelpers.d.ts +16 -10
- package/dist/internal/intervalCountHelpers.js +1 -31
- package/dist/internal/intervalNanoseconds.d.ts +47 -0
- package/dist/internal/intervalNanoseconds.js +86 -0
- package/dist/internal/isObject.d.ts +26 -0
- package/dist/internal/isObject.js +30 -0
- package/dist/internal/isoStringBody.d.ts +66 -0
- package/dist/internal/isoStringBody.js +105 -0
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/localeWeekInfo.d.ts +34 -0
- package/dist/internal/localeWeekInfo.js +27 -0
- package/dist/internal/maxPieces.d.ts +41 -0
- package/dist/internal/maxPieces.js +53 -0
- package/dist/internal/measureNearRangeEnd.d.ts +26 -0
- package/dist/internal/measureNearRangeEnd.js +47 -0
- package/dist/internal/monthGridWeekRow.d.ts +4 -1
- package/dist/internal/monthGridWeekRow.js +3 -0
- package/dist/internal/normalizeTimeZone.d.ts +17 -10
- package/dist/internal/normalizeTimeZone.js +25 -15
- package/dist/internal/patternToken.d.ts +2 -1
- package/dist/internal/patternToken.js +10 -4
- package/dist/internal/plainDateAdd.d.ts +20 -0
- package/dist/internal/plainDateAdd.js +42 -0
- package/dist/internal/plainDateUntil.d.ts +21 -0
- package/dist/internal/plainDateUntil.js +48 -0
- package/dist/internal/plainFormatOptions.d.ts +59 -0
- package/dist/internal/plainFormatOptions.js +165 -0
- package/dist/internal/resolveDateTimeUnit.d.ts +4 -1
- package/dist/internal/resolveDateTimeUnit.js +2 -12
- package/dist/internal/resolveDurationRelativeTo.d.ts +28 -22
- package/dist/internal/resolveDurationRelativeTo.js +69 -25
- package/dist/internal/resolveDurationUnit.d.ts +4 -1
- package/dist/internal/resolveDurationUnit.js +2 -11
- package/dist/internal/resolveLocale.d.ts +37 -0
- package/dist/internal/resolveLocale.js +59 -0
- package/dist/internal/resolveManualRoundingOptions.d.ts +23 -0
- package/dist/internal/resolveManualRoundingOptions.js +39 -0
- package/dist/internal/resolveMinimalDaysInFirstWeek.d.ts +19 -0
- package/dist/internal/resolveMinimalDaysInFirstWeek.js +28 -0
- package/dist/internal/resolveOverflow.d.ts +6 -0
- package/dist/internal/resolveOverflow.js +7 -1
- package/dist/internal/resolveReadingTimeZone.d.ts +11 -0
- package/dist/internal/resolveReadingTimeZone.js +18 -0
- package/dist/internal/resolveUnixIntervalPair.d.ts +30 -0
- package/dist/internal/resolveUnixIntervalPair.js +53 -0
- package/dist/internal/resolveWeekStartsOn.d.ts +12 -0
- package/dist/internal/resolveWeekStartsOn.js +18 -0
- package/dist/internal/rfc5322DateTime.d.ts +26 -0
- package/dist/internal/rfc5322DateTime.js +176 -0
- package/dist/internal/splitStep.d.ts +81 -0
- package/dist/internal/splitStep.js +182 -0
- package/dist/internal/startOrEndOfUnix.d.ts +26 -0
- package/dist/internal/startOrEndOfUnix.js +47 -0
- package/dist/{utc/calculate → internal}/startOrEndOfUtc.d.ts +8 -4
- package/dist/{utc/calculate → internal}/startOrEndOfUtc.js +30 -26
- package/dist/internal/startOrEndOfZoned.d.ts +22 -0
- package/dist/internal/startOrEndOfZoned.js +49 -0
- package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +33 -0
- package/dist/internal/temporalCompat/calendarDateArithmetic.js +199 -0
- package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +36 -0
- package/dist/internal/temporalCompat/calendarDateFromFields.js +120 -0
- package/dist/internal/temporalCompat/calendarFields.d.ts +25 -0
- package/dist/internal/temporalCompat/calendarFields.js +131 -0
- package/dist/internal/temporalCompat/capabilities.d.ts +28 -0
- package/dist/internal/temporalCompat/capabilities.js +74 -0
- package/dist/internal/temporalCompat/fieldSearch.d.ts +21 -0
- package/dist/internal/temporalCompat/fieldSearch.js +83 -0
- package/dist/internal/temporalCompat/fixedDay.d.ts +25 -0
- package/dist/internal/temporalCompat/fixedDay.js +45 -0
- package/dist/internal/temporalCompat/hebrewArithmetic.d.ts +19 -0
- package/dist/internal/temporalCompat/hebrewArithmetic.js +150 -0
- package/dist/internal/temporalCompat/index.d.ts +4 -0
- package/dist/internal/temporalCompat/index.js +5 -0
- package/dist/internal/temporalCompat/indianArithmetic.d.ts +16 -0
- package/dist/internal/temporalCompat/indianArithmetic.js +87 -0
- package/dist/internal/temporalCompat/largeMonthSpan.d.ts +19 -0
- package/dist/internal/temporalCompat/largeMonthSpan.js +199 -0
- package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +59 -0
- package/dist/internal/temporalCompat/nonIsoArithmetic.js +220 -0
- package/dist/internal/temporalCompat/readArithmeticModel.d.ts +3 -0
- package/dist/internal/temporalCompat/readArithmeticModel.js +284 -0
- package/dist/internal/temporalCompat/repros.d.ts +31 -0
- package/dist/internal/temporalCompat/repros.js +556 -0
- package/dist/internal/toInstantFromUtc.d.ts +10 -0
- package/dist/internal/toInstantFromUtc.js +19 -0
- package/dist/internal/unixEpochValue.d.ts +166 -0
- package/dist/internal/unixEpochValue.js +245 -0
- package/dist/internal/unixFormatReference.d.ts +18 -0
- package/dist/internal/unixFormatReference.js +44 -0
- package/dist/internal/unixZonedDateTime.d.ts +22 -0
- package/dist/internal/unixZonedDateTime.js +32 -0
- package/dist/internal/utcOffsetString.d.ts +39 -0
- package/dist/internal/utcOffsetString.js +75 -0
- package/dist/internal/utcZonedDateTime.d.ts +16 -0
- package/dist/internal/utcZonedDateTime.js +28 -0
- package/dist/internal/wallClockAtOffset.d.ts +22 -0
- package/dist/internal/wallClockAtOffset.js +26 -0
- package/dist/internal/zonedBucket.d.ts +91 -0
- package/dist/internal/zonedBucket.js +441 -0
- package/dist/internal/zonedFormatReference.d.ts +15 -0
- package/dist/internal/zonedFormatReference.js +24 -0
- package/dist/internal/zonedLocalDates.d.ts +15 -0
- package/dist/internal/zonedLocalDates.js +58 -0
- package/dist/internal/zonedNowUnitValue.d.ts +24 -0
- package/dist/internal/zonedNowUnitValue.js +58 -0
- package/dist/internal/zonedWallClock.d.ts +84 -0
- package/dist/internal/zonedWallClock.js +427 -0
- package/dist/internal/zonedWallClockDifference.d.ts +92 -0
- package/dist/internal/zonedWallClockDifference.js +1174 -0
- package/dist/internal/zonedWallClockOperations.d.ts +132 -0
- package/dist/internal/zonedWallClockOperations.js +553 -0
- package/dist/internal/zonelessCalendarDate.d.ts +12 -0
- package/dist/internal/zonelessCalendarDate.js +22 -0
- package/dist/interval/calculate/clampInterval.d.ts +22 -0
- package/dist/interval/calculate/clampInterval.js +31 -0
- package/dist/interval/calculate/index.d.ts +6 -0
- package/dist/interval/calculate/index.js +6 -0
- package/dist/interval/calculate/intersectIntervals.d.ts +23 -0
- package/dist/interval/calculate/intersectIntervals.js +43 -0
- package/dist/interval/calculate/mergeIntervals.d.ts +28 -0
- package/dist/interval/calculate/mergeIntervals.js +44 -0
- package/dist/interval/calculate/splitIntervalAt.d.ts +28 -0
- package/dist/interval/calculate/splitIntervalAt.js +63 -0
- package/dist/interval/calculate/subtractIntervals.d.ts +31 -0
- package/dist/interval/calculate/subtractIntervals.js +64 -0
- package/dist/interval/calculate/sumIntervals.d.ts +26 -0
- package/dist/interval/calculate/sumIntervals.js +40 -0
- package/dist/interval/compare/index.d.ts +2 -0
- package/dist/interval/compare/index.js +2 -0
- package/dist/interval/compare/intervalContains.d.ts +25 -0
- package/dist/interval/compare/intervalContains.js +39 -0
- package/dist/interval/compare/intervalsOverlap.d.ts +28 -0
- package/dist/interval/compare/intervalsOverlap.js +42 -0
- package/dist/interval/index.d.ts +4 -0
- package/dist/interval/index.js +5 -0
- package/dist/interval/validate/index.d.ts +1 -0
- package/dist/interval/validate/index.js +1 -0
- package/dist/interval/validate/isValidInterval.d.ts +29 -0
- package/dist/interval/validate/isValidInterval.js +38 -0
- package/dist/plain/calculate/addBusinessDays.d.ts +26 -9
- package/dist/plain/calculate/addBusinessDays.js +29 -21
- package/dist/plain/calculate/addDate.d.ts +9 -8
- package/dist/plain/calculate/addDate.js +35 -22
- package/dist/plain/calculate/addDateTime.js +24 -10
- package/dist/plain/calculate/addTime.d.ts +5 -8
- package/dist/plain/calculate/addTime.js +23 -16
- package/dist/plain/calculate/clampDate.js +3 -3
- package/dist/plain/calculate/closestDateTo.d.ts +11 -7
- package/dist/plain/calculate/closestDateTo.js +36 -24
- package/dist/plain/calculate/cycleDate.d.ts +1 -1
- package/dist/plain/calculate/cycleDate.js +10 -3
- package/dist/plain/calculate/cycleDateTime.d.ts +1 -1
- package/dist/plain/calculate/cycleDateTime.js +10 -3
- package/dist/plain/calculate/cycleTime.d.ts +6 -8
- package/dist/plain/calculate/cycleTime.js +15 -9
- package/dist/plain/calculate/diffDate.d.ts +31 -14
- package/dist/plain/calculate/diffDate.js +73 -38
- package/dist/plain/calculate/diffDateAsDuration.d.ts +13 -8
- package/dist/plain/calculate/diffDateAsDuration.js +22 -9
- package/dist/plain/calculate/diffDateTime.d.ts +17 -5
- package/dist/plain/calculate/diffDateTime.js +67 -28
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +2 -2
- package/dist/plain/calculate/diffDateTimeAsDuration.js +10 -3
- package/dist/plain/calculate/diffTime.d.ts +18 -5
- package/dist/plain/calculate/diffTime.js +68 -27
- package/dist/plain/calculate/endOfDate.d.ts +10 -2
- package/dist/plain/calculate/endOfDate.js +52 -27
- package/dist/plain/calculate/endOfDateTime.d.ts +17 -2
- package/dist/plain/calculate/endOfDateTime.js +126 -103
- package/dist/plain/calculate/endOfTime.d.ts +16 -2
- package/dist/plain/calculate/endOfTime.js +77 -59
- package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +13 -5
- package/dist/plain/calculate/getLargestDateDurationUnit.js +26 -10
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +13 -6
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.js +37 -22
- package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +13 -6
- package/dist/plain/calculate/getLargestTimeDurationUnit.js +33 -18
- package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +8 -4
- package/dist/plain/calculate/getLocaleDayOfWeek.js +8 -3
- package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +8 -4
- package/dist/plain/calculate/getLocaleEndOfWeek.js +8 -3
- package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +8 -4
- package/dist/plain/calculate/getLocaleStartOfWeek.js +8 -3
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +29 -19
- package/dist/plain/calculate/getLocaleWeekYear.js +48 -28
- package/dist/plain/calculate/getWeekNumber.d.ts +21 -2
- package/dist/plain/calculate/getWeekNumber.js +33 -12
- package/dist/plain/calculate/getWeekOfMonth.d.ts +4 -2
- package/dist/plain/calculate/getWeekOfMonth.js +8 -3
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +25 -14
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +45 -25
- package/dist/plain/calculate/getWeeksInMonth.d.ts +4 -2
- package/dist/plain/calculate/getWeeksInMonth.js +8 -3
- package/dist/plain/calculate/getWeeksInYear.d.ts +5 -4
- package/dist/plain/calculate/getWeeksInYear.js +9 -14
- package/dist/plain/calculate/maxDate.js +19 -12
- package/dist/plain/calculate/maxDateTime.js +19 -12
- package/dist/plain/calculate/maxTime.js +19 -12
- package/dist/plain/calculate/minDate.js +19 -12
- package/dist/plain/calculate/minDateTime.js +19 -12
- package/dist/plain/calculate/minTime.js +19 -12
- package/dist/plain/calculate/nextWeekday.js +5 -0
- package/dist/plain/calculate/previousWeekday.js +5 -0
- package/dist/plain/calculate/roundDate.d.ts +23 -5
- package/dist/plain/calculate/roundDate.js +88 -46
- package/dist/plain/calculate/roundDateTime.d.ts +27 -3
- package/dist/plain/calculate/roundDateTime.js +128 -69
- package/dist/plain/calculate/roundTime.d.ts +8 -1
- package/dist/plain/calculate/roundTime.js +32 -17
- package/dist/plain/calculate/setDate.js +4 -0
- package/dist/plain/calculate/setDateTime.js +4 -0
- package/dist/plain/calculate/setTime.d.ts +1 -1
- package/dist/plain/calculate/setTime.js +5 -1
- package/dist/plain/calculate/sortDateTimes.js +17 -10
- package/dist/plain/calculate/sortDates.js +17 -10
- package/dist/plain/calculate/sortTimes.js +17 -10
- package/dist/plain/calculate/startOfDate.d.ts +7 -2
- package/dist/plain/calculate/startOfDate.js +52 -27
- package/dist/plain/calculate/startOfDateTime.d.ts +5 -2
- package/dist/plain/calculate/startOfDateTime.js +81 -62
- package/dist/plain/calculate/startOfQuarterForDateTime.d.ts +2 -0
- package/dist/plain/calculate/startOfQuarterForDateTime.js +12 -1
- package/dist/plain/calculate/startOfTime.d.ts +15 -2
- package/dist/plain/calculate/startOfTime.js +33 -37
- package/dist/plain/calculate/subtractBusinessDays.d.ts +25 -10
- package/dist/plain/calculate/subtractBusinessDays.js +28 -22
- package/dist/plain/calculate/subtractDate.d.ts +8 -7
- package/dist/plain/calculate/subtractDate.js +35 -21
- package/dist/plain/calculate/subtractDateTime.js +24 -10
- package/dist/plain/calculate/subtractTime.d.ts +5 -8
- package/dist/plain/calculate/subtractTime.js +23 -16
- package/dist/plain/chop/index.d.ts +0 -1
- package/dist/plain/chop/index.js +0 -1
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +10 -5
- package/dist/plain/compare/areDateTimesEqualBy.js +35 -10
- package/dist/plain/compare/areDatesEqualBy.d.ts +10 -3
- package/dist/plain/compare/areDatesEqualBy.js +41 -14
- package/dist/plain/compare/isBetweenDate.js +32 -16
- package/dist/plain/compare/isBetweenDateTime.js +34 -18
- package/dist/plain/compare/isBetweenTime.js +32 -16
- package/dist/plain/compare/isBusinessDay.d.ts +25 -11
- package/dist/plain/compare/isBusinessDay.js +36 -15
- package/dist/plain/compare/isThisUnit.d.ts +13 -4
- package/dist/plain/compare/isThisUnit.js +33 -13
- package/dist/plain/compare/isWeekend.d.ts +8 -4
- package/dist/plain/compare/isWeekend.js +7 -3
- package/dist/plain/convert/convertDateToCalendar.d.ts +34 -33
- package/dist/plain/convert/convertDateToCalendar.js +41 -40
- package/dist/plain/format/formatCalendar.d.ts +12 -6
- package/dist/plain/format/formatCalendar.js +47 -25
- package/dist/plain/format/formatDate.d.ts +21 -4
- package/dist/plain/format/formatDate.js +37 -5
- package/dist/plain/format/formatDateRange.d.ts +17 -4
- package/dist/plain/format/formatDateRange.js +29 -5
- package/dist/plain/format/formatDateTime.d.ts +22 -4
- package/dist/plain/format/formatDateTime.js +31 -5
- package/dist/plain/format/formatDateTimeRange.d.ts +20 -4
- package/dist/plain/format/formatDateTimeRange.js +29 -5
- package/dist/plain/format/formatDateTimeToParts.d.ts +32 -6
- package/dist/plain/format/formatDateTimeToParts.js +40 -14
- package/dist/plain/format/formatDateToParts.d.ts +24 -3
- package/dist/plain/format/formatDateToParts.js +36 -11
- package/dist/plain/format/formatRelativeDate.d.ts +7 -3
- package/dist/plain/format/formatRelativeDate.js +39 -24
- package/dist/plain/format/formatRelativeDateTime.d.ts +15 -6
- package/dist/plain/format/formatRelativeDateTime.js +35 -33
- package/dist/plain/format/formatRelativeTime.d.ts +8 -4
- package/dist/plain/format/formatRelativeTime.js +36 -21
- package/dist/plain/format/formatSql.d.ts +15 -10
- package/dist/plain/format/formatSql.js +20 -11
- package/dist/plain/format/formatTime.d.ts +18 -4
- package/dist/plain/format/formatTime.js +32 -5
- package/dist/plain/get/getNowUnit.d.ts +3 -0
- package/dist/plain/get/getNowUnit.js +14 -29
- package/dist/plain/index.js +1 -1
- package/dist/plain/interval/intervalAbutsDate.d.ts +12 -7
- package/dist/plain/interval/intervalAbutsDate.js +15 -19
- package/dist/plain/interval/intervalAbutsDateTime.d.ts +9 -7
- package/dist/plain/interval/intervalAbutsDateTime.js +17 -23
- package/dist/plain/interval/intervalAbutsTime.d.ts +11 -5
- package/dist/plain/interval/intervalAbutsTime.js +19 -21
- package/dist/plain/interval/intervalContainsDate.d.ts +17 -10
- package/dist/plain/interval/intervalContainsDate.js +20 -15
- package/dist/plain/interval/intervalContainsDateTime.d.ts +16 -11
- package/dist/plain/interval/intervalContainsDateTime.js +24 -20
- package/dist/plain/interval/intervalContainsTime.d.ts +20 -10
- package/dist/plain/interval/intervalContainsTime.js +28 -19
- package/dist/plain/interval/intervalCountDate.d.ts +13 -8
- package/dist/plain/interval/intervalCountDate.js +46 -14
- package/dist/plain/interval/intervalCountDateTime.d.ts +6 -4
- package/dist/plain/interval/intervalCountDateTime.js +63 -18
- package/dist/plain/interval/intervalCountTime.d.ts +3 -4
- package/dist/plain/interval/intervalCountTime.js +9 -9
- package/dist/plain/interval/intervalDifferenceDate.d.ts +13 -6
- package/dist/plain/interval/intervalDifferenceDate.js +19 -32
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +10 -4
- package/dist/plain/interval/intervalDifferenceDateTime.js +21 -27
- package/dist/plain/interval/intervalDifferenceTime.d.ts +11 -4
- package/dist/plain/interval/intervalDifferenceTime.js +22 -27
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +16 -4
- package/dist/plain/interval/intervalDivideEquallyDate.js +57 -33
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +16 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +67 -31
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +16 -4
- package/dist/plain/interval/intervalDivideEquallyTime.js +58 -31
- package/dist/plain/interval/intervalEngulfsDate.d.ts +16 -9
- package/dist/plain/interval/intervalEngulfsDate.js +19 -12
- package/dist/plain/interval/intervalEngulfsDateTime.d.ts +16 -11
- package/dist/plain/interval/intervalEngulfsDateTime.js +24 -18
- package/dist/plain/interval/intervalEngulfsTime.d.ts +18 -8
- package/dist/plain/interval/intervalEngulfsTime.js +26 -15
- package/dist/plain/interval/intervalFromDurationDate.d.ts +5 -4
- package/dist/plain/interval/intervalFromDurationDate.js +11 -8
- package/dist/plain/interval/intervalFromDurationDateTime.js +4 -0
- package/dist/plain/interval/intervalFromDurationTime.d.ts +10 -12
- package/dist/plain/interval/intervalFromDurationTime.js +28 -17
- package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -4
- package/dist/plain/interval/intervalIntersectionDate.js +14 -9
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -4
- package/dist/plain/interval/intervalIntersectionDateTime.js +19 -13
- package/dist/plain/interval/intervalIntersectionTime.d.ts +7 -3
- package/dist/plain/interval/intervalIntersectionTime.js +17 -12
- package/dist/plain/interval/intervalLengthDate.d.ts +9 -6
- package/dist/plain/interval/intervalLengthDate.js +40 -8
- package/dist/plain/interval/intervalLengthDateTime.js +2 -2
- package/dist/plain/interval/intervalOverlappingDaysDate.d.ts +16 -17
- package/dist/plain/interval/intervalOverlappingDaysDate.js +30 -30
- package/dist/plain/interval/intervalOverlappingDaysDateTime.d.ts +7 -12
- package/dist/plain/interval/intervalOverlappingDaysDateTime.js +24 -24
- package/dist/plain/interval/intervalSplitAtDate.d.ts +10 -5
- package/dist/plain/interval/intervalSplitAtDate.js +48 -36
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +9 -4
- package/dist/plain/interval/intervalSplitAtDateTime.js +44 -32
- package/dist/plain/interval/intervalSplitAtTime.d.ts +9 -4
- package/dist/plain/interval/intervalSplitAtTime.js +44 -32
- package/dist/plain/interval/intervalUnionDate.d.ts +14 -6
- package/dist/plain/interval/intervalUnionDate.js +19 -11
- package/dist/plain/interval/intervalUnionDateTime.d.ts +12 -5
- package/dist/plain/interval/intervalUnionDateTime.js +22 -14
- package/dist/plain/interval/intervalUnionTime.d.ts +10 -3
- package/dist/plain/interval/intervalUnionTime.js +20 -12
- package/dist/plain/interval/intervalXorAllDate.d.ts +11 -10
- package/dist/plain/interval/intervalXorAllDate.js +37 -59
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +7 -5
- package/dist/plain/interval/intervalXorAllDateTime.js +28 -48
- package/dist/plain/interval/intervalXorAllTime.d.ts +8 -4
- package/dist/plain/interval/intervalXorAllTime.js +29 -47
- package/dist/plain/interval/intervalXorDate.d.ts +10 -9
- package/dist/plain/interval/intervalXorDate.js +19 -54
- package/dist/plain/interval/intervalXorDateTime.d.ts +9 -7
- package/dist/plain/interval/intervalXorDateTime.js +23 -50
- package/dist/plain/interval/intervalXorTime.d.ts +8 -7
- package/dist/plain/interval/intervalXorTime.js +22 -50
- package/dist/plain/interval/intervalsOverlapDate.d.ts +14 -7
- package/dist/plain/interval/intervalsOverlapDate.js +17 -10
- package/dist/plain/interval/intervalsOverlapDateTime.d.ts +12 -7
- package/dist/plain/interval/intervalsOverlapDateTime.js +20 -14
- package/dist/plain/interval/intervalsOverlapTime.d.ts +10 -5
- package/dist/plain/interval/intervalsOverlapTime.js +18 -12
- package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -5
- package/dist/plain/interval/mergeIntervalsDate.js +37 -38
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +7 -3
- package/dist/plain/interval/mergeIntervalsDateTime.js +31 -32
- package/dist/plain/interval/mergeIntervalsTime.d.ts +7 -3
- package/dist/plain/interval/mergeIntervalsTime.js +31 -31
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +26 -6
- package/dist/plain/interval/splitIntervalByUnitDate.js +76 -43
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -2
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +65 -39
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +18 -2
- package/dist/plain/interval/splitIntervalByUnitTime.js +76 -39
- package/dist/plain/interval/validate/isValidDateInterval.d.ts +4 -2
- package/dist/plain/interval/validate/isValidDateInterval.js +4 -2
- package/dist/plain/interval/validate/isValidDateTimeInterval.d.ts +5 -0
- package/dist/plain/interval/validate/isValidDateTimeInterval.js +7 -2
- package/dist/plain/interval/validate/isValidTimeInterval.d.ts +5 -0
- package/dist/plain/interval/validate/isValidTimeInterval.js +8 -18
- package/dist/plain/locale/getLocaleEraNames.d.ts +14 -4
- package/dist/plain/locale/getLocaleEraNames.js +56 -41
- package/dist/plain/locale/getLocaleMeridiems.d.ts +7 -4
- package/dist/plain/locale/getLocaleMeridiems.js +28 -22
- package/dist/plain/locale/getLocaleMonthNames.d.ts +14 -4
- package/dist/plain/locale/getLocaleMonthNames.js +34 -19
- package/dist/plain/locale/getLocaleWeekdayNames.d.ts +14 -7
- package/dist/plain/locale/getLocaleWeekdayNames.js +40 -22
- package/dist/plain/map/mapDatesInRange.d.ts +18 -1
- package/dist/plain/map/mapDatesInRange.js +53 -17
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +3 -2
- package/dist/plain/parse/parseDateTimeWithPattern.js +30 -24
- package/dist/plain/parse/parseDateWithPattern.d.ts +3 -2
- package/dist/plain/parse/parseDateWithPattern.js +22 -16
- package/dist/plain/parse/parseMicrosecondFromDateTime.d.ts +2 -1
- package/dist/plain/parse/parseMicrosecondFromDateTime.js +2 -1
- package/dist/plain/parse/parseMicrosecondFromTime.d.ts +2 -1
- package/dist/plain/parse/parseMicrosecondFromTime.js +2 -1
- package/dist/plain/parse/parseNanosecondFromDateTime.d.ts +2 -1
- package/dist/plain/parse/parseNanosecondFromDateTime.js +2 -1
- package/dist/plain/parse/parseNanosecondFromTime.d.ts +2 -1
- package/dist/plain/parse/parseNanosecondFromTime.js +2 -1
- package/dist/plain/parse/parseSql.d.ts +15 -12
- package/dist/plain/parse/parseSql.js +16 -13
- package/dist/plain/parse/parseTimeWithPattern.d.ts +3 -2
- package/dist/plain/parse/parseTimeWithPattern.js +27 -21
- package/dist/plain/parse/parseUnitFromDate.d.ts +9 -2
- package/dist/plain/parse/parseUnitFromDate.js +39 -19
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +11 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +54 -28
- package/dist/plain/parse/parseUnitFromTime.d.ts +9 -3
- package/dist/plain/parse/parseUnitFromTime.js +13 -3
- package/dist/plain/parse/parseWeekFromDate.d.ts +5 -0
- package/dist/plain/parse/parseWeekFromDate.js +24 -5
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +5 -0
- package/dist/plain/parse/parseWeekFromDateTime.js +26 -5
- package/dist/plain/validate/isLeapSecond.d.ts +27 -9
- package/dist/plain/validate/isLeapSecond.js +30 -9
- package/dist/plain/validate/isLeapYear.d.ts +7 -1
- package/dist/plain/validate/isLeapYear.js +10 -1
- package/dist/plain/validate/isValidCalendarDate.d.ts +37 -6
- package/dist/plain/validate/isValidCalendarDate.js +37 -6
- package/dist/plain/validate/isValidDate.d.ts +9 -1
- package/dist/plain/validate/isValidDate.js +14 -5
- package/dist/plain/validate/isValidDateRange.d.ts +11 -4
- package/dist/plain/validate/isValidDateRange.js +32 -22
- package/dist/plain/validate/isValidDateTime.d.ts +7 -1
- package/dist/plain/validate/isValidDateTime.js +12 -5
- package/dist/plain/validate/isValidDateTimeRange.d.ts +3 -2
- package/dist/plain/validate/isValidDateTimeRange.js +30 -15
- package/dist/plain/validate/isValidIsoDateLike.d.ts +6 -1
- package/dist/plain/validate/isValidIsoDateLike.js +13 -8
- package/dist/plain/validate/isValidTime.d.ts +6 -1
- package/dist/plain/validate/isValidTime.js +10 -3
- package/dist/plain/validate/isValidTimeRange.d.ts +4 -2
- package/dist/plain/validate/isValidTimeRange.js +31 -27
- package/dist/precision/calculate/index.d.ts +1 -0
- package/dist/precision/calculate/index.js +1 -0
- package/dist/precision/calculate/truncateNanoseconds.d.ts +37 -0
- package/dist/precision/calculate/truncateNanoseconds.js +41 -0
- package/dist/precision/convert/fromDotNetTicks.d.ts +30 -0
- package/dist/precision/convert/fromDotNetTicks.js +39 -0
- package/dist/precision/convert/fromExcelSerial.d.ts +38 -0
- package/dist/precision/convert/fromExcelSerial.js +81 -0
- package/dist/precision/convert/fromFileTime.d.ts +30 -0
- package/dist/precision/convert/fromFileTime.js +39 -0
- package/dist/precision/convert/fromNanoseconds.d.ts +29 -0
- package/dist/precision/convert/fromNanoseconds.js +50 -0
- package/dist/precision/convert/fromNtpTimestamp.d.ts +43 -0
- package/dist/precision/convert/fromNtpTimestamp.js +57 -0
- package/dist/precision/convert/fromPgMicroseconds.d.ts +26 -0
- package/dist/precision/convert/fromPgMicroseconds.js +33 -0
- package/dist/precision/convert/index.d.ts +12 -0
- package/dist/precision/convert/index.js +12 -0
- package/dist/precision/convert/toDotNetTicks.d.ts +29 -0
- package/dist/precision/convert/toDotNetTicks.js +40 -0
- package/dist/precision/convert/toExcelSerial.d.ts +56 -0
- package/dist/precision/convert/toExcelSerial.js +85 -0
- package/dist/precision/convert/toFileTime.d.ts +31 -0
- package/dist/precision/convert/toFileTime.js +43 -0
- package/dist/precision/convert/toNanoseconds.d.ts +37 -0
- package/dist/precision/convert/toNanoseconds.js +40 -0
- package/dist/precision/convert/toNtpTimestamp.d.ts +30 -0
- package/dist/precision/convert/toNtpTimestamp.js +38 -0
- package/dist/precision/convert/toPgMicroseconds.d.ts +29 -0
- package/dist/precision/convert/toPgMicroseconds.js +42 -0
- package/dist/precision/format/formatNanoseconds.d.ts +26 -0
- package/dist/precision/format/formatNanoseconds.js +32 -0
- package/dist/precision/format/index.d.ts +1 -0
- package/dist/precision/format/index.js +1 -0
- package/dist/precision/index.d.ts +6 -0
- package/dist/precision/index.js +7 -0
- package/dist/precision/parse/index.d.ts +1 -0
- package/dist/precision/parse/index.js +1 -0
- package/dist/precision/parse/parseNanoseconds.d.ts +27 -0
- package/dist/precision/parse/parseNanoseconds.js +32 -0
- package/dist/precision/validate/index.d.ts +3 -0
- package/dist/precision/validate/index.js +3 -0
- package/dist/precision/validate/isValidInstant.d.ts +37 -0
- package/dist/precision/validate/isValidInstant.js +40 -0
- package/dist/precision/validate/isValidNanoPattern.d.ts +27 -0
- package/dist/precision/validate/isValidNanoPattern.js +40 -0
- package/dist/precision/validate/isValidNanoseconds.d.ts +25 -0
- package/dist/precision/validate/isValidNanoseconds.js +28 -0
- package/dist/regex/calendar-date.d.ts +25 -14
- package/dist/regex/calendar-date.js +26 -15
- package/dist/regex/calendar-zoned-date-time.d.ts +22 -38
- package/dist/regex/calendar-zoned-date-time.js +23 -39
- package/dist/regex/date-time.d.ts +14 -4
- package/dist/regex/date-time.js +15 -5
- package/dist/regex/date.d.ts +45 -3
- package/dist/regex/date.js +47 -5
- package/dist/regex/http-date.d.ts +10 -6
- package/dist/regex/http-date.js +10 -6
- package/dist/regex/index.d.ts +3 -0
- package/dist/regex/index.js +4 -0
- package/dist/regex/leap-second.d.ts +41 -8
- package/dist/regex/leap-second.js +42 -9
- package/dist/regex/nanoseconds.d.ts +20 -0
- package/dist/regex/nanoseconds.js +20 -0
- package/dist/regex/rfc-2822.d.ts +15 -7
- package/dist/regex/rfc-2822.js +15 -7
- package/dist/regex/rfc-3339.d.ts +8 -1
- package/dist/regex/rfc-3339.js +9 -2
- package/dist/regex/sql-date-time.d.ts +27 -8
- package/dist/regex/sql-date-time.js +28 -9
- package/dist/regex/time-zone-like.d.ts +24 -15
- package/dist/regex/time-zone-like.js +25 -16
- package/dist/regex/time.d.ts +20 -6
- package/dist/regex/time.js +20 -6
- package/dist/regex/unix.d.ts +13 -5
- package/dist/regex/unix.js +13 -5
- package/dist/regex/utc-date-time.d.ts +19 -9
- package/dist/regex/utc-date-time.js +20 -10
- package/dist/regex/utc-offset.d.ts +24 -0
- package/dist/regex/utc-offset.js +24 -0
- package/dist/span/calculate/index.d.ts +3 -0
- package/dist/span/calculate/index.js +3 -0
- package/dist/span/calculate/spanMs.d.ts +52 -0
- package/dist/span/calculate/spanMs.js +80 -0
- package/dist/span/calculate/spanNs.d.ts +43 -0
- package/dist/span/calculate/spanNs.js +51 -0
- package/dist/span/calculate/spanWallClock.d.ts +60 -0
- package/dist/span/calculate/spanWallClock.js +80 -0
- package/dist/span/index.d.ts +3 -0
- package/dist/span/index.js +4 -0
- package/dist/span/validate/index.d.ts +1 -0
- package/dist/span/validate/index.js +1 -0
- package/dist/span/validate/isValidSpan.d.ts +37 -0
- package/dist/span/validate/isValidSpan.js +41 -0
- package/dist/transport/calculate/dwellTime.d.ts +72 -0
- package/dist/transport/calculate/dwellTime.js +126 -0
- package/dist/transport/calculate/index.d.ts +2 -0
- package/dist/transport/calculate/index.js +2 -0
- package/dist/transport/calculate/transitTime.d.ts +53 -0
- package/dist/transport/calculate/transitTime.js +118 -0
- package/dist/transport/convert/etaAtZone.d.ts +36 -0
- package/dist/transport/convert/etaAtZone.js +53 -0
- package/dist/transport/convert/index.d.ts +1 -0
- package/dist/transport/convert/index.js +1 -0
- package/dist/transport/index.d.ts +3 -0
- package/dist/transport/index.js +4 -0
- package/dist/types/business-calendar.d.ts +27 -0
- package/dist/types/business-calendar.js +0 -0
- package/dist/types/calendar-system.d.ts +9 -1
- package/dist/types/fiscal-calendar.d.ts +22 -0
- package/dist/types/fiscal-calendar.js +0 -0
- package/dist/types/free-time-options.d.ts +34 -0
- package/dist/types/free-time-options.js +0 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.js +6 -0
- package/dist/types/interval.d.ts +18 -0
- package/dist/types/interval.js +0 -0
- package/dist/types/now-unit.d.ts +1 -1
- package/dist/types/roll-convention.d.ts +32 -0
- package/dist/types/roll-convention.js +0 -0
- package/dist/types/utc-now-unit.d.ts +1 -1
- package/dist/types/zone-bucket-unit.d.ts +11 -0
- package/dist/types/zone-bucket-unit.js +0 -0
- package/dist/unix/calculate/addUnix.d.ts +10 -4
- package/dist/unix/calculate/addUnix.js +39 -26
- package/dist/unix/calculate/diffUnix.d.ts +38 -11
- package/dist/unix/calculate/diffUnix.js +84 -40
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +17 -7
- package/dist/unix/calculate/diffUnixAsDuration.js +42 -23
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +15 -11
- package/dist/unix/calculate/endOfQuarterForUnix.js +20 -39
- package/dist/unix/calculate/endOfUnix.d.ts +23 -18
- package/dist/unix/calculate/endOfUnix.js +37 -15
- package/dist/unix/calculate/isBetweenUnix.d.ts +12 -6
- package/dist/unix/calculate/isBetweenUnix.js +34 -23
- package/dist/unix/calculate/maxUnix.d.ts +6 -3
- package/dist/unix/calculate/maxUnix.js +17 -8
- package/dist/unix/calculate/minUnix.d.ts +6 -3
- package/dist/unix/calculate/minUnix.js +17 -8
- package/dist/unix/calculate/roundUnix.d.ts +24 -10
- package/dist/unix/calculate/roundUnix.js +67 -42
- package/dist/unix/calculate/setUnix.d.ts +14 -5
- package/dist/unix/calculate/setUnix.js +48 -29
- package/dist/unix/calculate/sortUnix.d.ts +6 -3
- package/dist/unix/calculate/sortUnix.js +19 -11
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +17 -12
- package/dist/unix/calculate/startOfQuarterForUnix.js +22 -30
- package/dist/unix/calculate/startOfUnix.d.ts +23 -18
- package/dist/unix/calculate/startOfUnix.js +37 -15
- package/dist/unix/calculate/subtractUnix.d.ts +10 -4
- package/dist/unix/calculate/subtractUnix.js +39 -26
- package/dist/unix/compare/areUnixEqual.d.ts +9 -5
- package/dist/unix/compare/areUnixEqual.js +17 -13
- package/dist/unix/compare/areUnixEqualBy.d.ts +14 -7
- package/dist/unix/compare/areUnixEqualBy.js +14 -7
- package/dist/unix/compare/isAfterUnix.d.ts +8 -4
- package/dist/unix/compare/isAfterUnix.js +16 -12
- package/dist/unix/compare/isBeforeUnix.d.ts +7 -4
- package/dist/unix/compare/isBeforeUnix.js +15 -12
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -9
- package/dist/unix/convert/convertUnixToPlainDate.js +34 -21
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +15 -9
- package/dist/unix/convert/convertUnixToPlainDateTime.js +32 -21
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +15 -9
- package/dist/unix/convert/convertUnixToPlainTime.js +32 -21
- package/dist/unix/convert/convertUnixToUtc.d.ts +15 -7
- package/dist/unix/convert/convertUnixToUtc.js +20 -15
- package/dist/unix/convert/convertUnixToZoned.d.ts +17 -10
- package/dist/unix/convert/convertUnixToZoned.js +31 -20
- package/dist/unix/format/formatCalendarUnix.d.ts +22 -19
- package/dist/unix/format/formatCalendarUnix.js +35 -81
- package/dist/unix/format/formatRelativeUnix.d.ts +25 -8
- package/dist/unix/format/formatRelativeUnix.js +46 -93
- package/dist/unix/format/formatUnix.d.ts +26 -4
- package/dist/unix/format/formatUnix.js +48 -34
- package/dist/unix/get/getUnixNow.d.ts +13 -7
- package/dist/unix/get/getUnixNow.js +27 -17
- package/dist/unix/get/getUnixNowUnit.d.ts +5 -2
- package/dist/unix/get/getUnixNowUnit.js +9 -35
- package/dist/unix/index.d.ts +1 -0
- package/dist/unix/index.js +2 -0
- package/dist/unix/interval/intervalAbutsUnix.d.ts +17 -12
- package/dist/unix/interval/intervalAbutsUnix.js +23 -41
- package/dist/unix/interval/intervalContainsUnix.d.ts +17 -7
- package/dist/unix/interval/intervalContainsUnix.js +25 -37
- package/dist/unix/interval/intervalCountUnix.d.ts +30 -13
- package/dist/unix/interval/intervalCountUnix.js +49 -23
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +19 -10
- package/dist/unix/interval/intervalDifferenceUnix.js +25 -43
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +24 -10
- package/dist/unix/interval/intervalDivideEquallyUnix.js +57 -36
- package/dist/unix/interval/intervalEngulfsUnix.d.ts +13 -7
- package/dist/unix/interval/intervalEngulfsUnix.js +18 -30
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -6
- package/dist/unix/interval/intervalFromDurationUnix.js +51 -39
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +18 -11
- package/dist/unix/interval/intervalIntersectionUnix.js +25 -46
- package/dist/unix/interval/intervalLengthUnix.d.ts +21 -9
- package/dist/unix/interval/intervalLengthUnix.js +41 -18
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +26 -12
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +67 -63
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +11 -6
- package/dist/unix/interval/intervalSplitAtUnix.js +41 -34
- package/dist/unix/interval/intervalUnionUnix.d.ts +15 -9
- package/dist/unix/interval/intervalUnionUnix.js +20 -42
- package/dist/unix/interval/intervalXorAllUnix.d.ts +8 -6
- package/dist/unix/interval/intervalXorAllUnix.js +21 -56
- package/dist/unix/interval/intervalXorUnix.d.ts +22 -11
- package/dist/unix/interval/intervalXorUnix.js +28 -56
- package/dist/unix/interval/intervalsOverlapUnix.d.ts +16 -10
- package/dist/unix/interval/intervalsOverlapUnix.js +21 -37
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +10 -4
- package/dist/unix/interval/mergeIntervalsUnix.js +25 -36
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +38 -8
- package/dist/unix/interval/splitIntervalByUnitUnix.js +72 -56
- package/dist/unix/interval/validate/isValidUnixInterval.d.ts +12 -6
- package/dist/unix/interval/validate/isValidUnixInterval.js +17 -16
- package/dist/unix/parse/index.d.ts +2 -0
- package/dist/unix/parse/index.js +2 -0
- package/dist/unix/parse/parseDateFromUnix.d.ts +10 -8
- package/dist/unix/parse/parseDateFromUnix.js +17 -29
- package/dist/unix/parse/parseDayFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseDayFromUnix.js +18 -5
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +8 -5
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +15 -28
- package/dist/unix/parse/parseHourFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseHourFromUnix.js +18 -5
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +16 -3
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +16 -3
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseMinuteFromUnix.js +18 -5
- package/dist/unix/parse/parseMonthFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseMonthFromUnix.js +18 -5
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +8 -5
- package/dist/unix/parse/parseNanosecondFromUnix.js +20 -6
- package/dist/unix/parse/parseSecondFromUnix.d.ts +5 -3
- package/dist/unix/parse/parseSecondFromUnix.js +17 -4
- package/dist/unix/parse/parseTimeFromUnix.d.ts +10 -8
- package/dist/unix/parse/parseTimeFromUnix.js +17 -29
- package/dist/unix/parse/parseUnitFromUnix.d.ts +18 -11
- package/dist/unix/parse/parseUnitFromUnix.js +57 -55
- package/dist/unix/parse/parseWeekFromUnix.d.ts +15 -7
- package/dist/unix/parse/parseWeekFromUnix.js +32 -30
- package/dist/unix/parse/parseYearFromUnix.d.ts +5 -3
- package/dist/unix/parse/parseYearFromUnix.js +17 -4
- package/dist/unix/validate/isValidUnixMilliseconds.d.ts +8 -5
- package/dist/unix/validate/isValidUnixMilliseconds.js +10 -9
- package/dist/unix/validate/isValidUnixRange.d.ts +13 -7
- package/dist/unix/validate/isValidUnixRange.js +29 -19
- package/dist/unix/validate/isValidUnixSeconds.d.ts +8 -5
- package/dist/unix/validate/isValidUnixSeconds.js +10 -9
- package/dist/unix/validate/isValidUnixUnit.d.ts +9 -7
- package/dist/unix/validate/isValidUnixUnit.js +6 -8
- package/dist/utc/calculate/addUtc.js +26 -12
- package/dist/utc/calculate/diffUtc.d.ts +22 -7
- package/dist/utc/calculate/diffUtc.js +75 -31
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +2 -2
- package/dist/utc/calculate/diffUtcAsDuration.js +10 -3
- package/dist/utc/calculate/endOfQuarterForUtc.d.ts +1 -1
- package/dist/utc/calculate/endOfQuarterForUtc.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +11 -4
- package/dist/utc/calculate/endOfUtc.js +22 -5
- package/dist/utc/calculate/isBetweenUtc.js +40 -24
- package/dist/utc/calculate/maxUtc.js +19 -12
- package/dist/utc/calculate/minUtc.js +19 -12
- package/dist/utc/calculate/roundUtc.d.ts +16 -2
- package/dist/utc/calculate/roundUtc.js +42 -31
- package/dist/utc/calculate/setUtc.d.ts +4 -8
- package/dist/utc/calculate/setUtc.js +25 -18
- package/dist/utc/calculate/sortUtc.js +17 -10
- package/dist/utc/calculate/startOfQuarterForUtc.d.ts +2 -0
- package/dist/utc/calculate/startOfQuarterForUtc.js +12 -1
- package/dist/utc/calculate/startOfUtc.d.ts +6 -4
- package/dist/utc/calculate/startOfUtc.js +17 -5
- package/dist/utc/calculate/subtractUtc.js +26 -12
- package/dist/utc/chop/chopUtc.d.ts +5 -2
- package/dist/utc/chop/chopUtc.js +8 -4
- package/dist/utc/compare/areUtcEqualBy.d.ts +10 -5
- package/dist/utc/compare/areUtcEqualBy.js +34 -11
- package/dist/utc/convert/convertUtcToPlainDate.js +22 -10
- package/dist/utc/convert/convertUtcToPlainDateTime.js +28 -16
- package/dist/utc/convert/convertUtcToPlainTime.js +22 -10
- package/dist/utc/convert/convertUtcToUnix.d.ts +12 -5
- package/dist/utc/convert/convertUtcToUnix.js +22 -13
- package/dist/utc/format/formatCalendarUtc.d.ts +11 -6
- package/dist/utc/format/formatCalendarUtc.js +32 -41
- package/dist/utc/format/formatHttp.d.ts +9 -3
- package/dist/utc/format/formatHttp.js +14 -12
- package/dist/utc/format/formatRelativeUtc.d.ts +18 -6
- package/dist/utc/format/formatRelativeUtc.js +43 -51
- package/dist/utc/format/formatUtc.d.ts +20 -3
- package/dist/utc/format/formatUtc.js +41 -12
- package/dist/utc/get/getUtcNowUnit.d.ts +3 -0
- package/dist/utc/get/getUtcNowUnit.js +11 -33
- package/dist/utc/index.d.ts +1 -0
- package/dist/utc/index.js +2 -0
- package/dist/utc/interval/intervalAbutsUtc.d.ts +10 -7
- package/dist/utc/interval/intervalAbutsUtc.js +18 -30
- package/dist/utc/interval/intervalContainsUtc.d.ts +19 -11
- package/dist/utc/interval/intervalContainsUtc.js +33 -34
- package/dist/utc/interval/intervalCountUtc.d.ts +3 -4
- package/dist/utc/interval/intervalCountUtc.js +12 -18
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +13 -5
- package/dist/utc/interval/intervalDifferenceUtc.js +25 -51
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +16 -3
- package/dist/utc/interval/intervalDivideEquallyUtc.js +54 -34
- package/dist/utc/interval/intervalEngulfsUtc.d.ts +17 -12
- package/dist/utc/interval/intervalEngulfsUtc.js +25 -26
- package/dist/utc/interval/intervalFromDurationUtc.js +5 -0
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +12 -6
- package/dist/utc/interval/intervalIntersectionUtc.js +24 -41
- package/dist/utc/interval/intervalLengthUtc.js +5 -7
- package/dist/utc/interval/intervalOverlappingDaysUtc.d.ts +7 -13
- package/dist/utc/interval/intervalOverlappingDaysUtc.js +25 -36
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +7 -2
- package/dist/utc/interval/intervalSplitAtUtc.js +39 -33
- package/dist/utc/interval/intervalUnionUtc.d.ts +15 -7
- package/dist/utc/interval/intervalUnionUtc.js +31 -42
- package/dist/utc/interval/intervalXorAllUtc.d.ts +7 -4
- package/dist/utc/interval/intervalXorAllUtc.js +30 -52
- package/dist/utc/interval/intervalXorUtc.d.ts +8 -6
- package/dist/utc/interval/intervalXorUtc.js +22 -56
- package/dist/utc/interval/intervalsOverlapUtc.d.ts +15 -9
- package/dist/utc/interval/intervalsOverlapUtc.js +23 -39
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +9 -2
- package/dist/utc/interval/mergeIntervalsUtc.js +23 -36
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +23 -2
- package/dist/utc/interval/splitIntervalByUnitUtc.js +65 -44
- package/dist/utc/interval/validate/isValidUtcInterval.d.ts +5 -0
- package/dist/utc/interval/validate/isValidUtcInterval.js +7 -6
- package/dist/utc/parse/parseDateFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseDateFromUtc.js +14 -9
- package/dist/utc/parse/parseDayFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseDayFromUtc.js +14 -8
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +24 -6
- package/dist/utc/parse/parseHourFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseHourFromUtc.js +14 -8
- package/dist/utc/parse/parseHttp.d.ts +39 -14
- package/dist/utc/parse/parseHttp.js +69 -28
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -2
- package/dist/utc/parse/parseMicrosecondFromUtc.js +18 -9
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseMillisecondFromUtc.js +16 -8
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseMinuteFromUtc.js +14 -8
- package/dist/utc/parse/parseMonthFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseMonthFromUtc.js +14 -8
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -2
- package/dist/utc/parse/parseNanosecondFromUtc.js +18 -9
- package/dist/utc/parse/parseSecondFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseSecondFromUtc.js +14 -8
- package/dist/utc/parse/parseTimeFromUtc.js +21 -10
- package/dist/utc/parse/parseUnitFromUtc.d.ts +18 -7
- package/dist/utc/parse/parseUnitFromUtc.js +58 -31
- package/dist/utc/parse/parseWeekFromUtc.d.ts +16 -3
- package/dist/utc/parse/parseWeekFromUtc.js +38 -10
- package/dist/utc/parse/parseYearFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseYearFromUtc.js +14 -8
- package/dist/utc/validate/isValidUtc.d.ts +8 -1
- package/dist/utc/validate/isValidUtc.js +12 -3
- package/dist/utc/validate/isValidUtcRange.d.ts +3 -2
- package/dist/utc/validate/isValidUtcRange.js +30 -19
- package/dist/zoned/calculate/addZoned.d.ts +40 -27
- package/dist/zoned/calculate/addZoned.js +71 -56
- package/dist/zoned/calculate/addZonedBusinessDays.d.ts +2 -0
- package/dist/zoned/calculate/addZonedBusinessDays.js +5 -2
- package/dist/zoned/calculate/clampZoned.js +4 -3
- package/dist/zoned/calculate/closestZonedTo.d.ts +6 -6
- package/dist/zoned/calculate/closestZonedTo.js +35 -26
- package/dist/zoned/calculate/cycleZoned.d.ts +10 -7
- package/dist/zoned/calculate/cycleZoned.js +19 -11
- package/dist/zoned/calculate/diffZoned.d.ts +39 -17
- package/dist/zoned/calculate/diffZoned.js +90 -45
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +19 -9
- package/dist/zoned/calculate/diffZonedAsDuration.js +32 -15
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +11 -11
- package/dist/zoned/calculate/endOfQuarterForZoned.js +32 -31
- package/dist/zoned/calculate/endOfZoned.d.ts +21 -14
- package/dist/zoned/calculate/endOfZoned.js +25 -111
- package/dist/zoned/calculate/getHoursInZonedDay.d.ts +8 -1
- package/dist/zoned/calculate/getHoursInZonedDay.js +10 -14
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +8 -4
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +9 -6
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +20 -26
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +40 -44
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +16 -24
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +36 -42
- package/dist/zoned/calculate/getQuarterForZoned.js +2 -2
- package/dist/zoned/calculate/maxZoned.js +20 -12
- package/dist/zoned/calculate/minZoned.d.ts +1 -1
- package/dist/zoned/calculate/minZoned.js +21 -13
- package/dist/zoned/calculate/roundZoned.d.ts +18 -4
- package/dist/zoned/calculate/roundZoned.js +58 -33
- package/dist/zoned/calculate/setZoned.d.ts +9 -3
- package/dist/zoned/calculate/setZoned.js +39 -18
- package/dist/zoned/calculate/sortZoned.js +18 -10
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +4 -7
- package/dist/zoned/calculate/startOfQuarterForZoned.js +23 -17
- package/dist/zoned/calculate/startOfZoned.d.ts +17 -13
- package/dist/zoned/calculate/startOfZoned.js +21 -103
- package/dist/zoned/calculate/subtractZoned.d.ts +36 -24
- package/dist/zoned/calculate/subtractZoned.js +66 -50
- package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +2 -0
- package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -2
- package/dist/zoned/chop/chopZonedDate.js +2 -2
- package/dist/zoned/chop/chopZonedDateTime.js +2 -2
- package/dist/zoned/chop/chopZonedMilliseconds.js +2 -2
- package/dist/zoned/chop/chopZonedSeconds.js +2 -2
- package/dist/zoned/chop/chopZonedTime.js +2 -2
- package/dist/zoned/chop/chopZonedTimezone.js +2 -2
- package/dist/zoned/compare/areZonedEqual.js +3 -2
- package/dist/zoned/compare/areZonedEqualBy.d.ts +15 -2
- package/dist/zoned/compare/areZonedEqualBy.js +45 -12
- package/dist/zoned/compare/isAfterZoned.js +3 -2
- package/dist/zoned/compare/isBeforeZoned.d.ts +1 -1
- package/dist/zoned/compare/isBeforeZoned.js +4 -3
- package/dist/zoned/compare/isBetweenZoned.js +46 -29
- package/dist/zoned/compare/isInDaylightSaving.js +4 -4
- package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -4
- package/dist/zoned/compare/isZonedBusinessDay.js +9 -6
- package/dist/zoned/compare/isZonedFuture.js +2 -1
- package/dist/zoned/compare/isZonedPast.js +2 -1
- package/dist/zoned/compare/isZonedRelativeDay.js +2 -1
- package/dist/zoned/compare/isZonedThisUnit.d.ts +12 -4
- package/dist/zoned/compare/isZonedThisUnit.js +37 -16
- package/dist/zoned/compare/isZonedWeekend.d.ts +8 -4
- package/dist/zoned/compare/isZonedWeekend.js +9 -6
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +10 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +34 -16
- package/dist/zoned/convert/convertZonedToCalendar.d.ts +26 -38
- package/dist/zoned/convert/convertZonedToCalendar.js +33 -48
- package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +6 -0
- package/dist/zoned/convert/convertZonedToPlainDateTime.js +8 -2
- package/dist/zoned/convert/convertZonedToUnix.d.ts +12 -6
- package/dist/zoned/convert/convertZonedToUnix.js +23 -16
- package/dist/zoned/convert/convertZonedToUtc.js +2 -2
- package/dist/zoned/convert/convertZonedToZoned.js +2 -2
- package/dist/zoned/format/formatCalendarZoned.d.ts +7 -3
- package/dist/zoned/format/formatCalendarZoned.js +37 -39
- package/dist/zoned/format/formatRelativeZoned.d.ts +15 -6
- package/dist/zoned/format/formatRelativeZoned.js +54 -54
- package/dist/zoned/format/formatRfc2822.d.ts +14 -1
- package/dist/zoned/format/formatRfc2822.js +27 -13
- package/dist/zoned/format/formatRfc3339.d.ts +14 -1
- package/dist/zoned/format/formatRfc3339.js +29 -3
- package/dist/zoned/format/formatTimeZoneName.d.ts +3 -2
- package/dist/zoned/format/formatTimeZoneName.js +28 -18
- package/dist/zoned/format/formatZonedDateTime.d.ts +25 -5
- package/dist/zoned/format/formatZonedDateTime.js +40 -9
- package/dist/zoned/format/formatZonedRange.d.ts +24 -6
- package/dist/zoned/format/formatZonedRange.js +61 -28
- package/dist/zoned/format/formatZonedToParts.d.ts +29 -6
- package/dist/zoned/format/formatZonedToParts.js +42 -13
- package/dist/zoned/get/getDstTransitions.d.ts +6 -1
- package/dist/zoned/get/getDstTransitions.js +17 -15
- package/dist/zoned/get/getTimeZoneOffset.d.ts +11 -1
- package/dist/zoned/get/getTimeZoneOffset.js +19 -2
- package/dist/zoned/get/getZonedNow.js +20 -9
- package/dist/zoned/get/getZonedNowUnit.d.ts +8 -4
- package/dist/zoned/get/getZonedNowUnit.js +15 -31
- package/dist/zoned/index.js +1 -1
- package/dist/zoned/interval/intervalAbutsZoned.d.ts +18 -11
- package/dist/zoned/interval/intervalAbutsZoned.js +24 -25
- package/dist/zoned/interval/intervalContainsZoned.d.ts +16 -7
- package/dist/zoned/interval/intervalContainsZoned.js +22 -14
- package/dist/zoned/interval/intervalCountZoned.d.ts +19 -11
- package/dist/zoned/interval/intervalCountZoned.js +32 -27
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +13 -7
- package/dist/zoned/interval/intervalDifferenceZoned.js +24 -36
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +18 -9
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +67 -46
- package/dist/zoned/interval/intervalEngulfsZoned.d.ts +10 -5
- package/dist/zoned/interval/intervalEngulfsZoned.js +16 -10
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +25 -11
- package/dist/zoned/interval/intervalFromDurationZoned.js +61 -44
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +12 -6
- package/dist/zoned/interval/intervalIntersectionZoned.js +24 -18
- package/dist/zoned/interval/intervalLengthZoned.d.ts +15 -6
- package/dist/zoned/interval/intervalLengthZoned.js +23 -9
- package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +28 -17
- package/dist/zoned/interval/intervalOverlappingDaysZoned.js +46 -34
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +6 -3
- package/dist/zoned/interval/intervalSplitAtZoned.js +52 -42
- package/dist/zoned/interval/intervalUnionZoned.d.ts +14 -8
- package/dist/zoned/interval/intervalUnionZoned.js +25 -20
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -7
- package/dist/zoned/interval/intervalXorAllZoned.js +42 -73
- package/dist/zoned/interval/intervalXorZoned.d.ts +20 -12
- package/dist/zoned/interval/intervalXorZoned.js +34 -64
- package/dist/zoned/interval/intervalsOverlapZoned.d.ts +15 -7
- package/dist/zoned/interval/intervalsOverlapZoned.js +21 -12
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +10 -3
- package/dist/zoned/interval/mergeIntervalsZoned.js +44 -41
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +28 -5
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +72 -39
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +13 -10
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +13 -10
- package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +7 -5
- package/dist/zoned/interval/validate/isValidZonedInterval.js +12 -16
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +17 -1
- package/dist/zoned/map/mapZonedDatesInRange.js +62 -26
- package/dist/zoned/map/mapZonedHoursInDay.d.ts +10 -13
- package/dist/zoned/map/mapZonedHoursInDay.js +13 -21
- package/dist/zoned/parse/getZonedOffset.js +2 -2
- package/dist/zoned/parse/getZonedOffsetAs.d.ts +4 -2
- package/dist/zoned/parse/getZonedOffsetAs.js +10 -5
- package/dist/zoned/parse/parseDateFromZoned.js +2 -2
- package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
- package/dist/zoned/parse/parseDayFromZoned.js +2 -2
- package/dist/zoned/parse/parseDayOfWeekFromZoned.js +2 -2
- package/dist/zoned/parse/parseHourFromZoned.js +2 -2
- package/dist/zoned/parse/parseMicrosecondFromZoned.d.ts +2 -1
- package/dist/zoned/parse/parseMicrosecondFromZoned.js +4 -3
- package/dist/zoned/parse/parseMillisecondFromZoned.js +2 -2
- package/dist/zoned/parse/parseMinuteFromZoned.js +2 -2
- package/dist/zoned/parse/parseMonthFromZoned.js +2 -2
- package/dist/zoned/parse/parseNanosecondFromZoned.d.ts +2 -1
- package/dist/zoned/parse/parseNanosecondFromZoned.js +4 -3
- package/dist/zoned/parse/parseRfc2822.d.ts +32 -12
- package/dist/zoned/parse/parseRfc2822.js +47 -45
- package/dist/zoned/parse/parseRfc3339.d.ts +6 -0
- package/dist/zoned/parse/parseRfc3339.js +6 -0
- package/dist/zoned/parse/parseSecondFromZoned.js +2 -2
- package/dist/zoned/parse/parseTimeFromZoned.js +2 -2
- package/dist/zoned/parse/parseTimeZoneFromZoned.js +2 -2
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +14 -5
- package/dist/zoned/parse/parseUnitFromZoned.js +59 -33
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +13 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +34 -10
- package/dist/zoned/parse/parseYearFromZoned.js +2 -2
- package/dist/zoned/validate/hasDaylightSaving.js +3 -3
- package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +31 -16
- package/dist/zoned/validate/isValidCalendarZonedDateTime.js +31 -16
- package/dist/zoned/validate/isValidTimeZone.d.ts +15 -2
- package/dist/zoned/validate/isValidTimeZone.js +17 -4
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +14 -7
- package/dist/zoned/validate/isValidZonedDateTime.js +20 -12
- package/dist/zoned/validate/isValidZonedRange.d.ts +9 -2
- package/dist/zoned/validate/isValidZonedRange.js +44 -16
- package/package.json +510 -34
- package/skills/gmt-arithmetic/SKILL.md +197 -16
- package/skills/gmt-basics/SKILL.md +61 -14
- package/skills/gmt-integration/SKILL.md +54 -8
- package/skills/gmt-timezone/SKILL.md +208 -24
- package/dist/internal/advanceBusinessDays.d.ts +0 -2
- package/dist/internal/advanceBusinessDays.js +0 -15
- package/dist/internal/ethiopicFamilyCalendar.d.ts +0 -47
- package/dist/internal/ethiopicFamilyCalendar.js +0 -136
- package/dist/internal/getLocaleMinimalDaysInFirstWeek.d.ts +0 -20
- package/dist/internal/getLocaleMinimalDaysInFirstWeek.js +0 -31
- package/dist/internal/resolveUnixTimeZone.d.ts +0 -20
- package/dist/internal/resolveUnixTimeZone.js +0 -30
- package/dist/unix/calculate/startOrEndOfUnix.d.ts +0 -27
- package/dist/unix/calculate/startOrEndOfUnix.js +0 -140
- package/dist/unix/interval/resolveUnixIntervalPair.d.ts +0 -7
- package/dist/unix/interval/resolveUnixIntervalPair.js +0 -36
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import type { RoundingOptions } from "../types/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* `start.until(end, { largestUnit, ...rounding })` for two PlainDates in the same calendar.
|
|
5
|
+
*
|
|
6
|
+
* - Without rounding options the difference goes through the Temporal compat layer's
|
|
7
|
+
* `calendarDateUntil`, which is the polyfill's own `until` for `iso8601` and the TC39
|
|
8
|
+
* `NonISODateUntil` answer for other calendars (CORE-6 D1, D6, D7 and the corrected calendars).
|
|
9
|
+
* - With `smallestUnit`, `roundingIncrement` or `roundingMode`, a calendar whose compat is needed
|
|
10
|
+
* goes through `plainDateUntilWithRounding` (TC39 `DifferenceTemporalPlainDate` in the plain
|
|
11
|
+
* context, `GetUTCEpochNanoseconds`); every other calendar is the polyfill's own `until`.
|
|
12
|
+
*
|
|
13
|
+
* @param start PlainDate the difference starts from
|
|
14
|
+
* @param end PlainDate in the same calendar
|
|
15
|
+
* @param largestUnit a date unit, singular or plural
|
|
16
|
+
* @param options optional DifferenceOptions rounding controls
|
|
17
|
+
* @returns the difference as a Temporal.Duration; throws RangeError on invalid input
|
|
18
|
+
*
|
|
19
|
+
* @example plainDateUntil(Temporal.PlainDate.from("2024-01-31"), Temporal.PlainDate.from("2024-03-01"), "months").toString() // "P1M1D"
|
|
20
|
+
*/
|
|
21
|
+
export declare function plainDateUntil(start: Temporal.PlainDate, end: Temporal.PlainDate, largestUnit: string, options?: RoundingOptions<Temporal.DateUnit>): Temporal.Duration;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { calendarDateUntil, isCalendarArithmeticCompatNeeded, } from "./temporalCompat/index.js";
|
|
3
|
+
import { plainDateUntilWithRounding } from "./zonedWallClockDifference.js";
|
|
4
|
+
/** Plural date units to Temporal's singular spelling; anything else passes through unchanged. */
|
|
5
|
+
function singularDateUnit(unit) {
|
|
6
|
+
return (unit.endsWith("s") ? unit.slice(0, -1) : unit);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* `start.until(end, { largestUnit, ...rounding })` for two PlainDates in the same calendar.
|
|
10
|
+
*
|
|
11
|
+
* - Without rounding options the difference goes through the Temporal compat layer's
|
|
12
|
+
* `calendarDateUntil`, which is the polyfill's own `until` for `iso8601` and the TC39
|
|
13
|
+
* `NonISODateUntil` answer for other calendars (CORE-6 D1, D6, D7 and the corrected calendars).
|
|
14
|
+
* - With `smallestUnit`, `roundingIncrement` or `roundingMode`, a calendar whose compat is needed
|
|
15
|
+
* goes through `plainDateUntilWithRounding` (TC39 `DifferenceTemporalPlainDate` in the plain
|
|
16
|
+
* context, `GetUTCEpochNanoseconds`); every other calendar is the polyfill's own `until`.
|
|
17
|
+
*
|
|
18
|
+
* @param start PlainDate the difference starts from
|
|
19
|
+
* @param end PlainDate in the same calendar
|
|
20
|
+
* @param largestUnit a date unit, singular or plural
|
|
21
|
+
* @param options optional DifferenceOptions rounding controls
|
|
22
|
+
* @returns the difference as a Temporal.Duration; throws RangeError on invalid input
|
|
23
|
+
*
|
|
24
|
+
* @example plainDateUntil(Temporal.PlainDate.from("2024-01-31"), Temporal.PlainDate.from("2024-03-01"), "months").toString() // "P1M1D"
|
|
25
|
+
*/
|
|
26
|
+
export function plainDateUntil(start, end, largestUnit, options) {
|
|
27
|
+
if (options?.smallestUnit === undefined &&
|
|
28
|
+
options?.roundingIncrement === undefined &&
|
|
29
|
+
options?.roundingMode === undefined) {
|
|
30
|
+
return Temporal.Duration.from(calendarDateUntil(start, end, singularDateUnit(largestUnit)));
|
|
31
|
+
}
|
|
32
|
+
const untilOptions = {
|
|
33
|
+
largestUnit: largestUnit,
|
|
34
|
+
smallestUnit: options.smallestUnit,
|
|
35
|
+
roundingIncrement: options.roundingIncrement,
|
|
36
|
+
roundingMode: options.roundingMode,
|
|
37
|
+
};
|
|
38
|
+
// No D11 term here. The nudge window can only miss its target when the target sits strictly
|
|
39
|
+
// between the window bounds by a sub-day amount, which is why every D11 case carries a time
|
|
40
|
+
// component. Two PlainDates have none, so the target always lands on a date the window already
|
|
41
|
+
// reaches and the defect is unreachable through this function — measured over ~1.96M rows
|
|
42
|
+
// against the raw polyfill, in both directions, with zero divergence (CORE-8 review, #253).
|
|
43
|
+
if (start.calendarId === end.calendarId &&
|
|
44
|
+
isCalendarArithmeticCompatNeeded(start.calendarId)) {
|
|
45
|
+
return plainDateUntilWithRounding(start, end, untilOptions);
|
|
46
|
+
}
|
|
47
|
+
return start.until(end, untilOptions);
|
|
48
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
type Options = Intl.DateTimeFormatOptions;
|
|
2
|
+
/**
|
|
3
|
+
* Map a `timeStyle` to the one a plain value may use.
|
|
4
|
+
*
|
|
5
|
+
* - CLDR's `long` and `full` time formats are the ones carrying a
|
|
6
|
+
* `timeZoneName`. AdjustDateTimeStyleFormat removes that field and asks the
|
|
7
|
+
* format matcher for a format with the remaining fields. Which pattern the
|
|
8
|
+
* best-fit matcher picks is implementation-defined; GMT uses the locale's
|
|
9
|
+
* own `medium` time format, which has exactly the same fields (hour, minute,
|
|
10
|
+
* second, day period) and no zone. Checked against ICU 78 for 85
|
|
11
|
+
* languages, alone and combined with `dateStyle: "full"`.
|
|
12
|
+
*
|
|
13
|
+
* @param timeStyle the caller's `timeStyle`
|
|
14
|
+
* @returns `"medium"` for `"long"`/`"full"`, otherwise the input
|
|
15
|
+
*/
|
|
16
|
+
export declare function plainTimeStyle<T extends Options["timeStyle"]>(timeStyle: T): T | "medium";
|
|
17
|
+
/**
|
|
18
|
+
* Resolve caller options into runtime `Intl.DateTimeFormat` options that
|
|
19
|
+
* format a PlainDate: date fields only, never a time or zone field.
|
|
20
|
+
*
|
|
21
|
+
* - Returns `null` where Temporal throws a TypeError: `timeStyle` without
|
|
22
|
+
* `dateStyle` ([[TemporalPlainDateFormat]] is null), or only non-date
|
|
23
|
+
* fields (GetDateTimeFormat returns null).
|
|
24
|
+
* - Validation of the options themselves (invalid values, styles mixed with
|
|
25
|
+
* fields) is left to the caller constructing a formatter with `options`.
|
|
26
|
+
*
|
|
27
|
+
* @param options caller's `Intl.DateTimeFormatOptions`
|
|
28
|
+
* @returns runtime options anchored at UTC, or `null` when no format exists
|
|
29
|
+
*/
|
|
30
|
+
export declare function plainDateFormatOptions(options: Options): Options | null;
|
|
31
|
+
/**
|
|
32
|
+
* Resolve caller options into runtime `Intl.DateTimeFormat` options that
|
|
33
|
+
* format a PlainTime: time fields only, never a date, era or zone field.
|
|
34
|
+
*
|
|
35
|
+
* - Returns `null` where Temporal throws a TypeError: a `dateStyle`
|
|
36
|
+
* (CreateDateTimeFormat with required ~time~), or only non-time fields
|
|
37
|
+
* (GetDateTimeFormat returns null).
|
|
38
|
+
* - `era` and `timeZoneName` are not inherited (GetDateTimeFormat ~relevant~),
|
|
39
|
+
* so with no time field hour, minute and second default to `"numeric"`.
|
|
40
|
+
* - A `long`/`full` `timeStyle` is mapped through {@link plainTimeStyle}.
|
|
41
|
+
*
|
|
42
|
+
* @param options caller's `Intl.DateTimeFormatOptions`
|
|
43
|
+
* @returns runtime options anchored at UTC, or `null` when no format exists
|
|
44
|
+
*/
|
|
45
|
+
export declare function plainTimeFormatOptions(options: Options): Options | null;
|
|
46
|
+
/**
|
|
47
|
+
* Resolve caller options into runtime `Intl.DateTimeFormat` options that
|
|
48
|
+
* format a PlainDateTime: date and time fields, never a zone field.
|
|
49
|
+
*
|
|
50
|
+
* - `timeZoneName` is not inherited (GetDateTimeFormat ~relevant~), and a
|
|
51
|
+
* `long`/`full` `timeStyle` is mapped through {@link plainTimeStyle}.
|
|
52
|
+
* - With no date or time field and no style, year, month, day, hour, minute
|
|
53
|
+
* and second default to `"numeric"` (defaults ~all~).
|
|
54
|
+
*
|
|
55
|
+
* @param options caller's `Intl.DateTimeFormatOptions`
|
|
56
|
+
* @returns runtime options anchored at UTC
|
|
57
|
+
*/
|
|
58
|
+
export declare function plainDateTimeFormatOptions(options: Options): Options;
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
// Option resolution for formatting a zoneless Temporal value (PlainDate,
|
|
2
|
+
// PlainDateTime, PlainTime) through the runtime's `Intl.DateTimeFormat`, which only
|
|
3
|
+
// formats instants. The rules are the Temporal proposal's ECMA-402
|
|
4
|
+
// amendments (CreateDateTimeFormat, GetDateTimeFormat with inherit
|
|
5
|
+
// ~relevant~, AdjustDateTimeStyleFormat); the formatter is then anchored at
|
|
6
|
+
// UTC, which is an implementation detail and must never surface as a field.
|
|
7
|
+
// GetDateTimeFormat requiredOptions for ~date~ and ~time~.
|
|
8
|
+
const DATE_FIELDS = ["weekday", "year", "month", "day"];
|
|
9
|
+
const TIME_FIELDS = [
|
|
10
|
+
"dayPeriod",
|
|
11
|
+
"hour",
|
|
12
|
+
"minute",
|
|
13
|
+
"second",
|
|
14
|
+
"fractionalSecondDigits",
|
|
15
|
+
];
|
|
16
|
+
// Options that configure the DateTimeFormat object itself rather than the
|
|
17
|
+
// selected format record, so they carry over unchanged. `timeZone` is left
|
|
18
|
+
// out: a plain value is always formatted at the UTC anchor.
|
|
19
|
+
const FORMATTER_OPTIONS = [
|
|
20
|
+
"localeMatcher",
|
|
21
|
+
"calendar",
|
|
22
|
+
"numberingSystem",
|
|
23
|
+
"hour12",
|
|
24
|
+
"hourCycle",
|
|
25
|
+
"formatMatcher",
|
|
26
|
+
];
|
|
27
|
+
function formatterOptions(options) {
|
|
28
|
+
const out = { timeZone: "UTC" };
|
|
29
|
+
for (const key of FORMATTER_OPTIONS) {
|
|
30
|
+
if (options[key] !== undefined)
|
|
31
|
+
out[key] = options[key];
|
|
32
|
+
}
|
|
33
|
+
return out;
|
|
34
|
+
}
|
|
35
|
+
function pickFields(options, fields) {
|
|
36
|
+
const out = {};
|
|
37
|
+
for (const key of fields) {
|
|
38
|
+
if (options[key] !== undefined)
|
|
39
|
+
out[key] = options[key];
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Map a `timeStyle` to the one a plain value may use.
|
|
45
|
+
*
|
|
46
|
+
* - CLDR's `long` and `full` time formats are the ones carrying a
|
|
47
|
+
* `timeZoneName`. AdjustDateTimeStyleFormat removes that field and asks the
|
|
48
|
+
* format matcher for a format with the remaining fields. Which pattern the
|
|
49
|
+
* best-fit matcher picks is implementation-defined; GMT uses the locale's
|
|
50
|
+
* own `medium` time format, which has exactly the same fields (hour, minute,
|
|
51
|
+
* second, day period) and no zone. Checked against ICU 78 for 85
|
|
52
|
+
* languages, alone and combined with `dateStyle: "full"`.
|
|
53
|
+
*
|
|
54
|
+
* @param timeStyle the caller's `timeStyle`
|
|
55
|
+
* @returns `"medium"` for `"long"`/`"full"`, otherwise the input
|
|
56
|
+
*/
|
|
57
|
+
export function plainTimeStyle(timeStyle) {
|
|
58
|
+
return timeStyle === "long" || timeStyle === "full" ? "medium" : timeStyle;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Resolve caller options into runtime `Intl.DateTimeFormat` options that
|
|
62
|
+
* format a PlainDate: date fields only, never a time or zone field.
|
|
63
|
+
*
|
|
64
|
+
* - Returns `null` where Temporal throws a TypeError: `timeStyle` without
|
|
65
|
+
* `dateStyle` ([[TemporalPlainDateFormat]] is null), or only non-date
|
|
66
|
+
* fields (GetDateTimeFormat returns null).
|
|
67
|
+
* - Validation of the options themselves (invalid values, styles mixed with
|
|
68
|
+
* fields) is left to the caller constructing a formatter with `options`.
|
|
69
|
+
*
|
|
70
|
+
* @param options caller's `Intl.DateTimeFormatOptions`
|
|
71
|
+
* @returns runtime options anchored at UTC, or `null` when no format exists
|
|
72
|
+
*/
|
|
73
|
+
export function plainDateFormatOptions(options) {
|
|
74
|
+
const base = formatterOptions(options);
|
|
75
|
+
if (options.dateStyle !== undefined || options.timeStyle !== undefined) {
|
|
76
|
+
if (options.dateStyle === undefined)
|
|
77
|
+
return null;
|
|
78
|
+
return { ...base, dateStyle: options.dateStyle };
|
|
79
|
+
}
|
|
80
|
+
const dateFields = pickFields(options, DATE_FIELDS);
|
|
81
|
+
const anyPresent = [...DATE_FIELDS, ...TIME_FIELDS].some((key) => options[key] !== undefined);
|
|
82
|
+
const era = options.era === undefined ? {} : { era: options.era };
|
|
83
|
+
if (Object.keys(dateFields).length > 0) {
|
|
84
|
+
return { ...base, ...era, ...dateFields };
|
|
85
|
+
}
|
|
86
|
+
if (anyPresent)
|
|
87
|
+
return null;
|
|
88
|
+
return {
|
|
89
|
+
...base,
|
|
90
|
+
...era,
|
|
91
|
+
year: "numeric",
|
|
92
|
+
month: "numeric",
|
|
93
|
+
day: "numeric",
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Resolve caller options into runtime `Intl.DateTimeFormat` options that
|
|
98
|
+
* format a PlainTime: time fields only, never a date, era or zone field.
|
|
99
|
+
*
|
|
100
|
+
* - Returns `null` where Temporal throws a TypeError: a `dateStyle`
|
|
101
|
+
* (CreateDateTimeFormat with required ~time~), or only non-time fields
|
|
102
|
+
* (GetDateTimeFormat returns null).
|
|
103
|
+
* - `era` and `timeZoneName` are not inherited (GetDateTimeFormat ~relevant~),
|
|
104
|
+
* so with no time field hour, minute and second default to `"numeric"`.
|
|
105
|
+
* - A `long`/`full` `timeStyle` is mapped through {@link plainTimeStyle}.
|
|
106
|
+
*
|
|
107
|
+
* @param options caller's `Intl.DateTimeFormatOptions`
|
|
108
|
+
* @returns runtime options anchored at UTC, or `null` when no format exists
|
|
109
|
+
*/
|
|
110
|
+
export function plainTimeFormatOptions(options) {
|
|
111
|
+
const base = formatterOptions(options);
|
|
112
|
+
if (options.dateStyle !== undefined)
|
|
113
|
+
return null;
|
|
114
|
+
if (options.timeStyle !== undefined) {
|
|
115
|
+
return { ...base, timeStyle: plainTimeStyle(options.timeStyle) };
|
|
116
|
+
}
|
|
117
|
+
const timeFields = pickFields(options, TIME_FIELDS);
|
|
118
|
+
if (Object.keys(timeFields).length > 0) {
|
|
119
|
+
return { ...base, ...timeFields };
|
|
120
|
+
}
|
|
121
|
+
if (DATE_FIELDS.some((key) => options[key] !== undefined))
|
|
122
|
+
return null;
|
|
123
|
+
return { ...base, hour: "numeric", minute: "numeric", second: "numeric" };
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Resolve caller options into runtime `Intl.DateTimeFormat` options that
|
|
127
|
+
* format a PlainDateTime: date and time fields, never a zone field.
|
|
128
|
+
*
|
|
129
|
+
* - `timeZoneName` is not inherited (GetDateTimeFormat ~relevant~), and a
|
|
130
|
+
* `long`/`full` `timeStyle` is mapped through {@link plainTimeStyle}.
|
|
131
|
+
* - With no date or time field and no style, year, month, day, hour, minute
|
|
132
|
+
* and second default to `"numeric"` (defaults ~all~).
|
|
133
|
+
*
|
|
134
|
+
* @param options caller's `Intl.DateTimeFormatOptions`
|
|
135
|
+
* @returns runtime options anchored at UTC
|
|
136
|
+
*/
|
|
137
|
+
export function plainDateTimeFormatOptions(options) {
|
|
138
|
+
const base = formatterOptions(options);
|
|
139
|
+
if (options.dateStyle !== undefined || options.timeStyle !== undefined) {
|
|
140
|
+
return {
|
|
141
|
+
...base,
|
|
142
|
+
...(options.dateStyle === undefined
|
|
143
|
+
? {}
|
|
144
|
+
: { dateStyle: options.dateStyle }),
|
|
145
|
+
...(options.timeStyle === undefined
|
|
146
|
+
? {}
|
|
147
|
+
: { timeStyle: plainTimeStyle(options.timeStyle) }),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
const fields = pickFields(options, [...DATE_FIELDS, ...TIME_FIELDS]);
|
|
151
|
+
const era = options.era === undefined ? {} : { era: options.era };
|
|
152
|
+
if (Object.keys(fields).length > 0) {
|
|
153
|
+
return { ...base, ...era, ...fields };
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
...base,
|
|
157
|
+
...era,
|
|
158
|
+
year: "numeric",
|
|
159
|
+
month: "numeric",
|
|
160
|
+
day: "numeric",
|
|
161
|
+
hour: "numeric",
|
|
162
|
+
minute: "numeric",
|
|
163
|
+
second: "numeric",
|
|
164
|
+
};
|
|
165
|
+
}
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Accepts singular ("day"), plural ("days"), and already-singular forms.
|
|
5
5
|
* - Returns the original string if it is not a recognized DateTimeUnit.
|
|
6
|
+
* - Returns a non-string input unchanged, so callers can pass raw option values and let their own
|
|
7
|
+
* validator reject them (Temporal §13.17 GetTemporalUnitValuedOption accepts both spellings).
|
|
6
8
|
* - Singular counterpart of `resolveDurationUnit`, which normalizes to plurals.
|
|
7
9
|
*
|
|
8
|
-
* @param unit raw unit
|
|
10
|
+
* @param unit raw unit value from caller input
|
|
9
11
|
* @returns normalized singular unit string, or the original if not recognized
|
|
10
12
|
*/
|
|
11
13
|
export declare function resolveDateTimeUnit(unit: string): string;
|
|
14
|
+
export declare function resolveDateTimeUnit(unit: unknown): unknown;
|
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
import { isValidDateTimeUnit } from "../plain/validate/
|
|
2
|
-
/**
|
|
3
|
-
* Normalize a date-time unit string to its singular form.
|
|
4
|
-
*
|
|
5
|
-
* - Accepts singular ("day"), plural ("days"), and already-singular forms.
|
|
6
|
-
* - Returns the original string if it is not a recognized DateTimeUnit.
|
|
7
|
-
* - Singular counterpart of `resolveDurationUnit`, which normalizes to plurals.
|
|
8
|
-
*
|
|
9
|
-
* @param unit raw unit string from caller input
|
|
10
|
-
* @returns normalized singular unit string, or the original if not recognized
|
|
11
|
-
*/
|
|
1
|
+
import { isValidDateTimeUnit } from "../plain/validate/isValidDateTimeUnit.js";
|
|
12
2
|
export function resolveDateTimeUnit(unit) {
|
|
13
|
-
if (isValidDateTimeUnit(unit)) {
|
|
3
|
+
if (typeof unit !== "string" || isValidDateTimeUnit(unit)) {
|
|
14
4
|
return unit;
|
|
15
5
|
}
|
|
16
6
|
if (unit.endsWith("s")) {
|
|
@@ -1,29 +1,35 @@
|
|
|
1
1
|
import type { DurationRelativeTo } from "../types/index.js";
|
|
2
2
|
/**
|
|
3
|
-
* Resolve a `DurationRelativeTo` value for `Temporal.Duration`'s `relativeTo` option
|
|
4
|
-
* a GMT calendar-annotated PlainDate string (`"5784-06-15[u-ca=hebrew]"`, as produced by
|
|
5
|
-
* `convertDateToCalendar`) into the `Temporal.PlainDate` it actually names before handing it to
|
|
6
|
-
* Temporal.
|
|
3
|
+
* Resolve a `DurationRelativeTo` value for `Temporal.Duration`'s `relativeTo` option.
|
|
7
4
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* `
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
5
|
+
* - Every string is ISO 8601 extended format before its first `[`: with a
|
|
6
|
+
* time zone annotation, the strict zoned shape (`zonedDateTimeBody`: `<date>T<time>`, then
|
|
7
|
+
* nothing, `Z` or `±HH:MM[:SS[.fraction]]`); otherwise GMT's strict date (`plainDate`) or
|
|
8
|
+
* date-time (`plainDateTime`). Basic format (`"20241003"`), a space or lower-case `t` separator,
|
|
9
|
+
* a lower-case `z`, an hour-only time or offset, a UTC offset without a time zone annotation
|
|
10
|
+
* and a zoned date without a time throw, although Temporal's `ParseTemporalRelativeToString`
|
|
11
|
+
* reads them.
|
|
12
|
+
* - A string with a `u-ca` annotation is read as Temporal's `ParseTemporalRelativeToString` reads
|
|
13
|
+
* it: with a time zone annotation it is a ZonedDateTime (`"2024-02-24T00:00:00-05:00[America/New_York][u-ca=hebrew]"`,
|
|
14
|
+
* `parseCalendarZonedValue`), otherwise a PlainDate (`"2024-02-24[u-ca=hebrew]"`, or a date-time
|
|
15
|
+
* whose time Temporal drops, `parseCalendarDateValue`). Annotations follow Temporal's
|
|
16
|
+
* grammar: elective unknown ones are ignored, the first `u-ca` wins, and an unknown critical
|
|
17
|
+
* annotation, a critical duplicate calendar, a calendar before the zone and `;era=` throw. The
|
|
18
|
+
* calendar must be a `CalendarSystem`, and `"ethiopic"`/`"coptic"` compute in `"ethioaa"`,
|
|
19
|
+
* which polyfill 0.5.1 can read. The digits are ISO, so this is the date Temporal itself would
|
|
20
|
+
* read.
|
|
21
|
+
* - A leap second (second `60`) throws, in every spelling Temporal's grammar accepts — `T`, `t`
|
|
22
|
+
* or space separator, extended or basic digits, with or without a designator. Temporal's
|
|
23
|
+
* ParseISODateTime would otherwise clamp it to `:59`.
|
|
24
|
+
* - Every other `relativeTo` (a strict extended string without a calendar annotation, or a `PlainDate`/`PlainDateTime`/
|
|
25
|
+
* `ZonedDateTime` object or `-Like`) passes through unchanged.
|
|
15
26
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
27
|
+
* A PlainDate string resolves to a `Temporal.PlainDateTime` (midnight, same calendar) only because
|
|
28
|
+
* the polyfill's TypeScript declaration and GMT's `DurationRelativeTo` type list `PlainDateTime`,
|
|
29
|
+
* not `PlainDate`. Temporal's `GetTemporalRelativeToOption` converts a `PlainDateTime` with
|
|
30
|
+
* `CreateTemporalDate` and drops the time, so the result is identical.
|
|
19
31
|
*
|
|
20
|
-
*
|
|
21
|
-
* `
|
|
22
|
-
* produce the identical result either way) and `PlainDateTime` is the type Temporal's own
|
|
23
|
-
* `relativeTo` option signature actually accepts, unlike `PlainDate`.
|
|
24
|
-
*
|
|
25
|
-
* Throws if the calendar-annotated string is malformed. Callers already wrap the Temporal call
|
|
26
|
-
* consuming this in `try { ... } catch { return sentinel }` per GMT's contract, so this composes
|
|
27
|
-
* directly into that same block rather than needing its own try/catch.
|
|
32
|
+
* Throws on invalid input. Callers already wrap the Temporal call consuming this in
|
|
33
|
+
* `try { ... } catch { return sentinel }` per GMT's contract.
|
|
28
34
|
*/
|
|
29
35
|
export declare function resolveDurationRelativeTo(relativeTo: DurationRelativeTo | undefined): DurationRelativeTo | undefined;
|
|
@@ -1,35 +1,79 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { plainDate } from "../regex/date.js";
|
|
2
|
+
import { plainDateTime } from "../regex/date-time.js";
|
|
3
|
+
import { parseCalendarDateValue, temporalStringLeapSecond, } from "./calendarDateString.js";
|
|
4
|
+
import { parseCalendarZonedValue } from "./calendarZonedString.js";
|
|
5
|
+
import { hasZonedDateTimeShape, isoStringBody } from "./isoStringBody.js";
|
|
3
6
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* shape
|
|
7
|
+
* A calendar annotation in any spelling: critical flag or not, any letter case. An upper-case key
|
|
8
|
+
* is not Temporal syntax, so it is parsed here and throws rather than reaching Temporal later.
|
|
9
|
+
*/
|
|
10
|
+
const anyCalendarAnnotation = /\[!?u-ca=/i;
|
|
11
|
+
/**
|
|
12
|
+
* A time zone annotation: the first bracketed annotation has no `=` (RFC 9557 §4.1; Temporal's
|
|
13
|
+
* `TimeZoneAnnotation` precedes every other annotation). This only picks the branch; Temporal
|
|
14
|
+
* parses the string.
|
|
15
|
+
*/
|
|
16
|
+
const timeZoneAnnotation = /^[^[]*\[!?[^=\]]*\]/;
|
|
17
|
+
/**
|
|
18
|
+
* GMT's strict written shape for a `relativeTo` string: a string with a time zone annotation is
|
|
19
|
+
* zoned (Temporal's `ParseTemporalRelativeToString` branch) and must be `zonedDateTimeBody`; any
|
|
20
|
+
* other is a date or date-time.
|
|
21
|
+
*/
|
|
22
|
+
function hasRelativeToShape(value) {
|
|
23
|
+
if (timeZoneAnnotation.test(value)) {
|
|
24
|
+
return hasZonedDateTimeShape(value);
|
|
25
|
+
}
|
|
26
|
+
const body = isoStringBody(value);
|
|
27
|
+
return plainDate.test(body) || plainDateTime.test(body);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Resolve a `DurationRelativeTo` value for `Temporal.Duration`'s `relativeTo` option.
|
|
16
31
|
*
|
|
17
|
-
* Every
|
|
18
|
-
*
|
|
19
|
-
*
|
|
32
|
+
* - Every string is ISO 8601 extended format before its first `[`: with a
|
|
33
|
+
* time zone annotation, the strict zoned shape (`zonedDateTimeBody`: `<date>T<time>`, then
|
|
34
|
+
* nothing, `Z` or `±HH:MM[:SS[.fraction]]`); otherwise GMT's strict date (`plainDate`) or
|
|
35
|
+
* date-time (`plainDateTime`). Basic format (`"20241003"`), a space or lower-case `t` separator,
|
|
36
|
+
* a lower-case `z`, an hour-only time or offset, a UTC offset without a time zone annotation
|
|
37
|
+
* and a zoned date without a time throw, although Temporal's `ParseTemporalRelativeToString`
|
|
38
|
+
* reads them.
|
|
39
|
+
* - A string with a `u-ca` annotation is read as Temporal's `ParseTemporalRelativeToString` reads
|
|
40
|
+
* it: with a time zone annotation it is a ZonedDateTime (`"2024-02-24T00:00:00-05:00[America/New_York][u-ca=hebrew]"`,
|
|
41
|
+
* `parseCalendarZonedValue`), otherwise a PlainDate (`"2024-02-24[u-ca=hebrew]"`, or a date-time
|
|
42
|
+
* whose time Temporal drops, `parseCalendarDateValue`). Annotations follow Temporal's
|
|
43
|
+
* grammar: elective unknown ones are ignored, the first `u-ca` wins, and an unknown critical
|
|
44
|
+
* annotation, a critical duplicate calendar, a calendar before the zone and `;era=` throw. The
|
|
45
|
+
* calendar must be a `CalendarSystem`, and `"ethiopic"`/`"coptic"` compute in `"ethioaa"`,
|
|
46
|
+
* which polyfill 0.5.1 can read. The digits are ISO, so this is the date Temporal itself would
|
|
47
|
+
* read.
|
|
48
|
+
* - A leap second (second `60`) throws, in every spelling Temporal's grammar accepts — `T`, `t`
|
|
49
|
+
* or space separator, extended or basic digits, with or without a designator. Temporal's
|
|
50
|
+
* ParseISODateTime would otherwise clamp it to `:59`.
|
|
51
|
+
* - Every other `relativeTo` (a strict extended string without a calendar annotation, or a `PlainDate`/`PlainDateTime`/
|
|
52
|
+
* `ZonedDateTime` object or `-Like`) passes through unchanged.
|
|
20
53
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* `
|
|
54
|
+
* A PlainDate string resolves to a `Temporal.PlainDateTime` (midnight, same calendar) only because
|
|
55
|
+
* the polyfill's TypeScript declaration and GMT's `DurationRelativeTo` type list `PlainDateTime`,
|
|
56
|
+
* not `PlainDate`. Temporal's `GetTemporalRelativeToOption` converts a `PlainDateTime` with
|
|
57
|
+
* `CreateTemporalDate` and drops the time, so the result is identical.
|
|
25
58
|
*
|
|
26
|
-
* Throws
|
|
27
|
-
*
|
|
28
|
-
* directly into that same block rather than needing its own try/catch.
|
|
59
|
+
* Throws on invalid input. Callers already wrap the Temporal call consuming this in
|
|
60
|
+
* `try { ... } catch { return sentinel }` per GMT's contract.
|
|
29
61
|
*/
|
|
30
62
|
export function resolveDurationRelativeTo(relativeTo) {
|
|
31
|
-
if (typeof relativeTo !== "string"
|
|
63
|
+
if (typeof relativeTo !== "string") {
|
|
32
64
|
return relativeTo;
|
|
33
65
|
}
|
|
66
|
+
if (temporalStringLeapSecond.test(relativeTo)) {
|
|
67
|
+
throw new RangeError(`Leap seconds are not supported: ${relativeTo}`);
|
|
68
|
+
}
|
|
69
|
+
if (!hasRelativeToShape(relativeTo)) {
|
|
70
|
+
throw new RangeError(`Not an extended ISO 8601 date, date-time or zoned date-time: ${relativeTo}`);
|
|
71
|
+
}
|
|
72
|
+
if (!anyCalendarAnnotation.test(relativeTo)) {
|
|
73
|
+
return relativeTo;
|
|
74
|
+
}
|
|
75
|
+
if (timeZoneAnnotation.test(relativeTo)) {
|
|
76
|
+
return parseCalendarZonedValue(relativeTo);
|
|
77
|
+
}
|
|
34
78
|
return parseCalendarDateValue(relativeTo).toPlainDateTime();
|
|
35
79
|
}
|
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Accepts singular ("day"), plural ("days"), and already-plural forms.
|
|
5
5
|
* - Returns the original string if it is not a recognized DateTimeDurationUnit.
|
|
6
|
+
* - Returns a non-string input unchanged, so callers can pass raw option values and let their own
|
|
7
|
+
* validator reject them.
|
|
6
8
|
*
|
|
7
|
-
* @param unit raw unit
|
|
9
|
+
* @param unit raw unit value from caller input
|
|
8
10
|
* @returns normalized plural unit string, or the original if not recognized
|
|
9
11
|
*/
|
|
10
12
|
export declare function resolveDurationUnit(unit: string): string;
|
|
13
|
+
export declare function resolveDurationUnit(unit: unknown): unknown;
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
import { isValidDateTimeDurationUnit } from "../plain/validate/
|
|
2
|
-
/**
|
|
3
|
-
* Normalize a duration unit string to its plural form.
|
|
4
|
-
*
|
|
5
|
-
* - Accepts singular ("day"), plural ("days"), and already-plural forms.
|
|
6
|
-
* - Returns the original string if it is not a recognized DateTimeDurationUnit.
|
|
7
|
-
*
|
|
8
|
-
* @param unit raw unit string from caller input
|
|
9
|
-
* @returns normalized plural unit string, or the original if not recognized
|
|
10
|
-
*/
|
|
1
|
+
import { isValidDateTimeDurationUnit } from "../plain/validate/isValidDateTimeDurationUnit.js";
|
|
11
2
|
export function resolveDurationUnit(unit) {
|
|
12
|
-
if (isValidDateTimeDurationUnit(unit)) {
|
|
3
|
+
if (typeof unit !== "string" || isValidDateTimeDurationUnit(unit)) {
|
|
13
4
|
return unit;
|
|
14
5
|
}
|
|
15
6
|
if (unit.endsWith("s")) {
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A locale argument: one BCP 47 tag, or a preference list of tags (ECMA-402 `locales`).
|
|
3
|
+
*/
|
|
4
|
+
export type LocalesArgument = string | string[];
|
|
5
|
+
/**
|
|
6
|
+
* Resolve a `locale` argument to the single BCP 47 tag a locale-aware function reads.
|
|
7
|
+
*
|
|
8
|
+
* - Follows ECMA-402 CanonicalizeLocaleList: a string is a one-tag list, every tag is
|
|
9
|
+
* canonicalized (`"EN-us"` → `"en-US"`) and duplicates are dropped.
|
|
10
|
+
* - The first tag with available locale data wins (`Intl.DateTimeFormat.supportedLocalesOf`), as
|
|
11
|
+
* ECMA-402's locale negotiation picks; a list with no available tag keeps its first tag, exactly
|
|
12
|
+
* as that tag passed alone would be read.
|
|
13
|
+
* - `undefined` and an empty list resolve to the default locale.
|
|
14
|
+
* - A malformed tag anywhere in the list, a non-string element, or any other type is invalid and
|
|
15
|
+
* resolves to `null`, which callers map to their sentinel (ECMA-402 throws a RangeError/TypeError).
|
|
16
|
+
*
|
|
17
|
+
* @param locales raw locale argument from caller input
|
|
18
|
+
* @returns the resolved BCP 47 tag, or `null` when the argument is invalid
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveLocale(locales: unknown): string | null;
|
|
21
|
+
/**
|
|
22
|
+
* Resolve the `locale` argument of a function whose locale is required, to the single BCP 47 tag
|
|
23
|
+
* it reads, or `null` (the caller's sentinel).
|
|
24
|
+
*
|
|
25
|
+
* - An omitted locale (`undefined`) and an empty list both name no locale, so both are `null`.
|
|
26
|
+
* ECMA-402 would resolve an empty list to the host default locale; a required locale exists to
|
|
27
|
+
* keep the result independent of the host, so GMT treats `[]` as omitted (house rule).
|
|
28
|
+
* - Anything else resolves as `resolveLocale` does.
|
|
29
|
+
*
|
|
30
|
+
* @param locales raw locale argument from caller input
|
|
31
|
+
* @returns the resolved BCP 47 tag, or `null` when the argument is omitted, empty or invalid
|
|
32
|
+
*
|
|
33
|
+
* @example resolveRequiredLocale("EN-us") // "en-US"
|
|
34
|
+
* @example resolveRequiredLocale(undefined) // null
|
|
35
|
+
* @example resolveRequiredLocale([]) // null
|
|
36
|
+
*/
|
|
37
|
+
export declare function resolveRequiredLocale(locales: unknown): string | null;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a `locale` argument to the single BCP 47 tag a locale-aware function reads.
|
|
3
|
+
*
|
|
4
|
+
* - Follows ECMA-402 CanonicalizeLocaleList: a string is a one-tag list, every tag is
|
|
5
|
+
* canonicalized (`"EN-us"` → `"en-US"`) and duplicates are dropped.
|
|
6
|
+
* - The first tag with available locale data wins (`Intl.DateTimeFormat.supportedLocalesOf`), as
|
|
7
|
+
* ECMA-402's locale negotiation picks; a list with no available tag keeps its first tag, exactly
|
|
8
|
+
* as that tag passed alone would be read.
|
|
9
|
+
* - `undefined` and an empty list resolve to the default locale.
|
|
10
|
+
* - A malformed tag anywhere in the list, a non-string element, or any other type is invalid and
|
|
11
|
+
* resolves to `null`, which callers map to their sentinel (ECMA-402 throws a RangeError/TypeError).
|
|
12
|
+
*
|
|
13
|
+
* @param locales raw locale argument from caller input
|
|
14
|
+
* @returns the resolved BCP 47 tag, or `null` when the argument is invalid
|
|
15
|
+
*/
|
|
16
|
+
export function resolveLocale(locales) {
|
|
17
|
+
if (locales !== undefined &&
|
|
18
|
+
typeof locales !== "string" &&
|
|
19
|
+
!Array.isArray(locales)) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
const canonical = Intl.getCanonicalLocales(locales);
|
|
24
|
+
if (canonical.length === 0) {
|
|
25
|
+
return new Intl.DateTimeFormat().resolvedOptions().locale;
|
|
26
|
+
}
|
|
27
|
+
if (canonical.length === 1)
|
|
28
|
+
return canonical[0] ?? null;
|
|
29
|
+
return (Intl.DateTimeFormat.supportedLocalesOf(canonical)[0] ??
|
|
30
|
+
canonical[0] ??
|
|
31
|
+
null);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve the `locale` argument of a function whose locale is required, to the single BCP 47 tag
|
|
39
|
+
* it reads, or `null` (the caller's sentinel).
|
|
40
|
+
*
|
|
41
|
+
* - An omitted locale (`undefined`) and an empty list both name no locale, so both are `null`.
|
|
42
|
+
* ECMA-402 would resolve an empty list to the host default locale; a required locale exists to
|
|
43
|
+
* keep the result independent of the host, so GMT treats `[]` as omitted (house rule).
|
|
44
|
+
* - Anything else resolves as `resolveLocale` does.
|
|
45
|
+
*
|
|
46
|
+
* @param locales raw locale argument from caller input
|
|
47
|
+
* @returns the resolved BCP 47 tag, or `null` when the argument is omitted, empty or invalid
|
|
48
|
+
*
|
|
49
|
+
* @example resolveRequiredLocale("EN-us") // "en-US"
|
|
50
|
+
* @example resolveRequiredLocale(undefined) // null
|
|
51
|
+
* @example resolveRequiredLocale([]) // null
|
|
52
|
+
*/
|
|
53
|
+
export function resolveRequiredLocale(locales) {
|
|
54
|
+
if (locales === undefined)
|
|
55
|
+
return null;
|
|
56
|
+
if (Array.isArray(locales) && locales.length === 0)
|
|
57
|
+
return null;
|
|
58
|
+
return resolveLocale(locales);
|
|
59
|
+
}
|