@northguild/gmt 1.18.0 → 1.20.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 -2920
- package/dist/calendar/business/businessDaysBetween.d.ts +2 -2
- package/dist/calendar/business/businessDaysBetween.js +11 -35
- package/dist/calendar/business/mergeCalendars.d.ts +1 -1
- package/dist/calendar/business/mergeCalendars.js +8 -9
- package/dist/calendar/business/nextBusinessDay.d.ts +2 -2
- package/dist/calendar/business/nextBusinessDay.js +2 -2
- package/dist/calendar/business/previousBusinessDay.d.ts +2 -2
- package/dist/calendar/business/previousBusinessDay.js +2 -2
- package/dist/calendar/business/rollDate.d.ts +3 -3
- package/dist/calendar/business/rollDate.js +10 -43
- package/dist/calendar/calculate/bucketRange.d.ts +19 -11
- package/dist/calendar/calculate/bucketRange.js +27 -70
- package/dist/calendar/calculate/floorToZone.d.ts +12 -4
- package/dist/calendar/calculate/floorToZone.js +16 -8
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +50 -40
- package/dist/calendar/calculate/getFiscalPeriod.js +78 -57
- package/dist/calendar/calculate/getQuarter.d.ts +26 -21
- package/dist/calendar/calculate/getQuarter.js +48 -19
- package/dist/calendar/hours/addOperatingTime.d.ts +9 -3
- package/dist/calendar/hours/addOperatingTime.js +10 -4
- package/dist/calendar/hours/isOpenAt.d.ts +9 -3
- package/dist/calendar/hours/isOpenAt.js +9 -3
- package/dist/calendar/hours/nextCloseAt.d.ts +8 -2
- package/dist/calendar/hours/nextCloseAt.js +9 -3
- package/dist/calendar/hours/nextOpenAt.d.ts +9 -3
- package/dist/calendar/hours/nextOpenAt.js +10 -4
- package/dist/calendar/hours/operatingIntervals.d.ts +7 -2
- package/dist/calendar/hours/operatingIntervals.js +9 -6
- package/dist/calendar/hours/operatingTimeBetween.d.ts +8 -3
- package/dist/calendar/hours/operatingTimeBetween.js +11 -8
- package/dist/calendar/hours/recurringWindows.d.ts +13 -6
- package/dist/calendar/hours/recurringWindows.js +21 -14
- package/dist/calendar/index.d.ts +1 -1
- package/dist/calendar/index.js +2 -2
- package/dist/calendar/validate/index.d.ts +3 -0
- package/dist/calendar/validate/index.js +3 -0
- package/dist/calendar/validate/isValidFiscalCalendar.d.ts +23 -0
- package/dist/calendar/validate/isValidFiscalCalendar.js +44 -0
- package/dist/calendar/validate/isValidFiscalExtraWeek.d.ts +19 -0
- package/dist/calendar/validate/isValidFiscalExtraWeek.js +23 -0
- package/dist/calendar/validate/isValidFiscalPattern.d.ts +7 -7
- package/dist/calendar/validate/isValidFiscalPattern.js +7 -7
- package/dist/calendar/validate/isValidFiscalYearLabel.d.ts +20 -0
- package/dist/calendar/validate/isValidFiscalYearLabel.js +24 -0
- package/dist/calendar/validate/isValidRollConvention.js +2 -10
- package/dist/calendar/validate/isValidZoneBucketUnit.d.ts +1 -1
- package/dist/duration/calculate/absDuration.js +1 -1
- package/dist/duration/calculate/addDuration.js +1 -1
- package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
- package/dist/duration/calculate/durationFromUnits.js +67 -0
- package/dist/duration/calculate/getDurationSign.js +1 -1
- package/dist/duration/calculate/getDurationUnit.d.ts +3 -3
- package/dist/duration/calculate/getDurationUnit.js +3 -3
- 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 +2 -2
- package/dist/duration/calculate/subtractDuration.js +1 -1
- package/dist/duration/calculate/{durationAs.d.ts → totalDuration.d.ts} +27 -21
- package/dist/duration/calculate/{durationAs.js → totalDuration.js} +27 -21
- package/dist/duration/calculate/totalUnits.d.ts +49 -0
- package/dist/duration/calculate/totalUnits.js +73 -0
- package/dist/duration/compare/compareDurations.d.ts +4 -4
- package/dist/duration/compare/compareDurations.js +4 -4
- package/dist/duration/format/formatDuration.d.ts +9 -9
- package/dist/duration/format/formatDuration.js +14 -13
- package/dist/duration/index.d.ts +1 -1
- package/dist/duration/index.js +2 -2
- package/dist/duration/normalize/normalizeDuration.d.ts +3 -3
- package/dist/duration/normalize/normalizeDuration.js +3 -3
- package/dist/duration/parse/parseDuration.d.ts +1 -1
- package/dist/duration/parse/parseDuration.js +1 -1
- package/dist/duration/validate/isValidDuration.js +2 -11
- package/dist/gnss/convert/gnssToUtc.d.ts +24 -0
- package/dist/gnss/convert/gnssToUtc.js +39 -0
- package/dist/gnss/convert/gnssWeekToUtc.d.ts +53 -0
- package/dist/gnss/convert/gnssWeekToUtc.js +80 -0
- package/dist/gnss/convert/index.d.ts +6 -0
- package/dist/gnss/convert/index.js +6 -0
- package/dist/gnss/convert/rinexWeekToUtc.d.ts +34 -0
- package/dist/gnss/convert/rinexWeekToUtc.js +57 -0
- package/dist/gnss/convert/utcToGnss.d.ts +38 -0
- package/dist/gnss/convert/utcToGnss.js +53 -0
- package/dist/gnss/convert/utcToGnssWeek.d.ts +24 -0
- package/dist/gnss/convert/utcToGnssWeek.js +40 -0
- package/dist/gnss/convert/utcToRinexWeek.d.ts +19 -0
- package/dist/gnss/convert/utcToRinexWeek.js +45 -0
- package/dist/gnss/index.d.ts +2 -0
- package/dist/gnss/index.js +3 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +4 -1
- package/dist/instant/convert/classifyLocal.d.ts +9 -5
- package/dist/instant/convert/classifyLocal.js +19 -20
- package/dist/instant/convert/fromOffsetInstant.d.ts +8 -4
- package/dist/instant/convert/fromOffsetInstant.js +11 -6
- package/dist/instant/convert/resolveLocal.d.ts +16 -11
- package/dist/instant/convert/resolveLocal.js +25 -17
- package/dist/instant/convert/toOffsetInstant.d.ts +23 -19
- package/dist/instant/convert/toOffsetInstant.js +29 -38
- package/dist/instant/index.d.ts +2 -1
- package/dist/instant/index.js +3 -2
- 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.js +1 -1
- package/dist/intermodal/calculate/chargeableDays.d.ts +18 -12
- package/dist/intermodal/calculate/chargeableDays.js +27 -18
- package/dist/intermodal/calculate/demurrageClock.d.ts +1 -1
- package/dist/intermodal/calculate/demurrageClock.js +2 -2
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +17 -10
- package/dist/intermodal/calculate/freeTimeExpiry.js +32 -17
- 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 +4 -1
- package/dist/intermodal/index.js +5 -2
- 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/advanceToWeekday.d.ts +1 -1
- package/dist/internal/businessCalendar.d.ts +28 -12
- package/dist/internal/businessCalendar.js +131 -125
- package/dist/internal/businessDayValues.js +1 -1
- package/dist/internal/calendarDatePairPolicy.d.ts +1 -1
- package/dist/internal/calendarDateString.d.ts +1 -1
- package/dist/internal/calendarDateString.js +1 -1
- package/dist/internal/calendarSystemIds.js +1 -1
- package/dist/internal/calendarValueOfDate.js +1 -1
- package/dist/internal/calendarZonedPairPolicy.d.ts +1 -1
- package/dist/internal/calendarZonedString.d.ts +3 -3
- package/dist/internal/calendarZonedString.js +4 -4
- package/dist/internal/compareUnixEpochs.js +1 -1
- package/dist/internal/cutoffAtResolved.d.ts +62 -0
- package/dist/internal/cutoffAtResolved.js +162 -0
- package/dist/internal/cycleFieldValue.d.ts +0 -2
- package/dist/internal/cycleFieldValue.js +0 -2
- package/dist/internal/dateTimeUnitHelpers.d.ts +1 -1
- package/dist/internal/dateUnitHelpers.d.ts +1 -1
- package/dist/internal/daylightTime.d.ts +1 -1
- package/dist/internal/differenceRecord.d.ts +1 -1
- package/dist/internal/durationUntilString.d.ts +1 -1
- package/dist/internal/durationUntilString.js +1 -1
- package/dist/internal/dutyEngine.d.ts +125 -0
- package/dist/internal/dutyEngine.js +1755 -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 +375 -0
- package/dist/internal/dutyRules.d.ts +198 -0
- package/dist/internal/dutyRules.js +484 -0
- package/dist/internal/dutyRunIndex.d.ts +150 -0
- package/dist/internal/dutyRunIndex.js +398 -0
- package/dist/internal/earlierOccurrence.d.ts +41 -0
- package/dist/internal/earlierOccurrence.js +57 -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 +4 -2
- package/dist/internal/englishCalendarNames.js +3 -1
- package/dist/internal/epochDay.d.ts +41 -0
- package/dist/internal/epochDay.js +129 -0
- package/dist/internal/exactDuration.js +1 -1
- package/dist/internal/exactMoment.d.ts +4 -4
- package/dist/internal/exactMoment.js +5 -5
- package/dist/internal/fiscalCalendar.d.ts +41 -7
- package/dist/internal/fiscalCalendar.js +77 -9
- package/dist/internal/foreignEpochs.d.ts +5 -0
- package/dist/internal/foreignEpochs.js +5 -0
- package/dist/internal/formatCalendarDays.d.ts +4 -4
- package/dist/internal/formatCalendarDays.js +6 -5
- package/dist/internal/formatDateInCalendar.d.ts +1 -1
- package/dist/internal/formatRelativeDuration.d.ts +7 -7
- package/dist/internal/formatRelativeDuration.js +8 -7
- package/dist/internal/formatterCache.d.ts +40 -0
- package/dist/internal/formatterCache.js +181 -0
- package/dist/internal/freeTimeLedger.d.ts +35 -42
- package/dist/internal/freeTimeLedger.js +332 -31
- package/dist/internal/getLocaleWeekYearBounds.d.ts +1 -1
- package/dist/internal/gnssTimeScales.d.ts +53 -0
- package/dist/internal/gnssTimeScales.js +128 -0
- package/dist/internal/gnssWeek.d.ts +92 -0
- package/dist/internal/gnssWeek.js +212 -0
- package/dist/internal/halfOpenIntervals.d.ts +1 -1
- package/dist/internal/halfOpenIntervals.js +1 -1
- package/dist/internal/hasCalendarAnnotation.d.ts +3 -3
- package/dist/internal/hasCalendarAnnotation.js +3 -3
- package/dist/internal/hourDurationString.js +1 -1
- package/dist/internal/httpDateFields.js +1 -1
- package/dist/internal/index.d.ts +14 -5
- package/dist/internal/index.js +18 -5
- package/dist/internal/inputChecks.d.ts +53 -0
- package/dist/internal/inputChecks.js +132 -0
- package/dist/internal/instantFormatOptions.d.ts +1 -1
- package/dist/internal/instantFormatOptions.js +4 -8
- package/dist/internal/instantIntervalText.js +1 -1
- package/dist/internal/instantNanoseconds.d.ts +2 -2
- package/dist/internal/instantNanoseconds.js +2 -2
- package/dist/internal/intervalCountHelpers.d.ts +1 -1
- 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/isoStringBody.d.ts +2 -2
- package/dist/internal/isoStringBody.js +2 -2
- package/dist/internal/isoYearString.d.ts +21 -0
- package/dist/internal/isoYearString.js +27 -0
- package/dist/internal/joinDateTimeConnector.js +3 -2
- package/dist/internal/leapSeconds.d.ts +63 -0
- package/dist/internal/leapSeconds.js +162 -0
- package/dist/internal/localeWeekInfo.d.ts +1 -1
- package/dist/internal/localeWeekInfo.js +1 -1
- package/dist/internal/maxPieces.js +2 -1
- package/dist/internal/monthGridWeekRow.d.ts +1 -1
- package/dist/internal/normalizeDateTime.d.ts +2 -1
- package/dist/internal/normalizeDateTime.js +3 -2
- package/dist/internal/normalizeTimeZone.d.ts +5 -2
- package/dist/internal/normalizeTimeZone.js +5 -2
- package/dist/internal/offsetTimeline.d.ts +56 -0
- package/dist/internal/offsetTimeline.js +166 -0
- package/dist/internal/operatingSchedule.d.ts +39 -34
- package/dist/internal/operatingSchedule.js +672 -222
- package/dist/internal/patternToken.d.ts +10 -3
- package/dist/internal/patternToken.js +41 -19
- package/dist/internal/plainDateAdd.d.ts +1 -1
- package/dist/internal/plainDateAdd.js +1 -1
- package/dist/internal/plainDateUntil.d.ts +1 -1
- package/dist/internal/plainDateUntil.js +1 -1
- 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 +1 -1
- package/dist/internal/resolveDurationRelativeTo.js +1 -1
- package/dist/internal/resolveLocale.d.ts +2 -2
- package/dist/internal/resolveLocale.js +2 -2
- package/dist/internal/resolveManualRoundingOptions.d.ts +1 -1
- package/dist/internal/resolveRelativeUnit.d.ts +1 -1
- package/dist/internal/resolveRelativeUnit.js +1 -1
- package/dist/internal/resolveUnixIntervalPair.d.ts +9 -3
- package/dist/internal/resolveUnixIntervalPair.js +11 -7
- package/dist/internal/rinexWeek.d.ts +22 -0
- package/dist/internal/rinexWeek.js +30 -0
- package/dist/internal/rollBusinessDate.d.ts +15 -0
- package/dist/internal/rollBusinessDate.js +46 -0
- package/dist/internal/splitStep.d.ts +1 -1
- package/dist/internal/splitStep.js +1 -1
- package/dist/internal/startOrEndOfUnix.d.ts +3 -2
- package/dist/internal/startOrEndOfUnix.js +9 -6
- package/dist/internal/startOrEndOfUtc.d.ts +1 -1
- package/dist/internal/startOrEndOfUtc.js +1 -1
- package/dist/internal/startOrEndOfZoned.d.ts +1 -1
- package/dist/internal/temporal.d.ts +5 -0
- package/dist/internal/temporal.js +5 -0
- package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +1 -1
- package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +1 -1
- package/dist/internal/temporalCompat/calendarDateFromFields.js +1 -1
- package/dist/internal/temporalCompat/calendarFields.d.ts +1 -1
- package/dist/internal/temporalCompat/capabilities.d.ts +27 -5
- package/dist/internal/temporalCompat/capabilities.js +28 -4
- package/dist/internal/temporalCompat/fieldSearch.d.ts +1 -1
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/fixedDay.d.ts +1 -1
- package/dist/internal/temporalCompat/fixedDay.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/largeMonthSpan.js +1 -1
- package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +1 -1
- package/dist/internal/temporalCompat/nonIsoArithmetic.js +1 -1
- package/dist/internal/temporalCompat/probeRepros.d.ts +35 -0
- package/dist/internal/temporalCompat/probeRepros.js +571 -0
- package/dist/internal/temporalCompat/readArithmeticModel.js +2 -2
- package/dist/internal/temporalCompat/repros.d.ts +3 -10
- package/dist/internal/temporalCompat/repros.js +13 -520
- package/dist/internal/timeScaleString.d.ts +47 -0
- package/dist/internal/timeScaleString.js +86 -0
- package/dist/internal/toInstantFromUtc.d.ts +1 -1
- package/dist/internal/toInstantFromUtc.js +1 -1
- package/dist/internal/twoDigitYear.d.ts +19 -0
- package/dist/internal/twoDigitYear.js +22 -0
- package/dist/internal/unixEpochValue.d.ts +1 -1
- package/dist/internal/unixEpochValue.js +4 -3
- package/dist/internal/unixFormatReference.d.ts +1 -1
- package/dist/internal/unixFormatReference.js +1 -1
- package/dist/internal/unixWallClock.d.ts +24 -0
- package/dist/internal/unixWallClock.js +35 -0
- package/dist/internal/utcOffsetString.d.ts +16 -0
- package/dist/internal/utcOffsetString.js +31 -1
- package/dist/internal/utcReading.d.ts +59 -0
- package/dist/internal/utcReading.js +113 -0
- package/dist/internal/utcWallClock.d.ts +20 -0
- package/dist/internal/utcWallClock.js +32 -0
- package/dist/internal/validatedZones.d.ts +20 -0
- package/dist/internal/validatedZones.js +33 -0
- package/dist/internal/wallClockAtOffset.d.ts +1 -1
- 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.d.ts +2 -2
- package/dist/internal/zonedBucket.js +92 -21
- package/dist/internal/zonedFormatReference.d.ts +1 -1
- package/dist/internal/zonedFormatReference.js +1 -1
- package/dist/internal/zonedLocalDates.d.ts +1 -1
- package/dist/internal/zonedLocalDates.js +22 -19
- package/dist/internal/zonedNowUnitValue.d.ts +8 -5
- package/dist/internal/zonedNowUnitValue.js +9 -5
- package/dist/internal/zonedTransitionSearch.d.ts +2 -0
- package/dist/internal/zonedTransitionSearch.js +165 -16
- package/dist/internal/zonedWallClock.d.ts +15 -4
- package/dist/internal/zonedWallClock.js +34 -6
- package/dist/internal/zonedWallClockDifference.d.ts +1 -1
- package/dist/internal/zonedWallClockDifference.js +6 -6
- package/dist/internal/zonedWallClockOperations.d.ts +7 -4
- package/dist/internal/zonedWallClockOperations.js +58 -16
- package/dist/internal/zonelessCalendarDate.d.ts +1 -1
- package/dist/internal/zonelessCalendarDate.js +1 -1
- package/dist/interval/index.d.ts +1 -1
- package/dist/interval/index.js +2 -2
- package/dist/plain/calculate/addBusinessDays.d.ts +2 -2
- package/dist/plain/calculate/addBusinessDays.js +2 -2
- package/dist/plain/calculate/addDate.js +4 -7
- package/dist/plain/calculate/addDateTime.js +5 -8
- package/dist/plain/calculate/addTime.js +5 -8
- package/dist/plain/calculate/clampDate.js +1 -1
- package/dist/plain/calculate/closestDateTo.js +1 -1
- package/dist/plain/calculate/cycleDate.js +1 -1
- package/dist/plain/calculate/cycleDateTime.js +1 -1
- package/dist/plain/calculate/cycleTime.js +1 -1
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +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 +1 -1
- package/dist/plain/calculate/endOfDate.js +1 -1
- package/dist/plain/calculate/endOfDateTime.d.ts +1 -1
- package/dist/plain/calculate/endOfDateTime.js +1 -1
- package/dist/plain/calculate/endOfQuarterForDate.js +1 -1
- package/dist/plain/calculate/endOfQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/endOfTime.d.ts +2 -2
- package/dist/plain/calculate/endOfTime.js +1 -1
- package/dist/plain/calculate/getDayOfYear.js +1 -1
- package/dist/plain/calculate/getDaysInMonth.js +1 -1
- package/dist/plain/calculate/getDaysInYear.js +1 -1
- package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +6 -6
- package/dist/plain/calculate/getLocaleDayOfWeek.js +7 -7
- package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +4 -4
- package/dist/plain/calculate/getLocaleEndOfWeek.js +5 -5
- package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +5 -5
- package/dist/plain/calculate/getLocaleStartOfWeek.js +6 -6
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +10 -10
- package/dist/plain/calculate/getLocaleWeekYear.js +11 -11
- package/dist/plain/calculate/getQuarterForDate.js +1 -1
- package/dist/plain/calculate/getQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/getWeekNumber.js +1 -1
- package/dist/plain/calculate/getWeekOfMonth.d.ts +10 -14
- package/dist/plain/calculate/getWeekOfMonth.js +11 -15
- package/dist/plain/calculate/getWeekYear.js +1 -1
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +7 -7
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +8 -8
- package/dist/plain/calculate/getWeeksInMonth.d.ts +8 -11
- package/dist/plain/calculate/getWeeksInMonth.js +9 -12
- package/dist/plain/calculate/getWeeksInYear.js +1 -1
- package/dist/plain/calculate/maxDate.js +1 -1
- package/dist/plain/calculate/maxDateTime.js +1 -1
- package/dist/plain/calculate/maxTime.js +1 -1
- package/dist/plain/calculate/minDate.js +1 -1
- package/dist/plain/calculate/minDateTime.js +1 -1
- package/dist/plain/calculate/minTime.js +1 -1
- package/dist/plain/calculate/nextWeekday.d.ts +14 -12
- package/dist/plain/calculate/nextWeekday.js +15 -13
- package/dist/plain/calculate/previousWeekday.d.ts +14 -12
- package/dist/plain/calculate/previousWeekday.js +15 -13
- package/dist/plain/calculate/roundDate.d.ts +1 -1
- package/dist/plain/calculate/roundDate.js +1 -1
- package/dist/plain/calculate/roundDateTime.d.ts +1 -1
- package/dist/plain/calculate/roundDateTime.js +1 -1
- package/dist/plain/calculate/roundTime.d.ts +1 -1
- package/dist/plain/calculate/roundTime.js +1 -1
- package/dist/plain/calculate/setDate.d.ts +21 -4
- package/dist/plain/calculate/setDate.js +28 -8
- package/dist/plain/calculate/setDateTime.d.ts +16 -4
- package/dist/plain/calculate/setDateTime.js +23 -8
- package/dist/plain/calculate/setTime.d.ts +14 -2
- package/dist/plain/calculate/setTime.js +22 -7
- package/dist/plain/calculate/sortDateTimes.js +1 -1
- package/dist/plain/calculate/sortDates.js +1 -1
- package/dist/plain/calculate/sortTimes.js +1 -1
- package/dist/plain/calculate/startOfDate.d.ts +1 -1
- package/dist/plain/calculate/startOfDate.js +1 -1
- package/dist/plain/calculate/startOfDateTime.d.ts +1 -1
- package/dist/plain/calculate/startOfDateTime.js +1 -1
- package/dist/plain/calculate/startOfQuarterForDate.js +1 -1
- package/dist/plain/calculate/startOfQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/startOfTime.d.ts +2 -2
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractBusinessDays.d.ts +2 -2
- package/dist/plain/calculate/subtractBusinessDays.js +2 -2
- package/dist/plain/calculate/subtractDate.js +5 -8
- package/dist/plain/calculate/subtractDateTime.js +5 -8
- package/dist/plain/calculate/subtractTime.js +5 -8
- package/dist/plain/calculate/weekOfYearForDate.js +1 -1
- package/dist/plain/calculate/weekOfYearForDateTime.js +1 -1
- package/dist/plain/chop/chopDate.js +1 -1
- package/dist/plain/chop/chopMilliseconds.js +1 -1
- package/dist/plain/chop/chopSeconds.js +1 -1
- package/dist/plain/chop/chopTime.js +1 -1
- package/dist/plain/compare/areDateTimesEqual.js +1 -1
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +2 -4
- package/dist/plain/compare/areDateTimesEqualBy.js +2 -4
- package/dist/plain/compare/areDatesEqual.js +1 -1
- package/dist/plain/compare/areDatesEqualBy.d.ts +5 -5
- package/dist/plain/compare/areDatesEqualBy.js +5 -5
- package/dist/plain/compare/areTimesEqual.js +1 -1
- package/dist/plain/compare/isAfterDate.js +1 -1
- package/dist/plain/compare/isAfterDateTime.js +1 -1
- package/dist/plain/compare/isAfterTime.js +1 -1
- package/dist/plain/compare/isBeforeDate.js +1 -1
- package/dist/plain/compare/isBeforeDateTime.js +1 -1
- package/dist/plain/compare/isBeforeTime.js +1 -1
- package/dist/plain/compare/isBetweenDate.js +1 -1
- package/dist/plain/compare/isBetweenDateTime.js +1 -1
- package/dist/plain/compare/isBetweenTime.js +1 -1
- package/dist/plain/compare/isBusinessDay.d.ts +2 -2
- package/dist/plain/compare/isBusinessDay.js +3 -3
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +8 -6
- package/dist/plain/compare/isThisUnit.js +7 -5
- package/dist/plain/compare/isWeekend.d.ts +5 -5
- package/dist/plain/compare/isWeekend.js +6 -6
- package/dist/plain/format/formatCalendar.d.ts +3 -5
- package/dist/plain/format/formatCalendar.js +12 -10
- package/dist/plain/format/formatDate.d.ts +4 -4
- package/dist/plain/format/formatDate.js +8 -7
- package/dist/plain/format/formatDateRange.d.ts +4 -4
- package/dist/plain/format/formatDateRange.js +8 -7
- package/dist/plain/format/formatDateTime.d.ts +4 -4
- package/dist/plain/format/formatDateTime.js +8 -7
- package/dist/plain/format/formatDateTimeRange.d.ts +4 -4
- package/dist/plain/format/formatDateTimeRange.js +8 -7
- package/dist/plain/format/formatDateTimeToParts.d.ts +6 -6
- package/dist/plain/format/formatDateTimeToParts.js +10 -9
- package/dist/plain/format/formatDateToParts.d.ts +6 -6
- package/dist/plain/format/formatDateToParts.js +10 -9
- package/dist/plain/format/formatRelativeDate.d.ts +3 -3
- package/dist/plain/format/formatRelativeDate.js +6 -5
- package/dist/plain/format/formatRelativeDateTime.d.ts +3 -3
- package/dist/plain/format/formatRelativeDateTime.js +6 -5
- package/dist/plain/format/formatRelativeTime.d.ts +3 -3
- package/dist/plain/format/formatRelativeTime.js +6 -5
- package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
- package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +8 -8
- package/dist/plain/format/formatTime.d.ts +4 -4
- package/dist/plain/format/formatTime.js +8 -7
- package/dist/plain/format/index.d.ts +1 -1
- package/dist/plain/format/index.js +1 -1
- package/dist/plain/get/getDay.js +1 -1
- package/dist/plain/get/getDayOfWeek.js +1 -1
- package/dist/plain/get/getHour.js +1 -1
- package/dist/plain/get/getMicrosecond.js +1 -1
- package/dist/plain/get/getMillisecond.js +1 -1
- package/dist/plain/get/getMinute.js +1 -1
- package/dist/plain/get/getMonth.js +1 -1
- package/dist/plain/get/getNanosecond.js +1 -1
- package/dist/plain/get/getNow.js +1 -1
- package/dist/plain/get/getNowUnit.d.ts +2 -0
- package/dist/plain/get/getNowUnit.js +3 -1
- package/dist/plain/get/getSecond.js +1 -1
- package/dist/plain/get/getToday.js +1 -1
- package/dist/plain/get/getWeekOfYear.js +1 -1
- package/dist/plain/get/getYear.d.ts +2 -0
- package/dist/plain/get/getYear.js +5 -4
- package/dist/plain/index.d.ts +1 -1
- package/dist/plain/index.js +2 -2
- package/dist/plain/interval/intervalAbutsDate.d.ts +1 -2
- package/dist/plain/interval/intervalAbutsDate.js +2 -3
- package/dist/plain/interval/intervalAbutsDateTime.js +1 -1
- package/dist/plain/interval/intervalAbutsTime.js +1 -1
- package/dist/plain/interval/intervalContainsDate.d.ts +1 -1
- package/dist/plain/interval/intervalContainsDate.js +2 -2
- package/dist/plain/interval/intervalContainsDateTime.js +1 -1
- package/dist/plain/interval/intervalContainsTime.js +1 -1
- package/dist/plain/interval/intervalCountDate.js +1 -1
- package/dist/plain/interval/intervalCountDateTime.js +1 -1
- package/dist/plain/interval/intervalCountTime.js +1 -1
- package/dist/plain/interval/intervalDifferenceDate.d.ts +1 -1
- package/dist/plain/interval/intervalDifferenceDate.js +2 -2
- package/dist/plain/interval/intervalDifferenceDateTime.js +1 -1
- package/dist/plain/interval/intervalDifferenceTime.js +1 -1
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +3 -3
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -3
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +1 -1
- package/dist/plain/interval/intervalDivideEquallyTime.js +1 -1
- package/dist/plain/interval/intervalEngulfsDate.d.ts +1 -1
- package/dist/plain/interval/intervalEngulfsDate.js +2 -2
- package/dist/plain/interval/intervalEngulfsDateTime.js +1 -1
- package/dist/plain/interval/intervalEngulfsTime.js +1 -1
- package/dist/plain/interval/intervalFromDurationDate.js +1 -1
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -1
- package/dist/plain/interval/intervalFromDurationTime.js +1 -1
- package/dist/plain/interval/intervalIntersectionDate.d.ts +1 -1
- package/dist/plain/interval/intervalIntersectionDate.js +2 -2
- package/dist/plain/interval/intervalIntersectionDateTime.js +1 -1
- package/dist/plain/interval/intervalIntersectionTime.js +1 -1
- package/dist/plain/interval/intervalLengthDateTime.js +1 -1
- package/dist/plain/interval/intervalLengthTime.js +1 -1
- package/dist/plain/interval/intervalOverlappingDaysDate.js +1 -1
- package/dist/plain/interval/intervalOverlappingDaysDateTime.js +1 -1
- package/dist/plain/interval/intervalSplitAtDate.d.ts +1 -1
- package/dist/plain/interval/intervalSplitAtDate.js +2 -2
- package/dist/plain/interval/intervalSplitAtDateTime.js +1 -1
- package/dist/plain/interval/intervalSplitAtTime.js +1 -1
- package/dist/plain/interval/intervalUnionDate.d.ts +2 -2
- package/dist/plain/interval/intervalUnionDate.js +3 -3
- package/dist/plain/interval/intervalUnionDateTime.js +1 -1
- package/dist/plain/interval/intervalUnionTime.js +1 -1
- package/dist/plain/interval/intervalXorAllDate.d.ts +1 -1
- package/dist/plain/interval/intervalXorAllDate.js +4 -4
- package/dist/plain/interval/intervalXorAllDateTime.js +3 -3
- package/dist/plain/interval/intervalXorAllTime.js +3 -3
- package/dist/plain/interval/intervalXorDate.d.ts +1 -1
- package/dist/plain/interval/intervalXorDate.js +2 -2
- package/dist/plain/interval/intervalXorDateTime.js +1 -1
- package/dist/plain/interval/intervalXorTime.js +1 -1
- package/dist/plain/interval/intervalsOverlapDate.d.ts +1 -1
- package/dist/plain/interval/intervalsOverlapDate.js +2 -2
- package/dist/plain/interval/intervalsOverlapDateTime.js +1 -1
- package/dist/plain/interval/intervalsOverlapTime.js +1 -1
- package/dist/plain/interval/mergeIntervalsDate.d.ts +1 -1
- package/dist/plain/interval/mergeIntervalsDate.js +4 -4
- package/dist/plain/interval/mergeIntervalsDateTime.js +3 -3
- package/dist/plain/interval/mergeIntervalsTime.js +3 -3
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +2 -3
- package/dist/plain/interval/splitIntervalByUnitDate.js +3 -4
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +2 -1
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +3 -2
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -1
- package/dist/plain/interval/validate/isValidDateInterval.d.ts +1 -1
- package/dist/plain/interval/validate/isValidDateInterval.js +2 -2
- package/dist/plain/interval/validate/isValidDateTimeInterval.js +1 -1
- package/dist/plain/interval/validate/isValidTimeInterval.js +1 -1
- package/dist/plain/locale/getLocaleEraNames.d.ts +6 -6
- package/dist/plain/locale/getLocaleEraNames.js +8 -7
- package/dist/plain/locale/getLocaleMeridiems.d.ts +5 -5
- package/dist/plain/locale/getLocaleMeridiems.js +7 -6
- package/dist/plain/locale/getLocaleMonthNames.d.ts +6 -6
- package/dist/plain/locale/getLocaleMonthNames.js +17 -11
- package/dist/plain/locale/getLocaleWeekdayNames.d.ts +3 -3
- package/dist/plain/locale/getLocaleWeekdayNames.js +12 -5
- package/dist/plain/map/mapDatesInRange.js +1 -1
- package/dist/plain/map/mapDaysInMonth.js +1 -1
- package/dist/plain/parse/index.d.ts +1 -1
- package/dist/plain/parse/index.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +28 -14
- package/dist/plain/parse/parseDateTimeWithPattern.js +33 -17
- package/dist/plain/parse/parseDateWithPattern.d.ts +29 -14
- package/dist/plain/parse/parseDateWithPattern.js +34 -17
- package/dist/plain/parse/parseDayFromDate.js +1 -1
- package/dist/plain/parse/parseDayFromDateTime.js +1 -1
- package/dist/plain/parse/parseDayOfWeekFromDate.js +1 -1
- package/dist/plain/parse/parseDayOfWeekFromDateTime.js +1 -1
- package/dist/plain/parse/parseHourFromDateTime.js +1 -1
- package/dist/plain/parse/parseHourFromTime.js +1 -1
- package/dist/plain/parse/parseMicrosecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseMicrosecondFromTime.js +1 -1
- package/dist/plain/parse/parseMillisecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseMillisecondFromTime.js +1 -1
- package/dist/plain/parse/parseMinuteFromDateTime.js +1 -1
- package/dist/plain/parse/parseMinuteFromTime.js +1 -1
- package/dist/plain/parse/parseMonthFromDate.js +1 -1
- package/dist/plain/parse/parseMonthFromDateTime.js +1 -1
- package/dist/plain/parse/parseNanosecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseNanosecondFromTime.js +1 -1
- package/dist/plain/parse/parseSecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseSecondFromTime.js +1 -1
- package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
- package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +9 -9
- package/dist/plain/parse/parseTimeWithPattern.d.ts +6 -4
- package/dist/plain/parse/parseTimeWithPattern.js +8 -5
- package/dist/plain/parse/parseUnitFromDate.d.ts +4 -1
- package/dist/plain/parse/parseUnitFromDate.js +6 -2
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +4 -1
- package/dist/plain/parse/parseUnitFromDateTime.js +6 -2
- package/dist/plain/parse/parseUnitFromTime.d.ts +1 -1
- package/dist/plain/parse/parseUnitFromTime.js +1 -1
- package/dist/plain/parse/parseWeekFromDateTime.js +1 -1
- package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
- package/dist/plain/parse/parseYearFromDate.js +8 -4
- package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
- package/dist/plain/parse/parseYearFromDateTime.js +7 -4
- package/dist/plain/validate/{isLeapSecond.d.ts → hasSecond60.d.ts} +16 -14
- package/dist/plain/validate/{isLeapSecond.js → hasSecond60.js} +16 -14
- package/dist/plain/validate/index.d.ts +2 -1
- package/dist/plain/validate/index.js +2 -1
- package/dist/plain/validate/isLeapYear.js +1 -1
- package/dist/plain/validate/isValidDate.js +2 -17
- package/dist/plain/validate/isValidDateRange.js +1 -1
- package/dist/plain/validate/isValidDateTime.d.ts +1 -1
- package/dist/plain/validate/isValidDateTime.js +4 -4
- package/dist/plain/validate/isValidDateTimeRange.js +1 -1
- package/dist/plain/validate/isValidIsoDateLike.js +3 -3
- package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
- package/dist/plain/validate/isValidSqlDateTime.js +36 -0
- package/dist/plain/validate/isValidTime.js +2 -18
- package/dist/plain/validate/isValidTimeRange.js +1 -1
- package/dist/precision/convert/fromNanoseconds.d.ts +11 -5
- package/dist/precision/convert/fromNanoseconds.js +12 -6
- package/dist/precision/convert/toNanoseconds.d.ts +2 -2
- package/dist/precision/convert/toNanoseconds.js +2 -2
- package/dist/precision/index.d.ts +1 -1
- package/dist/precision/index.js +2 -2
- package/dist/precision/validate/isValidInstant.d.ts +1 -1
- package/dist/precision/validate/isValidInstant.js +1 -1
- package/dist/regex/calendar-zoned-date-time.d.ts +4 -4
- package/dist/regex/calendar-zoned-date-time.js +4 -4
- 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 +2 -1
- package/dist/regex/index.js +3 -2
- package/dist/regex/leap-second.d.ts +1 -1
- package/dist/regex/leap-second.js +1 -1
- 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 +5 -4
- package/dist/regex/time-zone-like.js +5 -4
- package/dist/regex/utc-offset.d.ts +2 -1
- package/dist/regex/utc-offset.js +2 -1
- package/dist/span/calculate/spanMs.d.ts +4 -3
- package/dist/span/calculate/spanMs.js +4 -3
- package/dist/span/calculate/spanNs.d.ts +4 -3
- package/dist/span/calculate/spanNs.js +4 -3
- package/dist/span/calculate/spanWallClock.d.ts +12 -12
- package/dist/span/calculate/spanWallClock.js +13 -13
- package/dist/span/index.d.ts +1 -1
- package/dist/span/index.js +2 -2
- package/dist/span/validate/isValidSpan.d.ts +3 -3
- package/dist/span/validate/isValidSpan.js +3 -3
- package/dist/timescale/calculate/index.d.ts +3 -0
- package/dist/timescale/calculate/index.js +3 -0
- package/dist/timescale/calculate/leapSecondsBetween.d.ts +26 -0
- package/dist/timescale/calculate/leapSecondsBetween.js +62 -0
- package/dist/timescale/calculate/nextLeapSecond.d.ts +18 -0
- package/dist/timescale/calculate/nextLeapSecond.js +33 -0
- package/dist/timescale/calculate/taiMinusUtc.d.ts +21 -0
- package/dist/timescale/calculate/taiMinusUtc.js +38 -0
- package/dist/timescale/convert/fromTAI.d.ts +22 -0
- package/dist/timescale/convert/fromTAI.js +35 -0
- package/dist/timescale/convert/index.d.ts +2 -0
- package/dist/timescale/convert/index.js +2 -0
- package/dist/timescale/convert/toTAI.d.ts +23 -0
- package/dist/timescale/convert/toTAI.js +39 -0
- package/dist/timescale/index.d.ts +4 -0
- package/dist/timescale/index.js +5 -0
- package/dist/timescale/validate/index.d.ts +1 -0
- package/dist/timescale/validate/index.js +1 -0
- package/dist/timescale/validate/isLeapSecond.d.ts +25 -0
- package/dist/timescale/validate/isLeapSecond.js +36 -0
- package/dist/transport/calculate/crossingTime.d.ts +8 -3
- package/dist/transport/calculate/crossingTime.js +9 -4
- package/dist/transport/calculate/cutoffAt.d.ts +10 -5
- package/dist/transport/calculate/cutoffAt.js +26 -133
- package/dist/transport/calculate/cutoffSchedule.d.ts +8 -3
- package/dist/transport/calculate/cutoffSchedule.js +54 -20
- package/dist/transport/calculate/dwellTime.d.ts +9 -4
- package/dist/transport/calculate/dwellTime.js +10 -5
- package/dist/transport/calculate/estimateDrift.d.ts +1 -1
- package/dist/transport/calculate/estimateDrift.js +1 -1
- package/dist/transport/calculate/nextDeparture.d.ts +2 -2
- package/dist/transport/calculate/nextDeparture.js +2 -2
- package/dist/transport/calculate/scheduleDelivery.d.ts +15 -7
- package/dist/transport/calculate/scheduleDelivery.js +9 -4
- package/dist/transport/calculate/transitTime.d.ts +11 -11
- package/dist/transport/calculate/transitTime.js +11 -11
- package/dist/transport/compare/classifyPunctuality.d.ts +1 -1
- package/dist/transport/compare/classifyPunctuality.js +1 -1
- package/dist/transport/compare/isPastCutoff.d.ts +1 -1
- package/dist/transport/compare/isPastCutoff.js +2 -2
- package/dist/transport/compare/scheduleDeviation.d.ts +1 -1
- package/dist/transport/compare/scheduleDeviation.js +1 -1
- package/dist/transport/compare/timeToCutoff.d.ts +1 -1
- package/dist/transport/compare/timeToCutoff.js +1 -1
- package/dist/transport/convert/etaAtZone.d.ts +8 -3
- package/dist/transport/convert/etaAtZone.js +8 -3
- package/dist/transport/index.d.ts +1 -1
- package/dist/transport/index.js +2 -2
- package/dist/types/business-calendar.d.ts +5 -4
- package/dist/types/date-duration-unit.d.ts +1 -1
- package/dist/types/date-time-duration-units.d.ts +1 -1
- package/dist/types/date-time-unit.d.ts +1 -1
- package/dist/types/date-unit.d.ts +1 -1
- package/dist/types/disambiguation.d.ts +1 -1
- package/dist/types/duration-relative-to.d.ts +1 -1
- package/dist/types/duration-string-options.d.ts +1 -1
- package/dist/types/duty.d.ts +777 -0
- package/dist/types/duty.js +0 -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 +40 -4
- package/dist/types/free-time-options.d.ts +4 -3
- package/dist/types/gnss.d.ts +51 -0
- package/dist/types/gnss.js +0 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.js +7 -0
- package/dist/types/now-unit.d.ts +1 -1
- package/dist/types/offset.d.ts +1 -1
- package/dist/types/operating-schedule.d.ts +3 -2
- package/dist/types/overflow.d.ts +1 -1
- package/dist/types/rounding-options.d.ts +1 -1
- package/dist/types/stored-zoned-classification.d.ts +83 -0
- package/dist/types/stored-zoned-classification.js +0 -0
- package/dist/types/time-duration-unit.d.ts +1 -1
- package/dist/types/time-unit.d.ts +1 -1
- package/dist/types/two-digit-year.d.ts +23 -0
- package/dist/types/two-digit-year.js +0 -0
- package/dist/types/utc-now-unit.d.ts +1 -1
- package/dist/types/zone-bucket-unit.d.ts +1 -1
- package/dist/unix/calculate/addUnix.d.ts +11 -2
- package/dist/unix/calculate/addUnix.js +14 -11
- package/dist/unix/calculate/diffUnix.d.ts +11 -3
- package/dist/unix/calculate/diffUnix.js +11 -6
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +11 -3
- package/dist/unix/calculate/diffUnixAsDuration.js +10 -5
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +10 -2
- package/dist/unix/calculate/endOfQuarterForUnix.js +6 -0
- package/dist/unix/calculate/endOfUnix.d.ts +13 -4
- package/dist/unix/calculate/endOfUnix.js +8 -1
- package/dist/unix/calculate/isBetweenUnix.d.ts +3 -2
- package/dist/unix/calculate/isBetweenUnix.js +4 -4
- package/dist/unix/calculate/roundUnix.d.ts +17 -7
- package/dist/unix/calculate/roundUnix.js +19 -10
- package/dist/unix/calculate/setUnix.d.ts +28 -8
- package/dist/unix/calculate/setUnix.js +35 -14
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +10 -2
- package/dist/unix/calculate/startOfQuarterForUnix.js +6 -0
- package/dist/unix/calculate/startOfUnix.d.ts +13 -4
- package/dist/unix/calculate/startOfUnix.js +8 -1
- package/dist/unix/calculate/subtractUnix.d.ts +10 -2
- package/dist/unix/calculate/subtractUnix.js +13 -11
- package/dist/unix/compare/areUnixEqualBy.d.ts +13 -4
- package/dist/unix/compare/areUnixEqualBy.js +8 -1
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +5 -2
- package/dist/unix/convert/convertUnixToPlainDate.js +5 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +5 -2
- package/dist/unix/convert/convertUnixToPlainDateTime.js +5 -4
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +6 -3
- package/dist/unix/convert/convertUnixToPlainTime.js +6 -5
- package/dist/unix/convert/convertUnixToZoned.d.ts +6 -2
- package/dist/unix/convert/convertUnixToZoned.js +6 -2
- package/dist/unix/format/formatCalendarUnix.d.ts +16 -11
- package/dist/unix/format/formatCalendarUnix.js +12 -7
- package/dist/unix/format/formatRelativeUnix.d.ts +17 -9
- package/dist/unix/format/formatRelativeUnix.js +19 -11
- package/dist/unix/format/formatUnix.d.ts +16 -11
- package/dist/unix/format/formatUnix.js +13 -9
- package/dist/unix/get/getUnixDay.d.ts +1 -3
- package/dist/unix/get/getUnixDay.js +6 -13
- package/dist/unix/get/getUnixHour.d.ts +1 -3
- package/dist/unix/get/getUnixHour.js +6 -13
- package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
- package/dist/unix/get/getUnixMicrosecond.js +5 -12
- package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
- package/dist/unix/get/getUnixMillisecond.js +6 -13
- package/dist/unix/get/getUnixMinute.d.ts +1 -3
- package/dist/unix/get/getUnixMinute.js +6 -13
- package/dist/unix/get/getUnixMonth.d.ts +1 -3
- package/dist/unix/get/getUnixMonth.js +6 -13
- package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
- package/dist/unix/get/getUnixNanosecond.js +5 -12
- package/dist/unix/get/getUnixNow.js +1 -1
- package/dist/unix/get/getUnixNowUnit.d.ts +3 -1
- package/dist/unix/get/getUnixNowUnit.js +3 -1
- package/dist/unix/get/getUnixSecond.d.ts +1 -3
- package/dist/unix/get/getUnixSecond.js +6 -13
- package/dist/unix/get/getUnixYear.d.ts +3 -3
- package/dist/unix/get/getUnixYear.js +6 -13
- package/dist/unix/index.d.ts +1 -1
- package/dist/unix/index.js +2 -2
- package/dist/unix/interval/intervalCountUnix.d.ts +11 -2
- package/dist/unix/interval/intervalCountUnix.js +7 -0
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -2
- package/dist/unix/interval/intervalFromDurationUnix.js +13 -8
- package/dist/unix/interval/intervalLengthUnix.d.ts +12 -4
- package/dist/unix/interval/intervalLengthUnix.js +8 -2
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +10 -2
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +10 -5
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +13 -4
- package/dist/unix/interval/splitIntervalByUnitUnix.js +16 -9
- package/dist/unix/parse/parseDateFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDateFromUnix.js +3 -3
- package/dist/unix/parse/parseDayFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +2 -2
- package/dist/unix/parse/parseHourFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +5 -2
- package/dist/unix/parse/parseTimeFromUnix.js +4 -3
- package/dist/unix/parse/parseUnitFromUnix.d.ts +10 -4
- package/dist/unix/parse/parseUnitFromUnix.js +21 -14
- package/dist/unix/parse/parseWeekFromUnix.d.ts +3 -2
- package/dist/unix/parse/parseWeekFromUnix.js +4 -4
- package/dist/unix/parse/parseYearFromUnix.d.ts +8 -3
- package/dist/unix/parse/parseYearFromUnix.js +4 -1
- package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
- package/dist/utc/calculate/addUtc.js +5 -8
- 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/endOfQuarterForUtc.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +1 -1
- package/dist/utc/calculate/isBetweenUtc.js +1 -1
- package/dist/utc/calculate/maxUtc.js +1 -1
- package/dist/utc/calculate/minUtc.js +1 -1
- package/dist/utc/calculate/roundUtc.d.ts +1 -1
- package/dist/utc/calculate/roundUtc.js +1 -1
- package/dist/utc/calculate/setUtc.d.ts +17 -4
- package/dist/utc/calculate/setUtc.js +23 -9
- package/dist/utc/calculate/sortUtc.js +1 -1
- package/dist/utc/calculate/startOfQuarterForUtc.js +1 -1
- package/dist/utc/calculate/startOfUtc.d.ts +1 -1
- package/dist/utc/calculate/subtractUtc.js +5 -8
- package/dist/utc/compare/areUtcEqual.js +1 -1
- package/dist/utc/compare/areUtcEqualBy.d.ts +2 -2
- package/dist/utc/compare/areUtcEqualBy.js +2 -2
- package/dist/utc/compare/isAfterUtc.js +1 -1
- package/dist/utc/compare/isBeforeUtc.js +1 -1
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +9 -3
- package/dist/utc/convert/convertUtcToPlainDate.js +12 -9
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +10 -3
- package/dist/utc/convert/convertUtcToPlainDateTime.js +14 -15
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +6 -3
- package/dist/utc/convert/convertUtcToPlainTime.js +9 -8
- package/dist/utc/convert/convertUtcToUnix.js +1 -1
- package/dist/utc/convert/convertUtcToZoned.d.ts +6 -2
- package/dist/utc/convert/convertUtcToZoned.js +7 -3
- package/dist/utc/format/formatCalendarUtc.d.ts +12 -7
- package/dist/utc/format/formatCalendarUtc.js +9 -4
- package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +7 -7
- package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +8 -8
- package/dist/utc/format/formatRelativeUtc.d.ts +15 -7
- package/dist/utc/format/formatRelativeUtc.js +17 -9
- package/dist/utc/format/formatUtc.d.ts +15 -10
- 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 +6 -13
- package/dist/utc/get/getUtcHour.d.ts +1 -3
- package/dist/utc/get/getUtcHour.js +6 -13
- package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
- package/dist/utc/get/getUtcMicrosecond.js +5 -12
- package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
- package/dist/utc/get/getUtcMillisecond.js +6 -13
- package/dist/utc/get/getUtcMinute.d.ts +1 -3
- package/dist/utc/get/getUtcMinute.js +6 -13
- package/dist/utc/get/getUtcMonth.d.ts +1 -3
- package/dist/utc/get/getUtcMonth.js +6 -13
- package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
- package/dist/utc/get/getUtcNanosecond.js +5 -12
- package/dist/utc/get/getUtcNow.d.ts +1 -3
- package/dist/utc/get/getUtcNow.js +3 -10
- package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
- package/dist/utc/get/getUtcNowUnit.js +3 -1
- package/dist/utc/get/getUtcSecond.d.ts +1 -3
- package/dist/utc/get/getUtcSecond.js +6 -13
- package/dist/utc/get/getUtcYear.d.ts +3 -3
- package/dist/utc/get/getUtcYear.js +6 -13
- package/dist/utc/index.d.ts +1 -1
- package/dist/utc/index.js +2 -2
- package/dist/utc/interval/intervalAbutsUtc.js +1 -1
- package/dist/utc/interval/intervalContainsUtc.js +1 -1
- package/dist/utc/interval/intervalCountUtc.js +1 -1
- package/dist/utc/interval/intervalDivideEquallyUtc.js +1 -1
- package/dist/utc/interval/intervalEngulfsUtc.js +1 -1
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -1
- package/dist/utc/interval/intervalLengthUtc.js +1 -1
- package/dist/utc/interval/intervalOverlappingDaysUtc.js +1 -1
- package/dist/utc/interval/intervalSplitAtUtc.js +1 -1
- package/dist/utc/interval/intervalXorAllUtc.js +3 -3
- package/dist/utc/interval/intervalXorUtc.js +1 -1
- package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +2 -1
- package/dist/utc/interval/splitIntervalByUnitUtc.js +3 -2
- package/dist/utc/interval/validate/isValidUtcInterval.js +1 -1
- package/dist/utc/parse/index.d.ts +1 -1
- package/dist/utc/parse/index.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseDateFromUtc.js +3 -3
- package/dist/utc/parse/parseDayFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseDayFromUtc.js +3 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +6 -6
- package/dist/utc/parse/parseHourFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseHourFromUtc.js +3 -3
- package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
- package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +13 -13
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseMicrosecondFromUtc.js +3 -3
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseMillisecondFromUtc.js +3 -3
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseMinuteFromUtc.js +2 -2
- package/dist/utc/parse/parseMonthFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseMonthFromUtc.js +3 -3
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseNanosecondFromUtc.js +3 -3
- package/dist/utc/parse/parseSecondFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseSecondFromUtc.js +3 -3
- package/dist/utc/parse/parseTimeFromUtc.d.ts +6 -3
- package/dist/utc/parse/parseTimeFromUtc.js +7 -6
- package/dist/utc/parse/parseUnitFromUtc.d.ts +12 -5
- package/dist/utc/parse/parseUnitFromUtc.js +13 -7
- package/dist/utc/parse/parseWeekFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseWeekFromUtc.js +6 -6
- package/dist/utc/parse/parseYearFromUtc.d.ts +9 -5
- package/dist/utc/parse/parseYearFromUtc.js +9 -6
- 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 +7 -3
- package/dist/utc/validate/isValidUtcRange.js +1 -1
- package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
- package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
- package/dist/workforce/calculate/dutyDayFor.d.ts +38 -0
- package/dist/workforce/calculate/dutyDayFor.js +71 -0
- package/dist/workforce/calculate/dutyTotals.d.ts +24 -0
- package/dist/workforce/calculate/dutyTotals.js +41 -0
- package/dist/workforce/calculate/dutyViolations.d.ts +74 -0
- package/dist/workforce/calculate/dutyViolations.js +65 -0
- package/dist/workforce/calculate/evaluateDutyLog.d.ts +77 -0
- package/dist/workforce/calculate/evaluateDutyLog.js +75 -0
- package/dist/workforce/calculate/index.d.ts +7 -0
- package/dist/workforce/calculate/index.js +7 -0
- package/dist/workforce/calculate/longestRun.d.ts +28 -0
- package/dist/workforce/calculate/longestRun.js +54 -0
- package/dist/workforce/calculate/qualifyingRestPairs.d.ts +37 -0
- package/dist/workforce/calculate/qualifyingRestPairs.js +58 -0
- package/dist/workforce/calculate/qualifyingRests.d.ts +27 -0
- package/dist/workforce/calculate/qualifyingRests.js +49 -0
- package/dist/workforce/index.d.ts +3 -0
- package/dist/workforce/index.js +4 -0
- package/dist/workforce/validate/index.d.ts +1 -0
- package/dist/workforce/validate/index.js +1 -0
- package/dist/workforce/validate/isValidDutyLog.d.ts +24 -0
- package/dist/workforce/validate/isValidDutyLog.js +34 -0
- package/dist/zoned/calculate/addZoned.d.ts +15 -15
- package/dist/zoned/calculate/addZoned.js +19 -22
- package/dist/zoned/calculate/addZonedBusinessDays.d.ts +5 -4
- package/dist/zoned/calculate/addZonedBusinessDays.js +5 -4
- package/dist/zoned/calculate/clampZoned.js +1 -1
- package/dist/zoned/calculate/diffZoned.d.ts +8 -8
- package/dist/zoned/calculate/diffZoned.js +7 -7
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +5 -5
- package/dist/zoned/calculate/diffZonedAsDuration.js +4 -4
- package/dist/zoned/calculate/endOfZoned.d.ts +3 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -2
- package/dist/zoned/calculate/getHoursInZonedDay.d.ts +2 -2
- package/dist/zoned/calculate/getHoursInZonedDay.js +2 -2
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +6 -5
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +6 -5
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +5 -5
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -5
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +6 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +6 -6
- package/dist/zoned/calculate/maxZoned.d.ts +2 -2
- package/dist/zoned/calculate/maxZoned.js +3 -3
- package/dist/zoned/calculate/minZoned.d.ts +2 -2
- package/dist/zoned/calculate/minZoned.js +3 -3
- package/dist/zoned/calculate/roundZoned.d.ts +11 -9
- package/dist/zoned/calculate/roundZoned.js +11 -9
- package/dist/zoned/calculate/setZoned.d.ts +26 -12
- package/dist/zoned/calculate/setZoned.js +33 -16
- package/dist/zoned/calculate/sortZoned.d.ts +3 -3
- package/dist/zoned/calculate/sortZoned.js +4 -4
- package/dist/zoned/calculate/startOfZoned.d.ts +3 -3
- package/dist/zoned/calculate/startOfZoned.js +2 -2
- package/dist/zoned/calculate/subtractZoned.d.ts +14 -14
- package/dist/zoned/calculate/subtractZoned.js +18 -21
- package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +5 -4
- package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -4
- package/dist/zoned/chop/chopZonedDate.d.ts +1 -1
- package/dist/zoned/chop/chopZonedDate.js +1 -1
- package/dist/zoned/chop/chopZonedMilliseconds.d.ts +1 -1
- package/dist/zoned/chop/chopZonedMilliseconds.js +1 -1
- package/dist/zoned/chop/chopZonedSeconds.d.ts +1 -1
- package/dist/zoned/chop/chopZonedSeconds.js +1 -1
- package/dist/zoned/chop/chopZonedTime.d.ts +1 -1
- package/dist/zoned/chop/chopZonedTime.js +1 -1
- package/dist/zoned/chop/chopZonedTimezone.d.ts +1 -1
- package/dist/zoned/chop/chopZonedTimezone.js +1 -1
- package/dist/zoned/classify/classifyStoredZoned.d.ts +46 -0
- package/dist/zoned/classify/classifyStoredZoned.js +177 -0
- package/dist/zoned/classify/index.d.ts +1 -0
- package/dist/zoned/classify/index.js +1 -0
- package/dist/zoned/compare/areZonedEqual.js +1 -1
- package/dist/zoned/compare/areZonedEqualBy.d.ts +8 -10
- package/dist/zoned/compare/areZonedEqualBy.js +8 -10
- package/dist/zoned/compare/isAfterZoned.js +1 -1
- package/dist/zoned/compare/isBeforeZoned.d.ts +2 -2
- package/dist/zoned/compare/isBeforeZoned.js +3 -3
- package/dist/zoned/compare/isBetweenZoned.js +1 -1
- package/dist/zoned/compare/isInDaylightSaving.d.ts +2 -2
- package/dist/zoned/compare/isInDaylightSaving.js +2 -2
- package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -6
- package/dist/zoned/compare/isZonedBusinessDay.js +7 -6
- package/dist/zoned/compare/isZonedFuture.js +1 -1
- package/dist/zoned/compare/isZonedPast.js +1 -1
- package/dist/zoned/compare/isZonedRelativeDay.d.ts +2 -2
- package/dist/zoned/compare/isZonedRelativeDay.js +3 -3
- package/dist/zoned/compare/isZonedThisUnit.d.ts +7 -7
- package/dist/zoned/compare/isZonedThisUnit.js +7 -7
- package/dist/zoned/compare/isZonedWeekend.d.ts +5 -5
- package/dist/zoned/compare/isZonedWeekend.js +5 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +10 -7
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +10 -7
- package/dist/zoned/convert/convertZonedToCalendar.d.ts +5 -5
- package/dist/zoned/convert/convertZonedToCalendar.js +5 -5
- package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +3 -3
- package/dist/zoned/convert/convertZonedToPlainDateTime.js +3 -3
- package/dist/zoned/convert/convertZonedToZoned.d.ts +7 -3
- package/dist/zoned/convert/convertZonedToZoned.js +7 -3
- package/dist/zoned/format/formatCalendarZoned.d.ts +7 -6
- package/dist/zoned/format/formatCalendarZoned.js +7 -6
- package/dist/zoned/format/formatRelativeZoned.d.ts +3 -3
- package/dist/zoned/format/formatRelativeZoned.js +6 -5
- package/dist/zoned/format/formatRfc2822.d.ts +3 -3
- package/dist/zoned/format/formatRfc2822.js +3 -3
- package/dist/zoned/format/formatRfc3339.d.ts +2 -2
- package/dist/zoned/format/formatRfc3339.js +2 -2
- package/dist/zoned/format/formatTimeZoneName.d.ts +22 -18
- package/dist/zoned/format/formatTimeZoneName.js +18 -13
- package/dist/zoned/format/formatZonedDateTime.d.ts +10 -10
- package/dist/zoned/format/formatZonedDateTime.js +12 -11
- package/dist/zoned/format/formatZonedRange.d.ts +7 -7
- package/dist/zoned/format/formatZonedRange.js +9 -8
- package/dist/zoned/format/formatZonedToParts.d.ts +11 -11
- package/dist/zoned/format/formatZonedToParts.js +13 -12
- package/dist/zoned/get/getDstTransitions.d.ts +14 -12
- package/dist/zoned/get/getDstTransitions.js +15 -10
- package/dist/zoned/get/getSystemTimeZone.d.ts +5 -3
- package/dist/zoned/get/getSystemTimeZone.js +7 -4
- package/dist/zoned/get/getTimeZoneOffset.d.ts +15 -7
- package/dist/zoned/get/getTimeZoneOffset.js +23 -10
- package/dist/zoned/get/getTimeZones.d.ts +1 -1
- package/dist/zoned/get/getTimeZones.js +1 -1
- package/dist/zoned/get/getZonedDay.d.ts +3 -2
- package/dist/zoned/get/getZonedDay.js +7 -8
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +3 -2
- package/dist/zoned/get/getZonedDayOfWeek.js +7 -6
- package/dist/zoned/get/getZonedHour.d.ts +3 -2
- package/dist/zoned/get/getZonedHour.js +7 -8
- package/dist/zoned/get/getZonedMicrosecond.d.ts +3 -2
- package/dist/zoned/get/getZonedMicrosecond.js +7 -6
- package/dist/zoned/get/getZonedMillisecond.d.ts +3 -2
- package/dist/zoned/get/getZonedMillisecond.js +7 -8
- package/dist/zoned/get/getZonedMinute.d.ts +3 -2
- package/dist/zoned/get/getZonedMinute.js +7 -8
- package/dist/zoned/get/getZonedMonth.d.ts +3 -2
- package/dist/zoned/get/getZonedMonth.js +7 -8
- package/dist/zoned/get/getZonedNanosecond.d.ts +3 -2
- package/dist/zoned/get/getZonedNanosecond.js +7 -6
- package/dist/zoned/get/getZonedNow.d.ts +9 -5
- package/dist/zoned/get/getZonedNow.js +9 -5
- package/dist/zoned/get/getZonedNowUnit.d.ts +7 -4
- package/dist/zoned/get/getZonedNowUnit.js +11 -8
- package/dist/zoned/get/getZonedSecond.d.ts +3 -2
- package/dist/zoned/get/getZonedSecond.js +7 -8
- package/dist/zoned/get/getZonedToday.d.ts +3 -2
- package/dist/zoned/get/getZonedToday.js +7 -6
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +3 -2
- package/dist/zoned/get/getZonedWeekOfYear.js +7 -6
- package/dist/zoned/get/getZonedYear.d.ts +5 -2
- package/dist/zoned/get/getZonedYear.js +10 -8
- package/dist/zoned/index.d.ts +2 -1
- package/dist/zoned/index.js +3 -2
- package/dist/zoned/interval/intervalAbutsZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalAbutsZoned.js +3 -3
- package/dist/zoned/interval/intervalContainsZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalContainsZoned.js +2 -2
- package/dist/zoned/interval/intervalCountZoned.d.ts +4 -4
- package/dist/zoned/interval/intervalCountZoned.js +5 -5
- package/dist/zoned/interval/intervalDifferenceZoned.js +1 -1
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +2 -2
- package/dist/zoned/interval/intervalEngulfsZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalEngulfsZoned.js +2 -2
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +6 -6
- package/dist/zoned/interval/intervalFromDurationZoned.js +7 -7
- package/dist/zoned/interval/intervalIntersectionZoned.js +1 -1
- package/dist/zoned/interval/intervalLengthZoned.d.ts +5 -5
- package/dist/zoned/interval/intervalLengthZoned.js +5 -5
- package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalOverlappingDaysZoned.js +3 -3
- package/dist/zoned/interval/intervalSplitAtZoned.js +14 -16
- package/dist/zoned/interval/intervalUnionZoned.js +1 -1
- package/dist/zoned/interval/intervalXorAllZoned.js +3 -3
- package/dist/zoned/interval/intervalXorZoned.js +1 -1
- package/dist/zoned/interval/intervalsOverlapZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalsOverlapZoned.js +3 -3
- package/dist/zoned/interval/mergeIntervalsZoned.js +3 -3
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +2 -1
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +3 -2
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +2 -2
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +3 -3
- package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +1 -1
- package/dist/zoned/interval/validate/isValidZonedInterval.js +2 -2
- package/dist/zoned/map/mapZonedDatesInRange.js +1 -1
- package/dist/zoned/map/mapZonedHoursInDay.d.ts +1 -1
- package/dist/zoned/map/mapZonedHoursInDay.js +2 -2
- package/dist/zoned/parse/getZonedOffset.d.ts +1 -1
- package/dist/zoned/parse/getZonedOffset.js +1 -1
- package/dist/zoned/parse/getZonedOffsetAs.d.ts +6 -6
- package/dist/zoned/parse/getZonedOffsetAs.js +3 -3
- package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseRfc3339.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +5 -2
- package/dist/zoned/parse/parseUnitFromZoned.js +5 -1
- package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
- package/dist/zoned/parse/parseYearFromZoned.js +6 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +6 -4
- package/dist/zoned/validate/hasDaylightSaving.js +16 -10
- package/dist/zoned/validate/index.d.ts +2 -0
- package/dist/zoned/validate/index.js +2 -0
- package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +8 -8
- package/dist/zoned/validate/isValidCalendarZonedDateTime.js +8 -8
- 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 +6 -2
- package/dist/zoned/validate/isValidTimeZone.js +8 -19
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +7 -7
- package/dist/zoned/validate/isValidZonedDateTime.js +9 -9
- package/dist/zoned/validate/isValidZonedRange.d.ts +1 -1
- package/dist/zoned/validate/isValidZonedRange.js +5 -5
- package/package.json +103 -4
- package/skills/gmt-arithmetic/SKILL.md +63 -17
- package/skills/gmt-basics/SKILL.md +83 -21
- package/skills/gmt-gnss/SKILL.md +92 -0
- package/skills/gmt-integration/SKILL.md +58 -10
- package/skills/gmt-intermodal/SKILL.md +189 -0
- package/skills/gmt-timezone/SKILL.md +51 -169
- package/skills/gmt-transport/SKILL.md +133 -0
- package/skills/gmt-workforce/SKILL.md +84 -0
- package/dist/internal/unixZonedDateTime.d.ts +0 -22
- package/dist/internal/unixZonedDateTime.js +0 -32
- package/dist/internal/utcZonedDateTime.d.ts +0 -19
- package/dist/internal/utcZonedDateTime.js +0 -31
|
@@ -1,27 +1,25 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gmt-timezone
|
|
3
3
|
description: >
|
|
4
|
-
Timezone-aware operations — zoned now, formatting zoned
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
nextDeparture), intermodal free time (freeTimeExpiry, chargeableDays,
|
|
14
|
-
demurrageClock), billingTimeline, and operating hours (OperatingSchedule,
|
|
15
|
-
recurringWindows, operatingIntervals, isOpenAt, nextOpenAt, nextCloseAt,
|
|
16
|
-
operatingTimeBetween, addOperatingTime), and daylight time
|
|
17
|
-
(isInDaylightSaving, hasDaylightSaving). Points to the README and JSDoc.
|
|
4
|
+
Timezone-aware operations — zoned now, zoned formatting, plain↔zoned↔UTC↔Unix
|
|
5
|
+
conversion, DST disambiguation, toOffsetInstant, classifyLocal/resolveLocal,
|
|
6
|
+
classifyStoredZoned (why a stored offset+zone string no longer resolves), real
|
|
7
|
+
boundaries (startOfZoned/endOfZoned/startOfUnix/endOfUnix), hours in a local
|
|
8
|
+
day, floorToZone/bucketRange, calendar-annotated strings, operating hours
|
|
9
|
+
(OperatingSchedule, recurringWindows, operatingIntervals, isOpenAt,
|
|
10
|
+
nextOpenAt, nextCloseAt, operatingTimeBetween, addOperatingTime), and daylight
|
|
11
|
+
time (isInDaylightSaving, hasDaylightSaving). Transport legs, intermodal free
|
|
12
|
+
time and EDI timestamps are in gmt-transport and gmt-intermodal.
|
|
18
13
|
sources:
|
|
19
|
-
- 'northguild/gmt:
|
|
14
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/zoned-date-operations/*.mdx'
|
|
15
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/concepts/dst-disambiguation.md'
|
|
16
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/core-date-operations/operating-hours.mdx'
|
|
20
17
|
- 'northguild/gmt:packages/gmt/src/zoned/get/index.ts'
|
|
21
18
|
- 'northguild/gmt:packages/gmt/src/zoned/format/index.ts'
|
|
22
19
|
- 'northguild/gmt:packages/gmt/src/zoned/compare/index.ts'
|
|
23
20
|
- 'northguild/gmt:packages/gmt/src/zoned/convert/index.ts'
|
|
24
21
|
- 'northguild/gmt:packages/gmt/src/zoned/validate/index.ts'
|
|
22
|
+
- 'northguild/gmt:packages/gmt/src/zoned/classify/index.ts'
|
|
25
23
|
- 'northguild/gmt:packages/gmt/src/zoned/calculate/addZoned.ts'
|
|
26
24
|
- 'northguild/gmt:packages/gmt/src/zoned/calculate/startOfZoned.ts'
|
|
27
25
|
- 'northguild/gmt:packages/gmt/src/zoned/calculate/roundZoned.ts'
|
|
@@ -31,19 +29,15 @@ sources:
|
|
|
31
29
|
- 'northguild/gmt:packages/gmt/src/utc/get/index.ts'
|
|
32
30
|
- 'northguild/gmt:packages/gmt/src/utc/convert/index.ts'
|
|
33
31
|
- 'northguild/gmt:packages/gmt/src/instant/convert/index.ts'
|
|
32
|
+
- 'northguild/gmt:packages/gmt/src/instant/validate/index.ts'
|
|
34
33
|
- 'northguild/gmt:packages/gmt/src/calendar/calculate/index.ts'
|
|
35
34
|
- 'northguild/gmt:packages/gmt/src/calendar/validate/index.ts'
|
|
36
35
|
- 'northguild/gmt:packages/gmt/src/calendar/hours/index.ts'
|
|
37
36
|
- 'northguild/gmt:packages/gmt/src/types/operating-schedule.ts'
|
|
38
|
-
- 'northguild/gmt:packages/gmt/src/types/transport-timestamps.ts'
|
|
39
|
-
- 'northguild/gmt:packages/gmt/src/transport/calculate/index.ts'
|
|
40
|
-
- 'northguild/gmt:packages/gmt/src/transport/compare/index.ts'
|
|
41
|
-
- 'northguild/gmt:packages/gmt/src/transport/convert/index.ts'
|
|
42
|
-
- 'northguild/gmt:packages/gmt/src/intermodal/calculate/index.ts'
|
|
43
37
|
metadata:
|
|
44
38
|
type: core
|
|
45
39
|
library: '@northguild/gmt'
|
|
46
|
-
library_version: '1.
|
|
40
|
+
library_version: '1.20.0'
|
|
47
41
|
---
|
|
48
42
|
|
|
49
43
|
# GMT Timezone
|
|
@@ -53,7 +47,7 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
53
47
|
|
|
54
48
|
## When to load
|
|
55
49
|
|
|
56
|
-
- The user needs the current time in a specific timezone (`"
|
|
50
|
+
- The user needs the current time in a specific timezone (`"Asia/Tokyo"`).
|
|
57
51
|
- The user wants to format a datetime with its zone attached.
|
|
58
52
|
- The user needs to convert a plain datetime to a zoned instant, or between
|
|
59
53
|
timezones, or between UTC and Unix epochs.
|
|
@@ -63,12 +57,6 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
63
57
|
- The user needs the start or end of a local hour, day, week, month or quarter.
|
|
64
58
|
- The user is grouping or aggregating UTC timestamps by local day, hour, week or
|
|
65
59
|
month — an observability rollup, a chargeable-days count.
|
|
66
|
-
- The user is adding a leg's transit time to a departure, showing an arrival in
|
|
67
|
-
the zone where it lands, or counting how long cargo, a vessel or a patient sat
|
|
68
|
-
somewhere in local calendar days.
|
|
69
|
-
- The user is working out when a container's free time ends, how many days of
|
|
70
|
-
demurrage or detention are chargeable and for which dates, or which events a
|
|
71
|
-
charge's clock runs between.
|
|
72
60
|
- The user is asking whether a gate, desk, office or venue is open at an
|
|
73
61
|
instant, when it next opens or closes, how many working hours passed between
|
|
74
62
|
two instants, or when an SLA measured in open hours falls due — or is
|
|
@@ -76,8 +64,8 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
76
64
|
|
|
77
65
|
## Core rules
|
|
78
66
|
|
|
79
|
-
1. **Use IANA timezone ids, not raw offsets.** `"2024-03-15T14:30:45[
|
|
80
|
-
is correct; bare `"
|
|
67
|
+
1. **Use IANA timezone ids, not raw offsets.** `"2024-03-15T14:30:45[Australia/Sydney]"`
|
|
68
|
+
is correct; bare `"+11:00"` loses the zone and can't observe DST rules.
|
|
81
69
|
2. **DST disambiguation.** `convertPlainDateTimeToZoned`, `addZoned` and
|
|
82
70
|
`setZoned` accept `disambiguation` (`"compatible"` | `"earlier"` |
|
|
83
71
|
`"later"` | `"reject"`) for gap/overlap resolution. On `addZoned`,
|
|
@@ -115,11 +103,20 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
115
103
|
on a spring-forward one. `resolveLocal(local, zone, { disambiguation })` then
|
|
116
104
|
returns the instant, exact to the nanosecond, or `""` under `"reject"`. Reach
|
|
117
105
|
for `convertPlainDateTimeToZoned` instead when you want the zoned string.
|
|
118
|
-
6. **An offset is not a zone
|
|
119
|
-
`toOffsetInstant`
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
106
|
+
6. **An offset is not a zone, but a stored one is a rule for local time.**
|
|
107
|
+
`toOffsetInstant` gives `{ instant, offset, timeZone? }`, the pair EPCIS 2.0,
|
|
108
|
+
EDIFACT DTM and DICOM exchange. Its `±HH:MM[:SS]` offset is a valid `timeZone`
|
|
109
|
+
for `resolveLocal` and every function whose result has no zone in it. One
|
|
110
|
+
that returns a zoned string or formats with `Intl` takes none with seconds.
|
|
111
|
+
**A stored string can stop agreeing with its zone.**
|
|
112
|
+
`classifyStoredZoned("2016-12-01T09:00:00+02:00[Europe/Istanbul]")` returns
|
|
113
|
+
`kind: "offsetMismatch"` with `storedOffset`, `zoneOffset` and the instant each
|
|
114
|
+
reading gives. The other kinds are `valid`, `validInOverlap`, `ambiguous` and
|
|
115
|
+
`nonexistent`; every one carries `atStoredOffset`, and it returns `null` for a
|
|
116
|
+
string without both an offset and a zone. It picks no reading: your policy
|
|
117
|
+
chooses among those returned. The answer follows the host's time zone rules, so
|
|
118
|
+
the same string can differ between hosts. Import it from
|
|
119
|
+
`@northguild/gmt/zoned/classify`.
|
|
123
120
|
7. **Bucket in the zone, not in UTC.** `floorToZone(instant, unit, zone)` and
|
|
124
121
|
`bucketRange(start, end, unit, zone)` floor on the zone's own calendar
|
|
125
122
|
boundaries. Flooring a UTC instant to a UTC day and calling it a local day is
|
|
@@ -142,7 +139,7 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
142
139
|
local day.
|
|
143
140
|
10. **Calendar annotations.** A calendar-annotated zoned string is RFC 9557,
|
|
144
141
|
`Temporal.ZonedDateTime#toString()`: ISO digits, then `[timeZone]`, then
|
|
145
|
-
`[u-ca=<id>]` (`"2024-10-03T14:30:45
|
|
142
|
+
`[u-ca=<id>]` (`"2024-10-03T14:30:45+03:00[Asia/Jerusalem][u-ca=hebrew]"`).
|
|
146
143
|
A calendar annotation before the zone is rejected. Only `addZoned`, `subtractZoned`,
|
|
147
144
|
`diffZoned`, `diffZonedAsDuration`, `convertZonedToCalendar`,
|
|
148
145
|
`isValidCalendarZonedDateTime` and `zoned/interval/*` (including
|
|
@@ -176,122 +173,15 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
176
173
|
fall-back into the previous date counts that date.
|
|
177
174
|
13. **Zone names and leap seconds.** Every IANA name is a zone, including
|
|
178
175
|
single-component links (`Japan`, `Zulu`, `EST5EDT`), in any case.
|
|
179
|
-
`toOffsetInstant` returns IANA casing (`"
|
|
180
|
-
`"
|
|
176
|
+
`toOffsetInstant` returns IANA casing (`"asia/kolkata"` gives
|
|
177
|
+
`"Asia/Kolkata"`). `:60` is invalid in every spelling (`T`, `t`, space,
|
|
181
178
|
basic format) and every zoned function returns its sentinel for it rather
|
|
182
|
-
than reading `:59
|
|
179
|
+
than reading `:59`; only `timescale/` and `gnss/` accept a listed one (for `gnss/`, see the `gmt-gnss` skill).
|
|
183
180
|
14. **A zoned value formats in its own zone.** `formatZonedDateTime`,
|
|
184
181
|
`formatZonedRange` and `formatZonedToParts` return `""`/`[]` for a
|
|
185
182
|
`timeZone` option. To show an instant in another zone, use
|
|
186
183
|
`formatUtc(convertZonedToUtc(value), locale, { timeZone })`.
|
|
187
|
-
15. **
|
|
188
|
-
`transitTime(departure, duration)` adds hours, minutes and seconds as
|
|
189
|
-
elapsed time (`P1D` is 24 exact hours) in the departure's own zone, so a leg
|
|
190
|
-
across a DST transition lands at the wall time the vehicle really arrives;
|
|
191
|
-
years, months and weeks return `""`, and a bracketed zone that contradicts
|
|
192
|
-
its offset is rejected rather than reinterpreted. `etaAtZone(instant, zone)`
|
|
193
|
-
renders a moment in the zone the caller names — no disambiguation arises,
|
|
194
|
-
the offset in the result tells the two passes of a fall-back hour apart, and
|
|
195
|
-
GMT never resolves a port, airport or station code to a zone.
|
|
196
|
-
`dwellTime(entry, exit, targetZone?)` returns `{ duration, enter, exit,
|
|
197
|
-
calendarDays }`; `calendarDays` is the number of distinct local dates the
|
|
198
|
-
half-open `[entry, exit)` touches, walked across the zone's real transitions
|
|
199
|
-
(a skipped date is not counted, a re-entered one only once), and is the
|
|
200
|
-
library's one "local days crossed" count.
|
|
201
|
-
Bare instants with no `targetZone` return `null`: an offset is not a place.
|
|
202
|
-
`crossingTime(entry, exit, targetZone)` returns `{ duration, enter, exit }`
|
|
203
|
-
with no day count (a crossing that needs one is a dwell); `targetZone` is
|
|
204
|
-
required and always the rendering zone — a bracket on the input never
|
|
205
|
-
supplies it.
|
|
206
|
-
`scheduleDelivery(legs, { startTimeZone? })` chains legs into `{ eta,
|
|
207
|
-
legTimes }`: each leg leaves at its explicit `departure` or at the previous
|
|
208
|
-
arrival plus that leg's `dwellAfter`, the minimum connect time. A scheduled
|
|
209
|
-
departure earlier than that is a missed connection and returns `null`
|
|
210
|
-
(equal passes). A departure is exact (instant or zoned string) or a
|
|
211
|
-
zoneless wall time: on the first leg it is read in `startTimeZone`, on a
|
|
212
|
-
later leg in the previous leg's `timeZone` (where that leg leaves from),
|
|
213
|
-
both with `"compatible"` resolution (ambiguous → earlier, skipped →
|
|
214
|
-
later). On a later leg, a repeated hour instead takes the earliest pass
|
|
215
|
-
at or after the previous arrival plus its dwell. A
|
|
216
|
-
negative leg `duration` is `null`; the last leg's `dwellAfter` is echoed,
|
|
217
|
-
never added. `mode`, `origin` and `destination` are opaque tags echoed on
|
|
218
|
-
each `LegTime`. An empty array returns `{ eta: "", legTimes: [] }`.
|
|
219
|
-
16. **Cut-offs count back from the caller's event.**
|
|
220
|
-
`cutoffAt(anchor, offset, { timeZone, atLocalTime?, calendar?, roll? })`
|
|
221
|
-
takes an offset off the anchor (loading, departure or arrival are
|
|
222
|
-
different instants; it never guesses which). With `atLocalTime` the
|
|
223
|
-
offset's exact part comes off the anchor's instant first, its calendar
|
|
224
|
-
part off the local date, and the cut-off is that time of day: `P2D` at
|
|
225
|
-
`"17:00"` is 17:00 two days before, not 48 hours. Without it the offset
|
|
226
|
-
is `ZonedDateTime#subtract` (`P2D` keeps the wall clock, `PT96H` is 96
|
|
227
|
-
exact hours). `calendar` and `roll` go together or not at all — there is
|
|
228
|
-
no default roll, as in `rollDate`; either alone is `""`. A repeated hour
|
|
229
|
-
takes the first pass (RFC 5545 §3.3.5); a skipped hour is `""`. It does
|
|
230
|
-
not check that the cut-off is before the anchor.
|
|
231
|
-
`cutoffSchedule(anchor, [{ name, offset, atLocalTime? }], options)`
|
|
232
|
-
sorts the stack by instant and returns `[]` if any entry fails.
|
|
233
|
-
`isPastCutoff(now, cutoff)` is `true` from the cut-off instant on;
|
|
234
|
-
`timeToCutoff(now, cutoff)` is exact hours, `PT0S` at it, negative after.
|
|
235
|
-
17. **Planned versus actual is exact time under the caller's tolerance.**
|
|
236
|
-
`scheduleDeviation(planned, actual)` is `actual − planned` in exact hours
|
|
237
|
-
(`"PT14M"` late, `"-PT5M"` early; a fall-back delay is `PT1H`, never
|
|
238
|
-
`PT0S`). `classifyPunctuality(planned, actual, { late, early? })` returns
|
|
239
|
-
`"early" | "onTime" | "late"`, or `null` on invalid input: both edges are
|
|
240
|
-
outside (exactly `late` is late), and without `early` every early arrival
|
|
241
|
-
is on time. There is no default tolerance; tolerances are exact durations
|
|
242
|
-
(a day is 24 hours; years, months, weeks or negative return `null`).
|
|
243
|
-
`punctualityRate(pairs, tolerance)` returns `{ onTime, total, rate }`,
|
|
244
|
-
judging every pair under a tolerance read once; an empty list or any
|
|
245
|
-
invalid pair is `null`. A `TimestampEvent` is `{ classifier: "PLN" |
|
|
246
|
-
"EST" | "REQ" | "ACT", at, recordedAt }` (DCSA vocabulary).
|
|
247
|
-
`bestAvailable(events)` returns `{ at, classifier }`: `ACT` whenever one
|
|
248
|
-
exists, else `PLN`, else `REQ`, else `EST`, newest `recordedAt` within the
|
|
249
|
-
class — never an `EST` shown as an actual. `estimateDrift(events, {
|
|
250
|
-
tolerance? })` reports first-to-last `EST` drift, `revisions` and
|
|
251
|
-
`exceedsTolerance` (strictly greater, either direction; `null` without a
|
|
252
|
-
tolerance), and is `null` with fewer than two `EST`s.
|
|
253
|
-
`nextDeparture(after, timetable, { minimumConnection? })` returns the
|
|
254
|
-
first departure at or after `after + minimumConnection`: a list entry
|
|
255
|
-
echoed as written (ready for `scheduleDelivery`'s `departure`), or for
|
|
256
|
-
`{ headway, from, to }` (a GTFS `frequencies.txt` row) `from + k × headway`
|
|
257
|
-
in the half-open `[from, to)`, written the way `from` was. Every moment
|
|
258
|
-
must carry its offset; a wall time without one is `""`.
|
|
259
|
-
18. **Free time is counted in the terminal's local days; the start day and the
|
|
260
|
-
basis are tariff terms, never defaults.**
|
|
261
|
-
`freeTimeExpiry(clockStart, freeDays, { basis, timeZone, firstDay, calendar? })`
|
|
262
|
-
returns `{ freeTimeStart, lastFreeDay, expiresAt }`: local dates in
|
|
263
|
-
`timeZone`, and the first instant of the day after the last free day.
|
|
264
|
-
`firstDay` (`"eventDay"` | `"nextDay"`) has no default because the two
|
|
265
|
-
differ by a day of charges; `basis: "working"` needs a `BusinessCalendar`
|
|
266
|
-
and returns `null` without one. `chargeableDays(clockStart, clockEnd,
|
|
267
|
-
freeDays, options)` also needs `chargeBasis` (no default): many tariffs
|
|
268
|
-
count both in calendar days; where a tariff grants free time in working
|
|
269
|
-
days the days after it are mostly charged as calendar days, and some
|
|
270
|
-
tariffs charge working days only. It counts the days on or after
|
|
271
|
-
`expiresAt` the half-open dwell touched, lists them as `chargedDates`, and
|
|
272
|
-
splits them into `tiers` bands; `freeDays: 0` is allowed there.
|
|
273
|
-
`demurrageClock(events, scope, { direction, startEvent? })` selects the
|
|
274
|
-
events per leg: import demurrage and storage run discharge (or
|
|
275
|
-
availability) to gate-out, detention gate-out to empty return; export
|
|
276
|
-
demurrage gate-in to loaded, detention empty release to gate-in; `combined`
|
|
277
|
-
runs both as one period. No standard fixes how these days are counted;
|
|
278
|
-
every term is the tariff's.
|
|
279
|
-
19. **Billing deadlines are dates counted from an anchor, and every window is
|
|
280
|
-
the caller's.** `billingTimeline({ anchorOn, invoiceIssuedOn?,
|
|
281
|
-
requestReceivedOn? }, { issueDays, disputeDays, resolutionDays,
|
|
282
|
-
agreedResolutionOn? })` returns `{ invoiceDeadline, issuedByDeadline,
|
|
283
|
-
disputeDeadline, requestedByDeadline, resolutionDeadline }`. Day zero is
|
|
284
|
-
the anchor and each deadline is `date + days` on the ISO calendar; a date
|
|
285
|
-
is by the deadline when it is on or before it. No window has a default (a
|
|
286
|
-
missing one returns `null`); fields whose input does not exist yet are
|
|
287
|
-
`null`, so an anchor alone is a forecast. The anchor is whatever date the
|
|
288
|
-
caller counts from: the last charged date
|
|
289
|
-
(`chargedDates.at(-1)`), or for a re-bill the issuance date of the invoice
|
|
290
|
-
received. Reduce an instant to the billing party's local date first with
|
|
291
|
-
`convertUtcToPlainDate(instant, { timeZone })`. A request before its
|
|
292
|
-
invoice, or an agreed date before the request, returns `null`. GMT
|
|
293
|
-
computes dates, not liability.
|
|
294
|
-
20. **Operating hours are local windows resolved in the schedule's zone.** An
|
|
184
|
+
15. **Operating hours are local windows resolved in the schedule's zone.** An
|
|
295
185
|
`OperatingSchedule` is `{ timeZone, weekly, holidays?, overrides? }`:
|
|
296
186
|
`weekly` maps ISO weekdays `1`–`7` to half-open `LocalWindow`s
|
|
297
187
|
(`{ from: "09:00", to: "17:00" }`); a `to` at or before `from` wraps past
|
|
@@ -307,12 +197,11 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
307
197
|
`addOperatingTime(start, "PT8H", schedule)` is the SLA deadline. Searches
|
|
308
198
|
stop at `within` (default `"P1Y"`) and return `""` past it; `P1D` is not
|
|
309
199
|
open time and returns `""`.
|
|
310
|
-
|
|
200
|
+
16. **A zoned string names one instant in every reader.** Temporal writes a
|
|
311
201
|
zone's offset rounded to the minute, so a zone with a sub-minute offset
|
|
312
202
|
(`Africa/Monrovia` stood at −00:44:30 until 1972) is written `-00:45`.
|
|
313
203
|
Every function that reads a moment (`toNanoseconds`, `spanNs`, `Interval`
|
|
314
|
-
endpoints, `floorToZone`, `getTimeZoneOffset`, `
|
|
315
|
-
`timeToCutoff`, `dwellTime`) reads an offset written to the minute as the
|
|
204
|
+
endpoints, `floorToZone`, `getTimeZoneOffset`, and the `transport/` functions that read one) reads an offset written to the minute as the
|
|
316
205
|
bracketed zone's real offset when it is that offset rounded (TC39
|
|
317
206
|
`ToTemporalZonedDateTime`, match-minutes):
|
|
318
207
|
`1960-01-01T00:20:00-00:45[Africa/Monrovia]` is `01:04:30Z`. So a zoned
|
|
@@ -320,7 +209,7 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
320
209
|
the written offset fixes the instant. A function that reads only the
|
|
321
210
|
instant does not validate the bracket, and the bracket never supplies its
|
|
322
211
|
rendering zone. A function that keeps the zone (`isValidZonedDateTime`,
|
|
323
|
-
`
|
|
212
|
+
`toOffsetInstant`, every `zoned/` function, a zoned
|
|
324
213
|
`relativeTo`) rejects a bracket that contradicts the offset, and an offset
|
|
325
214
|
written with seconds must be the zone's offset exactly:
|
|
326
215
|
`-00:45:00[Africa/Monrovia]` is invalid, `-00:44:30[Africa/Monrovia]` is
|
|
@@ -329,7 +218,7 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
329
218
|
(`1952-10-15T23:59:59-11:20[Pacific/Niue]`); write the offset with seconds
|
|
330
219
|
to name the second. A zoned read refuses a local date of −271821-04-19,
|
|
331
220
|
which an instant reader accepts; pass that instant in `Z` form.
|
|
332
|
-
|
|
221
|
+
17. **Daylight time is read from the zone's clock changes.**
|
|
333
222
|
`isInDaylightSaving(zoned)` and `hasDaylightSaving(timeZone, { at })`
|
|
334
223
|
apply one rule, GMT's own definition and not the tz database's daylight
|
|
335
224
|
flag (no JavaScript API exposes it): daylight time runs from a forward
|
|
@@ -348,9 +237,10 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
348
237
|
read the runtime's time zone data, so an answer can change when that data
|
|
349
238
|
does. The JSDoc of `isInDaylightSaving` lists what the rule reads as
|
|
350
239
|
standard time.
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
240
|
+
18. **Read the docs site.** This skill is a routing pointer. The map of the
|
|
241
|
+
docs is `https://northguild.dev/gmt/llms.txt`, and each page
|
|
242
|
+
has a `.md` twin that holds its text. The JSDoc ships in the installed
|
|
243
|
+
package: `node_modules/@northguild/gmt/dist/**/*.d.ts`.
|
|
354
244
|
|
|
355
245
|
## Key functions
|
|
356
246
|
|
|
@@ -370,24 +260,16 @@ converting between time zones, or doing arithmetic that must respect DST.
|
|
|
370
260
|
`endOfUnix`, `mapZonedHoursInDay`, `getHoursInZonedDay`
|
|
371
261
|
- **Offset/DST reads**: `getZonedOffset`, `getZonedOffsetAs`,
|
|
372
262
|
`getTimeZoneOffset`, `parseTimeZoneFromZoned`
|
|
373
|
-
- **Offset-preserving instants**: `toOffsetInstant`, `fromOffsetInstant
|
|
374
|
-
|
|
263
|
+
- **Offset-preserving instants**: `toOffsetInstant`, `fromOffsetInstant`,
|
|
264
|
+
`isValidUtcOffset` (the pair's `±HH:MM[:SS]` offset; not `Z`, not `+0530`)
|
|
265
|
+
- **Local-time resolution**: `classifyLocal`, `resolveLocal`,
|
|
266
|
+
`classifyStoredZoned`
|
|
375
267
|
- **Zone-aware buckets**: `floorToZone`, `bucketRange`,
|
|
376
268
|
`isValidZoneBucketUnit`
|
|
377
|
-
- **Transport legs and dwell**: `transitTime`, `etaAtZone`, `dwellTime`,
|
|
378
|
-
`crossingTime`, `scheduleDelivery`
|
|
379
|
-
- **Cut-offs and deadlines**: `cutoffAt`, `cutoffSchedule`, `isPastCutoff`,
|
|
380
|
-
`timeToCutoff`
|
|
381
|
-
- **Punctuality and timestamp classes**: `scheduleDeviation`,
|
|
382
|
-
`classifyPunctuality`, `punctualityRate`, `bestAvailable`, `estimateDrift`,
|
|
383
|
-
`nextDeparture`
|
|
384
|
-
- **Free time and demurrage**: `freeTimeExpiry`, `chargeableDays`,
|
|
385
|
-
`demurrageClock`
|
|
386
|
-
- **Billing deadlines**: `billingTimeline`
|
|
387
269
|
- **Operating hours**: `recurringWindows`, `operatingIntervals`, `isOpenAt`,
|
|
388
270
|
`nextOpenAt`, `nextCloseAt`, `operatingTimeBetween`, `addOperatingTime`
|
|
389
271
|
|
|
390
272
|
## References
|
|
391
273
|
|
|
392
|
-
- [
|
|
393
|
-
- [DST Disambiguation guide](https://
|
|
274
|
+
- [Zoned operations guide](https://northguild.dev/gmt/guides/zoned-date-operations/zoned-operations/)
|
|
275
|
+
- [DST Disambiguation guide](https://northguild.dev/gmt/guides/concepts/dst-disambiguation/)
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gmt-transport
|
|
3
|
+
description: >
|
|
4
|
+
Transport timing for legs, cut-offs and punctuality — transitTime, etaAtZone,
|
|
5
|
+
dwellTime, crossingTime, scheduleDelivery (exact legs, local calendar days
|
|
6
|
+
dwelt, missed connections), cutoffAt, cutoffSchedule, isPastCutoff,
|
|
7
|
+
timeToCutoff, scheduleDeviation, classifyPunctuality, punctualityRate,
|
|
8
|
+
bestAvailable, estimateDrift over PLN/EST/REQ/ACT timestamp classes, and
|
|
9
|
+
nextDeparture, all in @northguild/gmt/transport. Every tolerance, connect time
|
|
10
|
+
and cut-off offset is the caller's. Reads the docs site (llms.txt) and the
|
|
11
|
+
installed package's JSDoc; a routing pointer, not an API dump.
|
|
12
|
+
sources:
|
|
13
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/industries/transport-legs-and-dwell.mdx'
|
|
14
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/industries/transport-multi-leg-scheduling.mdx'
|
|
15
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/industries/transport-punctuality-and-timestamps.mdx'
|
|
16
|
+
- 'northguild/gmt:packages/gmt/src/transport/calculate/index.ts'
|
|
17
|
+
- 'northguild/gmt:packages/gmt/src/transport/compare/index.ts'
|
|
18
|
+
- 'northguild/gmt:packages/gmt/src/transport/convert/index.ts'
|
|
19
|
+
- 'northguild/gmt:packages/gmt/src/types/transport-timestamps.ts'
|
|
20
|
+
metadata:
|
|
21
|
+
type: core
|
|
22
|
+
library: '@northguild/gmt'
|
|
23
|
+
library_version: '1.20.0'
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# GMT Transport
|
|
27
|
+
|
|
28
|
+
Use this skill when the task is timing a vehicle, vessel or consignment across
|
|
29
|
+
legs and zones: transit, arrival in the local zone, dwell, cut-offs, planned
|
|
30
|
+
versus actual, or the next departure. The time zone rules it builds on are in
|
|
31
|
+
the `gmt-timezone` skill.
|
|
32
|
+
|
|
33
|
+
## When to load
|
|
34
|
+
|
|
35
|
+
- The user is adding a leg's transit time to a departure, showing an arrival in
|
|
36
|
+
the zone where it lands, or counting how long cargo, a vessel or a patient sat
|
|
37
|
+
somewhere in local calendar days.
|
|
38
|
+
|
|
39
|
+
## Core rules
|
|
40
|
+
|
|
41
|
+
1. **Transport legs are exact time; dwell is counted in local days.**
|
|
42
|
+
`transitTime(departure, duration)` adds hours, minutes and seconds as
|
|
43
|
+
elapsed time (`P1D` is 24 exact hours) in the departure's own zone, so a leg
|
|
44
|
+
across a DST transition lands at the wall time the vehicle really arrives;
|
|
45
|
+
years, months and weeks return `""`, and a bracketed zone that contradicts
|
|
46
|
+
its offset is rejected rather than reinterpreted. `etaAtZone(instant, zone)`
|
|
47
|
+
renders a moment in the zone the caller names — no disambiguation arises,
|
|
48
|
+
the offset in the result tells the two passes of a fall-back hour apart, and
|
|
49
|
+
GMT never resolves a port, airport or station code to a zone.
|
|
50
|
+
`dwellTime(entry, exit, targetZone?)` returns `{ duration, enter, exit,
|
|
51
|
+
calendarDays }`; `calendarDays` is the number of distinct local dates the
|
|
52
|
+
half-open `[entry, exit)` touches, walked across the zone's real transitions
|
|
53
|
+
(a skipped date is not counted, a re-entered one only once), and is the
|
|
54
|
+
library's one "local days crossed" count.
|
|
55
|
+
Bare instants with no `targetZone` return `null`: an offset is not a place.
|
|
56
|
+
`crossingTime(entry, exit, targetZone)` returns `{ duration, enter, exit }`
|
|
57
|
+
with no day count (a crossing that needs one is a dwell); `targetZone` is
|
|
58
|
+
required and always the rendering zone — a bracket on the input never
|
|
59
|
+
supplies it.
|
|
60
|
+
`scheduleDelivery(legs, { startTimeZone? })` chains legs into `{ eta,
|
|
61
|
+
legTimes }`: each leg leaves at its explicit `departure` or at the previous
|
|
62
|
+
arrival plus that leg's `dwellAfter`, the minimum connect time. A scheduled
|
|
63
|
+
departure earlier than that is a missed connection and returns `null`
|
|
64
|
+
(equal passes). A departure is exact (instant or zoned string) or a
|
|
65
|
+
zoneless wall time: on the first leg it is read in `startTimeZone`, on a
|
|
66
|
+
later leg in the previous leg's `timeZone` (where that leg leaves from),
|
|
67
|
+
both with `"compatible"` resolution (ambiguous → earlier, skipped →
|
|
68
|
+
later). On a later leg, a repeated hour instead takes the earliest pass
|
|
69
|
+
at or after the previous arrival plus its dwell. A
|
|
70
|
+
negative leg `duration` is `null`; the last leg's `dwellAfter` is echoed,
|
|
71
|
+
never added. `mode`, `origin` and `destination` are opaque tags echoed on
|
|
72
|
+
each `LegTime`. An empty array returns `{ eta: "", legTimes: [] }`.
|
|
73
|
+
2. **Cut-offs count back from the caller's event.**
|
|
74
|
+
`cutoffAt(anchor, offset, { timeZone, atLocalTime?, calendar?, roll? })`
|
|
75
|
+
takes an offset off the anchor (loading, departure or arrival are
|
|
76
|
+
different instants; it never guesses which). With `atLocalTime` the
|
|
77
|
+
offset's exact part comes off the anchor's instant first, its calendar
|
|
78
|
+
part off the local date, and the cut-off is that time of day: `P2D` at
|
|
79
|
+
`"17:00"` is 17:00 two days before, not 48 hours. Without it the offset
|
|
80
|
+
is `ZonedDateTime#subtract` (`P2D` keeps the wall clock, `PT96H` is 96
|
|
81
|
+
exact hours). `calendar` and `roll` go together or not at all — there is
|
|
82
|
+
no default roll, as in `rollDate`; either alone is `""`. A repeated hour
|
|
83
|
+
takes the first pass (RFC 5545 §3.3.5); a skipped hour is `""`. It does
|
|
84
|
+
not check that the cut-off is before the anchor.
|
|
85
|
+
`cutoffSchedule(anchor, [{ name, offset, atLocalTime? }], options)`
|
|
86
|
+
sorts the stack by instant and returns `[]` if any entry fails.
|
|
87
|
+
`isPastCutoff(now, cutoff)` is `true` from the cut-off instant on;
|
|
88
|
+
`timeToCutoff(now, cutoff)` is exact hours, `PT0S` at it, negative after.
|
|
89
|
+
3. **Planned versus actual is exact time under the caller's tolerance.**
|
|
90
|
+
`scheduleDeviation(planned, actual)` is `actual − planned` in exact hours
|
|
91
|
+
(`"PT14M"` late, `"-PT5M"` early; a fall-back delay is `PT1H`, never
|
|
92
|
+
`PT0S`). `classifyPunctuality(planned, actual, { late, early? })` returns
|
|
93
|
+
`"early" | "onTime" | "late"`, or `null` on invalid input: both edges are
|
|
94
|
+
outside (exactly `late` is late), and without `early` every early arrival
|
|
95
|
+
is on time. There is no default tolerance; tolerances are exact durations
|
|
96
|
+
(a day is 24 hours; years, months, weeks or negative return `null`).
|
|
97
|
+
`punctualityRate(pairs, tolerance)` returns `{ onTime, total, rate }`,
|
|
98
|
+
judging every pair under a tolerance read once; an empty list or any
|
|
99
|
+
invalid pair is `null`. A `TimestampEvent` is `{ classifier: "PLN" |
|
|
100
|
+
"EST" | "REQ" | "ACT", at, recordedAt }` (DCSA vocabulary).
|
|
101
|
+
`bestAvailable(events)` returns `{ at, classifier }`: `ACT` whenever one
|
|
102
|
+
exists, else `PLN`, else `REQ`, else `EST`, newest `recordedAt` within the
|
|
103
|
+
class — never an `EST` shown as an actual. `estimateDrift(events, {
|
|
104
|
+
tolerance? })` reports first-to-last `EST` drift, `revisions` and
|
|
105
|
+
`exceedsTolerance` (strictly greater, either direction; `null` without a
|
|
106
|
+
tolerance), and is `null` with fewer than two `EST`s.
|
|
107
|
+
`nextDeparture(after, timetable, { minimumConnection? })` returns the
|
|
108
|
+
first departure at or after `after + minimumConnection`: a list entry
|
|
109
|
+
echoed as written (ready for `scheduleDelivery`'s `departure`), or for
|
|
110
|
+
`{ headway, from, to }` (a GTFS `frequencies.txt` row) `from + k × headway`
|
|
111
|
+
in the half-open `[from, to)`, written the way `from` was. Every moment
|
|
112
|
+
must carry its offset; a wall time without one is `""`.
|
|
113
|
+
4. **Read the docs site.** This skill is a routing pointer. The map of the
|
|
114
|
+
docs is `https://northguild.dev/gmt/llms.txt`, and each page
|
|
115
|
+
has a `.md` twin that holds its text. The JSDoc ships in the installed
|
|
116
|
+
package: `node_modules/@northguild/gmt/dist/**/*.d.ts`.
|
|
117
|
+
|
|
118
|
+
## Key functions
|
|
119
|
+
|
|
120
|
+
- **Transport legs and dwell**: `transitTime`, `etaAtZone`, `dwellTime`,
|
|
121
|
+
`crossingTime`, `scheduleDelivery`
|
|
122
|
+
- **Cut-offs and deadlines**: `cutoffAt`, `cutoffSchedule`, `isPastCutoff`,
|
|
123
|
+
`timeToCutoff`
|
|
124
|
+
- **Punctuality and timestamp classes**: `scheduleDeviation`,
|
|
125
|
+
`classifyPunctuality`, `punctualityRate`, `bestAvailable`, `estimateDrift`,
|
|
126
|
+
`nextDeparture`
|
|
127
|
+
|
|
128
|
+
## References
|
|
129
|
+
|
|
130
|
+
- [transport reference](https://northguild.dev/gmt/reference/transport/)
|
|
131
|
+
- [Docs map for agents (llms.txt)](https://northguild.dev/gmt/llms.txt)
|
|
132
|
+
- [GMT Timezone skill](../gmt-timezone/SKILL.md)
|
|
133
|
+
- [GMT Intermodal skill](../gmt-intermodal/SKILL.md)
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gmt-workforce
|
|
3
|
+
description: >
|
|
4
|
+
Hours-of-work rules over a duty log in @northguild/gmt/workforce —
|
|
5
|
+
evaluateDutyLog and dutyViolations for cumulative caps, rolling and fixed-
|
|
6
|
+
period caps, rest requirements, free periods, quotas and patterns over the
|
|
7
|
+
caller's own status words, dutyDayFor for the operator day, dutyTotals,
|
|
8
|
+
longestRun, qualifyingRests, qualifyingRestPairs, isValidDutyLog. Every limit
|
|
9
|
+
is the caller's; GMT names no regulation. Reads the docs site (llms.txt) and
|
|
10
|
+
the installed package's JSDoc; a routing pointer.
|
|
11
|
+
sources:
|
|
12
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/industries/workforce-hours-of-work.mdx'
|
|
13
|
+
- 'northguild/gmt:packages/gmt/src/workforce/index.ts'
|
|
14
|
+
- 'northguild/gmt:packages/gmt/src/types/duty.ts'
|
|
15
|
+
metadata:
|
|
16
|
+
type: core
|
|
17
|
+
library: '@northguild/gmt'
|
|
18
|
+
library_version: '1.20.0'
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# GMT Workforce
|
|
22
|
+
|
|
23
|
+
Use this skill when the task is checking hours of work against rules: driving
|
|
24
|
+
or duty caps, rest in every 24 hours, a free day in seven, a monthly record of
|
|
25
|
+
violations. The interval and duration rules it builds on are in the
|
|
26
|
+
`gmt-arithmetic` skill.
|
|
27
|
+
|
|
28
|
+
## When to load
|
|
29
|
+
|
|
30
|
+
- The user checks hours of work against rules: driving or duty caps, rest in
|
|
31
|
+
every 24 hours, a free day in seven, a monthly record of violations.
|
|
32
|
+
|
|
33
|
+
## Core rules
|
|
34
|
+
|
|
35
|
+
1. **Hours of work are rules over a duty log, and every number is the
|
|
36
|
+
caller's.** A log is `{ status, start, end }[]` in the caller's own status
|
|
37
|
+
words, ordered and non-overlapping (`isValidDutyLog`). A rule is one of 13
|
|
38
|
+
`DutyRule` kinds (`cumulativeCap`, `elapsedWindow`, `requiredInterruption`,
|
|
39
|
+
`rollingCap`, `fixedPeriodCap`, `restRequirement`, `freePeriod`,
|
|
40
|
+
`restBeforeDuty`, `quota`, `dueBy`, `pattern`, `occurrenceCap`,
|
|
41
|
+
`usageLookback`) with no default limit; GMT names no regulation.
|
|
42
|
+
`evaluateDutyLog(log, at, rules, { timeZone, dayStartTime?, disambiguation? })`
|
|
43
|
+
reports every rule at one instant; `dutyViolations` lists each violation in a
|
|
44
|
+
range once, by its worst window, in the range it began in.
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
evaluateDutyLog(log, "2024-01-01T21:30:00Z", [{ label: "11 driving", kind: "cumulativeCap",
|
|
48
|
+
statuses: ["driving"], cap: "PT11H", since: { statuses: ["off"], consecutive: "PT10H" } }],
|
|
49
|
+
{ timeZone: "UTC" }).violations; // [{ label: "11 driving", used: "PT11H30M", limit: "PT11H", … }]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
- `{ elapsed: "PT24H" }` slides; `{ operatorDays }`, `{ calendarDays }`,
|
|
53
|
+
`{ isoWeeks }`, `{ calendarMonths }`, `{ calendarYears }` are whole local
|
|
54
|
+
periods in `timeZone` (28 calendar days across a fall-back are 673 hours).
|
|
55
|
+
- The operator day is `dutyDayFor(instant, { timeZone, dayStartTime })`,
|
|
56
|
+
never local midnight; a rule counting `operatorDays` needs `dayStartTime`.
|
|
57
|
+
- The log is read up to `at`; unlogged time is neither work nor rest. To
|
|
58
|
+
check a roster, append the plan and set `at` to its end.
|
|
59
|
+
- A paired rest is three floors (`PairSpec`), not two integers:
|
|
60
|
+
`qualifyingRestPairs`.
|
|
61
|
+
- A count of periods is 10,000 at most, alone or times `adjacent`,
|
|
62
|
+
`lookback` or `periods`. `fixedPeriodCap.period` and `occurrenceCap.per`
|
|
63
|
+
are a `LocalPeriod`: a count, never `elapsed`.
|
|
64
|
+
- `dutyViolations` reads only the time the log covers, and each check reads
|
|
65
|
+
the log as it stood then, so a record only grows as the log does.
|
|
66
|
+
- Nested caps are separate rules, reported separately.
|
|
67
|
+
2. **Read the docs site.** This skill is a routing pointer. The map of the
|
|
68
|
+
docs is `https://northguild.dev/gmt/llms.txt`, and each page
|
|
69
|
+
has a `.md` twin that holds its text. The JSDoc ships in the installed
|
|
70
|
+
package: `node_modules/@northguild/gmt/dist/**/*.d.ts`.
|
|
71
|
+
|
|
72
|
+
## Key functions
|
|
73
|
+
|
|
74
|
+
- **Hours of work**: `evaluateDutyLog`, `dutyViolations`, `dutyDayFor`,
|
|
75
|
+
`dutyTotals`, `longestRun`, `qualifyingRests`, `qualifyingRestPairs`,
|
|
76
|
+
`isValidDutyLog`, types `DutyEntry`, `DutyRule`, `Period`, `LocalPeriod`,
|
|
77
|
+
`DutyReport`
|
|
78
|
+
|
|
79
|
+
## References
|
|
80
|
+
|
|
81
|
+
- [workforce reference](https://northguild.dev/gmt/reference/workforce/)
|
|
82
|
+
- [Workforce: Hours of Work guide](https://northguild.dev/gmt/guides/industries/workforce-hours-of-work/)
|
|
83
|
+
- [Docs map for agents (llms.txt)](https://northguild.dev/gmt/llms.txt)
|
|
84
|
+
- [GMT Arithmetic skill](../gmt-arithmetic/SKILL.md)
|
|
@@ -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,19 +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`. The utc twin of `unixZonedDateTime`.
|
|
5
|
-
*
|
|
6
|
-
* - `timeZone` defaults to `"UTC"`; `"local"` is the system zone; an unknown zone is invalid
|
|
7
|
-
* (see `normalizeTimeZone`).
|
|
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: "local" })?.timeZoneId // the system zone, e.g. "America/New_York"
|
|
14
|
-
* @example utcZonedDateTime("2024-03-15T14:30:00Z", { timeZone: "Invalid/Zone" }) // null
|
|
15
|
-
* @example utcZonedDateTime("2024-03-15T14:30:00") // null (no Z)
|
|
16
|
-
*/
|
|
17
|
-
export declare function utcZonedDateTime(value: string, options?: {
|
|
18
|
-
timeZone?: string;
|
|
19
|
-
}): Temporal.ZonedDateTime | null;
|