@northguild/gmt 1.17.0 → 1.18.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 +462 -22
- package/dist/calendar/calculate/bucketRange.d.ts +3 -3
- package/dist/calendar/calculate/bucketRange.js +6 -6
- package/dist/calendar/calculate/floorToZone.d.ts +5 -3
- package/dist/calendar/calculate/floorToZone.js +6 -5
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +21 -8
- package/dist/calendar/calculate/getFiscalPeriod.js +9 -8
- package/dist/calendar/calculate/getIsoWeekDate.d.ts +10 -5
- package/dist/calendar/calculate/getIsoWeekDate.js +1 -5
- package/dist/calendar/calculate/getOrdinalDate.d.ts +10 -3
- package/dist/calendar/calculate/getOrdinalDate.js +2 -3
- package/dist/calendar/calculate/getQuarter.d.ts +21 -9
- package/dist/calendar/calculate/getQuarter.js +8 -12
- package/dist/calendar/hours/addOperatingTime.d.ts +53 -0
- package/dist/calendar/hours/addOperatingTime.js +59 -0
- package/dist/calendar/hours/index.d.ts +7 -0
- package/dist/calendar/hours/index.js +7 -0
- package/dist/calendar/hours/isOpenAt.d.ts +39 -0
- package/dist/calendar/hours/isOpenAt.js +44 -0
- package/dist/calendar/hours/nextCloseAt.d.ts +49 -0
- package/dist/calendar/hours/nextCloseAt.js +51 -0
- package/dist/calendar/hours/nextOpenAt.d.ts +45 -0
- package/dist/calendar/hours/nextOpenAt.js +47 -0
- package/dist/calendar/hours/operatingIntervals.d.ts +43 -0
- package/dist/calendar/hours/operatingIntervals.js +52 -0
- package/dist/calendar/hours/operatingTimeBetween.d.ts +40 -0
- package/dist/calendar/hours/operatingTimeBetween.js +49 -0
- package/dist/calendar/hours/recurringWindows.d.ts +61 -0
- package/dist/calendar/hours/recurringWindows.js +80 -0
- package/dist/calendar/index.d.ts +1 -0
- package/dist/calendar/index.js +1 -0
- package/dist/duration/calculate/durationAs.d.ts +13 -8
- package/dist/duration/calculate/durationAs.js +4 -8
- package/dist/duration/compare/compareDurations.d.ts +12 -6
- package/dist/duration/compare/compareDurations.js +3 -6
- package/dist/duration/format/formatDuration.d.ts +16 -4
- package/dist/duration/format/formatDuration.js +4 -5
- package/dist/duration/normalize/normalizeDuration.d.ts +39 -14
- package/dist/duration/normalize/normalizeDuration.js +6 -15
- package/dist/duration/parse/parseDuration.d.ts +21 -3
- package/dist/duration/parse/parseDuration.js +1 -3
- package/dist/instant/convert/classifyLocal.d.ts +1 -1
- package/dist/instant/convert/classifyLocal.js +1 -1
- package/dist/instant/convert/fromOffsetInstant.d.ts +3 -1
- package/dist/instant/convert/fromOffsetInstant.js +3 -1
- package/dist/instant/convert/resolveLocal.d.ts +12 -7
- package/dist/instant/convert/resolveLocal.js +6 -10
- package/dist/instant/convert/toOffsetInstant.d.ts +22 -9
- package/dist/instant/convert/toOffsetInstant.js +10 -3
- package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
- package/dist/intermodal/calculate/billingTimeline.js +2 -2
- package/dist/intermodal/calculate/chargeableDays.d.ts +13 -11
- package/dist/intermodal/calculate/chargeableDays.js +4 -9
- package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
- package/dist/intermodal/calculate/demurrageClock.js +7 -7
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +5 -4
- package/dist/intermodal/calculate/freeTimeExpiry.js +6 -6
- package/dist/internal/businessCalendar.d.ts +5 -0
- package/dist/internal/businessCalendar.js +5 -1
- package/dist/internal/cycleFieldValue.d.ts +6 -4
- package/dist/internal/cycleFieldValue.js +6 -4
- package/dist/internal/daylightTime.d.ts +33 -0
- package/dist/internal/daylightTime.js +164 -0
- package/dist/internal/durationUntilString.js +4 -3
- package/dist/internal/englishCalendarNames.js +1 -2
- package/dist/internal/epochNanoseconds.d.ts +2 -0
- package/dist/internal/epochNanoseconds.js +2 -0
- package/dist/internal/exactDuration.d.ts +37 -0
- package/dist/internal/exactDuration.js +64 -0
- package/dist/internal/exactMoment.d.ts +72 -0
- package/dist/internal/exactMoment.js +114 -0
- package/dist/internal/fiscalCalendar.d.ts +4 -3
- package/dist/internal/fiscalCalendar.js +4 -3
- package/dist/internal/formatCalendarDays.d.ts +2 -2
- package/dist/internal/formatRelativeDuration.d.ts +21 -1
- package/dist/internal/formatRelativeDuration.js +47 -7
- package/dist/internal/index.d.ts +9 -4
- package/dist/internal/index.js +9 -4
- package/dist/internal/instantFormatOptions.js +2 -1
- package/dist/internal/instantNanoseconds.d.ts +75 -9
- package/dist/internal/instantNanoseconds.js +192 -11
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/monthGridWeekRow.d.ts +2 -1
- package/dist/internal/monthGridWeekRow.js +2 -1
- package/dist/internal/normalizeTimeZone.d.ts +2 -2
- package/dist/internal/normalizeTimeZone.js +2 -2
- package/dist/internal/operatingSchedule.d.ts +129 -0
- package/dist/internal/operatingSchedule.js +668 -0
- package/dist/internal/optionOrDefault.d.ts +18 -0
- package/dist/internal/optionOrDefault.js +20 -0
- package/dist/internal/patternToken.d.ts +2 -2
- package/dist/internal/patternToken.js +28 -13
- package/dist/internal/plainDateUntil.js +10 -6
- package/dist/internal/punctuality.d.ts +38 -0
- package/dist/internal/punctuality.js +59 -0
- package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
- package/dist/internal/readDateTimeFormatOptions.js +93 -0
- package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
- package/dist/internal/resolveDurationRelativeTo.js +11 -1
- package/dist/internal/resolveRelativeRounding.d.ts +17 -6
- package/dist/internal/resolveRelativeRounding.js +27 -7
- package/dist/internal/resolveRelativeUnit.d.ts +30 -0
- package/dist/internal/resolveRelativeUnit.js +40 -0
- package/dist/internal/splitStep.d.ts +24 -1
- package/dist/internal/splitStep.js +34 -2
- package/dist/internal/startOrEndOfZoned.js +2 -3
- package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
- package/dist/internal/temporalCompat/capabilities.js +35 -3
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/repros.d.ts +1 -1
- package/dist/internal/temporalCompat/repros.js +157 -0
- package/dist/internal/timestampEvents.d.ts +32 -0
- package/dist/internal/timestampEvents.js +76 -0
- package/dist/internal/utcZonedDateTime.d.ts +5 -2
- package/dist/internal/utcZonedDateTime.js +8 -5
- package/dist/internal/zonedBucket.js +8 -6
- package/dist/internal/zonedLocalDates.js +1 -1
- package/dist/internal/zonedTransitionSearch.d.ts +27 -0
- package/dist/internal/zonedTransitionSearch.js +218 -0
- package/dist/internal/zonedWallClock.d.ts +21 -7
- package/dist/internal/zonedWallClock.js +87 -18
- package/dist/internal/zonedWallClockOperations.d.ts +26 -13
- package/dist/internal/zonedWallClockOperations.js +87 -34
- package/dist/interval/validate/isValidInterval.d.ts +6 -3
- package/dist/interval/validate/isValidInterval.js +6 -3
- package/dist/plain/calculate/addDate.d.ts +11 -8
- package/dist/plain/calculate/addDate.js +5 -8
- package/dist/plain/calculate/addDateTime.d.ts +7 -4
- package/dist/plain/calculate/addDateTime.js +1 -4
- package/dist/plain/calculate/cycleDate.d.ts +16 -7
- package/dist/plain/calculate/cycleDate.js +3 -7
- package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
- package/dist/plain/calculate/cycleDateTime.js +1 -4
- package/dist/plain/calculate/cycleTime.d.ts +10 -5
- package/dist/plain/calculate/cycleTime.js +3 -5
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDate.js +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.js +1 -1
- package/dist/plain/calculate/diffDateTime.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.js +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
- package/dist/plain/calculate/diffTime.d.ts +1 -1
- package/dist/plain/calculate/diffTime.js +1 -1
- package/dist/plain/calculate/endOfDate.d.ts +8 -3
- package/dist/plain/calculate/endOfDate.js +1 -3
- package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
- package/dist/plain/calculate/endOfDateTime.js +1 -5
- package/dist/plain/calculate/endOfTime.d.ts +8 -2
- package/dist/plain/calculate/endOfTime.js +1 -2
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
- package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
- package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
- package/dist/plain/calculate/getWeekOfMonth.js +7 -4
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
- package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
- package/dist/plain/calculate/getWeeksInMonth.js +5 -2
- package/dist/plain/calculate/nextWeekday.d.ts +7 -3
- package/dist/plain/calculate/nextWeekday.js +1 -3
- package/dist/plain/calculate/previousWeekday.d.ts +7 -3
- package/dist/plain/calculate/previousWeekday.js +1 -3
- package/dist/plain/calculate/roundDate.d.ts +20 -7
- package/dist/plain/calculate/roundDate.js +3 -10
- package/dist/plain/calculate/roundDateTime.d.ts +22 -8
- package/dist/plain/calculate/roundDateTime.js +3 -11
- package/dist/plain/calculate/roundTime.d.ts +20 -4
- package/dist/plain/calculate/roundTime.js +3 -7
- package/dist/plain/calculate/setDate.d.ts +7 -5
- package/dist/plain/calculate/setDate.js +1 -5
- package/dist/plain/calculate/setDateTime.d.ts +8 -5
- package/dist/plain/calculate/setDateTime.js +1 -5
- package/dist/plain/calculate/setTime.d.ts +10 -6
- package/dist/plain/calculate/setTime.js +4 -6
- package/dist/plain/calculate/startOfDate.d.ts +8 -2
- package/dist/plain/calculate/startOfDate.js +1 -2
- package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
- package/dist/plain/calculate/startOfDateTime.js +1 -2
- package/dist/plain/calculate/startOfTime.d.ts +8 -1
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractDate.d.ts +7 -4
- package/dist/plain/calculate/subtractDate.js +1 -4
- package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
- package/dist/plain/calculate/subtractDateTime.js +1 -4
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
- package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
- package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
- package/dist/plain/compare/areDatesEqualBy.js +8 -6
- package/dist/plain/compare/isBetweenDate.d.ts +13 -2
- package/dist/plain/compare/isBetweenDate.js +4 -4
- package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenDateTime.js +4 -4
- package/dist/plain/compare/isBetweenTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenTime.js +4 -4
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +1 -1
- package/dist/plain/compare/isThisUnit.js +1 -1
- package/dist/plain/format/formatCalendar.d.ts +21 -14
- package/dist/plain/format/formatCalendar.js +21 -16
- package/dist/plain/format/formatDate.js +5 -3
- package/dist/plain/format/formatDateRange.js +4 -2
- package/dist/plain/format/formatDateTime.js +4 -2
- package/dist/plain/format/formatDateTimeRange.js +4 -2
- package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
- package/dist/plain/format/formatDateTimeToParts.js +10 -6
- package/dist/plain/format/formatDateToParts.d.ts +13 -2
- package/dist/plain/format/formatDateToParts.js +8 -4
- package/dist/plain/format/formatRelativeDate.d.ts +16 -3
- package/dist/plain/format/formatRelativeDate.js +26 -15
- package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeDateTime.js +8 -5
- package/dist/plain/format/formatRelativeTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeTime.js +21 -13
- package/dist/plain/format/formatTime.js +4 -2
- package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
- package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDate.js +1 -3
- package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
- package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
- package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDate.js +2 -0
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
- package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtTime.js +2 -0
- package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
- package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
- package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
- package/dist/plain/map/mapDatesInRange.d.ts +8 -4
- package/dist/plain/map/mapDatesInRange.js +1 -4
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseDateTimeWithPattern.js +10 -7
- package/dist/plain/parse/parseDateWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseDateWithPattern.js +10 -7
- package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseTimeWithPattern.js +10 -7
- package/dist/plain/parse/parseUnitFromDate.d.ts +11 -3
- package/dist/plain/parse/parseUnitFromDate.js +3 -3
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +11 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +3 -3
- package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDate.js +2 -6
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
- package/dist/plain/validate/isValidDateRange.d.ts +19 -4
- package/dist/plain/validate/isValidDateRange.js +1 -4
- package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidDateTimeRange.js +2 -5
- package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidTimeRange.js +2 -5
- package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
- package/dist/precision/convert/fromExcelSerial.js +4 -5
- package/dist/precision/convert/fromNanoseconds.d.ts +1 -1
- package/dist/precision/convert/fromNanoseconds.js +1 -1
- package/dist/precision/convert/toExcelSerial.d.ts +9 -3
- package/dist/precision/convert/toExcelSerial.js +3 -4
- package/dist/precision/convert/toNanoseconds.d.ts +11 -6
- package/dist/precision/convert/toNanoseconds.js +11 -6
- package/dist/precision/validate/isValidInstant.d.ts +12 -3
- package/dist/precision/validate/isValidInstant.js +12 -3
- package/dist/span/calculate/spanMs.d.ts +10 -4
- package/dist/span/calculate/spanMs.js +10 -4
- package/dist/span/calculate/spanNs.d.ts +10 -4
- package/dist/span/calculate/spanNs.js +10 -4
- package/dist/span/validate/isValidSpan.d.ts +8 -3
- package/dist/span/validate/isValidSpan.js +8 -3
- package/dist/transport/calculate/bestAvailable.d.ts +47 -0
- package/dist/transport/calculate/bestAvailable.js +76 -0
- package/dist/transport/calculate/crossingTime.d.ts +58 -0
- package/dist/transport/calculate/crossingTime.js +76 -0
- package/dist/transport/calculate/cutoffAt.d.ts +90 -0
- package/dist/transport/calculate/cutoffAt.js +209 -0
- package/dist/transport/calculate/cutoffSchedule.d.ts +70 -0
- package/dist/transport/calculate/cutoffSchedule.js +71 -0
- package/dist/transport/calculate/dwellTime.d.ts +16 -7
- package/dist/transport/calculate/dwellTime.js +12 -8
- package/dist/transport/calculate/estimateDrift.d.ts +65 -0
- package/dist/transport/calculate/estimateDrift.js +75 -0
- package/dist/transport/calculate/index.d.ts +8 -0
- package/dist/transport/calculate/index.js +8 -0
- package/dist/transport/calculate/nextDeparture.d.ts +78 -0
- package/dist/transport/calculate/nextDeparture.js +131 -0
- package/dist/transport/calculate/punctualityRate.d.ts +42 -0
- package/dist/transport/calculate/punctualityRate.js +59 -0
- package/dist/transport/calculate/scheduleDelivery.d.ts +150 -0
- package/dist/transport/calculate/scheduleDelivery.js +300 -0
- package/dist/transport/calculate/transitTime.d.ts +21 -3
- package/dist/transport/calculate/transitTime.js +29 -46
- package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
- package/dist/transport/compare/classifyPunctuality.js +64 -0
- package/dist/transport/compare/index.d.ts +4 -0
- package/dist/transport/compare/index.js +4 -0
- package/dist/transport/compare/isPastCutoff.d.ts +33 -0
- package/dist/transport/compare/isPastCutoff.js +48 -0
- package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
- package/dist/transport/compare/scheduleDeviation.js +53 -0
- package/dist/transport/compare/timeToCutoff.d.ts +31 -0
- package/dist/transport/compare/timeToCutoff.js +47 -0
- package/dist/transport/convert/etaAtZone.d.ts +7 -0
- package/dist/transport/convert/etaAtZone.js +9 -4
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.js +1 -0
- package/dist/types/business-calendar.d.ts +19 -14
- package/dist/types/calendar-options.d.ts +15 -3
- package/dist/types/date-cycle-field.d.ts +5 -0
- package/dist/types/date-duration-unit.d.ts +4 -0
- package/dist/types/date-time-cycle-field.d.ts +4 -0
- package/dist/types/date-time-duration-units.d.ts +4 -0
- package/dist/types/date-time-unit.d.ts +4 -0
- package/dist/types/date-unit.d.ts +4 -0
- package/dist/types/disambiguation.d.ts +8 -0
- package/dist/types/duration-relative-to.d.ts +8 -0
- package/dist/types/duration-string-options.d.ts +28 -0
- package/dist/types/fiscal-calendar.d.ts +1 -1
- package/dist/types/fractional-digit.d.ts +5 -0
- package/dist/types/free-time-options.d.ts +21 -11
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.js +2 -1
- package/dist/types/interval.d.ts +8 -1
- package/dist/types/offset.d.ts +9 -0
- package/dist/types/operating-schedule.d.ts +71 -0
- package/dist/types/overflow.d.ts +6 -0
- package/dist/types/relative-rounding-method.d.ts +6 -0
- package/dist/types/relative-time-options.d.ts +33 -5
- package/dist/types/rounding-options.d.ts +27 -0
- package/dist/types/time-cycle-field.d.ts +4 -0
- package/dist/types/time-duration-unit.d.ts +4 -0
- package/dist/types/time-unit.d.ts +4 -0
- package/dist/types/transport-timestamps.d.ts +54 -0
- package/dist/types/transport-timestamps.js +0 -0
- package/dist/unix/calculate/addUnix.d.ts +19 -5
- package/dist/unix/calculate/addUnix.js +1 -5
- package/dist/unix/calculate/diffUnix.d.ts +13 -3
- package/dist/unix/calculate/diffUnix.js +1 -3
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +13 -3
- package/dist/unix/calculate/diffUnixAsDuration.js +1 -3
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +13 -3
- package/dist/unix/calculate/endOfQuarterForUnix.js +1 -3
- package/dist/unix/calculate/endOfUnix.d.ts +20 -4
- package/dist/unix/calculate/endOfUnix.js +1 -4
- package/dist/unix/calculate/isBetweenUnix.d.ts +26 -4
- package/dist/unix/calculate/isBetweenUnix.js +4 -6
- package/dist/unix/calculate/roundUnix.d.ts +31 -3
- package/dist/unix/calculate/roundUnix.js +3 -6
- package/dist/unix/calculate/setUnix.d.ts +35 -9
- package/dist/unix/calculate/setUnix.js +4 -13
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +13 -3
- package/dist/unix/calculate/startOfQuarterForUnix.js +1 -3
- package/dist/unix/calculate/startOfUnix.d.ts +20 -4
- package/dist/unix/calculate/startOfUnix.js +1 -4
- package/dist/unix/calculate/subtractUnix.d.ts +19 -5
- package/dist/unix/calculate/subtractUnix.js +1 -5
- package/dist/unix/compare/areUnixEqual.d.ts +7 -1
- package/dist/unix/compare/areUnixEqual.js +1 -1
- package/dist/unix/compare/areUnixEqualBy.d.ts +24 -7
- package/dist/unix/compare/areUnixEqualBy.js +13 -9
- package/dist/unix/compare/isAfterUnix.d.ts +7 -1
- package/dist/unix/compare/isAfterUnix.js +1 -1
- package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
- package/dist/unix/compare/isBeforeUnix.js +1 -1
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +14 -4
- package/dist/unix/convert/convertUnixToPlainDate.js +2 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +14 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.js +2 -4
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +14 -4
- package/dist/unix/convert/convertUnixToPlainTime.js +2 -4
- package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
- package/dist/unix/convert/convertUnixToUtc.js +3 -4
- package/dist/unix/convert/convertUnixToZoned.d.ts +10 -5
- package/dist/unix/convert/convertUnixToZoned.js +4 -5
- package/dist/unix/format/formatCalendarUnix.d.ts +27 -19
- package/dist/unix/format/formatCalendarUnix.js +4 -5
- package/dist/unix/format/formatRelativeUnix.d.ts +54 -5
- package/dist/unix/format/formatRelativeUnix.js +3 -5
- package/dist/unix/format/formatUnix.d.ts +24 -6
- package/dist/unix/format/formatUnix.js +8 -7
- package/dist/unix/get/getUnixNow.d.ts +8 -3
- package/dist/unix/get/getUnixNow.js +1 -3
- package/dist/unix/interval/intervalCountUnix.d.ts +14 -5
- package/dist/unix/interval/intervalCountUnix.js +2 -5
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
- package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +33 -5
- package/dist/unix/interval/intervalFromDurationUnix.js +6 -5
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalLengthUnix.d.ts +16 -6
- package/dist/unix/interval/intervalLengthUnix.js +4 -6
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +13 -3
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +1 -3
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
- package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
- package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +42 -11
- package/dist/unix/interval/splitIntervalByUnitUnix.js +21 -16
- package/dist/unix/parse/parseDateFromUnix.d.ts +13 -2
- package/dist/unix/parse/parseDateFromUnix.js +1 -2
- package/dist/unix/parse/parseDayFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseDayFromUnix.js +2 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +13 -1
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +1 -1
- package/dist/unix/parse/parseHourFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseHourFromUnix.js +2 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseMonthFromUnix.js +2 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseSecondFromUnix.js +2 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +13 -2
- package/dist/unix/parse/parseTimeFromUnix.js +1 -2
- package/dist/unix/parse/parseUnitFromUnix.d.ts +22 -3
- package/dist/unix/parse/parseUnitFromUnix.js +2 -3
- package/dist/unix/parse/parseWeekFromUnix.d.ts +23 -7
- package/dist/unix/parse/parseWeekFromUnix.js +3 -7
- package/dist/unix/parse/parseYearFromUnix.d.ts +14 -2
- package/dist/unix/parse/parseYearFromUnix.js +2 -2
- package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
- package/dist/unix/validate/isValidUnixRange.js +1 -4
- package/dist/utc/calculate/addUtc.d.ts +7 -4
- package/dist/utc/calculate/addUtc.js +1 -4
- package/dist/utc/calculate/diffUtc.d.ts +1 -1
- package/dist/utc/calculate/diffUtc.js +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +16 -3
- package/dist/utc/calculate/endOfUtc.js +2 -3
- package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
- package/dist/utc/calculate/isBetweenUtc.js +4 -4
- package/dist/utc/calculate/roundUtc.d.ts +26 -9
- package/dist/utc/calculate/roundUtc.js +3 -12
- package/dist/utc/calculate/setUtc.d.ts +7 -4
- package/dist/utc/calculate/setUtc.js +1 -4
- package/dist/utc/calculate/startOfUtc.d.ts +15 -2
- package/dist/utc/calculate/startOfUtc.js +1 -2
- package/dist/utc/calculate/subtractUtc.d.ts +7 -4
- package/dist/utc/calculate/subtractUtc.js +1 -4
- package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
- package/dist/utc/compare/areUtcEqualBy.js +2 -3
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +8 -3
- package/dist/utc/convert/convertUtcToPlainDate.js +5 -6
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +8 -3
- package/dist/utc/convert/convertUtcToPlainDateTime.js +5 -6
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +8 -3
- package/dist/utc/convert/convertUtcToPlainTime.js +5 -6
- package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
- package/dist/utc/convert/convertUtcToUnix.js +3 -4
- package/dist/utc/convert/convertUtcToZoned.d.ts +1 -1
- package/dist/utc/convert/convertUtcToZoned.js +1 -1
- package/dist/utc/format/formatCalendarUtc.d.ts +19 -8
- package/dist/utc/format/formatCalendarUtc.js +8 -6
- package/dist/utc/format/formatHttp.d.ts +1 -1
- package/dist/utc/format/formatHttp.js +1 -1
- package/dist/utc/format/formatRelativeUtc.d.ts +30 -10
- package/dist/utc/format/formatRelativeUtc.js +9 -11
- package/dist/utc/format/formatUtc.d.ts +17 -15
- package/dist/utc/format/formatUtc.js +8 -8
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
- package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
- package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
- package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
- package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
- package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
- package/dist/utc/parse/parseDateFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseDateFromUtc.js +1 -3
- package/dist/utc/parse/parseDayFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseDayFromUtc.js +1 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +4 -6
- package/dist/utc/parse/parseHourFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseHourFromUtc.js +1 -3
- package/dist/utc/parse/parseHttp.d.ts +1 -1
- package/dist/utc/parse/parseHttp.js +1 -1
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMicrosecondFromUtc.js +1 -3
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMillisecondFromUtc.js +1 -3
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMinuteFromUtc.js +1 -3
- package/dist/utc/parse/parseMonthFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseMonthFromUtc.js +1 -3
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseNanosecondFromUtc.js +1 -3
- package/dist/utc/parse/parseSecondFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseSecondFromUtc.js +1 -3
- package/dist/utc/parse/parseTimeFromUtc.d.ts +8 -3
- package/dist/utc/parse/parseTimeFromUtc.js +5 -6
- package/dist/utc/parse/parseUnitFromUtc.d.ts +17 -5
- package/dist/utc/parse/parseUnitFromUtc.js +6 -8
- package/dist/utc/parse/parseWeekFromUtc.d.ts +18 -10
- package/dist/utc/parse/parseWeekFromUtc.js +7 -13
- package/dist/utc/parse/parseYearFromUtc.d.ts +7 -3
- package/dist/utc/parse/parseYearFromUtc.js +1 -3
- package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
- package/dist/utc/validate/isValidUtcRange.js +2 -5
- package/dist/zoned/calculate/addZoned.d.ts +20 -10
- package/dist/zoned/calculate/addZoned.js +6 -13
- package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
- package/dist/zoned/calculate/cycleZoned.js +1 -8
- package/dist/zoned/calculate/diffZoned.d.ts +1 -1
- package/dist/zoned/calculate/diffZoned.js +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
- package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
- package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
- package/dist/zoned/calculate/roundZoned.d.ts +21 -4
- package/dist/zoned/calculate/roundZoned.js +3 -7
- package/dist/zoned/calculate/setZoned.d.ts +25 -8
- package/dist/zoned/calculate/setZoned.js +4 -12
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
- package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
- package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
- package/dist/zoned/calculate/startOfZoned.js +1 -3
- package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
- package/dist/zoned/calculate/subtractZoned.js +6 -13
- package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
- package/dist/zoned/compare/areZonedEqualBy.js +7 -5
- package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
- package/dist/zoned/compare/isBetweenZoned.js +4 -3
- package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
- package/dist/zoned/compare/isInDaylightSaving.js +40 -44
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +18 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +6 -11
- package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
- package/dist/zoned/convert/convertZonedToUnix.js +2 -4
- package/dist/zoned/convert/convertZonedToZoned.d.ts +1 -1
- package/dist/zoned/convert/convertZonedToZoned.js +1 -1
- package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
- package/dist/zoned/format/formatCalendarZoned.js +13 -9
- package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
- package/dist/zoned/format/formatRelativeZoned.js +7 -4
- package/dist/zoned/format/formatRfc2822.d.ts +2 -2
- package/dist/zoned/format/formatRfc2822.js +2 -2
- package/dist/zoned/format/formatRfc3339.d.ts +2 -3
- package/dist/zoned/format/formatRfc3339.js +2 -3
- package/dist/zoned/format/formatTimeZoneName.d.ts +12 -3
- package/dist/zoned/format/formatTimeZoneName.js +5 -4
- package/dist/zoned/format/formatZonedDateTime.js +2 -1
- package/dist/zoned/format/formatZonedRange.js +2 -1
- package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
- package/dist/zoned/format/formatZonedToParts.js +8 -5
- package/dist/zoned/get/getDstTransitions.d.ts +9 -10
- package/dist/zoned/get/getDstTransitions.js +12 -3
- package/dist/zoned/get/getTimeZoneOffset.d.ts +4 -1
- package/dist/zoned/get/getTimeZoneOffset.js +6 -3
- package/dist/zoned/get/getZonedNow.d.ts +13 -1
- package/dist/zoned/get/getZonedNow.js +12 -3
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
- package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
- package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
- package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
- package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
- package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +9 -3
- package/dist/zoned/parse/parseUnitFromZoned.js +1 -3
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +42 -11
- package/dist/zoned/validate/hasDaylightSaving.js +47 -31
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
- package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
- package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
- package/dist/zoned/validate/isValidZonedRange.js +1 -4
- package/package.json +18 -5
- package/skills/gmt-arithmetic/SKILL.md +1 -1
- package/skills/gmt-basics/SKILL.md +10 -1
- package/skills/gmt-integration/SKILL.md +10 -5
- package/skills/gmt-timezone/SKILL.md +150 -21
- package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
- package/dist/internal/resolveReadingTimeZone.js +0 -18
- package/dist/types/duration-unit.d.ts +0 -5
- /package/dist/types/{duration-unit.js → operating-schedule.js} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@northguild/gmt",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.0",
|
|
4
4
|
"description": "Temporal-based date and time utilities with timezone support and polyfill integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"date",
|
|
@@ -35,10 +35,9 @@
|
|
|
35
35
|
"dist",
|
|
36
36
|
"LICENSE",
|
|
37
37
|
"README.md",
|
|
38
|
-
"skills
|
|
39
|
-
"skills/
|
|
40
|
-
"skills/
|
|
41
|
-
"skills/gmt-integration"
|
|
38
|
+
"skills",
|
|
39
|
+
"!skills/_artifacts",
|
|
40
|
+
"!skills/contributor"
|
|
42
41
|
],
|
|
43
42
|
"type": "module",
|
|
44
43
|
"sideEffects": false,
|
|
@@ -55,6 +54,9 @@
|
|
|
55
54
|
"calendar/calculate": [
|
|
56
55
|
"./dist/calendar/calculate/index.d.ts"
|
|
57
56
|
],
|
|
57
|
+
"calendar/hours": [
|
|
58
|
+
"./dist/calendar/hours/index.d.ts"
|
|
59
|
+
],
|
|
58
60
|
"calendar/validate": [
|
|
59
61
|
"./dist/calendar/validate/index.d.ts"
|
|
60
62
|
],
|
|
@@ -175,6 +177,9 @@
|
|
|
175
177
|
"transport/calculate": [
|
|
176
178
|
"./dist/transport/calculate/index.d.ts"
|
|
177
179
|
],
|
|
180
|
+
"transport/compare": [
|
|
181
|
+
"./dist/transport/compare/index.d.ts"
|
|
182
|
+
],
|
|
178
183
|
"transport/convert": [
|
|
179
184
|
"./dist/transport/convert/index.d.ts"
|
|
180
185
|
],
|
|
@@ -290,6 +295,10 @@
|
|
|
290
295
|
"types": "./dist/calendar/calculate/index.d.ts",
|
|
291
296
|
"default": "./dist/calendar/calculate/index.js"
|
|
292
297
|
},
|
|
298
|
+
"./calendar/hours": {
|
|
299
|
+
"types": "./dist/calendar/hours/index.d.ts",
|
|
300
|
+
"default": "./dist/calendar/hours/index.js"
|
|
301
|
+
},
|
|
293
302
|
"./calendar/validate": {
|
|
294
303
|
"types": "./dist/calendar/validate/index.d.ts",
|
|
295
304
|
"default": "./dist/calendar/validate/index.js"
|
|
@@ -450,6 +459,10 @@
|
|
|
450
459
|
"types": "./dist/transport/calculate/index.d.ts",
|
|
451
460
|
"default": "./dist/transport/calculate/index.js"
|
|
452
461
|
},
|
|
462
|
+
"./transport/compare": {
|
|
463
|
+
"types": "./dist/transport/compare/index.d.ts",
|
|
464
|
+
"default": "./dist/transport/compare/index.js"
|
|
465
|
+
},
|
|
453
466
|
"./transport/convert": {
|
|
454
467
|
"types": "./dist/transport/convert/index.d.ts",
|
|
455
468
|
"default": "./dist/transport/convert/index.js"
|
|
@@ -24,7 +24,7 @@ sources:
|
|
|
24
24
|
metadata:
|
|
25
25
|
type: core
|
|
26
26
|
library: '@northguild/gmt'
|
|
27
|
-
library_version: '1.
|
|
27
|
+
library_version: '1.18.0'
|
|
28
28
|
---
|
|
29
29
|
|
|
30
30
|
# GMT Basics
|
|
@@ -77,6 +77,15 @@ input before you act on it.
|
|
|
77
77
|
|
|
78
78
|
- `formatRelative*` measure from now when `reference` is omitted, so the output
|
|
79
79
|
changes from day to day. Pass `reference` whenever the result must be deterministic.
|
|
80
|
+
`largestUnit` takes a singular or plural unit name (`"hour"` or `"hours"`) from the
|
|
81
|
+
units the function's values have: `formatRelativeDate` day to year, `formatRelativeTime`
|
|
82
|
+
second to hour, the others second to year. Any other unit returns `""`.
|
|
83
|
+
`roundingMethod` is `"floor"`, `"ceil"` or `"round"`: any other value returns `""`.
|
|
84
|
+
- In a `parse*WithPattern` pattern, `''` is one literal quote, inside or outside
|
|
85
|
+
quoted text (UTS #35): `"MMM d, ''yy"` reads `"Mar 15, '24"`. It is not an empty
|
|
86
|
+
separator. Write adjacent fields with nothing between them, as in `"yyyyMMdd"`.
|
|
87
|
+
- `getZonedNow` reads `smallestUnit` only, and writes milliseconds when it is
|
|
88
|
+
omitted or `undefined`. The string always carries the offset and the zone.
|
|
80
89
|
- `parseDateWithPattern`, `parseRfc2822` and `parseHttp` return `""` on
|
|
81
90
|
shape-valid-but-unreal dates such as 31 February (regex only proves shape;
|
|
82
91
|
Temporal validates the real value). Parsers reject; only arithmetic clamps.
|
|
@@ -17,7 +17,7 @@ sources:
|
|
|
17
17
|
metadata:
|
|
18
18
|
type: composition
|
|
19
19
|
library: '@northguild/gmt'
|
|
20
|
-
library_version: '1.
|
|
20
|
+
library_version: '1.18.0'
|
|
21
21
|
---
|
|
22
22
|
|
|
23
23
|
# GMT Integration
|
|
@@ -48,8 +48,11 @@ which lint package to install for Date-ban enforcement.
|
|
|
48
48
|
`convertUtcToUnix(value, { epochUnit: "seconds" })` rather than
|
|
49
49
|
dividing/multiplying by hand. An `epochUnit` option must be `"seconds"` or
|
|
50
50
|
`"milliseconds"` (singular accepted): any other value returns the sentinel
|
|
51
|
-
instead of being read as milliseconds. `unix/`
|
|
52
|
-
UTC unless you pass `timeZone` (`"local"` for the system zone)
|
|
51
|
+
instead of being read as milliseconds. `unix/` and `utc/` read zone-dependent
|
|
52
|
+
fields in UTC unless you pass `timeZone` (`"local"` for the system zone); that
|
|
53
|
+
holds for the `utc/` readers and converters too, such as `parseHourFromUtc` and
|
|
54
|
+
`convertUtcToPlainDate`. `convertUtcToZoned` and `convertUnixToZoned` take a
|
|
55
|
+
required zone and do not accept `"local"`. A
|
|
53
56
|
blank epoch string is invalid, not `1970`, and `sortUnix`/`minUnix`/`maxUnix`
|
|
54
57
|
skip values that are not integer epochs in Temporal's range.
|
|
55
58
|
4. **Nanoseconds are `bigint`, never `number`.** A `number` is exact only to
|
|
@@ -75,8 +78,10 @@ which lint package to install for Date-ban enforcement.
|
|
|
75
78
|
unsynchronized" marker. Check for `0n` yourself before trusting it as 1900.
|
|
76
79
|
- .NET ticks name an instant only when `DateTimeKind` is `Utc`. `Local` and
|
|
77
80
|
`Unspecified` ticks count wall-clock time.
|
|
78
|
-
- `toNanoseconds` and `isValidInstant` read the offset and
|
|
79
|
-
zone annotation
|
|
81
|
+
- `toNanoseconds` and `isValidInstant` read the offset and do not validate a
|
|
82
|
+
bracketed zone annotation. One thing is read from it: an offset written to the
|
|
83
|
+
minute that is the zone's sub-minute offset rounded (`-00:45[Africa/Monrovia]`)
|
|
84
|
+
names the instant the zone gives.
|
|
80
85
|
6. **Lint packages are toolchain-specific, not mutually exclusive.** Recommend
|
|
81
86
|
only the one matching the project's existing linter; do not force all three.
|
|
82
87
|
7. **Read the READMEs.** This skill is a routing pointer. For full integration
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gmt-timezone
|
|
3
3
|
description: >
|
|
4
|
-
Timezone-aware operations —
|
|
5
|
-
|
|
6
|
-
arithmetic, the instant-plus-offset pair,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
demurrageClock
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
not an API dump.
|
|
4
|
+
Timezone-aware operations — zoned now, formatting zoned values/ranges,
|
|
5
|
+
plain↔zoned↔UTC↔Unix conversion, DST disambiguation on construction and
|
|
6
|
+
arithmetic, the instant-plus-offset pair, classifyLocal/resolveLocal, real
|
|
7
|
+
unit boundaries (startOfZoned/endOfZoned/startOfUnix/endOfUnix), hours in a
|
|
8
|
+
local day, floorToZone/bucketRange, calendar-annotated zoned strings, range
|
|
9
|
+
limits, transport legs (transitTime, etaAtZone, dwellTime, crossingTime,
|
|
10
|
+
scheduleDelivery), cut-offs (cutoffAt, cutoffSchedule, isPastCutoff,
|
|
11
|
+
timeToCutoff), planned versus actual (scheduleDeviation, classifyPunctuality,
|
|
12
|
+
punctualityRate, bestAvailable and estimateDrift over PLN/EST/REQ/ACT,
|
|
13
|
+
nextDeparture), intermodal free time (freeTimeExpiry, chargeableDays,
|
|
14
|
+
demurrageClock), billingTimeline, and operating hours (OperatingSchedule,
|
|
15
|
+
recurringWindows, operatingIntervals, isOpenAt, nextOpenAt, nextCloseAt,
|
|
16
|
+
operatingTimeBetween, addOperatingTime), and daylight time
|
|
17
|
+
(isInDaylightSaving, hasDaylightSaving). Points to the README and JSDoc.
|
|
19
18
|
sources:
|
|
20
19
|
- 'northguild/gmt:README.md'
|
|
21
20
|
- 'northguild/gmt:packages/gmt/src/zoned/get/index.ts'
|
|
@@ -34,13 +33,17 @@ sources:
|
|
|
34
33
|
- 'northguild/gmt:packages/gmt/src/instant/convert/index.ts'
|
|
35
34
|
- 'northguild/gmt:packages/gmt/src/calendar/calculate/index.ts'
|
|
36
35
|
- 'northguild/gmt:packages/gmt/src/calendar/validate/index.ts'
|
|
36
|
+
- 'northguild/gmt:packages/gmt/src/calendar/hours/index.ts'
|
|
37
|
+
- 'northguild/gmt:packages/gmt/src/types/operating-schedule.ts'
|
|
38
|
+
- 'northguild/gmt:packages/gmt/src/types/transport-timestamps.ts'
|
|
37
39
|
- 'northguild/gmt:packages/gmt/src/transport/calculate/index.ts'
|
|
40
|
+
- 'northguild/gmt:packages/gmt/src/transport/compare/index.ts'
|
|
38
41
|
- 'northguild/gmt:packages/gmt/src/transport/convert/index.ts'
|
|
39
42
|
- 'northguild/gmt:packages/gmt/src/intermodal/calculate/index.ts'
|
|
40
43
|
metadata:
|
|
41
44
|
type: core
|
|
42
45
|
library: '@northguild/gmt'
|
|
43
|
-
library_version: '1.
|
|
46
|
+
library_version: '1.18.0'
|
|
44
47
|
---
|
|
45
48
|
|
|
46
49
|
# GMT Timezone
|
|
@@ -66,6 +69,10 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
66
69
|
- The user is working out when a container's free time ends, how many days of
|
|
67
70
|
demurrage or detention are chargeable and for which dates, or which events a
|
|
68
71
|
charge's clock runs between.
|
|
72
|
+
- The user is asking whether a gate, desk, office or venue is open at an
|
|
73
|
+
instant, when it next opens or closes, how many working hours passed between
|
|
74
|
+
two instants, or when an SLA measured in open hours falls due — or is
|
|
75
|
+
expanding a recurring local window such as a night curfew.
|
|
69
76
|
|
|
70
77
|
## Core rules
|
|
71
78
|
|
|
@@ -192,7 +199,64 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
192
199
|
(a skipped date is not counted, a re-entered one only once), and is the
|
|
193
200
|
library's one "local days crossed" count.
|
|
194
201
|
Bare instants with no `targetZone` return `null`: an offset is not a place.
|
|
195
|
-
|
|
202
|
+
`crossingTime(entry, exit, targetZone)` returns `{ duration, enter, exit }`
|
|
203
|
+
with no day count (a crossing that needs one is a dwell); `targetZone` is
|
|
204
|
+
required and always the rendering zone — a bracket on the input never
|
|
205
|
+
supplies it.
|
|
206
|
+
`scheduleDelivery(legs, { startTimeZone? })` chains legs into `{ eta,
|
|
207
|
+
legTimes }`: each leg leaves at its explicit `departure` or at the previous
|
|
208
|
+
arrival plus that leg's `dwellAfter`, the minimum connect time. A scheduled
|
|
209
|
+
departure earlier than that is a missed connection and returns `null`
|
|
210
|
+
(equal passes). A departure is exact (instant or zoned string) or a
|
|
211
|
+
zoneless wall time: on the first leg it is read in `startTimeZone`, on a
|
|
212
|
+
later leg in the previous leg's `timeZone` (where that leg leaves from),
|
|
213
|
+
both with `"compatible"` resolution (ambiguous → earlier, skipped →
|
|
214
|
+
later). On a later leg, a repeated hour instead takes the earliest pass
|
|
215
|
+
at or after the previous arrival plus its dwell. A
|
|
216
|
+
negative leg `duration` is `null`; the last leg's `dwellAfter` is echoed,
|
|
217
|
+
never added. `mode`, `origin` and `destination` are opaque tags echoed on
|
|
218
|
+
each `LegTime`. An empty array returns `{ eta: "", legTimes: [] }`.
|
|
219
|
+
16. **Cut-offs count back from the caller's event.**
|
|
220
|
+
`cutoffAt(anchor, offset, { timeZone, atLocalTime?, calendar?, roll? })`
|
|
221
|
+
takes an offset off the anchor (loading, departure or arrival are
|
|
222
|
+
different instants; it never guesses which). With `atLocalTime` the
|
|
223
|
+
offset's exact part comes off the anchor's instant first, its calendar
|
|
224
|
+
part off the local date, and the cut-off is that time of day: `P2D` at
|
|
225
|
+
`"17:00"` is 17:00 two days before, not 48 hours. Without it the offset
|
|
226
|
+
is `ZonedDateTime#subtract` (`P2D` keeps the wall clock, `PT96H` is 96
|
|
227
|
+
exact hours). `calendar` and `roll` go together or not at all — there is
|
|
228
|
+
no default roll, as in `rollDate`; either alone is `""`. A repeated hour
|
|
229
|
+
takes the first pass (RFC 5545 §3.3.5); a skipped hour is `""`. It does
|
|
230
|
+
not check that the cut-off is before the anchor.
|
|
231
|
+
`cutoffSchedule(anchor, [{ name, offset, atLocalTime? }], options)`
|
|
232
|
+
sorts the stack by instant and returns `[]` if any entry fails.
|
|
233
|
+
`isPastCutoff(now, cutoff)` is `true` from the cut-off instant on;
|
|
234
|
+
`timeToCutoff(now, cutoff)` is exact hours, `PT0S` at it, negative after.
|
|
235
|
+
17. **Planned versus actual is exact time under the caller's tolerance.**
|
|
236
|
+
`scheduleDeviation(planned, actual)` is `actual − planned` in exact hours
|
|
237
|
+
(`"PT14M"` late, `"-PT5M"` early; a fall-back delay is `PT1H`, never
|
|
238
|
+
`PT0S`). `classifyPunctuality(planned, actual, { late, early? })` returns
|
|
239
|
+
`"early" | "onTime" | "late"`, or `null` on invalid input: both edges are
|
|
240
|
+
outside (exactly `late` is late), and without `early` every early arrival
|
|
241
|
+
is on time. There is no default tolerance; tolerances are exact durations
|
|
242
|
+
(a day is 24 hours; years, months, weeks or negative return `null`).
|
|
243
|
+
`punctualityRate(pairs, tolerance)` returns `{ onTime, total, rate }`,
|
|
244
|
+
judging every pair under a tolerance read once; an empty list or any
|
|
245
|
+
invalid pair is `null`. A `TimestampEvent` is `{ classifier: "PLN" |
|
|
246
|
+
"EST" | "REQ" | "ACT", at, recordedAt }` (DCSA vocabulary).
|
|
247
|
+
`bestAvailable(events)` returns `{ at, classifier }`: `ACT` whenever one
|
|
248
|
+
exists, else `PLN`, else `REQ`, else `EST`, newest `recordedAt` within the
|
|
249
|
+
class — never an `EST` shown as an actual. `estimateDrift(events, {
|
|
250
|
+
tolerance? })` reports first-to-last `EST` drift, `revisions` and
|
|
251
|
+
`exceedsTolerance` (strictly greater, either direction; `null` without a
|
|
252
|
+
tolerance), and is `null` with fewer than two `EST`s.
|
|
253
|
+
`nextDeparture(after, timetable, { minimumConnection? })` returns the
|
|
254
|
+
first departure at or after `after + minimumConnection`: a list entry
|
|
255
|
+
echoed as written (ready for `scheduleDelivery`'s `departure`), or for
|
|
256
|
+
`{ headway, from, to }` (a GTFS `frequencies.txt` row) `from + k × headway`
|
|
257
|
+
in the half-open `[from, to)`, written the way `from` was. Every moment
|
|
258
|
+
must carry its offset; a wall time without one is `""`.
|
|
259
|
+
18. **Free time is counted in the terminal's local days; the start day and the
|
|
196
260
|
basis are tariff terms, never defaults.**
|
|
197
261
|
`freeTimeExpiry(clockStart, freeDays, { basis, timeZone, firstDay, calendar? })`
|
|
198
262
|
returns `{ freeTimeStart, lastFreeDay, expiresAt }`: local dates in
|
|
@@ -212,7 +276,7 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
212
276
|
demurrage gate-in to loaded, detention empty release to gate-in; `combined`
|
|
213
277
|
runs both as one period. No standard fixes how these days are counted;
|
|
214
278
|
every term is the tariff's.
|
|
215
|
-
|
|
279
|
+
19. **Billing deadlines are dates counted from an anchor, and every window is
|
|
216
280
|
the caller's.** `billingTimeline({ anchorOn, invoiceIssuedOn?,
|
|
217
281
|
requestReceivedOn? }, { issueDays, disputeDays, resolutionDays,
|
|
218
282
|
agreedResolutionOn? })` returns `{ invoiceDeadline, issuedByDeadline,
|
|
@@ -227,7 +291,64 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
227
291
|
`convertUtcToPlainDate(instant, { timeZone })`. A request before its
|
|
228
292
|
invoice, or an agreed date before the request, returns `null`. GMT
|
|
229
293
|
computes dates, not liability.
|
|
230
|
-
|
|
294
|
+
20. **Operating hours are local windows resolved in the schedule's zone.** An
|
|
295
|
+
`OperatingSchedule` is `{ timeZone, weekly, holidays?, overrides? }`:
|
|
296
|
+
`weekly` maps ISO weekdays `1`–`7` to half-open `LocalWindow`s
|
|
297
|
+
(`{ from: "09:00", to: "17:00" }`); a `to` at or before `from` wraps past
|
|
298
|
+
midnight and the window belongs to the date it starts on. Holidays are local
|
|
299
|
+
dates (a `BusinessCalendar` is accepted; only its `holidays` are read); an
|
|
300
|
+
override replaces one date's windows, holiday or not. Every edge goes
|
|
301
|
+
through `resolveLocal` with `disambiguation` (default `"compatible"`), so a
|
|
302
|
+
23:00–06:00 window is 8 real hours across New York's fall-back night.
|
|
303
|
+
`recurringWindows(weekly, range, zone)` and `operatingIntervals(schedule,
|
|
304
|
+
range)` return merged open intervals; `isOpenAt`, `nextOpenAt` and
|
|
305
|
+
`nextCloseAt` answer point questions; `operatingTimeBetween(start, end,
|
|
306
|
+
schedule)` is open time elapsed (hours as the largest unit), and
|
|
307
|
+
`addOperatingTime(start, "PT8H", schedule)` is the SLA deadline. Searches
|
|
308
|
+
stop at `within` (default `"P1Y"`) and return `""` past it; `P1D` is not
|
|
309
|
+
open time and returns `""`.
|
|
310
|
+
21. **A zoned string names one instant in every reader.** Temporal writes a
|
|
311
|
+
zone's offset rounded to the minute, so a zone with a sub-minute offset
|
|
312
|
+
(`Africa/Monrovia` stood at −00:44:30 until 1972) is written `-00:45`.
|
|
313
|
+
Every function that reads a moment (`toNanoseconds`, `spanNs`, `Interval`
|
|
314
|
+
endpoints, `floorToZone`, `getTimeZoneOffset`, `scheduleDeviation`,
|
|
315
|
+
`timeToCutoff`, `dwellTime`) reads an offset written to the minute as the
|
|
316
|
+
bracketed zone's real offset when it is that offset rounded (TC39
|
|
317
|
+
`ToTemporalZonedDateTime`, match-minutes):
|
|
318
|
+
`1960-01-01T00:20:00-00:45[Africa/Monrovia]` is `01:04:30Z`. So a zoned
|
|
319
|
+
string GMT wrote reads back as the instant it was written for. Otherwise
|
|
320
|
+
the written offset fixes the instant. A function that reads only the
|
|
321
|
+
instant does not validate the bracket, and the bracket never supplies its
|
|
322
|
+
rendering zone. A function that keeps the zone (`isValidZonedDateTime`,
|
|
323
|
+
`transitTime`, `toOffsetInstant`, every `zoned/` function, a zoned
|
|
324
|
+
`relativeTo`) rejects a bracket that contradicts the offset, and an offset
|
|
325
|
+
written with seconds must be the zone's offset exactly:
|
|
326
|
+
`-00:45:00[Africa/Monrovia]` is invalid, `-00:44:30[Africa/Monrovia]` is
|
|
327
|
+
valid. Two limits are Temporal's own. A wall time repeated inside a
|
|
328
|
+
sub-minute offset change, written to the minute, reads as its first pass
|
|
329
|
+
(`1952-10-15T23:59:59-11:20[Pacific/Niue]`); write the offset with seconds
|
|
330
|
+
to name the second. A zoned read refuses a local date of −271821-04-19,
|
|
331
|
+
which an instant reader accepts; pass that instant in `Z` form.
|
|
332
|
+
22. **Daylight time is read from the zone's clock changes.**
|
|
333
|
+
`isInDaylightSaving(zoned)` and `hasDaylightSaving(timeZone, { at })`
|
|
334
|
+
apply one rule, GMT's own definition and not the tz database's daylight
|
|
335
|
+
flag (no JavaScript API exposes it): daylight time runs from a forward
|
|
336
|
+
change of the zone's clocks to the backward change of the same size that
|
|
337
|
+
undoes it, less than 365 days later. A forward change never undone is a
|
|
338
|
+
change of standard time, so
|
|
339
|
+
`isInDaylightSaving("2016-12-01T12:00:00+03:00[Europe/Istanbul]")` is
|
|
340
|
+
`false`. The higher of two alternating offsets is the daylight one:
|
|
341
|
+
`Europe/Dublin` in summer, `Africa/Casablanca` at `+01:00`.
|
|
342
|
+
`hasDaylightSaving` is `true` when the zone is in daylight time at `at`
|
|
343
|
+
or a daylight period begins less than 365 days after it. Pass `at` (an
|
|
344
|
+
ISO 8601 instant string) for an answer that does not depend on the day
|
|
345
|
+
the code runs: `hasDaylightSaving("Europe/Istanbul", { at:
|
|
346
|
+
"2015-06-15T12:00:00Z" })` is `true`, and with `"2016-06-15T12:00:00Z"`
|
|
347
|
+
it is `false`. Without `at` the reference is the current instant. Both
|
|
348
|
+
read the runtime's time zone data, so an answer can change when that data
|
|
349
|
+
does. The JSDoc of `isInDaylightSaving` lists what the rule reads as
|
|
350
|
+
standard time.
|
|
351
|
+
23. **Read the README.** This skill is a routing pointer. For the full DST
|
|
231
352
|
disambiguation walkthrough, code examples, and locale ICU notes, read the
|
|
232
353
|
installed package's `README.md` and the source JSDoc.
|
|
233
354
|
|
|
@@ -237,7 +358,7 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
237
358
|
- **Formatting**: `formatZonedDateTime`, `formatZonedRange`,
|
|
238
359
|
`formatRelativeZoned`, `formatTimeZoneName`
|
|
239
360
|
- **Validation**: `isValidTimeZone`, `isValidZonedDateTime`,
|
|
240
|
-
`hasDaylightSaving
|
|
361
|
+
`hasDaylightSaving` (`{ at }`), `getDstTransitions`, `isInDaylightSaving`
|
|
241
362
|
- **Conversion**: `convertPlainDateTimeToZoned`, `convertZonedToPlainDateTime`,
|
|
242
363
|
`convertUtcToZoned`, `convertZonedToUtc`, `convertZonedToCalendar`,
|
|
243
364
|
`convertUtcToUnix`, `convertUnixToUtc`
|
|
@@ -253,10 +374,18 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
253
374
|
- **Local-time resolution**: `classifyLocal`, `resolveLocal`
|
|
254
375
|
- **Zone-aware buckets**: `floorToZone`, `bucketRange`,
|
|
255
376
|
`isValidZoneBucketUnit`
|
|
256
|
-
- **Transport legs and dwell**: `transitTime`, `etaAtZone`, `dwellTime
|
|
377
|
+
- **Transport legs and dwell**: `transitTime`, `etaAtZone`, `dwellTime`,
|
|
378
|
+
`crossingTime`, `scheduleDelivery`
|
|
379
|
+
- **Cut-offs and deadlines**: `cutoffAt`, `cutoffSchedule`, `isPastCutoff`,
|
|
380
|
+
`timeToCutoff`
|
|
381
|
+
- **Punctuality and timestamp classes**: `scheduleDeviation`,
|
|
382
|
+
`classifyPunctuality`, `punctualityRate`, `bestAvailable`, `estimateDrift`,
|
|
383
|
+
`nextDeparture`
|
|
257
384
|
- **Free time and demurrage**: `freeTimeExpiry`, `chargeableDays`,
|
|
258
385
|
`demurrageClock`
|
|
259
386
|
- **Billing deadlines**: `billingTimeline`
|
|
387
|
+
- **Operating hours**: `recurringWindows`, `operatingIntervals`, `isOpenAt`,
|
|
388
|
+
`nextOpenAt`, `nextCloseAt`, `operatingTimeBetween`, `addOperatingTime`
|
|
260
389
|
|
|
261
390
|
## References
|
|
262
391
|
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolve the `timeZone` option a UTC reader uses to read a value's wall-clock fields.
|
|
3
|
-
*
|
|
4
|
-
* - `undefined` (the option omitted) resolves to `"UTC"`.
|
|
5
|
-
* - A valid IANA zone (or `"UTC"`) resolves to itself.
|
|
6
|
-
* - Any other value is invalid and resolves to `null`, which callers map to their sentinel.
|
|
7
|
-
*
|
|
8
|
-
* @param timeZone raw option value from caller input
|
|
9
|
-
* @returns the zone to read in, or `null` when the value is invalid
|
|
10
|
-
*/
|
|
11
|
-
export declare function resolveReadingTimeZone(timeZone: unknown): string | null;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { isValidTimeZone } from "../zoned/validate/isValidTimeZone.js";
|
|
2
|
-
/**
|
|
3
|
-
* Resolve the `timeZone` option a UTC reader uses to read a value's wall-clock fields.
|
|
4
|
-
*
|
|
5
|
-
* - `undefined` (the option omitted) resolves to `"UTC"`.
|
|
6
|
-
* - A valid IANA zone (or `"UTC"`) resolves to itself.
|
|
7
|
-
* - Any other value is invalid and resolves to `null`, which callers map to their sentinel.
|
|
8
|
-
*
|
|
9
|
-
* @param timeZone raw option value from caller input
|
|
10
|
-
* @returns the zone to read in, or `null` when the value is invalid
|
|
11
|
-
*/
|
|
12
|
-
export function resolveReadingTimeZone(timeZone) {
|
|
13
|
-
if (timeZone === undefined || timeZone === "UTC")
|
|
14
|
-
return "UTC";
|
|
15
|
-
return typeof timeZone === "string" && isValidTimeZone(timeZone)
|
|
16
|
-
? timeZone
|
|
17
|
-
: null;
|
|
18
|
-
}
|
|
File without changes
|