@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
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from "./bolTimestamp.js";
|
|
2
|
+
export * from "./formatEdifactDate.js";
|
|
3
|
+
export * from "./formatEdifactDatePeriod.js";
|
|
4
|
+
export * from "./formatEdifactDateTime.js";
|
|
5
|
+
export * from "./formatEdifactDateTimePeriod.js";
|
|
6
|
+
export * from "./formatEdifactOffsetDateTime.js";
|
|
7
|
+
export * from "./formatEdifactTime.js";
|
|
8
|
+
export * from "./formatEpcisEvent.js";
|
|
9
|
+
export * from "./formatX12Date.js";
|
|
10
|
+
export * from "./formatX12DateRange.js";
|
|
11
|
+
export * from "./formatX12DateTime.js";
|
|
12
|
+
export * from "./formatX12DateTimeRange.js";
|
|
13
|
+
export * from "./formatX12Time.js";
|
|
14
|
+
export * from "./formatX12TimeElement.js";
|
package/dist/intermodal/index.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
// Re-export
|
|
2
|
-
export
|
|
1
|
+
// Re-export `Temporal`, `Intl` and `toTemporalInstant` from the internal seam so every namespace subpath offers them
|
|
2
|
+
export { Intl, Temporal, toTemporalInstant } from "../internal/temporal.js";
|
|
3
3
|
export * from "./calculate/index.js";
|
|
4
|
+
export * from "./format/index.js";
|
|
5
|
+
export * from "./parse/index.js";
|
|
6
|
+
export * from "./validate/index.js";
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { EdifactDtmFormatClass } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Name the kind of value a UN/EDIFACT data element 2379 format code states, and return the code
|
|
4
|
+
* narrowed to that kind, so a code that arrives as data reaches the function that reads it.
|
|
5
|
+
*
|
|
6
|
+
* Each kind has its own parser, formatter and validator, and each takes only its own codes. A
|
|
7
|
+
* generic `DTM` reader holds the code as a plain string: it calls this function, tests `kind`,
|
|
8
|
+
* and passes `format` on. Testing `kind` narrows `format` to that kind's union, so the call
|
|
9
|
+
* needs no cast.
|
|
10
|
+
*
|
|
11
|
+
* ### Kinds
|
|
12
|
+
* | `kind` | Codes | Read by |
|
|
13
|
+
* |---|---|---|
|
|
14
|
+
* | `"date"` | `102` | `parseEdifactDate` |
|
|
15
|
+
* | `"time"` | `401`, `402` | `parseEdifactTime` |
|
|
16
|
+
* | `"dateTime"` | `203`, `204` | `parseEdifactDateTime` |
|
|
17
|
+
* | `"offsetDateTime"` | `205`, `208`, `303`, `304` | `parseEdifactOffsetDateTime` |
|
|
18
|
+
* | `"datePeriod"` | `718` | `parseEdifactDatePeriod` |
|
|
19
|
+
* | `"dateTimePeriod"` | `719` | `parseEdifactDateTimePeriod` |
|
|
20
|
+
*
|
|
21
|
+
* - **The narrowing pattern.** With `const classified = classifyEdifactDtmFormat(code)`, the
|
|
22
|
+
* line `if (classified?.kind === "date") parseEdifactDate(value, classified.format)` compiles
|
|
23
|
+
* with no cast: inside the test, `classified.format` is `EdifactDateFormat`.
|
|
24
|
+
* - Both members are always present, and each call returns a new object.
|
|
25
|
+
* - Returns `null` for every code no function reads: the two-digit-year codes (`101`, `201`,
|
|
26
|
+
* `202`, `206`, `207`, `301`, `302`, `713`, `717`), `209`, `404`, `406` and every other 2379
|
|
27
|
+
* code.
|
|
28
|
+
* - Matching is exact: `" 203"`, `"0203"` and the number `203` are not codes.
|
|
29
|
+
* - Returns a result exactly when `isValidEdifactDtmFormat` is true.
|
|
30
|
+
*
|
|
31
|
+
* @param format The data element 2379 format code, as it arrives (e.g. "203")
|
|
32
|
+
* @returns `{ kind, format }`, or null on invalid input
|
|
33
|
+
*
|
|
34
|
+
* @example classifyEdifactDtmFormat("102") // { kind: "date", format: "102" }
|
|
35
|
+
* @example classifyEdifactDtmFormat("401") // { kind: "time", format: "401" }
|
|
36
|
+
* @example classifyEdifactDtmFormat("402") // { kind: "time", format: "402" }
|
|
37
|
+
* @example classifyEdifactDtmFormat("203") // { kind: "dateTime", format: "203" }
|
|
38
|
+
* @example classifyEdifactDtmFormat("204") // { kind: "dateTime", format: "204" }
|
|
39
|
+
* @example classifyEdifactDtmFormat("205") // { kind: "offsetDateTime", format: "205" }
|
|
40
|
+
* @example classifyEdifactDtmFormat("208") // { kind: "offsetDateTime", format: "208" }
|
|
41
|
+
* @example classifyEdifactDtmFormat("303") // { kind: "offsetDateTime", format: "303" }
|
|
42
|
+
* @example classifyEdifactDtmFormat("304") // { kind: "offsetDateTime", format: "304" }
|
|
43
|
+
* @example classifyEdifactDtmFormat("718") // { kind: "datePeriod", format: "718" }
|
|
44
|
+
* @example classifyEdifactDtmFormat("719") // { kind: "dateTimePeriod", format: "719" }
|
|
45
|
+
* @example classifyEdifactDtmFormat("101") // null (a two-digit year is not read)
|
|
46
|
+
* @example classifyEdifactDtmFormat("602") // null (not a supported code)
|
|
47
|
+
*/
|
|
48
|
+
export declare function classifyEdifactDtmFormat(format: string): EdifactDtmFormatClass | null;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ediCodeOf } from "../../internal/ediGrammar.js";
|
|
2
|
+
/**
|
|
3
|
+
* Name the kind of value a UN/EDIFACT data element 2379 format code states, and return the code
|
|
4
|
+
* narrowed to that kind, so a code that arrives as data reaches the function that reads it.
|
|
5
|
+
*
|
|
6
|
+
* Each kind has its own parser, formatter and validator, and each takes only its own codes. A
|
|
7
|
+
* generic `DTM` reader holds the code as a plain string: it calls this function, tests `kind`,
|
|
8
|
+
* and passes `format` on. Testing `kind` narrows `format` to that kind's union, so the call
|
|
9
|
+
* needs no cast.
|
|
10
|
+
*
|
|
11
|
+
* ### Kinds
|
|
12
|
+
* | `kind` | Codes | Read by |
|
|
13
|
+
* |---|---|---|
|
|
14
|
+
* | `"date"` | `102` | `parseEdifactDate` |
|
|
15
|
+
* | `"time"` | `401`, `402` | `parseEdifactTime` |
|
|
16
|
+
* | `"dateTime"` | `203`, `204` | `parseEdifactDateTime` |
|
|
17
|
+
* | `"offsetDateTime"` | `205`, `208`, `303`, `304` | `parseEdifactOffsetDateTime` |
|
|
18
|
+
* | `"datePeriod"` | `718` | `parseEdifactDatePeriod` |
|
|
19
|
+
* | `"dateTimePeriod"` | `719` | `parseEdifactDateTimePeriod` |
|
|
20
|
+
*
|
|
21
|
+
* - **The narrowing pattern.** With `const classified = classifyEdifactDtmFormat(code)`, the
|
|
22
|
+
* line `if (classified?.kind === "date") parseEdifactDate(value, classified.format)` compiles
|
|
23
|
+
* with no cast: inside the test, `classified.format` is `EdifactDateFormat`.
|
|
24
|
+
* - Both members are always present, and each call returns a new object.
|
|
25
|
+
* - Returns `null` for every code no function reads: the two-digit-year codes (`101`, `201`,
|
|
26
|
+
* `202`, `206`, `207`, `301`, `302`, `713`, `717`), `209`, `404`, `406` and every other 2379
|
|
27
|
+
* code.
|
|
28
|
+
* - Matching is exact: `" 203"`, `"0203"` and the number `203` are not codes.
|
|
29
|
+
* - Returns a result exactly when `isValidEdifactDtmFormat` is true.
|
|
30
|
+
*
|
|
31
|
+
* @param format The data element 2379 format code, as it arrives (e.g. "203")
|
|
32
|
+
* @returns `{ kind, format }`, or null on invalid input
|
|
33
|
+
*
|
|
34
|
+
* @example classifyEdifactDtmFormat("102") // { kind: "date", format: "102" }
|
|
35
|
+
* @example classifyEdifactDtmFormat("401") // { kind: "time", format: "401" }
|
|
36
|
+
* @example classifyEdifactDtmFormat("402") // { kind: "time", format: "402" }
|
|
37
|
+
* @example classifyEdifactDtmFormat("203") // { kind: "dateTime", format: "203" }
|
|
38
|
+
* @example classifyEdifactDtmFormat("204") // { kind: "dateTime", format: "204" }
|
|
39
|
+
* @example classifyEdifactDtmFormat("205") // { kind: "offsetDateTime", format: "205" }
|
|
40
|
+
* @example classifyEdifactDtmFormat("208") // { kind: "offsetDateTime", format: "208" }
|
|
41
|
+
* @example classifyEdifactDtmFormat("303") // { kind: "offsetDateTime", format: "303" }
|
|
42
|
+
* @example classifyEdifactDtmFormat("304") // { kind: "offsetDateTime", format: "304" }
|
|
43
|
+
* @example classifyEdifactDtmFormat("718") // { kind: "datePeriod", format: "718" }
|
|
44
|
+
* @example classifyEdifactDtmFormat("719") // { kind: "dateTimePeriod", format: "719" }
|
|
45
|
+
* @example classifyEdifactDtmFormat("101") // null (a two-digit year is not read)
|
|
46
|
+
* @example classifyEdifactDtmFormat("602") // null (not a supported code)
|
|
47
|
+
*/
|
|
48
|
+
export function classifyEdifactDtmFormat(format) {
|
|
49
|
+
const entry = ediCodeOf("edifact", format);
|
|
50
|
+
// The layout table is typed kind by kind from the format unions, so the kind an entry carries
|
|
51
|
+
// is the kind of the union its code belongs to.
|
|
52
|
+
return entry === null
|
|
53
|
+
? null
|
|
54
|
+
: { kind: entry.kind, format };
|
|
55
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { X12DateTimePeriodFormatClass } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Name the kind of value an X12 data element 1250 format qualifier states, and return the code
|
|
4
|
+
* narrowed to that kind, so a code that arrives as data reaches the function that reads it.
|
|
5
|
+
*
|
|
6
|
+
* Each kind has its own parser, formatter and validator, and each takes only its own codes. A
|
|
7
|
+
* generic `DTP` reader holds `DTP-02` as a plain string: it calls this function, tests `kind`,
|
|
8
|
+
* and passes `format` on. Testing `kind` narrows `format` to that kind's union, so the call
|
|
9
|
+
* needs no cast. Codes are release 005010, read from
|
|
10
|
+
* [Stedi's X12-licensed dictionary](https://www.stedi.com/edi/x12-005010/element/1250); the X12
|
|
11
|
+
* text itself was not reached.
|
|
12
|
+
*
|
|
13
|
+
* ### Kinds
|
|
14
|
+
* | `kind` | Codes | Read by |
|
|
15
|
+
* |---|---|---|
|
|
16
|
+
* | `"date"` | `D8`, `DB` | `parseX12Date` |
|
|
17
|
+
* | `"time"` | `TM`, `TS` | `parseX12Time(value, format)` |
|
|
18
|
+
* | `"dateTime"` | `DT`, `RTS` | `parseX12DateTime` |
|
|
19
|
+
* | `"dateRange"` | `RD8`, `RD` | `parseX12DateRange` |
|
|
20
|
+
* | `"dateTimeRange"` | `RDT`, `DTS` | `parseX12DateTimeRange` |
|
|
21
|
+
*
|
|
22
|
+
* - **The narrowing pattern.** With `const classified = classifyX12DateTimePeriodFormat(code)`,
|
|
23
|
+
* the line `if (classified?.kind === "date") parseX12Date(value, classified.format)` compiles
|
|
24
|
+
* with no cast: inside the test, `classified.format` is `X12DateFormat`.
|
|
25
|
+
* - Both members are always present, and each call returns a new object.
|
|
26
|
+
* - `RTS` is one date-time despite its `R`, and `DTS` is a range despite having none.
|
|
27
|
+
* - Returns `null` for every code no function reads: the two-digit-year codes (`D6`, `TT`, `TR`,
|
|
28
|
+
* `RD6`, `TU`), `TC`, `EH`, `DDT`, `DTD`, `RTM`, `UN` and every other 1250 code.
|
|
29
|
+
* - This is a format qualifier, not a time code: `TS` here is the format `HHMMSS`. Classify a
|
|
30
|
+
* data element 623 time code with `classifyX12TimeCode`.
|
|
31
|
+
* - Matching is exact: `"d8"` and `" D8"` are not codes.
|
|
32
|
+
* - Returns a result exactly when `isValidX12DateTimePeriodFormat` is true.
|
|
33
|
+
*
|
|
34
|
+
* @param format X12 data element 1250 format qualifier, as it arrives (e.g. "D8")
|
|
35
|
+
* @returns `{ kind, format }`, or null on invalid input
|
|
36
|
+
*
|
|
37
|
+
* @example classifyX12DateTimePeriodFormat("D8") // { kind: "date", format: "D8" }
|
|
38
|
+
* @example classifyX12DateTimePeriodFormat("DB") // { kind: "date", format: "DB" }
|
|
39
|
+
* @example classifyX12DateTimePeriodFormat("TM") // { kind: "time", format: "TM" }
|
|
40
|
+
* @example classifyX12DateTimePeriodFormat("TS") // { kind: "time", format: "TS" }
|
|
41
|
+
* @example classifyX12DateTimePeriodFormat("DT") // { kind: "dateTime", format: "DT" }
|
|
42
|
+
* @example classifyX12DateTimePeriodFormat("RTS") // { kind: "dateTime", format: "RTS" }
|
|
43
|
+
* @example classifyX12DateTimePeriodFormat("RD8") // { kind: "dateRange", format: "RD8" }
|
|
44
|
+
* @example classifyX12DateTimePeriodFormat("RD") // { kind: "dateRange", format: "RD" }
|
|
45
|
+
* @example classifyX12DateTimePeriodFormat("RDT") // { kind: "dateTimeRange", format: "RDT" }
|
|
46
|
+
* @example classifyX12DateTimePeriodFormat("DTS") // { kind: "dateTimeRange", format: "DTS" }
|
|
47
|
+
* @example classifyX12DateTimePeriodFormat("D6") // null (a two-digit year is not read)
|
|
48
|
+
* @example classifyX12DateTimePeriodFormat("UN") // null (unstructured: nothing to read)
|
|
49
|
+
*/
|
|
50
|
+
export declare function classifyX12DateTimePeriodFormat(format: string): X12DateTimePeriodFormatClass | null;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ediCodeOf } from "../../internal/ediGrammar.js";
|
|
2
|
+
/**
|
|
3
|
+
* Name the kind of value an X12 data element 1250 format qualifier states, and return the code
|
|
4
|
+
* narrowed to that kind, so a code that arrives as data reaches the function that reads it.
|
|
5
|
+
*
|
|
6
|
+
* Each kind has its own parser, formatter and validator, and each takes only its own codes. A
|
|
7
|
+
* generic `DTP` reader holds `DTP-02` as a plain string: it calls this function, tests `kind`,
|
|
8
|
+
* and passes `format` on. Testing `kind` narrows `format` to that kind's union, so the call
|
|
9
|
+
* needs no cast. Codes are release 005010, read from
|
|
10
|
+
* [Stedi's X12-licensed dictionary](https://www.stedi.com/edi/x12-005010/element/1250); the X12
|
|
11
|
+
* text itself was not reached.
|
|
12
|
+
*
|
|
13
|
+
* ### Kinds
|
|
14
|
+
* | `kind` | Codes | Read by |
|
|
15
|
+
* |---|---|---|
|
|
16
|
+
* | `"date"` | `D8`, `DB` | `parseX12Date` |
|
|
17
|
+
* | `"time"` | `TM`, `TS` | `parseX12Time(value, format)` |
|
|
18
|
+
* | `"dateTime"` | `DT`, `RTS` | `parseX12DateTime` |
|
|
19
|
+
* | `"dateRange"` | `RD8`, `RD` | `parseX12DateRange` |
|
|
20
|
+
* | `"dateTimeRange"` | `RDT`, `DTS` | `parseX12DateTimeRange` |
|
|
21
|
+
*
|
|
22
|
+
* - **The narrowing pattern.** With `const classified = classifyX12DateTimePeriodFormat(code)`,
|
|
23
|
+
* the line `if (classified?.kind === "date") parseX12Date(value, classified.format)` compiles
|
|
24
|
+
* with no cast: inside the test, `classified.format` is `X12DateFormat`.
|
|
25
|
+
* - Both members are always present, and each call returns a new object.
|
|
26
|
+
* - `RTS` is one date-time despite its `R`, and `DTS` is a range despite having none.
|
|
27
|
+
* - Returns `null` for every code no function reads: the two-digit-year codes (`D6`, `TT`, `TR`,
|
|
28
|
+
* `RD6`, `TU`), `TC`, `EH`, `DDT`, `DTD`, `RTM`, `UN` and every other 1250 code.
|
|
29
|
+
* - This is a format qualifier, not a time code: `TS` here is the format `HHMMSS`. Classify a
|
|
30
|
+
* data element 623 time code with `classifyX12TimeCode`.
|
|
31
|
+
* - Matching is exact: `"d8"` and `" D8"` are not codes.
|
|
32
|
+
* - Returns a result exactly when `isValidX12DateTimePeriodFormat` is true.
|
|
33
|
+
*
|
|
34
|
+
* @param format X12 data element 1250 format qualifier, as it arrives (e.g. "D8")
|
|
35
|
+
* @returns `{ kind, format }`, or null on invalid input
|
|
36
|
+
*
|
|
37
|
+
* @example classifyX12DateTimePeriodFormat("D8") // { kind: "date", format: "D8" }
|
|
38
|
+
* @example classifyX12DateTimePeriodFormat("DB") // { kind: "date", format: "DB" }
|
|
39
|
+
* @example classifyX12DateTimePeriodFormat("TM") // { kind: "time", format: "TM" }
|
|
40
|
+
* @example classifyX12DateTimePeriodFormat("TS") // { kind: "time", format: "TS" }
|
|
41
|
+
* @example classifyX12DateTimePeriodFormat("DT") // { kind: "dateTime", format: "DT" }
|
|
42
|
+
* @example classifyX12DateTimePeriodFormat("RTS") // { kind: "dateTime", format: "RTS" }
|
|
43
|
+
* @example classifyX12DateTimePeriodFormat("RD8") // { kind: "dateRange", format: "RD8" }
|
|
44
|
+
* @example classifyX12DateTimePeriodFormat("RD") // { kind: "dateRange", format: "RD" }
|
|
45
|
+
* @example classifyX12DateTimePeriodFormat("RDT") // { kind: "dateTimeRange", format: "RDT" }
|
|
46
|
+
* @example classifyX12DateTimePeriodFormat("DTS") // { kind: "dateTimeRange", format: "DTS" }
|
|
47
|
+
* @example classifyX12DateTimePeriodFormat("D6") // null (a two-digit year is not read)
|
|
48
|
+
* @example classifyX12DateTimePeriodFormat("UN") // null (unstructured: nothing to read)
|
|
49
|
+
*/
|
|
50
|
+
export function classifyX12DateTimePeriodFormat(format) {
|
|
51
|
+
const entry = ediCodeOf("x12", format);
|
|
52
|
+
// The layout table is typed kind by kind from the format unions, so the kind an entry carries
|
|
53
|
+
// is the kind of the union its code belongs to.
|
|
54
|
+
return entry === null
|
|
55
|
+
? null
|
|
56
|
+
: { kind: entry.kind, format };
|
|
57
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { X12TimeCodeClass } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Say whether an X12 time code (data element 623) states an offset or names a zone, and return
|
|
4
|
+
* the code narrowed to the function that reads it.
|
|
5
|
+
*
|
|
6
|
+
* Data element 623 is the code beside the date and time of an X12 `AT7`, `G62` or `DTM`
|
|
7
|
+
* segment. 31 of its 56 codes state an offset from UTC and 25 name a zone, and each group has
|
|
8
|
+
* its own reader. A segment reader holds the code as a plain string: it calls this function,
|
|
9
|
+
* tests `kind`, and passes `timeCode` on. Testing `kind` narrows `timeCode` to that reader's
|
|
10
|
+
* union, so the call needs no cast. Codes are release 008010, read from
|
|
11
|
+
* [Stedi's X12-licensed dictionary](https://www.stedi.com/edi/x12-008010/element/623); the X12
|
|
12
|
+
* text itself was not reached.
|
|
13
|
+
*
|
|
14
|
+
* ### Kinds
|
|
15
|
+
* | `kind` | Codes | Read by |
|
|
16
|
+
* |---|---|---|
|
|
17
|
+
* | `"offset"` | `01`–`29`, `UT`, `GM` | `x12TimeCodeOffset` |
|
|
18
|
+
* | `"zone"` | `AD`, `AS`, `AT`, `CD`, `CS`, `CT`, `ED`, `ES`, `ET`, `HD`, `HS`, `HT`, `MD`, `MS`, `MT`, `ND`, `NS`, `NT`, `PD`, `PS`, `PT`, `TD`, `TS`, `TT`, `LT` | `x12TimeCodeZone` |
|
|
19
|
+
*
|
|
20
|
+
* - **The narrowing pattern.** With `const classified = classifyX12TimeCode(code)`, the line
|
|
21
|
+
* `if (classified?.kind === "offset") x12TimeCodeOffset(classified.timeCode)` compiles with
|
|
22
|
+
* no cast: inside the test, `classified.timeCode` is `X12OffsetTimeCode`. The `"zone"` branch
|
|
23
|
+
* passes `classified.timeCode` to `x12TimeCodeZone` the same way.
|
|
24
|
+
* - Both members are always present, and each call returns a new object.
|
|
25
|
+
* - `GM` ("Greenwich Mean Time") is an offset code: GMT reads it as `+00:00`, as
|
|
26
|
+
* `x12TimeCodeOffset` explains.
|
|
27
|
+
* - `25`–`29` were added in release 006010. The function takes no release, so it reads them.
|
|
28
|
+
* - This is a time code, not a format qualifier: `TS` here is Atlantic Standard Time. Classify
|
|
29
|
+
* a data element 1250 code with `classifyX12DateTimePeriodFormat`.
|
|
30
|
+
* - Matching is exact: two characters, upper case, no padding.
|
|
31
|
+
* - Returns `null` for a code that is not one of the 56 and for a non-string. It returns a
|
|
32
|
+
* result exactly when `isValidX12TimeCode` is true.
|
|
33
|
+
*
|
|
34
|
+
* @param timeCode X12 data element 623 time code, as it arrives (e.g. "20")
|
|
35
|
+
* @returns `{ kind, timeCode }`, or null on invalid input
|
|
36
|
+
*
|
|
37
|
+
* @example classifyX12TimeCode("20") // { kind: "offset", timeCode: "20" }
|
|
38
|
+
* @example classifyX12TimeCode("UT") // { kind: "offset", timeCode: "UT" }
|
|
39
|
+
* @example classifyX12TimeCode("GM") // { kind: "offset", timeCode: "GM" }
|
|
40
|
+
* @example classifyX12TimeCode("ES") // { kind: "zone", timeCode: "ES" }
|
|
41
|
+
* @example classifyX12TimeCode("ET") // { kind: "zone", timeCode: "ET" }
|
|
42
|
+
* @example classifyX12TimeCode("LT") // { kind: "zone", timeCode: "LT" }
|
|
43
|
+
* @example classifyX12TimeCode("EST") // null (not a 623 code)
|
|
44
|
+
* @example classifyX12TimeCode("et") // null (matching is exact)
|
|
45
|
+
*/
|
|
46
|
+
export declare function classifyX12TimeCode(timeCode: string): X12TimeCodeClass | null;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { x12TimeCodeOffset } from "./x12TimeCodeOffset.js";
|
|
2
|
+
import { x12TimeCodeZone } from "./x12TimeCodeZone.js";
|
|
3
|
+
/**
|
|
4
|
+
* Say whether an X12 time code (data element 623) states an offset or names a zone, and return
|
|
5
|
+
* the code narrowed to the function that reads it.
|
|
6
|
+
*
|
|
7
|
+
* Data element 623 is the code beside the date and time of an X12 `AT7`, `G62` or `DTM`
|
|
8
|
+
* segment. 31 of its 56 codes state an offset from UTC and 25 name a zone, and each group has
|
|
9
|
+
* its own reader. A segment reader holds the code as a plain string: it calls this function,
|
|
10
|
+
* tests `kind`, and passes `timeCode` on. Testing `kind` narrows `timeCode` to that reader's
|
|
11
|
+
* union, so the call needs no cast. Codes are release 008010, read from
|
|
12
|
+
* [Stedi's X12-licensed dictionary](https://www.stedi.com/edi/x12-008010/element/623); the X12
|
|
13
|
+
* text itself was not reached.
|
|
14
|
+
*
|
|
15
|
+
* ### Kinds
|
|
16
|
+
* | `kind` | Codes | Read by |
|
|
17
|
+
* |---|---|---|
|
|
18
|
+
* | `"offset"` | `01`–`29`, `UT`, `GM` | `x12TimeCodeOffset` |
|
|
19
|
+
* | `"zone"` | `AD`, `AS`, `AT`, `CD`, `CS`, `CT`, `ED`, `ES`, `ET`, `HD`, `HS`, `HT`, `MD`, `MS`, `MT`, `ND`, `NS`, `NT`, `PD`, `PS`, `PT`, `TD`, `TS`, `TT`, `LT` | `x12TimeCodeZone` |
|
|
20
|
+
*
|
|
21
|
+
* - **The narrowing pattern.** With `const classified = classifyX12TimeCode(code)`, the line
|
|
22
|
+
* `if (classified?.kind === "offset") x12TimeCodeOffset(classified.timeCode)` compiles with
|
|
23
|
+
* no cast: inside the test, `classified.timeCode` is `X12OffsetTimeCode`. The `"zone"` branch
|
|
24
|
+
* passes `classified.timeCode` to `x12TimeCodeZone` the same way.
|
|
25
|
+
* - Both members are always present, and each call returns a new object.
|
|
26
|
+
* - `GM` ("Greenwich Mean Time") is an offset code: GMT reads it as `+00:00`, as
|
|
27
|
+
* `x12TimeCodeOffset` explains.
|
|
28
|
+
* - `25`–`29` were added in release 006010. The function takes no release, so it reads them.
|
|
29
|
+
* - This is a time code, not a format qualifier: `TS` here is Atlantic Standard Time. Classify
|
|
30
|
+
* a data element 1250 code with `classifyX12DateTimePeriodFormat`.
|
|
31
|
+
* - Matching is exact: two characters, upper case, no padding.
|
|
32
|
+
* - Returns `null` for a code that is not one of the 56 and for a non-string. It returns a
|
|
33
|
+
* result exactly when `isValidX12TimeCode` is true.
|
|
34
|
+
*
|
|
35
|
+
* @param timeCode X12 data element 623 time code, as it arrives (e.g. "20")
|
|
36
|
+
* @returns `{ kind, timeCode }`, or null on invalid input
|
|
37
|
+
*
|
|
38
|
+
* @example classifyX12TimeCode("20") // { kind: "offset", timeCode: "20" }
|
|
39
|
+
* @example classifyX12TimeCode("UT") // { kind: "offset", timeCode: "UT" }
|
|
40
|
+
* @example classifyX12TimeCode("GM") // { kind: "offset", timeCode: "GM" }
|
|
41
|
+
* @example classifyX12TimeCode("ES") // { kind: "zone", timeCode: "ES" }
|
|
42
|
+
* @example classifyX12TimeCode("ET") // { kind: "zone", timeCode: "ET" }
|
|
43
|
+
* @example classifyX12TimeCode("LT") // { kind: "zone", timeCode: "LT" }
|
|
44
|
+
* @example classifyX12TimeCode("EST") // null (not a 623 code)
|
|
45
|
+
* @example classifyX12TimeCode("et") // null (matching is exact)
|
|
46
|
+
*/
|
|
47
|
+
export function classifyX12TimeCode(timeCode) {
|
|
48
|
+
// Each reader owns the list of its codes and returns its sentinel for any other value, so a
|
|
49
|
+
// code is an offset code exactly when the offset reader reads it.
|
|
50
|
+
if (x12TimeCodeOffset(timeCode) !== "") {
|
|
51
|
+
return { kind: "offset", timeCode: timeCode };
|
|
52
|
+
}
|
|
53
|
+
if (x12TimeCodeZone(timeCode) !== null) {
|
|
54
|
+
return { kind: "zone", timeCode: timeCode };
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * from "./classifyEdifactDtmFormat.js";
|
|
2
|
+
export * from "./classifyX12DateTimePeriodFormat.js";
|
|
3
|
+
export * from "./classifyX12TimeCode.js";
|
|
4
|
+
export * from "./parseEdifactDate.js";
|
|
5
|
+
export * from "./parseEdifactDatePeriod.js";
|
|
6
|
+
export * from "./parseEdifactDateTime.js";
|
|
7
|
+
export * from "./parseEdifactDateTimePeriod.js";
|
|
8
|
+
export * from "./parseEdifactOffsetDateTime.js";
|
|
9
|
+
export * from "./parseEdifactTime.js";
|
|
10
|
+
export * from "./parseEpcisEvent.js";
|
|
11
|
+
export * from "./parseX12Date.js";
|
|
12
|
+
export * from "./parseX12DateAndTime.js";
|
|
13
|
+
export * from "./parseX12DateRange.js";
|
|
14
|
+
export * from "./parseX12DateTime.js";
|
|
15
|
+
export * from "./parseX12DateTimeRange.js";
|
|
16
|
+
export * from "./parseX12Time.js";
|
|
17
|
+
export * from "./x12TimeCodeOffset.js";
|
|
18
|
+
export * from "./x12TimeCodeZone.js";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * from "./classifyEdifactDtmFormat.js";
|
|
2
|
+
export * from "./classifyX12DateTimePeriodFormat.js";
|
|
3
|
+
export * from "./classifyX12TimeCode.js";
|
|
4
|
+
export * from "./parseEdifactDate.js";
|
|
5
|
+
export * from "./parseEdifactDatePeriod.js";
|
|
6
|
+
export * from "./parseEdifactDateTime.js";
|
|
7
|
+
export * from "./parseEdifactDateTimePeriod.js";
|
|
8
|
+
export * from "./parseEdifactOffsetDateTime.js";
|
|
9
|
+
export * from "./parseEdifactTime.js";
|
|
10
|
+
export * from "./parseEpcisEvent.js";
|
|
11
|
+
export * from "./parseX12Date.js";
|
|
12
|
+
export * from "./parseX12DateAndTime.js";
|
|
13
|
+
export * from "./parseX12DateRange.js";
|
|
14
|
+
export * from "./parseX12DateTime.js";
|
|
15
|
+
export * from "./parseX12DateTimeRange.js";
|
|
16
|
+
export * from "./parseX12Time.js";
|
|
17
|
+
export * from "./x12TimeCodeOffset.js";
|
|
18
|
+
export * from "./x12TimeCodeZone.js";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { EdifactDateFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse a UN/EDIFACT `DTM` value that states a calendar date, as an ISO 8601 date.
|
|
4
|
+
*
|
|
5
|
+
* A `DTM` segment carries its value in data element **2380** and, in data element **2379**, the
|
|
6
|
+
* format code that says how to read it. This function reads the code whose value is a date. The
|
|
7
|
+
* mask and description are the UNTDID directory's, read from
|
|
8
|
+
* [UNECE's D.21B page as archived](http://web.archive.org/web/20240303123657/https://service.unece.org/trade/untdid/d21b/tred/tred2379.htm).
|
|
9
|
+
*
|
|
10
|
+
* ### Format code
|
|
11
|
+
* | Code | Mask | The directory's description |
|
|
12
|
+
* |---|---|---|
|
|
13
|
+
* | `102` | `CCYYMMDD` | "Calendar date: C = Century ; Y = Year ; M = Month ; D = Day." |
|
|
14
|
+
*
|
|
15
|
+
* - The value must be the eight digits of the mask and nothing else: a hyphen, a space or a
|
|
16
|
+
* ninth digit returns `""`.
|
|
17
|
+
* - Fields are checked, not clamped: month 13, 31 June and 29 February 2023 return `""`.
|
|
18
|
+
* - The year is the four digits as written, `0000` to `9999`.
|
|
19
|
+
* - A two-digit year (`101`, `YYMMDD`) is not read: UN/EDIFACT does not say which century it
|
|
20
|
+
* belongs to. Read one with
|
|
21
|
+
* `parseDateWithPattern("240615", "yyMMdd", undefined, { yearWindow: 2000 })`.
|
|
22
|
+
* - Returns `""` for any other code, a code of another kind included (`203` is read by
|
|
23
|
+
* `parseEdifactDateTime`); `classifyEdifactDtmFormat` names the kind of a code. Returns `""`
|
|
24
|
+
* for a non-string argument.
|
|
25
|
+
*
|
|
26
|
+
* @param value The data element 2380 value (e.g. "20240615")
|
|
27
|
+
* @param format The data element 2379 format code
|
|
28
|
+
* @returns the date as `YYYY-MM-DD`, or "" on invalid input
|
|
29
|
+
*
|
|
30
|
+
* @example parseEdifactDate("20240615", "102") // "2024-06-15"
|
|
31
|
+
* @example parseEdifactDate("20240229", "102") // "2024-02-29"
|
|
32
|
+
* @example parseEdifactDate("20230229", "102") // "" (2023 has no 29 February)
|
|
33
|
+
* @example parseEdifactDate("2024-06-15", "102") // "" (the value is the digits of the mask)
|
|
34
|
+
* @example parseEdifactDate("240615", "102") // "" (a two-digit year is not read)
|
|
35
|
+
* @example parseEdifactDate("202406151430", "203") // "" (a date-time code: use parseEdifactDateTime)
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseEdifactDate(value: string, format: EdifactDateFormat): string;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { readEdiValue } from "../../internal/ediDateTimeFields.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse a UN/EDIFACT `DTM` value that states a calendar date, as an ISO 8601 date.
|
|
4
|
+
*
|
|
5
|
+
* A `DTM` segment carries its value in data element **2380** and, in data element **2379**, the
|
|
6
|
+
* format code that says how to read it. This function reads the code whose value is a date. The
|
|
7
|
+
* mask and description are the UNTDID directory's, read from
|
|
8
|
+
* [UNECE's D.21B page as archived](http://web.archive.org/web/20240303123657/https://service.unece.org/trade/untdid/d21b/tred/tred2379.htm).
|
|
9
|
+
*
|
|
10
|
+
* ### Format code
|
|
11
|
+
* | Code | Mask | The directory's description |
|
|
12
|
+
* |---|---|---|
|
|
13
|
+
* | `102` | `CCYYMMDD` | "Calendar date: C = Century ; Y = Year ; M = Month ; D = Day." |
|
|
14
|
+
*
|
|
15
|
+
* - The value must be the eight digits of the mask and nothing else: a hyphen, a space or a
|
|
16
|
+
* ninth digit returns `""`.
|
|
17
|
+
* - Fields are checked, not clamped: month 13, 31 June and 29 February 2023 return `""`.
|
|
18
|
+
* - The year is the four digits as written, `0000` to `9999`.
|
|
19
|
+
* - A two-digit year (`101`, `YYMMDD`) is not read: UN/EDIFACT does not say which century it
|
|
20
|
+
* belongs to. Read one with
|
|
21
|
+
* `parseDateWithPattern("240615", "yyMMdd", undefined, { yearWindow: 2000 })`.
|
|
22
|
+
* - Returns `""` for any other code, a code of another kind included (`203` is read by
|
|
23
|
+
* `parseEdifactDateTime`); `classifyEdifactDtmFormat` names the kind of a code. Returns `""`
|
|
24
|
+
* for a non-string argument.
|
|
25
|
+
*
|
|
26
|
+
* @param value The data element 2380 value (e.g. "20240615")
|
|
27
|
+
* @param format The data element 2379 format code
|
|
28
|
+
* @returns the date as `YYYY-MM-DD`, or "" on invalid input
|
|
29
|
+
*
|
|
30
|
+
* @example parseEdifactDate("20240615", "102") // "2024-06-15"
|
|
31
|
+
* @example parseEdifactDate("20240229", "102") // "2024-02-29"
|
|
32
|
+
* @example parseEdifactDate("20230229", "102") // "" (2023 has no 29 February)
|
|
33
|
+
* @example parseEdifactDate("2024-06-15", "102") // "" (the value is the digits of the mask)
|
|
34
|
+
* @example parseEdifactDate("240615", "102") // "" (a two-digit year is not read)
|
|
35
|
+
* @example parseEdifactDate("202406151430", "203") // "" (a date-time code: use parseEdifactDateTime)
|
|
36
|
+
*/
|
|
37
|
+
export function parseEdifactDate(value, format) {
|
|
38
|
+
try {
|
|
39
|
+
return readEdiValue("edifact", "date", format, value);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Never throws (Core Rule 3): a hostile argument is invalid input, not an exception.
|
|
43
|
+
return "";
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { EdiDatePeriod, EdifactDatePeriodFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse a UN/EDIFACT `DTM` value that states a period between two calendar dates, as its start
|
|
4
|
+
* and end.
|
|
5
|
+
*
|
|
6
|
+
* A `DTM` segment carries its value in data element **2380** and, in data element **2379**, the
|
|
7
|
+
* format code that says how to read it. The mask and description are the UNTDID directory's,
|
|
8
|
+
* read from
|
|
9
|
+
* [UNECE's D.21B page as archived](http://web.archive.org/web/20240303123657/https://service.unece.org/trade/untdid/d21b/tred/tred2379.htm).
|
|
10
|
+
*
|
|
11
|
+
* ### Format code
|
|
12
|
+
* | Code | Mask | The directory's description |
|
|
13
|
+
* |---|---|---|
|
|
14
|
+
* | `718` | `CCYYMMDD-CCYYMMDD` | "A period of time specified by giving the start date followed by the end date (both including century). Data is to be transmitted as consecutive characters without hyphen." |
|
|
15
|
+
*
|
|
16
|
+
* - **A period is transmitted without a hyphen, and a hyphen is rejected.** Every directory
|
|
17
|
+
* read (twelve, from D.93A to D.22B) says so; the hyphen in the mask is notation.
|
|
18
|
+
* `"2024061520240620"` reads and `"20240615-20240620"` returns `null`.
|
|
19
|
+
* - **`start` and `end` are the two dates as transmitted**, each `YYYY-MM-DD`. The directory
|
|
20
|
+
* does not say whether the end date is inside the period: that is the message's to define, so
|
|
21
|
+
* no day is added or removed. Pass the pair to the plain interval functions as `(start, end)`,
|
|
22
|
+
* for example `intervalLengthDate(period.start, period.end, "days")`; they leave `end`
|
|
23
|
+
* outside the interval.
|
|
24
|
+
* - **An end before its start returns `null`**: a reversed period names no span of time. An end
|
|
25
|
+
* equal to its start is a valid period.
|
|
26
|
+
* - Fields are checked, not clamped: month 13, 31 June and 29 February 2023 return `null`.
|
|
27
|
+
* - A two-digit year (`717`, `YYMMDD-YYMMDD`) is not read. Split such a value in two and read
|
|
28
|
+
* each half with `parseDateWithPattern`, a `yy` pattern and its `yearWindow` option.
|
|
29
|
+
* - Returns `null` for any other code, a code of another kind included (`719` is read by
|
|
30
|
+
* `parseEdifactDateTimePeriod`), and for a non-string argument.
|
|
31
|
+
*
|
|
32
|
+
* @param value The data element 2380 value (e.g. "2024061520240620")
|
|
33
|
+
* @param format The data element 2379 format code
|
|
34
|
+
* @returns `{ start, end }`, two ISO 8601 dates, or null on invalid input
|
|
35
|
+
*
|
|
36
|
+
* @example parseEdifactDatePeriod("2024061520240620", "718") // { start: "2024-06-15", end: "2024-06-20" }
|
|
37
|
+
* @example parseEdifactDatePeriod("2024061520240615", "718") // { start: "2024-06-15", end: "2024-06-15" }
|
|
38
|
+
* @example parseEdifactDatePeriod("20240615-20240620", "718") // null (a period is transmitted without a hyphen)
|
|
39
|
+
* @example parseEdifactDatePeriod("2024062020240615", "718") // null (the end precedes the start)
|
|
40
|
+
* @example parseEdifactDatePeriod("2023022920240620", "718") // null (2023 has no 29 February)
|
|
41
|
+
* @example parseEdifactDatePeriod("20240615", "102") // null (a date code: use parseEdifactDate)
|
|
42
|
+
*/
|
|
43
|
+
export declare function parseEdifactDatePeriod(value: string, format: EdifactDatePeriodFormat): EdiDatePeriod | null;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { readEdiRange } from "../../internal/ediDateTimeFields.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse a UN/EDIFACT `DTM` value that states a period between two calendar dates, as its start
|
|
4
|
+
* and end.
|
|
5
|
+
*
|
|
6
|
+
* A `DTM` segment carries its value in data element **2380** and, in data element **2379**, the
|
|
7
|
+
* format code that says how to read it. The mask and description are the UNTDID directory's,
|
|
8
|
+
* read from
|
|
9
|
+
* [UNECE's D.21B page as archived](http://web.archive.org/web/20240303123657/https://service.unece.org/trade/untdid/d21b/tred/tred2379.htm).
|
|
10
|
+
*
|
|
11
|
+
* ### Format code
|
|
12
|
+
* | Code | Mask | The directory's description |
|
|
13
|
+
* |---|---|---|
|
|
14
|
+
* | `718` | `CCYYMMDD-CCYYMMDD` | "A period of time specified by giving the start date followed by the end date (both including century). Data is to be transmitted as consecutive characters without hyphen." |
|
|
15
|
+
*
|
|
16
|
+
* - **A period is transmitted without a hyphen, and a hyphen is rejected.** Every directory
|
|
17
|
+
* read (twelve, from D.93A to D.22B) says so; the hyphen in the mask is notation.
|
|
18
|
+
* `"2024061520240620"` reads and `"20240615-20240620"` returns `null`.
|
|
19
|
+
* - **`start` and `end` are the two dates as transmitted**, each `YYYY-MM-DD`. The directory
|
|
20
|
+
* does not say whether the end date is inside the period: that is the message's to define, so
|
|
21
|
+
* no day is added or removed. Pass the pair to the plain interval functions as `(start, end)`,
|
|
22
|
+
* for example `intervalLengthDate(period.start, period.end, "days")`; they leave `end`
|
|
23
|
+
* outside the interval.
|
|
24
|
+
* - **An end before its start returns `null`**: a reversed period names no span of time. An end
|
|
25
|
+
* equal to its start is a valid period.
|
|
26
|
+
* - Fields are checked, not clamped: month 13, 31 June and 29 February 2023 return `null`.
|
|
27
|
+
* - A two-digit year (`717`, `YYMMDD-YYMMDD`) is not read. Split such a value in two and read
|
|
28
|
+
* each half with `parseDateWithPattern`, a `yy` pattern and its `yearWindow` option.
|
|
29
|
+
* - Returns `null` for any other code, a code of another kind included (`719` is read by
|
|
30
|
+
* `parseEdifactDateTimePeriod`), and for a non-string argument.
|
|
31
|
+
*
|
|
32
|
+
* @param value The data element 2380 value (e.g. "2024061520240620")
|
|
33
|
+
* @param format The data element 2379 format code
|
|
34
|
+
* @returns `{ start, end }`, two ISO 8601 dates, or null on invalid input
|
|
35
|
+
*
|
|
36
|
+
* @example parseEdifactDatePeriod("2024061520240620", "718") // { start: "2024-06-15", end: "2024-06-20" }
|
|
37
|
+
* @example parseEdifactDatePeriod("2024061520240615", "718") // { start: "2024-06-15", end: "2024-06-15" }
|
|
38
|
+
* @example parseEdifactDatePeriod("20240615-20240620", "718") // null (a period is transmitted without a hyphen)
|
|
39
|
+
* @example parseEdifactDatePeriod("2024062020240615", "718") // null (the end precedes the start)
|
|
40
|
+
* @example parseEdifactDatePeriod("2023022920240620", "718") // null (2023 has no 29 February)
|
|
41
|
+
* @example parseEdifactDatePeriod("20240615", "102") // null (a date code: use parseEdifactDate)
|
|
42
|
+
*/
|
|
43
|
+
export function parseEdifactDatePeriod(value, format) {
|
|
44
|
+
try {
|
|
45
|
+
return readEdiRange("edifact", "datePeriod", format, value);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Never throws (Core Rule 3): a hostile argument is invalid input, not an exception.
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { EdifactDateTimeFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse a UN/EDIFACT `DTM` value that states a date and a time with no offset, as an ISO 8601
|
|
4
|
+
* local date-time.
|
|
5
|
+
*
|
|
6
|
+
* A `DTM` segment carries its value in data element **2380** and, in data element **2379**, the
|
|
7
|
+
* format code that says how to read it. This function reads the codes whose value is a wall
|
|
8
|
+
* clock at a place the value does not name. Masks and descriptions are the UNTDID directory's,
|
|
9
|
+
* read from
|
|
10
|
+
* [UNECE's D.21B page as archived](http://web.archive.org/web/20240303123657/https://service.unece.org/trade/untdid/d21b/tred/tred2379.htm).
|
|
11
|
+
*
|
|
12
|
+
* ### Format codes
|
|
13
|
+
* | Code | Mask | The directory's description |
|
|
14
|
+
* |---|---|---|
|
|
15
|
+
* | `203` | `CCYYMMDDHHMM` | "Calendar date including time with minutes" |
|
|
16
|
+
* | `204` | `CCYYMMDDHHMMSS` | "Calendar date including time with seconds" |
|
|
17
|
+
*
|
|
18
|
+
* - **The result is local, never UTC.** It carries no `Z` and no offset: reading a `203` value
|
|
19
|
+
* as UTC is the most common EDI timestamp bug. Pass the result and the place's IANA zone to
|
|
20
|
+
* `resolveLocal` to get the instant.
|
|
21
|
+
* - The value must be the digits of its code's mask: `"202406151430"` is a `203` value and not
|
|
22
|
+
* a `204` one.
|
|
23
|
+
* - Seconds are always written in the result, `00` for `203`.
|
|
24
|
+
* - Fields are checked, not clamped: hour 24, second 60, 31 June and 29 February 2023 return
|
|
25
|
+
* `""`.
|
|
26
|
+
* - A two-digit year (`201`, `202`) is not read: UN/EDIFACT does not say which century it
|
|
27
|
+
* belongs to. Read one with
|
|
28
|
+
* `parseDateTimeWithPattern("2406151430", "yyMMddHHmm", undefined, { yearWindow: 2000 })`.
|
|
29
|
+
* - Returns `""` for any other code, a code of another kind included (`205` is read by
|
|
30
|
+
* `parseEdifactOffsetDateTime`), and for a non-string argument.
|
|
31
|
+
*
|
|
32
|
+
* @param value The data element 2380 value (e.g. "202406151430")
|
|
33
|
+
* @param format The data element 2379 format code
|
|
34
|
+
* @returns the local date-time as `YYYY-MM-DDTHH:MM:SS`, or "" on invalid input
|
|
35
|
+
*
|
|
36
|
+
* @example parseEdifactDateTime("202406151430", "203") // "2024-06-15T14:30:00"
|
|
37
|
+
* @example parseEdifactDateTime("20240615143045", "204") // "2024-06-15T14:30:45"
|
|
38
|
+
* @example parseEdifactDateTime("202406151430", "204") // "" (twelve digits is a 203 value)
|
|
39
|
+
* @example parseEdifactDateTime("202302291430", "203") // "" (2023 has no 29 February)
|
|
40
|
+
* @example parseEdifactDateTime("202406152430", "203") // "" (hour 24)
|
|
41
|
+
* @example parseEdifactDateTime("202406151430+0200", "205") // "" (an offset code: use parseEdifactOffsetDateTime)
|
|
42
|
+
*/
|
|
43
|
+
export declare function parseEdifactDateTime(value: string, format: EdifactDateTimeFormat): string;
|