@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
|
@@ -1,19 +1,40 @@
|
|
|
1
1
|
import { leapSecond } from "../../regex/leap-second.js";
|
|
2
2
|
/**
|
|
3
|
-
* Return true if the provided
|
|
3
|
+
* Return true if the provided ISO 8601 date-time or time string has a second-60 field.
|
|
4
4
|
*
|
|
5
|
-
* -
|
|
5
|
+
* - This is a syntactic test of the seconds field, the spelling Temporal would silently clamp to
|
|
6
|
+
* `:59`. It does not check the IERS leap-second list: a real leap second exists only at
|
|
7
|
+
* 23:59:60 UTC at the end of a month in which one was inserted (RFC 3339 §5.7), so
|
|
8
|
+
* `"2024-12-31T23:59:60Z"` (no leap second that day, IERS Bulletin C 68) and
|
|
9
|
+
* `"2024-06-15T12:34:60Z"` both return true.
|
|
10
|
+
* - Matches a seconds field of `60` with any date, time of day or offset, or none, for example
|
|
11
|
+
* "YYYY-MM-DDT23:59:60Z", "YYYY-MM-DDT23:59:60+00:00", "YYYY-MM-DDT23:59:60" or "23:59:60".
|
|
6
12
|
* - Accepts optional fractional seconds.
|
|
13
|
+
* - Accepts every spelling Temporal's grammar parses: a `T`, `t` or space separator, and
|
|
14
|
+
* extended or basic digits, a bare time with or without a `T` designator, and a designator,
|
|
15
|
+
* annotation or nothing after the second. Temporal silently clamps each of them to `:59`, so
|
|
16
|
+
* each is a leap second GMT has to catch. A `[key=value]` annotation value is never read as a time.
|
|
17
|
+
* - Compatibility: earlier releases recognised only an uppercase `T` with extended digits. To
|
|
18
|
+
* keep that narrower test, match `/T\d{2}:\d{2}:60(?:[.,]\d+)?[-+Zz[]/` yourself.
|
|
7
19
|
*
|
|
8
|
-
* @param value ISO
|
|
9
|
-
* @returns
|
|
20
|
+
* @param value ISO date-time or time string
|
|
21
|
+
* @returns true when the string has a second-60 field, otherwise false
|
|
10
22
|
*
|
|
11
|
-
* @example isLeapSecond("
|
|
12
|
-
* @example isLeapSecond("
|
|
13
|
-
* @example isLeapSecond("
|
|
14
|
-
* @example isLeapSecond("
|
|
15
|
-
* @example isLeapSecond("
|
|
23
|
+
* @example isLeapSecond("2016-12-31T23:59:60Z") // true
|
|
24
|
+
* @example isLeapSecond("2016-12-31T23:59:60.123Z") // true
|
|
25
|
+
* @example isLeapSecond("2016-12-31T23:59:60+00:00") // true
|
|
26
|
+
* @example isLeapSecond("2016-12-31T23:59:60.123+00:00") // true
|
|
27
|
+
* @example isLeapSecond("2016-12-31t23:59:60Z") // true (lowercase t)
|
|
28
|
+
* @example isLeapSecond("20161231 235960Z") // true (space separator, basic format)
|
|
29
|
+
* @example isLeapSecond("2016-12-31T23:59:60") // true (no designator; PlainDateTime clamps it)
|
|
30
|
+
* @example isLeapSecond("23:59:60") // true (a time; PlainTime clamps it)
|
|
31
|
+
* @example isLeapSecond("2016-12-31T23:59:59Z") // false
|
|
32
|
+
* @example isLeapSecond("2024-06-15T12:34:60Z") // true (syntactic: no leap second can occur here)
|
|
33
|
+
* @example /T\d{2}:\d{2}:60(?:[.,]\d+)?[-+Zz[]/.test("2016-12-31t23:59:60Z") // false (the earlier uppercase-T-only test)
|
|
16
34
|
*/
|
|
17
35
|
export function isLeapSecond(value) {
|
|
36
|
+
if (typeof value !== "string") {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
18
39
|
return leapSecond.test(value);
|
|
19
40
|
}
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
* Return true when the given PlainDate falls in a leap year.
|
|
3
3
|
*
|
|
4
4
|
* - A leap year is divisible by 4, except for century years which must be divisible by 400.
|
|
5
|
-
* - Returns false for invalid input strings
|
|
5
|
+
* - Returns false for invalid input strings, including every shape `isValidDate` rejects: a
|
|
6
|
+
* date-time, zoned, basic-format or leap-second string, or a non-ISO calendar annotation. The
|
|
7
|
+
* annotations Temporal ignores are accepted (`"2024-06-15[u-ca=iso8601]"` → true).
|
|
8
|
+
* - Compatibility: earlier releases read those shapes loosely (`"2024-03-15T10:00"` → `true`).
|
|
9
|
+
* Pass the date part alone, or use `Temporal.PlainDate.from(value).inLeapYear`.
|
|
6
10
|
*
|
|
7
11
|
* @param value ISO PlainDate string
|
|
8
12
|
* @returns boolean indicating whether the date is in a leap year
|
|
@@ -10,5 +14,7 @@
|
|
|
10
14
|
* @example isLeapYear("2024-03-15") // true
|
|
11
15
|
* @example isLeapYear("2023-03-15") // false
|
|
12
16
|
* @example isLeapYear("invalid") // false
|
|
17
|
+
* @example isLeapYear("2024-03-15T10:00") // false (a date-time, not a PlainDate)
|
|
18
|
+
* @example isLeapYear("2024-03-15T10:00".slice(0, 10)) // true (the date part)
|
|
13
19
|
*/
|
|
14
20
|
export declare function isLeapYear(value: string): boolean;
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { isValidDate } from "./isValidDate.js";
|
|
2
3
|
/**
|
|
3
4
|
* Return true when the given PlainDate falls in a leap year.
|
|
4
5
|
*
|
|
5
6
|
* - A leap year is divisible by 4, except for century years which must be divisible by 400.
|
|
6
|
-
* - Returns false for invalid input strings
|
|
7
|
+
* - Returns false for invalid input strings, including every shape `isValidDate` rejects: a
|
|
8
|
+
* date-time, zoned, basic-format or leap-second string, or a non-ISO calendar annotation. The
|
|
9
|
+
* annotations Temporal ignores are accepted (`"2024-06-15[u-ca=iso8601]"` → true).
|
|
10
|
+
* - Compatibility: earlier releases read those shapes loosely (`"2024-03-15T10:00"` → `true`).
|
|
11
|
+
* Pass the date part alone, or use `Temporal.PlainDate.from(value).inLeapYear`.
|
|
7
12
|
*
|
|
8
13
|
* @param value ISO PlainDate string
|
|
9
14
|
* @returns boolean indicating whether the date is in a leap year
|
|
@@ -11,8 +16,12 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
11
16
|
* @example isLeapYear("2024-03-15") // true
|
|
12
17
|
* @example isLeapYear("2023-03-15") // false
|
|
13
18
|
* @example isLeapYear("invalid") // false
|
|
19
|
+
* @example isLeapYear("2024-03-15T10:00") // false (a date-time, not a PlainDate)
|
|
20
|
+
* @example isLeapYear("2024-03-15T10:00".slice(0, 10)) // true (the date part)
|
|
14
21
|
*/
|
|
15
22
|
export function isLeapYear(value) {
|
|
23
|
+
if (!isValidDate(value))
|
|
24
|
+
return false;
|
|
16
25
|
try {
|
|
17
26
|
const date = Temporal.PlainDate.from(value);
|
|
18
27
|
return date.inLeapYear;
|
|
@@ -1,17 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Return true if `value` is a valid GMT PlainDate string: a
|
|
3
|
-
* ("2024-10-03")
|
|
4
|
-
*
|
|
2
|
+
* Return true if `value` is a valid GMT PlainDate string: a bare ISO date ("2024-10-03") or an
|
|
3
|
+
* RFC 9557 calendar-annotated date ("2024-10-03[u-ca=hebrew]"), as `Temporal.PlainDate#toString()`
|
|
4
|
+
* and `convertDateToCalendar` write it.
|
|
5
5
|
*
|
|
6
|
-
* -
|
|
7
|
-
*
|
|
6
|
+
* - The digits are the ISO date whatever the calendar, so the ISO date must be valid and within
|
|
7
|
+
* Temporal's range (-271821-04-19 to +275760-09-13). The year is four digits or a sign and six.
|
|
8
|
+
* - A `[u-ca=<id>]` annotation, optionally critical (`[!u-ca=hebrew]`). Temporal's
|
|
9
|
+
* `CanonicalizeCalendar` validates the id, folding case and aliases (`[u-ca=HEBREW]`,
|
|
10
|
+
* `[u-ca=ethiopic-amete-alem]`), and the calendar must be one GMT supports (`CalendarSystem`);
|
|
11
|
+
* `chinese`, `dangi`, `islamic` and `islamic-rgsa` return false.
|
|
12
|
+
* - The annotations follow Temporal's ISO grammar, as `Temporal.PlainDate.from` reads them: a time
|
|
13
|
+
* zone annotation and elective unknown annotations (`[foo=bar]`) are ignored and the first
|
|
14
|
+
* `u-ca` annotation names the calendar; an unknown critical annotation (`[!foo=bar]`) or a
|
|
15
|
+
* second `u-ca` annotation when either is critical returns false.
|
|
16
|
+
* - A date-time is valid and names its date, as `Temporal.PlainDate.from` reads it
|
|
17
|
+
* (`"2024-10-03T14:30[u-ca=hebrew]"` is 2024-10-03 in Hebrew): the time is dropped.
|
|
18
|
+
* - The part before the first `[` must match GMT's strict extended shape, as `isValidDate` and
|
|
19
|
+
* `isValidDateTime` require: basic format (`20241003`), a space or lower-case `t` separator, a
|
|
20
|
+
* UTC offset or designator and a leap second (second `60`) return false, although
|
|
21
|
+
* `Temporal.PlainDate.from` reads all but the designator.
|
|
22
|
+
* - Returns false for non-strings or empty strings.
|
|
23
|
+
*
|
|
24
|
+
* Compatibility: since 1.16.0 the string is RFC 9557, and a date-time is read as its date (earlier
|
|
25
|
+
* releases returned false). Earlier releases accepted calendar-native
|
|
26
|
+
* digits, `;era=` and the ids `gregorian`, `taiwan`, `islamic-tabular` and `ethiopic-amete-alem`;
|
|
27
|
+
* a `;era=` string or a six-digit unsigned year now returns false, and any other such string is
|
|
28
|
+
* read as the ISO date its digits spell.
|
|
8
29
|
*
|
|
9
30
|
* @param value ISO PlainDate string, optionally calendar-annotated
|
|
10
31
|
* @returns boolean indicating validity
|
|
11
32
|
*
|
|
12
33
|
* @example isValidCalendarDate("2024-10-03") // true
|
|
13
|
-
* @example isValidCalendarDate("
|
|
34
|
+
* @example isValidCalendarDate("2024-10-03[u-ca=hebrew]") // true
|
|
35
|
+
* @example isValidCalendarDate("+275760-09-13[u-ca=roc]") // true
|
|
36
|
+
* @example isValidCalendarDate("2024-10-03[!u-ca=japanese]") // true (critical flag)
|
|
37
|
+
* @example isValidCalendarDate("2024-10-03[Asia/Tokyo][u-ca=hebrew]") // true (the time zone annotation is ignored)
|
|
38
|
+
* @example isValidCalendarDate("2024-10-03T14:30:00[u-ca=hebrew]") // true (a date-time names its date)
|
|
39
|
+
* @example isValidCalendarDate("2024-10-03T14:30:00Z[u-ca=hebrew]") // false (UTC designator on a Plain type)
|
|
40
|
+
* @example isValidCalendarDate("20241003[u-ca=hebrew]") // false (basic format, as isValidDate)
|
|
41
|
+
* @example isValidCalendarDate("2024-10-03T14:30+01:00[u-ca=hebrew]") // false (UTC offset, as isValidDateTime)
|
|
42
|
+
* @example isValidCalendarDate("2024-10-03[!foo=bar][u-ca=hebrew]") // false (unknown critical annotation)
|
|
14
43
|
* @example isValidCalendarDate("2024-10-03[u-ca=martian]") // false (unknown calendar identifier)
|
|
44
|
+
* @example isValidCalendarDate("2024-10-03[u-ca=chinese]") // false (not supported by GMT)
|
|
45
|
+
* @example isValidCalendarDate("0006-10-03[u-ca=japanese;era=reiwa]") // false (not RFC 9557)
|
|
15
46
|
* @example isValidCalendarDate("invalid") // false
|
|
16
47
|
*/
|
|
17
48
|
export declare function isValidCalendarDate(value: string): boolean;
|
|
@@ -1,18 +1,49 @@
|
|
|
1
1
|
import { parseCalendarDateValue } from "../../internal/index.js";
|
|
2
2
|
/**
|
|
3
|
-
* Return true if `value` is a valid GMT PlainDate string: a
|
|
4
|
-
* ("2024-10-03")
|
|
5
|
-
*
|
|
3
|
+
* Return true if `value` is a valid GMT PlainDate string: a bare ISO date ("2024-10-03") or an
|
|
4
|
+
* RFC 9557 calendar-annotated date ("2024-10-03[u-ca=hebrew]"), as `Temporal.PlainDate#toString()`
|
|
5
|
+
* and `convertDateToCalendar` write it.
|
|
6
6
|
*
|
|
7
|
-
* -
|
|
8
|
-
*
|
|
7
|
+
* - The digits are the ISO date whatever the calendar, so the ISO date must be valid and within
|
|
8
|
+
* Temporal's range (-271821-04-19 to +275760-09-13). The year is four digits or a sign and six.
|
|
9
|
+
* - A `[u-ca=<id>]` annotation, optionally critical (`[!u-ca=hebrew]`). Temporal's
|
|
10
|
+
* `CanonicalizeCalendar` validates the id, folding case and aliases (`[u-ca=HEBREW]`,
|
|
11
|
+
* `[u-ca=ethiopic-amete-alem]`), and the calendar must be one GMT supports (`CalendarSystem`);
|
|
12
|
+
* `chinese`, `dangi`, `islamic` and `islamic-rgsa` return false.
|
|
13
|
+
* - The annotations follow Temporal's ISO grammar, as `Temporal.PlainDate.from` reads them: a time
|
|
14
|
+
* zone annotation and elective unknown annotations (`[foo=bar]`) are ignored and the first
|
|
15
|
+
* `u-ca` annotation names the calendar; an unknown critical annotation (`[!foo=bar]`) or a
|
|
16
|
+
* second `u-ca` annotation when either is critical returns false.
|
|
17
|
+
* - A date-time is valid and names its date, as `Temporal.PlainDate.from` reads it
|
|
18
|
+
* (`"2024-10-03T14:30[u-ca=hebrew]"` is 2024-10-03 in Hebrew): the time is dropped.
|
|
19
|
+
* - The part before the first `[` must match GMT's strict extended shape, as `isValidDate` and
|
|
20
|
+
* `isValidDateTime` require: basic format (`20241003`), a space or lower-case `t` separator, a
|
|
21
|
+
* UTC offset or designator and a leap second (second `60`) return false, although
|
|
22
|
+
* `Temporal.PlainDate.from` reads all but the designator.
|
|
23
|
+
* - Returns false for non-strings or empty strings.
|
|
24
|
+
*
|
|
25
|
+
* Compatibility: since 1.16.0 the string is RFC 9557, and a date-time is read as its date (earlier
|
|
26
|
+
* releases returned false). Earlier releases accepted calendar-native
|
|
27
|
+
* digits, `;era=` and the ids `gregorian`, `taiwan`, `islamic-tabular` and `ethiopic-amete-alem`;
|
|
28
|
+
* a `;era=` string or a six-digit unsigned year now returns false, and any other such string is
|
|
29
|
+
* read as the ISO date its digits spell.
|
|
9
30
|
*
|
|
10
31
|
* @param value ISO PlainDate string, optionally calendar-annotated
|
|
11
32
|
* @returns boolean indicating validity
|
|
12
33
|
*
|
|
13
34
|
* @example isValidCalendarDate("2024-10-03") // true
|
|
14
|
-
* @example isValidCalendarDate("
|
|
35
|
+
* @example isValidCalendarDate("2024-10-03[u-ca=hebrew]") // true
|
|
36
|
+
* @example isValidCalendarDate("+275760-09-13[u-ca=roc]") // true
|
|
37
|
+
* @example isValidCalendarDate("2024-10-03[!u-ca=japanese]") // true (critical flag)
|
|
38
|
+
* @example isValidCalendarDate("2024-10-03[Asia/Tokyo][u-ca=hebrew]") // true (the time zone annotation is ignored)
|
|
39
|
+
* @example isValidCalendarDate("2024-10-03T14:30:00[u-ca=hebrew]") // true (a date-time names its date)
|
|
40
|
+
* @example isValidCalendarDate("2024-10-03T14:30:00Z[u-ca=hebrew]") // false (UTC designator on a Plain type)
|
|
41
|
+
* @example isValidCalendarDate("20241003[u-ca=hebrew]") // false (basic format, as isValidDate)
|
|
42
|
+
* @example isValidCalendarDate("2024-10-03T14:30+01:00[u-ca=hebrew]") // false (UTC offset, as isValidDateTime)
|
|
43
|
+
* @example isValidCalendarDate("2024-10-03[!foo=bar][u-ca=hebrew]") // false (unknown critical annotation)
|
|
15
44
|
* @example isValidCalendarDate("2024-10-03[u-ca=martian]") // false (unknown calendar identifier)
|
|
45
|
+
* @example isValidCalendarDate("2024-10-03[u-ca=chinese]") // false (not supported by GMT)
|
|
46
|
+
* @example isValidCalendarDate("0006-10-03[u-ca=japanese;era=reiwa]") // false (not RFC 9557)
|
|
16
47
|
* @example isValidCalendarDate("invalid") // false
|
|
17
48
|
*/
|
|
18
49
|
export function isValidCalendarDate(value) {
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Return true if `value` is a valid ISO PlainDate string.
|
|
3
3
|
*
|
|
4
|
-
* -
|
|
4
|
+
* - The part before the first annotation must match `plainDate` (a date, not a date-time).
|
|
5
|
+
* - Reads RFC 9557 annotations as `Temporal.PlainDate.from` does: elective ones (`[foo=bar]`)
|
|
6
|
+
* and a time zone annotation are ignored, and an unknown critical one (`[!foo=bar]`) is
|
|
7
|
+
* rejected. The calendar must be ISO (`[u-ca=iso8601]` is accepted); a non-ISO calendar is
|
|
8
|
+
* `isValidCalendarDate`'s input.
|
|
5
9
|
* - Rejects leap seconds (e.g., "2024-12-31T23:59:60").
|
|
6
10
|
* - Rejects invalid dates (e.g., "2024-02-30").
|
|
7
11
|
*
|
|
@@ -10,6 +14,10 @@
|
|
|
10
14
|
*
|
|
11
15
|
* @example isValidDate("2024-03-10") // true
|
|
12
16
|
* @example isValidDate("2024-02-30") // false
|
|
17
|
+
* @example isValidDate("2024-03-10[u-ca=iso8601]") // true
|
|
18
|
+
* @example isValidDate("2024-03-10[foo=bar]") // true (elective annotation ignored)
|
|
19
|
+
* @example isValidDate("2024-03-10[!foo=bar]") // false (unknown critical annotation)
|
|
20
|
+
* @example isValidDate("2024-03-10[u-ca=hebrew]") // false (use isValidCalendarDate)
|
|
13
21
|
* @example isValidDate("invalid") // false
|
|
14
22
|
* @example isValidDate("2024-12-31T23:59:60") // false (leap second - not a valid date)
|
|
15
23
|
*/
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { isoStringBody } from "../../internal/isoStringBody.js";
|
|
2
3
|
import { plainDate } from "../../regex/index.js";
|
|
3
4
|
import { isLeapSecond } from "./isLeapSecond.js";
|
|
4
5
|
/**
|
|
5
6
|
* Return true if `value` is a valid ISO PlainDate string.
|
|
6
7
|
*
|
|
7
|
-
* -
|
|
8
|
+
* - The part before the first annotation must match `plainDate` (a date, not a date-time).
|
|
9
|
+
* - Reads RFC 9557 annotations as `Temporal.PlainDate.from` does: elective ones (`[foo=bar]`)
|
|
10
|
+
* and a time zone annotation are ignored, and an unknown critical one (`[!foo=bar]`) is
|
|
11
|
+
* rejected. The calendar must be ISO (`[u-ca=iso8601]` is accepted); a non-ISO calendar is
|
|
12
|
+
* `isValidCalendarDate`'s input.
|
|
8
13
|
* - Rejects leap seconds (e.g., "2024-12-31T23:59:60").
|
|
9
14
|
* - Rejects invalid dates (e.g., "2024-02-30").
|
|
10
15
|
*
|
|
@@ -13,19 +18,23 @@ import { isLeapSecond } from "./isLeapSecond.js";
|
|
|
13
18
|
*
|
|
14
19
|
* @example isValidDate("2024-03-10") // true
|
|
15
20
|
* @example isValidDate("2024-02-30") // false
|
|
21
|
+
* @example isValidDate("2024-03-10[u-ca=iso8601]") // true
|
|
22
|
+
* @example isValidDate("2024-03-10[foo=bar]") // true (elective annotation ignored)
|
|
23
|
+
* @example isValidDate("2024-03-10[!foo=bar]") // false (unknown critical annotation)
|
|
24
|
+
* @example isValidDate("2024-03-10[u-ca=hebrew]") // false (use isValidCalendarDate)
|
|
16
25
|
* @example isValidDate("invalid") // false
|
|
17
26
|
* @example isValidDate("2024-12-31T23:59:60") // false (leap second - not a valid date)
|
|
18
27
|
*/
|
|
19
28
|
export function isValidDate(value) {
|
|
20
|
-
|
|
29
|
+
const body = isoStringBody(value);
|
|
30
|
+
if (isLeapSecond(body)) {
|
|
21
31
|
return false;
|
|
22
32
|
}
|
|
23
|
-
if (!plainDate.test(
|
|
33
|
+
if (!plainDate.test(body)) {
|
|
24
34
|
return false;
|
|
25
35
|
}
|
|
26
36
|
try {
|
|
27
|
-
Temporal.PlainDate.from(value);
|
|
28
|
-
return true;
|
|
37
|
+
return Temporal.PlainDate.from(value).calendarId === "iso8601";
|
|
29
38
|
}
|
|
30
39
|
catch {
|
|
31
40
|
return false;
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The argument object of `isValidDateRange`.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* import { IsValidDateRangeProps } from "@northguild/gmt/plain";
|
|
6
|
+
* const range: IsValidDateRangeProps = { value1: "2024-02-28", value2: "2024-02-29" };
|
|
7
|
+
*/
|
|
8
|
+
export interface IsValidDateRangeProps {
|
|
2
9
|
value1: string;
|
|
3
10
|
value2: string;
|
|
4
11
|
options?: {
|
|
@@ -8,7 +15,8 @@ interface IsValidDateRangeProps {
|
|
|
8
15
|
/**
|
|
9
16
|
* Return whether `value1` is before `value2`.
|
|
10
17
|
*
|
|
11
|
-
* - Validates both dates
|
|
18
|
+
* - Validates both dates with `isValidDate`, so each endpoint's RFC 9557 annotations are read as
|
|
19
|
+
* `Temporal.PlainDate.from` reads them (an elective `[foo=bar]` or `[u-ca=iso8601]` is ignored).
|
|
12
20
|
* - Rejects leap seconds in either date.
|
|
13
21
|
* - When `options.allowEqual` is true, equality is considered valid as well.
|
|
14
22
|
*
|
|
@@ -22,5 +30,4 @@ interface IsValidDateRangeProps {
|
|
|
22
30
|
* @example isValidDateRange({ value1: "2024-02-29", value2: "2024-02-29" }) // false
|
|
23
31
|
* @example isValidDateRange({ value1: "2024-02-29", value2: "2024-02-29", options: { allowEqual: true } }) // true
|
|
24
32
|
*/
|
|
25
|
-
export declare function isValidDateRange(
|
|
26
|
-
export {};
|
|
33
|
+
export declare function isValidDateRange(props: IsValidDateRangeProps): boolean;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { isValidDate } from "./isValidDate.js";
|
|
3
|
+
import { isObject, isOptionsArgument } from "../../internal/isObject.js";
|
|
4
4
|
/**
|
|
5
5
|
* Return whether `value1` is before `value2`.
|
|
6
6
|
*
|
|
7
|
-
* - Validates both dates
|
|
7
|
+
* - Validates both dates with `isValidDate`, so each endpoint's RFC 9557 annotations are read as
|
|
8
|
+
* `Temporal.PlainDate.from` reads them (an elective `[foo=bar]` or `[u-ca=iso8601]` is ignored).
|
|
8
9
|
* - Rejects leap seconds in either date.
|
|
9
10
|
* - When `options.allowEqual` is true, equality is considered valid as well.
|
|
10
11
|
*
|
|
@@ -18,30 +19,39 @@ import { isLeapSecond } from "./isLeapSecond.js";
|
|
|
18
19
|
* @example isValidDateRange({ value1: "2024-02-29", value2: "2024-02-29" }) // false
|
|
19
20
|
* @example isValidDateRange({ value1: "2024-02-29", value2: "2024-02-29", options: { allowEqual: true } }) // true
|
|
20
21
|
*/
|
|
21
|
-
export function isValidDateRange(
|
|
22
|
-
if (isLeapSecond(value1) || isLeapSecond(value2)) {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
if (!plainDate.test(value1) || !plainDate.test(value2)) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
22
|
+
export function isValidDateRange(props) {
|
|
28
23
|
try {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
if (!isObject(props))
|
|
25
|
+
return false;
|
|
26
|
+
const { value1, value2, options } = props;
|
|
27
|
+
if (!isOptionsArgument(options))
|
|
28
|
+
return false;
|
|
29
|
+
if (!isValidDate(value1) || !isValidDate(value2)) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const date1 = Temporal.PlainDate.from(value1);
|
|
34
|
+
const date2 = Temporal.PlainDate.from(value2);
|
|
35
|
+
const isLessThan = date1.year < date2.year ||
|
|
36
|
+
(date1.year === date2.year && date1.month < date2.month) ||
|
|
37
|
+
(date1.year === date2.year &&
|
|
38
|
+
date1.month === date2.month &&
|
|
39
|
+
date1.day < date2.day);
|
|
40
|
+
const isEqual = date1.year === date2.year &&
|
|
34
41
|
date1.month === date2.month &&
|
|
35
|
-
date1.day
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
date1.day === date2.day;
|
|
43
|
+
if (options?.allowEqual) {
|
|
44
|
+
return isLessThan || isEqual;
|
|
45
|
+
}
|
|
46
|
+
return isLessThan;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return false;
|
|
41
50
|
}
|
|
42
|
-
return isLessThan;
|
|
43
51
|
}
|
|
44
52
|
catch {
|
|
53
|
+
// Never throws (Core Rule 3): a hostile
|
|
54
|
+
// argument is invalid input, not an exception.
|
|
45
55
|
return false;
|
|
46
56
|
}
|
|
47
57
|
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Return true when `value` is a valid PlainDateTime string.
|
|
3
3
|
*
|
|
4
|
-
* -
|
|
4
|
+
* - The part before the first annotation must match `plainDateTime`.
|
|
5
|
+
* - Reads RFC 9557 annotations as `Temporal.PlainDateTime.from` does: elective ones
|
|
6
|
+
* (`[foo=bar]`) and a time zone annotation are ignored, and an unknown critical one
|
|
7
|
+
* (`[!foo=bar]`) is rejected. The calendar must be ISO (`[u-ca=iso8601]` is accepted).
|
|
5
8
|
* - Rejects leap seconds (e.g., "2024-02-29T23:59:60").
|
|
6
9
|
* - Rejects invalid dates (e.g., "2024-02-30") and invalid times (e.g., "2024-02-29T24:00:00").
|
|
7
10
|
*
|
|
@@ -10,6 +13,9 @@
|
|
|
10
13
|
*
|
|
11
14
|
* @example isValidDateTime("2024-02-29T12:34:56") // true
|
|
12
15
|
* @example isValidDateTime("2024-02-30T12:34:56") // false (invalid date)
|
|
16
|
+
* @example isValidDateTime("2024-02-29T12:34:56[America/New_York]") // true (time zone annotation ignored)
|
|
17
|
+
* @example isValidDateTime("2024-02-29T12:34:56[!foo=bar]") // false (unknown critical annotation)
|
|
18
|
+
* @example isValidDateTime("2024-02-29T12:34:56[u-ca=hebrew]") // false (non-ISO calendar)
|
|
13
19
|
* @example isValidDateTime("2024-02-29T24:00:00") // false (invalid time)
|
|
14
20
|
* @example isValidDateTime("2024-02-29T23:59:60") // false (leap second)
|
|
15
21
|
*/
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { isoStringBody } from "../../internal/isoStringBody.js";
|
|
2
3
|
import { plainDateTime } from "../../regex/index.js";
|
|
3
4
|
import { isLeapSecond } from "./isLeapSecond.js";
|
|
4
5
|
/**
|
|
5
6
|
* Return true when `value` is a valid PlainDateTime string.
|
|
6
7
|
*
|
|
7
|
-
* -
|
|
8
|
+
* - The part before the first annotation must match `plainDateTime`.
|
|
9
|
+
* - Reads RFC 9557 annotations as `Temporal.PlainDateTime.from` does: elective ones
|
|
10
|
+
* (`[foo=bar]`) and a time zone annotation are ignored, and an unknown critical one
|
|
11
|
+
* (`[!foo=bar]`) is rejected. The calendar must be ISO (`[u-ca=iso8601]` is accepted).
|
|
8
12
|
* - Rejects leap seconds (e.g., "2024-02-29T23:59:60").
|
|
9
13
|
* - Rejects invalid dates (e.g., "2024-02-30") and invalid times (e.g., "2024-02-29T24:00:00").
|
|
10
14
|
*
|
|
@@ -13,19 +17,22 @@ import { isLeapSecond } from "./isLeapSecond.js";
|
|
|
13
17
|
*
|
|
14
18
|
* @example isValidDateTime("2024-02-29T12:34:56") // true
|
|
15
19
|
* @example isValidDateTime("2024-02-30T12:34:56") // false (invalid date)
|
|
20
|
+
* @example isValidDateTime("2024-02-29T12:34:56[America/New_York]") // true (time zone annotation ignored)
|
|
21
|
+
* @example isValidDateTime("2024-02-29T12:34:56[!foo=bar]") // false (unknown critical annotation)
|
|
22
|
+
* @example isValidDateTime("2024-02-29T12:34:56[u-ca=hebrew]") // false (non-ISO calendar)
|
|
16
23
|
* @example isValidDateTime("2024-02-29T24:00:00") // false (invalid time)
|
|
17
24
|
* @example isValidDateTime("2024-02-29T23:59:60") // false (leap second)
|
|
18
25
|
*/
|
|
19
26
|
export function isValidDateTime(value) {
|
|
20
|
-
|
|
27
|
+
const body = isoStringBody(value);
|
|
28
|
+
if (isLeapSecond(body)) {
|
|
21
29
|
return false;
|
|
22
30
|
}
|
|
23
|
-
if (!plainDateTime.test(
|
|
31
|
+
if (!plainDateTime.test(body)) {
|
|
24
32
|
return false;
|
|
25
33
|
}
|
|
26
34
|
try {
|
|
27
|
-
Temporal.PlainDateTime.from(value);
|
|
28
|
-
return true;
|
|
35
|
+
return Temporal.PlainDateTime.from(value).calendarId === "iso8601";
|
|
29
36
|
}
|
|
30
37
|
catch {
|
|
31
38
|
return false;
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Return true if `value1` and `value2` form a valid datetime range — both parseable as
|
|
3
3
|
* ISO PlainDateTime strings and `value1 <= value2`.
|
|
4
4
|
*
|
|
5
|
-
* - Both inputs must be ISO 8601 datetime strings (e.g. `"2024-01-01T10:00:00"`)
|
|
5
|
+
* - Both inputs must be ISO 8601 datetime strings (e.g. `"2024-01-01T10:00:00"`), as
|
|
6
|
+
* `isValidDateTime` accepts, annotations included.
|
|
6
7
|
* - Equal `value1 === value2` is valid when `options.allowEqual` is true.
|
|
7
8
|
* - Invalid input, malformed strings, or leap-second strings return `false`.
|
|
8
9
|
*
|
|
@@ -15,7 +16,7 @@
|
|
|
15
16
|
* @example isValidDateTimeRange({ value1: "2024-12-31T23:59:59", value2: "2024-01-01T10:00:00" }) // false
|
|
16
17
|
* @example isValidDateTimeRange({ value1: "2024-01-01T10:00:00", value2: "2024-01-01T10:00:00", options: { allowEqual: true } }) // true
|
|
17
18
|
*/
|
|
18
|
-
export declare function isValidDateTimeRange(
|
|
19
|
+
export declare function isValidDateTimeRange(props: {
|
|
19
20
|
value1: string;
|
|
20
21
|
value2: string;
|
|
21
22
|
options?: {
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
// fallow-ignore-file code-duplication -- cross-family Temporal type clone, by design (rule 5)
|
|
1
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import {
|
|
3
|
+
import { isValidDateTime } from "./isValidDateTime.js";
|
|
4
|
+
import { isObject, isOptionsArgument } from "../../internal/isObject.js";
|
|
3
5
|
/**
|
|
4
6
|
* Return true if `value1` and `value2` form a valid datetime range — both parseable as
|
|
5
7
|
* ISO PlainDateTime strings and `value1 <= value2`.
|
|
6
8
|
*
|
|
7
|
-
* - Both inputs must be ISO 8601 datetime strings (e.g. `"2024-01-01T10:00:00"`)
|
|
9
|
+
* - Both inputs must be ISO 8601 datetime strings (e.g. `"2024-01-01T10:00:00"`), as
|
|
10
|
+
* `isValidDateTime` accepts, annotations included.
|
|
8
11
|
* - Equal `value1 === value2` is valid when `options.allowEqual` is true.
|
|
9
12
|
* - Invalid input, malformed strings, or leap-second strings return `false`.
|
|
10
13
|
*
|
|
@@ -17,23 +20,35 @@ import { plainDateTime } from "../../regex/index.js";
|
|
|
17
20
|
* @example isValidDateTimeRange({ value1: "2024-12-31T23:59:59", value2: "2024-01-01T10:00:00" }) // false
|
|
18
21
|
* @example isValidDateTimeRange({ value1: "2024-01-01T10:00:00", value2: "2024-01-01T10:00:00", options: { allowEqual: true } }) // true
|
|
19
22
|
*/
|
|
20
|
-
export function isValidDateTimeRange(
|
|
21
|
-
if (typeof value1 !== "string" || typeof value2 !== "string") {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
if (!plainDateTime.test(value1) || !plainDateTime.test(value2)) {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
23
|
+
export function isValidDateTimeRange(props) {
|
|
27
24
|
try {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
if (options
|
|
32
|
-
return
|
|
25
|
+
if (!isObject(props))
|
|
26
|
+
return false;
|
|
27
|
+
const { value1, value2, options } = props;
|
|
28
|
+
if (!isOptionsArgument(options))
|
|
29
|
+
return false;
|
|
30
|
+
if (typeof value1 !== "string" || typeof value2 !== "string") {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
if (!isValidDateTime(value1) || !isValidDateTime(value2)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const dt1 = Temporal.PlainDateTime.from(value1);
|
|
38
|
+
const dt2 = Temporal.PlainDateTime.from(value2);
|
|
39
|
+
const cmp = Temporal.PlainDateTime.compare(dt1, dt2);
|
|
40
|
+
if (options?.allowEqual) {
|
|
41
|
+
return cmp <= 0;
|
|
42
|
+
}
|
|
43
|
+
return cmp < 0;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return false;
|
|
33
47
|
}
|
|
34
|
-
return cmp < 0;
|
|
35
48
|
}
|
|
36
49
|
catch {
|
|
50
|
+
// Never throws (Core Rule 3): a hostile
|
|
51
|
+
// argument is invalid input, not an exception.
|
|
37
52
|
return false;
|
|
38
53
|
}
|
|
39
54
|
}
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
* Return true when the input is a valid PlainDate or PlainDateTime ISO string.
|
|
3
3
|
*
|
|
4
4
|
* - Accepts both PlainDate ("2024-02-29") and PlainDateTime ("2024-02-29T12:34:56") formats.
|
|
5
|
-
* -
|
|
5
|
+
* - The part before the first annotation must match `plainDate` or `plainDateTime`.
|
|
6
|
+
* - Reads RFC 9557 annotations as `Temporal.PlainDate.from` / `Temporal.PlainDateTime.from` do:
|
|
7
|
+
* elective ones and a time zone annotation are ignored, an unknown critical one is rejected, and
|
|
8
|
+
* the calendar must be ISO.
|
|
6
9
|
* - Rejects leap seconds and invalid dates/times.
|
|
7
10
|
*
|
|
8
11
|
* @param value ISO PlainDate or PlainDateTime string
|
|
@@ -13,5 +16,7 @@
|
|
|
13
16
|
* @example isValidIsoDateLike("2024-02-29T12:34:56") // true
|
|
14
17
|
* @example isValidIsoDateLike("2024-02-29T24:00:00") // false (invalid time)
|
|
15
18
|
* @example isValidIsoDateLike("2024-12-31T23:59:60") // false (leap second)
|
|
19
|
+
* @example isValidIsoDateLike("2024-02-29[u-ca=iso8601]") // true
|
|
20
|
+
* @example isValidIsoDateLike("2024-02-29[u-ca=hebrew]") // false (non-ISO calendar)
|
|
16
21
|
*/
|
|
17
22
|
export declare function isValidIsoDateLike(value: string): boolean;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { isoStringBody } from "../../internal/isoStringBody.js";
|
|
2
3
|
import { plainDate, plainDateTime } from "../../regex/index.js";
|
|
3
4
|
import { isLeapSecond } from "./isLeapSecond.js";
|
|
4
5
|
/**
|
|
5
6
|
* Return true when the input is a valid PlainDate or PlainDateTime ISO string.
|
|
6
7
|
*
|
|
7
8
|
* - Accepts both PlainDate ("2024-02-29") and PlainDateTime ("2024-02-29T12:34:56") formats.
|
|
8
|
-
* -
|
|
9
|
+
* - The part before the first annotation must match `plainDate` or `plainDateTime`.
|
|
10
|
+
* - Reads RFC 9557 annotations as `Temporal.PlainDate.from` / `Temporal.PlainDateTime.from` do:
|
|
11
|
+
* elective ones and a time zone annotation are ignored, an unknown critical one is rejected, and
|
|
12
|
+
* the calendar must be ISO.
|
|
9
13
|
* - Rejects leap seconds and invalid dates/times.
|
|
10
14
|
*
|
|
11
15
|
* @param value ISO PlainDate or PlainDateTime string
|
|
@@ -16,24 +20,25 @@ import { isLeapSecond } from "./isLeapSecond.js";
|
|
|
16
20
|
* @example isValidIsoDateLike("2024-02-29T12:34:56") // true
|
|
17
21
|
* @example isValidIsoDateLike("2024-02-29T24:00:00") // false (invalid time)
|
|
18
22
|
* @example isValidIsoDateLike("2024-12-31T23:59:60") // false (leap second)
|
|
23
|
+
* @example isValidIsoDateLike("2024-02-29[u-ca=iso8601]") // true
|
|
24
|
+
* @example isValidIsoDateLike("2024-02-29[u-ca=hebrew]") // false (non-ISO calendar)
|
|
19
25
|
*/
|
|
20
26
|
export function isValidIsoDateLike(value) {
|
|
21
|
-
|
|
27
|
+
const body = isoStringBody(value);
|
|
28
|
+
if (isLeapSecond(body)) {
|
|
22
29
|
return false;
|
|
23
30
|
}
|
|
24
|
-
if (plainDate.test(
|
|
31
|
+
if (plainDate.test(body)) {
|
|
25
32
|
try {
|
|
26
|
-
Temporal.PlainDate.from(value);
|
|
27
|
-
return true;
|
|
33
|
+
return Temporal.PlainDate.from(value).calendarId === "iso8601";
|
|
28
34
|
}
|
|
29
35
|
catch {
|
|
30
36
|
return false;
|
|
31
37
|
}
|
|
32
38
|
}
|
|
33
|
-
if (plainDateTime.test(
|
|
39
|
+
if (plainDateTime.test(body)) {
|
|
34
40
|
try {
|
|
35
|
-
Temporal.PlainDateTime.from(value);
|
|
36
|
-
return true;
|
|
41
|
+
return Temporal.PlainDateTime.from(value).calendarId === "iso8601";
|
|
37
42
|
}
|
|
38
43
|
catch {
|
|
39
44
|
return false;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Return true when `value` is a valid ISO PlainTime string.
|
|
3
3
|
*
|
|
4
|
-
* -
|
|
4
|
+
* - The part before the first annotation must match `plainTime`.
|
|
5
|
+
* - Reads RFC 9557 annotations as `Temporal.PlainTime.from` does: elective ones (`[foo=bar]`), a
|
|
6
|
+
* time zone annotation and a calendar annotation are ignored (a time has no calendar), and an
|
|
7
|
+
* unknown critical one (`[!foo=bar]`) is rejected.
|
|
5
8
|
* - Rejects leap seconds (e.g., "23:59:60").
|
|
6
9
|
* - Rejects invalid times (e.g., "24:00:00", "23:60:00").
|
|
7
10
|
*
|
|
@@ -10,6 +13,8 @@
|
|
|
10
13
|
*
|
|
11
14
|
* @example isValidTime("12:34:56") // true
|
|
12
15
|
* @example isValidTime("24:00:00") // false (invalid hour)
|
|
16
|
+
* @example isValidTime("12:34:56[u-ca=hebrew]") // true (calendar annotation ignored)
|
|
17
|
+
* @example isValidTime("12:34:56[!foo=bar]") // false (unknown critical annotation)
|
|
13
18
|
* @example isValidTime("23:60:00") // false (invalid minute)
|
|
14
19
|
* @example isValidTime("23:59:60") // false (leap second)
|
|
15
20
|
*/
|