@northguild/gmt 1.17.0 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -2480
- package/dist/calendar/calculate/bucketRange.d.ts +12 -4
- package/dist/calendar/calculate/bucketRange.js +20 -63
- package/dist/calendar/calculate/floorToZone.d.ts +14 -4
- package/dist/calendar/calculate/floorToZone.js +18 -9
- package/dist/calendar/calculate/getFiscalPeriod.d.ts +21 -8
- package/dist/calendar/calculate/getFiscalPeriod.js +9 -8
- package/dist/calendar/calculate/getIsoWeekDate.d.ts +10 -5
- package/dist/calendar/calculate/getIsoWeekDate.js +1 -5
- package/dist/calendar/calculate/getOrdinalDate.d.ts +10 -3
- package/dist/calendar/calculate/getOrdinalDate.js +2 -3
- package/dist/calendar/calculate/getQuarter.d.ts +21 -9
- package/dist/calendar/calculate/getQuarter.js +8 -12
- package/dist/calendar/hours/addOperatingTime.d.ts +59 -0
- package/dist/calendar/hours/addOperatingTime.js +65 -0
- package/dist/calendar/hours/index.d.ts +7 -0
- package/dist/calendar/hours/index.js +7 -0
- package/dist/calendar/hours/isOpenAt.d.ts +45 -0
- package/dist/calendar/hours/isOpenAt.js +50 -0
- package/dist/calendar/hours/nextCloseAt.d.ts +55 -0
- package/dist/calendar/hours/nextCloseAt.js +57 -0
- package/dist/calendar/hours/nextOpenAt.d.ts +51 -0
- package/dist/calendar/hours/nextOpenAt.js +53 -0
- package/dist/calendar/hours/operatingIntervals.d.ts +48 -0
- package/dist/calendar/hours/operatingIntervals.js +57 -0
- package/dist/calendar/hours/operatingTimeBetween.d.ts +45 -0
- package/dist/calendar/hours/operatingTimeBetween.js +54 -0
- package/dist/calendar/hours/recurringWindows.d.ts +68 -0
- package/dist/calendar/hours/recurringWindows.js +88 -0
- package/dist/calendar/index.d.ts +1 -0
- package/dist/calendar/index.js +1 -0
- package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
- package/dist/duration/calculate/durationFromUnits.js +67 -0
- package/dist/duration/calculate/getDurationUnit.d.ts +2 -2
- package/dist/duration/calculate/getDurationUnit.js +2 -2
- package/dist/duration/calculate/index.d.ts +3 -1
- package/dist/duration/calculate/index.js +3 -1
- package/dist/duration/calculate/negateDuration.d.ts +1 -1
- package/dist/duration/calculate/negateDuration.js +1 -1
- package/dist/duration/calculate/totalDuration.d.ts +73 -0
- package/dist/duration/calculate/{durationAs.js → totalDuration.js} +29 -27
- package/dist/duration/calculate/totalUnits.d.ts +49 -0
- package/dist/duration/calculate/totalUnits.js +73 -0
- package/dist/duration/compare/compareDurations.d.ts +13 -7
- package/dist/duration/compare/compareDurations.js +4 -7
- package/dist/duration/format/formatDuration.d.ts +16 -4
- package/dist/duration/format/formatDuration.js +4 -5
- package/dist/duration/normalize/normalizeDuration.d.ts +39 -14
- package/dist/duration/normalize/normalizeDuration.js +6 -15
- package/dist/duration/parse/parseDuration.d.ts +21 -3
- package/dist/duration/parse/parseDuration.js +1 -3
- package/dist/duty/calculate/dutyDayFor.d.ts +38 -0
- package/dist/duty/calculate/dutyDayFor.js +71 -0
- package/dist/duty/calculate/dutyTotals.d.ts +24 -0
- package/dist/duty/calculate/dutyTotals.js +41 -0
- package/dist/duty/calculate/dutyViolations.d.ts +74 -0
- package/dist/duty/calculate/dutyViolations.js +65 -0
- package/dist/duty/calculate/evaluateDutyLog.d.ts +77 -0
- package/dist/duty/calculate/evaluateDutyLog.js +75 -0
- package/dist/duty/calculate/index.d.ts +7 -0
- package/dist/duty/calculate/index.js +7 -0
- package/dist/duty/calculate/longestRun.d.ts +28 -0
- package/dist/duty/calculate/longestRun.js +54 -0
- package/dist/duty/calculate/qualifyingRestPairs.d.ts +37 -0
- package/dist/duty/calculate/qualifyingRestPairs.js +58 -0
- package/dist/duty/calculate/qualifyingRests.d.ts +27 -0
- package/dist/duty/calculate/qualifyingRests.js +49 -0
- package/dist/duty/index.d.ts +3 -0
- package/dist/duty/index.js +4 -0
- package/dist/duty/validate/index.d.ts +1 -0
- package/dist/duty/validate/index.js +1 -0
- package/dist/duty/validate/isValidDutyLog.d.ts +24 -0
- package/dist/duty/validate/isValidDutyLog.js +34 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/instant/convert/classifyLocal.d.ts +5 -1
- package/dist/instant/convert/classifyLocal.js +16 -6
- package/dist/instant/convert/fromOffsetInstant.d.ts +7 -1
- package/dist/instant/convert/fromOffsetInstant.js +9 -2
- package/dist/instant/convert/resolveLocal.d.ts +18 -8
- package/dist/instant/convert/resolveLocal.js +21 -17
- package/dist/instant/convert/toOffsetInstant.d.ts +33 -16
- package/dist/instant/convert/toOffsetInstant.js +28 -13
- package/dist/instant/index.d.ts +1 -0
- package/dist/instant/index.js +1 -0
- package/dist/instant/validate/index.d.ts +1 -0
- package/dist/instant/validate/index.js +1 -0
- package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
- package/dist/instant/validate/isValidUtcOffset.js +35 -0
- package/dist/intermodal/calculate/billingTimeline.d.ts +31 -11
- package/dist/intermodal/calculate/billingTimeline.js +2 -2
- package/dist/intermodal/calculate/chargeableDays.d.ts +19 -11
- package/dist/intermodal/calculate/chargeableDays.js +13 -10
- package/dist/intermodal/calculate/demurrageClock.d.ts +16 -7
- package/dist/intermodal/calculate/demurrageClock.js +7 -7
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +12 -4
- package/dist/intermodal/calculate/freeTimeExpiry.js +19 -8
- package/dist/intermodal/calculate/index.d.ts +1 -0
- package/dist/intermodal/calculate/index.js +1 -0
- package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
- package/dist/intermodal/calculate/multimodalETA.js +145 -0
- package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
- package/dist/intermodal/format/bolTimestamp.js +78 -0
- package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
- package/dist/intermodal/format/formatEdifactDate.js +42 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
- package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
- package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
- package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactTime.js +43 -0
- package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
- package/dist/intermodal/format/formatEpcisEvent.js +79 -0
- package/dist/intermodal/format/formatX12Date.d.ts +35 -0
- package/dist/intermodal/format/formatX12Date.js +43 -0
- package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
- package/dist/intermodal/format/formatX12DateRange.js +45 -0
- package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
- package/dist/intermodal/format/formatX12DateTime.js +47 -0
- package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
- package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
- package/dist/intermodal/format/formatX12Time.d.ts +42 -0
- package/dist/intermodal/format/formatX12Time.js +50 -0
- package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
- package/dist/intermodal/format/formatX12TimeElement.js +54 -0
- package/dist/intermodal/format/index.d.ts +14 -0
- package/dist/intermodal/format/index.js +14 -0
- package/dist/intermodal/index.d.ts +3 -0
- package/dist/intermodal/index.js +3 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
- package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
- package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
- package/dist/intermodal/parse/index.d.ts +18 -0
- package/dist/intermodal/parse/index.js +18 -0
- package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactDate.js +45 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
- package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactTime.js +45 -0
- package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
- package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
- package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
- package/dist/intermodal/parse/parseX12Date.js +47 -0
- package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
- package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
- package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
- package/dist/intermodal/parse/parseX12DateRange.js +52 -0
- package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
- package/dist/intermodal/parse/parseX12DateTime.js +53 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
- package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
- package/dist/intermodal/parse/parseX12Time.js +77 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
- package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
- package/dist/intermodal/validate/index.d.ts +18 -0
- package/dist/intermodal/validate/index.js +18 -0
- package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
- package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
- package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
- package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
- package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
- package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
- package/dist/intermodal/validate/isValidX12Date.js +30 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
- package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
- package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
- package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
- package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12Time.js +40 -0
- package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
- package/dist/internal/businessCalendar.d.ts +5 -0
- package/dist/internal/businessCalendar.js +9 -10
- package/dist/internal/cycleFieldValue.d.ts +6 -4
- package/dist/internal/cycleFieldValue.js +6 -4
- package/dist/internal/daylightTime.d.ts +33 -0
- package/dist/internal/daylightTime.js +164 -0
- package/dist/internal/durationUntilString.js +4 -3
- package/dist/internal/dutyEngine.d.ts +125 -0
- package/dist/internal/dutyEngine.js +1746 -0
- package/dist/internal/dutyLog.d.ts +27 -0
- package/dist/internal/dutyLog.js +47 -0
- package/dist/internal/dutyPeriods.d.ts +135 -0
- package/dist/internal/dutyPeriods.js +369 -0
- package/dist/internal/dutyRules.d.ts +197 -0
- package/dist/internal/dutyRules.js +484 -0
- package/dist/internal/ediDateTimeFields.d.ts +97 -0
- package/dist/internal/ediDateTimeFields.js +288 -0
- package/dist/internal/ediDateTimeWriter.d.ts +92 -0
- package/dist/internal/ediDateTimeWriter.js +298 -0
- package/dist/internal/ediGrammar.d.ts +158 -0
- package/dist/internal/ediGrammar.js +384 -0
- package/dist/internal/englishCalendarNames.d.ts +3 -1
- package/dist/internal/englishCalendarNames.js +4 -3
- package/dist/internal/epochNanoseconds.d.ts +2 -0
- package/dist/internal/epochNanoseconds.js +2 -0
- package/dist/internal/exactDuration.d.ts +37 -0
- package/dist/internal/exactDuration.js +64 -0
- package/dist/internal/exactMoment.d.ts +72 -0
- package/dist/internal/exactMoment.js +114 -0
- package/dist/internal/fiscalCalendar.d.ts +4 -3
- package/dist/internal/fiscalCalendar.js +4 -3
- package/dist/internal/formatCalendarDays.d.ts +2 -2
- package/dist/internal/formatRelativeDuration.d.ts +21 -1
- package/dist/internal/formatRelativeDuration.js +47 -7
- package/dist/internal/freeTimeLedger.d.ts +5 -0
- package/dist/internal/freeTimeLedger.js +11 -2
- package/dist/internal/index.d.ts +12 -4
- package/dist/internal/index.js +16 -4
- package/dist/internal/instantFormatOptions.js +2 -1
- package/dist/internal/instantNanoseconds.d.ts +75 -9
- package/dist/internal/instantNanoseconds.js +192 -11
- package/dist/internal/intervalNanoseconds.js +2 -1
- package/dist/internal/isObject.d.ts +13 -6
- package/dist/internal/isObject.js +14 -7
- package/dist/internal/isoYearString.d.ts +21 -0
- package/dist/internal/isoYearString.js +27 -0
- package/dist/internal/joinDateTimeConnector.d.ts +1 -1
- package/dist/internal/maxPieces.js +2 -1
- package/dist/internal/monthGridWeekRow.d.ts +2 -1
- package/dist/internal/monthGridWeekRow.js +2 -1
- package/dist/internal/normalizeTimeZone.d.ts +5 -2
- package/dist/internal/normalizeTimeZone.js +5 -2
- package/dist/internal/operatingSchedule.d.ts +138 -0
- package/dist/internal/operatingSchedule.js +756 -0
- package/dist/internal/optionOrDefault.d.ts +18 -0
- package/dist/internal/optionOrDefault.js +20 -0
- package/dist/internal/patternToken.d.ts +12 -5
- package/dist/internal/patternToken.js +59 -25
- package/dist/internal/plainDateUntil.js +10 -6
- package/dist/internal/punctuality.d.ts +38 -0
- package/dist/internal/punctuality.js +59 -0
- package/dist/internal/readDateTimeFormatOptions.d.ts +30 -0
- package/dist/internal/readDateTimeFormatOptions.js +93 -0
- package/dist/internal/readDurationUnits.d.ts +34 -0
- package/dist/internal/readDurationUnits.js +78 -0
- package/dist/internal/readSetFields.d.ts +50 -0
- package/dist/internal/readSetFields.js +179 -0
- package/dist/internal/resolveDurationRelativeTo.d.ts +4 -0
- package/dist/internal/resolveDurationRelativeTo.js +11 -1
- package/dist/internal/resolveRelativeRounding.d.ts +17 -6
- package/dist/internal/resolveRelativeRounding.js +27 -7
- package/dist/internal/resolveRelativeUnit.d.ts +30 -0
- package/dist/internal/resolveRelativeUnit.js +40 -0
- package/dist/internal/resolveUnixIntervalPair.d.ts +8 -2
- package/dist/internal/resolveUnixIntervalPair.js +11 -7
- package/dist/internal/splitStep.d.ts +24 -1
- package/dist/internal/splitStep.js +34 -2
- package/dist/internal/startOrEndOfUnix.d.ts +2 -1
- package/dist/internal/startOrEndOfUnix.js +9 -6
- package/dist/internal/startOrEndOfZoned.js +2 -3
- package/dist/internal/temporalCompat/capabilities.d.ts +26 -0
- package/dist/internal/temporalCompat/capabilities.js +35 -3
- package/dist/internal/temporalCompat/fieldSearch.js +1 -1
- package/dist/internal/temporalCompat/index.d.ts +1 -1
- package/dist/internal/temporalCompat/index.js +1 -1
- package/dist/internal/temporalCompat/repros.d.ts +1 -1
- package/dist/internal/temporalCompat/repros.js +157 -0
- package/dist/internal/timestampEvents.d.ts +32 -0
- package/dist/internal/timestampEvents.js +76 -0
- package/dist/internal/twoDigitYear.d.ts +19 -0
- package/dist/internal/twoDigitYear.js +22 -0
- package/dist/internal/unixEpochValue.js +3 -2
- package/dist/internal/unixWallClock.d.ts +24 -0
- package/dist/internal/unixWallClock.js +35 -0
- package/dist/internal/utcWallClock.d.ts +20 -0
- package/dist/internal/utcWallClock.js +32 -0
- package/dist/internal/yearWindowStart.d.ts +28 -0
- package/dist/internal/yearWindowStart.js +52 -0
- package/dist/internal/zoneBucketCap.d.ts +18 -0
- package/dist/internal/zoneBucketCap.js +64 -0
- package/dist/internal/zoneFrame.d.ts +180 -0
- package/dist/internal/zoneFrame.js +221 -0
- package/dist/internal/zonedBucket.js +8 -6
- package/dist/internal/zonedLocalDates.js +1 -1
- package/dist/internal/zonedNowUnitValue.d.ts +7 -4
- package/dist/internal/zonedNowUnitValue.js +8 -4
- package/dist/internal/zonedTransitionSearch.d.ts +27 -0
- package/dist/internal/zonedTransitionSearch.js +218 -0
- package/dist/internal/zonedWallClock.d.ts +21 -7
- package/dist/internal/zonedWallClock.js +87 -18
- package/dist/internal/zonedWallClockDifference.js +4 -4
- package/dist/internal/zonedWallClockOperations.d.ts +31 -15
- package/dist/internal/zonedWallClockOperations.js +93 -43
- package/dist/interval/validate/isValidInterval.d.ts +6 -3
- package/dist/interval/validate/isValidInterval.js +6 -3
- package/dist/plain/calculate/addDate.d.ts +11 -8
- package/dist/plain/calculate/addDate.js +9 -15
- package/dist/plain/calculate/addDateTime.d.ts +7 -4
- package/dist/plain/calculate/addDateTime.js +5 -11
- package/dist/plain/calculate/addTime.js +4 -7
- package/dist/plain/calculate/cycleDate.d.ts +16 -7
- package/dist/plain/calculate/cycleDate.js +3 -7
- package/dist/plain/calculate/cycleDateTime.d.ts +14 -4
- package/dist/plain/calculate/cycleDateTime.js +1 -4
- package/dist/plain/calculate/cycleTime.d.ts +10 -5
- package/dist/plain/calculate/cycleTime.js +3 -5
- package/dist/plain/calculate/diffDate.d.ts +1 -1
- package/dist/plain/calculate/diffDate.js +1 -1
- package/dist/plain/calculate/diffDateAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateAsDuration.js +1 -1
- package/dist/plain/calculate/diffDateTime.d.ts +1 -1
- package/dist/plain/calculate/diffDateTime.js +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +1 -1
- package/dist/plain/calculate/diffDateTimeAsDuration.js +1 -1
- package/dist/plain/calculate/diffTime.d.ts +1 -1
- package/dist/plain/calculate/diffTime.js +1 -1
- package/dist/plain/calculate/endOfDate.d.ts +8 -3
- package/dist/plain/calculate/endOfDate.js +1 -3
- package/dist/plain/calculate/endOfDateTime.d.ts +15 -5
- package/dist/plain/calculate/endOfDateTime.js +1 -5
- package/dist/plain/calculate/endOfTime.d.ts +9 -3
- package/dist/plain/calculate/endOfTime.js +1 -2
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +16 -9
- package/dist/plain/calculate/getLocaleWeekYear.js +9 -9
- package/dist/plain/calculate/getWeekOfMonth.d.ts +7 -4
- package/dist/plain/calculate/getWeekOfMonth.js +7 -4
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +13 -6
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +6 -6
- package/dist/plain/calculate/getWeeksInMonth.d.ts +5 -2
- package/dist/plain/calculate/getWeeksInMonth.js +5 -2
- package/dist/plain/calculate/nextWeekday.d.ts +7 -3
- package/dist/plain/calculate/nextWeekday.js +1 -3
- package/dist/plain/calculate/previousWeekday.d.ts +7 -3
- package/dist/plain/calculate/previousWeekday.js +1 -3
- package/dist/plain/calculate/roundDate.d.ts +20 -7
- package/dist/plain/calculate/roundDate.js +3 -10
- package/dist/plain/calculate/roundDateTime.d.ts +22 -8
- package/dist/plain/calculate/roundDateTime.js +3 -11
- package/dist/plain/calculate/roundTime.d.ts +20 -4
- package/dist/plain/calculate/roundTime.js +3 -7
- package/dist/plain/calculate/setDate.d.ts +27 -8
- package/dist/plain/calculate/setDate.js +28 -12
- package/dist/plain/calculate/setDateTime.d.ts +23 -8
- package/dist/plain/calculate/setDateTime.js +23 -12
- package/dist/plain/calculate/setTime.d.ts +23 -7
- package/dist/plain/calculate/setTime.js +25 -12
- package/dist/plain/calculate/startOfDate.d.ts +8 -2
- package/dist/plain/calculate/startOfDate.js +1 -2
- package/dist/plain/calculate/startOfDateTime.d.ts +15 -2
- package/dist/plain/calculate/startOfDateTime.js +1 -2
- package/dist/plain/calculate/startOfTime.d.ts +9 -2
- package/dist/plain/calculate/startOfTime.js +1 -1
- package/dist/plain/calculate/subtractDate.d.ts +7 -4
- package/dist/plain/calculate/subtractDate.js +5 -11
- package/dist/plain/calculate/subtractDateTime.d.ts +7 -4
- package/dist/plain/calculate/subtractDateTime.js +5 -11
- package/dist/plain/calculate/subtractTime.js +4 -7
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +13 -5
- package/dist/plain/compare/areDateTimesEqualBy.js +6 -5
- package/dist/plain/compare/areDatesEqualBy.d.ts +15 -6
- package/dist/plain/compare/areDatesEqualBy.js +8 -6
- package/dist/plain/compare/isBetweenDate.d.ts +13 -2
- package/dist/plain/compare/isBetweenDate.js +4 -4
- package/dist/plain/compare/isBetweenDateTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenDateTime.js +4 -4
- package/dist/plain/compare/isBetweenTime.d.ts +13 -2
- package/dist/plain/compare/isBetweenTime.js +4 -4
- package/dist/plain/compare/isRelativeDay.d.ts +1 -1
- package/dist/plain/compare/isRelativeDay.js +1 -1
- package/dist/plain/compare/isThisUnit.d.ts +1 -1
- package/dist/plain/compare/isThisUnit.js +1 -1
- package/dist/plain/format/formatCalendar.d.ts +21 -14
- package/dist/plain/format/formatCalendar.js +23 -17
- package/dist/plain/format/formatDate.js +5 -3
- package/dist/plain/format/formatDateRange.js +4 -2
- package/dist/plain/format/formatDateTime.js +4 -2
- package/dist/plain/format/formatDateTimeRange.js +4 -2
- package/dist/plain/format/formatDateTimeToParts.d.ts +15 -4
- package/dist/plain/format/formatDateTimeToParts.js +10 -6
- package/dist/plain/format/formatDateToParts.d.ts +13 -2
- package/dist/plain/format/formatDateToParts.js +8 -4
- package/dist/plain/format/formatRelativeDate.d.ts +16 -3
- package/dist/plain/format/formatRelativeDate.js +28 -16
- package/dist/plain/format/formatRelativeDateTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeDateTime.js +10 -6
- package/dist/plain/format/formatRelativeTime.d.ts +16 -3
- package/dist/plain/format/formatRelativeTime.js +23 -14
- package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
- package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +7 -7
- package/dist/plain/format/formatTime.js +4 -2
- package/dist/plain/format/index.d.ts +1 -1
- package/dist/plain/format/index.js +1 -1
- package/dist/plain/get/getNowUnit.d.ts +2 -0
- package/dist/plain/get/getNowUnit.js +2 -0
- package/dist/plain/get/getYear.d.ts +2 -0
- package/dist/plain/get/getYear.js +4 -3
- package/dist/plain/interval/intervalDifferenceDate.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalDifferenceTime.d.ts +9 -0
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDate.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +3 -4
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +19 -4
- package/dist/plain/interval/intervalDivideEquallyTime.js +3 -4
- package/dist/plain/interval/intervalFromDurationDate.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDate.js +1 -3
- package/dist/plain/interval/intervalFromDurationDateTime.d.ts +16 -3
- package/dist/plain/interval/intervalFromDurationDateTime.js +1 -3
- package/dist/plain/interval/intervalFromDurationTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDate.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalIntersectionTime.d.ts +9 -0
- package/dist/plain/interval/intervalSplitAtDate.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDate.js +2 -0
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtDateTime.js +2 -0
- package/dist/plain/interval/intervalSplitAtTime.d.ts +11 -0
- package/dist/plain/interval/intervalSplitAtTime.js +2 -0
- package/dist/plain/interval/intervalUnionDate.d.ts +9 -0
- package/dist/plain/interval/intervalUnionDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalUnionTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDate.js +2 -2
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllDateTime.js +2 -2
- package/dist/plain/interval/intervalXorAllTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorAllTime.js +2 -2
- package/dist/plain/interval/intervalXorDate.d.ts +9 -0
- package/dist/plain/interval/intervalXorDateTime.d.ts +9 -0
- package/dist/plain/interval/intervalXorTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDate.js +2 -2
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsDateTime.js +2 -2
- package/dist/plain/interval/mergeIntervalsTime.d.ts +9 -0
- package/dist/plain/interval/mergeIntervalsTime.js +2 -2
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +23 -7
- package/dist/plain/interval/splitIntervalByUnitDate.js +7 -7
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +22 -6
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +6 -6
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +17 -4
- package/dist/plain/interval/splitIntervalByUnitTime.js +1 -4
- package/dist/plain/map/mapDatesInRange.d.ts +8 -4
- package/dist/plain/map/mapDatesInRange.js +1 -4
- package/dist/plain/parse/index.d.ts +1 -1
- package/dist/plain/parse/index.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +25 -9
- package/dist/plain/parse/parseDateTimeWithPattern.js +29 -11
- package/dist/plain/parse/parseDateWithPattern.d.ts +26 -9
- package/dist/plain/parse/parseDateWithPattern.js +30 -11
- package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
- package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +8 -8
- package/dist/plain/parse/parseTimeWithPattern.d.ts +10 -7
- package/dist/plain/parse/parseTimeWithPattern.js +11 -7
- package/dist/plain/parse/parseUnitFromDate.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDate.js +8 -4
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +14 -3
- package/dist/plain/parse/parseUnitFromDateTime.js +8 -4
- package/dist/plain/parse/parseWeekFromDate.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDate.js +2 -6
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +10 -6
- package/dist/plain/parse/parseWeekFromDateTime.js +2 -6
- package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
- package/dist/plain/parse/parseYearFromDate.js +7 -3
- package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
- package/dist/plain/parse/parseYearFromDateTime.js +6 -3
- package/dist/plain/validate/index.d.ts +1 -0
- package/dist/plain/validate/index.js +1 -0
- package/dist/plain/validate/isValidDateRange.d.ts +19 -4
- package/dist/plain/validate/isValidDateRange.js +1 -4
- package/dist/plain/validate/isValidDateTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidDateTimeRange.js +2 -5
- package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
- package/dist/plain/validate/isValidSqlDateTime.js +36 -0
- package/dist/plain/validate/isValidTimeRange.d.ts +20 -5
- package/dist/plain/validate/isValidTimeRange.js +2 -5
- package/dist/precision/convert/fromExcelSerial.d.ts +10 -4
- package/dist/precision/convert/fromExcelSerial.js +4 -5
- package/dist/precision/convert/fromNanoseconds.d.ts +9 -3
- package/dist/precision/convert/fromNanoseconds.js +9 -3
- package/dist/precision/convert/toExcelSerial.d.ts +9 -3
- package/dist/precision/convert/toExcelSerial.js +3 -4
- package/dist/precision/convert/toNanoseconds.d.ts +11 -6
- package/dist/precision/convert/toNanoseconds.js +11 -6
- package/dist/precision/validate/isValidInstant.d.ts +12 -3
- package/dist/precision/validate/isValidInstant.js +12 -3
- package/dist/regex/epcis.d.ts +60 -0
- package/dist/regex/epcis.js +60 -0
- package/dist/regex/http-date.d.ts +6 -4
- package/dist/regex/http-date.js +6 -4
- package/dist/regex/index.d.ts +1 -0
- package/dist/regex/index.js +1 -0
- package/dist/regex/rfc-2822.d.ts +2 -0
- package/dist/regex/rfc-2822.js +2 -0
- package/dist/regex/rfc-3339.d.ts +3 -1
- package/dist/regex/rfc-3339.js +3 -1
- package/dist/regex/sql-date-time.d.ts +2 -1
- package/dist/regex/sql-date-time.js +2 -1
- package/dist/regex/time-zone-like.d.ts +3 -2
- package/dist/regex/time-zone-like.js +3 -2
- package/dist/regex/utc-offset.d.ts +2 -1
- package/dist/regex/utc-offset.js +2 -1
- package/dist/span/calculate/spanMs.d.ts +10 -4
- package/dist/span/calculate/spanMs.js +10 -4
- package/dist/span/calculate/spanNs.d.ts +10 -4
- package/dist/span/calculate/spanNs.js +10 -4
- package/dist/span/validate/isValidSpan.d.ts +8 -3
- package/dist/span/validate/isValidSpan.js +8 -3
- package/dist/transport/calculate/bestAvailable.d.ts +47 -0
- package/dist/transport/calculate/bestAvailable.js +76 -0
- package/dist/transport/calculate/crossingTime.d.ts +63 -0
- package/dist/transport/calculate/crossingTime.js +81 -0
- package/dist/transport/calculate/cutoffAt.d.ts +95 -0
- package/dist/transport/calculate/cutoffAt.js +211 -0
- package/dist/transport/calculate/cutoffSchedule.d.ts +75 -0
- package/dist/transport/calculate/cutoffSchedule.js +73 -0
- package/dist/transport/calculate/dwellTime.d.ts +22 -8
- package/dist/transport/calculate/dwellTime.js +18 -9
- package/dist/transport/calculate/estimateDrift.d.ts +65 -0
- package/dist/transport/calculate/estimateDrift.js +75 -0
- package/dist/transport/calculate/index.d.ts +8 -0
- package/dist/transport/calculate/index.js +8 -0
- package/dist/transport/calculate/nextDeparture.d.ts +78 -0
- package/dist/transport/calculate/nextDeparture.js +131 -0
- package/dist/transport/calculate/punctualityRate.d.ts +42 -0
- package/dist/transport/calculate/punctualityRate.js +59 -0
- package/dist/transport/calculate/scheduleDelivery.d.ts +158 -0
- package/dist/transport/calculate/scheduleDelivery.js +305 -0
- package/dist/transport/calculate/transitTime.d.ts +21 -3
- package/dist/transport/calculate/transitTime.js +29 -46
- package/dist/transport/compare/classifyPunctuality.d.ts +46 -0
- package/dist/transport/compare/classifyPunctuality.js +64 -0
- package/dist/transport/compare/index.d.ts +4 -0
- package/dist/transport/compare/index.js +4 -0
- package/dist/transport/compare/isPastCutoff.d.ts +33 -0
- package/dist/transport/compare/isPastCutoff.js +48 -0
- package/dist/transport/compare/scheduleDeviation.d.ts +37 -0
- package/dist/transport/compare/scheduleDeviation.js +53 -0
- package/dist/transport/compare/timeToCutoff.d.ts +31 -0
- package/dist/transport/compare/timeToCutoff.js +47 -0
- package/dist/transport/convert/etaAtZone.d.ts +13 -1
- package/dist/transport/convert/etaAtZone.js +15 -5
- package/dist/transport/index.d.ts +1 -0
- package/dist/transport/index.js +1 -0
- package/dist/types/business-calendar.d.ts +20 -14
- package/dist/types/calendar-options.d.ts +15 -3
- package/dist/types/date-cycle-field.d.ts +5 -0
- package/dist/types/date-duration-unit.d.ts +4 -0
- package/dist/types/date-time-cycle-field.d.ts +4 -0
- package/dist/types/date-time-duration-units.d.ts +4 -0
- package/dist/types/date-time-unit.d.ts +4 -0
- package/dist/types/date-unit.d.ts +4 -0
- package/dist/types/disambiguation.d.ts +8 -0
- package/dist/types/duration-relative-to.d.ts +8 -0
- package/dist/types/duration-string-options.d.ts +28 -0
- package/dist/types/duty.d.ts +777 -0
- package/dist/types/edi.d.ts +407 -0
- package/dist/types/edi.js +0 -0
- package/dist/types/epcis.d.ts +25 -0
- package/dist/types/epcis.js +0 -0
- package/dist/types/exact-duration-unit.d.ts +8 -0
- package/dist/types/exact-duration-unit.js +0 -0
- package/dist/types/fiscal-calendar.d.ts +1 -1
- package/dist/types/fractional-digit.d.ts +5 -0
- package/dist/types/free-time-options.d.ts +22 -11
- package/dist/types/index.d.ts +7 -1
- package/dist/types/index.js +7 -1
- package/dist/types/interval.d.ts +8 -1
- package/dist/types/offset.d.ts +9 -0
- package/dist/types/operating-schedule.d.ts +72 -0
- package/dist/types/operating-schedule.js +0 -0
- package/dist/types/overflow.d.ts +6 -0
- package/dist/types/relative-rounding-method.d.ts +6 -0
- package/dist/types/relative-time-options.d.ts +33 -5
- package/dist/types/rounding-options.d.ts +27 -0
- package/dist/types/time-cycle-field.d.ts +4 -0
- package/dist/types/time-duration-unit.d.ts +4 -0
- package/dist/types/time-unit.d.ts +4 -0
- package/dist/types/transport-timestamps.d.ts +54 -0
- package/dist/types/transport-timestamps.js +0 -0
- package/dist/types/two-digit-year.d.ts +23 -0
- package/dist/types/two-digit-year.js +0 -0
- package/dist/types/zone-bucket-unit.d.ts +1 -1
- package/dist/unix/calculate/addUnix.d.ts +28 -5
- package/dist/unix/calculate/addUnix.js +15 -16
- package/dist/unix/calculate/diffUnix.d.ts +21 -3
- package/dist/unix/calculate/diffUnix.js +12 -9
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +21 -3
- package/dist/unix/calculate/diffUnixAsDuration.js +11 -8
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/endOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/endOfUnix.d.ts +29 -4
- package/dist/unix/calculate/endOfUnix.js +8 -4
- package/dist/unix/calculate/isBetweenUnix.d.ts +27 -4
- package/dist/unix/calculate/isBetweenUnix.js +7 -9
- package/dist/unix/calculate/roundUnix.d.ts +39 -3
- package/dist/unix/calculate/roundUnix.js +16 -12
- package/dist/unix/calculate/setUnix.d.ts +58 -12
- package/dist/unix/calculate/setUnix.js +37 -25
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +21 -3
- package/dist/unix/calculate/startOfQuarterForUnix.js +7 -3
- package/dist/unix/calculate/startOfUnix.d.ts +29 -4
- package/dist/unix/calculate/startOfUnix.js +8 -4
- package/dist/unix/calculate/subtractUnix.d.ts +27 -5
- package/dist/unix/calculate/subtractUnix.js +14 -16
- package/dist/unix/compare/areUnixEqual.d.ts +7 -1
- package/dist/unix/compare/areUnixEqual.js +1 -1
- package/dist/unix/compare/areUnixEqualBy.d.ts +33 -7
- package/dist/unix/compare/areUnixEqualBy.js +20 -9
- package/dist/unix/compare/isAfterUnix.d.ts +7 -1
- package/dist/unix/compare/isAfterUnix.js +1 -1
- package/dist/unix/compare/isBeforeUnix.d.ts +7 -1
- package/dist/unix/compare/isBeforeUnix.js +1 -1
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainDate.js +7 -8
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.js +7 -8
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +17 -4
- package/dist/unix/convert/convertUnixToPlainTime.js +7 -8
- package/dist/unix/convert/convertUnixToUtc.d.ts +9 -4
- package/dist/unix/convert/convertUnixToUtc.js +3 -4
- package/dist/unix/convert/convertUnixToZoned.d.ts +14 -5
- package/dist/unix/convert/convertUnixToZoned.js +8 -5
- package/dist/unix/format/formatCalendarUnix.d.ts +31 -19
- package/dist/unix/format/formatCalendarUnix.js +10 -6
- package/dist/unix/format/formatRelativeUnix.d.ts +62 -5
- package/dist/unix/format/formatRelativeUnix.js +16 -10
- package/dist/unix/format/formatUnix.d.ts +29 -6
- package/dist/unix/format/formatUnix.js +12 -7
- package/dist/unix/get/getUnixDay.d.ts +1 -3
- package/dist/unix/get/getUnixDay.js +5 -12
- package/dist/unix/get/getUnixHour.d.ts +1 -3
- package/dist/unix/get/getUnixHour.js +5 -12
- package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
- package/dist/unix/get/getUnixMicrosecond.js +4 -11
- package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
- package/dist/unix/get/getUnixMillisecond.js +5 -12
- package/dist/unix/get/getUnixMinute.d.ts +1 -3
- package/dist/unix/get/getUnixMinute.js +5 -12
- package/dist/unix/get/getUnixMonth.d.ts +1 -3
- package/dist/unix/get/getUnixMonth.js +5 -12
- package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
- package/dist/unix/get/getUnixNanosecond.js +4 -11
- package/dist/unix/get/getUnixNow.d.ts +8 -3
- package/dist/unix/get/getUnixNow.js +1 -3
- package/dist/unix/get/getUnixNowUnit.d.ts +2 -0
- package/dist/unix/get/getUnixNowUnit.js +2 -0
- package/dist/unix/get/getUnixSecond.d.ts +1 -3
- package/dist/unix/get/getUnixSecond.js +5 -12
- package/dist/unix/get/getUnixYear.d.ts +3 -3
- package/dist/unix/get/getUnixYear.js +5 -12
- package/dist/unix/interval/intervalCountUnix.d.ts +23 -5
- package/dist/unix/interval/intervalCountUnix.js +9 -5
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +6 -0
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +18 -4
- package/dist/unix/interval/intervalDivideEquallyUnix.js +5 -4
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +41 -5
- package/dist/unix/interval/intervalFromDurationUnix.js +18 -12
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalLengthUnix.d.ts +24 -6
- package/dist/unix/interval/intervalLengthUnix.js +10 -6
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +21 -3
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +11 -8
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +8 -0
- package/dist/unix/interval/intervalSplitAtUnix.js +2 -0
- package/dist/unix/interval/intervalUnionUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorAllUnix.d.ts +6 -0
- package/dist/unix/interval/intervalXorUnix.d.ts +6 -0
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +6 -0
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +50 -11
- package/dist/unix/interval/splitIntervalByUnitUnix.js +33 -22
- package/dist/unix/parse/parseDateFromUnix.d.ts +15 -2
- package/dist/unix/parse/parseDateFromUnix.js +4 -5
- package/dist/unix/parse/parseDayFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseDayFromUnix.js +2 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +15 -1
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +3 -3
- package/dist/unix/parse/parseHourFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseHourFromUnix.js +2 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMillisecondFromUnix.js +2 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMinuteFromUnix.js +2 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseMonthFromUnix.js +2 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseNanosecondFromUnix.js +2 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseSecondFromUnix.js +2 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +16 -2
- package/dist/unix/parse/parseTimeFromUnix.js +5 -5
- package/dist/unix/parse/parseUnitFromUnix.d.ts +29 -4
- package/dist/unix/parse/parseUnitFromUnix.js +23 -17
- package/dist/unix/parse/parseWeekFromUnix.d.ts +24 -7
- package/dist/unix/parse/parseWeekFromUnix.js +7 -11
- package/dist/unix/parse/parseYearFromUnix.d.ts +20 -3
- package/dist/unix/parse/parseYearFromUnix.js +6 -3
- package/dist/unix/validate/isValidUnixRange.d.ts +20 -4
- package/dist/unix/validate/isValidUnixRange.js +1 -4
- package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
- package/dist/utc/calculate/addUtc.d.ts +7 -4
- package/dist/utc/calculate/addUtc.js +5 -11
- package/dist/utc/calculate/diffUtc.d.ts +1 -1
- package/dist/utc/calculate/diffUtc.js +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +1 -1
- package/dist/utc/calculate/diffUtcAsDuration.js +1 -1
- package/dist/utc/calculate/endOfUtc.d.ts +16 -3
- package/dist/utc/calculate/endOfUtc.js +2 -3
- package/dist/utc/calculate/isBetweenUtc.d.ts +13 -2
- package/dist/utc/calculate/isBetweenUtc.js +4 -4
- package/dist/utc/calculate/roundUtc.d.ts +26 -9
- package/dist/utc/calculate/roundUtc.js +3 -12
- package/dist/utc/calculate/setUtc.d.ts +23 -7
- package/dist/utc/calculate/setUtc.js +23 -12
- package/dist/utc/calculate/startOfUtc.d.ts +15 -2
- package/dist/utc/calculate/startOfUtc.js +1 -2
- package/dist/utc/calculate/subtractUtc.d.ts +7 -4
- package/dist/utc/calculate/subtractUtc.js +5 -11
- package/dist/utc/compare/areUtcEqualBy.d.ts +9 -3
- package/dist/utc/compare/areUtcEqualBy.js +2 -3
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +14 -3
- package/dist/utc/convert/convertUtcToPlainDate.js +12 -10
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +15 -3
- package/dist/utc/convert/convertUtcToPlainDateTime.js +14 -16
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +11 -3
- package/dist/utc/convert/convertUtcToPlainTime.js +9 -9
- package/dist/utc/convert/convertUtcToUnix.d.ts +9 -4
- package/dist/utc/convert/convertUtcToUnix.js +3 -4
- package/dist/utc/convert/convertUtcToZoned.d.ts +5 -1
- package/dist/utc/convert/convertUtcToZoned.js +5 -1
- package/dist/utc/format/formatCalendarUtc.d.ts +23 -8
- package/dist/utc/format/formatCalendarUtc.js +14 -7
- package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +8 -8
- package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +8 -8
- package/dist/utc/format/formatRelativeUtc.d.ts +38 -10
- package/dist/utc/format/formatRelativeUtc.js +22 -16
- package/dist/utc/format/formatUtc.d.ts +22 -15
- package/dist/utc/format/formatUtc.js +12 -8
- package/dist/utc/format/index.d.ts +1 -1
- package/dist/utc/format/index.js +1 -1
- package/dist/utc/get/getUtcDay.d.ts +1 -3
- package/dist/utc/get/getUtcDay.js +5 -12
- package/dist/utc/get/getUtcHour.d.ts +1 -3
- package/dist/utc/get/getUtcHour.js +5 -12
- package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
- package/dist/utc/get/getUtcMicrosecond.js +4 -11
- package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
- package/dist/utc/get/getUtcMillisecond.js +5 -12
- package/dist/utc/get/getUtcMinute.d.ts +1 -3
- package/dist/utc/get/getUtcMinute.js +5 -12
- package/dist/utc/get/getUtcMonth.d.ts +1 -3
- package/dist/utc/get/getUtcMonth.js +5 -12
- package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
- package/dist/utc/get/getUtcNanosecond.js +4 -11
- package/dist/utc/get/getUtcNow.d.ts +1 -3
- package/dist/utc/get/getUtcNow.js +2 -9
- package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
- package/dist/utc/get/getUtcNowUnit.js +2 -0
- package/dist/utc/get/getUtcSecond.d.ts +1 -3
- package/dist/utc/get/getUtcSecond.js +5 -12
- package/dist/utc/get/getUtcYear.d.ts +3 -3
- package/dist/utc/get/getUtcYear.js +5 -12
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +6 -0
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +18 -4
- package/dist/utc/interval/intervalDivideEquallyUtc.js +5 -4
- package/dist/utc/interval/intervalFromDurationUtc.d.ts +13 -3
- package/dist/utc/interval/intervalFromDurationUtc.js +1 -3
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +8 -0
- package/dist/utc/interval/intervalSplitAtUtc.js +2 -0
- package/dist/utc/interval/intervalUnionUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.d.ts +6 -0
- package/dist/utc/interval/intervalXorAllUtc.js +2 -2
- package/dist/utc/interval/intervalXorUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +6 -0
- package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +19 -6
- package/dist/utc/interval/splitIntervalByUnitUtc.js +6 -6
- package/dist/utc/parse/index.d.ts +1 -1
- package/dist/utc/parse/index.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDateFromUtc.js +3 -5
- package/dist/utc/parse/parseDayFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayFromUtc.js +3 -5
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +5 -7
- package/dist/utc/parse/parseHourFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseHourFromUtc.js +3 -5
- package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
- package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +12 -12
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMicrosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMillisecondFromUtc.js +3 -5
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMinuteFromUtc.js +3 -5
- package/dist/utc/parse/parseMonthFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseMonthFromUtc.js +3 -5
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseNanosecondFromUtc.js +3 -5
- package/dist/utc/parse/parseSecondFromUtc.d.ts +9 -3
- package/dist/utc/parse/parseSecondFromUtc.js +3 -5
- package/dist/utc/parse/parseTimeFromUtc.d.ts +11 -3
- package/dist/utc/parse/parseTimeFromUtc.js +7 -7
- package/dist/utc/parse/parseUnitFromUtc.d.ts +25 -6
- package/dist/utc/parse/parseUnitFromUtc.js +14 -10
- package/dist/utc/parse/parseWeekFromUtc.d.ts +20 -10
- package/dist/utc/parse/parseWeekFromUtc.js +8 -14
- package/dist/utc/parse/parseYearFromUtc.d.ts +13 -5
- package/dist/utc/parse/parseYearFromUtc.js +9 -8
- package/dist/utc/validate/index.d.ts +2 -0
- package/dist/utc/validate/index.js +2 -0
- package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
- package/dist/utc/validate/isValidHttpDate.js +38 -0
- package/dist/utc/validate/isValidUtc.d.ts +4 -0
- package/dist/utc/validate/isValidUtc.js +4 -0
- package/dist/utc/validate/isValidUtcRange.d.ts +16 -5
- package/dist/utc/validate/isValidUtcRange.js +2 -5
- package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
- package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
- package/dist/zoned/calculate/addZoned.d.ts +20 -10
- package/dist/zoned/calculate/addZoned.js +10 -20
- package/dist/zoned/calculate/cycleZoned.d.ts +33 -8
- package/dist/zoned/calculate/cycleZoned.js +1 -8
- package/dist/zoned/calculate/diffZoned.d.ts +1 -1
- package/dist/zoned/calculate/diffZoned.js +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +1 -1
- package/dist/zoned/calculate/diffZonedAsDuration.js +1 -1
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +9 -2
- package/dist/zoned/calculate/endOfQuarterForZoned.js +4 -5
- package/dist/zoned/calculate/endOfZoned.d.ts +16 -3
- package/dist/zoned/calculate/endOfZoned.js +2 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +10 -3
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +5 -6
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +7 -1
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +3 -4
- package/dist/zoned/calculate/roundZoned.d.ts +21 -4
- package/dist/zoned/calculate/roundZoned.js +3 -7
- package/dist/zoned/calculate/setZoned.d.ts +44 -13
- package/dist/zoned/calculate/setZoned.js +30 -21
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +7 -2
- package/dist/zoned/calculate/startOfQuarterForZoned.js +3 -5
- package/dist/zoned/calculate/startOfZoned.d.ts +15 -3
- package/dist/zoned/calculate/startOfZoned.js +1 -3
- package/dist/zoned/calculate/subtractZoned.d.ts +20 -10
- package/dist/zoned/calculate/subtractZoned.js +10 -20
- package/dist/zoned/compare/areZonedEqualBy.d.ts +14 -5
- package/dist/zoned/compare/areZonedEqualBy.js +7 -5
- package/dist/zoned/compare/isBetweenZoned.d.ts +13 -1
- package/dist/zoned/compare/isBetweenZoned.js +4 -3
- package/dist/zoned/compare/isInDaylightSaving.d.ts +38 -11
- package/dist/zoned/compare/isInDaylightSaving.js +40 -44
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +21 -5
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +9 -11
- package/dist/zoned/convert/convertZonedToUnix.d.ts +9 -4
- package/dist/zoned/convert/convertZonedToUnix.js +2 -4
- package/dist/zoned/convert/convertZonedToZoned.d.ts +5 -1
- package/dist/zoned/convert/convertZonedToZoned.js +5 -1
- package/dist/zoned/format/formatCalendarZoned.d.ts +18 -12
- package/dist/zoned/format/formatCalendarZoned.js +15 -10
- package/dist/zoned/format/formatRelativeZoned.d.ts +41 -12
- package/dist/zoned/format/formatRelativeZoned.js +9 -5
- package/dist/zoned/format/formatRfc2822.d.ts +2 -2
- package/dist/zoned/format/formatRfc2822.js +2 -2
- package/dist/zoned/format/formatRfc3339.d.ts +2 -3
- package/dist/zoned/format/formatRfc3339.js +2 -3
- package/dist/zoned/format/formatTimeZoneName.d.ts +16 -3
- package/dist/zoned/format/formatTimeZoneName.js +9 -4
- package/dist/zoned/format/formatZonedDateTime.js +2 -1
- package/dist/zoned/format/formatZonedRange.js +2 -1
- package/dist/zoned/format/formatZonedToParts.d.ts +15 -4
- package/dist/zoned/format/formatZonedToParts.js +8 -5
- package/dist/zoned/get/getDstTransitions.d.ts +11 -10
- package/dist/zoned/get/getDstTransitions.js +21 -7
- package/dist/zoned/get/getSystemTimeZone.d.ts +3 -1
- package/dist/zoned/get/getSystemTimeZone.js +5 -2
- package/dist/zoned/get/getTimeZoneOffset.d.ts +13 -2
- package/dist/zoned/get/getTimeZoneOffset.js +22 -6
- package/dist/zoned/get/getZonedDay.d.ts +2 -1
- package/dist/zoned/get/getZonedDay.js +6 -7
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +2 -1
- package/dist/zoned/get/getZonedDayOfWeek.js +6 -5
- package/dist/zoned/get/getZonedHour.d.ts +2 -1
- package/dist/zoned/get/getZonedHour.js +6 -7
- package/dist/zoned/get/getZonedMicrosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMicrosecond.js +6 -5
- package/dist/zoned/get/getZonedMillisecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMillisecond.js +6 -7
- package/dist/zoned/get/getZonedMinute.d.ts +2 -1
- package/dist/zoned/get/getZonedMinute.js +6 -7
- package/dist/zoned/get/getZonedMonth.d.ts +2 -1
- package/dist/zoned/get/getZonedMonth.js +6 -7
- package/dist/zoned/get/getZonedNanosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedNanosecond.js +6 -5
- package/dist/zoned/get/getZonedNow.d.ts +18 -2
- package/dist/zoned/get/getZonedNow.js +17 -4
- package/dist/zoned/get/getZonedNowUnit.d.ts +6 -3
- package/dist/zoned/get/getZonedNowUnit.js +10 -7
- package/dist/zoned/get/getZonedSecond.d.ts +2 -1
- package/dist/zoned/get/getZonedSecond.js +6 -7
- package/dist/zoned/get/getZonedToday.d.ts +2 -1
- package/dist/zoned/get/getZonedToday.js +6 -5
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +2 -1
- package/dist/zoned/get/getZonedWeekOfYear.js +6 -5
- package/dist/zoned/get/getZonedYear.d.ts +4 -1
- package/dist/zoned/get/getZonedYear.js +9 -7
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +22 -4
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +6 -4
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +29 -10
- package/dist/zoned/interval/intervalFromDurationZoned.js +6 -13
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +11 -0
- package/dist/zoned/interval/intervalSplitAtZoned.js +2 -0
- package/dist/zoned/interval/intervalUnionZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +9 -0
- package/dist/zoned/interval/intervalXorAllZoned.js +2 -2
- package/dist/zoned/interval/intervalXorZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +9 -0
- package/dist/zoned/interval/mergeIntervalsZoned.js +2 -2
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +27 -6
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +11 -6
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +9 -4
- package/dist/zoned/map/mapZonedDatesInRange.js +2 -4
- package/dist/zoned/parse/parseRfc2822.d.ts +1 -1
- package/dist/zoned/parse/parseRfc2822.js +1 -1
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +13 -4
- package/dist/zoned/parse/parseUnitFromZoned.js +6 -4
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +10 -3
- package/dist/zoned/parse/parseWeekFromZoned.js +2 -3
- package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
- package/dist/zoned/parse/parseYearFromZoned.js +6 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +45 -12
- package/dist/zoned/validate/hasDaylightSaving.js +54 -32
- package/dist/zoned/validate/index.d.ts +2 -0
- package/dist/zoned/validate/index.js +2 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
- package/dist/zoned/validate/isValidTimeZone.d.ts +5 -1
- package/dist/zoned/validate/isValidTimeZone.js +6 -2
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +13 -0
- package/dist/zoned/validate/isValidZonedDateTime.js +14 -1
- package/dist/zoned/validate/isValidZonedRange.d.ts +15 -4
- package/dist/zoned/validate/isValidZonedRange.js +1 -4
- package/package.json +67 -5
- package/skills/gmt-arithmetic/SKILL.md +99 -12
- package/skills/gmt-basics/SKILL.md +64 -13
- package/skills/gmt-integration/SKILL.md +33 -13
- package/skills/gmt-timezone/SKILL.md +265 -31
- package/dist/duration/calculate/durationAs.d.ts +0 -62
- package/dist/internal/resolveReadingTimeZone.d.ts +0 -11
- package/dist/internal/resolveReadingTimeZone.js +0 -18
- package/dist/internal/unixZonedDateTime.d.ts +0 -22
- package/dist/internal/unixZonedDateTime.js +0 -32
- package/dist/internal/utcZonedDateTime.d.ts +0 -16
- package/dist/internal/utcZonedDateTime.js +0 -28
- package/dist/types/duration-unit.d.ts +0 -5
- /package/dist/types/{duration-unit.js → duty.js} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EXCEL_1900_EPOCH_NANOSECONDS, EXCEL_1900_PHANTOM_END_NANOSECONDS, EXCEL_1900_PRE_PHANTOM_EPOCH_NANOSECONDS, EXCEL_1904_EPOCH_NANOSECONDS, floorDivide, MAX_EXCEL_1900_SERIAL_EXCLUSIVE, MAX_EXCEL_1904_SERIAL_EXCLUSIVE, MIN_EXCEL_1900_SERIAL, MIN_EXCEL_1904_SERIAL, NANOSECONDS_PER_DAY, NANOSECONDS_PER_DAY_NUMBER, parseInstantNanoseconds, } from "../../internal/index.js";
|
|
2
2
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
3
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
3
4
|
/**
|
|
4
5
|
* Convert an ISO 8601 instant string to an Excel day serial.
|
|
5
6
|
*
|
|
@@ -11,8 +12,6 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
11
12
|
* compatibility. No instant maps to serial 60: 1900-02-28 is 59 and 1900-03-01 is 61.
|
|
12
13
|
* Silently "fixing" this would put GMT one day out from Excel for every date before March
|
|
13
14
|
* 1900.
|
|
14
|
-
* - `{ system: "1904" }` selects the legacy Mac system, whose serial 0 is 1904-01-01. The
|
|
15
|
-
* same instant is exactly 1462 lower there than in the 1900 system.
|
|
16
15
|
* - **Instants outside Excel's own serial range are invalid input**, not an out-of-range
|
|
17
16
|
* number: the 1900 system runs from serial 1 (1900-01-01) to 2958465 (9999-12-31), the
|
|
18
17
|
* 1904 system from serial 0 (1904-01-01) to 2957003. Serial 0 in the 1900 system is
|
|
@@ -29,7 +28,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
29
28
|
* that Excel rejects on the way in.
|
|
30
29
|
*
|
|
31
30
|
* @param isoString ISO 8601 instant string (e.g. "2024-03-10T12:00:00Z")
|
|
32
|
-
* @param options
|
|
31
|
+
* @param options Which Excel date system the serial is in
|
|
33
32
|
* @returns Excel day serial as a number, or null on invalid input
|
|
34
33
|
*
|
|
35
34
|
* @example toExcelSerial("1900-01-01T00:00:00Z") // 1 — Excel's first serial
|
|
@@ -47,7 +46,7 @@ export function toExcelSerial(isoString, options) {
|
|
|
47
46
|
if (!isOptionsArgument(options)) {
|
|
48
47
|
return null;
|
|
49
48
|
}
|
|
50
|
-
const system = options?.system
|
|
49
|
+
const system = optionOrDefault(options?.system, "1900");
|
|
51
50
|
if (system !== "1900" && system !== "1904") {
|
|
52
51
|
return null;
|
|
53
52
|
}
|
|
@@ -3,11 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Requires an offset designator (`Z`, `±HH:MM`), as `Temporal.Instant` does — date-only
|
|
5
5
|
* and offset-less strings are rejected.
|
|
6
|
-
* - Accepts a bracketed IANA time zone annotation and a `[u-ca=...]` calendar annotation
|
|
7
|
-
* ignored as `Temporal.Instant.from` ignores
|
|
8
|
-
* - **
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* - Accepts a bracketed IANA time zone annotation and a `[u-ca=...]` calendar annotation. The
|
|
7
|
+
* calendar is ignored, as `Temporal.Instant.from` ignores it (an instant has no calendar).
|
|
8
|
+
* - **The offset fixes the instant; a bracketed zone only resolves a rounded one.** An offset
|
|
9
|
+
* written to the minute that is the bracketed zone's sub-minute offset rounded
|
|
10
|
+
* (`-00:45[Africa/Monrovia]`, for −00:44:30) names the instant the zone gives, as
|
|
11
|
+
* `Temporal.ZonedDateTime.from` reads it, so a zoned string Temporal wrote is read back as
|
|
12
|
+
* the instant it was written for, except a wall time repeated inside a sub-minute offset
|
|
13
|
+
* change, which reads as its first pass (see `isValidInstant`). Otherwise the bracket is not
|
|
14
|
+
* checked: a zone that does not exist, or that disagrees with the offset, changes nothing.
|
|
11
15
|
* - ISO 8601 extended format before any annotation: `<date>T<time>`, then
|
|
12
16
|
* `Z` or `±HH:MM[:SS[.fraction]]`. Basic format, a space or lower-case `t` separator, a
|
|
13
17
|
* lower-case `z` and an hour-only time or offset return `0n`, although
|
|
@@ -29,7 +33,8 @@
|
|
|
29
33
|
* @example toNanoseconds("2024-03-10T12:00:00.123456789Z") // 1710072000123456789n
|
|
30
34
|
* @example toNanoseconds("1969-12-31T23:59:59Z") // -1000000000n
|
|
31
35
|
* @example toNanoseconds("2024-03-10T12:00:00-05:00[America/New_York]") // 1710090000000000000n
|
|
32
|
-
* @example toNanoseconds("2024-03-10T12:00:00+05:00[America/New_York]") // 1710054000000000000n — the offset decides, the zone is
|
|
36
|
+
* @example toNanoseconds("2024-03-10T12:00:00+05:00[America/New_York]") // 1710054000000000000n — the offset decides, the zone is not checked
|
|
37
|
+
* @example toNanoseconds("1960-01-01T00:20:00-00:45[Africa/Monrovia]") // -315615330000000000n — the zone's −00:44:30, which `-00:45` rounds
|
|
33
38
|
* @example toNanoseconds("2024-03-10T12:00:00") // 0n — no offset designator
|
|
34
39
|
* @example toNanoseconds("20240310T120000Z") // 0n — basic format
|
|
35
40
|
* @example toNanoseconds("invalid") // 0n
|
|
@@ -4,11 +4,15 @@ import { parseInstantNanoseconds } from "../../internal/index.js";
|
|
|
4
4
|
*
|
|
5
5
|
* - Requires an offset designator (`Z`, `±HH:MM`), as `Temporal.Instant` does — date-only
|
|
6
6
|
* and offset-less strings are rejected.
|
|
7
|
-
* - Accepts a bracketed IANA time zone annotation and a `[u-ca=...]` calendar annotation
|
|
8
|
-
* ignored as `Temporal.Instant.from` ignores
|
|
9
|
-
* - **
|
|
10
|
-
*
|
|
11
|
-
*
|
|
7
|
+
* - Accepts a bracketed IANA time zone annotation and a `[u-ca=...]` calendar annotation. The
|
|
8
|
+
* calendar is ignored, as `Temporal.Instant.from` ignores it (an instant has no calendar).
|
|
9
|
+
* - **The offset fixes the instant; a bracketed zone only resolves a rounded one.** An offset
|
|
10
|
+
* written to the minute that is the bracketed zone's sub-minute offset rounded
|
|
11
|
+
* (`-00:45[Africa/Monrovia]`, for −00:44:30) names the instant the zone gives, as
|
|
12
|
+
* `Temporal.ZonedDateTime.from` reads it, so a zoned string Temporal wrote is read back as
|
|
13
|
+
* the instant it was written for, except a wall time repeated inside a sub-minute offset
|
|
14
|
+
* change, which reads as its first pass (see `isValidInstant`). Otherwise the bracket is not
|
|
15
|
+
* checked: a zone that does not exist, or that disagrees with the offset, changes nothing.
|
|
12
16
|
* - ISO 8601 extended format before any annotation: `<date>T<time>`, then
|
|
13
17
|
* `Z` or `±HH:MM[:SS[.fraction]]`. Basic format, a space or lower-case `t` separator, a
|
|
14
18
|
* lower-case `z` and an hour-only time or offset return `0n`, although
|
|
@@ -30,7 +34,8 @@ import { parseInstantNanoseconds } from "../../internal/index.js";
|
|
|
30
34
|
* @example toNanoseconds("2024-03-10T12:00:00.123456789Z") // 1710072000123456789n
|
|
31
35
|
* @example toNanoseconds("1969-12-31T23:59:59Z") // -1000000000n
|
|
32
36
|
* @example toNanoseconds("2024-03-10T12:00:00-05:00[America/New_York]") // 1710090000000000000n
|
|
33
|
-
* @example toNanoseconds("2024-03-10T12:00:00+05:00[America/New_York]") // 1710054000000000000n — the offset decides, the zone is
|
|
37
|
+
* @example toNanoseconds("2024-03-10T12:00:00+05:00[America/New_York]") // 1710054000000000000n — the offset decides, the zone is not checked
|
|
38
|
+
* @example toNanoseconds("1960-01-01T00:20:00-00:45[Africa/Monrovia]") // -315615330000000000n — the zone's −00:44:30, which `-00:45` rounds
|
|
34
39
|
* @example toNanoseconds("2024-03-10T12:00:00") // 0n — no offset designator
|
|
35
40
|
* @example toNanoseconds("20240310T120000Z") // 0n — basic format
|
|
36
41
|
* @example toNanoseconds("invalid") // 0n
|
|
@@ -9,9 +9,18 @@
|
|
|
9
9
|
*
|
|
10
10
|
* - Requires an offset designator (`Z`, `±HH:MM`); a bracketed IANA zone may follow, but a
|
|
11
11
|
* bracket alone is not enough.
|
|
12
|
-
* - **
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* - **The offset fixes the instant; a bracketed zone only resolves a rounded one.** An offset
|
|
13
|
+
* written to the minute that is the bracketed zone's sub-minute offset rounded
|
|
14
|
+
* (`-00:45[Africa/Monrovia]`, for −00:44:30) names the instant the zone gives, as
|
|
15
|
+
* `Temporal.ZonedDateTime.from` reads it, so a zoned string Temporal wrote is read back as
|
|
16
|
+
* the instant it was written for, at the first and last instants of the range too, where the
|
|
17
|
+
* written offset's own reading can fall just outside it
|
|
18
|
+
* (`-271821-04-19T23:58:45-00:01[Europe/London]` is the first instant). One exception, which
|
|
19
|
+
* is Temporal's own: a wall time repeated inside a sub-minute offset change, written with a
|
|
20
|
+
* minute-rounded offset, reads as its first pass (for example `1952-10-15T23:59:59-11:20[Pacific/Niue]`,
|
|
21
|
+
* where the zone moved from −11:19:40 to −11:20:00, is the pass at −11:19:40). Otherwise the bracket is not checked: a
|
|
22
|
+
* zone that does not exist, or that disagrees with the offset, changes nothing. Validity never depends
|
|
23
|
+
* on the bracket.
|
|
15
24
|
* - ISO 8601 extended format before any annotation: `<date>T<time>`, then
|
|
16
25
|
* `Z` or `±HH:MM[:SS[.fraction]]`. Basic format, a space or lower-case `t` separator, a
|
|
17
26
|
* lower-case `z` and an hour-only time or offset return `false`, although
|
|
@@ -10,9 +10,18 @@ import { parseInstantNanoseconds } from "../../internal/index.js";
|
|
|
10
10
|
*
|
|
11
11
|
* - Requires an offset designator (`Z`, `±HH:MM`); a bracketed IANA zone may follow, but a
|
|
12
12
|
* bracket alone is not enough.
|
|
13
|
-
* - **
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* - **The offset fixes the instant; a bracketed zone only resolves a rounded one.** An offset
|
|
14
|
+
* written to the minute that is the bracketed zone's sub-minute offset rounded
|
|
15
|
+
* (`-00:45[Africa/Monrovia]`, for −00:44:30) names the instant the zone gives, as
|
|
16
|
+
* `Temporal.ZonedDateTime.from` reads it, so a zoned string Temporal wrote is read back as
|
|
17
|
+
* the instant it was written for, at the first and last instants of the range too, where the
|
|
18
|
+
* written offset's own reading can fall just outside it
|
|
19
|
+
* (`-271821-04-19T23:58:45-00:01[Europe/London]` is the first instant). One exception, which
|
|
20
|
+
* is Temporal's own: a wall time repeated inside a sub-minute offset change, written with a
|
|
21
|
+
* minute-rounded offset, reads as its first pass (for example `1952-10-15T23:59:59-11:20[Pacific/Niue]`,
|
|
22
|
+
* where the zone moved from −11:19:40 to −11:20:00, is the pass at −11:19:40). Otherwise the bracket is not checked: a
|
|
23
|
+
* zone that does not exist, or that disagrees with the offset, changes nothing. Validity never depends
|
|
24
|
+
* on the bracket.
|
|
16
25
|
* - ISO 8601 extended format before any annotation: `<date>T<time>`, then
|
|
17
26
|
* `Z` or `±HH:MM[:SS[.fraction]]`. Basic format, a space or lower-case `t` separator, a
|
|
18
27
|
* lower-case `z` and an hour-only time or offset return `false`, although
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RegExp matching a GS1 EPCIS 2.0 `eventTimeZoneOffset`: the `pattern` the EPCIS JSON schema
|
|
3
|
+
* (https://ref.gs1.org/standards/epcis/epcis-json-schema.json, a normative artefact of EPCIS 2.0 /
|
|
4
|
+
* ISO/IEC 19987) gives for the field, verbatim: `^([+]|[-])((0[0-9]|1[0-3]):([0-5][0-9])|14:00)$`.
|
|
5
|
+
*
|
|
6
|
+
* - The pattern is the JSON binding's. The XML binding's XSD types the same field as a bare
|
|
7
|
+
* `xsd:string` and gives no pattern.
|
|
8
|
+
* - The rule both bindings carry is the standard's prose, EPCIS Standard Release 2.0 §7.4.1
|
|
9
|
+
* (https://ref.gs1.org/standards/epcis/): the value "SHALL be a string consisting of the
|
|
10
|
+
* character '+' or the character '-', followed by two digits whose value is within the range
|
|
11
|
+
* 00 through 14 (inclusive), followed by a colon character ':', followed by two digits whose
|
|
12
|
+
* value is within the range 00 through 59 (inclusive), except that if the value of the first
|
|
13
|
+
* two digits is 14, the value of the second two digits must be 00." The pattern is that
|
|
14
|
+
* sentence as a regular expression.
|
|
15
|
+
* - `±HH:MM` from `-13:59` through `+13:59`, plus `±14:00`. GS1 published the grammar, so it is
|
|
16
|
+
* neither loosened nor tightened here: `-14:00` matches because the sign group is independent
|
|
17
|
+
* of the `14:00` alternative, and `-00:00` matches.
|
|
18
|
+
* - `Z` does not match: it is `eventTime`'s designator, and this field records the offset in
|
|
19
|
+
* force where the event happened. `+0200` (no colon) and `+02` (hours only) do not match.
|
|
20
|
+
* - Shape only. `parseEpcisEvent` reads the value through Temporal, and returns `-00:00` as
|
|
21
|
+
* `+00:00`. To check a value that may not be a string, use `isValidEpcisTimeZoneOffset`: for a
|
|
22
|
+
* string it gives this pattern's answer.
|
|
23
|
+
*
|
|
24
|
+
* Capture groups: 1 sign, 2 the hours-and-minutes or `14:00`, 3 hours, 4 minutes (3 and 4 are
|
|
25
|
+
* `undefined` for `14:00`).
|
|
26
|
+
*
|
|
27
|
+
* @example epcisTimeZoneOffset.test("-05:00") // true
|
|
28
|
+
* @example epcisTimeZoneOffset.test("+14:00") // true
|
|
29
|
+
* @example epcisTimeZoneOffset.test("+14:01") // false (past the range GS1 allows)
|
|
30
|
+
* @example epcisTimeZoneOffset.test("Z") // false (a designator, not an offset)
|
|
31
|
+
* @example epcisTimeZoneOffset.test("+0200") // false (no colon)
|
|
32
|
+
*/
|
|
33
|
+
export declare const epcisTimeZoneOffset: RegExp;
|
|
34
|
+
/**
|
|
35
|
+
* RegExp matching a GS1 EPCIS 2.0 `eventTime` (and `recordTime`): the `DateTimeStamp` pattern of
|
|
36
|
+
* the EPCIS XSD (https://ref.gs1.org/standards/epcis/epcglobal-epcis-2_0.xsd, a normative
|
|
37
|
+
* artefact of EPCIS 2.0 / ISO/IEC 19987), verbatim and anchored.
|
|
38
|
+
*
|
|
39
|
+
* - The pattern is the XML binding's. The JSON schema types the same field as a string with
|
|
40
|
+
* `format: date-time` and gives no pattern, so this is the stricter of the two bindings.
|
|
41
|
+
* - A date-time with seconds required, an optional fraction of any length, then `Z` or an offset
|
|
42
|
+
* in the same range as `epcisTimeZoneOffset`.
|
|
43
|
+
* - GS1 published the grammar, so it is neither loosened nor tightened here: four-digit years
|
|
44
|
+
* only, upper-case `T` and `Z`, a colon in the offset, no space separator.
|
|
45
|
+
* - Shape only; calendar validity is Temporal's (`2023-02-29T00:00:00Z` matches and
|
|
46
|
+
* `Temporal.Instant.from` rejects it). To check that a string is a real `eventTime`, use
|
|
47
|
+
* `isValidEpcisEventTime`: this pattern also matches a day that does not exist and a fraction
|
|
48
|
+
* longer than nine digits.
|
|
49
|
+
*
|
|
50
|
+
* Capture groups: 1 year, 2 month, 3 day, 4 hour, 5 minute, 6 second, 7 fraction with its
|
|
51
|
+
* period (optional), 8 `Z` or the offset, 9 the offset, 10 sign, 11 hours-and-minutes or
|
|
52
|
+
* `14:00`, 12 hours, 13 minutes.
|
|
53
|
+
*
|
|
54
|
+
* @example epcisEventTime.test("2024-06-15T14:30:00Z") // true
|
|
55
|
+
* @example epcisEventTime.test("2024-06-15T14:30:00.123-05:00") // true
|
|
56
|
+
* @example epcisEventTime.test("2024-06-15T14:30Z") // false (seconds are required)
|
|
57
|
+
* @example epcisEventTime.test("2024-06-15T14:30:00") // false (Z or an offset is required)
|
|
58
|
+
* @example epcisEventTime.test("2024-06-15T14:30:00+15:00") // false (offset past the range GS1 allows)
|
|
59
|
+
*/
|
|
60
|
+
export declare const epcisEventTime: RegExp;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RegExp matching a GS1 EPCIS 2.0 `eventTimeZoneOffset`: the `pattern` the EPCIS JSON schema
|
|
3
|
+
* (https://ref.gs1.org/standards/epcis/epcis-json-schema.json, a normative artefact of EPCIS 2.0 /
|
|
4
|
+
* ISO/IEC 19987) gives for the field, verbatim: `^([+]|[-])((0[0-9]|1[0-3]):([0-5][0-9])|14:00)$`.
|
|
5
|
+
*
|
|
6
|
+
* - The pattern is the JSON binding's. The XML binding's XSD types the same field as a bare
|
|
7
|
+
* `xsd:string` and gives no pattern.
|
|
8
|
+
* - The rule both bindings carry is the standard's prose, EPCIS Standard Release 2.0 §7.4.1
|
|
9
|
+
* (https://ref.gs1.org/standards/epcis/): the value "SHALL be a string consisting of the
|
|
10
|
+
* character '+' or the character '-', followed by two digits whose value is within the range
|
|
11
|
+
* 00 through 14 (inclusive), followed by a colon character ':', followed by two digits whose
|
|
12
|
+
* value is within the range 00 through 59 (inclusive), except that if the value of the first
|
|
13
|
+
* two digits is 14, the value of the second two digits must be 00." The pattern is that
|
|
14
|
+
* sentence as a regular expression.
|
|
15
|
+
* - `±HH:MM` from `-13:59` through `+13:59`, plus `±14:00`. GS1 published the grammar, so it is
|
|
16
|
+
* neither loosened nor tightened here: `-14:00` matches because the sign group is independent
|
|
17
|
+
* of the `14:00` alternative, and `-00:00` matches.
|
|
18
|
+
* - `Z` does not match: it is `eventTime`'s designator, and this field records the offset in
|
|
19
|
+
* force where the event happened. `+0200` (no colon) and `+02` (hours only) do not match.
|
|
20
|
+
* - Shape only. `parseEpcisEvent` reads the value through Temporal, and returns `-00:00` as
|
|
21
|
+
* `+00:00`. To check a value that may not be a string, use `isValidEpcisTimeZoneOffset`: for a
|
|
22
|
+
* string it gives this pattern's answer.
|
|
23
|
+
*
|
|
24
|
+
* Capture groups: 1 sign, 2 the hours-and-minutes or `14:00`, 3 hours, 4 minutes (3 and 4 are
|
|
25
|
+
* `undefined` for `14:00`).
|
|
26
|
+
*
|
|
27
|
+
* @example epcisTimeZoneOffset.test("-05:00") // true
|
|
28
|
+
* @example epcisTimeZoneOffset.test("+14:00") // true
|
|
29
|
+
* @example epcisTimeZoneOffset.test("+14:01") // false (past the range GS1 allows)
|
|
30
|
+
* @example epcisTimeZoneOffset.test("Z") // false (a designator, not an offset)
|
|
31
|
+
* @example epcisTimeZoneOffset.test("+0200") // false (no colon)
|
|
32
|
+
*/
|
|
33
|
+
export const epcisTimeZoneOffset = /^([+]|[-])((0[0-9]|1[0-3]):([0-5][0-9])|14:00)$/;
|
|
34
|
+
/**
|
|
35
|
+
* RegExp matching a GS1 EPCIS 2.0 `eventTime` (and `recordTime`): the `DateTimeStamp` pattern of
|
|
36
|
+
* the EPCIS XSD (https://ref.gs1.org/standards/epcis/epcglobal-epcis-2_0.xsd, a normative
|
|
37
|
+
* artefact of EPCIS 2.0 / ISO/IEC 19987), verbatim and anchored.
|
|
38
|
+
*
|
|
39
|
+
* - The pattern is the XML binding's. The JSON schema types the same field as a string with
|
|
40
|
+
* `format: date-time` and gives no pattern, so this is the stricter of the two bindings.
|
|
41
|
+
* - A date-time with seconds required, an optional fraction of any length, then `Z` or an offset
|
|
42
|
+
* in the same range as `epcisTimeZoneOffset`.
|
|
43
|
+
* - GS1 published the grammar, so it is neither loosened nor tightened here: four-digit years
|
|
44
|
+
* only, upper-case `T` and `Z`, a colon in the offset, no space separator.
|
|
45
|
+
* - Shape only; calendar validity is Temporal's (`2023-02-29T00:00:00Z` matches and
|
|
46
|
+
* `Temporal.Instant.from` rejects it). To check that a string is a real `eventTime`, use
|
|
47
|
+
* `isValidEpcisEventTime`: this pattern also matches a day that does not exist and a fraction
|
|
48
|
+
* longer than nine digits.
|
|
49
|
+
*
|
|
50
|
+
* Capture groups: 1 year, 2 month, 3 day, 4 hour, 5 minute, 6 second, 7 fraction with its
|
|
51
|
+
* period (optional), 8 `Z` or the offset, 9 the offset, 10 sign, 11 hours-and-minutes or
|
|
52
|
+
* `14:00`, 12 hours, 13 minutes.
|
|
53
|
+
*
|
|
54
|
+
* @example epcisEventTime.test("2024-06-15T14:30:00Z") // true
|
|
55
|
+
* @example epcisEventTime.test("2024-06-15T14:30:00.123-05:00") // true
|
|
56
|
+
* @example epcisEventTime.test("2024-06-15T14:30Z") // false (seconds are required)
|
|
57
|
+
* @example epcisEventTime.test("2024-06-15T14:30:00") // false (Z or an offset is required)
|
|
58
|
+
* @example epcisEventTime.test("2024-06-15T14:30:00+15:00") // false (offset past the range GS1 allows)
|
|
59
|
+
*/
|
|
60
|
+
export const epcisEventTime = /^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?(Z|(([+]|[-])((0[0-9]|1[0-3]):([0-5][0-9])|14:00)))$/;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* RegExp matching RFC 9110 §5.6.7 IMF-fixdate — the only form GMT's `
|
|
2
|
+
* RegExp matching RFC 9110 §5.6.7 IMF-fixdate — the only form GMT's `formatHttpDate` emits and
|
|
3
3
|
* the preferred HTTP-date form. Day, year, and time-of-day fields are all fixed-width per the
|
|
4
4
|
* grammar (unlike RFC 5322's leniently-sized day); the trailing "GMT" literal is mandatory,
|
|
5
5
|
* never a numeric offset.
|
|
6
6
|
*
|
|
7
7
|
* - **IMF-fixdate only.** RFC 9110 requires a recipient to accept all three HTTP-date formats;
|
|
8
|
-
* the obsolete rfc850-date and asctime-date do not match this pattern. `
|
|
8
|
+
* the obsolete rfc850-date and asctime-date do not match this pattern. `parseHttpDate` reads all
|
|
9
9
|
* three.
|
|
10
|
-
* - The day name is not checked against the date; `
|
|
10
|
+
* - The day name is not checked against the date; `parseHttpDate` does check it.
|
|
11
|
+
* - To check that a string is a real HTTP-date, use `isValidHttpDate`: this pattern also matches
|
|
12
|
+
* a day that does not exist and an hour out of range.
|
|
11
13
|
*
|
|
12
14
|
* Capture groups: 1 day-of-week, 2 day, 3 month, 4 year, 5 hour, 6 minute, 7 second.
|
|
13
15
|
*
|
|
@@ -15,6 +17,6 @@
|
|
|
15
17
|
* @example httpDate.test("Jun 09 2021 10:18:14 GMT") // false (missing day-of-week)
|
|
16
18
|
* @example httpDate.test("Wed, 9 Jun 2021 10:18:14 GMT") // false (single-digit day)
|
|
17
19
|
* @example httpDate.test("Wed, 09 Jun 2021 10:18:14 +0000") // false (numeric offset)
|
|
18
|
-
* @example httpDate.test("Wednesday, 09-Jun-21 10:18:14 GMT") // false (rfc850-date:
|
|
20
|
+
* @example httpDate.test("Wednesday, 09-Jun-21 10:18:14 GMT") // false (rfc850-date: parseHttpDate reads it)
|
|
19
21
|
*/
|
|
20
22
|
export declare const httpDate: RegExp;
|
package/dist/regex/http-date.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* RegExp matching RFC 9110 §5.6.7 IMF-fixdate — the only form GMT's `
|
|
2
|
+
* RegExp matching RFC 9110 §5.6.7 IMF-fixdate — the only form GMT's `formatHttpDate` emits and
|
|
3
3
|
* the preferred HTTP-date form. Day, year, and time-of-day fields are all fixed-width per the
|
|
4
4
|
* grammar (unlike RFC 5322's leniently-sized day); the trailing "GMT" literal is mandatory,
|
|
5
5
|
* never a numeric offset.
|
|
6
6
|
*
|
|
7
7
|
* - **IMF-fixdate only.** RFC 9110 requires a recipient to accept all three HTTP-date formats;
|
|
8
|
-
* the obsolete rfc850-date and asctime-date do not match this pattern. `
|
|
8
|
+
* the obsolete rfc850-date and asctime-date do not match this pattern. `parseHttpDate` reads all
|
|
9
9
|
* three.
|
|
10
|
-
* - The day name is not checked against the date; `
|
|
10
|
+
* - The day name is not checked against the date; `parseHttpDate` does check it.
|
|
11
|
+
* - To check that a string is a real HTTP-date, use `isValidHttpDate`: this pattern also matches
|
|
12
|
+
* a day that does not exist and an hour out of range.
|
|
11
13
|
*
|
|
12
14
|
* Capture groups: 1 day-of-week, 2 day, 3 month, 4 year, 5 hour, 6 minute, 7 second.
|
|
13
15
|
*
|
|
@@ -15,6 +17,6 @@
|
|
|
15
17
|
* @example httpDate.test("Jun 09 2021 10:18:14 GMT") // false (missing day-of-week)
|
|
16
18
|
* @example httpDate.test("Wed, 9 Jun 2021 10:18:14 GMT") // false (single-digit day)
|
|
17
19
|
* @example httpDate.test("Wed, 09 Jun 2021 10:18:14 +0000") // false (numeric offset)
|
|
18
|
-
* @example httpDate.test("Wednesday, 09-Jun-21 10:18:14 GMT") // false (rfc850-date:
|
|
20
|
+
* @example httpDate.test("Wednesday, 09-Jun-21 10:18:14 GMT") // false (rfc850-date: parseHttpDate reads it)
|
|
19
21
|
*/
|
|
20
22
|
export const httpDate = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{2}):(\d{2}):(\d{2}) GMT$/;
|
package/dist/regex/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./calendar-date.js";
|
|
|
3
3
|
export * from "./calendar-zoned-date-time.js";
|
|
4
4
|
export * from "./date.js";
|
|
5
5
|
export * from "./date-time.js";
|
|
6
|
+
export * from "./epcis.js";
|
|
6
7
|
export * from "./http-date.js";
|
|
7
8
|
export * from "./leap-second.js";
|
|
8
9
|
export * from "./nanoseconds.js";
|
package/dist/regex/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from "./calendar-date.js";
|
|
|
4
4
|
export * from "./calendar-zoned-date-time.js";
|
|
5
5
|
export * from "./date.js";
|
|
6
6
|
export * from "./date-time.js";
|
|
7
|
+
export * from "./epcis.js";
|
|
7
8
|
export * from "./http-date.js";
|
|
8
9
|
export * from "./leap-second.js";
|
|
9
10
|
export * from "./nanoseconds.js";
|
package/dist/regex/rfc-2822.d.ts
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* `parseRfc2822` reads the full receiver grammar — use it to decode a header, and this
|
|
14
14
|
* pattern only to check that a string has the strict shape.
|
|
15
15
|
* - The day-of-week is not checked against the date; `parseRfc2822` does check it.
|
|
16
|
+
* - To check that a string is a real RFC 5322 date-time, use `isValidRfc2822DateTime`: this
|
|
17
|
+
* pattern also matches a day that does not exist and an hour or zone out of range.
|
|
16
18
|
*
|
|
17
19
|
* Capture groups: 1 day-of-week (optional, for weekday-prefixed form), 2 day, 3 month,
|
|
18
20
|
* 4 year, 5 hour, 6 minute, 7 second (optional), 8 zone.
|
package/dist/regex/rfc-2822.js
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* `parseRfc2822` reads the full receiver grammar — use it to decode a header, and this
|
|
14
14
|
* pattern only to check that a string has the strict shape.
|
|
15
15
|
* - The day-of-week is not checked against the date; `parseRfc2822` does check it.
|
|
16
|
+
* - To check that a string is a real RFC 5322 date-time, use `isValidRfc2822DateTime`: this
|
|
17
|
+
* pattern also matches a day that does not exist and an hour or zone out of range.
|
|
16
18
|
*
|
|
17
19
|
* Capture groups: 1 day-of-week (optional, for weekday-prefixed form), 2 day, 3 month,
|
|
18
20
|
* 4 year, 5 hour, 6 minute, 7 second (optional), 8 zone.
|
package/dist/regex/rfc-3339.d.ts
CHANGED
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
* `:59`), and the fraction is capped at 9 digits (`time-secfrac` is `1*DIGIT`; Temporal keeps
|
|
12
12
|
* nanoseconds).
|
|
13
13
|
* - Shape-only validation; real calendar validation is delegated to
|
|
14
|
-
* `Temporal.PlainDateTime.from(...).toZonedDateTime(offset)` in `parseRfc3339`.
|
|
14
|
+
* `Temporal.PlainDateTime.from(...).toZonedDateTime(offset)` in `parseRfc3339`. To check that a
|
|
15
|
+
* string is a real RFC 3339 date-time, use `isValidRfc3339DateTime`: this pattern also matches
|
|
16
|
+
* a day that does not exist, such as 29 February 2023.
|
|
15
17
|
* - Capture groups: 1 year, 2 month, 3 day, 4 hour, 5 minute, 6 second,
|
|
16
18
|
* 7 fractional (optional), 8 offset.
|
|
17
19
|
*
|
package/dist/regex/rfc-3339.js
CHANGED
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
* `:59`), and the fraction is capped at 9 digits (`time-secfrac` is `1*DIGIT`; Temporal keeps
|
|
12
12
|
* nanoseconds).
|
|
13
13
|
* - Shape-only validation; real calendar validation is delegated to
|
|
14
|
-
* `Temporal.PlainDateTime.from(...).toZonedDateTime(offset)` in `parseRfc3339`.
|
|
14
|
+
* `Temporal.PlainDateTime.from(...).toZonedDateTime(offset)` in `parseRfc3339`. To check that a
|
|
15
|
+
* string is a real RFC 3339 date-time, use `isValidRfc3339DateTime`: this pattern also matches
|
|
16
|
+
* a day that does not exist, such as 29 February 2023.
|
|
15
17
|
* - Capture groups: 1 year, 2 month, 3 day, 4 hour, 5 minute, 6 second,
|
|
16
18
|
* 7 fractional (optional), 8 offset.
|
|
17
19
|
*
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
* - SECOND `60`–`61` does not match, although Table 10 allows them: GMT rejects leap seconds
|
|
17
17
|
* because Temporal would read one as `:59`.
|
|
18
18
|
* - Shape-only validation; the calendar date is checked by `Temporal.PlainDateTime.from` in
|
|
19
|
-
* `
|
|
19
|
+
* `parseSqlDateTime`. To check that a string is a real SQL timestamp literal, use
|
|
20
|
+
* `isValidSqlDateTime`: this pattern also matches a day that does not exist, such as 30 February.
|
|
20
21
|
*
|
|
21
22
|
* Capture groups: 1 month, 2 day, 3 hour. The year, minute, second and fraction are not
|
|
22
23
|
* captured.
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
* - SECOND `60`–`61` does not match, although Table 10 allows them: GMT rejects leap seconds
|
|
17
17
|
* because Temporal would read one as `:59`.
|
|
18
18
|
* - Shape-only validation; the calendar date is checked by `Temporal.PlainDateTime.from` in
|
|
19
|
-
* `
|
|
19
|
+
* `parseSqlDateTime`. To check that a string is a real SQL timestamp literal, use
|
|
20
|
+
* `isValidSqlDateTime`: this pattern also matches a day that does not exist, such as 30 February.
|
|
20
21
|
*
|
|
21
22
|
* Capture groups: 1 month, 2 day, 3 hour. The year, minute, second and fraction are not
|
|
22
23
|
* captured.
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* RegExp matching the shape of a time zone identifier: Temporal's `TimeZoneIdentifier` grammar
|
|
3
|
-
* (§
|
|
3
|
+
* (§13.31, the ISO 8601 / RFC 9557 grammar),
|
|
4
|
+
* `TimeZoneIdentifier ::: UTCOffset[~SubMinutePrecision] | TimeZoneIANAName`.
|
|
4
5
|
*
|
|
5
6
|
* - An offset identifier (`UTCOffset[~SubMinutePrecision]`): an ASCII sign and a two-digit hour
|
|
6
7
|
* `00`–`23`, optionally followed by two minute digits `00`–`59`, with or without `:` (`+05`,
|
|
7
8
|
* `+0530`, `-08:00`). No seconds and no fraction. `Intl.DateTimeFormat` accepts the same
|
|
8
|
-
* offsets (ECMA-
|
|
9
|
+
* offsets (ECMA-262 `IsTimeZoneOffsetString`, which ECMA-402 calls).
|
|
9
10
|
* - An IANA name (`TimeZoneIANAName`): one or more `/`-separated components. Each starts with a
|
|
10
11
|
* letter, `.` or `_` (`TZLeadingChar`) and continues with letters, digits, `.`, `_`, `-` or `+`
|
|
11
12
|
* (`TZChar`). So single-component names match (`UTC`, `Japan`, `Zulu`, `EST5EDT`, `GMT+0`,
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* RegExp matching the shape of a time zone identifier: Temporal's `TimeZoneIdentifier` grammar
|
|
3
|
-
* (§
|
|
3
|
+
* (§13.31, the ISO 8601 / RFC 9557 grammar),
|
|
4
|
+
* `TimeZoneIdentifier ::: UTCOffset[~SubMinutePrecision] | TimeZoneIANAName`.
|
|
4
5
|
*
|
|
5
6
|
* - An offset identifier (`UTCOffset[~SubMinutePrecision]`): an ASCII sign and a two-digit hour
|
|
6
7
|
* `00`–`23`, optionally followed by two minute digits `00`–`59`, with or without `:` (`+05`,
|
|
7
8
|
* `+0530`, `-08:00`). No seconds and no fraction. `Intl.DateTimeFormat` accepts the same
|
|
8
|
-
* offsets (ECMA-
|
|
9
|
+
* offsets (ECMA-262 `IsTimeZoneOffsetString`, which ECMA-402 calls).
|
|
9
10
|
* - An IANA name (`TimeZoneIANAName`): one or more `/`-separated components. Each starts with a
|
|
10
11
|
* letter, `.` or `_` (`TZLeadingChar`) and continues with letters, digits, `.`, `_`, `-` or `+`
|
|
11
12
|
* (`TZChar`). So single-component names match (`UTC`, `Japan`, `Zulu`, `EST5EDT`, `GMT+0`,
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
* - Sub-second offsets are rejected. ISO 8601 permits them and `Temporal.Instant.from` parses
|
|
13
13
|
* them, but no zone, and no standard that stores this pair, has ever used one.
|
|
14
14
|
* - Shape only. Whether the offset is in Temporal's representable range is a separate check —
|
|
15
|
-
* `internal/utcOffsetString.ts` applies both.
|
|
15
|
+
* `internal/utcOffsetString.ts` applies both. To check a value that may not be a string, use
|
|
16
|
+
* `isValidUtcOffset`: for a string it gives this pattern's answer.
|
|
16
17
|
*
|
|
17
18
|
* @example utcOffset.test("-04:00") // true
|
|
18
19
|
* @example utcOffset.test("+05:45") // true
|
package/dist/regex/utc-offset.js
CHANGED
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
* - Sub-second offsets are rejected. ISO 8601 permits them and `Temporal.Instant.from` parses
|
|
13
13
|
* them, but no zone, and no standard that stores this pair, has ever used one.
|
|
14
14
|
* - Shape only. Whether the offset is in Temporal's representable range is a separate check —
|
|
15
|
-
* `internal/utcOffsetString.ts` applies both.
|
|
15
|
+
* `internal/utcOffsetString.ts` applies both. To check a value that may not be a string, use
|
|
16
|
+
* `isValidUtcOffset`: for a string it gives this pattern's answer.
|
|
16
17
|
*
|
|
17
18
|
* @example utcOffset.test("-04:00") // true
|
|
18
19
|
* @example utcOffset.test("+05:45") // true
|
|
@@ -16,9 +16,14 @@
|
|
|
16
16
|
* required, optionally followed by a bracketed IANA zone — a bracket alone is not enough,
|
|
17
17
|
* which is the one string shape `spanWallClock` accepts and these two do not. The
|
|
18
18
|
* endpoints need not share a zone; an instant is an instant.
|
|
19
|
-
* - **
|
|
20
|
-
*
|
|
21
|
-
*
|
|
19
|
+
* - **The offset fixes the instant; a bracketed zone only resolves a rounded one.** An offset
|
|
20
|
+
* written to the minute that is the bracketed zone's sub-minute offset rounded
|
|
21
|
+
* (`-00:45[Africa/Monrovia]`, for −00:44:30) names the instant the zone gives, as
|
|
22
|
+
* `Temporal.ZonedDateTime.from` reads it, so a zoned string Temporal wrote is read back as
|
|
23
|
+
* the instant it was written for, except a wall time repeated inside a sub-minute offset
|
|
24
|
+
* change, which reads as its first pass (see `isValidInstant`). Otherwise the bracket is not
|
|
25
|
+
* checked: a zone that does not exist, or that disagrees with the offset, changes nothing. `spanWallClock`, by
|
|
26
|
+
* contrast, rejects a mismatched offset.
|
|
22
27
|
* - Returns `null` on invalid input, not `0` — `0` is the span between an instant and itself.
|
|
23
28
|
* `null`, not `NaN`, because that is GMT's sentinel for every number-returning function:
|
|
24
29
|
* it is the one a caller already checks for, and the only one `strictNullChecks` forces
|
|
@@ -45,7 +50,8 @@
|
|
|
45
50
|
* @example spanMs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00Z") // 0
|
|
46
51
|
* @example spanMs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00.123456789Z") // 123.456789
|
|
47
52
|
* @example spanMs("2024-03-09T12:00:00-05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 82800000 — 23 hours, not 24
|
|
48
|
-
* @example spanMs("2024-03-10T12:00:00+05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 32400000 — offsets decide, the zone is
|
|
53
|
+
* @example spanMs("2024-03-10T12:00:00+05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 32400000 — offsets decide, the zone is not checked
|
|
54
|
+
* @example spanMs("1960-01-01T01:04:30Z", "1960-01-01T00:20:00-00:45[Africa/Monrovia]") // 0 — the zone's −00:44:30, which `-00:45` rounds
|
|
49
55
|
* @example spanMs("-271821-04-20T00:00:00Z", "+275760-09-13T00:00:00Z") // null — past the safe integer range, use spanNs
|
|
50
56
|
* @example spanMs("2024-03-10T12:00:00Z", "invalid") // null
|
|
51
57
|
*/
|
|
@@ -28,9 +28,14 @@ const MAX_SAFE_NANOSECONDS = BigInt(Number.MAX_SAFE_INTEGER) * NANOSECONDS_PER_M
|
|
|
28
28
|
* required, optionally followed by a bracketed IANA zone — a bracket alone is not enough,
|
|
29
29
|
* which is the one string shape `spanWallClock` accepts and these two do not. The
|
|
30
30
|
* endpoints need not share a zone; an instant is an instant.
|
|
31
|
-
* - **
|
|
32
|
-
*
|
|
33
|
-
*
|
|
31
|
+
* - **The offset fixes the instant; a bracketed zone only resolves a rounded one.** An offset
|
|
32
|
+
* written to the minute that is the bracketed zone's sub-minute offset rounded
|
|
33
|
+
* (`-00:45[Africa/Monrovia]`, for −00:44:30) names the instant the zone gives, as
|
|
34
|
+
* `Temporal.ZonedDateTime.from` reads it, so a zoned string Temporal wrote is read back as
|
|
35
|
+
* the instant it was written for, except a wall time repeated inside a sub-minute offset
|
|
36
|
+
* change, which reads as its first pass (see `isValidInstant`). Otherwise the bracket is not
|
|
37
|
+
* checked: a zone that does not exist, or that disagrees with the offset, changes nothing. `spanWallClock`, by
|
|
38
|
+
* contrast, rejects a mismatched offset.
|
|
34
39
|
* - Returns `null` on invalid input, not `0` — `0` is the span between an instant and itself.
|
|
35
40
|
* `null`, not `NaN`, because that is GMT's sentinel for every number-returning function:
|
|
36
41
|
* it is the one a caller already checks for, and the only one `strictNullChecks` forces
|
|
@@ -57,7 +62,8 @@ const MAX_SAFE_NANOSECONDS = BigInt(Number.MAX_SAFE_INTEGER) * NANOSECONDS_PER_M
|
|
|
57
62
|
* @example spanMs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00Z") // 0
|
|
58
63
|
* @example spanMs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00.123456789Z") // 123.456789
|
|
59
64
|
* @example spanMs("2024-03-09T12:00:00-05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 82800000 — 23 hours, not 24
|
|
60
|
-
* @example spanMs("2024-03-10T12:00:00+05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 32400000 — offsets decide, the zone is
|
|
65
|
+
* @example spanMs("2024-03-10T12:00:00+05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 32400000 — offsets decide, the zone is not checked
|
|
66
|
+
* @example spanMs("1960-01-01T01:04:30Z", "1960-01-01T00:20:00-00:45[Africa/Monrovia]") // 0 — the zone's −00:44:30, which `-00:45` rounds
|
|
61
67
|
* @example spanMs("-271821-04-20T00:00:00Z", "+275760-09-13T00:00:00Z") // null — past the safe integer range, use spanNs
|
|
62
68
|
* @example spanMs("2024-03-10T12:00:00Z", "invalid") // null
|
|
63
69
|
*/
|
|
@@ -14,9 +14,14 @@
|
|
|
14
14
|
* required, optionally followed by a bracketed IANA zone — a bracket alone is not enough,
|
|
15
15
|
* which is the one string shape `spanWallClock` accepts and these two do not. The
|
|
16
16
|
* endpoints need not share a zone; an instant is an instant.
|
|
17
|
-
* - **
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* - **The offset fixes the instant; a bracketed zone only resolves a rounded one.** An offset
|
|
18
|
+
* written to the minute that is the bracketed zone's sub-minute offset rounded
|
|
19
|
+
* (`-00:45[Africa/Monrovia]`, for −00:44:30) names the instant the zone gives, as
|
|
20
|
+
* `Temporal.ZonedDateTime.from` reads it, so a zoned string Temporal wrote is read back as
|
|
21
|
+
* the instant it was written for, except a wall time repeated inside a sub-minute offset
|
|
22
|
+
* change, which reads as its first pass (see `isValidInstant`). Otherwise the bracket is not
|
|
23
|
+
* checked: a zone that does not exist, or that disagrees with the offset, changes nothing. `spanWallClock`, by
|
|
24
|
+
* contrast, rejects a mismatched offset.
|
|
20
25
|
* - Returns `null` on invalid input, not `0n` — `0n` is the span between an instant and
|
|
21
26
|
* itself. This is why it does not simply subtract two `toNanoseconds` results, which
|
|
22
27
|
* return `0n` for both the epoch and a rejected string.
|
|
@@ -37,7 +42,8 @@
|
|
|
37
42
|
* @example spanNs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00Z") // 0n
|
|
38
43
|
* @example spanNs("2024-03-10T12:00:00.123456789Z", "2024-03-10T12:00:00.123456790Z") // 1n
|
|
39
44
|
* @example spanNs("2024-03-10T07:00:00-05:00[America/New_York]", "2024-03-10T12:00:00Z") // 0n — same instant, different zones
|
|
40
|
-
* @example spanNs("2024-03-10T12:00:00+05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 32400000000000n — offsets decide, the zone is
|
|
45
|
+
* @example spanNs("2024-03-10T12:00:00+05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 32400000000000n — offsets decide, the zone is not checked
|
|
46
|
+
* @example spanNs("1960-01-01T01:04:30Z", "1960-01-01T00:20:00-00:45[Africa/Monrovia]") // 0n — the zone's −00:44:30, which `-00:45` rounds
|
|
41
47
|
* @example spanNs("2024-03-10T12:00:00Z", "invalid") // null
|
|
42
48
|
*/
|
|
43
49
|
export declare function spanNs(start: string, end: string): bigint | null;
|
|
@@ -15,9 +15,14 @@ import { parseInstantNanoseconds } from "../../internal/index.js";
|
|
|
15
15
|
* required, optionally followed by a bracketed IANA zone — a bracket alone is not enough,
|
|
16
16
|
* which is the one string shape `spanWallClock` accepts and these two do not. The
|
|
17
17
|
* endpoints need not share a zone; an instant is an instant.
|
|
18
|
-
* - **
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* - **The offset fixes the instant; a bracketed zone only resolves a rounded one.** An offset
|
|
19
|
+
* written to the minute that is the bracketed zone's sub-minute offset rounded
|
|
20
|
+
* (`-00:45[Africa/Monrovia]`, for −00:44:30) names the instant the zone gives, as
|
|
21
|
+
* `Temporal.ZonedDateTime.from` reads it, so a zoned string Temporal wrote is read back as
|
|
22
|
+
* the instant it was written for, except a wall time repeated inside a sub-minute offset
|
|
23
|
+
* change, which reads as its first pass (see `isValidInstant`). Otherwise the bracket is not
|
|
24
|
+
* checked: a zone that does not exist, or that disagrees with the offset, changes nothing. `spanWallClock`, by
|
|
25
|
+
* contrast, rejects a mismatched offset.
|
|
21
26
|
* - Returns `null` on invalid input, not `0n` — `0n` is the span between an instant and
|
|
22
27
|
* itself. This is why it does not simply subtract two `toNanoseconds` results, which
|
|
23
28
|
* return `0n` for both the epoch and a rejected string.
|
|
@@ -38,7 +43,8 @@ import { parseInstantNanoseconds } from "../../internal/index.js";
|
|
|
38
43
|
* @example spanNs("2024-03-10T12:00:00Z", "2024-03-10T12:00:00Z") // 0n
|
|
39
44
|
* @example spanNs("2024-03-10T12:00:00.123456789Z", "2024-03-10T12:00:00.123456790Z") // 1n
|
|
40
45
|
* @example spanNs("2024-03-10T07:00:00-05:00[America/New_York]", "2024-03-10T12:00:00Z") // 0n — same instant, different zones
|
|
41
|
-
* @example spanNs("2024-03-10T12:00:00+05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 32400000000000n — offsets decide, the zone is
|
|
46
|
+
* @example spanNs("2024-03-10T12:00:00+05:00[America/New_York]", "2024-03-10T12:00:00-04:00[America/New_York]") // 32400000000000n — offsets decide, the zone is not checked
|
|
47
|
+
* @example spanNs("1960-01-01T01:04:30Z", "1960-01-01T00:20:00-00:45[Africa/Monrovia]") // 0n — the zone's −00:44:30, which `-00:45` rounds
|
|
42
48
|
* @example spanNs("2024-03-10T12:00:00Z", "invalid") // null
|
|
43
49
|
*/
|
|
44
50
|
export function spanNs(start, end) {
|