@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,39 @@
|
|
|
1
|
+
import type { EdifactDtmFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return true when `format` is a UN/EDIFACT data element 2379 format code that the EDIFACT
|
|
4
|
+
* functions read and write.
|
|
5
|
+
*
|
|
6
|
+
* - The 11 supported codes are `102` (a date); `401`, `402` (a time); `203`, `204` (a date and
|
|
7
|
+
* time with no offset); `205`, `208`, `303`, `304` (a date and time with an offset); `718` (a
|
|
8
|
+
* period of dates) and `719` (a period of date-times). `classifyEdifactDtmFormat` names the
|
|
9
|
+
* kind of a code, and each kind has its own parser, formatter and validator.
|
|
10
|
+
* - A code with a two-digit year returns false: `101`, `201`, `202`, `206`, `207`, `301`,
|
|
11
|
+
* `302`, `713` and `717`. UN/EDIFACT does not say which century `YY` belongs to; read such a
|
|
12
|
+
* value with `parseDateWithPattern` or `parseDateTimeWithPattern`, a `yy` pattern and its
|
|
13
|
+
* `yearWindow` option.
|
|
14
|
+
* - `209` and `404` (a time with an offset and no date) and `406` (an offset alone) return
|
|
15
|
+
* false: none names a date, a time, a date-time or an instant.
|
|
16
|
+
* - Every other 2379 code returns false: the day-first and month-first dates `2`–`5`, `10`
|
|
17
|
+
* (`CCYYMMDDTHHMM`), `103`, the ordinal date `105`, `210`, `307`, `308`, the time spans
|
|
18
|
+
* `501`–`503`, `711`, the partial values, the weekday period `720` and the quantities (`801`
|
|
19
|
+
* and up).
|
|
20
|
+
* - Matching is exact: `" 203"`, `"0203"` and the number `203` are not codes.
|
|
21
|
+
* - Accepts any input type and returns false for non-string values.
|
|
22
|
+
* - A parser returns its sentinel for a code it does not read, the same sentinel it returns for
|
|
23
|
+
* a value that does not fit its code. Check the code here to tell an unsupported format apart
|
|
24
|
+
* from bad data.
|
|
25
|
+
*
|
|
26
|
+
* @param format candidate value of any type
|
|
27
|
+
* @returns boolean indicating validity
|
|
28
|
+
*
|
|
29
|
+
* @example isValidEdifactDtmFormat("203") // true
|
|
30
|
+
* @example isValidEdifactDtmFormat("718") // true
|
|
31
|
+
* @example isValidEdifactDtmFormat("208") // true
|
|
32
|
+
* @example isValidEdifactDtmFormat("101") // false (a two-digit year: not read)
|
|
33
|
+
* @example isValidEdifactDtmFormat("602") // false (a partial value: not supported)
|
|
34
|
+
* @example isValidEdifactDtmFormat("801") // false (a quantity: not supported)
|
|
35
|
+
* @example isValidEdifactDtmFormat("0203") // false (matching is exact)
|
|
36
|
+
* @example isValidEdifactDtmFormat(203) // false (a code is a string)
|
|
37
|
+
* @example isValidEdifactDtmFormat(null) // false
|
|
38
|
+
*/
|
|
39
|
+
export declare function isValidEdifactDtmFormat(format: unknown): format is EdifactDtmFormat;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { EDIFACT_DTM_FORMATS } from "../../internal/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return true when `format` is a UN/EDIFACT data element 2379 format code that the EDIFACT
|
|
4
|
+
* functions read and write.
|
|
5
|
+
*
|
|
6
|
+
* - The 11 supported codes are `102` (a date); `401`, `402` (a time); `203`, `204` (a date and
|
|
7
|
+
* time with no offset); `205`, `208`, `303`, `304` (a date and time with an offset); `718` (a
|
|
8
|
+
* period of dates) and `719` (a period of date-times). `classifyEdifactDtmFormat` names the
|
|
9
|
+
* kind of a code, and each kind has its own parser, formatter and validator.
|
|
10
|
+
* - A code with a two-digit year returns false: `101`, `201`, `202`, `206`, `207`, `301`,
|
|
11
|
+
* `302`, `713` and `717`. UN/EDIFACT does not say which century `YY` belongs to; read such a
|
|
12
|
+
* value with `parseDateWithPattern` or `parseDateTimeWithPattern`, a `yy` pattern and its
|
|
13
|
+
* `yearWindow` option.
|
|
14
|
+
* - `209` and `404` (a time with an offset and no date) and `406` (an offset alone) return
|
|
15
|
+
* false: none names a date, a time, a date-time or an instant.
|
|
16
|
+
* - Every other 2379 code returns false: the day-first and month-first dates `2`–`5`, `10`
|
|
17
|
+
* (`CCYYMMDDTHHMM`), `103`, the ordinal date `105`, `210`, `307`, `308`, the time spans
|
|
18
|
+
* `501`–`503`, `711`, the partial values, the weekday period `720` and the quantities (`801`
|
|
19
|
+
* and up).
|
|
20
|
+
* - Matching is exact: `" 203"`, `"0203"` and the number `203` are not codes.
|
|
21
|
+
* - Accepts any input type and returns false for non-string values.
|
|
22
|
+
* - A parser returns its sentinel for a code it does not read, the same sentinel it returns for
|
|
23
|
+
* a value that does not fit its code. Check the code here to tell an unsupported format apart
|
|
24
|
+
* from bad data.
|
|
25
|
+
*
|
|
26
|
+
* @param format candidate value of any type
|
|
27
|
+
* @returns boolean indicating validity
|
|
28
|
+
*
|
|
29
|
+
* @example isValidEdifactDtmFormat("203") // true
|
|
30
|
+
* @example isValidEdifactDtmFormat("718") // true
|
|
31
|
+
* @example isValidEdifactDtmFormat("208") // true
|
|
32
|
+
* @example isValidEdifactDtmFormat("101") // false (a two-digit year: not read)
|
|
33
|
+
* @example isValidEdifactDtmFormat("602") // false (a partial value: not supported)
|
|
34
|
+
* @example isValidEdifactDtmFormat("801") // false (a quantity: not supported)
|
|
35
|
+
* @example isValidEdifactDtmFormat("0203") // false (matching is exact)
|
|
36
|
+
* @example isValidEdifactDtmFormat(203) // false (a code is a string)
|
|
37
|
+
* @example isValidEdifactDtmFormat(null) // false
|
|
38
|
+
*/
|
|
39
|
+
export function isValidEdifactDtmFormat(format) {
|
|
40
|
+
return (typeof format === "string" &&
|
|
41
|
+
EDIFACT_DTM_FORMATS.includes(format));
|
|
42
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { EdifactOffsetDateTimeFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return true when `value` is a UN/EDIFACT `DTM` value (data element 2380) that states a real
|
|
4
|
+
* date and time with an offset from UTC, in a format code that carries one (data element 2379).
|
|
5
|
+
*
|
|
6
|
+
* ### Format codes
|
|
7
|
+
* | Code | Mask | The directory's description |
|
|
8
|
+
* |---|---|---|
|
|
9
|
+
* | `205` | `CCYYMMDDHHMMZHHMM` | "Calendar date including time and time zone expressed in hours and minutes." |
|
|
10
|
+
* | `208` | `CCYYMMDDHHMMSSZHHMM` | "Calendar date including time with seconds, with Time Zone" (D.12A and later) |
|
|
11
|
+
* | `303` | `CCYYMMDDHHMMZZZ` | "See 203 plus Z=Time zone." |
|
|
12
|
+
* | `304` | `CCYYMMDDHHMMSSZZZ` | "See 204 plus Z=Time zone." |
|
|
13
|
+
*
|
|
14
|
+
* - True exactly when `parseEdifactOffsetDateTime` returns a value for the same arguments: the
|
|
15
|
+
* validator calls the parser, so the two cannot disagree.
|
|
16
|
+
* - The three `ZZZ` characters of `303` and `304` are valid only as an offset: a signed hour
|
|
17
|
+
* from `00` to `23`, `UTC` or `GMT`. An abbreviation such as `CET`, a broken offset (`+24`)
|
|
18
|
+
* and a lone `Z` are false.
|
|
19
|
+
* - Takes the unescaped element value: `"202406151430?+02"` is false.
|
|
20
|
+
* - Checks the calendar as well as the shape: 29 February 2023, hour 24 and second 60 are
|
|
21
|
+
* false.
|
|
22
|
+
* - False for any other code, a code of another kind included; check a code alone with
|
|
23
|
+
* `isValidEdifactDtmFormat`. False for a non-string argument.
|
|
24
|
+
*
|
|
25
|
+
* @param value The data element 2380 value, unescaped (e.g. "202406151430+0200")
|
|
26
|
+
* @param format The data element 2379 format code
|
|
27
|
+
* @returns boolean indicating validity
|
|
28
|
+
*
|
|
29
|
+
* @example isValidEdifactOffsetDateTime("202406151430+0200", "205") // true
|
|
30
|
+
* @example isValidEdifactOffsetDateTime("20240615143045+0530", "208") // true
|
|
31
|
+
* @example isValidEdifactOffsetDateTime("202406151430UTC", "303") // true
|
|
32
|
+
* @example isValidEdifactOffsetDateTime("20240615143045-05", "304") // true
|
|
33
|
+
* @example isValidEdifactOffsetDateTime("202406151430CET", "303") // false (an abbreviation names no offset)
|
|
34
|
+
* @example isValidEdifactOffsetDateTime("202406151430", "205") // false (no offset)
|
|
35
|
+
*/
|
|
36
|
+
export declare function isValidEdifactOffsetDateTime(value: string, format: EdifactOffsetDateTimeFormat): boolean;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { parseEdifactOffsetDateTime } from "../parse/parseEdifactOffsetDateTime.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return true when `value` is a UN/EDIFACT `DTM` value (data element 2380) that states a real
|
|
4
|
+
* date and time with an offset from UTC, in a format code that carries one (data element 2379).
|
|
5
|
+
*
|
|
6
|
+
* ### Format codes
|
|
7
|
+
* | Code | Mask | The directory's description |
|
|
8
|
+
* |---|---|---|
|
|
9
|
+
* | `205` | `CCYYMMDDHHMMZHHMM` | "Calendar date including time and time zone expressed in hours and minutes." |
|
|
10
|
+
* | `208` | `CCYYMMDDHHMMSSZHHMM` | "Calendar date including time with seconds, with Time Zone" (D.12A and later) |
|
|
11
|
+
* | `303` | `CCYYMMDDHHMMZZZ` | "See 203 plus Z=Time zone." |
|
|
12
|
+
* | `304` | `CCYYMMDDHHMMSSZZZ` | "See 204 plus Z=Time zone." |
|
|
13
|
+
*
|
|
14
|
+
* - True exactly when `parseEdifactOffsetDateTime` returns a value for the same arguments: the
|
|
15
|
+
* validator calls the parser, so the two cannot disagree.
|
|
16
|
+
* - The three `ZZZ` characters of `303` and `304` are valid only as an offset: a signed hour
|
|
17
|
+
* from `00` to `23`, `UTC` or `GMT`. An abbreviation such as `CET`, a broken offset (`+24`)
|
|
18
|
+
* and a lone `Z` are false.
|
|
19
|
+
* - Takes the unescaped element value: `"202406151430?+02"` is false.
|
|
20
|
+
* - Checks the calendar as well as the shape: 29 February 2023, hour 24 and second 60 are
|
|
21
|
+
* false.
|
|
22
|
+
* - False for any other code, a code of another kind included; check a code alone with
|
|
23
|
+
* `isValidEdifactDtmFormat`. False for a non-string argument.
|
|
24
|
+
*
|
|
25
|
+
* @param value The data element 2380 value, unescaped (e.g. "202406151430+0200")
|
|
26
|
+
* @param format The data element 2379 format code
|
|
27
|
+
* @returns boolean indicating validity
|
|
28
|
+
*
|
|
29
|
+
* @example isValidEdifactOffsetDateTime("202406151430+0200", "205") // true
|
|
30
|
+
* @example isValidEdifactOffsetDateTime("20240615143045+0530", "208") // true
|
|
31
|
+
* @example isValidEdifactOffsetDateTime("202406151430UTC", "303") // true
|
|
32
|
+
* @example isValidEdifactOffsetDateTime("20240615143045-05", "304") // true
|
|
33
|
+
* @example isValidEdifactOffsetDateTime("202406151430CET", "303") // false (an abbreviation names no offset)
|
|
34
|
+
* @example isValidEdifactOffsetDateTime("202406151430", "205") // false (no offset)
|
|
35
|
+
*/
|
|
36
|
+
export function isValidEdifactOffsetDateTime(value, format) {
|
|
37
|
+
return parseEdifactOffsetDateTime(value, format) !== "";
|
|
38
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { EdifactTimeFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return true when `value` is a UN/EDIFACT `DTM` value (data element 2380) that states a real
|
|
4
|
+
* time of day in a time format code (data element 2379).
|
|
5
|
+
*
|
|
6
|
+
* ### Format codes
|
|
7
|
+
* | Code | Mask | The directory's description |
|
|
8
|
+
* |---|---|---|
|
|
9
|
+
* | `401` | `HHMM` | "Time without seconds: H = Hour; m = Minute." |
|
|
10
|
+
* | `402` | `HHMMSS` | "Time with seconds: H = Hour; m = Minute; s = Seconds." |
|
|
11
|
+
*
|
|
12
|
+
* - True exactly when `parseEdifactTime` returns a time for the same arguments: the validator
|
|
13
|
+
* calls the parser, so the two cannot disagree.
|
|
14
|
+
* - A value is valid only against its code: `"1430"` is a `401` value and not a `402` one.
|
|
15
|
+
* - Hour 24, minute 60 and second 60 are false.
|
|
16
|
+
* - False for any other code, a code of another kind included; check a code alone with
|
|
17
|
+
* `isValidEdifactDtmFormat`. False for a non-string argument.
|
|
18
|
+
*
|
|
19
|
+
* @param value The data element 2380 value (e.g. "1430")
|
|
20
|
+
* @param format The data element 2379 format code
|
|
21
|
+
* @returns boolean indicating validity
|
|
22
|
+
*
|
|
23
|
+
* @example isValidEdifactTime("1430", "401") // true
|
|
24
|
+
* @example isValidEdifactTime("143045", "402") // true
|
|
25
|
+
* @example isValidEdifactTime("1430", "402") // false (four digits is a 401 value)
|
|
26
|
+
* @example isValidEdifactTime("2400", "401") // false (hour 24)
|
|
27
|
+
*/
|
|
28
|
+
export declare function isValidEdifactTime(value: string, format: EdifactTimeFormat): boolean;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { parseEdifactTime } from "../parse/parseEdifactTime.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return true when `value` is a UN/EDIFACT `DTM` value (data element 2380) that states a real
|
|
4
|
+
* time of day in a time format code (data element 2379).
|
|
5
|
+
*
|
|
6
|
+
* ### Format codes
|
|
7
|
+
* | Code | Mask | The directory's description |
|
|
8
|
+
* |---|---|---|
|
|
9
|
+
* | `401` | `HHMM` | "Time without seconds: H = Hour; m = Minute." |
|
|
10
|
+
* | `402` | `HHMMSS` | "Time with seconds: H = Hour; m = Minute; s = Seconds." |
|
|
11
|
+
*
|
|
12
|
+
* - True exactly when `parseEdifactTime` returns a time for the same arguments: the validator
|
|
13
|
+
* calls the parser, so the two cannot disagree.
|
|
14
|
+
* - A value is valid only against its code: `"1430"` is a `401` value and not a `402` one.
|
|
15
|
+
* - Hour 24, minute 60 and second 60 are false.
|
|
16
|
+
* - False for any other code, a code of another kind included; check a code alone with
|
|
17
|
+
* `isValidEdifactDtmFormat`. False for a non-string argument.
|
|
18
|
+
*
|
|
19
|
+
* @param value The data element 2380 value (e.g. "1430")
|
|
20
|
+
* @param format The data element 2379 format code
|
|
21
|
+
* @returns boolean indicating validity
|
|
22
|
+
*
|
|
23
|
+
* @example isValidEdifactTime("1430", "401") // true
|
|
24
|
+
* @example isValidEdifactTime("143045", "402") // true
|
|
25
|
+
* @example isValidEdifactTime("1430", "402") // false (four digits is a 401 value)
|
|
26
|
+
* @example isValidEdifactTime("2400", "401") // false (hour 24)
|
|
27
|
+
*/
|
|
28
|
+
export function isValidEdifactTime(value, format) {
|
|
29
|
+
return parseEdifactTime(value, format) !== "";
|
|
30
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate whether a value carries the two required time fields of a GS1 EPCIS 2.0 event, each in
|
|
3
|
+
* the grammar GS1 publishes for it.
|
|
4
|
+
*
|
|
5
|
+
* EPCIS (ISO/IEC 19987) is GS1's event standard for supply-chain visibility. True exactly when
|
|
6
|
+
* `isValidEpcisEventTime` is true of `eventTime` and `isValidEpcisTimeZoneOffset` is true of
|
|
7
|
+
* `eventTimeZoneOffset`: this validator calls the two, and no check needs both fields at once.
|
|
8
|
+
* `parseEpcisEvent` returns a result for exactly the same values.
|
|
9
|
+
*
|
|
10
|
+
* - `eventTime` must match `epcisEventTime` (the `DateTimeStamp` pattern of the EPCIS XSD, the
|
|
11
|
+
* XML binding; the JSON schema says only `format: date-time`) and name a real instant: `YYYY-MM-DDTHH:MM:SS`, an optional fraction of up to nine digits, then
|
|
12
|
+
* `Z` or a `±HH:MM` offset. A day the month does not have (`2024-02-30`) is false, although the
|
|
13
|
+
* pattern matches it.
|
|
14
|
+
* - `eventTimeZoneOffset` must match `epcisTimeZoneOffset` (the pattern the EPCIS JSON schema
|
|
15
|
+
* gives; the XSD types the field as a bare `xsd:string`): `±HH:MM` from `-14:00` to `+14:00`,
|
|
16
|
+
* the rule of EPCIS Standard Release 2.0 §7.4.1 (https://ref.gs1.org/standards/epcis/). A
|
|
17
|
+
* missing offset, `Z`, `+0200` and `+02` are false.
|
|
18
|
+
* - The two fields are independent: an `eventTime` written with one offset and an
|
|
19
|
+
* `eventTimeZoneOffset` that is another is valid. EPCIS 2.0 §7.4.1.1 (non-normative): "there
|
|
20
|
+
* is no requirement that the time zone specifier in the XML representation of eventTime be the
|
|
21
|
+
* local time zone offset where the event was captured".
|
|
22
|
+
* - **GMT rule:** a fraction longer than nine digits is false. The XSD allows any length; an
|
|
23
|
+
* instant holds nanoseconds, and `parseEpcisEvent` does not drop digits.
|
|
24
|
+
* - Only the two fields are checked. `recordTime` and every other member are ignored, so this
|
|
25
|
+
* does not validate a whole event against the EPCIS schema.
|
|
26
|
+
* - Returns false for a value that is not an object.
|
|
27
|
+
*
|
|
28
|
+
* @param event candidate EPCIS event, or any object with `eventTime` and `eventTimeZoneOffset`
|
|
29
|
+
* @returns boolean indicating whether `parseEpcisEvent` reads the event, or false on invalid input
|
|
30
|
+
*
|
|
31
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30:00Z", eventTimeZoneOffset: "-05:00" }) // true
|
|
32
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T10:00:00+02:00", eventTimeZoneOffset: "-05:00" }) // true (the two offsets need not agree)
|
|
33
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30:00.123456789Z", eventTimeZoneOffset: "+14:00" }) // true
|
|
34
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30:00Z" }) // false (eventTimeZoneOffset is required)
|
|
35
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30:00Z", eventTimeZoneOffset: "Z" }) // false (a designator, not an offset)
|
|
36
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30:00Z", eventTimeZoneOffset: "+0200" }) // false (no colon)
|
|
37
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30Z", eventTimeZoneOffset: "-05:00" }) // false (seconds are required)
|
|
38
|
+
* @example isValidEpcisEvent({ eventTime: "2024-02-30T14:30:00Z", eventTimeZoneOffset: "-05:00" }) // false (30 February)
|
|
39
|
+
* @example isValidEpcisEvent("2024-06-15T14:30:00Z") // false (not an event)
|
|
40
|
+
*/
|
|
41
|
+
export declare function isValidEpcisEvent(event: unknown): boolean;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { isObject } from "../../internal/index.js";
|
|
2
|
+
import { isValidEpcisEventTime } from "./isValidEpcisEventTime.js";
|
|
3
|
+
import { isValidEpcisTimeZoneOffset } from "./isValidEpcisTimeZoneOffset.js";
|
|
4
|
+
/**
|
|
5
|
+
* Validate whether a value carries the two required time fields of a GS1 EPCIS 2.0 event, each in
|
|
6
|
+
* the grammar GS1 publishes for it.
|
|
7
|
+
*
|
|
8
|
+
* EPCIS (ISO/IEC 19987) is GS1's event standard for supply-chain visibility. True exactly when
|
|
9
|
+
* `isValidEpcisEventTime` is true of `eventTime` and `isValidEpcisTimeZoneOffset` is true of
|
|
10
|
+
* `eventTimeZoneOffset`: this validator calls the two, and no check needs both fields at once.
|
|
11
|
+
* `parseEpcisEvent` returns a result for exactly the same values.
|
|
12
|
+
*
|
|
13
|
+
* - `eventTime` must match `epcisEventTime` (the `DateTimeStamp` pattern of the EPCIS XSD, the
|
|
14
|
+
* XML binding; the JSON schema says only `format: date-time`) and name a real instant: `YYYY-MM-DDTHH:MM:SS`, an optional fraction of up to nine digits, then
|
|
15
|
+
* `Z` or a `±HH:MM` offset. A day the month does not have (`2024-02-30`) is false, although the
|
|
16
|
+
* pattern matches it.
|
|
17
|
+
* - `eventTimeZoneOffset` must match `epcisTimeZoneOffset` (the pattern the EPCIS JSON schema
|
|
18
|
+
* gives; the XSD types the field as a bare `xsd:string`): `±HH:MM` from `-14:00` to `+14:00`,
|
|
19
|
+
* the rule of EPCIS Standard Release 2.0 §7.4.1 (https://ref.gs1.org/standards/epcis/). A
|
|
20
|
+
* missing offset, `Z`, `+0200` and `+02` are false.
|
|
21
|
+
* - The two fields are independent: an `eventTime` written with one offset and an
|
|
22
|
+
* `eventTimeZoneOffset` that is another is valid. EPCIS 2.0 §7.4.1.1 (non-normative): "there
|
|
23
|
+
* is no requirement that the time zone specifier in the XML representation of eventTime be the
|
|
24
|
+
* local time zone offset where the event was captured".
|
|
25
|
+
* - **GMT rule:** a fraction longer than nine digits is false. The XSD allows any length; an
|
|
26
|
+
* instant holds nanoseconds, and `parseEpcisEvent` does not drop digits.
|
|
27
|
+
* - Only the two fields are checked. `recordTime` and every other member are ignored, so this
|
|
28
|
+
* does not validate a whole event against the EPCIS schema.
|
|
29
|
+
* - Returns false for a value that is not an object.
|
|
30
|
+
*
|
|
31
|
+
* @param event candidate EPCIS event, or any object with `eventTime` and `eventTimeZoneOffset`
|
|
32
|
+
* @returns boolean indicating whether `parseEpcisEvent` reads the event, or false on invalid input
|
|
33
|
+
*
|
|
34
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30:00Z", eventTimeZoneOffset: "-05:00" }) // true
|
|
35
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T10:00:00+02:00", eventTimeZoneOffset: "-05:00" }) // true (the two offsets need not agree)
|
|
36
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30:00.123456789Z", eventTimeZoneOffset: "+14:00" }) // true
|
|
37
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30:00Z" }) // false (eventTimeZoneOffset is required)
|
|
38
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30:00Z", eventTimeZoneOffset: "Z" }) // false (a designator, not an offset)
|
|
39
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30:00Z", eventTimeZoneOffset: "+0200" }) // false (no colon)
|
|
40
|
+
* @example isValidEpcisEvent({ eventTime: "2024-06-15T14:30Z", eventTimeZoneOffset: "-05:00" }) // false (seconds are required)
|
|
41
|
+
* @example isValidEpcisEvent({ eventTime: "2024-02-30T14:30:00Z", eventTimeZoneOffset: "-05:00" }) // false (30 February)
|
|
42
|
+
* @example isValidEpcisEvent("2024-06-15T14:30:00Z") // false (not an event)
|
|
43
|
+
*/
|
|
44
|
+
export function isValidEpcisEvent(event) {
|
|
45
|
+
try {
|
|
46
|
+
if (!isObject(event)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
// Each field is read once, in the order `parseEpcisEvent` reads them.
|
|
50
|
+
const { eventTime, eventTimeZoneOffset } = event;
|
|
51
|
+
return (isValidEpcisEventTime(eventTime) &&
|
|
52
|
+
isValidEpcisTimeZoneOffset(eventTimeZoneOffset));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Never throws (Core Rule 3): a hostile argument is invalid input, not an exception.
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return true when `value` is a real GS1 EPCIS 2.0 `eventTime`: the moment a supply-chain event
|
|
3
|
+
* happened, written as a date and time with `Z` or a UTC offset.
|
|
4
|
+
*
|
|
5
|
+
* EPCIS (ISO/IEC 19987) is GS1's event standard for supply-chain visibility. This is the check
|
|
6
|
+
* `isValidEpcisEvent` applies to the event's `eventTime` field: that validator calls this one.
|
|
7
|
+
*
|
|
8
|
+
* - The value must match `epcisEventTime`, the `DateTimeStamp` pattern of the EPCIS XSD:
|
|
9
|
+
* `YYYY-MM-DDTHH:MM:SS`, an optional fraction, then `Z` or a `±HH:MM` offset up to `14:00`.
|
|
10
|
+
* Seconds are required, `T` and `Z` are upper-case, and nothing may follow.
|
|
11
|
+
* - Checks the calendar as well as the shape. The pattern proves the shape alone, so it matches
|
|
12
|
+
* a day the month does not have: `2024-02-30` and `2023-02-29` are false here.
|
|
13
|
+
* - **GMT rule:** a fraction longer than nine digits is false, although the pattern matches a
|
|
14
|
+
* fraction of any length. An instant holds nanoseconds, and `parseEpcisEvent` does not drop
|
|
15
|
+
* digits.
|
|
16
|
+
* - False for a leap second (`:60`), a space separator, an expanded year and a bracketed zone,
|
|
17
|
+
* none of which the pattern matches.
|
|
18
|
+
* - An event also needs an `eventTimeZoneOffset`: check it with `isValidEpcisTimeZoneOffset`, or
|
|
19
|
+
* both fields with `isValidEpcisEvent`. Read an event with `parseEpcisEvent`.
|
|
20
|
+
* - False for a non-string.
|
|
21
|
+
*
|
|
22
|
+
* @param value candidate EPCIS `eventTime` string
|
|
23
|
+
* @returns boolean indicating validity
|
|
24
|
+
*
|
|
25
|
+
* @example isValidEpcisEventTime("2024-06-15T14:30:00Z") // true
|
|
26
|
+
* @example isValidEpcisEventTime("2024-06-15T10:00:00.123+02:00") // true
|
|
27
|
+
* @example isValidEpcisEventTime("2024-02-30T14:30:00Z") // false (30 February; the epcisEventTime pattern matches it)
|
|
28
|
+
* @example isValidEpcisEventTime("2023-02-29T00:00:00Z") // false (2023 has no 29 February; the epcisEventTime pattern matches it)
|
|
29
|
+
* @example isValidEpcisEventTime("2024-06-15T14:30:00.1234567891Z") // false (finer than a nanosecond; the epcisEventTime pattern matches it)
|
|
30
|
+
* @example isValidEpcisEventTime("2024-06-15T14:30Z") // false (seconds are required)
|
|
31
|
+
* @example isValidEpcisEventTime("2024-06-15T14:30:00") // false (Z or an offset is required)
|
|
32
|
+
*/
|
|
33
|
+
export declare function isValidEpcisEventTime(value: string): boolean;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Temporal } from "../../internal/temporal.js";
|
|
2
|
+
import { epcisEventTime } from "../../regex/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Return true when `value` is a real GS1 EPCIS 2.0 `eventTime`: the moment a supply-chain event
|
|
5
|
+
* happened, written as a date and time with `Z` or a UTC offset.
|
|
6
|
+
*
|
|
7
|
+
* EPCIS (ISO/IEC 19987) is GS1's event standard for supply-chain visibility. This is the check
|
|
8
|
+
* `isValidEpcisEvent` applies to the event's `eventTime` field: that validator calls this one.
|
|
9
|
+
*
|
|
10
|
+
* - The value must match `epcisEventTime`, the `DateTimeStamp` pattern of the EPCIS XSD:
|
|
11
|
+
* `YYYY-MM-DDTHH:MM:SS`, an optional fraction, then `Z` or a `±HH:MM` offset up to `14:00`.
|
|
12
|
+
* Seconds are required, `T` and `Z` are upper-case, and nothing may follow.
|
|
13
|
+
* - Checks the calendar as well as the shape. The pattern proves the shape alone, so it matches
|
|
14
|
+
* a day the month does not have: `2024-02-30` and `2023-02-29` are false here.
|
|
15
|
+
* - **GMT rule:** a fraction longer than nine digits is false, although the pattern matches a
|
|
16
|
+
* fraction of any length. An instant holds nanoseconds, and `parseEpcisEvent` does not drop
|
|
17
|
+
* digits.
|
|
18
|
+
* - False for a leap second (`:60`), a space separator, an expanded year and a bracketed zone,
|
|
19
|
+
* none of which the pattern matches.
|
|
20
|
+
* - An event also needs an `eventTimeZoneOffset`: check it with `isValidEpcisTimeZoneOffset`, or
|
|
21
|
+
* both fields with `isValidEpcisEvent`. Read an event with `parseEpcisEvent`.
|
|
22
|
+
* - False for a non-string.
|
|
23
|
+
*
|
|
24
|
+
* @param value candidate EPCIS `eventTime` string
|
|
25
|
+
* @returns boolean indicating validity
|
|
26
|
+
*
|
|
27
|
+
* @example isValidEpcisEventTime("2024-06-15T14:30:00Z") // true
|
|
28
|
+
* @example isValidEpcisEventTime("2024-06-15T10:00:00.123+02:00") // true
|
|
29
|
+
* @example isValidEpcisEventTime("2024-02-30T14:30:00Z") // false (30 February; the epcisEventTime pattern matches it)
|
|
30
|
+
* @example isValidEpcisEventTime("2023-02-29T00:00:00Z") // false (2023 has no 29 February; the epcisEventTime pattern matches it)
|
|
31
|
+
* @example isValidEpcisEventTime("2024-06-15T14:30:00.1234567891Z") // false (finer than a nanosecond; the epcisEventTime pattern matches it)
|
|
32
|
+
* @example isValidEpcisEventTime("2024-06-15T14:30Z") // false (seconds are required)
|
|
33
|
+
* @example isValidEpcisEventTime("2024-06-15T14:30:00") // false (Z or an offset is required)
|
|
34
|
+
*/
|
|
35
|
+
export function isValidEpcisEventTime(value) {
|
|
36
|
+
if (typeof value !== "string" || !epcisEventTime.test(value)) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
// The two checks the pattern cannot make: a day the month does not have, and a fraction past
|
|
41
|
+
// nine digits (Temporal's grammar stops at nanoseconds). Both are a RangeError.
|
|
42
|
+
Temporal.Instant.from(value);
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return true when `value` is a GS1 EPCIS 2.0 `eventTimeZoneOffset`: the UTC offset the local
|
|
3
|
+
* clock ran at where a supply-chain event happened, written `±HH:MM`.
|
|
4
|
+
*
|
|
5
|
+
* EPCIS (ISO/IEC 19987) is GS1's event standard for supply-chain visibility. This is the check
|
|
6
|
+
* `isValidEpcisEvent` applies to the event's `eventTimeZoneOffset` field: that validator calls
|
|
7
|
+
* this one.
|
|
8
|
+
*
|
|
9
|
+
* - The value must match `epcisTimeZoneOffset`, the pattern the EPCIS JSON schema gives: `±HH:MM`
|
|
10
|
+
* from `-14:00` to `+14:00`, the rule of EPCIS Standard Release 2.0 §7.4.1
|
|
11
|
+
* (https://ref.gs1.org/standards/epcis/).
|
|
12
|
+
* - **The pattern is the whole rule for a string.** Every value it matches is an offset Temporal
|
|
13
|
+
* reads, so this validator and `epcisTimeZoneOffset.test` agree on every string; the validator
|
|
14
|
+
* adds only the answer false for a non-string.
|
|
15
|
+
* - `Z`, `+0200`, `+02`, an offset with seconds and an offset past `14:00` are false.
|
|
16
|
+
* - `-00:00` is true: the GS1 pattern matches it. `parseEpcisEvent` returns it as `+00:00`.
|
|
17
|
+
* - It need not agree with an offset written in the event's `eventTime`. Check that field with
|
|
18
|
+
* `isValidEpcisEventTime`, or both with `isValidEpcisEvent`.
|
|
19
|
+
*
|
|
20
|
+
* @param value candidate EPCIS `eventTimeZoneOffset` string
|
|
21
|
+
* @returns boolean indicating validity
|
|
22
|
+
*
|
|
23
|
+
* @example isValidEpcisTimeZoneOffset("-05:00") // true
|
|
24
|
+
* @example isValidEpcisTimeZoneOffset("+14:00") // true
|
|
25
|
+
* @example isValidEpcisTimeZoneOffset("+14:01") // false (past the range GS1 allows)
|
|
26
|
+
* @example isValidEpcisTimeZoneOffset("Z") // false (a designator, not an offset)
|
|
27
|
+
* @example isValidEpcisTimeZoneOffset("+0200") // false (no colon)
|
|
28
|
+
* @example isValidEpcisTimeZoneOffset("+05:30:00") // false (seconds)
|
|
29
|
+
*/
|
|
30
|
+
export declare function isValidEpcisTimeZoneOffset(value: string): boolean;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { parseUtcOffsetNanoseconds } from "../../internal/index.js";
|
|
2
|
+
import { epcisTimeZoneOffset } from "../../regex/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Return true when `value` is a GS1 EPCIS 2.0 `eventTimeZoneOffset`: the UTC offset the local
|
|
5
|
+
* clock ran at where a supply-chain event happened, written `±HH:MM`.
|
|
6
|
+
*
|
|
7
|
+
* EPCIS (ISO/IEC 19987) is GS1's event standard for supply-chain visibility. This is the check
|
|
8
|
+
* `isValidEpcisEvent` applies to the event's `eventTimeZoneOffset` field: that validator calls
|
|
9
|
+
* this one.
|
|
10
|
+
*
|
|
11
|
+
* - The value must match `epcisTimeZoneOffset`, the pattern the EPCIS JSON schema gives: `±HH:MM`
|
|
12
|
+
* from `-14:00` to `+14:00`, the rule of EPCIS Standard Release 2.0 §7.4.1
|
|
13
|
+
* (https://ref.gs1.org/standards/epcis/).
|
|
14
|
+
* - **The pattern is the whole rule for a string.** Every value it matches is an offset Temporal
|
|
15
|
+
* reads, so this validator and `epcisTimeZoneOffset.test` agree on every string; the validator
|
|
16
|
+
* adds only the answer false for a non-string.
|
|
17
|
+
* - `Z`, `+0200`, `+02`, an offset with seconds and an offset past `14:00` are false.
|
|
18
|
+
* - `-00:00` is true: the GS1 pattern matches it. `parseEpcisEvent` returns it as `+00:00`.
|
|
19
|
+
* - It need not agree with an offset written in the event's `eventTime`. Check that field with
|
|
20
|
+
* `isValidEpcisEventTime`, or both with `isValidEpcisEvent`.
|
|
21
|
+
*
|
|
22
|
+
* @param value candidate EPCIS `eventTimeZoneOffset` string
|
|
23
|
+
* @returns boolean indicating validity
|
|
24
|
+
*
|
|
25
|
+
* @example isValidEpcisTimeZoneOffset("-05:00") // true
|
|
26
|
+
* @example isValidEpcisTimeZoneOffset("+14:00") // true
|
|
27
|
+
* @example isValidEpcisTimeZoneOffset("+14:01") // false (past the range GS1 allows)
|
|
28
|
+
* @example isValidEpcisTimeZoneOffset("Z") // false (a designator, not an offset)
|
|
29
|
+
* @example isValidEpcisTimeZoneOffset("+0200") // false (no colon)
|
|
30
|
+
* @example isValidEpcisTimeZoneOffset("+05:30:00") // false (seconds)
|
|
31
|
+
*/
|
|
32
|
+
export function isValidEpcisTimeZoneOffset(value) {
|
|
33
|
+
// `parseEpcisEvent` reads the offset through Temporal after the pattern, so this does too. No
|
|
34
|
+
// string the pattern matches fails that read: it is here so the two cannot drift.
|
|
35
|
+
return (typeof value === "string" &&
|
|
36
|
+
epcisTimeZoneOffset.test(value) &&
|
|
37
|
+
parseUtcOffsetNanoseconds(value) !== null);
|
|
38
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { X12DateFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return true when `value` is an X12 Date Time Period value (data element 1251) that states a
|
|
4
|
+
* real calendar date in a date format qualifier (data element 1250).
|
|
5
|
+
*
|
|
6
|
+
* ### Format codes
|
|
7
|
+
* | Code | Mask | The dictionary's definition |
|
|
8
|
+
* |---|---|---|
|
|
9
|
+
* | `D8` | `CCYYMMDD` | "Date Expressed in Format CCYYMMDD" |
|
|
10
|
+
* | `DB` | `MMDDCCYY` | "Date Expressed in Format MMDDCCYY" |
|
|
11
|
+
*
|
|
12
|
+
* - True exactly when `parseX12Date` returns a date for the same arguments: the validator calls
|
|
13
|
+
* the parser, so the two cannot disagree.
|
|
14
|
+
* - A value is valid only against its code: `"06152024"` is a `DB` value and not a `D8` one.
|
|
15
|
+
* - Checks the calendar as well as the shape: 31 June and 29 February 2023 are false.
|
|
16
|
+
* - False for any other code, a code of another kind included; check a code alone with
|
|
17
|
+
* `isValidX12DateTimePeriodFormat`. False for a non-string argument.
|
|
18
|
+
*
|
|
19
|
+
* @param value The data element 1251 value (e.g. "20240615")
|
|
20
|
+
* @param format X12 data element 1250 format qualifier
|
|
21
|
+
* @returns boolean indicating validity
|
|
22
|
+
*
|
|
23
|
+
* @example isValidX12Date("20240615", "D8") // true
|
|
24
|
+
* @example isValidX12Date("06152024", "DB") // true
|
|
25
|
+
* @example isValidX12Date("06152024", "D8") // false (20 is not a month)
|
|
26
|
+
* @example isValidX12Date("20230229", "D8") // false (2023 has no 29 February)
|
|
27
|
+
*/
|
|
28
|
+
export declare function isValidX12Date(value: string, format: X12DateFormat): boolean;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { parseX12Date } from "../parse/parseX12Date.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return true when `value` is an X12 Date Time Period value (data element 1251) that states a
|
|
4
|
+
* real calendar date in a date format qualifier (data element 1250).
|
|
5
|
+
*
|
|
6
|
+
* ### Format codes
|
|
7
|
+
* | Code | Mask | The dictionary's definition |
|
|
8
|
+
* |---|---|---|
|
|
9
|
+
* | `D8` | `CCYYMMDD` | "Date Expressed in Format CCYYMMDD" |
|
|
10
|
+
* | `DB` | `MMDDCCYY` | "Date Expressed in Format MMDDCCYY" |
|
|
11
|
+
*
|
|
12
|
+
* - True exactly when `parseX12Date` returns a date for the same arguments: the validator calls
|
|
13
|
+
* the parser, so the two cannot disagree.
|
|
14
|
+
* - A value is valid only against its code: `"06152024"` is a `DB` value and not a `D8` one.
|
|
15
|
+
* - Checks the calendar as well as the shape: 31 June and 29 February 2023 are false.
|
|
16
|
+
* - False for any other code, a code of another kind included; check a code alone with
|
|
17
|
+
* `isValidX12DateTimePeriodFormat`. False for a non-string argument.
|
|
18
|
+
*
|
|
19
|
+
* @param value The data element 1251 value (e.g. "20240615")
|
|
20
|
+
* @param format X12 data element 1250 format qualifier
|
|
21
|
+
* @returns boolean indicating validity
|
|
22
|
+
*
|
|
23
|
+
* @example isValidX12Date("20240615", "D8") // true
|
|
24
|
+
* @example isValidX12Date("06152024", "DB") // true
|
|
25
|
+
* @example isValidX12Date("06152024", "D8") // false (20 is not a month)
|
|
26
|
+
* @example isValidX12Date("20230229", "D8") // false (2023 has no 29 February)
|
|
27
|
+
*/
|
|
28
|
+
export function isValidX12Date(value, format) {
|
|
29
|
+
return parseX12Date(value, format) !== "";
|
|
30
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return true when the date and the time of an X12 segment, sent as two elements, together
|
|
3
|
+
* state a real local date and time.
|
|
4
|
+
*
|
|
5
|
+
* ### The two elements
|
|
6
|
+
* | Element | Name | The dictionary's definition |
|
|
7
|
+
* |---|---|---|
|
|
8
|
+
* | [373](https://www.stedi.com/edi/x12-005010/element/373) | Date | "Date expressed as CCYYMMDD where CC represents the first two digits of the calendar year" |
|
|
9
|
+
* | [337](https://www.stedi.com/edi/x12-005010/element/337) | Time | "Time expressed in 24-hour clock time as follows: HHMM, or HHMMSS, or HHMMSSD, or HHMMSSDD" |
|
|
10
|
+
*
|
|
11
|
+
* - True exactly when `parseX12DateAndTime` returns a date-time for the same arguments: the
|
|
12
|
+
* validator calls the parser, so the two cannot disagree.
|
|
13
|
+
* - **Both elements are required.** A missing or empty date or time is false: check a date alone
|
|
14
|
+
* with `isValidX12Date(value, "D8")` and a time alone with `isValidX12Time`.
|
|
15
|
+
* - Checks the calendar as well as the shape: 29 February 2023, 31 June, hour 24 and minute or
|
|
16
|
+
* second 60 are false.
|
|
17
|
+
* - The date has a four-digit year and the time is 4, 6, 7 or 8 digits: a date of six digits and
|
|
18
|
+
* a time of 5 or 9 digits are false.
|
|
19
|
+
* - False for a non-string argument.
|
|
20
|
+
*
|
|
21
|
+
* @param date The data element 373 date as transmitted, `CCYYMMDD` (e.g. "20240615")
|
|
22
|
+
* @param time The data element 337 time as transmitted (e.g. "1430")
|
|
23
|
+
* @returns boolean indicating validity
|
|
24
|
+
*
|
|
25
|
+
* @example isValidX12DateAndTime("20240615", "1430") // true
|
|
26
|
+
* @example isValidX12DateAndTime("20240615", "14300012") // true (hundredths of a second)
|
|
27
|
+
* @example isValidX12DateAndTime("20240615", "") // false (both elements are required)
|
|
28
|
+
* @example isValidX12DateAndTime("20230229", "1430") // false (2023 has no 29 February)
|
|
29
|
+
* @example isValidX12DateAndTime("20240615", "2430") // false (hour 24)
|
|
30
|
+
* @example isValidX12DateAndTime("240615", "1430") // false (the date element has a four-digit year)
|
|
31
|
+
*/
|
|
32
|
+
export declare function isValidX12DateAndTime(date: string, time: string): boolean;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { parseX12DateAndTime } from "../parse/parseX12DateAndTime.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return true when the date and the time of an X12 segment, sent as two elements, together
|
|
4
|
+
* state a real local date and time.
|
|
5
|
+
*
|
|
6
|
+
* ### The two elements
|
|
7
|
+
* | Element | Name | The dictionary's definition |
|
|
8
|
+
* |---|---|---|
|
|
9
|
+
* | [373](https://www.stedi.com/edi/x12-005010/element/373) | Date | "Date expressed as CCYYMMDD where CC represents the first two digits of the calendar year" |
|
|
10
|
+
* | [337](https://www.stedi.com/edi/x12-005010/element/337) | Time | "Time expressed in 24-hour clock time as follows: HHMM, or HHMMSS, or HHMMSSD, or HHMMSSDD" |
|
|
11
|
+
*
|
|
12
|
+
* - True exactly when `parseX12DateAndTime` returns a date-time for the same arguments: the
|
|
13
|
+
* validator calls the parser, so the two cannot disagree.
|
|
14
|
+
* - **Both elements are required.** A missing or empty date or time is false: check a date alone
|
|
15
|
+
* with `isValidX12Date(value, "D8")` and a time alone with `isValidX12Time`.
|
|
16
|
+
* - Checks the calendar as well as the shape: 29 February 2023, 31 June, hour 24 and minute or
|
|
17
|
+
* second 60 are false.
|
|
18
|
+
* - The date has a four-digit year and the time is 4, 6, 7 or 8 digits: a date of six digits and
|
|
19
|
+
* a time of 5 or 9 digits are false.
|
|
20
|
+
* - False for a non-string argument.
|
|
21
|
+
*
|
|
22
|
+
* @param date The data element 373 date as transmitted, `CCYYMMDD` (e.g. "20240615")
|
|
23
|
+
* @param time The data element 337 time as transmitted (e.g. "1430")
|
|
24
|
+
* @returns boolean indicating validity
|
|
25
|
+
*
|
|
26
|
+
* @example isValidX12DateAndTime("20240615", "1430") // true
|
|
27
|
+
* @example isValidX12DateAndTime("20240615", "14300012") // true (hundredths of a second)
|
|
28
|
+
* @example isValidX12DateAndTime("20240615", "") // false (both elements are required)
|
|
29
|
+
* @example isValidX12DateAndTime("20230229", "1430") // false (2023 has no 29 February)
|
|
30
|
+
* @example isValidX12DateAndTime("20240615", "2430") // false (hour 24)
|
|
31
|
+
* @example isValidX12DateAndTime("240615", "1430") // false (the date element has a four-digit year)
|
|
32
|
+
*/
|
|
33
|
+
export function isValidX12DateAndTime(date, time) {
|
|
34
|
+
return parseX12DateAndTime(date, time) !== "";
|
|
35
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { X12DateRangeFormat } from "../../types/edi.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return true when `value` is an X12 Date Time Period value (data element 1251) that states a
|
|
4
|
+
* range between two real calendar dates, in a date range format qualifier (data element 1250).
|
|
5
|
+
*
|
|
6
|
+
* ### Format codes
|
|
7
|
+
* | Code | Mask | The dictionary's definition |
|
|
8
|
+
* |---|---|---|
|
|
9
|
+
* | `RD8` | `CCYYMMDD-CCYYMMDD` | "Range of Dates Expressed in Format CCYYMMDD-CCYYMMDD" |
|
|
10
|
+
* | `RD` | `MMDDCCYY-MMDDCCYY` | "Range of Dates Expressed in Format MMDDCCYY-MMDDCCYY" |
|
|
11
|
+
*
|
|
12
|
+
* - True exactly when `parseX12DateRange` returns a range for the same arguments: the validator
|
|
13
|
+
* calls the parser, so the two cannot disagree.
|
|
14
|
+
* - A range is valid with exactly one hyphen: `"2024061520240620"` is false.
|
|
15
|
+
* - A range whose end precedes its start is false; an end equal to its start is true.
|
|
16
|
+
* - Checks the calendar as well as the shape: 29 February 2023 in either date is false.
|
|
17
|
+
* - False for any other code, a code of another kind included; check a code alone with
|
|
18
|
+
* `isValidX12DateTimePeriodFormat`. False for a non-string argument.
|
|
19
|
+
*
|
|
20
|
+
* @param value The data element 1251 value (e.g. "20240615-20240620")
|
|
21
|
+
* @param format X12 data element 1250 format qualifier
|
|
22
|
+
* @returns boolean indicating validity
|
|
23
|
+
*
|
|
24
|
+
* @example isValidX12DateRange("20240615-20240620", "RD8") // true
|
|
25
|
+
* @example isValidX12DateRange("06152024-06202024", "RD") // true
|
|
26
|
+
* @example isValidX12DateRange("2024061520240620", "RD8") // false (a range is transmitted with its hyphen)
|
|
27
|
+
* @example isValidX12DateRange("20240620-20240615", "RD8") // false (the end precedes the start)
|
|
28
|
+
*/
|
|
29
|
+
export declare function isValidX12DateRange(value: string, format: X12DateRangeFormat): boolean;
|