@northguild/gmt 1.15.0 → 1.17.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 +1133 -272
- package/dist/calendar/business/businessDaysBetween.d.ts +37 -0
- package/dist/calendar/business/businessDaysBetween.js +89 -0
- package/dist/calendar/business/index.d.ts +7 -0
- package/dist/calendar/business/index.js +10 -0
- package/dist/calendar/business/mergeCalendars.d.ts +33 -0
- package/dist/calendar/business/mergeCalendars.js +68 -0
- package/dist/calendar/business/nextBusinessDay.d.ts +30 -0
- package/dist/calendar/business/nextBusinessDay.js +39 -0
- package/dist/calendar/business/previousBusinessDay.d.ts +30 -0
- package/dist/calendar/business/previousBusinessDay.js +39 -0
- package/dist/calendar/business/rollDate.d.ts +59 -0
- package/dist/calendar/business/rollDate.js +116 -0
- package/dist/calendar/calculate/bucketRange.d.ts +49 -0
- package/dist/calendar/calculate/bucketRange.js +169 -0
- package/dist/calendar/calculate/floorToZone.d.ts +42 -0
- package/dist/calendar/calculate/floorToZone.js +62 -0
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +64 -0
- package/dist/calendar/calculate/getFiscalPeriod.js +96 -0
- package/dist/calendar/calculate/getIsoWeekDate.d.ts +35 -0
- package/dist/calendar/calculate/getIsoWeekDate.js +41 -0
- package/dist/calendar/calculate/getOrdinalDate.d.ts +25 -0
- package/dist/calendar/calculate/getOrdinalDate.js +28 -0
- package/dist/calendar/calculate/getQuarter.d.ts +36 -0
- package/dist/calendar/calculate/getQuarter.js +64 -0
- package/dist/calendar/calculate/index.d.ts +6 -0
- package/dist/calendar/calculate/index.js +6 -0
- package/dist/calendar/index.d.ts +4 -0
- package/dist/calendar/index.js +5 -0
- package/dist/calendar/validate/index.d.ts +4 -0
- package/dist/calendar/validate/index.js +4 -0
- package/dist/calendar/validate/isValidBusinessCalendar.d.ts +31 -0
- package/dist/calendar/validate/isValidBusinessCalendar.js +40 -0
- package/dist/calendar/validate/isValidFiscalPattern.d.ts +25 -0
- package/dist/calendar/validate/isValidFiscalPattern.js +29 -0
- package/dist/calendar/validate/isValidRollConvention.d.ts +28 -0
- package/dist/calendar/validate/isValidRollConvention.js +38 -0
- package/dist/calendar/validate/isValidZoneBucketUnit.d.ts +31 -0
- package/dist/calendar/validate/isValidZoneBucketUnit.js +39 -0
- package/dist/duration/calculate/durationAs.d.ts +27 -3
- package/dist/duration/calculate/durationAs.js +34 -8
- package/dist/duration/calculate/getDurationUnit.d.ts +5 -2
- package/dist/duration/calculate/getDurationUnit.js +7 -3
- package/dist/duration/compare/compareDurations.d.ts +25 -2
- package/dist/duration/compare/compareDurations.js +31 -7
- package/dist/duration/format/formatDuration.d.ts +14 -5
- package/dist/duration/format/formatDuration.js +47 -11
- package/dist/duration/index.d.ts +1 -0
- package/dist/duration/index.js +2 -0
- package/dist/duration/normalize/normalizeDuration.d.ts +33 -6
- package/dist/duration/normalize/normalizeDuration.js +41 -12
- package/dist/duration/parse/parseDuration.js +4 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -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 +91 -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 +96 -0
- package/dist/instant/convert/toOffsetInstant.js +162 -0
- package/dist/instant/index.d.ts +2 -0
- package/dist/instant/index.js +3 -0
- package/dist/intermodal/calculate/billingTimeline.d.ts +94 -0
- package/dist/intermodal/calculate/billingTimeline.js +168 -0
- package/dist/intermodal/calculate/chargeableDays.d.ts +98 -0
- package/dist/intermodal/calculate/chargeableDays.js +101 -0
- package/dist/intermodal/calculate/demurrageClock.d.ts +93 -0
- package/dist/intermodal/calculate/demurrageClock.js +140 -0
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +66 -0
- package/dist/intermodal/calculate/freeTimeExpiry.js +82 -0
- package/dist/intermodal/calculate/index.d.ts +4 -0
- package/dist/intermodal/calculate/index.js +4 -0
- package/dist/intermodal/index.d.ts +2 -0
- package/dist/intermodal/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/freeTimeLedger.d.ts +93 -0
- package/dist/internal/freeTimeLedger.js +262 -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 +30 -9
- package/dist/internal/index.js +30 -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 +66 -0
- package/dist/internal/isoStringBody.js +105 -0
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/localeWeekInfo.d.ts +34 -0
- package/dist/internal/localeWeekInfo.js +27 -0
- package/dist/internal/maxPieces.d.ts +41 -0
- package/dist/internal/maxPieces.js +53 -0
- package/dist/internal/measureNearRangeEnd.d.ts +26 -0
- package/dist/internal/measureNearRangeEnd.js +47 -0
- package/dist/internal/monthGridWeekRow.d.ts +4 -1
- package/dist/internal/monthGridWeekRow.js +3 -0
- package/dist/internal/normalizeTimeZone.d.ts +17 -10
- package/dist/internal/normalizeTimeZone.js +25 -15
- package/dist/internal/patternToken.d.ts +2 -1
- package/dist/internal/patternToken.js +10 -4
- package/dist/internal/plainDateAdd.d.ts +20 -0
- package/dist/internal/plainDateAdd.js +42 -0
- package/dist/internal/plainDateUntil.d.ts +21 -0
- package/dist/internal/plainDateUntil.js +48 -0
- package/dist/internal/plainFormatOptions.d.ts +59 -0
- package/dist/internal/plainFormatOptions.js +165 -0
- package/dist/internal/resolveDateTimeUnit.d.ts +4 -1
- package/dist/internal/resolveDateTimeUnit.js +2 -12
- package/dist/internal/resolveDurationRelativeTo.d.ts +28 -22
- package/dist/internal/resolveDurationRelativeTo.js +69 -25
- package/dist/internal/resolveDurationUnit.d.ts +4 -1
- package/dist/internal/resolveDurationUnit.js +2 -11
- package/dist/internal/resolveLocale.d.ts +37 -0
- package/dist/internal/resolveLocale.js +59 -0
- package/dist/internal/resolveManualRoundingOptions.d.ts +23 -0
- package/dist/internal/resolveManualRoundingOptions.js +39 -0
- package/dist/internal/resolveMinimalDaysInFirstWeek.d.ts +19 -0
- package/dist/internal/resolveMinimalDaysInFirstWeek.js +28 -0
- package/dist/internal/resolveOverflow.d.ts +6 -0
- package/dist/internal/resolveOverflow.js +7 -1
- package/dist/internal/resolveReadingTimeZone.d.ts +11 -0
- package/dist/internal/resolveReadingTimeZone.js +18 -0
- package/dist/internal/resolveUnixIntervalPair.d.ts +30 -0
- package/dist/internal/resolveUnixIntervalPair.js +53 -0
- package/dist/internal/resolveWeekStartsOn.d.ts +12 -0
- package/dist/internal/resolveWeekStartsOn.js +18 -0
- package/dist/internal/rfc5322DateTime.d.ts +26 -0
- package/dist/internal/rfc5322DateTime.js +176 -0
- package/dist/internal/splitStep.d.ts +81 -0
- package/dist/internal/splitStep.js +182 -0
- package/dist/internal/startOrEndOfUnix.d.ts +26 -0
- package/dist/internal/startOrEndOfUnix.js +47 -0
- package/dist/{utc/calculate → internal}/startOrEndOfUtc.d.ts +8 -4
- package/dist/{utc/calculate → internal}/startOrEndOfUtc.js +30 -26
- package/dist/internal/startOrEndOfZoned.d.ts +22 -0
- package/dist/internal/startOrEndOfZoned.js +49 -0
- package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +33 -0
- package/dist/internal/temporalCompat/calendarDateArithmetic.js +199 -0
- package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +36 -0
- package/dist/internal/temporalCompat/calendarDateFromFields.js +120 -0
- package/dist/internal/temporalCompat/calendarFields.d.ts +25 -0
- package/dist/internal/temporalCompat/calendarFields.js +131 -0
- package/dist/internal/temporalCompat/capabilities.d.ts +28 -0
- package/dist/internal/temporalCompat/capabilities.js +74 -0
- package/dist/internal/temporalCompat/fieldSearch.d.ts +21 -0
- package/dist/internal/temporalCompat/fieldSearch.js +83 -0
- package/dist/internal/temporalCompat/fixedDay.d.ts +25 -0
- package/dist/internal/temporalCompat/fixedDay.js +45 -0
- package/dist/internal/temporalCompat/hebrewArithmetic.d.ts +19 -0
- package/dist/internal/temporalCompat/hebrewArithmetic.js +150 -0
- package/dist/internal/temporalCompat/index.d.ts +4 -0
- package/dist/internal/temporalCompat/index.js +5 -0
- package/dist/internal/temporalCompat/indianArithmetic.d.ts +16 -0
- package/dist/internal/temporalCompat/indianArithmetic.js +87 -0
- package/dist/internal/temporalCompat/largeMonthSpan.d.ts +19 -0
- package/dist/internal/temporalCompat/largeMonthSpan.js +199 -0
- package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +59 -0
- package/dist/internal/temporalCompat/nonIsoArithmetic.js +220 -0
- package/dist/internal/temporalCompat/readArithmeticModel.d.ts +3 -0
- package/dist/internal/temporalCompat/readArithmeticModel.js +284 -0
- package/dist/internal/temporalCompat/repros.d.ts +31 -0
- package/dist/internal/temporalCompat/repros.js +556 -0
- package/dist/internal/toInstantFromUtc.d.ts +10 -0
- package/dist/internal/toInstantFromUtc.js +19 -0
- package/dist/internal/unixEpochValue.d.ts +166 -0
- package/dist/internal/unixEpochValue.js +245 -0
- package/dist/internal/unixFormatReference.d.ts +18 -0
- package/dist/internal/unixFormatReference.js +44 -0
- package/dist/internal/unixZonedDateTime.d.ts +22 -0
- package/dist/internal/unixZonedDateTime.js +32 -0
- package/dist/internal/utcOffsetString.d.ts +39 -0
- package/dist/internal/utcOffsetString.js +75 -0
- package/dist/internal/utcZonedDateTime.d.ts +16 -0
- package/dist/internal/utcZonedDateTime.js +28 -0
- package/dist/internal/wallClockAtOffset.d.ts +22 -0
- package/dist/internal/wallClockAtOffset.js +26 -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 +1174 -0
- package/dist/internal/zonedWallClockOperations.d.ts +132 -0
- package/dist/internal/zonedWallClockOperations.js +553 -0
- package/dist/internal/zonelessCalendarDate.d.ts +12 -0
- package/dist/internal/zonelessCalendarDate.js +22 -0
- package/dist/interval/calculate/clampInterval.d.ts +22 -0
- package/dist/interval/calculate/clampInterval.js +31 -0
- package/dist/interval/calculate/index.d.ts +6 -0
- package/dist/interval/calculate/index.js +6 -0
- package/dist/interval/calculate/intersectIntervals.d.ts +23 -0
- package/dist/interval/calculate/intersectIntervals.js +43 -0
- package/dist/interval/calculate/mergeIntervals.d.ts +28 -0
- package/dist/interval/calculate/mergeIntervals.js +44 -0
- package/dist/interval/calculate/splitIntervalAt.d.ts +28 -0
- package/dist/interval/calculate/splitIntervalAt.js +63 -0
- package/dist/interval/calculate/subtractIntervals.d.ts +31 -0
- package/dist/interval/calculate/subtractIntervals.js +64 -0
- package/dist/interval/calculate/sumIntervals.d.ts +26 -0
- package/dist/interval/calculate/sumIntervals.js +40 -0
- package/dist/interval/compare/index.d.ts +2 -0
- package/dist/interval/compare/index.js +2 -0
- package/dist/interval/compare/intervalContains.d.ts +25 -0
- package/dist/interval/compare/intervalContains.js +39 -0
- package/dist/interval/compare/intervalsOverlap.d.ts +28 -0
- package/dist/interval/compare/intervalsOverlap.js +42 -0
- package/dist/interval/index.d.ts +4 -0
- package/dist/interval/index.js +5 -0
- package/dist/interval/validate/index.d.ts +1 -0
- package/dist/interval/validate/index.js +1 -0
- package/dist/interval/validate/isValidInterval.d.ts +29 -0
- package/dist/interval/validate/isValidInterval.js +38 -0
- package/dist/plain/calculate/addBusinessDays.d.ts +26 -9
- package/dist/plain/calculate/addBusinessDays.js +29 -21
- package/dist/plain/calculate/addDate.d.ts +9 -8
- package/dist/plain/calculate/addDate.js +35 -22
- package/dist/plain/calculate/addDateTime.js +24 -10
- package/dist/plain/calculate/addTime.d.ts +5 -8
- package/dist/plain/calculate/addTime.js +23 -16
- package/dist/plain/calculate/clampDate.js +3 -3
- package/dist/plain/calculate/closestDateTo.d.ts +11 -7
- package/dist/plain/calculate/closestDateTo.js +36 -24
- package/dist/plain/calculate/cycleDate.d.ts +1 -1
- package/dist/plain/calculate/cycleDate.js +10 -3
- package/dist/plain/calculate/cycleDateTime.d.ts +1 -1
- package/dist/plain/calculate/cycleDateTime.js +10 -3
- package/dist/plain/calculate/cycleTime.d.ts +6 -8
- package/dist/plain/calculate/cycleTime.js +15 -9
- package/dist/plain/calculate/diffDate.d.ts +31 -14
- package/dist/plain/calculate/diffDate.js +73 -38
- package/dist/plain/calculate/diffDateAsDuration.d.ts +13 -8
- package/dist/plain/calculate/diffDateAsDuration.js +22 -9
- package/dist/plain/calculate/diffDateTime.d.ts +17 -5
- package/dist/plain/calculate/diffDateTime.js +67 -28
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +2 -2
- package/dist/plain/calculate/diffDateTimeAsDuration.js +10 -3
- package/dist/plain/calculate/diffTime.d.ts +18 -5
- package/dist/plain/calculate/diffTime.js +68 -27
- package/dist/plain/calculate/endOfDate.d.ts +10 -2
- package/dist/plain/calculate/endOfDate.js +52 -27
- package/dist/plain/calculate/endOfDateTime.d.ts +17 -2
- package/dist/plain/calculate/endOfDateTime.js +126 -103
- package/dist/plain/calculate/endOfTime.d.ts +16 -2
- package/dist/plain/calculate/endOfTime.js +77 -59
- package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +13 -5
- package/dist/plain/calculate/getLargestDateDurationUnit.js +26 -10
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +13 -6
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.js +37 -22
- package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +13 -6
- package/dist/plain/calculate/getLargestTimeDurationUnit.js +33 -18
- package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +8 -4
- package/dist/plain/calculate/getLocaleDayOfWeek.js +8 -3
- package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +8 -4
- package/dist/plain/calculate/getLocaleEndOfWeek.js +8 -3
- package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +8 -4
- package/dist/plain/calculate/getLocaleStartOfWeek.js +8 -3
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +29 -19
- package/dist/plain/calculate/getLocaleWeekYear.js +48 -28
- package/dist/plain/calculate/getWeekNumber.d.ts +21 -2
- package/dist/plain/calculate/getWeekNumber.js +33 -12
- package/dist/plain/calculate/getWeekOfMonth.d.ts +4 -2
- package/dist/plain/calculate/getWeekOfMonth.js +8 -3
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +25 -14
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +45 -25
- package/dist/plain/calculate/getWeeksInMonth.d.ts +4 -2
- package/dist/plain/calculate/getWeeksInMonth.js +8 -3
- package/dist/plain/calculate/getWeeksInYear.d.ts +5 -4
- package/dist/plain/calculate/getWeeksInYear.js +9 -14
- package/dist/plain/calculate/maxDate.js +19 -12
- package/dist/plain/calculate/maxDateTime.js +19 -12
- package/dist/plain/calculate/maxTime.js +19 -12
- package/dist/plain/calculate/minDate.js +19 -12
- package/dist/plain/calculate/minDateTime.js +19 -12
- package/dist/plain/calculate/minTime.js +19 -12
- package/dist/plain/calculate/nextWeekday.js +5 -0
- package/dist/plain/calculate/previousWeekday.js +5 -0
- package/dist/plain/calculate/roundDate.d.ts +23 -5
- package/dist/plain/calculate/roundDate.js +88 -46
- package/dist/plain/calculate/roundDateTime.d.ts +27 -3
- package/dist/plain/calculate/roundDateTime.js +128 -69
- package/dist/plain/calculate/roundTime.d.ts +8 -1
- package/dist/plain/calculate/roundTime.js +32 -17
- package/dist/plain/calculate/setDate.js +4 -0
- package/dist/plain/calculate/setDateTime.js +4 -0
- package/dist/plain/calculate/setTime.d.ts +1 -1
- package/dist/plain/calculate/setTime.js +5 -1
- package/dist/plain/calculate/sortDateTimes.js +17 -10
- package/dist/plain/calculate/sortDates.js +17 -10
- package/dist/plain/calculate/sortTimes.js +17 -10
- package/dist/plain/calculate/startOfDate.d.ts +7 -2
- package/dist/plain/calculate/startOfDate.js +52 -27
- package/dist/plain/calculate/startOfDateTime.d.ts +5 -2
- package/dist/plain/calculate/startOfDateTime.js +81 -62
- package/dist/plain/calculate/startOfQuarterForDateTime.d.ts +2 -0
- package/dist/plain/calculate/startOfQuarterForDateTime.js +12 -1
- package/dist/plain/calculate/startOfTime.d.ts +15 -2
- package/dist/plain/calculate/startOfTime.js +33 -37
- package/dist/plain/calculate/subtractBusinessDays.d.ts +25 -10
- package/dist/plain/calculate/subtractBusinessDays.js +28 -22
- package/dist/plain/calculate/subtractDate.d.ts +8 -7
- package/dist/plain/calculate/subtractDate.js +35 -21
- package/dist/plain/calculate/subtractDateTime.js +24 -10
- package/dist/plain/calculate/subtractTime.d.ts +5 -8
- package/dist/plain/calculate/subtractTime.js +23 -16
- package/dist/plain/chop/index.d.ts +0 -1
- package/dist/plain/chop/index.js +0 -1
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +10 -5
- package/dist/plain/compare/areDateTimesEqualBy.js +35 -10
- package/dist/plain/compare/areDatesEqualBy.d.ts +10 -3
- package/dist/plain/compare/areDatesEqualBy.js +41 -14
- package/dist/plain/compare/isBetweenDate.js +32 -16
- package/dist/plain/compare/isBetweenDateTime.js +34 -18
- package/dist/plain/compare/isBetweenTime.js +32 -16
- package/dist/plain/compare/isBusinessDay.d.ts +25 -11
- package/dist/plain/compare/isBusinessDay.js +36 -15
- package/dist/plain/compare/isThisUnit.d.ts +13 -4
- package/dist/plain/compare/isThisUnit.js +33 -13
- package/dist/plain/compare/isWeekend.d.ts +8 -4
- package/dist/plain/compare/isWeekend.js +7 -3
- package/dist/plain/convert/convertDateToCalendar.d.ts +34 -33
- package/dist/plain/convert/convertDateToCalendar.js +41 -40
- package/dist/plain/format/formatCalendar.d.ts +12 -6
- package/dist/plain/format/formatCalendar.js +47 -25
- package/dist/plain/format/formatDate.d.ts +21 -4
- package/dist/plain/format/formatDate.js +37 -5
- package/dist/plain/format/formatDateRange.d.ts +17 -4
- package/dist/plain/format/formatDateRange.js +29 -5
- package/dist/plain/format/formatDateTime.d.ts +22 -4
- package/dist/plain/format/formatDateTime.js +31 -5
- package/dist/plain/format/formatDateTimeRange.d.ts +20 -4
- package/dist/plain/format/formatDateTimeRange.js +29 -5
- package/dist/plain/format/formatDateTimeToParts.d.ts +32 -6
- package/dist/plain/format/formatDateTimeToParts.js +40 -14
- package/dist/plain/format/formatDateToParts.d.ts +24 -3
- package/dist/plain/format/formatDateToParts.js +36 -11
- package/dist/plain/format/formatRelativeDate.d.ts +7 -3
- package/dist/plain/format/formatRelativeDate.js +39 -24
- package/dist/plain/format/formatRelativeDateTime.d.ts +15 -6
- package/dist/plain/format/formatRelativeDateTime.js +35 -33
- package/dist/plain/format/formatRelativeTime.d.ts +8 -4
- package/dist/plain/format/formatRelativeTime.js +36 -21
- package/dist/plain/format/formatSql.d.ts +15 -10
- package/dist/plain/format/formatSql.js +20 -11
- package/dist/plain/format/formatTime.d.ts +18 -4
- package/dist/plain/format/formatTime.js +32 -5
- package/dist/plain/get/getNowUnit.d.ts +3 -0
- package/dist/plain/get/getNowUnit.js +14 -29
- package/dist/plain/index.js +1 -1
- package/dist/plain/interval/intervalAbutsDate.d.ts +12 -7
- package/dist/plain/interval/intervalAbutsDate.js +15 -19
- package/dist/plain/interval/intervalAbutsDateTime.d.ts +9 -7
- package/dist/plain/interval/intervalAbutsDateTime.js +17 -23
- package/dist/plain/interval/intervalAbutsTime.d.ts +11 -5
- package/dist/plain/interval/intervalAbutsTime.js +19 -21
- package/dist/plain/interval/intervalContainsDate.d.ts +17 -10
- package/dist/plain/interval/intervalContainsDate.js +20 -15
- package/dist/plain/interval/intervalContainsDateTime.d.ts +16 -11
- package/dist/plain/interval/intervalContainsDateTime.js +24 -20
- package/dist/plain/interval/intervalContainsTime.d.ts +20 -10
- package/dist/plain/interval/intervalContainsTime.js +28 -19
- package/dist/plain/interval/intervalCountDate.d.ts +13 -8
- package/dist/plain/interval/intervalCountDate.js +46 -14
- package/dist/plain/interval/intervalCountDateTime.d.ts +6 -4
- package/dist/plain/interval/intervalCountDateTime.js +63 -18
- package/dist/plain/interval/intervalCountTime.d.ts +3 -4
- package/dist/plain/interval/intervalCountTime.js +9 -9
- package/dist/plain/interval/intervalDifferenceDate.d.ts +13 -6
- package/dist/plain/interval/intervalDifferenceDate.js +19 -32
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +10 -4
- package/dist/plain/interval/intervalDifferenceDateTime.js +21 -27
- package/dist/plain/interval/intervalDifferenceTime.d.ts +11 -4
- package/dist/plain/interval/intervalDifferenceTime.js +22 -27
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +16 -4
- package/dist/plain/interval/intervalDivideEquallyDate.js +57 -33
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +16 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +67 -31
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +16 -4
- package/dist/plain/interval/intervalDivideEquallyTime.js +58 -31
- package/dist/plain/interval/intervalEngulfsDate.d.ts +16 -9
- package/dist/plain/interval/intervalEngulfsDate.js +19 -12
- package/dist/plain/interval/intervalEngulfsDateTime.d.ts +16 -11
- package/dist/plain/interval/intervalEngulfsDateTime.js +24 -18
- package/dist/plain/interval/intervalEngulfsTime.d.ts +18 -8
- package/dist/plain/interval/intervalEngulfsTime.js +26 -15
- package/dist/plain/interval/intervalFromDurationDate.d.ts +5 -4
- package/dist/plain/interval/intervalFromDurationDate.js +11 -8
- package/dist/plain/interval/intervalFromDurationDateTime.js +4 -0
- package/dist/plain/interval/intervalFromDurationTime.d.ts +10 -12
- package/dist/plain/interval/intervalFromDurationTime.js +28 -17
- package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -4
- package/dist/plain/interval/intervalIntersectionDate.js +14 -9
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -4
- package/dist/plain/interval/intervalIntersectionDateTime.js +19 -13
- package/dist/plain/interval/intervalIntersectionTime.d.ts +7 -3
- package/dist/plain/interval/intervalIntersectionTime.js +17 -12
- package/dist/plain/interval/intervalLengthDate.d.ts +9 -6
- package/dist/plain/interval/intervalLengthDate.js +40 -8
- package/dist/plain/interval/intervalLengthDateTime.js +2 -2
- package/dist/plain/interval/intervalOverlappingDaysDate.d.ts +16 -17
- package/dist/plain/interval/intervalOverlappingDaysDate.js +30 -30
- package/dist/plain/interval/intervalOverlappingDaysDateTime.d.ts +7 -12
- package/dist/plain/interval/intervalOverlappingDaysDateTime.js +24 -24
- package/dist/plain/interval/intervalSplitAtDate.d.ts +10 -5
- package/dist/plain/interval/intervalSplitAtDate.js +48 -36
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +9 -4
- package/dist/plain/interval/intervalSplitAtDateTime.js +44 -32
- package/dist/plain/interval/intervalSplitAtTime.d.ts +9 -4
- package/dist/plain/interval/intervalSplitAtTime.js +44 -32
- package/dist/plain/interval/intervalUnionDate.d.ts +14 -6
- package/dist/plain/interval/intervalUnionDate.js +19 -11
- package/dist/plain/interval/intervalUnionDateTime.d.ts +12 -5
- package/dist/plain/interval/intervalUnionDateTime.js +22 -14
- package/dist/plain/interval/intervalUnionTime.d.ts +10 -3
- package/dist/plain/interval/intervalUnionTime.js +20 -12
- package/dist/plain/interval/intervalXorAllDate.d.ts +11 -10
- package/dist/plain/interval/intervalXorAllDate.js +37 -59
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +7 -5
- package/dist/plain/interval/intervalXorAllDateTime.js +28 -48
- package/dist/plain/interval/intervalXorAllTime.d.ts +8 -4
- package/dist/plain/interval/intervalXorAllTime.js +29 -47
- package/dist/plain/interval/intervalXorDate.d.ts +10 -9
- package/dist/plain/interval/intervalXorDate.js +19 -54
- package/dist/plain/interval/intervalXorDateTime.d.ts +9 -7
- package/dist/plain/interval/intervalXorDateTime.js +23 -50
- package/dist/plain/interval/intervalXorTime.d.ts +8 -7
- package/dist/plain/interval/intervalXorTime.js +22 -50
- package/dist/plain/interval/intervalsOverlapDate.d.ts +14 -7
- package/dist/plain/interval/intervalsOverlapDate.js +17 -10
- package/dist/plain/interval/intervalsOverlapDateTime.d.ts +12 -7
- package/dist/plain/interval/intervalsOverlapDateTime.js +20 -14
- package/dist/plain/interval/intervalsOverlapTime.d.ts +10 -5
- package/dist/plain/interval/intervalsOverlapTime.js +18 -12
- package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -5
- package/dist/plain/interval/mergeIntervalsDate.js +37 -38
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +7 -3
- package/dist/plain/interval/mergeIntervalsDateTime.js +31 -32
- package/dist/plain/interval/mergeIntervalsTime.d.ts +7 -3
- package/dist/plain/interval/mergeIntervalsTime.js +31 -31
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +26 -6
- package/dist/plain/interval/splitIntervalByUnitDate.js +76 -43
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -2
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +65 -39
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +18 -2
- package/dist/plain/interval/splitIntervalByUnitTime.js +76 -39
- package/dist/plain/interval/validate/isValidDateInterval.d.ts +4 -2
- package/dist/plain/interval/validate/isValidDateInterval.js +4 -2
- package/dist/plain/interval/validate/isValidDateTimeInterval.d.ts +5 -0
- package/dist/plain/interval/validate/isValidDateTimeInterval.js +7 -2
- package/dist/plain/interval/validate/isValidTimeInterval.d.ts +5 -0
- package/dist/plain/interval/validate/isValidTimeInterval.js +8 -18
- package/dist/plain/locale/getLocaleEraNames.d.ts +14 -4
- package/dist/plain/locale/getLocaleEraNames.js +56 -41
- package/dist/plain/locale/getLocaleMeridiems.d.ts +7 -4
- package/dist/plain/locale/getLocaleMeridiems.js +28 -22
- package/dist/plain/locale/getLocaleMonthNames.d.ts +14 -4
- package/dist/plain/locale/getLocaleMonthNames.js +34 -19
- package/dist/plain/locale/getLocaleWeekdayNames.d.ts +14 -7
- package/dist/plain/locale/getLocaleWeekdayNames.js +40 -22
- package/dist/plain/map/mapDatesInRange.d.ts +18 -1
- package/dist/plain/map/mapDatesInRange.js +53 -17
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +3 -2
- package/dist/plain/parse/parseDateTimeWithPattern.js +30 -24
- package/dist/plain/parse/parseDateWithPattern.d.ts +3 -2
- package/dist/plain/parse/parseDateWithPattern.js +22 -16
- package/dist/plain/parse/parseMicrosecondFromDateTime.d.ts +2 -1
- package/dist/plain/parse/parseMicrosecondFromDateTime.js +2 -1
- package/dist/plain/parse/parseMicrosecondFromTime.d.ts +2 -1
- package/dist/plain/parse/parseMicrosecondFromTime.js +2 -1
- package/dist/plain/parse/parseNanosecondFromDateTime.d.ts +2 -1
- package/dist/plain/parse/parseNanosecondFromDateTime.js +2 -1
- package/dist/plain/parse/parseNanosecondFromTime.d.ts +2 -1
- package/dist/plain/parse/parseNanosecondFromTime.js +2 -1
- package/dist/plain/parse/parseSql.d.ts +15 -12
- package/dist/plain/parse/parseSql.js +16 -13
- package/dist/plain/parse/parseTimeWithPattern.d.ts +3 -2
- package/dist/plain/parse/parseTimeWithPattern.js +27 -21
- package/dist/plain/parse/parseUnitFromDate.d.ts +9 -2
- package/dist/plain/parse/parseUnitFromDate.js +39 -19
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +11 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +54 -28
- package/dist/plain/parse/parseUnitFromTime.d.ts +9 -3
- package/dist/plain/parse/parseUnitFromTime.js +13 -3
- package/dist/plain/parse/parseWeekFromDate.d.ts +5 -0
- package/dist/plain/parse/parseWeekFromDate.js +24 -5
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +5 -0
- package/dist/plain/parse/parseWeekFromDateTime.js +26 -5
- package/dist/plain/validate/isLeapSecond.d.ts +27 -9
- package/dist/plain/validate/isLeapSecond.js +30 -9
- package/dist/plain/validate/isLeapYear.d.ts +7 -1
- package/dist/plain/validate/isLeapYear.js +10 -1
- package/dist/plain/validate/isValidCalendarDate.d.ts +37 -6
- package/dist/plain/validate/isValidCalendarDate.js +37 -6
- package/dist/plain/validate/isValidDate.d.ts +9 -1
- package/dist/plain/validate/isValidDate.js +14 -5
- package/dist/plain/validate/isValidDateRange.d.ts +11 -4
- package/dist/plain/validate/isValidDateRange.js +32 -22
- package/dist/plain/validate/isValidDateTime.d.ts +7 -1
- package/dist/plain/validate/isValidDateTime.js +12 -5
- package/dist/plain/validate/isValidDateTimeRange.d.ts +3 -2
- package/dist/plain/validate/isValidDateTimeRange.js +30 -15
- package/dist/plain/validate/isValidIsoDateLike.d.ts +6 -1
- package/dist/plain/validate/isValidIsoDateLike.js +13 -8
- package/dist/plain/validate/isValidTime.d.ts +6 -1
- package/dist/plain/validate/isValidTime.js +10 -3
- package/dist/plain/validate/isValidTimeRange.d.ts +4 -2
- package/dist/plain/validate/isValidTimeRange.js +31 -27
- package/dist/precision/calculate/index.d.ts +1 -0
- package/dist/precision/calculate/index.js +1 -0
- package/dist/precision/calculate/truncateNanoseconds.d.ts +37 -0
- package/dist/precision/calculate/truncateNanoseconds.js +41 -0
- package/dist/precision/convert/fromDotNetTicks.d.ts +30 -0
- package/dist/precision/convert/fromDotNetTicks.js +39 -0
- package/dist/precision/convert/fromExcelSerial.d.ts +38 -0
- package/dist/precision/convert/fromExcelSerial.js +81 -0
- package/dist/precision/convert/fromFileTime.d.ts +30 -0
- package/dist/precision/convert/fromFileTime.js +39 -0
- package/dist/precision/convert/fromNanoseconds.d.ts +29 -0
- package/dist/precision/convert/fromNanoseconds.js +50 -0
- package/dist/precision/convert/fromNtpTimestamp.d.ts +43 -0
- package/dist/precision/convert/fromNtpTimestamp.js +57 -0
- package/dist/precision/convert/fromPgMicroseconds.d.ts +26 -0
- package/dist/precision/convert/fromPgMicroseconds.js +33 -0
- package/dist/precision/convert/index.d.ts +12 -0
- package/dist/precision/convert/index.js +12 -0
- package/dist/precision/convert/toDotNetTicks.d.ts +29 -0
- package/dist/precision/convert/toDotNetTicks.js +40 -0
- package/dist/precision/convert/toExcelSerial.d.ts +56 -0
- package/dist/precision/convert/toExcelSerial.js +85 -0
- package/dist/precision/convert/toFileTime.d.ts +31 -0
- package/dist/precision/convert/toFileTime.js +43 -0
- package/dist/precision/convert/toNanoseconds.d.ts +37 -0
- package/dist/precision/convert/toNanoseconds.js +40 -0
- package/dist/precision/convert/toNtpTimestamp.d.ts +30 -0
- package/dist/precision/convert/toNtpTimestamp.js +38 -0
- package/dist/precision/convert/toPgMicroseconds.d.ts +29 -0
- package/dist/precision/convert/toPgMicroseconds.js +42 -0
- package/dist/precision/format/formatNanoseconds.d.ts +26 -0
- package/dist/precision/format/formatNanoseconds.js +32 -0
- package/dist/precision/format/index.d.ts +1 -0
- package/dist/precision/format/index.js +1 -0
- package/dist/precision/index.d.ts +6 -0
- package/dist/precision/index.js +7 -0
- package/dist/precision/parse/index.d.ts +1 -0
- package/dist/precision/parse/index.js +1 -0
- package/dist/precision/parse/parseNanoseconds.d.ts +27 -0
- package/dist/precision/parse/parseNanoseconds.js +32 -0
- package/dist/precision/validate/index.d.ts +3 -0
- package/dist/precision/validate/index.js +3 -0
- package/dist/precision/validate/isValidInstant.d.ts +37 -0
- package/dist/precision/validate/isValidInstant.js +40 -0
- package/dist/precision/validate/isValidNanoPattern.d.ts +27 -0
- package/dist/precision/validate/isValidNanoPattern.js +40 -0
- package/dist/precision/validate/isValidNanoseconds.d.ts +25 -0
- package/dist/precision/validate/isValidNanoseconds.js +28 -0
- package/dist/regex/calendar-date.d.ts +25 -14
- package/dist/regex/calendar-date.js +26 -15
- package/dist/regex/calendar-zoned-date-time.d.ts +22 -38
- package/dist/regex/calendar-zoned-date-time.js +23 -39
- package/dist/regex/date-time.d.ts +14 -4
- package/dist/regex/date-time.js +15 -5
- package/dist/regex/date.d.ts +45 -3
- package/dist/regex/date.js +47 -5
- package/dist/regex/http-date.d.ts +10 -6
- package/dist/regex/http-date.js +10 -6
- package/dist/regex/index.d.ts +3 -0
- package/dist/regex/index.js +4 -0
- package/dist/regex/leap-second.d.ts +41 -8
- package/dist/regex/leap-second.js +42 -9
- package/dist/regex/nanoseconds.d.ts +20 -0
- package/dist/regex/nanoseconds.js +20 -0
- package/dist/regex/rfc-2822.d.ts +15 -7
- package/dist/regex/rfc-2822.js +15 -7
- package/dist/regex/rfc-3339.d.ts +8 -1
- package/dist/regex/rfc-3339.js +9 -2
- package/dist/regex/sql-date-time.d.ts +27 -8
- package/dist/regex/sql-date-time.js +28 -9
- package/dist/regex/time-zone-like.d.ts +24 -15
- package/dist/regex/time-zone-like.js +25 -16
- package/dist/regex/time.d.ts +20 -6
- package/dist/regex/time.js +20 -6
- package/dist/regex/unix.d.ts +13 -5
- package/dist/regex/unix.js +13 -5
- package/dist/regex/utc-date-time.d.ts +19 -9
- package/dist/regex/utc-date-time.js +20 -10
- package/dist/regex/utc-offset.d.ts +24 -0
- package/dist/regex/utc-offset.js +24 -0
- package/dist/span/calculate/index.d.ts +3 -0
- package/dist/span/calculate/index.js +3 -0
- package/dist/span/calculate/spanMs.d.ts +52 -0
- package/dist/span/calculate/spanMs.js +80 -0
- package/dist/span/calculate/spanNs.d.ts +43 -0
- package/dist/span/calculate/spanNs.js +51 -0
- package/dist/span/calculate/spanWallClock.d.ts +60 -0
- package/dist/span/calculate/spanWallClock.js +80 -0
- package/dist/span/index.d.ts +3 -0
- package/dist/span/index.js +4 -0
- package/dist/span/validate/index.d.ts +1 -0
- package/dist/span/validate/index.js +1 -0
- package/dist/span/validate/isValidSpan.d.ts +37 -0
- package/dist/span/validate/isValidSpan.js +41 -0
- package/dist/transport/calculate/dwellTime.d.ts +72 -0
- package/dist/transport/calculate/dwellTime.js +126 -0
- package/dist/transport/calculate/index.d.ts +2 -0
- package/dist/transport/calculate/index.js +2 -0
- package/dist/transport/calculate/transitTime.d.ts +53 -0
- package/dist/transport/calculate/transitTime.js +118 -0
- package/dist/transport/convert/etaAtZone.d.ts +36 -0
- package/dist/transport/convert/etaAtZone.js +53 -0
- package/dist/transport/convert/index.d.ts +1 -0
- package/dist/transport/convert/index.js +1 -0
- package/dist/transport/index.d.ts +3 -0
- package/dist/transport/index.js +4 -0
- package/dist/types/business-calendar.d.ts +27 -0
- package/dist/types/business-calendar.js +0 -0
- package/dist/types/calendar-system.d.ts +9 -1
- package/dist/types/fiscal-calendar.d.ts +22 -0
- package/dist/types/fiscal-calendar.js +0 -0
- package/dist/types/free-time-options.d.ts +34 -0
- package/dist/types/free-time-options.js +0 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.js +6 -0
- package/dist/types/interval.d.ts +18 -0
- package/dist/types/interval.js +0 -0
- package/dist/types/now-unit.d.ts +1 -1
- package/dist/types/roll-convention.d.ts +32 -0
- package/dist/types/roll-convention.js +0 -0
- package/dist/types/utc-now-unit.d.ts +1 -1
- package/dist/types/zone-bucket-unit.d.ts +11 -0
- package/dist/types/zone-bucket-unit.js +0 -0
- package/dist/unix/calculate/addUnix.d.ts +10 -4
- package/dist/unix/calculate/addUnix.js +39 -26
- package/dist/unix/calculate/diffUnix.d.ts +38 -11
- package/dist/unix/calculate/diffUnix.js +84 -40
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +17 -7
- package/dist/unix/calculate/diffUnixAsDuration.js +42 -23
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +15 -11
- package/dist/unix/calculate/endOfQuarterForUnix.js +20 -39
- package/dist/unix/calculate/endOfUnix.d.ts +23 -18
- package/dist/unix/calculate/endOfUnix.js +37 -15
- package/dist/unix/calculate/isBetweenUnix.d.ts +12 -6
- package/dist/unix/calculate/isBetweenUnix.js +34 -23
- package/dist/unix/calculate/maxUnix.d.ts +6 -3
- package/dist/unix/calculate/maxUnix.js +17 -8
- package/dist/unix/calculate/minUnix.d.ts +6 -3
- package/dist/unix/calculate/minUnix.js +17 -8
- package/dist/unix/calculate/roundUnix.d.ts +24 -10
- package/dist/unix/calculate/roundUnix.js +67 -42
- package/dist/unix/calculate/setUnix.d.ts +14 -5
- package/dist/unix/calculate/setUnix.js +48 -29
- package/dist/unix/calculate/sortUnix.d.ts +6 -3
- package/dist/unix/calculate/sortUnix.js +19 -11
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +17 -12
- package/dist/unix/calculate/startOfQuarterForUnix.js +22 -30
- package/dist/unix/calculate/startOfUnix.d.ts +23 -18
- package/dist/unix/calculate/startOfUnix.js +37 -15
- package/dist/unix/calculate/subtractUnix.d.ts +10 -4
- package/dist/unix/calculate/subtractUnix.js +39 -26
- package/dist/unix/compare/areUnixEqual.d.ts +9 -5
- package/dist/unix/compare/areUnixEqual.js +17 -13
- package/dist/unix/compare/areUnixEqualBy.d.ts +14 -7
- package/dist/unix/compare/areUnixEqualBy.js +14 -7
- package/dist/unix/compare/isAfterUnix.d.ts +8 -4
- package/dist/unix/compare/isAfterUnix.js +16 -12
- package/dist/unix/compare/isBeforeUnix.d.ts +7 -4
- package/dist/unix/compare/isBeforeUnix.js +15 -12
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -9
- package/dist/unix/convert/convertUnixToPlainDate.js +34 -21
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +15 -9
- package/dist/unix/convert/convertUnixToPlainDateTime.js +32 -21
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +15 -9
- package/dist/unix/convert/convertUnixToPlainTime.js +32 -21
- package/dist/unix/convert/convertUnixToUtc.d.ts +15 -7
- package/dist/unix/convert/convertUnixToUtc.js +20 -15
- package/dist/unix/convert/convertUnixToZoned.d.ts +17 -10
- package/dist/unix/convert/convertUnixToZoned.js +31 -20
- package/dist/unix/format/formatCalendarUnix.d.ts +22 -19
- package/dist/unix/format/formatCalendarUnix.js +35 -81
- package/dist/unix/format/formatRelativeUnix.d.ts +25 -8
- package/dist/unix/format/formatRelativeUnix.js +46 -93
- package/dist/unix/format/formatUnix.d.ts +26 -4
- package/dist/unix/format/formatUnix.js +48 -34
- package/dist/unix/get/getUnixNow.d.ts +13 -7
- package/dist/unix/get/getUnixNow.js +27 -17
- package/dist/unix/get/getUnixNowUnit.d.ts +5 -2
- package/dist/unix/get/getUnixNowUnit.js +9 -35
- package/dist/unix/index.d.ts +1 -0
- package/dist/unix/index.js +2 -0
- package/dist/unix/interval/intervalAbutsUnix.d.ts +17 -12
- package/dist/unix/interval/intervalAbutsUnix.js +23 -41
- package/dist/unix/interval/intervalContainsUnix.d.ts +17 -7
- package/dist/unix/interval/intervalContainsUnix.js +25 -37
- package/dist/unix/interval/intervalCountUnix.d.ts +30 -13
- package/dist/unix/interval/intervalCountUnix.js +49 -23
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +19 -10
- package/dist/unix/interval/intervalDifferenceUnix.js +25 -43
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +24 -10
- package/dist/unix/interval/intervalDivideEquallyUnix.js +57 -36
- package/dist/unix/interval/intervalEngulfsUnix.d.ts +13 -7
- package/dist/unix/interval/intervalEngulfsUnix.js +18 -30
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -6
- package/dist/unix/interval/intervalFromDurationUnix.js +51 -39
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +18 -11
- package/dist/unix/interval/intervalIntersectionUnix.js +25 -46
- package/dist/unix/interval/intervalLengthUnix.d.ts +21 -9
- package/dist/unix/interval/intervalLengthUnix.js +41 -18
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +26 -12
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +67 -63
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +11 -6
- package/dist/unix/interval/intervalSplitAtUnix.js +41 -34
- package/dist/unix/interval/intervalUnionUnix.d.ts +15 -9
- package/dist/unix/interval/intervalUnionUnix.js +20 -42
- package/dist/unix/interval/intervalXorAllUnix.d.ts +8 -6
- package/dist/unix/interval/intervalXorAllUnix.js +21 -56
- package/dist/unix/interval/intervalXorUnix.d.ts +22 -11
- package/dist/unix/interval/intervalXorUnix.js +28 -56
- package/dist/unix/interval/intervalsOverlapUnix.d.ts +16 -10
- package/dist/unix/interval/intervalsOverlapUnix.js +21 -37
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +10 -4
- package/dist/unix/interval/mergeIntervalsUnix.js +25 -36
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +38 -8
- package/dist/unix/interval/splitIntervalByUnitUnix.js +72 -56
- package/dist/unix/interval/validate/isValidUnixInterval.d.ts +12 -6
- package/dist/unix/interval/validate/isValidUnixInterval.js +17 -16
- package/dist/unix/parse/index.d.ts +2 -0
- package/dist/unix/parse/index.js +2 -0
- package/dist/unix/parse/parseDateFromUnix.d.ts +10 -8
- package/dist/unix/parse/parseDateFromUnix.js +17 -29
- package/dist/unix/parse/parseDayFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseDayFromUnix.js +18 -5
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +8 -5
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +15 -28
- package/dist/unix/parse/parseHourFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseHourFromUnix.js +18 -5
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +16 -3
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +16 -3
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseMinuteFromUnix.js +18 -5
- package/dist/unix/parse/parseMonthFromUnix.d.ts +6 -4
- package/dist/unix/parse/parseMonthFromUnix.js +18 -5
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +8 -5
- package/dist/unix/parse/parseNanosecondFromUnix.js +20 -6
- package/dist/unix/parse/parseSecondFromUnix.d.ts +5 -3
- package/dist/unix/parse/parseSecondFromUnix.js +17 -4
- package/dist/unix/parse/parseTimeFromUnix.d.ts +10 -8
- package/dist/unix/parse/parseTimeFromUnix.js +17 -29
- package/dist/unix/parse/parseUnitFromUnix.d.ts +18 -11
- package/dist/unix/parse/parseUnitFromUnix.js +57 -55
- package/dist/unix/parse/parseWeekFromUnix.d.ts +15 -7
- package/dist/unix/parse/parseWeekFromUnix.js +32 -30
- package/dist/unix/parse/parseYearFromUnix.d.ts +5 -3
- package/dist/unix/parse/parseYearFromUnix.js +17 -4
- package/dist/unix/validate/isValidUnixMilliseconds.d.ts +8 -5
- package/dist/unix/validate/isValidUnixMilliseconds.js +10 -9
- package/dist/unix/validate/isValidUnixRange.d.ts +13 -7
- package/dist/unix/validate/isValidUnixRange.js +29 -19
- package/dist/unix/validate/isValidUnixSeconds.d.ts +8 -5
- package/dist/unix/validate/isValidUnixSeconds.js +10 -9
- package/dist/unix/validate/isValidUnixUnit.d.ts +9 -7
- package/dist/unix/validate/isValidUnixUnit.js +6 -8
- package/dist/utc/calculate/addUtc.js +26 -12
- package/dist/utc/calculate/diffUtc.d.ts +22 -7
- package/dist/utc/calculate/diffUtc.js +75 -31
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +2 -2
- package/dist/utc/calculate/diffUtcAsDuration.js +10 -3
- package/dist/utc/calculate/endOfQuarterForUtc.d.ts +1 -1
- package/dist/utc/calculate/endOfQuarterForUtc.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +11 -4
- package/dist/utc/calculate/endOfUtc.js +22 -5
- package/dist/utc/calculate/isBetweenUtc.js +40 -24
- package/dist/utc/calculate/maxUtc.js +19 -12
- package/dist/utc/calculate/minUtc.js +19 -12
- package/dist/utc/calculate/roundUtc.d.ts +16 -2
- package/dist/utc/calculate/roundUtc.js +42 -31
- package/dist/utc/calculate/setUtc.d.ts +4 -8
- package/dist/utc/calculate/setUtc.js +25 -18
- package/dist/utc/calculate/sortUtc.js +17 -10
- package/dist/utc/calculate/startOfQuarterForUtc.d.ts +2 -0
- package/dist/utc/calculate/startOfQuarterForUtc.js +12 -1
- package/dist/utc/calculate/startOfUtc.d.ts +6 -4
- package/dist/utc/calculate/startOfUtc.js +17 -5
- package/dist/utc/calculate/subtractUtc.js +26 -12
- package/dist/utc/chop/chopUtc.d.ts +5 -2
- package/dist/utc/chop/chopUtc.js +8 -4
- package/dist/utc/compare/areUtcEqualBy.d.ts +10 -5
- package/dist/utc/compare/areUtcEqualBy.js +34 -11
- package/dist/utc/convert/convertUtcToPlainDate.js +22 -10
- package/dist/utc/convert/convertUtcToPlainDateTime.js +28 -16
- package/dist/utc/convert/convertUtcToPlainTime.js +22 -10
- package/dist/utc/convert/convertUtcToUnix.d.ts +12 -5
- package/dist/utc/convert/convertUtcToUnix.js +22 -13
- package/dist/utc/format/formatCalendarUtc.d.ts +11 -6
- package/dist/utc/format/formatCalendarUtc.js +32 -41
- package/dist/utc/format/formatHttp.d.ts +9 -3
- package/dist/utc/format/formatHttp.js +14 -12
- package/dist/utc/format/formatRelativeUtc.d.ts +18 -6
- package/dist/utc/format/formatRelativeUtc.js +43 -51
- package/dist/utc/format/formatUtc.d.ts +20 -3
- package/dist/utc/format/formatUtc.js +41 -12
- package/dist/utc/get/getUtcNowUnit.d.ts +3 -0
- package/dist/utc/get/getUtcNowUnit.js +11 -33
- package/dist/utc/index.d.ts +1 -0
- package/dist/utc/index.js +2 -0
- package/dist/utc/interval/intervalAbutsUtc.d.ts +10 -7
- package/dist/utc/interval/intervalAbutsUtc.js +18 -30
- package/dist/utc/interval/intervalContainsUtc.d.ts +19 -11
- package/dist/utc/interval/intervalContainsUtc.js +33 -34
- package/dist/utc/interval/intervalCountUtc.d.ts +3 -4
- package/dist/utc/interval/intervalCountUtc.js +12 -18
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +13 -5
- package/dist/utc/interval/intervalDifferenceUtc.js +25 -51
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +16 -3
- package/dist/utc/interval/intervalDivideEquallyUtc.js +54 -34
- package/dist/utc/interval/intervalEngulfsUtc.d.ts +17 -12
- package/dist/utc/interval/intervalEngulfsUtc.js +25 -26
- package/dist/utc/interval/intervalFromDurationUtc.js +5 -0
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +12 -6
- package/dist/utc/interval/intervalIntersectionUtc.js +24 -41
- package/dist/utc/interval/intervalLengthUtc.js +5 -7
- package/dist/utc/interval/intervalOverlappingDaysUtc.d.ts +7 -13
- package/dist/utc/interval/intervalOverlappingDaysUtc.js +25 -36
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +7 -2
- package/dist/utc/interval/intervalSplitAtUtc.js +39 -33
- package/dist/utc/interval/intervalUnionUtc.d.ts +15 -7
- package/dist/utc/interval/intervalUnionUtc.js +31 -42
- package/dist/utc/interval/intervalXorAllUtc.d.ts +7 -4
- package/dist/utc/interval/intervalXorAllUtc.js +30 -52
- package/dist/utc/interval/intervalXorUtc.d.ts +8 -6
- package/dist/utc/interval/intervalXorUtc.js +22 -56
- package/dist/utc/interval/intervalsOverlapUtc.d.ts +15 -9
- package/dist/utc/interval/intervalsOverlapUtc.js +23 -39
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +9 -2
- package/dist/utc/interval/mergeIntervalsUtc.js +23 -36
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +23 -2
- package/dist/utc/interval/splitIntervalByUnitUtc.js +65 -44
- package/dist/utc/interval/validate/isValidUtcInterval.d.ts +5 -0
- package/dist/utc/interval/validate/isValidUtcInterval.js +7 -6
- package/dist/utc/parse/parseDateFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseDateFromUtc.js +14 -9
- package/dist/utc/parse/parseDayFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseDayFromUtc.js +14 -8
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +24 -6
- package/dist/utc/parse/parseHourFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseHourFromUtc.js +14 -8
- package/dist/utc/parse/parseHttp.d.ts +39 -14
- package/dist/utc/parse/parseHttp.js +69 -28
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -2
- package/dist/utc/parse/parseMicrosecondFromUtc.js +18 -9
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseMillisecondFromUtc.js +16 -8
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseMinuteFromUtc.js +14 -8
- package/dist/utc/parse/parseMonthFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseMonthFromUtc.js +14 -8
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -2
- package/dist/utc/parse/parseNanosecondFromUtc.js +18 -9
- package/dist/utc/parse/parseSecondFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseSecondFromUtc.js +14 -8
- package/dist/utc/parse/parseTimeFromUtc.js +21 -10
- package/dist/utc/parse/parseUnitFromUtc.d.ts +18 -7
- package/dist/utc/parse/parseUnitFromUtc.js +58 -31
- package/dist/utc/parse/parseWeekFromUtc.d.ts +16 -3
- package/dist/utc/parse/parseWeekFromUtc.js +38 -10
- package/dist/utc/parse/parseYearFromUtc.d.ts +7 -1
- package/dist/utc/parse/parseYearFromUtc.js +14 -8
- package/dist/utc/validate/isValidUtc.d.ts +8 -1
- package/dist/utc/validate/isValidUtc.js +12 -3
- package/dist/utc/validate/isValidUtcRange.d.ts +3 -2
- package/dist/utc/validate/isValidUtcRange.js +30 -19
- package/dist/zoned/calculate/addZoned.d.ts +40 -27
- package/dist/zoned/calculate/addZoned.js +71 -56
- package/dist/zoned/calculate/addZonedBusinessDays.d.ts +2 -0
- package/dist/zoned/calculate/addZonedBusinessDays.js +5 -2
- package/dist/zoned/calculate/clampZoned.js +4 -3
- package/dist/zoned/calculate/closestZonedTo.d.ts +6 -6
- package/dist/zoned/calculate/closestZonedTo.js +35 -26
- package/dist/zoned/calculate/cycleZoned.d.ts +10 -7
- package/dist/zoned/calculate/cycleZoned.js +19 -11
- package/dist/zoned/calculate/diffZoned.d.ts +39 -17
- package/dist/zoned/calculate/diffZoned.js +90 -45
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +19 -9
- package/dist/zoned/calculate/diffZonedAsDuration.js +32 -15
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +11 -11
- package/dist/zoned/calculate/endOfQuarterForZoned.js +32 -31
- package/dist/zoned/calculate/endOfZoned.d.ts +21 -14
- package/dist/zoned/calculate/endOfZoned.js +25 -111
- package/dist/zoned/calculate/getHoursInZonedDay.d.ts +8 -1
- package/dist/zoned/calculate/getHoursInZonedDay.js +10 -14
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +8 -4
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +9 -6
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +20 -26
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +40 -44
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +16 -24
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +36 -42
- package/dist/zoned/calculate/getQuarterForZoned.js +2 -2
- package/dist/zoned/calculate/maxZoned.js +20 -12
- package/dist/zoned/calculate/minZoned.d.ts +1 -1
- package/dist/zoned/calculate/minZoned.js +21 -13
- package/dist/zoned/calculate/roundZoned.d.ts +18 -4
- package/dist/zoned/calculate/roundZoned.js +58 -33
- package/dist/zoned/calculate/setZoned.d.ts +9 -3
- package/dist/zoned/calculate/setZoned.js +39 -18
- package/dist/zoned/calculate/sortZoned.js +18 -10
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +4 -7
- package/dist/zoned/calculate/startOfQuarterForZoned.js +23 -17
- package/dist/zoned/calculate/startOfZoned.d.ts +17 -13
- package/dist/zoned/calculate/startOfZoned.js +21 -103
- package/dist/zoned/calculate/subtractZoned.d.ts +36 -24
- package/dist/zoned/calculate/subtractZoned.js +66 -50
- package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +2 -0
- package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -2
- package/dist/zoned/chop/chopZonedDate.js +2 -2
- package/dist/zoned/chop/chopZonedDateTime.js +2 -2
- package/dist/zoned/chop/chopZonedMilliseconds.js +2 -2
- package/dist/zoned/chop/chopZonedSeconds.js +2 -2
- package/dist/zoned/chop/chopZonedTime.js +2 -2
- package/dist/zoned/chop/chopZonedTimezone.js +2 -2
- package/dist/zoned/compare/areZonedEqual.js +3 -2
- package/dist/zoned/compare/areZonedEqualBy.d.ts +15 -2
- package/dist/zoned/compare/areZonedEqualBy.js +45 -12
- package/dist/zoned/compare/isAfterZoned.js +3 -2
- package/dist/zoned/compare/isBeforeZoned.d.ts +1 -1
- package/dist/zoned/compare/isBeforeZoned.js +4 -3
- package/dist/zoned/compare/isBetweenZoned.js +46 -29
- package/dist/zoned/compare/isInDaylightSaving.js +4 -4
- package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -4
- package/dist/zoned/compare/isZonedBusinessDay.js +9 -6
- package/dist/zoned/compare/isZonedFuture.js +2 -1
- package/dist/zoned/compare/isZonedPast.js +2 -1
- package/dist/zoned/compare/isZonedRelativeDay.js +2 -1
- package/dist/zoned/compare/isZonedThisUnit.d.ts +12 -4
- package/dist/zoned/compare/isZonedThisUnit.js +37 -16
- package/dist/zoned/compare/isZonedWeekend.d.ts +8 -4
- package/dist/zoned/compare/isZonedWeekend.js +9 -6
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +10 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +34 -16
- package/dist/zoned/convert/convertZonedToCalendar.d.ts +26 -38
- package/dist/zoned/convert/convertZonedToCalendar.js +33 -48
- package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +6 -0
- package/dist/zoned/convert/convertZonedToPlainDateTime.js +8 -2
- package/dist/zoned/convert/convertZonedToUnix.d.ts +12 -6
- package/dist/zoned/convert/convertZonedToUnix.js +23 -16
- package/dist/zoned/convert/convertZonedToUtc.js +2 -2
- package/dist/zoned/convert/convertZonedToZoned.js +2 -2
- package/dist/zoned/format/formatCalendarZoned.d.ts +7 -3
- package/dist/zoned/format/formatCalendarZoned.js +37 -39
- package/dist/zoned/format/formatRelativeZoned.d.ts +15 -6
- package/dist/zoned/format/formatRelativeZoned.js +54 -54
- package/dist/zoned/format/formatRfc2822.d.ts +14 -1
- package/dist/zoned/format/formatRfc2822.js +27 -13
- package/dist/zoned/format/formatRfc3339.d.ts +14 -1
- package/dist/zoned/format/formatRfc3339.js +29 -3
- package/dist/zoned/format/formatTimeZoneName.d.ts +3 -2
- package/dist/zoned/format/formatTimeZoneName.js +28 -18
- package/dist/zoned/format/formatZonedDateTime.d.ts +25 -5
- package/dist/zoned/format/formatZonedDateTime.js +40 -9
- package/dist/zoned/format/formatZonedRange.d.ts +24 -6
- package/dist/zoned/format/formatZonedRange.js +61 -28
- package/dist/zoned/format/formatZonedToParts.d.ts +29 -6
- package/dist/zoned/format/formatZonedToParts.js +42 -13
- package/dist/zoned/get/getDstTransitions.d.ts +6 -1
- package/dist/zoned/get/getDstTransitions.js +17 -15
- package/dist/zoned/get/getTimeZoneOffset.d.ts +11 -1
- package/dist/zoned/get/getTimeZoneOffset.js +19 -2
- package/dist/zoned/get/getZonedNow.js +20 -9
- package/dist/zoned/get/getZonedNowUnit.d.ts +8 -4
- package/dist/zoned/get/getZonedNowUnit.js +15 -31
- package/dist/zoned/index.js +1 -1
- package/dist/zoned/interval/intervalAbutsZoned.d.ts +18 -11
- package/dist/zoned/interval/intervalAbutsZoned.js +24 -25
- package/dist/zoned/interval/intervalContainsZoned.d.ts +16 -7
- package/dist/zoned/interval/intervalContainsZoned.js +22 -14
- package/dist/zoned/interval/intervalCountZoned.d.ts +19 -11
- package/dist/zoned/interval/intervalCountZoned.js +32 -27
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +13 -7
- package/dist/zoned/interval/intervalDifferenceZoned.js +24 -36
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +18 -9
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +67 -46
- package/dist/zoned/interval/intervalEngulfsZoned.d.ts +10 -5
- package/dist/zoned/interval/intervalEngulfsZoned.js +16 -10
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +25 -11
- package/dist/zoned/interval/intervalFromDurationZoned.js +61 -44
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +12 -6
- package/dist/zoned/interval/intervalIntersectionZoned.js +24 -18
- package/dist/zoned/interval/intervalLengthZoned.d.ts +15 -6
- package/dist/zoned/interval/intervalLengthZoned.js +23 -9
- package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +28 -17
- package/dist/zoned/interval/intervalOverlappingDaysZoned.js +46 -34
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +6 -3
- package/dist/zoned/interval/intervalSplitAtZoned.js +52 -42
- package/dist/zoned/interval/intervalUnionZoned.d.ts +14 -8
- package/dist/zoned/interval/intervalUnionZoned.js +25 -20
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -7
- package/dist/zoned/interval/intervalXorAllZoned.js +42 -73
- package/dist/zoned/interval/intervalXorZoned.d.ts +20 -12
- package/dist/zoned/interval/intervalXorZoned.js +34 -64
- package/dist/zoned/interval/intervalsOverlapZoned.d.ts +15 -7
- package/dist/zoned/interval/intervalsOverlapZoned.js +21 -12
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +10 -3
- package/dist/zoned/interval/mergeIntervalsZoned.js +44 -41
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +28 -5
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +72 -39
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +13 -10
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +13 -10
- package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +7 -5
- package/dist/zoned/interval/validate/isValidZonedInterval.js +12 -16
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +17 -1
- package/dist/zoned/map/mapZonedDatesInRange.js +62 -26
- package/dist/zoned/map/mapZonedHoursInDay.d.ts +10 -13
- package/dist/zoned/map/mapZonedHoursInDay.js +13 -21
- package/dist/zoned/parse/getZonedOffset.js +2 -2
- package/dist/zoned/parse/getZonedOffsetAs.d.ts +4 -2
- package/dist/zoned/parse/getZonedOffsetAs.js +10 -5
- package/dist/zoned/parse/parseDateFromZoned.js +2 -2
- package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
- package/dist/zoned/parse/parseDayFromZoned.js +2 -2
- package/dist/zoned/parse/parseDayOfWeekFromZoned.js +2 -2
- package/dist/zoned/parse/parseHourFromZoned.js +2 -2
- package/dist/zoned/parse/parseMicrosecondFromZoned.d.ts +2 -1
- package/dist/zoned/parse/parseMicrosecondFromZoned.js +4 -3
- package/dist/zoned/parse/parseMillisecondFromZoned.js +2 -2
- package/dist/zoned/parse/parseMinuteFromZoned.js +2 -2
- package/dist/zoned/parse/parseMonthFromZoned.js +2 -2
- package/dist/zoned/parse/parseNanosecondFromZoned.d.ts +2 -1
- package/dist/zoned/parse/parseNanosecondFromZoned.js +4 -3
- package/dist/zoned/parse/parseRfc2822.d.ts +32 -12
- package/dist/zoned/parse/parseRfc2822.js +47 -45
- package/dist/zoned/parse/parseRfc3339.d.ts +6 -0
- package/dist/zoned/parse/parseRfc3339.js +6 -0
- package/dist/zoned/parse/parseSecondFromZoned.js +2 -2
- package/dist/zoned/parse/parseTimeFromZoned.js +2 -2
- package/dist/zoned/parse/parseTimeZoneFromZoned.js +2 -2
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +14 -5
- package/dist/zoned/parse/parseUnitFromZoned.js +59 -33
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +13 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +34 -10
- package/dist/zoned/parse/parseYearFromZoned.js +2 -2
- package/dist/zoned/validate/hasDaylightSaving.js +3 -3
- package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +31 -16
- package/dist/zoned/validate/isValidCalendarZonedDateTime.js +31 -16
- package/dist/zoned/validate/isValidTimeZone.d.ts +15 -2
- package/dist/zoned/validate/isValidTimeZone.js +17 -4
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +14 -7
- package/dist/zoned/validate/isValidZonedDateTime.js +20 -12
- package/dist/zoned/validate/isValidZonedRange.d.ts +9 -2
- package/dist/zoned/validate/isValidZonedRange.js +44 -16
- package/package.json +510 -34
- package/skills/gmt-arithmetic/SKILL.md +197 -16
- package/skills/gmt-basics/SKILL.md +61 -14
- package/skills/gmt-integration/SKILL.md +54 -8
- package/skills/gmt-timezone/SKILL.md +208 -24
- package/dist/internal/advanceBusinessDays.d.ts +0 -2
- package/dist/internal/advanceBusinessDays.js +0 -15
- package/dist/internal/ethiopicFamilyCalendar.d.ts +0 -47
- package/dist/internal/ethiopicFamilyCalendar.js +0 -136
- package/dist/internal/getLocaleMinimalDaysInFirstWeek.d.ts +0 -20
- package/dist/internal/getLocaleMinimalDaysInFirstWeek.js +0 -31
- package/dist/internal/resolveUnixTimeZone.d.ts +0 -20
- package/dist/internal/resolveUnixTimeZone.js +0 -30
- package/dist/unix/calculate/startOrEndOfUnix.d.ts +0 -27
- package/dist/unix/calculate/startOrEndOfUnix.js +0 -140
- package/dist/unix/interval/resolveUnixIntervalPair.d.ts +0 -7
- package/dist/unix/interval/resolveUnixIntervalPair.js +0 -36
package/dist/internal/index.js
CHANGED
|
@@ -1,34 +1,55 @@
|
|
|
1
|
-
export { advanceBusinessDays } from "./advanceBusinessDays.js";
|
|
2
|
-
export { adjustZonedBusinessDays } from "./adjustZonedBusinessDays.js";
|
|
3
1
|
export { advanceToWeekday } from "./advanceToWeekday.js";
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
2
|
+
export { parseCalendarDateValue } from "./calendarDateString.js";
|
|
3
|
+
export { canonicalCalendarSystem, isCalendarSystem } from "./calendarSystemIds.js";
|
|
6
4
|
export { parseCalendarDatePairForArithmetic } from "./calendarDatePairPolicy.js";
|
|
7
5
|
export { parseCalendarZonedPairForArithmetic } from "./calendarZonedPairPolicy.js";
|
|
8
6
|
export { calendarOfAllDateValues, calendarSystemOfDateValue, } from "./calendarValueOfDate.js";
|
|
9
7
|
export { calendarOfAllZonedValues, calendarSystemOfZonedValue, } from "./calendarValueOfZoned.js";
|
|
10
8
|
export { formatZonedInCalendar, parseCalendarZonedValue, } from "./calendarZonedString.js";
|
|
11
9
|
export { cycleFieldValue } from "./cycleFieldValue.js";
|
|
10
|
+
export { fiscalPeriodOfWeek, fiscalYearOf } from "./fiscalCalendar.js";
|
|
11
|
+
export { floorDivide } from "./floorDivide.js";
|
|
12
|
+
export { DOT_NET_TICKS_EPOCH_OFFSET, EXCEL_1900_EPOCH_NANOSECONDS, EXCEL_1900_PHANTOM_END_NANOSECONDS, EXCEL_1900_PRE_PHANTOM_EPOCH_NANOSECONDS, EXCEL_1904_EPOCH_NANOSECONDS, EXCEL_PHANTOM_SERIAL, FILE_TIME_EPOCH_OFFSET_TICKS, MAX_DOT_NET_TICKS, MAX_EXCEL_1900_SERIAL_EXCLUSIVE, MAX_EXCEL_1904_SERIAL_EXCLUSIVE, MAX_FILE_TIME, MILLISECONDS_PER_DAY, MIN_DOT_NET_TICKS, MIN_EXCEL_1900_SERIAL, MIN_EXCEL_1904_SERIAL, MIN_FILE_TIME, MIN_PG_MICROSECONDS, NANOSECONDS_PER_DAY, NANOSECONDS_PER_DAY_NUMBER, NANOSECONDS_PER_MICROSECOND, NANOSECONDS_PER_MILLISECOND, NANOSECONDS_PER_SECOND, NANOSECONDS_PER_TICK, NTP_EPOCH_OFFSET_NANOSECONDS, NTP_ERA_UNITS, NTP_UNITS_PER_SECOND, PG_EPOCH_OFFSET_MICROSECONDS, } from "./foreignEpochs.js";
|
|
13
|
+
export { isValidEpochNanoseconds, MAX_EPOCH_NANOSECOND_DIGITS, } from "./epochNanoseconds.js";
|
|
12
14
|
export { dateCycleFieldBounds } from "./dateCycleFieldBounds.js";
|
|
13
15
|
export { timeCycleFieldBounds } from "./timeCycleFieldBounds.js";
|
|
14
16
|
export { durationUntilString } from "./durationUntilString.js";
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
+
export { formatDateInCalendar } from "./formatDateInCalendar.js";
|
|
18
|
+
export { bandsByTier, parseFreeDays, parseFreeTimeTerms, parseTiers, walkFreeTime, } from "./freeTimeLedger.js";
|
|
19
|
+
export { halfOpenAbuts, halfOpenContainsPoint, halfOpenContainsSpan, halfOpenDifference, halfOpenIntersection, halfOpenMerge, halfOpenOverlap, halfOpenUnion, halfOpenXor, } from "./halfOpenIntervals.js";
|
|
20
|
+
export { EXTENDED_UTC_OFFSET, isoStringBody, TIME_ZONE_ANNOTATION, } from "./isoStringBody.js";
|
|
21
|
+
export { formatHourDuration } from "./hourDurationString.js";
|
|
22
|
+
export { canonicalInstantIntervals } from "./instantIntervalText.js";
|
|
23
|
+
export { parseInstantNanoseconds } from "./instantNanoseconds.js";
|
|
24
|
+
export { coalesceIntervalNanoseconds, parseIntervalNanoseconds, parseIntervalNanosecondsList, } from "./intervalNanoseconds.js";
|
|
17
25
|
export { resolveDurationRelativeTo } from "./resolveDurationRelativeTo.js";
|
|
26
|
+
export { formatUtcOffset, parseUtcOffsetNanoseconds } from "./utcOffsetString.js";
|
|
18
27
|
export { ENGLISH_MONTH_NAMES, ENGLISH_WEEKDAY_NAMES, } from "./englishCalendarNames.js";
|
|
19
|
-
export {
|
|
28
|
+
export { defaultFractionalDigits } from "./defaultFractionalDigits.js";
|
|
20
29
|
export { getLocaleFirstDayOfWeek } from "./getLocaleFirstDayOfWeek.js";
|
|
21
|
-
export {
|
|
30
|
+
export { resolveMinimalDaysInFirstWeek } from "./resolveMinimalDaysInFirstWeek.js";
|
|
22
31
|
export { getLocaleWeekYearBounds } from "./getLocaleWeekYearBounds.js";
|
|
23
32
|
export { getLocaleWeekendDays } from "./getLocaleWeekendDays.js";
|
|
24
|
-
export {
|
|
33
|
+
export { getUnitSpan } from "./intervalCountHelpers.js";
|
|
34
|
+
export { isObject, isOptionsArgument } from "./isObject.js";
|
|
25
35
|
export { isValidAmount } from "./isValidAmount.js";
|
|
26
36
|
export { joinDateTimeConnector } from "./joinDateTimeConnector.js";
|
|
27
37
|
export { isValidDayOfWeek } from "./isValidDayOfWeek.js";
|
|
28
38
|
export { monthGridWeekRow } from "./monthGridWeekRow.js";
|
|
29
39
|
export { normalizeDateTime } from "./normalizeDateTime.js";
|
|
30
40
|
export { DATE_PATTERN_FIELDS, DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, TIME_PATTERN_FIELDS, } from "./patternToken.js";
|
|
41
|
+
export { plainDateAdd } from "./plainDateAdd.js";
|
|
42
|
+
export { plainDateUntil } from "./plainDateUntil.js";
|
|
31
43
|
export { resolveDateTimeUnit } from "./resolveDateTimeUnit.js";
|
|
32
44
|
export { resolveDurationUnit } from "./resolveDurationUnit.js";
|
|
33
45
|
export { resolveOverflow } from "./resolveOverflow.js";
|
|
34
46
|
export { resolveRelativeRounding } from "./resolveRelativeRounding.js";
|
|
47
|
+
export { parseUnixEpochInterval, parseUnixEpochIntervalList, parseUnixEpochIntervalPair, parseUnixEpochValue, } from "./unixEpochValue.js";
|
|
48
|
+
export { tileByUnit } from "./splitStep.js";
|
|
49
|
+
export { countZonedBuckets, nextZonedBucketStart, zonedUnitEnd, zonedUnitStart, } from "./zonedBucket.js";
|
|
50
|
+
export { countZonedLocalDates } from "./zonedLocalDates.js";
|
|
51
|
+
export { utcOffsetStringNanoseconds, zonedDateTimeFrom, } from "./zonedWallClock.js";
|
|
52
|
+
export { wallClockAtOffset } from "./wallClockAtOffset.js";
|
|
53
|
+
export { durationCompare, durationRound, durationTotal, isCalendarDifferenceAcrossZones, plainUntilWithRounding, zonedUntil, } from "./zonedWallClockDifference.js";
|
|
54
|
+
export { addToZoned, addToZonedDisambiguated, plainToZoned, roundZonedDateTime, subtractFromZoned, withZonedFields, zonedHoursInDay, zonedNextTransition, zonedStartOfDay, } from "./zonedWallClockOperations.js";
|
|
55
|
+
export { zonelessCalendarDate } from "./zonelessCalendarDate.js";
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
type Options = Intl.DateTimeFormatOptions;
|
|
3
|
+
/**
|
|
4
|
+
* Resolve caller options into runtime `Intl.DateTimeFormat` options that
|
|
5
|
+
* format an exact time in `timeZone`.
|
|
6
|
+
*
|
|
7
|
+
* - Returns `null` when the caller passed a `timeZone` option: the value is
|
|
8
|
+
* formatted in its own zone, and `Temporal.ZonedDateTime#toLocaleString`
|
|
9
|
+
* throws a TypeError for one (CreateDateTimeFormat with
|
|
10
|
+
* toLocaleStringTimeZone).
|
|
11
|
+
* - With no date or time field and no `dateStyle`/`timeStyle`, year, month,
|
|
12
|
+
* day, hour, minute and second default to `"numeric"`. With `defaults`
|
|
13
|
+
* `"zoned-date-time"` (ZonedDateTime#toLocaleString) `timeZoneName` also
|
|
14
|
+
* defaults to `"short"`; with `"all"` (an Instant) it does not.
|
|
15
|
+
*
|
|
16
|
+
* @param options caller's `Intl.DateTimeFormatOptions`
|
|
17
|
+
* @param timeZone the zone the value is formatted in
|
|
18
|
+
* @param defaults GetDateTimeFormat defaults: `"zoned-date-time"` or `"all"`
|
|
19
|
+
* @returns runtime options in `timeZone`, or `null` for a `timeZone` option
|
|
20
|
+
*/
|
|
21
|
+
export declare function instantFormatOptions(options: Options, timeZone: string, defaults: "zoned-date-time" | "all"): Options | null;
|
|
22
|
+
/**
|
|
23
|
+
* Format an exact time as text, either as its wall clock (a PlainDateTime) or
|
|
24
|
+
* as a ZonedDateTime with its zone, through the runtime's
|
|
25
|
+
* `Intl.DateTimeFormat`. Shared by `formatUtc` and `formatUnix`.
|
|
26
|
+
*
|
|
27
|
+
* - The wall-clock path uses {@link plainDateTimeFormatOptions}
|
|
28
|
+
* (GetDateTimeFormat ~any~, ~all~, ~relevant~): `timeZoneName` is not
|
|
29
|
+
* inherited.
|
|
30
|
+
* - The zoned path uses {@link instantFormatOptions} with
|
|
31
|
+
* `"zoned-date-time"` defaults.
|
|
32
|
+
* - `options` must not carry a `timeZone`; the zone comes from
|
|
33
|
+
* `zonedDateTime`. Constructing with `options` first surfaces the TypeError
|
|
34
|
+
* or RangeError Intl.DateTimeFormat raises for invalid ones.
|
|
35
|
+
*
|
|
36
|
+
* @param zonedDateTime the value in the zone it is rendered in
|
|
37
|
+
* @param locale BCP 47 locale, or `undefined` for the runtime default
|
|
38
|
+
* @param options caller's `Intl.DateTimeFormatOptions` without `timeZone`
|
|
39
|
+
* @param includeTimeZoneName `true` for the zoned path
|
|
40
|
+
* @returns the formatted text, not yet normalised
|
|
41
|
+
*/
|
|
42
|
+
export declare function formatWallClockOrZoned(zonedDateTime: Temporal.ZonedDateTime, locale: string | string[] | undefined, options: Options, includeTimeZoneName: boolean): string;
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Option resolution for formatting an exact time (a ZonedDateTime, or an
|
|
2
|
+
// Instant in a given zone) through the runtime's `Intl.DateTimeFormat`. The
|
|
3
|
+
// rules are the Temporal proposal's ECMA-402 amendments: CreateDateTimeFormat
|
|
4
|
+
// and GetDateTimeFormat with required ~any~ and inherit ~all~, so every caller
|
|
5
|
+
// field, including `era` and `timeZoneName`, is passed on unchanged.
|
|
6
|
+
import { plainDateTimeFormatOptions } from "./plainFormatOptions.js";
|
|
7
|
+
// GetDateTimeFormat requiredOptions for ~any~. `era` and `timeZoneName` are
|
|
8
|
+
// deliberately absent: neither suppresses the defaults.
|
|
9
|
+
const REQUIRED_FIELDS = [
|
|
10
|
+
"weekday",
|
|
11
|
+
"year",
|
|
12
|
+
"month",
|
|
13
|
+
"day",
|
|
14
|
+
"dayPeriod",
|
|
15
|
+
"hour",
|
|
16
|
+
"minute",
|
|
17
|
+
"second",
|
|
18
|
+
"fractionalSecondDigits",
|
|
19
|
+
];
|
|
20
|
+
const DEFAULT_FIELDS = {
|
|
21
|
+
year: "numeric",
|
|
22
|
+
month: "numeric",
|
|
23
|
+
day: "numeric",
|
|
24
|
+
hour: "numeric",
|
|
25
|
+
minute: "numeric",
|
|
26
|
+
second: "numeric",
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Resolve caller options into runtime `Intl.DateTimeFormat` options that
|
|
30
|
+
* format an exact time in `timeZone`.
|
|
31
|
+
*
|
|
32
|
+
* - Returns `null` when the caller passed a `timeZone` option: the value is
|
|
33
|
+
* formatted in its own zone, and `Temporal.ZonedDateTime#toLocaleString`
|
|
34
|
+
* throws a TypeError for one (CreateDateTimeFormat with
|
|
35
|
+
* toLocaleStringTimeZone).
|
|
36
|
+
* - With no date or time field and no `dateStyle`/`timeStyle`, year, month,
|
|
37
|
+
* day, hour, minute and second default to `"numeric"`. With `defaults`
|
|
38
|
+
* `"zoned-date-time"` (ZonedDateTime#toLocaleString) `timeZoneName` also
|
|
39
|
+
* defaults to `"short"`; with `"all"` (an Instant) it does not.
|
|
40
|
+
*
|
|
41
|
+
* @param options caller's `Intl.DateTimeFormatOptions`
|
|
42
|
+
* @param timeZone the zone the value is formatted in
|
|
43
|
+
* @param defaults GetDateTimeFormat defaults: `"zoned-date-time"` or `"all"`
|
|
44
|
+
* @returns runtime options in `timeZone`, or `null` for a `timeZone` option
|
|
45
|
+
*/
|
|
46
|
+
export function instantFormatOptions(options, timeZone, defaults) {
|
|
47
|
+
if (options.timeZone !== undefined)
|
|
48
|
+
return null;
|
|
49
|
+
const needDefaults = options.dateStyle === undefined &&
|
|
50
|
+
options.timeStyle === undefined &&
|
|
51
|
+
REQUIRED_FIELDS.every((field) => options[field] === undefined);
|
|
52
|
+
if (!needDefaults)
|
|
53
|
+
return { ...options, timeZone };
|
|
54
|
+
// Defaults spread after the caller's options: needDefaults guarantees every
|
|
55
|
+
// default field is undefined there, even when present as a key.
|
|
56
|
+
return {
|
|
57
|
+
...options,
|
|
58
|
+
...DEFAULT_FIELDS,
|
|
59
|
+
...(defaults === "zoned-date-time"
|
|
60
|
+
? {
|
|
61
|
+
timeZoneName: options.timeZoneName === undefined ? "short" : options.timeZoneName,
|
|
62
|
+
}
|
|
63
|
+
: {}),
|
|
64
|
+
timeZone,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Format an exact time as text, either as its wall clock (a PlainDateTime) or
|
|
69
|
+
* as a ZonedDateTime with its zone, through the runtime's
|
|
70
|
+
* `Intl.DateTimeFormat`. Shared by `formatUtc` and `formatUnix`.
|
|
71
|
+
*
|
|
72
|
+
* - The wall-clock path uses {@link plainDateTimeFormatOptions}
|
|
73
|
+
* (GetDateTimeFormat ~any~, ~all~, ~relevant~): `timeZoneName` is not
|
|
74
|
+
* inherited.
|
|
75
|
+
* - The zoned path uses {@link instantFormatOptions} with
|
|
76
|
+
* `"zoned-date-time"` defaults.
|
|
77
|
+
* - `options` must not carry a `timeZone`; the zone comes from
|
|
78
|
+
* `zonedDateTime`. Constructing with `options` first surfaces the TypeError
|
|
79
|
+
* or RangeError Intl.DateTimeFormat raises for invalid ones.
|
|
80
|
+
*
|
|
81
|
+
* @param zonedDateTime the value in the zone it is rendered in
|
|
82
|
+
* @param locale BCP 47 locale, or `undefined` for the runtime default
|
|
83
|
+
* @param options caller's `Intl.DateTimeFormatOptions` without `timeZone`
|
|
84
|
+
* @param includeTimeZoneName `true` for the zoned path
|
|
85
|
+
* @returns the formatted text, not yet normalised
|
|
86
|
+
*/
|
|
87
|
+
export function formatWallClockOrZoned(zonedDateTime, locale, options, includeTimeZoneName) {
|
|
88
|
+
new Intl.DateTimeFormat(locale, options);
|
|
89
|
+
if (includeTimeZoneName) {
|
|
90
|
+
const resolved = instantFormatOptions(options, zonedDateTime.timeZoneId, "zoned-date-time");
|
|
91
|
+
return resolved === null
|
|
92
|
+
? ""
|
|
93
|
+
: new Intl.DateTimeFormat(locale, resolved).format(zonedDateTime.epochMilliseconds);
|
|
94
|
+
}
|
|
95
|
+
const wallClockMilliseconds = zonedDateTime
|
|
96
|
+
.toPlainDateTime()
|
|
97
|
+
.toZonedDateTime("UTC").epochMilliseconds;
|
|
98
|
+
return new Intl.DateTimeFormat(locale, plainDateTimeFormatOptions(options)).format(wallClockMilliseconds);
|
|
99
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-serialise instant intervals to `Temporal.Instant.prototype.toString()` spelling.
|
|
3
|
+
*
|
|
4
|
+
* The CORE-6 `interval/` functions echo the caller's strings; the positional `utc/interval/`
|
|
5
|
+
* functions that delegate to them return canonical `Z` strings instead (CORE-8 half-open decisions of record:
|
|
6
|
+
* outputs stay re-serialised), so tie-breaks between spellings of one instant never surface.
|
|
7
|
+
*
|
|
8
|
+
* - Returns `null` if any string fails to parse (callers validate first, so only a throwing
|
|
9
|
+
* `Temporal.Instant.from` reaches this).
|
|
10
|
+
*
|
|
11
|
+
* @example canonicalInstantIntervals([{ start: "2024-01-01T09:00:00.000Z", end: "2024-01-01T12:00Z" }]) // [{ start: "2024-01-01T09:00:00Z", end: "2024-01-01T12:00:00Z" }]
|
|
12
|
+
* @example canonicalInstantIntervals([]) // []
|
|
13
|
+
*/
|
|
14
|
+
export declare function canonicalInstantIntervals(intervals: ReadonlyArray<{
|
|
15
|
+
start: string;
|
|
16
|
+
end: string;
|
|
17
|
+
}>): Array<{
|
|
18
|
+
start: string;
|
|
19
|
+
end: string;
|
|
20
|
+
}> | null;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
/**
|
|
3
|
+
* Re-serialise instant intervals to `Temporal.Instant.prototype.toString()` spelling.
|
|
4
|
+
*
|
|
5
|
+
* The CORE-6 `interval/` functions echo the caller's strings; the positional `utc/interval/`
|
|
6
|
+
* functions that delegate to them return canonical `Z` strings instead (CORE-8 half-open decisions of record:
|
|
7
|
+
* outputs stay re-serialised), so tie-breaks between spellings of one instant never surface.
|
|
8
|
+
*
|
|
9
|
+
* - Returns `null` if any string fails to parse (callers validate first, so only a throwing
|
|
10
|
+
* `Temporal.Instant.from` reaches this).
|
|
11
|
+
*
|
|
12
|
+
* @example canonicalInstantIntervals([{ start: "2024-01-01T09:00:00.000Z", end: "2024-01-01T12:00Z" }]) // [{ start: "2024-01-01T09:00:00Z", end: "2024-01-01T12:00:00Z" }]
|
|
13
|
+
* @example canonicalInstantIntervals([]) // []
|
|
14
|
+
*/
|
|
15
|
+
export function canonicalInstantIntervals(intervals) {
|
|
16
|
+
try {
|
|
17
|
+
return intervals.map(({ start, end }) => ({
|
|
18
|
+
start: Temporal.Instant.from(start).toString(),
|
|
19
|
+
end: Temporal.Instant.from(end).toString(),
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse an ISO 8601 instant string to epoch nanoseconds, or `null` when it is not one.
|
|
3
|
+
*
|
|
4
|
+
* The single definition of "an instant string GMT accepts": the RFC 9557 instant grammar
|
|
5
|
+
* `Temporal.Instant.from` parses, restricted to ISO 8601 extended format before the first `[`
|
|
6
|
+
* (`instantBody`: `<date>T<time>`, then `Z` or `±HH:MM[:SS[.fraction]]`), minus
|
|
7
|
+
* leap seconds (which Temporal clamps rather than rejects). Basic format, a space or lower-case
|
|
8
|
+
* `t` separator, a lower-case `z` and an hour-only time or offset are rejected. Annotations are read as Temporal reads them (proposal-temporal
|
|
9
|
+
* `ParseISODateTime`, RFC 9557 §3.3): a time zone, calendar (`[u-ca=hebrew]`) or elective
|
|
10
|
+
* (`[foo=bar]`) annotation is ignored, because an instant has neither zone nor calendar, and an
|
|
11
|
+
* unknown critical one (`[!foo=bar]`) is rejected. Callers layer their own sentinel on top —
|
|
12
|
+
* `toNanoseconds` returns `0n`, `spanNs` returns `null` — so the parse result stays unambiguous
|
|
13
|
+
* here.
|
|
14
|
+
*
|
|
15
|
+
* @param value candidate ISO 8601 instant string
|
|
16
|
+
* @returns nanoseconds since the Unix epoch, or null when `value` is not a valid instant
|
|
17
|
+
*
|
|
18
|
+
* @example parseInstantNanoseconds("1970-01-01T00:00:00Z") // 0n
|
|
19
|
+
* @example parseInstantNanoseconds("2016-12-31T23:59:60Z") // null — leap second
|
|
20
|
+
* @example parseInstantNanoseconds("2024-03-10T12:00:00") // null — no offset designator
|
|
21
|
+
* @example parseInstantNanoseconds("20240310T120000Z") // null — basic format
|
|
22
|
+
* @example parseInstantNanoseconds("2024-03-10T12:00:00z") // null — lower-case z
|
|
23
|
+
* @example parseInstantNanoseconds("1970-01-01T00:00:00Z[u-ca=hebrew]") // 0n — calendar annotation ignored
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseInstantNanoseconds(value: string): bigint | null;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { instantLeapSecond } from "../regex/leap-second.js";
|
|
3
|
+
import { hasInstantShape } from "./isoStringBody.js";
|
|
4
|
+
/**
|
|
5
|
+
* Parse an ISO 8601 instant string to epoch nanoseconds, or `null` when it is not one.
|
|
6
|
+
*
|
|
7
|
+
* The single definition of "an instant string GMT accepts": the RFC 9557 instant grammar
|
|
8
|
+
* `Temporal.Instant.from` parses, restricted to ISO 8601 extended format before the first `[`
|
|
9
|
+
* (`instantBody`: `<date>T<time>`, then `Z` or `±HH:MM[:SS[.fraction]]`), minus
|
|
10
|
+
* leap seconds (which Temporal clamps rather than rejects). Basic format, a space or lower-case
|
|
11
|
+
* `t` separator, a lower-case `z` and an hour-only time or offset are rejected. Annotations are read as Temporal reads them (proposal-temporal
|
|
12
|
+
* `ParseISODateTime`, RFC 9557 §3.3): a time zone, calendar (`[u-ca=hebrew]`) or elective
|
|
13
|
+
* (`[foo=bar]`) annotation is ignored, because an instant has neither zone nor calendar, and an
|
|
14
|
+
* unknown critical one (`[!foo=bar]`) is rejected. Callers layer their own sentinel on top —
|
|
15
|
+
* `toNanoseconds` returns `0n`, `spanNs` returns `null` — so the parse result stays unambiguous
|
|
16
|
+
* here.
|
|
17
|
+
*
|
|
18
|
+
* @param value candidate ISO 8601 instant string
|
|
19
|
+
* @returns nanoseconds since the Unix epoch, or null when `value` is not a valid instant
|
|
20
|
+
*
|
|
21
|
+
* @example parseInstantNanoseconds("1970-01-01T00:00:00Z") // 0n
|
|
22
|
+
* @example parseInstantNanoseconds("2016-12-31T23:59:60Z") // null — leap second
|
|
23
|
+
* @example parseInstantNanoseconds("2024-03-10T12:00:00") // null — no offset designator
|
|
24
|
+
* @example parseInstantNanoseconds("20240310T120000Z") // null — basic format
|
|
25
|
+
* @example parseInstantNanoseconds("2024-03-10T12:00:00z") // null — lower-case z
|
|
26
|
+
* @example parseInstantNanoseconds("1970-01-01T00:00:00Z[u-ca=hebrew]") // 0n — calendar annotation ignored
|
|
27
|
+
*/
|
|
28
|
+
export function parseInstantNanoseconds(value) {
|
|
29
|
+
if (typeof value !== "string") {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
if (instantLeapSecond.test(value) || !hasInstantShape(value)) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
return Temporal.Instant.from(value).epochNanoseconds;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import type { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import type { DateTimeUnit } from "../types/index.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Singular DateTimeUnit to its `Temporal.Duration` field name.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* -
|
|
8
|
-
*
|
|
9
|
-
* - Does NOT validate the unit — caller ensures it is a DateTimeUnit.
|
|
10
|
-
*
|
|
11
|
-
* @param source Temporal.ZonedDateTime to truncate
|
|
12
|
-
* @param unit DateTimeUnit to truncate to
|
|
13
|
-
* @returns Temporal.ZonedDateTime at the start of the specified unit
|
|
6
|
+
* Example lookups:
|
|
7
|
+
* - DURATION_FIELD_BY_UNIT.day => "days"
|
|
8
|
+
* - DURATION_FIELD_BY_UNIT.nanosecond => "nanoseconds"
|
|
14
9
|
*/
|
|
15
|
-
export declare
|
|
10
|
+
export declare const DURATION_FIELD_BY_UNIT: {
|
|
11
|
+
readonly year: "years";
|
|
12
|
+
readonly month: "months";
|
|
13
|
+
readonly week: "weeks";
|
|
14
|
+
readonly day: "days";
|
|
15
|
+
readonly hour: "hours";
|
|
16
|
+
readonly minute: "minutes";
|
|
17
|
+
readonly second: "seconds";
|
|
18
|
+
readonly millisecond: "milliseconds";
|
|
19
|
+
readonly microsecond: "microseconds";
|
|
20
|
+
readonly nanosecond: "nanoseconds";
|
|
21
|
+
};
|
|
16
22
|
/**
|
|
17
23
|
* Extract the whole-unit span from a `Temporal.Duration` measured with `largestUnit: unit`.
|
|
18
24
|
*
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* - DURATION_FIELD_BY_UNIT.day => "days"
|
|
6
6
|
* - DURATION_FIELD_BY_UNIT.nanosecond => "nanoseconds"
|
|
7
7
|
*/
|
|
8
|
-
const DURATION_FIELD_BY_UNIT = {
|
|
8
|
+
export const DURATION_FIELD_BY_UNIT = {
|
|
9
9
|
year: "years",
|
|
10
10
|
month: "months",
|
|
11
11
|
week: "weeks",
|
|
@@ -17,36 +17,6 @@ const DURATION_FIELD_BY_UNIT = {
|
|
|
17
17
|
microsecond: "microseconds",
|
|
18
18
|
nanosecond: "nanoseconds",
|
|
19
19
|
};
|
|
20
|
-
/**
|
|
21
|
-
* Return the start of the specified date-time `unit` for a `Temporal.ZonedDateTime`.
|
|
22
|
-
*
|
|
23
|
-
* - Always uses Monday as the week start (consistent with `startOfZoned` semantics).
|
|
24
|
-
* - Day-and-below units truncate by instant via `round({ roundingMode: "trunc" })`, which
|
|
25
|
-
* resolves DST correctly — a local day whose midnight is skipped starts at 01:00.
|
|
26
|
-
* - Does NOT validate the unit — caller ensures it is a DateTimeUnit.
|
|
27
|
-
*
|
|
28
|
-
* @param source Temporal.ZonedDateTime to truncate
|
|
29
|
-
* @param unit DateTimeUnit to truncate to
|
|
30
|
-
* @returns Temporal.ZonedDateTime at the start of the specified unit
|
|
31
|
-
*/
|
|
32
|
-
export function getStartOfZonedUnit(source, unit) {
|
|
33
|
-
switch (unit) {
|
|
34
|
-
case "year":
|
|
35
|
-
return source
|
|
36
|
-
.with({ month: 1, day: 1 })
|
|
37
|
-
.round({ smallestUnit: "day", roundingMode: "trunc" });
|
|
38
|
-
case "month":
|
|
39
|
-
return source
|
|
40
|
-
.with({ day: 1 })
|
|
41
|
-
.round({ smallestUnit: "day", roundingMode: "trunc" });
|
|
42
|
-
case "week":
|
|
43
|
-
return source
|
|
44
|
-
.subtract({ days: source.dayOfWeek - 1 })
|
|
45
|
-
.round({ smallestUnit: "day", roundingMode: "trunc" });
|
|
46
|
-
default:
|
|
47
|
-
return source.round({ smallestUnit: unit, roundingMode: "trunc" });
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
20
|
/**
|
|
51
21
|
* Extract the whole-unit span from a `Temporal.Duration` measured with `largestUnit: unit`.
|
|
52
22
|
*
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** An `Interval` parsed once: bigint epoch nanoseconds plus the exact strings they came from. */
|
|
2
|
+
export interface IntervalNanoseconds {
|
|
3
|
+
start: bigint;
|
|
4
|
+
end: bigint;
|
|
5
|
+
startText: string;
|
|
6
|
+
endText: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Parse a candidate `Interval` to epoch nanoseconds, or `null` when it is not one.
|
|
10
|
+
*
|
|
11
|
+
* - Any non-null object with ISO 8601 instant strings `start` ≤ `end` (by instant) is accepted;
|
|
12
|
+
* extra keys are ignored (GMT rule: the type is structural).
|
|
13
|
+
* - Each endpoint is read exactly once, so the validated text is the text callers echo.
|
|
14
|
+
*
|
|
15
|
+
* @param value candidate `{ start, end }` record
|
|
16
|
+
* @returns the parsed record, or null when `value` is not a valid `Interval`
|
|
17
|
+
*
|
|
18
|
+
* @example parseIntervalNanoseconds({ start: "1970-01-01T00:00:00Z", end: "1970-01-01T00:00:00.000000001Z" }) // { start: 0n, end: 1n, startText: "1970-01-01T00:00:00Z", endText: "1970-01-01T00:00:00.000000001Z" }
|
|
19
|
+
* @example parseIntervalNanoseconds({ start: "1970-01-01T00:00:01Z", end: "1970-01-01T00:00:00Z" }) // null — inverted
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseIntervalNanoseconds(value: unknown): IntervalNanoseconds | null;
|
|
22
|
+
/**
|
|
23
|
+
* Parse a list of candidate `Interval`s, all-or-nothing.
|
|
24
|
+
*
|
|
25
|
+
* @param values candidate array of `{ start, end }` records
|
|
26
|
+
* @returns the parsed records in input order, or null when `values` is not an array or any element is invalid
|
|
27
|
+
*
|
|
28
|
+
* @example parseIntervalNanosecondsList([]) // []
|
|
29
|
+
* @example parseIntervalNanosecondsList([null]) // null
|
|
30
|
+
*/
|
|
31
|
+
export declare function parseIntervalNanosecondsList(values: unknown): IntervalNanoseconds[] | null;
|
|
32
|
+
/**
|
|
33
|
+
* Sweep parsed intervals into sorted, disjoint, non-touching, non-empty runs.
|
|
34
|
+
*
|
|
35
|
+
* - Touching records coalesce (`start <= run.end`); a 1 ns gap does not.
|
|
36
|
+
* - Equal starts keep input order (stable sort), so a run keeps its first start text; the first
|
|
37
|
+
* record to reach the run's latest end keeps its end text (GMT rule: first wins ties).
|
|
38
|
+
* - Empty records that touch or fall inside a run are absorbed; a stranded one is dropped.
|
|
39
|
+
* - Runs are copies; the input records are never mutated.
|
|
40
|
+
*
|
|
41
|
+
* @param records parsed intervals, in any order
|
|
42
|
+
* @returns coalesced runs sorted by start
|
|
43
|
+
*
|
|
44
|
+
* @example coalesceIntervalNanoseconds([{ start: 3n, end: 5n, startText: "c", endText: "e" }, { start: 1n, end: 3n, startText: "a", endText: "c" }]) // [{ start: 1n, end: 5n, startText: "a", endText: "e" }]
|
|
45
|
+
* @example coalesceIntervalNanoseconds([{ start: 4n, end: 4n, startText: "d", endText: "d" }]) // []
|
|
46
|
+
*/
|
|
47
|
+
export declare function coalesceIntervalNanoseconds(records: readonly IntervalNanoseconds[]): IntervalNanoseconds[];
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { parseInstantNanoseconds } from "./instantNanoseconds.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse a candidate `Interval` to epoch nanoseconds, or `null` when it is not one.
|
|
4
|
+
*
|
|
5
|
+
* - Any non-null object with ISO 8601 instant strings `start` ≤ `end` (by instant) is accepted;
|
|
6
|
+
* extra keys are ignored (GMT rule: the type is structural).
|
|
7
|
+
* - Each endpoint is read exactly once, so the validated text is the text callers echo.
|
|
8
|
+
*
|
|
9
|
+
* @param value candidate `{ start, end }` record
|
|
10
|
+
* @returns the parsed record, or null when `value` is not a valid `Interval`
|
|
11
|
+
*
|
|
12
|
+
* @example parseIntervalNanoseconds({ start: "1970-01-01T00:00:00Z", end: "1970-01-01T00:00:00.000000001Z" }) // { start: 0n, end: 1n, startText: "1970-01-01T00:00:00Z", endText: "1970-01-01T00:00:00.000000001Z" }
|
|
13
|
+
* @example parseIntervalNanoseconds({ start: "1970-01-01T00:00:01Z", end: "1970-01-01T00:00:00Z" }) // null — inverted
|
|
14
|
+
*/
|
|
15
|
+
export function parseIntervalNanoseconds(value) {
|
|
16
|
+
if (typeof value !== "object" || value === null) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const { start: startText, end: endText } = value;
|
|
20
|
+
const start = parseInstantNanoseconds(startText);
|
|
21
|
+
const end = parseInstantNanoseconds(endText);
|
|
22
|
+
if (start === null || end === null || start > end) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
start,
|
|
27
|
+
end,
|
|
28
|
+
startText: startText,
|
|
29
|
+
endText: endText,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parse a list of candidate `Interval`s, all-or-nothing.
|
|
34
|
+
*
|
|
35
|
+
* @param values candidate array of `{ start, end }` records
|
|
36
|
+
* @returns the parsed records in input order, or null when `values` is not an array or any element is invalid
|
|
37
|
+
*
|
|
38
|
+
* @example parseIntervalNanosecondsList([]) // []
|
|
39
|
+
* @example parseIntervalNanosecondsList([null]) // null
|
|
40
|
+
*/
|
|
41
|
+
export function parseIntervalNanosecondsList(values) {
|
|
42
|
+
if (!Array.isArray(values)) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
const records = [];
|
|
46
|
+
for (let index = 0; index < values.length; index++) {
|
|
47
|
+
const record = parseIntervalNanoseconds(values[index]);
|
|
48
|
+
if (record === null) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
records.push(record);
|
|
52
|
+
}
|
|
53
|
+
return records;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Sweep parsed intervals into sorted, disjoint, non-touching, non-empty runs.
|
|
57
|
+
*
|
|
58
|
+
* - Touching records coalesce (`start <= run.end`); a 1 ns gap does not.
|
|
59
|
+
* - Equal starts keep input order (stable sort), so a run keeps its first start text; the first
|
|
60
|
+
* record to reach the run's latest end keeps its end text (GMT rule: first wins ties).
|
|
61
|
+
* - Empty records that touch or fall inside a run are absorbed; a stranded one is dropped.
|
|
62
|
+
* - Runs are copies; the input records are never mutated.
|
|
63
|
+
*
|
|
64
|
+
* @param records parsed intervals, in any order
|
|
65
|
+
* @returns coalesced runs sorted by start
|
|
66
|
+
*
|
|
67
|
+
* @example coalesceIntervalNanoseconds([{ start: 3n, end: 5n, startText: "c", endText: "e" }, { start: 1n, end: 3n, startText: "a", endText: "c" }]) // [{ start: 1n, end: 5n, startText: "a", endText: "e" }]
|
|
68
|
+
* @example coalesceIntervalNanoseconds([{ start: 4n, end: 4n, startText: "d", endText: "d" }]) // []
|
|
69
|
+
*/
|
|
70
|
+
export function coalesceIntervalNanoseconds(records) {
|
|
71
|
+
const sorted = [...records].sort((x, y) => x.start < y.start ? -1 : x.start > y.start ? 1 : 0);
|
|
72
|
+
const runs = [];
|
|
73
|
+
for (const record of sorted) {
|
|
74
|
+
const last = runs[runs.length - 1];
|
|
75
|
+
if (last !== undefined && record.start <= last.end) {
|
|
76
|
+
if (record.end > last.end) {
|
|
77
|
+
last.end = record.end;
|
|
78
|
+
last.endText = record.endText;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
runs.push({ ...record });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return runs.filter((run) => run.start < run.end);
|
|
86
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guard for a non-null object (arrays included), the shape an options bag or a props
|
|
3
|
+
* object must have before it is destructured. A default parameter covers only `undefined`, so a
|
|
4
|
+
* `null` or primitive argument reaches the destructure and throws `TypeError` without this check.
|
|
5
|
+
*
|
|
6
|
+
* @param value candidate
|
|
7
|
+
* @example isObject({ smallestUnit: "day" }) // true
|
|
8
|
+
* @example isObject(null) // false
|
|
9
|
+
* @example isObject("day") // false
|
|
10
|
+
* @returns whether `value` is a non-null object
|
|
11
|
+
*/
|
|
12
|
+
export declare function isObject(value: unknown): value is object;
|
|
13
|
+
/**
|
|
14
|
+
* Whether an `options` argument is acceptable under Temporal GetOptionsObject: omitted
|
|
15
|
+
* (`undefined`, the defaults) or an object. `null`, a string, a number or a boolean is a TypeError
|
|
16
|
+
* there, so a function that takes an options bag returns its sentinel for it rather than silently
|
|
17
|
+
* reading the defaults (e.g. a legacy positional unit string such as `"seconds"`).
|
|
18
|
+
*
|
|
19
|
+
* @param options the caller's options argument
|
|
20
|
+
* @example isOptionsArgument(undefined) // true
|
|
21
|
+
* @example isOptionsArgument({ overflow: "reject" }) // true
|
|
22
|
+
* @example isOptionsArgument(null) // false
|
|
23
|
+
* @example isOptionsArgument("seconds") // false
|
|
24
|
+
* @returns whether `options` is `undefined` or a non-null object
|
|
25
|
+
*/
|
|
26
|
+
export declare function isOptionsArgument(options: unknown): boolean;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guard for a non-null object (arrays included), the shape an options bag or a props
|
|
3
|
+
* object must have before it is destructured. A default parameter covers only `undefined`, so a
|
|
4
|
+
* `null` or primitive argument reaches the destructure and throws `TypeError` without this check.
|
|
5
|
+
*
|
|
6
|
+
* @param value candidate
|
|
7
|
+
* @example isObject({ smallestUnit: "day" }) // true
|
|
8
|
+
* @example isObject(null) // false
|
|
9
|
+
* @example isObject("day") // false
|
|
10
|
+
* @returns whether `value` is a non-null object
|
|
11
|
+
*/
|
|
12
|
+
export function isObject(value) {
|
|
13
|
+
return typeof value === "object" && value !== null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Whether an `options` argument is acceptable under Temporal GetOptionsObject: omitted
|
|
17
|
+
* (`undefined`, the defaults) or an object. `null`, a string, a number or a boolean is a TypeError
|
|
18
|
+
* there, so a function that takes an options bag returns its sentinel for it rather than silently
|
|
19
|
+
* reading the defaults (e.g. a legacy positional unit string such as `"seconds"`).
|
|
20
|
+
*
|
|
21
|
+
* @param options the caller's options argument
|
|
22
|
+
* @example isOptionsArgument(undefined) // true
|
|
23
|
+
* @example isOptionsArgument({ overflow: "reject" }) // true
|
|
24
|
+
* @example isOptionsArgument(null) // false
|
|
25
|
+
* @example isOptionsArgument("seconds") // false
|
|
26
|
+
* @returns whether `options` is `undefined` or a non-null object
|
|
27
|
+
*/
|
|
28
|
+
export function isOptionsArgument(options) {
|
|
29
|
+
return options === undefined || isObject(options);
|
|
30
|
+
}
|