@northguild/gmt 1.17.0 → 1.19.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 +55 -2480
- package/dist/calendar/calculate/bucketRange.d.ts +12 -4
- package/dist/calendar/calculate/bucketRange.js +20 -63
- package/dist/calendar/calculate/floorToZone.d.ts +14 -4
- package/dist/calendar/calculate/floorToZone.js +18 -9
- 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 +59 -0
- package/dist/calendar/hours/addOperatingTime.js +65 -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 +45 -0
- package/dist/calendar/hours/isOpenAt.js +50 -0
- package/dist/calendar/hours/nextCloseAt.d.ts +55 -0
- package/dist/calendar/hours/nextCloseAt.js +57 -0
- package/dist/calendar/hours/nextOpenAt.d.ts +51 -0
- package/dist/calendar/hours/nextOpenAt.js +53 -0
- package/dist/calendar/hours/operatingIntervals.d.ts +48 -0
- package/dist/calendar/hours/operatingIntervals.js +57 -0
- package/dist/calendar/hours/operatingTimeBetween.d.ts +45 -0
- package/dist/calendar/hours/operatingTimeBetween.js +54 -0
- package/dist/calendar/hours/recurringWindows.d.ts +68 -0
- package/dist/calendar/hours/recurringWindows.js +88 -0
- package/dist/calendar/index.d.ts +1 -0
- package/dist/calendar/index.js +1 -0
- package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
- package/dist/duration/calculate/durationFromUnits.js +67 -0
- package/dist/duration/calculate/getDurationUnit.d.ts +2 -2
- package/dist/duration/calculate/getDurationUnit.js +2 -2
- package/dist/duration/calculate/index.d.ts +3 -1
- package/dist/duration/calculate/index.js +3 -1
- package/dist/duration/calculate/negateDuration.d.ts +1 -1
- package/dist/duration/calculate/negateDuration.js +1 -1
- package/dist/duration/calculate/totalDuration.d.ts +73 -0
- package/dist/duration/calculate/{durationAs.js → totalDuration.js} +29 -27
- package/dist/duration/calculate/totalUnits.d.ts +49 -0
- package/dist/duration/calculate/totalUnits.js +73 -0
- package/dist/duration/compare/compareDurations.d.ts +13 -7
- package/dist/duration/compare/compareDurations.js +4 -7
- 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/duty/calculate/dutyDayFor.d.ts +38 -0
- package/dist/duty/calculate/dutyDayFor.js +71 -0
- package/dist/duty/calculate/dutyTotals.d.ts +24 -0
- package/dist/duty/calculate/dutyTotals.js +41 -0
- package/dist/duty/calculate/dutyViolations.d.ts +74 -0
- package/dist/duty/calculate/dutyViolations.js +65 -0
- package/dist/duty/calculate/evaluateDutyLog.d.ts +77 -0
- package/dist/duty/calculate/evaluateDutyLog.js +75 -0
- package/dist/duty/calculate/index.d.ts +7 -0
- package/dist/duty/calculate/index.js +7 -0
- package/dist/duty/calculate/longestRun.d.ts +28 -0
- package/dist/duty/calculate/longestRun.js +54 -0
- package/dist/duty/calculate/qualifyingRestPairs.d.ts +37 -0
- package/dist/duty/calculate/qualifyingRestPairs.js +58 -0
- package/dist/duty/calculate/qualifyingRests.d.ts +27 -0
- package/dist/duty/calculate/qualifyingRests.js +49 -0
- package/dist/duty/index.d.ts +3 -0
- package/dist/duty/index.js +4 -0
- package/dist/duty/validate/index.d.ts +1 -0
- package/dist/duty/validate/index.js +1 -0
- package/dist/duty/validate/isValidDutyLog.d.ts +24 -0
- package/dist/duty/validate/isValidDutyLog.js +34 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/instant/convert/classifyLocal.d.ts +5 -1
- package/dist/instant/convert/classifyLocal.js +16 -6
- package/dist/instant/convert/fromOffsetInstant.d.ts +7 -1
- package/dist/instant/convert/fromOffsetInstant.js +9 -2
- package/dist/instant/convert/resolveLocal.d.ts +18 -8
- package/dist/instant/convert/resolveLocal.js +21 -17
- package/dist/instant/convert/toOffsetInstant.d.ts +33 -16
- package/dist/instant/convert/toOffsetInstant.js +28 -13
- package/dist/instant/index.d.ts +1 -0
- package/dist/instant/index.js +1 -0
- package/dist/instant/validate/index.d.ts +1 -0
- package/dist/instant/validate/index.js +1 -0
- package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
- package/dist/instant/validate/isValidUtcOffset.js +35 -0
- package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
- package/dist/intermodal/calculate/billingTimeline.js +2 -2
- package/dist/intermodal/calculate/chargeableDays.d.ts +19 -11
- package/dist/intermodal/calculate/chargeableDays.js +13 -10
- package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
- package/dist/intermodal/calculate/demurrageClock.js +7 -7
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +12 -4
- package/dist/intermodal/calculate/freeTimeExpiry.js +19 -8
- package/dist/intermodal/calculate/index.d.ts +1 -0
- package/dist/intermodal/calculate/index.js +1 -0
- package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
- package/dist/intermodal/calculate/multimodalETA.js +145 -0
- package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
- package/dist/intermodal/format/bolTimestamp.js +78 -0
- package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
- package/dist/intermodal/format/formatEdifactDate.js +42 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
- package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
- package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
- package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactTime.js +43 -0
- package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
- package/dist/intermodal/format/formatEpcisEvent.js +79 -0
- package/dist/intermodal/format/formatX12Date.d.ts +35 -0
- package/dist/intermodal/format/formatX12Date.js +43 -0
- package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
- package/dist/intermodal/format/formatX12DateRange.js +45 -0
- package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
- package/dist/intermodal/format/formatX12DateTime.js +47 -0
- package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
- package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
- package/dist/intermodal/format/formatX12Time.d.ts +42 -0
- package/dist/intermodal/format/formatX12Time.js +50 -0
- package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
- package/dist/intermodal/format/formatX12TimeElement.js +54 -0
- package/dist/intermodal/format/index.d.ts +14 -0
- package/dist/intermodal/format/index.js +14 -0
- package/dist/intermodal/index.d.ts +3 -0
- package/dist/intermodal/index.js +3 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
- package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
- package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
- package/dist/intermodal/parse/index.d.ts +18 -0
- package/dist/intermodal/parse/index.js +18 -0
- package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactDate.js +45 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
- package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactTime.js +45 -0
- package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
- package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
- package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
- package/dist/intermodal/parse/parseX12Date.js +47 -0
- package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
- package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
- package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
- package/dist/intermodal/parse/parseX12DateRange.js +52 -0
- package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
- package/dist/intermodal/parse/parseX12DateTime.js +53 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
- package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
- package/dist/intermodal/parse/parseX12Time.js +77 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
- package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
- package/dist/intermodal/validate/index.d.ts +18 -0
- package/dist/intermodal/validate/index.js +18 -0
- package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
- package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
- package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
- package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
- package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
- package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
- package/dist/intermodal/validate/isValidX12Date.js +30 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
- package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
- package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
- package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
- package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12Time.js +40 -0
- package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
- package/dist/internal/businessCalendar.d.ts +5 -0
- package/dist/internal/businessCalendar.js +9 -10
- 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/dutyEngine.d.ts +125 -0
- package/dist/internal/dutyEngine.js +1746 -0
- package/dist/internal/dutyLog.d.ts +27 -0
- package/dist/internal/dutyLog.js +47 -0
- package/dist/internal/dutyPeriods.d.ts +135 -0
- package/dist/internal/dutyPeriods.js +369 -0
- package/dist/internal/dutyRules.d.ts +197 -0
- package/dist/internal/dutyRules.js +484 -0
- package/dist/internal/ediDateTimeFields.d.ts +97 -0
- package/dist/internal/ediDateTimeFields.js +288 -0
- package/dist/internal/ediDateTimeWriter.d.ts +92 -0
- package/dist/internal/ediDateTimeWriter.js +298 -0
- package/dist/internal/ediGrammar.d.ts +158 -0
- package/dist/internal/ediGrammar.js +384 -0
- package/dist/internal/englishCalendarNames.d.ts +3 -1
- package/dist/internal/englishCalendarNames.js +4 -3
- 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/freeTimeLedger.d.ts +5 -0
- package/dist/internal/freeTimeLedger.js +11 -2
- package/dist/internal/index.d.ts +12 -4
- package/dist/internal/index.js +16 -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/intervalNanoseconds.js +2 -1
- package/dist/internal/isObject.d.ts +13 -6
- package/dist/internal/isObject.js +14 -7
- package/dist/internal/isoYearString.d.ts +21 -0
- package/dist/internal/isoYearString.js +27 -0
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/maxPieces.js +2 -1
- package/dist/internal/monthGridWeekRow.d.ts +2 -1
- package/dist/internal/monthGridWeekRow.js +2 -1
- package/dist/internal/normalizeTimeZone.d.ts +5 -2
- package/dist/internal/normalizeTimeZone.js +5 -2
- package/dist/internal/operatingSchedule.d.ts +138 -0
- package/dist/internal/operatingSchedule.js +756 -0
- package/dist/internal/optionOrDefault.d.ts +18 -0
- package/dist/internal/optionOrDefault.js +20 -0
- package/dist/internal/patternToken.d.ts +12 -5
- package/dist/internal/patternToken.js +59 -25
- 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/readDurationUnits.d.ts +34 -0
- package/dist/internal/readDurationUnits.js +78 -0
- package/dist/internal/readSetFields.d.ts +50 -0
- package/dist/internal/readSetFields.js +179 -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/resolveUnixIntervalPair.d.ts +8 -2
- package/dist/internal/resolveUnixIntervalPair.js +11 -7
- package/dist/internal/splitStep.d.ts +24 -1
- package/dist/internal/splitStep.js +34 -2
- package/dist/internal/startOrEndOfUnix.d.ts +2 -1
- package/dist/internal/startOrEndOfUnix.js +9 -6
- 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/twoDigitYear.d.ts +19 -0
- package/dist/internal/twoDigitYear.js +22 -0
- package/dist/internal/unixEpochValue.js +3 -2
- package/dist/internal/unixWallClock.d.ts +24 -0
- package/dist/internal/unixWallClock.js +35 -0
- package/dist/internal/utcWallClock.d.ts +20 -0
- package/dist/internal/utcWallClock.js +32 -0
- package/dist/internal/yearWindowStart.d.ts +28 -0
- package/dist/internal/yearWindowStart.js +52 -0
- package/dist/internal/zoneBucketCap.d.ts +18 -0
- package/dist/internal/zoneBucketCap.js +64 -0
- package/dist/internal/zoneFrame.d.ts +180 -0
- package/dist/internal/zoneFrame.js +221 -0
- package/dist/internal/zonedBucket.js +8 -6
- package/dist/internal/zonedLocalDates.js +1 -1
- package/dist/internal/zonedNowUnitValue.d.ts +7 -4
- package/dist/internal/zonedNowUnitValue.js +8 -4
- 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/zonedWallClockDifference.js +4 -4
- package/dist/internal/zonedWallClockOperations.d.ts +31 -15
- package/dist/internal/zonedWallClockOperations.js +93 -43
- 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 +9 -15
- package/dist/plain/calculate/addDateTime.d.ts +7 -4
- package/dist/plain/calculate/addDateTime.js +5 -11
- package/dist/plain/calculate/addTime.js +4 -7
- 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 +9 -3
- 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 +27 -8
- package/dist/plain/calculate/setDate.js +28 -12
- package/dist/plain/calculate/setDateTime.d.ts +23 -8
- package/dist/plain/calculate/setDateTime.js +23 -12
- package/dist/plain/calculate/setTime.d.ts +23 -7
- package/dist/plain/calculate/setTime.js +25 -12
- 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 +9 -2
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractDate.d.ts +7 -4
- package/dist/plain/calculate/subtractDate.js +5 -11
- package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
- package/dist/plain/calculate/subtractDateTime.js +5 -11
- package/dist/plain/calculate/subtractTime.js +4 -7
- 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 +23 -17
- 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 +28 -16
- package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeDateTime.js +10 -6
- package/dist/plain/format/formatRelativeTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeTime.js +23 -14
- package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
- package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +7 -7
- package/dist/plain/format/formatTime.js +4 -2
- package/dist/plain/format/index.d.ts +1 -1
- package/dist/plain/format/index.js +1 -1
- package/dist/plain/get/getNowUnit.d.ts +2 -0
- package/dist/plain/get/getNowUnit.js +2 -0
- package/dist/plain/get/getYear.d.ts +2 -0
- package/dist/plain/get/getYear.js +4 -3
- 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/intervalXorAllDate.js +2 -2
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDateTime.js +2 -2
- package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllTime.js +2 -2
- 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/mergeIntervalsDate.js +2 -2
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDateTime.js +2 -2
- package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsTime.js +2 -2
- 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/index.d.ts +1 -1
- package/dist/plain/parse/index.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +25 -9
- package/dist/plain/parse/parseDateTimeWithPattern.js +29 -11
- package/dist/plain/parse/parseDateWithPattern.d.ts +26 -9
- package/dist/plain/parse/parseDateWithPattern.js +30 -11
- package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
- package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +8 -8
- package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseTimeWithPattern.js +11 -7
- package/dist/plain/parse/parseUnitFromDate.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDate.js +8 -4
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +8 -4
- 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/parse/parseYearFromDate.d.ts +5 -2
- package/dist/plain/parse/parseYearFromDate.js +7 -3
- package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
- package/dist/plain/parse/parseYearFromDateTime.js +6 -3
- package/dist/plain/validate/index.d.ts +1 -0
- package/dist/plain/validate/index.js +1 -0
- 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/isValidSqlDateTime.d.ts +33 -0
- package/dist/plain/validate/isValidSqlDateTime.js +36 -0
- 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 +9 -3
- package/dist/precision/convert/fromNanoseconds.js +9 -3
- 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/regex/epcis.d.ts +60 -0
- package/dist/regex/epcis.js +60 -0
- package/dist/regex/http-date.d.ts +6 -4
- package/dist/regex/http-date.js +6 -4
- package/dist/regex/index.d.ts +1 -0
- package/dist/regex/index.js +1 -0
- package/dist/regex/rfc-2822.d.ts +2 -0
- package/dist/regex/rfc-2822.js +2 -0
- package/dist/regex/rfc-3339.d.ts +3 -1
- package/dist/regex/rfc-3339.js +3 -1
- package/dist/regex/sql-date-time.d.ts +2 -1
- package/dist/regex/sql-date-time.js +2 -1
- package/dist/regex/time-zone-like.d.ts +3 -2
- package/dist/regex/time-zone-like.js +3 -2
- package/dist/regex/utc-offset.d.ts +2 -1
- package/dist/regex/utc-offset.js +2 -1
- 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 +63 -0
- package/dist/transport/calculate/crossingTime.js +81 -0
- package/dist/transport/calculate/cutoffAt.d.ts +95 -0
- package/dist/transport/calculate/cutoffAt.js +211 -0
- package/dist/transport/calculate/cutoffSchedule.d.ts +75 -0
- package/dist/transport/calculate/cutoffSchedule.js +73 -0
- package/dist/transport/calculate/dwellTime.d.ts +22 -8
- package/dist/transport/calculate/dwellTime.js +18 -9
- 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 +158 -0
- package/dist/transport/calculate/scheduleDelivery.js +305 -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 +13 -1
- package/dist/transport/convert/etaAtZone.js +15 -5
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.js +1 -0
- package/dist/types/business-calendar.d.ts +20 -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/duty.d.ts +777 -0
- package/dist/types/edi.d.ts +407 -0
- package/dist/types/edi.js +0 -0
- package/dist/types/epcis.d.ts +25 -0
- package/dist/types/epcis.js +0 -0
- package/dist/types/exact-duration-unit.d.ts +8 -0
- package/dist/types/exact-duration-unit.js +0 -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 +22 -11
- package/dist/types/index.d.ts +7 -1
- package/dist/types/index.js +7 -1
- package/dist/types/interval.d.ts +8 -1
- package/dist/types/offset.d.ts +9 -0
- package/dist/types/operating-schedule.d.ts +72 -0
- package/dist/types/operating-schedule.js +0 -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/types/two-digit-year.d.ts +23 -0
- package/dist/types/two-digit-year.js +0 -0
- package/dist/types/zone-bucket-unit.d.ts +1 -1
- package/dist/unix/calculate/addUnix.d.ts +28 -5
- package/dist/unix/calculate/addUnix.js +15 -16
- package/dist/unix/calculate/diffUnix.d.ts +21 -3
- package/dist/unix/calculate/diffUnix.js +12 -9
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +21 -3
- package/dist/unix/calculate/diffUnixAsDuration.js +11 -8
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/endOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/endOfUnix.d.ts +29 -4
- package/dist/unix/calculate/endOfUnix.js +8 -4
- package/dist/unix/calculate/isBetweenUnix.d.ts +27 -4
- package/dist/unix/calculate/isBetweenUnix.js +7 -9
- package/dist/unix/calculate/roundUnix.d.ts +39 -3
- package/dist/unix/calculate/roundUnix.js +16 -12
- package/dist/unix/calculate/setUnix.d.ts +58 -12
- package/dist/unix/calculate/setUnix.js +37 -25
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/startOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/startOfUnix.d.ts +29 -4
- package/dist/unix/calculate/startOfUnix.js +8 -4
- package/dist/unix/calculate/subtractUnix.d.ts +27 -5
- package/dist/unix/calculate/subtractUnix.js +14 -16
- package/dist/unix/compare/areUnixEqual.d.ts +7 -1
- package/dist/unix/compare/areUnixEqual.js +1 -1
- package/dist/unix/compare/areUnixEqualBy.d.ts +33 -7
- package/dist/unix/compare/areUnixEqualBy.js +20 -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 +17 -4
- package/dist/unix/convert/convertUnixToPlainDate.js +7 -8
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.js +7 -8
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainTime.js +7 -8
- package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
- package/dist/unix/convert/convertUnixToUtc.js +3 -4
- package/dist/unix/convert/convertUnixToZoned.d.ts +14 -5
- package/dist/unix/convert/convertUnixToZoned.js +8 -5
- package/dist/unix/format/formatCalendarUnix.d.ts +31 -19
- package/dist/unix/format/formatCalendarUnix.js +10 -6
- package/dist/unix/format/formatRelativeUnix.d.ts +62 -5
- package/dist/unix/format/formatRelativeUnix.js +16 -10
- package/dist/unix/format/formatUnix.d.ts +29 -6
- package/dist/unix/format/formatUnix.js +12 -7
- package/dist/unix/get/getUnixDay.d.ts +1 -3
- package/dist/unix/get/getUnixDay.js +5 -12
- package/dist/unix/get/getUnixHour.d.ts +1 -3
- package/dist/unix/get/getUnixHour.js +5 -12
- package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
- package/dist/unix/get/getUnixMicrosecond.js +4 -11
- package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
- package/dist/unix/get/getUnixMillisecond.js +5 -12
- package/dist/unix/get/getUnixMinute.d.ts +1 -3
- package/dist/unix/get/getUnixMinute.js +5 -12
- package/dist/unix/get/getUnixMonth.d.ts +1 -3
- package/dist/unix/get/getUnixMonth.js +5 -12
- package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
- package/dist/unix/get/getUnixNanosecond.js +4 -11
- package/dist/unix/get/getUnixNow.d.ts +8 -3
- package/dist/unix/get/getUnixNow.js +1 -3
- package/dist/unix/get/getUnixNowUnit.d.ts +2 -0
- package/dist/unix/get/getUnixNowUnit.js +2 -0
- package/dist/unix/get/getUnixSecond.d.ts +1 -3
- package/dist/unix/get/getUnixSecond.js +5 -12
- package/dist/unix/get/getUnixYear.d.ts +3 -3
- package/dist/unix/get/getUnixYear.js +5 -12
- package/dist/unix/interval/intervalCountUnix.d.ts +23 -5
- package/dist/unix/interval/intervalCountUnix.js +9 -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 +41 -5
- package/dist/unix/interval/intervalFromDurationUnix.js +18 -12
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalLengthUnix.d.ts +24 -6
- package/dist/unix/interval/intervalLengthUnix.js +10 -6
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +21 -3
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +11 -8
- 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 +50 -11
- package/dist/unix/interval/splitIntervalByUnitUnix.js +33 -22
- package/dist/unix/parse/parseDateFromUnix.d.ts +15 -2
- package/dist/unix/parse/parseDateFromUnix.js +4 -5
- package/dist/unix/parse/parseDayFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseDayFromUnix.js +2 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +15 -1
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +3 -3
- package/dist/unix/parse/parseHourFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseHourFromUnix.js +2 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMonthFromUnix.js +2 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseSecondFromUnix.js +2 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseTimeFromUnix.js +5 -5
- package/dist/unix/parse/parseUnitFromUnix.d.ts +29 -4
- package/dist/unix/parse/parseUnitFromUnix.js +23 -17
- package/dist/unix/parse/parseWeekFromUnix.d.ts +24 -7
- package/dist/unix/parse/parseWeekFromUnix.js +7 -11
- package/dist/unix/parse/parseYearFromUnix.d.ts +20 -3
- package/dist/unix/parse/parseYearFromUnix.js +6 -3
- package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
- package/dist/unix/validate/isValidUnixRange.js +1 -4
- package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
- package/dist/utc/calculate/addUtc.d.ts +7 -4
- package/dist/utc/calculate/addUtc.js +5 -11
- 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 +23 -7
- package/dist/utc/calculate/setUtc.js +23 -12
- 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 +5 -11
- package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
- package/dist/utc/compare/areUtcEqualBy.js +2 -3
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +14 -3
- package/dist/utc/convert/convertUtcToPlainDate.js +12 -10
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +15 -3
- package/dist/utc/convert/convertUtcToPlainDateTime.js +14 -16
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +11 -3
- package/dist/utc/convert/convertUtcToPlainTime.js +9 -9
- package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
- package/dist/utc/convert/convertUtcToUnix.js +3 -4
- package/dist/utc/convert/convertUtcToZoned.d.ts +5 -1
- package/dist/utc/convert/convertUtcToZoned.js +5 -1
- package/dist/utc/format/formatCalendarUtc.d.ts +23 -8
- package/dist/utc/format/formatCalendarUtc.js +14 -7
- package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +8 -8
- package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +8 -8
- package/dist/utc/format/formatRelativeUtc.d.ts +38 -10
- package/dist/utc/format/formatRelativeUtc.js +22 -16
- package/dist/utc/format/formatUtc.d.ts +22 -15
- package/dist/utc/format/formatUtc.js +12 -8
- package/dist/utc/format/index.d.ts +1 -1
- package/dist/utc/format/index.js +1 -1
- package/dist/utc/get/getUtcDay.d.ts +1 -3
- package/dist/utc/get/getUtcDay.js +5 -12
- package/dist/utc/get/getUtcHour.d.ts +1 -3
- package/dist/utc/get/getUtcHour.js +5 -12
- package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
- package/dist/utc/get/getUtcMicrosecond.js +4 -11
- package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
- package/dist/utc/get/getUtcMillisecond.js +5 -12
- package/dist/utc/get/getUtcMinute.d.ts +1 -3
- package/dist/utc/get/getUtcMinute.js +5 -12
- package/dist/utc/get/getUtcMonth.d.ts +1 -3
- package/dist/utc/get/getUtcMonth.js +5 -12
- package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
- package/dist/utc/get/getUtcNanosecond.js +4 -11
- package/dist/utc/get/getUtcNow.d.ts +1 -3
- package/dist/utc/get/getUtcNow.js +2 -9
- package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
- package/dist/utc/get/getUtcNowUnit.js +2 -0
- package/dist/utc/get/getUtcSecond.d.ts +1 -3
- package/dist/utc/get/getUtcSecond.js +5 -12
- package/dist/utc/get/getUtcYear.d.ts +3 -3
- package/dist/utc/get/getUtcYear.js +5 -12
- 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/intervalXorAllUtc.js +2 -2
- package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
- package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
- package/dist/utc/parse/index.d.ts +1 -1
- package/dist/utc/parse/index.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDateFromUtc.js +3 -5
- package/dist/utc/parse/parseDayFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayFromUtc.js +3 -5
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +5 -7
- package/dist/utc/parse/parseHourFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseHourFromUtc.js +3 -5
- package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
- package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +12 -12
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMicrosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMillisecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMinuteFromUtc.js +3 -5
- package/dist/utc/parse/parseMonthFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMonthFromUtc.js +3 -5
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseNanosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseSecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseSecondFromUtc.js +3 -5
- package/dist/utc/parse/parseTimeFromUtc.d.ts +11 -3
- package/dist/utc/parse/parseTimeFromUtc.js +7 -7
- package/dist/utc/parse/parseUnitFromUtc.d.ts +25 -6
- package/dist/utc/parse/parseUnitFromUtc.js +14 -10
- package/dist/utc/parse/parseWeekFromUtc.d.ts +20 -10
- package/dist/utc/parse/parseWeekFromUtc.js +8 -14
- package/dist/utc/parse/parseYearFromUtc.d.ts +13 -5
- package/dist/utc/parse/parseYearFromUtc.js +9 -8
- package/dist/utc/validate/index.d.ts +2 -0
- package/dist/utc/validate/index.js +2 -0
- package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
- package/dist/utc/validate/isValidHttpDate.js +38 -0
- package/dist/utc/validate/isValidUtc.d.ts +4 -0
- package/dist/utc/validate/isValidUtc.js +4 -0
- package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
- package/dist/utc/validate/isValidUtcRange.js +2 -5
- package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
- package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
- package/dist/zoned/calculate/addZoned.d.ts +20 -10
- package/dist/zoned/calculate/addZoned.js +10 -20
- 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 +44 -13
- package/dist/zoned/calculate/setZoned.js +30 -21
- 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 +10 -20
- 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 +21 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +9 -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 +5 -1
- package/dist/zoned/convert/convertZonedToZoned.js +5 -1
- package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
- package/dist/zoned/format/formatCalendarZoned.js +15 -10
- package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
- package/dist/zoned/format/formatRelativeZoned.js +9 -5
- 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 +16 -3
- package/dist/zoned/format/formatTimeZoneName.js +9 -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 +11 -10
- package/dist/zoned/get/getDstTransitions.js +21 -7
- package/dist/zoned/get/getSystemTimeZone.d.ts +3 -1
- package/dist/zoned/get/getSystemTimeZone.js +5 -2
- package/dist/zoned/get/getTimeZoneOffset.d.ts +13 -2
- package/dist/zoned/get/getTimeZoneOffset.js +22 -6
- package/dist/zoned/get/getZonedDay.d.ts +2 -1
- package/dist/zoned/get/getZonedDay.js +6 -7
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +2 -1
- package/dist/zoned/get/getZonedDayOfWeek.js +6 -5
- package/dist/zoned/get/getZonedHour.d.ts +2 -1
- package/dist/zoned/get/getZonedHour.js +6 -7
- package/dist/zoned/get/getZonedMicrosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMicrosecond.js +6 -5
- package/dist/zoned/get/getZonedMillisecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMillisecond.js +6 -7
- package/dist/zoned/get/getZonedMinute.d.ts +2 -1
- package/dist/zoned/get/getZonedMinute.js +6 -7
- package/dist/zoned/get/getZonedMonth.d.ts +2 -1
- package/dist/zoned/get/getZonedMonth.js +6 -7
- package/dist/zoned/get/getZonedNanosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedNanosecond.js +6 -5
- package/dist/zoned/get/getZonedNow.d.ts +18 -2
- package/dist/zoned/get/getZonedNow.js +17 -4
- package/dist/zoned/get/getZonedNowUnit.d.ts +6 -3
- package/dist/zoned/get/getZonedNowUnit.js +10 -7
- package/dist/zoned/get/getZonedSecond.d.ts +2 -1
- package/dist/zoned/get/getZonedSecond.js +6 -7
- package/dist/zoned/get/getZonedToday.d.ts +2 -1
- package/dist/zoned/get/getZonedToday.js +6 -5
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +2 -1
- package/dist/zoned/get/getZonedWeekOfYear.js +6 -5
- package/dist/zoned/get/getZonedYear.d.ts +4 -1
- package/dist/zoned/get/getZonedYear.js +9 -7
- 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/intervalXorAllZoned.js +2 -2
- package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.js +2 -2
- 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 +13 -4
- package/dist/zoned/parse/parseUnitFromZoned.js +6 -4
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
- package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
- package/dist/zoned/parse/parseYearFromZoned.js +6 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +45 -12
- package/dist/zoned/validate/hasDaylightSaving.js +54 -32
- package/dist/zoned/validate/index.d.ts +2 -0
- package/dist/zoned/validate/index.js +2 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
- package/dist/zoned/validate/isValidTimeZone.d.ts +5 -1
- package/dist/zoned/validate/isValidTimeZone.js +6 -2
- 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 +67 -5
- package/skills/gmt-arithmetic/SKILL.md +99 -12
- package/skills/gmt-basics/SKILL.md +64 -13
- package/skills/gmt-integration/SKILL.md +33 -13
- package/skills/gmt-timezone/SKILL.md +265 -31
- package/dist/duration/calculate/durationAs.d.ts +0 -62
- package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
- package/dist/internal/resolveReadingTimeZone.js +0 -18
- package/dist/internal/unixZonedDateTime.d.ts +0 -22
- package/dist/internal/unixZonedDateTime.js +0 -32
- package/dist/internal/utcZonedDateTime.d.ts +0 -16
- package/dist/internal/utcZonedDateTime.js +0 -28
- package/dist/types/duration-unit.d.ts +0 -5
- /package/dist/types/{duration-unit.js → duty.js} +0 -0
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gmt-timezone
|
|
3
3
|
description: >
|
|
4
|
-
Timezone-aware operations —
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
not an API dump.
|
|
4
|
+
Timezone-aware operations — zoned now, zoned formatting, plain↔zoned↔UTC↔Unix
|
|
5
|
+
conversion, DST disambiguation, toOffsetInstant, classifyLocal/resolveLocal,
|
|
6
|
+
real boundaries (startOfZoned/endOfZoned/startOfUnix/endOfUnix), hours in a
|
|
7
|
+
local day, floorToZone/bucketRange, calendar-annotated strings, transport legs
|
|
8
|
+
(transitTime, etaAtZone, dwellTime, crossingTime, scheduleDelivery), cut-offs
|
|
9
|
+
(cutoffAt, cutoffSchedule, isPastCutoff, timeToCutoff), punctuality
|
|
10
|
+
(scheduleDeviation, classifyPunctuality, punctualityRate, bestAvailable,
|
|
11
|
+
estimateDrift over PLN/EST/REQ/ACT, nextDeparture), free time (freeTimeExpiry,
|
|
12
|
+
chargeableDays, demurrageClock), billingTimeline, bolTimestamp, multimodalETA,
|
|
13
|
+
EDI timestamps (parseEdifactDateTime, parseX12DateAndTime, x12TimeCodeOffset,
|
|
14
|
+
parseEpcisEvent, classify*/format*/isValid*), operating hours
|
|
15
|
+
(OperatingSchedule, recurringWindows, operatingIntervals, isOpenAt,
|
|
16
|
+
nextOpenAt, nextCloseAt, operatingTimeBetween, addOperatingTime), and daylight
|
|
17
|
+
time (isInDaylightSaving, hasDaylightSaving).
|
|
19
18
|
sources:
|
|
20
|
-
- 'northguild/gmt:
|
|
19
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/zoned-date-operations/*.mdx'
|
|
20
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/concepts/dst-disambiguation.md'
|
|
21
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/core-date-operations/operating-hours.mdx'
|
|
22
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/industries/*.mdx'
|
|
21
23
|
- 'northguild/gmt:packages/gmt/src/zoned/get/index.ts'
|
|
22
24
|
- 'northguild/gmt:packages/gmt/src/zoned/format/index.ts'
|
|
23
25
|
- 'northguild/gmt:packages/gmt/src/zoned/compare/index.ts'
|
|
@@ -32,15 +34,26 @@ sources:
|
|
|
32
34
|
- 'northguild/gmt:packages/gmt/src/utc/get/index.ts'
|
|
33
35
|
- 'northguild/gmt:packages/gmt/src/utc/convert/index.ts'
|
|
34
36
|
- 'northguild/gmt:packages/gmt/src/instant/convert/index.ts'
|
|
37
|
+
- 'northguild/gmt:packages/gmt/src/instant/validate/index.ts'
|
|
35
38
|
- 'northguild/gmt:packages/gmt/src/calendar/calculate/index.ts'
|
|
36
39
|
- 'northguild/gmt:packages/gmt/src/calendar/validate/index.ts'
|
|
40
|
+
- 'northguild/gmt:packages/gmt/src/calendar/hours/index.ts'
|
|
41
|
+
- 'northguild/gmt:packages/gmt/src/types/operating-schedule.ts'
|
|
42
|
+
- 'northguild/gmt:packages/gmt/src/types/transport-timestamps.ts'
|
|
37
43
|
- 'northguild/gmt:packages/gmt/src/transport/calculate/index.ts'
|
|
44
|
+
- 'northguild/gmt:packages/gmt/src/transport/compare/index.ts'
|
|
38
45
|
- 'northguild/gmt:packages/gmt/src/transport/convert/index.ts'
|
|
39
46
|
- 'northguild/gmt:packages/gmt/src/intermodal/calculate/index.ts'
|
|
47
|
+
- 'northguild/gmt:packages/gmt/src/intermodal/format/index.ts'
|
|
48
|
+
- 'northguild/gmt:packages/gmt/src/intermodal/parse/index.ts'
|
|
49
|
+
- 'northguild/gmt:packages/gmt/src/intermodal/validate/index.ts'
|
|
50
|
+
- 'northguild/gmt:packages/gmt/src/types/edi.ts'
|
|
51
|
+
- 'northguild/gmt:packages/gmt/src/types/epcis.ts'
|
|
52
|
+
- 'northguild/gmt:packages/gmt/src/types/two-digit-year.ts'
|
|
40
53
|
metadata:
|
|
41
54
|
type: core
|
|
42
55
|
library: '@northguild/gmt'
|
|
43
|
-
library_version: '1.
|
|
56
|
+
library_version: '1.19.0'
|
|
44
57
|
---
|
|
45
58
|
|
|
46
59
|
# GMT Timezone
|
|
@@ -66,6 +79,13 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
66
79
|
- The user is working out when a container's free time ends, how many days of
|
|
67
80
|
demurrage or detention are chargeable and for which dates, or which events a
|
|
68
81
|
charge's clock runs between.
|
|
82
|
+
- The user is reading or writing a UN/EDIFACT `DTM` value, an X12 date, time,
|
|
83
|
+
time code or date time period, or a GS1 EPCIS event time, and must know
|
|
84
|
+
whether its offset was stated.
|
|
85
|
+
- The user is asking whether a gate, desk, office or venue is open at an
|
|
86
|
+
instant, when it next opens or closes, how many working hours passed between
|
|
87
|
+
two instants, or when an SLA measured in open hours falls due — or is
|
|
88
|
+
expanding a recurring local window such as a night curfew.
|
|
69
89
|
|
|
70
90
|
## Core rules
|
|
71
91
|
|
|
@@ -108,11 +128,11 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
108
128
|
on a spring-forward one. `resolveLocal(local, zone, { disambiguation })` then
|
|
109
129
|
returns the instant, exact to the nanosecond, or `""` under `"reject"`. Reach
|
|
110
130
|
for `convertPlainDateTimeToZoned` instead when you want the zoned string.
|
|
111
|
-
6. **An offset is not a zone
|
|
112
|
-
`toOffsetInstant`
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
131
|
+
6. **An offset is not a zone, but a stored one is a rule for local time.**
|
|
132
|
+
`toOffsetInstant` gives `{ instant, offset, timeZone? }`, the pair EPCIS 2.0,
|
|
133
|
+
EDIFACT DTM and DICOM exchange. Its `±HH:MM[:SS]` offset is a valid `timeZone`
|
|
134
|
+
for `resolveLocal` and every function whose result has no zone in it. One
|
|
135
|
+
that returns a zoned string or formats with `Intl` takes none with seconds.
|
|
116
136
|
7. **Bucket in the zone, not in UTC.** `floorToZone(instant, unit, zone)` and
|
|
117
137
|
`bucketRange(start, end, unit, zone)` floor on the zone's own calendar
|
|
118
138
|
boundaries. Flooring a UTC instant to a UTC day and calling it a local day is
|
|
@@ -192,7 +212,64 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
192
212
|
(a skipped date is not counted, a re-entered one only once), and is the
|
|
193
213
|
library's one "local days crossed" count.
|
|
194
214
|
Bare instants with no `targetZone` return `null`: an offset is not a place.
|
|
195
|
-
|
|
215
|
+
`crossingTime(entry, exit, targetZone)` returns `{ duration, enter, exit }`
|
|
216
|
+
with no day count (a crossing that needs one is a dwell); `targetZone` is
|
|
217
|
+
required and always the rendering zone — a bracket on the input never
|
|
218
|
+
supplies it.
|
|
219
|
+
`scheduleDelivery(legs, { startTimeZone? })` chains legs into `{ eta,
|
|
220
|
+
legTimes }`: each leg leaves at its explicit `departure` or at the previous
|
|
221
|
+
arrival plus that leg's `dwellAfter`, the minimum connect time. A scheduled
|
|
222
|
+
departure earlier than that is a missed connection and returns `null`
|
|
223
|
+
(equal passes). A departure is exact (instant or zoned string) or a
|
|
224
|
+
zoneless wall time: on the first leg it is read in `startTimeZone`, on a
|
|
225
|
+
later leg in the previous leg's `timeZone` (where that leg leaves from),
|
|
226
|
+
both with `"compatible"` resolution (ambiguous → earlier, skipped →
|
|
227
|
+
later). On a later leg, a repeated hour instead takes the earliest pass
|
|
228
|
+
at or after the previous arrival plus its dwell. A
|
|
229
|
+
negative leg `duration` is `null`; the last leg's `dwellAfter` is echoed,
|
|
230
|
+
never added. `mode`, `origin` and `destination` are opaque tags echoed on
|
|
231
|
+
each `LegTime`. An empty array returns `{ eta: "", legTimes: [] }`.
|
|
232
|
+
16. **Cut-offs count back from the caller's event.**
|
|
233
|
+
`cutoffAt(anchor, offset, { timeZone, atLocalTime?, calendar?, roll? })`
|
|
234
|
+
takes an offset off the anchor (loading, departure or arrival are
|
|
235
|
+
different instants; it never guesses which). With `atLocalTime` the
|
|
236
|
+
offset's exact part comes off the anchor's instant first, its calendar
|
|
237
|
+
part off the local date, and the cut-off is that time of day: `P2D` at
|
|
238
|
+
`"17:00"` is 17:00 two days before, not 48 hours. Without it the offset
|
|
239
|
+
is `ZonedDateTime#subtract` (`P2D` keeps the wall clock, `PT96H` is 96
|
|
240
|
+
exact hours). `calendar` and `roll` go together or not at all — there is
|
|
241
|
+
no default roll, as in `rollDate`; either alone is `""`. A repeated hour
|
|
242
|
+
takes the first pass (RFC 5545 §3.3.5); a skipped hour is `""`. It does
|
|
243
|
+
not check that the cut-off is before the anchor.
|
|
244
|
+
`cutoffSchedule(anchor, [{ name, offset, atLocalTime? }], options)`
|
|
245
|
+
sorts the stack by instant and returns `[]` if any entry fails.
|
|
246
|
+
`isPastCutoff(now, cutoff)` is `true` from the cut-off instant on;
|
|
247
|
+
`timeToCutoff(now, cutoff)` is exact hours, `PT0S` at it, negative after.
|
|
248
|
+
17. **Planned versus actual is exact time under the caller's tolerance.**
|
|
249
|
+
`scheduleDeviation(planned, actual)` is `actual − planned` in exact hours
|
|
250
|
+
(`"PT14M"` late, `"-PT5M"` early; a fall-back delay is `PT1H`, never
|
|
251
|
+
`PT0S`). `classifyPunctuality(planned, actual, { late, early? })` returns
|
|
252
|
+
`"early" | "onTime" | "late"`, or `null` on invalid input: both edges are
|
|
253
|
+
outside (exactly `late` is late), and without `early` every early arrival
|
|
254
|
+
is on time. There is no default tolerance; tolerances are exact durations
|
|
255
|
+
(a day is 24 hours; years, months, weeks or negative return `null`).
|
|
256
|
+
`punctualityRate(pairs, tolerance)` returns `{ onTime, total, rate }`,
|
|
257
|
+
judging every pair under a tolerance read once; an empty list or any
|
|
258
|
+
invalid pair is `null`. A `TimestampEvent` is `{ classifier: "PLN" |
|
|
259
|
+
"EST" | "REQ" | "ACT", at, recordedAt }` (DCSA vocabulary).
|
|
260
|
+
`bestAvailable(events)` returns `{ at, classifier }`: `ACT` whenever one
|
|
261
|
+
exists, else `PLN`, else `REQ`, else `EST`, newest `recordedAt` within the
|
|
262
|
+
class — never an `EST` shown as an actual. `estimateDrift(events, {
|
|
263
|
+
tolerance? })` reports first-to-last `EST` drift, `revisions` and
|
|
264
|
+
`exceedsTolerance` (strictly greater, either direction; `null` without a
|
|
265
|
+
tolerance), and is `null` with fewer than two `EST`s.
|
|
266
|
+
`nextDeparture(after, timetable, { minimumConnection? })` returns the
|
|
267
|
+
first departure at or after `after + minimumConnection`: a list entry
|
|
268
|
+
echoed as written (ready for `scheduleDelivery`'s `departure`), or for
|
|
269
|
+
`{ headway, from, to }` (a GTFS `frequencies.txt` row) `from + k × headway`
|
|
270
|
+
in the half-open `[from, to)`, written the way `from` was. Every moment
|
|
271
|
+
must carry its offset; a wall time without one is `""`.
|
|
272
|
+
18. **Free time is counted in the terminal's local days; the start day and the
|
|
196
273
|
basis are tariff terms, never defaults.**
|
|
197
274
|
`freeTimeExpiry(clockStart, freeDays, { basis, timeZone, firstDay, calendar? })`
|
|
198
275
|
returns `{ freeTimeStart, lastFreeDay, expiresAt }`: local dates in
|
|
@@ -212,7 +289,7 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
212
289
|
demurrage gate-in to loaded, detention empty release to gate-in; `combined`
|
|
213
290
|
runs both as one period. No standard fixes how these days are counted;
|
|
214
291
|
every term is the tariff's.
|
|
215
|
-
|
|
292
|
+
19. **Billing deadlines are dates counted from an anchor, and every window is
|
|
216
293
|
the caller's.** `billingTimeline({ anchorOn, invoiceIssuedOn?,
|
|
217
294
|
requestReceivedOn? }, { issueDays, disputeDays, resolutionDays,
|
|
218
295
|
agreedResolutionOn? })` returns `{ invoiceDeadline, issuedByDeadline,
|
|
@@ -227,9 +304,143 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
227
304
|
`convertUtcToPlainDate(instant, { timeZone })`. A request before its
|
|
228
305
|
invoice, or an agreed date before the request, returns `null`. GMT
|
|
229
306
|
computes dates, not liability.
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
307
|
+
20. **A B/L date is a local date; a multimodal ETA keeps transit and dwell
|
|
308
|
+
apart.** `bolTimestamp(value, event, { timeZone })` returns the
|
|
309
|
+
`YYYY-MM-DD` date on the local clock in `timeZone` at the instant `value`:
|
|
310
|
+
DCSA Bill of Lading 3.0 types `issueDate`, `receivedForShipmentDate` and
|
|
311
|
+
`shippedOnBoardDate` as dates with no time or offset. `event` is
|
|
312
|
+
`"issue" | "received" | "shippedOnBoard"`, one per DCSA date field; all
|
|
313
|
+
three render the same way and anything else is `""`. `timeZone` is
|
|
314
|
+
required (no UTC default): the place of issue for `issue`, the loading
|
|
315
|
+
terminal for `received` and `shippedOnBoard`. 21:00 in New York
|
|
316
|
+
is 01:00Z the next day, so the UTC date is wrong. Only the instant is read;
|
|
317
|
+
a zoneless value is `""`. `multimodalETA(legs, { startTimeZone? })` takes
|
|
318
|
+
`scheduleDelivery`'s `Leg[]` and returns `{ eta, totalLegs, totalTransit,
|
|
319
|
+
totalDwell }`: transit is the legs' durations added up, dwell the time
|
|
320
|
+
actually spent at handoffs (a wait for a scheduled departure included; the
|
|
321
|
+
last leg's `dwellAfter` excluded), both with hours as the largest unit, and
|
|
322
|
+
they sum to the elapsed time. Every `scheduleDelivery` rule applies, so a
|
|
323
|
+
missed connection is `null`. An empty array is `{ eta: "", totalLegs: 0,
|
|
324
|
+
totalTransit: "PT0S", totalDwell: "PT0S" }`. Dwell is never estimated.
|
|
325
|
+
21. **An EDI timestamp is read by the function for its kind of value, and
|
|
326
|
+
nothing the code does not state is guessed.** Each kind has a `parse…`,
|
|
327
|
+
`format…` and `isValid…` function named for it (`parseEdifactDate`,
|
|
328
|
+
`formatEdifactDate`, `isValidEdifactDate`), and `format` is typed to that
|
|
329
|
+
kind's codes. UN/EDIFACT `DTM` (value 2380 against format code 2379):
|
|
330
|
+
`EdifactDate` (`102`), `EdifactTime` (`401`, `402`), `EdifactDateTime`
|
|
331
|
+
(`203`, `204`), `EdifactOffsetDateTime` (`205`, `208`, `303`, `304`),
|
|
332
|
+
`EdifactDatePeriod` (`718`), `EdifactDateTimePeriod` (`719`). X12 (element
|
|
333
|
+
1251 against qualifier 1250, in `DTP` and `DTM-05`/`06`): `X12Date` (`D8`,
|
|
334
|
+
`DB`), `X12Time` (`TM`, `TS`), `X12DateTime` (`DT`, `RTS`), `X12DateRange`
|
|
335
|
+
(`RD8`, `RD`), `X12DateTimeRange` (`RDT`, `DTS`). `parseX12Time(value)`
|
|
336
|
+
with no `format` reads element 337, tenths and hundredths included
|
|
337
|
+
(`"14300012"` is `"14:30:00.12"`), and `formatX12TimeElement(value, form)`
|
|
338
|
+
writes it in the mask named: `HHMM`, `HHMMSS`, `HHMMSSD` or `HHMMSSDD`
|
|
339
|
+
(`"14:30:00"` under `HHMMSSDD` is `"14300000"`). A parser returns one value:
|
|
340
|
+
`"2024-06-15"`, `"14:30:00"`, `"2024-06-15T14:30:00"`,
|
|
341
|
+
`"2024-06-15T14:30:00+02:00"` (the string `toOffsetInstant` reads), or
|
|
342
|
+
`{ start, end }` for a period or range. The sentinel is `""`, or `null`
|
|
343
|
+
for a period, a range, a zone or a classifier. A period formatter takes
|
|
344
|
+
`(start, end, format)`. No EDI function takes options. X12 freight is
|
|
345
|
+
three calls: `parseX12DateAndTime("20240615", "1430")` is
|
|
346
|
+
`"2024-06-15T14:30:00"` (elements 373 and 337 of `AT7`, `G62` or `DTM`,
|
|
347
|
+
both required), `x12TimeCodeOffset("20")` is `"-05:00"`, and
|
|
348
|
+
`resolveLocal(local, offset)` is `"2024-06-15T19:30:00Z"`. For a code
|
|
349
|
+
held as a plain string, `classifyEdifactDtmFormat`,
|
|
350
|
+
`classifyX12DateTimePeriodFormat` and `classifyX12TimeCode` return
|
|
351
|
+
`{ kind, format }` or `{ kind, timeCode }`, or `null` for a code no
|
|
352
|
+
function reads; testing `kind` narrows the code with no cast.
|
|
353
|
+
`parseEpcisEvent({ eventTime, eventTimeZoneOffset })` returns
|
|
354
|
+
`{ instant, offset, local }`; both fields are required and need not
|
|
355
|
+
agree. Five no-guess rules. (a) An offsetless value never becomes UTC:
|
|
356
|
+
`203`, `204`, `DT`, `RTS` and `parseX12DateAndTime` return a local
|
|
357
|
+
date-time; pass it and an IANA zone to `resolveLocal`. (b) A named X12
|
|
358
|
+
time code is a zone name, not an offset: `x12TimeCodeZone("ES")` is
|
|
359
|
+
`{ zone: "Eastern", daylight: false }` and `ET` has `daylight: null`,
|
|
360
|
+
while `x12TimeCodeOffset` reads `01`–`29`, `UT` and `GM`, and `13`–`24`
|
|
361
|
+
count down (`13` is `-12:00`). Each returns its sentinel for the other's
|
|
362
|
+
codes. (c) The `ZZZ` of `303` and `304` is an offset only: `+02`, `UTC`
|
|
363
|
+
and `GMT` are read, and letters such as `CET` return `""`. (d) A
|
|
364
|
+
two-digit year is not read by any EDI function: `101`, `201`, `202`,
|
|
365
|
+
`206`, `207`, `301`, `302`, `713`, `717`, `D6`, `TT`, `TR`, `RD6` and
|
|
366
|
+
`TU`. Read one with `parseDateWithPattern` or `parseDateTimeWithPattern`,
|
|
367
|
+
a `yy` pattern and `{ yearWindow }`: a start year such as `2000` (a fixed
|
|
368
|
+
window, for stored data) or `"rolling"` (50 years before the current UTC
|
|
369
|
+
year to 49 after). Without `yearWindow` a `yy` pattern returns `""`. (e)
|
|
370
|
+
`209`, `404`, `406`, `TC`, `EH`, `DDT`, `DTD`, `RTM` and `UN` are not
|
|
371
|
+
read: none states one date, time or date-time. A UN/EDIFACT period has no
|
|
372
|
+
hyphen (`2024061520240620` under `718`) and an X12 range has one
|
|
373
|
+
(`20240615-20240620` under `RD8`); a reversed one returns the sentinel.
|
|
374
|
+
Pass a UN/EDIFACT parser the unescaped value (`+02`, not `?+02`). A
|
|
375
|
+
formatter cuts seconds and fractions to its mask and never rounds.
|
|
376
|
+
It writes `ZZZ` as `±HH`, and `+05:30` under `303` or `304` returns `""`:
|
|
377
|
+
use `205` or `208`. Each value validator is true exactly when its parser
|
|
378
|
+
returns a value (`isValidX12DateAndTime(date, time)` for the freight
|
|
379
|
+
pair), and `isValidEdifactDtmFormat`, `isValidX12DateTimePeriodFormat`
|
|
380
|
+
and `isValidX12TimeCode` check a code alone. `isValidEpcisEvent` is
|
|
381
|
+
`isValidEpcisEventTime` and `isValidEpcisTimeZoneOffset` together: the
|
|
382
|
+
`epcisEventTime` regex matches `2024-02-30`, the validator does not.
|
|
383
|
+
22. **Operating hours are local windows resolved in the schedule's zone.** An
|
|
384
|
+
`OperatingSchedule` is `{ timeZone, weekly, holidays?, overrides? }`:
|
|
385
|
+
`weekly` maps ISO weekdays `1`–`7` to half-open `LocalWindow`s
|
|
386
|
+
(`{ from: "09:00", to: "17:00" }`); a `to` at or before `from` wraps past
|
|
387
|
+
midnight and the window belongs to the date it starts on. Holidays are local
|
|
388
|
+
dates (a `BusinessCalendar` is accepted; only its `holidays` are read); an
|
|
389
|
+
override replaces one date's windows, holiday or not. Every edge goes
|
|
390
|
+
through `resolveLocal` with `disambiguation` (default `"compatible"`), so a
|
|
391
|
+
23:00–06:00 window is 8 real hours across New York's fall-back night.
|
|
392
|
+
`recurringWindows(weekly, range, zone)` and `operatingIntervals(schedule,
|
|
393
|
+
range)` return merged open intervals; `isOpenAt`, `nextOpenAt` and
|
|
394
|
+
`nextCloseAt` answer point questions; `operatingTimeBetween(start, end,
|
|
395
|
+
schedule)` is open time elapsed (hours as the largest unit), and
|
|
396
|
+
`addOperatingTime(start, "PT8H", schedule)` is the SLA deadline. Searches
|
|
397
|
+
stop at `within` (default `"P1Y"`) and return `""` past it; `P1D` is not
|
|
398
|
+
open time and returns `""`.
|
|
399
|
+
23. **A zoned string names one instant in every reader.** Temporal writes a
|
|
400
|
+
zone's offset rounded to the minute, so a zone with a sub-minute offset
|
|
401
|
+
(`Africa/Monrovia` stood at −00:44:30 until 1972) is written `-00:45`.
|
|
402
|
+
Every function that reads a moment (`toNanoseconds`, `spanNs`, `Interval`
|
|
403
|
+
endpoints, `floorToZone`, `getTimeZoneOffset`, `scheduleDeviation`,
|
|
404
|
+
`timeToCutoff`, `dwellTime`) reads an offset written to the minute as the
|
|
405
|
+
bracketed zone's real offset when it is that offset rounded (TC39
|
|
406
|
+
`ToTemporalZonedDateTime`, match-minutes):
|
|
407
|
+
`1960-01-01T00:20:00-00:45[Africa/Monrovia]` is `01:04:30Z`. So a zoned
|
|
408
|
+
string GMT wrote reads back as the instant it was written for. Otherwise
|
|
409
|
+
the written offset fixes the instant. A function that reads only the
|
|
410
|
+
instant does not validate the bracket, and the bracket never supplies its
|
|
411
|
+
rendering zone. A function that keeps the zone (`isValidZonedDateTime`,
|
|
412
|
+
`transitTime`, `toOffsetInstant`, every `zoned/` function, a zoned
|
|
413
|
+
`relativeTo`) rejects a bracket that contradicts the offset, and an offset
|
|
414
|
+
written with seconds must be the zone's offset exactly:
|
|
415
|
+
`-00:45:00[Africa/Monrovia]` is invalid, `-00:44:30[Africa/Monrovia]` is
|
|
416
|
+
valid. Two limits are Temporal's own. A wall time repeated inside a
|
|
417
|
+
sub-minute offset change, written to the minute, reads as its first pass
|
|
418
|
+
(`1952-10-15T23:59:59-11:20[Pacific/Niue]`); write the offset with seconds
|
|
419
|
+
to name the second. A zoned read refuses a local date of −271821-04-19,
|
|
420
|
+
which an instant reader accepts; pass that instant in `Z` form.
|
|
421
|
+
24. **Daylight time is read from the zone's clock changes.**
|
|
422
|
+
`isInDaylightSaving(zoned)` and `hasDaylightSaving(timeZone, { at })`
|
|
423
|
+
apply one rule, GMT's own definition and not the tz database's daylight
|
|
424
|
+
flag (no JavaScript API exposes it): daylight time runs from a forward
|
|
425
|
+
change of the zone's clocks to the backward change of the same size that
|
|
426
|
+
undoes it, less than 365 days later. A forward change never undone is a
|
|
427
|
+
change of standard time, so
|
|
428
|
+
`isInDaylightSaving("2016-12-01T12:00:00+03:00[Europe/Istanbul]")` is
|
|
429
|
+
`false`. The higher of two alternating offsets is the daylight one:
|
|
430
|
+
`Europe/Dublin` in summer, `Africa/Casablanca` at `+01:00`.
|
|
431
|
+
`hasDaylightSaving` is `true` when the zone is in daylight time at `at`
|
|
432
|
+
or a daylight period begins less than 365 days after it. Pass `at` (an
|
|
433
|
+
ISO 8601 instant string) for an answer that does not depend on the day
|
|
434
|
+
the code runs: `hasDaylightSaving("Europe/Istanbul", { at:
|
|
435
|
+
"2015-06-15T12:00:00Z" })` is `true`, and with `"2016-06-15T12:00:00Z"`
|
|
436
|
+
it is `false`. Without `at` the reference is the current instant. Both
|
|
437
|
+
read the runtime's time zone data, so an answer can change when that data
|
|
438
|
+
does. The JSDoc of `isInDaylightSaving` lists what the rule reads as
|
|
439
|
+
standard time.
|
|
440
|
+
25. **Read the docs site.** This skill is a routing pointer. The map of the
|
|
441
|
+
docs is `https://gmt-dox.northguild.workers.dev/llms.txt`, and each page
|
|
442
|
+
has a `.md` twin that holds its text. The JSDoc ships in the installed
|
|
443
|
+
package: `node_modules/@northguild/gmt/dist/**/*.d.ts`.
|
|
233
444
|
|
|
234
445
|
## Key functions
|
|
235
446
|
|
|
@@ -237,7 +448,7 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
237
448
|
- **Formatting**: `formatZonedDateTime`, `formatZonedRange`,
|
|
238
449
|
`formatRelativeZoned`, `formatTimeZoneName`
|
|
239
450
|
- **Validation**: `isValidTimeZone`, `isValidZonedDateTime`,
|
|
240
|
-
`hasDaylightSaving
|
|
451
|
+
`hasDaylightSaving` (`{ at }`), `getDstTransitions`, `isInDaylightSaving`
|
|
241
452
|
- **Conversion**: `convertPlainDateTimeToZoned`, `convertZonedToPlainDateTime`,
|
|
242
453
|
`convertUtcToZoned`, `convertZonedToUtc`, `convertZonedToCalendar`,
|
|
243
454
|
`convertUtcToUnix`, `convertUnixToUtc`
|
|
@@ -249,16 +460,39 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
249
460
|
`endOfUnix`, `mapZonedHoursInDay`, `getHoursInZonedDay`
|
|
250
461
|
- **Offset/DST reads**: `getZonedOffset`, `getZonedOffsetAs`,
|
|
251
462
|
`getTimeZoneOffset`, `parseTimeZoneFromZoned`
|
|
252
|
-
- **Offset-preserving instants**: `toOffsetInstant`, `fromOffsetInstant
|
|
463
|
+
- **Offset-preserving instants**: `toOffsetInstant`, `fromOffsetInstant`,
|
|
464
|
+
`isValidUtcOffset` (the pair's `±HH:MM[:SS]` offset; not `Z`, not `+0530`)
|
|
253
465
|
- **Local-time resolution**: `classifyLocal`, `resolveLocal`
|
|
254
466
|
- **Zone-aware buckets**: `floorToZone`, `bucketRange`,
|
|
255
467
|
`isValidZoneBucketUnit`
|
|
256
|
-
- **Transport legs and dwell**: `transitTime`, `etaAtZone`, `dwellTime
|
|
468
|
+
- **Transport legs and dwell**: `transitTime`, `etaAtZone`, `dwellTime`,
|
|
469
|
+
`crossingTime`, `scheduleDelivery`
|
|
470
|
+
- **Cut-offs and deadlines**: `cutoffAt`, `cutoffSchedule`, `isPastCutoff`,
|
|
471
|
+
`timeToCutoff`
|
|
472
|
+
- **Punctuality and timestamp classes**: `scheduleDeviation`,
|
|
473
|
+
`classifyPunctuality`, `punctualityRate`, `bestAvailable`, `estimateDrift`,
|
|
474
|
+
`nextDeparture`
|
|
257
475
|
- **Free time and demurrage**: `freeTimeExpiry`, `chargeableDays`,
|
|
258
476
|
`demurrageClock`
|
|
259
477
|
- **Billing deadlines**: `billingTimeline`
|
|
478
|
+
- **Bill of lading dates and multimodal ETA**: `bolTimestamp`, `multimodalETA`
|
|
479
|
+
- **EDI and event timestamps**: `parseEdifactDate`, `parseEdifactTime`,
|
|
480
|
+
`parseEdifactDateTime`, `parseEdifactOffsetDateTime`,
|
|
481
|
+
`parseEdifactDatePeriod`, `parseEdifactDateTimePeriod`, `parseX12Date`,
|
|
482
|
+
`parseX12Time`, `parseX12DateTime`, `parseX12DateRange`,
|
|
483
|
+
`parseX12DateTimeRange`, `parseX12DateAndTime`, `x12TimeCodeOffset`,
|
|
484
|
+
`x12TimeCodeZone`, `classifyEdifactDtmFormat`,
|
|
485
|
+
`classifyX12DateTimePeriodFormat`, `classifyX12TimeCode`,
|
|
486
|
+
`parseEpcisEvent`; a `format…` and an `isValid…` for each `parseEdifact…`
|
|
487
|
+
kind, for `X12Date`, `X12Time`, `X12DateTime`, `X12DateRange` and
|
|
488
|
+
`X12DateTimeRange`, and for `EpcisEvent`; `formatX12TimeElement`,
|
|
489
|
+
`isValidX12DateAndTime`, `isValidEpcisEventTime`,
|
|
490
|
+
`isValidEpcisTimeZoneOffset`, `isValidEdifactDtmFormat`,
|
|
491
|
+
`isValidX12DateTimePeriodFormat`, `isValidX12TimeCode`
|
|
492
|
+
- **Operating hours**: `recurringWindows`, `operatingIntervals`, `isOpenAt`,
|
|
493
|
+
`nextOpenAt`, `nextCloseAt`, `operatingTimeBetween`, `addOperatingTime`
|
|
260
494
|
|
|
261
495
|
## References
|
|
262
496
|
|
|
263
|
-
- [
|
|
497
|
+
- [Zoned operations guide](https://gmt-dox.northguild.workers.dev/guides/zoned-date-operations/zoned-operations/)
|
|
264
498
|
- [DST Disambiguation guide](https://gmt-dox.northguild.workers.dev/guides/concepts/dst-disambiguation/)
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import type { DateTimeDurationUnit, DurationRelativeTo } from "../../types/index.js";
|
|
3
|
-
/**
|
|
4
|
-
* Express an ISO 8601 duration as a single fractional total in one unit.
|
|
5
|
-
*
|
|
6
|
-
* - Uses Temporal.Duration.from and .total — the whole duration is converted, so
|
|
7
|
-
* durationAs("P1DT2H30M", "hours") is 26.5, not the 2 that `getDurationUnit` reads.
|
|
8
|
-
* - The result is fractional, not rounded: durationAs("P1DT2H30M", "days") is
|
|
9
|
-
* 1.1041666666666667. Round it yourself, or reach for `normalizeDuration` instead.
|
|
10
|
-
* - `relativeTo` is required whenever a calendar unit (year/month/week) is involved, in
|
|
11
|
-
* *either* direction — as the requested `unit`, or because the input duration already has
|
|
12
|
-
* a nonzero year/month/week component. Without it, returns null. This is the same
|
|
13
|
-
* documented gap `normalizeDuration` (A3) carries; `addDuration`/`subtractDuration` (A2)
|
|
14
|
-
* have it worse still, since Temporal gives them no `relativeTo` option at all.
|
|
15
|
-
* - The requested-unit half of that rule bites even on day/time-only input: "P1DT2H30M" has
|
|
16
|
-
* no calendar component, yet durationAs("P1DT2H30M", "weeks") is still null — a week is a
|
|
17
|
-
* calendar quantity to Temporal regardless of what it is being measured from.
|
|
18
|
-
* - `relativeTo` changes the answer for non-calendar units too when it names a zoned instant:
|
|
19
|
-
* a day spanning a DST spring-forward transition totals 23 hours, not 24.
|
|
20
|
-
* - A zoned `relativeTo` string resolves its wall time with disambiguation "compatible" and
|
|
21
|
-
* offset "reject", as Temporal does: an ambiguous wall time takes the earlier instant, a
|
|
22
|
-
* nonexistent one the later instant, and an offset that does not match the zone returns null.
|
|
23
|
-
* Pass an explicit offset to pick the other reading of an ambiguous wall time.
|
|
24
|
-
* - A `relativeTo` string is ISO 8601 extended format before its first `[`:
|
|
25
|
-
* a date, a date-time, or with a time zone annotation a zoned date-time (`<date>T<time>`, then
|
|
26
|
-
* nothing, `Z` or `±HH:MM`). Basic format (`"20240101"`), a space or lower-case `t` separator, a
|
|
27
|
-
* lower-case `z`, a UTC offset without a zone and a zoned date without a time are invalid.
|
|
28
|
-
* - A `relativeTo` string takes a calendar in RFC 9557 form, as `convertDateToCalendar` and
|
|
29
|
-
* `convertZonedToCalendar` write it: ISO digits and a `[u-ca=<id>]` annotation, after the zone
|
|
30
|
-
* for a zoned string (`"2024-02-24[u-ca=hebrew]"`, `"2024-02-24T00:00:00-05:00[America/New_York][u-ca=hebrew]"`).
|
|
31
|
-
* The annotations are read as Temporal reads them: the critical flag and the id's letter case
|
|
32
|
-
* are accepted, elective unknown annotations are ignored, the first `u-ca` names the calendar,
|
|
33
|
-
* and a string with a time zone annotation is zoned. An unknown critical annotation, a critical
|
|
34
|
-
* duplicate calendar, a calendar before the zone, an unsupported calendar and a leap second in
|
|
35
|
-
* any spelling return null.
|
|
36
|
-
* Compatibility: before 1.16.0 the digits were read as the calendar's own year, month and day.
|
|
37
|
-
* - `unit` accepts the plural or singular name (`"hours"` or `"hour"`), as Temporal does.
|
|
38
|
-
* - Returns null on a non-duration `value`, an invalid `unit`, or an invalid `relativeTo`.
|
|
39
|
-
*
|
|
40
|
-
* @param value ISO 8601 duration string
|
|
41
|
-
* @param unit DateTimeDurationUnit to total into ("years" | "months" | "weeks" | "days" | "hours" | "minutes" | "seconds" | "milliseconds" | "microseconds" | "nanoseconds", or the singular name)
|
|
42
|
-
* @param options optional: { relativeTo } — anchor date/instant, required for any calendar unit
|
|
43
|
-
* @returns the fractional total in `unit`, or null on invalid input
|
|
44
|
-
*
|
|
45
|
-
* @example durationAs("P1DT2H30M", "hours") // 26.5
|
|
46
|
-
* @example durationAs("P1DT2H30M", "minutes") // 1590
|
|
47
|
-
* @example durationAs("PT36H", "days") // 1.5
|
|
48
|
-
* @example durationAs("-PT90M", "hours") // -1.5
|
|
49
|
-
* @example durationAs("P1M", "days") // null (calendar unit needs relativeTo)
|
|
50
|
-
* @example durationAs("P1M", "days", { relativeTo: "2024-02-01" }) // 29
|
|
51
|
-
* @example durationAs("P1M", "days", { relativeTo: "20240201" }) // null (basic format)
|
|
52
|
-
* @example durationAs("P1D", "hours", { relativeTo: "2024-03-10T00:00:00-05:00[America/New_York]" }) // 23 (spring-forward)
|
|
53
|
-
* @example durationAs("P1D", "hours", { relativeTo: "2024-11-03T01:30[America/New_York]" }) // 25
|
|
54
|
-
* @example durationAs("P1DT2H30M", "minute") // 1590 (singular unit name)
|
|
55
|
-
* @example durationAs("not a duration", "hours") // null
|
|
56
|
-
* @example durationAs("P1Y", "days", { relativeTo: "2024-02-24[u-ca=hebrew]" }) // 385 (Hebrew leap year 5784)
|
|
57
|
-
* @example durationAs("P1M", "days", { relativeTo: "2024-02-10[!u-ca=hebrew]" }) // 30 (1 Adar I 5784; the critical flag is accepted)
|
|
58
|
-
* @example durationAs("P1M", "days", { relativeTo: "2024-02-10T00:00:00[u-ca=hebrew]" }) // 30 (a date-time without a zone reads as its date, as Temporal reads relativeTo)
|
|
59
|
-
*/
|
|
60
|
-
export declare function durationAs(value: string, unit: DateTimeDurationUnit | Temporal.DateTimeUnit, options?: {
|
|
61
|
-
relativeTo?: DurationRelativeTo;
|
|
62
|
-
}): number | null;
|
|
@@ -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
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
/**
|
|
3
|
-
* Read a Unix epoch argument as a `Temporal.ZonedDateTime` under the shared `unix/` options, or
|
|
4
|
-
* null when anything is invalid.
|
|
5
|
-
*
|
|
6
|
-
* - `value` follows the one epoch grammar (`parseUnixEpochValue`).
|
|
7
|
-
* - `epochUnit` accepts singular or plural names and defaults to `"milliseconds"`.
|
|
8
|
-
* - `timeZone` defaults to `"UTC"`; `"local"` is the system zone; an unknown zone is invalid
|
|
9
|
-
* (see `normalizeTimeZone`).
|
|
10
|
-
*
|
|
11
|
-
* @param value Unix epoch number or digit string
|
|
12
|
-
* @param options optional `{ epochUnit, timeZone }`
|
|
13
|
-
* @returns the zoned date-time, or null
|
|
14
|
-
*
|
|
15
|
-
* @example unixZonedDateTime(0)?.toString() // "1970-01-01T00:00:00+00:00[UTC]"
|
|
16
|
-
* @example unixZonedDateTime("86400", { epochUnit: "second", timeZone: "Asia/Tokyo" })?.hour // 9
|
|
17
|
-
* @example unixZonedDateTime(0, { timeZone: "Asia/Tokio" }) // null
|
|
18
|
-
*/
|
|
19
|
-
export declare function unixZonedDateTime(value: unknown, options?: {
|
|
20
|
-
epochUnit?: unknown;
|
|
21
|
-
timeZone?: unknown;
|
|
22
|
-
}): Temporal.ZonedDateTime | null;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { normalizeTimeZone } from "./normalizeTimeZone.js";
|
|
2
|
-
import { resolveUnixEpochUnit, unixEpochToInstant } from "./unixEpochValue.js";
|
|
3
|
-
/**
|
|
4
|
-
* Read a Unix epoch argument as a `Temporal.ZonedDateTime` under the shared `unix/` options, or
|
|
5
|
-
* null when anything is invalid.
|
|
6
|
-
*
|
|
7
|
-
* - `value` follows the one epoch grammar (`parseUnixEpochValue`).
|
|
8
|
-
* - `epochUnit` accepts singular or plural names and defaults to `"milliseconds"`.
|
|
9
|
-
* - `timeZone` defaults to `"UTC"`; `"local"` is the system zone; an unknown zone is invalid
|
|
10
|
-
* (see `normalizeTimeZone`).
|
|
11
|
-
*
|
|
12
|
-
* @param value Unix epoch number or digit string
|
|
13
|
-
* @param options optional `{ epochUnit, timeZone }`
|
|
14
|
-
* @returns the zoned date-time, or null
|
|
15
|
-
*
|
|
16
|
-
* @example unixZonedDateTime(0)?.toString() // "1970-01-01T00:00:00+00:00[UTC]"
|
|
17
|
-
* @example unixZonedDateTime("86400", { epochUnit: "second", timeZone: "Asia/Tokyo" })?.hour // 9
|
|
18
|
-
* @example unixZonedDateTime(0, { timeZone: "Asia/Tokio" }) // null
|
|
19
|
-
*/
|
|
20
|
-
export function unixZonedDateTime(value, options) {
|
|
21
|
-
const epochUnit = resolveUnixEpochUnit(options?.epochUnit);
|
|
22
|
-
const timeZone = normalizeTimeZone(options?.timeZone);
|
|
23
|
-
if (epochUnit === null || !timeZone) {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
try {
|
|
27
|
-
return (unixEpochToInstant(value, epochUnit)?.toZonedDateTimeISO(timeZone) ?? null);
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
/**
|
|
3
|
-
* Read a UTC ISO string as a zoned date-time for the `parse*FromUtc` accessors: the instant it
|
|
4
|
-
* names, on the wall clock of `options.timeZone` (UTC when omitted). The utc twin of
|
|
5
|
-
* `unixZonedDateTime`.
|
|
6
|
-
*
|
|
7
|
-
* @param value UTC ISO 8601 datetime string
|
|
8
|
-
* @param options optional `{ timeZone }`
|
|
9
|
-
* @returns the zoned date-time, or null when the value or the zone is invalid
|
|
10
|
-
* @example utcZonedDateTime("2024-03-15T14:30:00Z", { timeZone: "Asia/Tokyo" })?.toString() // "2024-03-15T23:30:00+09:00[Asia/Tokyo]"
|
|
11
|
-
* @example utcZonedDateTime("2024-03-15T14:30:00Z", { timeZone: "Invalid/Zone" }) // null
|
|
12
|
-
* @example utcZonedDateTime("2024-03-15T14:30:00") // null (no Z)
|
|
13
|
-
*/
|
|
14
|
-
export declare function utcZonedDateTime(value: string, options?: {
|
|
15
|
-
timeZone?: string;
|
|
16
|
-
}): Temporal.ZonedDateTime | null;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import { isValidUtc } from "../utc/validate/isValidUtc.js";
|
|
3
|
-
import { resolveReadingTimeZone } from "./resolveReadingTimeZone.js";
|
|
4
|
-
/**
|
|
5
|
-
* Read a UTC ISO string as a zoned date-time for the `parse*FromUtc` accessors: the instant it
|
|
6
|
-
* names, on the wall clock of `options.timeZone` (UTC when omitted). The utc twin of
|
|
7
|
-
* `unixZonedDateTime`.
|
|
8
|
-
*
|
|
9
|
-
* @param value UTC ISO 8601 datetime string
|
|
10
|
-
* @param options optional `{ timeZone }`
|
|
11
|
-
* @returns the zoned date-time, or null when the value or the zone is invalid
|
|
12
|
-
* @example utcZonedDateTime("2024-03-15T14:30:00Z", { timeZone: "Asia/Tokyo" })?.toString() // "2024-03-15T23:30:00+09:00[Asia/Tokyo]"
|
|
13
|
-
* @example utcZonedDateTime("2024-03-15T14:30:00Z", { timeZone: "Invalid/Zone" }) // null
|
|
14
|
-
* @example utcZonedDateTime("2024-03-15T14:30:00") // null (no Z)
|
|
15
|
-
*/
|
|
16
|
-
export function utcZonedDateTime(value, options) {
|
|
17
|
-
if (!isValidUtc(value))
|
|
18
|
-
return null;
|
|
19
|
-
const timeZone = resolveReadingTimeZone(options?.timeZone);
|
|
20
|
-
if (timeZone === null)
|
|
21
|
-
return null;
|
|
22
|
-
try {
|
|
23
|
-
return Temporal.Instant.from(value).toZonedDateTimeISO(timeZone);
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
File without changes
|