@northguild/gmt 1.14.2 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +887 -277
- package/dist/calendar/business/businessDaysBetween.d.ts +37 -0
- package/dist/calendar/business/businessDaysBetween.js +89 -0
- package/dist/calendar/business/index.d.ts +7 -0
- package/dist/calendar/business/index.js +10 -0
- package/dist/calendar/business/mergeCalendars.d.ts +33 -0
- package/dist/calendar/business/mergeCalendars.js +68 -0
- package/dist/calendar/business/nextBusinessDay.d.ts +30 -0
- package/dist/calendar/business/nextBusinessDay.js +39 -0
- package/dist/calendar/business/previousBusinessDay.d.ts +30 -0
- package/dist/calendar/business/previousBusinessDay.js +39 -0
- package/dist/calendar/business/rollDate.d.ts +59 -0
- package/dist/calendar/business/rollDate.js +116 -0
- package/dist/calendar/calculate/bucketRange.d.ts +49 -0
- package/dist/calendar/calculate/bucketRange.js +169 -0
- package/dist/calendar/calculate/floorToZone.d.ts +42 -0
- package/dist/calendar/calculate/floorToZone.js +62 -0
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +64 -0
- package/dist/calendar/calculate/getFiscalPeriod.js +96 -0
- package/dist/calendar/calculate/getIsoWeekDate.d.ts +35 -0
- package/dist/calendar/calculate/getIsoWeekDate.js +41 -0
- package/dist/calendar/calculate/getOrdinalDate.d.ts +25 -0
- package/dist/calendar/calculate/getOrdinalDate.js +28 -0
- package/dist/calendar/calculate/getQuarter.d.ts +36 -0
- package/dist/calendar/calculate/getQuarter.js +64 -0
- package/dist/calendar/calculate/index.d.ts +6 -0
- package/dist/calendar/calculate/index.js +6 -0
- package/dist/calendar/index.d.ts +4 -0
- package/dist/calendar/index.js +5 -0
- package/dist/calendar/validate/index.d.ts +4 -0
- package/dist/calendar/validate/index.js +4 -0
- package/dist/calendar/validate/isValidBusinessCalendar.d.ts +31 -0
- package/dist/calendar/validate/isValidBusinessCalendar.js +40 -0
- package/dist/calendar/validate/isValidFiscalPattern.d.ts +25 -0
- package/dist/calendar/validate/isValidFiscalPattern.js +29 -0
- package/dist/calendar/validate/isValidRollConvention.d.ts +28 -0
- package/dist/calendar/validate/isValidRollConvention.js +38 -0
- package/dist/calendar/validate/isValidZoneBucketUnit.d.ts +31 -0
- package/dist/calendar/validate/isValidZoneBucketUnit.js +39 -0
- package/dist/duration/calculate/durationAs.d.ts +27 -3
- package/dist/duration/calculate/durationAs.js +34 -8
- package/dist/duration/calculate/getDurationUnit.d.ts +5 -2
- package/dist/duration/calculate/getDurationUnit.js +7 -3
- package/dist/duration/compare/compareDurations.d.ts +25 -2
- package/dist/duration/compare/compareDurations.js +31 -7
- package/dist/duration/format/formatDuration.d.ts +14 -5
- package/dist/duration/format/formatDuration.js +47 -11
- package/dist/duration/index.d.ts +1 -0
- package/dist/duration/index.js +2 -0
- package/dist/duration/normalize/normalizeDuration.d.ts +33 -6
- package/dist/duration/normalize/normalizeDuration.js +41 -12
- package/dist/duration/parse/parseDuration.js +4 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -0
- package/dist/instant/convert/classifyLocal.d.ts +50 -0
- package/dist/instant/convert/classifyLocal.js +60 -0
- package/dist/instant/convert/fromOffsetInstant.d.ts +47 -0
- package/dist/instant/convert/fromOffsetInstant.js +99 -0
- package/dist/instant/convert/index.d.ts +4 -0
- package/dist/instant/convert/index.js +4 -0
- package/dist/instant/convert/resolveLocal.d.ts +40 -0
- package/dist/instant/convert/resolveLocal.js +76 -0
- package/dist/instant/convert/toOffsetInstant.d.ts +73 -0
- package/dist/instant/convert/toOffsetInstant.js +185 -0
- package/dist/instant/index.d.ts +2 -0
- package/dist/instant/index.js +3 -0
- package/dist/internal/adjustZonedBusinessDays.js +9 -7
- package/dist/internal/businessCalendar.d.ts +46 -0
- package/dist/internal/businessCalendar.js +230 -0
- package/dist/internal/businessDayValues.d.ts +20 -0
- package/dist/internal/businessDayValues.js +54 -0
- package/dist/internal/calendarDatePairPolicy.d.ts +10 -12
- package/dist/internal/calendarDatePairPolicy.js +13 -19
- package/dist/internal/calendarDateString.d.ts +32 -58
- package/dist/internal/calendarDateString.js +51 -93
- package/dist/internal/calendarSystemIds.d.ts +26 -2
- package/dist/internal/calendarSystemIds.js +57 -51
- package/dist/internal/calendarValueOfDate.d.ts +10 -12
- package/dist/internal/calendarValueOfDate.js +22 -20
- package/dist/internal/calendarValueOfZoned.d.ts +14 -17
- package/dist/internal/calendarValueOfZoned.js +25 -25
- package/dist/internal/calendarZonedPairPolicy.d.ts +11 -18
- package/dist/internal/calendarZonedPairPolicy.js +14 -25
- package/dist/internal/calendarZonedString.d.ts +41 -65
- package/dist/internal/calendarZonedString.js +52 -101
- package/dist/internal/compareUnixEpochs.d.ts +14 -0
- package/dist/internal/compareUnixEpochs.js +25 -0
- package/dist/internal/dateTimeUnitHelpers.d.ts +18 -0
- package/dist/internal/dateTimeUnitHelpers.js +27 -0
- package/dist/internal/dateUnitHelpers.d.ts +39 -1
- package/dist/internal/dateUnitHelpers.js +73 -11
- package/dist/internal/defaultFractionalDigits.d.ts +14 -0
- package/dist/internal/defaultFractionalDigits.js +23 -0
- package/dist/internal/differenceRecord.d.ts +32 -0
- package/dist/internal/differenceRecord.js +79 -0
- package/dist/internal/divisionBoundary.d.ts +19 -0
- package/dist/internal/divisionBoundary.js +23 -0
- package/dist/internal/durationUntilString.d.ts +1 -1
- package/dist/internal/durationUntilString.js +10 -2
- package/dist/internal/englishCalendarNames.d.ts +11 -0
- package/dist/internal/englishCalendarNames.js +21 -1
- package/dist/internal/epochNanoseconds.d.ts +27 -0
- package/dist/internal/epochNanoseconds.js +31 -0
- package/dist/internal/fiscalCalendar.d.ts +36 -0
- package/dist/internal/fiscalCalendar.js +86 -0
- package/dist/internal/floorDivide.d.ts +15 -0
- package/dist/internal/floorDivide.js +18 -0
- package/dist/internal/foreignEpochs.d.ts +134 -0
- package/dist/internal/foreignEpochs.js +139 -0
- package/dist/internal/formatCalendarDays.d.ts +28 -0
- package/dist/internal/formatCalendarDays.js +49 -0
- package/dist/internal/formatDateInCalendar.d.ts +14 -39
- package/dist/internal/formatDateInCalendar.js +16 -47
- package/dist/internal/formatRelativeDuration.d.ts +27 -0
- package/dist/internal/formatRelativeDuration.js +45 -0
- package/dist/internal/getLocaleFirstDayOfWeek.d.ts +9 -6
- package/dist/internal/getLocaleFirstDayOfWeek.js +9 -10
- package/dist/internal/getLocaleWeekYearBounds.d.ts +17 -9
- package/dist/internal/getLocaleWeekYearBounds.js +45 -26
- package/dist/internal/getLocaleWeekendDays.d.ts +9 -18
- package/dist/internal/getLocaleWeekendDays.js +9 -5
- package/dist/internal/halfOpenIntervals.d.ts +102 -0
- package/dist/internal/halfOpenIntervals.js +180 -0
- package/dist/internal/hasCalendarAnnotation.d.ts +20 -20
- package/dist/internal/hasCalendarAnnotation.js +23 -21
- package/dist/internal/hourDurationString.d.ts +16 -0
- package/dist/internal/hourDurationString.js +47 -0
- package/dist/internal/httpDateFields.d.ts +24 -0
- package/dist/internal/httpDateFields.js +86 -0
- package/dist/internal/index.d.ts +28 -9
- package/dist/internal/index.js +28 -9
- package/dist/internal/instantFormatOptions.d.ts +43 -0
- package/dist/internal/instantFormatOptions.js +99 -0
- package/dist/internal/instantIntervalText.d.ts +20 -0
- package/dist/internal/instantIntervalText.js +25 -0
- package/dist/internal/instantNanoseconds.d.ts +25 -0
- package/dist/internal/instantNanoseconds.js +41 -0
- package/dist/internal/intervalCountHelpers.d.ts +16 -10
- package/dist/internal/intervalCountHelpers.js +1 -31
- package/dist/internal/intervalNanoseconds.d.ts +47 -0
- package/dist/internal/intervalNanoseconds.js +86 -0
- package/dist/internal/isObject.d.ts +26 -0
- package/dist/internal/isObject.js +30 -0
- package/dist/internal/isoStringBody.d.ts +40 -0
- package/dist/internal/isoStringBody.js +85 -0
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/localeWeekInfo.d.ts +34 -0
- package/dist/internal/localeWeekInfo.js +27 -0
- package/dist/internal/maxPieces.d.ts +41 -0
- package/dist/internal/maxPieces.js +53 -0
- package/dist/internal/measureNearRangeEnd.d.ts +26 -0
- package/dist/internal/measureNearRangeEnd.js +47 -0
- package/dist/internal/monthGridWeekRow.d.ts +4 -1
- package/dist/internal/monthGridWeekRow.js +3 -0
- package/dist/internal/normalizeTimeZone.d.ts +17 -10
- package/dist/internal/normalizeTimeZone.js +25 -15
- package/dist/internal/patternToken.d.ts +2 -1
- package/dist/internal/patternToken.js +10 -4
- package/dist/internal/plainDateAdd.d.ts +20 -0
- package/dist/internal/plainDateAdd.js +42 -0
- package/dist/internal/plainDateUntil.d.ts +21 -0
- package/dist/internal/plainDateUntil.js +48 -0
- package/dist/internal/plainFormatOptions.d.ts +59 -0
- package/dist/internal/plainFormatOptions.js +165 -0
- package/dist/internal/resolveDateTimeUnit.d.ts +4 -1
- package/dist/internal/resolveDateTimeUnit.js +2 -12
- package/dist/internal/resolveDurationRelativeTo.d.ts +28 -22
- package/dist/internal/resolveDurationRelativeTo.js +69 -25
- package/dist/internal/resolveDurationUnit.d.ts +4 -1
- package/dist/internal/resolveDurationUnit.js +2 -11
- package/dist/internal/resolveLocale.d.ts +37 -0
- package/dist/internal/resolveLocale.js +59 -0
- package/dist/internal/resolveManualRoundingOptions.d.ts +23 -0
- package/dist/internal/resolveManualRoundingOptions.js +39 -0
- package/dist/internal/resolveMinimalDaysInFirstWeek.d.ts +19 -0
- package/dist/internal/resolveMinimalDaysInFirstWeek.js +28 -0
- package/dist/internal/resolveOverflow.d.ts +6 -0
- package/dist/internal/resolveOverflow.js +7 -1
- package/dist/internal/resolveReadingTimeZone.d.ts +11 -0
- package/dist/internal/resolveReadingTimeZone.js +18 -0
- package/dist/internal/resolveUnixIntervalPair.d.ts +30 -0
- package/dist/internal/resolveUnixIntervalPair.js +53 -0
- package/dist/internal/resolveWeekStartsOn.d.ts +12 -0
- package/dist/internal/resolveWeekStartsOn.js +18 -0
- package/dist/internal/rfc5322DateTime.d.ts +26 -0
- package/dist/internal/rfc5322DateTime.js +176 -0
- package/dist/internal/splitStep.d.ts +81 -0
- package/dist/internal/splitStep.js +182 -0
- package/dist/internal/startOrEndOfUnix.d.ts +26 -0
- package/dist/internal/startOrEndOfUnix.js +47 -0
- package/dist/internal/startOrEndOfUtc.d.ts +27 -0
- package/dist/{utc/calculate → internal}/startOrEndOfUtc.js +45 -24
- package/dist/internal/startOrEndOfZoned.d.ts +22 -0
- package/dist/internal/startOrEndOfZoned.js +49 -0
- package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +33 -0
- package/dist/internal/temporalCompat/calendarDateArithmetic.js +199 -0
- package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +36 -0
- package/dist/internal/temporalCompat/calendarDateFromFields.js +120 -0
- package/dist/internal/temporalCompat/calendarFields.d.ts +25 -0
- package/dist/internal/temporalCompat/calendarFields.js +131 -0
- package/dist/internal/temporalCompat/capabilities.d.ts +28 -0
- package/dist/internal/temporalCompat/capabilities.js +74 -0
- package/dist/internal/temporalCompat/fieldSearch.d.ts +21 -0
- package/dist/internal/temporalCompat/fieldSearch.js +83 -0
- package/dist/internal/temporalCompat/fixedDay.d.ts +25 -0
- package/dist/internal/temporalCompat/fixedDay.js +45 -0
- package/dist/internal/temporalCompat/hebrewArithmetic.d.ts +19 -0
- package/dist/internal/temporalCompat/hebrewArithmetic.js +150 -0
- package/dist/internal/temporalCompat/index.d.ts +4 -0
- package/dist/internal/temporalCompat/index.js +5 -0
- package/dist/internal/temporalCompat/indianArithmetic.d.ts +16 -0
- package/dist/internal/temporalCompat/indianArithmetic.js +87 -0
- package/dist/internal/temporalCompat/largeMonthSpan.d.ts +19 -0
- package/dist/internal/temporalCompat/largeMonthSpan.js +199 -0
- package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +59 -0
- package/dist/internal/temporalCompat/nonIsoArithmetic.js +220 -0
- package/dist/internal/temporalCompat/readArithmeticModel.d.ts +3 -0
- package/dist/internal/temporalCompat/readArithmeticModel.js +284 -0
- package/dist/internal/temporalCompat/repros.d.ts +31 -0
- package/dist/internal/temporalCompat/repros.js +556 -0
- package/dist/internal/toInstantFromUtc.d.ts +10 -0
- package/dist/internal/toInstantFromUtc.js +19 -0
- package/dist/internal/unixEpochValue.d.ts +166 -0
- package/dist/internal/unixEpochValue.js +245 -0
- package/dist/internal/unixFormatReference.d.ts +18 -0
- package/dist/internal/unixFormatReference.js +44 -0
- package/dist/internal/unixZonedDateTime.d.ts +22 -0
- package/dist/internal/unixZonedDateTime.js +32 -0
- package/dist/internal/utcOffsetString.d.ts +39 -0
- package/dist/internal/utcOffsetString.js +75 -0
- package/dist/internal/utcZonedDateTime.d.ts +16 -0
- package/dist/internal/utcZonedDateTime.js +28 -0
- package/dist/internal/zonedBucket.d.ts +91 -0
- package/dist/internal/zonedBucket.js +441 -0
- package/dist/internal/zonedFormatReference.d.ts +15 -0
- package/dist/internal/zonedFormatReference.js +24 -0
- package/dist/internal/zonedLocalDates.d.ts +15 -0
- package/dist/internal/zonedLocalDates.js +58 -0
- package/dist/internal/zonedNowUnitValue.d.ts +24 -0
- package/dist/internal/zonedNowUnitValue.js +58 -0
- package/dist/internal/zonedWallClock.d.ts +84 -0
- package/dist/internal/zonedWallClock.js +427 -0
- package/dist/internal/zonedWallClockDifference.d.ts +92 -0
- package/dist/internal/zonedWallClockDifference.js +1173 -0
- package/dist/internal/zonedWallClockOperations.d.ts +132 -0
- package/dist/internal/zonedWallClockOperations.js +553 -0
- package/dist/internal/zonelessCalendarDate.d.ts +12 -0
- package/dist/internal/zonelessCalendarDate.js +22 -0
- package/dist/interval/calculate/clampInterval.d.ts +22 -0
- package/dist/interval/calculate/clampInterval.js +31 -0
- package/dist/interval/calculate/index.d.ts +6 -0
- package/dist/interval/calculate/index.js +6 -0
- package/dist/interval/calculate/intersectIntervals.d.ts +23 -0
- package/dist/interval/calculate/intersectIntervals.js +43 -0
- package/dist/interval/calculate/mergeIntervals.d.ts +28 -0
- package/dist/interval/calculate/mergeIntervals.js +44 -0
- package/dist/interval/calculate/splitIntervalAt.d.ts +28 -0
- package/dist/interval/calculate/splitIntervalAt.js +63 -0
- package/dist/interval/calculate/subtractIntervals.d.ts +31 -0
- package/dist/interval/calculate/subtractIntervals.js +64 -0
- package/dist/interval/calculate/sumIntervals.d.ts +26 -0
- package/dist/interval/calculate/sumIntervals.js +40 -0
- package/dist/interval/compare/index.d.ts +2 -0
- package/dist/interval/compare/index.js +2 -0
- package/dist/interval/compare/intervalContains.d.ts +25 -0
- package/dist/interval/compare/intervalContains.js +39 -0
- package/dist/interval/compare/intervalsOverlap.d.ts +28 -0
- package/dist/interval/compare/intervalsOverlap.js +42 -0
- package/dist/interval/index.d.ts +4 -0
- package/dist/interval/index.js +5 -0
- package/dist/interval/validate/index.d.ts +1 -0
- package/dist/interval/validate/index.js +1 -0
- package/dist/interval/validate/isValidInterval.d.ts +29 -0
- package/dist/interval/validate/isValidInterval.js +38 -0
- package/dist/plain/calculate/addBusinessDays.d.ts +26 -9
- package/dist/plain/calculate/addBusinessDays.js +29 -21
- package/dist/plain/calculate/addDate.d.ts +9 -8
- package/dist/plain/calculate/addDate.js +35 -22
- package/dist/plain/calculate/addDateTime.js +24 -10
- package/dist/plain/calculate/addTime.d.ts +5 -8
- package/dist/plain/calculate/addTime.js +23 -16
- package/dist/plain/calculate/clampDate.js +3 -3
- package/dist/plain/calculate/closestDateTo.d.ts +11 -7
- package/dist/plain/calculate/closestDateTo.js +36 -24
- package/dist/plain/calculate/cycleDate.d.ts +1 -1
- package/dist/plain/calculate/cycleDate.js +10 -3
- package/dist/plain/calculate/cycleDateTime.d.ts +1 -1
- package/dist/plain/calculate/cycleDateTime.js +10 -3
- package/dist/plain/calculate/cycleTime.d.ts +6 -8
- package/dist/plain/calculate/cycleTime.js +15 -9
- package/dist/plain/calculate/diffDate.d.ts +31 -14
- package/dist/plain/calculate/diffDate.js +73 -38
- package/dist/plain/calculate/diffDateAsDuration.d.ts +13 -8
- package/dist/plain/calculate/diffDateAsDuration.js +23 -10
- package/dist/plain/calculate/diffDateTime.d.ts +17 -5
- package/dist/plain/calculate/diffDateTime.js +67 -28
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +2 -2
- package/dist/plain/calculate/diffDateTimeAsDuration.js +10 -3
- package/dist/plain/calculate/diffTime.d.ts +18 -5
- package/dist/plain/calculate/diffTime.js +68 -27
- package/dist/plain/calculate/endOfDate.d.ts +10 -2
- package/dist/plain/calculate/endOfDate.js +52 -27
- package/dist/plain/calculate/endOfDateTime.d.ts +17 -2
- package/dist/plain/calculate/endOfDateTime.js +126 -103
- package/dist/plain/calculate/endOfTime.d.ts +16 -2
- package/dist/plain/calculate/endOfTime.js +77 -59
- package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +13 -5
- package/dist/plain/calculate/getLargestDateDurationUnit.js +26 -10
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +13 -6
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.js +37 -22
- package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +13 -6
- package/dist/plain/calculate/getLargestTimeDurationUnit.js +33 -18
- package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +8 -4
- package/dist/plain/calculate/getLocaleDayOfWeek.js +8 -3
- package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +8 -4
- package/dist/plain/calculate/getLocaleEndOfWeek.js +8 -3
- package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +8 -4
- package/dist/plain/calculate/getLocaleStartOfWeek.js +8 -3
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +29 -19
- package/dist/plain/calculate/getLocaleWeekYear.js +48 -28
- package/dist/plain/calculate/getWeekNumber.d.ts +21 -2
- package/dist/plain/calculate/getWeekNumber.js +33 -12
- package/dist/plain/calculate/getWeekOfMonth.d.ts +4 -2
- package/dist/plain/calculate/getWeekOfMonth.js +8 -3
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +25 -14
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +45 -25
- package/dist/plain/calculate/getWeeksInMonth.d.ts +4 -2
- package/dist/plain/calculate/getWeeksInMonth.js +8 -3
- package/dist/plain/calculate/getWeeksInYear.d.ts +5 -4
- package/dist/plain/calculate/getWeeksInYear.js +9 -14
- package/dist/plain/calculate/index.d.ts +2 -1
- package/dist/plain/calculate/index.js +2 -1
- package/dist/plain/calculate/maxDate.js +19 -12
- package/dist/plain/calculate/maxDateTime.js +19 -12
- package/dist/plain/calculate/maxTime.js +19 -12
- package/dist/plain/calculate/minDate.js +19 -12
- package/dist/plain/calculate/minDateTime.js +19 -12
- package/dist/plain/calculate/minTime.js +19 -12
- package/dist/plain/calculate/nextWeekday.js +5 -0
- package/dist/plain/calculate/previousWeekday.js +5 -0
- package/dist/plain/calculate/roundDate.d.ts +23 -5
- package/dist/plain/calculate/roundDate.js +88 -46
- package/dist/plain/calculate/roundDateTime.d.ts +27 -3
- package/dist/plain/calculate/roundDateTime.js +128 -69
- package/dist/plain/calculate/roundTime.d.ts +8 -1
- package/dist/plain/calculate/roundTime.js +32 -17
- package/dist/plain/calculate/setDate.js +4 -0
- package/dist/plain/calculate/setDateTime.js +4 -0
- package/dist/plain/calculate/setTime.d.ts +1 -1
- package/dist/plain/calculate/setTime.js +5 -1
- package/dist/plain/calculate/sortDateTimes.js +17 -10
- package/dist/plain/calculate/sortDates.js +17 -10
- package/dist/plain/calculate/sortTimes.js +17 -10
- package/dist/plain/calculate/startOfDate.d.ts +7 -2
- package/dist/plain/calculate/startOfDate.js +52 -27
- package/dist/plain/calculate/startOfDateTime.d.ts +5 -2
- package/dist/plain/calculate/startOfDateTime.js +81 -62
- package/dist/plain/calculate/startOfQuarterForDateTime.d.ts +2 -0
- package/dist/plain/calculate/startOfQuarterForDateTime.js +12 -1
- package/dist/plain/calculate/startOfTime.d.ts +15 -2
- package/dist/plain/calculate/startOfTime.js +33 -37
- package/dist/plain/calculate/subtractBusinessDays.d.ts +25 -10
- package/dist/plain/calculate/subtractBusinessDays.js +28 -22
- package/dist/plain/calculate/subtractDate.d.ts +8 -7
- package/dist/plain/calculate/subtractDate.js +35 -21
- package/dist/plain/calculate/subtractDateTime.js +24 -10
- package/dist/plain/calculate/subtractTime.d.ts +5 -8
- package/dist/plain/calculate/subtractTime.js +23 -16
- package/dist/plain/calculate/{weekOfYear.d.ts → weekOfYearForDate.d.ts} +0 -14
- package/dist/plain/calculate/weekOfYearForDate.js +28 -0
- package/dist/plain/calculate/weekOfYearForDateTime.d.ts +14 -0
- package/dist/plain/calculate/{weekOfYear.js → weekOfYearForDateTime.js} +1 -27
- package/dist/plain/chop/index.d.ts +0 -1
- package/dist/plain/chop/index.js +0 -1
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +10 -5
- package/dist/plain/compare/areDateTimesEqualBy.js +35 -10
- package/dist/plain/compare/areDatesEqualBy.d.ts +10 -3
- package/dist/plain/compare/areDatesEqualBy.js +41 -14
- package/dist/plain/compare/isBetweenDate.js +32 -16
- package/dist/plain/compare/isBetweenDateTime.js +34 -18
- package/dist/plain/compare/isBetweenTime.js +32 -16
- package/dist/plain/compare/isBusinessDay.d.ts +25 -11
- package/dist/plain/compare/isBusinessDay.js +36 -15
- package/dist/plain/compare/isThisUnit.d.ts +13 -4
- package/dist/plain/compare/isThisUnit.js +33 -13
- package/dist/plain/compare/isWeekend.d.ts +8 -4
- package/dist/plain/compare/isWeekend.js +7 -3
- package/dist/plain/convert/convertDateToCalendar.d.ts +34 -33
- package/dist/plain/convert/convertDateToCalendar.js +41 -40
- package/dist/plain/format/formatCalendar.d.ts +14 -8
- package/dist/plain/format/formatCalendar.js +47 -25
- package/dist/plain/format/formatDate.d.ts +22 -4
- package/dist/plain/format/formatDate.js +37 -5
- package/dist/plain/format/formatDateRange.d.ts +18 -4
- package/dist/plain/format/formatDateRange.js +29 -5
- package/dist/plain/format/formatDateTime.d.ts +23 -4
- package/dist/plain/format/formatDateTime.js +31 -5
- package/dist/plain/format/formatDateTimeRange.d.ts +21 -4
- package/dist/plain/format/formatDateTimeRange.js +29 -5
- package/dist/plain/format/formatDateTimeToParts.d.ts +33 -6
- package/dist/plain/format/formatDateTimeToParts.js +40 -14
- package/dist/plain/format/formatDateToParts.d.ts +25 -3
- package/dist/plain/format/formatDateToParts.js +36 -11
- package/dist/plain/format/formatRelativeDate.d.ts +10 -17
- package/dist/plain/format/formatRelativeDate.js +39 -24
- package/dist/plain/format/formatRelativeDateTime.d.ts +18 -20
- package/dist/plain/format/formatRelativeDateTime.js +35 -33
- package/dist/plain/format/formatRelativeTime.d.ts +11 -18
- package/dist/plain/format/formatRelativeTime.js +36 -21
- package/dist/plain/format/formatSql.d.ts +15 -10
- package/dist/plain/format/formatSql.js +20 -11
- package/dist/plain/format/formatTime.d.ts +19 -4
- package/dist/plain/format/formatTime.js +32 -5
- package/dist/plain/get/getNowUnit.d.ts +5 -3
- package/dist/plain/get/getNowUnit.js +14 -29
- package/dist/plain/index.js +1 -1
- package/dist/plain/interval/intervalAbutsDate.d.ts +12 -7
- package/dist/plain/interval/intervalAbutsDate.js +15 -19
- package/dist/plain/interval/intervalAbutsDateTime.d.ts +9 -7
- package/dist/plain/interval/intervalAbutsDateTime.js +17 -23
- package/dist/plain/interval/intervalAbutsTime.d.ts +11 -5
- package/dist/plain/interval/intervalAbutsTime.js +19 -21
- package/dist/plain/interval/intervalContainsDate.d.ts +17 -10
- package/dist/plain/interval/intervalContainsDate.js +20 -15
- package/dist/plain/interval/intervalContainsDateTime.d.ts +16 -11
- package/dist/plain/interval/intervalContainsDateTime.js +24 -20
- package/dist/plain/interval/intervalContainsTime.d.ts +20 -10
- package/dist/plain/interval/intervalContainsTime.js +28 -19
- package/dist/plain/interval/intervalCountDate.d.ts +13 -8
- package/dist/plain/interval/intervalCountDate.js +46 -14
- package/dist/plain/interval/intervalCountDateTime.d.ts +6 -4
- package/dist/plain/interval/intervalCountDateTime.js +63 -18
- package/dist/plain/interval/intervalCountTime.d.ts +3 -4
- package/dist/plain/interval/intervalCountTime.js +9 -9
- package/dist/plain/interval/intervalDifferenceDate.d.ts +13 -6
- package/dist/plain/interval/intervalDifferenceDate.js +19 -32
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +10 -4
- package/dist/plain/interval/intervalDifferenceDateTime.js +21 -27
- package/dist/plain/interval/intervalDifferenceTime.d.ts +11 -4
- package/dist/plain/interval/intervalDifferenceTime.js +22 -27
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +16 -4
- package/dist/plain/interval/intervalDivideEquallyDate.js +57 -33
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +16 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +67 -31
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +16 -4
- package/dist/plain/interval/intervalDivideEquallyTime.js +58 -31
- package/dist/plain/interval/intervalEngulfsDate.d.ts +16 -9
- package/dist/plain/interval/intervalEngulfsDate.js +19 -12
- package/dist/plain/interval/intervalEngulfsDateTime.d.ts +16 -11
- package/dist/plain/interval/intervalEngulfsDateTime.js +24 -18
- package/dist/plain/interval/intervalEngulfsTime.d.ts +18 -8
- package/dist/plain/interval/intervalEngulfsTime.js +26 -15
- package/dist/plain/interval/intervalFromDurationDate.d.ts +5 -4
- package/dist/plain/interval/intervalFromDurationDate.js +11 -8
- package/dist/plain/interval/intervalFromDurationDateTime.js +4 -0
- package/dist/plain/interval/intervalFromDurationTime.d.ts +10 -12
- package/dist/plain/interval/intervalFromDurationTime.js +28 -17
- package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -4
- package/dist/plain/interval/intervalIntersectionDate.js +14 -9
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -4
- package/dist/plain/interval/intervalIntersectionDateTime.js +19 -13
- package/dist/plain/interval/intervalIntersectionTime.d.ts +7 -3
- package/dist/plain/interval/intervalIntersectionTime.js +17 -12
- package/dist/plain/interval/intervalLengthDate.d.ts +9 -6
- package/dist/plain/interval/intervalLengthDate.js +40 -8
- package/dist/plain/interval/intervalLengthDateTime.js +2 -2
- package/dist/plain/interval/intervalOverlappingDaysDate.d.ts +16 -17
- package/dist/plain/interval/intervalOverlappingDaysDate.js +30 -30
- package/dist/plain/interval/intervalOverlappingDaysDateTime.d.ts +7 -12
- package/dist/plain/interval/intervalOverlappingDaysDateTime.js +24 -24
- package/dist/plain/interval/intervalSplitAtDate.d.ts +10 -5
- package/dist/plain/interval/intervalSplitAtDate.js +48 -36
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +9 -4
- package/dist/plain/interval/intervalSplitAtDateTime.js +44 -32
- package/dist/plain/interval/intervalSplitAtTime.d.ts +9 -4
- package/dist/plain/interval/intervalSplitAtTime.js +44 -32
- package/dist/plain/interval/intervalUnionDate.d.ts +14 -6
- package/dist/plain/interval/intervalUnionDate.js +19 -11
- package/dist/plain/interval/intervalUnionDateTime.d.ts +12 -5
- package/dist/plain/interval/intervalUnionDateTime.js +22 -14
- package/dist/plain/interval/intervalUnionTime.d.ts +10 -3
- package/dist/plain/interval/intervalUnionTime.js +20 -12
- package/dist/plain/interval/intervalXorAllDate.d.ts +11 -10
- package/dist/plain/interval/intervalXorAllDate.js +37 -59
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +7 -5
- package/dist/plain/interval/intervalXorAllDateTime.js +28 -48
- package/dist/plain/interval/intervalXorAllTime.d.ts +8 -4
- package/dist/plain/interval/intervalXorAllTime.js +29 -47
- package/dist/plain/interval/intervalXorDate.d.ts +10 -9
- package/dist/plain/interval/intervalXorDate.js +19 -54
- package/dist/plain/interval/intervalXorDateTime.d.ts +9 -7
- package/dist/plain/interval/intervalXorDateTime.js +23 -50
- package/dist/plain/interval/intervalXorTime.d.ts +8 -7
- package/dist/plain/interval/intervalXorTime.js +22 -50
- package/dist/plain/interval/intervalsOverlapDate.d.ts +14 -7
- package/dist/plain/interval/intervalsOverlapDate.js +17 -10
- package/dist/plain/interval/intervalsOverlapDateTime.d.ts +12 -7
- package/dist/plain/interval/intervalsOverlapDateTime.js +20 -14
- package/dist/plain/interval/intervalsOverlapTime.d.ts +10 -5
- package/dist/plain/interval/intervalsOverlapTime.js +18 -12
- package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -5
- package/dist/plain/interval/mergeIntervalsDate.js +37 -38
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +7 -3
- package/dist/plain/interval/mergeIntervalsDateTime.js +31 -32
- package/dist/plain/interval/mergeIntervalsTime.d.ts +7 -3
- package/dist/plain/interval/mergeIntervalsTime.js +31 -31
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +26 -6
- package/dist/plain/interval/splitIntervalByUnitDate.js +76 -43
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -2
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +65 -39
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +18 -2
- package/dist/plain/interval/splitIntervalByUnitTime.js +76 -39
- package/dist/plain/interval/validate/isValidDateInterval.d.ts +4 -2
- package/dist/plain/interval/validate/isValidDateInterval.js +4 -2
- package/dist/plain/interval/validate/isValidDateTimeInterval.d.ts +5 -0
- package/dist/plain/interval/validate/isValidDateTimeInterval.js +7 -2
- package/dist/plain/interval/validate/isValidTimeInterval.d.ts +5 -0
- package/dist/plain/interval/validate/isValidTimeInterval.js +8 -18
- package/dist/plain/locale/getLocaleEraNames.d.ts +14 -4
- package/dist/plain/locale/getLocaleEraNames.js +56 -41
- package/dist/plain/locale/getLocaleMeridiems.d.ts +7 -4
- package/dist/plain/locale/getLocaleMeridiems.js +28 -22
- package/dist/plain/locale/getLocaleMonthNames.d.ts +14 -4
- package/dist/plain/locale/getLocaleMonthNames.js +34 -19
- package/dist/plain/locale/getLocaleWeekdayNames.d.ts +14 -7
- package/dist/plain/locale/getLocaleWeekdayNames.js +40 -22
- package/dist/plain/map/mapDatesInRange.d.ts +18 -1
- package/dist/plain/map/mapDatesInRange.js +53 -17
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +3 -2
- package/dist/plain/parse/parseDateTimeWithPattern.js +30 -24
- package/dist/plain/parse/parseDateWithPattern.d.ts +3 -2
- package/dist/plain/parse/parseDateWithPattern.js +22 -16
- package/dist/plain/parse/parseMicrosecondFromDateTime.d.ts +2 -1
- package/dist/plain/parse/parseMicrosecondFromDateTime.js +2 -1
- package/dist/plain/parse/parseMicrosecondFromTime.d.ts +2 -1
- package/dist/plain/parse/parseMicrosecondFromTime.js +2 -1
- package/dist/plain/parse/parseNanosecondFromDateTime.d.ts +2 -1
- package/dist/plain/parse/parseNanosecondFromDateTime.js +2 -1
- package/dist/plain/parse/parseNanosecondFromTime.d.ts +2 -1
- package/dist/plain/parse/parseNanosecondFromTime.js +2 -1
- package/dist/plain/parse/parseSql.d.ts +15 -12
- package/dist/plain/parse/parseSql.js +16 -13
- package/dist/plain/parse/parseTimeWithPattern.d.ts +3 -2
- package/dist/plain/parse/parseTimeWithPattern.js +27 -21
- package/dist/plain/parse/parseUnitFromDate.d.ts +9 -2
- package/dist/plain/parse/parseUnitFromDate.js +39 -19
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +11 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +54 -28
- package/dist/plain/parse/parseUnitFromTime.d.ts +9 -3
- package/dist/plain/parse/parseUnitFromTime.js +13 -3
- package/dist/plain/parse/parseWeekFromDate.d.ts +5 -0
- package/dist/plain/parse/parseWeekFromDate.js +24 -5
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +5 -0
- package/dist/plain/parse/parseWeekFromDateTime.js +26 -5
- package/dist/plain/validate/isLeapSecond.d.ts +27 -9
- package/dist/plain/validate/isLeapSecond.js +30 -9
- package/dist/plain/validate/isLeapYear.d.ts +7 -1
- package/dist/plain/validate/isLeapYear.js +10 -1
- package/dist/plain/validate/isValidCalendarDate.d.ts +37 -6
- package/dist/plain/validate/isValidCalendarDate.js +37 -6
- package/dist/plain/validate/isValidDate.d.ts +9 -1
- package/dist/plain/validate/isValidDate.js +14 -5
- package/dist/plain/validate/isValidDateRange.d.ts +11 -4
- package/dist/plain/validate/isValidDateRange.js +32 -22
- package/dist/plain/validate/isValidDateTime.d.ts +7 -1
- package/dist/plain/validate/isValidDateTime.js +12 -5
- package/dist/plain/validate/isValidDateTimeRange.d.ts +3 -2
- package/dist/plain/validate/isValidDateTimeRange.js +30 -15
- package/dist/plain/validate/isValidIsoDateLike.d.ts +6 -1
- package/dist/plain/validate/isValidIsoDateLike.js +13 -8
- package/dist/plain/validate/isValidTime.d.ts +6 -1
- package/dist/plain/validate/isValidTime.js +10 -3
- package/dist/plain/validate/isValidTimeRange.d.ts +4 -2
- package/dist/plain/validate/isValidTimeRange.js +31 -27
- package/dist/precision/calculate/index.d.ts +1 -0
- package/dist/precision/calculate/index.js +1 -0
- package/dist/precision/calculate/truncateNanoseconds.d.ts +37 -0
- package/dist/precision/calculate/truncateNanoseconds.js +41 -0
- package/dist/precision/convert/fromDotNetTicks.d.ts +30 -0
- package/dist/precision/convert/fromDotNetTicks.js +39 -0
- package/dist/precision/convert/fromExcelSerial.d.ts +38 -0
- package/dist/precision/convert/fromExcelSerial.js +81 -0
- package/dist/precision/convert/fromFileTime.d.ts +30 -0
- package/dist/precision/convert/fromFileTime.js +39 -0
- package/dist/precision/convert/fromNanoseconds.d.ts +29 -0
- package/dist/precision/convert/fromNanoseconds.js +50 -0
- package/dist/precision/convert/fromNtpTimestamp.d.ts +43 -0
- package/dist/precision/convert/fromNtpTimestamp.js +57 -0
- package/dist/precision/convert/fromPgMicroseconds.d.ts +26 -0
- package/dist/precision/convert/fromPgMicroseconds.js +33 -0
- package/dist/precision/convert/index.d.ts +12 -0
- package/dist/precision/convert/index.js +12 -0
- package/dist/precision/convert/toDotNetTicks.d.ts +29 -0
- package/dist/precision/convert/toDotNetTicks.js +40 -0
- package/dist/precision/convert/toExcelSerial.d.ts +56 -0
- package/dist/precision/convert/toExcelSerial.js +85 -0
- package/dist/precision/convert/toFileTime.d.ts +31 -0
- package/dist/precision/convert/toFileTime.js +43 -0
- package/dist/precision/convert/toNanoseconds.d.ts +37 -0
- package/dist/precision/convert/toNanoseconds.js +40 -0
- package/dist/precision/convert/toNtpTimestamp.d.ts +30 -0
- package/dist/precision/convert/toNtpTimestamp.js +38 -0
- package/dist/precision/convert/toPgMicroseconds.d.ts +29 -0
- package/dist/precision/convert/toPgMicroseconds.js +42 -0
- package/dist/precision/format/formatNanoseconds.d.ts +26 -0
- package/dist/precision/format/formatNanoseconds.js +32 -0
- package/dist/precision/format/index.d.ts +1 -0
- package/dist/precision/format/index.js +1 -0
- package/dist/precision/index.d.ts +6 -0
- package/dist/precision/index.js +7 -0
- package/dist/precision/parse/index.d.ts +1 -0
- package/dist/precision/parse/index.js +1 -0
- package/dist/precision/parse/parseNanoseconds.d.ts +27 -0
- package/dist/precision/parse/parseNanoseconds.js +32 -0
- package/dist/precision/validate/index.d.ts +3 -0
- package/dist/precision/validate/index.js +3 -0
- package/dist/precision/validate/isValidInstant.d.ts +37 -0
- package/dist/precision/validate/isValidInstant.js +40 -0
- package/dist/precision/validate/isValidNanoPattern.d.ts +27 -0
- package/dist/precision/validate/isValidNanoPattern.js +40 -0
- package/dist/precision/validate/isValidNanoseconds.d.ts +25 -0
- package/dist/precision/validate/isValidNanoseconds.js +28 -0
- package/dist/regex/calendar-date.d.ts +30 -0
- package/dist/regex/calendar-date.js +31 -11
- package/dist/regex/calendar-zoned-date-time.d.ts +29 -0
- package/dist/regex/calendar-zoned-date-time.js +30 -41
- package/dist/regex/date-time.d.ts +28 -0
- package/dist/regex/date-time.js +29 -2
- package/dist/regex/date.d.ts +58 -0
- package/dist/regex/date.js +60 -3
- package/dist/regex/http-date.d.ts +19 -0
- package/dist/regex/http-date.js +19 -6
- package/dist/regex/index.d.ts +3 -0
- package/dist/regex/index.js +4 -0
- package/dist/regex/leap-second.d.ts +45 -0
- package/dist/regex/leap-second.js +46 -2
- package/dist/regex/nanoseconds.d.ts +20 -0
- package/dist/regex/nanoseconds.js +20 -0
- package/dist/regex/rfc-2822.d.ts +26 -0
- package/dist/regex/rfc-2822.js +26 -8
- package/dist/regex/rfc-3339.d.ts +26 -0
- package/dist/regex/rfc-3339.js +27 -7
- package/dist/regex/sql-date-time.d.ts +33 -0
- package/dist/regex/sql-date-time.js +34 -7
- package/dist/regex/time-zone-like.d.ts +30 -0
- package/dist/regex/time-zone-like.js +31 -1
- package/dist/regex/time.d.ts +73 -0
- package/dist/regex/time.js +73 -3
- package/dist/regex/unix.d.ts +29 -0
- package/dist/regex/unix.js +29 -0
- package/dist/regex/utc-date-time.d.ts +30 -0
- package/dist/regex/utc-date-time.js +31 -2
- package/dist/regex/utc-offset.d.ts +24 -0
- package/dist/regex/utc-offset.js +24 -0
- package/dist/span/calculate/index.d.ts +3 -0
- package/dist/span/calculate/index.js +3 -0
- package/dist/span/calculate/spanMs.d.ts +52 -0
- package/dist/span/calculate/spanMs.js +80 -0
- package/dist/span/calculate/spanNs.d.ts +43 -0
- package/dist/span/calculate/spanNs.js +51 -0
- package/dist/span/calculate/spanWallClock.d.ts +60 -0
- package/dist/span/calculate/spanWallClock.js +80 -0
- package/dist/span/index.d.ts +3 -0
- package/dist/span/index.js +4 -0
- package/dist/span/validate/index.d.ts +1 -0
- package/dist/span/validate/index.js +1 -0
- package/dist/span/validate/isValidSpan.d.ts +37 -0
- package/dist/span/validate/isValidSpan.js +41 -0
- package/dist/types/business-calendar.d.ts +27 -0
- package/dist/types/business-calendar.js +0 -0
- package/dist/types/calendar-options.d.ts +11 -0
- package/dist/types/calendar-options.js +0 -0
- package/dist/types/calendar-system.d.ts +9 -1
- package/dist/types/datetime-format-options.d.ts +6 -0
- package/dist/types/datetime-format-options.js +0 -0
- package/dist/types/duration-unit.d.ts +5 -0
- package/dist/types/duration-unit.js +0 -0
- package/dist/types/fiscal-calendar.d.ts +22 -0
- package/dist/types/fiscal-calendar.js +0 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.js +16 -0
- package/dist/types/interval.d.ts +18 -0
- package/dist/types/interval.js +0 -0
- package/dist/types/now-unit.d.ts +5 -0
- package/dist/types/now-unit.js +0 -0
- package/dist/types/relative-date-time-unit.d.ts +6 -0
- package/dist/types/relative-date-time-unit.js +0 -0
- package/dist/types/relative-date-unit.d.ts +5 -0
- package/dist/types/relative-date-unit.js +0 -0
- package/dist/types/relative-time-options.d.ts +18 -0
- package/dist/types/relative-time-options.js +0 -0
- package/dist/types/relative-time-unit.d.ts +5 -0
- package/dist/types/relative-time-unit.js +0 -0
- package/dist/types/relative-unit.d.ts +6 -0
- package/dist/types/relative-unit.js +0 -0
- package/dist/types/roll-convention.d.ts +32 -0
- package/dist/types/roll-convention.js +0 -0
- package/dist/types/unix-now-unit.d.ts +5 -0
- package/dist/types/unix-now-unit.js +0 -0
- package/dist/types/utc-now-unit.d.ts +5 -0
- package/dist/types/utc-now-unit.js +0 -0
- package/dist/types/zone-bucket-unit.d.ts +11 -0
- package/dist/types/zone-bucket-unit.js +0 -0
- package/dist/unix/calculate/addUnix.d.ts +10 -4
- package/dist/unix/calculate/addUnix.js +39 -26
- package/dist/unix/calculate/diffUnix.d.ts +38 -11
- package/dist/unix/calculate/diffUnix.js +84 -40
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +17 -7
- package/dist/unix/calculate/diffUnixAsDuration.js +42 -23
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +15 -11
- package/dist/unix/calculate/endOfQuarterForUnix.js +20 -39
- package/dist/unix/calculate/endOfUnix.d.ts +23 -18
- package/dist/unix/calculate/endOfUnix.js +37 -15
- package/dist/unix/calculate/isBetweenUnix.d.ts +12 -6
- package/dist/unix/calculate/isBetweenUnix.js +34 -23
- package/dist/unix/calculate/maxUnix.d.ts +6 -3
- package/dist/unix/calculate/maxUnix.js +17 -8
- package/dist/unix/calculate/minUnix.d.ts +6 -3
- package/dist/unix/calculate/minUnix.js +17 -8
- package/dist/unix/calculate/roundUnix.d.ts +24 -10
- package/dist/unix/calculate/roundUnix.js +67 -42
- package/dist/unix/calculate/setUnix.d.ts +14 -5
- package/dist/unix/calculate/setUnix.js +48 -29
- package/dist/unix/calculate/sortUnix.d.ts +6 -3
- package/dist/unix/calculate/sortUnix.js +19 -11
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +17 -12
- package/dist/unix/calculate/startOfQuarterForUnix.js +22 -30
- package/dist/unix/calculate/startOfUnix.d.ts +23 -18
- package/dist/unix/calculate/startOfUnix.js +37 -15
- package/dist/unix/calculate/subtractUnix.d.ts +10 -4
- package/dist/unix/calculate/subtractUnix.js +39 -26
- package/dist/unix/compare/areUnixEqual.d.ts +9 -5
- package/dist/unix/compare/areUnixEqual.js +17 -13
- package/dist/unix/compare/areUnixEqualBy.d.ts +14 -7
- package/dist/unix/compare/areUnixEqualBy.js +14 -7
- package/dist/unix/compare/isAfterUnix.d.ts +8 -4
- package/dist/unix/compare/isAfterUnix.js +16 -12
- package/dist/unix/compare/isBeforeUnix.d.ts +7 -4
- package/dist/unix/compare/isBeforeUnix.js +15 -12
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -9
- package/dist/unix/convert/convertUnixToPlainDate.js +34 -21
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +15 -9
- package/dist/unix/convert/convertUnixToPlainDateTime.js +32 -21
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +15 -9
- package/dist/unix/convert/convertUnixToPlainTime.js +32 -21
- package/dist/unix/convert/convertUnixToUtc.d.ts +15 -7
- package/dist/unix/convert/convertUnixToUtc.js +20 -15
- package/dist/unix/convert/convertUnixToZoned.d.ts +17 -10
- package/dist/unix/convert/convertUnixToZoned.js +31 -20
- package/dist/unix/format/formatCalendarUnix.d.ts +35 -6
- package/dist/unix/format/formatCalendarUnix.js +35 -81
- package/dist/unix/format/formatRelativeUnix.d.ts +26 -16
- package/dist/unix/format/formatRelativeUnix.js +46 -93
- package/dist/unix/format/formatUnix.d.ts +43 -2
- package/dist/unix/format/formatUnix.js +65 -32
- package/dist/unix/get/getUnixNow.d.ts +13 -7
- package/dist/unix/get/getUnixNow.js +27 -17
- package/dist/unix/get/getUnixNowUnit.d.ts +7 -5
- package/dist/unix/get/getUnixNowUnit.js +9 -35
- package/dist/unix/index.d.ts +1 -0
- package/dist/unix/index.js +2 -0
- package/dist/unix/interval/intervalAbutsUnix.d.ts +17 -12
- package/dist/unix/interval/intervalAbutsUnix.js +23 -41
- package/dist/unix/interval/intervalContainsUnix.d.ts +17 -7
- package/dist/unix/interval/intervalContainsUnix.js +25 -37
- package/dist/unix/interval/intervalCountUnix.d.ts +30 -13
- package/dist/unix/interval/intervalCountUnix.js +49 -23
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +19 -10
- package/dist/unix/interval/intervalDifferenceUnix.js +25 -43
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +24 -10
- package/dist/unix/interval/intervalDivideEquallyUnix.js +57 -36
- package/dist/unix/interval/intervalEngulfsUnix.d.ts +13 -7
- package/dist/unix/interval/intervalEngulfsUnix.js +18 -30
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -6
- package/dist/unix/interval/intervalFromDurationUnix.js +51 -39
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +18 -11
- package/dist/unix/interval/intervalIntersectionUnix.js +25 -46
- package/dist/unix/interval/intervalLengthUnix.d.ts +21 -9
- package/dist/unix/interval/intervalLengthUnix.js +41 -18
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +26 -12
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +67 -63
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +11 -6
- package/dist/unix/interval/intervalSplitAtUnix.js +41 -34
- package/dist/unix/interval/intervalUnionUnix.d.ts +15 -9
- package/dist/unix/interval/intervalUnionUnix.js +20 -42
- package/dist/unix/interval/intervalXorAllUnix.d.ts +8 -6
- package/dist/unix/interval/intervalXorAllUnix.js +21 -56
- package/dist/unix/interval/intervalXorUnix.d.ts +22 -11
- package/dist/unix/interval/intervalXorUnix.js +28 -56
- package/dist/unix/interval/intervalsOverlapUnix.d.ts +16 -10
- package/dist/unix/interval/intervalsOverlapUnix.js +21 -37
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +10 -4
- package/dist/unix/interval/mergeIntervalsUnix.js +25 -36
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +38 -8
- package/dist/unix/interval/splitIntervalByUnitUnix.js +72 -56
- package/dist/unix/interval/validate/isValidUnixInterval.d.ts +12 -6
- package/dist/unix/interval/validate/isValidUnixInterval.js +17 -16
- package/dist/unix/parse/index.d.ts +2 -0
- package/dist/unix/parse/index.js +2 -0
- package/dist/unix/parse/parseDateFromUnix.d.ts +10 -8
- package/dist/unix/parse/parseDateFromUnix.js +17 -29
- package/dist/unix/parse/parseDayFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseDayFromUnix.js +18 -5
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +8 -5
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +15 -28
- package/dist/unix/parse/parseHourFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseHourFromUnix.js +18 -5
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +16 -3
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +16 -3
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseMinuteFromUnix.js +18 -5
- package/dist/unix/parse/parseMonthFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseMonthFromUnix.js +18 -5
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +8 -5
- package/dist/unix/parse/parseNanosecondFromUnix.js +20 -6
- package/dist/unix/parse/parseSecondFromUnix.d.ts +5 -3
- package/dist/unix/parse/parseSecondFromUnix.js +17 -4
- package/dist/unix/parse/parseTimeFromUnix.d.ts +10 -8
- package/dist/unix/parse/parseTimeFromUnix.js +17 -29
- package/dist/unix/parse/parseUnitFromUnix.d.ts +40 -9
- package/dist/unix/parse/parseUnitFromUnix.js +57 -55
- package/dist/unix/parse/parseWeekFromUnix.d.ts +15 -7
- package/dist/unix/parse/parseWeekFromUnix.js +32 -30
- package/dist/unix/parse/parseYearFromUnix.d.ts +5 -3
- package/dist/unix/parse/parseYearFromUnix.js +17 -4
- package/dist/unix/validate/isValidUnixMilliseconds.d.ts +8 -5
- package/dist/unix/validate/isValidUnixMilliseconds.js +10 -9
- package/dist/unix/validate/isValidUnixRange.d.ts +13 -7
- package/dist/unix/validate/isValidUnixRange.js +29 -19
- package/dist/unix/validate/isValidUnixSeconds.d.ts +8 -5
- package/dist/unix/validate/isValidUnixSeconds.js +10 -9
- package/dist/unix/validate/isValidUnixUnit.d.ts +22 -5
- package/dist/unix/validate/isValidUnixUnit.js +6 -8
- package/dist/utc/calculate/addUtc.js +26 -12
- package/dist/utc/calculate/diffUtc.d.ts +22 -7
- package/dist/utc/calculate/diffUtc.js +75 -31
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +2 -2
- package/dist/utc/calculate/diffUtcAsDuration.js +10 -3
- package/dist/utc/calculate/endOfQuarterForUtc.d.ts +1 -1
- package/dist/utc/calculate/endOfQuarterForUtc.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +11 -4
- package/dist/utc/calculate/endOfUtc.js +22 -5
- package/dist/utc/calculate/isBetweenUtc.js +40 -24
- package/dist/utc/calculate/maxUtc.js +19 -12
- package/dist/utc/calculate/minUtc.js +19 -12
- package/dist/utc/calculate/roundUtc.d.ts +16 -2
- package/dist/utc/calculate/roundUtc.js +42 -31
- package/dist/utc/calculate/setUtc.d.ts +4 -8
- package/dist/utc/calculate/setUtc.js +25 -18
- package/dist/utc/calculate/sortUtc.js +17 -10
- package/dist/utc/calculate/startOfQuarterForUtc.d.ts +2 -0
- package/dist/utc/calculate/startOfQuarterForUtc.js +12 -1
- package/dist/utc/calculate/startOfUtc.d.ts +6 -4
- package/dist/utc/calculate/startOfUtc.js +17 -5
- package/dist/utc/calculate/subtractUtc.js +26 -12
- package/dist/utc/chop/chopUtc.d.ts +5 -2
- package/dist/utc/chop/chopUtc.js +8 -4
- package/dist/utc/compare/areUtcEqualBy.d.ts +10 -5
- package/dist/utc/compare/areUtcEqualBy.js +34 -11
- package/dist/utc/convert/convertUtcToPlainDate.js +22 -10
- package/dist/utc/convert/convertUtcToPlainDateTime.js +28 -16
- package/dist/utc/convert/convertUtcToPlainTime.js +22 -10
- package/dist/utc/convert/convertUtcToUnix.d.ts +12 -5
- package/dist/utc/convert/convertUtcToUnix.js +22 -13
- package/dist/utc/format/formatCalendarUtc.d.ts +13 -8
- package/dist/utc/format/formatCalendarUtc.js +32 -41
- package/dist/utc/format/formatHttp.d.ts +9 -3
- package/dist/utc/format/formatHttp.js +14 -12
- package/dist/utc/format/formatRelativeUtc.d.ts +20 -18
- package/dist/utc/format/formatRelativeUtc.js +43 -51
- package/dist/utc/format/formatUtc.d.ts +51 -1
- package/dist/utc/format/formatUtc.js +57 -11
- package/dist/utc/get/getUtcNowUnit.d.ts +5 -3
- package/dist/utc/get/getUtcNowUnit.js +11 -33
- package/dist/utc/index.d.ts +1 -0
- package/dist/utc/index.js +2 -0
- package/dist/utc/interval/intervalAbutsUtc.d.ts +10 -7
- package/dist/utc/interval/intervalAbutsUtc.js +18 -30
- package/dist/utc/interval/intervalContainsUtc.d.ts +19 -11
- package/dist/utc/interval/intervalContainsUtc.js +33 -34
- package/dist/utc/interval/intervalCountUtc.d.ts +3 -4
- package/dist/utc/interval/intervalCountUtc.js +12 -18
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +13 -5
- package/dist/utc/interval/intervalDifferenceUtc.js +25 -51
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +16 -3
- package/dist/utc/interval/intervalDivideEquallyUtc.js +54 -34
- package/dist/utc/interval/intervalEngulfsUtc.d.ts +17 -12
- package/dist/utc/interval/intervalEngulfsUtc.js +25 -26
- package/dist/utc/interval/intervalFromDurationUtc.js +5 -0
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +12 -6
- package/dist/utc/interval/intervalIntersectionUtc.js +24 -41
- package/dist/utc/interval/intervalLengthUtc.js +5 -7
- package/dist/utc/interval/intervalOverlappingDaysUtc.d.ts +7 -13
- package/dist/utc/interval/intervalOverlappingDaysUtc.js +25 -36
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +7 -2
- package/dist/utc/interval/intervalSplitAtUtc.js +39 -33
- package/dist/utc/interval/intervalUnionUtc.d.ts +15 -7
- package/dist/utc/interval/intervalUnionUtc.js +31 -42
- package/dist/utc/interval/intervalXorAllUtc.d.ts +7 -4
- package/dist/utc/interval/intervalXorAllUtc.js +30 -52
- package/dist/utc/interval/intervalXorUtc.d.ts +8 -6
- package/dist/utc/interval/intervalXorUtc.js +22 -56
- package/dist/utc/interval/intervalsOverlapUtc.d.ts +15 -9
- package/dist/utc/interval/intervalsOverlapUtc.js +23 -39
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +9 -2
- package/dist/utc/interval/mergeIntervalsUtc.js +23 -36
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +23 -2
- package/dist/utc/interval/splitIntervalByUnitUtc.js +65 -44
- package/dist/utc/interval/validate/isValidUtcInterval.d.ts +5 -0
- package/dist/utc/interval/validate/isValidUtcInterval.js +7 -6
- package/dist/utc/parse/parseDateFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseDateFromUtc.js +14 -9
- package/dist/utc/parse/parseDayFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseDayFromUtc.js +14 -8
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +24 -6
- package/dist/utc/parse/parseHourFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseHourFromUtc.js +14 -8
- package/dist/utc/parse/parseHttp.d.ts +39 -14
- package/dist/utc/parse/parseHttp.js +69 -28
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -2
- package/dist/utc/parse/parseMicrosecondFromUtc.js +18 -9
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseMillisecondFromUtc.js +16 -8
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseMinuteFromUtc.js +14 -8
- package/dist/utc/parse/parseMonthFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseMonthFromUtc.js +14 -8
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -2
- package/dist/utc/parse/parseNanosecondFromUtc.js +18 -9
- package/dist/utc/parse/parseSecondFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseSecondFromUtc.js +14 -8
- package/dist/utc/parse/parseTimeFromUtc.js +21 -10
- package/dist/utc/parse/parseUnitFromUtc.d.ts +39 -5
- package/dist/utc/parse/parseUnitFromUtc.js +58 -31
- package/dist/utc/parse/parseWeekFromUtc.d.ts +16 -3
- package/dist/utc/parse/parseWeekFromUtc.js +38 -10
- package/dist/utc/parse/parseYearFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseYearFromUtc.js +14 -8
- package/dist/utc/validate/isValidUtc.d.ts +8 -1
- package/dist/utc/validate/isValidUtc.js +12 -3
- package/dist/utc/validate/isValidUtcRange.d.ts +3 -2
- package/dist/utc/validate/isValidUtcRange.js +30 -19
- package/dist/zoned/calculate/addZoned.d.ts +40 -27
- package/dist/zoned/calculate/addZoned.js +71 -56
- package/dist/zoned/calculate/addZonedBusinessDays.d.ts +2 -0
- package/dist/zoned/calculate/addZonedBusinessDays.js +5 -2
- package/dist/zoned/calculate/clampZoned.js +4 -3
- package/dist/zoned/calculate/closestZonedTo.d.ts +6 -6
- package/dist/zoned/calculate/closestZonedTo.js +35 -26
- package/dist/zoned/calculate/cycleZoned.d.ts +10 -7
- package/dist/zoned/calculate/cycleZoned.js +19 -11
- package/dist/zoned/calculate/diffZoned.d.ts +39 -17
- package/dist/zoned/calculate/diffZoned.js +90 -45
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +19 -9
- package/dist/zoned/calculate/diffZonedAsDuration.js +32 -15
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +11 -11
- package/dist/zoned/calculate/endOfQuarterForZoned.js +32 -31
- package/dist/zoned/calculate/endOfZoned.d.ts +21 -14
- package/dist/zoned/calculate/endOfZoned.js +25 -111
- package/dist/zoned/calculate/getHoursInZonedDay.d.ts +8 -1
- package/dist/zoned/calculate/getHoursInZonedDay.js +10 -14
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +8 -4
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +9 -6
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +20 -26
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +40 -44
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +16 -24
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +36 -42
- package/dist/zoned/calculate/getQuarterForZoned.js +2 -2
- package/dist/zoned/calculate/maxZoned.js +20 -12
- package/dist/zoned/calculate/minZoned.d.ts +1 -1
- package/dist/zoned/calculate/minZoned.js +21 -13
- package/dist/zoned/calculate/roundZoned.d.ts +18 -4
- package/dist/zoned/calculate/roundZoned.js +58 -33
- package/dist/zoned/calculate/setZoned.d.ts +9 -3
- package/dist/zoned/calculate/setZoned.js +39 -18
- package/dist/zoned/calculate/sortZoned.js +18 -10
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +4 -7
- package/dist/zoned/calculate/startOfQuarterForZoned.js +23 -17
- package/dist/zoned/calculate/startOfZoned.d.ts +17 -13
- package/dist/zoned/calculate/startOfZoned.js +21 -103
- package/dist/zoned/calculate/subtractZoned.d.ts +36 -24
- package/dist/zoned/calculate/subtractZoned.js +66 -50
- package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +2 -0
- package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -2
- package/dist/zoned/chop/chopZonedDate.js +2 -2
- package/dist/zoned/chop/chopZonedDateTime.js +2 -2
- package/dist/zoned/chop/chopZonedMilliseconds.js +2 -2
- package/dist/zoned/chop/chopZonedSeconds.js +2 -2
- package/dist/zoned/chop/chopZonedTime.js +2 -2
- package/dist/zoned/chop/chopZonedTimezone.js +2 -2
- package/dist/zoned/compare/areZonedEqual.js +3 -2
- package/dist/zoned/compare/areZonedEqualBy.d.ts +15 -2
- package/dist/zoned/compare/areZonedEqualBy.js +45 -12
- package/dist/zoned/compare/isAfterZoned.js +3 -2
- package/dist/zoned/compare/isBeforeZoned.d.ts +1 -1
- package/dist/zoned/compare/isBeforeZoned.js +4 -3
- package/dist/zoned/compare/isBetweenZoned.js +46 -29
- package/dist/zoned/compare/isInDaylightSaving.js +4 -4
- package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -4
- package/dist/zoned/compare/isZonedBusinessDay.js +9 -6
- package/dist/zoned/compare/isZonedFuture.js +2 -1
- package/dist/zoned/compare/isZonedPast.js +2 -1
- package/dist/zoned/compare/isZonedRelativeDay.js +2 -1
- package/dist/zoned/compare/isZonedThisUnit.d.ts +12 -4
- package/dist/zoned/compare/isZonedThisUnit.js +37 -16
- package/dist/zoned/compare/isZonedWeekend.d.ts +8 -4
- package/dist/zoned/compare/isZonedWeekend.js +9 -6
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +10 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +34 -16
- package/dist/zoned/convert/convertZonedToCalendar.d.ts +26 -38
- package/dist/zoned/convert/convertZonedToCalendar.js +33 -48
- package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +6 -0
- package/dist/zoned/convert/convertZonedToPlainDateTime.js +8 -2
- package/dist/zoned/convert/convertZonedToUnix.d.ts +12 -6
- package/dist/zoned/convert/convertZonedToUnix.js +23 -16
- package/dist/zoned/convert/convertZonedToUtc.js +2 -2
- package/dist/zoned/convert/convertZonedToZoned.js +2 -2
- package/dist/zoned/format/formatCalendarZoned.d.ts +7 -3
- package/dist/zoned/format/formatCalendarZoned.js +37 -39
- package/dist/zoned/format/formatRelativeZoned.d.ts +16 -14
- package/dist/zoned/format/formatRelativeZoned.js +54 -54
- package/dist/zoned/format/formatRfc2822.d.ts +14 -1
- package/dist/zoned/format/formatRfc2822.js +27 -13
- package/dist/zoned/format/formatRfc3339.d.ts +14 -1
- package/dist/zoned/format/formatRfc3339.js +29 -3
- package/dist/zoned/format/formatTimeZoneName.d.ts +18 -2
- package/dist/zoned/format/formatTimeZoneName.js +28 -18
- package/dist/zoned/format/formatZonedDateTime.d.ts +26 -5
- package/dist/zoned/format/formatZonedDateTime.js +40 -9
- package/dist/zoned/format/formatZonedRange.d.ts +25 -6
- package/dist/zoned/format/formatZonedRange.js +61 -28
- package/dist/zoned/format/formatZonedToParts.d.ts +30 -6
- package/dist/zoned/format/formatZonedToParts.js +42 -13
- package/dist/zoned/get/getDstTransitions.d.ts +24 -3
- package/dist/zoned/get/getDstTransitions.js +17 -15
- package/dist/zoned/get/getTimeZoneOffset.d.ts +11 -1
- package/dist/zoned/get/getTimeZoneOffset.js +19 -2
- package/dist/zoned/get/getZonedNow.js +20 -9
- package/dist/zoned/get/getZonedNowUnit.d.ts +30 -2
- package/dist/zoned/get/getZonedNowUnit.js +15 -31
- package/dist/zoned/index.js +1 -1
- package/dist/zoned/interval/intervalAbutsZoned.d.ts +18 -11
- package/dist/zoned/interval/intervalAbutsZoned.js +24 -25
- package/dist/zoned/interval/intervalContainsZoned.d.ts +16 -7
- package/dist/zoned/interval/intervalContainsZoned.js +22 -14
- package/dist/zoned/interval/intervalCountZoned.d.ts +19 -11
- package/dist/zoned/interval/intervalCountZoned.js +32 -27
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +14 -8
- package/dist/zoned/interval/intervalDifferenceZoned.js +25 -37
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +18 -9
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +67 -46
- package/dist/zoned/interval/intervalEngulfsZoned.d.ts +10 -5
- package/dist/zoned/interval/intervalEngulfsZoned.js +16 -10
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +25 -11
- package/dist/zoned/interval/intervalFromDurationZoned.js +61 -44
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +12 -6
- package/dist/zoned/interval/intervalIntersectionZoned.js +24 -18
- package/dist/zoned/interval/intervalLengthZoned.d.ts +15 -6
- package/dist/zoned/interval/intervalLengthZoned.js +23 -9
- package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +28 -17
- package/dist/zoned/interval/intervalOverlappingDaysZoned.js +46 -34
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +6 -3
- package/dist/zoned/interval/intervalSplitAtZoned.js +52 -42
- package/dist/zoned/interval/intervalUnionZoned.d.ts +14 -8
- package/dist/zoned/interval/intervalUnionZoned.js +25 -20
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -7
- package/dist/zoned/interval/intervalXorAllZoned.js +42 -73
- package/dist/zoned/interval/intervalXorZoned.d.ts +20 -10
- package/dist/zoned/interval/intervalXorZoned.js +34 -62
- package/dist/zoned/interval/intervalsOverlapZoned.d.ts +15 -7
- package/dist/zoned/interval/intervalsOverlapZoned.js +21 -12
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +10 -3
- package/dist/zoned/interval/mergeIntervalsZoned.js +44 -41
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +28 -5
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +72 -39
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +13 -10
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +13 -10
- package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +7 -5
- package/dist/zoned/interval/validate/isValidZonedInterval.js +12 -16
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +17 -1
- package/dist/zoned/map/mapZonedDatesInRange.js +62 -26
- package/dist/zoned/map/mapZonedHoursInDay.d.ts +10 -13
- package/dist/zoned/map/mapZonedHoursInDay.js +13 -21
- package/dist/zoned/parse/getZonedOffset.js +2 -2
- package/dist/zoned/parse/getZonedOffsetAs.d.ts +15 -2
- package/dist/zoned/parse/getZonedOffsetAs.js +10 -5
- package/dist/zoned/parse/parseDateFromZoned.js +2 -2
- package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
- package/dist/zoned/parse/parseDayFromZoned.js +2 -2
- package/dist/zoned/parse/parseDayOfWeekFromZoned.js +2 -2
- package/dist/zoned/parse/parseHourFromZoned.js +2 -2
- package/dist/zoned/parse/parseMicrosecondFromZoned.d.ts +2 -1
- package/dist/zoned/parse/parseMicrosecondFromZoned.js +4 -3
- package/dist/zoned/parse/parseMillisecondFromZoned.js +2 -2
- package/dist/zoned/parse/parseMinuteFromZoned.js +2 -2
- package/dist/zoned/parse/parseMonthFromZoned.js +2 -2
- package/dist/zoned/parse/parseNanosecondFromZoned.d.ts +2 -1
- package/dist/zoned/parse/parseNanosecondFromZoned.js +4 -3
- package/dist/zoned/parse/parseRfc2822.d.ts +32 -12
- package/dist/zoned/parse/parseRfc2822.js +47 -45
- package/dist/zoned/parse/parseRfc3339.d.ts +6 -0
- package/dist/zoned/parse/parseRfc3339.js +6 -0
- package/dist/zoned/parse/parseSecondFromZoned.js +2 -2
- package/dist/zoned/parse/parseTimeFromZoned.js +2 -2
- package/dist/zoned/parse/parseTimeZoneFromZoned.js +2 -2
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +36 -3
- package/dist/zoned/parse/parseUnitFromZoned.js +59 -33
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +13 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +34 -10
- package/dist/zoned/parse/parseYearFromZoned.js +2 -2
- package/dist/zoned/validate/hasDaylightSaving.js +3 -3
- package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +31 -16
- package/dist/zoned/validate/isValidCalendarZonedDateTime.js +31 -16
- package/dist/zoned/validate/isValidTimeZone.d.ts +15 -2
- package/dist/zoned/validate/isValidTimeZone.js +17 -4
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +14 -7
- package/dist/zoned/validate/isValidZonedDateTime.js +20 -12
- package/dist/zoned/validate/isValidZonedRange.d.ts +9 -2
- package/dist/zoned/validate/isValidZonedRange.js +44 -16
- package/package.json +487 -28
- package/skills/gmt-arithmetic/SKILL.md +264 -0
- package/skills/gmt-basics/SKILL.md +127 -0
- package/skills/gmt-integration/SKILL.md +119 -0
- package/skills/gmt-timezone/SKILL.md +197 -0
- package/dist/internal/advanceBusinessDays.d.ts +0 -2
- package/dist/internal/advanceBusinessDays.js +0 -15
- package/dist/internal/ethiopicFamilyCalendar.d.ts +0 -47
- package/dist/internal/ethiopicFamilyCalendar.js +0 -136
- package/dist/internal/getLocaleMinimalDaysInFirstWeek.d.ts +0 -20
- package/dist/internal/getLocaleMinimalDaysInFirstWeek.js +0 -31
- package/dist/internal/resolveUnixTimeZone.d.ts +0 -20
- package/dist/internal/resolveUnixTimeZone.js +0 -30
- package/dist/unix/calculate/startOrEndOfUnix.d.ts +0 -9
- package/dist/unix/calculate/startOrEndOfUnix.js +0 -122
- package/dist/unix/interval/resolveUnixIntervalPair.d.ts +0 -7
- package/dist/unix/interval/resolveUnixIntervalPair.js +0 -36
- package/dist/utc/calculate/startOrEndOfUtc.d.ts +0 -6
- package/skills/_artifacts/domain_map.yaml +0 -547
- package/skills/_artifacts/skill_spec.md +0 -67
- package/skills/_artifacts/skill_tree.yaml +0 -278
- package/skills/api-expansion-workflow/SKILL.md +0 -52
- package/skills/app-integration/SKILL.md +0 -38
- package/skills/calculate-dates/SKILL.md +0 -432
- package/skills/compare-dates/SKILL.md +0 -412
- package/skills/convert-types/SKILL.md +0 -305
- package/skills/durations/SKILL.md +0 -418
- package/skills/format-date-time/SKILL.md +0 -486
- package/skills/format-date-time/references/format-api.md +0 -34
- package/skills/format-relative-time/SKILL.md +0 -223
- package/skills/get-current/SKILL.md +0 -229
- package/skills/interval-ops/SKILL.md +0 -432
- package/skills/issue-creation/SKILL.md +0 -118
- package/skills/lint-package-suggestion/SKILL.md +0 -37
- package/skills/new-method-implementation/SKILL.md +0 -71
- package/skills/parse-date-time/SKILL.md +0 -349
- package/skills/pr-contribution/SKILL.md +0 -180
- package/skills/unit-test-generation/SKILL.md +0 -56
- package/skills/validate-dates/SKILL.md +0 -438
- package/skills/zoned-date-ops/SKILL.md +0 -422
- package/skills/zoned-date-ops/references/timezones.md +0 -13
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gmt-timezone
|
|
3
|
+
description: >
|
|
4
|
+
Timezone-aware operations — get zoned now, format zoned datetimes/ranges,
|
|
5
|
+
convert between plain↔zoned↔UTC↔Unix, DST disambiguation control on
|
|
6
|
+
construction and arithmetic, the instant-plus-offset pair, classifying a
|
|
7
|
+
zoneless wall time before resolving it, real zone unit boundaries
|
|
8
|
+
(startOfZoned/endOfZoned/startOfUnix/endOfUnix, never after the input), hours
|
|
9
|
+
in a local day, and flooring or bucketing instants on local calendar
|
|
10
|
+
boundaries (floorToZone/bucketRange) instead of roundZoned, calendar-annotated
|
|
11
|
+
zoned strings, and zoned values exact at the range limits (Australia/Sydney at
|
|
12
|
+
the maximum, Etc/GMT+12 at the minimum). Reads the installed package README.md
|
|
13
|
+
and source JSDoc for API details; this skill is a routing pointer, not an API
|
|
14
|
+
dump.
|
|
15
|
+
sources:
|
|
16
|
+
- 'northguild/gmt:README.md'
|
|
17
|
+
- 'northguild/gmt:packages/gmt/src/zoned/get/index.ts'
|
|
18
|
+
- 'northguild/gmt:packages/gmt/src/zoned/format/index.ts'
|
|
19
|
+
- 'northguild/gmt:packages/gmt/src/zoned/compare/index.ts'
|
|
20
|
+
- 'northguild/gmt:packages/gmt/src/zoned/convert/index.ts'
|
|
21
|
+
- 'northguild/gmt:packages/gmt/src/zoned/validate/index.ts'
|
|
22
|
+
- 'northguild/gmt:packages/gmt/src/zoned/calculate/addZoned.ts'
|
|
23
|
+
- 'northguild/gmt:packages/gmt/src/zoned/calculate/startOfZoned.ts'
|
|
24
|
+
- 'northguild/gmt:packages/gmt/src/zoned/calculate/roundZoned.ts'
|
|
25
|
+
- 'northguild/gmt:packages/gmt/src/zoned/calculate/getHoursInZonedDay.ts'
|
|
26
|
+
- 'northguild/gmt:packages/gmt/src/zoned/calculate/clampZoned.ts'
|
|
27
|
+
- 'northguild/gmt:packages/gmt/src/unix/get/index.ts'
|
|
28
|
+
- 'northguild/gmt:packages/gmt/src/utc/get/index.ts'
|
|
29
|
+
- 'northguild/gmt:packages/gmt/src/utc/convert/index.ts'
|
|
30
|
+
- 'northguild/gmt:packages/gmt/src/instant/convert/index.ts'
|
|
31
|
+
- 'northguild/gmt:packages/gmt/src/calendar/calculate/index.ts'
|
|
32
|
+
- 'northguild/gmt:packages/gmt/src/calendar/validate/index.ts'
|
|
33
|
+
metadata:
|
|
34
|
+
type: core
|
|
35
|
+
library: '@northguild/gmt'
|
|
36
|
+
library_version: '1.16.0'
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
# GMT Timezone
|
|
40
|
+
|
|
41
|
+
Use this skill when the task requires IANA time zone awareness — formatting,
|
|
42
|
+
converting between time zones, or doing arithmetic that must respect DST.
|
|
43
|
+
|
|
44
|
+
## When to load
|
|
45
|
+
|
|
46
|
+
- The user needs the current time in a specific timezone (`"America/New_York"`).
|
|
47
|
+
- The user wants to format a datetime with its zone attached.
|
|
48
|
+
- The user needs to convert a plain datetime to a zoned instant, or between
|
|
49
|
+
timezones, or between UTC and Unix epochs.
|
|
50
|
+
- The user is adding/subtracting durations across a DST transition.
|
|
51
|
+
- The user has a timestamp that must keep the local offset it happened at, or a
|
|
52
|
+
local wall time that arrived with no offset at all.
|
|
53
|
+
- The user needs the start or end of a local hour, day, week, month or quarter.
|
|
54
|
+
- The user is grouping or aggregating UTC timestamps by local day, hour, week or
|
|
55
|
+
month — an observability rollup, a chargeable-days count.
|
|
56
|
+
|
|
57
|
+
## Core rules
|
|
58
|
+
|
|
59
|
+
1. **Use IANA timezone ids, not raw offsets.** `"2024-03-15T14:30:45[America/New_York]"`
|
|
60
|
+
is correct; bare `"-05:00"` loses the zone and can't observe DST rules.
|
|
61
|
+
2. **DST disambiguation.** `convertPlainDateTimeToZoned`, `addZoned` and
|
|
62
|
+
`setZoned` accept `disambiguation` (`"compatible"` | `"earlier"` |
|
|
63
|
+
`"later"` | `"reject"`) for gap/overlap resolution. On `addZoned`,
|
|
64
|
+
`subtractZoned` and `intervalFromDurationZoned` it follows TC39
|
|
65
|
+
AddZonedDateTime: the date part (years to days) moves the wall clock, the
|
|
66
|
+
time part (hours and smaller) is added in exact time, and `disambiguation`
|
|
67
|
+
resolves the wall clock the date part lands on, in a spring-forward gap or
|
|
68
|
+
a fall-back overlap: `"compatible"`/`"later"` move a gap landing forward,
|
|
69
|
+
`"earlier"` back, `"reject"` returns the sentinel. A time-only duration
|
|
70
|
+
ignores it, so `+ { minutes: 10 }` is always 10 real minutes.
|
|
71
|
+
3. **Boundaries are always the real zone boundary.** `startOfZoned`,
|
|
72
|
+
`endOfZoned`, `startOfQuarterForZoned`, `endOfQuarterForZoned`,
|
|
73
|
+
`getLocaleZonedStartOfWeek`, `getLocaleZonedEndOfWeek` and their `unix/`
|
|
74
|
+
counterparts (`startOfUnix`,
|
|
75
|
+
`endOfUnix`, …) return the real start and end of the unit that contains the
|
|
76
|
+
input: the start is never after the input, and the end is the last
|
|
77
|
+
nanosecond before the next start, printed at nanosecond precision by default
|
|
78
|
+
(`"…T23:59:59.999999999…"`); pass `fractionalSecondDigits: 0` for the shorter
|
|
79
|
+
pre-1.16.0 string. `Pacific/Chatham`'s 03:00 hour on its
|
|
80
|
+
spring-forward begins at 03:45, and New York's repeated 1 a.m. is its own
|
|
81
|
+
hour. `areZonedEqualBy`/`areUnixEqualBy` compare these boundary instants, so
|
|
82
|
+
the two passes of a repeated hour are not equal. A day whose midnight repeats
|
|
83
|
+
on the same date (America/Havana, 2024-11-03) is one 25-hour day.
|
|
84
|
+
`getHoursInZonedDay` and `mapZonedHoursInDay` measure the input's calendar
|
|
85
|
+
date via TC39 `hoursInDay`; that differs from `startOfZoned(…, "day")` only
|
|
86
|
+
where a fall-back re-enters the previous date (America/Goose_Bay,
|
|
87
|
+
2010-11-07).
|
|
88
|
+
4. **Boundary functions take no `disambiguation` or `offset`.** They match
|
|
89
|
+
TC39 `startOfDay()`, which takes no such options. Resolution options belong on
|
|
90
|
+
functions that set wall-clock fields —
|
|
91
|
+
`convertPlainDateTimeToZoned`, `resolveLocal`, `addZoned`, `setZoned`.
|
|
92
|
+
5. **Classify a zoneless wall time before resolving it.** `classifyLocal(local,
|
|
93
|
+
zone)` returns `"unique"` | `"ambiguous"` | `"nonexistent"` so code can branch
|
|
94
|
+
rather than accept a policy — 01:30 happens twice on a fall-back day and never
|
|
95
|
+
on a spring-forward one. `resolveLocal(local, zone, { disambiguation })` then
|
|
96
|
+
returns the instant, exact to the nanosecond, or `""` under `"reject"`. Reach
|
|
97
|
+
for `convertPlainDateTimeToZoned` instead when you want the zoned string.
|
|
98
|
+
6. **An offset is not a zone.** `-05:00` does not identify `America/New_York`.
|
|
99
|
+
`toOffsetInstant` splits a timestamp into `{ instant, offset, timeZone? }` —
|
|
100
|
+
the shape EPCIS 2.0, EDIFACT DTM and DICOM all exchange, because the instant
|
|
101
|
+
orders events and the offset renders them where they happened, and neither
|
|
102
|
+
derives from the other. Keep the zone for what is still to be scheduled.
|
|
103
|
+
7. **Bucket in the zone, not in UTC.** `floorToZone(instant, unit, zone)` and
|
|
104
|
+
`bucketRange(start, end, unit, zone)` floor on the zone's own calendar
|
|
105
|
+
boundaries. Flooring a UTC instant to a UTC day and calling it a local day is
|
|
106
|
+
wrong for most of the world for most of the day. The buckets are deliberately
|
|
107
|
+
not uniform: a day that springs forward is 23 hours and one that falls back is
|
|
108
|
+
25, and forcing 24 is what makes a daily aggregate drift.
|
|
109
|
+
`intervalCountZoned`/`intervalCountUnix`/`intervalCountUtc` count exactly
|
|
110
|
+
the buckets `bucketRange` returns.
|
|
111
|
+
8. **`roundZoned`/`roundUnix` are not a floor.** They follow TC39
|
|
112
|
+
`ZonedDateTime.round`, which rounds the wall clock and re-resolves it in the
|
|
113
|
+
zone, so `roundingMode: "trunc"` can land after the input:
|
|
114
|
+
`"2024-09-29T03:50:00+13:45[Pacific/Chatham]"` truncated to the hour gives
|
|
115
|
+
04:00. Never truncate-and-re-resolve (`round` with `"trunc"`, or `.with()`
|
|
116
|
+
on the wall clock) to find a zoned boundary — use `floorToZone` or
|
|
117
|
+
`startOfZoned` with no options.
|
|
118
|
+
9. **Hours in a day come from the zone.** `getHoursInZonedDay` is Temporal's
|
|
119
|
+
`hoursInDay`: 23 on a spring-forward day, 25 on a fall-back day, 23.5 in
|
|
120
|
+
`Australia/Lord_Howe`, and 23 on a day whose midnight is skipped
|
|
121
|
+
(`America/Santiago`, 2024-09-08). `mapZonedHoursInDay` stops at the next
|
|
122
|
+
local day.
|
|
123
|
+
10. **Calendar annotations.** A calendar-annotated zoned string is RFC 9557,
|
|
124
|
+
`Temporal.ZonedDateTime#toString()`: ISO digits, then `[timeZone]`, then
|
|
125
|
+
`[u-ca=<id>]` (`"2024-10-03T14:30:45-04:00[America/New_York][u-ca=hebrew]"`).
|
|
126
|
+
A calendar annotation before the zone is rejected. Only `addZoned`, `subtractZoned`,
|
|
127
|
+
`diffZoned`, `diffZonedAsDuration`, `convertZonedToCalendar`,
|
|
128
|
+
`isValidCalendarZonedDateTime` and `zoned/interval/*` (including
|
|
129
|
+
`isValidCalendarZonedInterval`) accept it; everything else rejects it and
|
|
130
|
+
returns its invalid-input sentinel — `""` for a string result, `null` for a
|
|
131
|
+
number, `[]` for a list, and `false` for a validator or predicate such as
|
|
132
|
+
`isValidZonedDateTime` or `isBeforeZoned`. Always produce these with
|
|
133
|
+
`convertZonedToCalendar`. Calendar ids are the canonical Temporal ids (see
|
|
134
|
+
the `gmt-arithmetic` skill), and `[!u-ca=…]` is accepted wherever
|
|
135
|
+
`[u-ca=…]` is. Differences between values naming different calendars
|
|
136
|
+
return the sentinel for every unit, hours included.
|
|
137
|
+
11. **Zoned values are exact at the range limits.** In zones ahead of UTC,
|
|
138
|
+
`isValidZonedDateTime("+275760-09-13T10:00:00+10:00[Australia/Sydney]")`
|
|
139
|
+
is `true` and one nanosecond later is `false`. Parsing, arithmetic,
|
|
140
|
+
boundaries, differences and `relativeTo` totals all work there.
|
|
141
|
+
Daylight-saving rules hold to the end: `America/Santiago`'s
|
|
142
|
+
`+275760-09-07` is a 23-hour day. At the first instant in a zone behind
|
|
143
|
+
UTC, an offset-less wall clock (`"-271821-04-19T12:00:00[Etc/GMT+12]"`)
|
|
144
|
+
resolves. The same string with its `-12:00` offset returns the sentinel,
|
|
145
|
+
because TC39 checks that local date against the day range.
|
|
146
|
+
12. **Zoned differences count calendar units on the wall clock.** `diffZoned`,
|
|
147
|
+
`diffZonedAsDuration` and `intervalLengthZoned` follow TC39
|
|
148
|
+
DifferenceZonedDateTime: days, weeks, months and years are counted on the
|
|
149
|
+
zone's wall clock (noon to noon across a 23-hour day is `1` day), and hours
|
|
150
|
+
and smaller are exact time. Two values in different zones have no shared
|
|
151
|
+
wall clock, so a calendar unit returns `null`/`""`; hours still work.
|
|
152
|
+
Convert both ends to one zone with `convertZonedToZoned` first, or diff the
|
|
153
|
+
UTC instants with `diffUtc` if UTC days are what you mean.
|
|
154
|
+
`intervalOverlappingDaysZoned`/`intervalOverlappingDaysUnix` count the
|
|
155
|
+
distinct local dates the overlap touches: a deleted day is not counted, and a
|
|
156
|
+
fall-back into the previous date counts that date.
|
|
157
|
+
13. **Zone names and leap seconds.** Every IANA name is a zone, including
|
|
158
|
+
single-component links (`Japan`, `Zulu`, `EST5EDT`), in any case.
|
|
159
|
+
`toOffsetInstant` returns IANA casing (`"america/new_york"` gives
|
|
160
|
+
`"America/New_York"`). `:60` is invalid in every spelling (`T`, `t`, space,
|
|
161
|
+
basic format) and every zoned function returns its sentinel for it rather
|
|
162
|
+
than reading `:59`.
|
|
163
|
+
14. **A zoned value formats in its own zone.** `formatZonedDateTime`,
|
|
164
|
+
`formatZonedRange` and `formatZonedToParts` return `""`/`[]` for a
|
|
165
|
+
`timeZone` option. To show an instant in another zone, use
|
|
166
|
+
`formatUtc(convertZonedToUtc(value), locale, { timeZone })`.
|
|
167
|
+
15. **Read the README.** This skill is a routing pointer. For the full DST
|
|
168
|
+
disambiguation walkthrough, code examples, and locale ICU notes, read the
|
|
169
|
+
installed package's `README.md` and the source JSDoc.
|
|
170
|
+
|
|
171
|
+
## Key functions
|
|
172
|
+
|
|
173
|
+
- **Current**: `getZonedNow`, `getZonedToday`
|
|
174
|
+
- **Formatting**: `formatZonedDateTime`, `formatZonedRange`,
|
|
175
|
+
`formatRelativeZoned`, `formatTimeZoneName`
|
|
176
|
+
- **Validation**: `isValidTimeZone`, `isValidZonedDateTime`,
|
|
177
|
+
`hasDaylightSaving`, `getDstTransitions`, `isInDaylightSaving`
|
|
178
|
+
- **Conversion**: `convertPlainDateTimeToZoned`, `convertZonedToPlainDateTime`,
|
|
179
|
+
`convertUtcToZoned`, `convertZonedToUtc`, `convertZonedToCalendar`,
|
|
180
|
+
`convertUtcToUnix`, `convertUnixToUtc`
|
|
181
|
+
- **Arithmetic (with disambiguation)**: `addZoned`, `subtractZoned`, `clampZoned`,
|
|
182
|
+
`closestZonedTo`, `setZoned`, `cycleZoned`, `roundZoned`
|
|
183
|
+
- **Boundaries (real by default)**: `startOfZoned`, `endOfZoned`,
|
|
184
|
+
`startOfQuarterForZoned`, `endOfQuarterForZoned`,
|
|
185
|
+
`getLocaleZonedStartOfWeek`, `getLocaleZonedEndOfWeek`, `startOfUnix`,
|
|
186
|
+
`endOfUnix`, `mapZonedHoursInDay`, `getHoursInZonedDay`
|
|
187
|
+
- **Offset/DST reads**: `getZonedOffset`, `getZonedOffsetAs`,
|
|
188
|
+
`getTimeZoneOffset`, `parseTimeZoneFromZoned`
|
|
189
|
+
- **Offset-preserving instants**: `toOffsetInstant`, `fromOffsetInstant`
|
|
190
|
+
- **Local-time resolution**: `classifyLocal`, `resolveLocal`
|
|
191
|
+
- **Zone-aware buckets**: `floorToZone`, `bucketRange`,
|
|
192
|
+
`isValidZoneBucketUnit`
|
|
193
|
+
|
|
194
|
+
## References
|
|
195
|
+
|
|
196
|
+
- [README — Timezone and Calendar examples](README.md)
|
|
197
|
+
- [DST Disambiguation guide](https://gmt-dox.northguild.workers.dev/guides/concepts/dst-disambiguation/)
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
function getStep(date, direction) {
|
|
2
|
-
return direction === 1 ? date.add({ days: 1 }) : date.subtract({ days: 1 });
|
|
3
|
-
}
|
|
4
|
-
export function advanceBusinessDays(start, direction, target) {
|
|
5
|
-
const advance = (date, remaining) => {
|
|
6
|
-
if (remaining === 0)
|
|
7
|
-
return date;
|
|
8
|
-
const next = getStep(date, direction);
|
|
9
|
-
if (next.dayOfWeek >= 1 && next.dayOfWeek <= 5) {
|
|
10
|
-
return advance(next, remaining - 1);
|
|
11
|
-
}
|
|
12
|
-
return advance(next, remaining);
|
|
13
|
-
};
|
|
14
|
-
return advance(start, target);
|
|
15
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
export type EthiopicFamilyCalendar = "ethiopic" | "ethiopic-amete-alem" | "coptic";
|
|
3
|
-
export declare function isEthiopicFamilyCalendar(value: string): value is EthiopicFamilyCalendar;
|
|
4
|
-
export interface EthiopicFamilyFields {
|
|
5
|
-
year: number;
|
|
6
|
-
era?: "ethioaa" | "ethiopic";
|
|
7
|
-
eraYear?: number;
|
|
8
|
-
month: number;
|
|
9
|
-
day: number;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Derive an Ethiopic-family calendar's native year/month/day (+ era, for "ethiopic") from a
|
|
13
|
-
* Temporal.PlainDate, via Temporal's ICU-independent "ethioaa" calendar rather than the
|
|
14
|
-
* target's own native calendar id. See the module comment above for why.
|
|
15
|
-
*/
|
|
16
|
-
export declare function ethiopicFamilyFieldsFromDate(date: Temporal.PlainDate, calendar: EthiopicFamilyCalendar): EthiopicFamilyFields;
|
|
17
|
-
/**
|
|
18
|
-
* Construct a Temporal.PlainDate from an Ethiopic-family calendar's native fields, backed
|
|
19
|
-
* by Temporal's "ethioaa" calendar rather than the target's own native calendar id. Throws
|
|
20
|
-
* on an unrecognized era or a missing required field — callers wrap this in try-catch per
|
|
21
|
-
* GMT's sentinel-return contract. See the module comment above for why.
|
|
22
|
-
*/
|
|
23
|
-
export declare function dateFromEthiopicFamilyFields(calendar: EthiopicFamilyCalendar, fields: {
|
|
24
|
-
year?: number;
|
|
25
|
-
era?: string;
|
|
26
|
-
eraYear?: number;
|
|
27
|
-
month: number;
|
|
28
|
-
day: number;
|
|
29
|
-
}): Temporal.PlainDate;
|
|
30
|
-
/**
|
|
31
|
-
* Split a Temporal.PlainDate into GMT's calendar-annotated string halves for an Ethiopic-family
|
|
32
|
-
* calendar, mirroring `calendarDateParts`' shape for the rest of the calendar systems but
|
|
33
|
-
* routed entirely through `ethiopicFamilyFieldsFromDate` — see the module comment above.
|
|
34
|
-
*
|
|
35
|
-
* Returned as `{ date, annotation }` rather than one string so the zoned grammar can splice its
|
|
36
|
-
* time/offset between the two halves — see `calendarDateParts`' doc comment for why.
|
|
37
|
-
*/
|
|
38
|
-
export declare function ethiopicFamilyDateParts(date: Temporal.PlainDate, calendar: EthiopicFamilyCalendar): {
|
|
39
|
-
date: string;
|
|
40
|
-
annotation: string;
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Format a Temporal.PlainDate as GMT's calendar-annotated string for an Ethiopic-family
|
|
44
|
-
* calendar, mirroring `formatCalendarDate`'s shape for the rest of the calendar systems but
|
|
45
|
-
* routed entirely through `ethiopicFamilyFieldsFromDate` — see the module comment above.
|
|
46
|
-
*/
|
|
47
|
-
export declare function formatEthiopicFamilyDate(date: Temporal.PlainDate, calendar: EthiopicFamilyCalendar): string;
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
export function isEthiopicFamilyCalendar(value) {
|
|
3
|
-
return (value === "ethiopic" ||
|
|
4
|
-
value === "ethiopic-amete-alem" ||
|
|
5
|
-
value === "coptic");
|
|
6
|
-
}
|
|
7
|
-
// @js-temporal/polyfill@0.5.1's "ethiopic" and "coptic" calendar ids resolve year/era by
|
|
8
|
-
// formatting the date through Intl.DateTimeFormat and matching the resulting era part
|
|
9
|
-
// against a hardcoded era-name table (its HelperBase.isoToCalendarDate — used because,
|
|
10
|
-
// unlike "ethioaa", these two calendars aren't a fixed year-offset from ISO, so the
|
|
11
|
-
// polyfill can't compute them with pure arithmetic the way it does for "ethioaa"). CLDR's
|
|
12
|
-
// era abbreviation for both calendars changed at the ICU 78 boundary, not at any particular
|
|
13
|
-
// Node major version: ICU < 78 emits an era string the polyfill's table matches; ICU >= 78
|
|
14
|
-
// emits "am", which isn't in that table. This is a real trap for "which Node am I on" bug
|
|
15
|
-
// hunting — ICU 78 ships in *both* Node 22 and Node 24 (confirmed directly against a Node 20 /
|
|
16
|
-
// ICU 78.2 environment during E5, issue #78, where the bug reproduces despite being on Node
|
|
17
|
-
// 20 — an earlier draft of this comment wrongly pinned the boundary to "Node 24"). The result
|
|
18
|
-
// is that *every* read or write of Temporal's "ethiopic"/"coptic" calendar ids throws a
|
|
19
|
-
// RangeError under ICU >= 78 (verified directly — this isn't a hypothetical). "ethioaa" (Ethiopic Amete Alem)
|
|
20
|
-
// has no era at all — a single continuous count from a fixed epoch — so the polyfill
|
|
21
|
-
// resolves it with pure arithmetic and never touches Intl, making it stable across Node
|
|
22
|
-
// versions. This module uses "ethioaa" as a computation carrier for the whole Ethiopic
|
|
23
|
-
// family: month/day are identical across all three (they share one annual 13-month cycle),
|
|
24
|
-
// so only the displayed year (+ era, for "ethiopic") needs converting, which this module
|
|
25
|
-
// does with GMT-owned arithmetic instead of ever constructing or reading a Temporal
|
|
26
|
-
// PlainDate calendared as "ethiopic" or "coptic".
|
|
27
|
-
//
|
|
28
|
-
// The two constants below are ported from the same source file
|
|
29
|
-
// (@js-temporal/polyfill/lib/calendar.ts)'s EthiopicHelper/CopticHelper definitions, not
|
|
30
|
-
// independently derived: the Amete Mihret ("ethiopic") era begins at ethioaa proleptic year
|
|
31
|
-
// 5501 (EthiopicHelper's `anchorEpoch: { year: 5501 }`), and Coptic's own epoch
|
|
32
|
-
// (0284-08-29) falls 5776 ethioaa years after ethioaa's epoch (-005492-07-17) — both
|
|
33
|
-
// verified against the polyfill's own output across a spread of dates spanning multiple
|
|
34
|
-
// centuries and both 13th-month lengths before being hardcoded here.
|
|
35
|
-
const ETHIOPIC_ERA_ANCHOR_ETHIOAA_YEAR = 5501;
|
|
36
|
-
const COPTIC_ETHIOAA_YEAR_OFFSET = 5776;
|
|
37
|
-
/**
|
|
38
|
-
* Derive an Ethiopic-family calendar's native year/month/day (+ era, for "ethiopic") from a
|
|
39
|
-
* Temporal.PlainDate, via Temporal's ICU-independent "ethioaa" calendar rather than the
|
|
40
|
-
* target's own native calendar id. See the module comment above for why.
|
|
41
|
-
*/
|
|
42
|
-
export function ethiopicFamilyFieldsFromDate(date, calendar) {
|
|
43
|
-
const { year: ethioaaYear, month, day } = date.withCalendar("ethioaa");
|
|
44
|
-
if (calendar === "ethiopic-amete-alem") {
|
|
45
|
-
return { year: ethioaaYear, month, day };
|
|
46
|
-
}
|
|
47
|
-
if (calendar === "coptic") {
|
|
48
|
-
return { year: ethioaaYear - COPTIC_ETHIOAA_YEAR_OFFSET, month, day };
|
|
49
|
-
}
|
|
50
|
-
if (ethioaaYear >= ETHIOPIC_ERA_ANCHOR_ETHIOAA_YEAR) {
|
|
51
|
-
return {
|
|
52
|
-
year: ethioaaYear,
|
|
53
|
-
era: "ethiopic",
|
|
54
|
-
eraYear: ethioaaYear - (ETHIOPIC_ERA_ANCHOR_ETHIOAA_YEAR - 1),
|
|
55
|
-
month,
|
|
56
|
-
day,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
year: ethioaaYear,
|
|
61
|
-
era: "ethioaa",
|
|
62
|
-
eraYear: ethioaaYear,
|
|
63
|
-
month,
|
|
64
|
-
day,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Construct a Temporal.PlainDate from an Ethiopic-family calendar's native fields, backed
|
|
69
|
-
* by Temporal's "ethioaa" calendar rather than the target's own native calendar id. Throws
|
|
70
|
-
* on an unrecognized era or a missing required field — callers wrap this in try-catch per
|
|
71
|
-
* GMT's sentinel-return contract. See the module comment above for why.
|
|
72
|
-
*/
|
|
73
|
-
export function dateFromEthiopicFamilyFields(calendar, fields) {
|
|
74
|
-
let ethioaaYear;
|
|
75
|
-
if (calendar === "ethiopic-amete-alem" || calendar === "coptic") {
|
|
76
|
-
if (fields.year === undefined) {
|
|
77
|
-
throw new RangeError(`${calendar} requires a year`);
|
|
78
|
-
}
|
|
79
|
-
ethioaaYear =
|
|
80
|
-
calendar === "coptic"
|
|
81
|
-
? fields.year + COPTIC_ETHIOAA_YEAR_OFFSET
|
|
82
|
-
: fields.year;
|
|
83
|
-
}
|
|
84
|
-
else if (fields.era === "ethioaa" || fields.era === "ethiopic") {
|
|
85
|
-
if (fields.eraYear === undefined) {
|
|
86
|
-
throw new RangeError("ethiopic requires an eraYear");
|
|
87
|
-
}
|
|
88
|
-
ethioaaYear =
|
|
89
|
-
fields.era === "ethioaa"
|
|
90
|
-
? fields.eraYear
|
|
91
|
-
: fields.eraYear + (ETHIOPIC_ERA_ANCHOR_ETHIOAA_YEAR - 1);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
throw new RangeError(`Unknown ethiopic era: ${fields.era}`);
|
|
95
|
-
}
|
|
96
|
-
return Temporal.PlainDate.from({
|
|
97
|
-
year: ethioaaYear,
|
|
98
|
-
month: fields.month,
|
|
99
|
-
day: fields.day,
|
|
100
|
-
calendar: "ethioaa",
|
|
101
|
-
}, { overflow: "reject" });
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Split a Temporal.PlainDate into GMT's calendar-annotated string halves for an Ethiopic-family
|
|
105
|
-
* calendar, mirroring `calendarDateParts`' shape for the rest of the calendar systems but
|
|
106
|
-
* routed entirely through `ethiopicFamilyFieldsFromDate` — see the module comment above.
|
|
107
|
-
*
|
|
108
|
-
* Returned as `{ date, annotation }` rather than one string so the zoned grammar can splice its
|
|
109
|
-
* time/offset between the two halves — see `calendarDateParts`' doc comment for why.
|
|
110
|
-
*/
|
|
111
|
-
export function ethiopicFamilyDateParts(date, calendar) {
|
|
112
|
-
const fields = ethiopicFamilyFieldsFromDate(date, calendar);
|
|
113
|
-
const month = String(fields.month).padStart(2, "0");
|
|
114
|
-
const day = String(fields.day).padStart(2, "0");
|
|
115
|
-
if (calendar === "ethiopic") {
|
|
116
|
-
const eraYear = String(fields.eraYear).padStart(4, "0");
|
|
117
|
-
return {
|
|
118
|
-
date: `${eraYear}-${month}-${day}`,
|
|
119
|
-
annotation: `[u-ca=ethiopic;era=${fields.era}]`,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
const year = String(fields.year).padStart(4, "0");
|
|
123
|
-
return {
|
|
124
|
-
date: `${year}-${month}-${day}`,
|
|
125
|
-
annotation: `[u-ca=${calendar}]`,
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Format a Temporal.PlainDate as GMT's calendar-annotated string for an Ethiopic-family
|
|
130
|
-
* calendar, mirroring `formatCalendarDate`'s shape for the rest of the calendar systems but
|
|
131
|
-
* routed entirely through `ethiopicFamilyFieldsFromDate` — see the module comment above.
|
|
132
|
-
*/
|
|
133
|
-
export function formatEthiopicFamilyDate(date, calendar) {
|
|
134
|
-
const { date: datePart, annotation } = ethiopicFamilyDateParts(date, calendar);
|
|
135
|
-
return `${datePart}${annotation}`;
|
|
136
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve the minimum number of days a week must have in January for that
|
|
3
|
-
* week to count as a locale's week 1, via `Intl.Locale.prototype.weekInfo`.
|
|
4
|
-
*
|
|
5
|
-
* - Returns `null` if `locale` is not a valid BCP 47 tag.
|
|
6
|
-
* - Falls back to `4` (matching ISO 8601's rule — week 1 is the first
|
|
7
|
-
* week with at least 4 days in January, equivalently the week
|
|
8
|
-
* containing Jan 4) if `weekInfo` is unavailable on the runtime (older
|
|
9
|
-
* engines) or unresolvable for the given locale. This mirrors
|
|
10
|
-
* `getLocaleFirstDayOfWeek`'s fallback-to-ISO-default pattern.
|
|
11
|
-
* - Observed on Node 24 (V8/ICU 78): `weekInfo` omits `minimalDays`
|
|
12
|
-
* entirely, for every locale, even though Node 20/22 (ICU 77) populate
|
|
13
|
-
* it — so this fallback engages universally on that runtime rather
|
|
14
|
-
* than only for locales missing data. `getLocaleWeekYear` and
|
|
15
|
-
* `getWeeksInLocaleWeekYear` therefore lose locale-specific
|
|
16
|
-
* minimal-days behavior (silently degrading to the ISO value) on
|
|
17
|
-
* runtimes where the engine doesn't expose it, which is worth knowing
|
|
18
|
-
* before treating a Node-version-only test failure as a real bug.
|
|
19
|
-
*/
|
|
20
|
-
export declare function getLocaleMinimalDaysInFirstWeek(locale: string): number | null;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve the minimum number of days a week must have in January for that
|
|
3
|
-
* week to count as a locale's week 1, via `Intl.Locale.prototype.weekInfo`.
|
|
4
|
-
*
|
|
5
|
-
* - Returns `null` if `locale` is not a valid BCP 47 tag.
|
|
6
|
-
* - Falls back to `4` (matching ISO 8601's rule — week 1 is the first
|
|
7
|
-
* week with at least 4 days in January, equivalently the week
|
|
8
|
-
* containing Jan 4) if `weekInfo` is unavailable on the runtime (older
|
|
9
|
-
* engines) or unresolvable for the given locale. This mirrors
|
|
10
|
-
* `getLocaleFirstDayOfWeek`'s fallback-to-ISO-default pattern.
|
|
11
|
-
* - Observed on Node 24 (V8/ICU 78): `weekInfo` omits `minimalDays`
|
|
12
|
-
* entirely, for every locale, even though Node 20/22 (ICU 77) populate
|
|
13
|
-
* it — so this fallback engages universally on that runtime rather
|
|
14
|
-
* than only for locales missing data. `getLocaleWeekYear` and
|
|
15
|
-
* `getWeeksInLocaleWeekYear` therefore lose locale-specific
|
|
16
|
-
* minimal-days behavior (silently degrading to the ISO value) on
|
|
17
|
-
* runtimes where the engine doesn't expose it, which is worth knowing
|
|
18
|
-
* before treating a Node-version-only test failure as a real bug.
|
|
19
|
-
*/
|
|
20
|
-
export function getLocaleMinimalDaysInFirstWeek(locale) {
|
|
21
|
-
try {
|
|
22
|
-
const weekInfo = new Intl.Locale(locale).weekInfo;
|
|
23
|
-
if (!weekInfo || typeof weekInfo.minimalDays !== "number") {
|
|
24
|
-
return 4;
|
|
25
|
-
}
|
|
26
|
-
return weekInfo.minimalDays;
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve an optional Unix diff timeZone to its default (system timeZone) when unset.
|
|
3
|
-
*
|
|
4
|
-
* @param timeZone optional IANA timeZone
|
|
5
|
-
* @returns the resolved timeZone, or "" if invalid
|
|
6
|
-
* @example resolveUnixTimeZone(undefined) // system timeZone, e.g. "America/New_York"
|
|
7
|
-
* @example resolveUnixTimeZone("Europe/Helsinki") // "Europe/Helsinki"
|
|
8
|
-
* @example resolveUnixTimeZone("not-a-timezone") // ""
|
|
9
|
-
*/
|
|
10
|
-
export declare function resolveUnixTimeZone(timeZone?: string): string;
|
|
11
|
-
/**
|
|
12
|
-
* Validate that both Unix epoch values are finite integers.
|
|
13
|
-
*
|
|
14
|
-
* @param value1 first Unix timestamp
|
|
15
|
-
* @param value2 second Unix timestamp
|
|
16
|
-
* @returns true if both values are finite integers
|
|
17
|
-
* @example isValidUnixEpochPair(1704067200000, 1704153600000) // true
|
|
18
|
-
* @example isValidUnixEpochPair(NaN, 1704153600000) // false
|
|
19
|
-
*/
|
|
20
|
-
export declare function isValidUnixEpochPair(value1: number, value2: number): boolean;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { getSystemTimeZone } from "../zoned/get/index.js";
|
|
2
|
-
import { isValidTimeZone } from "../zoned/validate/index.js";
|
|
3
|
-
/**
|
|
4
|
-
* Resolve an optional Unix diff timeZone to its default (system timeZone) when unset.
|
|
5
|
-
*
|
|
6
|
-
* @param timeZone optional IANA timeZone
|
|
7
|
-
* @returns the resolved timeZone, or "" if invalid
|
|
8
|
-
* @example resolveUnixTimeZone(undefined) // system timeZone, e.g. "America/New_York"
|
|
9
|
-
* @example resolveUnixTimeZone("Europe/Helsinki") // "Europe/Helsinki"
|
|
10
|
-
* @example resolveUnixTimeZone("not-a-timezone") // ""
|
|
11
|
-
*/
|
|
12
|
-
export function resolveUnixTimeZone(timeZone) {
|
|
13
|
-
const resolved = timeZone ?? getSystemTimeZone();
|
|
14
|
-
return resolved && isValidTimeZone(resolved) ? resolved : "";
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Validate that both Unix epoch values are finite integers.
|
|
18
|
-
*
|
|
19
|
-
* @param value1 first Unix timestamp
|
|
20
|
-
* @param value2 second Unix timestamp
|
|
21
|
-
* @returns true if both values are finite integers
|
|
22
|
-
* @example isValidUnixEpochPair(1704067200000, 1704153600000) // true
|
|
23
|
-
* @example isValidUnixEpochPair(NaN, 1704153600000) // false
|
|
24
|
-
*/
|
|
25
|
-
export function isValidUnixEpochPair(value1, value2) {
|
|
26
|
-
return (Number.isFinite(value1) &&
|
|
27
|
-
Number.isInteger(value1) &&
|
|
28
|
-
Number.isFinite(value2) &&
|
|
29
|
-
Number.isInteger(value2));
|
|
30
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import type { Disambiguation, Offset } from "../../types/index.js";
|
|
3
|
-
export declare function startOrEndOfUnix(value: number, unit: Temporal.DateUnit | Temporal.TimeUnit, options: {
|
|
4
|
-
epochUnit?: "seconds" | "milliseconds";
|
|
5
|
-
timeZone?: string;
|
|
6
|
-
weekStartsOn?: "monday" | "sunday";
|
|
7
|
-
disambiguation?: Disambiguation;
|
|
8
|
-
offset?: Offset;
|
|
9
|
-
}, isEnd: boolean): number | null;
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import { isValidDateTimeUnit } from "../../plain/index.js";
|
|
3
|
-
import { isValidUnixUnit } from "../../unix/validate/isValidUnixUnit.js";
|
|
4
|
-
import { getSystemTimeZone } from "../../zoned/get/index.js";
|
|
5
|
-
import { isValidTimeZone } from "../../zoned/validate/index.js";
|
|
6
|
-
export function startOrEndOfUnix(value, unit, options, isEnd) {
|
|
7
|
-
const epochUnit = options.epochUnit ?? "milliseconds";
|
|
8
|
-
const timeZone = options.timeZone ?? getSystemTimeZone();
|
|
9
|
-
const weekStartsOn = options.weekStartsOn ?? "monday";
|
|
10
|
-
const disambiguation = options.disambiguation ?? "compatible";
|
|
11
|
-
const offset = options.offset ?? "ignore";
|
|
12
|
-
if (!timeZone ||
|
|
13
|
-
!isValidDateTimeUnit(unit) ||
|
|
14
|
-
!isValidTimeZone(timeZone) ||
|
|
15
|
-
!isValidUnixUnit(epochUnit)) {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
if (!Number.isFinite(value) || !Number.isInteger(value)) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
try {
|
|
22
|
-
const epochMs = epochUnit === "seconds" ? value * 1000 : value;
|
|
23
|
-
const instant = Temporal.Instant.fromEpochMilliseconds(epochMs);
|
|
24
|
-
const source = instant.toZonedDateTimeISO(timeZone);
|
|
25
|
-
const timeFields = isEnd
|
|
26
|
-
? {
|
|
27
|
-
hour: 23,
|
|
28
|
-
minute: 59,
|
|
29
|
-
second: 59,
|
|
30
|
-
millisecond: 999,
|
|
31
|
-
microsecond: 999,
|
|
32
|
-
nanosecond: 999,
|
|
33
|
-
}
|
|
34
|
-
: {
|
|
35
|
-
hour: 0,
|
|
36
|
-
minute: 0,
|
|
37
|
-
second: 0,
|
|
38
|
-
millisecond: 0,
|
|
39
|
-
microsecond: 0,
|
|
40
|
-
nanosecond: 0,
|
|
41
|
-
};
|
|
42
|
-
let result;
|
|
43
|
-
switch (unit) {
|
|
44
|
-
case "year":
|
|
45
|
-
result = isEnd
|
|
46
|
-
? source.with({ month: 12, day: 31, ...timeFields }, { disambiguation, offset })
|
|
47
|
-
: source.with({ month: 1, day: 1, ...timeFields }, { disambiguation, offset });
|
|
48
|
-
break;
|
|
49
|
-
case "month": {
|
|
50
|
-
const lastDay = Temporal.PlainDate.from({
|
|
51
|
-
year: source.year,
|
|
52
|
-
month: source.month,
|
|
53
|
-
day: 1,
|
|
54
|
-
}).daysInMonth;
|
|
55
|
-
result = isEnd
|
|
56
|
-
? source.with({ day: lastDay, ...timeFields }, { disambiguation, offset })
|
|
57
|
-
: source.with({ day: 1, ...timeFields }, { disambiguation, offset });
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
case "week": {
|
|
61
|
-
const daysToSubtract = weekStartsOn === "monday"
|
|
62
|
-
? source.dayOfWeek - 1
|
|
63
|
-
: source.dayOfWeek % 7;
|
|
64
|
-
const weekAnchor = source.subtract({ days: daysToSubtract });
|
|
65
|
-
result = isEnd
|
|
66
|
-
? weekAnchor
|
|
67
|
-
.add({ days: 6 })
|
|
68
|
-
.with({ ...timeFields }, { disambiguation, offset })
|
|
69
|
-
: weekAnchor.with({ ...timeFields }, { disambiguation, offset });
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
case "day":
|
|
73
|
-
result = source.with({ ...timeFields }, { disambiguation, offset });
|
|
74
|
-
break;
|
|
75
|
-
case "hour":
|
|
76
|
-
result = source.with({
|
|
77
|
-
minute: timeFields.minute,
|
|
78
|
-
second: timeFields.second,
|
|
79
|
-
millisecond: timeFields.millisecond,
|
|
80
|
-
microsecond: timeFields.microsecond,
|
|
81
|
-
nanosecond: timeFields.nanosecond,
|
|
82
|
-
}, { disambiguation, offset });
|
|
83
|
-
break;
|
|
84
|
-
case "minute":
|
|
85
|
-
result = source.with({
|
|
86
|
-
second: timeFields.second,
|
|
87
|
-
millisecond: timeFields.millisecond,
|
|
88
|
-
microsecond: timeFields.microsecond,
|
|
89
|
-
nanosecond: timeFields.nanosecond,
|
|
90
|
-
}, { disambiguation, offset });
|
|
91
|
-
break;
|
|
92
|
-
case "second":
|
|
93
|
-
result = source.with({
|
|
94
|
-
millisecond: timeFields.millisecond,
|
|
95
|
-
microsecond: timeFields.microsecond,
|
|
96
|
-
nanosecond: timeFields.nanosecond,
|
|
97
|
-
}, { disambiguation, offset });
|
|
98
|
-
break;
|
|
99
|
-
case "millisecond":
|
|
100
|
-
result = source.with({
|
|
101
|
-
microsecond: timeFields.microsecond,
|
|
102
|
-
nanosecond: timeFields.nanosecond,
|
|
103
|
-
}, { disambiguation, offset });
|
|
104
|
-
break;
|
|
105
|
-
case "microsecond":
|
|
106
|
-
result = source.with({ nanosecond: timeFields.nanosecond }, { disambiguation, offset });
|
|
107
|
-
break;
|
|
108
|
-
case "nanosecond":
|
|
109
|
-
result = source;
|
|
110
|
-
break;
|
|
111
|
-
default:
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
const epoch = epochUnit === "seconds"
|
|
115
|
-
? Math.floor(result.epochMilliseconds / 1000)
|
|
116
|
-
: result.epochMilliseconds;
|
|
117
|
-
return epoch;
|
|
118
|
-
}
|
|
119
|
-
catch {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
export interface ResolvedUnixInterval {
|
|
3
|
-
startVal: Temporal.ZonedDateTime;
|
|
4
|
-
endVal: Temporal.ZonedDateTime;
|
|
5
|
-
resolvedUnit: Temporal.DateTimeUnit;
|
|
6
|
-
}
|
|
7
|
-
export declare function resolveUnixIntervalPair(start: number | string, end: number | string, unit: string): ResolvedUnixInterval | null;
|