@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
|
@@ -2,9 +2,20 @@
|
|
|
2
2
|
name: gmt-timezone
|
|
3
3
|
description: >
|
|
4
4
|
Timezone-aware operations — get zoned now, format zoned datetimes/ranges,
|
|
5
|
-
convert between plain↔zoned↔UTC↔Unix,
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
convert between plain↔zoned↔UTC↔Unix, DST disambiguation on construction and
|
|
6
|
+
arithmetic, the instant-plus-offset pair, classifying a zoneless wall time
|
|
7
|
+
before resolving it, real zone unit boundaries
|
|
8
|
+
(startOfZoned/endOfZoned/startOfUnix/endOfUnix), hours in a local day,
|
|
9
|
+
flooring or bucketing on local boundaries (floorToZone/bucketRange),
|
|
10
|
+
calendar-annotated zoned strings, zoned values at the range limits, the
|
|
11
|
+
transport legs transitTime, etaAtZone and dwellTime (local calendar days
|
|
12
|
+
crossed), intermodal free time — freeTimeExpiry (the free window and its
|
|
13
|
+
half-open expiry), chargeableDays (the dates charged, with tier bands),
|
|
14
|
+
demurrageClock (which events a demurrage, detention, storage or combined clock
|
|
15
|
+
runs between) — and billingTimeline (invoice, dispute and resolution
|
|
16
|
+
deadlines, windows as caller parameters). Reads the installed package
|
|
17
|
+
README.md and source JSDoc for API details; this skill is a routing pointer,
|
|
18
|
+
not an API dump.
|
|
8
19
|
sources:
|
|
9
20
|
- 'northguild/gmt:README.md'
|
|
10
21
|
- 'northguild/gmt:packages/gmt/src/zoned/get/index.ts'
|
|
@@ -14,14 +25,22 @@ sources:
|
|
|
14
25
|
- 'northguild/gmt:packages/gmt/src/zoned/validate/index.ts'
|
|
15
26
|
- 'northguild/gmt:packages/gmt/src/zoned/calculate/addZoned.ts'
|
|
16
27
|
- 'northguild/gmt:packages/gmt/src/zoned/calculate/startOfZoned.ts'
|
|
28
|
+
- 'northguild/gmt:packages/gmt/src/zoned/calculate/roundZoned.ts'
|
|
29
|
+
- 'northguild/gmt:packages/gmt/src/zoned/calculate/getHoursInZonedDay.ts'
|
|
17
30
|
- 'northguild/gmt:packages/gmt/src/zoned/calculate/clampZoned.ts'
|
|
18
31
|
- 'northguild/gmt:packages/gmt/src/unix/get/index.ts'
|
|
19
32
|
- 'northguild/gmt:packages/gmt/src/utc/get/index.ts'
|
|
20
33
|
- 'northguild/gmt:packages/gmt/src/utc/convert/index.ts'
|
|
34
|
+
- 'northguild/gmt:packages/gmt/src/instant/convert/index.ts'
|
|
35
|
+
- 'northguild/gmt:packages/gmt/src/calendar/calculate/index.ts'
|
|
36
|
+
- 'northguild/gmt:packages/gmt/src/calendar/validate/index.ts'
|
|
37
|
+
- 'northguild/gmt:packages/gmt/src/transport/calculate/index.ts'
|
|
38
|
+
- 'northguild/gmt:packages/gmt/src/transport/convert/index.ts'
|
|
39
|
+
- 'northguild/gmt:packages/gmt/src/intermodal/calculate/index.ts'
|
|
21
40
|
metadata:
|
|
22
41
|
type: core
|
|
23
42
|
library: '@northguild/gmt'
|
|
24
|
-
library_version: '1.
|
|
43
|
+
library_version: '1.17.0'
|
|
25
44
|
---
|
|
26
45
|
|
|
27
46
|
# GMT Timezone
|
|
@@ -36,27 +55,181 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
36
55
|
- The user needs to convert a plain datetime to a zoned instant, or between
|
|
37
56
|
timezones, or between UTC and Unix epochs.
|
|
38
57
|
- The user is adding/subtracting durations across a DST transition.
|
|
58
|
+
- The user has a timestamp that must keep the local offset it happened at, or a
|
|
59
|
+
local wall time that arrived with no offset at all.
|
|
60
|
+
- The user needs the start or end of a local hour, day, week, month or quarter.
|
|
61
|
+
- The user is grouping or aggregating UTC timestamps by local day, hour, week or
|
|
62
|
+
month — an observability rollup, a chargeable-days count.
|
|
63
|
+
- The user is adding a leg's transit time to a departure, showing an arrival in
|
|
64
|
+
the zone where it lands, or counting how long cargo, a vessel or a patient sat
|
|
65
|
+
somewhere in local calendar days.
|
|
66
|
+
- The user is working out when a container's free time ends, how many days of
|
|
67
|
+
demurrage or detention are chargeable and for which dates, or which events a
|
|
68
|
+
charge's clock runs between.
|
|
39
69
|
|
|
40
70
|
## Core rules
|
|
41
71
|
|
|
42
72
|
1. **Use IANA timezone ids, not raw offsets.** `"2024-03-15T14:30:45[America/New_York]"`
|
|
43
73
|
is correct; bare `"-05:00"` loses the zone and can't observe DST rules.
|
|
44
|
-
2. **DST disambiguation.** `convertPlainDateTimeToZoned`, `addZoned
|
|
45
|
-
|
|
46
|
-
`"later"` | `"reject"`) for gap/overlap resolution.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
`
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
74
|
+
2. **DST disambiguation.** `convertPlainDateTimeToZoned`, `addZoned` and
|
|
75
|
+
`setZoned` accept `disambiguation` (`"compatible"` | `"earlier"` |
|
|
76
|
+
`"later"` | `"reject"`) for gap/overlap resolution. On `addZoned`,
|
|
77
|
+
`subtractZoned` and `intervalFromDurationZoned` it follows TC39
|
|
78
|
+
AddZonedDateTime: the date part (years to days) moves the wall clock, the
|
|
79
|
+
time part (hours and smaller) is added in exact time, and `disambiguation`
|
|
80
|
+
resolves the wall clock the date part lands on, in a spring-forward gap or
|
|
81
|
+
a fall-back overlap: `"compatible"`/`"later"` move a gap landing forward,
|
|
82
|
+
`"earlier"` back, `"reject"` returns the sentinel. A time-only duration
|
|
83
|
+
ignores it, so `+ { minutes: 10 }` is always 10 real minutes.
|
|
84
|
+
3. **Boundaries are always the real zone boundary.** `startOfZoned`,
|
|
85
|
+
`endOfZoned`, `startOfQuarterForZoned`, `endOfQuarterForZoned`,
|
|
86
|
+
`getLocaleZonedStartOfWeek`, `getLocaleZonedEndOfWeek` and their `unix/`
|
|
87
|
+
counterparts (`startOfUnix`,
|
|
88
|
+
`endOfUnix`, …) return the real start and end of the unit that contains the
|
|
89
|
+
input: the start is never after the input, and the end is the last
|
|
90
|
+
nanosecond before the next start, printed at nanosecond precision by default
|
|
91
|
+
(`"…T23:59:59.999999999…"`); pass `fractionalSecondDigits: 0` for the shorter
|
|
92
|
+
pre-1.16.0 string. `Pacific/Chatham`'s 03:00 hour on its
|
|
93
|
+
spring-forward begins at 03:45, and New York's repeated 1 a.m. is its own
|
|
94
|
+
hour. `areZonedEqualBy`/`areUnixEqualBy` compare these boundary instants, so
|
|
95
|
+
the two passes of a repeated hour are not equal. A day whose midnight repeats
|
|
96
|
+
on the same date (America/Havana, 2024-11-03) is one 25-hour day.
|
|
97
|
+
`getHoursInZonedDay` and `mapZonedHoursInDay` measure the input's calendar
|
|
98
|
+
date via TC39 `hoursInDay`; that differs from `startOfZoned(…, "day")` only
|
|
99
|
+
where a fall-back re-enters the previous date (America/Goose_Bay,
|
|
100
|
+
2010-11-07).
|
|
101
|
+
4. **Boundary functions take no `disambiguation` or `offset`.** They match
|
|
102
|
+
TC39 `startOfDay()`, which takes no such options. Resolution options belong on
|
|
103
|
+
functions that set wall-clock fields —
|
|
104
|
+
`convertPlainDateTimeToZoned`, `resolveLocal`, `addZoned`, `setZoned`.
|
|
105
|
+
5. **Classify a zoneless wall time before resolving it.** `classifyLocal(local,
|
|
106
|
+
zone)` returns `"unique"` | `"ambiguous"` | `"nonexistent"` so code can branch
|
|
107
|
+
rather than accept a policy — 01:30 happens twice on a fall-back day and never
|
|
108
|
+
on a spring-forward one. `resolveLocal(local, zone, { disambiguation })` then
|
|
109
|
+
returns the instant, exact to the nanosecond, or `""` under `"reject"`. Reach
|
|
110
|
+
for `convertPlainDateTimeToZoned` instead when you want the zoned string.
|
|
111
|
+
6. **An offset is not a zone.** `-05:00` does not identify `America/New_York`.
|
|
112
|
+
`toOffsetInstant` splits a timestamp into `{ instant, offset, timeZone? }` —
|
|
113
|
+
the shape EPCIS 2.0, EDIFACT DTM and DICOM all exchange, because the instant
|
|
114
|
+
orders events and the offset renders them where they happened, and neither
|
|
115
|
+
derives from the other. Keep the zone for what is still to be scheduled.
|
|
116
|
+
7. **Bucket in the zone, not in UTC.** `floorToZone(instant, unit, zone)` and
|
|
117
|
+
`bucketRange(start, end, unit, zone)` floor on the zone's own calendar
|
|
118
|
+
boundaries. Flooring a UTC instant to a UTC day and calling it a local day is
|
|
119
|
+
wrong for most of the world for most of the day. The buckets are deliberately
|
|
120
|
+
not uniform: a day that springs forward is 23 hours and one that falls back is
|
|
121
|
+
25, and forcing 24 is what makes a daily aggregate drift.
|
|
122
|
+
`intervalCountZoned`/`intervalCountUnix`/`intervalCountUtc` count exactly
|
|
123
|
+
the buckets `bucketRange` returns.
|
|
124
|
+
8. **`roundZoned`/`roundUnix` are not a floor.** They follow TC39
|
|
125
|
+
`ZonedDateTime.round`, which rounds the wall clock and re-resolves it in the
|
|
126
|
+
zone, so `roundingMode: "trunc"` can land after the input:
|
|
127
|
+
`"2024-09-29T03:50:00+13:45[Pacific/Chatham]"` truncated to the hour gives
|
|
128
|
+
04:00. Never truncate-and-re-resolve (`round` with `"trunc"`, or `.with()`
|
|
129
|
+
on the wall clock) to find a zoned boundary — use `floorToZone` or
|
|
130
|
+
`startOfZoned` with no options.
|
|
131
|
+
9. **Hours in a day come from the zone.** `getHoursInZonedDay` is Temporal's
|
|
132
|
+
`hoursInDay`: 23 on a spring-forward day, 25 on a fall-back day, 23.5 in
|
|
133
|
+
`Australia/Lord_Howe`, and 23 on a day whose midnight is skipped
|
|
134
|
+
(`America/Santiago`, 2024-09-08). `mapZonedHoursInDay` stops at the next
|
|
135
|
+
local day.
|
|
136
|
+
10. **Calendar annotations.** A calendar-annotated zoned string is RFC 9557,
|
|
137
|
+
`Temporal.ZonedDateTime#toString()`: ISO digits, then `[timeZone]`, then
|
|
138
|
+
`[u-ca=<id>]` (`"2024-10-03T14:30:45-04:00[America/New_York][u-ca=hebrew]"`).
|
|
139
|
+
A calendar annotation before the zone is rejected. Only `addZoned`, `subtractZoned`,
|
|
140
|
+
`diffZoned`, `diffZonedAsDuration`, `convertZonedToCalendar`,
|
|
141
|
+
`isValidCalendarZonedDateTime` and `zoned/interval/*` (including
|
|
142
|
+
`isValidCalendarZonedInterval`) accept it; everything else rejects it and
|
|
143
|
+
returns its invalid-input sentinel — `""` for a string result, `null` for a
|
|
144
|
+
number, `[]` for a list, and `false` for a validator or predicate such as
|
|
145
|
+
`isValidZonedDateTime` or `isBeforeZoned`. Always produce these with
|
|
146
|
+
`convertZonedToCalendar`. Calendar ids are the canonical Temporal ids (see
|
|
147
|
+
the `gmt-arithmetic` skill), and `[!u-ca=…]` is accepted wherever
|
|
148
|
+
`[u-ca=…]` is. Differences between values naming different calendars
|
|
149
|
+
return the sentinel for every unit, hours included.
|
|
150
|
+
11. **Zoned values are exact at the range limits.** In zones ahead of UTC,
|
|
151
|
+
`isValidZonedDateTime("+275760-09-13T10:00:00+10:00[Australia/Sydney]")`
|
|
152
|
+
is `true` and one nanosecond later is `false`. Parsing, arithmetic,
|
|
153
|
+
boundaries, differences and `relativeTo` totals all work there.
|
|
154
|
+
Daylight-saving rules hold to the end: `America/Santiago`'s
|
|
155
|
+
`+275760-09-07` is a 23-hour day. At the first instant in a zone behind
|
|
156
|
+
UTC, an offset-less wall clock (`"-271821-04-19T12:00:00[Etc/GMT+12]"`)
|
|
157
|
+
resolves. The same string with its `-12:00` offset returns the sentinel,
|
|
158
|
+
because TC39 checks that local date against the day range.
|
|
159
|
+
12. **Zoned differences count calendar units on the wall clock.** `diffZoned`,
|
|
160
|
+
`diffZonedAsDuration` and `intervalLengthZoned` follow TC39
|
|
161
|
+
DifferenceZonedDateTime: days, weeks, months and years are counted on the
|
|
162
|
+
zone's wall clock (noon to noon across a 23-hour day is `1` day), and hours
|
|
163
|
+
and smaller are exact time. Two values in different zones have no shared
|
|
164
|
+
wall clock, so a calendar unit returns `null`/`""`; hours still work.
|
|
165
|
+
Convert both ends to one zone with `convertZonedToZoned` first, or diff the
|
|
166
|
+
UTC instants with `diffUtc` if UTC days are what you mean.
|
|
167
|
+
`intervalOverlappingDaysZoned`/`intervalOverlappingDaysUnix` count the
|
|
168
|
+
distinct local dates the overlap touches: a deleted day is not counted, and a
|
|
169
|
+
fall-back into the previous date counts that date.
|
|
170
|
+
13. **Zone names and leap seconds.** Every IANA name is a zone, including
|
|
171
|
+
single-component links (`Japan`, `Zulu`, `EST5EDT`), in any case.
|
|
172
|
+
`toOffsetInstant` returns IANA casing (`"america/new_york"` gives
|
|
173
|
+
`"America/New_York"`). `:60` is invalid in every spelling (`T`, `t`, space,
|
|
174
|
+
basic format) and every zoned function returns its sentinel for it rather
|
|
175
|
+
than reading `:59`.
|
|
176
|
+
14. **A zoned value formats in its own zone.** `formatZonedDateTime`,
|
|
177
|
+
`formatZonedRange` and `formatZonedToParts` return `""`/`[]` for a
|
|
178
|
+
`timeZone` option. To show an instant in another zone, use
|
|
179
|
+
`formatUtc(convertZonedToUtc(value), locale, { timeZone })`.
|
|
180
|
+
15. **Transport legs are exact time; dwell is counted in local days.**
|
|
181
|
+
`transitTime(departure, duration)` adds hours, minutes and seconds as
|
|
182
|
+
elapsed time (`P1D` is 24 exact hours) in the departure's own zone, so a leg
|
|
183
|
+
across a DST transition lands at the wall time the vehicle really arrives;
|
|
184
|
+
years, months and weeks return `""`, and a bracketed zone that contradicts
|
|
185
|
+
its offset is rejected rather than reinterpreted. `etaAtZone(instant, zone)`
|
|
186
|
+
renders a moment in the zone the caller names — no disambiguation arises,
|
|
187
|
+
the offset in the result tells the two passes of a fall-back hour apart, and
|
|
188
|
+
GMT never resolves a port, airport or station code to a zone.
|
|
189
|
+
`dwellTime(entry, exit, targetZone?)` returns `{ duration, enter, exit,
|
|
190
|
+
calendarDays }`; `calendarDays` is the number of distinct local dates the
|
|
191
|
+
half-open `[entry, exit)` touches, walked across the zone's real transitions
|
|
192
|
+
(a skipped date is not counted, a re-entered one only once), and is the
|
|
193
|
+
library's one "local days crossed" count.
|
|
194
|
+
Bare instants with no `targetZone` return `null`: an offset is not a place.
|
|
195
|
+
16. **Free time is counted in the terminal's local days; the start day and the
|
|
196
|
+
basis are tariff terms, never defaults.**
|
|
197
|
+
`freeTimeExpiry(clockStart, freeDays, { basis, timeZone, firstDay, calendar? })`
|
|
198
|
+
returns `{ freeTimeStart, lastFreeDay, expiresAt }`: local dates in
|
|
199
|
+
`timeZone`, and the first instant of the day after the last free day.
|
|
200
|
+
`firstDay` (`"eventDay"` | `"nextDay"`) has no default because the two
|
|
201
|
+
differ by a day of charges; `basis: "working"` needs a `BusinessCalendar`
|
|
202
|
+
and returns `null` without one. `chargeableDays(clockStart, clockEnd,
|
|
203
|
+
freeDays, options)` also needs `chargeBasis` (no default): many tariffs
|
|
204
|
+
count both in calendar days; where a tariff grants free time in working
|
|
205
|
+
days the days after it are mostly charged as calendar days, and some
|
|
206
|
+
tariffs charge working days only. It counts the days on or after
|
|
207
|
+
`expiresAt` the half-open dwell touched, lists them as `chargedDates`, and
|
|
208
|
+
splits them into `tiers` bands; `freeDays: 0` is allowed there.
|
|
209
|
+
`demurrageClock(events, scope, { direction, startEvent? })` selects the
|
|
210
|
+
events per leg: import demurrage and storage run discharge (or
|
|
211
|
+
availability) to gate-out, detention gate-out to empty return; export
|
|
212
|
+
demurrage gate-in to loaded, detention empty release to gate-in; `combined`
|
|
213
|
+
runs both as one period. No standard fixes how these days are counted;
|
|
214
|
+
every term is the tariff's.
|
|
215
|
+
17. **Billing deadlines are dates counted from an anchor, and every window is
|
|
216
|
+
the caller's.** `billingTimeline({ anchorOn, invoiceIssuedOn?,
|
|
217
|
+
requestReceivedOn? }, { issueDays, disputeDays, resolutionDays,
|
|
218
|
+
agreedResolutionOn? })` returns `{ invoiceDeadline, issuedByDeadline,
|
|
219
|
+
disputeDeadline, requestedByDeadline, resolutionDeadline }`. Day zero is
|
|
220
|
+
the anchor and each deadline is `date + days` on the ISO calendar; a date
|
|
221
|
+
is by the deadline when it is on or before it. No window has a default (a
|
|
222
|
+
missing one returns `null`); fields whose input does not exist yet are
|
|
223
|
+
`null`, so an anchor alone is a forecast. The anchor is whatever date the
|
|
224
|
+
caller counts from: the last charged date
|
|
225
|
+
(`chargedDates.at(-1)`), or for a re-bill the issuance date of the invoice
|
|
226
|
+
received. Reduce an instant to the billing party's local date first with
|
|
227
|
+
`convertUtcToPlainDate(instant, { timeZone })`. A request before its
|
|
228
|
+
invoice, or an agreed date before the request, returns `null`. GMT
|
|
229
|
+
computes dates, not liability.
|
|
230
|
+
18. **Read the README.** This skill is a routing pointer. For the full DST
|
|
231
|
+
disambiguation walkthrough, code examples, and locale ICU notes, read the
|
|
232
|
+
installed package's `README.md` and the source JSDoc.
|
|
60
233
|
|
|
61
234
|
## Key functions
|
|
62
235
|
|
|
@@ -69,12 +242,23 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
69
242
|
`convertUtcToZoned`, `convertZonedToUtc`, `convertZonedToCalendar`,
|
|
70
243
|
`convertUtcToUnix`, `convertUnixToUtc`
|
|
71
244
|
- **Arithmetic (with disambiguation)**: `addZoned`, `subtractZoned`, `clampZoned`,
|
|
72
|
-
`closestZonedTo`, `
|
|
73
|
-
|
|
245
|
+
`closestZonedTo`, `setZoned`, `cycleZoned`, `roundZoned`
|
|
246
|
+
- **Boundaries (real by default)**: `startOfZoned`, `endOfZoned`,
|
|
247
|
+
`startOfQuarterForZoned`, `endOfQuarterForZoned`,
|
|
248
|
+
`getLocaleZonedStartOfWeek`, `getLocaleZonedEndOfWeek`, `startOfUnix`,
|
|
249
|
+
`endOfUnix`, `mapZonedHoursInDay`, `getHoursInZonedDay`
|
|
74
250
|
- **Offset/DST reads**: `getZonedOffset`, `getZonedOffsetAs`,
|
|
75
|
-
`getTimeZoneOffset`, `
|
|
251
|
+
`getTimeZoneOffset`, `parseTimeZoneFromZoned`
|
|
252
|
+
- **Offset-preserving instants**: `toOffsetInstant`, `fromOffsetInstant`
|
|
253
|
+
- **Local-time resolution**: `classifyLocal`, `resolveLocal`
|
|
254
|
+
- **Zone-aware buckets**: `floorToZone`, `bucketRange`,
|
|
255
|
+
`isValidZoneBucketUnit`
|
|
256
|
+
- **Transport legs and dwell**: `transitTime`, `etaAtZone`, `dwellTime`
|
|
257
|
+
- **Free time and demurrage**: `freeTimeExpiry`, `chargeableDays`,
|
|
258
|
+
`demurrageClock`
|
|
259
|
+
- **Billing deadlines**: `billingTimeline`
|
|
76
260
|
|
|
77
261
|
## References
|
|
78
262
|
|
|
79
263
|
- [README — Timezone and Calendar examples](README.md)
|
|
80
|
-
- [DST Disambiguation guide](https://gmt-dox.northguild.workers.dev/
|
|
264
|
+
- [DST Disambiguation guide](https://gmt-dox.northguild.workers.dev/guides/concepts/dst-disambiguation/)
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
function getStep(date, direction) {
|
|
2
|
-
return direction === 1 ? date.add({ days: 1 }) : date.subtract({ days: 1 });
|
|
3
|
-
}
|
|
4
|
-
export function advanceBusinessDays(start, direction, target) {
|
|
5
|
-
const advance = (date, remaining) => {
|
|
6
|
-
if (remaining === 0)
|
|
7
|
-
return date;
|
|
8
|
-
const next = getStep(date, direction);
|
|
9
|
-
if (next.dayOfWeek >= 1 && next.dayOfWeek <= 5) {
|
|
10
|
-
return advance(next, remaining - 1);
|
|
11
|
-
}
|
|
12
|
-
return advance(next, remaining);
|
|
13
|
-
};
|
|
14
|
-
return advance(start, target);
|
|
15
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
export type EthiopicFamilyCalendar = "ethiopic" | "ethiopic-amete-alem" | "coptic";
|
|
3
|
-
export declare function isEthiopicFamilyCalendar(value: string): value is EthiopicFamilyCalendar;
|
|
4
|
-
export interface EthiopicFamilyFields {
|
|
5
|
-
year: number;
|
|
6
|
-
era?: "ethioaa" | "ethiopic";
|
|
7
|
-
eraYear?: number;
|
|
8
|
-
month: number;
|
|
9
|
-
day: number;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Derive an Ethiopic-family calendar's native year/month/day (+ era, for "ethiopic") from a
|
|
13
|
-
* Temporal.PlainDate, via Temporal's ICU-independent "ethioaa" calendar rather than the
|
|
14
|
-
* target's own native calendar id. See the module comment above for why.
|
|
15
|
-
*/
|
|
16
|
-
export declare function ethiopicFamilyFieldsFromDate(date: Temporal.PlainDate, calendar: EthiopicFamilyCalendar): EthiopicFamilyFields;
|
|
17
|
-
/**
|
|
18
|
-
* Construct a Temporal.PlainDate from an Ethiopic-family calendar's native fields, backed
|
|
19
|
-
* by Temporal's "ethioaa" calendar rather than the target's own native calendar id. Throws
|
|
20
|
-
* on an unrecognized era or a missing required field — callers wrap this in try-catch per
|
|
21
|
-
* GMT's sentinel-return contract. See the module comment above for why.
|
|
22
|
-
*/
|
|
23
|
-
export declare function dateFromEthiopicFamilyFields(calendar: EthiopicFamilyCalendar, fields: {
|
|
24
|
-
year?: number;
|
|
25
|
-
era?: string;
|
|
26
|
-
eraYear?: number;
|
|
27
|
-
month: number;
|
|
28
|
-
day: number;
|
|
29
|
-
}): Temporal.PlainDate;
|
|
30
|
-
/**
|
|
31
|
-
* Split a Temporal.PlainDate into GMT's calendar-annotated string halves for an Ethiopic-family
|
|
32
|
-
* calendar, mirroring `calendarDateParts`' shape for the rest of the calendar systems but
|
|
33
|
-
* routed entirely through `ethiopicFamilyFieldsFromDate` — see the module comment above.
|
|
34
|
-
*
|
|
35
|
-
* Returned as `{ date, annotation }` rather than one string so the zoned grammar can splice its
|
|
36
|
-
* time/offset between the two halves — see `calendarDateParts`' doc comment for why.
|
|
37
|
-
*/
|
|
38
|
-
export declare function ethiopicFamilyDateParts(date: Temporal.PlainDate, calendar: EthiopicFamilyCalendar): {
|
|
39
|
-
date: string;
|
|
40
|
-
annotation: string;
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Format a Temporal.PlainDate as GMT's calendar-annotated string for an Ethiopic-family
|
|
44
|
-
* calendar, mirroring `formatCalendarDate`'s shape for the rest of the calendar systems but
|
|
45
|
-
* routed entirely through `ethiopicFamilyFieldsFromDate` — see the module comment above.
|
|
46
|
-
*/
|
|
47
|
-
export declare function formatEthiopicFamilyDate(date: Temporal.PlainDate, calendar: EthiopicFamilyCalendar): string;
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
export function isEthiopicFamilyCalendar(value) {
|
|
3
|
-
return (value === "ethiopic" ||
|
|
4
|
-
value === "ethiopic-amete-alem" ||
|
|
5
|
-
value === "coptic");
|
|
6
|
-
}
|
|
7
|
-
// @js-temporal/polyfill@0.5.1's "ethiopic" and "coptic" calendar ids resolve year/era by
|
|
8
|
-
// formatting the date through Intl.DateTimeFormat and matching the resulting era part
|
|
9
|
-
// against a hardcoded era-name table (its HelperBase.isoToCalendarDate — used because,
|
|
10
|
-
// unlike "ethioaa", these two calendars aren't a fixed year-offset from ISO, so the
|
|
11
|
-
// polyfill can't compute them with pure arithmetic the way it does for "ethioaa"). CLDR's
|
|
12
|
-
// era abbreviation for both calendars changed at the ICU 78 boundary, not at any particular
|
|
13
|
-
// Node major version: ICU < 78 emits an era string the polyfill's table matches; ICU >= 78
|
|
14
|
-
// emits "am", which isn't in that table. This is a real trap for "which Node am I on" bug
|
|
15
|
-
// hunting — ICU 78 ships in *both* Node 22 and Node 24 (confirmed directly against a Node 20 /
|
|
16
|
-
// ICU 78.2 environment during E5, issue #78, where the bug reproduces despite being on Node
|
|
17
|
-
// 20 — an earlier draft of this comment wrongly pinned the boundary to "Node 24"). The result
|
|
18
|
-
// is that *every* read or write of Temporal's "ethiopic"/"coptic" calendar ids throws a
|
|
19
|
-
// RangeError under ICU >= 78 (verified directly — this isn't a hypothetical). "ethioaa" (Ethiopic Amete Alem)
|
|
20
|
-
// has no era at all — a single continuous count from a fixed epoch — so the polyfill
|
|
21
|
-
// resolves it with pure arithmetic and never touches Intl, making it stable across Node
|
|
22
|
-
// versions. This module uses "ethioaa" as a computation carrier for the whole Ethiopic
|
|
23
|
-
// family: month/day are identical across all three (they share one annual 13-month cycle),
|
|
24
|
-
// so only the displayed year (+ era, for "ethiopic") needs converting, which this module
|
|
25
|
-
// does with GMT-owned arithmetic instead of ever constructing or reading a Temporal
|
|
26
|
-
// PlainDate calendared as "ethiopic" or "coptic".
|
|
27
|
-
//
|
|
28
|
-
// The two constants below are ported from the same source file
|
|
29
|
-
// (@js-temporal/polyfill/lib/calendar.ts)'s EthiopicHelper/CopticHelper definitions, not
|
|
30
|
-
// independently derived: the Amete Mihret ("ethiopic") era begins at ethioaa proleptic year
|
|
31
|
-
// 5501 (EthiopicHelper's `anchorEpoch: { year: 5501 }`), and Coptic's own epoch
|
|
32
|
-
// (0284-08-29) falls 5776 ethioaa years after ethioaa's epoch (-005492-07-17) — both
|
|
33
|
-
// verified against the polyfill's own output across a spread of dates spanning multiple
|
|
34
|
-
// centuries and both 13th-month lengths before being hardcoded here.
|
|
35
|
-
const ETHIOPIC_ERA_ANCHOR_ETHIOAA_YEAR = 5501;
|
|
36
|
-
const COPTIC_ETHIOAA_YEAR_OFFSET = 5776;
|
|
37
|
-
/**
|
|
38
|
-
* Derive an Ethiopic-family calendar's native year/month/day (+ era, for "ethiopic") from a
|
|
39
|
-
* Temporal.PlainDate, via Temporal's ICU-independent "ethioaa" calendar rather than the
|
|
40
|
-
* target's own native calendar id. See the module comment above for why.
|
|
41
|
-
*/
|
|
42
|
-
export function ethiopicFamilyFieldsFromDate(date, calendar) {
|
|
43
|
-
const { year: ethioaaYear, month, day } = date.withCalendar("ethioaa");
|
|
44
|
-
if (calendar === "ethiopic-amete-alem") {
|
|
45
|
-
return { year: ethioaaYear, month, day };
|
|
46
|
-
}
|
|
47
|
-
if (calendar === "coptic") {
|
|
48
|
-
return { year: ethioaaYear - COPTIC_ETHIOAA_YEAR_OFFSET, month, day };
|
|
49
|
-
}
|
|
50
|
-
if (ethioaaYear >= ETHIOPIC_ERA_ANCHOR_ETHIOAA_YEAR) {
|
|
51
|
-
return {
|
|
52
|
-
year: ethioaaYear,
|
|
53
|
-
era: "ethiopic",
|
|
54
|
-
eraYear: ethioaaYear - (ETHIOPIC_ERA_ANCHOR_ETHIOAA_YEAR - 1),
|
|
55
|
-
month,
|
|
56
|
-
day,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
year: ethioaaYear,
|
|
61
|
-
era: "ethioaa",
|
|
62
|
-
eraYear: ethioaaYear,
|
|
63
|
-
month,
|
|
64
|
-
day,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Construct a Temporal.PlainDate from an Ethiopic-family calendar's native fields, backed
|
|
69
|
-
* by Temporal's "ethioaa" calendar rather than the target's own native calendar id. Throws
|
|
70
|
-
* on an unrecognized era or a missing required field — callers wrap this in try-catch per
|
|
71
|
-
* GMT's sentinel-return contract. See the module comment above for why.
|
|
72
|
-
*/
|
|
73
|
-
export function dateFromEthiopicFamilyFields(calendar, fields) {
|
|
74
|
-
let ethioaaYear;
|
|
75
|
-
if (calendar === "ethiopic-amete-alem" || calendar === "coptic") {
|
|
76
|
-
if (fields.year === undefined) {
|
|
77
|
-
throw new RangeError(`${calendar} requires a year`);
|
|
78
|
-
}
|
|
79
|
-
ethioaaYear =
|
|
80
|
-
calendar === "coptic"
|
|
81
|
-
? fields.year + COPTIC_ETHIOAA_YEAR_OFFSET
|
|
82
|
-
: fields.year;
|
|
83
|
-
}
|
|
84
|
-
else if (fields.era === "ethioaa" || fields.era === "ethiopic") {
|
|
85
|
-
if (fields.eraYear === undefined) {
|
|
86
|
-
throw new RangeError("ethiopic requires an eraYear");
|
|
87
|
-
}
|
|
88
|
-
ethioaaYear =
|
|
89
|
-
fields.era === "ethioaa"
|
|
90
|
-
? fields.eraYear
|
|
91
|
-
: fields.eraYear + (ETHIOPIC_ERA_ANCHOR_ETHIOAA_YEAR - 1);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
throw new RangeError(`Unknown ethiopic era: ${fields.era}`);
|
|
95
|
-
}
|
|
96
|
-
return Temporal.PlainDate.from({
|
|
97
|
-
year: ethioaaYear,
|
|
98
|
-
month: fields.month,
|
|
99
|
-
day: fields.day,
|
|
100
|
-
calendar: "ethioaa",
|
|
101
|
-
}, { overflow: "reject" });
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Split a Temporal.PlainDate into GMT's calendar-annotated string halves for an Ethiopic-family
|
|
105
|
-
* calendar, mirroring `calendarDateParts`' shape for the rest of the calendar systems but
|
|
106
|
-
* routed entirely through `ethiopicFamilyFieldsFromDate` — see the module comment above.
|
|
107
|
-
*
|
|
108
|
-
* Returned as `{ date, annotation }` rather than one string so the zoned grammar can splice its
|
|
109
|
-
* time/offset between the two halves — see `calendarDateParts`' doc comment for why.
|
|
110
|
-
*/
|
|
111
|
-
export function ethiopicFamilyDateParts(date, calendar) {
|
|
112
|
-
const fields = ethiopicFamilyFieldsFromDate(date, calendar);
|
|
113
|
-
const month = String(fields.month).padStart(2, "0");
|
|
114
|
-
const day = String(fields.day).padStart(2, "0");
|
|
115
|
-
if (calendar === "ethiopic") {
|
|
116
|
-
const eraYear = String(fields.eraYear).padStart(4, "0");
|
|
117
|
-
return {
|
|
118
|
-
date: `${eraYear}-${month}-${day}`,
|
|
119
|
-
annotation: `[u-ca=ethiopic;era=${fields.era}]`,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
const year = String(fields.year).padStart(4, "0");
|
|
123
|
-
return {
|
|
124
|
-
date: `${year}-${month}-${day}`,
|
|
125
|
-
annotation: `[u-ca=${calendar}]`,
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Format a Temporal.PlainDate as GMT's calendar-annotated string for an Ethiopic-family
|
|
130
|
-
* calendar, mirroring `formatCalendarDate`'s shape for the rest of the calendar systems but
|
|
131
|
-
* routed entirely through `ethiopicFamilyFieldsFromDate` — see the module comment above.
|
|
132
|
-
*/
|
|
133
|
-
export function formatEthiopicFamilyDate(date, calendar) {
|
|
134
|
-
const { date: datePart, annotation } = ethiopicFamilyDateParts(date, calendar);
|
|
135
|
-
return `${datePart}${annotation}`;
|
|
136
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve the minimum number of days a week must have in January for that
|
|
3
|
-
* week to count as a locale's week 1, via `Intl.Locale.prototype.weekInfo`.
|
|
4
|
-
*
|
|
5
|
-
* - Returns `null` if `locale` is not a valid BCP 47 tag.
|
|
6
|
-
* - Falls back to `4` (matching ISO 8601's rule — week 1 is the first
|
|
7
|
-
* week with at least 4 days in January, equivalently the week
|
|
8
|
-
* containing Jan 4) if `weekInfo` is unavailable on the runtime (older
|
|
9
|
-
* engines) or unresolvable for the given locale. This mirrors
|
|
10
|
-
* `getLocaleFirstDayOfWeek`'s fallback-to-ISO-default pattern.
|
|
11
|
-
* - Observed on Node 24 (V8/ICU 78): `weekInfo` omits `minimalDays`
|
|
12
|
-
* entirely, for every locale, even though Node 20/22 (ICU 77) populate
|
|
13
|
-
* it — so this fallback engages universally on that runtime rather
|
|
14
|
-
* than only for locales missing data. `getLocaleWeekYear` and
|
|
15
|
-
* `getWeeksInLocaleWeekYear` therefore lose locale-specific
|
|
16
|
-
* minimal-days behavior (silently degrading to the ISO value) on
|
|
17
|
-
* runtimes where the engine doesn't expose it, which is worth knowing
|
|
18
|
-
* before treating a Node-version-only test failure as a real bug.
|
|
19
|
-
*/
|
|
20
|
-
export declare function getLocaleMinimalDaysInFirstWeek(locale: string): number | null;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve the minimum number of days a week must have in January for that
|
|
3
|
-
* week to count as a locale's week 1, via `Intl.Locale.prototype.weekInfo`.
|
|
4
|
-
*
|
|
5
|
-
* - Returns `null` if `locale` is not a valid BCP 47 tag.
|
|
6
|
-
* - Falls back to `4` (matching ISO 8601's rule — week 1 is the first
|
|
7
|
-
* week with at least 4 days in January, equivalently the week
|
|
8
|
-
* containing Jan 4) if `weekInfo` is unavailable on the runtime (older
|
|
9
|
-
* engines) or unresolvable for the given locale. This mirrors
|
|
10
|
-
* `getLocaleFirstDayOfWeek`'s fallback-to-ISO-default pattern.
|
|
11
|
-
* - Observed on Node 24 (V8/ICU 78): `weekInfo` omits `minimalDays`
|
|
12
|
-
* entirely, for every locale, even though Node 20/22 (ICU 77) populate
|
|
13
|
-
* it — so this fallback engages universally on that runtime rather
|
|
14
|
-
* than only for locales missing data. `getLocaleWeekYear` and
|
|
15
|
-
* `getWeeksInLocaleWeekYear` therefore lose locale-specific
|
|
16
|
-
* minimal-days behavior (silently degrading to the ISO value) on
|
|
17
|
-
* runtimes where the engine doesn't expose it, which is worth knowing
|
|
18
|
-
* before treating a Node-version-only test failure as a real bug.
|
|
19
|
-
*/
|
|
20
|
-
export function getLocaleMinimalDaysInFirstWeek(locale) {
|
|
21
|
-
try {
|
|
22
|
-
const weekInfo = new Intl.Locale(locale).weekInfo;
|
|
23
|
-
if (!weekInfo || typeof weekInfo.minimalDays !== "number") {
|
|
24
|
-
return 4;
|
|
25
|
-
}
|
|
26
|
-
return weekInfo.minimalDays;
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve an optional Unix diff timeZone to its default (system timeZone) when unset.
|
|
3
|
-
*
|
|
4
|
-
* @param timeZone optional IANA timeZone
|
|
5
|
-
* @returns the resolved timeZone, or "" if invalid
|
|
6
|
-
* @example resolveUnixTimeZone(undefined) // system timeZone, e.g. "America/New_York"
|
|
7
|
-
* @example resolveUnixTimeZone("Europe/Helsinki") // "Europe/Helsinki"
|
|
8
|
-
* @example resolveUnixTimeZone("not-a-timezone") // ""
|
|
9
|
-
*/
|
|
10
|
-
export declare function resolveUnixTimeZone(timeZone?: string): string;
|
|
11
|
-
/**
|
|
12
|
-
* Validate that both Unix epoch values are finite integers.
|
|
13
|
-
*
|
|
14
|
-
* @param value1 first Unix timestamp
|
|
15
|
-
* @param value2 second Unix timestamp
|
|
16
|
-
* @returns true if both values are finite integers
|
|
17
|
-
* @example isValidUnixEpochPair(1704067200000, 1704153600000) // true
|
|
18
|
-
* @example isValidUnixEpochPair(NaN, 1704153600000) // false
|
|
19
|
-
*/
|
|
20
|
-
export declare function isValidUnixEpochPair(value1: number, value2: number): boolean;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { getSystemTimeZone } from "../zoned/get/index.js";
|
|
2
|
-
import { isValidTimeZone } from "../zoned/validate/index.js";
|
|
3
|
-
/**
|
|
4
|
-
* Resolve an optional Unix diff timeZone to its default (system timeZone) when unset.
|
|
5
|
-
*
|
|
6
|
-
* @param timeZone optional IANA timeZone
|
|
7
|
-
* @returns the resolved timeZone, or "" if invalid
|
|
8
|
-
* @example resolveUnixTimeZone(undefined) // system timeZone, e.g. "America/New_York"
|
|
9
|
-
* @example resolveUnixTimeZone("Europe/Helsinki") // "Europe/Helsinki"
|
|
10
|
-
* @example resolveUnixTimeZone("not-a-timezone") // ""
|
|
11
|
-
*/
|
|
12
|
-
export function resolveUnixTimeZone(timeZone) {
|
|
13
|
-
const resolved = timeZone ?? getSystemTimeZone();
|
|
14
|
-
return resolved && isValidTimeZone(resolved) ? resolved : "";
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Validate that both Unix epoch values are finite integers.
|
|
18
|
-
*
|
|
19
|
-
* @param value1 first Unix timestamp
|
|
20
|
-
* @param value2 second Unix timestamp
|
|
21
|
-
* @returns true if both values are finite integers
|
|
22
|
-
* @example isValidUnixEpochPair(1704067200000, 1704153600000) // true
|
|
23
|
-
* @example isValidUnixEpochPair(NaN, 1704153600000) // false
|
|
24
|
-
*/
|
|
25
|
-
export function isValidUnixEpochPair(value1, value2) {
|
|
26
|
-
return (Number.isFinite(value1) &&
|
|
27
|
-
Number.isInteger(value1) &&
|
|
28
|
-
Number.isFinite(value2) &&
|
|
29
|
-
Number.isInteger(value2));
|
|
30
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import type { Disambiguation, Offset } from "../../types/index.js";
|
|
3
|
-
/**
|
|
4
|
-
* Internal shared implementation for `startOfUnix` / `endOfUnix`.
|
|
5
|
-
*
|
|
6
|
-
* - Converts the epoch to a ZonedDateTime, snaps to the start or end of the
|
|
7
|
-
* requested unit, then converts back to an epoch number.
|
|
8
|
-
* - Supports every Temporal `DateUnit` and `TimeUnit`.
|
|
9
|
-
* - `epochUnit` controls whether the input/output is interpreted as `"milliseconds"` (default) or `"seconds"`.
|
|
10
|
-
* - `timeZone` defaults to the system time zone via `getSystemTimeZone()`.
|
|
11
|
-
* - `disambiguation` and `offset` are forwarded to Temporal's `.with()` for
|
|
12
|
-
* DST-gap/overlap boundaries; see `startOfUnix`'s JSDoc for the full
|
|
13
|
-
* semantics — they behave identically here.
|
|
14
|
-
*
|
|
15
|
-
* @param value Unix epoch number
|
|
16
|
-
* @param unit Temporal.DateUnit | Temporal.TimeUnit to snap to
|
|
17
|
-
* @param options optional: epochUnit, timeZone, weekStartsOn, disambiguation, offset
|
|
18
|
-
* @param isEnd false for start-of-unit, true for end-of-unit
|
|
19
|
-
* @returns Unix epoch number, or null on invalid input
|
|
20
|
-
*/
|
|
21
|
-
export declare function startOrEndOfUnix(value: number, unit: Temporal.DateUnit | Temporal.TimeUnit, options: {
|
|
22
|
-
epochUnit?: "seconds" | "milliseconds";
|
|
23
|
-
timeZone?: string;
|
|
24
|
-
weekStartsOn?: "monday" | "sunday";
|
|
25
|
-
disambiguation?: Disambiguation;
|
|
26
|
-
offset?: Offset;
|
|
27
|
-
}, isEnd: boolean): number | null;
|