@northguild/gmt 1.18.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 -2920
- package/dist/calendar/calculate/bucketRange.d.ts +10 -2
- package/dist/calendar/calculate/bucketRange.js +18 -61
- package/dist/calendar/calculate/floorToZone.d.ts +10 -2
- package/dist/calendar/calculate/floorToZone.js +15 -7
- package/dist/calendar/hours/addOperatingTime.d.ts +6 -0
- package/dist/calendar/hours/addOperatingTime.js +7 -1
- package/dist/calendar/hours/isOpenAt.d.ts +6 -0
- package/dist/calendar/hours/isOpenAt.js +6 -0
- package/dist/calendar/hours/nextCloseAt.d.ts +6 -0
- package/dist/calendar/hours/nextCloseAt.js +7 -1
- package/dist/calendar/hours/nextOpenAt.d.ts +6 -0
- package/dist/calendar/hours/nextOpenAt.js +7 -1
- package/dist/calendar/hours/operatingIntervals.d.ts +5 -0
- package/dist/calendar/hours/operatingIntervals.js +5 -0
- package/dist/calendar/hours/operatingTimeBetween.d.ts +5 -0
- package/dist/calendar/hours/operatingTimeBetween.js +5 -0
- package/dist/calendar/hours/recurringWindows.d.ts +8 -1
- package/dist/calendar/hours/recurringWindows.js +12 -4
- 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/{durationAs.d.ts → totalDuration.d.ts} +25 -19
- package/dist/duration/calculate/{durationAs.js → totalDuration.js} +25 -19
- package/dist/duration/calculate/totalUnits.d.ts +49 -0
- package/dist/duration/calculate/totalUnits.js +73 -0
- package/dist/duration/compare/compareDurations.d.ts +1 -1
- package/dist/duration/compare/compareDurations.js +1 -1
- 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 +4 -0
- package/dist/instant/convert/fromOffsetInstant.js +6 -1
- package/dist/instant/convert/resolveLocal.d.ts +7 -2
- package/dist/instant/convert/resolveLocal.js +16 -8
- package/dist/instant/convert/toOffsetInstant.d.ts +12 -8
- package/dist/instant/convert/toOffsetInstant.js +19 -11
- 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/chargeableDays.d.ts +6 -0
- package/dist/intermodal/calculate/chargeableDays.js +12 -4
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +7 -0
- package/dist/intermodal/calculate/freeTimeExpiry.js +15 -4
- 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.js +4 -9
- 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 +3 -1
- package/dist/internal/freeTimeLedger.d.ts +5 -0
- package/dist/internal/freeTimeLedger.js +11 -2
- package/dist/internal/index.d.ts +5 -2
- package/dist/internal/index.js +9 -2
- 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/maxPieces.js +2 -1
- package/dist/internal/normalizeTimeZone.d.ts +4 -1
- package/dist/internal/normalizeTimeZone.js +4 -1
- package/dist/internal/operatingSchedule.d.ts +13 -4
- package/dist/internal/operatingSchedule.js +146 -58
- package/dist/internal/patternToken.d.ts +10 -3
- package/dist/internal/patternToken.js +31 -12
- 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/resolveRelativeUnit.d.ts +1 -1
- package/dist/internal/resolveRelativeUnit.js +1 -1
- package/dist/internal/resolveUnixIntervalPair.d.ts +8 -2
- package/dist/internal/resolveUnixIntervalPair.js +11 -7
- package/dist/internal/startOrEndOfUnix.d.ts +2 -1
- package/dist/internal/startOrEndOfUnix.js +9 -6
- 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/zonedNowUnitValue.d.ts +7 -4
- package/dist/internal/zonedNowUnitValue.js +8 -4
- package/dist/internal/zonedWallClockDifference.js +4 -4
- package/dist/internal/zonedWallClockOperations.d.ts +5 -2
- package/dist/internal/zonedWallClockOperations.js +7 -10
- package/dist/plain/calculate/addDate.js +4 -7
- package/dist/plain/calculate/addDateTime.js +4 -7
- package/dist/plain/calculate/addTime.js +4 -7
- package/dist/plain/calculate/endOfTime.d.ts +1 -1
- package/dist/plain/calculate/setDate.d.ts +20 -3
- package/dist/plain/calculate/setDate.js +27 -7
- package/dist/plain/calculate/setDateTime.d.ts +15 -3
- package/dist/plain/calculate/setDateTime.js +22 -7
- package/dist/plain/calculate/setTime.d.ts +13 -1
- package/dist/plain/calculate/setTime.js +21 -6
- package/dist/plain/calculate/startOfTime.d.ts +1 -1
- package/dist/plain/calculate/subtractDate.js +4 -7
- package/dist/plain/calculate/subtractDateTime.js +4 -7
- package/dist/plain/calculate/subtractTime.js +4 -7
- package/dist/plain/format/formatCalendar.js +2 -1
- package/dist/plain/format/formatRelativeDate.js +2 -1
- package/dist/plain/format/formatRelativeDateTime.js +2 -1
- package/dist/plain/format/formatRelativeTime.js +2 -1
- 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/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/intervalXorAllDate.js +2 -2
- package/dist/plain/interval/intervalXorAllDateTime.js +2 -2
- package/dist/plain/interval/intervalXorAllTime.js +2 -2
- package/dist/plain/interval/mergeIntervalsDate.js +2 -2
- package/dist/plain/interval/mergeIntervalsDateTime.js +2 -2
- package/dist/plain/interval/mergeIntervalsTime.js +2 -2
- package/dist/plain/parse/index.d.ts +1 -1
- package/dist/plain/parse/index.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +16 -3
- package/dist/plain/parse/parseDateTimeWithPattern.js +20 -5
- package/dist/plain/parse/parseDateWithPattern.d.ts +17 -3
- package/dist/plain/parse/parseDateWithPattern.js +21 -5
- 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.js +1 -0
- package/dist/plain/parse/parseUnitFromDate.d.ts +3 -0
- package/dist/plain/parse/parseUnitFromDate.js +5 -1
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +3 -0
- package/dist/plain/parse/parseUnitFromDateTime.js +5 -1
- 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/isValidSqlDateTime.d.ts +33 -0
- package/dist/plain/validate/isValidSqlDateTime.js +36 -0
- package/dist/precision/convert/fromNanoseconds.d.ts +9 -3
- package/dist/precision/convert/fromNanoseconds.js +9 -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/transport/calculate/crossingTime.d.ts +6 -1
- package/dist/transport/calculate/crossingTime.js +6 -1
- package/dist/transport/calculate/cutoffAt.d.ts +6 -1
- package/dist/transport/calculate/cutoffAt.js +2 -0
- package/dist/transport/calculate/cutoffSchedule.d.ts +6 -1
- package/dist/transport/calculate/cutoffSchedule.js +2 -0
- package/dist/transport/calculate/dwellTime.d.ts +6 -1
- package/dist/transport/calculate/dwellTime.js +6 -1
- package/dist/transport/calculate/scheduleDelivery.d.ts +13 -5
- package/dist/transport/calculate/scheduleDelivery.js +6 -1
- package/dist/transport/convert/etaAtZone.d.ts +6 -1
- package/dist/transport/convert/etaAtZone.js +6 -1
- package/dist/types/business-calendar.d.ts +5 -4
- package/dist/types/duty.d.ts +777 -0
- package/dist/types/duty.js +0 -0
- package/dist/types/edi.d.ts +407 -0
- package/dist/types/edi.js +0 -0
- package/dist/types/epcis.d.ts +25 -0
- package/dist/types/epcis.js +0 -0
- package/dist/types/exact-duration-unit.d.ts +8 -0
- package/dist/types/exact-duration-unit.js +0 -0
- package/dist/types/free-time-options.d.ts +4 -3
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.js +5 -0
- package/dist/types/operating-schedule.d.ts +3 -2
- 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 +11 -2
- package/dist/unix/calculate/addUnix.js +14 -11
- package/dist/unix/calculate/diffUnix.d.ts +10 -2
- package/dist/unix/calculate/diffUnix.js +11 -6
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +10 -2
- package/dist/unix/calculate/diffUnixAsDuration.js +10 -5
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +10 -2
- package/dist/unix/calculate/endOfQuarterForUnix.js +6 -0
- package/dist/unix/calculate/endOfUnix.d.ts +11 -2
- package/dist/unix/calculate/endOfUnix.js +7 -0
- package/dist/unix/calculate/isBetweenUnix.d.ts +3 -2
- package/dist/unix/calculate/isBetweenUnix.js +3 -3
- package/dist/unix/calculate/roundUnix.d.ts +10 -2
- package/dist/unix/calculate/roundUnix.js +13 -6
- package/dist/unix/calculate/setUnix.d.ts +25 -5
- package/dist/unix/calculate/setUnix.js +33 -12
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +10 -2
- package/dist/unix/calculate/startOfQuarterForUnix.js +6 -0
- package/dist/unix/calculate/startOfUnix.d.ts +11 -2
- package/dist/unix/calculate/startOfUnix.js +7 -0
- package/dist/unix/calculate/subtractUnix.d.ts +10 -2
- package/dist/unix/calculate/subtractUnix.js +13 -11
- package/dist/unix/compare/areUnixEqualBy.d.ts +11 -2
- package/dist/unix/compare/areUnixEqualBy.js +7 -0
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +5 -2
- package/dist/unix/convert/convertUnixToPlainDate.js +5 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +5 -2
- package/dist/unix/convert/convertUnixToPlainDateTime.js +5 -4
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +5 -2
- package/dist/unix/convert/convertUnixToPlainTime.js +5 -4
- package/dist/unix/convert/convertUnixToZoned.d.ts +5 -1
- package/dist/unix/convert/convertUnixToZoned.js +5 -1
- package/dist/unix/format/formatCalendarUnix.d.ts +6 -2
- package/dist/unix/format/formatCalendarUnix.js +6 -1
- package/dist/unix/format/formatRelativeUnix.d.ts +11 -3
- package/dist/unix/format/formatRelativeUnix.js +13 -5
- package/dist/unix/format/formatUnix.d.ts +7 -2
- package/dist/unix/format/formatUnix.js +4 -0
- 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/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 +11 -2
- package/dist/unix/interval/intervalCountUnix.js +7 -0
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -2
- package/dist/unix/interval/intervalFromDurationUnix.js +12 -7
- package/dist/unix/interval/intervalLengthUnix.d.ts +10 -2
- package/dist/unix/interval/intervalLengthUnix.js +6 -0
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +10 -2
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +10 -5
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +10 -2
- package/dist/unix/interval/splitIntervalByUnitUnix.js +12 -6
- package/dist/unix/parse/parseDateFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDateFromUnix.js +3 -3
- package/dist/unix/parse/parseDayFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +2 -2
- package/dist/unix/parse/parseHourFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +5 -2
- package/dist/unix/parse/parseTimeFromUnix.js +4 -3
- package/dist/unix/parse/parseUnitFromUnix.d.ts +9 -3
- package/dist/unix/parse/parseUnitFromUnix.js +21 -14
- package/dist/unix/parse/parseWeekFromUnix.d.ts +3 -2
- package/dist/unix/parse/parseWeekFromUnix.js +4 -4
- package/dist/unix/parse/parseYearFromUnix.d.ts +8 -3
- package/dist/unix/parse/parseYearFromUnix.js +4 -1
- package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
- package/dist/utc/calculate/addUtc.js +4 -7
- package/dist/utc/calculate/setUtc.d.ts +16 -3
- package/dist/utc/calculate/setUtc.js +22 -8
- package/dist/utc/calculate/subtractUtc.js +4 -7
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +8 -2
- package/dist/utc/convert/convertUtcToPlainDate.js +10 -7
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +9 -2
- package/dist/utc/convert/convertUtcToPlainDateTime.js +12 -13
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +5 -2
- package/dist/utc/convert/convertUtcToPlainTime.js +7 -6
- package/dist/utc/convert/convertUtcToZoned.d.ts +5 -1
- package/dist/utc/convert/convertUtcToZoned.js +5 -1
- package/dist/utc/format/formatCalendarUtc.d.ts +6 -2
- package/dist/utc/format/formatCalendarUtc.js +6 -1
- package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +7 -7
- package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +7 -7
- package/dist/utc/format/formatRelativeUtc.d.ts +11 -3
- package/dist/utc/format/formatRelativeUtc.js +13 -5
- package/dist/utc/format/formatUtc.d.ts +7 -2
- package/dist/utc/format/formatUtc.js +4 -0
- 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/intervalXorAllUtc.js +2 -2
- package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
- package/dist/utc/parse/index.d.ts +1 -1
- package/dist/utc/parse/index.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseDateFromUtc.js +2 -2
- package/dist/utc/parse/parseDayFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseDayFromUtc.js +2 -2
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +4 -4
- package/dist/utc/parse/parseHourFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseHourFromUtc.js +2 -2
- 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 +4 -2
- package/dist/utc/parse/parseMicrosecondFromUtc.js +2 -2
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseMillisecondFromUtc.js +2 -2
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseMinuteFromUtc.js +2 -2
- package/dist/utc/parse/parseMonthFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseMonthFromUtc.js +2 -2
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseNanosecondFromUtc.js +2 -2
- package/dist/utc/parse/parseSecondFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseSecondFromUtc.js +2 -2
- package/dist/utc/parse/parseTimeFromUtc.d.ts +5 -2
- package/dist/utc/parse/parseTimeFromUtc.js +5 -4
- package/dist/utc/parse/parseUnitFromUtc.d.ts +10 -3
- package/dist/utc/parse/parseUnitFromUtc.js +11 -5
- package/dist/utc/parse/parseWeekFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseWeekFromUtc.js +4 -4
- package/dist/utc/parse/parseYearFromUtc.d.ts +8 -4
- package/dist/utc/parse/parseYearFromUtc.js +8 -5
- 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/isValidUtcTimestamp.d.ts +43 -0
- package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
- package/dist/zoned/calculate/addZoned.js +4 -7
- package/dist/zoned/calculate/setZoned.d.ts +19 -5
- package/dist/zoned/calculate/setZoned.js +26 -9
- package/dist/zoned/calculate/subtractZoned.js +4 -7
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +4 -1
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +4 -1
- package/dist/zoned/convert/convertZonedToZoned.d.ts +5 -1
- package/dist/zoned/convert/convertZonedToZoned.js +5 -1
- package/dist/zoned/format/formatCalendarZoned.js +2 -1
- package/dist/zoned/format/formatRelativeZoned.js +2 -1
- package/dist/zoned/format/formatTimeZoneName.d.ts +5 -1
- package/dist/zoned/format/formatTimeZoneName.js +5 -1
- package/dist/zoned/get/getDstTransitions.d.ts +5 -3
- package/dist/zoned/get/getDstTransitions.js +12 -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 +10 -2
- package/dist/zoned/get/getTimeZoneOffset.js +18 -5
- 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 +5 -1
- package/dist/zoned/get/getZonedNow.js +5 -1
- 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/intervalXorAllZoned.js +2 -2
- package/dist/zoned/interval/mergeIntervalsZoned.js +2 -2
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +4 -1
- package/dist/zoned/parse/parseUnitFromZoned.js +5 -1
- package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
- package/dist/zoned/parse/parseYearFromZoned.js +6 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +4 -2
- package/dist/zoned/validate/hasDaylightSaving.js +13 -7
- 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/package.json +50 -1
- package/skills/gmt-arithmetic/SKILL.md +99 -12
- package/skills/gmt-basics/SKILL.md +57 -15
- package/skills/gmt-integration/SKILL.md +24 -9
- package/skills/gmt-timezone/SKILL.md +134 -29
- package/dist/internal/unixZonedDateTime.d.ts +0 -22
- package/dist/internal/unixZonedDateTime.js +0 -32
- package/dist/internal/utcZonedDateTime.d.ts +0 -19
- package/dist/internal/utcZonedDateTime.js +0 -31
|
@@ -4,21 +4,14 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
6
6
|
* - Returns zero-padded string to 3 digits.
|
|
7
|
-
* - Returns "" on failure.
|
|
8
7
|
*
|
|
9
|
-
* @returns current millisecond string (zero-padded to 3 digits)
|
|
8
|
+
* @returns current millisecond string (zero-padded to 3 digits)
|
|
10
9
|
*
|
|
11
10
|
* @example getUnixMillisecond() // "123"
|
|
12
|
-
* @example getUnixMillisecond() // "" (on failure)
|
|
13
11
|
*/
|
|
14
12
|
export function getUnixMillisecond() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.padStart(3, "0");
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return "";
|
|
23
|
-
}
|
|
13
|
+
return Temporal.Now.instant()
|
|
14
|
+
.toZonedDateTimeISO("UTC")
|
|
15
|
+
.millisecond.toString()
|
|
16
|
+
.padStart(3, "0");
|
|
24
17
|
}
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
5
5
|
* - Returns zero-padded string to 2 digits.
|
|
6
|
-
* - Returns "" on failure.
|
|
7
6
|
*
|
|
8
|
-
* @returns current minute string (zero-padded to 2 digits)
|
|
7
|
+
* @returns current minute string (zero-padded to 2 digits)
|
|
9
8
|
*
|
|
10
9
|
* @example getUnixMinute() // "30"
|
|
11
|
-
* @example getUnixMinute() // "" (on failure)
|
|
12
10
|
*/
|
|
13
11
|
export declare function getUnixMinute(): string;
|
|
@@ -4,21 +4,14 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
6
6
|
* - Returns zero-padded string to 2 digits.
|
|
7
|
-
* - Returns "" on failure.
|
|
8
7
|
*
|
|
9
|
-
* @returns current minute string (zero-padded to 2 digits)
|
|
8
|
+
* @returns current minute string (zero-padded to 2 digits)
|
|
10
9
|
*
|
|
11
10
|
* @example getUnixMinute() // "30"
|
|
12
|
-
* @example getUnixMinute() // "" (on failure)
|
|
13
11
|
*/
|
|
14
12
|
export function getUnixMinute() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.padStart(2, "0");
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return "";
|
|
23
|
-
}
|
|
13
|
+
return Temporal.Now.instant()
|
|
14
|
+
.toZonedDateTimeISO("UTC")
|
|
15
|
+
.minute.toString()
|
|
16
|
+
.padStart(2, "0");
|
|
24
17
|
}
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
5
5
|
* - Returns zero-padded string to 2 digits.
|
|
6
|
-
* - Returns "" on failure.
|
|
7
6
|
*
|
|
8
|
-
* @returns current month string (zero-padded to 2 digits)
|
|
7
|
+
* @returns current month string (zero-padded to 2 digits)
|
|
9
8
|
*
|
|
10
9
|
* @example getUnixMonth() // "02"
|
|
11
|
-
* @example getUnixMonth() // "" (on failure)
|
|
12
10
|
*/
|
|
13
11
|
export declare function getUnixMonth(): string;
|
|
@@ -4,21 +4,14 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
6
6
|
* - Returns zero-padded string to 2 digits.
|
|
7
|
-
* - Returns "" on failure.
|
|
8
7
|
*
|
|
9
|
-
* @returns current month string (zero-padded to 2 digits)
|
|
8
|
+
* @returns current month string (zero-padded to 2 digits)
|
|
10
9
|
*
|
|
11
10
|
* @example getUnixMonth() // "02"
|
|
12
|
-
* @example getUnixMonth() // "" (on failure)
|
|
13
11
|
*/
|
|
14
12
|
export function getUnixMonth() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.padStart(2, "0");
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return "";
|
|
23
|
-
}
|
|
13
|
+
return Temporal.Now.instant()
|
|
14
|
+
.toZonedDateTimeISO("UTC")
|
|
15
|
+
.month.toString()
|
|
16
|
+
.padStart(2, "0");
|
|
24
17
|
}
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
5
5
|
* - Returns zero-padded string to 3 digits.
|
|
6
|
-
* - Returns "" on failure.
|
|
7
6
|
*
|
|
8
|
-
* @returns current nanosecond string (zero-padded to 3 digits)
|
|
7
|
+
* @returns current nanosecond string (zero-padded to 3 digits)
|
|
9
8
|
*
|
|
10
9
|
* @example getUnixNanosecond() // "789"
|
|
11
|
-
* @example getUnixNanosecond() // "" (on failure)
|
|
12
10
|
*/
|
|
13
11
|
export declare function getUnixNanosecond(): string;
|
|
@@ -4,20 +4,13 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
6
6
|
* - Returns zero-padded string to 3 digits.
|
|
7
|
-
* - Returns "" on failure.
|
|
8
7
|
*
|
|
9
|
-
* @returns current nanosecond string (zero-padded to 3 digits)
|
|
8
|
+
* @returns current nanosecond string (zero-padded to 3 digits)
|
|
10
9
|
*
|
|
11
10
|
* @example getUnixNanosecond() // "789"
|
|
12
|
-
* @example getUnixNanosecond() // "" (on failure)
|
|
13
11
|
*/
|
|
14
12
|
export function getUnixNanosecond() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
.padStart(3, "0");
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
return "";
|
|
22
|
-
}
|
|
13
|
+
return (Temporal.Now.instant().toZonedDateTimeISO("UTC").nanosecond ?? 0)
|
|
14
|
+
.toString()
|
|
15
|
+
.padStart(3, "0");
|
|
23
16
|
}
|
|
@@ -8,6 +8,8 @@ export type { UnixNowUnit };
|
|
|
8
8
|
* - `microsecond` and `nanosecond` are Temporal's 0–999 fields, zero-padded to 3 digits.
|
|
9
9
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
10
10
|
* - Returns "" on invalid unit or failure.
|
|
11
|
+
* - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
|
|
12
|
+
* sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
11
13
|
*
|
|
12
14
|
* @param unit unit to extract from current unix timestamp
|
|
13
15
|
* @returns string representation of the requested unit or "" on invalid
|
|
@@ -12,6 +12,8 @@ function isValidUnixNowUnit(unit) {
|
|
|
12
12
|
* - `microsecond` and `nanosecond` are Temporal's 0–999 fields, zero-padded to 3 digits.
|
|
13
13
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
14
14
|
* - Returns "" on invalid unit or failure.
|
|
15
|
+
* - The `"year"` unit is written as Temporal writes a year: four digits (`"2024"`, `"0005"`), or a
|
|
16
|
+
* sign and six digits outside 0000–9999 (`"+010000"`, `"-000005"`).
|
|
15
17
|
*
|
|
16
18
|
* @param unit unit to extract from current unix timestamp
|
|
17
19
|
* @returns string representation of the requested unit or "" on invalid
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
5
5
|
* - Returns zero-padded string to 2 digits.
|
|
6
|
-
* - Returns "" on failure.
|
|
7
6
|
*
|
|
8
|
-
* @returns current second string (zero-padded to 2 digits)
|
|
7
|
+
* @returns current second string (zero-padded to 2 digits)
|
|
9
8
|
*
|
|
10
9
|
* @example getUnixSecond() // "45"
|
|
11
|
-
* @example getUnixSecond() // "" (on failure)
|
|
12
10
|
*/
|
|
13
11
|
export declare function getUnixSecond(): string;
|
|
@@ -4,21 +4,14 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
6
6
|
* - Returns zero-padded string to 2 digits.
|
|
7
|
-
* - Returns "" on failure.
|
|
8
7
|
*
|
|
9
|
-
* @returns current second string (zero-padded to 2 digits)
|
|
8
|
+
* @returns current second string (zero-padded to 2 digits)
|
|
10
9
|
*
|
|
11
10
|
* @example getUnixSecond() // "45"
|
|
12
|
-
* @example getUnixSecond() // "" (on failure)
|
|
13
11
|
*/
|
|
14
12
|
export function getUnixSecond() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.padStart(2, "0");
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return "";
|
|
23
|
-
}
|
|
13
|
+
return Temporal.Now.instant()
|
|
14
|
+
.toZonedDateTimeISO("UTC")
|
|
15
|
+
.second.toString()
|
|
16
|
+
.padStart(2, "0");
|
|
24
17
|
}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
5
5
|
* - Returns zero-padded string to 4 digits.
|
|
6
|
-
* -
|
|
6
|
+
* - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
|
|
7
|
+
* Temporal writes it at the head of a date.
|
|
7
8
|
*
|
|
8
|
-
* @returns current year string (zero-padded to 4 digits)
|
|
9
|
+
* @returns current year string (zero-padded to 4 digits)
|
|
9
10
|
*
|
|
10
11
|
* @example getUnixYear() // "2024"
|
|
11
|
-
* @example getUnixYear() // "" (on failure)
|
|
12
12
|
*/
|
|
13
13
|
export declare function getUnixYear(): string;
|
|
@@ -1,24 +1,17 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { isoYearString } from "../../internal/isoYearString.js";
|
|
2
3
|
/**
|
|
3
4
|
* Return the current year from the Unix timestamp in UTC as a zero-padded string.
|
|
4
5
|
*
|
|
5
6
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
6
7
|
* - Returns zero-padded string to 4 digits.
|
|
7
|
-
* -
|
|
8
|
+
* - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
|
|
9
|
+
* Temporal writes it at the head of a date.
|
|
8
10
|
*
|
|
9
|
-
* @returns current year string (zero-padded to 4 digits)
|
|
11
|
+
* @returns current year string (zero-padded to 4 digits)
|
|
10
12
|
*
|
|
11
13
|
* @example getUnixYear() // "2024"
|
|
12
|
-
* @example getUnixYear() // "" (on failure)
|
|
13
14
|
*/
|
|
14
15
|
export function getUnixYear() {
|
|
15
|
-
|
|
16
|
-
return Temporal.Now.instant()
|
|
17
|
-
.toZonedDateTimeISO("UTC")
|
|
18
|
-
.year.toString()
|
|
19
|
-
.padStart(4, "0");
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return "";
|
|
23
|
-
}
|
|
16
|
+
return isoYearString(Temporal.Now.instant().toZonedDateTimeISO("UTC").year);
|
|
24
17
|
}
|
|
@@ -21,6 +21,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
21
21
|
* - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
|
|
22
22
|
* one, or lies outside the Temporal instant range, `start > end`, an unsupported unit, an invalid
|
|
23
23
|
* `epochUnit` or an unknown `timeZone`).
|
|
24
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
25
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
26
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
27
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
28
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
29
|
+
* such limit.
|
|
24
30
|
*
|
|
25
31
|
* @param start Unix epoch in `epochUnit` — interval start
|
|
26
32
|
* @param end Unix epoch in `epochUnit` — interval end
|
|
@@ -35,6 +41,7 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
35
41
|
* @example intervalCountUnix(1704151800000, 1704155400000, "day", { timeZone: "Asia/Tokyo" }) // 1 (08:30 to 09:30 on one Tokyo day)
|
|
36
42
|
* @example intervalCountUnix("1704151800", "1704155400", "days", { epochUnit: "second" }) // 2
|
|
37
43
|
* @example intervalCountUnix(NaN, 86400000, "hour") // null
|
|
44
|
+
* @example intervalCountUnix(2669999, 2670001, "day", { timeZone: "-00:44:30" }) // 2 (the local day turns at 00:44:30Z)
|
|
38
45
|
*/
|
|
39
46
|
export declare function intervalCountUnix(start: number | string, end: number | string, unit: string, options?: {
|
|
40
47
|
/**
|
|
@@ -45,8 +52,10 @@ export declare function intervalCountUnix(start: number | string, end: number |
|
|
|
45
52
|
*/
|
|
46
53
|
epochUnit?: UnixUnit;
|
|
47
54
|
/**
|
|
48
|
-
* The time zone the unit boundaries are found in: an IANA name, a UTC offset
|
|
49
|
-
*
|
|
55
|
+
* The time zone the unit boundaries are found in: an IANA name, a UTC offset (a time zone
|
|
56
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
57
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
58
|
+
* `null`.
|
|
50
59
|
*
|
|
51
60
|
* @defaultValue `"UTC"`
|
|
52
61
|
*/
|
|
@@ -24,6 +24,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
24
24
|
* - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
|
|
25
25
|
* one, or lies outside the Temporal instant range, `start > end`, an unsupported unit, an invalid
|
|
26
26
|
* `epochUnit` or an unknown `timeZone`).
|
|
27
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
28
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
29
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
30
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
31
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
32
|
+
* such limit.
|
|
27
33
|
*
|
|
28
34
|
* @param start Unix epoch in `epochUnit` — interval start
|
|
29
35
|
* @param end Unix epoch in `epochUnit` — interval end
|
|
@@ -38,6 +44,7 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
38
44
|
* @example intervalCountUnix(1704151800000, 1704155400000, "day", { timeZone: "Asia/Tokyo" }) // 1 (08:30 to 09:30 on one Tokyo day)
|
|
39
45
|
* @example intervalCountUnix("1704151800", "1704155400", "days", { epochUnit: "second" }) // 2
|
|
40
46
|
* @example intervalCountUnix(NaN, 86400000, "hour") // null
|
|
47
|
+
* @example intervalCountUnix(2669999, 2670001, "day", { timeZone: "-00:44:30" }) // 2 (the local day turns at 00:44:30Z)
|
|
41
48
|
*/
|
|
42
49
|
export function intervalCountUnix(start, end, unit, options) {
|
|
43
50
|
try {
|
|
@@ -18,6 +18,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
18
18
|
* - Returns null on invalid input (a `value` that is not a safe integer or numeric string of one —
|
|
19
19
|
* fractions, empty strings and values beyond ±(2^53 − 1) are invalid — invalid `duration`, an
|
|
20
20
|
* `anchor` other than `"start"`/`"end"`, or an invalid/unavailable timeZone).
|
|
21
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
22
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
23
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
24
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
25
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
26
|
+
* such limit.
|
|
21
27
|
*
|
|
22
28
|
* @param value Unix epoch value (seconds or milliseconds): a safe integer or a digit string
|
|
23
29
|
* @param duration ISO 8601 duration string
|
|
@@ -41,8 +47,10 @@ export declare function intervalFromDurationUnix(value: number | string, duratio
|
|
|
41
47
|
*/
|
|
42
48
|
epochUnit?: UnixUnit;
|
|
43
49
|
/**
|
|
44
|
-
* The time zone the calendar arithmetic runs in: an IANA name, a UTC offset
|
|
45
|
-
*
|
|
50
|
+
* The time zone the calendar arithmetic runs in: an IANA name, a UTC offset (a time zone
|
|
51
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
52
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
53
|
+
* `null`.
|
|
46
54
|
*
|
|
47
55
|
* @defaultValue `"UTC"`
|
|
48
56
|
*/
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- cross-family Temporal type clone, by design (rule 5)
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
3
|
import { isValidDuration } from "../../duration/validate/index.js";
|
|
4
|
-
import { addToZoned, resolveOverflow, subtractFromZoned } from "../../internal/index.js";
|
|
5
|
-
import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
4
|
+
import { addToZoned, frameInstant, frameZoned, normalizeZoneFrame, resolveOverflow, subtractFromZoned, } from "../../internal/index.js";
|
|
6
5
|
import { resolveUnixEpochUnit, toUnixEpoch, unixEpochToInstant, } from "../../internal/unixEpochValue.js";
|
|
7
6
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
8
7
|
/**
|
|
@@ -23,6 +22,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
23
22
|
* - Returns null on invalid input (a `value` that is not a safe integer or numeric string of one —
|
|
24
23
|
* fractions, empty strings and values beyond ±(2^53 − 1) are invalid — invalid `duration`, an
|
|
25
24
|
* `anchor` other than `"start"`/`"end"`, or an invalid/unavailable timeZone).
|
|
25
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
26
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
27
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
28
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
29
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
30
|
+
* such limit.
|
|
26
31
|
*
|
|
27
32
|
* @param value Unix epoch value (seconds or milliseconds): a safe integer or a digit string
|
|
28
33
|
* @param duration ISO 8601 duration string
|
|
@@ -49,8 +54,8 @@ export function intervalFromDurationUnix(value, duration, anchor, options) {
|
|
|
49
54
|
return null;
|
|
50
55
|
}
|
|
51
56
|
const epochUnit = resolveUnixEpochUnit(options?.epochUnit);
|
|
52
|
-
const
|
|
53
|
-
if (
|
|
57
|
+
const frame = normalizeZoneFrame(options?.timeZone);
|
|
58
|
+
if (frame === null || epochUnit === null) {
|
|
54
59
|
return null;
|
|
55
60
|
}
|
|
56
61
|
const instant = unixEpochToInstant(value, epochUnit);
|
|
@@ -58,7 +63,7 @@ export function intervalFromDurationUnix(value, duration, anchor, options) {
|
|
|
58
63
|
return null;
|
|
59
64
|
}
|
|
60
65
|
try {
|
|
61
|
-
const point = instant
|
|
66
|
+
const point = frameZoned(instant, frame);
|
|
62
67
|
const dur = Temporal.Duration.from(duration);
|
|
63
68
|
const overflow = resolveOverflow(options?.overflow);
|
|
64
69
|
const other = anchor === "start"
|
|
@@ -70,8 +75,8 @@ export function intervalFromDurationUnix(value, duration, anchor, options) {
|
|
|
70
75
|
return null;
|
|
71
76
|
}
|
|
72
77
|
return {
|
|
73
|
-
start: toUnixEpoch(start, epochUnit),
|
|
74
|
-
end: toUnixEpoch(end, epochUnit),
|
|
78
|
+
start: toUnixEpoch(frameInstant(start, frame), epochUnit),
|
|
79
|
+
end: toUnixEpoch(frameInstant(end, frame), epochUnit),
|
|
75
80
|
};
|
|
76
81
|
}
|
|
77
82
|
catch {
|
|
@@ -12,6 +12,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
12
12
|
* - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
|
|
13
13
|
* one, or lies outside the Temporal instant range, `start > end`, an unsupported unit, an invalid
|
|
14
14
|
* `epochUnit` or an unknown `timeZone`).
|
|
15
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
16
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
17
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
18
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
19
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
20
|
+
* such limit.
|
|
15
21
|
*
|
|
16
22
|
* @param start Unix epoch in `epochUnit` — interval start
|
|
17
23
|
* @param end Unix epoch in `epochUnit` — interval end
|
|
@@ -37,8 +43,10 @@ export declare function intervalLengthUnix(start: number | string, end: number |
|
|
|
37
43
|
*/
|
|
38
44
|
epochUnit?: UnixUnit;
|
|
39
45
|
/**
|
|
40
|
-
* The time zone calendar units are measured in: an IANA name, a UTC offset
|
|
41
|
-
*
|
|
46
|
+
* The time zone calendar units are measured in: an IANA name, a UTC offset (a time zone
|
|
47
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
48
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
49
|
+
* `null`.
|
|
42
50
|
*
|
|
43
51
|
* @defaultValue `"UTC"`
|
|
44
52
|
*/
|
|
@@ -15,6 +15,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
15
15
|
* - Returns `null` on invalid input (`start`/`end` that is not a safe integer or numeric string of
|
|
16
16
|
* one, or lies outside the Temporal instant range, `start > end`, an unsupported unit, an invalid
|
|
17
17
|
* `epochUnit` or an unknown `timeZone`).
|
|
18
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
19
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
20
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
21
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
22
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
23
|
+
* such limit.
|
|
18
24
|
*
|
|
19
25
|
* @param start Unix epoch in `epochUnit` — interval start
|
|
20
26
|
* @param end Unix epoch in `epochUnit` — interval end
|
|
@@ -24,6 +24,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
24
24
|
* 24-hour periods instead of counting calendar dates. To reproduce date-fns's number,
|
|
25
25
|
* compose `intervalIntersectionUnix` with `intervalCountUnix`:
|
|
26
26
|
* `const span = intervalIntersectionUnix(aStart, aEnd, bStart, bEnd); span ? intervalCountUnix(span.start, span.end, "day") : 0;`
|
|
27
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
28
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
29
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
30
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
31
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
32
|
+
* such limit.
|
|
27
33
|
*
|
|
28
34
|
* @param aStart Unix epoch value (seconds or milliseconds) — first interval start
|
|
29
35
|
* @param aEnd Unix epoch value (seconds or milliseconds) — first interval end
|
|
@@ -49,8 +55,10 @@ export declare function intervalOverlappingDaysUnix(aStart: number | string, aEn
|
|
|
49
55
|
*/
|
|
50
56
|
epochUnit?: UnixUnit;
|
|
51
57
|
/**
|
|
52
|
-
* The time zone the calendar dates are counted in: an IANA name, a UTC offset
|
|
53
|
-
*
|
|
58
|
+
* The time zone the calendar dates are counted in: an IANA name, a UTC offset (a time zone
|
|
59
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
60
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
61
|
+
* `null`.
|
|
54
62
|
*
|
|
55
63
|
* @defaultValue `"UTC"`
|
|
56
64
|
*/
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { countZonedLocalDates, halfOpenIntersection, parseUnixEpochInterval, } from "../../internal/index.js";
|
|
1
|
+
import { countZonedLocalDates, frameZoned, halfOpenIntersection, normalizeZoneFrame, parseUnixEpochInterval, } from "../../internal/index.js";
|
|
3
2
|
import { resolveUnixEpochUnit, unixEpochToInstant, } from "../../internal/unixEpochValue.js";
|
|
4
3
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
5
4
|
/**
|
|
@@ -27,6 +26,12 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
27
26
|
* 24-hour periods instead of counting calendar dates. To reproduce date-fns's number,
|
|
28
27
|
* compose `intervalIntersectionUnix` with `intervalCountUnix`:
|
|
29
28
|
* `const span = intervalIntersectionUnix(aStart, aEnd, bStart, bEnd); span ? intervalCountUnix(span.start, span.end, "day") : 0;`
|
|
29
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
30
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
31
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
32
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
33
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `null`. An offset to the minute has no
|
|
34
|
+
* such limit.
|
|
30
35
|
*
|
|
31
36
|
* @param aStart Unix epoch value (seconds or milliseconds) — first interval start
|
|
32
37
|
* @param aEnd Unix epoch value (seconds or milliseconds) — first interval end
|
|
@@ -56,8 +61,8 @@ export function intervalOverlappingDaysUnix(aStart, aEnd, bStart, bEnd, options)
|
|
|
56
61
|
const { start: a1, end: a2 } = a;
|
|
57
62
|
const { start: b1, end: b2 } = b;
|
|
58
63
|
const epochUnit = resolveUnixEpochUnit(options?.epochUnit);
|
|
59
|
-
const
|
|
60
|
-
if (
|
|
64
|
+
const frame = normalizeZoneFrame(options?.timeZone);
|
|
65
|
+
if (frame === null || epochUnit === null) {
|
|
61
66
|
return null;
|
|
62
67
|
}
|
|
63
68
|
const overlap = halfOpenIntersection({ start: a1, end: a2 }, { start: b1, end: b2 }, (left, right) => left - right);
|
|
@@ -77,7 +82,7 @@ export function intervalOverlappingDaysUnix(aStart, aEnd, bStart, bEnd, options)
|
|
|
77
82
|
try {
|
|
78
83
|
// The last instant the half-open intersection holds is one nanosecond before its end, so the
|
|
79
84
|
// closed local-date count runs to there.
|
|
80
|
-
return countZonedLocalDates(first
|
|
85
|
+
return countZonedLocalDates(frameZoned(first, frame), frameZoned(afterLast, frame).subtract({ nanoseconds: 1 }));
|
|
81
86
|
}
|
|
82
87
|
catch {
|
|
83
88
|
return null;
|
|
@@ -31,6 +31,12 @@ import type { UnixUnit } from "../validate/isValidUnixUnit.js";
|
|
|
31
31
|
* - Accepts singular or plural units (`"day"` and `"days"` behave identically).
|
|
32
32
|
* - A split into more than `options.maxPieces` slices returns `[]`, decided from the span before
|
|
33
33
|
* stepping where it can be, and otherwise as soon as slice `maxPieces + 1` is due.
|
|
34
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
35
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
36
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
37
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
38
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `[]`. An offset to the minute has no
|
|
39
|
+
* such limit.
|
|
34
40
|
*
|
|
35
41
|
* @param start Unix epoch in `epochUnit` — interval start
|
|
36
42
|
* @param end Unix epoch in `epochUnit` — interval end
|
|
@@ -67,8 +73,10 @@ export declare function splitIntervalByUnitUnix(start: number | string, end: num
|
|
|
67
73
|
*/
|
|
68
74
|
epochUnit?: UnixUnit;
|
|
69
75
|
/**
|
|
70
|
-
* The time zone the calendar arithmetic runs in: an IANA name, a UTC offset
|
|
71
|
-
*
|
|
76
|
+
* The time zone the calendar arithmetic runs in: an IANA name, a UTC offset (a time zone
|
|
77
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
78
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
79
|
+
* `[]`.
|
|
72
80
|
*
|
|
73
81
|
* @defaultValue `"UTC"`
|
|
74
82
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- cross-family Temporal type clone, by design (rule 5)
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import { resolveDurationUnit, tileByUnit } from "../../internal/index.js";
|
|
3
|
+
import { frameInstant, resolveDurationUnit, tileByUnit } from "../../internal/index.js";
|
|
4
4
|
import { exceedsPieceLimit, resolveMaxPieces } from "../../internal/maxPieces.js";
|
|
5
5
|
import { resolveUnixIntervalPair } from "../../internal/resolveUnixIntervalPair.js";
|
|
6
6
|
import { minSlicesForSpan, stepNoFinerThan } from "../../internal/splitStep.js";
|
|
@@ -37,6 +37,12 @@ import { toUnixEpoch } from "../../internal/unixEpochValue.js";
|
|
|
37
37
|
* - Accepts singular or plural units (`"day"` and `"days"` behave identically).
|
|
38
38
|
* - A split into more than `options.maxPieces` slices returns `[]`, decided from the span before
|
|
39
39
|
* stepping where it can be, and otherwise as soon as slice `maxPieces + 1` is due.
|
|
40
|
+
* - **Limit at an offset with seconds.** The instant is placed in the offset's whole-minute zone,
|
|
41
|
+
* moved by its seconds, and the moved instant must be inside Temporal's range. So within the
|
|
42
|
+
* offset's seconds (under a minute) of the last instant Temporal supports
|
|
43
|
+
* (`+275760-09-13T00:00:00Z`) for an offset east of UTC, or of the first
|
|
44
|
+
* (`-271821-04-20T00:00:00Z`) for one west, this returns `[]`. An offset to the minute has no
|
|
45
|
+
* such limit.
|
|
40
46
|
*
|
|
41
47
|
* @param start Unix epoch in `epochUnit` — interval start
|
|
42
48
|
* @param end Unix epoch in `epochUnit` — interval end
|
|
@@ -69,7 +75,7 @@ export function splitIntervalByUnitUnix(start, end, unit, amount, options) {
|
|
|
69
75
|
if (maxPieces === null) {
|
|
70
76
|
return [];
|
|
71
77
|
}
|
|
72
|
-
const { startVal, endVal, epochUnit } = pair;
|
|
78
|
+
const { startVal, endVal, epochUnit, frame } = pair;
|
|
73
79
|
// Temporal's plural duration field name, as the tiling steps add `{ [unit]: amount }`. A step
|
|
74
80
|
// finer than the epoch unit would floor neighbouring boundaries to one value (an empty slice),
|
|
75
81
|
// so it steps by one epoch unit instead.
|
|
@@ -77,8 +83,8 @@ export function splitIntervalByUnitUnix(start, end, unit, amount, options) {
|
|
|
77
83
|
if (startVal.epochNanoseconds === endVal.epochNanoseconds) {
|
|
78
84
|
return [
|
|
79
85
|
{
|
|
80
|
-
start: toUnixEpoch(startVal, epochUnit),
|
|
81
|
-
end: toUnixEpoch(endVal, epochUnit),
|
|
86
|
+
start: toUnixEpoch(frameInstant(startVal, frame), epochUnit),
|
|
87
|
+
end: toUnixEpoch(frameInstant(endVal, frame), epochUnit),
|
|
82
88
|
},
|
|
83
89
|
];
|
|
84
90
|
}
|
|
@@ -90,8 +96,8 @@ export function splitIntervalByUnitUnix(start, end, unit, amount, options) {
|
|
|
90
96
|
// Boundaries stay ZonedDateTime (nanosecond) values; only the output is floored to epochUnit.
|
|
91
97
|
const slices = tileByUnit(startVal, endVal, Temporal.ZonedDateTime.compare, resolvedUnit, stepAmount, maxPieces);
|
|
92
98
|
return (slices ?? []).map(([sliceStart, sliceEnd]) => ({
|
|
93
|
-
start: toUnixEpoch(sliceStart, epochUnit),
|
|
94
|
-
end: toUnixEpoch(sliceEnd, epochUnit),
|
|
99
|
+
start: toUnixEpoch(frameInstant(sliceStart, frame), epochUnit),
|
|
100
|
+
end: toUnixEpoch(frameInstant(sliceEnd, frame), epochUnit),
|
|
95
101
|
}));
|
|
96
102
|
}
|
|
97
103
|
catch {
|
|
@@ -24,8 +24,10 @@ export declare function parseDateFromUnix(value: number | string, options?: {
|
|
|
24
24
|
*/
|
|
25
25
|
epochUnit?: UnixUnit;
|
|
26
26
|
/**
|
|
27
|
-
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset
|
|
28
|
-
*
|
|
27
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset (a time zone
|
|
28
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
29
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
30
|
+
* `""`.
|
|
29
31
|
*
|
|
30
32
|
* @defaultValue `"UTC"`
|
|
31
33
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { unixWallClock } from "../../internal/unixWallClock.js";
|
|
2
2
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
3
3
|
/**
|
|
4
4
|
* Extract the date portion from a unix epoch value.
|
|
@@ -21,8 +21,8 @@ export function parseDateFromUnix(value, options) {
|
|
|
21
21
|
if (!isOptionsArgument(options)) {
|
|
22
22
|
return "";
|
|
23
23
|
}
|
|
24
|
-
const
|
|
25
|
-
return
|
|
24
|
+
const wallClock = unixWallClock(value, options);
|
|
25
|
+
return wallClock === null ? "" : wallClock.toPlainDate().toString();
|
|
26
26
|
}
|
|
27
27
|
catch {
|
|
28
28
|
// Never throws (Core Rule 3): a hostile
|
|
@@ -23,8 +23,10 @@ export declare function parseDayFromUnix(value: number | string, options?: {
|
|
|
23
23
|
*/
|
|
24
24
|
epochUnit?: UnixUnit;
|
|
25
25
|
/**
|
|
26
|
-
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset
|
|
27
|
-
*
|
|
26
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset (a time zone
|
|
27
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
28
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
29
|
+
* `""`.
|
|
28
30
|
*
|
|
29
31
|
* @defaultValue `"UTC"`
|
|
30
32
|
*/
|