@northguild/gmt 1.17.0 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -2480
- package/dist/calendar/calculate/bucketRange.d.ts +12 -4
- package/dist/calendar/calculate/bucketRange.js +20 -63
- package/dist/calendar/calculate/floorToZone.d.ts +14 -4
- package/dist/calendar/calculate/floorToZone.js +18 -9
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +21 -8
- package/dist/calendar/calculate/getFiscalPeriod.js +9 -8
- package/dist/calendar/calculate/getIsoWeekDate.d.ts +10 -5
- package/dist/calendar/calculate/getIsoWeekDate.js +1 -5
- package/dist/calendar/calculate/getOrdinalDate.d.ts +10 -3
- package/dist/calendar/calculate/getOrdinalDate.js +2 -3
- package/dist/calendar/calculate/getQuarter.d.ts +21 -9
- package/dist/calendar/calculate/getQuarter.js +8 -12
- package/dist/calendar/hours/addOperatingTime.d.ts +59 -0
- package/dist/calendar/hours/addOperatingTime.js +65 -0
- package/dist/calendar/hours/index.d.ts +7 -0
- package/dist/calendar/hours/index.js +7 -0
- package/dist/calendar/hours/isOpenAt.d.ts +45 -0
- package/dist/calendar/hours/isOpenAt.js +50 -0
- package/dist/calendar/hours/nextCloseAt.d.ts +55 -0
- package/dist/calendar/hours/nextCloseAt.js +57 -0
- package/dist/calendar/hours/nextOpenAt.d.ts +51 -0
- package/dist/calendar/hours/nextOpenAt.js +53 -0
- package/dist/calendar/hours/operatingIntervals.d.ts +48 -0
- package/dist/calendar/hours/operatingIntervals.js +57 -0
- package/dist/calendar/hours/operatingTimeBetween.d.ts +45 -0
- package/dist/calendar/hours/operatingTimeBetween.js +54 -0
- package/dist/calendar/hours/recurringWindows.d.ts +68 -0
- package/dist/calendar/hours/recurringWindows.js +88 -0
- package/dist/calendar/index.d.ts +1 -0
- package/dist/calendar/index.js +1 -0
- package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
- package/dist/duration/calculate/durationFromUnits.js +67 -0
- package/dist/duration/calculate/getDurationUnit.d.ts +2 -2
- package/dist/duration/calculate/getDurationUnit.js +2 -2
- package/dist/duration/calculate/index.d.ts +3 -1
- package/dist/duration/calculate/index.js +3 -1
- package/dist/duration/calculate/negateDuration.d.ts +1 -1
- package/dist/duration/calculate/negateDuration.js +1 -1
- package/dist/duration/calculate/totalDuration.d.ts +73 -0
- package/dist/duration/calculate/{durationAs.js → totalDuration.js} +29 -27
- package/dist/duration/calculate/totalUnits.d.ts +49 -0
- package/dist/duration/calculate/totalUnits.js +73 -0
- package/dist/duration/compare/compareDurations.d.ts +13 -7
- package/dist/duration/compare/compareDurations.js +4 -7
- package/dist/duration/format/formatDuration.d.ts +16 -4
- package/dist/duration/format/formatDuration.js +4 -5
- package/dist/duration/normalize/normalizeDuration.d.ts +39 -14
- package/dist/duration/normalize/normalizeDuration.js +6 -15
- package/dist/duration/parse/parseDuration.d.ts +21 -3
- package/dist/duration/parse/parseDuration.js +1 -3
- package/dist/duty/calculate/dutyDayFor.d.ts +38 -0
- package/dist/duty/calculate/dutyDayFor.js +71 -0
- package/dist/duty/calculate/dutyTotals.d.ts +24 -0
- package/dist/duty/calculate/dutyTotals.js +41 -0
- package/dist/duty/calculate/dutyViolations.d.ts +74 -0
- package/dist/duty/calculate/dutyViolations.js +65 -0
- package/dist/duty/calculate/evaluateDutyLog.d.ts +77 -0
- package/dist/duty/calculate/evaluateDutyLog.js +75 -0
- package/dist/duty/calculate/index.d.ts +7 -0
- package/dist/duty/calculate/index.js +7 -0
- package/dist/duty/calculate/longestRun.d.ts +28 -0
- package/dist/duty/calculate/longestRun.js +54 -0
- package/dist/duty/calculate/qualifyingRestPairs.d.ts +37 -0
- package/dist/duty/calculate/qualifyingRestPairs.js +58 -0
- package/dist/duty/calculate/qualifyingRests.d.ts +27 -0
- package/dist/duty/calculate/qualifyingRests.js +49 -0
- package/dist/duty/index.d.ts +3 -0
- package/dist/duty/index.js +4 -0
- package/dist/duty/validate/index.d.ts +1 -0
- package/dist/duty/validate/index.js +1 -0
- package/dist/duty/validate/isValidDutyLog.d.ts +24 -0
- package/dist/duty/validate/isValidDutyLog.js +34 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/instant/convert/classifyLocal.d.ts +5 -1
- package/dist/instant/convert/classifyLocal.js +16 -6
- package/dist/instant/convert/fromOffsetInstant.d.ts +7 -1
- package/dist/instant/convert/fromOffsetInstant.js +9 -2
- package/dist/instant/convert/resolveLocal.d.ts +18 -8
- package/dist/instant/convert/resolveLocal.js +21 -17
- package/dist/instant/convert/toOffsetInstant.d.ts +33 -16
- package/dist/instant/convert/toOffsetInstant.js +28 -13
- package/dist/instant/index.d.ts +1 -0
- package/dist/instant/index.js +1 -0
- package/dist/instant/validate/index.d.ts +1 -0
- package/dist/instant/validate/index.js +1 -0
- package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
- package/dist/instant/validate/isValidUtcOffset.js +35 -0
- package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
- package/dist/intermodal/calculate/billingTimeline.js +2 -2
- package/dist/intermodal/calculate/chargeableDays.d.ts +19 -11
- package/dist/intermodal/calculate/chargeableDays.js +13 -10
- package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
- package/dist/intermodal/calculate/demurrageClock.js +7 -7
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +12 -4
- package/dist/intermodal/calculate/freeTimeExpiry.js +19 -8
- package/dist/intermodal/calculate/index.d.ts +1 -0
- package/dist/intermodal/calculate/index.js +1 -0
- package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
- package/dist/intermodal/calculate/multimodalETA.js +145 -0
- package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
- package/dist/intermodal/format/bolTimestamp.js +78 -0
- package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
- package/dist/intermodal/format/formatEdifactDate.js +42 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
- package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
- package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
- package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactTime.js +43 -0
- package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
- package/dist/intermodal/format/formatEpcisEvent.js +79 -0
- package/dist/intermodal/format/formatX12Date.d.ts +35 -0
- package/dist/intermodal/format/formatX12Date.js +43 -0
- package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
- package/dist/intermodal/format/formatX12DateRange.js +45 -0
- package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
- package/dist/intermodal/format/formatX12DateTime.js +47 -0
- package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
- package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
- package/dist/intermodal/format/formatX12Time.d.ts +42 -0
- package/dist/intermodal/format/formatX12Time.js +50 -0
- package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
- package/dist/intermodal/format/formatX12TimeElement.js +54 -0
- package/dist/intermodal/format/index.d.ts +14 -0
- package/dist/intermodal/format/index.js +14 -0
- package/dist/intermodal/index.d.ts +3 -0
- package/dist/intermodal/index.js +3 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
- package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
- package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
- package/dist/intermodal/parse/index.d.ts +18 -0
- package/dist/intermodal/parse/index.js +18 -0
- package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactDate.js +45 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
- package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactTime.js +45 -0
- package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
- package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
- package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
- package/dist/intermodal/parse/parseX12Date.js +47 -0
- package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
- package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
- package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
- package/dist/intermodal/parse/parseX12DateRange.js +52 -0
- package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
- package/dist/intermodal/parse/parseX12DateTime.js +53 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
- package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
- package/dist/intermodal/parse/parseX12Time.js +77 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
- package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
- package/dist/intermodal/validate/index.d.ts +18 -0
- package/dist/intermodal/validate/index.js +18 -0
- package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
- package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
- package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
- package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
- package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
- package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
- package/dist/intermodal/validate/isValidX12Date.js +30 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
- package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
- package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
- package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
- package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12Time.js +40 -0
- package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
- package/dist/internal/businessCalendar.d.ts +5 -0
- package/dist/internal/businessCalendar.js +9 -10
- package/dist/internal/cycleFieldValue.d.ts +6 -4
- package/dist/internal/cycleFieldValue.js +6 -4
- package/dist/internal/daylightTime.d.ts +33 -0
- package/dist/internal/daylightTime.js +164 -0
- package/dist/internal/durationUntilString.js +4 -3
- package/dist/internal/dutyEngine.d.ts +125 -0
- package/dist/internal/dutyEngine.js +1746 -0
- package/dist/internal/dutyLog.d.ts +27 -0
- package/dist/internal/dutyLog.js +47 -0
- package/dist/internal/dutyPeriods.d.ts +135 -0
- package/dist/internal/dutyPeriods.js +369 -0
- package/dist/internal/dutyRules.d.ts +197 -0
- package/dist/internal/dutyRules.js +484 -0
- package/dist/internal/ediDateTimeFields.d.ts +97 -0
- package/dist/internal/ediDateTimeFields.js +288 -0
- package/dist/internal/ediDateTimeWriter.d.ts +92 -0
- package/dist/internal/ediDateTimeWriter.js +298 -0
- package/dist/internal/ediGrammar.d.ts +158 -0
- package/dist/internal/ediGrammar.js +384 -0
- package/dist/internal/englishCalendarNames.d.ts +3 -1
- package/dist/internal/englishCalendarNames.js +4 -3
- package/dist/internal/epochNanoseconds.d.ts +2 -0
- package/dist/internal/epochNanoseconds.js +2 -0
- package/dist/internal/exactDuration.d.ts +37 -0
- package/dist/internal/exactDuration.js +64 -0
- package/dist/internal/exactMoment.d.ts +72 -0
- package/dist/internal/exactMoment.js +114 -0
- package/dist/internal/fiscalCalendar.d.ts +4 -3
- package/dist/internal/fiscalCalendar.js +4 -3
- package/dist/internal/formatCalendarDays.d.ts +2 -2
- package/dist/internal/formatRelativeDuration.d.ts +21 -1
- package/dist/internal/formatRelativeDuration.js +47 -7
- package/dist/internal/freeTimeLedger.d.ts +5 -0
- package/dist/internal/freeTimeLedger.js +11 -2
- package/dist/internal/index.d.ts +12 -4
- package/dist/internal/index.js +16 -4
- package/dist/internal/instantFormatOptions.js +2 -1
- package/dist/internal/instantNanoseconds.d.ts +75 -9
- package/dist/internal/instantNanoseconds.js +192 -11
- package/dist/internal/intervalNanoseconds.js +2 -1
- package/dist/internal/isObject.d.ts +13 -6
- package/dist/internal/isObject.js +14 -7
- package/dist/internal/isoYearString.d.ts +21 -0
- package/dist/internal/isoYearString.js +27 -0
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/maxPieces.js +2 -1
- package/dist/internal/monthGridWeekRow.d.ts +2 -1
- package/dist/internal/monthGridWeekRow.js +2 -1
- package/dist/internal/normalizeTimeZone.d.ts +5 -2
- package/dist/internal/normalizeTimeZone.js +5 -2
- package/dist/internal/operatingSchedule.d.ts +138 -0
- package/dist/internal/operatingSchedule.js +756 -0
- package/dist/internal/optionOrDefault.d.ts +18 -0
- package/dist/internal/optionOrDefault.js +20 -0
- package/dist/internal/patternToken.d.ts +12 -5
- package/dist/internal/patternToken.js +59 -25
- package/dist/internal/plainDateUntil.js +10 -6
- package/dist/internal/punctuality.d.ts +38 -0
- package/dist/internal/punctuality.js +59 -0
- package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
- package/dist/internal/readDateTimeFormatOptions.js +93 -0
- package/dist/internal/readDurationUnits.d.ts +34 -0
- package/dist/internal/readDurationUnits.js +78 -0
- package/dist/internal/readSetFields.d.ts +50 -0
- package/dist/internal/readSetFields.js +179 -0
- package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
- package/dist/internal/resolveDurationRelativeTo.js +11 -1
- package/dist/internal/resolveRelativeRounding.d.ts +17 -6
- package/dist/internal/resolveRelativeRounding.js +27 -7
- package/dist/internal/resolveRelativeUnit.d.ts +30 -0
- package/dist/internal/resolveRelativeUnit.js +40 -0
- package/dist/internal/resolveUnixIntervalPair.d.ts +8 -2
- package/dist/internal/resolveUnixIntervalPair.js +11 -7
- package/dist/internal/splitStep.d.ts +24 -1
- package/dist/internal/splitStep.js +34 -2
- package/dist/internal/startOrEndOfUnix.d.ts +2 -1
- package/dist/internal/startOrEndOfUnix.js +9 -6
- package/dist/internal/startOrEndOfZoned.js +2 -3
- package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
- package/dist/internal/temporalCompat/capabilities.js +35 -3
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/repros.d.ts +1 -1
- package/dist/internal/temporalCompat/repros.js +157 -0
- package/dist/internal/timestampEvents.d.ts +32 -0
- package/dist/internal/timestampEvents.js +76 -0
- package/dist/internal/twoDigitYear.d.ts +19 -0
- package/dist/internal/twoDigitYear.js +22 -0
- package/dist/internal/unixEpochValue.js +3 -2
- package/dist/internal/unixWallClock.d.ts +24 -0
- package/dist/internal/unixWallClock.js +35 -0
- package/dist/internal/utcWallClock.d.ts +20 -0
- package/dist/internal/utcWallClock.js +32 -0
- package/dist/internal/yearWindowStart.d.ts +28 -0
- package/dist/internal/yearWindowStart.js +52 -0
- package/dist/internal/zoneBucketCap.d.ts +18 -0
- package/dist/internal/zoneBucketCap.js +64 -0
- package/dist/internal/zoneFrame.d.ts +180 -0
- package/dist/internal/zoneFrame.js +221 -0
- package/dist/internal/zonedBucket.js +8 -6
- package/dist/internal/zonedLocalDates.js +1 -1
- package/dist/internal/zonedNowUnitValue.d.ts +7 -4
- package/dist/internal/zonedNowUnitValue.js +8 -4
- package/dist/internal/zonedTransitionSearch.d.ts +27 -0
- package/dist/internal/zonedTransitionSearch.js +218 -0
- package/dist/internal/zonedWallClock.d.ts +21 -7
- package/dist/internal/zonedWallClock.js +87 -18
- package/dist/internal/zonedWallClockDifference.js +4 -4
- package/dist/internal/zonedWallClockOperations.d.ts +31 -15
- package/dist/internal/zonedWallClockOperations.js +93 -43
- package/dist/interval/validate/isValidInterval.d.ts +6 -3
- package/dist/interval/validate/isValidInterval.js +6 -3
- package/dist/plain/calculate/addDate.d.ts +11 -8
- package/dist/plain/calculate/addDate.js +9 -15
- package/dist/plain/calculate/addDateTime.d.ts +7 -4
- package/dist/plain/calculate/addDateTime.js +5 -11
- package/dist/plain/calculate/addTime.js +4 -7
- package/dist/plain/calculate/cycleDate.d.ts +16 -7
- package/dist/plain/calculate/cycleDate.js +3 -7
- package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
- package/dist/plain/calculate/cycleDateTime.js +1 -4
- package/dist/plain/calculate/cycleTime.d.ts +10 -5
- package/dist/plain/calculate/cycleTime.js +3 -5
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDate.js +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.js +1 -1
- package/dist/plain/calculate/diffDateTime.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.js +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
- package/dist/plain/calculate/diffTime.d.ts +1 -1
- package/dist/plain/calculate/diffTime.js +1 -1
- package/dist/plain/calculate/endOfDate.d.ts +8 -3
- package/dist/plain/calculate/endOfDate.js +1 -3
- package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
- package/dist/plain/calculate/endOfDateTime.js +1 -5
- package/dist/plain/calculate/endOfTime.d.ts +9 -3
- package/dist/plain/calculate/endOfTime.js +1 -2
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
- package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
- package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
- package/dist/plain/calculate/getWeekOfMonth.js +7 -4
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
- package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
- package/dist/plain/calculate/getWeeksInMonth.js +5 -2
- package/dist/plain/calculate/nextWeekday.d.ts +7 -3
- package/dist/plain/calculate/nextWeekday.js +1 -3
- package/dist/plain/calculate/previousWeekday.d.ts +7 -3
- package/dist/plain/calculate/previousWeekday.js +1 -3
- package/dist/plain/calculate/roundDate.d.ts +20 -7
- package/dist/plain/calculate/roundDate.js +3 -10
- package/dist/plain/calculate/roundDateTime.d.ts +22 -8
- package/dist/plain/calculate/roundDateTime.js +3 -11
- package/dist/plain/calculate/roundTime.d.ts +20 -4
- package/dist/plain/calculate/roundTime.js +3 -7
- package/dist/plain/calculate/setDate.d.ts +27 -8
- package/dist/plain/calculate/setDate.js +28 -12
- package/dist/plain/calculate/setDateTime.d.ts +23 -8
- package/dist/plain/calculate/setDateTime.js +23 -12
- package/dist/plain/calculate/setTime.d.ts +23 -7
- package/dist/plain/calculate/setTime.js +25 -12
- package/dist/plain/calculate/startOfDate.d.ts +8 -2
- package/dist/plain/calculate/startOfDate.js +1 -2
- package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
- package/dist/plain/calculate/startOfDateTime.js +1 -2
- package/dist/plain/calculate/startOfTime.d.ts +9 -2
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractDate.d.ts +7 -4
- package/dist/plain/calculate/subtractDate.js +5 -11
- package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
- package/dist/plain/calculate/subtractDateTime.js +5 -11
- package/dist/plain/calculate/subtractTime.js +4 -7
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
- package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
- package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
- package/dist/plain/compare/areDatesEqualBy.js +8 -6
- package/dist/plain/compare/isBetweenDate.d.ts +13 -2
- package/dist/plain/compare/isBetweenDate.js +4 -4
- package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenDateTime.js +4 -4
- package/dist/plain/compare/isBetweenTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenTime.js +4 -4
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +1 -1
- package/dist/plain/compare/isThisUnit.js +1 -1
- package/dist/plain/format/formatCalendar.d.ts +21 -14
- package/dist/plain/format/formatCalendar.js +23 -17
- package/dist/plain/format/formatDate.js +5 -3
- package/dist/plain/format/formatDateRange.js +4 -2
- package/dist/plain/format/formatDateTime.js +4 -2
- package/dist/plain/format/formatDateTimeRange.js +4 -2
- package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
- package/dist/plain/format/formatDateTimeToParts.js +10 -6
- package/dist/plain/format/formatDateToParts.d.ts +13 -2
- package/dist/plain/format/formatDateToParts.js +8 -4
- package/dist/plain/format/formatRelativeDate.d.ts +16 -3
- package/dist/plain/format/formatRelativeDate.js +28 -16
- package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeDateTime.js +10 -6
- package/dist/plain/format/formatRelativeTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeTime.js +23 -14
- package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
- package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +7 -7
- package/dist/plain/format/formatTime.js +4 -2
- package/dist/plain/format/index.d.ts +1 -1
- package/dist/plain/format/index.js +1 -1
- package/dist/plain/get/getNowUnit.d.ts +2 -0
- package/dist/plain/get/getNowUnit.js +2 -0
- package/dist/plain/get/getYear.d.ts +2 -0
- package/dist/plain/get/getYear.js +4 -3
- package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
- package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDate.js +1 -3
- package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
- package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
- package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDate.js +2 -0
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
- package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtTime.js +2 -0
- package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
- package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.js +2 -2
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDateTime.js +2 -2
- package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllTime.js +2 -2
- package/dist/plain/interval/intervalXorDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.js +2 -2
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDateTime.js +2 -2
- package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsTime.js +2 -2
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
- package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
- package/dist/plain/map/mapDatesInRange.d.ts +8 -4
- package/dist/plain/map/mapDatesInRange.js +1 -4
- package/dist/plain/parse/index.d.ts +1 -1
- package/dist/plain/parse/index.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +25 -9
- package/dist/plain/parse/parseDateTimeWithPattern.js +29 -11
- package/dist/plain/parse/parseDateWithPattern.d.ts +26 -9
- package/dist/plain/parse/parseDateWithPattern.js +30 -11
- package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
- package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +8 -8
- package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseTimeWithPattern.js +11 -7
- package/dist/plain/parse/parseUnitFromDate.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDate.js +8 -4
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +8 -4
- package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDate.js +2 -6
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
- package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
- package/dist/plain/parse/parseYearFromDate.js +7 -3
- package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
- package/dist/plain/parse/parseYearFromDateTime.js +6 -3
- package/dist/plain/validate/index.d.ts +1 -0
- package/dist/plain/validate/index.js +1 -0
- package/dist/plain/validate/isValidDateRange.d.ts +19 -4
- package/dist/plain/validate/isValidDateRange.js +1 -4
- package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidDateTimeRange.js +2 -5
- package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
- package/dist/plain/validate/isValidSqlDateTime.js +36 -0
- package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidTimeRange.js +2 -5
- package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
- package/dist/precision/convert/fromExcelSerial.js +4 -5
- package/dist/precision/convert/fromNanoseconds.d.ts +9 -3
- package/dist/precision/convert/fromNanoseconds.js +9 -3
- package/dist/precision/convert/toExcelSerial.d.ts +9 -3
- package/dist/precision/convert/toExcelSerial.js +3 -4
- package/dist/precision/convert/toNanoseconds.d.ts +11 -6
- package/dist/precision/convert/toNanoseconds.js +11 -6
- package/dist/precision/validate/isValidInstant.d.ts +12 -3
- package/dist/precision/validate/isValidInstant.js +12 -3
- package/dist/regex/epcis.d.ts +60 -0
- package/dist/regex/epcis.js +60 -0
- package/dist/regex/http-date.d.ts +6 -4
- package/dist/regex/http-date.js +6 -4
- package/dist/regex/index.d.ts +1 -0
- package/dist/regex/index.js +1 -0
- package/dist/regex/rfc-2822.d.ts +2 -0
- package/dist/regex/rfc-2822.js +2 -0
- package/dist/regex/rfc-3339.d.ts +3 -1
- package/dist/regex/rfc-3339.js +3 -1
- package/dist/regex/sql-date-time.d.ts +2 -1
- package/dist/regex/sql-date-time.js +2 -1
- package/dist/regex/time-zone-like.d.ts +3 -2
- package/dist/regex/time-zone-like.js +3 -2
- package/dist/regex/utc-offset.d.ts +2 -1
- package/dist/regex/utc-offset.js +2 -1
- package/dist/span/calculate/spanMs.d.ts +10 -4
- package/dist/span/calculate/spanMs.js +10 -4
- package/dist/span/calculate/spanNs.d.ts +10 -4
- package/dist/span/calculate/spanNs.js +10 -4
- package/dist/span/validate/isValidSpan.d.ts +8 -3
- package/dist/span/validate/isValidSpan.js +8 -3
- package/dist/transport/calculate/bestAvailable.d.ts +47 -0
- package/dist/transport/calculate/bestAvailable.js +76 -0
- package/dist/transport/calculate/crossingTime.d.ts +63 -0
- package/dist/transport/calculate/crossingTime.js +81 -0
- package/dist/transport/calculate/cutoffAt.d.ts +95 -0
- package/dist/transport/calculate/cutoffAt.js +211 -0
- package/dist/transport/calculate/cutoffSchedule.d.ts +75 -0
- package/dist/transport/calculate/cutoffSchedule.js +73 -0
- package/dist/transport/calculate/dwellTime.d.ts +22 -8
- package/dist/transport/calculate/dwellTime.js +18 -9
- package/dist/transport/calculate/estimateDrift.d.ts +65 -0
- package/dist/transport/calculate/estimateDrift.js +75 -0
- package/dist/transport/calculate/index.d.ts +8 -0
- package/dist/transport/calculate/index.js +8 -0
- package/dist/transport/calculate/nextDeparture.d.ts +78 -0
- package/dist/transport/calculate/nextDeparture.js +131 -0
- package/dist/transport/calculate/punctualityRate.d.ts +42 -0
- package/dist/transport/calculate/punctualityRate.js +59 -0
- package/dist/transport/calculate/scheduleDelivery.d.ts +158 -0
- package/dist/transport/calculate/scheduleDelivery.js +305 -0
- package/dist/transport/calculate/transitTime.d.ts +21 -3
- package/dist/transport/calculate/transitTime.js +29 -46
- package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
- package/dist/transport/compare/classifyPunctuality.js +64 -0
- package/dist/transport/compare/index.d.ts +4 -0
- package/dist/transport/compare/index.js +4 -0
- package/dist/transport/compare/isPastCutoff.d.ts +33 -0
- package/dist/transport/compare/isPastCutoff.js +48 -0
- package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
- package/dist/transport/compare/scheduleDeviation.js +53 -0
- package/dist/transport/compare/timeToCutoff.d.ts +31 -0
- package/dist/transport/compare/timeToCutoff.js +47 -0
- package/dist/transport/convert/etaAtZone.d.ts +13 -1
- package/dist/transport/convert/etaAtZone.js +15 -5
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.js +1 -0
- package/dist/types/business-calendar.d.ts +20 -14
- package/dist/types/calendar-options.d.ts +15 -3
- package/dist/types/date-cycle-field.d.ts +5 -0
- package/dist/types/date-duration-unit.d.ts +4 -0
- package/dist/types/date-time-cycle-field.d.ts +4 -0
- package/dist/types/date-time-duration-units.d.ts +4 -0
- package/dist/types/date-time-unit.d.ts +4 -0
- package/dist/types/date-unit.d.ts +4 -0
- package/dist/types/disambiguation.d.ts +8 -0
- package/dist/types/duration-relative-to.d.ts +8 -0
- package/dist/types/duration-string-options.d.ts +28 -0
- package/dist/types/duty.d.ts +777 -0
- package/dist/types/edi.d.ts +407 -0
- package/dist/types/edi.js +0 -0
- package/dist/types/epcis.d.ts +25 -0
- package/dist/types/epcis.js +0 -0
- package/dist/types/exact-duration-unit.d.ts +8 -0
- package/dist/types/exact-duration-unit.js +0 -0
- package/dist/types/fiscal-calendar.d.ts +1 -1
- package/dist/types/fractional-digit.d.ts +5 -0
- package/dist/types/free-time-options.d.ts +22 -11
- package/dist/types/index.d.ts +7 -1
- package/dist/types/index.js +7 -1
- package/dist/types/interval.d.ts +8 -1
- package/dist/types/offset.d.ts +9 -0
- package/dist/types/operating-schedule.d.ts +72 -0
- package/dist/types/operating-schedule.js +0 -0
- package/dist/types/overflow.d.ts +6 -0
- package/dist/types/relative-rounding-method.d.ts +6 -0
- package/dist/types/relative-time-options.d.ts +33 -5
- package/dist/types/rounding-options.d.ts +27 -0
- package/dist/types/time-cycle-field.d.ts +4 -0
- package/dist/types/time-duration-unit.d.ts +4 -0
- package/dist/types/time-unit.d.ts +4 -0
- package/dist/types/transport-timestamps.d.ts +54 -0
- package/dist/types/transport-timestamps.js +0 -0
- package/dist/types/two-digit-year.d.ts +23 -0
- package/dist/types/two-digit-year.js +0 -0
- package/dist/types/zone-bucket-unit.d.ts +1 -1
- package/dist/unix/calculate/addUnix.d.ts +28 -5
- package/dist/unix/calculate/addUnix.js +15 -16
- package/dist/unix/calculate/diffUnix.d.ts +21 -3
- package/dist/unix/calculate/diffUnix.js +12 -9
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +21 -3
- package/dist/unix/calculate/diffUnixAsDuration.js +11 -8
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/endOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/endOfUnix.d.ts +29 -4
- package/dist/unix/calculate/endOfUnix.js +8 -4
- package/dist/unix/calculate/isBetweenUnix.d.ts +27 -4
- package/dist/unix/calculate/isBetweenUnix.js +7 -9
- package/dist/unix/calculate/roundUnix.d.ts +39 -3
- package/dist/unix/calculate/roundUnix.js +16 -12
- package/dist/unix/calculate/setUnix.d.ts +58 -12
- package/dist/unix/calculate/setUnix.js +37 -25
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/startOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/startOfUnix.d.ts +29 -4
- package/dist/unix/calculate/startOfUnix.js +8 -4
- package/dist/unix/calculate/subtractUnix.d.ts +27 -5
- package/dist/unix/calculate/subtractUnix.js +14 -16
- package/dist/unix/compare/areUnixEqual.d.ts +7 -1
- package/dist/unix/compare/areUnixEqual.js +1 -1
- package/dist/unix/compare/areUnixEqualBy.d.ts +33 -7
- package/dist/unix/compare/areUnixEqualBy.js +20 -9
- package/dist/unix/compare/isAfterUnix.d.ts +7 -1
- package/dist/unix/compare/isAfterUnix.js +1 -1
- package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
- package/dist/unix/compare/isBeforeUnix.js +1 -1
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainDate.js +7 -8
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.js +7 -8
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainTime.js +7 -8
- package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
- package/dist/unix/convert/convertUnixToUtc.js +3 -4
- package/dist/unix/convert/convertUnixToZoned.d.ts +14 -5
- package/dist/unix/convert/convertUnixToZoned.js +8 -5
- package/dist/unix/format/formatCalendarUnix.d.ts +31 -19
- package/dist/unix/format/formatCalendarUnix.js +10 -6
- package/dist/unix/format/formatRelativeUnix.d.ts +62 -5
- package/dist/unix/format/formatRelativeUnix.js +16 -10
- package/dist/unix/format/formatUnix.d.ts +29 -6
- package/dist/unix/format/formatUnix.js +12 -7
- package/dist/unix/get/getUnixDay.d.ts +1 -3
- package/dist/unix/get/getUnixDay.js +5 -12
- package/dist/unix/get/getUnixHour.d.ts +1 -3
- package/dist/unix/get/getUnixHour.js +5 -12
- package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
- package/dist/unix/get/getUnixMicrosecond.js +4 -11
- package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
- package/dist/unix/get/getUnixMillisecond.js +5 -12
- package/dist/unix/get/getUnixMinute.d.ts +1 -3
- package/dist/unix/get/getUnixMinute.js +5 -12
- package/dist/unix/get/getUnixMonth.d.ts +1 -3
- package/dist/unix/get/getUnixMonth.js +5 -12
- package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
- package/dist/unix/get/getUnixNanosecond.js +4 -11
- package/dist/unix/get/getUnixNow.d.ts +8 -3
- package/dist/unix/get/getUnixNow.js +1 -3
- package/dist/unix/get/getUnixNowUnit.d.ts +2 -0
- package/dist/unix/get/getUnixNowUnit.js +2 -0
- package/dist/unix/get/getUnixSecond.d.ts +1 -3
- package/dist/unix/get/getUnixSecond.js +5 -12
- package/dist/unix/get/getUnixYear.d.ts +3 -3
- package/dist/unix/get/getUnixYear.js +5 -12
- package/dist/unix/interval/intervalCountUnix.d.ts +23 -5
- package/dist/unix/interval/intervalCountUnix.js +9 -5
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
- package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +41 -5
- package/dist/unix/interval/intervalFromDurationUnix.js +18 -12
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalLengthUnix.d.ts +24 -6
- package/dist/unix/interval/intervalLengthUnix.js +10 -6
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +21 -3
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +11 -8
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
- package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
- package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +50 -11
- package/dist/unix/interval/splitIntervalByUnitUnix.js +33 -22
- package/dist/unix/parse/parseDateFromUnix.d.ts +15 -2
- package/dist/unix/parse/parseDateFromUnix.js +4 -5
- package/dist/unix/parse/parseDayFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseDayFromUnix.js +2 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +15 -1
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +3 -3
- package/dist/unix/parse/parseHourFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseHourFromUnix.js +2 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMonthFromUnix.js +2 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseSecondFromUnix.js +2 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseTimeFromUnix.js +5 -5
- package/dist/unix/parse/parseUnitFromUnix.d.ts +29 -4
- package/dist/unix/parse/parseUnitFromUnix.js +23 -17
- package/dist/unix/parse/parseWeekFromUnix.d.ts +24 -7
- package/dist/unix/parse/parseWeekFromUnix.js +7 -11
- package/dist/unix/parse/parseYearFromUnix.d.ts +20 -3
- package/dist/unix/parse/parseYearFromUnix.js +6 -3
- package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
- package/dist/unix/validate/isValidUnixRange.js +1 -4
- package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
- package/dist/utc/calculate/addUtc.d.ts +7 -4
- package/dist/utc/calculate/addUtc.js +5 -11
- package/dist/utc/calculate/diffUtc.d.ts +1 -1
- package/dist/utc/calculate/diffUtc.js +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +16 -3
- package/dist/utc/calculate/endOfUtc.js +2 -3
- package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
- package/dist/utc/calculate/isBetweenUtc.js +4 -4
- package/dist/utc/calculate/roundUtc.d.ts +26 -9
- package/dist/utc/calculate/roundUtc.js +3 -12
- package/dist/utc/calculate/setUtc.d.ts +23 -7
- package/dist/utc/calculate/setUtc.js +23 -12
- package/dist/utc/calculate/startOfUtc.d.ts +15 -2
- package/dist/utc/calculate/startOfUtc.js +1 -2
- package/dist/utc/calculate/subtractUtc.d.ts +7 -4
- package/dist/utc/calculate/subtractUtc.js +5 -11
- package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
- package/dist/utc/compare/areUtcEqualBy.js +2 -3
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +14 -3
- package/dist/utc/convert/convertUtcToPlainDate.js +12 -10
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +15 -3
- package/dist/utc/convert/convertUtcToPlainDateTime.js +14 -16
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +11 -3
- package/dist/utc/convert/convertUtcToPlainTime.js +9 -9
- package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
- package/dist/utc/convert/convertUtcToUnix.js +3 -4
- package/dist/utc/convert/convertUtcToZoned.d.ts +5 -1
- package/dist/utc/convert/convertUtcToZoned.js +5 -1
- package/dist/utc/format/formatCalendarUtc.d.ts +23 -8
- package/dist/utc/format/formatCalendarUtc.js +14 -7
- package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +8 -8
- package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +8 -8
- package/dist/utc/format/formatRelativeUtc.d.ts +38 -10
- package/dist/utc/format/formatRelativeUtc.js +22 -16
- package/dist/utc/format/formatUtc.d.ts +22 -15
- package/dist/utc/format/formatUtc.js +12 -8
- package/dist/utc/format/index.d.ts +1 -1
- package/dist/utc/format/index.js +1 -1
- package/dist/utc/get/getUtcDay.d.ts +1 -3
- package/dist/utc/get/getUtcDay.js +5 -12
- package/dist/utc/get/getUtcHour.d.ts +1 -3
- package/dist/utc/get/getUtcHour.js +5 -12
- package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
- package/dist/utc/get/getUtcMicrosecond.js +4 -11
- package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
- package/dist/utc/get/getUtcMillisecond.js +5 -12
- package/dist/utc/get/getUtcMinute.d.ts +1 -3
- package/dist/utc/get/getUtcMinute.js +5 -12
- package/dist/utc/get/getUtcMonth.d.ts +1 -3
- package/dist/utc/get/getUtcMonth.js +5 -12
- package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
- package/dist/utc/get/getUtcNanosecond.js +4 -11
- package/dist/utc/get/getUtcNow.d.ts +1 -3
- package/dist/utc/get/getUtcNow.js +2 -9
- package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
- package/dist/utc/get/getUtcNowUnit.js +2 -0
- package/dist/utc/get/getUtcSecond.d.ts +1 -3
- package/dist/utc/get/getUtcSecond.js +5 -12
- package/dist/utc/get/getUtcYear.d.ts +3 -3
- package/dist/utc/get/getUtcYear.js +5 -12
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
- package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
- package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
- package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
- package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.js +2 -2
- package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
- package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
- package/dist/utc/parse/index.d.ts +1 -1
- package/dist/utc/parse/index.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDateFromUtc.js +3 -5
- package/dist/utc/parse/parseDayFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayFromUtc.js +3 -5
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +5 -7
- package/dist/utc/parse/parseHourFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseHourFromUtc.js +3 -5
- package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
- package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +12 -12
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMicrosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMillisecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMinuteFromUtc.js +3 -5
- package/dist/utc/parse/parseMonthFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMonthFromUtc.js +3 -5
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseNanosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseSecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseSecondFromUtc.js +3 -5
- package/dist/utc/parse/parseTimeFromUtc.d.ts +11 -3
- package/dist/utc/parse/parseTimeFromUtc.js +7 -7
- package/dist/utc/parse/parseUnitFromUtc.d.ts +25 -6
- package/dist/utc/parse/parseUnitFromUtc.js +14 -10
- package/dist/utc/parse/parseWeekFromUtc.d.ts +20 -10
- package/dist/utc/parse/parseWeekFromUtc.js +8 -14
- package/dist/utc/parse/parseYearFromUtc.d.ts +13 -5
- package/dist/utc/parse/parseYearFromUtc.js +9 -8
- package/dist/utc/validate/index.d.ts +2 -0
- package/dist/utc/validate/index.js +2 -0
- package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
- package/dist/utc/validate/isValidHttpDate.js +38 -0
- package/dist/utc/validate/isValidUtc.d.ts +4 -0
- package/dist/utc/validate/isValidUtc.js +4 -0
- package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
- package/dist/utc/validate/isValidUtcRange.js +2 -5
- package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
- package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
- package/dist/zoned/calculate/addZoned.d.ts +20 -10
- package/dist/zoned/calculate/addZoned.js +10 -20
- package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
- package/dist/zoned/calculate/cycleZoned.js +1 -8
- package/dist/zoned/calculate/diffZoned.d.ts +1 -1
- package/dist/zoned/calculate/diffZoned.js +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
- package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
- package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
- package/dist/zoned/calculate/roundZoned.d.ts +21 -4
- package/dist/zoned/calculate/roundZoned.js +3 -7
- package/dist/zoned/calculate/setZoned.d.ts +44 -13
- package/dist/zoned/calculate/setZoned.js +30 -21
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
- package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
- package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
- package/dist/zoned/calculate/startOfZoned.js +1 -3
- package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
- package/dist/zoned/calculate/subtractZoned.js +10 -20
- package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
- package/dist/zoned/compare/areZonedEqualBy.js +7 -5
- package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
- package/dist/zoned/compare/isBetweenZoned.js +4 -3
- package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
- package/dist/zoned/compare/isInDaylightSaving.js +40 -44
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +21 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +9 -11
- package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
- package/dist/zoned/convert/convertZonedToUnix.js +2 -4
- package/dist/zoned/convert/convertZonedToZoned.d.ts +5 -1
- package/dist/zoned/convert/convertZonedToZoned.js +5 -1
- package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
- package/dist/zoned/format/formatCalendarZoned.js +15 -10
- package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
- package/dist/zoned/format/formatRelativeZoned.js +9 -5
- package/dist/zoned/format/formatRfc2822.d.ts +2 -2
- package/dist/zoned/format/formatRfc2822.js +2 -2
- package/dist/zoned/format/formatRfc3339.d.ts +2 -3
- package/dist/zoned/format/formatRfc3339.js +2 -3
- package/dist/zoned/format/formatTimeZoneName.d.ts +16 -3
- package/dist/zoned/format/formatTimeZoneName.js +9 -4
- package/dist/zoned/format/formatZonedDateTime.js +2 -1
- package/dist/zoned/format/formatZonedRange.js +2 -1
- package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
- package/dist/zoned/format/formatZonedToParts.js +8 -5
- package/dist/zoned/get/getDstTransitions.d.ts +11 -10
- package/dist/zoned/get/getDstTransitions.js +21 -7
- package/dist/zoned/get/getSystemTimeZone.d.ts +3 -1
- package/dist/zoned/get/getSystemTimeZone.js +5 -2
- package/dist/zoned/get/getTimeZoneOffset.d.ts +13 -2
- package/dist/zoned/get/getTimeZoneOffset.js +22 -6
- package/dist/zoned/get/getZonedDay.d.ts +2 -1
- package/dist/zoned/get/getZonedDay.js +6 -7
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +2 -1
- package/dist/zoned/get/getZonedDayOfWeek.js +6 -5
- package/dist/zoned/get/getZonedHour.d.ts +2 -1
- package/dist/zoned/get/getZonedHour.js +6 -7
- package/dist/zoned/get/getZonedMicrosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMicrosecond.js +6 -5
- package/dist/zoned/get/getZonedMillisecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMillisecond.js +6 -7
- package/dist/zoned/get/getZonedMinute.d.ts +2 -1
- package/dist/zoned/get/getZonedMinute.js +6 -7
- package/dist/zoned/get/getZonedMonth.d.ts +2 -1
- package/dist/zoned/get/getZonedMonth.js +6 -7
- package/dist/zoned/get/getZonedNanosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedNanosecond.js +6 -5
- package/dist/zoned/get/getZonedNow.d.ts +18 -2
- package/dist/zoned/get/getZonedNow.js +17 -4
- package/dist/zoned/get/getZonedNowUnit.d.ts +6 -3
- package/dist/zoned/get/getZonedNowUnit.js +10 -7
- package/dist/zoned/get/getZonedSecond.d.ts +2 -1
- package/dist/zoned/get/getZonedSecond.js +6 -7
- package/dist/zoned/get/getZonedToday.d.ts +2 -1
- package/dist/zoned/get/getZonedToday.js +6 -5
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +2 -1
- package/dist/zoned/get/getZonedWeekOfYear.js +6 -5
- package/dist/zoned/get/getZonedYear.d.ts +4 -1
- package/dist/zoned/get/getZonedYear.js +9 -7
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
- package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
- package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
- package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.js +2 -2
- package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.js +2 -2
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
- package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
- package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +13 -4
- package/dist/zoned/parse/parseUnitFromZoned.js +6 -4
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
- package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
- package/dist/zoned/parse/parseYearFromZoned.js +6 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +45 -12
- package/dist/zoned/validate/hasDaylightSaving.js +54 -32
- package/dist/zoned/validate/index.d.ts +2 -0
- package/dist/zoned/validate/index.js +2 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
- package/dist/zoned/validate/isValidTimeZone.d.ts +5 -1
- package/dist/zoned/validate/isValidTimeZone.js +6 -2
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
- package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
- package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
- package/dist/zoned/validate/isValidZonedRange.js +1 -4
- package/package.json +67 -5
- package/skills/gmt-arithmetic/SKILL.md +99 -12
- package/skills/gmt-basics/SKILL.md +64 -13
- package/skills/gmt-integration/SKILL.md +33 -13
- package/skills/gmt-timezone/SKILL.md +265 -31
- package/dist/duration/calculate/durationAs.d.ts +0 -62
- package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
- package/dist/internal/resolveReadingTimeZone.js +0 -18
- package/dist/internal/unixZonedDateTime.d.ts +0 -22
- package/dist/internal/unixZonedDateTime.js +0 -32
- package/dist/internal/utcZonedDateTime.d.ts +0 -16
- package/dist/internal/utcZonedDateTime.js +0 -28
- package/dist/types/duration-unit.d.ts +0 -5
- /package/dist/types/{duration-unit.js → duty.js} +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { X12DateTimeRangeFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write two ISO 8601 local date-times as an X12 Date Time Period range (data element 1251) in a
|
|
4
|
+
* date-time range format qualifier (data element 1250). The inverse of `parseX12DateTimeRange`.
|
|
5
|
+
*
|
|
6
|
+
* Codes are release 005010, read from
|
|
7
|
+
* [Stedi's X12-licensed dictionary](https://www.stedi.com/edi/x12-005010/element/1250); the X12
|
|
8
|
+
* text itself was not reached.
|
|
9
|
+
*
|
|
10
|
+
* ### Format codes
|
|
11
|
+
* | Code | Mask | The dictionary's definition |
|
|
12
|
+
* |---|---|---|
|
|
13
|
+
* | `RDT` | `CCYYMMDDHHMM-CCYYMMDDHHMM` | "Range of Date and Time, Expressed in Format CCYYMMDDHHMM-CCYYMMDDHHMM" |
|
|
14
|
+
* | `DTS` | `CCYYMMDDHHMMSS-CCYYMMDDHHMMSS` | "Range of Date and Time Expressed in Format CCYYMMDDHHMMSS-CCYYMMDDHHMMSS" |
|
|
15
|
+
*
|
|
16
|
+
* - `start` and `end` are local date-times, as `isValidDateTime` accepts them: the two members
|
|
17
|
+
* `parseX12DateTimeRange` returns. A date, an instant ending in `Z` and a date-time with an
|
|
18
|
+
* offset return `""`: no 1250 code carries an offset.
|
|
19
|
+
* - **The range is written with the one hyphen X12 transmits.**
|
|
20
|
+
* - Precision is cut to the mask, never rounded: a fraction of a second is always dropped from
|
|
21
|
+
* both ends, and `RDT` drops the seconds too.
|
|
22
|
+
* - **An end before its start returns `""`**: a reversed range names no span of time. The ends
|
|
23
|
+
* are compared as given, before either is cut to the mask. An end equal to its start is
|
|
24
|
+
* written.
|
|
25
|
+
* - A year outside 0000–9999 in either end returns `""`.
|
|
26
|
+
* - Returns `""` for any other code, a code of another kind included, and for a non-string
|
|
27
|
+
* argument.
|
|
28
|
+
*
|
|
29
|
+
* @param start ISO 8601 local date-time the range starts at (e.g. "2024-06-15T14:30:00")
|
|
30
|
+
* @param end ISO 8601 local date-time the range ends at (e.g. "2024-06-20T16:00:00")
|
|
31
|
+
* @param format X12 data element 1250 format qualifier
|
|
32
|
+
* @returns the data element 1251 value, or "" on invalid input
|
|
33
|
+
*
|
|
34
|
+
* @example formatX12DateTimeRange("2024-06-15T14:30:00", "2024-06-20T16:00:00", "RDT") // "202406151430-202406201600"
|
|
35
|
+
* @example formatX12DateTimeRange("2024-06-15T14:30:45", "2024-06-20T16:00:30", "DTS") // "20240615143045-20240620160030"
|
|
36
|
+
* @example formatX12DateTimeRange("2024-06-15T14:30:45", "2024-06-20T16:00:30", "RDT") // "202406151430-202406201600" (the mask has no seconds)
|
|
37
|
+
* @example formatX12DateTimeRange("2024-06-15T14:31:00", "2024-06-15T14:30:00", "RDT") // "" (the end precedes the start)
|
|
38
|
+
* @example formatX12DateTimeRange("2024-06-15", "2024-06-20", "RDT") // "" (dates: use formatX12DateRange)
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatX12DateTimeRange(start: string, end: string, format: X12DateTimeRangeFormat): string;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { writeEdiRange } from "../../internal/ediDateTimeWriter.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write two ISO 8601 local date-times as an X12 Date Time Period range (data element 1251) in a
|
|
4
|
+
* date-time range format qualifier (data element 1250). The inverse of `parseX12DateTimeRange`.
|
|
5
|
+
*
|
|
6
|
+
* Codes are release 005010, read from
|
|
7
|
+
* [Stedi's X12-licensed dictionary](https://www.stedi.com/edi/x12-005010/element/1250); the X12
|
|
8
|
+
* text itself was not reached.
|
|
9
|
+
*
|
|
10
|
+
* ### Format codes
|
|
11
|
+
* | Code | Mask | The dictionary's definition |
|
|
12
|
+
* |---|---|---|
|
|
13
|
+
* | `RDT` | `CCYYMMDDHHMM-CCYYMMDDHHMM` | "Range of Date and Time, Expressed in Format CCYYMMDDHHMM-CCYYMMDDHHMM" |
|
|
14
|
+
* | `DTS` | `CCYYMMDDHHMMSS-CCYYMMDDHHMMSS` | "Range of Date and Time Expressed in Format CCYYMMDDHHMMSS-CCYYMMDDHHMMSS" |
|
|
15
|
+
*
|
|
16
|
+
* - `start` and `end` are local date-times, as `isValidDateTime` accepts them: the two members
|
|
17
|
+
* `parseX12DateTimeRange` returns. A date, an instant ending in `Z` and a date-time with an
|
|
18
|
+
* offset return `""`: no 1250 code carries an offset.
|
|
19
|
+
* - **The range is written with the one hyphen X12 transmits.**
|
|
20
|
+
* - Precision is cut to the mask, never rounded: a fraction of a second is always dropped from
|
|
21
|
+
* both ends, and `RDT` drops the seconds too.
|
|
22
|
+
* - **An end before its start returns `""`**: a reversed range names no span of time. The ends
|
|
23
|
+
* are compared as given, before either is cut to the mask. An end equal to its start is
|
|
24
|
+
* written.
|
|
25
|
+
* - A year outside 0000–9999 in either end returns `""`.
|
|
26
|
+
* - Returns `""` for any other code, a code of another kind included, and for a non-string
|
|
27
|
+
* argument.
|
|
28
|
+
*
|
|
29
|
+
* @param start ISO 8601 local date-time the range starts at (e.g. "2024-06-15T14:30:00")
|
|
30
|
+
* @param end ISO 8601 local date-time the range ends at (e.g. "2024-06-20T16:00:00")
|
|
31
|
+
* @param format X12 data element 1250 format qualifier
|
|
32
|
+
* @returns the data element 1251 value, or "" on invalid input
|
|
33
|
+
*
|
|
34
|
+
* @example formatX12DateTimeRange("2024-06-15T14:30:00", "2024-06-20T16:00:00", "RDT") // "202406151430-202406201600"
|
|
35
|
+
* @example formatX12DateTimeRange("2024-06-15T14:30:45", "2024-06-20T16:00:30", "DTS") // "20240615143045-20240620160030"
|
|
36
|
+
* @example formatX12DateTimeRange("2024-06-15T14:30:45", "2024-06-20T16:00:30", "RDT") // "202406151430-202406201600" (the mask has no seconds)
|
|
37
|
+
* @example formatX12DateTimeRange("2024-06-15T14:31:00", "2024-06-15T14:30:00", "RDT") // "" (the end precedes the start)
|
|
38
|
+
* @example formatX12DateTimeRange("2024-06-15", "2024-06-20", "RDT") // "" (dates: use formatX12DateRange)
|
|
39
|
+
*/
|
|
40
|
+
export function formatX12DateTimeRange(start, end, format) {
|
|
41
|
+
try {
|
|
42
|
+
return writeEdiRange("x12", "dateTimeRange", format, start, end);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Never throws (Core Rule 3): a hostile argument is invalid input, not an exception.
|
|
46
|
+
return "";
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { X12TimeFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write an ISO 8601 time as an X12 time in a time format qualifier (data element 1250). The
|
|
4
|
+
* result is also a data element 337 (Time) value: `parseX12Time` reads it back with the same
|
|
5
|
+
* qualifier, and with none.
|
|
6
|
+
*
|
|
7
|
+
* Codes are release 005010, read from
|
|
8
|
+
* [Stedi's X12-licensed dictionary](https://www.stedi.com/edi/x12-005010/element/1250); the X12
|
|
9
|
+
* text itself was not reached.
|
|
10
|
+
*
|
|
11
|
+
* ### Format codes
|
|
12
|
+
* | Code | Mask | The dictionary's definition |
|
|
13
|
+
* |---|---|---|
|
|
14
|
+
* | `TM` | `HHMM` | "Time Expressed in Format HHMM" |
|
|
15
|
+
* | `TS` | `HHMMSS` | "Time Expressed in Format HHMMSS" |
|
|
16
|
+
*
|
|
17
|
+
* - `value` is a time, as `isValidTime` accepts it: `HH:MM`, with seconds and a fraction of a
|
|
18
|
+
* second if it has them. A date-time, a date or a time with an offset returns `""`.
|
|
19
|
+
* - Precision is cut to the mask, never rounded: a fraction of a second is always dropped, and
|
|
20
|
+
* `TM` drops the seconds too. `14:30:45.123` is `1430` under `TM` and `143045` under `TS`.
|
|
21
|
+
* - **To write the time element of a freight segment** (`AT7-06`, `G62-04`, `DTM-03`), use
|
|
22
|
+
* `formatX12TimeElement`: it writes all four forms of data element 337, named by the
|
|
23
|
+
* element's own masks, tenths and hundredths of a second included. `TM` and `TS` give the same
|
|
24
|
+
* digits as that element's `HHMM` and `HHMMSS` forms, and no 1250 code holds decimal seconds.
|
|
25
|
+
* - `TS` here is the format `HHMMSS`. As a data element 623 time code, `TS` is Atlantic Standard
|
|
26
|
+
* Time: read that with `x12TimeCodeZone`.
|
|
27
|
+
* - Returns `""` for any other code, a code of another kind included, and for a non-string
|
|
28
|
+
* argument.
|
|
29
|
+
*
|
|
30
|
+
* @param value ISO 8601 time (e.g. "14:30:00")
|
|
31
|
+
* @param format X12 data element 1250 format qualifier
|
|
32
|
+
* @returns the X12 time value, or "" on invalid input
|
|
33
|
+
*
|
|
34
|
+
* @example formatX12Time("14:30:00", "TM") // "1430"
|
|
35
|
+
* @example formatX12Time("14:30:45", "TS") // "143045"
|
|
36
|
+
* @example formatX12Time("14:30:45.123", "TM") // "1430" (the mask has no seconds)
|
|
37
|
+
* @example formatX12Time("14:30:45.9", "TS") // "143045" (cut, not rounded)
|
|
38
|
+
* @example formatX12Time("14:30", "TS") // "143000"
|
|
39
|
+
* @example formatX12Time("2024-06-15T14:30:00", "TM") // "" (a date-time is not a time)
|
|
40
|
+
* @example formatX12Time("24:00", "TM") // "" (not a real time)
|
|
41
|
+
*/
|
|
42
|
+
export declare function formatX12Time(value: string, format: X12TimeFormat): string;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { writeEdiValue } from "../../internal/ediDateTimeWriter.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write an ISO 8601 time as an X12 time in a time format qualifier (data element 1250). The
|
|
4
|
+
* result is also a data element 337 (Time) value: `parseX12Time` reads it back with the same
|
|
5
|
+
* qualifier, and with none.
|
|
6
|
+
*
|
|
7
|
+
* Codes are release 005010, read from
|
|
8
|
+
* [Stedi's X12-licensed dictionary](https://www.stedi.com/edi/x12-005010/element/1250); the X12
|
|
9
|
+
* text itself was not reached.
|
|
10
|
+
*
|
|
11
|
+
* ### Format codes
|
|
12
|
+
* | Code | Mask | The dictionary's definition |
|
|
13
|
+
* |---|---|---|
|
|
14
|
+
* | `TM` | `HHMM` | "Time Expressed in Format HHMM" |
|
|
15
|
+
* | `TS` | `HHMMSS` | "Time Expressed in Format HHMMSS" |
|
|
16
|
+
*
|
|
17
|
+
* - `value` is a time, as `isValidTime` accepts it: `HH:MM`, with seconds and a fraction of a
|
|
18
|
+
* second if it has them. A date-time, a date or a time with an offset returns `""`.
|
|
19
|
+
* - Precision is cut to the mask, never rounded: a fraction of a second is always dropped, and
|
|
20
|
+
* `TM` drops the seconds too. `14:30:45.123` is `1430` under `TM` and `143045` under `TS`.
|
|
21
|
+
* - **To write the time element of a freight segment** (`AT7-06`, `G62-04`, `DTM-03`), use
|
|
22
|
+
* `formatX12TimeElement`: it writes all four forms of data element 337, named by the
|
|
23
|
+
* element's own masks, tenths and hundredths of a second included. `TM` and `TS` give the same
|
|
24
|
+
* digits as that element's `HHMM` and `HHMMSS` forms, and no 1250 code holds decimal seconds.
|
|
25
|
+
* - `TS` here is the format `HHMMSS`. As a data element 623 time code, `TS` is Atlantic Standard
|
|
26
|
+
* Time: read that with `x12TimeCodeZone`.
|
|
27
|
+
* - Returns `""` for any other code, a code of another kind included, and for a non-string
|
|
28
|
+
* argument.
|
|
29
|
+
*
|
|
30
|
+
* @param value ISO 8601 time (e.g. "14:30:00")
|
|
31
|
+
* @param format X12 data element 1250 format qualifier
|
|
32
|
+
* @returns the X12 time value, or "" on invalid input
|
|
33
|
+
*
|
|
34
|
+
* @example formatX12Time("14:30:00", "TM") // "1430"
|
|
35
|
+
* @example formatX12Time("14:30:45", "TS") // "143045"
|
|
36
|
+
* @example formatX12Time("14:30:45.123", "TM") // "1430" (the mask has no seconds)
|
|
37
|
+
* @example formatX12Time("14:30:45.9", "TS") // "143045" (cut, not rounded)
|
|
38
|
+
* @example formatX12Time("14:30", "TS") // "143000"
|
|
39
|
+
* @example formatX12Time("2024-06-15T14:30:00", "TM") // "" (a date-time is not a time)
|
|
40
|
+
* @example formatX12Time("24:00", "TM") // "" (not a real time)
|
|
41
|
+
*/
|
|
42
|
+
export function formatX12Time(value, format) {
|
|
43
|
+
try {
|
|
44
|
+
return writeEdiValue("x12", "time", format, value);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Never throws (Core Rule 3): a hostile argument is invalid input, not an exception.
|
|
48
|
+
return "";
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { X12TimeElementForm } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write an ISO 8601 time as an X12 data element 337 (Time) value, in the form the caller names
|
|
4
|
+
* by the element's own mask. `parseX12Time` reads the result back when it is given no qualifier.
|
|
5
|
+
*
|
|
6
|
+
* Element 337 is the time element of many X12 segments: in freight, `AT7-06`, `G62-04` and
|
|
7
|
+
* `DTM-03`. No format qualifier travels with it, so nothing in the segment says which of its
|
|
8
|
+
* four forms a value is in. The definition is release 005010, read from
|
|
9
|
+
* [Stedi's X12-licensed dictionary](https://www.stedi.com/edi/x12-005010/element/337); the X12
|
|
10
|
+
* text itself was not reached.
|
|
11
|
+
*
|
|
12
|
+
* ### Forms
|
|
13
|
+
* | Form | Digits | The dictionary's definition |
|
|
14
|
+
* |---|---|---|
|
|
15
|
+
* | `HHMM` | 4 | "H = hours (00-23), M = minutes (00-59)" |
|
|
16
|
+
* | `HHMMSS` | 6 | "S = integer seconds (00-59)" |
|
|
17
|
+
* | `HHMMSSD` | 7 | "D = tenths (0-9)" |
|
|
18
|
+
* | `HHMMSSDD` | 8 | "DD = hundredths (00-99)" |
|
|
19
|
+
*
|
|
20
|
+
* - `value` is a time, as `isValidTime` accepts it: `HH:MM`, with seconds and a fraction of a
|
|
21
|
+
* second if it has them. A date-time, a date or a time with an offset returns `""`.
|
|
22
|
+
* - **The form alone fixes the digits written.** It is never read off the value, so the width of
|
|
23
|
+
* the field does not depend on the data: a time with no fraction is `14300000` under
|
|
24
|
+
* `HHMMSSDD`, and a time with one is `1430` under `HHMM`.
|
|
25
|
+
* - Precision is cut to the mask, never rounded. `D` is the whole tenths of the second and `DD`
|
|
26
|
+
* its whole hundredths, so `14:30:45.999` is `1430459` under `HHMMSSD` and `14304599` under
|
|
27
|
+
* `HHMMSSDD`. A written value never names a later second than its input.
|
|
28
|
+
* - **The form is a mask, not a data element 1250 code.** `TM` and `TS` return `""` here. To
|
|
29
|
+
* write a time that travels with a 1250 qualifier (`DTP-03`, `DTM-06`), use `formatX12Time`.
|
|
30
|
+
* - Returns `""` for any other form and for a non-string argument.
|
|
31
|
+
*
|
|
32
|
+
* @param value ISO 8601 time (e.g. "14:30:00.12")
|
|
33
|
+
* @param form The element 337 mask to write: `HHMM`, `HHMMSS`, `HHMMSSD` or `HHMMSSDD`
|
|
34
|
+
* @returns the X12 time value, or "" on invalid input
|
|
35
|
+
*
|
|
36
|
+
* @example formatX12TimeElement("14:30:00.12", "HHMMSSDD") // "14300012"
|
|
37
|
+
* @example formatX12TimeElement("14:30:00.12", "HHMMSSD") // "1430001" (cut, not rounded)
|
|
38
|
+
* @example formatX12TimeElement("14:30:00", "HHMMSSDD") // "14300000"
|
|
39
|
+
* @example formatX12TimeElement("14:30", "HHMM") // "1430"
|
|
40
|
+
* @example formatX12TimeElement("14:30:45.999", "HHMMSS") // "143045"
|
|
41
|
+
* @example formatX12TimeElement("14:30:45.999", "HHMMSSD") // "1430459" (cut, not rounded)
|
|
42
|
+
* @example formatX12TimeElement("14:30:45", "TS") // "" (a 1250 code is not a mask)
|
|
43
|
+
* @example formatX12TimeElement("2024-06-15T14:30:00", "HHMM") // "" (a date-time is not a time)
|
|
44
|
+
* @example formatX12TimeElement("24:00", "HHMM") // "" (not a real time)
|
|
45
|
+
*/
|
|
46
|
+
export declare function formatX12TimeElement(value: string, form: X12TimeElementForm): string;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { writeX12TimeElement } from "../../internal/ediDateTimeWriter.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write an ISO 8601 time as an X12 data element 337 (Time) value, in the form the caller names
|
|
4
|
+
* by the element's own mask. `parseX12Time` reads the result back when it is given no qualifier.
|
|
5
|
+
*
|
|
6
|
+
* Element 337 is the time element of many X12 segments: in freight, `AT7-06`, `G62-04` and
|
|
7
|
+
* `DTM-03`. No format qualifier travels with it, so nothing in the segment says which of its
|
|
8
|
+
* four forms a value is in. The definition is release 005010, read from
|
|
9
|
+
* [Stedi's X12-licensed dictionary](https://www.stedi.com/edi/x12-005010/element/337); the X12
|
|
10
|
+
* text itself was not reached.
|
|
11
|
+
*
|
|
12
|
+
* ### Forms
|
|
13
|
+
* | Form | Digits | The dictionary's definition |
|
|
14
|
+
* |---|---|---|
|
|
15
|
+
* | `HHMM` | 4 | "H = hours (00-23), M = minutes (00-59)" |
|
|
16
|
+
* | `HHMMSS` | 6 | "S = integer seconds (00-59)" |
|
|
17
|
+
* | `HHMMSSD` | 7 | "D = tenths (0-9)" |
|
|
18
|
+
* | `HHMMSSDD` | 8 | "DD = hundredths (00-99)" |
|
|
19
|
+
*
|
|
20
|
+
* - `value` is a time, as `isValidTime` accepts it: `HH:MM`, with seconds and a fraction of a
|
|
21
|
+
* second if it has them. A date-time, a date or a time with an offset returns `""`.
|
|
22
|
+
* - **The form alone fixes the digits written.** It is never read off the value, so the width of
|
|
23
|
+
* the field does not depend on the data: a time with no fraction is `14300000` under
|
|
24
|
+
* `HHMMSSDD`, and a time with one is `1430` under `HHMM`.
|
|
25
|
+
* - Precision is cut to the mask, never rounded. `D` is the whole tenths of the second and `DD`
|
|
26
|
+
* its whole hundredths, so `14:30:45.999` is `1430459` under `HHMMSSD` and `14304599` under
|
|
27
|
+
* `HHMMSSDD`. A written value never names a later second than its input.
|
|
28
|
+
* - **The form is a mask, not a data element 1250 code.** `TM` and `TS` return `""` here. To
|
|
29
|
+
* write a time that travels with a 1250 qualifier (`DTP-03`, `DTM-06`), use `formatX12Time`.
|
|
30
|
+
* - Returns `""` for any other form and for a non-string argument.
|
|
31
|
+
*
|
|
32
|
+
* @param value ISO 8601 time (e.g. "14:30:00.12")
|
|
33
|
+
* @param form The element 337 mask to write: `HHMM`, `HHMMSS`, `HHMMSSD` or `HHMMSSDD`
|
|
34
|
+
* @returns the X12 time value, or "" on invalid input
|
|
35
|
+
*
|
|
36
|
+
* @example formatX12TimeElement("14:30:00.12", "HHMMSSDD") // "14300012"
|
|
37
|
+
* @example formatX12TimeElement("14:30:00.12", "HHMMSSD") // "1430001" (cut, not rounded)
|
|
38
|
+
* @example formatX12TimeElement("14:30:00", "HHMMSSDD") // "14300000"
|
|
39
|
+
* @example formatX12TimeElement("14:30", "HHMM") // "1430"
|
|
40
|
+
* @example formatX12TimeElement("14:30:45.999", "HHMMSS") // "143045"
|
|
41
|
+
* @example formatX12TimeElement("14:30:45.999", "HHMMSSD") // "1430459" (cut, not rounded)
|
|
42
|
+
* @example formatX12TimeElement("14:30:45", "TS") // "" (a 1250 code is not a mask)
|
|
43
|
+
* @example formatX12TimeElement("2024-06-15T14:30:00", "HHMM") // "" (a date-time is not a time)
|
|
44
|
+
* @example formatX12TimeElement("24:00", "HHMM") // "" (not a real time)
|
|
45
|
+
*/
|
|
46
|
+
export function formatX12TimeElement(value, form) {
|
|
47
|
+
try {
|
|
48
|
+
return writeX12TimeElement(form, value);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// Never throws (Core Rule 3): a hostile argument is invalid input, not an exception.
|
|
52
|
+
return "";
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -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";
|
|
@@ -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
1
|
// Re-export the Temporal polyfill (`Temporal`, `Intl`, `toTemporalInstant`) so every namespace subpath offers it
|
|
2
2
|
export * from "@js-temporal/polyfill";
|
|
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;
|