@northguild/gmt 1.15.0 → 1.16.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 +852 -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 +5 -0
- package/dist/index.js +5 -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 +99 -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 +73 -0
- package/dist/instant/convert/toOffsetInstant.js +185 -0
- package/dist/instant/index.d.ts +2 -0
- package/dist/instant/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/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 +28 -9
- package/dist/internal/index.js +28 -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 +40 -0
- package/dist/internal/isoStringBody.js +85 -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/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 +1173 -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/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/index.d.ts +6 -0
- package/dist/types/index.js +5 -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 +475 -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 +141 -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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolveLocale } from "./resolveLocale.js";
|
|
1
2
|
import { getLocaleEraNames } from "../plain/locale/getLocaleEraNames.js";
|
|
2
3
|
import { getLocaleMeridiems } from "../plain/locale/getLocaleMeridiems.js";
|
|
3
4
|
import { getLocaleMonthNames } from "../plain/locale/getLocaleMonthNames.js";
|
|
@@ -367,14 +368,19 @@ export function parseValueWithPattern(value, pattern, locale, allowedFields) {
|
|
|
367
368
|
return null;
|
|
368
369
|
if (typeof pattern !== "string" || pattern.length === 0)
|
|
369
370
|
return null;
|
|
370
|
-
if (locale !== undefined && typeof locale !== "string")
|
|
371
|
-
return null;
|
|
372
371
|
// No `locale` is required to parse a pattern containing only numeric
|
|
373
372
|
// tokens, but a name-based token (MMM/MMMM/EEE/EEEE/a/GG/GGGG) needs
|
|
374
373
|
// *some* locale to resolve against — default to "en-US" rather than
|
|
375
374
|
// silently returning "" for every caller who didn't have another
|
|
376
|
-
// locale in mind.
|
|
377
|
-
|
|
375
|
+
// locale in mind. An empty preference list names no locale either, so
|
|
376
|
+
// it takes that same default: ECMA-402 ResolveLocale would answer `[]`
|
|
377
|
+
// with the *host* locale, which would make a decoder of a fixed
|
|
378
|
+
// producer format read differently on a French machine (house rule,
|
|
379
|
+
// ./resolveLocale.ts).
|
|
380
|
+
const omitted = locale === undefined || (Array.isArray(locale) && locale.length === 0);
|
|
381
|
+
const resolvedLocale = omitted ? "en-US" : resolveLocale(locale);
|
|
382
|
+
if (resolvedLocale === null)
|
|
383
|
+
return null;
|
|
378
384
|
const compiled = compilePattern(pattern, allowedFields, resolvedLocale);
|
|
379
385
|
if (compiled === null)
|
|
380
386
|
return null;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
/**
|
|
3
|
+
* `date.add(duration, { overflow })` for a PlainDate in any calendar.
|
|
4
|
+
*
|
|
5
|
+
* - `iso8601` is the polyfill's own `add`, untouched.
|
|
6
|
+
* - Other calendars go through the Temporal compat layer's `calendarDateAdd` (CORE-6: the polyfill's
|
|
7
|
+
* calendar add throws near the range limits and is wrong in the corrected calendar ranges). Time
|
|
8
|
+
* fields become whole days exactly as TC39 `ToDateDurationRecordWithoutTime` does: the time
|
|
9
|
+
* duration in nanoseconds, truncated toward zero to 24-hour days, added to `days`.
|
|
10
|
+
* - The duration is validated by `Temporal.Duration.from`, as `add` itself does.
|
|
11
|
+
*
|
|
12
|
+
* @param date PlainDate to add to
|
|
13
|
+
* @param duration a DurationLike (negate it to subtract)
|
|
14
|
+
* @param overflow "constrain" (default, as in Temporal) | "reject"
|
|
15
|
+
* @returns the resulting PlainDate in `date`'s calendar; throws on invalid input or out of range
|
|
16
|
+
*
|
|
17
|
+
* @example plainDateAdd(Temporal.PlainDate.from("2024-01-31"), { months: 1 }, "constrain").toString() // "2024-02-29"
|
|
18
|
+
* @example plainDateAdd(Temporal.PlainDate.from("2024-01-31"), { months: 1 }, "reject") // throws RangeError
|
|
19
|
+
*/
|
|
20
|
+
export declare function plainDateAdd(date: Temporal.PlainDate, duration: Temporal.Duration | Temporal.DurationLike, overflow?: "constrain" | "reject"): Temporal.PlainDate;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { calendarDateAdd } from "./temporalCompat/index.js";
|
|
3
|
+
const NANOSECONDS_PER_HOUR = 3600000000000n;
|
|
4
|
+
const NANOSECONDS_PER_MINUTE = 60000000000n;
|
|
5
|
+
const NANOSECONDS_PER_SECOND = 1000000000n;
|
|
6
|
+
const NANOSECONDS_PER_DAY = 86400000000000n;
|
|
7
|
+
/**
|
|
8
|
+
* `date.add(duration, { overflow })` for a PlainDate in any calendar.
|
|
9
|
+
*
|
|
10
|
+
* - `iso8601` is the polyfill's own `add`, untouched.
|
|
11
|
+
* - Other calendars go through the Temporal compat layer's `calendarDateAdd` (CORE-6: the polyfill's
|
|
12
|
+
* calendar add throws near the range limits and is wrong in the corrected calendar ranges). Time
|
|
13
|
+
* fields become whole days exactly as TC39 `ToDateDurationRecordWithoutTime` does: the time
|
|
14
|
+
* duration in nanoseconds, truncated toward zero to 24-hour days, added to `days`.
|
|
15
|
+
* - The duration is validated by `Temporal.Duration.from`, as `add` itself does.
|
|
16
|
+
*
|
|
17
|
+
* @param date PlainDate to add to
|
|
18
|
+
* @param duration a DurationLike (negate it to subtract)
|
|
19
|
+
* @param overflow "constrain" (default, as in Temporal) | "reject"
|
|
20
|
+
* @returns the resulting PlainDate in `date`'s calendar; throws on invalid input or out of range
|
|
21
|
+
*
|
|
22
|
+
* @example plainDateAdd(Temporal.PlainDate.from("2024-01-31"), { months: 1 }, "constrain").toString() // "2024-02-29"
|
|
23
|
+
* @example plainDateAdd(Temporal.PlainDate.from("2024-01-31"), { months: 1 }, "reject") // throws RangeError
|
|
24
|
+
*/
|
|
25
|
+
export function plainDateAdd(date, duration, overflow = "constrain") {
|
|
26
|
+
if (date.calendarId === "iso8601") {
|
|
27
|
+
return date.add(duration, { overflow });
|
|
28
|
+
}
|
|
29
|
+
const { years, months, weeks, days, hours, minutes, seconds, milliseconds, microseconds, nanoseconds, } = Temporal.Duration.from(duration);
|
|
30
|
+
const timeNanoseconds = BigInt(hours) * NANOSECONDS_PER_HOUR +
|
|
31
|
+
BigInt(minutes) * NANOSECONDS_PER_MINUTE +
|
|
32
|
+
BigInt(seconds) * NANOSECONDS_PER_SECOND +
|
|
33
|
+
BigInt(milliseconds) * 1000000n +
|
|
34
|
+
BigInt(microseconds) * 1000n +
|
|
35
|
+
BigInt(nanoseconds);
|
|
36
|
+
return calendarDateAdd(date, {
|
|
37
|
+
years,
|
|
38
|
+
months,
|
|
39
|
+
weeks,
|
|
40
|
+
days: days + Number(timeNanoseconds / NANOSECONDS_PER_DAY),
|
|
41
|
+
}, overflow);
|
|
42
|
+
}
|
|
@@ -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")) {
|