@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
|
@@ -5,15 +5,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
5
5
|
/**
|
|
6
6
|
* Return the week number for a given ISO 8601 date string.
|
|
7
7
|
*
|
|
8
|
-
* -
|
|
9
|
-
* - `weekStartsOn: "sunday"` is the UTS #35 week of the week-year with a Sunday first day and
|
|
10
|
-
* minimal days 1 (week 1 holds 1 January, so late-December days can be week 1), while `"monday"`
|
|
11
|
-
* is the ISO 8601 week of the week-year; both are 1–53 — see `getWeekNumber`.
|
|
12
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
|
|
8
|
+
* - The week is the week of the week-year, 1–53, under either numbering — see `getWeekNumber`.
|
|
13
9
|
* - Returns null for invalid input.
|
|
14
10
|
*
|
|
15
11
|
* @param value ISO date string
|
|
16
|
-
* @param optionsArg
|
|
12
|
+
* @param optionsArg How weeks are numbered
|
|
17
13
|
* @returns Week number (1-53) or null on invalid input
|
|
18
14
|
*
|
|
19
15
|
* @example parseWeekFromDate("2024-01-01") // 1
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Return the week number for a given ISO 8601 datetime string.
|
|
3
3
|
*
|
|
4
|
-
* -
|
|
5
|
-
* - `weekStartsOn: "sunday"` is the UTS #35 week of the week-year with a Sunday first day and
|
|
6
|
-
* minimal days 1 (week 1 holds 1 January, so late-December days can be week 1), while `"monday"`
|
|
7
|
-
* is the ISO 8601 week of the week-year; both are 1–53 — see `getWeekNumber`.
|
|
8
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
|
|
4
|
+
* - The week is the week of the week-year, 1–53, under either numbering — see `getWeekNumber`.
|
|
9
5
|
* - Returns null for invalid input.
|
|
10
6
|
*
|
|
11
7
|
* @param value ISO 8601 datetime string
|
|
12
|
-
* @param optionsArg
|
|
8
|
+
* @param optionsArg How weeks are numbered
|
|
13
9
|
* @returns Week number (1-53) or null on invalid input
|
|
14
10
|
*
|
|
15
11
|
* @example parseWeekFromDateTime("2024-01-01T12:00:00") // 1
|
|
@@ -19,5 +15,13 @@
|
|
|
19
15
|
* @example parseWeekFromDateTime("2024-12-31T12:00:00", { weekStartsOn: "sunday" }) // 1 (its Sunday-first week holds 1 January 2025)
|
|
20
16
|
*/
|
|
21
17
|
export declare function parseWeekFromDateTime(value: string, optionsArg?: {
|
|
18
|
+
/**
|
|
19
|
+
* The first day of the week, which sets how the week is numbered. `"monday"` gives the ISO 8601
|
|
20
|
+
* week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS #35 week
|
|
21
|
+
* number with a Sunday first day and one minimal day, where week 1 holds 1 January. Any other
|
|
22
|
+
* value returns `null`.
|
|
23
|
+
*
|
|
24
|
+
* @defaultValue `"monday"`
|
|
25
|
+
*/
|
|
22
26
|
weekStartsOn?: "monday" | "sunday";
|
|
23
27
|
}): number | null;
|
|
@@ -6,15 +6,11 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
6
6
|
/**
|
|
7
7
|
* Return the week number for a given ISO 8601 datetime string.
|
|
8
8
|
*
|
|
9
|
-
* -
|
|
10
|
-
* - `weekStartsOn: "sunday"` is the UTS #35 week of the week-year with a Sunday first day and
|
|
11
|
-
* minimal days 1 (week 1 holds 1 January, so late-December days can be week 1), while `"monday"`
|
|
12
|
-
* is the ISO 8601 week of the week-year; both are 1–53 — see `getWeekNumber`.
|
|
13
|
-
* - `weekStartsOn` other than `"monday"` or `"sunday"` returns null.
|
|
9
|
+
* - The week is the week of the week-year, 1–53, under either numbering — see `getWeekNumber`.
|
|
14
10
|
* - Returns null for invalid input.
|
|
15
11
|
*
|
|
16
12
|
* @param value ISO 8601 datetime string
|
|
17
|
-
* @param optionsArg
|
|
13
|
+
* @param optionsArg How weeks are numbered
|
|
18
14
|
* @returns Week number (1-53) or null on invalid input
|
|
19
15
|
*
|
|
20
16
|
* @example parseWeekFromDateTime("2024-01-01T12:00:00") // 1
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Return the year for a given ISO 8601 date string.
|
|
3
3
|
*
|
|
4
|
-
* - Returns the year as
|
|
4
|
+
* - Returns the year as Temporal writes it: four digits (`"2024"`, `"0005"`), or a sign and six
|
|
5
|
+
* digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
5
6
|
* - Returns "" for invalid input.
|
|
6
7
|
*
|
|
7
8
|
* @param value ISO date string
|
|
8
|
-
* @returns
|
|
9
|
+
* @returns the year as four digits, or a sign and six digits outside 0000–9999, or "" on invalid input
|
|
9
10
|
*
|
|
10
11
|
* @example parseYearFromDate("2024-03-15") // "2024"
|
|
12
|
+
* @example parseYearFromDate("0005-06-01") // "0005"
|
|
13
|
+
* @example parseYearFromDate("+010000-01-01") // "+010000"
|
|
11
14
|
* @example parseYearFromDate("invalid") // ""
|
|
12
15
|
*/
|
|
13
16
|
export declare function parseYearFromDate(value: string): string;
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { isValidDate } from "../validate/index.js";
|
|
3
|
+
import { isoYearString } from "../../internal/isoYearString.js";
|
|
3
4
|
/**
|
|
4
5
|
* Return the year for a given ISO 8601 date string.
|
|
5
6
|
*
|
|
6
|
-
* - Returns the year as
|
|
7
|
+
* - Returns the year as Temporal writes it: four digits (`"2024"`, `"0005"`), or a sign and six
|
|
8
|
+
* digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
7
9
|
* - Returns "" for invalid input.
|
|
8
10
|
*
|
|
9
11
|
* @param value ISO date string
|
|
10
|
-
* @returns
|
|
12
|
+
* @returns the year as four digits, or a sign and six digits outside 0000–9999, or "" on invalid input
|
|
11
13
|
*
|
|
12
14
|
* @example parseYearFromDate("2024-03-15") // "2024"
|
|
15
|
+
* @example parseYearFromDate("0005-06-01") // "0005"
|
|
16
|
+
* @example parseYearFromDate("+010000-01-01") // "+010000"
|
|
13
17
|
* @example parseYearFromDate("invalid") // ""
|
|
14
18
|
*/
|
|
15
19
|
export function parseYearFromDate(value) {
|
|
@@ -17,7 +21,7 @@ export function parseYearFromDate(value) {
|
|
|
17
21
|
return "";
|
|
18
22
|
try {
|
|
19
23
|
const date = Temporal.PlainDate.from(value);
|
|
20
|
-
return date.year
|
|
24
|
+
return isoYearString(date.year);
|
|
21
25
|
}
|
|
22
26
|
catch {
|
|
23
27
|
return "";
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Return the year for a given ISO 8601 datetime string.
|
|
3
3
|
*
|
|
4
|
-
* - Returns the year as
|
|
4
|
+
* - Returns the year as Temporal writes it: four digits (`"2024"`, `"0005"`), or a sign and six
|
|
5
|
+
* digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
5
6
|
* - Returns "" for invalid input.
|
|
6
7
|
*
|
|
7
8
|
* @param value ISO datetime string
|
|
8
|
-
* @returns
|
|
9
|
+
* @returns the year as four digits, or a sign and six digits outside 0000–9999, or "" on invalid input
|
|
9
10
|
*
|
|
10
11
|
* @example parseYearFromDateTime("2024-03-15T12:30:00") // "2024"
|
|
12
|
+
* @example parseYearFromDateTime("0005-06-01T12:30:00") // "0005"
|
|
11
13
|
* @example parseYearFromDateTime("invalid") // ""
|
|
12
14
|
*/
|
|
13
15
|
export declare function parseYearFromDateTime(value: string): string;
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { isValidDateTime } from "../validate/index.js";
|
|
3
|
+
import { isoYearString } from "../../internal/isoYearString.js";
|
|
3
4
|
/**
|
|
4
5
|
* Return the year for a given ISO 8601 datetime string.
|
|
5
6
|
*
|
|
6
|
-
* - Returns the year as
|
|
7
|
+
* - Returns the year as Temporal writes it: four digits (`"2024"`, `"0005"`), or a sign and six
|
|
8
|
+
* digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
7
9
|
* - Returns "" for invalid input.
|
|
8
10
|
*
|
|
9
11
|
* @param value ISO datetime string
|
|
10
|
-
* @returns
|
|
12
|
+
* @returns the year as four digits, or a sign and six digits outside 0000–9999, or "" on invalid input
|
|
11
13
|
*
|
|
12
14
|
* @example parseYearFromDateTime("2024-03-15T12:30:00") // "2024"
|
|
15
|
+
* @example parseYearFromDateTime("0005-06-01T12:30:00") // "0005"
|
|
13
16
|
* @example parseYearFromDateTime("invalid") // ""
|
|
14
17
|
*/
|
|
15
18
|
export function parseYearFromDateTime(value) {
|
|
@@ -17,7 +20,7 @@ export function parseYearFromDateTime(value) {
|
|
|
17
20
|
return "";
|
|
18
21
|
try {
|
|
19
22
|
const dateTime = Temporal.PlainDateTime.from(value);
|
|
20
|
-
return dateTime.year
|
|
23
|
+
return isoYearString(dateTime.year);
|
|
21
24
|
}
|
|
22
25
|
catch {
|
|
23
26
|
return "";
|
|
@@ -12,6 +12,7 @@ export * from "./isValidDateTimeRange.js";
|
|
|
12
12
|
export * from "./isValidDateTimeUnit.js";
|
|
13
13
|
export * from "./isValidDateUnit.js";
|
|
14
14
|
export * from "./isValidIsoDateLike.js";
|
|
15
|
+
export * from "./isValidSqlDateTime.js";
|
|
15
16
|
export * from "./isValidTime.js";
|
|
16
17
|
export * from "./isValidTimeCycleField.js";
|
|
17
18
|
export * from "./isValidTimeDurationUnit.js";
|
|
@@ -12,6 +12,7 @@ export * from "./isValidDateTimeRange.js";
|
|
|
12
12
|
export * from "./isValidDateTimeUnit.js";
|
|
13
13
|
export * from "./isValidDateUnit.js";
|
|
14
14
|
export * from "./isValidIsoDateLike.js";
|
|
15
|
+
export * from "./isValidSqlDateTime.js";
|
|
15
16
|
export * from "./isValidTime.js";
|
|
16
17
|
export * from "./isValidTimeCycleField.js";
|
|
17
18
|
export * from "./isValidTimeDurationUnit.js";
|
|
@@ -6,9 +6,27 @@
|
|
|
6
6
|
* const range: IsValidDateRangeProps = { value1: "2024-02-28", value2: "2024-02-29" };
|
|
7
7
|
*/
|
|
8
8
|
export interface IsValidDateRangeProps {
|
|
9
|
+
/**
|
|
10
|
+
* The start of the range, an ISO PlainDate string.
|
|
11
|
+
*/
|
|
9
12
|
value1: string;
|
|
13
|
+
/**
|
|
14
|
+
* The end of the range, an ISO PlainDate string.
|
|
15
|
+
*/
|
|
10
16
|
value2: string;
|
|
17
|
+
/**
|
|
18
|
+
* The settings for the comparison. It must be an object or omitted; any other value, `null`
|
|
19
|
+
* included, returns `false`.
|
|
20
|
+
*
|
|
21
|
+
* @defaultValue None. Equal values are not a valid range.
|
|
22
|
+
*/
|
|
11
23
|
options?: {
|
|
24
|
+
/**
|
|
25
|
+
* Whether `value1` equal to `value2` is a valid range. `false` requires `value1` to be
|
|
26
|
+
* before `value2`.
|
|
27
|
+
*
|
|
28
|
+
* @defaultValue `false`
|
|
29
|
+
*/
|
|
12
30
|
allowEqual?: boolean;
|
|
13
31
|
};
|
|
14
32
|
}
|
|
@@ -18,11 +36,8 @@ export interface IsValidDateRangeProps {
|
|
|
18
36
|
* - Validates both dates with `isValidDate`, so each endpoint's RFC 9557 annotations are read as
|
|
19
37
|
* `Temporal.PlainDate.from` reads them (an elective `[foo=bar]` or `[u-ca=iso8601]` is ignored).
|
|
20
38
|
* - Rejects leap seconds in either date.
|
|
21
|
-
* - When `options.allowEqual` is true, equality is considered valid as well.
|
|
22
39
|
*
|
|
23
|
-
* @param
|
|
24
|
-
* @param value2 second ISO PlainDate string
|
|
25
|
-
* @param options optional allowEqual flag
|
|
40
|
+
* @param props The two values to compare and how equal values are treated
|
|
26
41
|
* @returns boolean indicating whether the date range is valid
|
|
27
42
|
*
|
|
28
43
|
* @example isValidDateRange({ value1: "2024-02-28", value2: "2024-02-29" }) // true
|
|
@@ -7,11 +7,8 @@ import { isObject, isOptionsArgument } from "../../internal/isObject.js";
|
|
|
7
7
|
* - Validates both dates with `isValidDate`, so each endpoint's RFC 9557 annotations are read as
|
|
8
8
|
* `Temporal.PlainDate.from` reads them (an elective `[foo=bar]` or `[u-ca=iso8601]` is ignored).
|
|
9
9
|
* - Rejects leap seconds in either date.
|
|
10
|
-
* - When `options.allowEqual` is true, equality is considered valid as well.
|
|
11
10
|
*
|
|
12
|
-
* @param
|
|
13
|
-
* @param value2 second ISO PlainDate string
|
|
14
|
-
* @param options optional allowEqual flag
|
|
11
|
+
* @param props The two values to compare and how equal values are treated
|
|
15
12
|
* @returns boolean indicating whether the date range is valid
|
|
16
13
|
*
|
|
17
14
|
* @example isValidDateRange({ value1: "2024-02-28", value2: "2024-02-29" }) // true
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Return true if `value1` and `value2` form a valid datetime range — both parseable as
|
|
3
|
-
* ISO PlainDateTime strings and `value1
|
|
3
|
+
* ISO PlainDateTime strings and `value1` before `value2`.
|
|
4
4
|
*
|
|
5
5
|
* - Both inputs must be ISO 8601 datetime strings (e.g. `"2024-01-01T10:00:00"`), as
|
|
6
6
|
* `isValidDateTime` accepts, annotations included.
|
|
7
|
-
* - Equal `value1 === value2` is valid when `options.allowEqual` is true.
|
|
8
7
|
* - Invalid input, malformed strings, or leap-second strings return `false`.
|
|
9
8
|
*
|
|
10
|
-
* @param
|
|
11
|
-
* @param value2 second ISO PlainDateTime string
|
|
12
|
-
* @param options optional allowEqual flag
|
|
9
|
+
* @param props The two values to compare and how equal values are treated
|
|
13
10
|
* @returns boolean indicating whether the datetime range is valid
|
|
14
11
|
*
|
|
15
12
|
* @example isValidDateTimeRange({ value1: "2024-01-01T10:00:00", value2: "2024-12-31T23:59:59" }) // true
|
|
@@ -17,9 +14,27 @@
|
|
|
17
14
|
* @example isValidDateTimeRange({ value1: "2024-01-01T10:00:00", value2: "2024-01-01T10:00:00", options: { allowEqual: true } }) // true
|
|
18
15
|
*/
|
|
19
16
|
export declare function isValidDateTimeRange(props: {
|
|
17
|
+
/**
|
|
18
|
+
* The start of the range, an ISO PlainDateTime string.
|
|
19
|
+
*/
|
|
20
20
|
value1: string;
|
|
21
|
+
/**
|
|
22
|
+
* The end of the range, an ISO PlainDateTime string.
|
|
23
|
+
*/
|
|
21
24
|
value2: string;
|
|
25
|
+
/**
|
|
26
|
+
* The settings for the comparison. It must be an object or omitted; any other value, `null`
|
|
27
|
+
* included, returns `false`.
|
|
28
|
+
*
|
|
29
|
+
* @defaultValue None. Equal values are not a valid range.
|
|
30
|
+
*/
|
|
22
31
|
options?: {
|
|
32
|
+
/**
|
|
33
|
+
* Whether `value1` equal to `value2` is a valid range. `false` requires `value1` to be
|
|
34
|
+
* before `value2`.
|
|
35
|
+
*
|
|
36
|
+
* @defaultValue `false`
|
|
37
|
+
*/
|
|
23
38
|
allowEqual?: boolean;
|
|
24
39
|
};
|
|
25
40
|
}): boolean;
|
|
@@ -4,16 +4,13 @@ import { isValidDateTime } from "./isValidDateTime.js";
|
|
|
4
4
|
import { isObject, isOptionsArgument } from "../../internal/isObject.js";
|
|
5
5
|
/**
|
|
6
6
|
* Return true if `value1` and `value2` form a valid datetime range — both parseable as
|
|
7
|
-
* ISO PlainDateTime strings and `value1
|
|
7
|
+
* ISO PlainDateTime strings and `value1` before `value2`.
|
|
8
8
|
*
|
|
9
9
|
* - Both inputs must be ISO 8601 datetime strings (e.g. `"2024-01-01T10:00:00"`), as
|
|
10
10
|
* `isValidDateTime` accepts, annotations included.
|
|
11
|
-
* - Equal `value1 === value2` is valid when `options.allowEqual` is true.
|
|
12
11
|
* - Invalid input, malformed strings, or leap-second strings return `false`.
|
|
13
12
|
*
|
|
14
|
-
* @param
|
|
15
|
-
* @param value2 second ISO PlainDateTime string
|
|
16
|
-
* @param options optional allowEqual flag
|
|
13
|
+
* @param props The two values to compare and how equal values are treated
|
|
17
14
|
* @returns boolean indicating whether the datetime range is valid
|
|
18
15
|
*
|
|
19
16
|
* @example isValidDateTimeRange({ value1: "2024-01-01T10:00:00", value2: "2024-12-31T23:59:59" }) // true
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return true when `value` is a real SQL timestamp literal without a time zone: the
|
|
3
|
+
* `YYYY-MM-DD HH:MM:SS[.fff]` value of a standard SQL `TIMESTAMP` or a MySQL/SQLite `DATETIME`
|
|
4
|
+
* column. It checks one date-and-time value, not a SQL statement.
|
|
5
|
+
*
|
|
6
|
+
* - True exactly when `parseSqlDateTime` returns a plain string for the same value: the validator
|
|
7
|
+
* calls the parser, so the two cannot disagree.
|
|
8
|
+
* - **Grammar:** SQL-92 §5.3 `<timestamp string>` and the ODBC `ts` escape, as `sqlDateTime`
|
|
9
|
+
* matches: a single space separator, a four-digit year `0001`–`9999`, two-digit month, day,
|
|
10
|
+
* hour, minute and second (seconds are required), and an optional `.` followed by up to 9
|
|
11
|
+
* fraction digits.
|
|
12
|
+
* - Checks the calendar as well as the shape. The `sqlDateTime` pattern proves the shape alone, so
|
|
13
|
+
* it matches a day that does not exist: 30 February, 29 February in a common year and 31 June
|
|
14
|
+
* are false here.
|
|
15
|
+
* - False for a second of 60: GMT rejects leap seconds.
|
|
16
|
+
* - **Plain only.** A `T` separator, a `Z` and an offset are false: SQL's offset-carrying
|
|
17
|
+
* `TIMESTAMP WITH TIME ZONE` literal is out of scope.
|
|
18
|
+
* - False for a non-string. Read the value with `parseSqlDateTime`; write one with
|
|
19
|
+
* `formatSqlDateTime`.
|
|
20
|
+
*
|
|
21
|
+
* @param value candidate SQL timestamp literal
|
|
22
|
+
* @returns boolean indicating validity
|
|
23
|
+
*
|
|
24
|
+
* @example isValidSqlDateTime("2024-03-15 14:30:00") // true
|
|
25
|
+
* @example isValidSqlDateTime("2024-03-15 14:30:00.123456789") // true
|
|
26
|
+
* @example isValidSqlDateTime("2024-02-30 14:30:00") // false (February has no 30th; the sqlDateTime pattern matches it)
|
|
27
|
+
* @example isValidSqlDateTime("2023-02-29 14:30:00") // false (2023 has no 29 February; the sqlDateTime pattern matches it)
|
|
28
|
+
* @example isValidSqlDateTime("2024-06-31 00:00:00") // false (June has 30 days; the sqlDateTime pattern matches it)
|
|
29
|
+
* @example isValidSqlDateTime("2024-03-15 14:30") // false (seconds are required)
|
|
30
|
+
* @example isValidSqlDateTime("2024-03-15T14:30:00") // false (T separator)
|
|
31
|
+
* @example isValidSqlDateTime("not a date") // false
|
|
32
|
+
*/
|
|
33
|
+
export declare function isValidSqlDateTime(value: string): boolean;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { parseSqlDateTime } from "../parse/parseSqlDateTime.js";
|
|
2
|
+
/**
|
|
3
|
+
* Return true when `value` is a real SQL timestamp literal without a time zone: the
|
|
4
|
+
* `YYYY-MM-DD HH:MM:SS[.fff]` value of a standard SQL `TIMESTAMP` or a MySQL/SQLite `DATETIME`
|
|
5
|
+
* column. It checks one date-and-time value, not a SQL statement.
|
|
6
|
+
*
|
|
7
|
+
* - True exactly when `parseSqlDateTime` returns a plain string for the same value: the validator
|
|
8
|
+
* calls the parser, so the two cannot disagree.
|
|
9
|
+
* - **Grammar:** SQL-92 §5.3 `<timestamp string>` and the ODBC `ts` escape, as `sqlDateTime`
|
|
10
|
+
* matches: a single space separator, a four-digit year `0001`–`9999`, two-digit month, day,
|
|
11
|
+
* hour, minute and second (seconds are required), and an optional `.` followed by up to 9
|
|
12
|
+
* fraction digits.
|
|
13
|
+
* - Checks the calendar as well as the shape. The `sqlDateTime` pattern proves the shape alone, so
|
|
14
|
+
* it matches a day that does not exist: 30 February, 29 February in a common year and 31 June
|
|
15
|
+
* are false here.
|
|
16
|
+
* - False for a second of 60: GMT rejects leap seconds.
|
|
17
|
+
* - **Plain only.** A `T` separator, a `Z` and an offset are false: SQL's offset-carrying
|
|
18
|
+
* `TIMESTAMP WITH TIME ZONE` literal is out of scope.
|
|
19
|
+
* - False for a non-string. Read the value with `parseSqlDateTime`; write one with
|
|
20
|
+
* `formatSqlDateTime`.
|
|
21
|
+
*
|
|
22
|
+
* @param value candidate SQL timestamp literal
|
|
23
|
+
* @returns boolean indicating validity
|
|
24
|
+
*
|
|
25
|
+
* @example isValidSqlDateTime("2024-03-15 14:30:00") // true
|
|
26
|
+
* @example isValidSqlDateTime("2024-03-15 14:30:00.123456789") // true
|
|
27
|
+
* @example isValidSqlDateTime("2024-02-30 14:30:00") // false (February has no 30th; the sqlDateTime pattern matches it)
|
|
28
|
+
* @example isValidSqlDateTime("2023-02-29 14:30:00") // false (2023 has no 29 February; the sqlDateTime pattern matches it)
|
|
29
|
+
* @example isValidSqlDateTime("2024-06-31 00:00:00") // false (June has 30 days; the sqlDateTime pattern matches it)
|
|
30
|
+
* @example isValidSqlDateTime("2024-03-15 14:30") // false (seconds are required)
|
|
31
|
+
* @example isValidSqlDateTime("2024-03-15T14:30:00") // false (T separator)
|
|
32
|
+
* @example isValidSqlDateTime("not a date") // false
|
|
33
|
+
*/
|
|
34
|
+
export function isValidSqlDateTime(value) {
|
|
35
|
+
return parseSqlDateTime(value) !== "";
|
|
36
|
+
}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Return true if `value1` and `value2` form a valid time range — both parseable as
|
|
3
|
-
* ISO PlainTime strings and `value1
|
|
3
|
+
* ISO PlainTime strings and `value1` before `value2`.
|
|
4
4
|
*
|
|
5
5
|
* - Both inputs must be ISO 8601 time strings (e.g. `"14:30:00"`), as `isValidTime` accepts,
|
|
6
6
|
* annotations included.
|
|
7
7
|
* - Ordered by `Temporal.PlainTime.compare`, to the nanosecond.
|
|
8
|
-
* - Equal `value1 === value2` is valid when `options.allowEqual` is true.
|
|
9
8
|
* - Invalid input, malformed strings, or leap-second strings return `false`.
|
|
10
9
|
*
|
|
11
|
-
* @param
|
|
12
|
-
* @param value2 second ISO PlainTime string
|
|
13
|
-
* @param options optional allowEqual flag
|
|
10
|
+
* @param props The two values to compare and how equal values are treated
|
|
14
11
|
* @returns boolean indicating whether the time range is valid
|
|
15
12
|
*
|
|
16
13
|
* @example isValidTimeRange({ value1: "09:00:00", value2: "17:00:00" }) // true
|
|
@@ -18,9 +15,27 @@
|
|
|
18
15
|
* @example isValidTimeRange({ value1: "12:00:00", value2: "12:00:00", options: { allowEqual: true } }) // true
|
|
19
16
|
*/
|
|
20
17
|
export declare function isValidTimeRange(props: {
|
|
18
|
+
/**
|
|
19
|
+
* The start of the range, an ISO PlainTime string.
|
|
20
|
+
*/
|
|
21
21
|
value1: string;
|
|
22
|
+
/**
|
|
23
|
+
* The end of the range, an ISO PlainTime string.
|
|
24
|
+
*/
|
|
22
25
|
value2: string;
|
|
26
|
+
/**
|
|
27
|
+
* The settings for the comparison. It must be an object or omitted; any other value, `null`
|
|
28
|
+
* included, returns `false`.
|
|
29
|
+
*
|
|
30
|
+
* @defaultValue None. Equal values are not a valid range.
|
|
31
|
+
*/
|
|
23
32
|
options?: {
|
|
33
|
+
/**
|
|
34
|
+
* Whether `value1` equal to `value2` is a valid range. `false` requires `value1` to be
|
|
35
|
+
* before `value2`.
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue `false`
|
|
38
|
+
*/
|
|
24
39
|
allowEqual?: boolean;
|
|
25
40
|
};
|
|
26
41
|
}): boolean;
|
|
@@ -4,17 +4,14 @@ import { isValidTime } from "./isValidTime.js";
|
|
|
4
4
|
import { isObject, isOptionsArgument } from "../../internal/isObject.js";
|
|
5
5
|
/**
|
|
6
6
|
* Return true if `value1` and `value2` form a valid time range — both parseable as
|
|
7
|
-
* ISO PlainTime strings and `value1
|
|
7
|
+
* ISO PlainTime strings and `value1` before `value2`.
|
|
8
8
|
*
|
|
9
9
|
* - Both inputs must be ISO 8601 time strings (e.g. `"14:30:00"`), as `isValidTime` accepts,
|
|
10
10
|
* annotations included.
|
|
11
11
|
* - Ordered by `Temporal.PlainTime.compare`, to the nanosecond.
|
|
12
|
-
* - Equal `value1 === value2` is valid when `options.allowEqual` is true.
|
|
13
12
|
* - Invalid input, malformed strings, or leap-second strings return `false`.
|
|
14
13
|
*
|
|
15
|
-
* @param
|
|
16
|
-
* @param value2 second ISO PlainTime string
|
|
17
|
-
* @param options optional allowEqual flag
|
|
14
|
+
* @param props The two values to compare and how equal values are treated
|
|
18
15
|
* @returns boolean indicating whether the time range is valid
|
|
19
16
|
*
|
|
20
17
|
* @example isValidTimeRange({ value1: "09:00:00", value2: "17:00:00" }) // true
|
|
@@ -7,9 +7,7 @@ import type { ExcelDateSystem } from "./toExcelSerial.js";
|
|
|
7
7
|
* that never existed. Lotus 1-2-3 treated 1900 as a leap year and Excel keeps the bug for
|
|
8
8
|
* compatibility, so the whole serial day `[60, 61)` is a hole: 59 is 1900-02-28 and 61 is
|
|
9
9
|
* 1900-03-01. Mapping 60 to either neighbour would put every earlier date one day out.
|
|
10
|
-
* -
|
|
11
|
-
* which has no phantom day — serial 60 there is a real 1904-03-01. A 1904 serial resolves
|
|
12
|
-
* to the same instant as the 1900 serial exactly 1462 higher.
|
|
10
|
+
* - In the 1904 system serial 60 is a real 1904-03-01.
|
|
13
11
|
* - Accepted range is Excel's own: serial 1 (1900-01-01) to just under 2958466 (the end of
|
|
14
12
|
* 9999-12-31) in the 1900 system, serial 0 to just under 2957004 in the 1904 system.
|
|
15
13
|
* Serial 0 in the 1900 system is Excel's "January 0, 1900" placeholder, not a date.
|
|
@@ -19,7 +17,7 @@ import type { ExcelDateSystem } from "./toExcelSerial.js";
|
|
|
19
17
|
* - Returns "" on invalid input.
|
|
20
18
|
*
|
|
21
19
|
* @param value Excel day serial (number, may carry a fractional time of day)
|
|
22
|
-
* @param options
|
|
20
|
+
* @param options Which Excel date system the serial is in
|
|
23
21
|
* @returns ISO 8601 instant string (UTC), or "" on invalid input
|
|
24
22
|
*
|
|
25
23
|
* @example fromExcelSerial(1) // "1900-01-01T00:00:00Z" — Excel's first serial
|
|
@@ -34,5 +32,13 @@ import type { ExcelDateSystem } from "./toExcelSerial.js";
|
|
|
34
32
|
* @example fromExcelSerial(-1) // ""
|
|
35
33
|
*/
|
|
36
34
|
export declare function fromExcelSerial(value: number, options?: {
|
|
35
|
+
/**
|
|
36
|
+
* Which Excel date system the serial is counted in. `"1900"` counts serial 1 as 1900-01-01
|
|
37
|
+
* and has the phantom serial 60; `"1904"` is the legacy Mac system, whose serial 0 is
|
|
38
|
+
* 1904-01-01 and which has no phantom day. The same instant is exactly 1462 lower in the 1904
|
|
39
|
+
* system.
|
|
40
|
+
*
|
|
41
|
+
* @defaultValue `"1900"`
|
|
42
|
+
*/
|
|
37
43
|
system?: ExcelDateSystem;
|
|
38
44
|
}): string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EXCEL_1900_EPOCH_NANOSECONDS, EXCEL_1900_PRE_PHANTOM_EPOCH_NANOSECONDS, EXCEL_1904_EPOCH_NANOSECONDS, EXCEL_PHANTOM_SERIAL, MAX_EXCEL_1900_SERIAL_EXCLUSIVE, MAX_EXCEL_1904_SERIAL_EXCLUSIVE, MILLISECONDS_PER_DAY, MIN_EXCEL_1900_SERIAL, MIN_EXCEL_1904_SERIAL, NANOSECONDS_PER_MILLISECOND, } from "../../internal/index.js";
|
|
2
2
|
import { fromNanoseconds } from "./fromNanoseconds.js";
|
|
3
3
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
4
|
+
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
4
5
|
/**
|
|
5
6
|
* Convert an Excel day serial back to an ISO 8601 instant string.
|
|
6
7
|
*
|
|
@@ -9,9 +10,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
9
10
|
* that never existed. Lotus 1-2-3 treated 1900 as a leap year and Excel keeps the bug for
|
|
10
11
|
* compatibility, so the whole serial day `[60, 61)` is a hole: 59 is 1900-02-28 and 61 is
|
|
11
12
|
* 1900-03-01. Mapping 60 to either neighbour would put every earlier date one day out.
|
|
12
|
-
* -
|
|
13
|
-
* which has no phantom day — serial 60 there is a real 1904-03-01. A 1904 serial resolves
|
|
14
|
-
* to the same instant as the 1900 serial exactly 1462 higher.
|
|
13
|
+
* - In the 1904 system serial 60 is a real 1904-03-01.
|
|
15
14
|
* - Accepted range is Excel's own: serial 1 (1900-01-01) to just under 2958466 (the end of
|
|
16
15
|
* 9999-12-31) in the 1900 system, serial 0 to just under 2957004 in the 1904 system.
|
|
17
16
|
* Serial 0 in the 1900 system is Excel's "January 0, 1900" placeholder, not a date.
|
|
@@ -21,7 +20,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
21
20
|
* - Returns "" on invalid input.
|
|
22
21
|
*
|
|
23
22
|
* @param value Excel day serial (number, may carry a fractional time of day)
|
|
24
|
-
* @param options
|
|
23
|
+
* @param options Which Excel date system the serial is in
|
|
25
24
|
* @returns ISO 8601 instant string (UTC), or "" on invalid input
|
|
26
25
|
*
|
|
27
26
|
* @example fromExcelSerial(1) // "1900-01-01T00:00:00Z" — Excel's first serial
|
|
@@ -40,7 +39,7 @@ export function fromExcelSerial(value, options) {
|
|
|
40
39
|
if (!isOptionsArgument(options)) {
|
|
41
40
|
return "";
|
|
42
41
|
}
|
|
43
|
-
const system = options?.system
|
|
42
|
+
const system = optionOrDefault(options?.system, "1900");
|
|
44
43
|
if (system !== "1900" && system !== "1904") {
|
|
45
44
|
return "";
|
|
46
45
|
}
|
|
@@ -5,17 +5,23 @@
|
|
|
5
5
|
* (`"...[America/New_York]"`) when one is.
|
|
6
6
|
* - No disambiguation policy applies: an instant maps to exactly one wall time in a zone,
|
|
7
7
|
* so DST gaps and overlaps cannot arise on this direction of the conversion.
|
|
8
|
-
* - A time zone, when given, must be a
|
|
9
|
-
* it (UTC), as TC39 treats an undefined argument as
|
|
8
|
+
* - A time zone, when given, must be a time zone identifier: an IANA name or a UTC offset to the
|
|
9
|
+
* minute. `undefined` is the same as omitting it (UTC), as TC39 treats an undefined argument as
|
|
10
|
+
* absent.
|
|
10
11
|
* - Rejects values outside the range `Temporal.Instant` can represent
|
|
11
12
|
* (±8_640_000_000_000_000_000_000n, i.e. ±10^8 days from the epoch).
|
|
12
13
|
* - **Storage round-trip:** most engines cannot hold nanoseconds — PostgreSQL `timestamptz`
|
|
13
14
|
* stores microseconds — so writing this value and reading it back breaks equality unless
|
|
14
15
|
* the caller applies `truncateNanoseconds` to the target precision first.
|
|
15
16
|
* - Returns "" on invalid input.
|
|
17
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. A written zone cannot carry seconds (RFC
|
|
18
|
+
* 9557 §4.1), so the result could not name it. Pass the IANA name, or call
|
|
19
|
+
* `fromOffsetInstant({ instant, offset })` for the local time with its full offset and no
|
|
20
|
+
* bracket.
|
|
16
21
|
*
|
|
17
22
|
* @param nanoseconds nanoseconds since the Unix epoch (bigint)
|
|
18
|
-
* @param timeZone optional IANA
|
|
23
|
+
* @param timeZone optional IANA name or a UTC offset to the minute (what `isValidTimeZone`
|
|
24
|
+
* accepts); omitted or `undefined` is UTC
|
|
19
25
|
* @returns ISO 8601 instant string (UTC), zoned ISO 8601 string when a timeZone is given, or "" on invalid input
|
|
20
26
|
*
|
|
21
27
|
* @example fromNanoseconds(0n) // "1970-01-01T00:00:00Z"
|
|
@@ -8,17 +8,23 @@ import { isValidTimeZone } from "../../zoned/validate/index.js";
|
|
|
8
8
|
* (`"...[America/New_York]"`) when one is.
|
|
9
9
|
* - No disambiguation policy applies: an instant maps to exactly one wall time in a zone,
|
|
10
10
|
* so DST gaps and overlaps cannot arise on this direction of the conversion.
|
|
11
|
-
* - A time zone, when given, must be a
|
|
12
|
-
* it (UTC), as TC39 treats an undefined argument as
|
|
11
|
+
* - A time zone, when given, must be a time zone identifier: an IANA name or a UTC offset to the
|
|
12
|
+
* minute. `undefined` is the same as omitting it (UTC), as TC39 treats an undefined argument as
|
|
13
|
+
* absent.
|
|
13
14
|
* - Rejects values outside the range `Temporal.Instant` can represent
|
|
14
15
|
* (±8_640_000_000_000_000_000_000n, i.e. ±10^8 days from the epoch).
|
|
15
16
|
* - **Storage round-trip:** most engines cannot hold nanoseconds — PostgreSQL `timestamptz`
|
|
16
17
|
* stores microseconds — so writing this value and reading it back breaks equality unless
|
|
17
18
|
* the caller applies `truncateNanoseconds` to the target precision first.
|
|
18
19
|
* - Returns "" on invalid input.
|
|
20
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. A written zone cannot carry seconds (RFC
|
|
21
|
+
* 9557 §4.1), so the result could not name it. Pass the IANA name, or call
|
|
22
|
+
* `fromOffsetInstant({ instant, offset })` for the local time with its full offset and no
|
|
23
|
+
* bracket.
|
|
19
24
|
*
|
|
20
25
|
* @param nanoseconds nanoseconds since the Unix epoch (bigint)
|
|
21
|
-
* @param timeZone optional IANA
|
|
26
|
+
* @param timeZone optional IANA name or a UTC offset to the minute (what `isValidTimeZone`
|
|
27
|
+
* accepts); omitted or `undefined` is UTC
|
|
22
28
|
* @returns ISO 8601 instant string (UTC), zoned ISO 8601 string when a timeZone is given, or "" on invalid input
|
|
23
29
|
*
|
|
24
30
|
* @example fromNanoseconds(0n) // "1970-01-01T00:00:00Z"
|
|
@@ -20,8 +20,6 @@ export type ExcelDateSystem = "1900" | "1904";
|
|
|
20
20
|
* compatibility. No instant maps to serial 60: 1900-02-28 is 59 and 1900-03-01 is 61.
|
|
21
21
|
* Silently "fixing" this would put GMT one day out from Excel for every date before March
|
|
22
22
|
* 1900.
|
|
23
|
-
* - `{ system: "1904" }` selects the legacy Mac system, whose serial 0 is 1904-01-01. The
|
|
24
|
-
* same instant is exactly 1462 lower there than in the 1900 system.
|
|
25
23
|
* - **Instants outside Excel's own serial range are invalid input**, not an out-of-range
|
|
26
24
|
* number: the 1900 system runs from serial 1 (1900-01-01) to 2958465 (9999-12-31), the
|
|
27
25
|
* 1904 system from serial 0 (1904-01-01) to 2957003. Serial 0 in the 1900 system is
|
|
@@ -38,7 +36,7 @@ export type ExcelDateSystem = "1900" | "1904";
|
|
|
38
36
|
* that Excel rejects on the way in.
|
|
39
37
|
*
|
|
40
38
|
* @param isoString ISO 8601 instant string (e.g. "2024-03-10T12:00:00Z")
|
|
41
|
-
* @param options
|
|
39
|
+
* @param options Which Excel date system the serial is in
|
|
42
40
|
* @returns Excel day serial as a number, or null on invalid input
|
|
43
41
|
*
|
|
44
42
|
* @example toExcelSerial("1900-01-01T00:00:00Z") // 1 — Excel's first serial
|
|
@@ -52,5 +50,13 @@ export type ExcelDateSystem = "1900" | "1904";
|
|
|
52
50
|
* @example toExcelSerial("invalid") // null
|
|
53
51
|
*/
|
|
54
52
|
export declare function toExcelSerial(isoString: string, options?: {
|
|
53
|
+
/**
|
|
54
|
+
* Which Excel date system the serial is counted in. `"1900"` counts serial 1 as 1900-01-01
|
|
55
|
+
* and has the phantom serial 60; `"1904"` is the legacy Mac system, whose serial 0 is
|
|
56
|
+
* 1904-01-01 and which has no phantom day. The same instant is exactly 1462 lower in the 1904
|
|
57
|
+
* system.
|
|
58
|
+
*
|
|
59
|
+
* @defaultValue `"1900"`
|
|
60
|
+
*/
|
|
55
61
|
system?: ExcelDateSystem;
|
|
56
62
|
}): number | null;
|