@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
|
@@ -4,12 +4,19 @@ description: >
|
|
|
4
4
|
Core date/time basics — get current values, parse components, read ISO week,
|
|
5
5
|
ordinal, quarter and fiscal-period identifiers, format for display, format
|
|
6
6
|
relative time, compare dates, and validate strings/timezones/intervals. Reads
|
|
7
|
-
the
|
|
8
|
-
is a routing pointer, not an API dump.
|
|
7
|
+
the docs site (llms.txt and each page's .md twin) and the installed package's
|
|
8
|
+
JSDoc for API details; this skill is a routing pointer, not an API dump.
|
|
9
9
|
sources:
|
|
10
|
-
- 'northguild/gmt:
|
|
10
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/core-date-operations/get-current.mdx'
|
|
11
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/core-date-operations/parsing.mdx'
|
|
12
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/core-date-operations/formatting.mdx'
|
|
13
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/core-date-operations/relative-time.mdx'
|
|
14
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/core-date-operations/comparisons.mdx'
|
|
15
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/core-date-operations/validation.mdx'
|
|
16
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/zoned-date-operations/calendar-boundaries.mdx'
|
|
11
17
|
- 'northguild/gmt:packages/gmt/src/plain/get/index.ts'
|
|
12
18
|
- 'northguild/gmt:packages/gmt/src/plain/parse/index.ts'
|
|
19
|
+
- 'northguild/gmt:packages/gmt/src/types/two-digit-year.ts'
|
|
13
20
|
- 'northguild/gmt:packages/gmt/src/plain/format/index.ts'
|
|
14
21
|
- 'northguild/gmt:packages/gmt/src/plain/locale/index.ts'
|
|
15
22
|
- 'northguild/gmt:packages/gmt/src/plain/compare/index.ts'
|
|
@@ -17,6 +24,9 @@ sources:
|
|
|
17
24
|
- 'northguild/gmt:packages/gmt/src/zoned/get/index.ts'
|
|
18
25
|
- 'northguild/gmt:packages/gmt/src/zoned/format/index.ts'
|
|
19
26
|
- 'northguild/gmt:packages/gmt/src/zoned/validate/index.ts'
|
|
27
|
+
- 'northguild/gmt:packages/gmt/src/zoned/parse/index.ts'
|
|
28
|
+
- 'northguild/gmt:packages/gmt/src/utc/parse/index.ts'
|
|
29
|
+
- 'northguild/gmt:packages/gmt/src/utc/validate/index.ts'
|
|
20
30
|
- 'northguild/gmt:packages/gmt/src/unix/get/index.ts'
|
|
21
31
|
- 'northguild/gmt:packages/gmt/src/utc/get/index.ts'
|
|
22
32
|
- 'northguild/gmt:packages/gmt/src/calendar/calculate/index.ts'
|
|
@@ -24,7 +34,7 @@ sources:
|
|
|
24
34
|
metadata:
|
|
25
35
|
type: core
|
|
26
36
|
library: '@northguild/gmt'
|
|
27
|
-
library_version: '1.
|
|
37
|
+
library_version: '1.20.0'
|
|
28
38
|
---
|
|
29
39
|
|
|
30
40
|
# GMT Basics
|
|
@@ -52,26 +62,38 @@ input before you act on it.
|
|
|
52
62
|
`false` for booleans, `[]` for arrays. Always check before using. This holds
|
|
53
63
|
for a `null` or wrong-typed argument too (`addDate(x, null)` is `""`), so a
|
|
54
64
|
`try`/`catch` around a GMT call is dead code.
|
|
55
|
-
3. **Read the
|
|
56
|
-
signatures, locale matrices, and code examples, read
|
|
57
|
-
`
|
|
65
|
+
3. **Read the docs site.** This skill is a routing pointer. For full API
|
|
66
|
+
signatures, locale matrices, and code examples, read these:
|
|
67
|
+
- `https://northguild.dev/gmt/llms.txt` is the map of every docs page.
|
|
68
|
+
- Each page has a `.md` twin that holds its text, for example
|
|
69
|
+
`https://northguild.dev/gmt/guides/core-date-operations/parsing.md`.
|
|
70
|
+
- The JSDoc of the function you intend to call ships in the installed
|
|
71
|
+
package: `node_modules/@northguild/gmt/dist/**/*.d.ts`.
|
|
58
72
|
|
|
59
73
|
## Key functions
|
|
60
74
|
|
|
61
75
|
- **Current values**: `getNow`, `getToday`, `getUtcNow`, `getUnixNow`,
|
|
62
76
|
`getSystemTimeZone`, `getTimeZones`
|
|
63
77
|
- **Parsing**: `parseYearFromDate`, `parseMonthFromDate`,
|
|
64
|
-
`parseDateTimeWithPattern`, `parseRfc3339`, `
|
|
78
|
+
`parseDateTimeWithPattern`, `parseRfc3339`, `parseRfc2822`,
|
|
79
|
+
`parseHttpDate`, `parseSqlDateTime`
|
|
65
80
|
- **Calendar identifiers**: `getIsoWeekDate`, `getOrdinalDate`, `getQuarter`,
|
|
66
81
|
`getFiscalPeriod`
|
|
67
82
|
- **Formatting**: `formatDate`, `formatTime`, `formatDateTime`,
|
|
68
|
-
`formatRelativeDate`, `formatCalendar`, `formatRfc3339`
|
|
83
|
+
`formatRelativeDate`, `formatCalendar`, `formatRfc3339`, `formatRfc2822`,
|
|
84
|
+
`formatHttpDate`, `formatSqlDateTime`
|
|
69
85
|
- **Locale names**: `getLocaleMonthNames`, `getLocaleWeekdayNames`,
|
|
70
86
|
`getLocaleMeridiems`, `getLocaleEraNames`
|
|
71
87
|
- **Comparison**: `isAfterDate`, `isBeforeDate`, `areDatesEqual`,
|
|
72
88
|
`areDatesEqualBy`, `isWeekend`, `isBusinessDay`, `nextWeekday`
|
|
73
89
|
- **Validation**: `isValidDate`, `isValidTime`, `isValidTimeZone`,
|
|
74
|
-
`isValidZonedDateTime`, `isValidDateInterval`, `isValidFiscalPattern
|
|
90
|
+
`isValidZonedDateTime`, `isValidDateInterval`, `isValidFiscalPattern`,
|
|
91
|
+
`isValidFiscalCalendar`, `isValidFiscalExtraWeek`, `isValidFiscalYearLabel`,
|
|
92
|
+
`hasSecond60`
|
|
93
|
+
- **Interchange-format validation**: `isValidRfc3339DateTime`,
|
|
94
|
+
`isValidRfc2822DateTime`, `isValidHttpDate`, `isValidSqlDateTime`
|
|
95
|
+
- **UTC timestamp validation**: `isValidUtcTimestamp` (a UTC instant written
|
|
96
|
+
`YYYY-MM-DDTHH:MM:SS[.f]Z` and nothing else; it has no parser)
|
|
75
97
|
|
|
76
98
|
## Common pitfalls
|
|
77
99
|
|
|
@@ -82,21 +104,41 @@ input before you act on it.
|
|
|
82
104
|
second to hour, the others second to year. Any other unit returns `""`.
|
|
83
105
|
`roundingMethod` is `"floor"`, `"ceil"` or `"round"`: any other value returns `""`.
|
|
84
106
|
- In a `parse*WithPattern` pattern, `''` is one literal quote, inside or outside
|
|
85
|
-
quoted text (UTS #35): `"
|
|
86
|
-
|
|
107
|
+
quoted text (UTS #35), and not an empty separator: `"''yyyy-MM-dd''"` reads
|
|
108
|
+
`"'2024-01-15'"`. Write adjacent fields with nothing between them, as in `"yyyyMMdd"`.
|
|
109
|
+
- A `yy` token in a `parse*WithPattern` pattern needs the caller's hundred-year window:
|
|
110
|
+
`{ yearWindow: 2000 }` reads `"03/15/24"` against `"MM/dd/yy"` as `"2024-03-15"`, and
|
|
111
|
+
`"rolling"` is the hundred years around the current UTC year. A `yy` pattern with no
|
|
112
|
+
`yearWindow` returns `""`; a pattern with no `yy` never reads the option.
|
|
87
113
|
- `getZonedNow` reads `smallestUnit` only, and writes milliseconds when it is
|
|
88
114
|
omitted or `undefined`. The string always carries the offset and the zone.
|
|
89
|
-
- `parseDateWithPattern`, `parseRfc2822` and `
|
|
115
|
+
- `parseDateWithPattern`, `parseRfc2822` and `parseHttpDate` return `""` on
|
|
90
116
|
shape-valid-but-unreal dates such as 31 February (regex only proves shape;
|
|
91
117
|
Temporal validates the real value). Parsers reject; only arithmetic clamps.
|
|
92
118
|
- `parseRfc2822` reads everything RFC 5322 says a receiver must: comments,
|
|
93
119
|
folding whitespace, any case, two-digit years and zone names such as `EST`
|
|
94
|
-
(an unknown name reads as `+00:00`). `
|
|
120
|
+
(an unknown name reads as `+00:00`). `parseHttpDate` reads all three HTTP-date
|
|
95
121
|
forms, including `rfc850-date` and `asctime-date`. Both return `""` when the
|
|
96
122
|
day name contradicts the date (`"Sat, 15 Mar 2024 …"`), so do not synthesise
|
|
97
123
|
a day name; omit it. The `rfc2822DateTime` and `httpDate` regexes stay strict
|
|
98
124
|
and match only what GMT writes, so do not use them to pre-filter parser input.
|
|
99
|
-
-
|
|
125
|
+
- To check an interchange string, call its validator, not its regex.
|
|
126
|
+
`isValidRfc3339DateTime`, `isValidRfc2822DateTime`, `isValidHttpDate` and
|
|
127
|
+
`isValidSqlDateTime` are each true exactly when the parser returns a value.
|
|
128
|
+
A regex proves shape only: `rfc3339DateTime.test("2023-02-29T10:00:00Z")`
|
|
129
|
+
is `true` and `isValidRfc3339DateTime` returns `false` for it.
|
|
130
|
+
- `isValidUtcTimestamp` matches no parser: it is a narrower `isValidUtc`. It is true
|
|
131
|
+
only for a real UTC instant written `YYYY-MM-DDTHH:MM:SS[.f]Z`: a four-digit year
|
|
132
|
+
`0000` to `9999`, upper-case `T` and `Z`, seconds, an optional dot fraction of one to
|
|
133
|
+
nine digits, and nothing after the `Z`. Use it for a string headed for storage or for
|
|
134
|
+
a reader that is not Temporal. `isValidUtc` also accepts a time without seconds, a
|
|
135
|
+
comma before the fraction, an expanded `±YYYYYY` year and RFC 9557 annotations
|
|
136
|
+
(`"2026-10-06T12:00:00Z[Europe/Paris]"`); all four are `false` here. A numeric offset,
|
|
137
|
+
`+00:00` included, is `false` too: `isValidRfc3339DateTime` checks the whole RFC 3339
|
|
138
|
+
grammar, with the same two GMT limits (no second `60`, at most nine fraction digits).
|
|
139
|
+
The check is on the spelling and the instant. A reader's own range and precision
|
|
140
|
+
still apply.
|
|
141
|
+
- `formatRfc2822`, `formatHttpDate` and `formatRfc3339` return `""` for a year their
|
|
100
142
|
grammar cannot hold (before 0000, or after 9999 for RFC 3339 and HTTP).
|
|
101
143
|
`formatRfc3339` writes a sub-minute historical offset as the same instant at
|
|
102
144
|
`+00:00`. Use Temporal's `toString()` when you need any year.
|
|
@@ -106,8 +148,14 @@ input before you act on it.
|
|
|
106
148
|
lacks (`timeStyle` on `formatDate`, `dateStyle` on `formatTime`) returns `""`.
|
|
107
149
|
Zoned formatters return `""`/`[]` for a `timeZone` option: to show an instant
|
|
108
150
|
in another zone, use `formatUtc(value, locale, { timeZone })`.
|
|
109
|
-
-
|
|
110
|
-
format)
|
|
151
|
+
- A second of `60` is invalid in every spelling (`T`, `t`, space, basic
|
|
152
|
+
format), and validators return `false` for it. Two functions tell you about
|
|
153
|
+
one. `hasSecond60` is the shape test: it is true for any second 60, real or
|
|
154
|
+
not (`"2024-06-15T12:34:60Z"` is `true`). `isLeapSecond`, from `timescale/`,
|
|
155
|
+
is the table lookup: it is true only for the 27 inserted leap seconds
|
|
156
|
+
(`"2016-12-31T23:59:60Z"` is `true`, `"2024-06-15T12:34:60Z"` is `false`).
|
|
157
|
+
Only the `timescale/` and `gnss/` functions accept a second 60, and only a
|
|
158
|
+
listed one; see the `gmt-integration` and `gmt-gnss` skills.
|
|
111
159
|
- `isValidTimeZone` accepts every IANA name, including single-component links
|
|
112
160
|
such as `Japan`, `Zulu` and `EST5EDT`, and ignores case. It also accepts
|
|
113
161
|
offset zone ids such as `"+05:00"`, as Temporal does.
|
|
@@ -123,14 +171,28 @@ input before you act on it.
|
|
|
123
171
|
instant has no calendar date until you name a zone — floor it with
|
|
124
172
|
`floorToZone` first, or convert it in the zone you mean.
|
|
125
173
|
- `getFiscalPeriod`'s `yearEndsOn` states the year-end **rule** by example, not
|
|
126
|
-
one year's end.
|
|
127
|
-
January
|
|
174
|
+
one year's end. One published 4-5-4 example (NRF, US) adds a 53rd week when
|
|
175
|
+
"there are four or more days left in January", which is the Saturday nearest
|
|
176
|
+
January 31: `"2026-01-31"`, a Saturday on January 31.
|
|
177
|
+
- `getFiscalPeriod` also requires `extraWeek` and `yearLabel`, with no default,
|
|
178
|
+
because published calendars disagree on both. `extraWeek` is the period a 53rd
|
|
179
|
+
week is added to: `"firstPeriod"` (ONS, UK) or `"lastPeriod"` (NRF, US).
|
|
180
|
+
`yearLabel` names the fiscal year: `"startYear"` (NRF, US), `"endYear"`, the
|
|
181
|
+
year its last day falls in, or `"majorityYear"`, the calendar year holding the
|
|
182
|
+
most of its days (ONS, UK); a 182/182 split goes to the end year. IFRS 18
|
|
183
|
+
¶27(c) (formerly IAS 1 ¶51(c)) lets a period be identified by the date it
|
|
184
|
+
ends, which supports `"endYear"` and the tie rule. `getQuarter` with options takes
|
|
185
|
+
`fiscalYearStartMonth` and `yearLabel`, both required. A calendar missing a
|
|
186
|
+
field returns `null`; check it with `isValidFiscalCalendar`.
|
|
128
187
|
- `isWeekend` is locale-aware via `Intl.Locale.weekInfo`; `isBusinessDay` is
|
|
129
|
-
fixed
|
|
188
|
+
a fixed Mon–Fri week (Sat–Sun off, CLDR's world default; ISO 8601 defines no
|
|
189
|
+
weekend) with no locale and no holidays **until you pass it a
|
|
130
190
|
`BusinessCalendar`** — `isBusinessDay(value, { weekend, holidays, timeZone })`
|
|
131
191
|
states the weekend and holidays itself. See the `gmt-arithmetic` skill.
|
|
132
192
|
|
|
133
193
|
## References
|
|
134
194
|
|
|
135
|
-
- [
|
|
195
|
+
- [Docs map for agents (llms.txt)](https://northguild.dev/gmt/llms.txt)
|
|
196
|
+
- [API reference](https://northguild.dev/gmt/reference/)
|
|
197
|
+
- [Core date operations guides index](https://northguild.dev/gmt/guides/core-date-operations/)
|
|
136
198
|
- [Core date operations guides](/guides/core-date-operations/get-current/)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gmt-gnss
|
|
3
|
+
description: >
|
|
4
|
+
GNSS time in @northguild/gmt/gnss — the six RINEX GNSS time scales as peers
|
|
5
|
+
(GPS, GAL, BDT, QZS, GLO, IRN: utcToGnss, gnssToUtc), broadcast weeks by named
|
|
6
|
+
counter (GnssWeekCounter) with a required rolloverEra (integer, "rolling" or {
|
|
7
|
+
notBefore }) for gnssWeekToUtc/utcToGnssWeek, and continuous RINEX navigation
|
|
8
|
+
weeks (rinexWeekToUtc, utcToRinexWeek). Reads the docs site (llms.txt) and the
|
|
9
|
+
installed package's JSDoc; a routing pointer, not an API dump.
|
|
10
|
+
sources:
|
|
11
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/industries/gnss-system-time-and-week-rollover.mdx'
|
|
12
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/industries/maritime-gnss-time-and-week-rollover.mdx'
|
|
13
|
+
- 'northguild/gmt:packages/gmt/src/gnss/index.ts'
|
|
14
|
+
- 'northguild/gmt:packages/gmt/src/types/gnss.ts'
|
|
15
|
+
metadata:
|
|
16
|
+
type: core
|
|
17
|
+
library: '@northguild/gmt'
|
|
18
|
+
library_version: '1.20.0'
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# GMT GNSS
|
|
22
|
+
|
|
23
|
+
Use this skill when the task is reading satellite receiver output: a GNSS
|
|
24
|
+
time-scale string, a broadcast week and time of week, or a RINEX navigation
|
|
25
|
+
file week. TAI and the leap-second table are in the `gmt-integration` skill.
|
|
26
|
+
|
|
27
|
+
## When to load
|
|
28
|
+
|
|
29
|
+
- The user is reading satellite receiver output: a GNSS time-scale string, a
|
|
30
|
+
broadcast week and time of week, or a RINEX navigation-file week.
|
|
31
|
+
|
|
32
|
+
## Core rules
|
|
33
|
+
|
|
34
|
+
1. **The six GNSS time scales are peers, named by their RINEX 4.02 tokens.**
|
|
35
|
+
`GPS`, `GAL` (Galileo), `BDT` (BeiDou), `QZS` (QZSS), `GLO` (GLONASS) and
|
|
36
|
+
`IRN` (NavIC). No system is a default; each goes through the same functions,
|
|
37
|
+
with the system first.
|
|
38
|
+
```typescript
|
|
39
|
+
utcToGnss("GAL", "2024-01-01T00:00:00Z"); // "2024-01-01T00:00:18 GAL"
|
|
40
|
+
utcToGnss("BDT", "2024-01-01T00:00:00Z"); // "2024-01-01T00:00:04 BDT"
|
|
41
|
+
utcToGnss("GPS", "1980-01-06T00:00:00Z"); // "1980-01-06T00:00:00 GPS" (0 s at the epoch)
|
|
42
|
+
gnssToUtc("IRN", "2024-01-01T00:00:18 IRN"); // "2024-01-01T00:00:00Z"
|
|
43
|
+
```
|
|
44
|
+
- `GLO` is GLONASS time as RINEX reports it: UTC's own hours, leap seconds
|
|
45
|
+
included, not UTC + 3 h. Remove the three hours from raw system time first.
|
|
46
|
+
- Each system returns the sentinel before its own epoch. Offsets are nominal:
|
|
47
|
+
broadcast nanosecond corrections are not applied.
|
|
48
|
+
2. **A broadcast week needs its counter and its era.** `GnssWeekCounter` names
|
|
49
|
+
one counter with one modulus: `"GPS-LNAV"`, `"QZS-LNAV"`, `"IRN-LNAV"` 1024
|
|
50
|
+
weeks; `"GAL"` 4096; `"GPS-CNAV"`, `"QZS-CNAV"`, `"BDT"`, `"IRN-L1NV"` 8192.
|
|
51
|
+
GLONASS has no week counter. `rolloverEra` is required: an integer era for
|
|
52
|
+
stored data, `"rolling"` for live output (the era within half a counter
|
|
53
|
+
period of today, so it reads the clock), or `{ notBefore }`, the earliest
|
|
54
|
+
match at or after an instant you state, such as a firmware build date.
|
|
55
|
+
```typescript
|
|
56
|
+
gnssWeekToUtc("GPS-LNAV", 100, 0, 0); // "1981-12-05T23:59:59Z"
|
|
57
|
+
gnssWeekToUtc("GPS-LNAV", 100, 0, 1); // "2001-07-21T23:59:47Z"
|
|
58
|
+
gnssWeekToUtc("GPS-LNAV", 1020, 0, { notBefore: "2019-04-07T00:00:00Z" }); // "2038-10-23T23:59:42Z"
|
|
59
|
+
utcToGnssWeek("GAL", "2019-04-07T00:00:00Z"); // { week: 1024, timeOfWeekSeconds: 18, era: 0 }
|
|
60
|
+
```
|
|
61
|
+
A RINEX navigation record's week is continuous and never wraps: read it with
|
|
62
|
+
`rinexWeekToUtc` / `utcToRinexWeek`, not the broadcast functions. A RINEX
|
|
63
|
+
NavIC week read as a broadcast week is 1024 weeks off.
|
|
64
|
+
```typescript
|
|
65
|
+
rinexWeekToUtc("IRN", 2295, 86418); // "2024-01-01T00:00:00Z"
|
|
66
|
+
gnssWeekToUtc("IRN-L1NV", 2295, 86418, 0); // "2043-08-17T00:00:00Z" (not the same week)
|
|
67
|
+
```
|
|
68
|
+
3. **Second 60 is accepted only on a listed insertion day.** `gnss/` and
|
|
69
|
+
`timescale/` accept `:60` only on a listed insertion day, and may return
|
|
70
|
+
`…T23:59:60Z`. Every other GMT function rejects `:60`, so do not pass that
|
|
71
|
+
result on.
|
|
72
|
+
4. **Convert at the boundary and store the era rule.** Convert a GNSS label to
|
|
73
|
+
a UTC instant on the way in (`gnssToUtc`, `gnssWeekToUtc`, `rinexWeekToUtc`),
|
|
74
|
+
and back on the way out. Store the era rule you used with any week you
|
|
75
|
+
decode.
|
|
76
|
+
5. **Read the docs site.** This skill is a routing pointer. The map of the
|
|
77
|
+
docs is `https://northguild.dev/gmt/llms.txt`, and each page
|
|
78
|
+
has a `.md` twin that holds its text. The JSDoc ships in the installed
|
|
79
|
+
package: `node_modules/@northguild/gmt/dist/**/*.d.ts`.
|
|
80
|
+
|
|
81
|
+
## Key functions
|
|
82
|
+
|
|
83
|
+
- **GNSS time scales** (`@northguild/gmt/gnss`): `utcToGnss`, `gnssToUtc`,
|
|
84
|
+
`gnssWeekToUtc`, `utcToGnssWeek`, `rinexWeekToUtc`, `utcToRinexWeek`, types
|
|
85
|
+
`GnssSystem`, `GnssWeekCounter`, `RolloverEra`, `GnssWeek`,
|
|
86
|
+
`RinexWeekSystem`, `RinexWeek`
|
|
87
|
+
|
|
88
|
+
## References
|
|
89
|
+
|
|
90
|
+
- [gnss reference](https://northguild.dev/gmt/reference/gnss/)
|
|
91
|
+
- [Docs map for agents (llms.txt)](https://northguild.dev/gmt/llms.txt)
|
|
92
|
+
- [GMT Integration skill](../gmt-integration/SKILL.md)
|
|
@@ -3,21 +3,29 @@ name: gmt-integration
|
|
|
3
3
|
description: >
|
|
4
4
|
Application integration patterns — stable cache keys, router/query params,
|
|
5
5
|
table-sort keys, nanosecond timestamps across JSON and storage boundaries,
|
|
6
|
-
foreign epoch bridges (NTP, FILETIME, .NET ticks, Excel, PostgreSQL), and
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
foreign epoch bridges (NTP, FILETIME, .NET ticks, Excel, PostgreSQL), TAI and
|
|
7
|
+
the closed IERS leap-second table (taiMinusUtc, leapSecondsBetween,
|
|
8
|
+
nextLeapSecond, isLeapSecond, toTAI, fromTAI), and lint package selection
|
|
9
|
+
(ESLint, Biome, Oxlint). GNSS time is in gmt-gnss. Reads the docs site
|
|
10
|
+
(llms.txt and each page's .md twin) and the installed package's JSDoc for API
|
|
11
|
+
details, and the lint-package READMEs for lint setup; this skill is a routing
|
|
9
12
|
pointer, not an API dump.
|
|
10
13
|
sources:
|
|
11
|
-
- 'northguild/gmt:
|
|
14
|
+
- 'northguild/gmt:apps/dox/src/content/docs/install.mdx'
|
|
15
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/integration/app-integration.mdx'
|
|
16
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/integration/linting.mdx'
|
|
17
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/core-date-operations/nanosecond-precision.mdx'
|
|
18
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/conversion/foreign-epoch-bridges.mdx'
|
|
12
19
|
- 'northguild/gmt:packages/gmt/src/zoned/validate/index.ts'
|
|
13
20
|
- 'northguild/gmt:packages/gmt/src/precision/convert/index.ts'
|
|
14
21
|
- 'northguild/gmt:packages/gmt/src/precision/format/index.ts'
|
|
15
22
|
- 'northguild/gmt:packages/gmt/src/precision/calculate/index.ts'
|
|
16
23
|
- 'northguild/gmt:packages/gmt/src/precision/validate/index.ts'
|
|
24
|
+
- 'northguild/gmt:packages/gmt/src/timescale/index.ts'
|
|
17
25
|
metadata:
|
|
18
26
|
type: composition
|
|
19
27
|
library: '@northguild/gmt'
|
|
20
|
-
library_version: '1.
|
|
28
|
+
library_version: '1.20.0'
|
|
21
29
|
---
|
|
22
30
|
|
|
23
31
|
# GMT Integration
|
|
@@ -32,6 +40,8 @@ which lint package to install for Date-ban enforcement.
|
|
|
32
40
|
- The user is moving nanosecond timestamps across a JSON wire or into a database.
|
|
33
41
|
- The user is reading or writing another system's epoch — NTP, Windows `FILETIME`,
|
|
34
42
|
.NET ticks, an Excel day serial, or PostgreSQL's internal microseconds.
|
|
43
|
+
- The user needs TAI, TAI − UTC on a date, or whether a `23:59:60` was a real
|
|
44
|
+
leap second.
|
|
35
45
|
- The user is picking an ESLint, Biome, or Oxlint plugin to ban `Date` APIs.
|
|
36
46
|
- The user has a lint package but not the gmt runtime (or vice versa).
|
|
37
47
|
|
|
@@ -82,11 +92,36 @@ which lint package to install for Date-ban enforcement.
|
|
|
82
92
|
bracketed zone annotation. One thing is read from it: an offset written to the
|
|
83
93
|
minute that is the zone's sub-minute offset rounded (`-00:45[Africa/Monrovia]`)
|
|
84
94
|
names the instant the zone gives.
|
|
85
|
-
6. **
|
|
95
|
+
6. **Leap seconds come from the built-in table, never a literal.** `timescale/`
|
|
96
|
+
holds the IERS leap-second table as a closed record: 27 insertions, the last
|
|
97
|
+
on 2016-12-31, and TAI − UTC stays 37 s for every later date, because UTC
|
|
98
|
+
becomes continuous on 20 May 2027 (CGPM 2026). No function takes a table.
|
|
99
|
+
```typescript
|
|
100
|
+
taiMinusUtc("2024-01-01T00:00:00Z"); // 37
|
|
101
|
+
leapSecondsBetween("2000-01-01T00:00:00Z", "2024-01-01T00:00:00Z"); // 5
|
|
102
|
+
isLeapSecond("2016-12-31T23:59:60Z"); // true (a table lookup)
|
|
103
|
+
isLeapSecond("2024-06-15T12:34:60Z"); // false (hasSecond60 is the shape test)
|
|
104
|
+
toTAI("2026-01-01T00:00:00Z"); // "2026-01-01T00:00:37 TAI"
|
|
105
|
+
fromTAI("2017-01-01T00:00:36 TAI"); // "2016-12-31T23:59:60Z"
|
|
106
|
+
```
|
|
107
|
+
- Before 1972-01-01 TAI − UTC was fractional, so every function returns its
|
|
108
|
+
sentinel there.
|
|
109
|
+
- `timescale/` and `gnss/` accept a second 60 only on a listed insertion
|
|
110
|
+
day (for `gnss/`, see the `gmt-gnss` skill), and may return `…T23:59:60Z`. Every other GMT function rejects `:60`,
|
|
111
|
+
so do not pass that result on.
|
|
112
|
+
- A smeared clock never reads `23:59:60` and is up to a second off UTC
|
|
113
|
+
around an insertion. GMT cannot detect smearing.
|
|
114
|
+
7. **Lint packages are toolchain-specific, not mutually exclusive.** Recommend
|
|
86
115
|
only the one matching the project's existing linter; do not force all three.
|
|
87
|
-
|
|
88
|
-
guidance, read
|
|
89
|
-
|
|
116
|
+
8. **Read the docs site and the lint README.** This skill is a routing pointer.
|
|
117
|
+
For full integration guidance, read these:
|
|
118
|
+
- `https://northguild.dev/gmt/llms.txt` is the map of every docs page.
|
|
119
|
+
- Each page has a `.md` twin that holds its text, for example
|
|
120
|
+
`https://northguild.dev/gmt/guides/integration/app-integration.md`.
|
|
121
|
+
- The JSDoc ships in the installed package:
|
|
122
|
+
`node_modules/@northguild/gmt/dist/**/*.d.ts`.
|
|
123
|
+
- For lint setup, read the matching `@northguild/gmt-eslint` / `gmt-oxlint` /
|
|
124
|
+
`gmt-biome` README.
|
|
90
125
|
|
|
91
126
|
## Lint package selection
|
|
92
127
|
|
|
@@ -116,9 +151,22 @@ the pattern.
|
|
|
116
151
|
- **Foreign epochs at the boundary**: convert on the way in and on the way out with
|
|
117
152
|
the `precision/convert/` bridges, and keep ISO strings or `bigint` nanoseconds
|
|
118
153
|
everywhere in between — never carry another system's serial through your own code.
|
|
154
|
+
- **Atomic time at the boundary**: convert a TAI label to a UTC instant on the
|
|
155
|
+
way in (`fromTAI`), and back on the way out. GNSS time scales and weeks are in
|
|
156
|
+
the `gmt-gnss` skill.
|
|
157
|
+
|
|
158
|
+
## Key functions
|
|
159
|
+
|
|
160
|
+
- **Leap seconds and TAI** (`@northguild/gmt/timescale`): `taiMinusUtc`,
|
|
161
|
+
`leapSecondsBetween`, `nextLeapSecond`, `isLeapSecond`, `toTAI`, `fromTAI`
|
|
119
162
|
|
|
120
163
|
## References
|
|
121
164
|
|
|
122
|
-
- [
|
|
165
|
+
- [Docs map for agents (llms.txt)](https://northguild.dev/gmt/llms.txt)
|
|
166
|
+
- [Install](https://northguild.dev/gmt/install/)
|
|
167
|
+
- [App integration guide](https://northguild.dev/gmt/guides/integration/app-integration/)
|
|
168
|
+
- [Nanosecond precision guide](https://northguild.dev/gmt/guides/core-date-operations/nanosecond-precision/)
|
|
169
|
+
- [Foreign epoch bridges guide](https://northguild.dev/gmt/guides/conversion/foreign-epoch-bridges/)
|
|
170
|
+
- [timescale reference](https://northguild.dev/gmt/reference/timescale/)
|
|
123
171
|
- [Lint Package Selection guide](/guides/integration/linting/)
|
|
124
172
|
- [Core Rules](/core-rules/)
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gmt-intermodal
|
|
3
|
+
description: >
|
|
4
|
+
Intermodal container and freight timing in @northguild/gmt/intermodal — free
|
|
5
|
+
time and demurrage (freeTimeExpiry, chargeableDays, demurrageClock), billing
|
|
6
|
+
deadlines (billingTimeline), bill of lading dates and multimodalETA
|
|
7
|
+
(bolTimestamp), and EDI and event timestamps: UN/EDIFACT DTM, X12 date, time
|
|
8
|
+
and time code readers and writers (parseEdifact*, parseX12*,
|
|
9
|
+
parseX12DateAndTime, x12TimeCodeOffset), EPCIS events (parseEpcisEvent). Every
|
|
10
|
+
tariff term is the caller's. Reads the docs site (llms.txt) and the installed
|
|
11
|
+
package's JSDoc; a routing pointer.
|
|
12
|
+
sources:
|
|
13
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/industries/intermodal-bill-of-lading-and-eta.mdx'
|
|
14
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/industries/intermodal-billing-deadlines.mdx'
|
|
15
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/industries/intermodal-edi-timestamps.mdx'
|
|
16
|
+
- 'northguild/gmt:apps/dox/src/content/docs/guides/industries/intermodal-free-time-and-demurrage.mdx'
|
|
17
|
+
- 'northguild/gmt:packages/gmt/src/intermodal/calculate/index.ts'
|
|
18
|
+
- 'northguild/gmt:packages/gmt/src/intermodal/format/index.ts'
|
|
19
|
+
- 'northguild/gmt:packages/gmt/src/intermodal/parse/index.ts'
|
|
20
|
+
- 'northguild/gmt:packages/gmt/src/intermodal/validate/index.ts'
|
|
21
|
+
- 'northguild/gmt:packages/gmt/src/types/edi.ts'
|
|
22
|
+
- 'northguild/gmt:packages/gmt/src/types/epcis.ts'
|
|
23
|
+
- 'northguild/gmt:packages/gmt/src/types/two-digit-year.ts'
|
|
24
|
+
metadata:
|
|
25
|
+
type: core
|
|
26
|
+
library: '@northguild/gmt'
|
|
27
|
+
library_version: '1.20.0'
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
# GMT Intermodal
|
|
31
|
+
|
|
32
|
+
Use this skill when the task is container free time and demurrage, billing
|
|
33
|
+
deadlines, bill of lading dates, a multimodal ETA, or reading and writing EDI
|
|
34
|
+
and EPCIS timestamps. The time zone rules it builds on are in the
|
|
35
|
+
`gmt-timezone` skill; leg timing is in the `gmt-transport` skill.
|
|
36
|
+
|
|
37
|
+
## When to load
|
|
38
|
+
|
|
39
|
+
- The user is working out when a container's free time ends, how many days of
|
|
40
|
+
demurrage or detention are chargeable and for which dates, or which events a
|
|
41
|
+
charge's clock runs between.
|
|
42
|
+
- The user is reading or writing a UN/EDIFACT `DTM` value, an X12 date, time,
|
|
43
|
+
time code or date time period, or a GS1 EPCIS event time, and must know
|
|
44
|
+
whether its offset was stated.
|
|
45
|
+
|
|
46
|
+
## Core rules
|
|
47
|
+
|
|
48
|
+
1. **Free time is counted in the terminal's local days; the start day and the
|
|
49
|
+
basis are tariff terms, never defaults.**
|
|
50
|
+
`freeTimeExpiry(clockStart, freeDays, { basis, timeZone, firstDay, calendar? })`
|
|
51
|
+
returns `{ freeTimeStart, lastFreeDay, expiresAt }`: local dates in
|
|
52
|
+
`timeZone`, and the first instant of the day after the last free day.
|
|
53
|
+
`firstDay` (`"eventDay"` | `"nextDay"`) has no default because the two
|
|
54
|
+
differ by a day of charges; `basis: "working"` needs a `BusinessCalendar`
|
|
55
|
+
and returns `null` without one. `chargeableDays(clockStart, clockEnd,
|
|
56
|
+
freeDays, options)` also needs `chargeBasis` (no default): many tariffs
|
|
57
|
+
count both in calendar days; where a tariff grants free time in working
|
|
58
|
+
days the days after it are mostly charged as calendar days, and some
|
|
59
|
+
tariffs charge working days only. It counts the days on or after
|
|
60
|
+
`expiresAt` the half-open dwell touched, lists them as `chargedDates`, and
|
|
61
|
+
splits them into `tiers` bands; `freeDays: 0` is allowed there.
|
|
62
|
+
`demurrageClock(events, scope, { direction, startEvent? })` selects the
|
|
63
|
+
events per leg: import demurrage and storage run discharge (or
|
|
64
|
+
availability) to gate-out, detention gate-out to empty return; export
|
|
65
|
+
demurrage gate-in to loaded, detention empty release to gate-in; `combined`
|
|
66
|
+
runs both as one period. No standard fixes how these days are counted;
|
|
67
|
+
every term is the tariff's.
|
|
68
|
+
2. **Billing deadlines are dates counted from an anchor, and every window is
|
|
69
|
+
the caller's.** `billingTimeline({ anchorOn, invoiceIssuedOn?,
|
|
70
|
+
requestReceivedOn? }, { issueDays, disputeDays, resolutionDays,
|
|
71
|
+
agreedResolutionOn? })` returns `{ invoiceDeadline, issuedByDeadline,
|
|
72
|
+
disputeDeadline, requestedByDeadline, resolutionDeadline }`. Day zero is
|
|
73
|
+
the anchor and each deadline is `date + days` on the ISO calendar; a date
|
|
74
|
+
is by the deadline when it is on or before it. No window has a default (a
|
|
75
|
+
missing one returns `null`); fields whose input does not exist yet are
|
|
76
|
+
`null`, so an anchor alone is a forecast. The anchor is whatever date the
|
|
77
|
+
caller counts from: the last charged date
|
|
78
|
+
(`chargedDates.at(-1)`), or for a re-bill the issuance date of the invoice
|
|
79
|
+
received. Reduce an instant to the billing party's local date first with
|
|
80
|
+
`convertUtcToPlainDate(instant, { timeZone })`. A request before its
|
|
81
|
+
invoice, or an agreed date before the request, returns `null`. GMT
|
|
82
|
+
computes dates, not liability.
|
|
83
|
+
3. **A B/L date is a local date; a multimodal ETA keeps transit and dwell
|
|
84
|
+
apart.** `bolTimestamp(value, event, { timeZone })` returns the
|
|
85
|
+
`YYYY-MM-DD` date on the local clock in `timeZone` at the instant `value`:
|
|
86
|
+
DCSA Bill of Lading 3.0 types `issueDate`, `receivedForShipmentDate` and
|
|
87
|
+
`shippedOnBoardDate` as dates with no time or offset. `event` is
|
|
88
|
+
`"issue" | "received" | "shippedOnBoard"`, one per DCSA date field; all
|
|
89
|
+
three render the same way and anything else is `""`. `timeZone` is
|
|
90
|
+
required (no UTC default): the place of issue for `issue`, the loading
|
|
91
|
+
terminal for `received` and `shippedOnBoard`. 21:00 in New York
|
|
92
|
+
is 01:00Z the next day, so the UTC date is wrong. Only the instant is read;
|
|
93
|
+
a zoneless value is `""`. `multimodalETA(legs, { startTimeZone? })` takes
|
|
94
|
+
`scheduleDelivery`'s `Leg[]` and returns `{ eta, totalLegs, totalTransit,
|
|
95
|
+
totalDwell }`: transit is the legs' durations added up, dwell the time
|
|
96
|
+
actually spent at handoffs (a wait for a scheduled departure included; the
|
|
97
|
+
last leg's `dwellAfter` excluded), both with hours as the largest unit, and
|
|
98
|
+
they sum to the elapsed time. Every `scheduleDelivery` rule applies, so a
|
|
99
|
+
missed connection is `null`. An empty array is `{ eta: "", totalLegs: 0,
|
|
100
|
+
totalTransit: "PT0S", totalDwell: "PT0S" }`. Dwell is never estimated.
|
|
101
|
+
4. **An EDI timestamp is read by the function for its kind of value, and
|
|
102
|
+
nothing the code does not state is guessed.** Each kind has a `parse…`,
|
|
103
|
+
`format…` and `isValid…` function named for it (`parseEdifactDate`,
|
|
104
|
+
`formatEdifactDate`, `isValidEdifactDate`), and `format` is typed to that
|
|
105
|
+
kind's codes. UN/EDIFACT `DTM` (value 2380 against format code 2379):
|
|
106
|
+
`EdifactDate` (`102`), `EdifactTime` (`401`, `402`), `EdifactDateTime`
|
|
107
|
+
(`203`, `204`), `EdifactOffsetDateTime` (`205`, `208`, `303`, `304`),
|
|
108
|
+
`EdifactDatePeriod` (`718`), `EdifactDateTimePeriod` (`719`). X12 (element
|
|
109
|
+
1251 against qualifier 1250, in `DTP` and `DTM-05`/`06`): `X12Date` (`D8`,
|
|
110
|
+
`DB`), `X12Time` (`TM`, `TS`), `X12DateTime` (`DT`, `RTS`), `X12DateRange`
|
|
111
|
+
(`RD8`, `RD`), `X12DateTimeRange` (`RDT`, `DTS`). `parseX12Time(value)`
|
|
112
|
+
with no `format` reads element 337, tenths and hundredths included
|
|
113
|
+
(`"14300012"` is `"14:30:00.12"`), and `formatX12TimeElement(value, form)`
|
|
114
|
+
writes it in the mask named: `HHMM`, `HHMMSS`, `HHMMSSD` or `HHMMSSDD`
|
|
115
|
+
(`"14:30:00"` under `HHMMSSDD` is `"14300000"`). A parser returns one value:
|
|
116
|
+
`"2024-06-15"`, `"14:30:00"`, `"2024-06-15T14:30:00"`,
|
|
117
|
+
`"2024-06-15T14:30:00+02:00"` (the string `toOffsetInstant` reads), or
|
|
118
|
+
`{ start, end }` for a period or range. The sentinel is `""`, or `null`
|
|
119
|
+
for a period, a range, a zone or a classifier. A period formatter takes
|
|
120
|
+
`(start, end, format)`. No EDI function takes options. X12 freight is
|
|
121
|
+
three calls: `parseX12DateAndTime("20240615", "1430")` is
|
|
122
|
+
`"2024-06-15T14:30:00"` (elements 373 and 337 of `AT7`, `G62` or `DTM`,
|
|
123
|
+
both required), `x12TimeCodeOffset("20")` is `"-05:00"`, and
|
|
124
|
+
`resolveLocal(local, offset)` is `"2024-06-15T19:30:00Z"`. For a code
|
|
125
|
+
held as a plain string, `classifyEdifactDtmFormat`,
|
|
126
|
+
`classifyX12DateTimePeriodFormat` and `classifyX12TimeCode` return
|
|
127
|
+
`{ kind, format }` or `{ kind, timeCode }`, or `null` for a code no
|
|
128
|
+
function reads; testing `kind` narrows the code with no cast.
|
|
129
|
+
`parseEpcisEvent({ eventTime, eventTimeZoneOffset })` returns
|
|
130
|
+
`{ instant, offset, local }`; both fields are required and need not
|
|
131
|
+
agree. Five no-guess rules. (a) An offsetless value never becomes UTC:
|
|
132
|
+
`203`, `204`, `DT`, `RTS` and `parseX12DateAndTime` return a local
|
|
133
|
+
date-time; pass it and an IANA zone to `resolveLocal`. (b) A named X12
|
|
134
|
+
time code is a zone name, not an offset: `x12TimeCodeZone("ES")` is
|
|
135
|
+
`{ zone: "Eastern", daylight: false }` and `ET` has `daylight: null`,
|
|
136
|
+
while `x12TimeCodeOffset` reads `01`–`29`, `UT` and `GM`, and `13`–`24`
|
|
137
|
+
count down (`13` is `-12:00`). Each returns its sentinel for the other's
|
|
138
|
+
codes. (c) The `ZZZ` of `303` and `304` is an offset only: `+02`, `UTC`
|
|
139
|
+
and `GMT` are read, and letters such as `CET` return `""`. (d) A
|
|
140
|
+
two-digit year is not read by any EDI function: `101`, `201`, `202`,
|
|
141
|
+
`206`, `207`, `301`, `302`, `713`, `717`, `D6`, `TT`, `TR`, `RD6` and
|
|
142
|
+
`TU`. Read one with `parseDateWithPattern` or `parseDateTimeWithPattern`,
|
|
143
|
+
a `yy` pattern and `{ yearWindow }`: a start year such as `2000` (a fixed
|
|
144
|
+
window, for stored data) or `"rolling"` (50 years before the current UTC
|
|
145
|
+
year to 49 after). Without `yearWindow` a `yy` pattern returns `""`. (e)
|
|
146
|
+
`209`, `404`, `406`, `TC`, `EH`, `DDT`, `DTD`, `RTM` and `UN` are not
|
|
147
|
+
read: none states one date, time or date-time. A UN/EDIFACT period has no
|
|
148
|
+
hyphen (`2024061520240620` under `718`) and an X12 range has one
|
|
149
|
+
(`20240615-20240620` under `RD8`); a reversed one returns the sentinel.
|
|
150
|
+
Pass a UN/EDIFACT parser the unescaped value (`+02`, not `?+02`). A
|
|
151
|
+
formatter cuts seconds and fractions to its mask and never rounds.
|
|
152
|
+
It writes `ZZZ` as `±HH`, and `+05:30` under `303` or `304` returns `""`:
|
|
153
|
+
use `205` or `208`. Each value validator is true exactly when its parser
|
|
154
|
+
returns a value (`isValidX12DateAndTime(date, time)` for the freight
|
|
155
|
+
pair), and `isValidEdifactDtmFormat`, `isValidX12DateTimePeriodFormat`
|
|
156
|
+
and `isValidX12TimeCode` check a code alone. `isValidEpcisEvent` is
|
|
157
|
+
`isValidEpcisEventTime` and `isValidEpcisTimeZoneOffset` together: the
|
|
158
|
+
`epcisEventTime` regex matches `2024-02-30`, the validator does not.
|
|
159
|
+
5. **Read the docs site.** This skill is a routing pointer. The map of the
|
|
160
|
+
docs is `https://northguild.dev/gmt/llms.txt`, and each page
|
|
161
|
+
has a `.md` twin that holds its text. The JSDoc ships in the installed
|
|
162
|
+
package: `node_modules/@northguild/gmt/dist/**/*.d.ts`.
|
|
163
|
+
|
|
164
|
+
## Key functions
|
|
165
|
+
|
|
166
|
+
- **Free time and demurrage**: `freeTimeExpiry`, `chargeableDays`,
|
|
167
|
+
`demurrageClock`
|
|
168
|
+
- **Billing deadlines**: `billingTimeline`
|
|
169
|
+
- **Bill of lading dates and multimodal ETA**: `bolTimestamp`, `multimodalETA`
|
|
170
|
+
- **EDI and event timestamps**: `parseEdifactDate`, `parseEdifactTime`,
|
|
171
|
+
`parseEdifactDateTime`, `parseEdifactOffsetDateTime`,
|
|
172
|
+
`parseEdifactDatePeriod`, `parseEdifactDateTimePeriod`, `parseX12Date`,
|
|
173
|
+
`parseX12Time`, `parseX12DateTime`, `parseX12DateRange`,
|
|
174
|
+
`parseX12DateTimeRange`, `parseX12DateAndTime`, `x12TimeCodeOffset`,
|
|
175
|
+
`x12TimeCodeZone`, `classifyEdifactDtmFormat`,
|
|
176
|
+
`classifyX12DateTimePeriodFormat`, `classifyX12TimeCode`,
|
|
177
|
+
`parseEpcisEvent`; a `format…` and an `isValid…` for each `parseEdifact…`
|
|
178
|
+
kind, for `X12Date`, `X12Time`, `X12DateTime`, `X12DateRange` and
|
|
179
|
+
`X12DateTimeRange`, and for `EpcisEvent`; `formatX12TimeElement`,
|
|
180
|
+
`isValidX12DateAndTime`, `isValidEpcisEventTime`,
|
|
181
|
+
`isValidEpcisTimeZoneOffset`, `isValidEdifactDtmFormat`,
|
|
182
|
+
`isValidX12DateTimePeriodFormat`, `isValidX12TimeCode`
|
|
183
|
+
|
|
184
|
+
## References
|
|
185
|
+
|
|
186
|
+
- [intermodal reference](https://northguild.dev/gmt/reference/intermodal/)
|
|
187
|
+
- [Docs map for agents (llms.txt)](https://northguild.dev/gmt/llms.txt)
|
|
188
|
+
- [GMT Timezone skill](../gmt-timezone/SKILL.md)
|
|
189
|
+
- [GMT Transport skill](../gmt-transport/SKILL.md)
|