@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,166 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
/** The two units a Unix epoch value is expressed in. */
|
|
3
|
+
export type UnixEpochUnit = "seconds" | "milliseconds";
|
|
4
|
+
/**
|
|
5
|
+
* Parse one Unix epoch argument into a number, or null — the one epoch grammar every `unix/`
|
|
6
|
+
* function and validator shares.
|
|
7
|
+
*
|
|
8
|
+
* - A number must be a safe integer (`Number.isSafeInteger`): fractional values, `NaN`,
|
|
9
|
+
* `±Infinity` and anything beyond ±(2^53 − 1) are rejected. Past 2^53 consecutive integers are
|
|
10
|
+
* no longer distinct doubles (`2 ** 53 + 1 === 2 ** 53`). Every Temporal instant (±8.64e15 ms) is
|
|
11
|
+
* well inside that range.
|
|
12
|
+
* - A string must be an optionally negative run of ASCII digits (`/^-?\d+$/`) naming a safe
|
|
13
|
+
* integer. No whitespace, no `+`, no hex, binary, exponent, decimal point or numeric separator:
|
|
14
|
+
* POSIX epoch time is an integer count and has no other notation, so `Number()`'s wider
|
|
15
|
+
* StringToNumber grammar (`" 12 "`, `"0x10"`, `"1e3"`, `""` → 0) is not used.
|
|
16
|
+
* - `-0` reads as `0`.
|
|
17
|
+
* - Any other type is rejected.
|
|
18
|
+
*
|
|
19
|
+
* @param value Unix epoch value as a number or digit string
|
|
20
|
+
* @returns the epoch as a safe integer, or null when invalid
|
|
21
|
+
*
|
|
22
|
+
* @example parseUnixEpochValue(1704067200000) // 1704067200000
|
|
23
|
+
* @example parseUnixEpochValue("-86400") // -86400
|
|
24
|
+
* @example parseUnixEpochValue(1.5) // null
|
|
25
|
+
* @example parseUnixEpochValue(" 12") // null
|
|
26
|
+
* @example parseUnixEpochValue("1e3") // null
|
|
27
|
+
*/
|
|
28
|
+
export declare function parseUnixEpochValue(value: unknown): number | null;
|
|
29
|
+
/**
|
|
30
|
+
* Resolve an `epochUnit` option: omitted → `"milliseconds"`; singular or plural `second` /
|
|
31
|
+
* `millisecond` → the plural name; anything else → null.
|
|
32
|
+
*
|
|
33
|
+
* - Singular and plural are the same unit, as in Temporal §13.17 GetTemporalUnitValuedOption.
|
|
34
|
+
*
|
|
35
|
+
* @param unit candidate `epochUnit` value
|
|
36
|
+
* @returns the resolved unit, or null when invalid
|
|
37
|
+
*
|
|
38
|
+
* @example resolveUnixEpochUnit(undefined) // "milliseconds"
|
|
39
|
+
* @example resolveUnixEpochUnit("second") // "seconds"
|
|
40
|
+
* @example resolveUnixEpochUnit("nanoseconds") // null
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveUnixEpochUnit(unit: unknown): UnixEpochUnit | null;
|
|
43
|
+
/**
|
|
44
|
+
* Resolve the `epochUnit` of an options argument (`{ epochUnit }`), or null.
|
|
45
|
+
*
|
|
46
|
+
* - `undefined` options → `"milliseconds"`, the same as omitted (TC39 GetOptionsObject).
|
|
47
|
+
* - Anything that is not an object (`null`, a legacy positional unit string such as `"seconds"`, a
|
|
48
|
+
* number) → null: Temporal GetOptionsObject throws `TypeError` for it, so it is never silently
|
|
49
|
+
* read as the default.
|
|
50
|
+
* - Otherwise `resolveUnixEpochUnit(options.epochUnit)`.
|
|
51
|
+
*
|
|
52
|
+
* @param options candidate options argument
|
|
53
|
+
* @returns the resolved unit, or null when invalid
|
|
54
|
+
*
|
|
55
|
+
* @example resolveUnixEpochUnitOptions(undefined) // "milliseconds"
|
|
56
|
+
* @example resolveUnixEpochUnitOptions({ epochUnit: "second" }) // "seconds"
|
|
57
|
+
* @example resolveUnixEpochUnitOptions("seconds") // null
|
|
58
|
+
*/
|
|
59
|
+
export declare function resolveUnixEpochUnitOptions(options: unknown): UnixEpochUnit | null;
|
|
60
|
+
/**
|
|
61
|
+
* Read a Unix epoch argument (see `parseUnixEpochValue`) as a `Temporal.Instant`, or null when it
|
|
62
|
+
* is not an epoch or lies outside the Temporal instant range.
|
|
63
|
+
*
|
|
64
|
+
* - Seconds scale by 1000 exactly: every in-range seconds value (±8.64e12) times 1000 is a safe
|
|
65
|
+
* integer, and any product that is not exact is already outside the instant range.
|
|
66
|
+
*
|
|
67
|
+
* @param value Unix epoch value as a number or digit string
|
|
68
|
+
* @param epochUnit unit the value is expressed in
|
|
69
|
+
* @returns the instant, or null
|
|
70
|
+
*
|
|
71
|
+
* @example unixEpochToInstant(0, "seconds")?.toString() // "1970-01-01T00:00:00Z"
|
|
72
|
+
* @example unixEpochToInstant(8.64e15 + 1, "milliseconds") // null
|
|
73
|
+
*/
|
|
74
|
+
export declare function unixEpochToInstant(value: unknown, epochUnit: UnixEpochUnit): Temporal.Instant | null;
|
|
75
|
+
/**
|
|
76
|
+
* Express an instant (or zoned date-time) as a Unix epoch in `epochUnit`.
|
|
77
|
+
*
|
|
78
|
+
* - Seconds floor toward −∞, so `1969-12-31T23:59:59.999Z` is second `-1`, as POSIX
|
|
79
|
+
* `time_t` counts whole elapsed seconds.
|
|
80
|
+
*
|
|
81
|
+
* @param value anything with `epochMilliseconds`
|
|
82
|
+
* @param epochUnit unit of the result
|
|
83
|
+
* @returns the epoch value
|
|
84
|
+
*
|
|
85
|
+
* @example toUnixEpoch({ epochMilliseconds: 1710685845999 }, "seconds") // 1710685845
|
|
86
|
+
* @example toUnixEpoch({ epochMilliseconds: -1 }, "seconds") // -1
|
|
87
|
+
*/
|
|
88
|
+
export declare function toUnixEpoch(value: {
|
|
89
|
+
epochMilliseconds: number;
|
|
90
|
+
}, epochUnit: UnixEpochUnit): number;
|
|
91
|
+
/**
|
|
92
|
+
* Parse an epoch for the aggregators (`sortUnix`, `minUnix`, `maxUnix`) that take no `epochUnit`:
|
|
93
|
+
* the epoch grammar (`parseUnixEpochValue`) inside ±8.64e15, or null.
|
|
94
|
+
*
|
|
95
|
+
* - ±8.64e15 is the instant range in milliseconds. It contains the seconds range (±8.64e12), so no
|
|
96
|
+
* valid epoch of either unit is dropped.
|
|
97
|
+
*
|
|
98
|
+
* @param value candidate epoch value
|
|
99
|
+
* @returns the epoch as a number, or null
|
|
100
|
+
*
|
|
101
|
+
* @example parseUnixEpochInInstantRange("1700000000000") // 1700000000000
|
|
102
|
+
* @example parseUnixEpochInInstantRange(1e20) // null
|
|
103
|
+
*/
|
|
104
|
+
export declare function parseUnixEpochInInstantRange(value: unknown): number | null;
|
|
105
|
+
/**
|
|
106
|
+
* The values of a list that `parseUnixEpochInInstantRange` accepts, in list order.
|
|
107
|
+
*
|
|
108
|
+
* @param values candidate epoch values
|
|
109
|
+
* @returns the accepted epochs as numbers; empty when `values` is not an array or none is valid
|
|
110
|
+
*
|
|
111
|
+
* @example parseUnixEpochsInInstantRange(["1700000000000", 1.5, 1e20, -1]) // [1700000000000, -1]
|
|
112
|
+
* @example parseUnixEpochsInInstantRange("1700000000000") // []
|
|
113
|
+
*/
|
|
114
|
+
export declare function parseUnixEpochsInInstantRange(values: unknown): number[];
|
|
115
|
+
/**
|
|
116
|
+
* Parse a Unix epoch interval `[start, end]`, or null when either value is invalid (see
|
|
117
|
+
* `parseUnixEpochValue`) or the interval is reversed (`start > end`).
|
|
118
|
+
*
|
|
119
|
+
* @param start Unix epoch value, in the one unit all epoch arguments share — interval start
|
|
120
|
+
* @param end Unix epoch value, in the one unit all epoch arguments share — interval end
|
|
121
|
+
* @returns `{ start, end }` as safe integers, or null
|
|
122
|
+
*
|
|
123
|
+
* @example parseUnixEpochInterval(0, "1500000000") // { start: 0, end: 1500000000 }
|
|
124
|
+
* @example parseUnixEpochInterval(10, 0) // null (reversed)
|
|
125
|
+
* @example parseUnixEpochInterval(0, 1.5) // null (fractional)
|
|
126
|
+
*/
|
|
127
|
+
export declare function parseUnixEpochInterval(start: unknown, end: unknown): {
|
|
128
|
+
start: number;
|
|
129
|
+
end: number;
|
|
130
|
+
} | null;
|
|
131
|
+
/**
|
|
132
|
+
* Parse two Unix epoch intervals `[aStart, aEnd]` and `[bStart, bEnd]`, or null when either is
|
|
133
|
+
* invalid or reversed (see `parseUnixEpochInterval`).
|
|
134
|
+
*
|
|
135
|
+
* @param aStart first interval start
|
|
136
|
+
* @param aEnd first interval end
|
|
137
|
+
* @param bStart second interval start
|
|
138
|
+
* @param bEnd second interval end
|
|
139
|
+
* @returns `[a, b]` as `{ start, end }` safe-integer records, or null
|
|
140
|
+
*
|
|
141
|
+
* @example parseUnixEpochIntervalPair(0, 10, "5", "20") // [{ start: 0, end: 10 }, { start: 5, end: 20 }]
|
|
142
|
+
* @example parseUnixEpochIntervalPair(0, 10, 20, 5) // null (B reversed)
|
|
143
|
+
*/
|
|
144
|
+
export declare function parseUnixEpochIntervalPair(aStart: unknown, aEnd: unknown, bStart: unknown, bEnd: unknown): [{
|
|
145
|
+
start: number;
|
|
146
|
+
end: number;
|
|
147
|
+
}, {
|
|
148
|
+
start: number;
|
|
149
|
+
end: number;
|
|
150
|
+
}] | null;
|
|
151
|
+
/**
|
|
152
|
+
* Parse a list of Unix epoch `{ start, end }` records, or null when `intervals` is not an array or
|
|
153
|
+
* any element is not an object holding a valid, non-reversed interval (see
|
|
154
|
+
* `parseUnixEpochInterval`). An empty list parses to `[]`.
|
|
155
|
+
*
|
|
156
|
+
* @param intervals candidate list of `{ start, end }` records
|
|
157
|
+
* @returns the parsed intervals in input order, or null
|
|
158
|
+
*
|
|
159
|
+
* @example parseUnixEpochIntervalList([{ start: 0, end: "10" }]) // [{ start: 0, end: 10 }]
|
|
160
|
+
* @example parseUnixEpochIntervalList([{ start: 10, end: 0 }]) // null (reversed)
|
|
161
|
+
* @example parseUnixEpochIntervalList("not-an-array") // null
|
|
162
|
+
*/
|
|
163
|
+
export declare function parseUnixEpochIntervalList(intervals: unknown): Array<{
|
|
164
|
+
start: number;
|
|
165
|
+
end: number;
|
|
166
|
+
}> | null;
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { MAX_EPOCH_NANOSECONDS } from "./epochNanoseconds.js";
|
|
3
|
+
// TC39 Temporal IsValidEpochNanoseconds bound (nsMaxInstant = 10^8 days) in milliseconds: 8.64e15.
|
|
4
|
+
const MAX_EPOCH_MILLISECONDS = Number(MAX_EPOCH_NANOSECONDS / 1000000n);
|
|
5
|
+
// An optionally negative run of ASCII digits and nothing else. `\d` without the `u` flag is
|
|
6
|
+
// ASCII-only, and `$` without the `m` flag does not match before a trailing newline.
|
|
7
|
+
const EPOCH_DIGITS = /^-?\d+$/;
|
|
8
|
+
/**
|
|
9
|
+
* Parse one Unix epoch argument into a number, or null — the one epoch grammar every `unix/`
|
|
10
|
+
* function and validator shares.
|
|
11
|
+
*
|
|
12
|
+
* - A number must be a safe integer (`Number.isSafeInteger`): fractional values, `NaN`,
|
|
13
|
+
* `±Infinity` and anything beyond ±(2^53 − 1) are rejected. Past 2^53 consecutive integers are
|
|
14
|
+
* no longer distinct doubles (`2 ** 53 + 1 === 2 ** 53`). Every Temporal instant (±8.64e15 ms) is
|
|
15
|
+
* well inside that range.
|
|
16
|
+
* - A string must be an optionally negative run of ASCII digits (`/^-?\d+$/`) naming a safe
|
|
17
|
+
* integer. No whitespace, no `+`, no hex, binary, exponent, decimal point or numeric separator:
|
|
18
|
+
* POSIX epoch time is an integer count and has no other notation, so `Number()`'s wider
|
|
19
|
+
* StringToNumber grammar (`" 12 "`, `"0x10"`, `"1e3"`, `""` → 0) is not used.
|
|
20
|
+
* - `-0` reads as `0`.
|
|
21
|
+
* - Any other type is rejected.
|
|
22
|
+
*
|
|
23
|
+
* @param value Unix epoch value as a number or digit string
|
|
24
|
+
* @returns the epoch as a safe integer, or null when invalid
|
|
25
|
+
*
|
|
26
|
+
* @example parseUnixEpochValue(1704067200000) // 1704067200000
|
|
27
|
+
* @example parseUnixEpochValue("-86400") // -86400
|
|
28
|
+
* @example parseUnixEpochValue(1.5) // null
|
|
29
|
+
* @example parseUnixEpochValue(" 12") // null
|
|
30
|
+
* @example parseUnixEpochValue("1e3") // null
|
|
31
|
+
*/
|
|
32
|
+
export function parseUnixEpochValue(value) {
|
|
33
|
+
let parsed;
|
|
34
|
+
if (typeof value === "number") {
|
|
35
|
+
parsed = value;
|
|
36
|
+
}
|
|
37
|
+
else if (typeof value === "string" && EPOCH_DIGITS.test(value)) {
|
|
38
|
+
parsed = Number(value);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
if (!Number.isSafeInteger(parsed)) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return parsed === 0 ? 0 : parsed;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Resolve an `epochUnit` option: omitted → `"milliseconds"`; singular or plural `second` /
|
|
50
|
+
* `millisecond` → the plural name; anything else → null.
|
|
51
|
+
*
|
|
52
|
+
* - Singular and plural are the same unit, as in Temporal §13.17 GetTemporalUnitValuedOption.
|
|
53
|
+
*
|
|
54
|
+
* @param unit candidate `epochUnit` value
|
|
55
|
+
* @returns the resolved unit, or null when invalid
|
|
56
|
+
*
|
|
57
|
+
* @example resolveUnixEpochUnit(undefined) // "milliseconds"
|
|
58
|
+
* @example resolveUnixEpochUnit("second") // "seconds"
|
|
59
|
+
* @example resolveUnixEpochUnit("nanoseconds") // null
|
|
60
|
+
*/
|
|
61
|
+
export function resolveUnixEpochUnit(unit) {
|
|
62
|
+
switch (unit) {
|
|
63
|
+
case undefined:
|
|
64
|
+
case "millisecond":
|
|
65
|
+
case "milliseconds":
|
|
66
|
+
return "milliseconds";
|
|
67
|
+
case "second":
|
|
68
|
+
case "seconds":
|
|
69
|
+
return "seconds";
|
|
70
|
+
default:
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Resolve the `epochUnit` of an options argument (`{ epochUnit }`), or null.
|
|
76
|
+
*
|
|
77
|
+
* - `undefined` options → `"milliseconds"`, the same as omitted (TC39 GetOptionsObject).
|
|
78
|
+
* - Anything that is not an object (`null`, a legacy positional unit string such as `"seconds"`, a
|
|
79
|
+
* number) → null: Temporal GetOptionsObject throws `TypeError` for it, so it is never silently
|
|
80
|
+
* read as the default.
|
|
81
|
+
* - Otherwise `resolveUnixEpochUnit(options.epochUnit)`.
|
|
82
|
+
*
|
|
83
|
+
* @param options candidate options argument
|
|
84
|
+
* @returns the resolved unit, or null when invalid
|
|
85
|
+
*
|
|
86
|
+
* @example resolveUnixEpochUnitOptions(undefined) // "milliseconds"
|
|
87
|
+
* @example resolveUnixEpochUnitOptions({ epochUnit: "second" }) // "seconds"
|
|
88
|
+
* @example resolveUnixEpochUnitOptions("seconds") // null
|
|
89
|
+
*/
|
|
90
|
+
export function resolveUnixEpochUnitOptions(options) {
|
|
91
|
+
if (options === undefined) {
|
|
92
|
+
return "milliseconds";
|
|
93
|
+
}
|
|
94
|
+
if (options === null || typeof options !== "object") {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
return resolveUnixEpochUnit(options.epochUnit);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Read a Unix epoch argument (see `parseUnixEpochValue`) as a `Temporal.Instant`, or null when it
|
|
101
|
+
* is not an epoch or lies outside the Temporal instant range.
|
|
102
|
+
*
|
|
103
|
+
* - Seconds scale by 1000 exactly: every in-range seconds value (±8.64e12) times 1000 is a safe
|
|
104
|
+
* integer, and any product that is not exact is already outside the instant range.
|
|
105
|
+
*
|
|
106
|
+
* @param value Unix epoch value as a number or digit string
|
|
107
|
+
* @param epochUnit unit the value is expressed in
|
|
108
|
+
* @returns the instant, or null
|
|
109
|
+
*
|
|
110
|
+
* @example unixEpochToInstant(0, "seconds")?.toString() // "1970-01-01T00:00:00Z"
|
|
111
|
+
* @example unixEpochToInstant(8.64e15 + 1, "milliseconds") // null
|
|
112
|
+
*/
|
|
113
|
+
export function unixEpochToInstant(value, epochUnit) {
|
|
114
|
+
const epoch = parseUnixEpochValue(value);
|
|
115
|
+
if (epoch === null) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
return Temporal.Instant.fromEpochMilliseconds(epochUnit === "seconds" ? epoch * 1000 : epoch);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Express an instant (or zoned date-time) as a Unix epoch in `epochUnit`.
|
|
127
|
+
*
|
|
128
|
+
* - Seconds floor toward −∞, so `1969-12-31T23:59:59.999Z` is second `-1`, as POSIX
|
|
129
|
+
* `time_t` counts whole elapsed seconds.
|
|
130
|
+
*
|
|
131
|
+
* @param value anything with `epochMilliseconds`
|
|
132
|
+
* @param epochUnit unit of the result
|
|
133
|
+
* @returns the epoch value
|
|
134
|
+
*
|
|
135
|
+
* @example toUnixEpoch({ epochMilliseconds: 1710685845999 }, "seconds") // 1710685845
|
|
136
|
+
* @example toUnixEpoch({ epochMilliseconds: -1 }, "seconds") // -1
|
|
137
|
+
*/
|
|
138
|
+
export function toUnixEpoch(value, epochUnit) {
|
|
139
|
+
return epochUnit === "seconds"
|
|
140
|
+
? Math.floor(value.epochMilliseconds / 1000)
|
|
141
|
+
: value.epochMilliseconds;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Parse an epoch for the aggregators (`sortUnix`, `minUnix`, `maxUnix`) that take no `epochUnit`:
|
|
145
|
+
* the epoch grammar (`parseUnixEpochValue`) inside ±8.64e15, or null.
|
|
146
|
+
*
|
|
147
|
+
* - ±8.64e15 is the instant range in milliseconds. It contains the seconds range (±8.64e12), so no
|
|
148
|
+
* valid epoch of either unit is dropped.
|
|
149
|
+
*
|
|
150
|
+
* @param value candidate epoch value
|
|
151
|
+
* @returns the epoch as a number, or null
|
|
152
|
+
*
|
|
153
|
+
* @example parseUnixEpochInInstantRange("1700000000000") // 1700000000000
|
|
154
|
+
* @example parseUnixEpochInInstantRange(1e20) // null
|
|
155
|
+
*/
|
|
156
|
+
export function parseUnixEpochInInstantRange(value) {
|
|
157
|
+
const epoch = parseUnixEpochValue(value);
|
|
158
|
+
return epoch !== null && Math.abs(epoch) <= MAX_EPOCH_MILLISECONDS
|
|
159
|
+
? epoch
|
|
160
|
+
: null;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The values of a list that `parseUnixEpochInInstantRange` accepts, in list order.
|
|
164
|
+
*
|
|
165
|
+
* @param values candidate epoch values
|
|
166
|
+
* @returns the accepted epochs as numbers; empty when `values` is not an array or none is valid
|
|
167
|
+
*
|
|
168
|
+
* @example parseUnixEpochsInInstantRange(["1700000000000", 1.5, 1e20, -1]) // [1700000000000, -1]
|
|
169
|
+
* @example parseUnixEpochsInInstantRange("1700000000000") // []
|
|
170
|
+
*/
|
|
171
|
+
export function parseUnixEpochsInInstantRange(values) {
|
|
172
|
+
if (!Array.isArray(values))
|
|
173
|
+
return [];
|
|
174
|
+
return values
|
|
175
|
+
.map(parseUnixEpochInInstantRange)
|
|
176
|
+
.filter((epoch) => epoch !== null);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Parse a Unix epoch interval `[start, end]`, or null when either value is invalid (see
|
|
180
|
+
* `parseUnixEpochValue`) or the interval is reversed (`start > end`).
|
|
181
|
+
*
|
|
182
|
+
* @param start Unix epoch value, in the one unit all epoch arguments share — interval start
|
|
183
|
+
* @param end Unix epoch value, in the one unit all epoch arguments share — interval end
|
|
184
|
+
* @returns `{ start, end }` as safe integers, or null
|
|
185
|
+
*
|
|
186
|
+
* @example parseUnixEpochInterval(0, "1500000000") // { start: 0, end: 1500000000 }
|
|
187
|
+
* @example parseUnixEpochInterval(10, 0) // null (reversed)
|
|
188
|
+
* @example parseUnixEpochInterval(0, 1.5) // null (fractional)
|
|
189
|
+
*/
|
|
190
|
+
export function parseUnixEpochInterval(start, end) {
|
|
191
|
+
const startValue = parseUnixEpochValue(start);
|
|
192
|
+
const endValue = parseUnixEpochValue(end);
|
|
193
|
+
if (startValue === null || endValue === null || startValue > endValue) {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
return { start: startValue, end: endValue };
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Parse two Unix epoch intervals `[aStart, aEnd]` and `[bStart, bEnd]`, or null when either is
|
|
200
|
+
* invalid or reversed (see `parseUnixEpochInterval`).
|
|
201
|
+
*
|
|
202
|
+
* @param aStart first interval start
|
|
203
|
+
* @param aEnd first interval end
|
|
204
|
+
* @param bStart second interval start
|
|
205
|
+
* @param bEnd second interval end
|
|
206
|
+
* @returns `[a, b]` as `{ start, end }` safe-integer records, or null
|
|
207
|
+
*
|
|
208
|
+
* @example parseUnixEpochIntervalPair(0, 10, "5", "20") // [{ start: 0, end: 10 }, { start: 5, end: 20 }]
|
|
209
|
+
* @example parseUnixEpochIntervalPair(0, 10, 20, 5) // null (B reversed)
|
|
210
|
+
*/
|
|
211
|
+
export function parseUnixEpochIntervalPair(aStart, aEnd, bStart, bEnd) {
|
|
212
|
+
const a = parseUnixEpochInterval(aStart, aEnd);
|
|
213
|
+
const b = parseUnixEpochInterval(bStart, bEnd);
|
|
214
|
+
return a === null || b === null ? null : [a, b];
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Parse a list of Unix epoch `{ start, end }` records, or null when `intervals` is not an array or
|
|
218
|
+
* any element is not an object holding a valid, non-reversed interval (see
|
|
219
|
+
* `parseUnixEpochInterval`). An empty list parses to `[]`.
|
|
220
|
+
*
|
|
221
|
+
* @param intervals candidate list of `{ start, end }` records
|
|
222
|
+
* @returns the parsed intervals in input order, or null
|
|
223
|
+
*
|
|
224
|
+
* @example parseUnixEpochIntervalList([{ start: 0, end: "10" }]) // [{ start: 0, end: 10 }]
|
|
225
|
+
* @example parseUnixEpochIntervalList([{ start: 10, end: 0 }]) // null (reversed)
|
|
226
|
+
* @example parseUnixEpochIntervalList("not-an-array") // null
|
|
227
|
+
*/
|
|
228
|
+
export function parseUnixEpochIntervalList(intervals) {
|
|
229
|
+
if (!Array.isArray(intervals)) {
|
|
230
|
+
return null;
|
|
231
|
+
}
|
|
232
|
+
const parsed = [];
|
|
233
|
+
for (const interval of intervals) {
|
|
234
|
+
if (!interval || typeof interval !== "object") {
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
const { start, end } = interval;
|
|
238
|
+
const next = parseUnixEpochInterval(start, end);
|
|
239
|
+
if (next === null) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
parsed.push(next);
|
|
243
|
+
}
|
|
244
|
+
return parsed;
|
|
245
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { type UnixEpochUnit } from "./unixEpochValue.js";
|
|
3
|
+
/**
|
|
4
|
+
* Resolve the `reference` option of the unix formatters to an instant.
|
|
5
|
+
*
|
|
6
|
+
* - Omitted: now.
|
|
7
|
+
* - A string is a numeric unix epoch (`"1709164800000"`) or a UTC ISO string
|
|
8
|
+
* (`"2024-02-29T00:00:00Z"`). The numeric reading is tried first, matching `formatUnix`.
|
|
9
|
+
* - A number is a unix epoch in `epochUnit`.
|
|
10
|
+
*
|
|
11
|
+
* @param reference the option as given
|
|
12
|
+
* @param epochUnit the unit a numeric reference is read in
|
|
13
|
+
* @returns the instant, or null when the reference is neither form or the clock is unavailable
|
|
14
|
+
* @example resolveUnixFormatReference(1709164800, "seconds")?.toString() // "2024-02-29T00:00:00Z"
|
|
15
|
+
* @example resolveUnixFormatReference("2024-02-29T00:00:00Z", "milliseconds")?.toString() // "2024-02-29T00:00:00Z"
|
|
16
|
+
* @example resolveUnixFormatReference("yesterday", "milliseconds") // null
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveUnixFormatReference(reference: string | number | undefined, epochUnit: UnixEpochUnit): Temporal.Instant | null;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { isValidUtc } from "../utc/validate/isValidUtc.js";
|
|
3
|
+
import { unixEpochToInstant } from "./unixEpochValue.js";
|
|
4
|
+
/**
|
|
5
|
+
* Resolve the `reference` option of the unix formatters to an instant.
|
|
6
|
+
*
|
|
7
|
+
* - Omitted: now.
|
|
8
|
+
* - A string is a numeric unix epoch (`"1709164800000"`) or a UTC ISO string
|
|
9
|
+
* (`"2024-02-29T00:00:00Z"`). The numeric reading is tried first, matching `formatUnix`.
|
|
10
|
+
* - A number is a unix epoch in `epochUnit`.
|
|
11
|
+
*
|
|
12
|
+
* @param reference the option as given
|
|
13
|
+
* @param epochUnit the unit a numeric reference is read in
|
|
14
|
+
* @returns the instant, or null when the reference is neither form or the clock is unavailable
|
|
15
|
+
* @example resolveUnixFormatReference(1709164800, "seconds")?.toString() // "2024-02-29T00:00:00Z"
|
|
16
|
+
* @example resolveUnixFormatReference("2024-02-29T00:00:00Z", "milliseconds")?.toString() // "2024-02-29T00:00:00Z"
|
|
17
|
+
* @example resolveUnixFormatReference("yesterday", "milliseconds") // null
|
|
18
|
+
*/
|
|
19
|
+
export function resolveUnixFormatReference(reference, epochUnit) {
|
|
20
|
+
if (reference === undefined) {
|
|
21
|
+
try {
|
|
22
|
+
return Temporal.Now.instant();
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (typeof reference !== "string") {
|
|
29
|
+
return unixEpochToInstant(reference, epochUnit);
|
|
30
|
+
}
|
|
31
|
+
const numericRef = unixEpochToInstant(reference, epochUnit);
|
|
32
|
+
if (numericRef !== null) {
|
|
33
|
+
return numericRef;
|
|
34
|
+
}
|
|
35
|
+
if (!isValidUtc(reference)) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
return Temporal.Instant.from(reference);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
/**
|
|
3
|
+
* Read a Unix epoch argument as a `Temporal.ZonedDateTime` under the shared `unix/` options, or
|
|
4
|
+
* null when anything is invalid.
|
|
5
|
+
*
|
|
6
|
+
* - `value` follows the one epoch grammar (`parseUnixEpochValue`).
|
|
7
|
+
* - `epochUnit` accepts singular or plural names and defaults to `"milliseconds"`.
|
|
8
|
+
* - `timeZone` defaults to `"UTC"`; `"local"` is the system zone; an unknown zone is invalid
|
|
9
|
+
* (see `normalizeTimeZone`).
|
|
10
|
+
*
|
|
11
|
+
* @param value Unix epoch number or digit string
|
|
12
|
+
* @param options optional `{ epochUnit, timeZone }`
|
|
13
|
+
* @returns the zoned date-time, or null
|
|
14
|
+
*
|
|
15
|
+
* @example unixZonedDateTime(0)?.toString() // "1970-01-01T00:00:00+00:00[UTC]"
|
|
16
|
+
* @example unixZonedDateTime("86400", { epochUnit: "second", timeZone: "Asia/Tokyo" })?.hour // 9
|
|
17
|
+
* @example unixZonedDateTime(0, { timeZone: "Asia/Tokio" }) // null
|
|
18
|
+
*/
|
|
19
|
+
export declare function unixZonedDateTime(value: unknown, options?: {
|
|
20
|
+
epochUnit?: unknown;
|
|
21
|
+
timeZone?: unknown;
|
|
22
|
+
}): Temporal.ZonedDateTime | null;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { normalizeTimeZone } from "./normalizeTimeZone.js";
|
|
2
|
+
import { resolveUnixEpochUnit, unixEpochToInstant } from "./unixEpochValue.js";
|
|
3
|
+
/**
|
|
4
|
+
* Read a Unix epoch argument as a `Temporal.ZonedDateTime` under the shared `unix/` options, or
|
|
5
|
+
* null when anything is invalid.
|
|
6
|
+
*
|
|
7
|
+
* - `value` follows the one epoch grammar (`parseUnixEpochValue`).
|
|
8
|
+
* - `epochUnit` accepts singular or plural names and defaults to `"milliseconds"`.
|
|
9
|
+
* - `timeZone` defaults to `"UTC"`; `"local"` is the system zone; an unknown zone is invalid
|
|
10
|
+
* (see `normalizeTimeZone`).
|
|
11
|
+
*
|
|
12
|
+
* @param value Unix epoch number or digit string
|
|
13
|
+
* @param options optional `{ epochUnit, timeZone }`
|
|
14
|
+
* @returns the zoned date-time, or null
|
|
15
|
+
*
|
|
16
|
+
* @example unixZonedDateTime(0)?.toString() // "1970-01-01T00:00:00+00:00[UTC]"
|
|
17
|
+
* @example unixZonedDateTime("86400", { epochUnit: "second", timeZone: "Asia/Tokyo" })?.hour // 9
|
|
18
|
+
* @example unixZonedDateTime(0, { timeZone: "Asia/Tokio" }) // null
|
|
19
|
+
*/
|
|
20
|
+
export function unixZonedDateTime(value, options) {
|
|
21
|
+
const epochUnit = resolveUnixEpochUnit(options?.epochUnit);
|
|
22
|
+
const timeZone = normalizeTimeZone(options?.timeZone);
|
|
23
|
+
if (epochUnit === null || !timeZone) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
return (unixEpochToInstant(value, epochUnit)?.toZonedDateTimeISO(timeZone) ?? null);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse a `±HH:MM[:SS]` UTC offset to the nanoseconds local time runs ahead of UTC.
|
|
3
|
+
*
|
|
4
|
+
* Temporal exposes no offset parser of its own — `offsetNanoseconds` is only ever read off a
|
|
5
|
+
* `ZonedDateTime`, which needs a zone GMT does not have here. So the offset is read the one
|
|
6
|
+
* way Temporal will read it: as the offset half of an instant string anchored at the epoch.
|
|
7
|
+
* `1970-01-01T00:00:00-04:00` *is* `1970-01-01T04:00:00Z`, so the epoch nanoseconds of that
|
|
8
|
+
* instant are the offset with its sign flipped. The regex proves the shape and Temporal does
|
|
9
|
+
* the parsing, so no offset digits are ever sliced by hand.
|
|
10
|
+
*
|
|
11
|
+
* @param offset `±HH:MM` or `±HH:MM:SS` offset string
|
|
12
|
+
* @returns nanoseconds ahead of UTC (negative west of it), or null when `offset` is not one
|
|
13
|
+
*
|
|
14
|
+
* @example parseUtcOffsetNanoseconds("-04:00") // -14400000000000n
|
|
15
|
+
* @example parseUtcOffsetNanoseconds("+05:45") // 20700000000000n
|
|
16
|
+
* @example parseUtcOffsetNanoseconds("Z") // null — a designator, not an offset
|
|
17
|
+
*/
|
|
18
|
+
export declare function parseUtcOffsetNanoseconds(offset: string): bigint | null;
|
|
19
|
+
/**
|
|
20
|
+
* Format nanoseconds ahead of UTC as a canonical `±HH:MM[:SS]` offset string.
|
|
21
|
+
*
|
|
22
|
+
* The inverse of `parseUtcOffsetNanoseconds`, and the canonicaliser both halves of the
|
|
23
|
+
* offset-instant pair route through — `+05:45:00` and `+05:45` name one offset, and only one
|
|
24
|
+
* of them is what GMT stores.
|
|
25
|
+
*
|
|
26
|
+
* - Emits the `:SS` field only when the offset is not a whole number of minutes, matching
|
|
27
|
+
* `Temporal.ZonedDateTime.prototype.offset`.
|
|
28
|
+
* - Returns null for an offset finer than a second, or at or beyond ±24 hours — neither is a
|
|
29
|
+
* value any zone or standard that stores this pair has ever used.
|
|
30
|
+
*
|
|
31
|
+
* @param offsetNanoseconds nanoseconds local time runs ahead of UTC
|
|
32
|
+
* @returns `±HH:MM[:SS]` offset string, or null when the value is not one GMT stores
|
|
33
|
+
*
|
|
34
|
+
* @example formatUtcOffset(-14400000000000n) // "-04:00"
|
|
35
|
+
* @example formatUtcOffset(0n) // "+00:00"
|
|
36
|
+
* @example formatUtcOffset(-2670000000000n) // "-00:44:30"
|
|
37
|
+
* @example formatUtcOffset(1n) // null — finer than a second
|
|
38
|
+
*/
|
|
39
|
+
export declare function formatUtcOffset(offsetNanoseconds: bigint): string | null;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { utcOffset } from "../regex/utc-offset.js";
|
|
3
|
+
const NANOSECONDS_PER_SECOND = 1000000000n;
|
|
4
|
+
const SECONDS_PER_MINUTE = 60n;
|
|
5
|
+
const SECONDS_PER_HOUR = 3600n;
|
|
6
|
+
const SECONDS_PER_DAY = 86400n;
|
|
7
|
+
function padTwo(value) {
|
|
8
|
+
return value.toString().padStart(2, "0");
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Parse a `±HH:MM[:SS]` UTC offset to the nanoseconds local time runs ahead of UTC.
|
|
12
|
+
*
|
|
13
|
+
* Temporal exposes no offset parser of its own — `offsetNanoseconds` is only ever read off a
|
|
14
|
+
* `ZonedDateTime`, which needs a zone GMT does not have here. So the offset is read the one
|
|
15
|
+
* way Temporal will read it: as the offset half of an instant string anchored at the epoch.
|
|
16
|
+
* `1970-01-01T00:00:00-04:00` *is* `1970-01-01T04:00:00Z`, so the epoch nanoseconds of that
|
|
17
|
+
* instant are the offset with its sign flipped. The regex proves the shape and Temporal does
|
|
18
|
+
* the parsing, so no offset digits are ever sliced by hand.
|
|
19
|
+
*
|
|
20
|
+
* @param offset `±HH:MM` or `±HH:MM:SS` offset string
|
|
21
|
+
* @returns nanoseconds ahead of UTC (negative west of it), or null when `offset` is not one
|
|
22
|
+
*
|
|
23
|
+
* @example parseUtcOffsetNanoseconds("-04:00") // -14400000000000n
|
|
24
|
+
* @example parseUtcOffsetNanoseconds("+05:45") // 20700000000000n
|
|
25
|
+
* @example parseUtcOffsetNanoseconds("Z") // null — a designator, not an offset
|
|
26
|
+
*/
|
|
27
|
+
export function parseUtcOffsetNanoseconds(offset) {
|
|
28
|
+
if (typeof offset !== "string" || !utcOffset.test(offset)) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
return -Temporal.Instant.from(`1970-01-01T00:00:00${offset}`)
|
|
33
|
+
.epochNanoseconds;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Format nanoseconds ahead of UTC as a canonical `±HH:MM[:SS]` offset string.
|
|
41
|
+
*
|
|
42
|
+
* The inverse of `parseUtcOffsetNanoseconds`, and the canonicaliser both halves of the
|
|
43
|
+
* offset-instant pair route through — `+05:45:00` and `+05:45` name one offset, and only one
|
|
44
|
+
* of them is what GMT stores.
|
|
45
|
+
*
|
|
46
|
+
* - Emits the `:SS` field only when the offset is not a whole number of minutes, matching
|
|
47
|
+
* `Temporal.ZonedDateTime.prototype.offset`.
|
|
48
|
+
* - Returns null for an offset finer than a second, or at or beyond ±24 hours — neither is a
|
|
49
|
+
* value any zone or standard that stores this pair has ever used.
|
|
50
|
+
*
|
|
51
|
+
* @param offsetNanoseconds nanoseconds local time runs ahead of UTC
|
|
52
|
+
* @returns `±HH:MM[:SS]` offset string, or null when the value is not one GMT stores
|
|
53
|
+
*
|
|
54
|
+
* @example formatUtcOffset(-14400000000000n) // "-04:00"
|
|
55
|
+
* @example formatUtcOffset(0n) // "+00:00"
|
|
56
|
+
* @example formatUtcOffset(-2670000000000n) // "-00:44:30"
|
|
57
|
+
* @example formatUtcOffset(1n) // null — finer than a second
|
|
58
|
+
*/
|
|
59
|
+
export function formatUtcOffset(offsetNanoseconds) {
|
|
60
|
+
if (offsetNanoseconds % NANOSECONDS_PER_SECOND !== 0n) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const totalSeconds = offsetNanoseconds / NANOSECONDS_PER_SECOND;
|
|
64
|
+
const magnitude = totalSeconds < 0n ? -totalSeconds : totalSeconds;
|
|
65
|
+
if (magnitude >= SECONDS_PER_DAY) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
const sign = totalSeconds < 0n ? "-" : "+";
|
|
69
|
+
const hours = magnitude / SECONDS_PER_HOUR;
|
|
70
|
+
const minutes = (magnitude / SECONDS_PER_MINUTE) % SECONDS_PER_MINUTE;
|
|
71
|
+
const seconds = magnitude % SECONDS_PER_MINUTE;
|
|
72
|
+
return seconds === 0n
|
|
73
|
+
? `${sign}${padTwo(hours)}:${padTwo(minutes)}`
|
|
74
|
+
: `${sign}${padTwo(hours)}:${padTwo(minutes)}:${padTwo(seconds)}`;
|
|
75
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
/**
|
|
3
|
+
* Read a UTC ISO string as a zoned date-time for the `parse*FromUtc` accessors: the instant it
|
|
4
|
+
* names, on the wall clock of `options.timeZone` (UTC when omitted). The utc twin of
|
|
5
|
+
* `unixZonedDateTime`.
|
|
6
|
+
*
|
|
7
|
+
* @param value UTC ISO 8601 datetime string
|
|
8
|
+
* @param options optional `{ timeZone }`
|
|
9
|
+
* @returns the zoned date-time, or null when the value or the zone is invalid
|
|
10
|
+
* @example utcZonedDateTime("2024-03-15T14:30:00Z", { timeZone: "Asia/Tokyo" })?.toString() // "2024-03-15T23:30:00+09:00[Asia/Tokyo]"
|
|
11
|
+
* @example utcZonedDateTime("2024-03-15T14:30:00Z", { timeZone: "Invalid/Zone" }) // null
|
|
12
|
+
* @example utcZonedDateTime("2024-03-15T14:30:00") // null (no Z)
|
|
13
|
+
*/
|
|
14
|
+
export declare function utcZonedDateTime(value: string, options?: {
|
|
15
|
+
timeZone?: string;
|
|
16
|
+
}): Temporal.ZonedDateTime | null;
|