@northguild/gmt 1.14.2 → 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 +887 -277
- 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 +6 -0
- package/dist/index.js +6 -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/internal/startOrEndOfUtc.d.ts +27 -0
- package/dist/{utc/calculate → internal}/startOrEndOfUtc.js +45 -24
- 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 +23 -10
- 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/index.d.ts +2 -1
- package/dist/plain/calculate/index.js +2 -1
- 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/calculate/{weekOfYear.d.ts → weekOfYearForDate.d.ts} +0 -14
- package/dist/plain/calculate/weekOfYearForDate.js +28 -0
- package/dist/plain/calculate/weekOfYearForDateTime.d.ts +14 -0
- package/dist/plain/calculate/{weekOfYear.js → weekOfYearForDateTime.js} +1 -27
- 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 +14 -8
- package/dist/plain/format/formatCalendar.js +47 -25
- package/dist/plain/format/formatDate.d.ts +22 -4
- package/dist/plain/format/formatDate.js +37 -5
- package/dist/plain/format/formatDateRange.d.ts +18 -4
- package/dist/plain/format/formatDateRange.js +29 -5
- package/dist/plain/format/formatDateTime.d.ts +23 -4
- package/dist/plain/format/formatDateTime.js +31 -5
- package/dist/plain/format/formatDateTimeRange.d.ts +21 -4
- package/dist/plain/format/formatDateTimeRange.js +29 -5
- package/dist/plain/format/formatDateTimeToParts.d.ts +33 -6
- package/dist/plain/format/formatDateTimeToParts.js +40 -14
- package/dist/plain/format/formatDateToParts.d.ts +25 -3
- package/dist/plain/format/formatDateToParts.js +36 -11
- package/dist/plain/format/formatRelativeDate.d.ts +10 -17
- package/dist/plain/format/formatRelativeDate.js +39 -24
- package/dist/plain/format/formatRelativeDateTime.d.ts +18 -20
- package/dist/plain/format/formatRelativeDateTime.js +35 -33
- package/dist/plain/format/formatRelativeTime.d.ts +11 -18
- 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 +19 -4
- package/dist/plain/format/formatTime.js +32 -5
- package/dist/plain/get/getNowUnit.d.ts +5 -3
- 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 +30 -0
- package/dist/regex/calendar-date.js +31 -11
- package/dist/regex/calendar-zoned-date-time.d.ts +29 -0
- package/dist/regex/calendar-zoned-date-time.js +30 -41
- package/dist/regex/date-time.d.ts +28 -0
- package/dist/regex/date-time.js +29 -2
- package/dist/regex/date.d.ts +58 -0
- package/dist/regex/date.js +60 -3
- package/dist/regex/http-date.d.ts +19 -0
- package/dist/regex/http-date.js +19 -6
- package/dist/regex/index.d.ts +3 -0
- package/dist/regex/index.js +4 -0
- package/dist/regex/leap-second.d.ts +45 -0
- package/dist/regex/leap-second.js +46 -2
- package/dist/regex/nanoseconds.d.ts +20 -0
- package/dist/regex/nanoseconds.js +20 -0
- package/dist/regex/rfc-2822.d.ts +26 -0
- package/dist/regex/rfc-2822.js +26 -8
- package/dist/regex/rfc-3339.d.ts +26 -0
- package/dist/regex/rfc-3339.js +27 -7
- package/dist/regex/sql-date-time.d.ts +33 -0
- package/dist/regex/sql-date-time.js +34 -7
- package/dist/regex/time-zone-like.d.ts +30 -0
- package/dist/regex/time-zone-like.js +31 -1
- package/dist/regex/time.d.ts +73 -0
- package/dist/regex/time.js +73 -3
- package/dist/regex/unix.d.ts +29 -0
- package/dist/regex/unix.js +29 -0
- package/dist/regex/utc-date-time.d.ts +30 -0
- package/dist/regex/utc-date-time.js +31 -2
- 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-options.d.ts +11 -0
- package/dist/types/calendar-options.js +0 -0
- package/dist/types/calendar-system.d.ts +9 -1
- package/dist/types/datetime-format-options.d.ts +6 -0
- package/dist/types/datetime-format-options.js +0 -0
- package/dist/types/duration-unit.d.ts +5 -0
- package/dist/types/duration-unit.js +0 -0
- package/dist/types/fiscal-calendar.d.ts +22 -0
- package/dist/types/fiscal-calendar.js +0 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.js +16 -0
- package/dist/types/interval.d.ts +18 -0
- package/dist/types/interval.js +0 -0
- package/dist/types/now-unit.d.ts +5 -0
- package/dist/types/now-unit.js +0 -0
- package/dist/types/relative-date-time-unit.d.ts +6 -0
- package/dist/types/relative-date-time-unit.js +0 -0
- package/dist/types/relative-date-unit.d.ts +5 -0
- package/dist/types/relative-date-unit.js +0 -0
- package/dist/types/relative-time-options.d.ts +18 -0
- package/dist/types/relative-time-options.js +0 -0
- package/dist/types/relative-time-unit.d.ts +5 -0
- package/dist/types/relative-time-unit.js +0 -0
- package/dist/types/relative-unit.d.ts +6 -0
- package/dist/types/relative-unit.js +0 -0
- package/dist/types/roll-convention.d.ts +32 -0
- package/dist/types/roll-convention.js +0 -0
- package/dist/types/unix-now-unit.d.ts +5 -0
- package/dist/types/unix-now-unit.js +0 -0
- package/dist/types/utc-now-unit.d.ts +5 -0
- package/dist/types/utc-now-unit.js +0 -0
- 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 +35 -6
- package/dist/unix/format/formatCalendarUnix.js +35 -81
- package/dist/unix/format/formatRelativeUnix.d.ts +26 -16
- package/dist/unix/format/formatRelativeUnix.js +46 -93
- package/dist/unix/format/formatUnix.d.ts +43 -2
- package/dist/unix/format/formatUnix.js +65 -32
- package/dist/unix/get/getUnixNow.d.ts +13 -7
- package/dist/unix/get/getUnixNow.js +27 -17
- package/dist/unix/get/getUnixNowUnit.d.ts +7 -5
- 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 +40 -9
- 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 +22 -5
- 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 +13 -8
- 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 +20 -18
- package/dist/utc/format/formatRelativeUtc.js +43 -51
- package/dist/utc/format/formatUtc.d.ts +51 -1
- package/dist/utc/format/formatUtc.js +57 -11
- package/dist/utc/get/getUtcNowUnit.d.ts +5 -3
- 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 +39 -5
- 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 +16 -14
- 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 +18 -2
- package/dist/zoned/format/formatTimeZoneName.js +28 -18
- package/dist/zoned/format/formatZonedDateTime.d.ts +26 -5
- package/dist/zoned/format/formatZonedDateTime.js +40 -9
- package/dist/zoned/format/formatZonedRange.d.ts +25 -6
- package/dist/zoned/format/formatZonedRange.js +61 -28
- package/dist/zoned/format/formatZonedToParts.d.ts +30 -6
- package/dist/zoned/format/formatZonedToParts.js +42 -13
- package/dist/zoned/get/getDstTransitions.d.ts +24 -3
- 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 +30 -2
- 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 +14 -8
- package/dist/zoned/interval/intervalDifferenceZoned.js +25 -37
- 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 -10
- package/dist/zoned/interval/intervalXorZoned.js +34 -62
- 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 +15 -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 +36 -3
- 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 +487 -28
- package/skills/gmt-arithmetic/SKILL.md +264 -0
- package/skills/gmt-basics/SKILL.md +127 -0
- package/skills/gmt-integration/SKILL.md +119 -0
- package/skills/gmt-timezone/SKILL.md +197 -0
- 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 -9
- package/dist/unix/calculate/startOrEndOfUnix.js +0 -122
- package/dist/unix/interval/resolveUnixIntervalPair.d.ts +0 -7
- package/dist/unix/interval/resolveUnixIntervalPair.js +0 -36
- package/dist/utc/calculate/startOrEndOfUtc.d.ts +0 -6
- package/skills/_artifacts/domain_map.yaml +0 -547
- package/skills/_artifacts/skill_spec.md +0 -67
- package/skills/_artifacts/skill_tree.yaml +0 -278
- package/skills/api-expansion-workflow/SKILL.md +0 -52
- package/skills/app-integration/SKILL.md +0 -38
- package/skills/calculate-dates/SKILL.md +0 -432
- package/skills/compare-dates/SKILL.md +0 -412
- package/skills/convert-types/SKILL.md +0 -305
- package/skills/durations/SKILL.md +0 -418
- package/skills/format-date-time/SKILL.md +0 -486
- package/skills/format-date-time/references/format-api.md +0 -34
- package/skills/format-relative-time/SKILL.md +0 -223
- package/skills/get-current/SKILL.md +0 -229
- package/skills/interval-ops/SKILL.md +0 -432
- package/skills/issue-creation/SKILL.md +0 -118
- package/skills/lint-package-suggestion/SKILL.md +0 -37
- package/skills/new-method-implementation/SKILL.md +0 -71
- package/skills/parse-date-time/SKILL.md +0 -349
- package/skills/pr-contribution/SKILL.md +0 -180
- package/skills/unit-test-generation/SKILL.md +0 -56
- package/skills/validate-dates/SKILL.md +0 -438
- package/skills/zoned-date-ops/SKILL.md +0 -422
- package/skills/zoned-date-ops/references/timezones.md +0 -13
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { calendarFieldsOf, hasReadCorrection } from "./calendarFields.js";
|
|
2
|
+
import { isDefectPresent } from "./capabilities.js";
|
|
3
|
+
import { hebrewArithmeticModel } from "./hebrewArithmetic.js";
|
|
4
|
+
import { indianArithmeticModel } from "./indianArithmetic.js";
|
|
5
|
+
import { isLargeMonthSpan, isLargeYearSpan } from "./largeMonthSpan.js";
|
|
6
|
+
import { isNonIsoDateUntilResult, nonIsoDateAdd, nonIsoDateUntil, } from "./nonIsoArithmetic.js";
|
|
7
|
+
import { readArithmeticModel } from "./readArithmeticModel.js";
|
|
8
|
+
const ISO_CALENDAR = "iso8601";
|
|
9
|
+
const DATE_UNITS = new Set([
|
|
10
|
+
"year",
|
|
11
|
+
"month",
|
|
12
|
+
"week",
|
|
13
|
+
"day",
|
|
14
|
+
]);
|
|
15
|
+
/**
|
|
16
|
+
* The owned Hebrew and Indian arithmetic answers whenever an operation's years come within this
|
|
17
|
+
* many years of the corrected range, so that no step of it (a Surpasses candidate overshoots by at
|
|
18
|
+
* most one unit) reaches the runtime's wrong reads or arithmetic.
|
|
19
|
+
*/
|
|
20
|
+
const CORRECTED_RANGE_MARGIN_YEARS = 2;
|
|
21
|
+
const ownedModels = {
|
|
22
|
+
hebrew: hebrewArithmeticModel,
|
|
23
|
+
indian: indianArithmeticModel,
|
|
24
|
+
};
|
|
25
|
+
function fieldsOf(duration) {
|
|
26
|
+
return {
|
|
27
|
+
years: duration.years,
|
|
28
|
+
months: duration.months,
|
|
29
|
+
weeks: duration.weeks,
|
|
30
|
+
days: duration.days,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* D2: while buddhist reads are corrected, buddhist arithmetic is ISO arithmetic. The Intl
|
|
35
|
+
* era/monthCode proposal makes buddhist month numbers, month codes and days identical to ISO 8601
|
|
36
|
+
* with year = ISO year + 543, so NonISODateAdd/Until give exactly the ISO results.
|
|
37
|
+
*/
|
|
38
|
+
function usesIsoArithmetic(calendarId) {
|
|
39
|
+
return (calendarId === "buddhist" &&
|
|
40
|
+
hasReadCorrection(calendarId, Number.NEGATIVE_INFINITY));
|
|
41
|
+
}
|
|
42
|
+
/** The owned model for `calendarId` when its read correction is active in this runtime. */
|
|
43
|
+
function activeOwnedModel(calendarId) {
|
|
44
|
+
const model = ownedModels[calendarId];
|
|
45
|
+
return model !== undefined &&
|
|
46
|
+
hasReadCorrection(calendarId, Number.NEGATIVE_INFINITY)
|
|
47
|
+
? model
|
|
48
|
+
: undefined;
|
|
49
|
+
}
|
|
50
|
+
function reachesCorrectedRange(calendarId, years) {
|
|
51
|
+
return hasReadCorrection(calendarId, Math.min(...years) - CORRECTED_RANGE_MARGIN_YEARS);
|
|
52
|
+
}
|
|
53
|
+
function untilWorkaroundNeeded(calendarId) {
|
|
54
|
+
return (isDefectPresent("D1", calendarId) ||
|
|
55
|
+
isDefectPresent("D10", calendarId) ||
|
|
56
|
+
isDefectPresent("D6", calendarId) ||
|
|
57
|
+
isDefectPresent("D7", calendarId));
|
|
58
|
+
}
|
|
59
|
+
function verifiedPolyfillUntil(one, two, largestUnit) {
|
|
60
|
+
const calendarId = one.calendarId;
|
|
61
|
+
if (largestUnit === "month" &&
|
|
62
|
+
isLargeYearSpan(calendarFieldsOf(one, calendarId).year, calendarFieldsOf(two, calendarId).year)) {
|
|
63
|
+
// D9: the polyfill counts months one at a time; the spec loops count whole years instead.
|
|
64
|
+
return nonIsoDateUntil(readArithmeticModel(calendarId), one, two, largestUnit);
|
|
65
|
+
}
|
|
66
|
+
let result;
|
|
67
|
+
try {
|
|
68
|
+
result = fieldsOf(one.until(two, { largestUnit }));
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
// Any throw but a RangeError is a polyfill defect, not a spec answer (an assertion from a
|
|
72
|
+
// #3292 port without the tc39/proposal-temporal#3329 fix): the spec algorithm answers.
|
|
73
|
+
if (error instanceof RangeError && !untilWorkaroundNeeded(calendarId)) {
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
return nonIsoDateUntil(readArithmeticModel(calendarId), one, two, largestUnit);
|
|
77
|
+
}
|
|
78
|
+
if (!isDefectPresent("D6", calendarId) &&
|
|
79
|
+
!isDefectPresent("D7", calendarId)) {
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
const model = readArithmeticModel(calendarId);
|
|
83
|
+
return isNonIsoDateUntilResult(model, one, two, largestUnit, result)
|
|
84
|
+
? result
|
|
85
|
+
: nonIsoDateUntil(model, one, two, largestUnit);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* `one.until(two, { largestUnit })`'s date fields, made correct where `@js-temporal/polyfill` is not
|
|
89
|
+
* (TC39 `CalendarDateUntil`, Intl era/monthCode proposal `NonISODateUntil`). Both dates must carry
|
|
90
|
+
* the same calendar.
|
|
91
|
+
*
|
|
92
|
+
* - `iso8601` is the polyfill's own `until`, untouched.
|
|
93
|
+
* - `"day"` / `"week"` are ISO `until`: days do not depend on the calendar.
|
|
94
|
+
* - D6/D7: the polyfill answers first; while its probe fails, the answer is kept only when it is
|
|
95
|
+
* exactly the spec's (`isNonIsoDateUntilResult`), otherwise the spec loops recompute it.
|
|
96
|
+
* - D1: a polyfill RangeError near a range limit is answered by the spec loops.
|
|
97
|
+
* - D2/D3/D4/D5: in a corrected range the spec loops run over ISO (buddhist) or the owned Hebrew
|
|
98
|
+
* and Indian arithmetic.
|
|
99
|
+
* - D9: months counted across `LARGE_MONTH_SPAN` months or more run the spec loops, whose month
|
|
100
|
+
* counts are bounded.
|
|
101
|
+
*/
|
|
102
|
+
export function calendarDateUntil(one, two, largestUnit) {
|
|
103
|
+
const calendarId = one.calendarId;
|
|
104
|
+
if (calendarId === ISO_CALENDAR) {
|
|
105
|
+
return fieldsOf(one.until(two, { largestUnit }));
|
|
106
|
+
}
|
|
107
|
+
if (!DATE_UNITS.has(largestUnit)) {
|
|
108
|
+
throw new RangeError(`${String(largestUnit)} is not a date unit`);
|
|
109
|
+
}
|
|
110
|
+
if (largestUnit === "week" ||
|
|
111
|
+
largestUnit === "day" ||
|
|
112
|
+
usesIsoArithmetic(calendarId)) {
|
|
113
|
+
return fieldsOf(one
|
|
114
|
+
.withCalendar(ISO_CALENDAR)
|
|
115
|
+
.until(two.withCalendar(ISO_CALENDAR), { largestUnit }));
|
|
116
|
+
}
|
|
117
|
+
const owned = activeOwnedModel(calendarId);
|
|
118
|
+
if (owned !== undefined &&
|
|
119
|
+
reachesCorrectedRange(calendarId, [
|
|
120
|
+
owned.fields(one).year,
|
|
121
|
+
owned.fields(two).year,
|
|
122
|
+
])) {
|
|
123
|
+
return nonIsoDateUntil(owned, one, two, largestUnit);
|
|
124
|
+
}
|
|
125
|
+
return verifiedPolyfillUntil(one, two, largestUnit);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The owned (Hebrew, Indian) model's sum, when `date`'s calendar has an active owned model and
|
|
129
|
+
* either end reaches the corrected range; otherwise undefined, and the polyfill answers.
|
|
130
|
+
*/
|
|
131
|
+
function ownedDateAdd(date, fields, overflow) {
|
|
132
|
+
const calendarId = date.calendarId;
|
|
133
|
+
const owned = activeOwnedModel(calendarId);
|
|
134
|
+
if (owned === undefined) {
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
// Owned arithmetic is the spec's for every year, so its RangeErrors stand; its result is kept
|
|
138
|
+
// when either end reaches the corrected range, and the polyfill answers elsewhere.
|
|
139
|
+
const result = nonIsoDateAdd(owned, date, fields, overflow);
|
|
140
|
+
return reachesCorrectedRange(calendarId, [
|
|
141
|
+
owned.fields(date).year,
|
|
142
|
+
owned.fields(result).year,
|
|
143
|
+
])
|
|
144
|
+
? result.withCalendar(calendarId)
|
|
145
|
+
: undefined;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* `date.add(duration, { overflow })`, made correct where `@js-temporal/polyfill` is not (TC39
|
|
149
|
+
* `CalendarDateAdd`, Intl era/monthCode proposal `NonISODateAdd`).
|
|
150
|
+
*
|
|
151
|
+
* - `iso8601` is the polyfill's own `add`, untouched.
|
|
152
|
+
* - Weeks and days alone are ISO day arithmetic.
|
|
153
|
+
* - D1: a polyfill RangeError near a range limit is answered by the spec algorithm.
|
|
154
|
+
* - D2/D3/D4/D5: in a corrected range the spec algorithm runs over ISO (buddhist) or the owned
|
|
155
|
+
* Hebrew and Indian arithmetic.
|
|
156
|
+
* - D9: `LARGE_MONTH_SPAN` months or more run the spec algorithm, whose month jumps are bounded.
|
|
157
|
+
*
|
|
158
|
+
* @returns a PlainDate in `date`'s calendar; throws RangeError out of range or on `reject`
|
|
159
|
+
*/
|
|
160
|
+
export function calendarDateAdd(date, duration, overflow) {
|
|
161
|
+
const calendarId = date.calendarId;
|
|
162
|
+
if (calendarId === ISO_CALENDAR) {
|
|
163
|
+
return date.add(duration, { overflow });
|
|
164
|
+
}
|
|
165
|
+
const fields = {
|
|
166
|
+
years: duration.years ?? 0,
|
|
167
|
+
months: duration.months ?? 0,
|
|
168
|
+
weeks: duration.weeks ?? 0,
|
|
169
|
+
days: duration.days ?? 0,
|
|
170
|
+
};
|
|
171
|
+
if ((fields.years === 0 && fields.months === 0) ||
|
|
172
|
+
usesIsoArithmetic(calendarId)) {
|
|
173
|
+
return date
|
|
174
|
+
.withCalendar(ISO_CALENDAR)
|
|
175
|
+
.add(fields, { overflow })
|
|
176
|
+
.withCalendar(calendarId);
|
|
177
|
+
}
|
|
178
|
+
const ownedResult = ownedDateAdd(date, fields, overflow);
|
|
179
|
+
if (ownedResult !== undefined) {
|
|
180
|
+
return ownedResult;
|
|
181
|
+
}
|
|
182
|
+
if (isLargeMonthSpan(fields.months)) {
|
|
183
|
+
// D9: the polyfill adds months one at a time; the spec algorithm jumps whole years instead.
|
|
184
|
+
return nonIsoDateAdd(readArithmeticModel(calendarId), date, fields, overflow).withCalendar(calendarId);
|
|
185
|
+
}
|
|
186
|
+
try {
|
|
187
|
+
return date.add(fields, { overflow });
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
// As in verifiedPolyfillUntil: a throw that is not a RangeError (tc39/proposal-temporal#3329)
|
|
191
|
+
// always takes the spec algorithm, which throws the RangeError itself for an out-of-range sum.
|
|
192
|
+
if (error instanceof RangeError &&
|
|
193
|
+
!isDefectPresent("D1", calendarId) &&
|
|
194
|
+
!isDefectPresent("D10", calendarId)) {
|
|
195
|
+
throw error;
|
|
196
|
+
}
|
|
197
|
+
return nonIsoDateAdd(readArithmeticModel(calendarId), date, fields, overflow).withCalendar(calendarId);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { type FieldKey } from "./fieldSearch.js";
|
|
3
|
+
export type CalendarDateFields = FieldKey | {
|
|
4
|
+
era: string;
|
|
5
|
+
eraYear: number;
|
|
6
|
+
month: number;
|
|
7
|
+
day: number;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* `Temporal.PlainDate.from({ ...fields, calendar: calendarId }, { overflow: "reject" })`, made
|
|
11
|
+
* correct where `@js-temporal/polyfill` is not.
|
|
12
|
+
*
|
|
13
|
+
* The polyfill answers first, and its result is kept whenever its fields read back unchanged
|
|
14
|
+
* through `calendarFieldsOf`. Only when it throws or reads back differently, for a defect the
|
|
15
|
+
* installed runtime has (probed once per calendar) and inside that defect's range, does the
|
|
16
|
+
* read-only field search answer instead:
|
|
17
|
+
*
|
|
18
|
+
* - **D1:** the polyfill's `calendarToIsoDate` probes outside the legacy `Date` range within about
|
|
19
|
+
* a year of both limits and throws `Invalid ISO date` (hebrew, buddhist, islamic-*, persian,
|
|
20
|
+
* indian). Retired by a js-temporal release porting proposal-temporal `a41eb67` + `af0cb4b`.
|
|
21
|
+
* - **D2, D3, D4, D5:** the runtime's own reads are wrong (buddhist before 1582-10-15, Hebrew years
|
|
22
|
+
* <= 0, Indian before ISO year 1), so its fields → ISO is too; the search runs over the
|
|
23
|
+
* corrected reads. Retired with the read corrections in `calendarFields.ts`.
|
|
24
|
+
* - **D8:** era codes that only the pre-proposal polyfill accepts (`japanese-inverse`) are
|
|
25
|
+
* rejected, as a fixed runtime rejects them.
|
|
26
|
+
* - **D10:** a polyfill porting proposal-temporal #3292 without the tc39/proposal-temporal#3329 fix
|
|
27
|
+
* skips a 5- or 6-day month 13 (ethioaa, and so coptic and ethiopic) in far years. While its
|
|
28
|
+
* probe fails, every year searches. Any throw other than a `RangeError` also searches, whatever
|
|
29
|
+
* the probes say.
|
|
30
|
+
*
|
|
31
|
+
* Era input is never searched: only "japanese" uses eras here, and it has no D1 window.
|
|
32
|
+
*
|
|
33
|
+
* @returns a PlainDate calendared as `calendarId`; throws RangeError for fields that do not name
|
|
34
|
+
* an in-range date
|
|
35
|
+
*/
|
|
36
|
+
export declare function calendarDateFromFields(calendarId: string, fields: CalendarDateFields, overflow: "reject"): Temporal.PlainDate;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { calendarFieldsOf, hasReadCorrection } from "./calendarFields.js";
|
|
3
|
+
import { isDefectPresent } from "./capabilities.js";
|
|
4
|
+
import { isoForFields } from "./fieldSearch.js";
|
|
5
|
+
/** Era codes polyfill 0.5.1 accepts that the Intl era/monthCode proposal does not (D8). */
|
|
6
|
+
const PRE_PROPOSAL_ERAS = new Set(["japanese-inverse"]);
|
|
7
|
+
const edgeYearsCache = new Map();
|
|
8
|
+
function readYear(iso, calendarId) {
|
|
9
|
+
try {
|
|
10
|
+
return calendarFieldsOf(Temporal.PlainDate.from(iso), calendarId).year;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** The calendar years of the TC39 PlainDate limits in `calendarId`. */
|
|
17
|
+
function edgeYears(calendarId) {
|
|
18
|
+
let years = edgeYearsCache.get(calendarId);
|
|
19
|
+
if (years === undefined) {
|
|
20
|
+
years = {
|
|
21
|
+
min: readYear("-271821-04-19", calendarId),
|
|
22
|
+
max: readYear("+275760-09-13", calendarId),
|
|
23
|
+
};
|
|
24
|
+
edgeYearsCache.set(calendarId, years);
|
|
25
|
+
}
|
|
26
|
+
return years;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* D1 per-call guard: the polyfill's fields → ISO bisection overshoots only within about a year of
|
|
30
|
+
* a range limit (at most 357 days in the scans), so only years next to an edge year need the search.
|
|
31
|
+
*/
|
|
32
|
+
function isNearEdgeYear(calendarId, year) {
|
|
33
|
+
const { min, max } = edgeYears(calendarId);
|
|
34
|
+
return ((min !== undefined && year <= min + 1) ||
|
|
35
|
+
(max !== undefined && year >= max - 1));
|
|
36
|
+
}
|
|
37
|
+
function needsFieldSearch(calendarId, year) {
|
|
38
|
+
return (hasReadCorrection(calendarId, year) ||
|
|
39
|
+
(isDefectPresent("D1", calendarId) && isNearEdgeYear(calendarId, year)) ||
|
|
40
|
+
isDefectPresent("D10", calendarId));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* True when the polyfill failed with anything but the `RangeError` Temporal specifies for fields
|
|
44
|
+
* that name no date: an internal assertion (tc39/proposal-temporal#3329, a port of #3292 without
|
|
45
|
+
* its fix) or a `TypeError` from a broken read. The field search then answers, as the spec would,
|
|
46
|
+
* rather than the public wrapper turning the throw into its sentinel.
|
|
47
|
+
*/
|
|
48
|
+
function isPolyfillDefectError(error) {
|
|
49
|
+
return error !== undefined && !(error instanceof RangeError);
|
|
50
|
+
}
|
|
51
|
+
function readBackMatches(date, calendarId, fields) {
|
|
52
|
+
if ("era" in fields) {
|
|
53
|
+
// An era year outside its era's span resolves arithmetically (e.g. heisei 40 is 2028), so
|
|
54
|
+
// it legitimately reads back under another era. With overflow "reject", month and day are
|
|
55
|
+
// already validated by the polyfill.
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
const read = calendarFieldsOf(date, calendarId);
|
|
59
|
+
return (read.year === fields.year &&
|
|
60
|
+
read.month === fields.month &&
|
|
61
|
+
read.day === fields.day);
|
|
62
|
+
}
|
|
63
|
+
function rejectPreProposalEra(calendarId, fields) {
|
|
64
|
+
if ("era" in fields &&
|
|
65
|
+
PRE_PROPOSAL_ERAS.has(fields.era) &&
|
|
66
|
+
isDefectPresent("D8", calendarId)) {
|
|
67
|
+
throw new RangeError(`Unknown ${calendarId} era: ${fields.era}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* `Temporal.PlainDate.from({ ...fields, calendar: calendarId }, { overflow: "reject" })`, made
|
|
72
|
+
* correct where `@js-temporal/polyfill` is not.
|
|
73
|
+
*
|
|
74
|
+
* The polyfill answers first, and its result is kept whenever its fields read back unchanged
|
|
75
|
+
* through `calendarFieldsOf`. Only when it throws or reads back differently, for a defect the
|
|
76
|
+
* installed runtime has (probed once per calendar) and inside that defect's range, does the
|
|
77
|
+
* read-only field search answer instead:
|
|
78
|
+
*
|
|
79
|
+
* - **D1:** the polyfill's `calendarToIsoDate` probes outside the legacy `Date` range within about
|
|
80
|
+
* a year of both limits and throws `Invalid ISO date` (hebrew, buddhist, islamic-*, persian,
|
|
81
|
+
* indian). Retired by a js-temporal release porting proposal-temporal `a41eb67` + `af0cb4b`.
|
|
82
|
+
* - **D2, D3, D4, D5:** the runtime's own reads are wrong (buddhist before 1582-10-15, Hebrew years
|
|
83
|
+
* <= 0, Indian before ISO year 1), so its fields → ISO is too; the search runs over the
|
|
84
|
+
* corrected reads. Retired with the read corrections in `calendarFields.ts`.
|
|
85
|
+
* - **D8:** era codes that only the pre-proposal polyfill accepts (`japanese-inverse`) are
|
|
86
|
+
* rejected, as a fixed runtime rejects them.
|
|
87
|
+
* - **D10:** a polyfill porting proposal-temporal #3292 without the tc39/proposal-temporal#3329 fix
|
|
88
|
+
* skips a 5- or 6-day month 13 (ethioaa, and so coptic and ethiopic) in far years. While its
|
|
89
|
+
* probe fails, every year searches. Any throw other than a `RangeError` also searches, whatever
|
|
90
|
+
* the probes say.
|
|
91
|
+
*
|
|
92
|
+
* Era input is never searched: only "japanese" uses eras here, and it has no D1 window.
|
|
93
|
+
*
|
|
94
|
+
* @returns a PlainDate calendared as `calendarId`; throws RangeError for fields that do not name
|
|
95
|
+
* an in-range date
|
|
96
|
+
*/
|
|
97
|
+
export function calendarDateFromFields(calendarId, fields, overflow) {
|
|
98
|
+
rejectPreProposalEra(calendarId, fields);
|
|
99
|
+
let polyfillError;
|
|
100
|
+
try {
|
|
101
|
+
const result = Temporal.PlainDate.from({ ...fields, calendar: calendarId }, { overflow });
|
|
102
|
+
if (readBackMatches(result, calendarId, fields)) {
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
polyfillError = error;
|
|
108
|
+
}
|
|
109
|
+
if ("era" in fields ||
|
|
110
|
+
!(isPolyfillDefectError(polyfillError) ||
|
|
111
|
+
needsFieldSearch(calendarId, fields.year))) {
|
|
112
|
+
throw (polyfillError ??
|
|
113
|
+
new RangeError(`${calendarId} fields do not read back unchanged`));
|
|
114
|
+
}
|
|
115
|
+
const iso = isoForFields(calendarId, fields);
|
|
116
|
+
if (iso === null) {
|
|
117
|
+
throw new RangeError(`No in-range ${calendarId} date ${fields.year}-${fields.month}-${fields.day}`);
|
|
118
|
+
}
|
|
119
|
+
return iso.withCalendar(calendarId);
|
|
120
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
/** A date's fields in one calendar. `month` is ordinal (Hebrew leap year: `M05L` is 6). */
|
|
3
|
+
export interface CalendarFields {
|
|
4
|
+
year: number;
|
|
5
|
+
month: number;
|
|
6
|
+
monthCode: string;
|
|
7
|
+
day: number;
|
|
8
|
+
/** As the runtime reads it; corrected only for "japanese", the one calendar GMT tags with an era. */
|
|
9
|
+
era: string | undefined;
|
|
10
|
+
eraYear: number | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The fields of `date` in the Temporal calendar `calendarId`. Every calendar-field read in GMT's
|
|
14
|
+
* calendar string formatters and in the field search goes through here, so the runtime's read is
|
|
15
|
+
* corrected in one place, and only where a capability probe shows the runtime is wrong (D2, D3,
|
|
16
|
+
* D4, D5, D8 in README.md). Otherwise this is exactly `date.withCalendar(calendarId)`'s fields.
|
|
17
|
+
*/
|
|
18
|
+
export declare function calendarFieldsOf(date: Temporal.PlainDate, calendarId: string): CalendarFields;
|
|
19
|
+
/**
|
|
20
|
+
* True when reads of `calendarYear` in `calendarId` are corrected in this runtime, so the
|
|
21
|
+
* polyfill's own fields → ISO conversion for that year cannot be trusted either. The year ranges
|
|
22
|
+
* are supersets of each defect's reach: Hebrew years <= 0 hold every D3/D4 date, and every ISO
|
|
23
|
+
* date before year 1 lies in a Saka year whose Chaitra 1 falls in a Gregorian year <= 0.
|
|
24
|
+
*/
|
|
25
|
+
export declare function hasReadCorrection(calendarId: string, calendarYear: number): boolean;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { isDefectPresent } from "./capabilities.js";
|
|
2
|
+
import { fixedFromIso } from "./fixedDay.js";
|
|
3
|
+
import { hebrewFieldsFromFixed, hebrewNewYear } from "./hebrewArithmetic.js";
|
|
4
|
+
import { indianFieldsFromIso, SAKA_YEAR_OFFSET } from "./indianArithmetic.js";
|
|
5
|
+
/**
|
|
6
|
+
* Buddhist year = ISO year + 543 for every date, month and day identical to ISO: the Intl
|
|
7
|
+
* era/monthCode proposal's calendar table (era `be`, epoch year -543), test262
|
|
8
|
+
* extreme-dates.js and add/proleptic-buddhist.js.
|
|
9
|
+
*/
|
|
10
|
+
const BUDDHIST_YEAR_OFFSET = 543;
|
|
11
|
+
/** The first Meiji era year in the proposal's era table; earlier dates are `ce`. */
|
|
12
|
+
const FIRST_MEIJI_ERA_YEAR = 6;
|
|
13
|
+
function runtimeRead(date, calendarId) {
|
|
14
|
+
const read = date.withCalendar(calendarId);
|
|
15
|
+
return {
|
|
16
|
+
year: read.year,
|
|
17
|
+
month: read.month,
|
|
18
|
+
monthCode: read.monthCode,
|
|
19
|
+
day: read.day,
|
|
20
|
+
era: read.era,
|
|
21
|
+
eraYear: read.eraYear,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function isoFields(date) {
|
|
25
|
+
return date.withCalendar("iso8601");
|
|
26
|
+
}
|
|
27
|
+
function hebrewCorrectionActive() {
|
|
28
|
+
return isDefectPresent("D3", "hebrew") || isDefectPresent("D4", "hebrew");
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* D2: polyfill 0.5.1 reads buddhist through ICU4C's Julian/Gregorian hybrid, wrong for every
|
|
32
|
+
* date before 1582-10-15. Retired by a js-temporal release containing 2bb6ba1.
|
|
33
|
+
*/
|
|
34
|
+
function buddhistFields(date) {
|
|
35
|
+
if (!isDefectPresent("D2", "buddhist")) {
|
|
36
|
+
return runtimeRead(date, "buddhist");
|
|
37
|
+
}
|
|
38
|
+
const iso = isoFields(date);
|
|
39
|
+
return {
|
|
40
|
+
year: iso.year + BUDDHIST_YEAR_OFFSET,
|
|
41
|
+
month: iso.month,
|
|
42
|
+
monthCode: iso.monthCode,
|
|
43
|
+
day: iso.day,
|
|
44
|
+
era: undefined,
|
|
45
|
+
eraYear: undefined,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/** D3 + D4: Hebrew years <= 0 (see hebrewArithmetic.ts). */
|
|
49
|
+
function hebrewFields(date) {
|
|
50
|
+
const iso = isoFields(date);
|
|
51
|
+
const fixed = fixedFromIso(iso.year, iso.month, iso.day);
|
|
52
|
+
if (fixed >= hebrewNewYear(1) || !hebrewCorrectionActive()) {
|
|
53
|
+
return runtimeRead(date, "hebrew");
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
...hebrewFieldsFromFixed(fixed),
|
|
57
|
+
era: undefined,
|
|
58
|
+
eraYear: undefined,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/** D5: Indian dates before ISO year 1 (see indianArithmetic.ts). */
|
|
62
|
+
function indianFields(date) {
|
|
63
|
+
const iso = isoFields(date);
|
|
64
|
+
if (iso.year >= 1 || !isDefectPresent("D5", "indian")) {
|
|
65
|
+
return runtimeRead(date, "indian");
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
...indianFieldsFromIso(iso.year, iso.month, iso.day),
|
|
69
|
+
era: undefined,
|
|
70
|
+
eraYear: undefined,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* D8: polyfill 0.5.1 predates the Intl era/monthCode proposal's era codes. It reads `japanese`
|
|
75
|
+
* where the proposal has `ce`, `japanese-inverse` for `bce`, and starts `meiji` at year 1 in
|
|
76
|
+
* 1868, where the proposal keeps `ce` through 1872-12-31 and starts `meiji` at year 6. Retired by
|
|
77
|
+
* a js-temporal release containing 2bb6ba1.
|
|
78
|
+
*/
|
|
79
|
+
function japaneseFields(date) {
|
|
80
|
+
const read = runtimeRead(date, "japanese");
|
|
81
|
+
if (!isDefectPresent("D8", "japanese")) {
|
|
82
|
+
return read;
|
|
83
|
+
}
|
|
84
|
+
if (read.era === "japanese-inverse") {
|
|
85
|
+
return { ...read, era: "bce", eraYear: 1 - read.year };
|
|
86
|
+
}
|
|
87
|
+
if (read.era === "japanese" ||
|
|
88
|
+
(read.era === "meiji" && (read.eraYear ?? 0) < FIRST_MEIJI_ERA_YEAR)) {
|
|
89
|
+
return { ...read, era: "ce", eraYear: read.year };
|
|
90
|
+
}
|
|
91
|
+
return read;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The fields of `date` in the Temporal calendar `calendarId`. Every calendar-field read in GMT's
|
|
95
|
+
* calendar string formatters and in the field search goes through here, so the runtime's read is
|
|
96
|
+
* corrected in one place, and only where a capability probe shows the runtime is wrong (D2, D3,
|
|
97
|
+
* D4, D5, D8 in README.md). Otherwise this is exactly `date.withCalendar(calendarId)`'s fields.
|
|
98
|
+
*/
|
|
99
|
+
export function calendarFieldsOf(date, calendarId) {
|
|
100
|
+
switch (calendarId) {
|
|
101
|
+
case "buddhist":
|
|
102
|
+
return buddhistFields(date);
|
|
103
|
+
case "hebrew":
|
|
104
|
+
return hebrewFields(date);
|
|
105
|
+
case "indian":
|
|
106
|
+
return indianFields(date);
|
|
107
|
+
case "japanese":
|
|
108
|
+
return japaneseFields(date);
|
|
109
|
+
default:
|
|
110
|
+
return runtimeRead(date, calendarId);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* True when reads of `calendarYear` in `calendarId` are corrected in this runtime, so the
|
|
115
|
+
* polyfill's own fields → ISO conversion for that year cannot be trusted either. The year ranges
|
|
116
|
+
* are supersets of each defect's reach: Hebrew years <= 0 hold every D3/D4 date, and every ISO
|
|
117
|
+
* date before year 1 lies in a Saka year whose Chaitra 1 falls in a Gregorian year <= 0.
|
|
118
|
+
*/
|
|
119
|
+
export function hasReadCorrection(calendarId, calendarYear) {
|
|
120
|
+
switch (calendarId) {
|
|
121
|
+
case "buddhist":
|
|
122
|
+
return isDefectPresent("D2", calendarId);
|
|
123
|
+
case "hebrew":
|
|
124
|
+
return calendarYear <= 0 && hebrewCorrectionActive();
|
|
125
|
+
case "indian":
|
|
126
|
+
return (calendarYear + SAKA_YEAR_OFFSET <= 0 &&
|
|
127
|
+
isDefectPresent("D5", calendarId));
|
|
128
|
+
default:
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type DefectId, type Repro } from "./repros.js";
|
|
2
|
+
/** The repro's output, or `ERR <name>: <message>` when it throws. */
|
|
3
|
+
export declare function runRepro(repro: Pick<Repro, "run">): string;
|
|
4
|
+
/** True when a repro's output is the spec-correct value, i.e. the installed runtime is fixed. */
|
|
5
|
+
export declare function reproPasses(repro: Pick<Repro, "expected">, output: string): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* True when any repro for this defect and Temporal calendar id fails in the installed runtime.
|
|
8
|
+
* A calendar with no repro for the defect is not affected by it.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isDefectPresent(defect: DefectId, calendar: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* True when this runtime never retries the calendar nudge window (defect D11).
|
|
13
|
+
*
|
|
14
|
+
* TC39 bounds a duration between `relativeTo + r1 units` and `relativeTo + r2 units`, and recomputes
|
|
15
|
+
* the window one unit further along when the target falls outside it. A runtime that computes the
|
|
16
|
+
* window once answers `Duration#total`, `Duration#round` and `until`/`since` with a calendar
|
|
17
|
+
* `smallestUnit` over the wrong bounds. Only a `relativeTo` on the 29th, 30th or 31st can reach it,
|
|
18
|
+
* because only there does adding a month constrain the day. ISO-only: the non-ISO calendars already
|
|
19
|
+
* take the spec path through `isCalendarArithmeticCompatNeeded`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isNudgeWindowCompatNeeded(): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* True when calendar arithmetic in `calendarId` needs the compat layer in this runtime: any of its
|
|
24
|
+
* add, until or read probes fails (CORE-6 spec §3.6.2). `iso8601` never does, and costs nothing.
|
|
25
|
+
* Callers that own a spec path for a whole operation (zoned differences, `Duration` rounding,
|
|
26
|
+
* totals and comparisons) take it when this is true.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isCalendarArithmeticCompatNeeded(calendarId: string): boolean;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { repros } from "./repros.js";
|
|
2
|
+
/*
|
|
3
|
+
* Lazy, memoized capability probes: one answer per (defect, calendar), computed the first time a
|
|
4
|
+
* workaround asks and cached for the life of the process. Results are deterministic for a given
|
|
5
|
+
* polyfill + ICU, and the polyfill is imported once, so a cached answer never goes stale.
|
|
6
|
+
*
|
|
7
|
+
* A workaround whose probe passes never runs: behaviour is the polyfill's own. Tests never force a
|
|
8
|
+
* probe; they assert spec-correct outputs that hold either way (CORE-6 spec §4.5).
|
|
9
|
+
*/
|
|
10
|
+
/** The repro's output, or `ERR <name>: <message>` when it throws. */
|
|
11
|
+
export function runRepro(repro) {
|
|
12
|
+
try {
|
|
13
|
+
return repro.run();
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
const { name, message } = error instanceof Error ? error : new Error(String(error));
|
|
17
|
+
return `ERR ${name}: ${message}`;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** True when a repro's output is the spec-correct value, i.e. the installed runtime is fixed. */
|
|
21
|
+
export function reproPasses(repro, output) {
|
|
22
|
+
return output === repro.expected;
|
|
23
|
+
}
|
|
24
|
+
const cache = new Map();
|
|
25
|
+
/**
|
|
26
|
+
* True when any repro for this defect and Temporal calendar id fails in the installed runtime.
|
|
27
|
+
* A calendar with no repro for the defect is not affected by it.
|
|
28
|
+
*/
|
|
29
|
+
export function isDefectPresent(defect, calendar) {
|
|
30
|
+
const key = `${defect}/${calendar}`;
|
|
31
|
+
const cached = cache.get(key);
|
|
32
|
+
if (cached !== undefined) {
|
|
33
|
+
return cached;
|
|
34
|
+
}
|
|
35
|
+
const present = repros.some((repro) => repro.defect === defect &&
|
|
36
|
+
repro.calendar === calendar &&
|
|
37
|
+
!reproPasses(repro, runRepro(repro)));
|
|
38
|
+
cache.set(key, present);
|
|
39
|
+
return present;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* True when this runtime never retries the calendar nudge window (defect D11).
|
|
43
|
+
*
|
|
44
|
+
* TC39 bounds a duration between `relativeTo + r1 units` and `relativeTo + r2 units`, and recomputes
|
|
45
|
+
* the window one unit further along when the target falls outside it. A runtime that computes the
|
|
46
|
+
* window once answers `Duration#total`, `Duration#round` and `until`/`since` with a calendar
|
|
47
|
+
* `smallestUnit` over the wrong bounds. Only a `relativeTo` on the 29th, 30th or 31st can reach it,
|
|
48
|
+
* because only there does adding a month constrain the day. ISO-only: the non-ISO calendars already
|
|
49
|
+
* take the spec path through `isCalendarArithmeticCompatNeeded`.
|
|
50
|
+
*/
|
|
51
|
+
export function isNudgeWindowCompatNeeded() {
|
|
52
|
+
return isDefectPresent("D11", "iso8601");
|
|
53
|
+
}
|
|
54
|
+
/** Defects that make the runtime's calendar arithmetic or reads differ from the spec. */
|
|
55
|
+
const ARITHMETIC_DEFECTS = [
|
|
56
|
+
"D1",
|
|
57
|
+
"D2",
|
|
58
|
+
"D3",
|
|
59
|
+
"D4",
|
|
60
|
+
"D5",
|
|
61
|
+
"D6",
|
|
62
|
+
"D7",
|
|
63
|
+
"D10",
|
|
64
|
+
];
|
|
65
|
+
/**
|
|
66
|
+
* True when calendar arithmetic in `calendarId` needs the compat layer in this runtime: any of its
|
|
67
|
+
* add, until or read probes fails (CORE-6 spec §3.6.2). `iso8601` never does, and costs nothing.
|
|
68
|
+
* Callers that own a spec path for a whole operation (zoned differences, `Duration` rounding,
|
|
69
|
+
* totals and comparisons) take it when this is true.
|
|
70
|
+
*/
|
|
71
|
+
export function isCalendarArithmeticCompatNeeded(calendarId) {
|
|
72
|
+
return (calendarId !== "iso8601" &&
|
|
73
|
+
ARITHMETIC_DEFECTS.some((defect) => isDefectPresent(defect, calendarId)));
|
|
74
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
export interface FieldKey {
|
|
3
|
+
year: number;
|
|
4
|
+
month: number;
|
|
5
|
+
day: number;
|
|
6
|
+
}
|
|
7
|
+
/** True when `date` is the last representable date, +275760-09-13. */
|
|
8
|
+
export declare function isLastRepresentableDate(date: Temporal.PlainDate): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* The latest in-range ISO date whose `calendarId` key is at or before `target`, or `null` when
|
|
11
|
+
* `target` precedes the first representable date. Throws RangeError if the search fails to
|
|
12
|
+
* converge (callers return their sentinel).
|
|
13
|
+
*/
|
|
14
|
+
export declare function floorDateForFields(calendarId: string, target: FieldKey): Temporal.PlainDate | null;
|
|
15
|
+
/**
|
|
16
|
+
* `floorDateForFields` within `[from, from + days]` (clamped to the range): `null` when `target`
|
|
17
|
+
* precedes `from`, the window's last date when `target` is at or past it.
|
|
18
|
+
*/
|
|
19
|
+
export declare function floorDateForFieldsBetween(calendarId: string, target: FieldKey, from: Temporal.PlainDate, days: number): Temporal.PlainDate | null;
|
|
20
|
+
/** The ISO date (iso8601) whose `calendarId` fields are exactly `target`, or `null`. */
|
|
21
|
+
export declare function isoForFields(calendarId: string, target: FieldKey): Temporal.PlainDate | null;
|