@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,21 +2,37 @@
|
|
|
2
2
|
name: gmt-arithmetic
|
|
3
3
|
description: >
|
|
4
4
|
Date arithmetic — add/subtract duration objects, diff values, clamp/closest,
|
|
5
|
-
ISO 8601 duration strings,
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
ISO 8601 duration strings, elapsed-versus-wall-clock spans, business-day
|
|
6
|
+
arithmetic and interval range math. Covers the half-open [start, end) interval
|
|
7
|
+
algebra over instants (intervalsOverlap, intervalContains, intersectIntervals,
|
|
8
|
+
clampInterval, mergeIntervals, subtractIntervals, splitIntervalAt,
|
|
9
|
+
sumIntervals, isValidInterval, Interval) and the positional interval*Date /
|
|
10
|
+
*Utc / *Zoned / *Unix functions on the same rule, business calendars
|
|
11
|
+
(BusinessCalendar, RollConvention, isBusinessDay, addBusinessDays,
|
|
12
|
+
subtractBusinessDays, businessDaysBetween, nextBusinessDay,
|
|
13
|
+
previousBusinessDay, rollDate, mergeCalendars), overflow "constrain" month-end
|
|
14
|
+
clamping, splitIntervalByUnit* stepping from the anchor, maxPieces limits,
|
|
15
|
+
intervalCount* matching bucketRange, RFC 9557 calendar strings, and the
|
|
16
|
+
correct-at-the-edges guarantees at the first and last representable instant. A
|
|
17
|
+
routing pointer, not an API dump.
|
|
8
18
|
sources:
|
|
9
19
|
- 'northguild/gmt:README.md'
|
|
10
20
|
- 'northguild/gmt:packages/gmt/src/plain/calculate/index.ts'
|
|
11
21
|
- 'northguild/gmt:packages/gmt/src/duration/index.ts'
|
|
22
|
+
- 'northguild/gmt:packages/gmt/src/interval/index.ts'
|
|
23
|
+
- 'northguild/gmt:packages/gmt/src/types/interval.ts'
|
|
12
24
|
- 'northguild/gmt:packages/gmt/src/plain/interval/index.ts'
|
|
13
25
|
- 'northguild/gmt:packages/gmt/src/zoned/interval/index.ts'
|
|
14
26
|
- 'northguild/gmt:packages/gmt/src/unix/interval/index.ts'
|
|
15
27
|
- 'northguild/gmt:packages/gmt/src/utc/interval/index.ts'
|
|
28
|
+
- 'northguild/gmt:packages/gmt/src/span/calculate/index.ts'
|
|
29
|
+
- 'northguild/gmt:packages/gmt/src/calendar/business/index.ts'
|
|
30
|
+
- 'northguild/gmt:packages/gmt/src/types/business-calendar.ts'
|
|
31
|
+
- 'northguild/gmt:packages/gmt/src/types/roll-convention.ts'
|
|
16
32
|
metadata:
|
|
17
33
|
type: core
|
|
18
34
|
library: '@northguild/gmt'
|
|
19
|
-
library_version: '1.
|
|
35
|
+
library_version: '1.17.0'
|
|
20
36
|
---
|
|
21
37
|
|
|
22
38
|
# GMT Arithmetic
|
|
@@ -33,19 +49,171 @@ and full interval set operations.
|
|
|
33
49
|
- The user wants to restrict a value to a min/max range, or find the nearest
|
|
34
50
|
candidate.
|
|
35
51
|
- The user needs range math: "do these overlap?", "merge these", "split this
|
|
36
|
-
into n parts"
|
|
52
|
+
into n parts", "split this by month", "how much of this shift fell inside
|
|
53
|
+
these windows?".
|
|
54
|
+
- The user is measuring elapsed time — a profile, a trace span, a sensor
|
|
55
|
+
interval — and wants milliseconds or nanoseconds rather than a `Duration`.
|
|
37
56
|
|
|
38
57
|
## Core rules
|
|
39
58
|
|
|
40
59
|
1. **`add*` takes a `{ unit: number }` object, not an ISO duration string.**
|
|
41
60
|
`addDate("2024-03-15", { days: 5 })` works; `addDate("2024-03-15", "P5D")`
|
|
42
61
|
returns `""`. Use `diffDateAsDuration` / `addDuration` for duration strings.
|
|
43
|
-
2.
|
|
62
|
+
2. **Arithmetic clamps; parsers reject.** `overflow` defaults to `"constrain"`,
|
|
63
|
+
Temporal's default: January 31 plus one month is February 29, and
|
|
64
|
+
`addDate("2024-02-29", { years: 1 })` is `"2025-02-28"`. Pass
|
|
44
65
|
`{ overflow: "reject" }` to get the `""` sentinel instead of a clamp.
|
|
45
|
-
|
|
66
|
+
`addTime`/`subtractTime`/`intervalFromDurationTime` take no options: a clock
|
|
67
|
+
time wraps (`addTime("23:00:00", { hours: 2 })` is `"01:00:00"`).
|
|
68
|
+
`parse*` functions never clamp — `31 February` returns the sentinel.
|
|
69
|
+
3. **Repeated steps come from the anchor.** `splitIntervalByUnit*` computes
|
|
70
|
+
boundary k as `start + k × amount`, never by stepping from the previous
|
|
71
|
+
boundary, so month-end starts don't drift:
|
|
72
|
+
`splitIntervalByUnitDate("2024-01-31", "2024-05-01", "month", 1)` gives
|
|
73
|
+
February 29, March 31, April 30 (then a trimmed slice to May 1). A yearly
|
|
74
|
+
split from February 29 returns to February 29 in leap years. Build your own
|
|
75
|
+
series the same way — chaining `add*` onto the previous clamped result
|
|
76
|
+
drifts to the 29th for good.
|
|
77
|
+
- **Piece-building functions have a limit.** `splitIntervalByUnit*`,
|
|
78
|
+
`intervalDivideEqually*`, `mapDatesInRange` and `mapZonedDatesInRange` take
|
|
79
|
+
`{ maxPieces }` (a positive safe integer, default `1_000_000`) and return
|
|
80
|
+
`[]` when the result would be longer. `[]` there is not "empty range": if a
|
|
81
|
+
long range can legitimately exceed the default, pass a larger `maxPieces`.
|
|
82
|
+
`bucketRange` has its own fixed limit of 10,000 buckets.
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
mapDatesInRange("0001-01-01", "9999-12-31", 1); // [] — 3,652,059 dates
|
|
86
|
+
splitIntervalByUnitDate("2024-01-01", "2024-01-10", "day", 2, { maxPieces: 5 }).length; // 5
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
- `intervalDivideEqually*` boundaries are integers, rounded half up — exact
|
|
90
|
+
nanoseconds, or the epoch arguments' own unit for `intervalDivideEquallyUnix`
|
|
91
|
+
(`intervalDivideEquallyUnix(0, 100, 3)` cuts at 33 and 67) — so the pieces
|
|
92
|
+
tile the range with no gap or overshoot.
|
|
93
|
+
4. **Zoned counts match zoned buckets.** `intervalCountZoned`,
|
|
94
|
+
`intervalCountUnix` and `intervalCountUtc` count the buckets `bucketRange`
|
|
95
|
+
returns: a 20-minute range straddling `Pacific/Chatham`'s 15-minute 03:00
|
|
96
|
+
hour on its spring-forward counts 2 hours, and a range over `Pacific/Apia`'s
|
|
97
|
+
deleted 30 December 2011 does not count that day. `intervalCountUnix` counts
|
|
98
|
+
in `options.timeZone`, UTC by default (`"local"` for the system zone).
|
|
99
|
+
5. **Calendar units need `relativeTo`.** `durationAs`, `normalizeDuration`, and
|
|
46
100
|
`compareDurations` return `null`/`""` for year/month/week arithmetic without
|
|
47
|
-
a `relativeTo` anchor — a month is not a fixed length.
|
|
48
|
-
|
|
101
|
+
a `relativeTo` anchor — a month is not a fixed length. A calendar-annotated
|
|
102
|
+
`relativeTo` is read as Temporal reads it: zoned when it has a time zone
|
|
103
|
+
annotation, otherwise a date, and its calendar must be a `CalendarSystem`.
|
|
104
|
+
- `round*` accept singular or plural `smallestUnit` names (`"hour"` or
|
|
105
|
+
`"hours"`). A `roundingMode` outside Temporal's nine returns the sentinel.
|
|
106
|
+
- `diff*` with an array of units returns only the listed units, and each
|
|
107
|
+
unlisted unit in between folds into the next smaller listed one:
|
|
108
|
+
`diffDate("2024-01-01", "2025-03-15", ["years", "days"])` is
|
|
109
|
+
`{ years: 1, days: 73 }` (January to mid-March becomes days).
|
|
110
|
+
6. **Elapsed time and calendar distance are different questions.** `spanMs` /
|
|
111
|
+
`spanNs` measure what actually elapsed; `spanWallClock(start, end, "days" |
|
|
112
|
+
"hours")` measures what the clock face did. Across a DST transition they
|
|
113
|
+
differ by the size of the shift — a wall-clock day is 23, 24.5 or 25 real
|
|
114
|
+
hours. Reaching for the wrong one is the most common span bug there is.
|
|
115
|
+
7. **Span sentinels are `null`, not `0`.** `0` and `0n` are valid spans, so all
|
|
116
|
+
three span functions return `null` on invalid input rather than a zero —
|
|
117
|
+
`spanMs` also returns it past `Number.MAX_SAFE_INTEGER` milliseconds, where
|
|
118
|
+
`spanNs` still carries the exact value as a `bigint`.
|
|
119
|
+
8. **Interval algebra over instants is half-open — reach for `interval/`.**
|
|
120
|
+
`intervalsOverlap`, `intervalContains`, `intersectIntervals`,
|
|
121
|
+
`clampInterval`, `mergeIntervals`, `subtractIntervals`, `splitIntervalAt`
|
|
122
|
+
and `sumIntervals` take `Interval` records (`{ start, end }`) of instant
|
|
123
|
+
strings with an offset, and treat them as `[start, end)` (SQL:2011
|
|
124
|
+
`PERIOD`, RFC 5545 `DTEND`). Touching intervals do not overlap; outputs
|
|
125
|
+
are the caller's own strings; `start === end` is a valid empty interval.
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
const shift = { start: "2024-01-01T09:00:00Z", end: "2024-01-01T17:00:00Z" };
|
|
129
|
+
subtractIntervals(shift, [{ start: "2024-01-01T12:00:00Z", end: "2024-01-01T13:00:00Z" }]);
|
|
130
|
+
// [{ start: "2024-01-01T09:00:00Z", end: "2024-01-01T12:00:00Z" },
|
|
131
|
+
// { start: "2024-01-01T13:00:00Z", end: "2024-01-01T17:00:00Z" }]
|
|
132
|
+
sumIntervals(/* that result */); // "PT7H" — hours are the largest unit, never days
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
`sumIntervals` returns covered time (overlaps count once), `[]` → `"PT0S"`.
|
|
136
|
+
`[]` is both a real result and the array sentinel: check inputs with
|
|
137
|
+
`isValidInterval`. Plain dates, zoneless datetimes and inverted intervals
|
|
138
|
+
return the sentinel — build local edges with `floorToZone` first.
|
|
139
|
+
9. **The positional `interval*Date|Time|DateTime|Utc|Zoned|Unix` functions are
|
|
140
|
+
half-open `[start, end)` too.** `intervalsOverlapUtc` is `false` for touching
|
|
141
|
+
intervals and `intervalContainsUtc` excludes `end`; `intervalAbuts*` means
|
|
142
|
+
one interval's `end` equals the other's `start`
|
|
143
|
+
(`intervalAbutsDate("2024-01-01", "2024-07-01", "2024-07-01", …)` is `true`);
|
|
144
|
+
`intervalDifference*`/`intervalXor*` cut exactly at the other interval's
|
|
145
|
+
edges, with no one-unit step. A `Date` interval's `end` is the first day
|
|
146
|
+
after the period: pass `addDate(lastDay, { days: 1 })`, never the last day.
|
|
147
|
+
10. **Calendar strings are RFC 9557: ISO digits plus `[u-ca=<id>]`.**
|
|
148
|
+
`convertDateToCalendar("2024-10-03", "hebrew")` is
|
|
149
|
+
`"2024-10-03[u-ca=hebrew]"`, exactly `Temporal.PlainDate#toString()`. It
|
|
150
|
+
feeds `addDate`, `subtractDate`, `diffDate*` and the `plain/interval/*Date`
|
|
151
|
+
functions, and `Temporal.PlainDate.from` reads it as the same date.
|
|
152
|
+
- Ids are the canonical BCP 47 / Temporal ids, in strings and arguments:
|
|
153
|
+
`iso8601`, `gregory`, `hebrew`, `islamic-civil`, `islamic-tbla`,
|
|
154
|
+
`islamic-umalqura`, `japanese`, `buddhist`, `roc`, `persian`, `indian`,
|
|
155
|
+
`ethiopic`, `ethioaa`, `coptic`. `gregorian`, `taiwan` and
|
|
156
|
+
`islamic-tabular` return the sentinel; aliases Temporal accepts
|
|
157
|
+
(`ethiopic-amete-alem`) are canonicalized. `iso8601` writes no annotation.
|
|
158
|
+
- Never put calendar fields (a Hebrew year, a Japanese era) in the string,
|
|
159
|
+
and never slice them out of it: read them from Temporal
|
|
160
|
+
(`Temporal.PlainDate.from(s).eraYear`). `;era=` is rejected.
|
|
161
|
+
- A string written before 1.16.0 (`"5785-01-01[u-ca=hebrew]"`) reads as ISO
|
|
162
|
+
year 5785 with no error: regenerate stored values from their ISO dates.
|
|
163
|
+
- Values naming different calendars: differences (`diffDate*`,
|
|
164
|
+
`intervalCount*`, `intervalLength*`, `splitIntervalByUnit*`,
|
|
165
|
+
`intervalOverlappingDays*`) return the sentinel; ordering accepts them.
|
|
166
|
+
- Month arithmetic of any size in range is safe:
|
|
167
|
+
`addDate("2024-01-15[u-ca=persian]", { months: 3000000 })` is
|
|
168
|
+
`"+252023-12-27[u-ca=persian]"`.
|
|
169
|
+
- A month counts only once the end date reaches the same day of the next
|
|
170
|
+
month: `diffDateAsDuration("2024-08-31[u-ca=buddhist]",
|
|
171
|
+
"2024-09-30[u-ca=buddhist]", "months")` is `"P30D"`, not `"P1M"`.
|
|
172
|
+
11. **Correct at the edges — rely on it, do not work around it.** Temporal's
|
|
173
|
+
instant range is `-271821-04-20T00:00:00Z` to `+275760-09-13T00:00:00Z`,
|
|
174
|
+
and GMT returns the TC39 answer up to both ends:
|
|
175
|
+
- `PlainTime`'s last nanosecond stays on its day, and no interval boundary
|
|
176
|
+
is computed past the last instant (`intervalAbuts*`, `intervalXorAll*`).
|
|
177
|
+
- The earliest month has an end: `endOfDate("-271821-04-19", "month")` is
|
|
178
|
+
`"-271821-04-30"`.
|
|
179
|
+
- Every supported calendar parses and does arithmetic at both limits.
|
|
180
|
+
Hebrew years ≤ 0 and Indian dates before ISO year 1 are correct.
|
|
181
|
+
- `spanNs` and `sumIntervals` are exact across the whole range (up to
|
|
182
|
+
`PT4800000000H`), past where a `number` stops holding nanoseconds.
|
|
183
|
+
- `unix/interval` functions return the sentinel for a fractional or
|
|
184
|
+
unsafe epoch, or `""`.
|
|
185
|
+
- Rounding, week functions, splits, counts, `bucketRange` and the date
|
|
186
|
+
mappers return the answer at both limits when it exists:
|
|
187
|
+
`roundDate("+275760-06-15", { smallestUnit: "year", roundingMode: "floor" })`
|
|
188
|
+
is `"+275760-01-01"`. Only a result past the limit is the sentinel.
|
|
189
|
+
- Near the maximum in `UTC`, a rounded difference or total whose window
|
|
190
|
+
passes the limit returns the sentinel, exactly as `+00:00` does.
|
|
191
|
+
Zoned limits are in the `gmt-timezone` skill.
|
|
192
|
+
12. **Business days need a `BusinessCalendar`, and a weekend is never assumed.**
|
|
193
|
+
`{ weekend: number[], holidays: string[], timeZone: string }` — `weekend` is
|
|
194
|
+
ISO weekday numbers, because Saturday–Sunday is not universal (much of the
|
|
195
|
+
Middle East is `[5, 6]`). `isBusinessDay`, `addBusinessDays` and
|
|
196
|
+
`subtractBusinessDays` take it as an optional trailing argument, defaulting to
|
|
197
|
+
Monday–Friday with no holidays; `businessDaysBetween`, `nextBusinessDay`,
|
|
198
|
+
`previousBusinessDay`, `rollDate` and `mergeCalendars` require it. Holidays are
|
|
199
|
+
caller-supplied — GMT bundles no holiday table on the default import path.
|
|
200
|
+
|
|
201
|
+
```typescript
|
|
202
|
+
const nyse = { weekend: [6, 7], holidays: ["2024-07-04"], timeZone: "America/New_York" };
|
|
203
|
+
addBusinessDays("2024-07-03", 1, nyse); // "2024-07-05" — skips the holiday
|
|
204
|
+
businessDaysBetween("2024-07-01", "2024-07-05", nyse); // 3 — start exclusive, end inclusive
|
|
205
|
+
rollDate("2024-05-31", "modifiedFollowing", nyse); // backward when forward leaves the month
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
These are **local-date in, local-date out**: `calendar.timeZone` records the
|
|
209
|
+
locality and is never read, so reduce an instant with `floorToZone` first.
|
|
210
|
+
`nextBusinessDay`/`previousBusinessDay` are strictly after/before;
|
|
211
|
+
`rollDate`'s `following`/`preceding` are on-or-after/on-or-before and leave a
|
|
212
|
+
working day alone. `mergeCalendars` unions weekends and holidays, so a date
|
|
213
|
+
survives only if it is a working day in every input, and returns `null` for an
|
|
214
|
+
empty list. Narrow inputs with `isValidBusinessCalendar` /
|
|
215
|
+
`isValidRollConvention`.
|
|
216
|
+
13. **Read the README.** This skill is a routing pointer. For full option shapes,
|
|
49
217
|
locale matrices, and code examples, read the installed package's `README.md`
|
|
50
218
|
and the source JSDoc of the function you intend to call.
|
|
51
219
|
|
|
@@ -53,21 +221,31 @@ and full interval set operations.
|
|
|
53
221
|
|
|
54
222
|
- **Point arithmetic**: `addDate`, `addDateTime`, `addTime`, `subtractTime`,
|
|
55
223
|
`addBusinessDays`, `subtractBusinessDays`, `cycleDate`, `setDate`
|
|
224
|
+
- **Business calendars**: `isBusinessDay`, `businessDaysBetween`,
|
|
225
|
+
`nextBusinessDay`, `previousBusinessDay`, `rollDate`, `mergeCalendars`,
|
|
226
|
+
`isValidBusinessCalendar`, `isValidRollConvention`
|
|
56
227
|
- **Diffs**: `diffDate`, `diffDateTime`, `diffTime` (+ `diffZoned`,
|
|
57
228
|
`diffUnix`, `diffUtc` in their namespaces)
|
|
229
|
+
- **Spans (raw numbers)**: `spanMs`, `spanNs`, `spanWallClock`, `isValidSpan`
|
|
58
230
|
- **Bounds**: `clampDate`, `closestDateTo`, `startOfDate`, `endOfDate`,
|
|
59
|
-
`startOfQuarterForDate`, `getLocaleStartOfWeek`
|
|
231
|
+
`startOfQuarterForDate`, `getLocaleStartOfWeek` (zoned boundaries: see the
|
|
232
|
+
`gmt-timezone` skill)
|
|
60
233
|
- **Durations (ISO 8601)**: `isValidDuration`, `parseDuration`, `addDuration`,
|
|
61
234
|
`subtractDuration`, `normalizeDuration`, `durationAs`, `formatDuration`,
|
|
62
235
|
`negateDuration`, `absDuration`, `compareDurations`, `getDurationUnit`,
|
|
63
236
|
`getDurationSign`
|
|
64
237
|
- **Diff-to-duration bridge**: `diffDateAsDuration`,
|
|
65
238
|
`diffZonedAsDuration`, `diffUnixAsDuration`, `diffUtcAsDuration`
|
|
66
|
-
- **
|
|
67
|
-
`
|
|
68
|
-
`
|
|
69
|
-
`
|
|
70
|
-
|
|
239
|
+
- **Interval algebra (half-open, instants)**: `isValidInterval`,
|
|
240
|
+
`intervalsOverlap`, `intervalContains`, `intersectIntervals`,
|
|
241
|
+
`clampInterval`, `mergeIntervals`, `subtractIntervals`, `splitIntervalAt`,
|
|
242
|
+
`sumIntervals`, type `Interval`
|
|
243
|
+
- **Positional intervals (half-open)**: `isValidDateInterval`,
|
|
244
|
+
`intervalContainsDate`, `intervalsOverlapDate`, `intervalIntersectionDate`,
|
|
245
|
+
`intervalUnionDate`, `intervalDifferenceDate`, `intervalXorDate`,
|
|
246
|
+
`intervalFromDurationDate`, `splitIntervalByUnitDate`, `intervalCountDate`,
|
|
247
|
+
`intervalLengthDate`, `intervalDivideEquallyDate`, `mergeIntervalsDate` (each
|
|
248
|
+
with `DateTime`/`Zoned`/`Unix`/`Utc` variants where the type supports it)
|
|
71
249
|
|
|
72
250
|
## Namespace selection
|
|
73
251
|
|
|
@@ -76,8 +254,11 @@ and full interval set operations.
|
|
|
76
254
|
- `unix/*` — epoch seconds/milliseconds
|
|
77
255
|
- `utc/*` — UTC instants (`"2024-03-15T14:30:45Z"`)
|
|
78
256
|
- `duration/*` — ISO 8601 duration strings
|
|
257
|
+
- `span/*` — elapsed and wall-clock spans as raw numbers
|
|
258
|
+
- `interval/*` — half-open interval algebra over instant strings
|
|
79
259
|
|
|
80
260
|
## References
|
|
81
261
|
|
|
82
262
|
- [README — Quick Start](README.md)
|
|
83
|
-
- [Interval
|
|
263
|
+
- [Interval algebra reference](/reference/interval/calculate/intersectIntervals)
|
|
264
|
+
- [Interval guides](/guides/intervals/interval-basics/)
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gmt-basics
|
|
3
3
|
description: >
|
|
4
|
-
Core date/time basics — get current values, parse components,
|
|
5
|
-
|
|
6
|
-
strings/timezones/intervals. Reads
|
|
7
|
-
JSDoc for API details; this skill
|
|
4
|
+
Core date/time basics — get current values, parse components, read ISO week,
|
|
5
|
+
ordinal, quarter and fiscal-period identifiers, format for display, format
|
|
6
|
+
relative time, compare dates, and validate strings/timezones/intervals. Reads
|
|
7
|
+
the installed package README.md and source JSDoc for API details; this skill
|
|
8
|
+
is a routing pointer, not an API dump.
|
|
8
9
|
sources:
|
|
9
10
|
- 'northguild/gmt:README.md'
|
|
10
11
|
- 'northguild/gmt:packages/gmt/src/plain/get/index.ts'
|
|
@@ -18,10 +19,12 @@ sources:
|
|
|
18
19
|
- 'northguild/gmt:packages/gmt/src/zoned/validate/index.ts'
|
|
19
20
|
- 'northguild/gmt:packages/gmt/src/unix/get/index.ts'
|
|
20
21
|
- 'northguild/gmt:packages/gmt/src/utc/get/index.ts'
|
|
22
|
+
- 'northguild/gmt:packages/gmt/src/calendar/calculate/index.ts'
|
|
23
|
+
- 'northguild/gmt:packages/gmt/src/calendar/validate/index.ts'
|
|
21
24
|
metadata:
|
|
22
25
|
type: core
|
|
23
26
|
library: '@northguild/gmt'
|
|
24
|
-
library_version: '1.
|
|
27
|
+
library_version: '1.17.0'
|
|
25
28
|
---
|
|
26
29
|
|
|
27
30
|
# GMT Basics
|
|
@@ -35,6 +38,8 @@ input before you act on it.
|
|
|
35
38
|
|
|
36
39
|
- The user needs "now" as an ISO string, or a formatted/localized display value.
|
|
37
40
|
- The user wants to extract a year/month/day/hour from a date string.
|
|
41
|
+
- The user needs the ISO week, ordinal, quarter or retail-calendar period a date
|
|
42
|
+
falls in — a week number on a vessel schedule, a 4-5-4 fiscal period.
|
|
38
43
|
- The user needs "yesterday" or "in 2 hours" style output.
|
|
39
44
|
- The user is comparing or sorting two date strings.
|
|
40
45
|
- The user wants to guard a call with a validity check first.
|
|
@@ -44,7 +49,9 @@ input before you act on it.
|
|
|
44
49
|
1. **ISO 8601 strings in.** Public APIs consume ISO strings, IANA timezone ids,
|
|
45
50
|
or numeric Unix epochs — never `new Date()`.
|
|
46
51
|
2. **Sentinel returns, never throws.** `""` for strings, `null` for numbers,
|
|
47
|
-
`false` for booleans, `[]` for arrays. Always check before using.
|
|
52
|
+
`false` for booleans, `[]` for arrays. Always check before using. This holds
|
|
53
|
+
for a `null` or wrong-typed argument too (`addDate(x, null)` is `""`), so a
|
|
54
|
+
`try`/`catch` around a GMT call is dead code.
|
|
48
55
|
3. **Read the README.** This skill is a routing pointer. For full API
|
|
49
56
|
signatures, locale matrices, and code examples, read the installed package's
|
|
50
57
|
`README.md` and the source JSDoc of the function you intend to call.
|
|
@@ -55,6 +62,8 @@ input before you act on it.
|
|
|
55
62
|
`getSystemTimeZone`, `getTimeZones`
|
|
56
63
|
- **Parsing**: `parseYearFromDate`, `parseMonthFromDate`,
|
|
57
64
|
`parseDateTimeWithPattern`, `parseRfc3339`, `parseHttp`, `parseSql`
|
|
65
|
+
- **Calendar identifiers**: `getIsoWeekDate`, `getOrdinalDate`, `getQuarter`,
|
|
66
|
+
`getFiscalPeriod`
|
|
58
67
|
- **Formatting**: `formatDate`, `formatTime`, `formatDateTime`,
|
|
59
68
|
`formatRelativeDate`, `formatCalendar`, `formatRfc3339`
|
|
60
69
|
- **Locale names**: `getLocaleMonthNames`, `getLocaleWeekdayNames`,
|
|
@@ -62,19 +71,57 @@ input before you act on it.
|
|
|
62
71
|
- **Comparison**: `isAfterDate`, `isBeforeDate`, `areDatesEqual`,
|
|
63
72
|
`areDatesEqualBy`, `isWeekend`, `isBusinessDay`, `nextWeekday`
|
|
64
73
|
- **Validation**: `isValidDate`, `isValidTime`, `isValidTimeZone`,
|
|
65
|
-
`isValidZonedDateTime`, `isValidDateInterval`
|
|
74
|
+
`isValidZonedDateTime`, `isValidDateInterval`, `isValidFiscalPattern`
|
|
66
75
|
|
|
67
76
|
## Common pitfalls
|
|
68
77
|
|
|
69
|
-
- `
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
|
|
78
|
+
- `formatRelative*` measure from now when `reference` is omitted, so the output
|
|
79
|
+
changes from day to day. Pass `reference` whenever the result must be deterministic.
|
|
80
|
+
- `parseDateWithPattern`, `parseRfc2822` and `parseHttp` return `""` on
|
|
81
|
+
shape-valid-but-unreal dates such as 31 February (regex only proves shape;
|
|
82
|
+
Temporal validates the real value). Parsers reject; only arithmetic clamps.
|
|
83
|
+
- `parseRfc2822` reads everything RFC 5322 says a receiver must: comments,
|
|
84
|
+
folding whitespace, any case, two-digit years and zone names such as `EST`
|
|
85
|
+
(an unknown name reads as `+00:00`). `parseHttp` reads all three HTTP-date
|
|
86
|
+
forms, including `rfc850-date` and `asctime-date`. Both return `""` when the
|
|
87
|
+
day name contradicts the date (`"Sat, 15 Mar 2024 …"`), so do not synthesise
|
|
88
|
+
a day name; omit it. The `rfc2822DateTime` and `httpDate` regexes stay strict
|
|
89
|
+
and match only what GMT writes, so do not use them to pre-filter parser input.
|
|
90
|
+
- `formatRfc2822`, `formatHttp` and `formatRfc3339` return `""` for a year their
|
|
91
|
+
grammar cannot hold (before 0000, or after 9999 for RFC 3339 and HTTP).
|
|
92
|
+
`formatRfc3339` writes a sub-minute historical offset as the same instant at
|
|
93
|
+
`+00:00`. Use Temporal's `toString()` when you need any year.
|
|
94
|
+
- Text formatters follow ECMA-402 as Temporal amends it, so text equals the
|
|
95
|
+
`…ToParts` result joined. `era` or `timeZoneName` alone keep the default
|
|
96
|
+
fields. A plain value never shows a zone name, and a style for fields the type
|
|
97
|
+
lacks (`timeStyle` on `formatDate`, `dateStyle` on `formatTime`) returns `""`.
|
|
98
|
+
Zoned formatters return `""`/`[]` for a `timeZone` option: to show an instant
|
|
99
|
+
in another zone, use `formatUtc(value, locale, { timeZone })`.
|
|
100
|
+
- Leap seconds (`:60`) are invalid in every spelling (`T`, `t`, space, basic
|
|
101
|
+
format). `isLeapSecond` tells you one is there. Validators return `false`.
|
|
102
|
+
- `isValidTimeZone` accepts every IANA name, including single-component links
|
|
103
|
+
such as `Japan`, `Zulu` and `EST5EDT`, and ignores case. It also accepts
|
|
104
|
+
offset zone ids such as `"+05:00"`, as Temporal does.
|
|
105
|
+
- `isLeapYear` and `getWeekNumber` take a `PlainDate` only: a date-time returns
|
|
106
|
+
`false`/`null`. Pass `value.slice(0, 10)` for a date-time's date.
|
|
107
|
+
- Week numbers are ambiguous across year boundaries — `getIsoWeekDate` returns
|
|
108
|
+
the week-numbering year with the week so the pair can never drift apart, and
|
|
109
|
+
`getWeekYear` reads that year on its own.
|
|
110
|
+
- `getLocaleWeekYear` and `getWeeksInLocaleWeekYear` use the ISO rule (`minimalDays` 4)
|
|
111
|
+
unless you pass `{ minimalDays }`: ECMA-402 no longer exposes a locale's value. CLDR's
|
|
112
|
+
world default is `1` (`en-US` included), so pass `{ minimalDays: 1 }` for those locales.
|
|
113
|
+
- The `calendar/` identifier functions take a **zoneless** date or datetime. An
|
|
114
|
+
instant has no calendar date until you name a zone — floor it with
|
|
115
|
+
`floorToZone` first, or convert it in the zone you mean.
|
|
116
|
+
- `getFiscalPeriod`'s `yearEndsOn` states the year-end **rule** by example, not
|
|
117
|
+
one year's end. The NRF 4-5-4 calendar is `"2026-01-31"` — a Saturday on
|
|
118
|
+
January 31, which is "the Saturday nearest to January 31".
|
|
74
119
|
- `isWeekend` is locale-aware via `Intl.Locale.weekInfo`; `isBusinessDay` is
|
|
75
|
-
fixed ISO Mon–Fri with no locale and no holidays
|
|
120
|
+
fixed ISO Mon–Fri with no locale and no holidays **until you pass it a
|
|
121
|
+
`BusinessCalendar`** — `isBusinessDay(value, { weekend, holidays, timeZone })`
|
|
122
|
+
states the weekend and holidays itself. See the `gmt-arithmetic` skill.
|
|
76
123
|
|
|
77
124
|
## References
|
|
78
125
|
|
|
79
126
|
- [README — API Surface and Quick Start](README.md)
|
|
80
|
-
- [
|
|
127
|
+
- [Core date operations guides](/guides/core-date-operations/get-current/)
|
|
@@ -2,16 +2,22 @@
|
|
|
2
2
|
name: gmt-integration
|
|
3
3
|
description: >
|
|
4
4
|
Application integration patterns — stable cache keys, router/query params,
|
|
5
|
-
table-sort keys,
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
table-sort keys, nanosecond timestamps across JSON and storage boundaries,
|
|
6
|
+
foreign epoch bridges (NTP, FILETIME, .NET ticks, Excel, PostgreSQL), and lint
|
|
7
|
+
package selection (ESLint, Biome, Oxlint). Reads the installed package
|
|
8
|
+
README.md and lint-package READMEs for API details; this skill is a routing
|
|
9
|
+
pointer, not an API dump.
|
|
8
10
|
sources:
|
|
9
11
|
- 'northguild/gmt:README.md'
|
|
10
12
|
- 'northguild/gmt:packages/gmt/src/zoned/validate/index.ts'
|
|
13
|
+
- 'northguild/gmt:packages/gmt/src/precision/convert/index.ts'
|
|
14
|
+
- 'northguild/gmt:packages/gmt/src/precision/format/index.ts'
|
|
15
|
+
- 'northguild/gmt:packages/gmt/src/precision/calculate/index.ts'
|
|
16
|
+
- 'northguild/gmt:packages/gmt/src/precision/validate/index.ts'
|
|
11
17
|
metadata:
|
|
12
18
|
type: composition
|
|
13
19
|
library: '@northguild/gmt'
|
|
14
|
-
library_version: '1.
|
|
20
|
+
library_version: '1.17.0'
|
|
15
21
|
---
|
|
16
22
|
|
|
17
23
|
# GMT Integration
|
|
@@ -23,6 +29,9 @@ which lint package to install for Date-ban enforcement.
|
|
|
23
29
|
|
|
24
30
|
- The user asks about cache keys, router params, or table-sort keys for dates.
|
|
25
31
|
- The user wants to validate a timezone id before using it as a cache key.
|
|
32
|
+
- The user is moving nanosecond timestamps across a JSON wire or into a database.
|
|
33
|
+
- The user is reading or writing another system's epoch — NTP, Windows `FILETIME`,
|
|
34
|
+
.NET ticks, an Excel day serial, or PostgreSQL's internal microseconds.
|
|
26
35
|
- The user is picking an ESLint, Biome, or Oxlint plugin to ban `Date` APIs.
|
|
27
36
|
- The user has a lint package but not the gmt runtime (or vice versa).
|
|
28
37
|
|
|
@@ -35,11 +44,42 @@ which lint package to install for Date-ban enforcement.
|
|
|
35
44
|
before using it as a cache key or router param — `"Invalid/Zone"` is a sentinel
|
|
36
45
|
failure, not a real zone.
|
|
37
46
|
3. **Pick one canonical Unix unit.** If you mix epoch seconds and milliseconds,
|
|
38
|
-
convert explicitly with `convertUtcToUnix` /
|
|
39
|
-
|
|
40
|
-
|
|
47
|
+
convert explicitly with `convertUtcToUnix(value)` (milliseconds) /
|
|
48
|
+
`convertUtcToUnix(value, { epochUnit: "seconds" })` rather than
|
|
49
|
+
dividing/multiplying by hand. An `epochUnit` option must be `"seconds"` or
|
|
50
|
+
`"milliseconds"` (singular accepted): any other value returns the sentinel
|
|
51
|
+
instead of being read as milliseconds. `unix/` reads zone-dependent fields in
|
|
52
|
+
UTC unless you pass `timeZone` (`"local"` for the system zone). A
|
|
53
|
+
blank epoch string is invalid, not `1970`, and `sortUnix`/`minUnix`/`maxUnix`
|
|
54
|
+
skip values that are not integer epochs in Temporal's range.
|
|
55
|
+
4. **Nanoseconds are `bigint`, never `number`.** A `number` is exact only to
|
|
56
|
+
`2^53 − 1`, which nanoseconds since the epoch passed in April 1970. Use
|
|
57
|
+
`toNanoseconds` / `fromNanoseconds`, cross a JSON boundary with
|
|
58
|
+
`formatNanoseconds` / `parseNanoseconds` (`JSON.stringify` throws on a raw
|
|
59
|
+
`bigint`), and call `truncateNanoseconds(ns, "us" | "ms")` before writing to a
|
|
60
|
+
store that holds less than nanoseconds — PostgreSQL `timestamptz` holds
|
|
61
|
+
microseconds — or the read-back value will not equal what was written.
|
|
62
|
+
5. **Never hand-roll another system's epoch constant.** `precision/convert/` carries
|
|
63
|
+
the bridges: `toNtpTimestamp` / `fromNtpTimestamp`, `toFileTime` / `fromFileTime`,
|
|
64
|
+
`toDotNetTicks` / `fromDotNetTicks`, `toExcelSerial` / `fromExcelSerial`,
|
|
65
|
+
`toPgMicroseconds` / `fromPgMicroseconds`. Two traps they exist to close: an NTP
|
|
66
|
+
timestamp's seconds field wraps every ~136 years and carries no era, so
|
|
67
|
+
`fromNtpTimestamp` needs the era passed in; and Excel's serial 60 is the phantom
|
|
68
|
+
1900-02-29, a date that never existed, so it returns `""` rather than a neighbouring
|
|
69
|
+
day. Each bridge rejects instants its target format cannot hold instead of returning
|
|
70
|
+
an out-of-range number. More edges to know:
|
|
71
|
+
- A `FILETIME` at or above `2^63` is out of range, as Windows'
|
|
72
|
+
`FileTimeToSystemTime` rules, so `fromFileTime` returns `""`. That includes
|
|
73
|
+
`0xFFFFFFFFFFFFFFFF`, the "do not modify" marker.
|
|
74
|
+
- An all-zero NTP timestamp is both the NTP epoch and RFC 5905's "unknown or
|
|
75
|
+
unsynchronized" marker. Check for `0n` yourself before trusting it as 1900.
|
|
76
|
+
- .NET ticks name an instant only when `DateTimeKind` is `Utc`. `Local` and
|
|
77
|
+
`Unspecified` ticks count wall-clock time.
|
|
78
|
+
- `toNanoseconds` and `isValidInstant` read the offset and ignore a bracketed
|
|
79
|
+
zone annotation, which is not checked.
|
|
80
|
+
6. **Lint packages are toolchain-specific, not mutually exclusive.** Recommend
|
|
41
81
|
only the one matching the project's existing linter; do not force all three.
|
|
42
|
-
|
|
82
|
+
7. **Read the READMEs.** This skill is a routing pointer. For full integration
|
|
43
83
|
guidance, read the installed package's `README.md` and the matching
|
|
44
84
|
`@northguild/gmt-eslint` / `gmt-oxlint` / `gmt-biome` README.
|
|
45
85
|
|
|
@@ -65,6 +105,12 @@ the pattern.
|
|
|
65
105
|
- **Router params**: validate with `isValidDate` / `isValidTimeZone` before use.
|
|
66
106
|
- **Table sorting**: use ISO strings as sort keys for consistent ordering.
|
|
67
107
|
- **State management**: canonicalized strings/numbers at boundaries only.
|
|
108
|
+
- **High-precision timestamps**: keep `bigint` nanoseconds internally, send the
|
|
109
|
+
decimal string from `formatNanoseconds` over the wire, and truncate to the
|
|
110
|
+
target column's precision before persisting.
|
|
111
|
+
- **Foreign epochs at the boundary**: convert on the way in and on the way out with
|
|
112
|
+
the `precision/convert/` bridges, and keep ISO strings or `bigint` nanoseconds
|
|
113
|
+
everywhere in between — never carry another system's serial through your own code.
|
|
68
114
|
|
|
69
115
|
## References
|
|
70
116
|
|