@northguild/gmt 1.14.2
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/LICENSE +21 -0
- package/README.md +1626 -0
- package/dist/duration/calculate/absDuration.d.ts +20 -0
- package/dist/duration/calculate/absDuration.js +32 -0
- package/dist/duration/calculate/addDuration.d.ts +20 -0
- package/dist/duration/calculate/addDuration.js +32 -0
- package/dist/duration/calculate/durationAs.d.ts +38 -0
- package/dist/duration/calculate/durationAs.js +52 -0
- package/dist/duration/calculate/getDurationSign.d.ts +22 -0
- package/dist/duration/calculate/getDurationSign.js +34 -0
- package/dist/duration/calculate/getDurationUnit.d.ts +31 -0
- package/dist/duration/calculate/getDurationUnit.js +43 -0
- package/dist/duration/calculate/index.d.ts +7 -0
- package/dist/duration/calculate/index.js +7 -0
- package/dist/duration/calculate/negateDuration.d.ts +20 -0
- package/dist/duration/calculate/negateDuration.js +32 -0
- package/dist/duration/calculate/subtractDuration.d.ts +21 -0
- package/dist/duration/calculate/subtractDuration.js +33 -0
- package/dist/duration/compare/compareDurations.d.ts +37 -0
- package/dist/duration/compare/compareDurations.js +49 -0
- package/dist/duration/compare/index.d.ts +1 -0
- package/dist/duration/compare/index.js +1 -0
- package/dist/duration/format/formatDuration.d.ts +37 -0
- package/dist/duration/format/formatDuration.js +93 -0
- package/dist/duration/format/index.d.ts +1 -0
- package/dist/duration/format/index.js +1 -0
- package/dist/duration/index.d.ts +6 -0
- package/dist/duration/index.js +6 -0
- package/dist/duration/normalize/index.d.ts +1 -0
- package/dist/duration/normalize/index.js +1 -0
- package/dist/duration/normalize/normalizeDuration.d.ts +36 -0
- package/dist/duration/normalize/normalizeDuration.js +49 -0
- package/dist/duration/parse/index.d.ts +1 -0
- package/dist/duration/parse/index.js +1 -0
- package/dist/duration/parse/parseDuration.d.ts +24 -0
- package/dist/duration/parse/parseDuration.js +35 -0
- package/dist/duration/validate/index.d.ts +1 -0
- package/dist/duration/validate/index.js +1 -0
- package/dist/duration/validate/isValidDuration.d.ts +16 -0
- package/dist/duration/validate/isValidDuration.js +28 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -0
- package/dist/internal/adjustZonedBusinessDays.d.ts +1 -0
- package/dist/internal/adjustZonedBusinessDays.js +16 -0
- package/dist/internal/advanceBusinessDays.d.ts +2 -0
- package/dist/internal/advanceBusinessDays.js +15 -0
- package/dist/internal/advanceToWeekday.d.ts +12 -0
- package/dist/internal/advanceToWeekday.js +24 -0
- package/dist/internal/calendarDatePairPolicy.d.ts +25 -0
- package/dist/internal/calendarDatePairPolicy.js +33 -0
- package/dist/internal/calendarDateString.d.ts +65 -0
- package/dist/internal/calendarDateString.js +103 -0
- package/dist/internal/calendarSystemIds.d.ts +4 -0
- package/dist/internal/calendarSystemIds.js +55 -0
- package/dist/internal/calendarValueOfDate.d.ts +22 -0
- package/dist/internal/calendarValueOfDate.js +41 -0
- package/dist/internal/calendarValueOfZoned.d.ts +38 -0
- package/dist/internal/calendarValueOfZoned.js +58 -0
- package/dist/internal/calendarZonedPairPolicy.d.ts +31 -0
- package/dist/internal/calendarZonedPairPolicy.js +39 -0
- package/dist/internal/calendarZonedString.d.ts +77 -0
- package/dist/internal/calendarZonedString.js +120 -0
- package/dist/internal/cycleFieldValue.d.ts +30 -0
- package/dist/internal/cycleFieldValue.js +48 -0
- package/dist/internal/dateCycleFieldBounds.d.ts +25 -0
- package/dist/internal/dateCycleFieldBounds.js +27 -0
- package/dist/internal/dateTimeUnitHelpers.d.ts +27 -0
- package/dist/internal/dateTimeUnitHelpers.js +50 -0
- package/dist/internal/dateUnitHelpers.d.ts +23 -0
- package/dist/internal/dateUnitHelpers.js +46 -0
- package/dist/internal/durationUntilString.d.ts +17 -0
- package/dist/internal/durationUntilString.js +13 -0
- package/dist/internal/englishCalendarNames.d.ts +2 -0
- package/dist/internal/englishCalendarNames.js +30 -0
- package/dist/internal/ethiopicFamilyCalendar.d.ts +47 -0
- package/dist/internal/ethiopicFamilyCalendar.js +136 -0
- package/dist/internal/formatDateInCalendar.d.ts +47 -0
- package/dist/internal/formatDateInCalendar.js +54 -0
- package/dist/internal/getLocaleFirstDayOfWeek.d.ts +11 -0
- package/dist/internal/getLocaleFirstDayOfWeek.js +26 -0
- package/dist/internal/getLocaleMinimalDaysInFirstWeek.d.ts +20 -0
- package/dist/internal/getLocaleMinimalDaysInFirstWeek.js +31 -0
- package/dist/internal/getLocaleWeekYearBounds.d.ts +19 -0
- package/dist/internal/getLocaleWeekYearBounds.js +44 -0
- package/dist/internal/getLocaleWeekendDays.d.ts +22 -0
- package/dist/internal/getLocaleWeekendDays.js +20 -0
- package/dist/internal/hasCalendarAnnotation.d.ts +27 -0
- package/dist/internal/hasCalendarAnnotation.js +29 -0
- package/dist/internal/index.d.ts +34 -0
- package/dist/internal/index.js +34 -0
- package/dist/internal/intervalCountHelpers.d.ts +26 -0
- package/dist/internal/intervalCountHelpers.js +62 -0
- package/dist/internal/isValidAmount.d.ts +9 -0
- package/dist/internal/isValidAmount.js +11 -0
- package/dist/internal/isValidDayOfWeek.d.ts +11 -0
- package/dist/internal/isValidDayOfWeek.js +13 -0
- package/dist/internal/joinDateTimeConnector.d.ts +37 -0
- package/dist/internal/joinDateTimeConnector.js +85 -0
- package/dist/internal/monthGridWeekRow.d.ts +12 -0
- package/dist/internal/monthGridWeekRow.js +14 -0
- package/dist/internal/normalizeDateTime.d.ts +14 -0
- package/dist/internal/normalizeDateTime.js +34 -0
- package/dist/internal/normalizeTimeZone.d.ts +14 -0
- package/dist/internal/normalizeTimeZone.js +22 -0
- package/dist/internal/patternToken.d.ts +45 -0
- package/dist/internal/patternToken.js +385 -0
- package/dist/internal/resolveDateTimeUnit.d.ts +11 -0
- package/dist/internal/resolveDateTimeUnit.js +23 -0
- package/dist/internal/resolveDurationRelativeTo.d.ts +29 -0
- package/dist/internal/resolveDurationRelativeTo.js +35 -0
- package/dist/internal/resolveDurationUnit.d.ts +10 -0
- package/dist/internal/resolveDurationUnit.js +23 -0
- package/dist/internal/resolveOverflow.d.ts +10 -0
- package/dist/internal/resolveOverflow.js +11 -0
- package/dist/internal/resolveRelativeRounding.d.ts +19 -0
- package/dist/internal/resolveRelativeRounding.js +20 -0
- package/dist/internal/resolveUnixTimeZone.d.ts +20 -0
- package/dist/internal/resolveUnixTimeZone.js +30 -0
- package/dist/internal/timeCycleFieldBounds.d.ts +16 -0
- package/dist/internal/timeCycleFieldBounds.js +24 -0
- package/dist/internal/toInstantFromUtc.d.ts +2 -0
- package/dist/internal/toInstantFromUtc.js +11 -0
- package/dist/plain/calculate/addBusinessDays.d.ts +17 -0
- package/dist/plain/calculate/addBusinessDays.js +35 -0
- package/dist/plain/calculate/addDate.d.ts +35 -0
- package/dist/plain/calculate/addDate.js +55 -0
- package/dist/plain/calculate/addDateTime.d.ts +22 -0
- package/dist/plain/calculate/addDateTime.js +38 -0
- package/dist/plain/calculate/addTime.d.ts +22 -0
- package/dist/plain/calculate/addTime.js +38 -0
- package/dist/plain/calculate/clampDate.d.ts +20 -0
- package/dist/plain/calculate/clampDate.js +46 -0
- package/dist/plain/calculate/closestDateTo.d.ts +18 -0
- package/dist/plain/calculate/closestDateTo.js +43 -0
- package/dist/plain/calculate/cycleDate.d.ts +44 -0
- package/dist/plain/calculate/cycleDate.js +56 -0
- package/dist/plain/calculate/cycleDateTime.d.ts +38 -0
- package/dist/plain/calculate/cycleDateTime.js +52 -0
- package/dist/plain/calculate/cycleTime.d.ts +38 -0
- package/dist/plain/calculate/cycleTime.js +50 -0
- package/dist/plain/calculate/diffDate.d.ts +32 -0
- package/dist/plain/calculate/diffDate.js +64 -0
- package/dist/plain/calculate/diffDateAsDuration.d.ts +36 -0
- package/dist/plain/calculate/diffDateAsDuration.js +49 -0
- package/dist/plain/calculate/diffDateTime.d.ts +25 -0
- package/dist/plain/calculate/diffDateTime.js +57 -0
- package/dist/plain/calculate/diffDateTimeAsDuration.d.ts +33 -0
- package/dist/plain/calculate/diffDateTimeAsDuration.js +48 -0
- package/dist/plain/calculate/diffTime.d.ts +25 -0
- package/dist/plain/calculate/diffTime.js +56 -0
- package/dist/plain/calculate/endOfDate.d.ts +17 -0
- package/dist/plain/calculate/endOfDate.js +51 -0
- package/dist/plain/calculate/endOfDateTime.d.ts +19 -0
- package/dist/plain/calculate/endOfDateTime.js +138 -0
- package/dist/plain/calculate/endOfQuarterForDate.d.ts +17 -0
- package/dist/plain/calculate/endOfQuarterForDate.js +34 -0
- package/dist/plain/calculate/endOfQuarterForDateTime.d.ts +15 -0
- package/dist/plain/calculate/endOfQuarterForDateTime.js +48 -0
- package/dist/plain/calculate/endOfTime.d.ts +20 -0
- package/dist/plain/calculate/endOfTime.js +91 -0
- package/dist/plain/calculate/getDayOfYear.d.ts +16 -0
- package/dist/plain/calculate/getDayOfYear.js +28 -0
- package/dist/plain/calculate/getDaysInMonth.d.ts +16 -0
- package/dist/plain/calculate/getDaysInMonth.js +28 -0
- package/dist/plain/calculate/getDaysInYear.d.ts +14 -0
- package/dist/plain/calculate/getDaysInYear.js +26 -0
- package/dist/plain/calculate/getLargestDateDurationUnit.d.ts +16 -0
- package/dist/plain/calculate/getLargestDateDurationUnit.js +24 -0
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.d.ts +16 -0
- package/dist/plain/calculate/getLargestDateTimeDurationUnit.js +35 -0
- package/dist/plain/calculate/getLargestTimeDurationUnit.d.ts +16 -0
- package/dist/plain/calculate/getLargestTimeDurationUnit.js +31 -0
- package/dist/plain/calculate/getLocaleDayOfWeek.d.ts +20 -0
- package/dist/plain/calculate/getLocaleDayOfWeek.js +36 -0
- package/dist/plain/calculate/getLocaleEndOfWeek.d.ts +23 -0
- package/dist/plain/calculate/getLocaleEndOfWeek.js +40 -0
- package/dist/plain/calculate/getLocaleStartOfWeek.d.ts +23 -0
- package/dist/plain/calculate/getLocaleStartOfWeek.js +40 -0
- package/dist/plain/calculate/getLocaleWeekYear.d.ts +28 -0
- package/dist/plain/calculate/getLocaleWeekYear.js +45 -0
- package/dist/plain/calculate/getQuarterForDate.d.ts +17 -0
- package/dist/plain/calculate/getQuarterForDate.js +30 -0
- package/dist/plain/calculate/getQuarterForDateTime.d.ts +17 -0
- package/dist/plain/calculate/getQuarterForDateTime.js +30 -0
- package/dist/plain/calculate/getWeekNumber.d.ts +17 -0
- package/dist/plain/calculate/getWeekNumber.js +39 -0
- package/dist/plain/calculate/getWeekOfMonth.d.ts +26 -0
- package/dist/plain/calculate/getWeekOfMonth.js +43 -0
- package/dist/plain/calculate/getWeekYear.d.ts +21 -0
- package/dist/plain/calculate/getWeekYear.js +33 -0
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.d.ts +24 -0
- package/dist/plain/calculate/getWeeksInLocaleWeekYear.js +43 -0
- package/dist/plain/calculate/getWeeksInMonth.d.ts +23 -0
- package/dist/plain/calculate/getWeeksInMonth.js +40 -0
- package/dist/plain/calculate/getWeeksInYear.d.ts +23 -0
- package/dist/plain/calculate/getWeeksInYear.js +43 -0
- package/dist/plain/calculate/index.d.ts +64 -0
- package/dist/plain/calculate/index.js +64 -0
- package/dist/plain/calculate/maxDate.d.ts +13 -0
- package/dist/plain/calculate/maxDate.js +33 -0
- package/dist/plain/calculate/maxDateTime.d.ts +13 -0
- package/dist/plain/calculate/maxDateTime.js +33 -0
- package/dist/plain/calculate/maxTime.d.ts +13 -0
- package/dist/plain/calculate/maxTime.js +33 -0
- package/dist/plain/calculate/minDate.d.ts +13 -0
- package/dist/plain/calculate/minDate.js +33 -0
- package/dist/plain/calculate/minDateTime.d.ts +13 -0
- package/dist/plain/calculate/minDateTime.js +33 -0
- package/dist/plain/calculate/minTime.d.ts +13 -0
- package/dist/plain/calculate/minTime.js +33 -0
- package/dist/plain/calculate/nextWeekday.d.ts +36 -0
- package/dist/plain/calculate/nextWeekday.js +47 -0
- package/dist/plain/calculate/previousWeekday.d.ts +36 -0
- package/dist/plain/calculate/previousWeekday.js +47 -0
- package/dist/plain/calculate/roundDate.d.ts +26 -0
- package/dist/plain/calculate/roundDate.js +72 -0
- package/dist/plain/calculate/roundDateTime.d.ts +26 -0
- package/dist/plain/calculate/roundDateTime.js +98 -0
- package/dist/plain/calculate/roundTime.d.ts +22 -0
- package/dist/plain/calculate/roundTime.js +42 -0
- package/dist/plain/calculate/setDate.d.ts +32 -0
- package/dist/plain/calculate/setDate.js +47 -0
- package/dist/plain/calculate/setDateTime.d.ts +31 -0
- package/dist/plain/calculate/setDateTime.js +46 -0
- package/dist/plain/calculate/setTime.d.ts +31 -0
- package/dist/plain/calculate/setTime.js +46 -0
- package/dist/plain/calculate/sortDateTimes.d.ts +14 -0
- package/dist/plain/calculate/sortDateTimes.js +33 -0
- package/dist/plain/calculate/sortDates.d.ts +14 -0
- package/dist/plain/calculate/sortDates.js +33 -0
- package/dist/plain/calculate/sortTimes.d.ts +14 -0
- package/dist/plain/calculate/sortTimes.js +33 -0
- package/dist/plain/calculate/startOfDate.d.ts +17 -0
- package/dist/plain/calculate/startOfDate.js +50 -0
- package/dist/plain/calculate/startOfDateTime.d.ts +19 -0
- package/dist/plain/calculate/startOfDateTime.js +85 -0
- package/dist/plain/calculate/startOfQuarterForDate.d.ts +17 -0
- package/dist/plain/calculate/startOfQuarterForDate.js +32 -0
- package/dist/plain/calculate/startOfQuarterForDateTime.d.ts +15 -0
- package/dist/plain/calculate/startOfQuarterForDateTime.js +32 -0
- package/dist/plain/calculate/startOfTime.d.ts +20 -0
- package/dist/plain/calculate/startOfTime.js +69 -0
- package/dist/plain/calculate/subtractBusinessDays.d.ts +18 -0
- package/dist/plain/calculate/subtractBusinessDays.js +36 -0
- package/dist/plain/calculate/subtractDate.d.ts +27 -0
- package/dist/plain/calculate/subtractDate.js +47 -0
- package/dist/plain/calculate/subtractDateTime.d.ts +22 -0
- package/dist/plain/calculate/subtractDateTime.js +38 -0
- package/dist/plain/calculate/subtractTime.d.ts +22 -0
- package/dist/plain/calculate/subtractTime.js +38 -0
- package/dist/plain/calculate/weekOfYear.d.ts +30 -0
- package/dist/plain/calculate/weekOfYear.js +57 -0
- package/dist/plain/chop/chopDate.d.ts +13 -0
- package/dist/plain/chop/chopDate.js +24 -0
- package/dist/plain/chop/chopMilliseconds.d.ts +15 -0
- package/dist/plain/chop/chopMilliseconds.js +34 -0
- package/dist/plain/chop/chopSeconds.d.ts +15 -0
- package/dist/plain/chop/chopSeconds.js +34 -0
- package/dist/plain/chop/chopTime.d.ts +13 -0
- package/dist/plain/chop/chopTime.js +24 -0
- package/dist/plain/chop/index.d.ts +5 -0
- package/dist/plain/chop/index.js +5 -0
- package/dist/plain/compare/areDateTimesEqual.d.ts +15 -0
- package/dist/plain/compare/areDateTimesEqual.js +37 -0
- package/dist/plain/compare/areDateTimesEqualBy.d.ts +37 -0
- package/dist/plain/compare/areDateTimesEqualBy.js +49 -0
- package/dist/plain/compare/areDatesEqual.d.ts +17 -0
- package/dist/plain/compare/areDatesEqual.js +33 -0
- package/dist/plain/compare/areDatesEqualBy.d.ts +34 -0
- package/dist/plain/compare/areDatesEqualBy.js +54 -0
- package/dist/plain/compare/areTimesEqual.d.ts +18 -0
- package/dist/plain/compare/areTimesEqual.js +37 -0
- package/dist/plain/compare/index.d.ts +20 -0
- package/dist/plain/compare/index.js +20 -0
- package/dist/plain/compare/isAfterDate.d.ts +16 -0
- package/dist/plain/compare/isAfterDate.js +28 -0
- package/dist/plain/compare/isAfterDateTime.d.ts +17 -0
- package/dist/plain/compare/isAfterDateTime.js +29 -0
- package/dist/plain/compare/isAfterTime.d.ts +17 -0
- package/dist/plain/compare/isAfterTime.js +29 -0
- package/dist/plain/compare/isBeforeDate.d.ts +17 -0
- package/dist/plain/compare/isBeforeDate.js +29 -0
- package/dist/plain/compare/isBeforeDateTime.d.ts +17 -0
- package/dist/plain/compare/isBeforeDateTime.js +29 -0
- package/dist/plain/compare/isBeforeTime.d.ts +17 -0
- package/dist/plain/compare/isBeforeTime.js +29 -0
- package/dist/plain/compare/isBetweenDate.d.ts +26 -0
- package/dist/plain/compare/isBetweenDate.js +49 -0
- package/dist/plain/compare/isBetweenDateTime.d.ts +26 -0
- package/dist/plain/compare/isBetweenDateTime.js +51 -0
- package/dist/plain/compare/isBetweenTime.d.ts +28 -0
- package/dist/plain/compare/isBetweenTime.js +51 -0
- package/dist/plain/compare/isBusinessDay.d.ts +21 -0
- package/dist/plain/compare/isBusinessDay.js +33 -0
- package/dist/plain/compare/isFuture.d.ts +21 -0
- package/dist/plain/compare/isFuture.js +33 -0
- package/dist/plain/compare/isPast.d.ts +21 -0
- package/dist/plain/compare/isPast.js +33 -0
- package/dist/plain/compare/isRelativeDay.d.ts +32 -0
- package/dist/plain/compare/isRelativeDay.js +49 -0
- package/dist/plain/compare/isThisUnit.d.ts +35 -0
- package/dist/plain/compare/isThisUnit.js +52 -0
- package/dist/plain/compare/isWeekend.d.ts +21 -0
- package/dist/plain/compare/isWeekend.js +37 -0
- package/dist/plain/convert/convertDateToCalendar.d.ts +44 -0
- package/dist/plain/convert/convertDateToCalendar.js +59 -0
- package/dist/plain/convert/index.d.ts +1 -0
- package/dist/plain/convert/index.js +1 -0
- package/dist/plain/format/formatCalendar.d.ts +43 -0
- package/dist/plain/format/formatCalendar.js +70 -0
- package/dist/plain/format/formatDate.d.ts +17 -0
- package/dist/plain/format/formatDate.js +31 -0
- package/dist/plain/format/formatDateRange.d.ts +19 -0
- package/dist/plain/format/formatDateRange.js +33 -0
- package/dist/plain/format/formatDateTime.d.ts +17 -0
- package/dist/plain/format/formatDateTime.js +31 -0
- package/dist/plain/format/formatDateTimeRange.d.ts +19 -0
- package/dist/plain/format/formatDateTimeRange.js +33 -0
- package/dist/plain/format/formatDateTimeToParts.d.ts +28 -0
- package/dist/plain/format/formatDateTimeToParts.js +48 -0
- package/dist/plain/format/formatDateToParts.d.ts +27 -0
- package/dist/plain/format/formatDateToParts.js +47 -0
- package/dist/plain/format/formatRelativeDate.d.ts +32 -0
- package/dist/plain/format/formatRelativeDate.js +57 -0
- package/dist/plain/format/formatRelativeDateTime.d.ts +32 -0
- package/dist/plain/format/formatRelativeDateTime.js +57 -0
- package/dist/plain/format/formatRelativeTime.d.ts +32 -0
- package/dist/plain/format/formatRelativeTime.js +49 -0
- package/dist/plain/format/formatSql.d.ts +20 -0
- package/dist/plain/format/formatSql.js +31 -0
- package/dist/plain/format/formatTime.d.ts +17 -0
- package/dist/plain/format/formatTime.js +31 -0
- package/dist/plain/format/index.d.ts +12 -0
- package/dist/plain/format/index.js +12 -0
- package/dist/plain/get/getDay.d.ts +13 -0
- package/dist/plain/get/getDay.js +27 -0
- package/dist/plain/get/getDayOfWeek.d.ts +13 -0
- package/dist/plain/get/getDayOfWeek.js +26 -0
- package/dist/plain/get/getHour.d.ts +13 -0
- package/dist/plain/get/getHour.js +27 -0
- package/dist/plain/get/getMicrosecond.d.ts +13 -0
- package/dist/plain/get/getMicrosecond.js +27 -0
- package/dist/plain/get/getMillisecond.d.ts +13 -0
- package/dist/plain/get/getMillisecond.js +27 -0
- package/dist/plain/get/getMinute.d.ts +13 -0
- package/dist/plain/get/getMinute.js +27 -0
- package/dist/plain/get/getMonth.d.ts +13 -0
- package/dist/plain/get/getMonth.js +27 -0
- package/dist/plain/get/getNanosecond.d.ts +13 -0
- package/dist/plain/get/getNanosecond.js +27 -0
- package/dist/plain/get/getNow.d.ts +11 -0
- package/dist/plain/get/getNow.js +24 -0
- package/dist/plain/get/getNowUnit.d.ts +27 -0
- package/dist/plain/get/getNowUnit.js +72 -0
- package/dist/plain/get/getSecond.d.ts +13 -0
- package/dist/plain/get/getSecond.js +27 -0
- package/dist/plain/get/getToday.d.ts +11 -0
- package/dist/plain/get/getToday.js +24 -0
- package/dist/plain/get/getWeekOfYear.d.ts +13 -0
- package/dist/plain/get/getWeekOfYear.js +32 -0
- package/dist/plain/get/getYear.d.ts +13 -0
- package/dist/plain/get/getYear.js +27 -0
- package/dist/plain/get/index.d.ts +14 -0
- package/dist/plain/get/index.js +14 -0
- package/dist/plain/index.d.ts +12 -0
- package/dist/plain/index.js +13 -0
- package/dist/plain/interval/index.d.ts +51 -0
- package/dist/plain/interval/index.js +51 -0
- package/dist/plain/interval/intervalAbutsDate.d.ts +26 -0
- package/dist/plain/interval/intervalAbutsDate.js +68 -0
- package/dist/plain/interval/intervalAbutsDateTime.d.ts +22 -0
- package/dist/plain/interval/intervalAbutsDateTime.js +63 -0
- package/dist/plain/interval/intervalAbutsTime.d.ts +22 -0
- package/dist/plain/interval/intervalAbutsTime.js +63 -0
- package/dist/plain/interval/intervalContainsDate.d.ts +26 -0
- package/dist/plain/interval/intervalContainsDate.js +63 -0
- package/dist/plain/interval/intervalContainsDateTime.d.ts +24 -0
- package/dist/plain/interval/intervalContainsDateTime.js +60 -0
- package/dist/plain/interval/intervalContainsTime.d.ts +24 -0
- package/dist/plain/interval/intervalContainsTime.js +60 -0
- package/dist/plain/interval/intervalCountDate.d.ts +31 -0
- package/dist/plain/interval/intervalCountDate.js +62 -0
- package/dist/plain/interval/intervalCountDateTime.d.ts +26 -0
- package/dist/plain/interval/intervalCountDateTime.js +73 -0
- package/dist/plain/interval/intervalCountTime.d.ts +26 -0
- package/dist/plain/interval/intervalCountTime.js +67 -0
- package/dist/plain/interval/intervalDifferenceDate.d.ts +30 -0
- package/dist/plain/interval/intervalDifferenceDate.js +87 -0
- package/dist/plain/interval/intervalDifferenceDateTime.d.ts +24 -0
- package/dist/plain/interval/intervalDifferenceDateTime.js +69 -0
- package/dist/plain/interval/intervalDifferenceTime.d.ts +25 -0
- package/dist/plain/interval/intervalDifferenceTime.js +70 -0
- package/dist/plain/interval/intervalDivideEquallyDate.d.ts +33 -0
- package/dist/plain/interval/intervalDivideEquallyDate.js +70 -0
- package/dist/plain/interval/intervalDivideEquallyDateTime.d.ts +27 -0
- package/dist/plain/interval/intervalDivideEquallyDateTime.js +62 -0
- package/dist/plain/interval/intervalDivideEquallyTime.d.ts +28 -0
- package/dist/plain/interval/intervalDivideEquallyTime.js +63 -0
- package/dist/plain/interval/intervalEngulfsDate.d.ts +24 -0
- package/dist/plain/interval/intervalEngulfsDate.js +57 -0
- package/dist/plain/interval/intervalEngulfsDateTime.d.ts +22 -0
- package/dist/plain/interval/intervalEngulfsDateTime.js +54 -0
- package/dist/plain/interval/intervalEngulfsTime.d.ts +22 -0
- package/dist/plain/interval/intervalEngulfsTime.js +54 -0
- package/dist/plain/interval/intervalFromDurationDate.d.ts +39 -0
- package/dist/plain/interval/intervalFromDurationDate.js +71 -0
- package/dist/plain/interval/intervalFromDurationDateTime.d.ts +33 -0
- package/dist/plain/interval/intervalFromDurationDateTime.js +58 -0
- package/dist/plain/interval/intervalFromDurationTime.d.ts +38 -0
- package/dist/plain/interval/intervalFromDurationTime.js +69 -0
- package/dist/plain/interval/intervalIntersectionDate.d.ts +28 -0
- package/dist/plain/interval/intervalIntersectionDate.js +70 -0
- package/dist/plain/interval/intervalIntersectionDateTime.d.ts +23 -0
- package/dist/plain/interval/intervalIntersectionDateTime.js +57 -0
- package/dist/plain/interval/intervalIntersectionTime.d.ts +24 -0
- package/dist/plain/interval/intervalIntersectionTime.js +58 -0
- package/dist/plain/interval/intervalLengthDate.d.ts +31 -0
- package/dist/plain/interval/intervalLengthDate.js +56 -0
- package/dist/plain/interval/intervalLengthDateTime.d.ts +24 -0
- package/dist/plain/interval/intervalLengthDateTime.js +50 -0
- package/dist/plain/interval/intervalLengthTime.d.ts +23 -0
- package/dist/plain/interval/intervalLengthTime.js +49 -0
- package/dist/plain/interval/intervalOverlappingDaysDate.d.ts +33 -0
- package/dist/plain/interval/intervalOverlappingDaysDate.js +78 -0
- package/dist/plain/interval/intervalOverlappingDaysDateTime.d.ts +28 -0
- package/dist/plain/interval/intervalOverlappingDaysDateTime.js +67 -0
- package/dist/plain/interval/intervalSplitAtDate.d.ts +34 -0
- package/dist/plain/interval/intervalSplitAtDate.js +73 -0
- package/dist/plain/interval/intervalSplitAtDateTime.d.ts +28 -0
- package/dist/plain/interval/intervalSplitAtDateTime.js +62 -0
- package/dist/plain/interval/intervalSplitAtTime.d.ts +30 -0
- package/dist/plain/interval/intervalSplitAtTime.js +64 -0
- package/dist/plain/interval/intervalUnionDate.d.ts +29 -0
- package/dist/plain/interval/intervalUnionDate.js +71 -0
- package/dist/plain/interval/intervalUnionDateTime.d.ts +24 -0
- package/dist/plain/interval/intervalUnionDateTime.js +58 -0
- package/dist/plain/interval/intervalUnionTime.d.ts +24 -0
- package/dist/plain/interval/intervalUnionTime.js +58 -0
- package/dist/plain/interval/intervalXorAllDate.d.ts +35 -0
- package/dist/plain/interval/intervalXorAllDate.js +89 -0
- package/dist/plain/interval/intervalXorAllDateTime.d.ts +29 -0
- package/dist/plain/interval/intervalXorAllDateTime.js +77 -0
- package/dist/plain/interval/intervalXorAllTime.d.ts +28 -0
- package/dist/plain/interval/intervalXorAllTime.js +76 -0
- package/dist/plain/interval/intervalXorDate.d.ts +30 -0
- package/dist/plain/interval/intervalXorDate.js +106 -0
- package/dist/plain/interval/intervalXorDateTime.d.ts +25 -0
- package/dist/plain/interval/intervalXorDateTime.js +90 -0
- package/dist/plain/interval/intervalXorTime.d.ts +26 -0
- package/dist/plain/interval/intervalXorTime.js +91 -0
- package/dist/plain/interval/intervalsOverlapDate.d.ts +23 -0
- package/dist/plain/interval/intervalsOverlapDate.js +56 -0
- package/dist/plain/interval/intervalsOverlapDateTime.d.ts +20 -0
- package/dist/plain/interval/intervalsOverlapDateTime.js +52 -0
- package/dist/plain/interval/intervalsOverlapTime.d.ts +21 -0
- package/dist/plain/interval/intervalsOverlapTime.js +53 -0
- package/dist/plain/interval/mergeIntervalsDate.d.ts +31 -0
- package/dist/plain/interval/mergeIntervalsDate.js +67 -0
- package/dist/plain/interval/mergeIntervalsDateTime.d.ts +26 -0
- package/dist/plain/interval/mergeIntervalsDateTime.js +58 -0
- package/dist/plain/interval/mergeIntervalsTime.d.ts +26 -0
- package/dist/plain/interval/mergeIntervalsTime.js +57 -0
- package/dist/plain/interval/splitIntervalByUnitDate.d.ts +32 -0
- package/dist/plain/interval/splitIntervalByUnitDate.js +80 -0
- package/dist/plain/interval/splitIntervalByUnitDateTime.d.ts +24 -0
- package/dist/plain/interval/splitIntervalByUnitDateTime.js +72 -0
- package/dist/plain/interval/splitIntervalByUnitTime.d.ts +25 -0
- package/dist/plain/interval/splitIntervalByUnitTime.js +73 -0
- package/dist/plain/interval/validate/index.d.ts +3 -0
- package/dist/plain/interval/validate/index.js +3 -0
- package/dist/plain/interval/validate/isValidDateInterval.d.ts +21 -0
- package/dist/plain/interval/validate/isValidDateInterval.js +37 -0
- package/dist/plain/interval/validate/isValidDateTimeInterval.d.ts +18 -0
- package/dist/plain/interval/validate/isValidDateTimeInterval.js +33 -0
- package/dist/plain/interval/validate/isValidTimeInterval.d.ts +18 -0
- package/dist/plain/interval/validate/isValidTimeInterval.js +48 -0
- package/dist/plain/locale/getLocaleEraNames.d.ts +23 -0
- package/dist/plain/locale/getLocaleEraNames.js +66 -0
- package/dist/plain/locale/getLocaleMeridiems.d.ts +19 -0
- package/dist/plain/locale/getLocaleMeridiems.js +44 -0
- package/dist/plain/locale/getLocaleMonthNames.d.ts +28 -0
- package/dist/plain/locale/getLocaleMonthNames.js +45 -0
- package/dist/plain/locale/getLocaleWeekdayNames.d.ts +25 -0
- package/dist/plain/locale/getLocaleWeekdayNames.js +48 -0
- package/dist/plain/locale/index.d.ts +4 -0
- package/dist/plain/locale/index.js +4 -0
- package/dist/plain/map/index.d.ts +2 -0
- package/dist/plain/map/index.js +2 -0
- package/dist/plain/map/mapDatesInRange.d.ts +19 -0
- package/dist/plain/map/mapDatesInRange.js +46 -0
- package/dist/plain/map/mapDaysInMonth.d.ts +15 -0
- package/dist/plain/map/mapDaysInMonth.js +31 -0
- package/dist/plain/parse/index.d.ts +29 -0
- package/dist/plain/parse/index.js +29 -0
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +85 -0
- package/dist/plain/parse/parseDateTimeWithPattern.js +116 -0
- package/dist/plain/parse/parseDateWithPattern.d.ts +68 -0
- package/dist/plain/parse/parseDateWithPattern.js +91 -0
- package/dist/plain/parse/parseDayFromDate.d.ts +13 -0
- package/dist/plain/parse/parseDayFromDate.js +25 -0
- package/dist/plain/parse/parseDayFromDateTime.d.ts +14 -0
- package/dist/plain/parse/parseDayFromDateTime.js +26 -0
- package/dist/plain/parse/parseDayOfWeekFromDate.d.ts +15 -0
- package/dist/plain/parse/parseDayOfWeekFromDate.js +28 -0
- package/dist/plain/parse/parseDayOfWeekFromDateTime.d.ts +14 -0
- package/dist/plain/parse/parseDayOfWeekFromDateTime.js +27 -0
- package/dist/plain/parse/parseHourFromDateTime.d.ts +14 -0
- package/dist/plain/parse/parseHourFromDateTime.js +26 -0
- package/dist/plain/parse/parseHourFromTime.d.ts +13 -0
- package/dist/plain/parse/parseHourFromTime.js +25 -0
- package/dist/plain/parse/parseMicrosecondFromDateTime.d.ts +14 -0
- package/dist/plain/parse/parseMicrosecondFromDateTime.js +26 -0
- package/dist/plain/parse/parseMicrosecondFromTime.d.ts +11 -0
- package/dist/plain/parse/parseMicrosecondFromTime.js +23 -0
- package/dist/plain/parse/parseMillisecondFromDateTime.d.ts +14 -0
- package/dist/plain/parse/parseMillisecondFromDateTime.js +26 -0
- package/dist/plain/parse/parseMillisecondFromTime.d.ts +14 -0
- package/dist/plain/parse/parseMillisecondFromTime.js +26 -0
- package/dist/plain/parse/parseMinuteFromDateTime.d.ts +14 -0
- package/dist/plain/parse/parseMinuteFromDateTime.js +26 -0
- package/dist/plain/parse/parseMinuteFromTime.d.ts +14 -0
- package/dist/plain/parse/parseMinuteFromTime.js +26 -0
- package/dist/plain/parse/parseMonthFromDate.d.ts +13 -0
- package/dist/plain/parse/parseMonthFromDate.js +25 -0
- package/dist/plain/parse/parseMonthFromDateTime.d.ts +13 -0
- package/dist/plain/parse/parseMonthFromDateTime.js +25 -0
- package/dist/plain/parse/parseNanosecondFromDateTime.d.ts +14 -0
- package/dist/plain/parse/parseNanosecondFromDateTime.js +26 -0
- package/dist/plain/parse/parseNanosecondFromTime.d.ts +14 -0
- package/dist/plain/parse/parseNanosecondFromTime.js +26 -0
- package/dist/plain/parse/parseSecondFromDateTime.d.ts +14 -0
- package/dist/plain/parse/parseSecondFromDateTime.js +26 -0
- package/dist/plain/parse/parseSecondFromTime.d.ts +14 -0
- package/dist/plain/parse/parseSecondFromTime.js +26 -0
- package/dist/plain/parse/parseSql.d.ts +23 -0
- package/dist/plain/parse/parseSql.js +36 -0
- package/dist/plain/parse/parseTimeWithPattern.d.ts +57 -0
- package/dist/plain/parse/parseTimeWithPattern.js +85 -0
- package/dist/plain/parse/parseUnitFromDate.d.ts +23 -0
- package/dist/plain/parse/parseUnitFromDate.js +49 -0
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +22 -0
- package/dist/plain/parse/parseUnitFromDateTime.js +56 -0
- package/dist/plain/parse/parseUnitFromTime.d.ts +18 -0
- package/dist/plain/parse/parseUnitFromTime.js +42 -0
- package/dist/plain/parse/parseWeekFromDate.d.ts +19 -0
- package/dist/plain/parse/parseWeekFromDate.js +30 -0
- package/dist/plain/parse/parseWeekFromDateTime.d.ts +18 -0
- package/dist/plain/parse/parseWeekFromDateTime.js +29 -0
- package/dist/plain/parse/parseYearFromDate.d.ts +13 -0
- package/dist/plain/parse/parseYearFromDate.js +25 -0
- package/dist/plain/parse/parseYearFromDateTime.d.ts +13 -0
- package/dist/plain/parse/parseYearFromDateTime.js +25 -0
- package/dist/plain/validate/index.d.ts +19 -0
- package/dist/plain/validate/index.js +19 -0
- package/dist/plain/validate/isLeapSecond.d.ts +16 -0
- package/dist/plain/validate/isLeapSecond.js +19 -0
- package/dist/plain/validate/isLeapYear.d.ts +14 -0
- package/dist/plain/validate/isLeapYear.js +23 -0
- package/dist/plain/validate/isValidCalendarDate.d.ts +17 -0
- package/dist/plain/validate/isValidCalendarDate.js +29 -0
- package/dist/plain/validate/isValidDate.d.ts +16 -0
- package/dist/plain/validate/isValidDate.js +33 -0
- package/dist/plain/validate/isValidDateCycleField.d.ts +21 -0
- package/dist/plain/validate/isValidDateCycleField.js +25 -0
- package/dist/plain/validate/isValidDateDurationUnit.d.ts +16 -0
- package/dist/plain/validate/isValidDateDurationUnit.js +17 -0
- package/dist/plain/validate/isValidDateRange.d.ts +26 -0
- package/dist/plain/validate/isValidDateRange.js +47 -0
- package/dist/plain/validate/isValidDateTime.d.ts +16 -0
- package/dist/plain/validate/isValidDateTime.js +33 -0
- package/dist/plain/validate/isValidDateTimeCycleField.d.ts +16 -0
- package/dist/plain/validate/isValidDateTimeCycleField.js +19 -0
- package/dist/plain/validate/isValidDateTimeDurationUnit.d.ts +16 -0
- package/dist/plain/validate/isValidDateTimeDurationUnit.js +26 -0
- package/dist/plain/validate/isValidDateTimeRange.d.ts +24 -0
- package/dist/plain/validate/isValidDateTimeRange.js +39 -0
- package/dist/plain/validate/isValidDateTimeUnit.d.ts +19 -0
- package/dist/plain/validate/isValidDateTimeUnit.js +32 -0
- package/dist/plain/validate/isValidDateUnit.d.ts +21 -0
- package/dist/plain/validate/isValidDateUnit.js +25 -0
- package/dist/plain/validate/isValidIsoDateLike.d.ts +17 -0
- package/dist/plain/validate/isValidIsoDateLike.js +43 -0
- package/dist/plain/validate/isValidTime.d.ts +16 -0
- package/dist/plain/validate/isValidTime.js +33 -0
- package/dist/plain/validate/isValidTimeCycleField.d.ts +18 -0
- package/dist/plain/validate/isValidTimeCycleField.js +27 -0
- package/dist/plain/validate/isValidTimeDurationUnit.d.ts +16 -0
- package/dist/plain/validate/isValidTimeDurationUnit.js +22 -0
- package/dist/plain/validate/isValidTimeRange.d.ts +24 -0
- package/dist/plain/validate/isValidTimeRange.js +51 -0
- package/dist/plain/validate/isValidTimeUnit.d.ts +19 -0
- package/dist/plain/validate/isValidTimeUnit.js +28 -0
- package/dist/regex/calendar-date.d.ts +1 -0
- package/dist/regex/calendar-date.js +11 -0
- package/dist/regex/calendar-zoned-date-time.d.ts +1 -0
- package/dist/regex/calendar-zoned-date-time.js +41 -0
- package/dist/regex/date-time.d.ts +1 -0
- package/dist/regex/date-time.js +2 -0
- package/dist/regex/date.d.ts +4 -0
- package/dist/regex/date.js +5 -0
- package/dist/regex/http-date.d.ts +1 -0
- package/dist/regex/http-date.js +7 -0
- package/dist/regex/index.d.ts +13 -0
- package/dist/regex/index.js +13 -0
- package/dist/regex/leap-second.d.ts +1 -0
- package/dist/regex/leap-second.js +2 -0
- package/dist/regex/rfc-2822.d.ts +1 -0
- package/dist/regex/rfc-2822.js +9 -0
- package/dist/regex/rfc-3339.d.ts +1 -0
- package/dist/regex/rfc-3339.js +7 -0
- package/dist/regex/sql-date-time.d.ts +1 -0
- package/dist/regex/sql-date-time.js +7 -0
- package/dist/regex/time-zone-like.d.ts +1 -0
- package/dist/regex/time-zone-like.js +1 -0
- package/dist/regex/time.d.ts +6 -0
- package/dist/regex/time.js +9 -0
- package/dist/regex/unix.d.ts +2 -0
- package/dist/regex/unix.js +2 -0
- package/dist/regex/utc-date-time.d.ts +1 -0
- package/dist/regex/utc-date-time.js +2 -0
- package/dist/types/calendar-system.d.ts +1 -0
- package/dist/types/calendar-system.js +0 -0
- package/dist/types/date-cycle-field.d.ts +1 -0
- package/dist/types/date-cycle-field.js +0 -0
- package/dist/types/date-duration-unit.d.ts +2 -0
- package/dist/types/date-duration-unit.js +0 -0
- package/dist/types/date-time-cycle-field.d.ts +3 -0
- package/dist/types/date-time-cycle-field.js +0 -0
- package/dist/types/date-time-duration-units.d.ts +2 -0
- package/dist/types/date-time-duration-units.js +0 -0
- package/dist/types/date-time-unit.d.ts +2 -0
- package/dist/types/date-time-unit.js +0 -0
- package/dist/types/date-unit.d.ts +2 -0
- package/dist/types/date-unit.js +0 -0
- package/dist/types/disambiguation.d.ts +2 -0
- package/dist/types/disambiguation.js +0 -0
- package/dist/types/duration-relative-to.d.ts +2 -0
- package/dist/types/duration-relative-to.js +0 -0
- package/dist/types/duration-string-options.d.ts +6 -0
- package/dist/types/duration-string-options.js +0 -0
- package/dist/types/fractional-digit.d.ts +1 -0
- package/dist/types/fractional-digit.js +0 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.js +18 -0
- package/dist/types/offset.d.ts +2 -0
- package/dist/types/offset.js +0 -0
- package/dist/types/overflow.d.ts +2 -0
- package/dist/types/overflow.js +0 -0
- package/dist/types/relative-rounding-method.d.ts +1 -0
- package/dist/types/relative-rounding-method.js +0 -0
- package/dist/types/rounding-options.d.ts +6 -0
- package/dist/types/rounding-options.js +0 -0
- package/dist/types/time-cycle-field.d.ts +1 -0
- package/dist/types/time-cycle-field.js +0 -0
- package/dist/types/time-duration-unit.d.ts +2 -0
- package/dist/types/time-duration-unit.js +0 -0
- package/dist/types/time-unit.d.ts +2 -0
- package/dist/types/time-unit.js +0 -0
- package/dist/unix/calculate/addUnix.d.ts +25 -0
- package/dist/unix/calculate/addUnix.js +51 -0
- package/dist/unix/calculate/diffUnix.d.ts +30 -0
- package/dist/unix/calculate/diffUnix.js +66 -0
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +35 -0
- package/dist/unix/calculate/diffUnixAsDuration.js +56 -0
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +23 -0
- package/dist/unix/calculate/endOfQuarterForUnix.js +56 -0
- package/dist/unix/calculate/endOfUnix.d.ts +30 -0
- package/dist/unix/calculate/endOfUnix.js +26 -0
- package/dist/unix/calculate/index.d.ts +14 -0
- package/dist/unix/calculate/index.js +14 -0
- package/dist/unix/calculate/isBetweenUnix.d.ts +23 -0
- package/dist/unix/calculate/isBetweenUnix.js +54 -0
- package/dist/unix/calculate/maxUnix.d.ts +13 -0
- package/dist/unix/calculate/maxUnix.js +21 -0
- package/dist/unix/calculate/minUnix.d.ts +13 -0
- package/dist/unix/calculate/minUnix.js +21 -0
- package/dist/unix/calculate/roundUnix.d.ts +27 -0
- package/dist/unix/calculate/roundUnix.js +62 -0
- package/dist/unix/calculate/setUnix.d.ts +35 -0
- package/dist/unix/calculate/setUnix.js +60 -0
- package/dist/unix/calculate/sortUnix.d.ts +16 -0
- package/dist/unix/calculate/sortUnix.js +28 -0
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +23 -0
- package/dist/unix/calculate/startOfQuarterForUnix.js +46 -0
- package/dist/unix/calculate/startOfUnix.d.ts +30 -0
- package/dist/unix/calculate/startOfUnix.js +26 -0
- package/dist/unix/calculate/startOrEndOfUnix.d.ts +9 -0
- package/dist/unix/calculate/startOrEndOfUnix.js +122 -0
- package/dist/unix/calculate/subtractUnix.d.ts +25 -0
- package/dist/unix/calculate/subtractUnix.js +51 -0
- package/dist/unix/compare/areUnixEqual.d.ts +21 -0
- package/dist/unix/compare/areUnixEqual.js +33 -0
- package/dist/unix/compare/areUnixEqualBy.d.ts +31 -0
- package/dist/unix/compare/areUnixEqualBy.js +39 -0
- package/dist/unix/compare/index.d.ts +4 -0
- package/dist/unix/compare/index.js +4 -0
- package/dist/unix/compare/isAfterUnix.d.ts +19 -0
- package/dist/unix/compare/isAfterUnix.js +31 -0
- package/dist/unix/compare/isBeforeUnix.d.ts +21 -0
- package/dist/unix/compare/isBeforeUnix.js +33 -0
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +19 -0
- package/dist/unix/convert/convertUnixToPlainDate.js +38 -0
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +19 -0
- package/dist/unix/convert/convertUnixToPlainDateTime.js +38 -0
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +19 -0
- package/dist/unix/convert/convertUnixToPlainTime.js +38 -0
- package/dist/unix/convert/convertUnixToUtc.d.ts +17 -0
- package/dist/unix/convert/convertUnixToUtc.js +31 -0
- package/dist/unix/convert/convertUnixToZoned.d.ts +18 -0
- package/dist/unix/convert/convertUnixToZoned.js +35 -0
- package/dist/unix/convert/index.d.ts +5 -0
- package/dist/unix/convert/index.js +5 -0
- package/dist/unix/format/formatCalendarUnix.d.ts +29 -0
- package/dist/unix/format/formatCalendarUnix.js +107 -0
- package/dist/unix/format/formatRelativeUnix.d.ts +34 -0
- package/dist/unix/format/formatRelativeUnix.js +118 -0
- package/dist/unix/format/formatUnix.d.ts +6 -0
- package/dist/unix/format/formatUnix.js +41 -0
- package/dist/unix/format/index.d.ts +3 -0
- package/dist/unix/format/index.js +3 -0
- package/dist/unix/get/getUnixDay.d.ts +13 -0
- package/dist/unix/get/getUnixDay.js +24 -0
- package/dist/unix/get/getUnixHour.d.ts +13 -0
- package/dist/unix/get/getUnixHour.js +24 -0
- package/dist/unix/get/getUnixMicrosecond.d.ts +13 -0
- package/dist/unix/get/getUnixMicrosecond.js +23 -0
- package/dist/unix/get/getUnixMillisecond.d.ts +13 -0
- package/dist/unix/get/getUnixMillisecond.js +24 -0
- package/dist/unix/get/getUnixMinute.d.ts +13 -0
- package/dist/unix/get/getUnixMinute.js +24 -0
- package/dist/unix/get/getUnixMonth.d.ts +13 -0
- package/dist/unix/get/getUnixMonth.js +24 -0
- package/dist/unix/get/getUnixNanosecond.d.ts +13 -0
- package/dist/unix/get/getUnixNanosecond.js +23 -0
- package/dist/unix/get/getUnixNow.d.ts +15 -0
- package/dist/unix/get/getUnixNow.js +28 -0
- package/dist/unix/get/getUnixNowUnit.d.ts +18 -0
- package/dist/unix/get/getUnixNowUnit.js +61 -0
- package/dist/unix/get/getUnixSecond.d.ts +13 -0
- package/dist/unix/get/getUnixSecond.js +24 -0
- package/dist/unix/get/getUnixYear.d.ts +13 -0
- package/dist/unix/get/getUnixYear.js +24 -0
- package/dist/unix/get/index.d.ts +11 -0
- package/dist/unix/get/index.js +11 -0
- package/dist/unix/index.d.ts +8 -0
- package/dist/unix/index.js +8 -0
- package/dist/unix/interval/index.d.ts +18 -0
- package/dist/unix/interval/index.js +18 -0
- package/dist/unix/interval/intervalAbutsUnix.d.ts +22 -0
- package/dist/unix/interval/intervalAbutsUnix.js +54 -0
- package/dist/unix/interval/intervalContainsUnix.d.ts +25 -0
- package/dist/unix/interval/intervalContainsUnix.js +60 -0
- package/dist/unix/interval/intervalCountUnix.d.ts +28 -0
- package/dist/unix/interval/intervalCountUnix.js +44 -0
- package/dist/unix/interval/intervalDifferenceUnix.d.ts +24 -0
- package/dist/unix/interval/intervalDifferenceUnix.js +57 -0
- package/dist/unix/interval/intervalDivideEquallyUnix.d.ts +27 -0
- package/dist/unix/interval/intervalDivideEquallyUnix.js +54 -0
- package/dist/unix/interval/intervalEngulfsUnix.d.ts +22 -0
- package/dist/unix/interval/intervalEngulfsUnix.js +46 -0
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +37 -0
- package/dist/unix/interval/intervalFromDurationUnix.js +73 -0
- package/dist/unix/interval/intervalIntersectionUnix.d.ts +24 -0
- package/dist/unix/interval/intervalIntersectionUnix.js +57 -0
- package/dist/unix/interval/intervalLengthUnix.d.ts +24 -0
- package/dist/unix/interval/intervalLengthUnix.js +39 -0
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +34 -0
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +89 -0
- package/dist/unix/interval/intervalSplitAtUnix.d.ts +26 -0
- package/dist/unix/interval/intervalSplitAtUnix.js +55 -0
- package/dist/unix/interval/intervalUnionUnix.d.ts +25 -0
- package/dist/unix/interval/intervalUnionUnix.js +58 -0
- package/dist/unix/interval/intervalXorAllUnix.d.ts +28 -0
- package/dist/unix/interval/intervalXorAllUnix.js +77 -0
- package/dist/unix/interval/intervalXorUnix.d.ts +25 -0
- package/dist/unix/interval/intervalXorUnix.js +70 -0
- package/dist/unix/interval/intervalsOverlapUnix.d.ts +21 -0
- package/dist/unix/interval/intervalsOverlapUnix.js +51 -0
- package/dist/unix/interval/mergeIntervalsUnix.d.ts +25 -0
- package/dist/unix/interval/mergeIntervalsUnix.js +55 -0
- package/dist/unix/interval/resolveUnixIntervalPair.d.ts +7 -0
- package/dist/unix/interval/resolveUnixIntervalPair.js +36 -0
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +27 -0
- package/dist/unix/interval/splitIntervalByUnitUnix.js +85 -0
- package/dist/unix/interval/validate/index.d.ts +1 -0
- package/dist/unix/interval/validate/index.js +1 -0
- package/dist/unix/interval/validate/isValidUnixInterval.d.ts +18 -0
- package/dist/unix/interval/validate/isValidUnixInterval.js +31 -0
- package/dist/unix/parse/index.d.ts +12 -0
- package/dist/unix/parse/index.js +12 -0
- package/dist/unix/parse/parseDateFromUnix.d.ts +20 -0
- package/dist/unix/parse/parseDateFromUnix.js +45 -0
- package/dist/unix/parse/parseDayFromUnix.d.ts +18 -0
- package/dist/unix/parse/parseDayFromUnix.js +17 -0
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +18 -0
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +44 -0
- package/dist/unix/parse/parseHourFromUnix.d.ts +18 -0
- package/dist/unix/parse/parseHourFromUnix.js +17 -0
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +18 -0
- package/dist/unix/parse/parseMicrosecondFromUnix.js +17 -0
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +18 -0
- package/dist/unix/parse/parseMillisecondFromUnix.js +17 -0
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +18 -0
- package/dist/unix/parse/parseMinuteFromUnix.js +17 -0
- package/dist/unix/parse/parseMonthFromUnix.d.ts +19 -0
- package/dist/unix/parse/parseMonthFromUnix.js +18 -0
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +18 -0
- package/dist/unix/parse/parseNanosecondFromUnix.js +17 -0
- package/dist/unix/parse/parseSecondFromUnix.d.ts +18 -0
- package/dist/unix/parse/parseSecondFromUnix.js +17 -0
- package/dist/unix/parse/parseTimeFromUnix.d.ts +20 -0
- package/dist/unix/parse/parseTimeFromUnix.js +45 -0
- package/dist/unix/parse/parseUnitFromUnix.d.ts +25 -0
- package/dist/unix/parse/parseUnitFromUnix.js +77 -0
- package/dist/unix/parse/parseWeekFromUnix.d.ts +20 -0
- package/dist/unix/parse/parseWeekFromUnix.js +47 -0
- package/dist/unix/parse/parseYearFromUnix.d.ts +19 -0
- package/dist/unix/parse/parseYearFromUnix.js +18 -0
- package/dist/unix/validate/index.d.ts +4 -0
- package/dist/unix/validate/index.js +4 -0
- package/dist/unix/validate/isValidUnixMilliseconds.d.ts +14 -0
- package/dist/unix/validate/isValidUnixMilliseconds.js +19 -0
- package/dist/unix/validate/isValidUnixRange.d.ts +24 -0
- package/dist/unix/validate/isValidUnixRange.js +34 -0
- package/dist/unix/validate/isValidUnixSeconds.d.ts +14 -0
- package/dist/unix/validate/isValidUnixSeconds.js +19 -0
- package/dist/unix/validate/isValidUnixUnit.d.ts +18 -0
- package/dist/unix/validate/isValidUnixUnit.js +22 -0
- package/dist/utc/calculate/addUtc.d.ts +23 -0
- package/dist/utc/calculate/addUtc.js +42 -0
- package/dist/utc/calculate/diffUtc.d.ts +27 -0
- package/dist/utc/calculate/diffUtc.js +61 -0
- package/dist/utc/calculate/diffUtcAsDuration.d.ts +31 -0
- package/dist/utc/calculate/diffUtcAsDuration.js +50 -0
- package/dist/utc/calculate/endOfQuarterForUtc.d.ts +14 -0
- package/dist/utc/calculate/endOfQuarterForUtc.js +49 -0
- package/dist/utc/calculate/endOfUtc.d.ts +22 -0
- package/dist/utc/calculate/endOfUtc.js +21 -0
- package/dist/utc/calculate/index.d.ts +14 -0
- package/dist/utc/calculate/index.js +14 -0
- package/dist/utc/calculate/isBetweenUtc.d.ts +21 -0
- package/dist/utc/calculate/isBetweenUtc.js +52 -0
- package/dist/utc/calculate/maxUtc.d.ts +15 -0
- package/dist/utc/calculate/maxUtc.js +35 -0
- package/dist/utc/calculate/minUtc.d.ts +15 -0
- package/dist/utc/calculate/minUtc.js +35 -0
- package/dist/utc/calculate/roundUtc.d.ts +26 -0
- package/dist/utc/calculate/roundUtc.js +56 -0
- package/dist/utc/calculate/setUtc.d.ts +38 -0
- package/dist/utc/calculate/setUtc.js +54 -0
- package/dist/utc/calculate/sortUtc.d.ts +17 -0
- package/dist/utc/calculate/sortUtc.js +36 -0
- package/dist/utc/calculate/startOfQuarterForUtc.d.ts +13 -0
- package/dist/utc/calculate/startOfQuarterForUtc.js +32 -0
- package/dist/utc/calculate/startOfUtc.d.ts +22 -0
- package/dist/utc/calculate/startOfUtc.js +21 -0
- package/dist/utc/calculate/startOrEndOfUtc.d.ts +6 -0
- package/dist/utc/calculate/startOrEndOfUtc.js +143 -0
- package/dist/utc/calculate/subtractUtc.d.ts +23 -0
- package/dist/utc/calculate/subtractUtc.js +42 -0
- package/dist/utc/chop/chopUtc.d.ts +14 -0
- package/dist/utc/chop/chopUtc.js +21 -0
- package/dist/utc/chop/index.d.ts +1 -0
- package/dist/utc/chop/index.js +1 -0
- package/dist/utc/compare/areUtcEqual.d.ts +15 -0
- package/dist/utc/compare/areUtcEqual.js +29 -0
- package/dist/utc/compare/areUtcEqualBy.d.ts +30 -0
- package/dist/utc/compare/areUtcEqualBy.js +45 -0
- package/dist/utc/compare/index.d.ts +4 -0
- package/dist/utc/compare/index.js +4 -0
- package/dist/utc/compare/isAfterUtc.d.ts +15 -0
- package/dist/utc/compare/isAfterUtc.js +28 -0
- package/dist/utc/compare/isBeforeUtc.d.ts +15 -0
- package/dist/utc/compare/isBeforeUtc.js +29 -0
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +18 -0
- package/dist/utc/convert/convertUtcToPlainDate.js +35 -0
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +18 -0
- package/dist/utc/convert/convertUtcToPlainDateTime.js +41 -0
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +18 -0
- package/dist/utc/convert/convertUtcToPlainTime.js +35 -0
- package/dist/utc/convert/convertUtcToUnix.d.ts +17 -0
- package/dist/utc/convert/convertUtcToUnix.js +33 -0
- package/dist/utc/convert/convertUtcToZoned.d.ts +15 -0
- package/dist/utc/convert/convertUtcToZoned.js +28 -0
- package/dist/utc/convert/index.d.ts +5 -0
- package/dist/utc/convert/index.js +5 -0
- package/dist/utc/format/formatCalendarUtc.d.ts +28 -0
- package/dist/utc/format/formatCalendarUtc.js +68 -0
- package/dist/utc/format/formatHttp.d.ts +22 -0
- package/dist/utc/format/formatHttp.js +42 -0
- package/dist/utc/format/formatRelativeUtc.d.ts +33 -0
- package/dist/utc/format/formatRelativeUtc.js +76 -0
- package/dist/utc/format/formatUtc.d.ts +5 -0
- package/dist/utc/format/formatUtc.js +23 -0
- package/dist/utc/format/index.d.ts +4 -0
- package/dist/utc/format/index.js +4 -0
- package/dist/utc/get/getUtcDay.d.ts +13 -0
- package/dist/utc/get/getUtcDay.js +24 -0
- package/dist/utc/get/getUtcHour.d.ts +13 -0
- package/dist/utc/get/getUtcHour.js +24 -0
- package/dist/utc/get/getUtcMicrosecond.d.ts +13 -0
- package/dist/utc/get/getUtcMicrosecond.js +23 -0
- package/dist/utc/get/getUtcMillisecond.d.ts +13 -0
- package/dist/utc/get/getUtcMillisecond.js +24 -0
- package/dist/utc/get/getUtcMinute.d.ts +13 -0
- package/dist/utc/get/getUtcMinute.js +24 -0
- package/dist/utc/get/getUtcMonth.d.ts +13 -0
- package/dist/utc/get/getUtcMonth.js +24 -0
- package/dist/utc/get/getUtcNanosecond.d.ts +13 -0
- package/dist/utc/get/getUtcNanosecond.js +23 -0
- package/dist/utc/get/getUtcNow.d.ts +12 -0
- package/dist/utc/get/getUtcNow.js +20 -0
- package/dist/utc/get/getUtcNowUnit.d.ts +18 -0
- package/dist/utc/get/getUtcNowUnit.js +61 -0
- package/dist/utc/get/getUtcSecond.d.ts +13 -0
- package/dist/utc/get/getUtcSecond.js +24 -0
- package/dist/utc/get/getUtcYear.d.ts +13 -0
- package/dist/utc/get/getUtcYear.js +24 -0
- package/dist/utc/get/index.d.ts +11 -0
- package/dist/utc/get/index.js +11 -0
- package/dist/utc/index.d.ts +9 -0
- package/dist/utc/index.js +9 -0
- package/dist/utc/interval/index.d.ts +18 -0
- package/dist/utc/interval/index.js +18 -0
- package/dist/utc/interval/intervalAbutsUtc.d.ts +22 -0
- package/dist/utc/interval/intervalAbutsUtc.js +70 -0
- package/dist/utc/interval/intervalContainsUtc.d.ts +23 -0
- package/dist/utc/interval/intervalContainsUtc.js +66 -0
- package/dist/utc/interval/intervalCountUtc.d.ts +28 -0
- package/dist/utc/interval/intervalCountUtc.js +68 -0
- package/dist/utc/interval/intervalDifferenceUtc.d.ts +24 -0
- package/dist/utc/interval/intervalDifferenceUtc.js +76 -0
- package/dist/utc/interval/intervalDivideEquallyUtc.d.ts +26 -0
- package/dist/utc/interval/intervalDivideEquallyUtc.js +65 -0
- package/dist/utc/interval/intervalEngulfsUtc.d.ts +22 -0
- package/dist/utc/interval/intervalEngulfsUtc.js +61 -0
- package/dist/utc/interval/intervalFromDurationUtc.d.ts +35 -0
- package/dist/utc/interval/intervalFromDurationUtc.js +64 -0
- package/dist/utc/interval/intervalIntersectionUtc.d.ts +23 -0
- package/dist/utc/interval/intervalIntersectionUtc.js +64 -0
- package/dist/utc/interval/intervalLengthUtc.d.ts +22 -0
- package/dist/utc/interval/intervalLengthUtc.js +52 -0
- package/dist/utc/interval/intervalOverlappingDaysUtc.d.ts +29 -0
- package/dist/utc/interval/intervalOverlappingDaysUtc.js +75 -0
- package/dist/utc/interval/intervalSplitAtUtc.d.ts +27 -0
- package/dist/utc/interval/intervalSplitAtUtc.js +64 -0
- package/dist/utc/interval/intervalUnionUtc.d.ts +24 -0
- package/dist/utc/interval/intervalUnionUtc.js +65 -0
- package/dist/utc/interval/intervalXorAllUtc.d.ts +28 -0
- package/dist/utc/interval/intervalXorAllUtc.js +81 -0
- package/dist/utc/interval/intervalXorUtc.d.ts +25 -0
- package/dist/utc/interval/intervalXorUtc.js +97 -0
- package/dist/utc/interval/intervalsOverlapUtc.d.ts +20 -0
- package/dist/utc/interval/intervalsOverlapUtc.js +59 -0
- package/dist/utc/interval/mergeIntervalsUtc.d.ts +25 -0
- package/dist/utc/interval/mergeIntervalsUtc.js +61 -0
- package/dist/utc/interval/splitIntervalByUnitUtc.d.ts +25 -0
- package/dist/utc/interval/splitIntervalByUnitUtc.js +78 -0
- package/dist/utc/interval/validate/index.d.ts +1 -0
- package/dist/utc/interval/validate/index.js +1 -0
- package/dist/utc/interval/validate/isValidUtcInterval.d.ts +19 -0
- package/dist/utc/interval/validate/isValidUtcInterval.js +40 -0
- package/dist/utc/parse/index.d.ts +15 -0
- package/dist/utc/parse/index.js +15 -0
- package/dist/utc/parse/parseDateFromUtc.d.ts +13 -0
- package/dist/utc/parse/parseDateFromUtc.js +27 -0
- package/dist/utc/parse/parseDayFromUtc.d.ts +13 -0
- package/dist/utc/parse/parseDayFromUtc.js +26 -0
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +14 -0
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +27 -0
- package/dist/utc/parse/parseHourFromUtc.d.ts +13 -0
- package/dist/utc/parse/parseHourFromUtc.js +26 -0
- package/dist/utc/parse/parseHttp.d.ts +24 -0
- package/dist/utc/parse/parseHttp.js +51 -0
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +13 -0
- package/dist/utc/parse/parseMicrosecondFromUtc.js +26 -0
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +13 -0
- package/dist/utc/parse/parseMillisecondFromUtc.js +26 -0
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +13 -0
- package/dist/utc/parse/parseMinuteFromUtc.js +26 -0
- package/dist/utc/parse/parseMonthFromUtc.d.ts +13 -0
- package/dist/utc/parse/parseMonthFromUtc.js +26 -0
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +13 -0
- package/dist/utc/parse/parseNanosecondFromUtc.js +26 -0
- package/dist/utc/parse/parseSecondFromUtc.d.ts +13 -0
- package/dist/utc/parse/parseSecondFromUtc.js +26 -0
- package/dist/utc/parse/parseTimeFromUtc.d.ts +18 -0
- package/dist/utc/parse/parseTimeFromUtc.js +35 -0
- package/dist/utc/parse/parseUnitFromUtc.d.ts +21 -0
- package/dist/utc/parse/parseUnitFromUtc.js +55 -0
- package/dist/utc/parse/parseWeekFromUtc.d.ts +16 -0
- package/dist/utc/parse/parseWeekFromUtc.js +30 -0
- package/dist/utc/parse/parseYearFromUtc.d.ts +13 -0
- package/dist/utc/parse/parseYearFromUtc.js +26 -0
- package/dist/utc/validate/index.d.ts +2 -0
- package/dist/utc/validate/index.js +2 -0
- package/dist/utc/validate/isValidUtc.d.ts +17 -0
- package/dist/utc/validate/isValidUtc.js +34 -0
- package/dist/utc/validate/isValidUtcRange.d.ts +25 -0
- package/dist/utc/validate/isValidUtcRange.js +44 -0
- package/dist/zoned/calculate/addZoned.d.ts +50 -0
- package/dist/zoned/calculate/addZoned.js +88 -0
- package/dist/zoned/calculate/addZonedBusinessDays.d.ts +18 -0
- package/dist/zoned/calculate/addZonedBusinessDays.js +30 -0
- package/dist/zoned/calculate/clampZoned.d.ts +20 -0
- package/dist/zoned/calculate/clampZoned.js +48 -0
- package/dist/zoned/calculate/closestZonedTo.d.ts +18 -0
- package/dist/zoned/calculate/closestZonedTo.js +46 -0
- package/dist/zoned/calculate/cycleZoned.d.ts +44 -0
- package/dist/zoned/calculate/cycleZoned.js +58 -0
- package/dist/zoned/calculate/diffZoned.d.ts +39 -0
- package/dist/zoned/calculate/diffZoned.js +76 -0
- package/dist/zoned/calculate/diffZonedAsDuration.d.ts +36 -0
- package/dist/zoned/calculate/diffZonedAsDuration.js +55 -0
- package/dist/zoned/calculate/endOfQuarterForZoned.d.ts +25 -0
- package/dist/zoned/calculate/endOfQuarterForZoned.js +50 -0
- package/dist/zoned/calculate/endOfZoned.d.ts +28 -0
- package/dist/zoned/calculate/endOfZoned.js +130 -0
- package/dist/zoned/calculate/getHoursInZonedDay.d.ts +22 -0
- package/dist/zoned/calculate/getHoursInZonedDay.js +45 -0
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.d.ts +20 -0
- package/dist/zoned/calculate/getLocaleZonedDayOfWeek.js +36 -0
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.d.ts +44 -0
- package/dist/zoned/calculate/getLocaleZonedEndOfWeek.js +68 -0
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.d.ts +44 -0
- package/dist/zoned/calculate/getLocaleZonedStartOfWeek.js +68 -0
- package/dist/zoned/calculate/getQuarterForZoned.d.ts +15 -0
- package/dist/zoned/calculate/getQuarterForZoned.js +28 -0
- package/dist/zoned/calculate/index.d.ts +23 -0
- package/dist/zoned/calculate/index.js +23 -0
- package/dist/zoned/calculate/maxZoned.d.ts +15 -0
- package/dist/zoned/calculate/maxZoned.js +35 -0
- package/dist/zoned/calculate/minZoned.d.ts +15 -0
- package/dist/zoned/calculate/minZoned.js +35 -0
- package/dist/zoned/calculate/roundZoned.d.ts +23 -0
- package/dist/zoned/calculate/roundZoned.js +55 -0
- package/dist/zoned/calculate/setZoned.d.ts +39 -0
- package/dist/zoned/calculate/setZoned.js +56 -0
- package/dist/zoned/calculate/sortZoned.d.ts +17 -0
- package/dist/zoned/calculate/sortZoned.js +36 -0
- package/dist/zoned/calculate/startOfQuarterForZoned.d.ts +25 -0
- package/dist/zoned/calculate/startOfQuarterForZoned.js +40 -0
- package/dist/zoned/calculate/startOfZoned.d.ts +27 -0
- package/dist/zoned/calculate/startOfZoned.js +122 -0
- package/dist/zoned/calculate/subtractZoned.d.ts +47 -0
- package/dist/zoned/calculate/subtractZoned.js +82 -0
- package/dist/zoned/calculate/subtractZonedBusinessDays.d.ts +18 -0
- package/dist/zoned/calculate/subtractZonedBusinessDays.js +28 -0
- package/dist/zoned/chop/chopZonedDate.d.ts +13 -0
- package/dist/zoned/chop/chopZonedDate.js +24 -0
- package/dist/zoned/chop/chopZonedDateTime.d.ts +13 -0
- package/dist/zoned/chop/chopZonedDateTime.js +26 -0
- package/dist/zoned/chop/chopZonedMilliseconds.d.ts +13 -0
- package/dist/zoned/chop/chopZonedMilliseconds.js +26 -0
- package/dist/zoned/chop/chopZonedSeconds.d.ts +13 -0
- package/dist/zoned/chop/chopZonedSeconds.js +26 -0
- package/dist/zoned/chop/chopZonedTime.d.ts +13 -0
- package/dist/zoned/chop/chopZonedTime.js +24 -0
- package/dist/zoned/chop/chopZonedTimezone.d.ts +13 -0
- package/dist/zoned/chop/chopZonedTimezone.js +24 -0
- package/dist/zoned/chop/index.d.ts +6 -0
- package/dist/zoned/chop/index.js +6 -0
- package/dist/zoned/compare/areZonedEqual.d.ts +15 -0
- package/dist/zoned/compare/areZonedEqual.js +45 -0
- package/dist/zoned/compare/areZonedEqualBy.d.ts +30 -0
- package/dist/zoned/compare/areZonedEqualBy.js +49 -0
- package/dist/zoned/compare/index.d.ts +12 -0
- package/dist/zoned/compare/index.js +12 -0
- package/dist/zoned/compare/isAfterZoned.d.ts +15 -0
- package/dist/zoned/compare/isAfterZoned.js +36 -0
- package/dist/zoned/compare/isBeforeZoned.d.ts +15 -0
- package/dist/zoned/compare/isBeforeZoned.js +36 -0
- package/dist/zoned/compare/isBetweenZoned.d.ts +19 -0
- package/dist/zoned/compare/isBetweenZoned.js +55 -0
- package/dist/zoned/compare/isInDaylightSaving.d.ts +25 -0
- package/dist/zoned/compare/isInDaylightSaving.js +68 -0
- package/dist/zoned/compare/isZonedBusinessDay.d.ts +22 -0
- package/dist/zoned/compare/isZonedBusinessDay.js +34 -0
- package/dist/zoned/compare/isZonedFuture.d.ts +18 -0
- package/dist/zoned/compare/isZonedFuture.js +31 -0
- package/dist/zoned/compare/isZonedPast.d.ts +18 -0
- package/dist/zoned/compare/isZonedPast.js +31 -0
- package/dist/zoned/compare/isZonedRelativeDay.d.ts +25 -0
- package/dist/zoned/compare/isZonedRelativeDay.js +40 -0
- package/dist/zoned/compare/isZonedThisUnit.d.ts +28 -0
- package/dist/zoned/compare/isZonedThisUnit.js +52 -0
- package/dist/zoned/compare/isZonedWeekend.d.ts +23 -0
- package/dist/zoned/compare/isZonedWeekend.js +39 -0
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +26 -0
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +42 -0
- package/dist/zoned/convert/convertZonedToCalendar.d.ts +49 -0
- package/dist/zoned/convert/convertZonedToCalendar.js +67 -0
- package/dist/zoned/convert/convertZonedToPlainDateTime.d.ts +13 -0
- package/dist/zoned/convert/convertZonedToPlainDateTime.js +25 -0
- package/dist/zoned/convert/convertZonedToUnix.d.ts +17 -0
- package/dist/zoned/convert/convertZonedToUnix.js +34 -0
- package/dist/zoned/convert/convertZonedToUtc.d.ts +13 -0
- package/dist/zoned/convert/convertZonedToUtc.js +25 -0
- package/dist/zoned/convert/convertZonedToZoned.d.ts +14 -0
- package/dist/zoned/convert/convertZonedToZoned.js +27 -0
- package/dist/zoned/convert/index.d.ts +6 -0
- package/dist/zoned/convert/index.js +6 -0
- package/dist/zoned/format/formatCalendarZoned.d.ts +34 -0
- package/dist/zoned/format/formatCalendarZoned.js +65 -0
- package/dist/zoned/format/formatRelativeZoned.d.ts +44 -0
- package/dist/zoned/format/formatRelativeZoned.js +79 -0
- package/dist/zoned/format/formatRfc2822.d.ts +22 -0
- package/dist/zoned/format/formatRfc2822.js +47 -0
- package/dist/zoned/format/formatRfc3339.d.ts +24 -0
- package/dist/zoned/format/formatRfc3339.js +37 -0
- package/dist/zoned/format/formatTimeZoneName.d.ts +39 -0
- package/dist/zoned/format/formatTimeZoneName.js +56 -0
- package/dist/zoned/format/formatZonedDateTime.d.ts +17 -0
- package/dist/zoned/format/formatZonedDateTime.js +32 -0
- package/dist/zoned/format/formatZonedRange.d.ts +18 -0
- package/dist/zoned/format/formatZonedRange.js +48 -0
- package/dist/zoned/format/formatZonedToParts.d.ts +29 -0
- package/dist/zoned/format/formatZonedToParts.js +48 -0
- package/dist/zoned/format/index.d.ts +8 -0
- package/dist/zoned/format/index.js +8 -0
- package/dist/zoned/get/getDstTransitions.d.ts +36 -0
- package/dist/zoned/get/getDstTransitions.js +62 -0
- package/dist/zoned/get/getSystemTimeZone.d.ts +11 -0
- package/dist/zoned/get/getSystemTimeZone.js +19 -0
- package/dist/zoned/get/getTimeZoneOffset.d.ts +21 -0
- package/dist/zoned/get/getTimeZoneOffset.js +33 -0
- package/dist/zoned/get/getTimeZones.d.ts +12 -0
- package/dist/zoned/get/getTimeZones.js +19 -0
- package/dist/zoned/get/getZonedDay.d.ts +13 -0
- package/dist/zoned/get/getZonedDay.js +26 -0
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +14 -0
- package/dist/zoned/get/getZonedDayOfWeek.js +26 -0
- package/dist/zoned/get/getZonedHour.d.ts +13 -0
- package/dist/zoned/get/getZonedHour.js +26 -0
- package/dist/zoned/get/getZonedMicrosecond.d.ts +13 -0
- package/dist/zoned/get/getZonedMicrosecond.js +26 -0
- package/dist/zoned/get/getZonedMillisecond.d.ts +13 -0
- package/dist/zoned/get/getZonedMillisecond.js +26 -0
- package/dist/zoned/get/getZonedMinute.d.ts +13 -0
- package/dist/zoned/get/getZonedMinute.js +26 -0
- package/dist/zoned/get/getZonedMonth.d.ts +13 -0
- package/dist/zoned/get/getZonedMonth.js +26 -0
- package/dist/zoned/get/getZonedNanosecond.d.ts +13 -0
- package/dist/zoned/get/getZonedNanosecond.js +26 -0
- package/dist/zoned/get/getZonedNow.d.ts +17 -0
- package/dist/zoned/get/getZonedNow.js +31 -0
- package/dist/zoned/get/getZonedNowUnit.d.ts +16 -0
- package/dist/zoned/get/getZonedNowUnit.js +72 -0
- package/dist/zoned/get/getZonedSecond.d.ts +13 -0
- package/dist/zoned/get/getZonedSecond.js +26 -0
- package/dist/zoned/get/getZonedToday.d.ts +13 -0
- package/dist/zoned/get/getZonedToday.js +26 -0
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +14 -0
- package/dist/zoned/get/getZonedWeekOfYear.js +26 -0
- package/dist/zoned/get/getZonedYear.d.ts +13 -0
- package/dist/zoned/get/getZonedYear.js +26 -0
- package/dist/zoned/get/index.d.ts +18 -0
- package/dist/zoned/get/index.js +18 -0
- package/dist/zoned/index.d.ts +11 -0
- package/dist/zoned/index.js +12 -0
- package/dist/zoned/interval/index.d.ts +18 -0
- package/dist/zoned/interval/index.js +18 -0
- package/dist/zoned/interval/intervalAbutsZoned.d.ts +30 -0
- package/dist/zoned/interval/intervalAbutsZoned.js +74 -0
- package/dist/zoned/interval/intervalContainsZoned.d.ts +31 -0
- package/dist/zoned/interval/intervalContainsZoned.js +70 -0
- package/dist/zoned/interval/intervalCountZoned.d.ts +39 -0
- package/dist/zoned/interval/intervalCountZoned.js +82 -0
- package/dist/zoned/interval/intervalDifferenceZoned.d.ts +38 -0
- package/dist/zoned/interval/intervalDifferenceZoned.js +94 -0
- package/dist/zoned/interval/intervalDivideEquallyZoned.d.ts +35 -0
- package/dist/zoned/interval/intervalDivideEquallyZoned.js +80 -0
- package/dist/zoned/interval/intervalEngulfsZoned.d.ts +30 -0
- package/dist/zoned/interval/intervalEngulfsZoned.js +65 -0
- package/dist/zoned/interval/intervalFromDurationZoned.d.ts +45 -0
- package/dist/zoned/interval/intervalFromDurationZoned.js +85 -0
- package/dist/zoned/interval/intervalIntersectionZoned.d.ts +36 -0
- package/dist/zoned/interval/intervalIntersectionZoned.js +77 -0
- package/dist/zoned/interval/intervalLengthZoned.d.ts +31 -0
- package/dist/zoned/interval/intervalLengthZoned.js +61 -0
- package/dist/zoned/interval/intervalOverlappingDaysZoned.d.ts +42 -0
- package/dist/zoned/interval/intervalOverlappingDaysZoned.js +89 -0
- package/dist/zoned/interval/intervalSplitAtZoned.d.ts +36 -0
- package/dist/zoned/interval/intervalSplitAtZoned.js +84 -0
- package/dist/zoned/interval/intervalUnionZoned.d.ts +38 -0
- package/dist/zoned/interval/intervalUnionZoned.js +79 -0
- package/dist/zoned/interval/intervalXorAllZoned.d.ts +37 -0
- package/dist/zoned/interval/intervalXorAllZoned.js +108 -0
- package/dist/zoned/interval/intervalXorZoned.d.ts +39 -0
- package/dist/zoned/interval/intervalXorZoned.js +118 -0
- package/dist/zoned/interval/intervalsOverlapZoned.d.ts +27 -0
- package/dist/zoned/interval/intervalsOverlapZoned.js +62 -0
- package/dist/zoned/interval/mergeIntervalsZoned.d.ts +36 -0
- package/dist/zoned/interval/mergeIntervalsZoned.js +77 -0
- package/dist/zoned/interval/splitIntervalByUnitZoned.d.ts +31 -0
- package/dist/zoned/interval/splitIntervalByUnitZoned.js +77 -0
- package/dist/zoned/interval/validate/index.d.ts +2 -0
- package/dist/zoned/interval/validate/index.js +2 -0
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.d.ts +31 -0
- package/dist/zoned/interval/validate/isValidCalendarZonedInterval.js +45 -0
- package/dist/zoned/interval/validate/isValidZonedInterval.d.ts +23 -0
- package/dist/zoned/interval/validate/isValidZonedInterval.js +44 -0
- package/dist/zoned/map/index.d.ts +2 -0
- package/dist/zoned/map/index.js +2 -0
- package/dist/zoned/map/mapZonedDatesInRange.d.ts +16 -0
- package/dist/zoned/map/mapZonedDatesInRange.js +56 -0
- package/dist/zoned/map/mapZonedHoursInDay.d.ts +23 -0
- package/dist/zoned/map/mapZonedHoursInDay.js +47 -0
- package/dist/zoned/parse/getZonedOffset.d.ts +17 -0
- package/dist/zoned/parse/getZonedOffset.js +29 -0
- package/dist/zoned/parse/getZonedOffsetAs.d.ts +29 -0
- package/dist/zoned/parse/getZonedOffsetAs.js +44 -0
- package/dist/zoned/parse/index.d.ts +20 -0
- package/dist/zoned/parse/index.js +20 -0
- package/dist/zoned/parse/parseDateFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseDateFromZoned.js +26 -0
- package/dist/zoned/parse/parseDateTimeFromZoned.d.ts +14 -0
- package/dist/zoned/parse/parseDateTimeFromZoned.js +27 -0
- package/dist/zoned/parse/parseDayFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseDayFromZoned.js +26 -0
- package/dist/zoned/parse/parseDayOfWeekFromZoned.d.ts +14 -0
- package/dist/zoned/parse/parseDayOfWeekFromZoned.js +27 -0
- package/dist/zoned/parse/parseHourFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseHourFromZoned.js +26 -0
- package/dist/zoned/parse/parseMicrosecondFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseMicrosecondFromZoned.js +26 -0
- package/dist/zoned/parse/parseMillisecondFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseMillisecondFromZoned.js +26 -0
- package/dist/zoned/parse/parseMinuteFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseMinuteFromZoned.js +26 -0
- package/dist/zoned/parse/parseMonthFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseMonthFromZoned.js +26 -0
- package/dist/zoned/parse/parseNanosecondFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseNanosecondFromZoned.js +26 -0
- package/dist/zoned/parse/parseRfc2822.d.ts +26 -0
- package/dist/zoned/parse/parseRfc2822.js +71 -0
- package/dist/zoned/parse/parseRfc3339.d.ts +23 -0
- package/dist/zoned/parse/parseRfc3339.js +42 -0
- package/dist/zoned/parse/parseSecondFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseSecondFromZoned.js +26 -0
- package/dist/zoned/parse/parseTimeFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseTimeFromZoned.js +26 -0
- package/dist/zoned/parse/parseTimeZoneFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseTimeZoneFromZoned.js +25 -0
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +19 -0
- package/dist/zoned/parse/parseUnitFromZoned.js +71 -0
- package/dist/zoned/parse/parseWeekFromZoned.d.ts +17 -0
- package/dist/zoned/parse/parseWeekFromZoned.js +30 -0
- package/dist/zoned/parse/parseYearFromZoned.d.ts +13 -0
- package/dist/zoned/parse/parseYearFromZoned.js +26 -0
- package/dist/zoned/validate/hasDaylightSaving.d.ts +17 -0
- package/dist/zoned/validate/hasDaylightSaving.js +43 -0
- package/dist/zoned/validate/index.d.ts +5 -0
- package/dist/zoned/validate/index.js +5 -0
- package/dist/zoned/validate/isValidCalendarZonedDateTime.d.ts +30 -0
- package/dist/zoned/validate/isValidCalendarZonedDateTime.js +41 -0
- package/dist/zoned/validate/isValidTimeZone.d.ts +15 -0
- package/dist/zoned/validate/isValidTimeZone.js +33 -0
- package/dist/zoned/validate/isValidZonedDateTime.d.ts +22 -0
- package/dist/zoned/validate/isValidZonedDateTime.js +39 -0
- package/dist/zoned/validate/isValidZonedRange.d.ts +26 -0
- package/dist/zoned/validate/isValidZonedRange.js +43 -0
- package/package.json +113 -0
- package/skills/_artifacts/domain_map.yaml +547 -0
- package/skills/_artifacts/skill_spec.md +67 -0
- package/skills/_artifacts/skill_tree.yaml +278 -0
- package/skills/api-expansion-workflow/SKILL.md +52 -0
- package/skills/app-integration/SKILL.md +38 -0
- package/skills/calculate-dates/SKILL.md +432 -0
- package/skills/compare-dates/SKILL.md +412 -0
- package/skills/convert-types/SKILL.md +305 -0
- package/skills/durations/SKILL.md +418 -0
- package/skills/format-date-time/SKILL.md +486 -0
- package/skills/format-date-time/references/format-api.md +34 -0
- package/skills/format-relative-time/SKILL.md +223 -0
- package/skills/get-current/SKILL.md +229 -0
- package/skills/interval-ops/SKILL.md +432 -0
- package/skills/issue-creation/SKILL.md +118 -0
- package/skills/lint-package-suggestion/SKILL.md +37 -0
- package/skills/new-method-implementation/SKILL.md +71 -0
- package/skills/parse-date-time/SKILL.md +349 -0
- package/skills/pr-contribution/SKILL.md +180 -0
- package/skills/unit-test-generation/SKILL.md +56 -0
- package/skills/validate-dates/SKILL.md +438 -0
- package/skills/zoned-date-ops/SKILL.md +422 -0
- package/skills/zoned-date-ops/references/timezones.md +13 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { calendarDate, plainDate } from "../regex/index.js";
|
|
3
|
+
import { calendarSystemIdFromTemporal, isCalendarSystem, temporalCalendarIds, } from "./calendarSystemIds.js";
|
|
4
|
+
import { dateFromEthiopicFamilyFields, isEthiopicFamilyCalendar, } from "./ethiopicFamilyCalendar.js";
|
|
5
|
+
/**
|
|
6
|
+
* Parse a plain ISO PlainDate string or a GMT calendar-annotated PlainDate string
|
|
7
|
+
* (`"5785-01-01[u-ca=hebrew]"`, calendar-native fields, not Temporal's own ISO-digit
|
|
8
|
+
* `[u-ca=...]` annotation convention) into a Temporal.PlainDate. Throws on invalid input —
|
|
9
|
+
* callers wrap this in try-catch per GMT's sentinel-return contract.
|
|
10
|
+
*
|
|
11
|
+
* The regex only proves shape; `Temporal.PlainDate.from` performs the real construction
|
|
12
|
+
* and validation (rejecting overflowed fields and unknown calendar identifiers), per the
|
|
13
|
+
* scoped manual-string-parsing exception for fixed, non-caller-supplied grammars. The
|
|
14
|
+
* Ethiopic family ("ethiopic" / "ethiopic-amete-alem" / "coptic") is the one exception —
|
|
15
|
+
* see ethiopicFamilyCalendar.ts for why they're constructed via GMT-owned arithmetic
|
|
16
|
+
* instead of Temporal's own calendar ids for those three.
|
|
17
|
+
*
|
|
18
|
+
* The non-annotated fallback branch requires the strict PlainDate-only shape (via the
|
|
19
|
+
* `plainDate` regex) before delegating to `Temporal.PlainDate.from` — bare `.from()` silently
|
|
20
|
+
* truncates a full datetime/zoned string to its date portion (`Temporal.PlainDate.from("2024-
|
|
21
|
+
* 03-10T14:30:00")` succeeds), which would make this function (and therefore
|
|
22
|
+
* `isValidCalendarDate`/`convertDateToCalendar`) wrongly accept datetime input. Found and
|
|
23
|
+
* fixed as part of E5 (issue #78) — it predates this story but this function is E5's shared
|
|
24
|
+
* gate, so it must not inherit the hazard.
|
|
25
|
+
*/
|
|
26
|
+
export function parseCalendarDateValue(value) {
|
|
27
|
+
const match = calendarDate.exec(value);
|
|
28
|
+
if (!match) {
|
|
29
|
+
if (!plainDate.test(value)) {
|
|
30
|
+
throw new RangeError(`Not a valid GMT PlainDate string: ${value}`);
|
|
31
|
+
}
|
|
32
|
+
return Temporal.PlainDate.from(value);
|
|
33
|
+
}
|
|
34
|
+
const [, year, month, day, calendarId, era] = match;
|
|
35
|
+
if (isEthiopicFamilyCalendar(calendarId)) {
|
|
36
|
+
return dateFromEthiopicFamilyFields(calendarId, {
|
|
37
|
+
year: era ? undefined : Number(year),
|
|
38
|
+
era,
|
|
39
|
+
eraYear: era ? Number(year) : undefined,
|
|
40
|
+
month: Number(month),
|
|
41
|
+
day: Number(day),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
// The regex captures GMT's own calendar identifier (e.g. "islamic-tabular"), which
|
|
45
|
+
// doesn't always match Temporal's id for the same calendar (e.g. "islamic-tbla") — an
|
|
46
|
+
// unrecognized id is passed through as-is so Temporal.PlainDate.from rejects it the
|
|
47
|
+
// same way it rejects any other unknown calendar identifier.
|
|
48
|
+
const temporalCalendarId = isCalendarSystem(calendarId)
|
|
49
|
+
? temporalCalendarIds[calendarId]
|
|
50
|
+
: calendarId;
|
|
51
|
+
// A captured `;era=` suffix (only ever present for "japanese", the one remaining calendar
|
|
52
|
+
// whose plain `.year` doesn't reset at an era change) means `year` is an era-relative
|
|
53
|
+
// `eraYear`, not a proleptic year — Temporal needs `era`+`eraYear` together to resolve
|
|
54
|
+
// it back to the correct date.
|
|
55
|
+
const fields = era
|
|
56
|
+
? { era, eraYear: Number(year), month: Number(month), day: Number(day) }
|
|
57
|
+
: { year: Number(year), month: Number(month), day: Number(day) };
|
|
58
|
+
return Temporal.PlainDate.from({ ...fields, calendar: temporalCalendarId }, { overflow: "reject" });
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Split a Temporal.PlainDate into GMT's calendar-annotated string halves: a bare ISO date with
|
|
62
|
+
* an empty annotation for the "iso8601" calendar (GMT's existing default, unannotated), or the
|
|
63
|
+
* calendar's own native year/month/day plus a `[u-ca=<identifier>]` annotation for any other.
|
|
64
|
+
*
|
|
65
|
+
* "japanese" is the one exception to "native year": Temporal's `.year` for it stays
|
|
66
|
+
* proleptic across era changes (Meiji 1 and Reiwa 1 don't both read `1`), which would
|
|
67
|
+
* contradict the era-based numbering the calendar is for — so it's tagged with `.eraYear`
|
|
68
|
+
* and `;era=<name>` instead, both of which Temporal always populates for this calendar
|
|
69
|
+
* (including for pre-Meiji dates, under a synthetic "japanese" era — see the README's
|
|
70
|
+
* calendar-systems section for why GMT doesn't reject those unlike `@internationalized/date`).
|
|
71
|
+
*
|
|
72
|
+
* This function is never called with an Ethiopic-family ("ethiopic" /
|
|
73
|
+
* "ethiopic-amete-alem" / "coptic") calendared date — those three format through
|
|
74
|
+
* `ethiopicFamilyDateParts` in ethiopicFamilyCalendar.ts instead, which never touches
|
|
75
|
+
* Temporal's own "ethiopic"/"coptic" calendar ids. See that file for why.
|
|
76
|
+
*/
|
|
77
|
+
export function calendarDateParts(date) {
|
|
78
|
+
if (date.calendarId === "iso8601") {
|
|
79
|
+
return { date: date.toString(), annotation: "" };
|
|
80
|
+
}
|
|
81
|
+
const calendarId = calendarSystemIdFromTemporal(date.calendarId);
|
|
82
|
+
const isEraBased = calendarId === "japanese";
|
|
83
|
+
const year = String(isEraBased ? date.eraYear : date.year).padStart(4, "0");
|
|
84
|
+
const month = String(date.month).padStart(2, "0");
|
|
85
|
+
const day = String(date.day).padStart(2, "0");
|
|
86
|
+
const eraSuffix = isEraBased ? `;era=${date.era}` : "";
|
|
87
|
+
return {
|
|
88
|
+
date: `${year}-${month}-${day}`,
|
|
89
|
+
annotation: `[u-ca=${calendarId}${eraSuffix}]`,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Format a Temporal.PlainDate as GMT's calendar-annotated string: a bare ISO string for
|
|
94
|
+
* the "iso8601" calendar (GMT's existing default, unannotated), or the calendar's own
|
|
95
|
+
* native year/month/day tagged with `[u-ca=<identifier>]` for any other calendar.
|
|
96
|
+
*
|
|
97
|
+
* See `calendarDateParts` (the shared primitive this concatenates) for the era handling and
|
|
98
|
+
* the Ethiopic-family carve-out.
|
|
99
|
+
*/
|
|
100
|
+
export function formatCalendarDate(date) {
|
|
101
|
+
const { date: datePart, annotation } = calendarDateParts(date);
|
|
102
|
+
return `${datePart}${annotation}`;
|
|
103
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CalendarSystem } from "../types/index.js";
|
|
2
|
+
export declare const temporalCalendarIds: Record<CalendarSystem, string>;
|
|
3
|
+
export declare function isCalendarSystem(value: string): value is CalendarSystem;
|
|
4
|
+
export declare function calendarSystemIdFromTemporal(temporalId: string): CalendarSystem;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Maps GMT's public CalendarSystem identifiers to the Temporal/Intl calendar identifiers
|
|
2
|
+
// they wrap. "gregorian" maps to "iso8601" (Temporal's default, era-free calendar) rather
|
|
3
|
+
// than "gregory" (which carries BCE/CE eras) since GMT's existing unannotated ISO strings
|
|
4
|
+
// are already iso8601-calendared — this keeps "gregorian" round-trips a no-op.
|
|
5
|
+
//
|
|
6
|
+
// "islamic-tabular" maps to Temporal's "islamic-tbla" id (its name for the same
|
|
7
|
+
// arithmetic/astronomical-epoch tabular calendar). "islamic-umalqura" resolves through
|
|
8
|
+
// Temporal's built-in Umm al-Qura implementation rather than a table GMT ports itself —
|
|
9
|
+
// per E1's "no ported leap-year tables or arithmetic" precedent, the polyfill already
|
|
10
|
+
// carries the correct tabulated/algorithmic data, so a GMT-owned copy would only add a
|
|
11
|
+
// second, divergence-prone source of truth.
|
|
12
|
+
//
|
|
13
|
+
// "taiwan" maps to Temporal's "roc" id (Republic of China calendar — the same calendar
|
|
14
|
+
// react-aria's TaiwanCalendar wraps under a different name). "japanese", "buddhist", and
|
|
15
|
+
// "persian"/"indian" match Temporal's own ids directly.
|
|
16
|
+
//
|
|
17
|
+
// "ethiopic-amete-alem" maps to Temporal's "ethioaa" id (Ethiopic calendar anchored to the
|
|
18
|
+
// Amete Alem/"Year of the World" epoch, ~5493 BCE — a single continuous era, never resets).
|
|
19
|
+
// "ethiopic" and "coptic" match Temporal's own ids directly; both share the Ethiopic
|
|
20
|
+
// family's 13-month structure (12 x 30 days + a 5/6-day Pagume/Nasie) but differ in epoch —
|
|
21
|
+
// "ethiopic" additionally resets to the Amete Mihret/"Incarnation" era at its own epoch
|
|
22
|
+
// (~AD 8), which is why it needs the same eraYear-based string handling as "japanese" (see
|
|
23
|
+
// calendarDateString.ts's isEraBased).
|
|
24
|
+
export const temporalCalendarIds = {
|
|
25
|
+
gregorian: "iso8601",
|
|
26
|
+
hebrew: "hebrew",
|
|
27
|
+
"islamic-civil": "islamic-civil",
|
|
28
|
+
"islamic-tabular": "islamic-tbla",
|
|
29
|
+
"islamic-umalqura": "islamic-umalqura",
|
|
30
|
+
japanese: "japanese",
|
|
31
|
+
buddhist: "buddhist",
|
|
32
|
+
taiwan: "roc",
|
|
33
|
+
persian: "persian",
|
|
34
|
+
indian: "indian",
|
|
35
|
+
ethiopic: "ethiopic",
|
|
36
|
+
"ethiopic-amete-alem": "ethioaa",
|
|
37
|
+
coptic: "coptic",
|
|
38
|
+
};
|
|
39
|
+
export function isCalendarSystem(value) {
|
|
40
|
+
return value in temporalCalendarIds;
|
|
41
|
+
}
|
|
42
|
+
// Reverse of temporalCalendarIds — needed because some GMT calendar identifiers (e.g.
|
|
43
|
+
// "islamic-tabular") don't match Temporal's own id for the same calendar ("islamic-tbla"),
|
|
44
|
+
// so a PlainDate's `calendarId` can't be used directly as GMT's string annotation.
|
|
45
|
+
const gmtCalendarSystemIds = Object.fromEntries(Object.entries(temporalCalendarIds).map(([gmtId, temporalId]) => [
|
|
46
|
+
temporalId,
|
|
47
|
+
gmtId,
|
|
48
|
+
]));
|
|
49
|
+
export function calendarSystemIdFromTemporal(temporalId) {
|
|
50
|
+
const gmtId = gmtCalendarSystemIds[temporalId];
|
|
51
|
+
if (!gmtId) {
|
|
52
|
+
throw new Error(`Unsupported Temporal calendar id: ${temporalId}`);
|
|
53
|
+
}
|
|
54
|
+
return gmtId;
|
|
55
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CalendarSystem } from "../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Determine which CalendarSystem a GMT PlainDate string is expressed in: `"gregorian"` for a
|
|
4
|
+
* bare (non-annotated) string, the tagged CalendarSystem for a calendar-annotated string (as
|
|
5
|
+
* produced by `convertDateToCalendar`), or `null` when the annotation names an unrecognized
|
|
6
|
+
* calendar identifier.
|
|
7
|
+
*
|
|
8
|
+
* Does not itself validate overall shape or field values — pair with `parseCalendarDateValue`
|
|
9
|
+
* (which throws on invalid input) for full validation. Callers are expected to have already
|
|
10
|
+
* confirmed `value` is valid (e.g. via `isValidCalendarDate`) before relying on this.
|
|
11
|
+
*
|
|
12
|
+
* Part of E5 (issue #78)'s calendar-aware `plain/` gate — see the E5 decisions of record for
|
|
13
|
+
* why calendar-system awareness is confined to `plain/` `PlainDate` values (D1).
|
|
14
|
+
*/
|
|
15
|
+
export declare function calendarSystemOfDateValue(value: string): CalendarSystem | null;
|
|
16
|
+
/**
|
|
17
|
+
* N-ary generalization of `calendarSystemOfDateValue` for list-form functions
|
|
18
|
+
* (`mergeIntervalsDate`, `intervalXorAllDate`, `intervalSplitAtDate`'s `points`): returns the
|
|
19
|
+
* shared CalendarSystem when every value carries the same tag, or `null` on any mismatch or
|
|
20
|
+
* unrecognized identifier. An empty list is treated as `"gregorian"` (the identity/no-op case).
|
|
21
|
+
*/
|
|
22
|
+
export declare function calendarOfAllDateValues(values: readonly string[]): CalendarSystem | null;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { calendarDate } from "../regex/index.js";
|
|
2
|
+
import { isCalendarSystem } from "./calendarSystemIds.js";
|
|
3
|
+
/**
|
|
4
|
+
* Determine which CalendarSystem a GMT PlainDate string is expressed in: `"gregorian"` for a
|
|
5
|
+
* bare (non-annotated) string, the tagged CalendarSystem for a calendar-annotated string (as
|
|
6
|
+
* produced by `convertDateToCalendar`), or `null` when the annotation names an unrecognized
|
|
7
|
+
* calendar identifier.
|
|
8
|
+
*
|
|
9
|
+
* Does not itself validate overall shape or field values — pair with `parseCalendarDateValue`
|
|
10
|
+
* (which throws on invalid input) for full validation. Callers are expected to have already
|
|
11
|
+
* confirmed `value` is valid (e.g. via `isValidCalendarDate`) before relying on this.
|
|
12
|
+
*
|
|
13
|
+
* Part of E5 (issue #78)'s calendar-aware `plain/` gate — see the E5 decisions of record for
|
|
14
|
+
* why calendar-system awareness is confined to `plain/` `PlainDate` values (D1).
|
|
15
|
+
*/
|
|
16
|
+
export function calendarSystemOfDateValue(value) {
|
|
17
|
+
const match = calendarDate.exec(value);
|
|
18
|
+
if (!match) {
|
|
19
|
+
return "gregorian";
|
|
20
|
+
}
|
|
21
|
+
const [, , , , calendarId] = match;
|
|
22
|
+
return isCalendarSystem(calendarId) ? calendarId : null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* N-ary generalization of `calendarSystemOfDateValue` for list-form functions
|
|
26
|
+
* (`mergeIntervalsDate`, `intervalXorAllDate`, `intervalSplitAtDate`'s `points`): returns the
|
|
27
|
+
* shared CalendarSystem when every value carries the same tag, or `null` on any mismatch or
|
|
28
|
+
* unrecognized identifier. An empty list is treated as `"gregorian"` (the identity/no-op case).
|
|
29
|
+
*/
|
|
30
|
+
export function calendarOfAllDateValues(values) {
|
|
31
|
+
if (values.length === 0) {
|
|
32
|
+
return "gregorian";
|
|
33
|
+
}
|
|
34
|
+
const first = calendarSystemOfDateValue(values[0]);
|
|
35
|
+
if (!first) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
return values.every((value) => calendarSystemOfDateValue(value) === first)
|
|
39
|
+
? first
|
|
40
|
+
: null;
|
|
41
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { CalendarSystem } from "../types/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Determine which CalendarSystem a GMT ZonedDateTime string is expressed in: `"gregorian"` for a
|
|
4
|
+
* bare (non-annotated) ISO zoned string, the tagged CalendarSystem for a GMT calendar-annotated
|
|
5
|
+
* zoned string (as produced by `convertZonedToCalendar`), or `null` when the annotation names an
|
|
6
|
+
* unrecognized calendar identifier.
|
|
7
|
+
*
|
|
8
|
+
* Kept as its own file rather than an overload of `calendarValueOfDate.ts` because the two differ
|
|
9
|
+
* on both axes that matter: the regex (zoned carries a time, an offset and a `[timeZone]`
|
|
10
|
+
* segment) and the non-matching fallback. `calendarSystemOfDateValue` reports `"gregorian"` for
|
|
11
|
+
* ANY non-match, which is safe there because `plain/`'s only annotated shape is the one its regex
|
|
12
|
+
* accepts. In `zoned/` a non-matching string may still carry `[u-ca=...]` — Temporal's own
|
|
13
|
+
* RFC 9557 ordering, or a wrong-ordered GMT string — and calling either of those `"gregorian"`
|
|
14
|
+
* would hand a caller a Gregorian answer for a string that visibly asked for something else. Those
|
|
15
|
+
* fail closed with `null` instead.
|
|
16
|
+
*
|
|
17
|
+
* Does not itself validate overall shape or field values — pair with `parseCalendarZonedValue`
|
|
18
|
+
* (which throws on invalid input) for full validation. Callers are expected to have already
|
|
19
|
+
* confirmed `value` is valid (e.g. via `isValidCalendarZonedDateTime`) before relying on this.
|
|
20
|
+
*
|
|
21
|
+
* Part of E7 (issue #152)'s calendar-aware `zoned/` gate.
|
|
22
|
+
*/
|
|
23
|
+
export declare function calendarSystemOfZonedValue(value: string): CalendarSystem | null;
|
|
24
|
+
/**
|
|
25
|
+
* N-ary generalization of `calendarSystemOfZonedValue` for list-form functions
|
|
26
|
+
* (`mergeIntervalsZoned`, `intervalXorAllZoned`, `intervalSplitAtZoned`'s `points`, and the
|
|
27
|
+
* four-endpoint pairwise set operations): returns the shared CalendarSystem when every value
|
|
28
|
+
* carries the same tag, or `null` on any mismatch or unrecognized identifier. An empty list is
|
|
29
|
+
* treated as `"gregorian"` (the identity/no-op case).
|
|
30
|
+
*
|
|
31
|
+
* This is E7's D4-zoned reject gate for the eight value-returning interval set operations. A
|
|
32
|
+
* "winning endpoint's tag survives" policy was considered and rejected: four of the eight return
|
|
33
|
+
* ARRAYS, so a per-element copied tag would produce a result set whose members disagree about
|
|
34
|
+
* which calendar they are in — unreadable as a set. `intervalUnionZoned`'s existing "winning
|
|
35
|
+
* endpoint's time zone wins" behavior is not precedent for this; that is about the zone, which is
|
|
36
|
+
* a property of the surviving point, not about the calendar, which is a property of the answer.
|
|
37
|
+
*/
|
|
38
|
+
export declare function calendarOfAllZonedValues(values: readonly string[]): CalendarSystem | null;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { calendarZonedDateTime } from "../regex/index.js";
|
|
2
|
+
import { isCalendarSystem } from "./calendarSystemIds.js";
|
|
3
|
+
import { hasCalendarAnnotation } from "./hasCalendarAnnotation.js";
|
|
4
|
+
/**
|
|
5
|
+
* Determine which CalendarSystem a GMT ZonedDateTime string is expressed in: `"gregorian"` for a
|
|
6
|
+
* bare (non-annotated) ISO zoned string, the tagged CalendarSystem for a GMT calendar-annotated
|
|
7
|
+
* zoned string (as produced by `convertZonedToCalendar`), or `null` when the annotation names an
|
|
8
|
+
* unrecognized calendar identifier.
|
|
9
|
+
*
|
|
10
|
+
* Kept as its own file rather than an overload of `calendarValueOfDate.ts` because the two differ
|
|
11
|
+
* on both axes that matter: the regex (zoned carries a time, an offset and a `[timeZone]`
|
|
12
|
+
* segment) and the non-matching fallback. `calendarSystemOfDateValue` reports `"gregorian"` for
|
|
13
|
+
* ANY non-match, which is safe there because `plain/`'s only annotated shape is the one its regex
|
|
14
|
+
* accepts. In `zoned/` a non-matching string may still carry `[u-ca=...]` — Temporal's own
|
|
15
|
+
* RFC 9557 ordering, or a wrong-ordered GMT string — and calling either of those `"gregorian"`
|
|
16
|
+
* would hand a caller a Gregorian answer for a string that visibly asked for something else. Those
|
|
17
|
+
* fail closed with `null` instead.
|
|
18
|
+
*
|
|
19
|
+
* Does not itself validate overall shape or field values — pair with `parseCalendarZonedValue`
|
|
20
|
+
* (which throws on invalid input) for full validation. Callers are expected to have already
|
|
21
|
+
* confirmed `value` is valid (e.g. via `isValidCalendarZonedDateTime`) before relying on this.
|
|
22
|
+
*
|
|
23
|
+
* Part of E7 (issue #152)'s calendar-aware `zoned/` gate.
|
|
24
|
+
*/
|
|
25
|
+
export function calendarSystemOfZonedValue(value) {
|
|
26
|
+
const match = calendarZonedDateTime.exec(value);
|
|
27
|
+
if (!match) {
|
|
28
|
+
return hasCalendarAnnotation(value) ? null : "gregorian";
|
|
29
|
+
}
|
|
30
|
+
const [, , , , , , calendarId] = match;
|
|
31
|
+
return isCalendarSystem(calendarId) ? calendarId : null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* N-ary generalization of `calendarSystemOfZonedValue` for list-form functions
|
|
35
|
+
* (`mergeIntervalsZoned`, `intervalXorAllZoned`, `intervalSplitAtZoned`'s `points`, and the
|
|
36
|
+
* four-endpoint pairwise set operations): returns the shared CalendarSystem when every value
|
|
37
|
+
* carries the same tag, or `null` on any mismatch or unrecognized identifier. An empty list is
|
|
38
|
+
* treated as `"gregorian"` (the identity/no-op case).
|
|
39
|
+
*
|
|
40
|
+
* This is E7's D4-zoned reject gate for the eight value-returning interval set operations. A
|
|
41
|
+
* "winning endpoint's tag survives" policy was considered and rejected: four of the eight return
|
|
42
|
+
* ARRAYS, so a per-element copied tag would produce a result set whose members disagree about
|
|
43
|
+
* which calendar they are in — unreadable as a set. `intervalUnionZoned`'s existing "winning
|
|
44
|
+
* endpoint's time zone wins" behavior is not precedent for this; that is about the zone, which is
|
|
45
|
+
* a property of the surviving point, not about the calendar, which is a property of the answer.
|
|
46
|
+
*/
|
|
47
|
+
export function calendarOfAllZonedValues(values) {
|
|
48
|
+
if (values.length === 0) {
|
|
49
|
+
return "gregorian";
|
|
50
|
+
}
|
|
51
|
+
const first = calendarSystemOfZonedValue(values[0]);
|
|
52
|
+
if (!first) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
return values.every((value) => calendarSystemOfZonedValue(value) === first)
|
|
56
|
+
? first
|
|
57
|
+
: null;
|
|
58
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import type { CalendarSystem } from "../types/index.js";
|
|
3
|
+
export interface CalendarZonedPair {
|
|
4
|
+
calendar: CalendarSystem;
|
|
5
|
+
a: Temporal.ZonedDateTime;
|
|
6
|
+
b: Temporal.ZonedDateTime;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Parse two GMT ZonedDateTime values for calendar-unit arithmetic (diff, count, length,
|
|
10
|
+
* split-by-unit): measure in the endpoints' shared calendar when both match, fall back to
|
|
11
|
+
* Gregorian/ISO otherwise, rather than rejecting outright. The zoned sibling of
|
|
12
|
+
* `calendarDatePairPolicy.ts`'s `parseCalendarDatePairForArithmetic` (E5 decision D5).
|
|
13
|
+
*
|
|
14
|
+
* The fallback is MORE load-bearing here than in `plain/`, not less.
|
|
15
|
+
* `Temporal.PlainDate.prototype.until` throws across mismatched calendars only for date units;
|
|
16
|
+
* `Temporal.ZonedDateTime.prototype.until` throws for EVERY `largestUnit` — verified, including
|
|
17
|
+
* `"hour"` and `"nanosecond"`. Without this policy, `diffZoned(hebrewValue, islamicValue,
|
|
18
|
+
* "hours")` would return `null` for a question that has nothing to do with either calendar.
|
|
19
|
+
*
|
|
20
|
+
* **Consume the returned `a`/`b`, never the values you parsed them from.** The returned operands
|
|
21
|
+
* are already normalized to the resolved calendar, and every downstream use — including a
|
|
22
|
+
* `Temporal.Duration.prototype.total` `relativeTo` anchor — has to be the normalized one. Feeding
|
|
23
|
+
* a raw calendar-tagged operand to `relativeTo` while measuring in ISO does NOT throw; it returns
|
|
24
|
+
* a plausible-looking wrong number (verified: 12.586… where the correct ISO answer is 12.5666…
|
|
25
|
+
* and the correct Hebrew answer is 13), which no sanity check would catch.
|
|
26
|
+
*
|
|
27
|
+
* Throws if either value fails to parse as a valid GMT ZonedDateTime string — callers are
|
|
28
|
+
* expected to have already validated both values (e.g. via `isValidCalendarZonedDateTime`) before
|
|
29
|
+
* calling this, consistent with GMT's existing gate-then-parse-inside-try structure.
|
|
30
|
+
*/
|
|
31
|
+
export declare function parseCalendarZonedPairForArithmetic(aValue: string, bValue: string): CalendarZonedPair;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { calendarSystemOfZonedValue } from "./calendarValueOfZoned.js";
|
|
2
|
+
import { parseCalendarZonedValue } from "./calendarZonedString.js";
|
|
3
|
+
/**
|
|
4
|
+
* Parse two GMT ZonedDateTime values for calendar-unit arithmetic (diff, count, length,
|
|
5
|
+
* split-by-unit): measure in the endpoints' shared calendar when both match, fall back to
|
|
6
|
+
* Gregorian/ISO otherwise, rather than rejecting outright. The zoned sibling of
|
|
7
|
+
* `calendarDatePairPolicy.ts`'s `parseCalendarDatePairForArithmetic` (E5 decision D5).
|
|
8
|
+
*
|
|
9
|
+
* The fallback is MORE load-bearing here than in `plain/`, not less.
|
|
10
|
+
* `Temporal.PlainDate.prototype.until` throws across mismatched calendars only for date units;
|
|
11
|
+
* `Temporal.ZonedDateTime.prototype.until` throws for EVERY `largestUnit` — verified, including
|
|
12
|
+
* `"hour"` and `"nanosecond"`. Without this policy, `diffZoned(hebrewValue, islamicValue,
|
|
13
|
+
* "hours")` would return `null` for a question that has nothing to do with either calendar.
|
|
14
|
+
*
|
|
15
|
+
* **Consume the returned `a`/`b`, never the values you parsed them from.** The returned operands
|
|
16
|
+
* are already normalized to the resolved calendar, and every downstream use — including a
|
|
17
|
+
* `Temporal.Duration.prototype.total` `relativeTo` anchor — has to be the normalized one. Feeding
|
|
18
|
+
* a raw calendar-tagged operand to `relativeTo` while measuring in ISO does NOT throw; it returns
|
|
19
|
+
* a plausible-looking wrong number (verified: 12.586… where the correct ISO answer is 12.5666…
|
|
20
|
+
* and the correct Hebrew answer is 13), which no sanity check would catch.
|
|
21
|
+
*
|
|
22
|
+
* Throws if either value fails to parse as a valid GMT ZonedDateTime string — callers are
|
|
23
|
+
* expected to have already validated both values (e.g. via `isValidCalendarZonedDateTime`) before
|
|
24
|
+
* calling this, consistent with GMT's existing gate-then-parse-inside-try structure.
|
|
25
|
+
*/
|
|
26
|
+
export function parseCalendarZonedPairForArithmetic(aValue, bValue) {
|
|
27
|
+
const calendarA = calendarSystemOfZonedValue(aValue);
|
|
28
|
+
const calendarB = calendarSystemOfZonedValue(bValue);
|
|
29
|
+
const a = parseCalendarZonedValue(aValue);
|
|
30
|
+
const b = parseCalendarZonedValue(bValue);
|
|
31
|
+
if (calendarA && calendarB && calendarA === calendarB) {
|
|
32
|
+
return { calendar: calendarA, a, b };
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
calendar: "gregorian",
|
|
36
|
+
a: a.withCalendar("iso8601"),
|
|
37
|
+
b: b.withCalendar("iso8601"),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import type { CalendarSystem, Disambiguation, Offset } from "../types/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Parse a bare ISO ZonedDateTime string or a GMT calendar-annotated ZonedDateTime string
|
|
5
|
+
* (`"5784-06-15T14:30:00-05:00[u-ca=hebrew][America/New_York]"`, calendar-native fields, not
|
|
6
|
+
* Temporal's own ISO-digit `[u-ca=...]` annotation convention) into a Temporal.ZonedDateTime.
|
|
7
|
+
* Throws on invalid input — callers wrap this in try-catch per GMT's sentinel-return contract.
|
|
8
|
+
*
|
|
9
|
+
* The regex only proves shape; the real construction and validation happen in Temporal —
|
|
10
|
+
* `parseCalendarDateValue` (`Temporal.PlainDate.from(fields, { overflow: "reject" })`) for the
|
|
11
|
+
* calendar-native date half, and `Temporal.ZonedDateTime.from` for the recomposed ISO string
|
|
12
|
+
* (which rejects unknown zones, stale offsets, and out-of-range times). See
|
|
13
|
+
* `context/coding-standards.md`'s scoped manual-string-parsing exception, rule 2.
|
|
14
|
+
*
|
|
15
|
+
* ---------------------------------------------------------------------------------------
|
|
16
|
+
* WHY THE DATE HALF IS FIELD-DECOMPOSED AND HANDED BACK TO TEMPORAL AS ISO DIGITS
|
|
17
|
+
* ---------------------------------------------------------------------------------------
|
|
18
|
+
* The `;era=` suffix can NEVER round-trip through Temporal, at any segment ordering, because it
|
|
19
|
+
* is not valid RFC 9557 at all — `Temporal.PlainDate.from("0006-10-03[u-ca=japanese;era=reiwa]")`
|
|
20
|
+
* throws `RangeError: invalid RFC 9557 string`, and so does every `Temporal.*.from` entry point
|
|
21
|
+
* given the same suffix. Era-bearing calendars ("japanese", "ethiopic") therefore have to be
|
|
22
|
+
* decomposed into `{ era, eraYear, month, day }` and constructed field-wise, which is exactly
|
|
23
|
+
* what `parseCalendarDateValue` already does for the plain case — this function delegates the
|
|
24
|
+
* whole date half to it rather than reimplementing era handling, the Ethiopic-family "ethioaa"
|
|
25
|
+
* carrier routing, or the GMT-to-Temporal calendar-id mapping.
|
|
26
|
+
*
|
|
27
|
+
* The date half then travels back through Temporal as plain ISO digits
|
|
28
|
+
* (`.withCalendar("iso8601").toString()`), so `Temporal.ZonedDateTime.from` resolves the zone,
|
|
29
|
+
* offset and DST against a string it can actually parse. The calendar is re-attached to the
|
|
30
|
+
* RESULT via `.withCalendar(...)`, which keeps downstream `.add`/`.until`/`.round` calendar-aware
|
|
31
|
+
* (verified: `withTimeZone`/`round`/`with`/`startOfDay`/`toPlainDate` all preserve the tag).
|
|
32
|
+
*
|
|
33
|
+
* `isLeapSecond` runs before anything else, exactly as `isValidZonedDateTime` does: verified that
|
|
34
|
+
* `Temporal.ZonedDateTime.from("2024-06-30T23:59:60+00:00[UTC]")` silently CLAMPS to `:59` rather
|
|
35
|
+
* than throwing, so this guard is load-bearing rather than redundant.
|
|
36
|
+
*
|
|
37
|
+
* @param value bare ISO zoned datetime string, or GMT calendar-annotated zoned datetime string
|
|
38
|
+
* @param options optional Temporal `disambiguation`/`offset`, passed through to
|
|
39
|
+
* `Temporal.ZonedDateTime.from` so a caller's own DST/offset policy still applies
|
|
40
|
+
* @returns Temporal.ZonedDateTime carrying the annotated calendar (or `iso8601` when bare)
|
|
41
|
+
*/
|
|
42
|
+
export declare function parseCalendarZonedValue(value: string, options?: {
|
|
43
|
+
disambiguation?: Disambiguation;
|
|
44
|
+
offset?: Offset;
|
|
45
|
+
}): Temporal.ZonedDateTime;
|
|
46
|
+
/**
|
|
47
|
+
* Format a Temporal.ZonedDateTime as GMT's calendar-annotated (or bare ISO) zoned string in a
|
|
48
|
+
* known target CalendarSystem — the zoned companion to `formatDateInCalendar`, and the ONLY
|
|
49
|
+
* writer of the calendar-annotated zoned grammar anywhere in GMT.
|
|
50
|
+
*
|
|
51
|
+
* Never call `zdt.toString()` on a calendared value and never compose
|
|
52
|
+
* `` `${zdt.toPlainDateTime()}[${zdt.timeZoneId}]` `` on one either: both emit Temporal's
|
|
53
|
+
* `[timeZone][u-ca=...]` RFC 9557 ordering (verified: a Hebrew-calendared
|
|
54
|
+
* `.toPlainDateTime().toString()` yields `"2024-03-25T14:30:00[u-ca=hebrew]"`), which is exactly
|
|
55
|
+
* the ordering GMT rejects because reading it back misparses the digits as ISO. Route every
|
|
56
|
+
* calendar-annotated zoned output through this function instead.
|
|
57
|
+
*
|
|
58
|
+
* Every field is RE-DERIVED from the actual `zdt` result and nothing but the IANA zone id is
|
|
59
|
+
* copied (E7's D7-zoned, extending E5's D7): a single calendar-unit add can move the era AND the
|
|
60
|
+
* UTC offset at once — verified, Japanese Heisei 31-04-05 in `Africa/Casablanca` `+1 month` lands
|
|
61
|
+
* on Reiwa 1-05-05 inside a DST fold — so a tag or offset copied from the input would describe a
|
|
62
|
+
* moment that no longer exists.
|
|
63
|
+
*
|
|
64
|
+
* Unlike `formatDateInCalendar`, this does NOT require `zdt` to already carry `calendar`'s own
|
|
65
|
+
* Temporal calendar id — it re-calendars the value itself before reading the date fields. That is
|
|
66
|
+
* deliberate: several `zoned/interval/*` functions synthesize boundary points via
|
|
67
|
+
* `Temporal.Instant.prototype.toZonedDateTimeISO`, which always returns an `iso8601`-calendared
|
|
68
|
+
* value. Re-calendaring here means a synthesized boundary can never silently emit a bare ISO
|
|
69
|
+
* string into an otherwise calendar-tagged result set — one class of bug removed by construction
|
|
70
|
+
* rather than by remembering to re-attach the tag at every synthesis site. The instant, wall time
|
|
71
|
+
* and zone are untouched; only which calendar the date fields resolve through changes.
|
|
72
|
+
*
|
|
73
|
+
* @param zdt Temporal.ZonedDateTime to format
|
|
74
|
+
* @param calendar the CalendarSystem to express `zdt`'s date fields in
|
|
75
|
+
* @returns GMT's calendar-annotated (or bare ISO, for "gregorian") zoned datetime string
|
|
76
|
+
*/
|
|
77
|
+
export declare function formatZonedInCalendar(zdt: Temporal.ZonedDateTime, calendar: CalendarSystem): string;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
+
import { isLeapSecond } from "../plain/validate/isLeapSecond.js";
|
|
3
|
+
import { calendarZonedDateTime } from "../regex/index.js";
|
|
4
|
+
import { parseCalendarDateValue } from "./calendarDateString.js";
|
|
5
|
+
import { temporalCalendarIds } from "./calendarSystemIds.js";
|
|
6
|
+
import { isEthiopicFamilyCalendar } from "./ethiopicFamilyCalendar.js";
|
|
7
|
+
import { calendarDateStringParts } from "./formatDateInCalendar.js";
|
|
8
|
+
import { hasCalendarAnnotation } from "./hasCalendarAnnotation.js";
|
|
9
|
+
/**
|
|
10
|
+
* Parse a bare ISO ZonedDateTime string or a GMT calendar-annotated ZonedDateTime string
|
|
11
|
+
* (`"5784-06-15T14:30:00-05:00[u-ca=hebrew][America/New_York]"`, calendar-native fields, not
|
|
12
|
+
* Temporal's own ISO-digit `[u-ca=...]` annotation convention) into a Temporal.ZonedDateTime.
|
|
13
|
+
* Throws on invalid input — callers wrap this in try-catch per GMT's sentinel-return contract.
|
|
14
|
+
*
|
|
15
|
+
* The regex only proves shape; the real construction and validation happen in Temporal —
|
|
16
|
+
* `parseCalendarDateValue` (`Temporal.PlainDate.from(fields, { overflow: "reject" })`) for the
|
|
17
|
+
* calendar-native date half, and `Temporal.ZonedDateTime.from` for the recomposed ISO string
|
|
18
|
+
* (which rejects unknown zones, stale offsets, and out-of-range times). See
|
|
19
|
+
* `context/coding-standards.md`'s scoped manual-string-parsing exception, rule 2.
|
|
20
|
+
*
|
|
21
|
+
* ---------------------------------------------------------------------------------------
|
|
22
|
+
* WHY THE DATE HALF IS FIELD-DECOMPOSED AND HANDED BACK TO TEMPORAL AS ISO DIGITS
|
|
23
|
+
* ---------------------------------------------------------------------------------------
|
|
24
|
+
* The `;era=` suffix can NEVER round-trip through Temporal, at any segment ordering, because it
|
|
25
|
+
* is not valid RFC 9557 at all — `Temporal.PlainDate.from("0006-10-03[u-ca=japanese;era=reiwa]")`
|
|
26
|
+
* throws `RangeError: invalid RFC 9557 string`, and so does every `Temporal.*.from` entry point
|
|
27
|
+
* given the same suffix. Era-bearing calendars ("japanese", "ethiopic") therefore have to be
|
|
28
|
+
* decomposed into `{ era, eraYear, month, day }` and constructed field-wise, which is exactly
|
|
29
|
+
* what `parseCalendarDateValue` already does for the plain case — this function delegates the
|
|
30
|
+
* whole date half to it rather than reimplementing era handling, the Ethiopic-family "ethioaa"
|
|
31
|
+
* carrier routing, or the GMT-to-Temporal calendar-id mapping.
|
|
32
|
+
*
|
|
33
|
+
* The date half then travels back through Temporal as plain ISO digits
|
|
34
|
+
* (`.withCalendar("iso8601").toString()`), so `Temporal.ZonedDateTime.from` resolves the zone,
|
|
35
|
+
* offset and DST against a string it can actually parse. The calendar is re-attached to the
|
|
36
|
+
* RESULT via `.withCalendar(...)`, which keeps downstream `.add`/`.until`/`.round` calendar-aware
|
|
37
|
+
* (verified: `withTimeZone`/`round`/`with`/`startOfDay`/`toPlainDate` all preserve the tag).
|
|
38
|
+
*
|
|
39
|
+
* `isLeapSecond` runs before anything else, exactly as `isValidZonedDateTime` does: verified that
|
|
40
|
+
* `Temporal.ZonedDateTime.from("2024-06-30T23:59:60+00:00[UTC]")` silently CLAMPS to `:59` rather
|
|
41
|
+
* than throwing, so this guard is load-bearing rather than redundant.
|
|
42
|
+
*
|
|
43
|
+
* @param value bare ISO zoned datetime string, or GMT calendar-annotated zoned datetime string
|
|
44
|
+
* @param options optional Temporal `disambiguation`/`offset`, passed through to
|
|
45
|
+
* `Temporal.ZonedDateTime.from` so a caller's own DST/offset policy still applies
|
|
46
|
+
* @returns Temporal.ZonedDateTime carrying the annotated calendar (or `iso8601` when bare)
|
|
47
|
+
*/
|
|
48
|
+
export function parseCalendarZonedValue(value, options) {
|
|
49
|
+
if (isLeapSecond(value)) {
|
|
50
|
+
throw new RangeError(`Leap seconds are not supported: ${value}`);
|
|
51
|
+
}
|
|
52
|
+
const match = calendarZonedDateTime.exec(value);
|
|
53
|
+
if (!match) {
|
|
54
|
+
// Either Temporal's own `[timeZone][u-ca=...]` ordering or a wrong-ordered GMT string. Both
|
|
55
|
+
// are rejected rather than re-parsed: the former is not GMT's contract (E5 decision D1), and
|
|
56
|
+
// the latter is the ~3760-year silent-misparse hazard documented in
|
|
57
|
+
// `regex/calendar-zoned-date-time.ts`. Only a genuinely un-annotated string falls through.
|
|
58
|
+
if (hasCalendarAnnotation(value)) {
|
|
59
|
+
throw new RangeError(`Not a valid GMT ZonedDateTime string: ${value}`);
|
|
60
|
+
}
|
|
61
|
+
const bare = Temporal.ZonedDateTime.from(value, options);
|
|
62
|
+
if (bare.timeZoneId.length === 0) {
|
|
63
|
+
throw new RangeError(`Missing time zone: ${value}`);
|
|
64
|
+
}
|
|
65
|
+
return bare;
|
|
66
|
+
}
|
|
67
|
+
const [, year, month, day, time, offset, calendarId, era, timeZone] = match;
|
|
68
|
+
const eraSuffix = era ? `;era=${era}` : "";
|
|
69
|
+
const date = parseCalendarDateValue(`${year}-${month}-${day}[u-ca=${calendarId}${eraSuffix}]`);
|
|
70
|
+
const isoDate = date.withCalendar("iso8601").toString();
|
|
71
|
+
const zoned = Temporal.ZonedDateTime.from(`${isoDate}T${time}${offset ?? ""}[${timeZone}]`, options);
|
|
72
|
+
// Re-attach the calendar the date half resolved to — `date.calendarId` rather than the string's
|
|
73
|
+
// own tag, so the Ethiopic family lands on its "ethioaa" carrier and GMT ids that differ from
|
|
74
|
+
// Temporal's ("islamic-tabular" -> "islamic-tbla") map through exactly once, in one place.
|
|
75
|
+
return zoned.withCalendar(date.calendarId);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Format a Temporal.ZonedDateTime as GMT's calendar-annotated (or bare ISO) zoned string in a
|
|
79
|
+
* known target CalendarSystem — the zoned companion to `formatDateInCalendar`, and the ONLY
|
|
80
|
+
* writer of the calendar-annotated zoned grammar anywhere in GMT.
|
|
81
|
+
*
|
|
82
|
+
* Never call `zdt.toString()` on a calendared value and never compose
|
|
83
|
+
* `` `${zdt.toPlainDateTime()}[${zdt.timeZoneId}]` `` on one either: both emit Temporal's
|
|
84
|
+
* `[timeZone][u-ca=...]` RFC 9557 ordering (verified: a Hebrew-calendared
|
|
85
|
+
* `.toPlainDateTime().toString()` yields `"2024-03-25T14:30:00[u-ca=hebrew]"`), which is exactly
|
|
86
|
+
* the ordering GMT rejects because reading it back misparses the digits as ISO. Route every
|
|
87
|
+
* calendar-annotated zoned output through this function instead.
|
|
88
|
+
*
|
|
89
|
+
* Every field is RE-DERIVED from the actual `zdt` result and nothing but the IANA zone id is
|
|
90
|
+
* copied (E7's D7-zoned, extending E5's D7): a single calendar-unit add can move the era AND the
|
|
91
|
+
* UTC offset at once — verified, Japanese Heisei 31-04-05 in `Africa/Casablanca` `+1 month` lands
|
|
92
|
+
* on Reiwa 1-05-05 inside a DST fold — so a tag or offset copied from the input would describe a
|
|
93
|
+
* moment that no longer exists.
|
|
94
|
+
*
|
|
95
|
+
* Unlike `formatDateInCalendar`, this does NOT require `zdt` to already carry `calendar`'s own
|
|
96
|
+
* Temporal calendar id — it re-calendars the value itself before reading the date fields. That is
|
|
97
|
+
* deliberate: several `zoned/interval/*` functions synthesize boundary points via
|
|
98
|
+
* `Temporal.Instant.prototype.toZonedDateTimeISO`, which always returns an `iso8601`-calendared
|
|
99
|
+
* value. Re-calendaring here means a synthesized boundary can never silently emit a bare ISO
|
|
100
|
+
* string into an otherwise calendar-tagged result set — one class of bug removed by construction
|
|
101
|
+
* rather than by remembering to re-attach the tag at every synthesis site. The instant, wall time
|
|
102
|
+
* and zone are untouched; only which calendar the date fields resolve through changes.
|
|
103
|
+
*
|
|
104
|
+
* @param zdt Temporal.ZonedDateTime to format
|
|
105
|
+
* @param calendar the CalendarSystem to express `zdt`'s date fields in
|
|
106
|
+
* @returns GMT's calendar-annotated (or bare ISO, for "gregorian") zoned datetime string
|
|
107
|
+
*/
|
|
108
|
+
export function formatZonedInCalendar(zdt, calendar) {
|
|
109
|
+
if (calendar === "gregorian") {
|
|
110
|
+
return zdt.withCalendar("iso8601").toString();
|
|
111
|
+
}
|
|
112
|
+
// The whole Ethiopic family computes through "ethioaa" rather than Temporal's own
|
|
113
|
+
// "ethiopic"/"coptic" ids, which throw under ICU >= 78 — see internal/ethiopicFamilyCalendar.ts.
|
|
114
|
+
const temporalCalendarId = isEthiopicFamilyCalendar(calendar)
|
|
115
|
+
? "ethioaa"
|
|
116
|
+
: temporalCalendarIds[calendar];
|
|
117
|
+
const { date, annotation } = calendarDateStringParts(zdt.withCalendar(temporalCalendarId).toPlainDate(), calendar);
|
|
118
|
+
const time = zdt.toPlainTime().toString();
|
|
119
|
+
return `${date}T${time}${zdt.offset}${annotation}[${zdt.timeZoneId}]`;
|
|
120
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute the wrapped (or rounded) target value for one field of a `cycle*` call.
|
|
3
|
+
*
|
|
4
|
+
* - `bounds: null` means the field is unbounded (only `year` uses this) — cycling is plain
|
|
5
|
+
* addition, and rounding still snaps to a multiple of `amount` with no wrap correction.
|
|
6
|
+
* - Non-round path is modulo arithmetic relative to `bounds.min`, so it resolves any `amount` —
|
|
7
|
+
* including one bigger than the field's own range (e.g. cycling month by +13) — in one step,
|
|
8
|
+
* not by repeatedly correcting a single overflow.
|
|
9
|
+
* - Round path is **not** "round to nearest": it steps by `Math.sign(amount)` first, then snaps to
|
|
10
|
+
* the next multiple of `Math.abs(amount)` in the direction of that sign (ceiling for positive
|
|
11
|
+
* amounts, floor for negative). Multiples are relative to `0`, not `bounds.min`. This matches
|
|
12
|
+
* `@internationalized/date`'s `CycleOptions.round` behavior exactly (verified against its
|
|
13
|
+
* `manipulation.ts` source) — e.g. minute `22` cycled by `+15` with `round: true` lands on `30`
|
|
14
|
+
* (the next multiple of 15 above 22), not `15` (the nearest multiple).
|
|
15
|
+
*
|
|
16
|
+
* @param current the field's current numeric value
|
|
17
|
+
* @param amount signed amount to cycle by
|
|
18
|
+
* @param bounds inclusive `{ min, max }` range to wrap within, or `null` for unbounded
|
|
19
|
+
* @param round whether to snap to the next/previous multiple of `amount` instead of adding it
|
|
20
|
+
* @example cycleFieldValue(12, 1, { min: 1, max: 12 }, false) // 1 (month December +1 wraps to January)
|
|
21
|
+
* @example cycleFieldValue(1, 13, { min: 1, max: 12 }, false) // 2 (amount larger than the range)
|
|
22
|
+
* @example cycleFieldValue(22, 15, { min: 0, max: 59 }, true) // 30 (next multiple of 15 above 22)
|
|
23
|
+
* @example cycleFieldValue(22, -15, { min: 0, max: 59 }, true) // 15 (previous multiple of 15 below 22)
|
|
24
|
+
* @example cycleFieldValue(2022, 5, null, true) // 2025 (unbounded field, still rounds)
|
|
25
|
+
* @returns the new field value
|
|
26
|
+
*/
|
|
27
|
+
export declare function cycleFieldValue(current: number, amount: number, bounds: {
|
|
28
|
+
min: number;
|
|
29
|
+
max: number;
|
|
30
|
+
} | null, round: boolean): number;
|