@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
|
+
// fallow-ignore-file code-duplication -- sibling of parseDateWithPattern; each keeps its own guard, options check and try/catch, by design
|
|
1
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal/index.js";
|
|
3
|
+
import { DATE_TIME_PATTERN_FIELDS, isOptionsArgument, parseValueWithPattern, } from "../../internal/index.js";
|
|
3
4
|
/**
|
|
4
5
|
* Parse a datetime string against a caller-supplied token pattern (e.g.
|
|
5
6
|
* `"MM/dd/yyyy HH:mm:ss"`, `"dd-MMM-yyyy h:mm a"`) and return it as an
|
|
@@ -9,9 +10,8 @@ import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal
|
|
|
9
10
|
* producer format — a CSV column, a legacy API field, a partially-typed
|
|
10
11
|
* form value — not for generating locale-correct output. For display,
|
|
11
12
|
* use `formatDateTime`/`formatDateToParts`, which order fields per
|
|
12
|
-
* locale instead of hard-coding a field order (
|
|
13
|
-
*
|
|
14
|
-
* out of scope for GMT).
|
|
13
|
+
* locale instead of hard-coding a field order (a token *formatter*,
|
|
14
|
+
* the inverse of this function, is deliberately out of scope for GMT).
|
|
15
15
|
* - Accepts the full combined date + time token set (unlike
|
|
16
16
|
* `parseDateWithPattern`/`parseTimeWithPattern`, which each reject the
|
|
17
17
|
* other's tokens).
|
|
@@ -20,7 +20,7 @@ import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal
|
|
|
20
20
|
* | Token | Field | Width | Range | Notes |
|
|
21
21
|
* |---|---|---|---|---|
|
|
22
22
|
* | `yyyy` | year | 4 digits | 0000–9999 | |
|
|
23
|
-
* | `yy` | year | 2 digits | 00–99 |
|
|
23
|
+
* | `yy` | year | 2 digits | 00–99 | Needs `options.yearWindow`; returns `""` without it |
|
|
24
24
|
* | `MM` | month | 2 digits | 01–12 | |
|
|
25
25
|
* | `M` | month | 1-2 digits | 1–12 | |
|
|
26
26
|
* | `MMMM` | month name (long) | locale | — | `getLocaleMonthNames(locale, "long")` |
|
|
@@ -42,10 +42,13 @@ import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal
|
|
|
42
42
|
* | `GGGG` | era name (long) | locale | — | BCE label ⇒ final year = 1 − parsed year |
|
|
43
43
|
* | `GG` | era name (short) | locale | — | same resolution |
|
|
44
44
|
*
|
|
45
|
-
* -
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
45
|
+
* - Literal text follows the Unicode UTS #35 date format pattern rules.
|
|
46
|
+
* Text in `'single quotes'` is a literal, letters included. Two
|
|
47
|
+
* adjacent quotes `''` are one literal `'`, inside or outside quoted
|
|
48
|
+
* text: `"yyyy''MM"` reads `"2024'03"`, and `"'o''clock'"` reads
|
|
49
|
+
* `"o'clock"`. A quote that never closes makes the pattern malformed
|
|
50
|
+
* (`""`). Any other character that is not a letter (`/ - , space :`,
|
|
51
|
+
* digits and so on) is a literal with no quoting.
|
|
49
52
|
* - `MMMM`/`MMM`/`EEEE`/`EEE`/`a`/`GGGG`/`GG` are locale-aware. If
|
|
50
53
|
* `locale` is omitted and the pattern uses any of them, GMT defaults
|
|
51
54
|
* to `"en-US"` rather than returning `""` for every caller who didn't
|
|
@@ -73,25 +76,40 @@ import { DATE_TIME_PATTERN_FIELDS, parseValueWithPattern, } from "../../internal
|
|
|
73
76
|
* - Fields absent from `pattern` default the way `Temporal.PlainDateTime.from`
|
|
74
77
|
* defaults an omitted field (time fields default to `0`; `year`/`month`/`day`
|
|
75
78
|
* are still required for a valid result).
|
|
79
|
+
* - A `yy` token needs the caller's hundred-year window,
|
|
80
|
+
* `options.yearWindow`: no standard says which century a two-digit
|
|
81
|
+
* year belongs to, and a cut-off built into a library is right today
|
|
82
|
+
* and wrong later. Without a valid window a `yy` pattern returns `""`.
|
|
83
|
+
* A pattern with no `yy` never reads the option, so a `"rolling"`
|
|
84
|
+
* window reads no clock for it. A two-digit year is a legacy form; a
|
|
85
|
+
* four-digit year is the one to ask a data source for.
|
|
76
86
|
*
|
|
77
87
|
* @param value The string to decode (e.g. "03/15/2024 14:30:00")
|
|
78
88
|
* @param pattern The token pattern describing `value`'s shape (e.g. "MM/dd/yyyy HH:mm:ss")
|
|
79
89
|
* @param locale Optional BCP 47 locale tag, or a preference list of tags, for name-based tokens (default "en-US")
|
|
90
|
+
* @param options The hundred-year window a `yy` token resolves in
|
|
80
91
|
* @returns ISO `PlainDateTime` string, or "" on no match, malformed pattern, or invalid input
|
|
81
92
|
*
|
|
82
93
|
* @example parseDateTimeWithPattern("03/15/2024 14:30:00", "MM/dd/yyyy HH:mm:ss") // "2024-03-15T14:30:00"
|
|
83
94
|
* @example parseDateTimeWithPattern("15-Mar-2024 02:30 PM", "dd-MMM-yyyy hh:mm a") // "2024-03-15T14:30:00"
|
|
95
|
+
* @example parseDateTimeWithPattern("Mar 15, '24 at 14:30", "MMM d, ''yy 'at' HH:mm", undefined, { yearWindow: 2000 }) // "2024-03-15T14:30:00" ('' is one literal quote)
|
|
96
|
+
* @example parseDateTimeWithPattern("99-03-15 14:30", "yy-MM-dd HH:mm", undefined, { yearWindow: 1950 }) // "1999-03-15T14:30:00" (1950–2049 window)
|
|
97
|
+
* @example parseDateTimeWithPattern("24-03-15 14:30", "yy-MM-dd HH:mm", undefined, { yearWindow: "rolling" }) // "2024-03-15T14:30:00" (while the current UTC year is 1975–2074)
|
|
98
|
+
* @example parseDateTimeWithPattern("24-03-15 14:30", "yy-MM-dd HH:mm") // "" (yy with no window)
|
|
99
|
+
* @example parseDateTimeWithPattern("03/15/2024 14:30:00", "MM/dd/yyyy HH:mm:ss", undefined, { yearWindow: 2000 }) // "2024-03-15T14:30:00" (yyyy ignores the window)
|
|
84
100
|
* @example parseDateTimeWithPattern("02/31/2024 14:30:00", "MM/dd/yyyy HH:mm:ss") // "" (shape-valid, not a real date)
|
|
85
101
|
* @example parseDateTimeWithPattern("not a date", "MM/dd/yyyy HH:mm:ss") // ""
|
|
86
102
|
* @example parseDateTimeWithPattern("19 mai 2024 10:20", "d MMMM yyyy HH:mm", ["fr-FR", "en-US"]) // "2024-05-19T10:20:00"
|
|
87
103
|
*/
|
|
88
|
-
export function parseDateTimeWithPattern(value, pattern, locale) {
|
|
104
|
+
export function parseDateTimeWithPattern(value, pattern, locale, options) {
|
|
89
105
|
try {
|
|
90
106
|
if (typeof value !== "string")
|
|
91
107
|
return "";
|
|
92
108
|
if (typeof pattern !== "string")
|
|
93
109
|
return "";
|
|
94
|
-
|
|
110
|
+
if (!isOptionsArgument(options))
|
|
111
|
+
return "";
|
|
112
|
+
const fields = parseValueWithPattern(value, pattern, locale, DATE_TIME_PATTERN_FIELDS, options);
|
|
95
113
|
if (fields === null)
|
|
96
114
|
return "";
|
|
97
115
|
try {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TwoDigitYearOptions } from "../../types/two-digit-year.js";
|
|
1
2
|
/**
|
|
2
3
|
* Parse a date string against a caller-supplied token pattern (e.g.
|
|
3
4
|
* `"MM/dd/yyyy"`, `"dd-MMM-yyyy"`) and return it as an ISO `PlainDate`
|
|
@@ -7,9 +8,8 @@
|
|
|
7
8
|
* producer format — a CSV column, a legacy API field, a partially-typed
|
|
8
9
|
* form value — not for generating locale-correct output. For display,
|
|
9
10
|
* use `formatDate`/`formatDateToParts`, which order fields per locale
|
|
10
|
-
* instead of hard-coding a field order (
|
|
11
|
-
*
|
|
12
|
-
* of scope for GMT).
|
|
11
|
+
* instead of hard-coding a field order (a token *formatter*, the
|
|
12
|
+
* inverse of this function, is deliberately out of scope for GMT).
|
|
13
13
|
* - `pattern` accepts only date-shaped tokens. A pattern containing a
|
|
14
14
|
* time-only token (`H h m s S a`) is malformed for this function and
|
|
15
15
|
* returns `""` — use `parseDateTimeWithPattern` for combined input.
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* | Token | Field | Width | Range | Notes |
|
|
19
19
|
* |---|---|---|---|---|
|
|
20
20
|
* | `yyyy` | year | 4 digits | 0000–9999 | |
|
|
21
|
-
* | `yy` | year | 2 digits | 00–99 |
|
|
21
|
+
* | `yy` | year | 2 digits | 00–99 | Needs `options.yearWindow`; returns `""` without it |
|
|
22
22
|
* | `MM` | month | 2 digits | 01–12 | |
|
|
23
23
|
* | `M` | month | 1-2 digits | 1–12 | |
|
|
24
24
|
* | `MMMM` | month name (long) | locale | — | `getLocaleMonthNames(locale, "long")` |
|
|
@@ -30,10 +30,13 @@
|
|
|
30
30
|
* | `GGGG` | era name (long) | locale | — | BCE label ⇒ final year = 1 − parsed year |
|
|
31
31
|
* | `GG` | era name (short) | locale | — | same resolution |
|
|
32
32
|
*
|
|
33
|
-
* -
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
33
|
+
* - Literal text follows the Unicode UTS #35 date format pattern rules.
|
|
34
|
+
* Text in `'single quotes'` is a literal, letters included. Two
|
|
35
|
+
* adjacent quotes `''` are one literal `'`, inside or outside quoted
|
|
36
|
+
* text: `"yyyy''MM"` reads `"2024'03"`, and `"'o''clock'"` reads
|
|
37
|
+
* `"o'clock"`. A quote that never closes makes the pattern malformed
|
|
38
|
+
* (`""`). Any other character that is not a letter (`/ - , space`,
|
|
39
|
+
* digits and so on) is a literal with no quoting.
|
|
37
40
|
* - `MMMM`/`MMM`/`EEEE`/`EEE`/`GGGG`/`GG` are locale-aware. If `locale`
|
|
38
41
|
* is omitted and the pattern uses any of them, GMT defaults to
|
|
39
42
|
* `"en-US"` rather than returning `""` for every caller who didn't
|
|
@@ -54,16 +57,30 @@
|
|
|
54
57
|
* overflow: "reject" })`, so `"02/31/2024"` against `"MM/dd/yyyy"`
|
|
55
58
|
* still returns `""` — the regex only proves the shape, Temporal
|
|
56
59
|
* proves the date is real.
|
|
60
|
+
* - A `yy` token needs the caller's hundred-year window,
|
|
61
|
+
* `options.yearWindow`: no standard says which century a two-digit
|
|
62
|
+
* year belongs to, and a cut-off built into a library is right today
|
|
63
|
+
* and wrong later. Without a valid window a `yy` pattern returns `""`.
|
|
64
|
+
* A pattern with no `yy` never reads the option, so a `"rolling"`
|
|
65
|
+
* window reads no clock for it. A two-digit year is a legacy form; a
|
|
66
|
+
* four-digit year is the one to ask a data source for.
|
|
57
67
|
*
|
|
58
68
|
* @param value The string to decode (e.g. "03/15/2024")
|
|
59
69
|
* @param pattern The token pattern describing `value`'s shape (e.g. "MM/dd/yyyy")
|
|
60
70
|
* @param locale Optional BCP 47 locale tag, or a preference list of tags, for name-based tokens (default "en-US")
|
|
71
|
+
* @param options The hundred-year window a `yy` token resolves in
|
|
61
72
|
* @returns ISO `PlainDate` string, or "" on no match, malformed pattern, or invalid input
|
|
62
73
|
*
|
|
63
74
|
* @example parseDateWithPattern("03/15/2024", "MM/dd/yyyy") // "2024-03-15"
|
|
64
75
|
* @example parseDateWithPattern("15-Mar-2024", "dd-MMM-yyyy") // "2024-03-15"
|
|
76
|
+
* @example parseDateWithPattern("Mar 15, '24", "MMM d, ''yy", undefined, { yearWindow: 2000 }) // "2024-03-15" ('' is one literal quote)
|
|
77
|
+
* @example parseDateWithPattern("03/15/24", "MM/dd/yy", undefined, { yearWindow: 1950 }) // "2024-03-15" (1950–2049 window)
|
|
78
|
+
* @example parseDateWithPattern("03/15/99", "MM/dd/yy", undefined, { yearWindow: 1950 }) // "1999-03-15"
|
|
79
|
+
* @example parseDateWithPattern("03/15/24", "MM/dd/yy", undefined, { yearWindow: "rolling" }) // "2024-03-15" (while the current UTC year is 1975–2074)
|
|
80
|
+
* @example parseDateWithPattern("03/15/24", "MM/dd/yy") // "" (yy with no window)
|
|
81
|
+
* @example parseDateWithPattern("03/15/2024", "MM/dd/yyyy", undefined, { yearWindow: 2000 }) // "2024-03-15" (yyyy ignores the window)
|
|
65
82
|
* @example parseDateWithPattern("02/31/2024", "MM/dd/yyyy") // "" (shape-valid, not a real date)
|
|
66
83
|
* @example parseDateWithPattern("14:30", "HH:mm") // "" (time token in a date-only pattern)
|
|
67
84
|
* @example parseDateWithPattern("19 mai 2024", "d MMMM yyyy", ["fr-FR", "en-US"]) // "2024-05-19"
|
|
68
85
|
*/
|
|
69
|
-
export declare function parseDateWithPattern(value: string, pattern: string, locale?: string | string[]): string;
|
|
86
|
+
export declare function parseDateWithPattern(value: string, pattern: string, locale?: string | string[], options?: TwoDigitYearOptions): string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
// fallow-ignore-file code-duplication -- sibling of parseDateTimeWithPattern; each keeps its own guard, options check and try/catch, by design
|
|
1
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index.js";
|
|
3
|
+
import { DATE_PATTERN_FIELDS, isOptionsArgument, parseValueWithPattern, } from "../../internal/index.js";
|
|
3
4
|
/**
|
|
4
5
|
* Parse a date string against a caller-supplied token pattern (e.g.
|
|
5
6
|
* `"MM/dd/yyyy"`, `"dd-MMM-yyyy"`) and return it as an ISO `PlainDate`
|
|
@@ -9,9 +10,8 @@ import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index
|
|
|
9
10
|
* producer format — a CSV column, a legacy API field, a partially-typed
|
|
10
11
|
* form value — not for generating locale-correct output. For display,
|
|
11
12
|
* use `formatDate`/`formatDateToParts`, which order fields per locale
|
|
12
|
-
* instead of hard-coding a field order (
|
|
13
|
-
*
|
|
14
|
-
* of scope for GMT).
|
|
13
|
+
* instead of hard-coding a field order (a token *formatter*, the
|
|
14
|
+
* inverse of this function, is deliberately out of scope for GMT).
|
|
15
15
|
* - `pattern` accepts only date-shaped tokens. A pattern containing a
|
|
16
16
|
* time-only token (`H h m s S a`) is malformed for this function and
|
|
17
17
|
* returns `""` — use `parseDateTimeWithPattern` for combined input.
|
|
@@ -20,7 +20,7 @@ import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index
|
|
|
20
20
|
* | Token | Field | Width | Range | Notes |
|
|
21
21
|
* |---|---|---|---|---|
|
|
22
22
|
* | `yyyy` | year | 4 digits | 0000–9999 | |
|
|
23
|
-
* | `yy` | year | 2 digits | 00–99 |
|
|
23
|
+
* | `yy` | year | 2 digits | 00–99 | Needs `options.yearWindow`; returns `""` without it |
|
|
24
24
|
* | `MM` | month | 2 digits | 01–12 | |
|
|
25
25
|
* | `M` | month | 1-2 digits | 1–12 | |
|
|
26
26
|
* | `MMMM` | month name (long) | locale | — | `getLocaleMonthNames(locale, "long")` |
|
|
@@ -32,10 +32,13 @@ import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index
|
|
|
32
32
|
* | `GGGG` | era name (long) | locale | — | BCE label ⇒ final year = 1 − parsed year |
|
|
33
33
|
* | `GG` | era name (short) | locale | — | same resolution |
|
|
34
34
|
*
|
|
35
|
-
* -
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
35
|
+
* - Literal text follows the Unicode UTS #35 date format pattern rules.
|
|
36
|
+
* Text in `'single quotes'` is a literal, letters included. Two
|
|
37
|
+
* adjacent quotes `''` are one literal `'`, inside or outside quoted
|
|
38
|
+
* text: `"yyyy''MM"` reads `"2024'03"`, and `"'o''clock'"` reads
|
|
39
|
+
* `"o'clock"`. A quote that never closes makes the pattern malformed
|
|
40
|
+
* (`""`). Any other character that is not a letter (`/ - , space`,
|
|
41
|
+
* digits and so on) is a literal with no quoting.
|
|
39
42
|
* - `MMMM`/`MMM`/`EEEE`/`EEE`/`GGGG`/`GG` are locale-aware. If `locale`
|
|
40
43
|
* is omitted and the pattern uses any of them, GMT defaults to
|
|
41
44
|
* `"en-US"` rather than returning `""` for every caller who didn't
|
|
@@ -56,25 +59,41 @@ import { DATE_PATTERN_FIELDS, parseValueWithPattern } from "../../internal/index
|
|
|
56
59
|
* overflow: "reject" })`, so `"02/31/2024"` against `"MM/dd/yyyy"`
|
|
57
60
|
* still returns `""` — the regex only proves the shape, Temporal
|
|
58
61
|
* proves the date is real.
|
|
62
|
+
* - A `yy` token needs the caller's hundred-year window,
|
|
63
|
+
* `options.yearWindow`: no standard says which century a two-digit
|
|
64
|
+
* year belongs to, and a cut-off built into a library is right today
|
|
65
|
+
* and wrong later. Without a valid window a `yy` pattern returns `""`.
|
|
66
|
+
* A pattern with no `yy` never reads the option, so a `"rolling"`
|
|
67
|
+
* window reads no clock for it. A two-digit year is a legacy form; a
|
|
68
|
+
* four-digit year is the one to ask a data source for.
|
|
59
69
|
*
|
|
60
70
|
* @param value The string to decode (e.g. "03/15/2024")
|
|
61
71
|
* @param pattern The token pattern describing `value`'s shape (e.g. "MM/dd/yyyy")
|
|
62
72
|
* @param locale Optional BCP 47 locale tag, or a preference list of tags, for name-based tokens (default "en-US")
|
|
73
|
+
* @param options The hundred-year window a `yy` token resolves in
|
|
63
74
|
* @returns ISO `PlainDate` string, or "" on no match, malformed pattern, or invalid input
|
|
64
75
|
*
|
|
65
76
|
* @example parseDateWithPattern("03/15/2024", "MM/dd/yyyy") // "2024-03-15"
|
|
66
77
|
* @example parseDateWithPattern("15-Mar-2024", "dd-MMM-yyyy") // "2024-03-15"
|
|
78
|
+
* @example parseDateWithPattern("Mar 15, '24", "MMM d, ''yy", undefined, { yearWindow: 2000 }) // "2024-03-15" ('' is one literal quote)
|
|
79
|
+
* @example parseDateWithPattern("03/15/24", "MM/dd/yy", undefined, { yearWindow: 1950 }) // "2024-03-15" (1950–2049 window)
|
|
80
|
+
* @example parseDateWithPattern("03/15/99", "MM/dd/yy", undefined, { yearWindow: 1950 }) // "1999-03-15"
|
|
81
|
+
* @example parseDateWithPattern("03/15/24", "MM/dd/yy", undefined, { yearWindow: "rolling" }) // "2024-03-15" (while the current UTC year is 1975–2074)
|
|
82
|
+
* @example parseDateWithPattern("03/15/24", "MM/dd/yy") // "" (yy with no window)
|
|
83
|
+
* @example parseDateWithPattern("03/15/2024", "MM/dd/yyyy", undefined, { yearWindow: 2000 }) // "2024-03-15" (yyyy ignores the window)
|
|
67
84
|
* @example parseDateWithPattern("02/31/2024", "MM/dd/yyyy") // "" (shape-valid, not a real date)
|
|
68
85
|
* @example parseDateWithPattern("14:30", "HH:mm") // "" (time token in a date-only pattern)
|
|
69
86
|
* @example parseDateWithPattern("19 mai 2024", "d MMMM yyyy", ["fr-FR", "en-US"]) // "2024-05-19"
|
|
70
87
|
*/
|
|
71
|
-
export function parseDateWithPattern(value, pattern, locale) {
|
|
88
|
+
export function parseDateWithPattern(value, pattern, locale, options) {
|
|
72
89
|
try {
|
|
73
90
|
if (typeof value !== "string")
|
|
74
91
|
return "";
|
|
75
92
|
if (typeof pattern !== "string")
|
|
76
93
|
return "";
|
|
77
|
-
|
|
94
|
+
if (!isOptionsArgument(options))
|
|
95
|
+
return "";
|
|
96
|
+
const fields = parseValueWithPattern(value, pattern, locale, DATE_PATTERN_FIELDS, options);
|
|
78
97
|
if (fields === null)
|
|
79
98
|
return "";
|
|
80
99
|
try {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* two-digit month, day, hour, minute and second (seconds are required), and an optional `.`
|
|
9
9
|
* followed by up to 9 fraction digits.
|
|
10
10
|
* - **Plain only.** SQL's offset-carrying `TIMESTAMP WITH TIME ZONE` literal is out of scope; see
|
|
11
|
-
* `
|
|
11
|
+
* `formatSqlDateTime`'s JSDoc.
|
|
12
12
|
* - The fraction is written as `Temporal.PlainDateTime#toString` writes it: trailing zeros are
|
|
13
13
|
* dropped (`.500` → `.5`, `.000` → none), and a `.` with no digits is dropped. `Temporal.PlainDateTime.from`
|
|
14
14
|
* proves the value is a real calendar date and time.
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
* @param value SQL timestamp literal (e.g. "2024-03-15 14:30:00")
|
|
17
17
|
* @returns plain ISO 8601 datetime string, or "" on invalid input
|
|
18
18
|
*
|
|
19
|
-
* @example
|
|
20
|
-
* @example
|
|
21
|
-
* @example
|
|
22
|
-
* @example
|
|
23
|
-
* @example
|
|
24
|
-
* @example
|
|
19
|
+
* @example parseSqlDateTime("2024-03-15 14:30:00") // "2024-03-15T14:30:00"
|
|
20
|
+
* @example parseSqlDateTime("2024-03-15 14:30:00.5") // "2024-03-15T14:30:00.5"
|
|
21
|
+
* @example parseSqlDateTime("2024-03-15 14:30") // "" (seconds are required)
|
|
22
|
+
* @example parseSqlDateTime("0000-01-01 00:00:00") // "" (year outside 0001–9999)
|
|
23
|
+
* @example parseSqlDateTime("2024-03-15T14:30:00") // "" (wrong separator)
|
|
24
|
+
* @example parseSqlDateTime("not a date") // ""
|
|
25
25
|
*/
|
|
26
|
-
export declare function
|
|
26
|
+
export declare function parseSqlDateTime(value: string): string;
|
|
@@ -10,7 +10,7 @@ import { sqlDateTime } from "../../regex/index.js";
|
|
|
10
10
|
* two-digit month, day, hour, minute and second (seconds are required), and an optional `.`
|
|
11
11
|
* followed by up to 9 fraction digits.
|
|
12
12
|
* - **Plain only.** SQL's offset-carrying `TIMESTAMP WITH TIME ZONE` literal is out of scope; see
|
|
13
|
-
* `
|
|
13
|
+
* `formatSqlDateTime`'s JSDoc.
|
|
14
14
|
* - The fraction is written as `Temporal.PlainDateTime#toString` writes it: trailing zeros are
|
|
15
15
|
* dropped (`.500` → `.5`, `.000` → none), and a `.` with no digits is dropped. `Temporal.PlainDateTime.from`
|
|
16
16
|
* proves the value is a real calendar date and time.
|
|
@@ -18,14 +18,14 @@ import { sqlDateTime } from "../../regex/index.js";
|
|
|
18
18
|
* @param value SQL timestamp literal (e.g. "2024-03-15 14:30:00")
|
|
19
19
|
* @returns plain ISO 8601 datetime string, or "" on invalid input
|
|
20
20
|
*
|
|
21
|
-
* @example
|
|
22
|
-
* @example
|
|
23
|
-
* @example
|
|
24
|
-
* @example
|
|
25
|
-
* @example
|
|
26
|
-
* @example
|
|
21
|
+
* @example parseSqlDateTime("2024-03-15 14:30:00") // "2024-03-15T14:30:00"
|
|
22
|
+
* @example parseSqlDateTime("2024-03-15 14:30:00.5") // "2024-03-15T14:30:00.5"
|
|
23
|
+
* @example parseSqlDateTime("2024-03-15 14:30") // "" (seconds are required)
|
|
24
|
+
* @example parseSqlDateTime("0000-01-01 00:00:00") // "" (year outside 0001–9999)
|
|
25
|
+
* @example parseSqlDateTime("2024-03-15T14:30:00") // "" (wrong separator)
|
|
26
|
+
* @example parseSqlDateTime("not a date") // ""
|
|
27
27
|
*/
|
|
28
|
-
export function
|
|
28
|
+
export function parseSqlDateTime(value) {
|
|
29
29
|
if (typeof value !== "string")
|
|
30
30
|
return "";
|
|
31
31
|
if (!sqlDateTime.test(value))
|
|
@@ -6,9 +6,8 @@
|
|
|
6
6
|
* producer format — a CSV column, a legacy API field, a partially-typed
|
|
7
7
|
* form value — not for generating locale-correct output. For display,
|
|
8
8
|
* use `formatTime`/`formatDateToParts`, which order fields per locale
|
|
9
|
-
* instead of hard-coding a field order (
|
|
10
|
-
*
|
|
11
|
-
* of scope for GMT).
|
|
9
|
+
* instead of hard-coding a field order (a token *formatter*, the
|
|
10
|
+
* inverse of this function, is deliberately out of scope for GMT).
|
|
12
11
|
* - `pattern` accepts only time-shaped tokens. A pattern containing a
|
|
13
12
|
* date-only token (`y M d E G`) is malformed for this function and
|
|
14
13
|
* returns `""` — use `parseDateTimeWithPattern` for combined input.
|
|
@@ -27,10 +26,13 @@
|
|
|
27
26
|
* | `SSS` | millisecond | 3 digits | 000–999 | |
|
|
28
27
|
* | `a` | meridiem | locale | — | `getLocaleMeridiems(locale)` → `[AM-label, PM-label]` |
|
|
29
28
|
*
|
|
30
|
-
* -
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
29
|
+
* - Literal text follows the Unicode UTS #35 date format pattern rules.
|
|
30
|
+
* Text in `'single quotes'` is a literal, letters included. Two
|
|
31
|
+
* adjacent quotes `''` are one literal `'`, inside or outside quoted
|
|
32
|
+
* text: `"HH''mm"` reads `"14'30"`, and `"'o''clock'"` reads
|
|
33
|
+
* `"o'clock"`. A quote that never closes makes the pattern malformed
|
|
34
|
+
* (`""`). Any other character that is not a letter (`: , space`,
|
|
35
|
+
* digits and so on) is a literal with no quoting.
|
|
34
36
|
* - `a` is locale-aware. If `locale` is omitted and the pattern uses
|
|
35
37
|
* `a`, GMT defaults to `"en-US"` rather than returning `""` for every
|
|
36
38
|
* caller who didn't have another locale in mind.
|
|
@@ -51,6 +53,7 @@
|
|
|
51
53
|
*
|
|
52
54
|
* @example parseTimeWithPattern("14:30:45", "HH:mm:ss") // "14:30:45"
|
|
53
55
|
* @example parseTimeWithPattern("02:30:45 PM", "hh:mm:ss a") // "14:30:45"
|
|
56
|
+
* @example parseTimeWithPattern("2 o'clock PM", "h 'o''clock' a") // "14:00:00" ('' is one literal quote)
|
|
54
57
|
* @example parseTimeWithPattern("25:00", "HH:mm") // "" (shape-valid, not a real time)
|
|
55
58
|
* @example parseTimeWithPattern("2024-03-15", "yyyy-MM-dd") // "" (date token in a time-only pattern)
|
|
56
59
|
* @example parseTimeWithPattern("午後 10:20", "a h:mm", ["ja-JP", "en-US"]) // "22:20:00"
|
|
@@ -8,9 +8,8 @@ import { parseValueWithPattern, TIME_PATTERN_FIELDS } from "../../internal/index
|
|
|
8
8
|
* producer format — a CSV column, a legacy API field, a partially-typed
|
|
9
9
|
* form value — not for generating locale-correct output. For display,
|
|
10
10
|
* use `formatTime`/`formatDateToParts`, which order fields per locale
|
|
11
|
-
* instead of hard-coding a field order (
|
|
12
|
-
*
|
|
13
|
-
* of scope for GMT).
|
|
11
|
+
* instead of hard-coding a field order (a token *formatter*, the
|
|
12
|
+
* inverse of this function, is deliberately out of scope for GMT).
|
|
14
13
|
* - `pattern` accepts only time-shaped tokens. A pattern containing a
|
|
15
14
|
* date-only token (`y M d E G`) is malformed for this function and
|
|
16
15
|
* returns `""` — use `parseDateTimeWithPattern` for combined input.
|
|
@@ -29,10 +28,13 @@ import { parseValueWithPattern, TIME_PATTERN_FIELDS } from "../../internal/index
|
|
|
29
28
|
* | `SSS` | millisecond | 3 digits | 000–999 | |
|
|
30
29
|
* | `a` | meridiem | locale | — | `getLocaleMeridiems(locale)` → `[AM-label, PM-label]` |
|
|
31
30
|
*
|
|
32
|
-
* -
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
31
|
+
* - Literal text follows the Unicode UTS #35 date format pattern rules.
|
|
32
|
+
* Text in `'single quotes'` is a literal, letters included. Two
|
|
33
|
+
* adjacent quotes `''` are one literal `'`, inside or outside quoted
|
|
34
|
+
* text: `"HH''mm"` reads `"14'30"`, and `"'o''clock'"` reads
|
|
35
|
+
* `"o'clock"`. A quote that never closes makes the pattern malformed
|
|
36
|
+
* (`""`). Any other character that is not a letter (`: , space`,
|
|
37
|
+
* digits and so on) is a literal with no quoting.
|
|
36
38
|
* - `a` is locale-aware. If `locale` is omitted and the pattern uses
|
|
37
39
|
* `a`, GMT defaults to `"en-US"` rather than returning `""` for every
|
|
38
40
|
* caller who didn't have another locale in mind.
|
|
@@ -53,6 +55,7 @@ import { parseValueWithPattern, TIME_PATTERN_FIELDS } from "../../internal/index
|
|
|
53
55
|
*
|
|
54
56
|
* @example parseTimeWithPattern("14:30:45", "HH:mm:ss") // "14:30:45"
|
|
55
57
|
* @example parseTimeWithPattern("02:30:45 PM", "hh:mm:ss a") // "14:30:45"
|
|
58
|
+
* @example parseTimeWithPattern("2 o'clock PM", "h 'o''clock' a") // "14:00:00" ('' is one literal quote)
|
|
56
59
|
* @example parseTimeWithPattern("25:00", "HH:mm") // "" (shape-valid, not a real time)
|
|
57
60
|
* @example parseTimeWithPattern("2024-03-15", "yyyy-MM-dd") // "" (date token in a time-only pattern)
|
|
58
61
|
* @example parseTimeWithPattern("午後 10:20", "a h:mm", ["ja-JP", "en-US"]) // "22:20:00"
|
|
@@ -63,6 +66,7 @@ export function parseTimeWithPattern(value, pattern, locale) {
|
|
|
63
66
|
return "";
|
|
64
67
|
if (typeof pattern !== "string")
|
|
65
68
|
return "";
|
|
69
|
+
// A time pattern has no year token, so no two-digit-year window applies.
|
|
66
70
|
const fields = parseValueWithPattern(value, pattern, locale, TIME_PATTERN_FIELDS);
|
|
67
71
|
if (fields === null)
|
|
68
72
|
return "";
|
|
@@ -6,16 +6,19 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
6
6
|
* - Returns zero-padded string for month and day.
|
|
7
7
|
* - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
|
|
8
8
|
* does; `"dayOfWeek"` has no plural.
|
|
9
|
-
* - `
|
|
10
|
-
*
|
|
9
|
+
* - `optionsArg` must be an object or omitted: `null` or any other primitive returns "", as
|
|
10
|
+
* Temporal's GetOptionsObject rejects it.
|
|
11
11
|
* - Returns "" for invalid input.
|
|
12
|
+
* - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
|
|
13
|
+
* sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
12
14
|
*
|
|
13
15
|
* @param value ISO PlainDate string
|
|
14
16
|
* @param unit unit to extract from the date
|
|
15
|
-
* @param optionsArg
|
|
17
|
+
* @param optionsArg How weeks are numbered
|
|
16
18
|
* @returns string representation of the requested unit or "" on invalid input
|
|
17
19
|
*
|
|
18
20
|
* @example parseUnitFromDate("2024-03-15", "year") // "2024"
|
|
21
|
+
* @example parseUnitFromDate("0005-06-01", "year") // "0005"
|
|
19
22
|
* @example parseUnitFromDate("2024-03-15", "month") // "03"
|
|
20
23
|
* @example parseUnitFromDate("2024-03-15", "day") // "15"
|
|
21
24
|
* @example parseUnitFromDate("2024-03-15", "week") // "11"
|
|
@@ -26,5 +29,13 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
26
29
|
* @example parseUnitFromDate("2024-01-01", "week", { weekStartsOn: "sunday" }) // "1"
|
|
27
30
|
*/
|
|
28
31
|
export declare function parseUnitFromDate(value: string, unit: Temporal.SmallestUnit<"year" | "month" | "day" | "week"> | "dayOfWeek", optionsArg?: {
|
|
32
|
+
/**
|
|
33
|
+
* The first day of the week, which sets how the `"week"` unit is numbered. `"monday"` gives the
|
|
34
|
+
* ISO 8601 week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS
|
|
35
|
+
* #35 week number with a Sunday first day and one minimal day, where week 1 holds 1 January.
|
|
36
|
+
* Any other value returns `""`, whatever the unit.
|
|
37
|
+
*
|
|
38
|
+
* @defaultValue `"monday"`
|
|
39
|
+
*/
|
|
29
40
|
weekStartsOn?: "monday" | "sunday";
|
|
30
41
|
}): string;
|
|
@@ -4,6 +4,7 @@ import { resolveWeekStartsOn } from "../../internal/resolveWeekStartsOn.js";
|
|
|
4
4
|
import { getWeekNumber } from "../calculate/getWeekNumber.js";
|
|
5
5
|
import { isValidDate } from "../validate/index.js";
|
|
6
6
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
7
|
+
import { isoYearString } from "../../internal/isoYearString.js";
|
|
7
8
|
/**
|
|
8
9
|
* Return a specific date unit extracted from a PlainDate string.
|
|
9
10
|
*
|
|
@@ -11,16 +12,19 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
11
12
|
* - Returns zero-padded string for month and day.
|
|
12
13
|
* - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
|
|
13
14
|
* does; `"dayOfWeek"` has no plural.
|
|
14
|
-
* - `
|
|
15
|
-
*
|
|
15
|
+
* - `optionsArg` must be an object or omitted: `null` or any other primitive returns "", as
|
|
16
|
+
* Temporal's GetOptionsObject rejects it.
|
|
16
17
|
* - Returns "" for invalid input.
|
|
18
|
+
* - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
|
|
19
|
+
* sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
17
20
|
*
|
|
18
21
|
* @param value ISO PlainDate string
|
|
19
22
|
* @param unit unit to extract from the date
|
|
20
|
-
* @param optionsArg
|
|
23
|
+
* @param optionsArg How weeks are numbered
|
|
21
24
|
* @returns string representation of the requested unit or "" on invalid input
|
|
22
25
|
*
|
|
23
26
|
* @example parseUnitFromDate("2024-03-15", "year") // "2024"
|
|
27
|
+
* @example parseUnitFromDate("0005-06-01", "year") // "0005"
|
|
24
28
|
* @example parseUnitFromDate("2024-03-15", "month") // "03"
|
|
25
29
|
* @example parseUnitFromDate("2024-03-15", "day") // "15"
|
|
26
30
|
* @example parseUnitFromDate("2024-03-15", "week") // "11"
|
|
@@ -44,7 +48,7 @@ export function parseUnitFromDate(value, unit, optionsArg) {
|
|
|
44
48
|
const date = Temporal.PlainDate.from(value);
|
|
45
49
|
switch (resolveDateTimeUnit(unit)) {
|
|
46
50
|
case "year":
|
|
47
|
-
return date.year
|
|
51
|
+
return isoYearString(date.year);
|
|
48
52
|
case "month":
|
|
49
53
|
return date.month.toString().padStart(2, "0");
|
|
50
54
|
case "day":
|
|
@@ -8,16 +8,19 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
8
8
|
* - Returns zero-padded string for most units.
|
|
9
9
|
* - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
|
|
10
10
|
* does; `"dayOfWeek"` has no plural.
|
|
11
|
-
* - `
|
|
12
|
-
*
|
|
11
|
+
* - `optionsArg` must be an object or omitted: `null` or any other primitive returns "", as
|
|
12
|
+
* Temporal's GetOptionsObject rejects it.
|
|
13
13
|
* - Returns "" for invalid input.
|
|
14
|
+
* - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
|
|
15
|
+
* sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
14
16
|
*
|
|
15
17
|
* @param value ISO PlainDateTime string
|
|
16
18
|
* @param unit unit to extract from the datetime
|
|
17
|
-
* @param optionsArg
|
|
19
|
+
* @param optionsArg How weeks are numbered
|
|
18
20
|
* @returns string representation of the requested unit or "" on invalid input
|
|
19
21
|
*
|
|
20
22
|
* @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "year") // "2024"
|
|
23
|
+
* @example parseUnitFromDateTime("0005-06-01T12:30:00", "year") // "0005"
|
|
21
24
|
* @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "week") // "11"
|
|
22
25
|
* @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "hour") // "14"
|
|
23
26
|
* @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "millisecond") // "123"
|
|
@@ -26,5 +29,13 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
26
29
|
* @example parseUnitFromDateTime("2024-01-01T00:00:00", "week", { weekStartsOn: "sunday" }) // "1"
|
|
27
30
|
*/
|
|
28
31
|
export declare function parseUnitFromDateTime(value: string, unit: Temporal.SmallestUnit<"year" | "month" | "day" | "week" | "hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond"> | "dayOfWeek", optionsArg?: {
|
|
32
|
+
/**
|
|
33
|
+
* The first day of the week, which sets how the `"week"` unit is numbered. `"monday"` gives the
|
|
34
|
+
* ISO 8601 week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS
|
|
35
|
+
* #35 week number with a Sunday first day and one minimal day, where week 1 holds 1 January.
|
|
36
|
+
* Any other value returns `""`, whatever the unit.
|
|
37
|
+
*
|
|
38
|
+
* @defaultValue `"monday"`
|
|
39
|
+
*/
|
|
29
40
|
weekStartsOn?: "monday" | "sunday";
|
|
30
41
|
}): string;
|
|
@@ -5,6 +5,7 @@ import { resolveWeekStartsOn } from "../../internal/resolveWeekStartsOn.js";
|
|
|
5
5
|
import { getWeekNumber } from "../calculate/getWeekNumber.js";
|
|
6
6
|
import { isValidDateTime } from "../validate/index.js";
|
|
7
7
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
8
|
+
import { isoYearString } from "../../internal/isoYearString.js";
|
|
8
9
|
/**
|
|
9
10
|
* Return a specific unit extracted from a PlainDateTime string.
|
|
10
11
|
*
|
|
@@ -14,16 +15,19 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
14
15
|
* - Returns zero-padded string for most units.
|
|
15
16
|
* - `unit` accepts the singular or plural name of a Temporal unit (`"hour"` or `"hours"`), as Temporal
|
|
16
17
|
* does; `"dayOfWeek"` has no plural.
|
|
17
|
-
* - `
|
|
18
|
-
*
|
|
18
|
+
* - `optionsArg` must be an object or omitted: `null` or any other primitive returns "", as
|
|
19
|
+
* Temporal's GetOptionsObject rejects it.
|
|
19
20
|
* - Returns "" for invalid input.
|
|
21
|
+
* - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
|
|
22
|
+
* sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
20
23
|
*
|
|
21
24
|
* @param value ISO PlainDateTime string
|
|
22
25
|
* @param unit unit to extract from the datetime
|
|
23
|
-
* @param optionsArg
|
|
26
|
+
* @param optionsArg How weeks are numbered
|
|
24
27
|
* @returns string representation of the requested unit or "" on invalid input
|
|
25
28
|
*
|
|
26
29
|
* @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "year") // "2024"
|
|
30
|
+
* @example parseUnitFromDateTime("0005-06-01T12:30:00", "year") // "0005"
|
|
27
31
|
* @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "week") // "11"
|
|
28
32
|
* @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "hour") // "14"
|
|
29
33
|
* @example parseUnitFromDateTime("2024-03-15T14:30:45.123", "millisecond") // "123"
|
|
@@ -45,7 +49,7 @@ export function parseUnitFromDateTime(value, unit, optionsArg) {
|
|
|
45
49
|
const dateTime = Temporal.PlainDateTime.from(value);
|
|
46
50
|
switch (resolveDateTimeUnit(unit)) {
|
|
47
51
|
case "year":
|
|
48
|
-
return dateTime.year
|
|
52
|
+
return isoYearString(dateTime.year);
|
|
49
53
|
case "month":
|
|
50
54
|
return dateTime.month.toString().padStart(2, "0");
|
|
51
55
|
case "day":
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Return the week number for a given ISO 8601 date 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 date 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 parseWeekFromDate("2024-01-01") // 1
|
|
@@ -20,5 +16,13 @@
|
|
|
20
16
|
* @example parseWeekFromDate("2024-12-31", { weekStartsOn: "sunday" }) // 1 (its Sunday-first week holds 1 January 2025)
|
|
21
17
|
*/
|
|
22
18
|
export declare function parseWeekFromDate(value: string, optionsArg?: {
|
|
19
|
+
/**
|
|
20
|
+
* The first day of the week, which sets how the week is numbered. `"monday"` gives the ISO 8601
|
|
21
|
+
* week number, where week 1 holds the year's first Thursday; `"sunday"` gives the UTS #35 week
|
|
22
|
+
* number with a Sunday first day and one minimal day, where week 1 holds 1 January. Any other
|
|
23
|
+
* value returns `null`.
|
|
24
|
+
*
|
|
25
|
+
* @defaultValue `"monday"`
|
|
26
|
+
*/
|
|
23
27
|
weekStartsOn?: "monday" | "sunday";
|
|
24
28
|
}): number | null;
|