@northguild/gmt 1.18.0 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -2920
- package/dist/calendar/business/businessDaysBetween.d.ts +2 -2
- package/dist/calendar/business/businessDaysBetween.js +11 -35
- package/dist/calendar/business/mergeCalendars.d.ts +1 -1
- package/dist/calendar/business/mergeCalendars.js +8 -9
- package/dist/calendar/business/nextBusinessDay.d.ts +2 -2
- package/dist/calendar/business/nextBusinessDay.js +2 -2
- package/dist/calendar/business/previousBusinessDay.d.ts +2 -2
- package/dist/calendar/business/previousBusinessDay.js +2 -2
- package/dist/calendar/business/rollDate.d.ts +3 -3
- package/dist/calendar/business/rollDate.js +10 -43
- package/dist/calendar/calculate/bucketRange.d.ts +19 -11
- package/dist/calendar/calculate/bucketRange.js +27 -70
- package/dist/calendar/calculate/floorToZone.d.ts +12 -4
- package/dist/calendar/calculate/floorToZone.js +16 -8
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +50 -40
- package/dist/calendar/calculate/getFiscalPeriod.js +78 -57
- package/dist/calendar/calculate/getQuarter.d.ts +26 -21
- package/dist/calendar/calculate/getQuarter.js +48 -19
- package/dist/calendar/hours/addOperatingTime.d.ts +9 -3
- package/dist/calendar/hours/addOperatingTime.js +10 -4
- package/dist/calendar/hours/isOpenAt.d.ts +9 -3
- package/dist/calendar/hours/isOpenAt.js +9 -3
- package/dist/calendar/hours/nextCloseAt.d.ts +8 -2
- package/dist/calendar/hours/nextCloseAt.js +9 -3
- package/dist/calendar/hours/nextOpenAt.d.ts +9 -3
- package/dist/calendar/hours/nextOpenAt.js +10 -4
- package/dist/calendar/hours/operatingIntervals.d.ts +7 -2
- package/dist/calendar/hours/operatingIntervals.js +9 -6
- package/dist/calendar/hours/operatingTimeBetween.d.ts +8 -3
- package/dist/calendar/hours/operatingTimeBetween.js +11 -8
- package/dist/calendar/hours/recurringWindows.d.ts +13 -6
- package/dist/calendar/hours/recurringWindows.js +21 -14
- package/dist/calendar/index.d.ts +1 -1
- package/dist/calendar/index.js +2 -2
- package/dist/calendar/validate/index.d.ts +3 -0
- package/dist/calendar/validate/index.js +3 -0
- package/dist/calendar/validate/isValidFiscalCalendar.d.ts +23 -0
- package/dist/calendar/validate/isValidFiscalCalendar.js +44 -0
- package/dist/calendar/validate/isValidFiscalExtraWeek.d.ts +19 -0
- package/dist/calendar/validate/isValidFiscalExtraWeek.js +23 -0
- package/dist/calendar/validate/isValidFiscalPattern.d.ts +7 -7
- package/dist/calendar/validate/isValidFiscalPattern.js +7 -7
- package/dist/calendar/validate/isValidFiscalYearLabel.d.ts +20 -0
- package/dist/calendar/validate/isValidFiscalYearLabel.js +24 -0
- package/dist/calendar/validate/isValidRollConvention.js +2 -10
- package/dist/calendar/validate/isValidZoneBucketUnit.d.ts +1 -1
- package/dist/duration/calculate/absDuration.js +1 -1
- package/dist/duration/calculate/addDuration.js +1 -1
- package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
- package/dist/duration/calculate/durationFromUnits.js +67 -0
- package/dist/duration/calculate/getDurationSign.js +1 -1
- package/dist/duration/calculate/getDurationUnit.d.ts +3 -3
- package/dist/duration/calculate/getDurationUnit.js +3 -3
- package/dist/duration/calculate/index.d.ts +3 -1
- package/dist/duration/calculate/index.js +3 -1
- package/dist/duration/calculate/negateDuration.d.ts +1 -1
- package/dist/duration/calculate/negateDuration.js +2 -2
- package/dist/duration/calculate/subtractDuration.js +1 -1
- package/dist/duration/calculate/{durationAs.d.ts → totalDuration.d.ts} +27 -21
- package/dist/duration/calculate/{durationAs.js → totalDuration.js} +27 -21
- package/dist/duration/calculate/totalUnits.d.ts +49 -0
- package/dist/duration/calculate/totalUnits.js +73 -0
- package/dist/duration/compare/compareDurations.d.ts +4 -4
- package/dist/duration/compare/compareDurations.js +4 -4
- package/dist/duration/format/formatDuration.d.ts +9 -9
- package/dist/duration/format/formatDuration.js +14 -13
- package/dist/duration/index.d.ts +1 -1
- package/dist/duration/index.js +2 -2
- package/dist/duration/normalize/normalizeDuration.d.ts +3 -3
- package/dist/duration/normalize/normalizeDuration.js +3 -3
- package/dist/duration/parse/parseDuration.d.ts +1 -1
- package/dist/duration/parse/parseDuration.js +1 -1
- package/dist/duration/validate/isValidDuration.js +2 -11
- package/dist/gnss/convert/gnssToUtc.d.ts +24 -0
- package/dist/gnss/convert/gnssToUtc.js +39 -0
- package/dist/gnss/convert/gnssWeekToUtc.d.ts +53 -0
- package/dist/gnss/convert/gnssWeekToUtc.js +80 -0
- package/dist/gnss/convert/index.d.ts +6 -0
- package/dist/gnss/convert/index.js +6 -0
- package/dist/gnss/convert/rinexWeekToUtc.d.ts +34 -0
- package/dist/gnss/convert/rinexWeekToUtc.js +57 -0
- package/dist/gnss/convert/utcToGnss.d.ts +38 -0
- package/dist/gnss/convert/utcToGnss.js +53 -0
- package/dist/gnss/convert/utcToGnssWeek.d.ts +24 -0
- package/dist/gnss/convert/utcToGnssWeek.js +40 -0
- package/dist/gnss/convert/utcToRinexWeek.d.ts +19 -0
- package/dist/gnss/convert/utcToRinexWeek.js +45 -0
- package/dist/gnss/index.d.ts +2 -0
- package/dist/gnss/index.js +3 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +4 -1
- package/dist/instant/convert/classifyLocal.d.ts +9 -5
- package/dist/instant/convert/classifyLocal.js +19 -20
- package/dist/instant/convert/fromOffsetInstant.d.ts +8 -4
- package/dist/instant/convert/fromOffsetInstant.js +11 -6
- package/dist/instant/convert/resolveLocal.d.ts +16 -11
- package/dist/instant/convert/resolveLocal.js +25 -17
- package/dist/instant/convert/toOffsetInstant.d.ts +23 -19
- package/dist/instant/convert/toOffsetInstant.js +29 -38
- package/dist/instant/index.d.ts +2 -1
- package/dist/instant/index.js +3 -2
- package/dist/instant/validate/index.d.ts +1 -0
- package/dist/instant/validate/index.js +1 -0
- package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
- package/dist/instant/validate/isValidUtcOffset.js +35 -0
- package/dist/intermodal/calculate/billingTimeline.js +1 -1
- package/dist/intermodal/calculate/chargeableDays.d.ts +18 -12
- package/dist/intermodal/calculate/chargeableDays.js +27 -18
- package/dist/intermodal/calculate/demurrageClock.d.ts +1 -1
- package/dist/intermodal/calculate/demurrageClock.js +2 -2
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +17 -10
- package/dist/intermodal/calculate/freeTimeExpiry.js +32 -17
- package/dist/intermodal/calculate/index.d.ts +1 -0
- package/dist/intermodal/calculate/index.js +1 -0
- package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
- package/dist/intermodal/calculate/multimodalETA.js +145 -0
- package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
- package/dist/intermodal/format/bolTimestamp.js +78 -0
- package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
- package/dist/intermodal/format/formatEdifactDate.js +42 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
- package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
- package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
- package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactTime.js +43 -0
- package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
- package/dist/intermodal/format/formatEpcisEvent.js +79 -0
- package/dist/intermodal/format/formatX12Date.d.ts +35 -0
- package/dist/intermodal/format/formatX12Date.js +43 -0
- package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
- package/dist/intermodal/format/formatX12DateRange.js +45 -0
- package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
- package/dist/intermodal/format/formatX12DateTime.js +47 -0
- package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
- package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
- package/dist/intermodal/format/formatX12Time.d.ts +42 -0
- package/dist/intermodal/format/formatX12Time.js +50 -0
- package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
- package/dist/intermodal/format/formatX12TimeElement.js +54 -0
- package/dist/intermodal/format/index.d.ts +14 -0
- package/dist/intermodal/format/index.js +14 -0
- package/dist/intermodal/index.d.ts +4 -1
- package/dist/intermodal/index.js +5 -2
- package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
- package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
- package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
- package/dist/intermodal/parse/index.d.ts +18 -0
- package/dist/intermodal/parse/index.js +18 -0
- package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactDate.js +45 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
- package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactTime.js +45 -0
- package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
- package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
- package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
- package/dist/intermodal/parse/parseX12Date.js +47 -0
- package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
- package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
- package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
- package/dist/intermodal/parse/parseX12DateRange.js +52 -0
- package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
- package/dist/intermodal/parse/parseX12DateTime.js +53 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
- package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
- package/dist/intermodal/parse/parseX12Time.js +77 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
- package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
- package/dist/intermodal/validate/index.d.ts +18 -0
- package/dist/intermodal/validate/index.js +18 -0
- package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
- package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
- package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
- package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
- package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
- package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
- package/dist/intermodal/validate/isValidX12Date.js +30 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
- package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
- package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
- package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
- package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12Time.js +40 -0
- package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
- package/dist/internal/advanceToWeekday.d.ts +1 -1
- package/dist/internal/businessCalendar.d.ts +28 -12
- package/dist/internal/businessCalendar.js +131 -125
- package/dist/internal/businessDayValues.js +1 -1
- package/dist/internal/calendarDatePairPolicy.d.ts +1 -1
- package/dist/internal/calendarDateString.d.ts +1 -1
- package/dist/internal/calendarDateString.js +1 -1
- package/dist/internal/calendarSystemIds.js +1 -1
- package/dist/internal/calendarValueOfDate.js +1 -1
- package/dist/internal/calendarZonedPairPolicy.d.ts +1 -1
- package/dist/internal/calendarZonedString.d.ts +3 -3
- package/dist/internal/calendarZonedString.js +4 -4
- package/dist/internal/compareUnixEpochs.js +1 -1
- package/dist/internal/cutoffAtResolved.d.ts +62 -0
- package/dist/internal/cutoffAtResolved.js +162 -0
- package/dist/internal/cycleFieldValue.d.ts +0 -2
- package/dist/internal/cycleFieldValue.js +0 -2
- package/dist/internal/dateTimeUnitHelpers.d.ts +1 -1
- package/dist/internal/dateUnitHelpers.d.ts +1 -1
- package/dist/internal/daylightTime.d.ts +1 -1
- package/dist/internal/differenceRecord.d.ts +1 -1
- package/dist/internal/durationUntilString.d.ts +1 -1
- package/dist/internal/durationUntilString.js +1 -1
- package/dist/internal/dutyEngine.d.ts +125 -0
- package/dist/internal/dutyEngine.js +1755 -0
- package/dist/internal/dutyLog.d.ts +27 -0
- package/dist/internal/dutyLog.js +47 -0
- package/dist/internal/dutyPeriods.d.ts +135 -0
- package/dist/internal/dutyPeriods.js +375 -0
- package/dist/internal/dutyRules.d.ts +198 -0
- package/dist/internal/dutyRules.js +484 -0
- package/dist/internal/dutyRunIndex.d.ts +150 -0
- package/dist/internal/dutyRunIndex.js +398 -0
- package/dist/internal/earlierOccurrence.d.ts +41 -0
- package/dist/internal/earlierOccurrence.js +57 -0
- package/dist/internal/ediDateTimeFields.d.ts +97 -0
- package/dist/internal/ediDateTimeFields.js +288 -0
- package/dist/internal/ediDateTimeWriter.d.ts +92 -0
- package/dist/internal/ediDateTimeWriter.js +298 -0
- package/dist/internal/ediGrammar.d.ts +158 -0
- package/dist/internal/ediGrammar.js +384 -0
- package/dist/internal/englishCalendarNames.d.ts +4 -2
- package/dist/internal/englishCalendarNames.js +3 -1
- package/dist/internal/epochDay.d.ts +41 -0
- package/dist/internal/epochDay.js +129 -0
- package/dist/internal/exactDuration.js +1 -1
- package/dist/internal/exactMoment.d.ts +4 -4
- package/dist/internal/exactMoment.js +5 -5
- package/dist/internal/fiscalCalendar.d.ts +41 -7
- package/dist/internal/fiscalCalendar.js +77 -9
- package/dist/internal/foreignEpochs.d.ts +5 -0
- package/dist/internal/foreignEpochs.js +5 -0
- package/dist/internal/formatCalendarDays.d.ts +4 -4
- package/dist/internal/formatCalendarDays.js +6 -5
- package/dist/internal/formatDateInCalendar.d.ts +1 -1
- package/dist/internal/formatRelativeDuration.d.ts +7 -7
- package/dist/internal/formatRelativeDuration.js +8 -7
- package/dist/internal/formatterCache.d.ts +40 -0
- package/dist/internal/formatterCache.js +181 -0
- package/dist/internal/freeTimeLedger.d.ts +35 -42
- package/dist/internal/freeTimeLedger.js +332 -31
- package/dist/internal/getLocaleWeekYearBounds.d.ts +1 -1
- package/dist/internal/gnssTimeScales.d.ts +53 -0
- package/dist/internal/gnssTimeScales.js +128 -0
- package/dist/internal/gnssWeek.d.ts +92 -0
- package/dist/internal/gnssWeek.js +212 -0
- package/dist/internal/halfOpenIntervals.d.ts +1 -1
- package/dist/internal/halfOpenIntervals.js +1 -1
- package/dist/internal/hasCalendarAnnotation.d.ts +3 -3
- package/dist/internal/hasCalendarAnnotation.js +3 -3
- package/dist/internal/hourDurationString.js +1 -1
- package/dist/internal/httpDateFields.js +1 -1
- package/dist/internal/index.d.ts +14 -5
- package/dist/internal/index.js +18 -5
- package/dist/internal/inputChecks.d.ts +53 -0
- package/dist/internal/inputChecks.js +132 -0
- package/dist/internal/instantFormatOptions.d.ts +1 -1
- package/dist/internal/instantFormatOptions.js +4 -8
- package/dist/internal/instantIntervalText.js +1 -1
- package/dist/internal/instantNanoseconds.d.ts +2 -2
- package/dist/internal/instantNanoseconds.js +2 -2
- package/dist/internal/intervalCountHelpers.d.ts +1 -1
- package/dist/internal/intervalNanoseconds.js +2 -1
- package/dist/internal/isObject.d.ts +13 -6
- package/dist/internal/isObject.js +14 -7
- package/dist/internal/isoStringBody.d.ts +2 -2
- package/dist/internal/isoStringBody.js +2 -2
- package/dist/internal/isoYearString.d.ts +21 -0
- package/dist/internal/isoYearString.js +27 -0
- package/dist/internal/joinDateTimeConnector.js +3 -2
- package/dist/internal/leapSeconds.d.ts +63 -0
- package/dist/internal/leapSeconds.js +162 -0
- package/dist/internal/localeWeekInfo.d.ts +1 -1
- package/dist/internal/localeWeekInfo.js +1 -1
- package/dist/internal/maxPieces.js +2 -1
- package/dist/internal/monthGridWeekRow.d.ts +1 -1
- package/dist/internal/normalizeDateTime.d.ts +2 -1
- package/dist/internal/normalizeDateTime.js +3 -2
- package/dist/internal/normalizeTimeZone.d.ts +5 -2
- package/dist/internal/normalizeTimeZone.js +5 -2
- package/dist/internal/offsetTimeline.d.ts +56 -0
- package/dist/internal/offsetTimeline.js +166 -0
- package/dist/internal/operatingSchedule.d.ts +39 -34
- package/dist/internal/operatingSchedule.js +672 -222
- package/dist/internal/patternToken.d.ts +10 -3
- package/dist/internal/patternToken.js +41 -19
- package/dist/internal/plainDateAdd.d.ts +1 -1
- package/dist/internal/plainDateAdd.js +1 -1
- package/dist/internal/plainDateUntil.d.ts +1 -1
- package/dist/internal/plainDateUntil.js +1 -1
- package/dist/internal/readDurationUnits.d.ts +34 -0
- package/dist/internal/readDurationUnits.js +78 -0
- package/dist/internal/readSetFields.d.ts +50 -0
- package/dist/internal/readSetFields.js +179 -0
- package/dist/internal/resolveDurationRelativeTo.d.ts +1 -1
- package/dist/internal/resolveDurationRelativeTo.js +1 -1
- package/dist/internal/resolveLocale.d.ts +2 -2
- package/dist/internal/resolveLocale.js +2 -2
- package/dist/internal/resolveManualRoundingOptions.d.ts +1 -1
- package/dist/internal/resolveRelativeUnit.d.ts +1 -1
- package/dist/internal/resolveRelativeUnit.js +1 -1
- package/dist/internal/resolveUnixIntervalPair.d.ts +9 -3
- package/dist/internal/resolveUnixIntervalPair.js +11 -7
- package/dist/internal/rinexWeek.d.ts +22 -0
- package/dist/internal/rinexWeek.js +30 -0
- package/dist/internal/rollBusinessDate.d.ts +15 -0
- package/dist/internal/rollBusinessDate.js +46 -0
- package/dist/internal/splitStep.d.ts +1 -1
- package/dist/internal/splitStep.js +1 -1
- package/dist/internal/startOrEndOfUnix.d.ts +3 -2
- package/dist/internal/startOrEndOfUnix.js +9 -6
- package/dist/internal/startOrEndOfUtc.d.ts +1 -1
- package/dist/internal/startOrEndOfUtc.js +1 -1
- package/dist/internal/startOrEndOfZoned.d.ts +1 -1
- package/dist/internal/temporal.d.ts +5 -0
- package/dist/internal/temporal.js +5 -0
- package/dist/internal/temporalCompat/calendarDateArithmetic.d.ts +1 -1
- package/dist/internal/temporalCompat/calendarDateFromFields.d.ts +1 -1
- package/dist/internal/temporalCompat/calendarDateFromFields.js +1 -1
- package/dist/internal/temporalCompat/calendarFields.d.ts +1 -1
- package/dist/internal/temporalCompat/capabilities.d.ts +27 -5
- package/dist/internal/temporalCompat/capabilities.js +28 -4
- package/dist/internal/temporalCompat/fieldSearch.d.ts +1 -1
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/fixedDay.d.ts +1 -1
- package/dist/internal/temporalCompat/fixedDay.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/largeMonthSpan.js +1 -1
- package/dist/internal/temporalCompat/nonIsoArithmetic.d.ts +1 -1
- package/dist/internal/temporalCompat/nonIsoArithmetic.js +1 -1
- package/dist/internal/temporalCompat/probeRepros.d.ts +35 -0
- package/dist/internal/temporalCompat/probeRepros.js +571 -0
- package/dist/internal/temporalCompat/readArithmeticModel.js +2 -2
- package/dist/internal/temporalCompat/repros.d.ts +3 -10
- package/dist/internal/temporalCompat/repros.js +13 -520
- package/dist/internal/timeScaleString.d.ts +47 -0
- package/dist/internal/timeScaleString.js +86 -0
- package/dist/internal/toInstantFromUtc.d.ts +1 -1
- package/dist/internal/toInstantFromUtc.js +1 -1
- package/dist/internal/twoDigitYear.d.ts +19 -0
- package/dist/internal/twoDigitYear.js +22 -0
- package/dist/internal/unixEpochValue.d.ts +1 -1
- package/dist/internal/unixEpochValue.js +4 -3
- package/dist/internal/unixFormatReference.d.ts +1 -1
- package/dist/internal/unixFormatReference.js +1 -1
- package/dist/internal/unixWallClock.d.ts +24 -0
- package/dist/internal/unixWallClock.js +35 -0
- package/dist/internal/utcOffsetString.d.ts +16 -0
- package/dist/internal/utcOffsetString.js +31 -1
- package/dist/internal/utcReading.d.ts +59 -0
- package/dist/internal/utcReading.js +113 -0
- package/dist/internal/utcWallClock.d.ts +20 -0
- package/dist/internal/utcWallClock.js +32 -0
- package/dist/internal/validatedZones.d.ts +20 -0
- package/dist/internal/validatedZones.js +33 -0
- package/dist/internal/wallClockAtOffset.d.ts +1 -1
- package/dist/internal/yearWindowStart.d.ts +28 -0
- package/dist/internal/yearWindowStart.js +52 -0
- package/dist/internal/zoneBucketCap.d.ts +18 -0
- package/dist/internal/zoneBucketCap.js +64 -0
- package/dist/internal/zoneFrame.d.ts +180 -0
- package/dist/internal/zoneFrame.js +221 -0
- package/dist/internal/zonedBucket.d.ts +2 -2
- package/dist/internal/zonedBucket.js +92 -21
- package/dist/internal/zonedFormatReference.d.ts +1 -1
- package/dist/internal/zonedFormatReference.js +1 -1
- package/dist/internal/zonedLocalDates.d.ts +1 -1
- package/dist/internal/zonedLocalDates.js +22 -19
- package/dist/internal/zonedNowUnitValue.d.ts +8 -5
- package/dist/internal/zonedNowUnitValue.js +9 -5
- package/dist/internal/zonedTransitionSearch.d.ts +2 -0
- package/dist/internal/zonedTransitionSearch.js +165 -16
- package/dist/internal/zonedWallClock.d.ts +15 -4
- package/dist/internal/zonedWallClock.js +34 -6
- package/dist/internal/zonedWallClockDifference.d.ts +1 -1
- package/dist/internal/zonedWallClockDifference.js +6 -6
- package/dist/internal/zonedWallClockOperations.d.ts +7 -4
- package/dist/internal/zonedWallClockOperations.js +58 -16
- package/dist/internal/zonelessCalendarDate.d.ts +1 -1
- package/dist/internal/zonelessCalendarDate.js +1 -1
- package/dist/interval/index.d.ts +1 -1
- package/dist/interval/index.js +2 -2
- package/dist/plain/calculate/addBusinessDays.d.ts +2 -2
- package/dist/plain/calculate/addBusinessDays.js +2 -2
- package/dist/plain/calculate/addDate.js +4 -7
- package/dist/plain/calculate/addDateTime.js +5 -8
- package/dist/plain/calculate/addTime.js +5 -8
- package/dist/plain/calculate/clampDate.js +1 -1
- package/dist/plain/calculate/closestDateTo.js +1 -1
- package/dist/plain/calculate/cycleDate.js +1 -1
- package/dist/plain/calculate/cycleDateTime.js +1 -1
- package/dist/plain/calculate/cycleTime.js +1 -1
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.js +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
- package/dist/plain/calculate/diffTime.d.ts +1 -1
- package/dist/plain/calculate/diffTime.js +1 -1
- package/dist/plain/calculate/endOfDate.d.ts +1 -1
- package/dist/plain/calculate/endOfDate.js +1 -1
- package/dist/plain/calculate/endOfDateTime.d.ts +1 -1
- package/dist/plain/calculate/endOfDateTime.js +1 -1
- package/dist/plain/calculate/endOfQuarterForDate.js +1 -1
- package/dist/plain/calculate/endOfQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/endOfTime.d.ts +2 -2
- package/dist/plain/calculate/endOfTime.js +1 -1
- package/dist/plain/calculate/getDayOfYear.js +1 -1
- package/dist/plain/calculate/getDaysInMonth.js +1 -1
- package/dist/plain/calculate/getDaysInYear.js +1 -1
- package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +1 -1
- package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +6 -6
- package/dist/plain/calculate/getLocaleDayOfWeek.js +7 -7
- package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +4 -4
- package/dist/plain/calculate/getLocaleEndOfWeek.js +5 -5
- package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +5 -5
- package/dist/plain/calculate/getLocaleStartOfWeek.js +6 -6
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +10 -10
- package/dist/plain/calculate/getLocaleWeekYear.js +11 -11
- package/dist/plain/calculate/getQuarterForDate.js +1 -1
- package/dist/plain/calculate/getQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/getWeekNumber.js +1 -1
- package/dist/plain/calculate/getWeekOfMonth.d.ts +10 -14
- package/dist/plain/calculate/getWeekOfMonth.js +11 -15
- package/dist/plain/calculate/getWeekYear.js +1 -1
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +7 -7
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +8 -8
- package/dist/plain/calculate/getWeeksInMonth.d.ts +8 -11
- package/dist/plain/calculate/getWeeksInMonth.js +9 -12
- package/dist/plain/calculate/getWeeksInYear.js +1 -1
- package/dist/plain/calculate/maxDate.js +1 -1
- package/dist/plain/calculate/maxDateTime.js +1 -1
- package/dist/plain/calculate/maxTime.js +1 -1
- package/dist/plain/calculate/minDate.js +1 -1
- package/dist/plain/calculate/minDateTime.js +1 -1
- package/dist/plain/calculate/minTime.js +1 -1
- package/dist/plain/calculate/nextWeekday.d.ts +14 -12
- package/dist/plain/calculate/nextWeekday.js +15 -13
- package/dist/plain/calculate/previousWeekday.d.ts +14 -12
- package/dist/plain/calculate/previousWeekday.js +15 -13
- package/dist/plain/calculate/roundDate.d.ts +1 -1
- package/dist/plain/calculate/roundDate.js +1 -1
- package/dist/plain/calculate/roundDateTime.d.ts +1 -1
- package/dist/plain/calculate/roundDateTime.js +1 -1
- package/dist/plain/calculate/roundTime.d.ts +1 -1
- package/dist/plain/calculate/roundTime.js +1 -1
- package/dist/plain/calculate/setDate.d.ts +21 -4
- package/dist/plain/calculate/setDate.js +28 -8
- package/dist/plain/calculate/setDateTime.d.ts +16 -4
- package/dist/plain/calculate/setDateTime.js +23 -8
- package/dist/plain/calculate/setTime.d.ts +14 -2
- package/dist/plain/calculate/setTime.js +22 -7
- package/dist/plain/calculate/sortDateTimes.js +1 -1
- package/dist/plain/calculate/sortDates.js +1 -1
- package/dist/plain/calculate/sortTimes.js +1 -1
- package/dist/plain/calculate/startOfDate.d.ts +1 -1
- package/dist/plain/calculate/startOfDate.js +1 -1
- package/dist/plain/calculate/startOfDateTime.d.ts +1 -1
- package/dist/plain/calculate/startOfDateTime.js +1 -1
- package/dist/plain/calculate/startOfQuarterForDate.js +1 -1
- package/dist/plain/calculate/startOfQuarterForDateTime.js +1 -1
- package/dist/plain/calculate/startOfTime.d.ts +2 -2
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractBusinessDays.d.ts +2 -2
- package/dist/plain/calculate/subtractBusinessDays.js +2 -2
- package/dist/plain/calculate/subtractDate.js +5 -8
- package/dist/plain/calculate/subtractDateTime.js +5 -8
- package/dist/plain/calculate/subtractTime.js +5 -8
- package/dist/plain/calculate/weekOfYearForDate.js +1 -1
- package/dist/plain/calculate/weekOfYearForDateTime.js +1 -1
- package/dist/plain/chop/chopDate.js +1 -1
- package/dist/plain/chop/chopMilliseconds.js +1 -1
- package/dist/plain/chop/chopSeconds.js +1 -1
- package/dist/plain/chop/chopTime.js +1 -1
- package/dist/plain/compare/areDateTimesEqual.js +1 -1
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +2 -4
- package/dist/plain/compare/areDateTimesEqualBy.js +2 -4
- package/dist/plain/compare/areDatesEqual.js +1 -1
- package/dist/plain/compare/areDatesEqualBy.d.ts +5 -5
- package/dist/plain/compare/areDatesEqualBy.js +5 -5
- package/dist/plain/compare/areTimesEqual.js +1 -1
- package/dist/plain/compare/isAfterDate.js +1 -1
- package/dist/plain/compare/isAfterDateTime.js +1 -1
- package/dist/plain/compare/isAfterTime.js +1 -1
- package/dist/plain/compare/isBeforeDate.js +1 -1
- package/dist/plain/compare/isBeforeDateTime.js +1 -1
- package/dist/plain/compare/isBeforeTime.js +1 -1
- package/dist/plain/compare/isBetweenDate.js +1 -1
- package/dist/plain/compare/isBetweenDateTime.js +1 -1
- package/dist/plain/compare/isBetweenTime.js +1 -1
- package/dist/plain/compare/isBusinessDay.d.ts +2 -2
- package/dist/plain/compare/isBusinessDay.js +3 -3
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +8 -6
- package/dist/plain/compare/isThisUnit.js +7 -5
- package/dist/plain/compare/isWeekend.d.ts +5 -5
- package/dist/plain/compare/isWeekend.js +6 -6
- package/dist/plain/format/formatCalendar.d.ts +3 -5
- package/dist/plain/format/formatCalendar.js +12 -10
- package/dist/plain/format/formatDate.d.ts +4 -4
- package/dist/plain/format/formatDate.js +8 -7
- package/dist/plain/format/formatDateRange.d.ts +4 -4
- package/dist/plain/format/formatDateRange.js +8 -7
- package/dist/plain/format/formatDateTime.d.ts +4 -4
- package/dist/plain/format/formatDateTime.js +8 -7
- package/dist/plain/format/formatDateTimeRange.d.ts +4 -4
- package/dist/plain/format/formatDateTimeRange.js +8 -7
- package/dist/plain/format/formatDateTimeToParts.d.ts +6 -6
- package/dist/plain/format/formatDateTimeToParts.js +10 -9
- package/dist/plain/format/formatDateToParts.d.ts +6 -6
- package/dist/plain/format/formatDateToParts.js +10 -9
- package/dist/plain/format/formatRelativeDate.d.ts +3 -3
- package/dist/plain/format/formatRelativeDate.js +6 -5
- package/dist/plain/format/formatRelativeDateTime.d.ts +3 -3
- package/dist/plain/format/formatRelativeDateTime.js +6 -5
- package/dist/plain/format/formatRelativeTime.d.ts +3 -3
- package/dist/plain/format/formatRelativeTime.js +6 -5
- package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
- package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +8 -8
- package/dist/plain/format/formatTime.d.ts +4 -4
- package/dist/plain/format/formatTime.js +8 -7
- package/dist/plain/format/index.d.ts +1 -1
- package/dist/plain/format/index.js +1 -1
- package/dist/plain/get/getDay.js +1 -1
- package/dist/plain/get/getDayOfWeek.js +1 -1
- package/dist/plain/get/getHour.js +1 -1
- package/dist/plain/get/getMicrosecond.js +1 -1
- package/dist/plain/get/getMillisecond.js +1 -1
- package/dist/plain/get/getMinute.js +1 -1
- package/dist/plain/get/getMonth.js +1 -1
- package/dist/plain/get/getNanosecond.js +1 -1
- package/dist/plain/get/getNow.js +1 -1
- package/dist/plain/get/getNowUnit.d.ts +2 -0
- package/dist/plain/get/getNowUnit.js +3 -1
- package/dist/plain/get/getSecond.js +1 -1
- package/dist/plain/get/getToday.js +1 -1
- package/dist/plain/get/getWeekOfYear.js +1 -1
- package/dist/plain/get/getYear.d.ts +2 -0
- package/dist/plain/get/getYear.js +5 -4
- package/dist/plain/index.d.ts +1 -1
- package/dist/plain/index.js +2 -2
- package/dist/plain/interval/intervalAbutsDate.d.ts +1 -2
- package/dist/plain/interval/intervalAbutsDate.js +2 -3
- package/dist/plain/interval/intervalAbutsDateTime.js +1 -1
- package/dist/plain/interval/intervalAbutsTime.js +1 -1
- package/dist/plain/interval/intervalContainsDate.d.ts +1 -1
- package/dist/plain/interval/intervalContainsDate.js +2 -2
- package/dist/plain/interval/intervalContainsDateTime.js +1 -1
- package/dist/plain/interval/intervalContainsTime.js +1 -1
- package/dist/plain/interval/intervalCountDate.js +1 -1
- package/dist/plain/interval/intervalCountDateTime.js +1 -1
- package/dist/plain/interval/intervalCountTime.js +1 -1
- package/dist/plain/interval/intervalDifferenceDate.d.ts +1 -1
- package/dist/plain/interval/intervalDifferenceDate.js +2 -2
- package/dist/plain/interval/intervalDifferenceDateTime.js +1 -1
- package/dist/plain/interval/intervalDifferenceTime.js +1 -1
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +3 -3
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -3
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +1 -1
- package/dist/plain/interval/intervalDivideEquallyTime.js +1 -1
- package/dist/plain/interval/intervalEngulfsDate.d.ts +1 -1
- package/dist/plain/interval/intervalEngulfsDate.js +2 -2
- package/dist/plain/interval/intervalEngulfsDateTime.js +1 -1
- package/dist/plain/interval/intervalEngulfsTime.js +1 -1
- package/dist/plain/interval/intervalFromDurationDate.js +1 -1
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -1
- package/dist/plain/interval/intervalFromDurationTime.js +1 -1
- package/dist/plain/interval/intervalIntersectionDate.d.ts +1 -1
- package/dist/plain/interval/intervalIntersectionDate.js +2 -2
- package/dist/plain/interval/intervalIntersectionDateTime.js +1 -1
- package/dist/plain/interval/intervalIntersectionTime.js +1 -1
- package/dist/plain/interval/intervalLengthDateTime.js +1 -1
- package/dist/plain/interval/intervalLengthTime.js +1 -1
- package/dist/plain/interval/intervalOverlappingDaysDate.js +1 -1
- package/dist/plain/interval/intervalOverlappingDaysDateTime.js +1 -1
- package/dist/plain/interval/intervalSplitAtDate.d.ts +1 -1
- package/dist/plain/interval/intervalSplitAtDate.js +2 -2
- package/dist/plain/interval/intervalSplitAtDateTime.js +1 -1
- package/dist/plain/interval/intervalSplitAtTime.js +1 -1
- package/dist/plain/interval/intervalUnionDate.d.ts +2 -2
- package/dist/plain/interval/intervalUnionDate.js +3 -3
- package/dist/plain/interval/intervalUnionDateTime.js +1 -1
- package/dist/plain/interval/intervalUnionTime.js +1 -1
- package/dist/plain/interval/intervalXorAllDate.d.ts +1 -1
- package/dist/plain/interval/intervalXorAllDate.js +4 -4
- package/dist/plain/interval/intervalXorAllDateTime.js +3 -3
- package/dist/plain/interval/intervalXorAllTime.js +3 -3
- package/dist/plain/interval/intervalXorDate.d.ts +1 -1
- package/dist/plain/interval/intervalXorDate.js +2 -2
- package/dist/plain/interval/intervalXorDateTime.js +1 -1
- package/dist/plain/interval/intervalXorTime.js +1 -1
- package/dist/plain/interval/intervalsOverlapDate.d.ts +1 -1
- package/dist/plain/interval/intervalsOverlapDate.js +2 -2
- package/dist/plain/interval/intervalsOverlapDateTime.js +1 -1
- package/dist/plain/interval/intervalsOverlapTime.js +1 -1
- package/dist/plain/interval/mergeIntervalsDate.d.ts +1 -1
- package/dist/plain/interval/mergeIntervalsDate.js +4 -4
- package/dist/plain/interval/mergeIntervalsDateTime.js +3 -3
- package/dist/plain/interval/mergeIntervalsTime.js +3 -3
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +2 -3
- package/dist/plain/interval/splitIntervalByUnitDate.js +3 -4
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +2 -1
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +3 -2
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -1
- package/dist/plain/interval/validate/isValidDateInterval.d.ts +1 -1
- package/dist/plain/interval/validate/isValidDateInterval.js +2 -2
- package/dist/plain/interval/validate/isValidDateTimeInterval.js +1 -1
- package/dist/plain/interval/validate/isValidTimeInterval.js +1 -1
- package/dist/plain/locale/getLocaleEraNames.d.ts +6 -6
- package/dist/plain/locale/getLocaleEraNames.js +8 -7
- package/dist/plain/locale/getLocaleMeridiems.d.ts +5 -5
- package/dist/plain/locale/getLocaleMeridiems.js +7 -6
- package/dist/plain/locale/getLocaleMonthNames.d.ts +6 -6
- package/dist/plain/locale/getLocaleMonthNames.js +17 -11
- package/dist/plain/locale/getLocaleWeekdayNames.d.ts +3 -3
- package/dist/plain/locale/getLocaleWeekdayNames.js +12 -5
- package/dist/plain/map/mapDatesInRange.js +1 -1
- package/dist/plain/map/mapDaysInMonth.js +1 -1
- package/dist/plain/parse/index.d.ts +1 -1
- package/dist/plain/parse/index.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +28 -14
- package/dist/plain/parse/parseDateTimeWithPattern.js +33 -17
- package/dist/plain/parse/parseDateWithPattern.d.ts +29 -14
- package/dist/plain/parse/parseDateWithPattern.js +34 -17
- package/dist/plain/parse/parseDayFromDate.js +1 -1
- package/dist/plain/parse/parseDayFromDateTime.js +1 -1
- package/dist/plain/parse/parseDayOfWeekFromDate.js +1 -1
- package/dist/plain/parse/parseDayOfWeekFromDateTime.js +1 -1
- package/dist/plain/parse/parseHourFromDateTime.js +1 -1
- package/dist/plain/parse/parseHourFromTime.js +1 -1
- package/dist/plain/parse/parseMicrosecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseMicrosecondFromTime.js +1 -1
- package/dist/plain/parse/parseMillisecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseMillisecondFromTime.js +1 -1
- package/dist/plain/parse/parseMinuteFromDateTime.js +1 -1
- package/dist/plain/parse/parseMinuteFromTime.js +1 -1
- package/dist/plain/parse/parseMonthFromDate.js +1 -1
- package/dist/plain/parse/parseMonthFromDateTime.js +1 -1
- package/dist/plain/parse/parseNanosecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseNanosecondFromTime.js +1 -1
- package/dist/plain/parse/parseSecondFromDateTime.js +1 -1
- package/dist/plain/parse/parseSecondFromTime.js +1 -1
- package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
- package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +9 -9
- package/dist/plain/parse/parseTimeWithPattern.d.ts +6 -4
- package/dist/plain/parse/parseTimeWithPattern.js +8 -5
- package/dist/plain/parse/parseUnitFromDate.d.ts +4 -1
- package/dist/plain/parse/parseUnitFromDate.js +6 -2
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +4 -1
- package/dist/plain/parse/parseUnitFromDateTime.js +6 -2
- package/dist/plain/parse/parseUnitFromTime.d.ts +1 -1
- package/dist/plain/parse/parseUnitFromTime.js +1 -1
- package/dist/plain/parse/parseWeekFromDateTime.js +1 -1
- package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
- package/dist/plain/parse/parseYearFromDate.js +8 -4
- package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
- package/dist/plain/parse/parseYearFromDateTime.js +7 -4
- package/dist/plain/validate/{isLeapSecond.d.ts → hasSecond60.d.ts} +16 -14
- package/dist/plain/validate/{isLeapSecond.js → hasSecond60.js} +16 -14
- package/dist/plain/validate/index.d.ts +2 -1
- package/dist/plain/validate/index.js +2 -1
- package/dist/plain/validate/isLeapYear.js +1 -1
- package/dist/plain/validate/isValidDate.js +2 -17
- package/dist/plain/validate/isValidDateRange.js +1 -1
- package/dist/plain/validate/isValidDateTime.d.ts +1 -1
- package/dist/plain/validate/isValidDateTime.js +4 -4
- package/dist/plain/validate/isValidDateTimeRange.js +1 -1
- package/dist/plain/validate/isValidIsoDateLike.js +3 -3
- package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
- package/dist/plain/validate/isValidSqlDateTime.js +36 -0
- package/dist/plain/validate/isValidTime.js +2 -18
- package/dist/plain/validate/isValidTimeRange.js +1 -1
- package/dist/precision/convert/fromNanoseconds.d.ts +11 -5
- package/dist/precision/convert/fromNanoseconds.js +12 -6
- package/dist/precision/convert/toNanoseconds.d.ts +2 -2
- package/dist/precision/convert/toNanoseconds.js +2 -2
- package/dist/precision/index.d.ts +1 -1
- package/dist/precision/index.js +2 -2
- package/dist/precision/validate/isValidInstant.d.ts +1 -1
- package/dist/precision/validate/isValidInstant.js +1 -1
- package/dist/regex/calendar-zoned-date-time.d.ts +4 -4
- package/dist/regex/calendar-zoned-date-time.js +4 -4
- package/dist/regex/epcis.d.ts +60 -0
- package/dist/regex/epcis.js +60 -0
- package/dist/regex/http-date.d.ts +6 -4
- package/dist/regex/http-date.js +6 -4
- package/dist/regex/index.d.ts +2 -1
- package/dist/regex/index.js +3 -2
- package/dist/regex/leap-second.d.ts +1 -1
- package/dist/regex/leap-second.js +1 -1
- package/dist/regex/rfc-2822.d.ts +2 -0
- package/dist/regex/rfc-2822.js +2 -0
- package/dist/regex/rfc-3339.d.ts +3 -1
- package/dist/regex/rfc-3339.js +3 -1
- package/dist/regex/sql-date-time.d.ts +2 -1
- package/dist/regex/sql-date-time.js +2 -1
- package/dist/regex/time-zone-like.d.ts +5 -4
- package/dist/regex/time-zone-like.js +5 -4
- package/dist/regex/utc-offset.d.ts +2 -1
- package/dist/regex/utc-offset.js +2 -1
- package/dist/span/calculate/spanMs.d.ts +4 -3
- package/dist/span/calculate/spanMs.js +4 -3
- package/dist/span/calculate/spanNs.d.ts +4 -3
- package/dist/span/calculate/spanNs.js +4 -3
- package/dist/span/calculate/spanWallClock.d.ts +12 -12
- package/dist/span/calculate/spanWallClock.js +13 -13
- package/dist/span/index.d.ts +1 -1
- package/dist/span/index.js +2 -2
- package/dist/span/validate/isValidSpan.d.ts +3 -3
- package/dist/span/validate/isValidSpan.js +3 -3
- package/dist/timescale/calculate/index.d.ts +3 -0
- package/dist/timescale/calculate/index.js +3 -0
- package/dist/timescale/calculate/leapSecondsBetween.d.ts +26 -0
- package/dist/timescale/calculate/leapSecondsBetween.js +62 -0
- package/dist/timescale/calculate/nextLeapSecond.d.ts +18 -0
- package/dist/timescale/calculate/nextLeapSecond.js +33 -0
- package/dist/timescale/calculate/taiMinusUtc.d.ts +21 -0
- package/dist/timescale/calculate/taiMinusUtc.js +38 -0
- package/dist/timescale/convert/fromTAI.d.ts +22 -0
- package/dist/timescale/convert/fromTAI.js +35 -0
- package/dist/timescale/convert/index.d.ts +2 -0
- package/dist/timescale/convert/index.js +2 -0
- package/dist/timescale/convert/toTAI.d.ts +23 -0
- package/dist/timescale/convert/toTAI.js +39 -0
- package/dist/timescale/index.d.ts +4 -0
- package/dist/timescale/index.js +5 -0
- package/dist/timescale/validate/index.d.ts +1 -0
- package/dist/timescale/validate/index.js +1 -0
- package/dist/timescale/validate/isLeapSecond.d.ts +25 -0
- package/dist/timescale/validate/isLeapSecond.js +36 -0
- package/dist/transport/calculate/crossingTime.d.ts +8 -3
- package/dist/transport/calculate/crossingTime.js +9 -4
- package/dist/transport/calculate/cutoffAt.d.ts +10 -5
- package/dist/transport/calculate/cutoffAt.js +26 -133
- package/dist/transport/calculate/cutoffSchedule.d.ts +8 -3
- package/dist/transport/calculate/cutoffSchedule.js +54 -20
- package/dist/transport/calculate/dwellTime.d.ts +9 -4
- package/dist/transport/calculate/dwellTime.js +10 -5
- package/dist/transport/calculate/estimateDrift.d.ts +1 -1
- package/dist/transport/calculate/estimateDrift.js +1 -1
- package/dist/transport/calculate/nextDeparture.d.ts +2 -2
- package/dist/transport/calculate/nextDeparture.js +2 -2
- package/dist/transport/calculate/scheduleDelivery.d.ts +15 -7
- package/dist/transport/calculate/scheduleDelivery.js +9 -4
- package/dist/transport/calculate/transitTime.d.ts +11 -11
- package/dist/transport/calculate/transitTime.js +11 -11
- package/dist/transport/compare/classifyPunctuality.d.ts +1 -1
- package/dist/transport/compare/classifyPunctuality.js +1 -1
- package/dist/transport/compare/isPastCutoff.d.ts +1 -1
- package/dist/transport/compare/isPastCutoff.js +2 -2
- package/dist/transport/compare/scheduleDeviation.d.ts +1 -1
- package/dist/transport/compare/scheduleDeviation.js +1 -1
- package/dist/transport/compare/timeToCutoff.d.ts +1 -1
- package/dist/transport/compare/timeToCutoff.js +1 -1
- package/dist/transport/convert/etaAtZone.d.ts +8 -3
- package/dist/transport/convert/etaAtZone.js +8 -3
- package/dist/transport/index.d.ts +1 -1
- package/dist/transport/index.js +2 -2
- package/dist/types/business-calendar.d.ts +5 -4
- package/dist/types/date-duration-unit.d.ts +1 -1
- package/dist/types/date-time-duration-units.d.ts +1 -1
- package/dist/types/date-time-unit.d.ts +1 -1
- package/dist/types/date-unit.d.ts +1 -1
- package/dist/types/disambiguation.d.ts +1 -1
- package/dist/types/duration-relative-to.d.ts +1 -1
- package/dist/types/duration-string-options.d.ts +1 -1
- package/dist/types/duty.d.ts +777 -0
- package/dist/types/duty.js +0 -0
- package/dist/types/edi.d.ts +407 -0
- package/dist/types/edi.js +0 -0
- package/dist/types/epcis.d.ts +25 -0
- package/dist/types/epcis.js +0 -0
- package/dist/types/exact-duration-unit.d.ts +8 -0
- package/dist/types/exact-duration-unit.js +0 -0
- package/dist/types/fiscal-calendar.d.ts +40 -4
- package/dist/types/free-time-options.d.ts +4 -3
- package/dist/types/gnss.d.ts +51 -0
- package/dist/types/gnss.js +0 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.js +7 -0
- package/dist/types/now-unit.d.ts +1 -1
- package/dist/types/offset.d.ts +1 -1
- package/dist/types/operating-schedule.d.ts +3 -2
- package/dist/types/overflow.d.ts +1 -1
- package/dist/types/rounding-options.d.ts +1 -1
- package/dist/types/stored-zoned-classification.d.ts +83 -0
- package/dist/types/stored-zoned-classification.js +0 -0
- package/dist/types/time-duration-unit.d.ts +1 -1
- package/dist/types/time-unit.d.ts +1 -1
- package/dist/types/two-digit-year.d.ts +23 -0
- package/dist/types/two-digit-year.js +0 -0
- package/dist/types/utc-now-unit.d.ts +1 -1
- package/dist/types/zone-bucket-unit.d.ts +1 -1
- package/dist/unix/calculate/addUnix.d.ts +11 -2
- package/dist/unix/calculate/addUnix.js +14 -11
- package/dist/unix/calculate/diffUnix.d.ts +11 -3
- package/dist/unix/calculate/diffUnix.js +11 -6
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +11 -3
- package/dist/unix/calculate/diffUnixAsDuration.js +10 -5
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +10 -2
- package/dist/unix/calculate/endOfQuarterForUnix.js +6 -0
- package/dist/unix/calculate/endOfUnix.d.ts +13 -4
- package/dist/unix/calculate/endOfUnix.js +8 -1
- package/dist/unix/calculate/isBetweenUnix.d.ts +3 -2
- package/dist/unix/calculate/isBetweenUnix.js +4 -4
- package/dist/unix/calculate/roundUnix.d.ts +17 -7
- package/dist/unix/calculate/roundUnix.js +19 -10
- package/dist/unix/calculate/setUnix.d.ts +28 -8
- package/dist/unix/calculate/setUnix.js +35 -14
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +10 -2
- package/dist/unix/calculate/startOfQuarterForUnix.js +6 -0
- package/dist/unix/calculate/startOfUnix.d.ts +13 -4
- package/dist/unix/calculate/startOfUnix.js +8 -1
- package/dist/unix/calculate/subtractUnix.d.ts +10 -2
- package/dist/unix/calculate/subtractUnix.js +13 -11
- package/dist/unix/compare/areUnixEqualBy.d.ts +13 -4
- package/dist/unix/compare/areUnixEqualBy.js +8 -1
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +5 -2
- package/dist/unix/convert/convertUnixToPlainDate.js +5 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +5 -2
- package/dist/unix/convert/convertUnixToPlainDateTime.js +5 -4
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +6 -3
- package/dist/unix/convert/convertUnixToPlainTime.js +6 -5
- package/dist/unix/convert/convertUnixToZoned.d.ts +6 -2
- package/dist/unix/convert/convertUnixToZoned.js +6 -2
- package/dist/unix/format/formatCalendarUnix.d.ts +16 -11
- package/dist/unix/format/formatCalendarUnix.js +12 -7
- package/dist/unix/format/formatRelativeUnix.d.ts +17 -9
- package/dist/unix/format/formatRelativeUnix.js +19 -11
- package/dist/unix/format/formatUnix.d.ts +16 -11
- package/dist/unix/format/formatUnix.js +13 -9
- package/dist/unix/get/getUnixDay.d.ts +1 -3
- package/dist/unix/get/getUnixDay.js +6 -13
- package/dist/unix/get/getUnixHour.d.ts +1 -3
- package/dist/unix/get/getUnixHour.js +6 -13
- package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
- package/dist/unix/get/getUnixMicrosecond.js +5 -12
- package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
- package/dist/unix/get/getUnixMillisecond.js +6 -13
- package/dist/unix/get/getUnixMinute.d.ts +1 -3
- package/dist/unix/get/getUnixMinute.js +6 -13
- package/dist/unix/get/getUnixMonth.d.ts +1 -3
- package/dist/unix/get/getUnixMonth.js +6 -13
- package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
- package/dist/unix/get/getUnixNanosecond.js +5 -12
- package/dist/unix/get/getUnixNow.js +1 -1
- package/dist/unix/get/getUnixNowUnit.d.ts +3 -1
- package/dist/unix/get/getUnixNowUnit.js +3 -1
- package/dist/unix/get/getUnixSecond.d.ts +1 -3
- package/dist/unix/get/getUnixSecond.js +6 -13
- package/dist/unix/get/getUnixYear.d.ts +3 -3
- package/dist/unix/get/getUnixYear.js +6 -13
- package/dist/unix/index.d.ts +1 -1
- package/dist/unix/index.js +2 -2
- package/dist/unix/interval/intervalCountUnix.d.ts +11 -2
- package/dist/unix/interval/intervalCountUnix.js +7 -0
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -2
- package/dist/unix/interval/intervalFromDurationUnix.js +13 -8
- package/dist/unix/interval/intervalLengthUnix.d.ts +12 -4
- package/dist/unix/interval/intervalLengthUnix.js +8 -2
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +10 -2
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +10 -5
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +13 -4
- package/dist/unix/interval/splitIntervalByUnitUnix.js +16 -9
- package/dist/unix/parse/parseDateFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDateFromUnix.js +3 -3
- package/dist/unix/parse/parseDayFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +2 -2
- package/dist/unix/parse/parseHourFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +5 -2
- package/dist/unix/parse/parseTimeFromUnix.js +4 -3
- package/dist/unix/parse/parseUnitFromUnix.d.ts +10 -4
- package/dist/unix/parse/parseUnitFromUnix.js +21 -14
- package/dist/unix/parse/parseWeekFromUnix.d.ts +3 -2
- package/dist/unix/parse/parseWeekFromUnix.js +4 -4
- package/dist/unix/parse/parseYearFromUnix.d.ts +8 -3
- package/dist/unix/parse/parseYearFromUnix.js +4 -1
- package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
- package/dist/utc/calculate/addUtc.js +5 -8
- package/dist/utc/calculate/diffUtc.d.ts +1 -1
- package/dist/utc/calculate/diffUtc.js +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
- package/dist/utc/calculate/endOfQuarterForUtc.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +1 -1
- package/dist/utc/calculate/isBetweenUtc.js +1 -1
- package/dist/utc/calculate/maxUtc.js +1 -1
- package/dist/utc/calculate/minUtc.js +1 -1
- package/dist/utc/calculate/roundUtc.d.ts +1 -1
- package/dist/utc/calculate/roundUtc.js +1 -1
- package/dist/utc/calculate/setUtc.d.ts +17 -4
- package/dist/utc/calculate/setUtc.js +23 -9
- package/dist/utc/calculate/sortUtc.js +1 -1
- package/dist/utc/calculate/startOfQuarterForUtc.js +1 -1
- package/dist/utc/calculate/startOfUtc.d.ts +1 -1
- package/dist/utc/calculate/subtractUtc.js +5 -8
- package/dist/utc/compare/areUtcEqual.js +1 -1
- package/dist/utc/compare/areUtcEqualBy.d.ts +2 -2
- package/dist/utc/compare/areUtcEqualBy.js +2 -2
- package/dist/utc/compare/isAfterUtc.js +1 -1
- package/dist/utc/compare/isBeforeUtc.js +1 -1
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +9 -3
- package/dist/utc/convert/convertUtcToPlainDate.js +12 -9
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +10 -3
- package/dist/utc/convert/convertUtcToPlainDateTime.js +14 -15
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +6 -3
- package/dist/utc/convert/convertUtcToPlainTime.js +9 -8
- package/dist/utc/convert/convertUtcToUnix.js +1 -1
- package/dist/utc/convert/convertUtcToZoned.d.ts +6 -2
- package/dist/utc/convert/convertUtcToZoned.js +7 -3
- package/dist/utc/format/formatCalendarUtc.d.ts +12 -7
- package/dist/utc/format/formatCalendarUtc.js +9 -4
- package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +7 -7
- package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +8 -8
- package/dist/utc/format/formatRelativeUtc.d.ts +15 -7
- package/dist/utc/format/formatRelativeUtc.js +17 -9
- package/dist/utc/format/formatUtc.d.ts +15 -10
- package/dist/utc/format/formatUtc.js +12 -8
- package/dist/utc/format/index.d.ts +1 -1
- package/dist/utc/format/index.js +1 -1
- package/dist/utc/get/getUtcDay.d.ts +1 -3
- package/dist/utc/get/getUtcDay.js +6 -13
- package/dist/utc/get/getUtcHour.d.ts +1 -3
- package/dist/utc/get/getUtcHour.js +6 -13
- package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
- package/dist/utc/get/getUtcMicrosecond.js +5 -12
- package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
- package/dist/utc/get/getUtcMillisecond.js +6 -13
- package/dist/utc/get/getUtcMinute.d.ts +1 -3
- package/dist/utc/get/getUtcMinute.js +6 -13
- package/dist/utc/get/getUtcMonth.d.ts +1 -3
- package/dist/utc/get/getUtcMonth.js +6 -13
- package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
- package/dist/utc/get/getUtcNanosecond.js +5 -12
- package/dist/utc/get/getUtcNow.d.ts +1 -3
- package/dist/utc/get/getUtcNow.js +3 -10
- package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
- package/dist/utc/get/getUtcNowUnit.js +3 -1
- package/dist/utc/get/getUtcSecond.d.ts +1 -3
- package/dist/utc/get/getUtcSecond.js +6 -13
- package/dist/utc/get/getUtcYear.d.ts +3 -3
- package/dist/utc/get/getUtcYear.js +6 -13
- package/dist/utc/index.d.ts +1 -1
- package/dist/utc/index.js +2 -2
- package/dist/utc/interval/intervalAbutsUtc.js +1 -1
- package/dist/utc/interval/intervalContainsUtc.js +1 -1
- package/dist/utc/interval/intervalCountUtc.js +1 -1
- package/dist/utc/interval/intervalDivideEquallyUtc.js +1 -1
- package/dist/utc/interval/intervalEngulfsUtc.js +1 -1
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -1
- package/dist/utc/interval/intervalLengthUtc.js +1 -1
- package/dist/utc/interval/intervalOverlappingDaysUtc.js +1 -1
- package/dist/utc/interval/intervalSplitAtUtc.js +1 -1
- package/dist/utc/interval/intervalXorAllUtc.js +3 -3
- package/dist/utc/interval/intervalXorUtc.js +1 -1
- package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +2 -1
- package/dist/utc/interval/splitIntervalByUnitUtc.js +3 -2
- package/dist/utc/interval/validate/isValidUtcInterval.js +1 -1
- package/dist/utc/parse/index.d.ts +1 -1
- package/dist/utc/parse/index.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseDateFromUtc.js +3 -3
- package/dist/utc/parse/parseDayFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseDayFromUtc.js +3 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +6 -6
- package/dist/utc/parse/parseHourFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseHourFromUtc.js +3 -3
- package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
- package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +13 -13
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseMicrosecondFromUtc.js +3 -3
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseMillisecondFromUtc.js +3 -3
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseMinuteFromUtc.js +2 -2
- package/dist/utc/parse/parseMonthFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseMonthFromUtc.js +3 -3
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseNanosecondFromUtc.js +3 -3
- package/dist/utc/parse/parseSecondFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseSecondFromUtc.js +3 -3
- package/dist/utc/parse/parseTimeFromUtc.d.ts +6 -3
- package/dist/utc/parse/parseTimeFromUtc.js +7 -6
- package/dist/utc/parse/parseUnitFromUtc.d.ts +12 -5
- package/dist/utc/parse/parseUnitFromUtc.js +13 -7
- package/dist/utc/parse/parseWeekFromUtc.d.ts +5 -3
- package/dist/utc/parse/parseWeekFromUtc.js +6 -6
- package/dist/utc/parse/parseYearFromUtc.d.ts +9 -5
- package/dist/utc/parse/parseYearFromUtc.js +9 -6
- package/dist/utc/validate/index.d.ts +2 -0
- package/dist/utc/validate/index.js +2 -0
- package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
- package/dist/utc/validate/isValidHttpDate.js +38 -0
- package/dist/utc/validate/isValidUtc.d.ts +4 -0
- package/dist/utc/validate/isValidUtc.js +7 -3
- package/dist/utc/validate/isValidUtcRange.js +1 -1
- package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
- package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
- package/dist/workforce/calculate/dutyDayFor.d.ts +38 -0
- package/dist/workforce/calculate/dutyDayFor.js +71 -0
- package/dist/workforce/calculate/dutyTotals.d.ts +24 -0
- package/dist/workforce/calculate/dutyTotals.js +41 -0
- package/dist/workforce/calculate/dutyViolations.d.ts +74 -0
- package/dist/workforce/calculate/dutyViolations.js +65 -0
- package/dist/workforce/calculate/evaluateDutyLog.d.ts +77 -0
- package/dist/workforce/calculate/evaluateDutyLog.js +75 -0
- package/dist/workforce/calculate/index.d.ts +7 -0
- package/dist/workforce/calculate/index.js +7 -0
- package/dist/workforce/calculate/longestRun.d.ts +28 -0
- package/dist/workforce/calculate/longestRun.js +54 -0
- package/dist/workforce/calculate/qualifyingRestPairs.d.ts +37 -0
- package/dist/workforce/calculate/qualifyingRestPairs.js +58 -0
- package/dist/workforce/calculate/qualifyingRests.d.ts +27 -0
- package/dist/workforce/calculate/qualifyingRests.js +49 -0
- package/dist/workforce/index.d.ts +3 -0
- package/dist/workforce/index.js +4 -0
- package/dist/workforce/validate/index.d.ts +1 -0
- package/dist/workforce/validate/index.js +1 -0
- package/dist/workforce/validate/isValidDutyLog.d.ts +24 -0
- package/dist/workforce/validate/isValidDutyLog.js +34 -0
- package/dist/zoned/calculate/addZoned.d.ts +15 -15
- package/dist/zoned/calculate/addZoned.js +19 -22
- package/dist/zoned/calculate/addZonedBusinessDays.d.ts +5 -4
- package/dist/zoned/calculate/addZonedBusinessDays.js +5 -4
- package/dist/zoned/calculate/clampZoned.js +1 -1
- package/dist/zoned/calculate/diffZoned.d.ts +8 -8
- package/dist/zoned/calculate/diffZoned.js +7 -7
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +5 -5
- package/dist/zoned/calculate/diffZonedAsDuration.js +4 -4
- package/dist/zoned/calculate/endOfZoned.d.ts +3 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -2
- package/dist/zoned/calculate/getHoursInZonedDay.d.ts +2 -2
- package/dist/zoned/calculate/getHoursInZonedDay.js +2 -2
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +6 -5
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +6 -5
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +5 -5
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -5
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +6 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +6 -6
- package/dist/zoned/calculate/maxZoned.d.ts +2 -2
- package/dist/zoned/calculate/maxZoned.js +3 -3
- package/dist/zoned/calculate/minZoned.d.ts +2 -2
- package/dist/zoned/calculate/minZoned.js +3 -3
- package/dist/zoned/calculate/roundZoned.d.ts +11 -9
- package/dist/zoned/calculate/roundZoned.js +11 -9
- package/dist/zoned/calculate/setZoned.d.ts +26 -12
- package/dist/zoned/calculate/setZoned.js +33 -16
- package/dist/zoned/calculate/sortZoned.d.ts +3 -3
- package/dist/zoned/calculate/sortZoned.js +4 -4
- package/dist/zoned/calculate/startOfZoned.d.ts +3 -3
- package/dist/zoned/calculate/startOfZoned.js +2 -2
- package/dist/zoned/calculate/subtractZoned.d.ts +14 -14
- package/dist/zoned/calculate/subtractZoned.js +18 -21
- package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +5 -4
- package/dist/zoned/calculate/subtractZonedBusinessDays.js +5 -4
- package/dist/zoned/chop/chopZonedDate.d.ts +1 -1
- package/dist/zoned/chop/chopZonedDate.js +1 -1
- package/dist/zoned/chop/chopZonedMilliseconds.d.ts +1 -1
- package/dist/zoned/chop/chopZonedMilliseconds.js +1 -1
- package/dist/zoned/chop/chopZonedSeconds.d.ts +1 -1
- package/dist/zoned/chop/chopZonedSeconds.js +1 -1
- package/dist/zoned/chop/chopZonedTime.d.ts +1 -1
- package/dist/zoned/chop/chopZonedTime.js +1 -1
- package/dist/zoned/chop/chopZonedTimezone.d.ts +1 -1
- package/dist/zoned/chop/chopZonedTimezone.js +1 -1
- package/dist/zoned/classify/classifyStoredZoned.d.ts +46 -0
- package/dist/zoned/classify/classifyStoredZoned.js +177 -0
- package/dist/zoned/classify/index.d.ts +1 -0
- package/dist/zoned/classify/index.js +1 -0
- package/dist/zoned/compare/areZonedEqual.js +1 -1
- package/dist/zoned/compare/areZonedEqualBy.d.ts +8 -10
- package/dist/zoned/compare/areZonedEqualBy.js +8 -10
- package/dist/zoned/compare/isAfterZoned.js +1 -1
- package/dist/zoned/compare/isBeforeZoned.d.ts +2 -2
- package/dist/zoned/compare/isBeforeZoned.js +3 -3
- package/dist/zoned/compare/isBetweenZoned.js +1 -1
- package/dist/zoned/compare/isInDaylightSaving.d.ts +2 -2
- package/dist/zoned/compare/isInDaylightSaving.js +2 -2
- package/dist/zoned/compare/isZonedBusinessDay.d.ts +7 -6
- package/dist/zoned/compare/isZonedBusinessDay.js +7 -6
- package/dist/zoned/compare/isZonedFuture.js +1 -1
- package/dist/zoned/compare/isZonedPast.js +1 -1
- package/dist/zoned/compare/isZonedRelativeDay.d.ts +2 -2
- package/dist/zoned/compare/isZonedRelativeDay.js +3 -3
- package/dist/zoned/compare/isZonedThisUnit.d.ts +7 -7
- package/dist/zoned/compare/isZonedThisUnit.js +7 -7
- package/dist/zoned/compare/isZonedWeekend.d.ts +5 -5
- package/dist/zoned/compare/isZonedWeekend.js +5 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +10 -7
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +10 -7
- package/dist/zoned/convert/convertZonedToCalendar.d.ts +5 -5
- package/dist/zoned/convert/convertZonedToCalendar.js +5 -5
- package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +3 -3
- package/dist/zoned/convert/convertZonedToPlainDateTime.js +3 -3
- package/dist/zoned/convert/convertZonedToZoned.d.ts +7 -3
- package/dist/zoned/convert/convertZonedToZoned.js +7 -3
- package/dist/zoned/format/formatCalendarZoned.d.ts +7 -6
- package/dist/zoned/format/formatCalendarZoned.js +7 -6
- package/dist/zoned/format/formatRelativeZoned.d.ts +3 -3
- package/dist/zoned/format/formatRelativeZoned.js +6 -5
- package/dist/zoned/format/formatRfc2822.d.ts +3 -3
- package/dist/zoned/format/formatRfc2822.js +3 -3
- package/dist/zoned/format/formatRfc3339.d.ts +2 -2
- package/dist/zoned/format/formatRfc3339.js +2 -2
- package/dist/zoned/format/formatTimeZoneName.d.ts +22 -18
- package/dist/zoned/format/formatTimeZoneName.js +18 -13
- package/dist/zoned/format/formatZonedDateTime.d.ts +10 -10
- package/dist/zoned/format/formatZonedDateTime.js +12 -11
- package/dist/zoned/format/formatZonedRange.d.ts +7 -7
- package/dist/zoned/format/formatZonedRange.js +9 -8
- package/dist/zoned/format/formatZonedToParts.d.ts +11 -11
- package/dist/zoned/format/formatZonedToParts.js +13 -12
- package/dist/zoned/get/getDstTransitions.d.ts +14 -12
- package/dist/zoned/get/getDstTransitions.js +15 -10
- package/dist/zoned/get/getSystemTimeZone.d.ts +5 -3
- package/dist/zoned/get/getSystemTimeZone.js +7 -4
- package/dist/zoned/get/getTimeZoneOffset.d.ts +15 -7
- package/dist/zoned/get/getTimeZoneOffset.js +23 -10
- package/dist/zoned/get/getTimeZones.d.ts +1 -1
- package/dist/zoned/get/getTimeZones.js +1 -1
- package/dist/zoned/get/getZonedDay.d.ts +3 -2
- package/dist/zoned/get/getZonedDay.js +7 -8
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +3 -2
- package/dist/zoned/get/getZonedDayOfWeek.js +7 -6
- package/dist/zoned/get/getZonedHour.d.ts +3 -2
- package/dist/zoned/get/getZonedHour.js +7 -8
- package/dist/zoned/get/getZonedMicrosecond.d.ts +3 -2
- package/dist/zoned/get/getZonedMicrosecond.js +7 -6
- package/dist/zoned/get/getZonedMillisecond.d.ts +3 -2
- package/dist/zoned/get/getZonedMillisecond.js +7 -8
- package/dist/zoned/get/getZonedMinute.d.ts +3 -2
- package/dist/zoned/get/getZonedMinute.js +7 -8
- package/dist/zoned/get/getZonedMonth.d.ts +3 -2
- package/dist/zoned/get/getZonedMonth.js +7 -8
- package/dist/zoned/get/getZonedNanosecond.d.ts +3 -2
- package/dist/zoned/get/getZonedNanosecond.js +7 -6
- package/dist/zoned/get/getZonedNow.d.ts +9 -5
- package/dist/zoned/get/getZonedNow.js +9 -5
- package/dist/zoned/get/getZonedNowUnit.d.ts +7 -4
- package/dist/zoned/get/getZonedNowUnit.js +11 -8
- package/dist/zoned/get/getZonedSecond.d.ts +3 -2
- package/dist/zoned/get/getZonedSecond.js +7 -8
- package/dist/zoned/get/getZonedToday.d.ts +3 -2
- package/dist/zoned/get/getZonedToday.js +7 -6
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +3 -2
- package/dist/zoned/get/getZonedWeekOfYear.js +7 -6
- package/dist/zoned/get/getZonedYear.d.ts +5 -2
- package/dist/zoned/get/getZonedYear.js +10 -8
- package/dist/zoned/index.d.ts +2 -1
- package/dist/zoned/index.js +3 -2
- package/dist/zoned/interval/intervalAbutsZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalAbutsZoned.js +3 -3
- package/dist/zoned/interval/intervalContainsZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalContainsZoned.js +2 -2
- package/dist/zoned/interval/intervalCountZoned.d.ts +4 -4
- package/dist/zoned/interval/intervalCountZoned.js +5 -5
- package/dist/zoned/interval/intervalDifferenceZoned.js +1 -1
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +2 -2
- package/dist/zoned/interval/intervalEngulfsZoned.d.ts +1 -1
- package/dist/zoned/interval/intervalEngulfsZoned.js +2 -2
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +6 -6
- package/dist/zoned/interval/intervalFromDurationZoned.js +7 -7
- package/dist/zoned/interval/intervalIntersectionZoned.js +1 -1
- package/dist/zoned/interval/intervalLengthZoned.d.ts +5 -5
- package/dist/zoned/interval/intervalLengthZoned.js +5 -5
- package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalOverlappingDaysZoned.js +3 -3
- package/dist/zoned/interval/intervalSplitAtZoned.js +14 -16
- package/dist/zoned/interval/intervalUnionZoned.js +1 -1
- package/dist/zoned/interval/intervalXorAllZoned.js +3 -3
- package/dist/zoned/interval/intervalXorZoned.js +1 -1
- package/dist/zoned/interval/intervalsOverlapZoned.d.ts +2 -2
- package/dist/zoned/interval/intervalsOverlapZoned.js +3 -3
- package/dist/zoned/interval/mergeIntervalsZoned.js +3 -3
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +2 -1
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +3 -2
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +2 -2
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +3 -3
- package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +1 -1
- package/dist/zoned/interval/validate/isValidZonedInterval.js +2 -2
- package/dist/zoned/map/mapZonedDatesInRange.js +1 -1
- package/dist/zoned/map/mapZonedHoursInDay.d.ts +1 -1
- package/dist/zoned/map/mapZonedHoursInDay.js +2 -2
- package/dist/zoned/parse/getZonedOffset.d.ts +1 -1
- package/dist/zoned/parse/getZonedOffset.js +1 -1
- package/dist/zoned/parse/getZonedOffsetAs.d.ts +6 -6
- package/dist/zoned/parse/getZonedOffsetAs.js +3 -3
- package/dist/zoned/parse/parseDateTimeFromZoned.js +2 -2
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseRfc3339.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +5 -2
- package/dist/zoned/parse/parseUnitFromZoned.js +5 -1
- package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
- package/dist/zoned/parse/parseYearFromZoned.js +6 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +6 -4
- package/dist/zoned/validate/hasDaylightSaving.js +16 -10
- package/dist/zoned/validate/index.d.ts +2 -0
- package/dist/zoned/validate/index.js +2 -0
- package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +8 -8
- package/dist/zoned/validate/isValidCalendarZonedDateTime.js +8 -8
- package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
- package/dist/zoned/validate/isValidTimeZone.d.ts +6 -2
- package/dist/zoned/validate/isValidTimeZone.js +8 -19
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +7 -7
- package/dist/zoned/validate/isValidZonedDateTime.js +9 -9
- package/dist/zoned/validate/isValidZonedRange.d.ts +1 -1
- package/dist/zoned/validate/isValidZonedRange.js +5 -5
- package/package.json +103 -4
- package/skills/gmt-arithmetic/SKILL.md +63 -17
- package/skills/gmt-basics/SKILL.md +83 -21
- package/skills/gmt-gnss/SKILL.md +92 -0
- package/skills/gmt-integration/SKILL.md +58 -10
- package/skills/gmt-intermodal/SKILL.md +189 -0
- package/skills/gmt-timezone/SKILL.md +51 -169
- package/skills/gmt-transport/SKILL.md +133 -0
- package/skills/gmt-workforce/SKILL.md +84 -0
- package/dist/internal/unixZonedDateTime.d.ts +0 -22
- package/dist/internal/unixZonedDateTime.js +0 -32
- package/dist/internal/utcZonedDateTime.d.ts +0 -19
- package/dist/internal/utcZonedDateTime.js +0 -31
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
|
+
import { formatUtcOffset, isObject, parseInstantNanoseconds, parseUtcOffsetNanoseconds, } from "../../internal/index.js";
|
|
3
|
+
import { epcisEventTime, epcisTimeZoneOffset } from "../../regex/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* Write an instant-plus-offset pair as the two required time fields of a GS1 EPCIS 2.0 event.
|
|
6
|
+
*
|
|
7
|
+
* EPCIS (ISO/IEC 19987) is GS1's event standard for supply-chain visibility. Every event must
|
|
8
|
+
* carry `eventTime`, the instant, and `eventTimeZoneOffset`, the offset the local clock ran at
|
|
9
|
+
* where the event happened. The inverse of `parseEpcisEvent`, whose result it takes as it is.
|
|
10
|
+
*
|
|
11
|
+
* - **`eventTime` is the instant in UTC, ending in `Z`**, as `Temporal.Instant.prototype.toString`
|
|
12
|
+
* writes it: seconds always present, and a fraction kept to the nanosecond with no trailing
|
|
13
|
+
* zeros and no padding. It always matches `epcisEventTime`, the `DateTimeStamp` pattern of
|
|
14
|
+
* the EPCIS XSD, and so is valid in the XML binding and in the JSON one (`format: date-time`).
|
|
15
|
+
* - **`eventTimeZoneOffset` is `offset`**, which must match `epcisTimeZoneOffset`, the pattern
|
|
16
|
+
* of the EPCIS JSON schema and the rule of EPCIS Standard Release 2.0 §7.4.1
|
|
17
|
+
* (https://ref.gs1.org/standards/epcis/): `±HH:MM` from `-14:00` to `+14:00`. That is narrower than the offsets a pair can hold, so an offset with
|
|
18
|
+
* seconds (`+05:30:00`, `-00:44:30`), one past 14 hours (`+14:30`) and `Z` return null, although
|
|
19
|
+
* `fromOffsetInstant` accepts some of them. Nothing is rounded to fit.
|
|
20
|
+
* - `-00:00` matches the GS1 pattern and is written as `+00:00`, the spelling `parseEpcisEvent`
|
|
21
|
+
* returns.
|
|
22
|
+
* - `instant` is any instant `isValidInstant` accepts: `Z`, an offset, or an offset with a
|
|
23
|
+
* bracketed zone. Only the instant is read, so an offset written in `instant` does not have to
|
|
24
|
+
* equal `offset`.
|
|
25
|
+
* - **`timeZone` is not read.** EPCIS has no field for a zone, so a pair's zone is dropped, and
|
|
26
|
+
* one that is invalid or disagrees with `offset` changes nothing. `fromOffsetInstant` is the
|
|
27
|
+
* function that checks a zone against its offset.
|
|
28
|
+
* - `eventTime` has a four-digit year, so an instant whose UTC year is outside 0000–9999 returns
|
|
29
|
+
* null. `parseEpcisEvent` can return one, from an `eventTime` whose own offset carries it
|
|
30
|
+
* across either end of that range, and such a result cannot be written back.
|
|
31
|
+
* - Returns null when `value` is not an object, when `instant` is not a valid instant, and when
|
|
32
|
+
* `offset` is missing, not a string, or outside the GS1 pattern.
|
|
33
|
+
*
|
|
34
|
+
* @param value `{ instant, offset }` pair, as `parseEpcisEvent` or `toOffsetInstant` returns it
|
|
35
|
+
* @returns `{ eventTime, eventTimeZoneOffset }`, or null on invalid input
|
|
36
|
+
*
|
|
37
|
+
* @example formatEpcisEvent({ instant: "2024-06-15T14:30:00Z", offset: "-05:00" }) // { eventTime: "2024-06-15T14:30:00Z", eventTimeZoneOffset: "-05:00" }
|
|
38
|
+
* @example formatEpcisEvent({ instant: "2024-06-15T09:30:00-05:00", offset: "-05:00" }) // { eventTime: "2024-06-15T14:30:00Z", eventTimeZoneOffset: "-05:00" } (the instant is written in UTC)
|
|
39
|
+
* @example formatEpcisEvent({ instant: "2024-06-15T14:30:00.120Z", offset: "+05:45" }) // { eventTime: "2024-06-15T14:30:00.12Z", eventTimeZoneOffset: "+05:45" }
|
|
40
|
+
* @example formatEpcisEvent({ instant: "2024-06-15T14:30:00Z", offset: "+05:30", timeZone: "Asia/Kolkata" }) // { eventTime: "2024-06-15T14:30:00Z", eventTimeZoneOffset: "+05:30" } (EPCIS carries no zone)
|
|
41
|
+
* @example formatEpcisEvent({ instant: "2024-06-15T14:30:00Z", offset: "-00:00" }) // { eventTime: "2024-06-15T14:30:00Z", eventTimeZoneOffset: "+00:00" }
|
|
42
|
+
* @example formatEpcisEvent({ instant: "2024-06-15T14:30:00Z", offset: "+14:30" }) // null (past the range GS1 allows)
|
|
43
|
+
* @example formatEpcisEvent({ instant: "2024-06-15T14:30:00Z", offset: "+05:30:00" }) // null (GS1 offsets have no seconds)
|
|
44
|
+
* @example formatEpcisEvent({ instant: "2024-06-15T14:30:00Z", offset: "Z" }) // null (a designator, not an offset)
|
|
45
|
+
* @example formatEpcisEvent({ instant: "2024-06-15T14:30:00", offset: "-05:00" }) // null (no offset: not an instant)
|
|
46
|
+
* @example formatEpcisEvent({ instant: "+010000-01-01T00:00:00Z", offset: "-05:00" }) // null (eventTime has a four-digit year)
|
|
47
|
+
*/
|
|
48
|
+
export function formatEpcisEvent(value) {
|
|
49
|
+
try {
|
|
50
|
+
if (!isObject(value)) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const { instant, offset } = value;
|
|
54
|
+
// GS1's pattern is tested on the offset as written, before it is canonicalised: `+05:30:00`
|
|
55
|
+
// names the same offset as `+05:30`, and it is still not a value the field can hold.
|
|
56
|
+
if (typeof offset !== "string" || !epcisTimeZoneOffset.test(offset)) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
const epochNanoseconds = parseInstantNanoseconds(instant);
|
|
60
|
+
// Temporal reads the offset and writes it back, so `-00:00` comes out as `+00:00`, as it
|
|
61
|
+
// does from `parseEpcisEvent`.
|
|
62
|
+
const offsetNanoseconds = parseUtcOffsetNanoseconds(offset);
|
|
63
|
+
const eventTimeZoneOffset = offsetNanoseconds === null ? null : formatUtcOffset(offsetNanoseconds);
|
|
64
|
+
if (epochNanoseconds === null || eventTimeZoneOffset === null) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
const eventTime = Temporal.Instant.fromEpochNanoseconds(epochNanoseconds).toString();
|
|
68
|
+
// Temporal writes a year outside 0000–9999 with a sign and six digits, which `eventTime`
|
|
69
|
+
// cannot carry. The pattern is the check, so no year is compared by hand.
|
|
70
|
+
return epcisEventTime.test(eventTime)
|
|
71
|
+
? { eventTime, eventTimeZoneOffset }
|
|
72
|
+
: null;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// Never throws (Core Rule 3): a hostile
|
|
76
|
+
// argument is invalid input, not an exception.
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { X12DateFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write an ISO 8601 date as an X12 Date Time Period value (data element 1251) in a date format
|
|
4
|
+
* qualifier (data element 1250). The inverse of `parseX12Date`.
|
|
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
|
+
* | `D8` | `CCYYMMDD` | "Date Expressed in Format CCYYMMDD" |
|
|
14
|
+
* | `DB` | `MMDDCCYY` | "Date Expressed in Format MMDDCCYY" |
|
|
15
|
+
*
|
|
16
|
+
* - `value` is a date, as `isValidDate` accepts it. A date-time, an instant or a time returns
|
|
17
|
+
* `""`, as `formatDate` returns `""` for them: pass the date alone.
|
|
18
|
+
* - Each field is zero-padded to the width the mask gives it.
|
|
19
|
+
* - **`D8` also writes data element 373 (Date)**, the `CCYYMMDD` date element of `AT7`, `G62`
|
|
20
|
+
* and `DTM-02`.
|
|
21
|
+
* - A year outside 0000–9999 returns `""`: `CCYY` is four digits and no sign.
|
|
22
|
+
* - Returns `""` for any other code, a code of another kind included, and for a non-string
|
|
23
|
+
* argument.
|
|
24
|
+
*
|
|
25
|
+
* @param value ISO 8601 date (e.g. "2024-06-15")
|
|
26
|
+
* @param format X12 data element 1250 format qualifier
|
|
27
|
+
* @returns the data element 1251 value, or "" on invalid input
|
|
28
|
+
*
|
|
29
|
+
* @example formatX12Date("2024-06-15", "D8") // "20240615"
|
|
30
|
+
* @example formatX12Date("2024-06-15", "DB") // "06152024"
|
|
31
|
+
* @example formatX12Date("2024-06-15T14:30", "D8") // "" (a date-time is not a date)
|
|
32
|
+
* @example formatX12Date("2023-02-29", "D8") // "" (not a real date)
|
|
33
|
+
* @example formatX12Date("2024-06-15", "DT") // "" (a date-time code: use formatX12DateTime)
|
|
34
|
+
*/
|
|
35
|
+
export declare function formatX12Date(value: string, format: X12DateFormat): string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { writeEdiValue } from "../../internal/ediDateTimeWriter.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write an ISO 8601 date as an X12 Date Time Period value (data element 1251) in a date format
|
|
4
|
+
* qualifier (data element 1250). The inverse of `parseX12Date`.
|
|
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
|
+
* | `D8` | `CCYYMMDD` | "Date Expressed in Format CCYYMMDD" |
|
|
14
|
+
* | `DB` | `MMDDCCYY` | "Date Expressed in Format MMDDCCYY" |
|
|
15
|
+
*
|
|
16
|
+
* - `value` is a date, as `isValidDate` accepts it. A date-time, an instant or a time returns
|
|
17
|
+
* `""`, as `formatDate` returns `""` for them: pass the date alone.
|
|
18
|
+
* - Each field is zero-padded to the width the mask gives it.
|
|
19
|
+
* - **`D8` also writes data element 373 (Date)**, the `CCYYMMDD` date element of `AT7`, `G62`
|
|
20
|
+
* and `DTM-02`.
|
|
21
|
+
* - A year outside 0000–9999 returns `""`: `CCYY` is four digits and no sign.
|
|
22
|
+
* - Returns `""` for any other code, a code of another kind included, and for a non-string
|
|
23
|
+
* argument.
|
|
24
|
+
*
|
|
25
|
+
* @param value ISO 8601 date (e.g. "2024-06-15")
|
|
26
|
+
* @param format X12 data element 1250 format qualifier
|
|
27
|
+
* @returns the data element 1251 value, or "" on invalid input
|
|
28
|
+
*
|
|
29
|
+
* @example formatX12Date("2024-06-15", "D8") // "20240615"
|
|
30
|
+
* @example formatX12Date("2024-06-15", "DB") // "06152024"
|
|
31
|
+
* @example formatX12Date("2024-06-15T14:30", "D8") // "" (a date-time is not a date)
|
|
32
|
+
* @example formatX12Date("2023-02-29", "D8") // "" (not a real date)
|
|
33
|
+
* @example formatX12Date("2024-06-15", "DT") // "" (a date-time code: use formatX12DateTime)
|
|
34
|
+
*/
|
|
35
|
+
export function formatX12Date(value, format) {
|
|
36
|
+
try {
|
|
37
|
+
return writeEdiValue("x12", "date", format, value);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// Never throws (Core Rule 3): a hostile argument is invalid input, not an exception.
|
|
41
|
+
return "";
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { X12DateRangeFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write two ISO 8601 dates as an X12 Date Time Period range (data element 1251) in a date range
|
|
4
|
+
* format qualifier (data element 1250). The inverse of `parseX12DateRange`.
|
|
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
|
+
* | `RD8` | `CCYYMMDD-CCYYMMDD` | "Range of Dates Expressed in Format CCYYMMDD-CCYYMMDD" |
|
|
14
|
+
* | `RD` | `MMDDCCYY-MMDDCCYY` | "Range of Dates Expressed in Format MMDDCCYY-MMDDCCYY" |
|
|
15
|
+
*
|
|
16
|
+
* - `start` and `end` are dates, as `isValidDate` accepts them: the two members
|
|
17
|
+
* `parseX12DateRange` returns. A date-time, an instant or a time returns `""`.
|
|
18
|
+
* - **The range is written with the one hyphen X12 transmits**: 15 to 20 June 2024 is
|
|
19
|
+
* `20240615-20240620` under `RD8`.
|
|
20
|
+
* - **An end before its start returns `""`**: a reversed range names no span of time. An end
|
|
21
|
+
* equal to its start is written.
|
|
22
|
+
* - A year outside 0000–9999 in either date returns `""`.
|
|
23
|
+
* - Returns `""` for any other code, a code of another kind included, and for a non-string
|
|
24
|
+
* argument.
|
|
25
|
+
*
|
|
26
|
+
* @param start ISO 8601 date the range starts on (e.g. "2024-06-15")
|
|
27
|
+
* @param end ISO 8601 date the range ends on (e.g. "2024-06-20")
|
|
28
|
+
* @param format X12 data element 1250 format qualifier
|
|
29
|
+
* @returns the data element 1251 value, or "" on invalid input
|
|
30
|
+
*
|
|
31
|
+
* @example formatX12DateRange("2024-06-15", "2024-06-20", "RD8") // "20240615-20240620"
|
|
32
|
+
* @example formatX12DateRange("2024-06-15", "2024-06-20", "RD") // "06152024-06202024"
|
|
33
|
+
* @example formatX12DateRange("2024-06-20", "2024-06-15", "RD8") // "" (the end precedes the start)
|
|
34
|
+
* @example formatX12DateRange("2024-06-15T14:30", "2024-06-20", "RD8") // "" (a date-time is not a date)
|
|
35
|
+
* @example formatX12DateRange("2024-06-15", "2023-02-29", "RD8") // "" (not a real date)
|
|
36
|
+
*/
|
|
37
|
+
export declare function formatX12DateRange(start: string, end: string, format: X12DateRangeFormat): string;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { writeEdiRange } from "../../internal/ediDateTimeWriter.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write two ISO 8601 dates as an X12 Date Time Period range (data element 1251) in a date range
|
|
4
|
+
* format qualifier (data element 1250). The inverse of `parseX12DateRange`.
|
|
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
|
+
* | `RD8` | `CCYYMMDD-CCYYMMDD` | "Range of Dates Expressed in Format CCYYMMDD-CCYYMMDD" |
|
|
14
|
+
* | `RD` | `MMDDCCYY-MMDDCCYY` | "Range of Dates Expressed in Format MMDDCCYY-MMDDCCYY" |
|
|
15
|
+
*
|
|
16
|
+
* - `start` and `end` are dates, as `isValidDate` accepts them: the two members
|
|
17
|
+
* `parseX12DateRange` returns. A date-time, an instant or a time returns `""`.
|
|
18
|
+
* - **The range is written with the one hyphen X12 transmits**: 15 to 20 June 2024 is
|
|
19
|
+
* `20240615-20240620` under `RD8`.
|
|
20
|
+
* - **An end before its start returns `""`**: a reversed range names no span of time. An end
|
|
21
|
+
* equal to its start is written.
|
|
22
|
+
* - A year outside 0000–9999 in either date returns `""`.
|
|
23
|
+
* - Returns `""` for any other code, a code of another kind included, and for a non-string
|
|
24
|
+
* argument.
|
|
25
|
+
*
|
|
26
|
+
* @param start ISO 8601 date the range starts on (e.g. "2024-06-15")
|
|
27
|
+
* @param end ISO 8601 date the range ends on (e.g. "2024-06-20")
|
|
28
|
+
* @param format X12 data element 1250 format qualifier
|
|
29
|
+
* @returns the data element 1251 value, or "" on invalid input
|
|
30
|
+
*
|
|
31
|
+
* @example formatX12DateRange("2024-06-15", "2024-06-20", "RD8") // "20240615-20240620"
|
|
32
|
+
* @example formatX12DateRange("2024-06-15", "2024-06-20", "RD") // "06152024-06202024"
|
|
33
|
+
* @example formatX12DateRange("2024-06-20", "2024-06-15", "RD8") // "" (the end precedes the start)
|
|
34
|
+
* @example formatX12DateRange("2024-06-15T14:30", "2024-06-20", "RD8") // "" (a date-time is not a date)
|
|
35
|
+
* @example formatX12DateRange("2024-06-15", "2023-02-29", "RD8") // "" (not a real date)
|
|
36
|
+
*/
|
|
37
|
+
export function formatX12DateRange(start, end, format) {
|
|
38
|
+
try {
|
|
39
|
+
return writeEdiRange("x12", "dateRange", format, start, end);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Never throws (Core Rule 3): a hostile argument is invalid input, not an exception.
|
|
43
|
+
return "";
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { X12DateTimeFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write an ISO 8601 local date-time as an X12 Date Time Period value (data element 1251) in a
|
|
4
|
+
* date-time format qualifier (data element 1250). The inverse of `parseX12DateTime`.
|
|
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
|
+
* | `DT` | `CCYYMMDDHHMM` | "Date and Time Expressed in Format CCYYMMDDHHMM" |
|
|
14
|
+
* | `RTS` | `CCYYMMDDHHMMSS` | "Date and Time Expressed in Format CCYYMMDDHHMMSS" |
|
|
15
|
+
*
|
|
16
|
+
* - `value` is a local date-time, as `isValidDateTime` accepts it. A date and a time return
|
|
17
|
+
* `""`.
|
|
18
|
+
* - **No 1250 code carries an offset**, so an instant ending in `Z` and a date-time with an
|
|
19
|
+
* offset return `""`: an instant is not written as a wall clock. Pass the local date-time.
|
|
20
|
+
* - Precision is cut to the mask, never rounded: a fraction of a second is always dropped, and
|
|
21
|
+
* `DT` drops the seconds too. `2024-06-15T14:30:45.9` is `202406151430` under `DT` and
|
|
22
|
+
* `20240615143045` under `RTS`.
|
|
23
|
+
* - A year outside 0000–9999 returns `""`: `CCYY` is four digits and no sign.
|
|
24
|
+
* - Returns `""` for any other code, a code of another kind included, and for a non-string
|
|
25
|
+
* argument.
|
|
26
|
+
*
|
|
27
|
+
* @param value ISO 8601 local date-time (e.g. "2024-06-15T14:30:00")
|
|
28
|
+
* @param format X12 data element 1250 format qualifier
|
|
29
|
+
* @returns the data element 1251 value, or "" on invalid input
|
|
30
|
+
*
|
|
31
|
+
* @example formatX12DateTime("2024-06-15T14:30:00", "DT") // "202406151430"
|
|
32
|
+
* @example formatX12DateTime("2024-06-15T14:30:45", "RTS") // "20240615143045"
|
|
33
|
+
* @example formatX12DateTime("2024-06-15T14:30:45", "DT") // "202406151430" (the mask has no seconds)
|
|
34
|
+
* @example formatX12DateTime("2024-06-15T14:30:45.9", "RTS") // "20240615143045" (cut, not rounded)
|
|
35
|
+
* @example formatX12DateTime("2024-06-15", "DT") // "" (a date is not a date-time)
|
|
36
|
+
* @example formatX12DateTime("2024-06-15T14:30:00Z", "DT") // "" (no 1250 code carries an offset)
|
|
37
|
+
* @example formatX12DateTime("2023-02-29T14:30:00", "DT") // "" (not a real date)
|
|
38
|
+
*/
|
|
39
|
+
export declare function formatX12DateTime(value: string, format: X12DateTimeFormat): string;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { writeEdiValue } from "../../internal/ediDateTimeWriter.js";
|
|
2
|
+
/**
|
|
3
|
+
* Write an ISO 8601 local date-time as an X12 Date Time Period value (data element 1251) in a
|
|
4
|
+
* date-time format qualifier (data element 1250). The inverse of `parseX12DateTime`.
|
|
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
|
+
* | `DT` | `CCYYMMDDHHMM` | "Date and Time Expressed in Format CCYYMMDDHHMM" |
|
|
14
|
+
* | `RTS` | `CCYYMMDDHHMMSS` | "Date and Time Expressed in Format CCYYMMDDHHMMSS" |
|
|
15
|
+
*
|
|
16
|
+
* - `value` is a local date-time, as `isValidDateTime` accepts it. A date and a time return
|
|
17
|
+
* `""`.
|
|
18
|
+
* - **No 1250 code carries an offset**, so an instant ending in `Z` and a date-time with an
|
|
19
|
+
* offset return `""`: an instant is not written as a wall clock. Pass the local date-time.
|
|
20
|
+
* - Precision is cut to the mask, never rounded: a fraction of a second is always dropped, and
|
|
21
|
+
* `DT` drops the seconds too. `2024-06-15T14:30:45.9` is `202406151430` under `DT` and
|
|
22
|
+
* `20240615143045` under `RTS`.
|
|
23
|
+
* - A year outside 0000–9999 returns `""`: `CCYY` is four digits and no sign.
|
|
24
|
+
* - Returns `""` for any other code, a code of another kind included, and for a non-string
|
|
25
|
+
* argument.
|
|
26
|
+
*
|
|
27
|
+
* @param value ISO 8601 local date-time (e.g. "2024-06-15T14:30:00")
|
|
28
|
+
* @param format X12 data element 1250 format qualifier
|
|
29
|
+
* @returns the data element 1251 value, or "" on invalid input
|
|
30
|
+
*
|
|
31
|
+
* @example formatX12DateTime("2024-06-15T14:30:00", "DT") // "202406151430"
|
|
32
|
+
* @example formatX12DateTime("2024-06-15T14:30:45", "RTS") // "20240615143045"
|
|
33
|
+
* @example formatX12DateTime("2024-06-15T14:30:45", "DT") // "202406151430" (the mask has no seconds)
|
|
34
|
+
* @example formatX12DateTime("2024-06-15T14:30:45.9", "RTS") // "20240615143045" (cut, not rounded)
|
|
35
|
+
* @example formatX12DateTime("2024-06-15", "DT") // "" (a date is not a date-time)
|
|
36
|
+
* @example formatX12DateTime("2024-06-15T14:30:00Z", "DT") // "" (no 1250 code carries an offset)
|
|
37
|
+
* @example formatX12DateTime("2023-02-29T14:30:00", "DT") // "" (not a real date)
|
|
38
|
+
*/
|
|
39
|
+
export function formatX12DateTime(value, format) {
|
|
40
|
+
try {
|
|
41
|
+
return writeEdiValue("x12", "dateTime", format, value);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// Never throws (Core Rule 3): a hostile argument is invalid input, not an exception.
|
|
45
|
+
return "";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -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";
|