From ee0f90a1582a4a89390bfe4f58804d49f656da1f Mon Sep 17 00:00:00 2001 From: Le Cong Date: Thu, 20 Feb 2025 01:20:07 -0500 Subject: [PATCH 01/18] update with date-fns v4.1.0 --- .../workflows/check-published-scheduled.yml | 3 +- .github/workflows/ci.yml | 4 +- .github/workflows/coverage.yml | 2 +- .github/workflows/publish-beta.yml | 4 +- .github/workflows/publish.yml | 2 +- README.md | 22 +- disable.sh | 18 + eslint.config.mjs | 21 + package-lock.json | 13886 +++++++++++----- package.json | 63 +- src/date-fns/CHANGELOG.md | 180 +- src/date-fns/_lib/addLeadingZeros/index.ts | 4 +- src/date-fns/_lib/defaultLocale/index.ts | 2 +- src/date-fns/_lib/defaultOptions/index.ts | 11 +- src/date-fns/_lib/format/formatters/index.ts | 476 +- .../_lib/format/lightFormatters/index.ts | 8 +- .../_lib/format/longFormatters/index.ts | 59 +- src/date-fns/_lib/getRoundingMethod/index.ts | 2 +- .../getTimezoneOffsetInMilliseconds/index.ts | 7 +- src/date-fns/_lib/normalizeDates/index.ts | 28 + src/date-fns/_lib/normalizeInterval/index.ts | 10 + src/date-fns/_lib/protectedTokens/index.ts | 10 +- src/date-fns/_lib/test/index.ts | 43 +- .../_test/dst/addBusinessDays/basic.ts | 17 - .../_test/dst/eachDayOfInterval/basic.ts | 21 - .../_test/dst/formatDistanceStrict/cairo.ts | 8 - .../dst/formatDistanceStrict/melbourne.ts | 12 - .../getOverlappingDaysInIntervals/basic.ts | 16 - src/date-fns/_test/dst/parseISO/basic.ts | 23 - src/date-fns/_test/dst/parseISO/samoa.ts | 12 - src/date-fns/_test/dst/parseISO/sydney.ts | 57 - src/date-fns/_test/dst/tzOffsetTransitions.ts | 140 - src/date-fns/_test/formatISO/india.ts | 9 - src/date-fns/_test/formatRFC3339/australia.ts | 20 - src/date-fns/_test/formatRFC3339/india.ts | 20 - .../_test/formatRFC3339/newfoundland.ts | 21 - .../_test/formatRFC3339/newzealand.ts | 21 - src/date-fns/_test/formatRFC3339/poland.ts | 20 - src/date-fns/add/index.ts | 69 +- src/date-fns/addBusinessDays/index.ts | 46 +- src/date-fns/addDays/index.ts | 36 +- src/date-fns/addHours/index.ts | 26 +- src/date-fns/addISOWeekYears/index.ts | 25 +- src/date-fns/addMilliseconds/index.ts | 24 +- src/date-fns/addMinutes/index.ts | 26 +- src/date-fns/addMonths/index.ts | 34 +- src/date-fns/addQuarters/index.ts | 25 +- src/date-fns/addSeconds/index.ts | 22 +- src/date-fns/addWeeks/index.ts | 25 +- src/date-fns/addYears/index.ts | 22 +- src/date-fns/areIntervalsOverlapping/index.ts | 30 +- src/date-fns/clamp/index.ts | 66 +- src/date-fns/closestIndexTo/index.ts | 28 +- src/date-fns/closestTo/index.ts | 84 +- src/date-fns/compareAsc/index.ts | 27 +- src/date-fns/compareDesc/index.ts | 27 +- src/date-fns/constants/index.ts | 15 +- src/date-fns/constructFrom/index.ts | 54 +- src/date-fns/constructNow/index.ts | 12 +- src/date-fns/daysToWeeks/index.ts | 7 +- .../differenceInBusinessDays/index.ts | 58 +- .../differenceInCalendarDays/index.ts | 45 +- .../differenceInCalendarISOWeekYears/index.ts | 33 +- .../differenceInCalendarISOWeeks/index.ts | 48 +- .../differenceInCalendarMonths/index.ts | 36 +- .../differenceInCalendarQuarters/index.ts | 38 +- .../differenceInCalendarWeeks/index.ts | 54 +- .../differenceInCalendarYears/index.ts | 35 +- src/date-fns/differenceInDays/index.ts | 73 +- src/date-fns/differenceInHours/index.ts | 31 +- .../differenceInISOWeekYears/index.ts | 56 +- .../differenceInMilliseconds/index.ts | 17 +- src/date-fns/differenceInMinutes/index.ts | 19 +- src/date-fns/differenceInMonths/index.ts | 89 +- src/date-fns/differenceInQuarters/index.ts | 26 +- src/date-fns/differenceInSeconds/index.ts | 20 +- src/date-fns/differenceInWeeks/index.ts | 26 +- src/date-fns/differenceInYears/index.ts | 63 +- src/date-fns/eachDayOfInterval/index.ts | 63 +- src/date-fns/eachHourOfInterval/index.ts | 62 +- src/date-fns/eachMinuteOfInterval/index.ts | 64 +- src/date-fns/eachMonthOfInterval/index.ts | 63 +- src/date-fns/eachQuarterOfInterval/index.ts | 66 +- src/date-fns/eachWeekOfInterval/index.ts | 70 +- src/date-fns/eachWeekendOfInterval/index.ts | 49 +- src/date-fns/eachWeekendOfMonth/index.ts | 29 +- src/date-fns/eachWeekendOfYear/index.ts | 29 +- src/date-fns/eachYearOfInterval/index.ts | 64 +- src/date-fns/endOfDay/index.ts | 21 +- src/date-fns/endOfDecade/index.ts | 21 +- src/date-fns/endOfHour/index.ts | 21 +- src/date-fns/endOfISOWeek/index.ts | 21 +- src/date-fns/endOfISOWeekYear/index.ts | 29 +- src/date-fns/endOfMinute/index.ts | 23 +- src/date-fns/endOfMonth/index.ts | 21 +- src/date-fns/endOfQuarter/index.ts | 21 +- src/date-fns/endOfSecond/index.ts | 23 +- src/date-fns/endOfToday/index.ts | 18 +- src/date-fns/endOfTomorrow/index.ts | 22 +- src/date-fns/endOfWeek/index.ts | 27 +- src/date-fns/endOfYear/index.ts | 20 +- src/date-fns/endOfYesterday/index.ts | 26 +- src/date-fns/format/index.ts | 66 +- src/date-fns/formatDistance/index.ts | 98 +- src/date-fns/formatDistanceStrict/index.ts | 117 +- src/date-fns/formatDistanceToNow/index.ts | 17 +- .../formatDistanceToNowStrict/index.ts | 17 +- src/date-fns/formatDuration/index.ts | 36 +- src/date-fns/formatISO/index.ts | 63 +- src/date-fns/formatISO9075/index.ts | 52 +- src/date-fns/formatISODuration/index.ts | 11 +- src/date-fns/formatRFC3339/index.ts | 51 +- src/date-fns/formatRFC7231/index.ts | 30 +- src/date-fns/formatRelative/index.ts | 59 +- src/date-fns/fp/_lib/convertToFP/index.ts | 25 - src/date-fns/fp/add/index.ts | 6 - src/date-fns/fp/addBusinessDays/index.ts | 6 - src/date-fns/fp/addDays/index.ts | 6 - src/date-fns/fp/addHours/index.ts | 6 - src/date-fns/fp/addISOWeekYears/index.ts | 6 - src/date-fns/fp/addMilliseconds/index.ts | 6 - src/date-fns/fp/addMinutes/index.ts | 6 - src/date-fns/fp/addMonths/index.ts | 6 - src/date-fns/fp/addQuarters/index.ts | 6 - src/date-fns/fp/addSeconds/index.ts | 6 - src/date-fns/fp/addWeeks/index.ts | 6 - src/date-fns/fp/addYears/index.ts | 6 - .../fp/areIntervalsOverlapping/index.ts | 6 - .../index.ts | 6 - src/date-fns/fp/clamp/index.ts | 6 - src/date-fns/fp/closestIndexTo/index.ts | 6 - src/date-fns/fp/closestTo/index.ts | 6 - src/date-fns/fp/compareAsc/index.ts | 6 - src/date-fns/fp/compareDesc/index.ts | 6 - src/date-fns/fp/constructFrom/index.ts | 6 - src/date-fns/fp/daysToWeeks/index.ts | 6 - .../fp/differenceInBusinessDays/index.ts | 6 - .../fp/differenceInCalendarDays/index.ts | 6 - .../differenceInCalendarISOWeekYears/index.ts | 6 - .../fp/differenceInCalendarISOWeeks/index.ts | 6 - .../fp/differenceInCalendarMonths/index.ts | 6 - .../fp/differenceInCalendarQuarters/index.ts | 6 - .../fp/differenceInCalendarWeeks/index.ts | 6 - .../index.ts | 6 - .../fp/differenceInCalendarYears/index.ts | 6 - src/date-fns/fp/differenceInDays/index.ts | 6 - src/date-fns/fp/differenceInHours/index.ts | 6 - .../fp/differenceInHoursWithOptions/index.ts | 6 - .../fp/differenceInISOWeekYears/index.ts | 6 - .../fp/differenceInMilliseconds/index.ts | 6 - src/date-fns/fp/differenceInMinutes/index.ts | 6 - .../differenceInMinutesWithOptions/index.ts | 6 - src/date-fns/fp/differenceInMonths/index.ts | 6 - src/date-fns/fp/differenceInQuarters/index.ts | 6 - .../differenceInQuartersWithOptions/index.ts | 6 - src/date-fns/fp/differenceInSeconds/index.ts | 6 - .../differenceInSecondsWithOptions/index.ts | 6 - src/date-fns/fp/differenceInWeeks/index.ts | 6 - .../fp/differenceInWeeksWithOptions/index.ts | 6 - src/date-fns/fp/differenceInYears/index.ts | 6 - src/date-fns/fp/eachDayOfInterval/index.ts | 6 - .../fp/eachDayOfIntervalWithOptions/index.ts | 6 - src/date-fns/fp/eachHourOfInterval/index.ts | 6 - .../fp/eachHourOfIntervalWithOptions/index.ts | 6 - src/date-fns/fp/eachMinuteOfInterval/index.ts | 6 - .../eachMinuteOfIntervalWithOptions/index.ts | 6 - src/date-fns/fp/eachMonthOfInterval/index.ts | 6 - .../eachMonthOfIntervalWithOptions/index.ts | 6 - .../fp/eachQuarterOfInterval/index.ts | 6 - .../eachQuarterOfIntervalWithOptions/index.ts | 6 - src/date-fns/fp/eachWeekOfInterval/index.ts | 6 - .../fp/eachWeekOfIntervalWithOptions/index.ts | 6 - .../fp/eachWeekendOfInterval/index.ts | 6 - src/date-fns/fp/eachWeekendOfMonth/index.ts | 6 - src/date-fns/fp/eachWeekendOfYear/index.ts | 6 - src/date-fns/fp/eachYearOfInterval/index.ts | 6 - .../fp/eachYearOfIntervalWithOptions/index.ts | 6 - src/date-fns/fp/endOfDay/index.ts | 6 - src/date-fns/fp/endOfDecade/index.ts | 6 - src/date-fns/fp/endOfHour/index.ts | 6 - src/date-fns/fp/endOfISOWeek/index.ts | 6 - src/date-fns/fp/endOfISOWeekYear/index.ts | 6 - src/date-fns/fp/endOfMinute/index.ts | 6 - src/date-fns/fp/endOfMonth/index.ts | 6 - src/date-fns/fp/endOfQuarter/index.ts | 6 - src/date-fns/fp/endOfSecond/index.ts | 6 - src/date-fns/fp/endOfWeek/index.ts | 6 - src/date-fns/fp/endOfWeekWithOptions/index.ts | 6 - src/date-fns/fp/endOfYear/index.ts | 6 - src/date-fns/fp/format/index.ts | 6 - src/date-fns/fp/formatDistance/index.ts | 6 - src/date-fns/fp/formatDistanceStrict/index.ts | 6 - .../formatDistanceStrictWithOptions/index.ts | 6 - .../fp/formatDistanceWithOptions/index.ts | 6 - src/date-fns/fp/formatDuration/index.ts | 6 - .../fp/formatDurationWithOptions/index.ts | 6 - src/date-fns/fp/formatISO/index.ts | 6 - src/date-fns/fp/formatISO9075/index.ts | 6 - .../fp/formatISO9075WithOptions/index.ts | 6 - src/date-fns/fp/formatISODuration/index.ts | 6 - src/date-fns/fp/formatISOWithOptions/index.ts | 6 - src/date-fns/fp/formatRFC3339/index.ts | 6 - .../fp/formatRFC3339WithOptions/index.ts | 6 - src/date-fns/fp/formatRFC7231/index.ts | 6 - src/date-fns/fp/formatRelative/index.ts | 6 - .../fp/formatRelativeWithOptions/index.ts | 6 - src/date-fns/fp/formatWithOptions/index.ts | 6 - src/date-fns/fp/fromUnixTime/index.ts | 6 - src/date-fns/fp/getDate/index.ts | 6 - src/date-fns/fp/getDay/index.ts | 6 - src/date-fns/fp/getDayOfYear/index.ts | 6 - src/date-fns/fp/getDaysInMonth/index.ts | 6 - src/date-fns/fp/getDaysInYear/index.ts | 6 - src/date-fns/fp/getDecade/index.ts | 6 - src/date-fns/fp/getHours/index.ts | 6 - src/date-fns/fp/getISODay/index.ts | 6 - src/date-fns/fp/getISOWeek/index.ts | 6 - src/date-fns/fp/getISOWeekYear/index.ts | 6 - src/date-fns/fp/getISOWeeksInYear/index.ts | 6 - src/date-fns/fp/getMilliseconds/index.ts | 6 - src/date-fns/fp/getMinutes/index.ts | 6 - src/date-fns/fp/getMonth/index.ts | 6 - .../fp/getOverlappingDaysInIntervals/index.ts | 6 - src/date-fns/fp/getQuarter/index.ts | 6 - src/date-fns/fp/getSeconds/index.ts | 6 - src/date-fns/fp/getTime/index.ts | 6 - src/date-fns/fp/getUnixTime/index.ts | 6 - src/date-fns/fp/getWeek/index.ts | 6 - src/date-fns/fp/getWeekOfMonth/index.ts | 6 - .../fp/getWeekOfMonthWithOptions/index.ts | 6 - src/date-fns/fp/getWeekWithOptions/index.ts | 6 - src/date-fns/fp/getWeekYear/index.ts | 6 - .../fp/getWeekYearWithOptions/index.ts | 6 - src/date-fns/fp/getWeeksInMonth/index.ts | 6 - .../fp/getWeeksInMonthWithOptions/index.ts | 6 - src/date-fns/fp/getYear/index.ts | 6 - src/date-fns/fp/hoursToMilliseconds/index.ts | 6 - src/date-fns/fp/hoursToMinutes/index.ts | 6 - src/date-fns/fp/hoursToSeconds/index.ts | 6 - src/date-fns/fp/index.ts | 265 - src/date-fns/fp/interval/index.ts | 6 - src/date-fns/fp/intervalToDuration/index.ts | 6 - src/date-fns/fp/intervalWithOptions/index.ts | 6 - src/date-fns/fp/intlFormat/index.ts | 6 - src/date-fns/fp/intlFormatDistance/index.ts | 6 - .../fp/intlFormatDistanceWithOptions/index.ts | 6 - src/date-fns/fp/isAfter/index.ts | 6 - src/date-fns/fp/isBefore/index.ts | 6 - src/date-fns/fp/isDate/index.ts | 6 - src/date-fns/fp/isEqual/index.ts | 6 - src/date-fns/fp/isExists/index.ts | 6 - src/date-fns/fp/isFirstDayOfMonth/index.ts | 6 - src/date-fns/fp/isFriday/index.ts | 6 - src/date-fns/fp/isLastDayOfMonth/index.ts | 6 - src/date-fns/fp/isLeapYear/index.ts | 6 - src/date-fns/fp/isMatch/index.ts | 6 - src/date-fns/fp/isMatchWithOptions/index.ts | 6 - src/date-fns/fp/isMonday/index.ts | 6 - src/date-fns/fp/isSameDay/index.ts | 6 - src/date-fns/fp/isSameHour/index.ts | 6 - src/date-fns/fp/isSameISOWeek/index.ts | 6 - src/date-fns/fp/isSameISOWeekYear/index.ts | 6 - src/date-fns/fp/isSameMinute/index.ts | 6 - src/date-fns/fp/isSameMonth/index.ts | 6 - src/date-fns/fp/isSameQuarter/index.ts | 6 - src/date-fns/fp/isSameSecond/index.ts | 6 - src/date-fns/fp/isSameWeek/index.ts | 6 - .../fp/isSameWeekWithOptions/index.ts | 6 - src/date-fns/fp/isSameYear/index.ts | 6 - src/date-fns/fp/isSaturday/index.ts | 6 - src/date-fns/fp/isSunday/index.ts | 6 - src/date-fns/fp/isThursday/index.ts | 6 - src/date-fns/fp/isTuesday/index.ts | 6 - src/date-fns/fp/isValid/index.ts | 6 - src/date-fns/fp/isWednesday/index.ts | 6 - src/date-fns/fp/isWeekend/index.ts | 6 - src/date-fns/fp/isWithinInterval/index.ts | 6 - src/date-fns/fp/lastDayOfDecade/index.ts | 6 - src/date-fns/fp/lastDayOfISOWeek/index.ts | 6 - src/date-fns/fp/lastDayOfISOWeekYear/index.ts | 6 - src/date-fns/fp/lastDayOfMonth/index.ts | 6 - src/date-fns/fp/lastDayOfQuarter/index.ts | 6 - src/date-fns/fp/lastDayOfWeek/index.ts | 6 - .../fp/lastDayOfWeekWithOptions/index.ts | 6 - src/date-fns/fp/lastDayOfYear/index.ts | 6 - src/date-fns/fp/lightFormat/index.ts | 6 - src/date-fns/fp/max/index.ts | 6 - src/date-fns/fp/milliseconds/index.ts | 6 - src/date-fns/fp/millisecondsToHours/index.ts | 6 - .../fp/millisecondsToMinutes/index.ts | 6 - .../fp/millisecondsToSeconds/index.ts | 6 - src/date-fns/fp/min/index.ts | 6 - src/date-fns/fp/minutesToHours/index.ts | 6 - .../fp/minutesToMilliseconds/index.ts | 6 - src/date-fns/fp/minutesToSeconds/index.ts | 6 - src/date-fns/fp/monthsToQuarters/index.ts | 6 - src/date-fns/fp/monthsToYears/index.ts | 6 - src/date-fns/fp/nextDay/index.ts | 6 - src/date-fns/fp/nextFriday/index.ts | 6 - src/date-fns/fp/nextMonday/index.ts | 6 - src/date-fns/fp/nextSaturday/index.ts | 6 - src/date-fns/fp/nextSunday/index.ts | 6 - src/date-fns/fp/nextThursday/index.ts | 6 - src/date-fns/fp/nextTuesday/index.ts | 6 - src/date-fns/fp/nextWednesday/index.ts | 6 - src/date-fns/fp/parse/index.ts | 6 - src/date-fns/fp/parseISO/index.ts | 6 - src/date-fns/fp/parseISOWithOptions/index.ts | 6 - src/date-fns/fp/parseJSON/index.ts | 6 - src/date-fns/fp/parseWithOptions/index.ts | 6 - src/date-fns/fp/previousDay/index.ts | 6 - src/date-fns/fp/previousFriday/index.ts | 6 - src/date-fns/fp/previousMonday/index.ts | 6 - src/date-fns/fp/previousSaturday/index.ts | 6 - src/date-fns/fp/previousSunday/index.ts | 6 - src/date-fns/fp/previousThursday/index.ts | 6 - src/date-fns/fp/previousTuesday/index.ts | 6 - src/date-fns/fp/previousWednesday/index.ts | 6 - src/date-fns/fp/quartersToMonths/index.ts | 6 - src/date-fns/fp/quartersToYears/index.ts | 6 - src/date-fns/fp/roundToNearestHours/index.ts | 6 - .../roundToNearestHoursWithOptions/index.ts | 6 - .../fp/roundToNearestMinutes/index.ts | 6 - .../roundToNearestMinutesWithOptions/index.ts | 6 - src/date-fns/fp/secondsToHours/index.ts | 6 - .../fp/secondsToMilliseconds/index.ts | 6 - src/date-fns/fp/secondsToMinutes/index.ts | 6 - src/date-fns/fp/set/index.ts | 6 - src/date-fns/fp/setDate/index.ts | 6 - src/date-fns/fp/setDay/index.ts | 6 - src/date-fns/fp/setDayOfYear/index.ts | 6 - src/date-fns/fp/setDayWithOptions/index.ts | 6 - src/date-fns/fp/setHours/index.ts | 6 - src/date-fns/fp/setISODay/index.ts | 6 - src/date-fns/fp/setISOWeek/index.ts | 6 - src/date-fns/fp/setISOWeekYear/index.ts | 6 - src/date-fns/fp/setMilliseconds/index.ts | 6 - src/date-fns/fp/setMinutes/index.ts | 6 - src/date-fns/fp/setMonth/index.ts | 6 - src/date-fns/fp/setQuarter/index.ts | 6 - src/date-fns/fp/setSeconds/index.ts | 6 - src/date-fns/fp/setWeek/index.ts | 6 - src/date-fns/fp/setWeekWithOptions/index.ts | 6 - src/date-fns/fp/setWeekYear/index.ts | 6 - .../fp/setWeekYearWithOptions/index.ts | 6 - src/date-fns/fp/setYear/index.ts | 6 - src/date-fns/fp/startOfDay/index.ts | 6 - src/date-fns/fp/startOfDecade/index.ts | 6 - src/date-fns/fp/startOfHour/index.ts | 6 - src/date-fns/fp/startOfISOWeek/index.ts | 6 - src/date-fns/fp/startOfISOWeekYear/index.ts | 6 - src/date-fns/fp/startOfMinute/index.ts | 6 - src/date-fns/fp/startOfMonth/index.ts | 6 - src/date-fns/fp/startOfQuarter/index.ts | 6 - src/date-fns/fp/startOfSecond/index.ts | 6 - src/date-fns/fp/startOfWeek/index.ts | 6 - .../fp/startOfWeekWithOptions/index.ts | 6 - src/date-fns/fp/startOfWeekYear/index.ts | 6 - .../fp/startOfWeekYearWithOptions/index.ts | 6 - src/date-fns/fp/startOfYear/index.ts | 6 - src/date-fns/fp/sub/index.ts | 6 - src/date-fns/fp/subBusinessDays/index.ts | 6 - src/date-fns/fp/subDays/index.ts | 6 - src/date-fns/fp/subHours/index.ts | 6 - src/date-fns/fp/subISOWeekYears/index.ts | 6 - src/date-fns/fp/subMilliseconds/index.ts | 6 - src/date-fns/fp/subMinutes/index.ts | 6 - src/date-fns/fp/subMonths/index.ts | 6 - src/date-fns/fp/subQuarters/index.ts | 6 - src/date-fns/fp/subSeconds/index.ts | 6 - src/date-fns/fp/subWeeks/index.ts | 6 - src/date-fns/fp/subYears/index.ts | 6 - src/date-fns/fp/toDate/index.ts | 6 - src/date-fns/fp/transpose/index.ts | 6 - src/date-fns/fp/types.ts | 120 - src/date-fns/fp/weeksToDays/index.ts | 6 - src/date-fns/fp/yearsToDays/index.ts | 6 - src/date-fns/fp/yearsToMonths/index.ts | 6 - src/date-fns/fp/yearsToQuarters/index.ts | 6 - src/date-fns/fromUnixTime/index.ts | 19 +- src/date-fns/getDate/index.ts | 20 +- src/date-fns/getDay/index.ts | 20 +- src/date-fns/getDayOfYear/index.ts | 22 +- src/date-fns/getDaysInMonth/index.ts | 24 +- src/date-fns/getDaysInYear/index.ts | 26 +- src/date-fns/getDecade/index.ts | 18 +- src/date-fns/getDefaultOptions/index.ts | 7 +- src/date-fns/getHours/index.ts | 20 +- src/date-fns/getISODay/index.ts | 26 +- src/date-fns/getISOWeek/index.ts | 24 +- src/date-fns/getISOWeekYear/index.ts | 25 +- src/date-fns/getISOWeeksInYear/index.ts | 22 +- src/date-fns/getMilliseconds/index.ts | 11 +- src/date-fns/getMinutes/index.ts | 20 +- src/date-fns/getMonth/index.ts | 20 +- .../getOverlappingDaysInIntervals/index.ts | 37 +- src/date-fns/getQuarter/index.ts | 20 +- src/date-fns/getSeconds/index.ts | 11 +- src/date-fns/getTime/index.ts | 11 +- src/date-fns/getUnixTime/index.ts | 7 +- src/date-fns/getWeek/index.ts | 32 +- src/date-fns/getWeekOfMonth/index.ts | 31 +- src/date-fns/getWeekYear/index.ts | 38 +- src/date-fns/getWeeksInMonth/index.ts | 36 +- src/date-fns/getYear/index.ts | 18 +- src/date-fns/hoursToMilliseconds/index.ts | 4 +- src/date-fns/hoursToMinutes/index.ts | 4 +- src/date-fns/hoursToSeconds/index.ts | 4 +- src/date-fns/index.ts | 492 +- src/date-fns/interval/index.ts | 61 +- src/date-fns/intervalToDuration/index.ts | 55 +- src/date-fns/intlFormat/index.ts | 44 +- src/date-fns/intlFormatDistance/index.ts | 147 +- src/date-fns/isAfter/index.ts | 15 +- src/date-fns/isBefore/index.ts | 15 +- src/date-fns/isDate/index.ts | 4 +- src/date-fns/isEqual/index.ts | 15 +- src/date-fns/isExists/index.ts | 6 +- src/date-fns/isFirstDayOfMonth/index.ts | 20 +- src/date-fns/isFriday/index.ts | 18 +- src/date-fns/isFuture/index.ts | 7 +- src/date-fns/isLastDayOfMonth/index.ts | 23 +- src/date-fns/isLeapYear/index.ts | 15 +- src/date-fns/isMatch/index.ts | 25 +- src/date-fns/isMonday/index.ts | 18 +- src/date-fns/isPast/index.ts | 7 +- src/date-fns/isSameDay/index.ts | 33 +- src/date-fns/isSameHour/index.ts | 29 +- src/date-fns/isSameISOWeek/index.ts | 24 +- src/date-fns/isSameISOWeekYear/index.ts | 33 +- src/date-fns/isSameMinute/index.ts | 20 +- src/date-fns/isSameMonth/index.ts | 34 +- src/date-fns/isSameQuarter/index.ts | 33 +- src/date-fns/isSameSecond/index.ts | 20 +- src/date-fns/isSameWeek/index.ts | 35 +- src/date-fns/isSameYear/index.ts | 31 +- src/date-fns/isSaturday/index.ts | 18 +- src/date-fns/isSunday/index.ts | 18 +- src/date-fns/isThisHour/index.ts | 24 +- src/date-fns/isThisISOWeek/index.ts | 25 +- src/date-fns/isThisMinute/index.ts | 9 +- src/date-fns/isThisMonth/index.ts | 25 +- src/date-fns/isThisQuarter/index.ts | 24 +- src/date-fns/isThisSecond/index.ts | 9 +- src/date-fns/isThisWeek/index.ts | 29 +- src/date-fns/isThisYear/index.ts | 24 +- src/date-fns/isThursday/index.ts | 18 +- src/date-fns/isToday/index.ts | 24 +- src/date-fns/isTomorrow/index.ts | 26 +- src/date-fns/isTuesday/index.ts | 18 +- src/date-fns/isValid/index.ts | 14 +- src/date-fns/isWednesday/index.ts | 18 +- src/date-fns/isWeekend/index.ts | 20 +- src/date-fns/isWithinInterval/index.ts | 36 +- src/date-fns/isYesterday/index.ts | 26 +- src/date-fns/lastDayOfDecade/index.ts | 28 +- src/date-fns/lastDayOfISOWeek/index.ts | 23 +- src/date-fns/lastDayOfISOWeekYear/index.ts | 34 +- src/date-fns/lastDayOfMonth/index.ts | 23 +- src/date-fns/lastDayOfQuarter/index.ts | 29 +- src/date-fns/lastDayOfWeek/index.ts | 43 +- src/date-fns/lastDayOfYear/index.ts | 29 +- src/date-fns/lightFormat/index.ts | 44 +- .../locale/_lib/buildFormatLongFn/index.ts | 10 +- .../locale/_lib/buildLocalizeFn/index.ts | 75 +- .../locale/_lib/buildMatchFn/index.ts | 84 +- .../locale/_lib/buildMatchPatternFn/index.ts | 12 +- .../locale/en-US/_lib/formatDistance/index.ts | 72 +- .../locale/en-US/_lib/formatLong/index.ts | 30 +- .../locale/en-US/_lib/formatRelative/index.ts | 11 +- .../locale/en-US/_lib/localize/index.ts | 189 +- src/date-fns/locale/en-US/_lib/match/index.ts | 58 +- src/date-fns/locale/en-US/index.ts | 14 +- src/date-fns/locale/index.ts | 98 +- src/date-fns/locale/types.ts | 119 +- src/date-fns/max/index.ts | 33 +- src/date-fns/milliseconds/index.ts | 16 +- src/date-fns/millisecondsToHours/index.ts | 2 +- src/date-fns/millisecondsToMinutes/index.ts | 2 +- src/date-fns/millisecondsToSeconds/index.ts | 4 +- src/date-fns/min/index.ts | 33 +- src/date-fns/minutesToHours/index.ts | 2 +- src/date-fns/minutesToMilliseconds/index.ts | 2 +- src/date-fns/minutesToSeconds/index.ts | 2 +- src/date-fns/monthsToQuarters/index.ts | 2 +- src/date-fns/monthsToYears/index.ts | 2 +- src/date-fns/nextDay/index.ts | 36 +- src/date-fns/nextFriday/index.ts | 21 +- src/date-fns/nextMonday/index.ts | 21 +- src/date-fns/nextSaturday/index.ts | 21 +- src/date-fns/nextSunday/index.ts | 23 +- src/date-fns/nextThursday/index.ts | 21 +- src/date-fns/nextTuesday/index.ts | 21 +- src/date-fns/nextWednesday/index.ts | 21 +- src/date-fns/parse/_lib/Parser.ts | 29 +- src/date-fns/parse/_lib/Setter.ts | 43 +- .../parse/_lib/parsers/AMPMMidnightParser.ts | 56 +- src/date-fns/parse/_lib/parsers/AMPMParser.ts | 56 +- src/date-fns/parse/_lib/parsers/DateParser.ts | 53 +- .../parse/_lib/parsers/DayOfYearParser.ts | 48 +- src/date-fns/parse/_lib/parsers/DayParser.ts | 57 +- .../parse/_lib/parsers/DayPeriodParser.ts | 56 +- src/date-fns/parse/_lib/parsers/EraParser.ts | 39 +- .../parse/_lib/parsers/ExtendedYearParser.ts | 16 +- .../_lib/parsers/FractionOfSecondParser.ts | 17 +- .../parse/_lib/parsers/Hour0To11Parser.ts | 26 +- .../parse/_lib/parsers/Hour0to23Parser.ts | 26 +- .../parse/_lib/parsers/Hour1To24Parser.ts | 26 +- .../parse/_lib/parsers/Hour1to12Parser.ts | 26 +- .../parse/_lib/parsers/ISODayParser.ts | 92 +- .../parse/_lib/parsers/ISOTimezoneParser.ts | 50 +- .../_lib/parsers/ISOTimezoneWithZParser.ts | 50 +- .../parse/_lib/parsers/ISOWeekParser.ts | 45 +- .../parse/_lib/parsers/ISOWeekYearParser.ts | 36 +- .../parse/_lib/parsers/LocalDayParser.ts | 86 +- .../parse/_lib/parsers/LocalWeekParser.ts | 45 +- .../parse/_lib/parsers/LocalWeekYearParser.ts | 63 +- .../parse/_lib/parsers/MinuteParser.ts | 26 +- .../parse/_lib/parsers/MonthParser.ts | 72 +- .../parse/_lib/parsers/QuarterParser.ts | 71 +- .../parse/_lib/parsers/SecondParser.ts | 26 +- .../_lib/parsers/StandAloneLocalDayParser.ts | 86 +- .../_lib/parsers/StandAloneMonthParser.ts | 72 +- .../_lib/parsers/StandAloneQuarterParser.ts | 71 +- .../parsers/TimestampMillisecondsParser.ts | 16 +- .../_lib/parsers/TimestampSecondsParser.ts | 16 +- src/date-fns/parse/_lib/parsers/YearParser.ts | 43 +- src/date-fns/parse/_lib/parsers/index.ts | 65 +- src/date-fns/parse/_lib/types.ts | 10 +- src/date-fns/parse/_lib/utils.ts | 67 +- src/date-fns/parse/index.ts | 143 +- src/date-fns/parseISO/index.ts | 150 +- src/date-fns/parseJSON/index.ts | 52 +- src/date-fns/previousDay/index.ts | 27 +- src/date-fns/previousFriday/index.ts | 23 +- src/date-fns/previousMonday/index.ts | 21 +- src/date-fns/previousSaturday/index.ts | 21 +- src/date-fns/previousSunday/index.ts | 21 +- src/date-fns/previousThursday/index.ts | 21 +- src/date-fns/previousTuesday/index.ts | 21 +- src/date-fns/previousWednesday/index.ts | 23 +- src/date-fns/quartersToMonths/index.ts | 4 +- src/date-fns/quartersToYears/index.ts | 4 +- src/date-fns/roundToNearestHours/index.ts | 63 +- src/date-fns/roundToNearestMinutes/index.ts | 48 +- src/date-fns/secondsToHours/index.ts | 2 +- src/date-fns/secondsToMilliseconds/index.ts | 2 +- src/date-fns/secondsToMinutes/index.ts | 2 +- src/date-fns/set/index.ts | 63 +- src/date-fns/setDate/index.ts | 24 +- src/date-fns/setDay/index.ts | 40 +- src/date-fns/setDayOfYear/index.ts | 28 +- src/date-fns/setDefaultOptions/index.ts | 16 +- src/date-fns/setHours/index.ts | 22 +- src/date-fns/setISODay/index.ts | 32 +- src/date-fns/setISOWeek/index.ts | 26 +- src/date-fns/setISOWeekYear/index.ts | 37 +- src/date-fns/setMilliseconds/index.ts | 23 +- src/date-fns/setMinutes/index.ts | 28 +- src/date-fns/setMonth/index.ts | 38 +- src/date-fns/setQuarter/index.ts | 28 +- src/date-fns/setSeconds/index.ts | 26 +- src/date-fns/setWeek/index.ts | 38 +- src/date-fns/setWeekYear/index.ts | 53 +- src/date-fns/setYear/index.ts | 32 +- src/date-fns/startOfDay/index.ts | 21 +- src/date-fns/startOfDecade/index.ts | 21 +- src/date-fns/startOfHour/index.ts | 21 +- src/date-fns/startOfISOWeek/index.ts | 21 +- src/date-fns/startOfISOWeekYear/index.ts | 27 +- src/date-fns/startOfMinute/index.ts | 25 +- src/date-fns/startOfMonth/index.ts | 28 +- src/date-fns/startOfQuarter/index.ts | 21 +- src/date-fns/startOfSecond/index.ts | 25 +- src/date-fns/startOfToday/index.ts | 19 +- src/date-fns/startOfTomorrow/index.ts | 26 +- src/date-fns/startOfWeek/index.ts | 30 +- src/date-fns/startOfWeekYear/index.ts | 37 +- src/date-fns/startOfYear/index.ts | 29 +- src/date-fns/startOfYesterday/index.ts | 21 +- src/date-fns/sub/index.ts | 49 +- src/date-fns/subBusinessDays/index.ts | 28 +- src/date-fns/subDays/index.ts | 25 +- src/date-fns/subHours/index.ts | 22 +- src/date-fns/subISOWeekYears/index.ts | 22 +- src/date-fns/subMilliseconds/index.ts | 32 +- src/date-fns/subMinutes/index.ts | 22 +- src/date-fns/subMonths/index.ts | 22 +- src/date-fns/subQuarters/index.ts | 22 +- src/date-fns/subSeconds/index.ts | 27 +- src/date-fns/subWeeks/index.ts | 22 +- src/date-fns/subYears/index.ts | 22 +- src/date-fns/toDate/index.ts | 49 +- src/date-fns/transpose/index.ts | 45 +- src/date-fns/types.ts | 77 +- src/date-fns/weeksToDays/index.ts | 2 +- src/date-fns/yearsToDays/index.ts | 2 +- src/date-fns/yearsToMonths/index.ts | 2 +- src/date-fns/yearsToQuarters/index.ts | 2 +- 599 files changed, 16900 insertions(+), 10672 deletions(-) create mode 100755 disable.sh create mode 100644 eslint.config.mjs create mode 100644 src/date-fns/_lib/normalizeDates/index.ts create mode 100644 src/date-fns/_lib/normalizeInterval/index.ts delete mode 100644 src/date-fns/_test/dst/addBusinessDays/basic.ts delete mode 100644 src/date-fns/_test/dst/eachDayOfInterval/basic.ts delete mode 100644 src/date-fns/_test/dst/formatDistanceStrict/cairo.ts delete mode 100644 src/date-fns/_test/dst/formatDistanceStrict/melbourne.ts delete mode 100644 src/date-fns/_test/dst/getOverlappingDaysInIntervals/basic.ts delete mode 100644 src/date-fns/_test/dst/parseISO/basic.ts delete mode 100644 src/date-fns/_test/dst/parseISO/samoa.ts delete mode 100644 src/date-fns/_test/dst/parseISO/sydney.ts delete mode 100644 src/date-fns/_test/dst/tzOffsetTransitions.ts delete mode 100644 src/date-fns/_test/formatISO/india.ts delete mode 100644 src/date-fns/_test/formatRFC3339/australia.ts delete mode 100644 src/date-fns/_test/formatRFC3339/india.ts delete mode 100644 src/date-fns/_test/formatRFC3339/newfoundland.ts delete mode 100644 src/date-fns/_test/formatRFC3339/newzealand.ts delete mode 100644 src/date-fns/_test/formatRFC3339/poland.ts delete mode 100644 src/date-fns/fp/_lib/convertToFP/index.ts delete mode 100644 src/date-fns/fp/add/index.ts delete mode 100644 src/date-fns/fp/addBusinessDays/index.ts delete mode 100644 src/date-fns/fp/addDays/index.ts delete mode 100644 src/date-fns/fp/addHours/index.ts delete mode 100644 src/date-fns/fp/addISOWeekYears/index.ts delete mode 100644 src/date-fns/fp/addMilliseconds/index.ts delete mode 100644 src/date-fns/fp/addMinutes/index.ts delete mode 100644 src/date-fns/fp/addMonths/index.ts delete mode 100644 src/date-fns/fp/addQuarters/index.ts delete mode 100644 src/date-fns/fp/addSeconds/index.ts delete mode 100644 src/date-fns/fp/addWeeks/index.ts delete mode 100644 src/date-fns/fp/addYears/index.ts delete mode 100644 src/date-fns/fp/areIntervalsOverlapping/index.ts delete mode 100644 src/date-fns/fp/areIntervalsOverlappingWithOptions/index.ts delete mode 100644 src/date-fns/fp/clamp/index.ts delete mode 100644 src/date-fns/fp/closestIndexTo/index.ts delete mode 100644 src/date-fns/fp/closestTo/index.ts delete mode 100644 src/date-fns/fp/compareAsc/index.ts delete mode 100644 src/date-fns/fp/compareDesc/index.ts delete mode 100644 src/date-fns/fp/constructFrom/index.ts delete mode 100644 src/date-fns/fp/daysToWeeks/index.ts delete mode 100644 src/date-fns/fp/differenceInBusinessDays/index.ts delete mode 100644 src/date-fns/fp/differenceInCalendarDays/index.ts delete mode 100644 src/date-fns/fp/differenceInCalendarISOWeekYears/index.ts delete mode 100644 src/date-fns/fp/differenceInCalendarISOWeeks/index.ts delete mode 100644 src/date-fns/fp/differenceInCalendarMonths/index.ts delete mode 100644 src/date-fns/fp/differenceInCalendarQuarters/index.ts delete mode 100644 src/date-fns/fp/differenceInCalendarWeeks/index.ts delete mode 100644 src/date-fns/fp/differenceInCalendarWeeksWithOptions/index.ts delete mode 100644 src/date-fns/fp/differenceInCalendarYears/index.ts delete mode 100644 src/date-fns/fp/differenceInDays/index.ts delete mode 100644 src/date-fns/fp/differenceInHours/index.ts delete mode 100644 src/date-fns/fp/differenceInHoursWithOptions/index.ts delete mode 100644 src/date-fns/fp/differenceInISOWeekYears/index.ts delete mode 100644 src/date-fns/fp/differenceInMilliseconds/index.ts delete mode 100644 src/date-fns/fp/differenceInMinutes/index.ts delete mode 100644 src/date-fns/fp/differenceInMinutesWithOptions/index.ts delete mode 100644 src/date-fns/fp/differenceInMonths/index.ts delete mode 100644 src/date-fns/fp/differenceInQuarters/index.ts delete mode 100644 src/date-fns/fp/differenceInQuartersWithOptions/index.ts delete mode 100644 src/date-fns/fp/differenceInSeconds/index.ts delete mode 100644 src/date-fns/fp/differenceInSecondsWithOptions/index.ts delete mode 100644 src/date-fns/fp/differenceInWeeks/index.ts delete mode 100644 src/date-fns/fp/differenceInWeeksWithOptions/index.ts delete mode 100644 src/date-fns/fp/differenceInYears/index.ts delete mode 100644 src/date-fns/fp/eachDayOfInterval/index.ts delete mode 100644 src/date-fns/fp/eachDayOfIntervalWithOptions/index.ts delete mode 100644 src/date-fns/fp/eachHourOfInterval/index.ts delete mode 100644 src/date-fns/fp/eachHourOfIntervalWithOptions/index.ts delete mode 100644 src/date-fns/fp/eachMinuteOfInterval/index.ts delete mode 100644 src/date-fns/fp/eachMinuteOfIntervalWithOptions/index.ts delete mode 100644 src/date-fns/fp/eachMonthOfInterval/index.ts delete mode 100644 src/date-fns/fp/eachMonthOfIntervalWithOptions/index.ts delete mode 100644 src/date-fns/fp/eachQuarterOfInterval/index.ts delete mode 100644 src/date-fns/fp/eachQuarterOfIntervalWithOptions/index.ts delete mode 100644 src/date-fns/fp/eachWeekOfInterval/index.ts delete mode 100644 src/date-fns/fp/eachWeekOfIntervalWithOptions/index.ts delete mode 100644 src/date-fns/fp/eachWeekendOfInterval/index.ts delete mode 100644 src/date-fns/fp/eachWeekendOfMonth/index.ts delete mode 100644 src/date-fns/fp/eachWeekendOfYear/index.ts delete mode 100644 src/date-fns/fp/eachYearOfInterval/index.ts delete mode 100644 src/date-fns/fp/eachYearOfIntervalWithOptions/index.ts delete mode 100644 src/date-fns/fp/endOfDay/index.ts delete mode 100644 src/date-fns/fp/endOfDecade/index.ts delete mode 100644 src/date-fns/fp/endOfHour/index.ts delete mode 100644 src/date-fns/fp/endOfISOWeek/index.ts delete mode 100644 src/date-fns/fp/endOfISOWeekYear/index.ts delete mode 100644 src/date-fns/fp/endOfMinute/index.ts delete mode 100644 src/date-fns/fp/endOfMonth/index.ts delete mode 100644 src/date-fns/fp/endOfQuarter/index.ts delete mode 100644 src/date-fns/fp/endOfSecond/index.ts delete mode 100644 src/date-fns/fp/endOfWeek/index.ts delete mode 100644 src/date-fns/fp/endOfWeekWithOptions/index.ts delete mode 100644 src/date-fns/fp/endOfYear/index.ts delete mode 100644 src/date-fns/fp/format/index.ts delete mode 100644 src/date-fns/fp/formatDistance/index.ts delete mode 100644 src/date-fns/fp/formatDistanceStrict/index.ts delete mode 100644 src/date-fns/fp/formatDistanceStrictWithOptions/index.ts delete mode 100644 src/date-fns/fp/formatDistanceWithOptions/index.ts delete mode 100644 src/date-fns/fp/formatDuration/index.ts delete mode 100644 src/date-fns/fp/formatDurationWithOptions/index.ts delete mode 100644 src/date-fns/fp/formatISO/index.ts delete mode 100644 src/date-fns/fp/formatISO9075/index.ts delete mode 100644 src/date-fns/fp/formatISO9075WithOptions/index.ts delete mode 100644 src/date-fns/fp/formatISODuration/index.ts delete mode 100644 src/date-fns/fp/formatISOWithOptions/index.ts delete mode 100644 src/date-fns/fp/formatRFC3339/index.ts delete mode 100644 src/date-fns/fp/formatRFC3339WithOptions/index.ts delete mode 100644 src/date-fns/fp/formatRFC7231/index.ts delete mode 100644 src/date-fns/fp/formatRelative/index.ts delete mode 100644 src/date-fns/fp/formatRelativeWithOptions/index.ts delete mode 100644 src/date-fns/fp/formatWithOptions/index.ts delete mode 100644 src/date-fns/fp/fromUnixTime/index.ts delete mode 100644 src/date-fns/fp/getDate/index.ts delete mode 100644 src/date-fns/fp/getDay/index.ts delete mode 100644 src/date-fns/fp/getDayOfYear/index.ts delete mode 100644 src/date-fns/fp/getDaysInMonth/index.ts delete mode 100644 src/date-fns/fp/getDaysInYear/index.ts delete mode 100644 src/date-fns/fp/getDecade/index.ts delete mode 100644 src/date-fns/fp/getHours/index.ts delete mode 100644 src/date-fns/fp/getISODay/index.ts delete mode 100644 src/date-fns/fp/getISOWeek/index.ts delete mode 100644 src/date-fns/fp/getISOWeekYear/index.ts delete mode 100644 src/date-fns/fp/getISOWeeksInYear/index.ts delete mode 100644 src/date-fns/fp/getMilliseconds/index.ts delete mode 100644 src/date-fns/fp/getMinutes/index.ts delete mode 100644 src/date-fns/fp/getMonth/index.ts delete mode 100644 src/date-fns/fp/getOverlappingDaysInIntervals/index.ts delete mode 100644 src/date-fns/fp/getQuarter/index.ts delete mode 100644 src/date-fns/fp/getSeconds/index.ts delete mode 100644 src/date-fns/fp/getTime/index.ts delete mode 100644 src/date-fns/fp/getUnixTime/index.ts delete mode 100644 src/date-fns/fp/getWeek/index.ts delete mode 100644 src/date-fns/fp/getWeekOfMonth/index.ts delete mode 100644 src/date-fns/fp/getWeekOfMonthWithOptions/index.ts delete mode 100644 src/date-fns/fp/getWeekWithOptions/index.ts delete mode 100644 src/date-fns/fp/getWeekYear/index.ts delete mode 100644 src/date-fns/fp/getWeekYearWithOptions/index.ts delete mode 100644 src/date-fns/fp/getWeeksInMonth/index.ts delete mode 100644 src/date-fns/fp/getWeeksInMonthWithOptions/index.ts delete mode 100644 src/date-fns/fp/getYear/index.ts delete mode 100644 src/date-fns/fp/hoursToMilliseconds/index.ts delete mode 100644 src/date-fns/fp/hoursToMinutes/index.ts delete mode 100644 src/date-fns/fp/hoursToSeconds/index.ts delete mode 100644 src/date-fns/fp/index.ts delete mode 100644 src/date-fns/fp/interval/index.ts delete mode 100644 src/date-fns/fp/intervalToDuration/index.ts delete mode 100644 src/date-fns/fp/intervalWithOptions/index.ts delete mode 100644 src/date-fns/fp/intlFormat/index.ts delete mode 100644 src/date-fns/fp/intlFormatDistance/index.ts delete mode 100644 src/date-fns/fp/intlFormatDistanceWithOptions/index.ts delete mode 100644 src/date-fns/fp/isAfter/index.ts delete mode 100644 src/date-fns/fp/isBefore/index.ts delete mode 100644 src/date-fns/fp/isDate/index.ts delete mode 100644 src/date-fns/fp/isEqual/index.ts delete mode 100644 src/date-fns/fp/isExists/index.ts delete mode 100644 src/date-fns/fp/isFirstDayOfMonth/index.ts delete mode 100644 src/date-fns/fp/isFriday/index.ts delete mode 100644 src/date-fns/fp/isLastDayOfMonth/index.ts delete mode 100644 src/date-fns/fp/isLeapYear/index.ts delete mode 100644 src/date-fns/fp/isMatch/index.ts delete mode 100644 src/date-fns/fp/isMatchWithOptions/index.ts delete mode 100644 src/date-fns/fp/isMonday/index.ts delete mode 100644 src/date-fns/fp/isSameDay/index.ts delete mode 100644 src/date-fns/fp/isSameHour/index.ts delete mode 100644 src/date-fns/fp/isSameISOWeek/index.ts delete mode 100644 src/date-fns/fp/isSameISOWeekYear/index.ts delete mode 100644 src/date-fns/fp/isSameMinute/index.ts delete mode 100644 src/date-fns/fp/isSameMonth/index.ts delete mode 100644 src/date-fns/fp/isSameQuarter/index.ts delete mode 100644 src/date-fns/fp/isSameSecond/index.ts delete mode 100644 src/date-fns/fp/isSameWeek/index.ts delete mode 100644 src/date-fns/fp/isSameWeekWithOptions/index.ts delete mode 100644 src/date-fns/fp/isSameYear/index.ts delete mode 100644 src/date-fns/fp/isSaturday/index.ts delete mode 100644 src/date-fns/fp/isSunday/index.ts delete mode 100644 src/date-fns/fp/isThursday/index.ts delete mode 100644 src/date-fns/fp/isTuesday/index.ts delete mode 100644 src/date-fns/fp/isValid/index.ts delete mode 100644 src/date-fns/fp/isWednesday/index.ts delete mode 100644 src/date-fns/fp/isWeekend/index.ts delete mode 100644 src/date-fns/fp/isWithinInterval/index.ts delete mode 100644 src/date-fns/fp/lastDayOfDecade/index.ts delete mode 100644 src/date-fns/fp/lastDayOfISOWeek/index.ts delete mode 100644 src/date-fns/fp/lastDayOfISOWeekYear/index.ts delete mode 100644 src/date-fns/fp/lastDayOfMonth/index.ts delete mode 100644 src/date-fns/fp/lastDayOfQuarter/index.ts delete mode 100644 src/date-fns/fp/lastDayOfWeek/index.ts delete mode 100644 src/date-fns/fp/lastDayOfWeekWithOptions/index.ts delete mode 100644 src/date-fns/fp/lastDayOfYear/index.ts delete mode 100644 src/date-fns/fp/lightFormat/index.ts delete mode 100644 src/date-fns/fp/max/index.ts delete mode 100644 src/date-fns/fp/milliseconds/index.ts delete mode 100644 src/date-fns/fp/millisecondsToHours/index.ts delete mode 100644 src/date-fns/fp/millisecondsToMinutes/index.ts delete mode 100644 src/date-fns/fp/millisecondsToSeconds/index.ts delete mode 100644 src/date-fns/fp/min/index.ts delete mode 100644 src/date-fns/fp/minutesToHours/index.ts delete mode 100644 src/date-fns/fp/minutesToMilliseconds/index.ts delete mode 100644 src/date-fns/fp/minutesToSeconds/index.ts delete mode 100644 src/date-fns/fp/monthsToQuarters/index.ts delete mode 100644 src/date-fns/fp/monthsToYears/index.ts delete mode 100644 src/date-fns/fp/nextDay/index.ts delete mode 100644 src/date-fns/fp/nextFriday/index.ts delete mode 100644 src/date-fns/fp/nextMonday/index.ts delete mode 100644 src/date-fns/fp/nextSaturday/index.ts delete mode 100644 src/date-fns/fp/nextSunday/index.ts delete mode 100644 src/date-fns/fp/nextThursday/index.ts delete mode 100644 src/date-fns/fp/nextTuesday/index.ts delete mode 100644 src/date-fns/fp/nextWednesday/index.ts delete mode 100644 src/date-fns/fp/parse/index.ts delete mode 100644 src/date-fns/fp/parseISO/index.ts delete mode 100644 src/date-fns/fp/parseISOWithOptions/index.ts delete mode 100644 src/date-fns/fp/parseJSON/index.ts delete mode 100644 src/date-fns/fp/parseWithOptions/index.ts delete mode 100644 src/date-fns/fp/previousDay/index.ts delete mode 100644 src/date-fns/fp/previousFriday/index.ts delete mode 100644 src/date-fns/fp/previousMonday/index.ts delete mode 100644 src/date-fns/fp/previousSaturday/index.ts delete mode 100644 src/date-fns/fp/previousSunday/index.ts delete mode 100644 src/date-fns/fp/previousThursday/index.ts delete mode 100644 src/date-fns/fp/previousTuesday/index.ts delete mode 100644 src/date-fns/fp/previousWednesday/index.ts delete mode 100644 src/date-fns/fp/quartersToMonths/index.ts delete mode 100644 src/date-fns/fp/quartersToYears/index.ts delete mode 100644 src/date-fns/fp/roundToNearestHours/index.ts delete mode 100644 src/date-fns/fp/roundToNearestHoursWithOptions/index.ts delete mode 100644 src/date-fns/fp/roundToNearestMinutes/index.ts delete mode 100644 src/date-fns/fp/roundToNearestMinutesWithOptions/index.ts delete mode 100644 src/date-fns/fp/secondsToHours/index.ts delete mode 100644 src/date-fns/fp/secondsToMilliseconds/index.ts delete mode 100644 src/date-fns/fp/secondsToMinutes/index.ts delete mode 100644 src/date-fns/fp/set/index.ts delete mode 100644 src/date-fns/fp/setDate/index.ts delete mode 100644 src/date-fns/fp/setDay/index.ts delete mode 100644 src/date-fns/fp/setDayOfYear/index.ts delete mode 100644 src/date-fns/fp/setDayWithOptions/index.ts delete mode 100644 src/date-fns/fp/setHours/index.ts delete mode 100644 src/date-fns/fp/setISODay/index.ts delete mode 100644 src/date-fns/fp/setISOWeek/index.ts delete mode 100644 src/date-fns/fp/setISOWeekYear/index.ts delete mode 100644 src/date-fns/fp/setMilliseconds/index.ts delete mode 100644 src/date-fns/fp/setMinutes/index.ts delete mode 100644 src/date-fns/fp/setMonth/index.ts delete mode 100644 src/date-fns/fp/setQuarter/index.ts delete mode 100644 src/date-fns/fp/setSeconds/index.ts delete mode 100644 src/date-fns/fp/setWeek/index.ts delete mode 100644 src/date-fns/fp/setWeekWithOptions/index.ts delete mode 100644 src/date-fns/fp/setWeekYear/index.ts delete mode 100644 src/date-fns/fp/setWeekYearWithOptions/index.ts delete mode 100644 src/date-fns/fp/setYear/index.ts delete mode 100644 src/date-fns/fp/startOfDay/index.ts delete mode 100644 src/date-fns/fp/startOfDecade/index.ts delete mode 100644 src/date-fns/fp/startOfHour/index.ts delete mode 100644 src/date-fns/fp/startOfISOWeek/index.ts delete mode 100644 src/date-fns/fp/startOfISOWeekYear/index.ts delete mode 100644 src/date-fns/fp/startOfMinute/index.ts delete mode 100644 src/date-fns/fp/startOfMonth/index.ts delete mode 100644 src/date-fns/fp/startOfQuarter/index.ts delete mode 100644 src/date-fns/fp/startOfSecond/index.ts delete mode 100644 src/date-fns/fp/startOfWeek/index.ts delete mode 100644 src/date-fns/fp/startOfWeekWithOptions/index.ts delete mode 100644 src/date-fns/fp/startOfWeekYear/index.ts delete mode 100644 src/date-fns/fp/startOfWeekYearWithOptions/index.ts delete mode 100644 src/date-fns/fp/startOfYear/index.ts delete mode 100644 src/date-fns/fp/sub/index.ts delete mode 100644 src/date-fns/fp/subBusinessDays/index.ts delete mode 100644 src/date-fns/fp/subDays/index.ts delete mode 100644 src/date-fns/fp/subHours/index.ts delete mode 100644 src/date-fns/fp/subISOWeekYears/index.ts delete mode 100644 src/date-fns/fp/subMilliseconds/index.ts delete mode 100644 src/date-fns/fp/subMinutes/index.ts delete mode 100644 src/date-fns/fp/subMonths/index.ts delete mode 100644 src/date-fns/fp/subQuarters/index.ts delete mode 100644 src/date-fns/fp/subSeconds/index.ts delete mode 100644 src/date-fns/fp/subWeeks/index.ts delete mode 100644 src/date-fns/fp/subYears/index.ts delete mode 100644 src/date-fns/fp/toDate/index.ts delete mode 100644 src/date-fns/fp/transpose/index.ts delete mode 100644 src/date-fns/fp/types.ts delete mode 100644 src/date-fns/fp/weeksToDays/index.ts delete mode 100644 src/date-fns/fp/yearsToDays/index.ts delete mode 100644 src/date-fns/fp/yearsToMonths/index.ts delete mode 100644 src/date-fns/fp/yearsToQuarters/index.ts diff --git a/.github/workflows/check-published-scheduled.yml b/.github/workflows/check-published-scheduled.yml index 3c232bf..28120ee 100644 --- a/.github/workflows/check-published-scheduled.yml +++ b/.github/workflows/check-published-scheduled.yml @@ -1,14 +1,13 @@ name: Check Published on: - workflow_dispatch: schedule: - cron: '30 20 * * *' jobs: checkPublished: - runs-on: ubuntu-latest name: Check Published + runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 96253c4..65d4ce9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: ['20.x', '21.x'] + node-version: ['22.x', '23.x'] steps: - name: Checkout Code uses: actions/checkout@v4 @@ -39,7 +39,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: ['20.x', '21.x'] + node-version: ['22.x', '23.x'] steps: - name: Checkout Code uses: actions/checkout@v4 diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 7e0b7ae..d8471fb 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -20,7 +20,7 @@ jobs: - name: Use Node.js uses: actions/setup-node@v4 with: - node-version: '20.x' + node-version: '22.x' registry-url: 'https://registry.npmjs.org' - name: Install Dependencies run: npm ci --ignore-scripts diff --git a/.github/workflows/publish-beta.yml b/.github/workflows/publish-beta.yml index fe3b172..e2b4653 100644 --- a/.github/workflows/publish-beta.yml +++ b/.github/workflows/publish-beta.yml @@ -17,7 +17,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20.x' + node-version: '22.x' registry-url: 'https://registry.npmjs.org' - name: Check Label uses: checkdigit/github-actions/check-label@main @@ -25,8 +25,6 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Check Imports uses: checkdigit/github-actions/check-imports@main - - name: Install latest npm - run: npm install -g npm@latest - name: Install Dependencies run: npm ci --ignore-scripts - name: Audit Signatures diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ba5807c..e6f7a71 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -14,7 +14,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20.x' + node-version: '22.x' registry-url: 'https://registry.npmjs.org' - name: Install latest npm run: npm install -g npm@latest diff --git a/README.md b/README.md index d64c0f6..e723914 100644 --- a/README.md +++ b/README.md @@ -17,12 +17,12 @@ and date manipulation functions provided by date-fns. Features: Temporal (vs the millisecond precision of standard Date built-in) is useful for webservices recording the time of events, where concurrent activity may occur and millisecond precision does not provide adequate uniqueness and ordering. The [`date-fns`](https://date-fns.org) library is included. The only locale currently supported is `en-US`, but otherwise contains all -available functionality as of v3.6.0. +available functionality as of v4.1.0 except that the code in `fp` folder are excluded, which contain functional programming related stuff that is not used at the moment. Additionally, the [`date-fns-tz`](https://github.com/marnusw/date-fns-tz) library is included. Contains all -available functionality as of v1.3.7 except that the code in `fp` folder is excluded, which contains functional programming related stuff that is not used at the moment. +available functionality as of v3.0.0 except that the code in `fp` folder are excluded, which contain functional programming related stuff that is not used at the moment. -### `formatUtc` +## `formatUtc` The `formatUtc` function is a wrapper around `date-fns-tz`'s `format` function, but with the following differences: @@ -30,13 +30,13 @@ The `formatUtc` function is a wrapper around `date-fns-tz`'s `format` function, Generally speaking, `formatUtc` should be used in place of `format` or `tzFormat`, unless non-UTC time zones are required. -### Important note about `Instant.toString()` +## Important note about `Instant.toString()` Unlike built-in `Date.toISOString()`, `Instant.toString()` will not add fractional second digits if those values are zero. E.g. -``` +``` typescript new Date(0).toISOString() -> 1970-01-01T00:00:00.100Z vs @@ -44,15 +44,15 @@ vs Temporal.Instant(0n).toString() -> 1970-01-01T00:00:00.1Z ``` -### Why not just use the polyfill? +## Why not just use the polyfill? The polyfill is not production ready. The implementation is designed to be used in the browser so cannot make use of Node's high-resolution timer to more accurately simulate nanosecond precision time. Crucially, the polyfill does not guarantee always increasing nanosecond precision times on subsequent calls, which makes it a non-starter for recording the time of events in production webservices. -### Installing and usage +## Installing and usage `npm install @checkdigit/time` then: -``` +``` typescript import { Temporal } from '@checkdigit/time'; // delete this once Temporal becomes a built-in // print out nanosecond-precision ISO8601 datetime @@ -61,13 +61,13 @@ console.log('Current time', Temporal.Now.instant().toString()); For `date-fns` functionality: -``` +``` typescript import { formatUtc } from '@checkdigit/time'; console.log(formatUtc(new Date(), 'yyyy-MM-dd')); ``` -### Documentation +## Documentation The stage 3 proposal can be found here: https://github.com/tc39/proposal-temporal @@ -77,7 +77,7 @@ The documentation for `date-fns` is here: https://date-fns.org/ The documentation for `date-fns-tz` is here: https://github.com/marnusw/date-fns-tz -### Maintenance notes: +## Critical maintenance notes (VERY IMPORTANT!!!): When updating the latest code from the original repositories, except making all the necessary changes to make them fully typescript compatible, please remember to carry over the patches to overcome the following issues: diff --git a/disable.sh b/disable.sh new file mode 100755 index 0000000..9536725 --- /dev/null +++ b/disable.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# Directory containing the files +folder="src/date-fns" + +# Text to insert at the beginning +insert_text_begin="/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\n// @ts-nocheck\n" + +# Text to insert at the end +insert_text_end="\n/* eslint-enable */" + +# Loop over each file in the folder (adjust the glob as needed, e.g. *.txt) +for file in "$folder"/*; do + if [ -f "$file" ]; then + # Create a temporary file that contains the new text followed by the original file contents + { printf "%b\n" "$insert_text_begin"; cat "$file"; printf "%b\n" "$insert_text_end"; } > "${file}.tmp" && mv "${file}.tmp" "$file" + echo "Updated: $file" + fi +done \ No newline at end of file diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..0da216b --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,21 @@ +import checkdigitConfig from '@checkdigit/eslint-config'; + +export default [ + ...checkdigitConfig, + { + rules: { + 'yml/no-empty-mapping-value': 'off', + 'markdown/fenced-code-language': 'off', + 'markdown/no-missing-label-refs': 'off', + '@checkdigit/object-literal-response': 'off', + '@typescript-eslint/no-deprecated': 'off', + 'unicorn/import-style': 'off', + '@checkdigit/invalid-json-stringify': 'off', + 'unicorn/prefer-math-min-max': 'off', + 'unicorn/no-length-as-slice-end': 'off', + 'no-useless-assignment': 'off', + 'no-secrets/no-secrets': 'off', + 'unicorn/no-await-expression-member': 'off', + }, + }, +]; diff --git a/package-lock.json b/package-lock.json index e40c1da..8f336ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,33 +1,22 @@ { "name": "@checkdigit/time", - "version": "4.0.0", + "version": "5.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@checkdigit/time", - "version": "4.0.0", + "version": "5.0.0", "license": "MIT", "devDependencies": { - "@checkdigit/eslint-config": "^9.2.0", - "@checkdigit/jest-config": "^6.0.0", - "@checkdigit/prettier-config": "^5.3.0", - "@checkdigit/typescript-config": "^7.0.1", + "@checkdigit/eslint-config": "^11.1.0", + "@checkdigit/prettier-config": "^6.2.0", + "@checkdigit/typescript-config": "^9.0.0", "@js-temporal/polyfill": "^0.4.4", - "rimraf": "^5.0.5" + "rimraf": "^6.0.1" }, "engines": { - "node": ">=20.11" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" + "node": ">=22.11" } }, "node_modules/@ampproject/remapping": { @@ -35,6 +24,7 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -45,459 +35,588 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@babel/compat-data": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "peer": true, - "dependencies": { - "color-name": "1.1.3" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "node_modules/@babel/eslint-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.9.tgz", + "integrity": "sha512-5UXfgpK0j0Xr/xIdgdLEhOFxaDZ0bRPWJJchRpqOSur/3rZoPbqqki5mm0p4NE2cs28krBEiSM2MB7//afRSQQ==", "dev": true, - "peer": true + "license": "MIT", + "peer": true, + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" + } }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, + "license": "Apache-2.0", "peer": true, "engines": { - "node": ">=0.8.0" + "node": ">=10" } }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "peer": true, - "engines": { - "node": ">=4" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/generator": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "has-flag": "^3.0.0" + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@babel/types": "^7.25.9" + }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/core": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz", + "integrity": "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.26.9", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "peer": true, "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" + "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=6.9.0" + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.26.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helpers": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", - "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "node_modules/@babel/helpers": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", + "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@babel/parser": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "color-convert": "^1.9.0" + "@babel/types": "^7.26.9" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "color-name": "1.1.3" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", "dev": true, - "peer": true + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, "engines": { - "node": ">=0.8.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz", + "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "has-flag": "^3.0.0" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-decorators": "^7.25.9" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, + "license": "MIT", "peer": true, - "bin": { - "parser": "bin/babel-parser.js" - }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-async-generators": { @@ -505,6 +624,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -518,6 +639,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -531,6 +654,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" @@ -539,40 +664,131 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", + "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", + "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -586,6 +802,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" @@ -599,6 +817,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -612,6 +832,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" @@ -625,6 +847,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -638,6 +862,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -651,6 +877,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -659,11 +887,31 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -676,13 +924,15 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -691,4015 +941,4247 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/traverse": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", - "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", + "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.26.8" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "peer": true - }, - "node_modules/@checkdigit/eslint-config": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@checkdigit/eslint-config/-/eslint-config-9.2.0.tgz", - "integrity": "sha512-hGYugfyWu/OLDpWd9nX4daMzJjirpYYjSTXwVbK8H/4cQhYebmj2MGV7V69AvGsQdpWpl01t+CuvMlHk+MRQ1Q==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, "engines": { - "node": ">=20.11" + "node": ">=6.9.0" }, "peerDependencies": { - "@checkdigit/eslint-plugin": "5.5.3", - "@typescript-eslint/eslint-plugin": "7.2.0", - "@typescript-eslint/parser": "7.2.0", - "eslint": "8.57.0", - "eslint-config-prettier": "9.1.0", - "eslint-import-resolver-typescript": "3.6.1", - "eslint-plugin-eslint-comments": "3.2.0", - "eslint-plugin-import": "2.29.1", - "eslint-plugin-jest": "27.9.0", - "eslint-plugin-n": "16.6.2", - "eslint-plugin-no-only-tests": "3.1.0", - "eslint-plugin-no-secrets": "0.8.9", - "eslint-plugin-sonarjs": "0.24.0", - "eslint-plugin-unicorn": "51.0.1" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@checkdigit/eslint-plugin": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/@checkdigit/eslint-plugin/-/eslint-plugin-5.5.3.tgz", - "integrity": "sha512-eRwJemE0XSgQ98xQ+HqZMIgcQ0cMU2R/By/tjKmB/ui+MTbBAm+OEHOQcVWd8SdVs2TIrgTmCTmum0UrIil03Q==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": ">=8 <9" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@checkdigit/jest-config": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@checkdigit/jest-config/-/jest-config-6.0.0.tgz", - "integrity": "sha512-VZd3mzzZatAvRoz5fKuYJCS7L8BatJllyiOYxpHsOAAe2WwjBRx0W9KoJcq0e8DQDA8l8DsNn1XURy1kIBwKNQ==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=20.11" + "node": ">=6.9.0" }, "peerDependencies": { - "@jest/globals": "29.7.0", - "dotenv": ">=16", - "jest": "29.7.0", - "ts-jest": "29.1.2" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@checkdigit/prettier-config": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@checkdigit/prettier-config/-/prettier-config-5.3.0.tgz", - "integrity": "sha512-S2Q/v8aLiH3ROxvgAawhhZkt3t0a2S7fmF+E+GCWOiYXkSXm02+8QvNZVIMyx7xgwK2MpRQv0bdJuyWjsLe7MQ==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=20.11" + "node": ">=6.9.0" }, "peerDependencies": { - "prettier": "3.2.5" + "@babel/core": "^7.12.0" } }, - "node_modules/@checkdigit/typescript-config": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@checkdigit/typescript-config/-/typescript-config-7.0.1.tgz", - "integrity": "sha512-CM3y0s22VLSsD+HlOK/0eQCIJZgPH1SHd6b9xrsS+iYgI3jO2T10I9vMQpGZfkxOB/iIL3Ob7ktWJeIOPff/xw==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dev": true, - "bin": { - "builder": "bin/builder.mjs" + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" }, "engines": { - "node": ">=20.11" + "node": ">=6.9.0" }, "peerDependencies": { - "@types/node": ">=20.11", - "esbuild": "0.20.2", - "typescript": ">=5.4.3 <5.5.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "optional": true, - "os": [ - "aix" - ], + "license": "MIT", "peer": true, "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.26.5.tgz", + "integrity": "sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/plugin-syntax-flow": "^7.26.0" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "cpu": [ - "ia32" - ], + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz", + "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "cpu": [ - "loong64" - ], + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "cpu": [ - "mips64el" - ], + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "cpu": [ - "riscv64" - ], + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "cpu": [ - "s390x" - ], + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", "dev": true, - "optional": true, - "os": [ - "netbsd" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "dev": true, - "optional": true, - "os": [ - "openbsd" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dev": true, - "optional": true, - "os": [ - "sunos" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "cpu": [ - "ia32" - ], + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.26.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" + }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "brace-expansion": "^1.1.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=10.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "brace-expansion": "^1.1.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12.22" + "node": ">=6.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true, - "peer": true - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "ansi-regex": "^6.0.1" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=12" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "sprintf-js": "~1.0.2" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", + "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "@babel/helper-plugin-utils": "^7.26.5" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", + "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "p-locate": "^4.1.0" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "p-try": "^2.0.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=6" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "p-limit": "^2.2.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "node_modules/@babel/preset-env": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", + "semver": "^6.3.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-flow": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.25.9.tgz", + "integrity": "sha512-EASHsAhE+SSlEzJ4bzfusnXSHiU+JfAYzj+jbw2vgQKgq5HrUr8qs+vgtiEL5dOH6sEweI+PNt2D7AqrDSHyqQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-flow-strip-types": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/core/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], + "license": "MIT", "peer": true, - "engines": { - "node": ">=8" + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "node_modules/@babel/preset-react": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "node_modules/@babel/runtime": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", + "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "jest-get-type": "^29.6.3" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "node_modules/@babel/traverse": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9", + "debug": "^4.3.1", + "globals": "^11.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "node_modules/@babel/types": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", + "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/@checkdigit/eslint-config": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@checkdigit/eslint-config/-/eslint-config-11.1.0.tgz", + "integrity": "sha512-IRqUJd+fvvWv2zjVUEoePbBN1umfBLaIZRpnJ6SzCPa+I6f4DkMhOIck+SYyxZEbo41rCDMurgvkGmJaH44rMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22.11" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@checkdigit/eslint-plugin": "7.11.0", + "@eslint/compat": "1.2.6", + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.19.0", + "@eslint/json": "0.10.0", + "@eslint/markdown": "6.2.2", + "@typescript-eslint/eslint-plugin": "8.23.0", + "@typescript-eslint/parser": "8.23.0", + "eslint": "9.19.0", + "eslint-config-prettier": "10.0.1", + "eslint-import-resolver-typescript": "3.7.0", + "eslint-plugin-eslint-comments": "3.2.0", + "eslint-plugin-import": "2.31.0", + "eslint-plugin-jest": "28.11.0", + "eslint-plugin-n": "17.15.1", + "eslint-plugin-no-only-tests": "3.3.0", + "eslint-plugin-no-secrets": "2.2.1", + "eslint-plugin-sonarjs": "3.0.1", + "eslint-plugin-unicorn": "56.0.1", + "eslint-plugin-yml": "1.16.0", + "typescript-eslint": "8.23.0" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@checkdigit/eslint-plugin": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@checkdigit/eslint-plugin/-/eslint-plugin-7.11.0.tgz", + "integrity": "sha512-JfaRr+orUW+Ajwa9mH8QS0SL2xTt/JQku1sqjXsW+vQ0QVMvwADQPWzizEzIj6a22y2FlXBMGATzEKRPKGz37A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@sinclair/typebox": "^0.27.8" + "@typescript-eslint/type-utils": "^8.23.0", + "@typescript-eslint/utils": "^8.23.0", + "http-status-codes": "^2.3.0", + "ts-api-utils": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=20.17" + }, + "peerDependencies": { + "eslint": ">=9 <10" } }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "node_modules/@checkdigit/prettier-config": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@checkdigit/prettier-config/-/prettier-config-6.2.0.tgz", + "integrity": "sha512-9BtbUyLYW/MJJodVfYXgB/+k+HykzDzuq3fUTMEuSC+MToXD/aSSHBYZkOMLTZoS7JesIHnbGPK44Fub4GfhIg==", "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=22.11" + }, + "peerDependencies": { + "@prettier/plugin-xml": "3.4.1", + "prettier": "3.5.0", + "prettier-plugin-packagejson": "2.5.8", + "prettier-plugin-svelte": "3.3.3", + "prettier-plugin-tailwindcss": "0.6.11" } }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "node_modules/@checkdigit/typescript-config": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@checkdigit/typescript-config/-/typescript-config-9.0.0.tgz", + "integrity": "sha512-gVUfkqTY/SbJx56VDMTENPPJkkv9dhDt251sfs5F1jp6S/ffPzDY1Pu0yMwr40bvaa4o0ub3LcHMk7bxUd4Wtg==", "dev": true, - "peer": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "license": "MIT", + "bin": { + "builder": "bin/builder.mjs" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=22.11" + }, + "peerDependencies": { + "@swc-node/register": "1.10.9", + "@types/node": ">=22", + "esbuild": "0.24.0", + "typescript": ">=5.7.2 <5.8.0" } }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "node_modules/@emnapi/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" } }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "tslib": "^2.4.0" } }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "tslib": "^2.4.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], "peer": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "peer": true, "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "peer": true, "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true, - "peer": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "engines": { + "node": ">=18" } }, - "node_modules/@js-temporal/polyfill": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@js-temporal/polyfill/-/polyfill-0.4.4.tgz", - "integrity": "sha512-2X6bvghJ/JAoZO52lbgyAPFj8uCflhTo2g7nkFzEQdXd/D8rEeD4HtmTEpmtGCva260fcd66YNXBOYdnmHqSOg==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "jsbi": "^4.3.0", - "tslib": "^2.4.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "peer": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, "engines": { - "node": ">= 8" + "node": ">=18" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "peer": true, "engines": { - "node": ">= 8" + "node": ">=18" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "peer": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, "engines": { - "node": ">= 8" + "node": ">=18" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], "dev": true, + "license": "MIT", "optional": true, + "os": [ + "linux" + ], + "peer": true, "engines": { - "node": ">=14" + "node": ">=18" } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true, - "peer": true - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "type-detect": "4.0.8" + "engines": { + "node": ">=18" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" + "engines": { + "node": ">=18" } }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "engines": { + "node": ">=18" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "@babel/types": "^7.0.0" + "engines": { + "node": ">=18" } }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "engines": { + "node": ">=18" } }, - "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "@babel/types": "^7.20.7" + "engines": { + "node": ">=18" } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "@types/node": "*" + "engines": { + "node": ">=18" } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true, - "peer": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" + "engines": { + "node": ">=18" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "peer": true, - "dependencies": { - "@types/istanbul-lib-report": "*" + "engines": { + "node": ">=18" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "peer": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], "dev": true, - "peer": true + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "peer": true, + "engines": { + "node": ">=18" + } }, - "node_modules/@types/node": { - "version": "20.11.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz", - "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "peer": true, - "dependencies": { - "undici-types": "~5.26.4" + "engines": { + "node": ">=18" } }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true, - "peer": true - }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], "dev": true, - "peer": true + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "peer": true, + "engines": { + "node": ">=18" + } }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], "dev": true, - "peer": true + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "peer": true, - "dependencies": { - "@types/yargs-parser": "*" + "engines": { + "node": ">=18" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], "dev": true, - "peer": true + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=18" + } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.2.0.tgz", - "integrity": "sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/type-utils": "7.2.0", - "@typescript-eslint/utils": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", - "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", - "debug": "^4.3.4" - }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/compat": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.6.tgz", + "integrity": "sha512-k7HNCqApoDHM6XzT30zGoETj+D+uUcZUb+IVAJmar3u6bvHf7hhHJcWx09QHj4/a2qrKZMWU0E16tvkiAdv06Q==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^9.10.0" }, "peerDependenciesMeta": { - "typescript": { + "eslint": { "optional": true } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "node_modules/@eslint/config-array": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.15" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.2.0.tgz", - "integrity": "sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==", + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/utils": "7.2.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://opencollective.com/eslint" } }, - "node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "node_modules/@eslint/js": { + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", + "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "node_modules/@eslint/json": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/json/-/json-0.10.0.tgz", + "integrity": "sha512-aW0181XofoAwuB0sI263bhwnvAlb6OGnGGxHjTZQNLFErfsAXCnwRD+Uxx6/pK73XtKuQ2w1wbhiTJ2BC/erAQ==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "@eslint/core": "^0.10.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanwhocodes/momoa": "^3.3.4", + "natural-compare": "^1.4.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@typescript-eslint/utils": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.2.0.tgz", - "integrity": "sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==", + "node_modules/@eslint/markdown": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@eslint/markdown/-/markdown-6.2.2.tgz", + "integrity": "sha512-U0/KgzI9BVUuHDQ9M2fuVgB0QZ1fSyzwm8jKmHr1dlsLHGHYzoeIA9yqLMdTbV3ivZfp6rTdt6zqre3TfNExUQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "semver": "^7.5.4" + "@eslint/core": "^0.10.0", + "@eslint/plugin-kit": "^0.2.5", + "mdast-util-from-markdown": "^2.0.2", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, + "license": "Apache-2.0", "peer": true, - "dependencies": { - "@typescript-eslint/types": "7.2.0", - "eslint-visitor-keys": "^3.4.1" - }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "node_modules/@eslint/plugin-kit": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.6.tgz", + "integrity": "sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==", "dev": true, - "peer": true + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@eslint/core": "^0.11.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.11.0.tgz", + "integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==", "dev": true, + "license": "Apache-2.0", "peer": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@types/json-schema": "^7.0.15" }, "engines": { - "node": ">=0.4.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, + "license": "Apache-2.0", "peer": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "engines": { + "node": ">=18.18.0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=18.18.0" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, + "license": "Apache-2.0", "peer": true, - "dependencies": { - "type-fest": "^0.21.3" - }, "engines": { - "node": ">=8" + "node": ">=18.18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "peer": true, "engines": { - "node": ">=10" + "node": ">=12.22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@humanwhocodes/momoa": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-3.3.6.tgz", + "integrity": "sha512-7/sAGm3YsT6xG1bDkTSHvOpQB+cR4I2InfMVw110nuOCrxZvOQHgRqBMxSoTeUQrk9RS4OU9Aw2MBMZVJgLZMg==", "dev": true, + "license": "Apache-2.0", + "peer": true, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "Apache-2.0", + "peer": true, "engines": { - "node": ">=8" + "node": ">=18.18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, - "peer": true, + "license": "ISC", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">= 8" + "node": ">=12" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "peer": true - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/array.prototype.filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", - "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", - "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", + "optional": true, "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "sprintf-js": "~1.0.2" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "possible-typed-array-names": "^1.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "peerDependencies": { - "@babel/core": "^7.8.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" + "p-locate": "^4.1.0" }, "engines": { "node": ">=8" } }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "p-limit": "^2.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=8" } }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=8" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, + "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "balanced-match": "^1.0.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "fill-range": "^7.0.1" + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "node_modules/@jest/core/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, { "type": "github", - "url": "https://github.com/sponsors/ai" + "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", + "optional": true, "peer": true, - "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=8" } }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "fast-json-stable-stringify": "2.x" + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "peer": true - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "semver": "^7.0.0" + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001599", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz", - "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", - "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true } - ], - "peer": true, - "engines": { - "node": ">=8" } }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true, - "peer": true - }, - "node_modules/clean-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "escape-string-regexp": "^1.0.5" + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": ">=4" - } - }, - "node_modules/clean-regexp/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.8.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true, - "peer": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { - "color-name": "~1.1.4" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">=7.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "peer": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "peer": true - }, - "node_modules/core-js-compat": { - "version": "3.36.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", - "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "browserslist": "^4.22.3" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/create-jest": { + "node_modules/@jest/transform": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { + "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "exit": "^0.1.2", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0.0" } }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0.0" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0.0" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "node_modules/@js-temporal/polyfill": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@js-temporal/polyfill/-/polyfill-0.4.4.tgz", + "integrity": "sha512-2X6bvghJ/JAoZO52lbgyAPFj8uCflhTo2g7nkFzEQdXd/D8rEeD4HtmTEpmtGCva260fcd66YNXBOYdnmHqSOg==", "dev": true, - "peer": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" + "license": "ISC", + "dependencies": { + "jsbi": "^4.3.0", + "tslib": "^2.4.1" }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "engines": { + "node": ">=12" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "peer": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.6.tgz", + "integrity": "sha512-z8YVS3XszxFTO73iwvFDNpQIzdMmSDTP/mB3E/ucR37V3Sx57hSExcXyMoNwaucWxnsWf4xfbZv0iZ30jr0M4Q==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@emnapi/core": "^1.3.1", + "@emnapi/runtime": "^1.3.1", + "@tybys/wasm-util": "^0.9.0" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "eslint-scope": "5.1.1" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8.0.0" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "path-type": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "esutils": "^2.0.2" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=6.0.0" + "node": ">= 8" } }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" + "node": ">=12.4.0" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.708", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.708.tgz", - "integrity": "sha512-iWgEEvREL4GTXXHKohhh33+6Y8XkPI5eHihDmm8zUk5Zo7HICEW+wI/j5kJ2tbuNUCXJ/sNXa03ajW635DiJXA==", + "node_modules/@oxc-resolver/binding-darwin-arm64": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-1.12.0.tgz", + "integrity": "sha512-wYe+dlF8npM7cwopOOxbdNjtmJp17e/xF5c0K2WooQXy5VOh74icydM33+Uh/SZDgwyum09/U1FVCX5GdeQk+A==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "peer": true }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "node_modules/@oxc-resolver/binding-darwin-x64": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-1.12.0.tgz", + "integrity": "sha512-FZxxp99om+SlvBr1cjzF8A3TjYcS0BInCqjUlM+2f9m9bPTR2Bng9Zq5Q09ZQyrKJjfGKqlOEHs3akuVOnrx3Q==", + "cpu": [ + "x64" + ], "dev": true, - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "node_modules/@oxc-resolver/binding-freebsd-x64": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-1.12.0.tgz", + "integrity": "sha512-BZi0iU6IEOnXGSkqt1OjTTkN9wfyaK6kTpQwL/axl8eCcNDc7wbv1vloHgILf7ozAY1TP75nsLYlASYI4B5kGA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true }, - "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "node_modules/@oxc-resolver/binding-linux-arm-gnueabihf": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.12.0.tgz", + "integrity": "sha512-L2qnMEnZAqxbG9b1J3di/w/THIm+1fMVfbbTMWIQNMMXdMeqqDN6ojnOLDtuP564rAh4TBFPdLyEfGhMz6ipNA==", + "cpu": [ + "arm" + ], "dev": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/@oxc-resolver/binding-linux-arm64-gnu": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.12.0.tgz", + "integrity": "sha512-otVbS4zeo3n71zgGLBYRTriDzc0zpruC0WI3ICwjpIk454cLwGV0yzh4jlGYWQJYJk0BRAmXFd3ooKIF+bKBHw==", + "cpu": [ + "arm64" + ], "dev": true, - "peer": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true }, - "node_modules/es-abstract": { - "version": "1.23.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz", - "integrity": "sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==", + "node_modules/@oxc-resolver/binding-linux-arm64-musl": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.12.0.tgz", + "integrity": "sha512-IStQDjIT7Lzmqg1i9wXvPL/NsYsxF24WqaQFS8b8rxra+z0VG7saBOsEnOaa4jcEY8MVpLYabFhTV+fSsA2vnA==", + "cpu": [ + "arm64" + ], "dev": true, - "peer": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.5", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "node_modules/@oxc-resolver/binding-linux-x64-gnu": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.12.0.tgz", + "integrity": "sha512-SipT7EVORz8pOQSFwemOm91TpSiBAGmOjG830/o+aLEsvQ4pEy223+SAnCfITh7+AahldYsJnVoIs519jmIlKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@oxc-resolver/binding-linux-x64-musl": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-1.12.0.tgz", + "integrity": "sha512-mGh0XfUzKdn+WFaqPacziNraCWL5znkHRfQVxG9avGS9zb2KC/N1EBbPzFqutDwixGDP54r2gx4q54YCJEZ4iQ==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "node_modules/@oxc-resolver/binding-wasm32-wasi": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-1.12.0.tgz", + "integrity": "sha512-SZN6v7apKmQf/Vwiqb6e/s3Y2Oacw8uW8V2i1AlxtyaEFvnFE0UBn89zq6swEwE3OCajNWs0yPvgAXUMddYc7Q==", + "cpu": [ + "wasm32" + ], "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "get-intrinsic": "^1.2.4" + "@napi-rs/wasm-runtime": "^0.2.4" }, "engines": { - "node": ">= 0.4" + "node": ">=14.0.0" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/@oxc-resolver/binding-win32-arm64-msvc": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.12.0.tgz", + "integrity": "sha512-GRe4bqCfFsyghruEn5bv47s9w3EWBdO2q72xCz5kpQ0LWbw+enPHtTjw3qX5PUcFYpKykM55FaO0hFDs1yzatw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@oxc-resolver/binding-win32-x64-msvc": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.12.0.tgz", + "integrity": "sha512-Z3llHH0jfJP4mlWq3DT7bK6qV+/vYe0+xzCgfc67+Tc/U3eYndujl880bexeGdGNPh87JeYznpZAOJ44N7QVVQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": ">= 0.4" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "node_modules/@prettier/plugin-xml": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-3.4.1.tgz", + "integrity": "sha512-Uf/6/+9ez6z/IvZErgobZ2G9n1ybxF5BhCd7eMcKqfoWuOzzNUxBipNo3QAP8kRC1VD18TIo84no7LhqtyDcTg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "es-errors": "^1.3.0" + "@xml-tools/parser": "^1.0.11" }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "prettier": "^3.0.0" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, + "license": "BSD-3-Clause", + "optional": true, "peer": true, "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" + "type-detect": "4.0.8" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, + "license": "BSD-3-Clause", + "optional": true, "peer": true, "dependencies": { - "hasown": "^2.0.0" + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/@swc-node/core": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc-node/core/-/core-1.13.3.tgz", + "integrity": "sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, "engines": { - "node": ">= 0.4" + "node": ">= 10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@swc/core": ">= 1.4.13", + "@swc/types": ">= 0.1" } }, - "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "node_modules/@swc-node/register": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc-node/register/-/register-1.10.9.tgz", + "integrity": "sha512-iXy2sjP0phPEpK2yivjRC3PAgoLaT4sjSk0LDWCTdcTBJmR4waEog0E6eJbvoOkLkOtWw37SB8vCkl/bbh4+8A==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "peer": true, - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "@swc-node/core": "^1.13.3", + "@swc-node/sourcemap-support": "^0.5.1", + "colorette": "^2.0.20", + "debug": "^4.3.5", + "oxc-resolver": "^1.10.2", + "pirates": "^4.0.6", + "tslib": "^2.6.3" }, - "engines": { - "node": ">=12" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" + "peerDependencies": { + "@swc/core": ">= 1.4.13", + "typescript": ">= 4.3" } }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "node_modules/@swc-node/sourcemap-support": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@swc-node/sourcemap-support/-/sourcemap-support-0.5.1.tgz", + "integrity": "sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=6" + "dependencies": { + "source-map-support": "^0.5.21", + "tslib": "^2.6.3" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/@swc/core": { + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.18.tgz", + "integrity": "sha512-IUWKD6uQYGRy8w2X9EZrtYg1O3SCijlHbCXzMaHQYc1X7yjijQh4H3IVL9ssZZyVp2ZDfQZu4bD5DWxxvpyjvg==", "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", "peer": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.17" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "type": "opencollective", + "url": "https://opencollective.com/swc" }, - "bin": { - "eslint": "bin/eslint.js" + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.10.18", + "@swc/core-darwin-x64": "1.10.18", + "@swc/core-linux-arm-gnueabihf": "1.10.18", + "@swc/core-linux-arm64-gnu": "1.10.18", + "@swc/core-linux-arm64-musl": "1.10.18", + "@swc/core-linux-x64-gnu": "1.10.18", + "@swc/core-linux-x64-musl": "1.10.18", + "@swc/core-win32-arm64-msvc": "1.10.18", + "@swc/core-win32-ia32-msvc": "1.10.18", + "@swc/core-win32-x64-msvc": "1.10.18" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "peerDependencies": { + "@swc/helpers": "*" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } } }, - "node_modules/eslint-compat-utils": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", - "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "node_modules/@swc/core-darwin-arm64": { + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.18.tgz", + "integrity": "sha512-FdGqzAIKVQJu8ROlnHElP59XAUsUzCFSNsou+tY/9ba+lhu8R9v0OI5wXiPErrKGZpQFMmx/BPqqhx3X4SuGNg==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], "peer": true, "engines": { - "node": ">=12" - }, - "peerDependencies": { - "eslint": ">=6.0.0" + "node": ">=10" } }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "node_modules/@swc/core-darwin-x64": { + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.18.tgz", + "integrity": "sha512-RZ73gZRituL/ZVLgrW6BYnQ5g8tuStG4cLUiPGJsUZpUm0ullSH6lHFvZTCBNFTfpQChG6eEhi2IdG6DwFp1lw==", + "cpu": [ + "x64" + ], "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], "peer": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "engines": { + "node": ">=10" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.18.tgz", + "integrity": "sha512-8iJqI3EkxJuuq21UHoen1VS+QlS23RvynRuk95K+Q2HBjygetztCGGEc+Xelx9a0uPkDaaAtFvds4JMDqb9SAA==", + "cpu": [ + "arm" + ], "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "engines": { + "node": ">=10" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.18.tgz", + "integrity": "sha512-8f1kSktWzMB6PG+r8lOlCfXz5E8Qhsmfwonn77T/OfjvGwQaWrcoASh2cdjpk3dydbf8jsKGPQE1lSc7GyjXRQ==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">=10" } }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.18.tgz", + "integrity": "sha512-4rv+E4VLdgQw6zjbTAauCAEExxChvxMpBUMCiZweTNPKbJJ2dY6BX2WGJ1ea8+RcgqR/Xysj3AFbOz1LBz6dGA==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "fast-glob": "^3.3.1", - "get-tsconfig": "^4.5.0", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3" - }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*" + "node": ">=10" } }, - "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.18.tgz", + "integrity": "sha512-vTNmyRBVP+sZca+vtwygYPGTNudTU6Gl6XhaZZ7cEUTBr8xvSTgEmYXoK/2uzyXpaTUI4Bmtp1x81cGN0mMoLQ==", + "cpu": [ + "x64" + ], "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "debug": "^3.2.7" - }, "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "node": ">=10" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.18.tgz", + "integrity": "sha512-1TZPReKhFCeX776XaT6wegknfg+g3zODve+r4oslFHI+g7cInfWlxoGNDS3niPKyuafgCdOjme2g3OF+zzxfsQ==", + "cpu": [ + "x64" + ], "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "peer": true, - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">=10" } }, - "node_modules/eslint-plugin-es-x": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz", - "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==", + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.18.tgz", + "integrity": "sha512-o/2CsaWSN3bkzVQ6DA+BiFKSVEYvhWGA1h+wnL2zWmIDs2Knag54sOEXZkCaf8YQyZesGeXJtPEy9hh/vjJgkA==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.6.0", - "eslint-compat-utils": "^0.1.2" - }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - }, - "peerDependencies": { - "eslint": ">=8" + "node": ">=10" } }, - "node_modules/eslint-plugin-eslint-comments": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", - "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.18.tgz", + "integrity": "sha512-eTPASeJtk4mJDfWiYEiOC6OYUi/N7meHbNHcU8e+aKABonhXrIo/FmnTE8vsUtC6+jakT1TQBdiQ8fzJ1kJVwA==", + "cpu": [ + "ia32" + ], "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], "peer": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "ignore": "^5.0.5" - }, "engines": { - "node": ">=6.5.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" + "node": ">=10" } }, - "node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.18.tgz", + "integrity": "sha512-1Dud8CDBnc34wkBOboFBQud9YlV1bcIQtKSg7zC8LtwR3h+XAaCayZPkpGmmAlCv1DLQPvkF+s0JcaVC9mfffQ==", + "cpu": [ + "x64" + ], "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], "peer": true, "engines": { - "node": ">=0.8.0" + "node": ">=10" } }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", "dev": true, - "peer": true, - "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } + "license": "Apache-2.0", + "peer": true }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@swc/types": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", + "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@swc/counter": "^0.1.3" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "ms": "^2.1.1" + "tslib": "^2.4.0" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "@babel/types": "^7.0.0" } }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/eslint-plugin-jest": { - "version": "27.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", - "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@typescript-eslint/utils": "^5.10.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", - "eslint": "^7.0.0 || ^8.0.0", - "jest": "*" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } + "@babel/types": "^7.20.7" } }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@types/ms": "*" } }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } + "license": "MIT", + "peer": true }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@types/node": "*" } }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true, - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } + "license": "MIT", + "optional": true, + "peer": true }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/eslint-plugin-jest/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" + "@types/istanbul-lib-report": "*" } }, - "node_modules/eslint-plugin-jest/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, - "peer": true, - "engines": { - "node": ">=4.0" - } + "license": "MIT", + "peer": true }, - "node_modules/eslint-plugin-n": { - "version": "16.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz", - "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==", + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "builtins": "^5.0.1", - "eslint-plugin-es-x": "^7.5.0", - "get-tsconfig": "^4.7.0", - "globals": "^13.24.0", - "ignore": "^5.2.4", - "is-builtin-module": "^3.2.1", - "is-core-module": "^2.12.1", - "minimatch": "^3.1.2", - "resolve": "^1.22.2", - "semver": "^7.5.3" - }, - "engines": { - "node": ">=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "@types/unist": "*" } }, - "node_modules/eslint-plugin-n/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/node": { + "version": "22.13.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", + "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "undici-types": "~6.20.0" } }, - "node_modules/eslint-plugin-n/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "@types/yargs-parser": "*" } }, - "node_modules/eslint-plugin-no-only-tests": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz", - "integrity": "sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==", + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true, - "peer": true, - "engines": { - "node": ">=5.0.0" - } + "license": "MIT", + "optional": true, + "peer": true }, - "node_modules/eslint-plugin-no-secrets": { - "version": "0.8.9", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-secrets/-/eslint-plugin-no-secrets-0.8.9.tgz", - "integrity": "sha512-CqaBxXrImABCtxMWspAnm8d5UKkpNylC7zqVveb+fJHEvsSiNGJlSWzdSIvBUnW1XhJXkzifNIZQC08rEII5Ng==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.23.0.tgz", + "integrity": "sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/type-utils": "8.23.0", + "@typescript-eslint/utils": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.1" + }, "engines": { - "node": ">=10.0.0", - "npm": ">=6.9.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": ">=3.0.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/eslint-plugin-sonarjs": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.24.0.tgz", - "integrity": "sha512-87zp50mbbNrSTuoEOebdRQBPa0mdejA5UEjyuScyIw8hEpEjfWP89Qhkq5xVZfVyVSRQKZc9alVm7yRKQvvUmg==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.23.0.tgz", + "integrity": "sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.23.0", + "@typescript-eslint/utils": "8.23.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, "engines": { - "node": ">=16" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/eslint-plugin-unicorn": { - "version": "51.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz", - "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz", + "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", "@eslint-community/eslint-utils": "^4.4.0", - "@eslint/eslintrc": "^2.1.4", - "ci-info": "^4.0.0", - "clean-regexp": "^1.0.0", - "core-js-compat": "^3.34.0", - "esquery": "^1.5.0", - "indent-string": "^4.0.0", - "is-builtin-module": "^3.2.1", - "jsesc": "^3.0.2", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.27", - "regjsparser": "^0.10.0", - "semver": "^7.5.4", - "strip-indent": "^3.0.0" + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/typescript-estree": "8.23.0" }, "engines": { - "node": ">=16" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": ">=8.56.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "node_modules/@typescript-eslint/parser": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.23.0.tgz", + "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/typescript-estree": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", + "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz", + "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.1.tgz", + "integrity": "sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@typescript-eslint/typescript-estree": "8.24.1", + "@typescript-eslint/utils": "8.24.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.1.tgz", + "integrity": "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, "engines": { - "node": "*" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.1.tgz", + "integrity": "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.1.tgz", + "integrity": "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==", "dev": true, + "license": "MIT", "peer": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "dependencies": { + "@typescript-eslint/types": "8.24.1", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": ">=4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" + "balanced-match": "^1.0.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", "peer": true, - "dependencies": { - "estraverse": "^5.2.0" - }, "engines": { - "node": ">=4.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=4.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/@typescript-eslint/types": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz", + "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": ">=0.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz", + "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/visitor-keys": "8.23.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">= 0.8.0" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "peer": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "node_modules/@typescript-eslint/utils": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.1.tgz", + "integrity": "sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.24.1", + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/typescript-estree": "8.24.1" }, "engines": { - "node": ">=8.6.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.1.tgz", + "integrity": "sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "is-glob": "^4.0.1" + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1" }, "engines": { - "node": ">= 6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "peer": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "peer": true - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.1.tgz", + "integrity": "sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "reusify": "^1.0.4" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.1.tgz", + "integrity": "sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "bser": "2.1.1" + "@typescript-eslint/types": "8.24.1", + "@typescript-eslint/visitor-keys": "8.24.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.24.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.1.tgz", + "integrity": "sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "flat-cache": "^3.0.4" + "@typescript-eslint/types": "8.24.1", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/@typescript-eslint/utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" + "balanced-match": "^1.0.0" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", "peer": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "node_modules/@typescript-eslint/utils/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true, - "peer": true - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz", + "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "@typescript-eslint/types": "8.23.0", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": ">=14" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", + "peer": true, "engines": { - "node": ">=14" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://opencollective.com/eslint" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "node_modules/@xml-tools/parser": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@xml-tools/parser/-/parser-1.0.11.tgz", + "integrity": "sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA==", "dev": true, - "peer": true + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "chevrotain": "7.1.1" + } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", "peer": true, + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=0.4.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "node_modules/acorn-typescript": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", + "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "acorn": ">=8.9.0" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, + "dependencies": { + "type-fest": "^0.21.3" + }, "engines": { - "node": ">=6.9.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "peer": true, + "license": "MIT", "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=8" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", + "optional": true, "peer": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, "engines": { - "node": ">=8.0.0" + "node": ">= 8" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0", + "peer": true + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, + "license": "Apache-2.0", "peer": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/get-symbol-description": { + "node_modules/array-buffer-byte-length": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -4708,101 +5190,133 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-tsconfig": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz", - "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==", + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "resolve-pkg-maps": "^1.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { - "node": "*" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "is-glob": "^4.0.3" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "brace-expansion": "^1.1.7" + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "define-properties": "^1.1.3" + "possible-typed-array-names": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -4811,275 +5325,337 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, + "license": "Apache-2.0", "peer": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "get-intrinsic": "^1.1.3" + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, - "peer": true + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, - "peer": true + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", + "optional": true, "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "es-define-property": "^1.0.0" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" + "@babel/helper-define-polyfill-provider": "^0.6.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "function-bind": "^1.1.2" + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "peer": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "peer": true - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, "engines": { - "node": ">=10.17.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">= 4" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "fill-range": "^7.1.1" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "peer": true, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" }, "bin": { - "import-local-fixture": "fixtures/cli.js" + "browserslist": "cli.js" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", + "optional": true, "peer": true, - "engines": { - "node": ">=0.8.19" + "dependencies": { + "node-int64": "^0.4.0" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } + "license": "MIT", + "peer": true }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "peer": true - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, "engines": { - "node": ">= 0.4" + "node": ">= 0.8" } }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -5088,35 +5664,31 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "peer": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "has-bigints": "^1.0.1" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.4" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -5125,1224 +5697,4895 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "builtin-modules": "^3.3.0" - }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "node_modules/caniuse-lite": { + "version": "1.0.30001700", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz", + "integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==", "dev": true, - "peer": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0", + "peer": true }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=6" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/chevrotain": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-7.1.1.tgz", + "integrity": "sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" + "regexp-to-ast": "0.5.0" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "node_modules/ci-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", + "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", "peer": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.12.0" - } + "license": "MIT", + "optional": true, + "peer": true }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/clean-regexp/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": ">=8" + "node": ">=0.8.0" } }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", + "optional": true, "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "call-bind": "^1.0.7" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true, - "peer": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT", + "optional": true, + "peer": true }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=7.0.0" } }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "peer": true, - "dependencies": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT", + "peer": true }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/isexe": { + "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT", + "peer": true }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "node_modules/core-js-compat": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=8" + "dependencies": { + "browserslist": "^4.24.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">= 8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@isaacs/cliui": "^8.0.2" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" + "ms": "^2.1.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "node": ">=6.0" }, "peerDependenciesMeta": { - "node-notifier": { + "supports-color": { "optional": true } } }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" + "character-entities": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-config/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-indent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-7.0.1.tgz", + "integrity": "sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=8" } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "dequal": "^2.0.0" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { - "detect-newline": "^3.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" } }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.102", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.102.tgz", + "integrity": "sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10.13.0" } }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", + "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.10.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.19.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.1.tgz", + "integrity": "sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "eslint-config-prettier": "build/bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.7.0.tgz", + "integrity": "sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.3.7", + "enhanced-resolve": "^5.15.0", + "fast-glob": "^3.3.2", + "get-tsconfig": "^4.7.5", + "is-bun-module": "^1.0.2", + "is-glob": "^4.0.3", + "stable-hash": "^0.0.4" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", + "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/ota-meshi", + "https://opencollective.com/eslint" + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.11.0", + "eslint-compat-utils": "^0.5.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "28.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.11.0.tgz", + "integrity": "sha512-QAfipLcNCWLVocVbZW8GimKn5p5iiMcgGbRzz8z/P5q7xw+cNEpYqyzFMtIF/ZgF2HLOyy+dYBut+DoYolvqig==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "engines": { + "node": "^16.10.0 || ^18.12.0 || >=20.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-n": { + "version": "17.15.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.15.1.tgz", + "integrity": "sha512-KFw7x02hZZkBdbZEFQduRGH4VkIH4MW97ClsbAM4Y4E6KguBJWGfWG1P4HEIpZk2bkoWf0bojpnjNAhYQP8beA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.1", + "enhanced-resolve": "^5.17.1", + "eslint-plugin-es-x": "^7.8.0", + "get-tsconfig": "^4.8.1", + "globals": "^15.11.0", + "ignore": "^5.3.2", + "minimatch": "^9.0.5", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": ">=8.23.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-n/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-plugin-no-only-tests": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.3.0.tgz", + "integrity": "sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-no-secrets": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-secrets/-/eslint-plugin-no-secrets-2.2.1.tgz", + "integrity": "sha512-/7BduEiFeINJ7mlc8iRmqp0sDw2a2lAFahig/RGppn7qf1dKhldXopUuv4M92kc4PX90dcxfKwKtYrW159cuhA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18", + "npm": ">=8" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-plugin-sonarjs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-3.0.1.tgz", + "integrity": "sha512-RT6VgdPqizbMLmTryIc3fB169hRjvDFlqieSZEEswGtApPb4Dn9BndmN9qyfBV/By0hbseIX8zQWKBz5E7lyiQ==", + "dev": true, + "license": "LGPL-3.0-only", + "peer": true, + "dependencies": { + "@babel/core": "7.26.0", + "@babel/eslint-parser": "7.25.9", + "@babel/plugin-proposal-decorators": "7.25.9", + "@babel/preset-env": "7.26.0", + "@babel/preset-flow": "7.25.9", + "@babel/preset-react": "7.26.3", + "@eslint-community/regexpp": "4.12.1", + "builtin-modules": "3.3.0", + "bytes": "3.1.2", + "functional-red-black-tree": "1.0.1", + "jsx-ast-utils": "3.3.5", + "minimatch": "9.0.5", + "scslre": "0.3.0", + "semver": "7.6.3", + "typescript": "^5" + }, + "peerDependencies": { + "eslint": "^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-sonarjs/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-plugin-sonarjs/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-plugin-sonarjs/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-unicorn": { + "version": "56.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.1.tgz", + "integrity": "sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "@eslint-community/eslint-utils": "^4.4.0", + "ci-info": "^4.0.0", + "clean-regexp": "^1.0.0", + "core-js-compat": "^3.38.1", + "esquery": "^1.6.0", + "globals": "^15.9.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.2.1", + "jsesc": "^3.0.2", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.27", + "regjsparser": "^0.10.0", + "semver": "^7.6.3", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=18.18" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=8.56.0" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-yml": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.16.0.tgz", + "integrity": "sha512-t4MNCetPjTn18/fUDlQ/wKkcYjnuLYKChBrZ0qUaNqRigVqChHWzTP8SrfFi5s4keX3vdlkWRSu8zHJMdKwxWQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^4.3.2", + "eslint-compat-utils": "^0.6.0", + "lodash": "^4.17.21", + "natural-compare": "^1.4.0", + "yaml-eslint-parser": "^1.2.1" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-yml/node_modules/eslint-compat-utils": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.4.tgz", + "integrity": "sha512-/u+GQt8NMfXO8w17QendT4gvO5acfxQsAKirAt0LVxDnr2N8YLCVbregaNc/Yhp7NM128DwCaRvr8PLDfeNkQw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esm-env": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrap": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.5.tgz", + "integrity": "sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fastq": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/git-hooks-list": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-3.2.0.tgz", + "integrity": "sha512-ZHG9a1gEhUMX1TvGrLdyWb9kDopCBbTnI8z4JgRMYxsijWipgjSEYoPWqBuIB0DnRnvqlQSEeVmzpeuPm7NdFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/fisker/git-hooks-list?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/http-status-codes": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz", + "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-bun-module": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", + "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "semver": "^7.6.3" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.3.tgz", + "integrity": "sha512-oSwM7q8PTHQWuZAlp995iPpPJ4Vkl7qT0ZRD+9duL9j2oBy6KcTfyxc8mEuHJYC+z/kbps80aJLkaNzTOrf/kw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbi": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.0.tgz", + "integrity": "sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" } }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "@types/mdast": "^4.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/jest-util/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "node_modules/micromark": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", + "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" } ], + "license": "MIT", "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", + "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true, "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=10" + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "peer": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "argparse": "^2.0.1" + "micromark-util-types": "^2.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jsbi": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.0.tgz", - "integrity": "sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==", - "dev": true - }, - "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", "dev": true, + "license": "MIT", "peer": true, - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, - "engines": { - "node": ">=6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", "dev": true, - "peer": true + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "dev": true, - "peer": true + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "dev": true, - "peer": true + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "dev": true, - "peer": true + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true, "dependencies": { - "json-buffer": "3.0.1" + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", "dev": true, - "peer": true, - "engines": { - "node": ">=6" + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true, - "engines": { - "node": ">=6" + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true, "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", "dev": true, - "peer": true + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true, "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true, "dependencies": { - "yallist": "^3.0.2" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true, "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "micromark-util-types": "^2.0.0" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "dev": true, - "peer": true + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/micromark-util-subtokenize": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz", + "integrity": "sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true, "dependencies": { - "tmpl": "1.0.5" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "peer": true }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/micromark-util-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", "dev": true, - "peer": true, - "engines": { - "node": ">= 8" - } + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "peer": true }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -6354,6 +10597,8 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=6" @@ -6364,24 +10609,24 @@ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" } }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", + "peer": true, "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "*" } }, "node_modules/minimist": { @@ -6389,25 +10634,28 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/natural-compare": { @@ -6415,6 +10663,7 @@ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/node-int64": { @@ -6422,13 +10671,16 @@ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/normalize-package-data": { @@ -6436,6 +10688,7 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "hosted-git-info": "^2.1.4", @@ -6449,6 +10702,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "peer": true, "bin": { "semver": "bin/semver" @@ -6459,6 +10713,8 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=0.10.0" @@ -6469,6 +10725,8 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "path-key": "^3.0.0" @@ -6478,11 +10736,15 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", "peer": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6492,21 +10754,25 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -6517,15 +10783,17 @@ } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6535,29 +10803,33 @@ } }, "node_modules/object.groupby": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", - "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "array.prototype.filter": "^1.0.3", - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.0.0" + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6571,6 +10843,8 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", + "optional": true, "peer": true, "dependencies": { "wrappy": "1" @@ -6581,6 +10855,8 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "mimic-fn": "^2.1.0" @@ -6593,28 +10869,73 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oxc-resolver": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-1.12.0.tgz", + "integrity": "sha512-YlaCIArvWNKCWZFRrMjhh2l5jK80eXnpYP+bhRc1J/7cW3TiyEY0ngJo73o/5n8hA3+4yLdTmXLNTQ3Ncz50LQ==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-resolver/binding-darwin-arm64": "1.12.0", + "@oxc-resolver/binding-darwin-x64": "1.12.0", + "@oxc-resolver/binding-freebsd-x64": "1.12.0", + "@oxc-resolver/binding-linux-arm-gnueabihf": "1.12.0", + "@oxc-resolver/binding-linux-arm64-gnu": "1.12.0", + "@oxc-resolver/binding-linux-arm64-musl": "1.12.0", + "@oxc-resolver/binding-linux-x64-gnu": "1.12.0", + "@oxc-resolver/binding-linux-x64-musl": "1.12.0", + "@oxc-resolver/binding-wasm32-wasi": "1.12.0", + "@oxc-resolver/binding-win32-arm64-msvc": "1.12.0", + "@oxc-resolver/binding-win32-x64-msvc": "1.12.0" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "yocto-queue": "^0.1.0" @@ -6631,6 +10952,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "p-limit": "^3.0.2" @@ -6647,16 +10969,25 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "callsites": "^3.0.0" @@ -6670,6 +11001,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", @@ -6689,6 +11021,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -6699,6 +11032,8 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=0.10.0" @@ -6709,6 +11044,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6718,48 +11054,42 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true, - "peer": true, + "license": "ISC", "engines": { - "node": ">=8" + "node": "20 || >=22" } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/picomatch": { @@ -6767,6 +11097,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8.6" @@ -6780,6 +11111,7 @@ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 6" @@ -6790,6 +11122,8 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "find-up": "^4.0.0" @@ -6803,6 +11137,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "locate-path": "^5.0.0", @@ -6817,6 +11153,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "p-locate": "^4.1.0" @@ -6830,6 +11168,8 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "p-try": "^2.0.0" @@ -6846,6 +11186,8 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "p-limit": "^2.2.0" @@ -6859,16 +11201,18 @@ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" } }, "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 0.4" @@ -6879,16 +11223,18 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.0.tgz", + "integrity": "sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==", "dev": true, + "license": "MIT", "peer": true, "bin": { "prettier": "bin/prettier.cjs" @@ -6900,11 +11246,125 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/prettier-plugin-packagejson": { + "version": "2.5.8", + "resolved": "https://registry.npmjs.org/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.5.8.tgz", + "integrity": "sha512-BaGOF63I0IJZoudxpuQe17naV93BRtK8b3byWktkJReKEMX9CC4qdGUzThPDVO/AUhPzlqDiAXbp18U6X8wLKA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "sort-package-json": "2.14.0", + "synckit": "0.9.2" + }, + "peerDependencies": { + "prettier": ">= 1.16.0" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.3.3.tgz", + "integrity": "sha512-yViK9zqQ+H2qZD1w/bH7W8i+bVfKrD8GIFjkFe4Thl6kCT9SlAsXVNmt3jCvQOCsnOhcvYgsoVlRV/Eu6x5nNw==", + "dev": true, + "license": "MIT", + "peer": true, + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.6.11", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.11.tgz", + "integrity": "sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", @@ -6920,6 +11380,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=10" @@ -6933,6 +11395,8 @@ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "kleur": "^3.0.3", @@ -6947,15 +11411,16 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" } }, "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -6967,6 +11432,8 @@ "url": "https://opencollective.com/fast-check" } ], + "license": "MIT", + "optional": true, "peer": true }, "node_modules/queue-microtask": { @@ -6988,13 +11455,16 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "peer": true }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true }, "node_modules/read-pkg": { @@ -7002,6 +11472,7 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/normalize-package-data": "^2.4.0", @@ -7018,6 +11489,7 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "find-up": "^4.1.0", @@ -7036,6 +11508,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "locate-path": "^5.0.0", @@ -7050,6 +11523,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "p-locate": "^4.1.0" @@ -7063,6 +11537,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "p-try": "^2.0.0" @@ -7079,6 +11554,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "p-limit": "^2.2.0" @@ -7092,6 +11568,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=8" @@ -7102,32 +11579,139 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=8" } }, + "node_modules/refa": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/refa/-/refa-0.12.1.tgz", + "integrity": "sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/regexpp": "^4.8.0" + }, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp-ast-analysis": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regexp-ast-analysis/-/regexp-ast-analysis-0.7.1.tgz", + "integrity": "sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/regexpp": "^4.8.0", + "refa": "^0.12.1" + }, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/regexp-to-ast": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", + "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/regexp-tree": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", "dev": true, + "license": "MIT", "peer": true, "bin": { "regexp-tree": "bin/regexp-tree" } }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -7136,11 +11720,67 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexpu-core/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/regexpu-core/node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/regjsparser": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "jsesc": "~0.5.0" @@ -7164,25 +11804,31 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7192,6 +11838,8 @@ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "resolve-from": "^5.0.0" @@ -7205,6 +11853,8 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=8" @@ -7215,6 +11865,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -7225,16 +11876,19 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "license": "MIT", "peer": true, "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=10" @@ -7245,6 +11899,7 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "iojs": ">=1.0.0", @@ -7252,40 +11907,70 @@ } }, "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", "dev": true, + "license": "ISC", "dependencies": { - "glob": "^10.3.7" + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" }, "bin": { "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/rimraf/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -7310,21 +11995,24 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "peer": true, "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -7334,16 +12022,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.6", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "isarray": "^2.0.5" }, "engines": { "node": ">= 0.4" @@ -7352,47 +12040,61 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/scslre": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/scslre/-/scslre-0.3.0.tgz", + "integrity": "sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "yallist": "^4.0.0" + "@eslint-community/regexpp": "^4.8.0", + "refa": "^0.12.0", + "regexp-ast-analysis": "^0.7.0" }, "engines": { - "node": ">=10" + "node": "^14.0.0 || >=16.0.0" } }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, - "peer": true + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "define-data-property": "^1.1.4", @@ -7411,6 +12113,7 @@ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "define-data-property": "^1.1.4", @@ -7422,11 +12125,28 @@ "node": ">= 0.4" } }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -7439,21 +12159,83 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -7467,6 +12249,8 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, + "license": "ISC", + "optional": true, "peer": true }, "node_modules/sisteransi": { @@ -7474,6 +12258,8 @@ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true, + "license": "MIT", + "optional": true, "peer": true }, "node_modules/slash": { @@ -7481,26 +12267,73 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=8" } }, + "node_modules/sort-object-keys": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", + "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/sort-package-json": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-2.14.0.tgz", + "integrity": "sha512-xBRdmMjFB/KW3l51mP31dhlaiFmqkHLfWTfZAno8prb/wbDxwBPWFpxB16GZbiPbYr3wL41H8Kx22QIDWRe8WQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "detect-indent": "^7.0.1", + "detect-newline": "^4.0.0", + "get-stdin": "^9.0.0", + "git-hooks-list": "^3.0.0", + "is-plain-obj": "^4.1.0", + "semver": "^7.6.0", + "sort-object-keys": "^1.1.3", + "tinyglobby": "^0.2.9" + }, + "bin": { + "sort-package-json": "cli.js" + } + }, + "node_modules/sort-package-json/node_modules/detect-newline": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-4.0.1.tgz", + "integrity": "sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "buffer-from": "^1.0.0", @@ -7512,6 +12345,7 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -7523,6 +12357,7 @@ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true, + "license": "CC-BY-3.0", "peer": true }, "node_modules/spdx-expression-parse": { @@ -7530,6 +12365,7 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "spdx-exceptions": "^2.1.0", @@ -7537,10 +12373,11 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", "dev": true, + "license": "CC0-1.0", "peer": true }, "node_modules/sprintf-js": { @@ -7548,6 +12385,16 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, + "node_modules/stable-hash": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.4.tgz", + "integrity": "sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==", + "dev": true, + "license": "MIT", "peer": true }, "node_modules/stack-utils": { @@ -7555,6 +12402,8 @@ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "escape-string-regexp": "^2.0.0" @@ -7568,6 +12417,8 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=8" @@ -7578,6 +12429,8 @@ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "char-regex": "^1.0.2", @@ -7592,6 +12445,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7607,6 +12461,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7617,16 +12472,20 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -7636,30 +12495,39 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7670,6 +12538,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7683,6 +12552,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7695,6 +12565,8 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=8" @@ -7705,6 +12577,8 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=6" @@ -7715,6 +12589,7 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "min-indent": "^1.0.0" @@ -7728,6 +12603,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -7741,6 +12617,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -7754,6 +12631,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 0.4" @@ -7762,11 +12640,57 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svelte": { + "version": "5.20.2", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.20.2.tgz", + "integrity": "sha512-aYXJreNUiyTob0QOzRZeBXZMGeFZDch6SrSRV8QTncZb6zj0O3BEdUzPpojuHQ1pTvk+KX7I6rZCXPUf8pTPxA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "acorn-typescript": "^1.4.13", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "esm-env": "^1.2.1", + "esrap": "^1.4.3", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/synckit": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -7777,6 +12701,8 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", + "optional": true, "peer": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", @@ -7787,59 +12713,69 @@ "node": ">=8" } }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "peerDependencies": { + "picomatch": "^3 || ^4" }, - "engines": { - "node": "*" + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, - "peer": true + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true, + "license": "BSD-3-Clause", + "optional": true, "peer": true }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "is-number": "^7.0.0" @@ -7849,60 +12785,17 @@ } }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-jest": { - "version": "29.1.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", - "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" - }, "engines": { - "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + "node": ">=18.12" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } + "typescript": ">=4.8.4" } }, "node_modules/tsconfig-paths": { @@ -7910,6 +12803,7 @@ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/json5": "^0.0.29", @@ -7923,6 +12817,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "minimist": "^1.2.0" @@ -7936,45 +12831,25 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "peer": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "peer": true + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "prelude-ls": "^1.2.1" @@ -7988,16 +12863,20 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "engines": { "node": ">=4" } }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, "peer": true, "engines": { "node": ">=10" @@ -8007,32 +12886,34 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -8042,18 +12923,20 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -8063,18 +12946,19 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", - "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -8084,10 +12968,11 @@ } }, "node_modules/typescript": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", - "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, + "license": "Apache-2.0", "peer": true, "bin": { "tsc": "bin/tsc", @@ -8097,33 +12982,198 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.23.0.tgz", + "integrity": "sha512-/LBRo3HrXr5LxmrdYSOCvoAMm7p2jNizNfbIpCgvG4HMsnoprRUOce/+8VJ9BDYWW68rqIENE/haVLWPeFZBVQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.23.0", + "@typescript-eslint/parser": "8.23.0", + "@typescript-eslint/utils": "8.23.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz", + "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.23.0", + "@typescript-eslint/types": "8.23.0", + "@typescript-eslint/typescript-estree": "8.23.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true, + "license": "MIT", "peer": true }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "dev": true, "funding": [ { @@ -8139,10 +13189,11 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "peer": true, "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -8156,16 +13207,19 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "punycode": "^2.1.0" } }, "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, + "license": "ISC", + "optional": true, "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", @@ -8181,6 +13235,7 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "spdx-correct": "^3.0.0", @@ -8192,6 +13247,8 @@ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, + "license": "Apache-2.0", + "optional": true, "peer": true, "dependencies": { "makeerror": "1.0.12" @@ -8202,6 +13259,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -8213,33 +13271,88 @@ } }, "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { @@ -8249,11 +13362,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -8273,6 +13399,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8290,6 +13417,8 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true, + "license": "ISC", + "optional": true, "peer": true }, "node_modules/write-file-atomic": { @@ -8297,6 +13426,8 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "license": "ISC", + "optional": true, "peer": true, "dependencies": { "imurmurhash": "^0.1.4", @@ -8311,6 +13442,8 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", + "optional": true, "peer": true, "engines": { "node": ">=10" @@ -8321,13 +13454,49 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, + "license": "ISC", "peer": true }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.3.tgz", + "integrity": "sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "eslint-visitor-keys": "^3.0.0", + "lodash": "^4.17.21", + "yaml": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", + "optional": true, "peer": true, "dependencies": { "cliui": "^8.0.1", @@ -8347,6 +13516,8 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", + "optional": true, "peer": true, "engines": { "node": ">=12" @@ -8357,6 +13528,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -8364,6 +13536,26 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zimmerframe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", + "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/package.json b/package.json index fe2d4af..5125ac7 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,19 @@ { "name": "@checkdigit/time", - "version": "4.0.0", + "version": "5.0.0", "description": "Standard time handling", - "author": "Check Digit, LLC", - "license": "MIT", + "homepage": "https://github.com/checkdigit/time#readme", "bugs": { "url": "https://github.com/checkdigit/time/issues" }, - "homepage": "https://github.com/checkdigit/time#readme", "repository": { "type": "git", "url": "git+https://github.com/checkdigit/time.git" }, - "engines": { - "node": ">=20.11" - }, - "type": "module", + "license": "MIT", + "author": "Check Digit, LLC", "sideEffects": false, + "type": "module", "exports": { ".": { "types": "./dist-types/index.d.ts", @@ -36,40 +33,30 @@ "!dist-mjs/**/*.spec.mjs", "SECURITY.md" ], - "devDependencies": { - "@checkdigit/eslint-config": "^9.2.0", - "@checkdigit/jest-config": "^6.0.0", - "@checkdigit/prettier-config": "^5.3.0", - "@checkdigit/typescript-config": "^7.0.1", - "@js-temporal/polyfill": "^0.4.4", - "rimraf": "^5.0.5" - }, "scripts": { - "prepublishOnly": "npm run build:dist-types && npm run build:dist-mjs", - "build:dist-types": "rimraf dist-types && npx builder --type=types --outDir=dist-types", "build:dist-mjs": "rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs", - "lint": "eslint --max-warnings 0 --ignore-path .gitignore .", - "lint:fix": "eslint --ignore-path .gitignore . --fix", - "prettier": "prettier --ignore-path .gitignore --list-different .", - "prettier:fix": "prettier --ignore-path .gitignore --write .", - "test": "npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style", + "build:dist-types": "rimraf dist-types && npx builder --type=types --outDir=dist-types", "ci:compile": "tsc --noEmit", - "ci:test": "NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=false", - "ci:coverage": "NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=true", + "ci:coverage": "rimraf coverage && mkdir coverage && node --experimental-strip-types --test-timeout 600000 --experimental-test-coverage --test-reporter=lcov --test-reporter-destination=coverage/lcov.info --test \"src/**/*.spec.ts\"", "ci:lint": "npm run lint", - "ci:style": "npm run prettier" - }, - "jest": { - "preset": "@checkdigit/jest-config" + "ci:style": "npm run prettier", + "ci:test": "node --disable-warning ExperimentalWarning --experimental-strip-types --test-timeout 600000 --test \"src/**/*.spec.ts\"", + "lint": "eslint --max-warnings 0 .", + "lint:fix": "eslint . --fix", + "prepublishOnly": "npm run build:dist-types && npm run build:dist-mjs", + "prettier": "prettier --ignore-path .gitignore --list-different .", + "prettier:fix": "prettier --ignore-path .gitignore --write .", + "test": "npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style" }, - "eslintConfig": { - "extends": [ - "@checkdigit/eslint-config" - ], - "ignorePatterns": [ - "src/date-fns/**", - "src/date-fns-tz/**" - ] + "prettier": "@checkdigit/prettier-config", + "devDependencies": { + "@checkdigit/eslint-config": "^11.1.0", + "@checkdigit/prettier-config": "^6.2.0", + "@checkdigit/typescript-config": "^9.0.0", + "@js-temporal/polyfill": "^0.4.4", + "rimraf": "^6.0.1" }, - "prettier": "@checkdigit/prettier-config" + "engines": { + "node": ">=22.11" + } } diff --git a/src/date-fns/CHANGELOG.md b/src/date-fns/CHANGELOG.md index 67cdb47..fb80a73 100644 --- a/src/date-fns/CHANGELOG.md +++ b/src/date-fns/CHANGELOG.md @@ -8,6 +8,70 @@ This change log follows the format documented in [Keep a CHANGELOG]. [semantic versioning]: http://semver.org/ [keep a changelog]: http://keepachangelog.com/ +## v4.1.0 - 2024-09-17 + +This release adds time zone support to format functions (that I somehow missed when working on the feature) and fixes a few bugs. + +Make sure also upgrade `TZDate` to v1.0.2 as it [includes a bunch of critical bug fixes](https://github.com/date-fns/tz/blob/main/CHANGELOG.md#v102---2024-09-14). + +### Fixed + +- Fixed internal `constructFrom` throwing an exception on `null` arguments. While `null` isn't allowed, the functions should rather return `Invalid Date` or `NaN` in such cases. See [#3885](https://github.com/date-fns/date-fns/issues/3885). + +### Added + +- Added missing time zone support to `format`, `formatISO`, `formatISO9075`, `formatRelative` and `formatRFC3339`. See [#3886](https://github.com/date-fns/date-fns/issues/3886). + +## v4.0.0 - 2024-09-16 + +I have great news! First, ten years after its release, date-fns finally gets first-class time zone support. + +Another great news is that there aren't many breaking changes in this release. All of them are type-related and will affect only those explicitly using internal date-fns types. Finally, it has been less than a year since the last major release, which is an improvement over the previous four years between v2 and v3. I plan on keeping the pace and minimizing breaking changes moving forward. + +[Read more about the release in the announcement blog post](https://blog.date-fns.org/v40-with-time-zone-support/). + +\- [Sasha @kossnocorp](https://twitter.com/kossnocorp) + +### Added + +- Added time zones support via [`@date-fns/tz`](https://github.com/date-fns/tz)'s `TZDate` class and `tz` helper function. See its [README](https://github.com/date-fns/tz) for the details about the API. + +- All relevant functions now accept the context `in` option, which allows to specify the time zone to make the calculations in. If the function also returns a date, it will be in the specified time zone: + + ```ts + import { addDays, startOfDay } from "date-fns"; + import { tz } from "@date-fns/tz"; + + startOfDay(addDays(Date.now(), 5, { in: tz("Asia/Singapore") })); + //=> "2024-09-16T00:00:00.000+08:00" + ``` + + In the example, `addDays` will get the current date and time in Singapore and add 5 days to it. `startOfDay` will inherit the date type and return the start of the day in Singapore. + +### Changed + +- The function arguments, as well as `Interval`'s `start` and `end`, now can be of different types, allowing you to mix `UTCDate`, `TZDate`, `Date`, and other extensions, as well as primitives (strings and numbers). + + The functions will normalize these values, make calculations, and return the result in the same type, preventing any bugs caused by the discrepancy. If passed, the type will be inferred from the context `in` option or the first encountered argument object type. The `Interval`'s `start` and `end` will be considered separately, starting from `start`. + + In the given example, the result will be in the `TZDate` as the first argument is a number, and the `start` takes precedence over the `end`. + + ```ts + clamp(Date.now(), { + start: new TZDate(start, "Asia/Singapore"), + end: new UTCDate(), + }); + //=> TZDate + ``` + +- **BREAKING**: This release contains a bunch of types changes that should not affect the library's expected usage. The changes are primarily internal and nuanced, so rather than listing them here, I recommend you running the type checker after the upgrade. If there are unfixable problems, please [open an issue](https://github.com/date-fns/date-fns/issues/new). + +- **BREAKING**: The package now is ESM-first. The CommonJS is still support and It should not affect most users, but it might break in certains environments. If you encounter any issues, please [report them](https://github.com/date-fns/date-fns/issues/new). + +### Fixed + +- Fixed CDN build compatibility with jQuery and other tools that expose `$` by properly wrapping the code in an IIFE. + ## v3.6.0 - 2024-03-18 On this release worked @kossnocorp and @world1dan. Also, thanks to [@seated](https://github.com/seated) [for sponsoring me](https://github.com/sponsors/kossnocorp). @@ -90,7 +154,7 @@ This release is brought to you by @kossnocorp, @fturmel, @grossbart, @MelvinVerm ### Fixed -- Fixed types compatability with Lodash's `flow` and fp-ts's `pipe`. ([#3641](https://github.com/date-fns/date-fns/issues/3641)) +- Fixed types compatibility with Lodash's `flow` and fp-ts's `pipe`. ([#3641](https://github.com/date-fns/date-fns/issues/3641)) - [Fixed inconsistent behavior of `roundToNearestMinutes`.](https://github.com/date-fns/date-fns/pull/3132) @@ -998,10 +1062,10 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https ```javascript // Before v2.0.0 - addDays('2016-01-01', 1); + addDays("2016-01-01", 1); // v2.0.0 onward - addDays(parseISO('2016-01-01'), 1); + addDays(parseISO("2016-01-01"), 1); ``` - **BREAKING**: new format string API for `format` function @@ -1168,7 +1232,7 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https you should set `useAdditionalWeekYearTokens` option: ```javascript - format(Date.now(), 'YY', { useAdditionalWeekYearTokens: true }); + format(Date.now(), "YY", { useAdditionalWeekYearTokens: true }); //=> '86' ``` @@ -1176,7 +1240,7 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https set `useAdditionalDayOfYearTokens` option: ```javascript - format(Date.now(), 'D', { useAdditionalDayOfYearTokens: true }); + format(Date.now(), "D", { useAdditionalDayOfYearTokens: true }); //=> '364' ``` @@ -1184,10 +1248,10 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https ```javascript // Before v2.0.0 - import differenceInCalendarISOYears from 'date-fns/difference_in_calendar_iso_years'; + import differenceInCalendarISOYears from "date-fns/difference_in_calendar_iso_years"; // v2.0.0 onward - import differenceInCalendarISOYears from 'date-fns/differenceInCalendarISOYears'; + import differenceInCalendarISOYears from "date-fns/differenceInCalendarISOYears"; ``` - **BREAKING**: min and max functions now accept an array of dates @@ -1202,7 +1266,10 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https var maxDate = max(date1, date2); // v2.0.0 onward: - var dates = [new Date(1989, 6 /* Jul */, 10), new Date(1987, 1 /* Feb */, 11)]; + var dates = [ + new Date(1989, 6 /* Jul */, 10), + new Date(1987, 1 /* Feb */, 11), + ]; var minDate = min(dates); var maxDate = max(dates); @@ -1258,7 +1325,12 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https ```javascript // Before v2.0.0 - areRangesOverlapping(new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 17), new Date(2014, 0, 21)); + areRangesOverlapping( + new Date(2014, 0, 10), + new Date(2014, 0, 20), + new Date(2014, 0, 17), + new Date(2014, 0, 21), + ); eachDay(new Date(2014, 0, 10), new Date(2014, 0, 20)); @@ -1269,7 +1341,11 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https new Date(2014, 0, 21), ); - isWithinRange(new Date(2014, 0, 3), new Date(2014, 0, 1), new Date(2014, 0, 7)); + isWithinRange( + new Date(2014, 0, 3), + new Date(2014, 0, 1), + new Date(2014, 0, 7), + ); // v2.0.0 onward @@ -1308,11 +1384,19 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https ```javascript // Before v2.0.0 - distanceInWords(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 11, 32, 0), { addSuffix: true }); //=> 'in about 1 hour' + distanceInWords( + new Date(1986, 3, 4, 10, 32, 0), + new Date(1986, 3, 4, 11, 32, 0), + { addSuffix: true }, + ); //=> 'in about 1 hour' // v2.0.0 onward - formatDistance(new Date(1986, 3, 4, 11, 32, 0), new Date(1986, 3, 4, 10, 32, 0), { addSuffix: true }); //=> 'in about 1 hour' + formatDistance( + new Date(1986, 3, 4, 11, 32, 0), + new Date(1986, 3, 4, 10, 32, 0), + { addSuffix: true }, + ); //=> 'in about 1 hour' ``` - **BREAKING**: `partialMethod` option in `formatDistanceStrict` is renamed to `roundingMethod`. @@ -1320,11 +1404,19 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https ```javascript // Before v2.0.0 - distanceInWordsStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 33, 1), { partialMethod: 'ceil' }); //=> '2 minutes' + distanceInWordsStrict( + new Date(1986, 3, 4, 10, 32, 0), + new Date(1986, 3, 4, 10, 33, 1), + { partialMethod: "ceil" }, + ); //=> '2 minutes' // v2.0.0 onward - formatDistanceStrict(new Date(1986, 3, 4, 10, 33, 1), new Date(1986, 3, 4, 10, 32, 0), { roundingMethod: 'ceil' }); //=> '2 minutes' + formatDistanceStrict( + new Date(1986, 3, 4, 10, 33, 1), + new Date(1986, 3, 4, 10, 32, 0), + { roundingMethod: "ceil" }, + ); //=> '2 minutes' ``` - **BREAKING**: in `formatDistanceStrict`, if `roundingMethod` is not specified, @@ -1336,11 +1428,19 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https ```javascript // Before v2.0.0 - distanceInWordsStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 3, 4, 10, 33, 1), { unit: 'm' }); + distanceInWordsStrict( + new Date(1986, 3, 4, 10, 32, 0), + new Date(1986, 3, 4, 10, 33, 1), + { unit: "m" }, + ); // v2.0.0 onward - formatDistanceStrict(new Date(1986, 3, 4, 10, 33, 1), new Date(1986, 3, 4, 10, 32, 0), { unit: 'minute' }); + formatDistanceStrict( + new Date(1986, 3, 4, 10, 33, 1), + new Date(1986, 3, 4, 10, 32, 0), + { unit: "minute" }, + ); ``` - **BREAKING**: `parse` that previously used to convert strings and @@ -1350,13 +1450,13 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https ```javascript // Before v2.0.0 - parse('2016-01-01'); + parse("2016-01-01"); parse(1547005581366); parse(new Date()); // Clone the date // v2.0.0 onward - parse('2016-01-01', 'yyyy-MM-dd', new Date()); - parseISO('2016-01-01'); + parse("2016-01-01", "yyyy-MM-dd", new Date()); + parseISO("2016-01-01"); toDate(1547005581366); toDate(new Date()); // Clone the date ``` @@ -1375,10 +1475,10 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https ```javascript // Before v2.0.0 - import locale from 'date-fns/locale/zh_cn'; + import locale from "date-fns/locale/zh_cn"; // v2.0.0 onward - import locale from 'date-fns/locale/zh-CN'; + import locale from "date-fns/locale/zh-CN"; ``` - **BREAKING**: now `closestTo` and `closestIndexTo` don't throw an exception @@ -1485,17 +1585,21 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https See [FP Guide](https://date-fns.org/docs/FP-Guide) for more information. ```javascript - import addYears from 'date-fns/fp/addYears'; - import formatWithOptions from 'date-fns/fp/formatWithOptions'; - import eo from 'date-fns/locale/eo'; + import addYears from "date-fns/fp/addYears"; + import formatWithOptions from "date-fns/fp/formatWithOptions"; + import eo from "date-fns/locale/eo"; // If FP function has not received enough arguments, it returns another function const addFiveYears = addYears(5); // Several arguments can be curried at once - const dateToString = formatWithOptions({ locale: eo }, 'd MMMM yyyy'); + const dateToString = formatWithOptions({ locale: eo }, "d MMMM yyyy"); - const dates = [new Date(2017, 0 /* Jan */, 1), new Date(2017, 1 /* Feb */, 11), new Date(2017, 6 /* Jul */, 2)]; + const dates = [ + new Date(2017, 0 /* Jan */, 1), + new Date(2017, 1 /* Feb */, 11), + new Date(2017, 6 /* Jul */, 2), + ]; const formattedDates = dates.map((date) => dateToString(addFiveYears(date))); //=> ['1 januaro 2022', '11 februaro 2022', '2 julio 2022'] @@ -1508,11 +1612,11 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https ```javascript // Without tree-shaking: - import format from 'date-fns/format'; - import parse from 'date-fns/parse'; + import format from "date-fns/format"; + import parse from "date-fns/parse"; // With tree-shaking: - import { format, parse } from 'date-fns'; + import { format, parse } from "date-fns"; ``` Also, ESM functions provide default export, they can be used with TypeScript @@ -1520,10 +1624,10 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https ```typescript // Before - import * as format from 'date-fns/format'; + import * as format from "date-fns/format"; // Now - import format from 'date-fns/format'; + import format from "date-fns/format"; ``` - `formatRelative` function. See [formatRelative](https://date-fns.org/docs/formatRelative) @@ -1559,7 +1663,7 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https - [New `roundToNearestMinutes` function](https://github.com/date-fns/date-fns/pull/928). Kudos to [@xkizer](https://github.com/xkizer). -- Added new function `fromUnixTime`. Thansk to [@xkizer](https://github.com/xkizer). +- Added new function `fromUnixTime`. Thanks to [@xkizer](https://github.com/xkizer). - New interval, month, and year helpers to fetch a list of all Saturdays and Sundays (weekends) for a given date interval. `eachWeekendOfInterval` is the handler function while the other two are wrapper functions. Kudos to [@laekettavong](https://github.com/laekettavong)! @@ -2009,7 +2113,7 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https - `parse` now can parse dates that are ISO 8601 centuries (e.g., `19` and `+0019`). ```javascript - var result = parse('19'); + var result = parse("19"); //=> Mon Jan 01 1900 00:00:00 ``` @@ -2017,9 +2121,9 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https for extended year or century format (possible values are 0, 1 or 2; default is 2). ```javascript - parse('+002016-11-01'); - parse('+02016-11-01', { additionalDigits: 1 }); - parse('+2016-11-01', { additionalDigits: 0 }); + parse("+002016-11-01"); + parse("+02016-11-01", { additionalDigits: 1 }); + parse("+2016-11-01", { additionalDigits: 0 }); ``` ## [1.9.0] - 2016-10-25 @@ -2144,10 +2248,10 @@ If you're upgrading from v2 alpha or beta, [see the pre-release changelog](https ```javascript // Before v1.0.0 - var addMonths = require('date-fns/src/add_months'); + var addMonths = require("date-fns/src/add_months"); // v1.0.0 onward - var addMonths = require('date-fns/add_months'); + var addMonths = require("date-fns/add_months"); ``` - **BREAKING**: functions that had the last optional argument `weekStartsAt` diff --git a/src/date-fns/_lib/addLeadingZeros/index.ts b/src/date-fns/_lib/addLeadingZeros/index.ts index ce2e1bd..5f7f611 100644 --- a/src/date-fns/_lib/addLeadingZeros/index.ts +++ b/src/date-fns/_lib/addLeadingZeros/index.ts @@ -1,5 +1,5 @@ export function addLeadingZeros(number: number, targetLength: number): string { - const sign = number < 0 ? '-' : ''; - const output = Math.abs(number).toString().padStart(targetLength, '0'); + const sign = number < 0 ? "-" : ""; + const output = Math.abs(number).toString().padStart(targetLength, "0"); return sign + output; } diff --git a/src/date-fns/_lib/defaultLocale/index.ts b/src/date-fns/_lib/defaultLocale/index.ts index 401e874..2904199 100644 --- a/src/date-fns/_lib/defaultLocale/index.ts +++ b/src/date-fns/_lib/defaultLocale/index.ts @@ -1 +1 @@ -export { enUS as defaultLocale } from '../../locale/en-US/index'; +export { enUS as defaultLocale } from "../../locale/en-US/index.ts"; diff --git a/src/date-fns/_lib/defaultOptions/index.ts b/src/date-fns/_lib/defaultOptions/index.ts index ed55b57..d60bf01 100644 --- a/src/date-fns/_lib/defaultOptions/index.ts +++ b/src/date-fns/_lib/defaultOptions/index.ts @@ -1,6 +1,13 @@ -import type { FirstWeekContainsDateOptions, Locale, LocalizedOptions, WeekOptions } from '../../types'; +import type { + FirstWeekContainsDateOptions, + Locale, + LocalizedOptions, + WeekOptions, +} from "../../types.ts"; -export type DefaultOptions = LocalizedOptions & WeekOptions & FirstWeekContainsDateOptions; +export type DefaultOptions = LocalizedOptions & + WeekOptions & + FirstWeekContainsDateOptions; let defaultOptions: DefaultOptions = {}; diff --git a/src/date-fns/_lib/format/formatters/index.ts b/src/date-fns/_lib/format/formatters/index.ts index 7cac323..589c07c 100644 --- a/src/date-fns/_lib/format/formatters/index.ts +++ b/src/date-fns/_lib/format/formatters/index.ts @@ -1,9 +1,9 @@ -import { getDayOfYear } from '../../../getDayOfYear/index'; -import { getISOWeek } from '../../../getISOWeek/index'; -import { getISOWeekYear } from '../../../getISOWeekYear/index'; -import { getWeek } from '../../../getWeek/index'; -import { getWeekYear } from '../../../getWeekYear/index'; -import type { LocaleDayPeriod, Localize } from '../../../locale/types'; +import { getDayOfYear } from "../../../getDayOfYear/index.ts"; +import { getISOWeek } from "../../../getISOWeek/index.ts"; +import { getISOWeekYear } from "../../../getISOWeekYear/index.ts"; +import { getWeek } from "../../../getWeek/index.ts"; +import { getWeekYear } from "../../../getWeekYear/index.ts"; +import type { LocaleDayPeriod, Localize } from "../../../locale/types.ts"; import type { Day, Era, @@ -12,26 +12,28 @@ import type { Month, Quarter, WeekOptions, -} from '../../../types'; -import { addLeadingZeros } from '../../addLeadingZeros/index'; -import { lightFormatters } from '../lightFormatters/index'; +} from "../../../types.ts"; +import { addLeadingZeros } from "../../addLeadingZeros/index.ts"; +import { lightFormatters } from "../lightFormatters/index.ts"; const dayPeriodEnum = { - am: 'am', - pm: 'pm', - midnight: 'midnight', - noon: 'noon', - morning: 'morning', - afternoon: 'afternoon', - evening: 'evening', - night: 'night', + am: "am", + pm: "pm", + midnight: "midnight", + noon: "noon", + morning: "morning", + afternoon: "afternoon", + evening: "evening", + night: "night", } as const; type Formatter = ( date: Date, token: string, localize: Localize, - options: Required & WeekOptions & FirstWeekContainsDateOptions>, + options: Required< + LocalizedOptions<"options"> & WeekOptions & FirstWeekContainsDateOptions + >, ) => string; /* @@ -86,28 +88,28 @@ export const formatters: { [token: string]: Formatter } = { const era: Era = date.getFullYear() > 0 ? 1 : 0; switch (token) { // AD, BC - case 'G': - case 'GG': - case 'GGG': - return localize.era(era, { width: 'abbreviated' }); + case "G": + case "GG": + case "GGG": + return localize.era(era, { width: "abbreviated" }); // A, B - case 'GGGGG': - return localize.era(era, { width: 'narrow' }); + case "GGGGG": + return localize.era(era, { width: "narrow" }); // Anno Domini, Before Christ - case 'GGGG': + case "GGGG": default: - return localize.era(era, { width: 'wide' }); + return localize.era(era, { width: "wide" }); } }, // Year y: function (date, token, localize) { // Ordinal number - if (token === 'yo') { + if (token === "yo") { const signedYear = date.getFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript) const year = signedYear > 0 ? signedYear : 1 - signedYear; - return localize.ordinalNumber(year, { unit: 'year' }); + return localize.ordinalNumber(year, { unit: "year" }); } return lightFormatters.y(date, token); @@ -120,14 +122,14 @@ export const formatters: { [token: string]: Formatter } = { const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year - if (token === 'YY') { + if (token === "YY") { const twoDigitYear = weekYear % 100; return addLeadingZeros(twoDigitYear, 2); } // Ordinal number - if (token === 'Yo') { - return localize.ordinalNumber(weekYear, { unit: 'year' }); + if (token === "Yo") { + return localize.ordinalNumber(weekYear, { unit: "year" }); } // Padding @@ -161,32 +163,32 @@ export const formatters: { [token: string]: Formatter } = { const quarter = Math.ceil((date.getMonth() + 1) / 3) as Quarter; switch (token) { // 1, 2, 3, 4 - case 'Q': + case "Q": return String(quarter); // 01, 02, 03, 04 - case 'QQ': + case "QQ": return addLeadingZeros(quarter, 2); // 1st, 2nd, 3rd, 4th - case 'Qo': - return localize.ordinalNumber(quarter, { unit: 'quarter' }); + case "Qo": + return localize.ordinalNumber(quarter, { unit: "quarter" }); // Q1, Q2, Q3, Q4 - case 'QQQ': + case "QQQ": return localize.quarter(quarter, { - width: 'abbreviated', - context: 'formatting', + width: "abbreviated", + context: "formatting", }); // 1, 2, 3, 4 (narrow quarter; could be not numerical) - case 'QQQQQ': + case "QQQQQ": return localize.quarter(quarter, { - width: 'narrow', - context: 'formatting', + width: "narrow", + context: "formatting", }); // 1st quarter, 2nd quarter, ... - case 'QQQQ': + case "QQQQ": default: return localize.quarter(quarter, { - width: 'wide', - context: 'formatting', + width: "wide", + context: "formatting", }); } }, @@ -196,32 +198,32 @@ export const formatters: { [token: string]: Formatter } = { const quarter = Math.ceil((date.getMonth() + 1) / 3) as Quarter; switch (token) { // 1, 2, 3, 4 - case 'q': + case "q": return String(quarter); // 01, 02, 03, 04 - case 'qq': + case "qq": return addLeadingZeros(quarter, 2); // 1st, 2nd, 3rd, 4th - case 'qo': - return localize.ordinalNumber(quarter, { unit: 'quarter' }); + case "qo": + return localize.ordinalNumber(quarter, { unit: "quarter" }); // Q1, Q2, Q3, Q4 - case 'qqq': + case "qqq": return localize.quarter(quarter, { - width: 'abbreviated', - context: 'standalone', + width: "abbreviated", + context: "standalone", }); // 1, 2, 3, 4 (narrow quarter; could be not numerical) - case 'qqqqq': + case "qqqqq": return localize.quarter(quarter, { - width: 'narrow', - context: 'standalone', + width: "narrow", + context: "standalone", }); // 1st quarter, 2nd quarter, ... - case 'qqqq': + case "qqqq": default: return localize.quarter(quarter, { - width: 'wide', - context: 'standalone', + width: "wide", + context: "standalone", }); } }, @@ -230,28 +232,28 @@ export const formatters: { [token: string]: Formatter } = { M: function (date, token, localize) { const month = date.getMonth() as Month; switch (token) { - case 'M': - case 'MM': + case "M": + case "MM": return lightFormatters.M(date, token); // 1st, 2nd, ..., 12th - case 'Mo': - return localize.ordinalNumber(month + 1, { unit: 'month' }); + case "Mo": + return localize.ordinalNumber(month + 1, { unit: "month" }); // Jan, Feb, ..., Dec - case 'MMM': + case "MMM": return localize.month(month, { - width: 'abbreviated', - context: 'formatting', + width: "abbreviated", + context: "formatting", }); // J, F, ..., D - case 'MMMMM': + case "MMMMM": return localize.month(month, { - width: 'narrow', - context: 'formatting', + width: "narrow", + context: "formatting", }); // January, February, ..., December - case 'MMMM': + case "MMMM": default: - return localize.month(month, { width: 'wide', context: 'formatting' }); + return localize.month(month, { width: "wide", context: "formatting" }); } }, @@ -260,30 +262,30 @@ export const formatters: { [token: string]: Formatter } = { const month = date.getMonth() as Month; switch (token) { // 1, 2, ..., 12 - case 'L': + case "L": return String(month + 1); // 01, 02, ..., 12 - case 'LL': + case "LL": return addLeadingZeros(month + 1, 2); // 1st, 2nd, ..., 12th - case 'Lo': - return localize.ordinalNumber(month + 1, { unit: 'month' }); + case "Lo": + return localize.ordinalNumber(month + 1, { unit: "month" }); // Jan, Feb, ..., Dec - case 'LLL': + case "LLL": return localize.month(month, { - width: 'abbreviated', - context: 'standalone', + width: "abbreviated", + context: "standalone", }); // J, F, ..., D - case 'LLLLL': + case "LLLLL": return localize.month(month, { - width: 'narrow', - context: 'standalone', + width: "narrow", + context: "standalone", }); // January, February, ..., December - case 'LLLL': + case "LLLL": default: - return localize.month(month, { width: 'wide', context: 'standalone' }); + return localize.month(month, { width: "wide", context: "standalone" }); } }, @@ -291,8 +293,8 @@ export const formatters: { [token: string]: Formatter } = { w: function (date, token, localize, options) { const week = getWeek(date, options); - if (token === 'wo') { - return localize.ordinalNumber(week, { unit: 'week' }); + if (token === "wo") { + return localize.ordinalNumber(week, { unit: "week" }); } return addLeadingZeros(week, token.length); @@ -302,8 +304,8 @@ export const formatters: { [token: string]: Formatter } = { I: function (date, token, localize) { const isoWeek = getISOWeek(date); - if (token === 'Io') { - return localize.ordinalNumber(isoWeek, { unit: 'week' }); + if (token === "Io") { + return localize.ordinalNumber(isoWeek, { unit: "week" }); } return addLeadingZeros(isoWeek, token.length); @@ -311,8 +313,8 @@ export const formatters: { [token: string]: Formatter } = { // Day of the month d: function (date, token, localize) { - if (token === 'do') { - return localize.ordinalNumber(date.getDate(), { unit: 'date' }); + if (token === "do") { + return localize.ordinalNumber(date.getDate(), { unit: "date" }); } return lightFormatters.d(date, token); @@ -322,8 +324,8 @@ export const formatters: { [token: string]: Formatter } = { D: function (date, token, localize) { const dayOfYear = getDayOfYear(date); - if (token === 'Do') { - return localize.ordinalNumber(dayOfYear, { unit: 'dayOfYear' }); + if (token === "Do") { + return localize.ordinalNumber(dayOfYear, { unit: "dayOfYear" }); } return addLeadingZeros(dayOfYear, token.length); @@ -334,31 +336,31 @@ export const formatters: { [token: string]: Formatter } = { const dayOfWeek = date.getDay() as Day; switch (token) { // Tue - case 'E': - case 'EE': - case 'EEE': + case "E": + case "EE": + case "EEE": return localize.day(dayOfWeek, { - width: 'abbreviated', - context: 'formatting', + width: "abbreviated", + context: "formatting", }); // T - case 'EEEEE': + case "EEEEE": return localize.day(dayOfWeek, { - width: 'narrow', - context: 'formatting', + width: "narrow", + context: "formatting", }); // Tu - case 'EEEEEE': + case "EEEEEE": return localize.day(dayOfWeek, { - width: 'short', - context: 'formatting', + width: "short", + context: "formatting", }); // Tuesday - case 'EEEE': + case "EEEE": default: return localize.day(dayOfWeek, { - width: 'wide', - context: 'formatting', + width: "wide", + context: "formatting", }); } }, @@ -369,37 +371,37 @@ export const formatters: { [token: string]: Formatter } = { const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; switch (token) { // Numerical value (Nth day of week with current locale or weekStartsOn) - case 'e': + case "e": return String(localDayOfWeek); // Padded numerical value - case 'ee': + case "ee": return addLeadingZeros(localDayOfWeek, 2); // 1st, 2nd, ..., 7th - case 'eo': - return localize.ordinalNumber(localDayOfWeek, { unit: 'day' }); - case 'eee': + case "eo": + return localize.ordinalNumber(localDayOfWeek, { unit: "day" }); + case "eee": return localize.day(dayOfWeek, { - width: 'abbreviated', - context: 'formatting', + width: "abbreviated", + context: "formatting", }); // T - case 'eeeee': + case "eeeee": return localize.day(dayOfWeek, { - width: 'narrow', - context: 'formatting', + width: "narrow", + context: "formatting", }); // Tu - case 'eeeeee': + case "eeeeee": return localize.day(dayOfWeek, { - width: 'short', - context: 'formatting', + width: "short", + context: "formatting", }); // Tuesday - case 'eeee': + case "eeee": default: return localize.day(dayOfWeek, { - width: 'wide', - context: 'formatting', + width: "wide", + context: "formatting", }); } }, @@ -410,37 +412,37 @@ export const formatters: { [token: string]: Formatter } = { const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7; switch (token) { // Numerical value (same as in `e`) - case 'c': + case "c": return String(localDayOfWeek); // Padded numerical value - case 'cc': + case "cc": return addLeadingZeros(localDayOfWeek, token.length); // 1st, 2nd, ..., 7th - case 'co': - return localize.ordinalNumber(localDayOfWeek, { unit: 'day' }); - case 'ccc': + case "co": + return localize.ordinalNumber(localDayOfWeek, { unit: "day" }); + case "ccc": return localize.day(dayOfWeek, { - width: 'abbreviated', - context: 'standalone', + width: "abbreviated", + context: "standalone", }); // T - case 'ccccc': + case "ccccc": return localize.day(dayOfWeek, { - width: 'narrow', - context: 'standalone', + width: "narrow", + context: "standalone", }); // Tu - case 'cccccc': + case "cccccc": return localize.day(dayOfWeek, { - width: 'short', - context: 'standalone', + width: "short", + context: "standalone", }); // Tuesday - case 'cccc': + case "cccc": default: return localize.day(dayOfWeek, { - width: 'wide', - context: 'standalone', + width: "wide", + context: "standalone", }); } }, @@ -451,38 +453,38 @@ export const formatters: { [token: string]: Formatter } = { const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek; switch (token) { // 2 - case 'i': + case "i": return String(isoDayOfWeek); // 02 - case 'ii': + case "ii": return addLeadingZeros(isoDayOfWeek, token.length); // 2nd - case 'io': - return localize.ordinalNumber(isoDayOfWeek, { unit: 'day' }); + case "io": + return localize.ordinalNumber(isoDayOfWeek, { unit: "day" }); // Tue - case 'iii': + case "iii": return localize.day(dayOfWeek, { - width: 'abbreviated', - context: 'formatting', + width: "abbreviated", + context: "formatting", }); // T - case 'iiiii': + case "iiiii": return localize.day(dayOfWeek, { - width: 'narrow', - context: 'formatting', + width: "narrow", + context: "formatting", }); // Tu - case 'iiiiii': + case "iiiiii": return localize.day(dayOfWeek, { - width: 'short', - context: 'formatting', + width: "short", + context: "formatting", }); // Tuesday - case 'iiii': + case "iiii": default: return localize.day(dayOfWeek, { - width: 'wide', - context: 'formatting', + width: "wide", + context: "formatting", }); } }, @@ -490,32 +492,32 @@ export const formatters: { [token: string]: Formatter } = { // AM or PM a: function (date, token, localize) { const hours = date.getHours(); - const dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am'; + const dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; switch (token) { - case 'a': - case 'aa': + case "a": + case "aa": return localize.dayPeriod(dayPeriodEnumValue, { - width: 'abbreviated', - context: 'formatting', + width: "abbreviated", + context: "formatting", }); - case 'aaa': + case "aaa": return localize .dayPeriod(dayPeriodEnumValue, { - width: 'abbreviated', - context: 'formatting', + width: "abbreviated", + context: "formatting", }) .toLowerCase(); - case 'aaaaa': + case "aaaaa": return localize.dayPeriod(dayPeriodEnumValue, { - width: 'narrow', - context: 'formatting', + width: "narrow", + context: "formatting", }); - case 'aaaa': + case "aaaa": default: return localize.dayPeriod(dayPeriodEnumValue, { - width: 'wide', - context: 'formatting', + width: "wide", + context: "formatting", }); } }, @@ -529,33 +531,33 @@ export const formatters: { [token: string]: Formatter } = { } else if (hours === 0) { dayPeriodEnumValue = dayPeriodEnum.midnight; } else { - dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am'; + dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am"; } switch (token) { - case 'b': - case 'bb': + case "b": + case "bb": return localize.dayPeriod(dayPeriodEnumValue, { - width: 'abbreviated', - context: 'formatting', + width: "abbreviated", + context: "formatting", }); - case 'bbb': + case "bbb": return localize .dayPeriod(dayPeriodEnumValue, { - width: 'abbreviated', - context: 'formatting', + width: "abbreviated", + context: "formatting", }) .toLowerCase(); - case 'bbbbb': + case "bbbbb": return localize.dayPeriod(dayPeriodEnumValue, { - width: 'narrow', - context: 'formatting', + width: "narrow", + context: "formatting", }); - case 'bbbb': + case "bbbb": default: return localize.dayPeriod(dayPeriodEnumValue, { - width: 'wide', - context: 'formatting', + width: "wide", + context: "formatting", }); } }, @@ -575,33 +577,33 @@ export const formatters: { [token: string]: Formatter } = { } switch (token) { - case 'B': - case 'BB': - case 'BBB': + case "B": + case "BB": + case "BBB": return localize.dayPeriod(dayPeriodEnumValue, { - width: 'abbreviated', - context: 'formatting', + width: "abbreviated", + context: "formatting", }); - case 'BBBBB': + case "BBBBB": return localize.dayPeriod(dayPeriodEnumValue, { - width: 'narrow', - context: 'formatting', + width: "narrow", + context: "formatting", }); - case 'BBBB': + case "BBBB": default: return localize.dayPeriod(dayPeriodEnumValue, { - width: 'wide', - context: 'formatting', + width: "wide", + context: "formatting", }); } }, // Hour [1-12] h: function (date, token, localize) { - if (token === 'ho') { + if (token === "ho") { let hours = date.getHours() % 12; if (hours === 0) hours = 12; - return localize.ordinalNumber(hours, { unit: 'hour' }); + return localize.ordinalNumber(hours, { unit: "hour" }); } return lightFormatters.h(date, token); @@ -609,8 +611,8 @@ export const formatters: { [token: string]: Formatter } = { // Hour [0-23] H: function (date, token, localize) { - if (token === 'Ho') { - return localize.ordinalNumber(date.getHours(), { unit: 'hour' }); + if (token === "Ho") { + return localize.ordinalNumber(date.getHours(), { unit: "hour" }); } return lightFormatters.H(date, token); @@ -620,8 +622,8 @@ export const formatters: { [token: string]: Formatter } = { K: function (date, token, localize) { const hours = date.getHours() % 12; - if (token === 'Ko') { - return localize.ordinalNumber(hours, { unit: 'hour' }); + if (token === "Ko") { + return localize.ordinalNumber(hours, { unit: "hour" }); } return addLeadingZeros(hours, token.length); @@ -632,8 +634,8 @@ export const formatters: { [token: string]: Formatter } = { let hours = date.getHours(); if (hours === 0) hours = 24; - if (token === 'ko') { - return localize.ordinalNumber(hours, { unit: 'hour' }); + if (token === "ko") { + return localize.ordinalNumber(hours, { unit: "hour" }); } return addLeadingZeros(hours, token.length); @@ -641,8 +643,8 @@ export const formatters: { [token: string]: Formatter } = { // Minute m: function (date, token, localize) { - if (token === 'mo') { - return localize.ordinalNumber(date.getMinutes(), { unit: 'minute' }); + if (token === "mo") { + return localize.ordinalNumber(date.getMinutes(), { unit: "minute" }); } return lightFormatters.m(date, token); @@ -650,8 +652,8 @@ export const formatters: { [token: string]: Formatter } = { // Second s: function (date, token, localize) { - if (token === 'so') { - return localize.ordinalNumber(date.getSeconds(), { unit: 'second' }); + if (token === "so") { + return localize.ordinalNumber(date.getSeconds(), { unit: "second" }); } return lightFormatters.s(date, token); @@ -667,28 +669,28 @@ export const formatters: { [token: string]: Formatter } = { const timezoneOffset = date.getTimezoneOffset(); if (timezoneOffset === 0) { - return 'Z'; + return "Z"; } switch (token) { // Hours and optional minutes - case 'X': + case "X": return formatTimezoneWithOptionalMinutes(timezoneOffset); // Hours, minutes and optional seconds without `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `XX` - case 'XXXX': - case 'XX': // Hours and minutes without `:` delimiter + case "XXXX": + case "XX": // Hours and minutes without `:` delimiter return formatTimezone(timezoneOffset); // Hours, minutes and optional seconds with `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `XXX` - case 'XXXXX': - case 'XXX': // Hours and minutes with `:` delimiter + case "XXXXX": + case "XXX": // Hours and minutes with `:` delimiter default: - return formatTimezone(timezoneOffset, ':'); + return formatTimezone(timezoneOffset, ":"); } }, @@ -698,23 +700,23 @@ export const formatters: { [token: string]: Formatter } = { switch (token) { // Hours and optional minutes - case 'x': + case "x": return formatTimezoneWithOptionalMinutes(timezoneOffset); // Hours, minutes and optional seconds without `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `xx` - case 'xxxx': - case 'xx': // Hours and minutes without `:` delimiter + case "xxxx": + case "xx": // Hours and minutes without `:` delimiter return formatTimezone(timezoneOffset); // Hours, minutes and optional seconds with `:` delimiter // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets // so this token always has the same output as `xxx` - case 'xxxxx': - case 'xxx': // Hours and minutes with `:` delimiter + case "xxxxx": + case "xxx": // Hours and minutes with `:` delimiter default: - return formatTimezone(timezoneOffset, ':'); + return formatTimezone(timezoneOffset, ":"); } }, @@ -724,14 +726,14 @@ export const formatters: { [token: string]: Formatter } = { switch (token) { // Short - case 'O': - case 'OO': - case 'OOO': - return 'GMT' + formatTimezoneShort(timezoneOffset, ':'); + case "O": + case "OO": + case "OOO": + return "GMT" + formatTimezoneShort(timezoneOffset, ":"); // Long - case 'OOOO': + case "OOOO": default: - return 'GMT' + formatTimezone(timezoneOffset, ':'); + return "GMT" + formatTimezone(timezoneOffset, ":"); } }, @@ -741,32 +743,31 @@ export const formatters: { [token: string]: Formatter } = { switch (token) { // Short - case 'z': - case 'zz': - case 'zzz': - return 'GMT' + formatTimezoneShort(timezoneOffset, ':'); + case "z": + case "zz": + case "zzz": + return "GMT" + formatTimezoneShort(timezoneOffset, ":"); // Long - case 'zzzz': + case "zzzz": default: - return 'GMT' + formatTimezone(timezoneOffset, ':'); + return "GMT" + formatTimezone(timezoneOffset, ":"); } }, // Seconds timestamp t: function (date, token, _localize) { - const timestamp = Math.trunc(date.getTime() / 1000); + const timestamp = Math.trunc(+date / 1000); return addLeadingZeros(timestamp, token.length); }, // Milliseconds timestamp T: function (date, token, _localize) { - const timestamp = date.getTime(); - return addLeadingZeros(timestamp, token.length); + return addLeadingZeros(+date, token.length); }, }; -function formatTimezoneShort(offset: number, delimiter: string = ''): string { - const sign = offset > 0 ? '-' : '+'; +function formatTimezoneShort(offset: number, delimiter: string = ""): string { + const sign = offset > 0 ? "-" : "+"; const absOffset = Math.abs(offset); const hours = Math.trunc(absOffset / 60); const minutes = absOffset % 60; @@ -776,16 +777,19 @@ function formatTimezoneShort(offset: number, delimiter: string = ''): string { return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2); } -function formatTimezoneWithOptionalMinutes(offset: number, delimiter?: string): string { +function formatTimezoneWithOptionalMinutes( + offset: number, + delimiter?: string, +): string { if (offset % 60 === 0) { - const sign = offset > 0 ? '-' : '+'; + const sign = offset > 0 ? "-" : "+"; return sign + addLeadingZeros(Math.abs(offset) / 60, 2); } return formatTimezone(offset, delimiter); } -function formatTimezone(offset: number, delimiter: string = ''): string { - const sign = offset > 0 ? '-' : '+'; +function formatTimezone(offset: number, delimiter: string = ""): string { + const sign = offset > 0 ? "-" : "+"; const absOffset = Math.abs(offset); const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2); const minutes = addLeadingZeros(absOffset % 60, 2); diff --git a/src/date-fns/_lib/format/lightFormatters/index.ts b/src/date-fns/_lib/format/lightFormatters/index.ts index edaff7d..9d39a0a 100644 --- a/src/date-fns/_lib/format/lightFormatters/index.ts +++ b/src/date-fns/_lib/format/lightFormatters/index.ts @@ -1,4 +1,7 @@ -import { addLeadingZeros } from '../../addLeadingZeros/index'; +/* eslint-disable eslint-comments/no-unlimited-disable */ +/* eslint-disable */ +// @ts-nocheck +import { addLeadingZeros } from '../../addLeadingZeros/index.ts'; /* * | | Unit | | Unit | @@ -56,7 +59,7 @@ export const lightFormatters = { case 'aaa': return dayPeriodEnumValue; case 'aaaaa': - return dayPeriodEnumValue[0]!; + return dayPeriodEnumValue[0]; case 'aaaa': default: return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.'; @@ -97,3 +100,4 @@ export const lightFormatters = { return addLeadingZeros(fractionalSeconds, token.length); }, }; +/* eslint-enable */ \ No newline at end of file diff --git a/src/date-fns/_lib/format/longFormatters/index.ts b/src/date-fns/_lib/format/longFormatters/index.ts index 36fd000..c7599b9 100644 --- a/src/date-fns/_lib/format/longFormatters/index.ts +++ b/src/date-fns/_lib/format/longFormatters/index.ts @@ -1,36 +1,39 @@ -import type { FormatLong } from '../../../locale/types'; +import type { FormatLong } from "../../../locale/types.ts"; type LongFormatter = (pattern: string, formatLong: FormatLong) => string; const dateLongFormatter: LongFormatter = (pattern, formatLong) => { switch (pattern) { - case 'P': - return formatLong.date({ width: 'short' }); - case 'PP': - return formatLong.date({ width: 'medium' }); - case 'PPP': - return formatLong.date({ width: 'long' }); - case 'PPPP': + case "P": + return formatLong.date({ width: "short" }); + case "PP": + return formatLong.date({ width: "medium" }); + case "PPP": + return formatLong.date({ width: "long" }); + case "PPPP": default: - return formatLong.date({ width: 'full' }); + return formatLong.date({ width: "full" }); } }; const timeLongFormatter: LongFormatter = (pattern, formatLong) => { switch (pattern) { - case 'p': - return formatLong.time({ width: 'short' }); - case 'pp': - return formatLong.time({ width: 'medium' }); - case 'ppp': - return formatLong.time({ width: 'long' }); - case 'pppp': + case "p": + return formatLong.time({ width: "short" }); + case "pp": + return formatLong.time({ width: "medium" }); + case "ppp": + return formatLong.time({ width: "long" }); + case "pppp": default: - return formatLong.time({ width: 'full' }); + return formatLong.time({ width: "full" }); } }; -const dateTimeLongFormatter: LongFormatter = (pattern: string, formatLong: FormatLong) => { +const dateTimeLongFormatter: LongFormatter = ( + pattern: string, + formatLong: FormatLong, +) => { const matchResult = pattern.match(/(P+)(p+)?/) || []; const datePattern = matchResult[1]; const timePattern = matchResult[2]; @@ -42,24 +45,24 @@ const dateTimeLongFormatter: LongFormatter = (pattern: string, formatLong: Forma let dateTimeFormat: string; switch (datePattern) { - case 'P': - dateTimeFormat = formatLong.dateTime({ width: 'short' }); + case "P": + dateTimeFormat = formatLong.dateTime({ width: "short" }); break; - case 'PP': - dateTimeFormat = formatLong.dateTime({ width: 'medium' }); + case "PP": + dateTimeFormat = formatLong.dateTime({ width: "medium" }); break; - case 'PPP': - dateTimeFormat = formatLong.dateTime({ width: 'long' }); + case "PPP": + dateTimeFormat = formatLong.dateTime({ width: "long" }); break; - case 'PPPP': + case "PPPP": default: - dateTimeFormat = formatLong.dateTime({ width: 'full' }); + dateTimeFormat = formatLong.dateTime({ width: "full" }); break; } return dateTimeFormat - .replace('{{date}}', dateLongFormatter(datePattern!, formatLong)) - .replace('{{time}}', timeLongFormatter(timePattern, formatLong)); + .replace("{{date}}", dateLongFormatter(datePattern, formatLong)) + .replace("{{time}}", timeLongFormatter(timePattern, formatLong)); }; export const longFormatters: Record = { diff --git a/src/date-fns/_lib/getRoundingMethod/index.ts b/src/date-fns/_lib/getRoundingMethod/index.ts index f1ce739..57746c5 100644 --- a/src/date-fns/_lib/getRoundingMethod/index.ts +++ b/src/date-fns/_lib/getRoundingMethod/index.ts @@ -1,4 +1,4 @@ -import type { RoundingMethod } from '../../types'; +import type { RoundingMethod } from "../../types.ts"; export function getRoundingMethod(method: RoundingMethod | undefined) { return (number: number) => { diff --git a/src/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.ts b/src/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.ts index 3d5106b..111f60d 100644 --- a/src/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.ts +++ b/src/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../../toDate/index'; +import { toDate } from "../../toDate/index.ts"; +import type { DateArg } from "../../types.ts"; /** * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. @@ -11,7 +12,9 @@ import { toDate } from '../../toDate/index'; * * This function returns the timezone offset in milliseconds that takes seconds in account. */ -export function getTimezoneOffsetInMilliseconds(date: Date | number | string): number { +export function getTimezoneOffsetInMilliseconds( + date: DateArg & {}, +): number { const _date = toDate(date); const utcDate = new Date( Date.UTC( diff --git a/src/date-fns/_lib/normalizeDates/index.ts b/src/date-fns/_lib/normalizeDates/index.ts new file mode 100644 index 0000000..488e244 --- /dev/null +++ b/src/date-fns/_lib/normalizeDates/index.ts @@ -0,0 +1,28 @@ +import { constructFrom } from "../../constructFrom/index.ts"; +import type { ContextFn, DateArg } from "../../types.ts"; + +export function normalizeDates( + context: ContextFn | undefined, + ...dates: [DateArg, DateArg, DateArg] +): [Date, Date, Date]; + +export function normalizeDates( + context: ContextFn | undefined, + ...dates: [DateArg, DateArg] +): [Date, Date]; + +export function normalizeDates( + context: ContextFn | undefined, + ...dates: Array & {}> +): Date[]; + +export function normalizeDates( + context: ContextFn | undefined, + ...dates: Array & {}> +) { + const normalize = constructFrom.bind( + null, + context || dates.find((date) => typeof date === "object"), + ); + return dates.map(normalize); +} diff --git a/src/date-fns/_lib/normalizeInterval/index.ts b/src/date-fns/_lib/normalizeInterval/index.ts new file mode 100644 index 0000000..4f80ca8 --- /dev/null +++ b/src/date-fns/_lib/normalizeInterval/index.ts @@ -0,0 +1,10 @@ +import type { ContextFn, Interval, NormalizedInterval } from "../../types.ts"; +import { normalizeDates } from "../normalizeDates/index.ts"; + +export function normalizeInterval( + context: ContextFn | undefined, + interval: Interval, +): NormalizedInterval { + const [start, end] = normalizeDates(context, interval.start, interval.end); + return { start, end }; +} diff --git a/src/date-fns/_lib/protectedTokens/index.ts b/src/date-fns/_lib/protectedTokens/index.ts index dd541bf..13310c1 100644 --- a/src/date-fns/_lib/protectedTokens/index.ts +++ b/src/date-fns/_lib/protectedTokens/index.ts @@ -1,7 +1,7 @@ const dayOfYearTokenRE = /^D+$/; const weekYearTokenRE = /^Y+$/; -const throwTokens = ['D', 'DD', 'YY', 'YYYY']; +const throwTokens = ["D", "DD", "YY", "YYYY"]; export function isProtectedDayOfYearToken(token: string) { return dayOfYearTokenRE.test(token); @@ -11,13 +11,17 @@ export function isProtectedWeekYearToken(token: string) { return weekYearTokenRE.test(token); } -export function warnOrThrowProtectedError(token: string, format: string, input: string): void { +export function warnOrThrowProtectedError( + token: string, + format: string, + input: string, +): void { const _message = message(token, format, input); console.warn(_message); if (throwTokens.includes(token)) throw new RangeError(_message); } function message(token: string, format: string, input: string) { - const subject = token[0] === 'Y' ? 'years' : 'days of the month'; + const subject = token[0] === "Y" ? "years" : "days of the month"; return `Use \`${token.toLowerCase()}\` instead of \`${token}\` (in \`${format}\`) for formatting ${subject} to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`; } diff --git a/src/date-fns/_lib/test/index.ts b/src/date-fns/_lib/test/index.ts index 8b125e2..48ce63b 100644 --- a/src/date-fns/_lib/test/index.ts +++ b/src/date-fns/_lib/test/index.ts @@ -1,7 +1,18 @@ -import { addLeadingZeros } from '../addLeadingZeros/index'; -import { setDefaultOptions } from '../defaultOptions/index'; +import { afterEach, beforeEach } from "vitest"; +import { addLeadingZeros } from "../addLeadingZeros/index.ts"; +import { setDefaultOptions } from "../defaultOptions/index.ts"; +import sinon from "sinon"; -export function assertType(_: T): void {} +export function assertType(_value: Type) {} + +export namespace assertType { + export type Equal = + Exclude extends never + ? Exclude extends never + ? true + : false + : false; +} export function resetDefaultOptions(): void { setDefaultOptions({}); @@ -10,7 +21,7 @@ export function resetDefaultOptions(): void { // This makes sure we create the consistent offsets across timezones, no matter where these tests are ran. export function generateOffset(originalDate: Date) { // Add the timezone. - let offset = ''; + let offset = ""; const tzOffset = originalDate.getTimezoneOffset(); if (tzOffset !== 0) { @@ -18,12 +29,32 @@ export function generateOffset(originalDate: Date) { const hourOffset = addLeadingZeros(Math.trunc(absoluteOffset / 60), 2); const minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); // If less than 0, the sign is +, because it is ahead of time. - const sign = tzOffset < 0 ? '+' : '-'; + const sign = tzOffset < 0 ? "+" : "-"; offset = `${sign}${hourOffset}:${minuteOffset}`; } else { - offset = 'Z'; + offset = "Z"; } return offset; } + +export function fakeDate(date: number | Date) { + let clock: sinon.SinonFakeTimers | undefined; + + function fakeNow(date: number | Date) { + clock?.restore(); + clock = sinon.useFakeTimers(+date); + } + + beforeEach(() => { + fakeNow(+date); + }); + + afterEach(() => { + clock?.restore(); + clock = undefined; + }); + + return { fakeNow }; +} diff --git a/src/date-fns/_test/dst/addBusinessDays/basic.ts b/src/date-fns/_test/dst/addBusinessDays/basic.ts deleted file mode 100644 index ddebe6d..0000000 --- a/src/date-fns/_test/dst/addBusinessDays/basic.ts +++ /dev/null @@ -1,17 +0,0 @@ -// This is basic DST test for addBusinessDays - -import assert from 'assert'; -import { addBusinessDays } from '../../../addBusinessDays/index.js'; - -if (process.env.TZ !== 'America/Santiago') throw new Error('The test must be run with TZ=America/Santiago'); - -if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || '0') < 10) - throw new Error('The test must be run on Node.js version >= 10'); - -console.log(addBusinessDays(new Date(2014, 8 /* Sep */, 1), 10).toString()); - -assert.deepStrictEqual( - // new Date(2014, 8, 7) is the DST day - addBusinessDays(new Date(2014, 8 /* Sep */, 1), 10).toString(), - 'Mon Sep 15 2014 00:00:00 GMT-0300 (Chile Summer Time)', -); diff --git a/src/date-fns/_test/dst/eachDayOfInterval/basic.ts b/src/date-fns/_test/dst/eachDayOfInterval/basic.ts deleted file mode 100644 index 4bddb1c..0000000 --- a/src/date-fns/_test/dst/eachDayOfInterval/basic.ts +++ /dev/null @@ -1,21 +0,0 @@ -// This is basic DST test for eachDayOfInterval - -import { eachDayOfInterval } from '../../../eachDayOfInterval/index.js'; -import assert from 'assert'; - -if (process.env.TZ !== 'Asia/Damascus') throw new Error('The test must be run with TZ=Asia/Damascus'); - -if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || '0') < 10) - throw new Error('The test must be run on Node.js version >= 10'); - -assert.deepStrictEqual( - eachDayOfInterval({ - start: new Date(2020, 2, 26), - end: new Date(2020, 2, 28), - }).map((d) => d.toString()), - [ - 'Thu Mar 26 2020 00:00:00 GMT+0200 (GMT+03:00)', - 'Fri Mar 27 2020 01:00:00 GMT+0300 (GMT+03:00)', - 'Sat Mar 28 2020 00:00:00 GMT+0300 (GMT+03:00)', - ], -); diff --git a/src/date-fns/_test/dst/formatDistanceStrict/cairo.ts b/src/date-fns/_test/dst/formatDistanceStrict/cairo.ts deleted file mode 100644 index 513360f..0000000 --- a/src/date-fns/_test/dst/formatDistanceStrict/cairo.ts +++ /dev/null @@ -1,8 +0,0 @@ -// This is DST test for formatDistanceStrict in the Cairo timezone - -import { formatDistanceStrict } from '../../../formatDistanceStrict/index.js'; -import assert from 'assert'; - -if (process.env.TZ !== 'Africa/Cairo') throw new Error('The test must be run with TZ=Africa/Cairo'); - -assert.strictEqual(formatDistanceStrict(new Date(1986, 3, 4, 10, 32, 0), new Date(1986, 4, 4, 10, 32, 0)), '1 month'); diff --git a/src/date-fns/_test/dst/formatDistanceStrict/melbourne.ts b/src/date-fns/_test/dst/formatDistanceStrict/melbourne.ts deleted file mode 100644 index 304ef62..0000000 --- a/src/date-fns/_test/dst/formatDistanceStrict/melbourne.ts +++ /dev/null @@ -1,12 +0,0 @@ -// This is DST test for formatDistanceStrict in the Melbourne timezone - -import { formatDistanceStrict } from '../../../formatDistanceStrict/index.js'; -import { parseISO } from '../../../parseISO/index.js'; -import assert from 'assert'; - -if (process.env.TZ !== 'Australia/Melbourne') throw new Error('The test must be run with TZ=Australia/Melbourne'); - -assert.strictEqual( - formatDistanceStrict(parseISO('2020-04-05T01:00:00+11:00'), parseISO('2020-04-05T03:00:00+10:00')), - '3 hours', -); diff --git a/src/date-fns/_test/dst/getOverlappingDaysInIntervals/basic.ts b/src/date-fns/_test/dst/getOverlappingDaysInIntervals/basic.ts deleted file mode 100644 index 31c17e6..0000000 --- a/src/date-fns/_test/dst/getOverlappingDaysInIntervals/basic.ts +++ /dev/null @@ -1,16 +0,0 @@ -import assert from 'assert'; -import { getOverlappingDaysInIntervals } from '../../../getOverlappingDaysInIntervals/index.js'; - -assert.strictEqual( - getOverlappingDaysInIntervals( - { - start: new Date(2001, 8 /* Sep */, 1, 16), - end: new Date(2023, 11 /* Dec */, 20, 16), - }, - { - start: new Date(2023, 11 /* Dec */, 21, 16), - end: new Date(2001, 8 /* Sep */, 9, 16), - }, - ), - 8137, -); diff --git a/src/date-fns/_test/dst/parseISO/basic.ts b/src/date-fns/_test/dst/parseISO/basic.ts deleted file mode 100644 index 2267ef8..0000000 --- a/src/date-fns/_test/dst/parseISO/basic.ts +++ /dev/null @@ -1,23 +0,0 @@ -// This is basic DST test for parseISO - -import { parseISO } from '../../../parseISO/index.js'; -import assert from 'assert'; - -if (process.env.TZ !== 'America/Sao_Paulo') throw new Error('The test must be run with TZ=America/Sao_Paulo'); - -if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || '0') < 10) - throw new Error('The test must be run on Node.js version >= 10'); - -// Test DST start edge -assert.strictEqual(parseISO('2018-11-03').getDate(), 3); -assert.strictEqual(parseISO('2018-11-04').getDate(), 4); // DST start -assert.strictEqual(parseISO('2018-11-05').getDate(), 5); - -// Test DST end edge -assert.strictEqual(parseISO('2019-02-15').getDate(), 15); -assert.strictEqual(parseISO('2019-02-16').getDate(), 16); // DST end -assert.strictEqual(parseISO('2019-02-17').getDate(), 17); - -// Test creation of nonexistent time -assert.strictEqual(parseISO('2018-11-04T00:00').toString(), 'Sun Nov 04 2018 01:00:00 GMT-0200 (Brasilia Summer Time)'); -assert.strictEqual(parseISO('2018-11-04T00:30').toString(), 'Sun Nov 04 2018 01:30:00 GMT-0200 (Brasilia Summer Time)'); diff --git a/src/date-fns/_test/dst/parseISO/samoa.ts b/src/date-fns/_test/dst/parseISO/samoa.ts deleted file mode 100644 index 5330002..0000000 --- a/src/date-fns/_test/dst/parseISO/samoa.ts +++ /dev/null @@ -1,12 +0,0 @@ -// This is an edge case DST test for parseISO - -import { parseISO } from '../../../parseISO/index.js'; -import assert from 'assert'; - -if (process.env.TZ !== 'Pacific/Apia') throw new Error('The test must be run with TZ=Pacific/Apia'); - -if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || '0') < 10) - throw new Error('The test must be run on Node.js version >= 10'); - -assert.strictEqual(parseISO('2011-12-30').getDate(), 31); -assert.strictEqual(parseISO('2011-12-30T03:30').toString(), 'Sat Dec 31 2011 03:30:00 GMT+1400 (Apia Daylight Time)'); diff --git a/src/date-fns/_test/dst/parseISO/sydney.ts b/src/date-fns/_test/dst/parseISO/sydney.ts deleted file mode 100644 index a235d3e..0000000 --- a/src/date-fns/_test/dst/parseISO/sydney.ts +++ /dev/null @@ -1,57 +0,0 @@ -// This is basic DST test for parseISO - -import { parseISO } from '../../../parseISO/index.js'; -import assert from 'assert'; - -if (process.env.TZ !== 'Australia/Sydney') throw new Error('The test must be run with TZ=Australia/Sydney'); - -if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || '0') < 10) - throw new Error('The test must be run on Node.js version >= 10'); - -// Test DST start edge -assert.strictEqual(parseISO('2019-10-06').getDate(), 6); // DST start -assert.strictEqual(parseISO('2019-10-07').getDate(), 7); -assert.strictEqual( - parseISO('2019-10-06T01:00:00').toString(), - 'Sun Oct 06 2019 01:00:00 GMT+1000 (Australian Eastern Standard Time)', -); -assert.strictEqual( - parseISO('2019-10-06T02:00:00').toString(), - 'Sun Oct 06 2019 03:00:00 GMT+1100 (Australian Eastern Daylight Time)', -); - -assert.strictEqual( - parseISO('2019-10-06T05:00:00').toString(), - 'Sun Oct 06 2019 05:00:00 GMT+1100 (Australian Eastern Daylight Time)', -); - -// Test DST end edge -assert.strictEqual(parseISO('2019-04-06').getDate(), 6); -assert.strictEqual(parseISO('2019-04-07').getDate(), 7); // DST end -assert.strictEqual( - parseISO('2019-04-06T11:00:00').toString(), - 'Sat Apr 06 2019 11:00:00 GMT+1100 (Australian Eastern Daylight Time)', -); -assert.strictEqual( - parseISO('2019-04-07T11:00:00').toString(), - 'Sun Apr 07 2019 11:00:00 GMT+1000 (Australian Eastern Standard Time)', -); - -assert.strictEqual( - parseISO('2019-04-07T00:00:00').toString(), - 'Sun Apr 07 2019 00:00:00 GMT+1100 (Australian Eastern Daylight Time)', -); - -// test edge cases for months, years -assert.strictEqual( - parseISO('2020-01-01T00:00:00').toString(), - 'Wed Jan 01 2020 00:00:00 GMT+1100 (Australian Eastern Daylight Time)', -); -assert.strictEqual( - parseISO('2019-12-31T23:59:59').toString(), - 'Tue Dec 31 2019 23:59:59 GMT+1100 (Australian Eastern Daylight Time)', -); -assert.strictEqual( - parseISO('2020-02-29T23:59:59').toString(), - 'Sat Feb 29 2020 23:59:59 GMT+1100 (Australian Eastern Daylight Time)', -); diff --git a/src/date-fns/_test/dst/tzOffsetTransitions.ts b/src/date-fns/_test/dst/tzOffsetTransitions.ts deleted file mode 100644 index 22f60a2..0000000 --- a/src/date-fns/_test/dst/tzOffsetTransitions.ts +++ /dev/null @@ -1,140 +0,0 @@ -type PartialInterval = { - start: Date | undefined; - end: Date | undefined; -}; - -/** - * Fetch the start and end of DST for the local time - * zone in a given year. - * We'll assume that DST start & end are the first - * forward and the last back transitions in the year, - * except transitions in Jan or Dec which are likely - * to be permanent TZ changes rather than DST changes. - * @param year - * @returns object with two Date-valued properties: - * - `start` is the first instant of DST in the Spring, - * or undefined if there's no DST in this year. - * - `end` is the first instant of standard time - * in the Fall, or undefined if there's no DST in - * this year. - */ -export function getDstTransitions(year: number): PartialInterval { - const result: PartialInterval = { - start: undefined, - end: undefined, - }; - const transitions = getTzOffsetTransitions(year); - for (let i = 0; i < transitions.length; i++) { - const t = transitions[i]!; - const month = t.date.getMonth(); - if (month > 0 && month < 11) { - if (t.type === 'forward') result.start = t.date; - if (t.type === 'back' && !result.end) result.end = t.date; - } - } - return result; -} - -function isValidDate(date: unknown): date is Date { - return date instanceof Date && !isNaN(date.getTime()); -} - -const MINUTE = 1000 * 60; - -function firstTickInLocalDay(date: Date): Date { - const dateNumber = date.getDate(); - let prev = date; - let d = date; - do { - prev = d; - d = new Date(d.getTime() - MINUTE); - } while (dateNumber === d.getDate()); - return prev; -} - -function fiveMinutesLater(date: Date): Date { - return new Date(date.getTime() + 5 * MINUTE); -} - -function oneDayLater(date: Date): Date { - const d = new Date(date); - d.setDate(d.getDate() + 1); - return firstTickInLocalDay(d); -} - -function previousTickTimezoneOffset(date: Date): number { - const d = new Date(date.getTime() - 1); - return d.getTimezoneOffset(); -} - -/** - * Fetch all timezone-offset transitions in a given - * year. These are almost always DST transitions, - * but sometimes there are non-DST changes, e.g. - * when a country changes its time zone - * @param year - * @returns array of objects, each with the following - * propeerties: - * - `date` - a `Date` representing the first instant - * when the new timezone offset is effective. - * - `type` - either `forward` for skippnig time like - * the Spring transition to DST. - * - `before` - the timezone offset before the tranition. - * For example, the UTC-0400 offset will return -240. - * To match how times are displayed in ISO 8601 format, - * the sign of this value is reversed from the return - * value of `Date.getTimezoneOffset`. - * - `after` - the timezone offset after the tranition. - * Examples and caveats are the same as `before`. - - */ -export function getTzOffsetTransitions(year: number) { - // start at the end of the previous day - let date = firstTickInLocalDay(new Date(year, 0, 1)); - if (!isValidDate(date)) { - throw new Error('Invalid Date'); - } - let baseTzOffset = previousTickTimezoneOffset(date); - const transitions = []; - do { - let tzOffset = date.getTimezoneOffset(); - if (baseTzOffset !== tzOffset) { - if (tzOffset !== previousTickTimezoneOffset(date)) { - // Transition is the first tick of a local day. - transitions.push({ - date: date, - type: tzOffset < baseTzOffset ? 'forward' : 'back', - before: -baseTzOffset, - after: -tzOffset, - }); - baseTzOffset = tzOffset; - } else { - // transition was not at the start of the day, so it must have happened - // yesterday. Back up one day and find the minute where it happened. - let transitionDate = new Date(date.getTime()); - transitionDate.setDate(transitionDate.getDate() - 1); - - // Iterate through each 5 mins of the day until we find a transition. - // TODO: this could be optimized to search hours then minutes or by or - // by using a binary search. - const dayNumber = transitionDate.getDate(); - while (isValidDate(transitionDate) && transitionDate.getDate() === dayNumber) { - tzOffset = transitionDate.getTimezoneOffset(); - if (baseTzOffset !== tzOffset) { - transitions.push({ - date: transitionDate, - type: tzOffset < baseTzOffset ? 'forward' : 'back', - before: -baseTzOffset, - after: -tzOffset, - }); - baseTzOffset = tzOffset; - break; // assuming only 1 transition per day - } - transitionDate = fiveMinutesLater(transitionDate); - } - } - } - date = oneDayLater(date); - } while (date.getFullYear() === year); - return transitions; -} diff --git a/src/date-fns/_test/formatISO/india.ts b/src/date-fns/_test/formatISO/india.ts deleted file mode 100644 index 5b2e051..0000000 --- a/src/date-fns/_test/formatISO/india.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { formatISO } from '../../formatISO/index.js'; -import assert from 'assert'; - -if (process.env.TZ !== 'Asia/Kolkata') throw new Error('The test must be run with TZ=Asia/Kolkata'); - -if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || '0') < 10) - throw new Error('The test must be run on Node.js version >= 10'); - -assert.strictEqual(formatISO(new Date(1986, 3, 4, 10, 33, 1)), '1986-04-04T10:33:01+05:30'); diff --git a/src/date-fns/_test/formatRFC3339/australia.ts b/src/date-fns/_test/formatRFC3339/australia.ts deleted file mode 100644 index 77a7df1..0000000 --- a/src/date-fns/_test/formatRFC3339/australia.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { formatRFC3339 } from '../../formatRFC3339/index.js'; -import assert from 'assert'; - -/** - * Australia/Eucla (Australia) is interesting for its positive to UTC time, with 45 minutes offset. - * It's independent from Standard and Summer time. - */ -if (process.env.TZ !== 'Australia/Eucla') throw new Error('The test must be run with TZ=Australia/Eucla (UTC+08:45)'); - -if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || '0') < 10) - throw new Error('The test must be run on Node.js version >= 10'); - -// Old date -assert.strictEqual(formatRFC3339(new Date(1986, 3, 4, 10, 33, 1)), '1986-04-04T10:33:01+08:45'); - -// Standard time (Eucla have +08:45) -assert.strictEqual(formatRFC3339(new Date(2020, 0, 23, 5, 0, 54)), '2020-01-23T05:00:54+08:45'); - -// Summer time (Eucla have +08:45) -assert.strictEqual(formatRFC3339(new Date(2020, 6, 30, 20, 59, 1)), '2020-07-30T20:59:01+08:45'); diff --git a/src/date-fns/_test/formatRFC3339/india.ts b/src/date-fns/_test/formatRFC3339/india.ts deleted file mode 100644 index d24209b..0000000 --- a/src/date-fns/_test/formatRFC3339/india.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { formatRFC3339 } from '../../formatRFC3339/index.js'; -import assert from 'assert'; - -/** - * Asia/Kolkata (India) is interesting for its positive to UTC time, with 30 minutes offset. - * It's independent from Standard and Summer time. - */ -if (process.env.TZ !== 'Asia/Kolkata') throw new Error('The test must be run with TZ=Asia/Kolkata'); - -if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || '0') < 10) - throw new Error('The test must be run on Node.js version >= 10'); - -// Old date -assert.strictEqual(formatRFC3339(new Date(1986, 3, 4, 10, 33, 1)), '1986-04-04T10:33:01+05:30'); - -// Standard time (india always have +05:30) -assert.strictEqual(formatRFC3339(new Date(2020, 0, 23, 5, 0, 54)), '2020-01-23T05:00:54+05:30'); - -// Summer time (india always have +05:30) -assert.strictEqual(formatRFC3339(new Date(2020, 6, 30, 20, 59, 1)), '2020-07-30T20:59:01+05:30'); diff --git a/src/date-fns/_test/formatRFC3339/newfoundland.ts b/src/date-fns/_test/formatRFC3339/newfoundland.ts deleted file mode 100644 index 5985c30..0000000 --- a/src/date-fns/_test/formatRFC3339/newfoundland.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { formatRFC3339 } from '../../formatRFC3339/index.js'; -import assert from 'assert'; - -/** - * America/St_Johns (Canada) is interesting for its negative to UTC time, with 30 minutes offset. - * Bonus: It depends on Standard and Summer time. - */ -if (process.env.TZ !== 'America/St_Johns') - throw new Error('The test must be run with TZ=America/St_Johns (UTC-02:30 or UTC-03:30)'); - -if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || '0') < 10) - throw new Error('The test must be run on Node.js version >= 10'); - -// Old date -assert.strictEqual(formatRFC3339(new Date(1986, 3, 4, 10, 33, 1)), '1986-04-04T10:33:01-03:30'); - -// Standard time (Newfoundland and Labrador have -03:30) -assert.strictEqual(formatRFC3339(new Date(2020, 0, 23, 5, 0, 54)), '2020-01-23T05:00:54-03:30'); - -// Summer time (Newfoundland and Labrador have -02:30) -assert.strictEqual(formatRFC3339(new Date(2020, 6, 30, 20, 59, 1)), '2020-07-30T20:59:01-02:30'); diff --git a/src/date-fns/_test/formatRFC3339/newzealand.ts b/src/date-fns/_test/formatRFC3339/newzealand.ts deleted file mode 100644 index a4c83ce..0000000 --- a/src/date-fns/_test/formatRFC3339/newzealand.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { formatRFC3339 } from '../../formatRFC3339/index.js'; -import assert from 'assert'; - -/** - * Pacific/Chatham (Chatham Islands, New Zealand) is interesting for being the farthest from UTC. - * It depends on Standard (+12:45) and Summer time (+13:45). - */ -if (process.env.TZ !== 'Pacific/Chatham') - throw new Error('The test must be run with TZ=Pacific/Chatham (UTC+12:45 or UTC+13:45)'); - -if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || '0') < 10) - throw new Error('The test must be run on Node.js version >= 10'); - -// Old date -assert.strictEqual(formatRFC3339(new Date(1986, 3, 4, 10, 33, 1)), '1986-04-04T10:33:01+12:45'); - -// Standard time (Chatham have +13:45) -assert.strictEqual(formatRFC3339(new Date(2020, 8, 27, 20, 59, 1)), '2020-09-27T20:59:01+13:45'); - -// Summer time (Chatham have +12:45) -assert.strictEqual(formatRFC3339(new Date(2020, 3, 5, 5, 0, 54)), '2020-04-05T05:00:54+12:45'); diff --git a/src/date-fns/_test/formatRFC3339/poland.ts b/src/date-fns/_test/formatRFC3339/poland.ts deleted file mode 100644 index e233799..0000000 --- a/src/date-fns/_test/formatRFC3339/poland.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { formatRFC3339 } from '../../formatRFC3339/index.js'; -import assert from 'assert'; - -/** - * Europe/Warsaw (Poland) is regular full-hours timezone - */ -if (process.env.TZ !== 'Europe/Warsaw') - throw new Error('The test must be run with TZ=Europe/Warsaw (UTC+02:00 or UTC+01:00)'); - -if (parseInt(process.version.match(/^v(\d+)\./)?.[1] || '0') < 10) - throw new Error('The test must be run on Node.js version >= 10'); - -// Old date -assert.strictEqual(formatRFC3339(new Date(1986, 3, 4, 10, 33, 1)), '1986-04-04T10:33:01+02:00'); - -// Standard time (Warsaw have +01:00) -assert.strictEqual(formatRFC3339(new Date(2020, 0, 23, 5, 0, 54)), '2020-01-23T05:00:54+01:00'); - -// Summer time (Warsaw have +02:00) -assert.strictEqual(formatRFC3339(new Date(2020, 6, 30, 20, 59, 1)), '2020-07-30T20:59:01+02:00'); diff --git a/src/date-fns/add/index.ts b/src/date-fns/add/index.ts index 5f8b6ab..ae38013 100644 --- a/src/date-fns/add/index.ts +++ b/src/date-fns/add/index.ts @@ -1,33 +1,29 @@ -import { addDays } from '../addDays/index'; -import { addMonths } from '../addMonths/index'; -import { constructFrom } from '../constructFrom/index'; -import { toDate } from '../toDate/index'; -import type { Duration } from '../types'; +import { addDays } from "../addDays/index.ts"; +import { addMonths } from "../addMonths/index.ts"; +import { constructFrom } from "../constructFrom/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg, Duration } from "../types.ts"; + +/** + * The {@link add} function options. + */ +export interface AddOptions + extends ContextOptions {} /** * @name add * @category Common Helpers - * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date. + * @summary Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date. * * @description - * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date. + * Add the specified years, months, weeks, days, hours, minutes, and seconds to the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam DateType - The `Date` type the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The date to be changed - * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be added. - * - * | Key | Description | - * |----------------|------------------------------------| - * | years | Amount of years to be added | - * | months | Amount of months to be added | - * | weeks | Amount of weeks to be added | - * | days | Amount of days to be added | - * | hours | Amount of hours to be added | - * | minutes | Amount of minutes to be added | - * | seconds | Amount of seconds to be added | - * - * All values default to 0 + * @param duration - The object with years, months, weeks, days, hours, minutes, and seconds to be added. + * @param options - An object with options * * @returns The new date with the seconds added * @@ -38,27 +34,40 @@ import type { Duration } from '../types'; * months: 9, * weeks: 1, * days: 7, - * hours: 5,\\-7 + * hours: 5, * minutes: 9, * seconds: 30, * }) * //=> Thu Jun 15 2017 15:29:20 */ -export function add(date: DateType | number | string, duration: Duration): DateType { - const { years = 0, months = 0, weeks = 0, days = 0, hours = 0, minutes = 0, seconds = 0 } = duration; +export function add( + date: DateArg, + duration: Duration, + options?: AddOptions | undefined, +): ResultDate { + const { + years = 0, + months = 0, + weeks = 0, + days = 0, + hours = 0, + minutes = 0, + seconds = 0, + } = duration; // Add years and months - const _date = toDate(date); - const dateWithMonths = months || years ? addMonths(_date, months + years * 12) : _date; + const _date = toDate(date, options?.in); + const dateWithMonths = + months || years ? addMonths(_date, months + years * 12) : _date; // Add weeks and days - const dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths; + const dateWithDays = + days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths; - // Add days, hours, minutes and seconds + // Add days, hours, minutes, and seconds const minutesToAdd = minutes + hours * 60; const secondsToAdd = seconds + minutesToAdd * 60; const msToAdd = secondsToAdd * 1000; - const finalDate = constructFrom(date, dateWithDays.getTime() + msToAdd); - return finalDate; + return constructFrom(options?.in || date, +dateWithDays + msToAdd); } diff --git a/src/date-fns/addBusinessDays/index.ts b/src/date-fns/addBusinessDays/index.ts index 704f389..d543b9f 100644 --- a/src/date-fns/addBusinessDays/index.ts +++ b/src/date-fns/addBusinessDays/index.ts @@ -1,21 +1,30 @@ -import { constructFrom } from '../constructFrom/index'; -import { isSaturday } from '../isSaturday/index'; -import { isSunday } from '../isSunday/index'; -import { isWeekend } from '../isWeekend/index'; -import { toDate } from '../toDate/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { isSaturday } from "../isSaturday/index.ts"; +import { isSunday } from "../isSunday/index.ts"; +import { isWeekend } from "../isWeekend/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link addBusinessDays} function options. + */ +export interface AddBusinessDaysOptions + extends ContextOptions {} /** * @name addBusinessDays - * @category Date Extension Helpers + * @category Day Helpers * @summary Add the specified number of business days (mon - fri) to the given date. * * @description * Add the specified number of business days (mon - fri) to the given date, ignoring weekends. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The date to be changed * @param amount - The amount of business days to be added. + * @param options - An object with options * * @returns The new date with the business days added * @@ -24,11 +33,18 @@ import { toDate } from '../toDate/index'; * const result = addBusinessDays(new Date(2014, 8, 1), 10) * //=> Mon Sep 15 2014 00:00:00 (skipped weekend days) */ -export function addBusinessDays(date: DateType | number | string, amount: number): DateType { - const _date = toDate(date); - const startedOnWeekend = isWeekend(_date); +export function addBusinessDays< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + amount: number, + options?: AddBusinessDaysOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); + const startedOnWeekend = isWeekend(_date, options); - if (isNaN(amount)) return constructFrom(date, NaN); + if (isNaN(amount)) return constructFrom(options?.in, NaN); const hours = _date.getHours(); const sign = amount < 0 ? -1 : 1; @@ -42,17 +58,19 @@ export function addBusinessDays(date: DateType | number | // Loops over remaining days while (restDays > 0) { _date.setDate(_date.getDate() + sign); - if (!isWeekend(_date)) restDays -= 1; + if (!isWeekend(_date, options)) restDays -= 1; } // If the date is a weekend day and we reduce a dividable of // 5 from it, we land on a weekend date. // To counter this, we add days accordingly to land on the next business day - if (startedOnWeekend && isWeekend(_date) && amount !== 0) { + if (startedOnWeekend && isWeekend(_date, options) && amount !== 0) { // If we're reducing days, we want to add days until we land on a weekday // If we're adding days we want to reduce days until we land on a weekday - if (isSaturday(_date)) _date.setDate(_date.getDate() + (sign < 0 ? 2 : -1)); - if (isSunday(_date)) _date.setDate(_date.getDate() + (sign < 0 ? 1 : -2)); + if (isSaturday(_date, options)) + _date.setDate(_date.getDate() + (sign < 0 ? 2 : -1)); + if (isSunday(_date, options)) + _date.setDate(_date.getDate() + (sign < 0 ? 1 : -2)); } // Restore hours to avoid DST lag diff --git a/src/date-fns/addDays/index.ts b/src/date-fns/addDays/index.ts index bdcebd1..c88ed1b 100644 --- a/src/date-fns/addDays/index.ts +++ b/src/date-fns/addDays/index.ts @@ -1,5 +1,12 @@ -import { toDate } from '../toDate/index'; -import { constructFrom } from '../constructFrom/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link addDays} function options. + */ +export interface AddDaysOptions + extends ContextOptions {} /** * @name addDays @@ -10,9 +17,11 @@ import { constructFrom } from '../constructFrom/index'; * Add the specified number of days to the given date. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The date to be changed * @param amount - The amount of days to be added. + * @param options - An object with options * * @returns The new date with the days added * @@ -21,13 +30,20 @@ import { constructFrom } from '../constructFrom/index'; * const result = addDays(new Date(2014, 8, 1), 10) * //=> Thu Sep 11 2014 00:00:00 */ -export function addDays(date: DateType | number | string, amount: number): DateType { - const _date = toDate(date); - if (isNaN(amount)) return constructFrom(date, NaN); - if (!amount) { - // If 0 days, no-op to avoid changing times in the hour before end of DST - return _date; - } +export function addDays< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + amount: number, + options?: AddDaysOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); + if (isNaN(amount)) return constructFrom(options?.in || date, NaN); + + // If 0 days, no-op to avoid changing times in the hour before end of DST + if (!amount) return _date; + _date.setDate(_date.getDate() + amount); return _date; -} +} \ No newline at end of file diff --git a/src/date-fns/addHours/index.ts b/src/date-fns/addHours/index.ts index 7fe9a7a..8387164 100644 --- a/src/date-fns/addHours/index.ts +++ b/src/date-fns/addHours/index.ts @@ -1,5 +1,12 @@ -import { addMilliseconds } from '../addMilliseconds/index'; -import { millisecondsInHour } from '../constants/index'; +import { addMilliseconds } from "../addMilliseconds/index.ts"; +import { millisecondsInHour } from "../constants/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link addHours} function options. + */ +export interface AddHoursOptions + extends ContextOptions {} /** * @name addHours @@ -10,9 +17,11 @@ import { millisecondsInHour } from '../constants/index'; * Add the specified number of hours to the given date. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The date to be changed - * @param amount - The amount of hours to be added. + * @param amount - The amount of hours to be added + * @param options - An object with options * * @returns The new date with the hours added * @@ -21,6 +30,13 @@ import { millisecondsInHour } from '../constants/index'; * const result = addHours(new Date(2014, 6, 10, 23, 0), 2) * //=> Fri Jul 11 2014 01:00:00 */ -export function addHours(date: DateType | number | string, amount: number): DateType { - return addMilliseconds(date, amount * millisecondsInHour); +export function addHours< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + amount: number, + options?: AddHoursOptions | undefined, +): ResultDate { + return addMilliseconds(date, amount * millisecondsInHour, options); } diff --git a/src/date-fns/addISOWeekYears/index.ts b/src/date-fns/addISOWeekYears/index.ts index eaadf39..1a7633d 100644 --- a/src/date-fns/addISOWeekYears/index.ts +++ b/src/date-fns/addISOWeekYears/index.ts @@ -1,5 +1,12 @@ -import { getISOWeekYear } from '../getISOWeekYear/index'; -import { setISOWeekYear } from '../setISOWeekYear/index'; +import { getISOWeekYear } from "../getISOWeekYear/index.ts"; +import { setISOWeekYear } from "../setISOWeekYear/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link addISOWeekYears} function options. + */ +export interface AddISOWeekYearsOptions + extends ContextOptions {} /** * @name addISOWeekYears @@ -15,14 +22,22 @@ import { setISOWeekYear } from '../setISOWeekYear/index'; * * @param date - The date to be changed * @param amount - The amount of ISO week-numbering years to be added. + * @param options - An object with options * * @returns The new date with the ISO week-numbering years added * * @example * // Add 5 ISO week-numbering years to 2 July 2010: * const result = addISOWeekYears(new Date(2010, 6, 2), 5) - * //=> Fri Jn 26 2015 00:00:00 + * //=> Fri Jun 26 2015 00:00:00 */ -export function addISOWeekYears(date: DateType | number | string, amount: number): DateType { - return setISOWeekYear(date, getISOWeekYear(date) + amount); +export function addISOWeekYears< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + amount: number, + options?: AddISOWeekYearsOptions | undefined, +): ResultDate { + return setISOWeekYear(date, getISOWeekYear(date, options) + amount, options); } diff --git a/src/date-fns/addMilliseconds/index.ts b/src/date-fns/addMilliseconds/index.ts index db8d4f0..0b5ee23 100644 --- a/src/date-fns/addMilliseconds/index.ts +++ b/src/date-fns/addMilliseconds/index.ts @@ -1,5 +1,11 @@ -import { toDate } from '../toDate/index'; -import { constructFrom } from '../constructFrom/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; +/** + * The {@link addMilliseconds} function options. + */ +export interface AddMillisecondsOptions + extends ContextOptions {} /** * @name addMilliseconds @@ -10,9 +16,11 @@ import { constructFrom } from '../constructFrom/index'; * Add the specified number of milliseconds to the given date. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The date to be changed * @param amount - The amount of milliseconds to be added. + * @param options - The options object * * @returns The new date with the milliseconds added * @@ -21,7 +29,13 @@ import { constructFrom } from '../constructFrom/index'; * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750) * //=> Thu Jul 10 2014 12:45:30.750 */ -export function addMilliseconds(date: DateType | number | string, amount: number): DateType { - const timestamp = +toDate(date); - return constructFrom(date, timestamp + amount); +export function addMilliseconds< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + amount: number, + options?: AddMillisecondsOptions | undefined, +): ResultDate { + return constructFrom(options?.in || date, +toDate(date) + amount); } diff --git a/src/date-fns/addMinutes/index.ts b/src/date-fns/addMinutes/index.ts index 26212e2..8ccb5ee 100644 --- a/src/date-fns/addMinutes/index.ts +++ b/src/date-fns/addMinutes/index.ts @@ -1,5 +1,12 @@ -import { addMilliseconds } from '../addMilliseconds/index'; -import { millisecondsInMinute } from '../constants/index'; +import { millisecondsInMinute } from "../constants/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link addMinutes} function options. + */ +export interface AddMinutesOptions + extends ContextOptions {} /** * @name addMinutes @@ -10,9 +17,11 @@ import { millisecondsInMinute } from '../constants/index'; * Add the specified number of minutes to the given date. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The date to be changed * @param amount - The amount of minutes to be added. + * @param options - An object with options * * @returns The new date with the minutes added * @@ -21,6 +30,15 @@ import { millisecondsInMinute } from '../constants/index'; * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30) * //=> Thu Jul 10 2014 12:30:00 */ -export function addMinutes(date: DateType | number | string, amount: number): DateType { - return addMilliseconds(date, amount * millisecondsInMinute); +export function addMinutes< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + amount: number, + options?: AddMinutesOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); + _date.setTime(_date.getTime() + amount * millisecondsInMinute); + return _date; } diff --git a/src/date-fns/addMonths/index.ts b/src/date-fns/addMonths/index.ts index a03d273..b329eaa 100644 --- a/src/date-fns/addMonths/index.ts +++ b/src/date-fns/addMonths/index.ts @@ -1,5 +1,12 @@ -import { toDate } from '../toDate/index'; -import { constructFrom } from '../constructFrom/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link addMonths} function options. + */ +export interface AddMonthsOptions + extends ContextOptions {} /** * @name addMonths @@ -10,9 +17,11 @@ import { constructFrom } from '../constructFrom/index'; * Add the specified number of months to the given date. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The date to be changed * @param amount - The amount of months to be added. + * @param options - The options object * * @returns The new date with the months added * @@ -25,9 +34,16 @@ import { constructFrom } from '../constructFrom/index'; * const result = addMonths(new Date(2023, 0, 30), 1) * //=> Tue Feb 28 2023 00:00:00 */ -export function addMonths(date: DateType | number | string, amount: number): DateType { - const _date = toDate(date); - if (isNaN(amount)) return constructFrom(date, NaN); +export function addMonths< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + amount: number, + options?: AddMonthsOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); + if (isNaN(amount)) return constructFrom(options?.in || date, NaN); if (!amount) { // If 0 months, no-op to avoid changing times in the hour before end of DST return _date; @@ -42,7 +58,7 @@ export function addMonths(date: DateType | number | strin // we'll default to the end of the desired month by adding 1 to the desired // month and using a date of 0 to back up one day to the end of the desired // month. - const endOfDesiredMonth = constructFrom(date, _date.getTime()); + const endOfDesiredMonth = constructFrom(options?.in || date, _date.getTime()); endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0); const daysInMonth = endOfDesiredMonth.getDate(); if (dayOfMonth >= daysInMonth) { @@ -57,7 +73,11 @@ export function addMonths(date: DateType | number | strin // the last day of the month and its local time was in the hour skipped or // repeated next to a DST transition. So we use `date` instead which is // guaranteed to still have the original time. - _date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth); + _date.setFullYear( + endOfDesiredMonth.getFullYear(), + endOfDesiredMonth.getMonth(), + dayOfMonth, + ); return _date; } } diff --git a/src/date-fns/addQuarters/index.ts b/src/date-fns/addQuarters/index.ts index 93fa3c9..839e970 100644 --- a/src/date-fns/addQuarters/index.ts +++ b/src/date-fns/addQuarters/index.ts @@ -1,4 +1,11 @@ -import { addMonths } from '../addMonths/index'; +import { addMonths } from "../addMonths/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link addQuarters} function options. + */ +export interface AddQuartersOptions + extends ContextOptions {} /** * @name addQuarters @@ -9,18 +16,26 @@ import { addMonths } from '../addMonths/index'; * Add the specified number of year quarters to the given date. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The date to be changed * @param amount - The amount of quarters to be added. + * @param options - An object with options * * @returns The new date with the quarters added * * @example * // Add 1 quarter to 1 September 2014: * const result = addQuarters(new Date(2014, 8, 1), 1) - * //=> Mon Dec 01 2014 00:00:00 + * //=; Mon Dec 01 2014 00:00:00 */ -export function addQuarters(date: DateType | number | string, amount: number): DateType { - const months = amount * 3; - return addMonths(date, months); +export function addQuarters< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + amount: number, + options?: AddQuartersOptions | undefined, +): ResultDate { + return addMonths(date, amount * 3, options); } diff --git a/src/date-fns/addSeconds/index.ts b/src/date-fns/addSeconds/index.ts index ccd74d5..d5f97e7 100644 --- a/src/date-fns/addSeconds/index.ts +++ b/src/date-fns/addSeconds/index.ts @@ -1,4 +1,11 @@ -import { addMilliseconds } from '../addMilliseconds/index'; +import { addMilliseconds } from "../addMilliseconds/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link addSeconds} function options. + */ +export interface AddSecondsOptions + extends ContextOptions {} /** * @name addSeconds @@ -9,9 +16,11 @@ import { addMilliseconds } from '../addMilliseconds/index'; * Add the specified number of seconds to the given date. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The date to be changed * @param amount - The amount of seconds to be added. + * @param options - An object with options * * @returns The new date with the seconds added * @@ -20,6 +29,13 @@ import { addMilliseconds } from '../addMilliseconds/index'; * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30) * //=> Thu Jul 10 2014 12:45:30 */ -export function addSeconds(date: DateType | number | string, amount: number): DateType { - return addMilliseconds(date, amount * 1000); +export function addSeconds< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + amount: number, + options?: AddSecondsOptions | undefined, +): ResultDate { + return addMilliseconds(date, amount * 1000, options); } diff --git a/src/date-fns/addWeeks/index.ts b/src/date-fns/addWeeks/index.ts index 3b35c8a..653bc70 100644 --- a/src/date-fns/addWeeks/index.ts +++ b/src/date-fns/addWeeks/index.ts @@ -1,4 +1,11 @@ -import { addDays } from '../addDays/index'; +import { addDays } from "../addDays/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link addWeeks} function options. + */ +export interface AddWeeksOptions + extends ContextOptions {} /** * @name addWeeks @@ -6,12 +13,14 @@ import { addDays } from '../addDays/index'; * @summary Add the specified number of weeks to the given date. * * @description - * Add the specified number of week to the given date. + * Add the specified number of weeks to the given date. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The date to be changed * @param amount - The amount of weeks to be added. + * @param options - An object with options * * @returns The new date with the weeks added * @@ -20,7 +29,13 @@ import { addDays } from '../addDays/index'; * const result = addWeeks(new Date(2014, 8, 1), 4) * //=> Mon Sep 29 2014 00:00:00 */ -export function addWeeks(date: DateType | number | string, amount: number): DateType { - const days = amount * 7; - return addDays(date, days); +export function addWeeks< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + amount: number, + options?: AddWeeksOptions | undefined, +): ResultDate { + return addDays(date, amount * 7, options); } diff --git a/src/date-fns/addYears/index.ts b/src/date-fns/addYears/index.ts index 5de63d4..de4256b 100644 --- a/src/date-fns/addYears/index.ts +++ b/src/date-fns/addYears/index.ts @@ -1,4 +1,11 @@ -import { addMonths } from '../addMonths/index'; +import { addMonths } from "../addMonths/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link addYears} function options. + */ +export interface AddYearsOptions + extends ContextOptions {} /** * @name addYears @@ -9,9 +16,11 @@ import { addMonths } from '../addMonths/index'; * Add the specified number of years to the given date. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type. * * @param date - The date to be changed * @param amount - The amount of years to be added. + * @param options - The options * * @returns The new date with the years added * @@ -20,6 +29,13 @@ import { addMonths } from '../addMonths/index'; * const result = addYears(new Date(2014, 8, 1), 5) * //=> Sun Sep 01 2019 00:00:00 */ -export function addYears(date: DateType | number | string, amount: number): DateType { - return addMonths(date, amount * 12); +export function addYears< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + amount: number, + options?: AddYearsOptions | undefined, +): ResultDate { + return addMonths(date, amount * 12, options); } diff --git a/src/date-fns/areIntervalsOverlapping/index.ts b/src/date-fns/areIntervalsOverlapping/index.ts index d34be32..bdbea5e 100644 --- a/src/date-fns/areIntervalsOverlapping/index.ts +++ b/src/date-fns/areIntervalsOverlapping/index.ts @@ -1,10 +1,10 @@ -import { toDate } from '../toDate/index'; -import type { Interval } from '../types'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, Interval } from "../types.ts"; /** * The {@link areIntervalsOverlapping} function options. */ -export interface AreIntervalsOverlappingOptions { +export interface AreIntervalsOverlappingOptions extends ContextOptions { /** Whether the comparison is inclusive or not */ inclusive?: boolean; } @@ -51,13 +51,6 @@ export interface AreIntervalsOverlappingOptions { * // Using the inclusive option: * areIntervalsOverlapping( * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) }, - * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) } - * ) - * //=> false - * - * @example - * areIntervalsOverlapping( - * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) }, * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) }, * { inclusive: true } * ) @@ -68,12 +61,17 @@ export function areIntervalsOverlapping( intervalRight: Interval, options?: AreIntervalsOverlappingOptions, ): boolean { - const [leftStartTime, leftEndTime] = [+toDate(intervalLeft.start), +toDate(intervalLeft.end)].sort((a, b) => a - b); - const [rightStartTime, rightEndTime] = [+toDate(intervalRight.start), +toDate(intervalRight.end)].sort( - (a, b) => a - b, - ); + const [leftStartTime, leftEndTime] = [ + +toDate(intervalLeft.start, options?.in), + +toDate(intervalLeft.end, options?.in), + ].sort((a, b) => a - b); + const [rightStartTime, rightEndTime] = [ + +toDate(intervalRight.start, options?.in), + +toDate(intervalRight.end, options?.in), + ].sort((a, b) => a - b); - if (options?.inclusive) return leftStartTime! <= rightEndTime! && rightStartTime! <= leftEndTime!; + if (options?.inclusive) + return leftStartTime <= rightEndTime && rightStartTime <= leftEndTime; - return leftStartTime! < rightEndTime! && rightStartTime! < leftEndTime!; + return leftStartTime < rightEndTime && rightStartTime < leftEndTime; } diff --git a/src/date-fns/clamp/index.ts b/src/date-fns/clamp/index.ts index 42f91c5..3f72b6b 100644 --- a/src/date-fns/clamp/index.ts +++ b/src/date-fns/clamp/index.ts @@ -1,11 +1,39 @@ -import { max } from '../max/index'; -import { min } from '../min/index'; -import type { Interval } from '../types'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { max } from "../max/index.ts"; +import { min } from "../min/index.ts"; +import type { ContextOptions, DateArg, Interval } from "../types.ts"; + +/** + * The {@link clamp} function options. + */ +export interface ClampOptions + extends ContextOptions {} + +/** + * The {@link clamp} function result type. It resolves the proper data type. + * It uses the first argument date object type, starting from the date argument, + * then the start interval date, and finally the end interval date. If + * a context function is passed, it uses the context function return type. + */ +export type ClampResult< + DateType extends DateArg, + IntervalType extends Interval, + Options extends ClampOptions | undefined, +> = + Options extends ClampOptions + ? DateType + : DateType extends Date + ? DateType + : IntervalType["start"] extends Date + ? IntervalType["start"] + : IntervalType["end"] extends Date + ? IntervalType["end"] + : Date; /** * @name clamp * @category Interval Helpers - * @summary Return a date bounded by the start and the end of the given interval + * @summary Return a date bounded by the start and the end of the given interval. * * @description * Clamps a date to the lower bound with the start of the interval and the upper @@ -15,21 +43,43 @@ import type { Interval } from '../types'; * - When the date is greater than the end of the interval, the end is returned. * - Otherwise the date is returned. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam DateType - Date argument type. + * @typeParam IntervalType - Interval argument type. + * @typeParam Options - Options type. * * @param date - The date to be bounded * @param interval - The interval to bound to + * @param options - An object with options * * @returns The date bounded by the start and the end of the interval * * @example - * // What is Mar, 21, 2021 bounded to an interval starting at Mar, 22, 2021 and ending at Apr, 01, 2021 + * // What is Mar 21, 2021 bounded to an interval starting at Mar 22, 2021 and ending at Apr 01, 2021 * const result = clamp(new Date(2021, 2, 21), { * start: new Date(2021, 2, 22), * end: new Date(2021, 3, 1), * }) * //=> Mon Mar 22 2021 00:00:00 */ -export function clamp(date: DateType | number | string, interval: Interval): DateType | Date { - return min([max([date, interval.start]), interval.end]); +export function clamp< + DateType extends DateArg, + IntervalType extends Interval, + Options extends ClampOptions | undefined = undefined, +>( + date: DateType, + interval: IntervalType, + options?: Options, +): ClampResult { + const [date_, start, end] = normalizeDates( + options?.in, + date, + interval.start, + interval.end, + ); + + return min([max([date_, start], options), end], options) as ClampResult< + DateType, + IntervalType, + Options + >; } diff --git a/src/date-fns/closestIndexTo/index.ts b/src/date-fns/closestIndexTo/index.ts index 39f8ec7..d16c547 100644 --- a/src/date-fns/closestIndexTo/index.ts +++ b/src/date-fns/closestIndexTo/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name closestIndexTo @@ -8,8 +9,6 @@ import { toDate } from '../toDate/index'; * @description * Return an index of the closest date from the array comparing to the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param dateToCompare - The date to compare with * @param dates - The array to search * @@ -26,28 +25,29 @@ import { toDate } from '../toDate/index'; * const result = closestIndexTo(dateToCompare, datesArray) * //=> 1 */ -export function closestIndexTo( - dateToCompare: DateType | number | string, - dates: Array, +export function closestIndexTo( + dateToCompare: DateArg & {}, + dates: Array & {}>, ): number | undefined { - const date = toDate(dateToCompare); - - if (isNaN(Number(date))) return NaN; + // [TODO] It would be better to return -1 here rather than undefined, as this + // is how JS behaves, but it would be a breaking change, so we need + // to consider it for v4. + const timeToCompare = +toDate(dateToCompare); - const timeToCompare = date.getTime(); + if (isNaN(timeToCompare)) return NaN; let result: number | undefined; let minDistance: number; - dates.forEach(function (dirtyDate, index) { - const currentDate = toDate(dirtyDate); + dates.forEach((date, index) => { + const date_ = toDate(date); - if (isNaN(Number(currentDate))) { + if (isNaN(+date_)) { result = NaN; minDistance = NaN; return; } - const distance = Math.abs(timeToCompare - currentDate.getTime()); + const distance = Math.abs(timeToCompare - +date_); if (result == null || distance < minDistance) { result = index; minDistance = distance; diff --git a/src/date-fns/closestTo/index.ts b/src/date-fns/closestTo/index.ts index c5a86ed..85a7c27 100644 --- a/src/date-fns/closestTo/index.ts +++ b/src/date-fns/closestTo/index.ts @@ -1,5 +1,32 @@ -import { constructFrom } from '../constructFrom/index'; -import { toDate } from '../toDate/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { closestIndexTo } from "../closestIndexTo/index.ts"; +import { constructFrom } from "../constructFrom/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link closestTo} function options. + */ +export interface ClosestToOptions + extends ContextOptions {} + +/** + * The {@link closestTo} function result type. It resolves the proper data type. + * It uses the first argument date object type, starting from the date argument, + * then the start interval date, and finally the end interval date. If + * a context function is passed, it uses the context function return type. + */ +export type ClosestToResult< + DateToCompare extends DateArg, + DatesType extends DateArg[], + Options extends ClosestToOptions | undefined, +> = + Options extends ClosestToOptions + ? DateType + : DateToCompare extends Date + ? DateToCompare + : DatesType extends DateArg[] + ? DateType + : Date; /** * @name closestTo @@ -9,7 +36,9 @@ import { toDate } from '../toDate/index'; * @description * Return a date from the array closest to the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam DateToCompare - Date to compare argument type. + * @typeParam DatesType - Dates array argument type. + * @typeParam Options - Options type. * * @param dateToCompare - The date to compare with * @param dates - The array to search @@ -25,33 +54,30 @@ import { toDate } from '../toDate/index'; * ]) * //=> Tue Jan 01 2030 00:00:00 */ -export function closestTo( - dateToCompare: DateType | number | string, - dates: Array, -): DateType | undefined { - const date = toDate(dateToCompare); - - if (isNaN(Number(date))) return constructFrom(dateToCompare, NaN); - - const timeToCompare = date.getTime(); - - let result: DateType | undefined; - let minDistance: number; - dates.forEach((dirtyDate) => { - const currentDate = toDate(dirtyDate); +export function closestTo< + DateToCompare extends DateArg, + DatesType extends DateArg[], + Options extends ClosestToOptions | undefined = undefined, +>( + dateToCompare: DateToCompare, + dates: DatesType, + options?: Options | undefined, +): ClosestToResult | undefined { + const [dateToCompare_, ...dates_] = normalizeDates( + options?.in, + dateToCompare, + ...dates, + ); - if (isNaN(Number(currentDate))) { - result = constructFrom(dateToCompare, NaN); - minDistance = NaN; - return; - } + const index = closestIndexTo(dateToCompare_, dates_); - const distance = Math.abs(timeToCompare - currentDate.getTime()); - if (result == null || distance < minDistance) { - result = currentDate; - minDistance = distance; - } - }); + if (typeof index === "number" && isNaN(index)) + return constructFrom(dateToCompare_, NaN) as ClosestToResult< + DateToCompare, + DatesType, + Options + >; - return result; + if (index !== undefined) + return dates_[index] as ClosestToResult; } diff --git a/src/date-fns/compareAsc/index.ts b/src/date-fns/compareAsc/index.ts index 6d6a59d..c9b949c 100644 --- a/src/date-fns/compareAsc/index.ts +++ b/src/date-fns/compareAsc/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name compareAsc @@ -9,8 +10,6 @@ import { toDate } from '../toDate/index'; * Compare the two dates and return 1 if the first date is after the second, * -1 if the first date is before the second or 0 if dates are equal. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param dateLeft - The first date to compare * @param dateRight - The second date to compare * @@ -34,21 +33,15 @@ import { toDate } from '../toDate/index'; * // Sun Jul 02 1995 00:00:00 * // ] */ -export function compareAsc( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function compareAsc( + dateLeft: DateArg & {}, + dateRight: DateArg & {}, ): number { - const _dateLeft = toDate(dateLeft); - const _dateRight = toDate(dateRight); + const diff = +toDate(dateLeft) - +toDate(dateRight); - const diff = _dateLeft.getTime() - _dateRight.getTime(); + if (diff < 0) return -1; + else if (diff > 0) return 1; - if (diff < 0) { - return -1; - } else if (diff > 0) { - return 1; - // Return 0 if diff is 0; return NaN if diff is NaN - } else { - return diff; - } + // Return 0 if diff is 0; return NaN if diff is NaN + return diff; } diff --git a/src/date-fns/compareDesc/index.ts b/src/date-fns/compareDesc/index.ts index ac6d467..c6a4055 100644 --- a/src/date-fns/compareDesc/index.ts +++ b/src/date-fns/compareDesc/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name compareDesc @@ -9,8 +10,6 @@ import { toDate } from '../toDate/index'; * Compare the two dates and return -1 if the first date is after the second, * 1 if the first date is before the second or 0 if dates are equal. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param dateLeft - The first date to compare * @param dateRight - The second date to compare * @@ -34,21 +33,15 @@ import { toDate } from '../toDate/index'; * // Wed Feb 11 1987 00:00:00 * // ] */ -export function compareDesc( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function compareDesc( + dateLeft: DateArg & {}, + dateRight: DateArg & {}, ): number { - const _dateLeft = toDate(dateLeft); - const _dateRight = toDate(dateRight); + const diff = +toDate(dateLeft) - +toDate(dateRight); - const diff = _dateLeft.getTime() - _dateRight.getTime(); + if (diff > 0) return -1; + else if (diff < 0) return 1; - if (diff > 0) { - return -1; - } else if (diff < 0) { - return 1; - // Return 0 if diff is 0; return NaN if diff is NaN - } else { - return diff; - } + // Return 0 if diff is 0; return NaN if diff is NaN + return diff; } diff --git a/src/date-fns/constants/index.ts b/src/date-fns/constants/index.ts index 1453cf9..1d007f3 100644 --- a/src/date-fns/constants/index.ts +++ b/src/date-fns/constants/index.ts @@ -32,7 +32,7 @@ export const daysInWeek = 7; * * One years equals 365.2425 days according to the formula: * - * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400. + * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400. * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days */ export const daysInYear = 365.2425; @@ -201,3 +201,16 @@ export const secondsInMonth = secondsInYear / 12; * @summary Seconds in 1 quarter. */ export const secondsInQuarter = secondsInMonth * 3; + +/** + * @constant + * @name constructFromSymbol + * @summary Symbol enabling Date extensions to inherit properties from the reference date. + * + * The symbol is used to enable the `constructFrom` function to construct a date + * using a reference date and a value. It allows to transfer extra properties + * from the reference date to the new date. It's useful for extensions like + * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as + * a constructor argument. + */ +export const constructFromSymbol = Symbol.for("constructDateFrom"); diff --git a/src/date-fns/constructFrom/index.ts b/src/date-fns/constructFrom/index.ts index 413e120..ae070da 100644 --- a/src/date-fns/constructFrom/index.ts +++ b/src/date-fns/constructFrom/index.ts @@ -1,4 +1,10 @@ -import type { GenericDateConstructor } from '../types'; +import { constructFromSymbol } from "../constants/index.ts"; +import type { + ConstructableDate, + ContextFn, + DateArg, + GenericDateConstructor, +} from "../types.ts"; /** * @name constructFrom @@ -12,6 +18,11 @@ import type { GenericDateConstructor } from '../types'; * * It defaults to `Date` if the passed reference date is a number or a string. * + * Starting from v3.7.0, it allows to construct a date using `[Symbol.for("constructDateFrom")]` + * enabling to transfer extra properties from the reference date to the new date. + * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz) + * that accept a time zone as a constructor argument. + * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). * * @param date - The reference date to take constructor from @@ -20,23 +31,42 @@ import type { GenericDateConstructor } from '../types'; * @returns Date initialized using the given date and value * * @example - * import { constructFrom } from 'date-fns' + * import { constructFrom } from "date-fns"; * * // A function that clones a date preserving the original type - * function cloneDate(date: DateType): DateType { * return constructFrom( - * date, // Use contrustor from the given date + * date, // Use constructor from the given date * date.getTime() // Use the date value to create a new date - * ) + * ); * } */ -export function constructFrom( - date: DateType | number | string, - value: Date | number | string, -): DateType { +export function constructFrom< + DateType extends Date | ConstructableDate, + ResultDate extends Date = DateType, +>( + date: DateArg | ContextFn | undefined, + value: DateArg & {}, +): ResultDate { + if (typeof date === "function") return date(value); + + if (date && typeof date === "object" && constructFromSymbol in date) { + const dateToReturn = date[constructFromSymbol](value); + // [PATCH:] this hack is required because setHours doesn't work for hours that are spring-forward + if ((value as any)[Symbol.for('UTCHours')] !== undefined) { + (dateToReturn as any)[Symbol.for('UTCHours')] = (value as any)[Symbol.for('UTCHours')]; + } + return dateToReturn; + } + if (date instanceof Date) { - return new (date.constructor as GenericDateConstructor)(value); - } else { - return new Date(value) as DateType; + const dateToReturn = new (date.constructor as GenericDateConstructor)(value); + // [PATCH:] this hack is required because setHours doesn't work for hours that are spring-forward + if ((date as any)[Symbol.for('UTCHours')] !== undefined) { + (dateToReturn as any)[Symbol.for('UTCHours')] = (date as any)[Symbol.for('UTCHours')]; + } + return dateToReturn; } + + return new Date(value) as ResultDate; } diff --git a/src/date-fns/constructNow/index.ts b/src/date-fns/constructNow/index.ts index 77d7ea7..5d3afab 100644 --- a/src/date-fns/constructNow/index.ts +++ b/src/date-fns/constructNow/index.ts @@ -1,4 +1,5 @@ -import { constructFrom } from '../constructFrom/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import type { ContextFn, DateArg } from "../types.ts"; /** * @name constructNow @@ -13,8 +14,6 @@ import { constructFrom } from '../constructFrom/index'; * * It defaults to `Date` if the passed reference date is a number or a string. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The reference date to take constructor from * * @returns Current date initialized using the given date constructor @@ -23,13 +22,16 @@ import { constructFrom } from '../constructFrom/index'; * import { constructNow, isSameDay } from 'date-fns' * * function isToday( - * date: DateType | number | string, + * date: DateArg, * ): boolean { * // If we were to use `new Date()` directly, the function would behave * // differently in different timezones and return false for the same date. * return isSameDay(date, constructNow(date)); * } */ -export function constructNow(date: DateType | number | string): DateType { +export function constructNow< + DateType extends Date, + ResultDate extends Date = DateType, +>(date: DateArg | ContextFn | undefined): ResultDate { return constructFrom(date, Date.now()); } diff --git a/src/date-fns/daysToWeeks/index.ts b/src/date-fns/daysToWeeks/index.ts index e082edf..e3008f3 100644 --- a/src/date-fns/daysToWeeks/index.ts +++ b/src/date-fns/daysToWeeks/index.ts @@ -1,4 +1,4 @@ -import { daysInWeek } from '../constants/index'; +import { daysInWeek } from "../constants/index.ts"; /** * @name daysToWeeks @@ -8,8 +8,6 @@ import { daysInWeek } from '../constants/index'; * @description * Convert a number of days to a full number of weeks. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param days - The number of days to be converted * * @returns The number of days converted in weeks @@ -25,8 +23,7 @@ import { daysInWeek } from '../constants/index'; * //=> 1 */ export function daysToWeeks(days: number): number { - const weeks = days / daysInWeek; - const result = Math.trunc(weeks); + const result = Math.trunc(days / daysInWeek); // Prevent negative zero return result === 0 ? 0 : result; } diff --git a/src/date-fns/differenceInBusinessDays/index.ts b/src/date-fns/differenceInBusinessDays/index.ts index 649f707..36de3fd 100644 --- a/src/date-fns/differenceInBusinessDays/index.ts +++ b/src/date-fns/differenceInBusinessDays/index.ts @@ -1,9 +1,15 @@ -import { addDays } from '../addDays/index'; -import { differenceInCalendarDays } from '../differenceInCalendarDays/index'; -import { isSameDay } from '../isSameDay/index'; -import { isValid } from '../isValid/index'; -import { isWeekend } from '../isWeekend/index'; -import { toDate } from '../toDate/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { addDays } from "../addDays/index.ts"; +import { differenceInCalendarDays } from "../differenceInCalendarDays/index.ts"; +import { isSameDay } from "../isSameDay/index.ts"; +import { isValid } from "../isValid/index.ts"; +import { isWeekend } from "../isWeekend/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link differenceInBusinessDays} function options. + */ +export interface DifferenceInBusinessDaysOptions extends ContextOptions {} /** * @name differenceInBusinessDays @@ -12,14 +18,13 @@ import { toDate } from '../toDate/index'; * * @description * Get the number of business day periods between the given dates. - * Business days being days that arent in the weekend. + * Business days being days that aren't in the weekend. * Like `differenceInCalendarDays`, the function removes the times from * the dates before calculating the difference. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - An object with options * * @returns The number of business days * @@ -56,28 +61,31 @@ import { toDate } from '../toDate/index'; * ) * //=> 0 */ -export function differenceInBusinessDays( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInBusinessDays( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInBusinessDaysOptions | undefined, ): number { - const _dateLeft = toDate(dateLeft); - let _dateRight = toDate(dateRight); - - if (!isValid(_dateLeft) || !isValid(_dateRight)) return NaN; + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); - const calendarDifference = differenceInCalendarDays(_dateLeft, _dateRight); - const sign = calendarDifference < 0 ? -1 : 1; + if (!isValid(laterDate_) || !isValid(earlierDate_)) return NaN; - const weeks = Math.trunc(calendarDifference / 7); + const diff = differenceInCalendarDays(laterDate_, earlierDate_); + const sign = diff < 0 ? -1 : 1; + const weeks = Math.trunc(diff / 7); let result = weeks * 5; - _dateRight = addDays(_dateRight, weeks * 7); + let movingDate = addDays(earlierDate_, weeks * 7); // the loop below will run at most 6 times to account for the remaining days that don't makeup a full week - while (!isSameDay(_dateLeft, _dateRight)) { + while (!isSameDay(laterDate_, movingDate)) { // sign is used to account for both negative and positive differences - result += isWeekend(_dateRight) ? 0 : sign; - _dateRight = addDays(_dateRight, sign); + result += isWeekend(movingDate, options) ? 0 : sign; + movingDate = addDays(movingDate, sign); } // Prevent negative zero diff --git a/src/date-fns/differenceInCalendarDays/index.ts b/src/date-fns/differenceInCalendarDays/index.ts index 57f8700..8495475 100644 --- a/src/date-fns/differenceInCalendarDays/index.ts +++ b/src/date-fns/differenceInCalendarDays/index.ts @@ -1,6 +1,13 @@ -import { millisecondsInDay } from '../constants/index'; -import { startOfDay } from '../startOfDay/index'; -import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMilliseconds/index'; +import { getTimezoneOffsetInMilliseconds } from "../_lib/getTimezoneOffsetInMilliseconds/index.ts"; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { millisecondsInDay } from "../constants/index.ts"; +import { startOfDay } from "../startOfDay/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link differenceInCalendarDays} function options. + */ +export interface DifferenceInCalendarDaysOptions extends ContextOptions {} /** * @name differenceInCalendarDays @@ -11,10 +18,9 @@ import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMill * Get the number of calendar days between the given dates. This means that the times are removed * from the dates and then the difference in days is calculated. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - The options object * * @returns The number of calendar days * @@ -34,18 +40,27 @@ import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMill * ) * //=> 1 */ -export function differenceInCalendarDays( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInCalendarDays( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInCalendarDaysOptions | undefined, ): number { - const startOfDayLeft = startOfDay(dateLeft); - const startOfDayRight = startOfDay(dateRight); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + + const laterStartOfDay = startOfDay(laterDate_); + const earlierStartOfDay = startOfDay(earlierDate_); - const timestampLeft = +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft); - const timestampRight = +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight); + const laterTimestamp = + +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay); + const earlierTimestamp = + +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay); // Round the number of days to the nearest integer because the number of // milliseconds in a day is not constant (e.g. it's different in the week of // the daylight saving time clock shift). - return Math.round((timestampLeft - timestampRight) / millisecondsInDay); + return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay); } diff --git a/src/date-fns/differenceInCalendarISOWeekYears/index.ts b/src/date-fns/differenceInCalendarISOWeekYears/index.ts index 16a3bf8..3a5e482 100644 --- a/src/date-fns/differenceInCalendarISOWeekYears/index.ts +++ b/src/date-fns/differenceInCalendarISOWeekYears/index.ts @@ -1,4 +1,12 @@ -import { getISOWeekYear } from '../getISOWeekYear/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { getISOWeekYear } from "../getISOWeekYear/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link differenceInCalendarISOWeekYears} function options. + */ +export interface DifferenceInCalendarISOWeekYearsOptions + extends ContextOptions {} /** * @name differenceInCalendarISOWeekYears @@ -10,10 +18,9 @@ import { getISOWeekYear } from '../getISOWeekYear/index'; * * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - An object with options * * @returns The number of calendar ISO week-numbering years * @@ -25,9 +32,17 @@ import { getISOWeekYear } from '../getISOWeekYear/index'; * ) * //=> 2 */ -export function differenceInCalendarISOWeekYears( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInCalendarISOWeekYears( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInCalendarISOWeekYearsOptions | undefined, ): number { - return getISOWeekYear(dateLeft) - getISOWeekYear(dateRight); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + return ( + getISOWeekYear(laterDate_, options) - getISOWeekYear(earlierDate_, options) + ); } diff --git a/src/date-fns/differenceInCalendarISOWeeks/index.ts b/src/date-fns/differenceInCalendarISOWeeks/index.ts index a3f693a..f441e7c 100644 --- a/src/date-fns/differenceInCalendarISOWeeks/index.ts +++ b/src/date-fns/differenceInCalendarISOWeeks/index.ts @@ -1,6 +1,14 @@ -import { millisecondsInWeek } from '../constants/index'; -import { startOfISOWeek } from '../startOfISOWeek/index'; -import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMilliseconds/index'; +import { getTimezoneOffsetInMilliseconds } from "../_lib/getTimezoneOffsetInMilliseconds/index.ts"; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { millisecondsInWeek } from "../constants/index.ts"; +import { startOfISOWeek } from "../startOfISOWeek/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link differenceInCalendarISOWeeks} function options. + */ +export interface DifferenceInCalendarISOWeeksOptions + extends ContextOptions {} /** * @name differenceInCalendarISOWeeks @@ -12,10 +20,9 @@ import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMill * * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - An object with options * * @returns The number of calendar ISO weeks * @@ -23,19 +30,28 @@ import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMill * // How many calendar ISO weeks are between 6 July 2014 and 21 July 2014? * const result = differenceInCalendarISOWeeks( * new Date(2014, 6, 21), - * new Date(2014, 6, 6) - * ) + * new Date(2014, 6, 6), + * ); * //=> 3 */ -export function differenceInCalendarISOWeeks( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInCalendarISOWeeks( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInCalendarISOWeeksOptions | undefined, ): number { - const startOfISOWeekLeft = startOfISOWeek(dateLeft); - const startOfISOWeekRight = startOfISOWeek(dateRight); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + + const startOfISOWeekLeft = startOfISOWeek(laterDate_); + const startOfISOWeekRight = startOfISOWeek(earlierDate_); - const timestampLeft = +startOfISOWeekLeft - getTimezoneOffsetInMilliseconds(startOfISOWeekLeft); - const timestampRight = +startOfISOWeekRight - getTimezoneOffsetInMilliseconds(startOfISOWeekRight); + const timestampLeft = + +startOfISOWeekLeft - getTimezoneOffsetInMilliseconds(startOfISOWeekLeft); + const timestampRight = + +startOfISOWeekRight - getTimezoneOffsetInMilliseconds(startOfISOWeekRight); // Round the number of weeks to the nearest integer because the number of // milliseconds in a week is not constant (e.g. it's different in the week of diff --git a/src/date-fns/differenceInCalendarMonths/index.ts b/src/date-fns/differenceInCalendarMonths/index.ts index 8a34372..77bb847 100644 --- a/src/date-fns/differenceInCalendarMonths/index.ts +++ b/src/date-fns/differenceInCalendarMonths/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link differenceInCalendarMonths} function options. + */ +export interface DifferenceInCalendarMonthsOptions + extends ContextOptions {} /** * @name differenceInCalendarMonths @@ -8,10 +15,9 @@ import { toDate } from '../toDate/index'; * @description * Get the number of calendar months between the given dates. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - An object with options * * @returns The number of calendar months * @@ -23,15 +29,19 @@ import { toDate } from '../toDate/index'; * ) * //=> 8 */ -export function differenceInCalendarMonths( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInCalendarMonths( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInCalendarMonthsOptions | undefined, ): number { - const _dateLeft = toDate(dateLeft); - const _dateRight = toDate(dateRight); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); - const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear(); - const monthDiff = _dateLeft.getMonth() - _dateRight.getMonth(); + const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear(); + const monthsDiff = laterDate_.getMonth() - earlierDate_.getMonth(); - return yearDiff * 12 + monthDiff; + return yearsDiff * 12 + monthsDiff; } diff --git a/src/date-fns/differenceInCalendarQuarters/index.ts b/src/date-fns/differenceInCalendarQuarters/index.ts index b020e86..31813de 100644 --- a/src/date-fns/differenceInCalendarQuarters/index.ts +++ b/src/date-fns/differenceInCalendarQuarters/index.ts @@ -1,5 +1,12 @@ -import { getQuarter } from '../getQuarter/index'; -import { toDate } from '../toDate/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { getQuarter } from "../getQuarter/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link differenceInCalendarQuarters} function options. + */ +export interface DifferenceInCalendarQuartersOptions + extends ContextOptions {} /** * @name differenceInCalendarQuarters @@ -9,11 +16,10 @@ import { toDate } from '../toDate/index'; * @description * Get the number of calendar quarters between the given dates. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - An object with options * - * @param dateLeft - The later date - * @param dateRight - The earlier date - * @returns The number of calendar quarters * * @example @@ -24,15 +30,19 @@ import { toDate } from '../toDate/index'; * ) * //=> 3 */ -export function differenceInCalendarQuarters( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInCalendarQuarters( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInCalendarQuartersOptions | undefined, ): number { - const _dateLeft = toDate(dateLeft); - const _dateRight = toDate(dateRight); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); - const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear(); - const quarterDiff = getQuarter(_dateLeft) - getQuarter(_dateRight); + const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear(); + const quartersDiff = getQuarter(laterDate_) - getQuarter(earlierDate_); - return yearDiff * 4 + quarterDiff; + return yearsDiff * 4 + quartersDiff; } diff --git a/src/date-fns/differenceInCalendarWeeks/index.ts b/src/date-fns/differenceInCalendarWeeks/index.ts index 10cebdf..7025d61 100644 --- a/src/date-fns/differenceInCalendarWeeks/index.ts +++ b/src/date-fns/differenceInCalendarWeeks/index.ts @@ -1,12 +1,21 @@ -import { millisecondsInWeek } from '../constants/index'; -import { startOfWeek } from '../startOfWeek/index'; -import type { LocalizedOptions, WeekOptions } from '../types'; -import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMilliseconds/index'; +import { getTimezoneOffsetInMilliseconds } from "../_lib/getTimezoneOffsetInMilliseconds/index.ts"; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { millisecondsInWeek } from "../constants/index.ts"; +import { startOfWeek } from "../startOfWeek/index.ts"; +import type { + ContextOptions, + DateArg, + LocalizedOptions, + WeekOptions, +} from "../types.ts"; /** * The {@link differenceInCalendarWeeks} function options. */ -export interface DifferenceInCalendarWeeksOptions extends LocalizedOptions<'options'>, WeekOptions {} +export interface DifferenceInCalendarWeeksOptions + extends LocalizedOptions<"options">, + WeekOptions, + ContextOptions {} /** * @name differenceInCalendarWeeks @@ -16,10 +25,8 @@ export interface DifferenceInCalendarWeeksOptions extends LocalizedOptions<'opti * @description * Get the number of calendar weeks between the given dates. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date * @param options - An object with options. * * @returns The number of calendar weeks @@ -42,19 +49,24 @@ export interface DifferenceInCalendarWeeksOptions extends LocalizedOptions<'opti * ) * //=> 2 */ -export function differenceInCalendarWeeks( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, - options?: DifferenceInCalendarWeeksOptions, +export function differenceInCalendarWeeks( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInCalendarWeeksOptions | undefined, ): number { - const startOfWeekLeft = startOfWeek(dateLeft, options); - const startOfWeekRight = startOfWeek(dateRight, options); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + + const laterStartOfWeek = startOfWeek(laterDate_, options); + const earlierStartOfWeek = startOfWeek(earlierDate_, options); - const timestampLeft = +startOfWeekLeft - getTimezoneOffsetInMilliseconds(startOfWeekLeft); - const timestampRight = +startOfWeekRight - getTimezoneOffsetInMilliseconds(startOfWeekRight); + const laterTimestamp = + +laterStartOfWeek - getTimezoneOffsetInMilliseconds(laterStartOfWeek); + const earlierTimestamp = + +earlierStartOfWeek - getTimezoneOffsetInMilliseconds(earlierStartOfWeek); - // Round the number of days to the nearest integer because the number of - // milliseconds in a days is not constant (e.g. it's different in the week of - // the daylight saving time clock shift). - return Math.round((timestampLeft - timestampRight) / millisecondsInWeek); + return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInWeek); } diff --git a/src/date-fns/differenceInCalendarYears/index.ts b/src/date-fns/differenceInCalendarYears/index.ts index 34ef33e..ef87cd1 100644 --- a/src/date-fns/differenceInCalendarYears/index.ts +++ b/src/date-fns/differenceInCalendarYears/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link differenceInCalendarYears} function options. + */ +export interface DifferenceInCalendarYearsOptions + extends ContextOptions {} /** * @name differenceInCalendarYears @@ -8,10 +15,9 @@ import { toDate } from '../toDate/index'; * @description * Get the number of calendar years between the given dates. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - An object with options * @returns The number of calendar years * @@ -20,15 +26,18 @@ import { toDate } from '../toDate/index'; * const result = differenceInCalendarYears( * new Date(2015, 1, 11), * new Date(2013, 11, 31) - * ) + * ); * //=> 2 */ -export function differenceInCalendarYears( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInCalendarYears( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInCalendarYearsOptions | undefined, ): number { - const _dateLeft = toDate(dateLeft); - const _dateRight = toDate(dateRight); - - return _dateLeft.getFullYear() - _dateRight.getFullYear(); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + return laterDate_.getFullYear() - earlierDate_.getFullYear(); } diff --git a/src/date-fns/differenceInDays/index.ts b/src/date-fns/differenceInDays/index.ts index 88b1bf6..626a6dd 100644 --- a/src/date-fns/differenceInDays/index.ts +++ b/src/date-fns/differenceInDays/index.ts @@ -1,5 +1,11 @@ -import { differenceInCalendarDays } from '../differenceInCalendarDays/index'; -import { toDate } from '../toDate/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { differenceInCalendarDays } from "../differenceInCalendarDays/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link differenceInDays} function options. + */ +export interface DifferenceInDaysOptions extends ContextOptions {} /** * @name differenceInDays @@ -17,10 +23,9 @@ import { toDate } from '../toDate/index'; * To ignore DST and only measure exact 24-hour periods, use this instead: * `Math.trunc(differenceInHours(dateLeft, dateRight)/24)|0`. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - An object with options * * @returns The number of full days according to the local timezone * @@ -55,21 +60,30 @@ import { toDate } from '../toDate/index'; * ) * //=> 92 */ -export function differenceInDays( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInDays( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInDaysOptions | undefined, ): number { - const _dateLeft = toDate(dateLeft); - const _dateRight = toDate(dateRight); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); - const sign = compareLocalAsc(_dateLeft, _dateRight); - const difference = Math.abs(differenceInCalendarDays(_dateLeft, _dateRight)); + const sign = compareLocalAsc(laterDate_, earlierDate_); + const difference = Math.abs( + differenceInCalendarDays(laterDate_, earlierDate_), + ); - _dateLeft.setDate(_dateLeft.getDate() - sign * difference); + laterDate_.setDate(laterDate_.getDate() - sign * difference); // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full // If so, result must be decreased by 1 in absolute value - const isLastDayNotFull = Number(compareLocalAsc(_dateLeft, _dateRight) === -sign); + const isLastDayNotFull = Number( + compareLocalAsc(laterDate_, earlierDate_) === -sign, + ); + const result = sign * (difference - isLastDayNotFull); // Prevent negative zero return result === 0 ? 0 : result; @@ -79,22 +93,19 @@ export function differenceInDays( // for accurate equality comparisons of UTC timestamps that end up // having the same representation in local time, e.g. one hour before // DST ends vs. the instant that DST ends. -function compareLocalAsc(dateLeft: DateType, dateRight: DateType): number { +function compareLocalAsc(laterDate: Date, earlierDate: Date): number { const diff = - dateLeft.getFullYear() - dateRight.getFullYear() || - dateLeft.getMonth() - dateRight.getMonth() || - dateLeft.getDate() - dateRight.getDate() || - dateLeft.getHours() - dateRight.getHours() || - dateLeft.getMinutes() - dateRight.getMinutes() || - dateLeft.getSeconds() - dateRight.getSeconds() || - dateLeft.getMilliseconds() - dateRight.getMilliseconds(); + laterDate.getFullYear() - earlierDate.getFullYear() || + laterDate.getMonth() - earlierDate.getMonth() || + laterDate.getDate() - earlierDate.getDate() || + laterDate.getHours() - earlierDate.getHours() || + laterDate.getMinutes() - earlierDate.getMinutes() || + laterDate.getSeconds() - earlierDate.getSeconds() || + laterDate.getMilliseconds() - earlierDate.getMilliseconds(); + + if (diff < 0) return -1; + if (diff > 0) return 1; - if (diff < 0) { - return -1; - } else if (diff > 0) { - return 1; - // Return 0 if diff is 0; return NaN if diff is NaN - } else { - return diff; - } + // Return 0 if diff is 0; return NaN if diff is NaN + return diff; } diff --git a/src/date-fns/differenceInHours/index.ts b/src/date-fns/differenceInHours/index.ts index 7cbba50..c5f29b9 100644 --- a/src/date-fns/differenceInHours/index.ts +++ b/src/date-fns/differenceInHours/index.ts @@ -1,12 +1,14 @@ -import { getRoundingMethod } from '../_lib/getRoundingMethod/index'; -import { millisecondsInHour } from '../constants/index'; -import { differenceInMilliseconds } from '../differenceInMilliseconds/index'; -import type { RoundingOptions } from '../types'; +import { getRoundingMethod } from "../_lib/getRoundingMethod/index.ts"; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { millisecondsInHour } from "../constants/index.ts"; +import type { ContextOptions, DateArg, RoundingOptions } from "../types.ts"; /** * The {@link differenceInHours} function options. */ -export interface DifferenceInHoursOptions extends RoundingOptions {} +export interface DifferenceInHoursOptions + extends RoundingOptions, + ContextOptions {} /** * @name differenceInHours @@ -16,10 +18,8 @@ export interface DifferenceInHoursOptions extends RoundingOptions {} * @description * Get the number of hours between the given dates. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date * @param options - An object with options. * * @returns The number of hours @@ -32,11 +32,16 @@ export interface DifferenceInHoursOptions extends RoundingOptions {} * ) * //=> 12 */ -export function differenceInHours( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInHours( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, options?: DifferenceInHoursOptions, ): number { - const diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInHour; + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + const diff = (+laterDate_ - +earlierDate_) / millisecondsInHour; return getRoundingMethod(options?.roundingMethod)(diff); } diff --git a/src/date-fns/differenceInISOWeekYears/index.ts b/src/date-fns/differenceInISOWeekYears/index.ts index 9426285..0999a10 100644 --- a/src/date-fns/differenceInISOWeekYears/index.ts +++ b/src/date-fns/differenceInISOWeekYears/index.ts @@ -1,7 +1,13 @@ -import { compareAsc } from '../compareAsc/index'; -import { differenceInCalendarISOWeekYears } from '../differenceInCalendarISOWeekYears/index'; -import { subISOWeekYears } from '../subISOWeekYears/index'; -import { toDate } from '../toDate/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { compareAsc } from "../compareAsc/index.ts"; +import { differenceInCalendarISOWeekYears } from "../differenceInCalendarISOWeekYears/index.ts"; +import { subISOWeekYears } from "../subISOWeekYears/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link differenceInISOWeekYears} function options. + */ +export interface DifferenceInISOWeekYearsOptions extends ContextOptions {} /** * @name differenceInISOWeekYears @@ -13,10 +19,9 @@ import { toDate } from '../toDate/index'; * * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - The options * * @returns The number of full ISO week-numbering years * @@ -26,24 +31,31 @@ import { toDate } from '../toDate/index'; * new Date(2012, 0, 1), * new Date(2010, 0, 1) * ) - * //=> 1 + * // => 1 */ -export function differenceInISOWeekYears( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInISOWeekYears( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInISOWeekYearsOptions | undefined, ): number { - let _dateLeft = toDate(dateLeft); - const _dateRight = toDate(dateRight); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + + const sign = compareAsc(laterDate_, earlierDate_); + const diff = Math.abs( + differenceInCalendarISOWeekYears(laterDate_, earlierDate_, options), + ); + + const adjustedDate = subISOWeekYears(laterDate_, sign * diff, options); - const sign = compareAsc(_dateLeft, _dateRight); - const difference = Math.abs(differenceInCalendarISOWeekYears(_dateLeft, _dateRight)); - _dateLeft = subISOWeekYears(_dateLeft, sign * difference); + const isLastISOWeekYearNotFull = Number( + compareAsc(adjustedDate, earlierDate_) === -sign, + ); + const result = sign * (diff - isLastISOWeekYearNotFull); - // Math.abs(diff in full ISO years - diff in calendar ISO years) === 1 - // if last calendar ISO year is not full - // If so, result must be decreased by 1 in absolute value - const isLastISOWeekYearNotFull = Number(compareAsc(_dateLeft, _dateRight) === -sign); - const result = sign * (difference - isLastISOWeekYearNotFull); // Prevent negative zero return result === 0 ? 0 : result; } diff --git a/src/date-fns/differenceInMilliseconds/index.ts b/src/date-fns/differenceInMilliseconds/index.ts index f339c4f..abb3f58 100644 --- a/src/date-fns/differenceInMilliseconds/index.ts +++ b/src/date-fns/differenceInMilliseconds/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name differenceInMilliseconds @@ -8,10 +9,8 @@ import { toDate } from '../toDate/index'; * @description * Get the number of milliseconds between the given dates. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date * * @returns The number of milliseconds * @@ -24,9 +23,9 @@ import { toDate } from '../toDate/index'; * ) * //=> 1100 */ -export function differenceInMilliseconds( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInMilliseconds( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, ): number { - return +toDate(dateLeft) - +toDate(dateRight); + return +toDate(laterDate) - +toDate(earlierDate); } diff --git a/src/date-fns/differenceInMinutes/index.ts b/src/date-fns/differenceInMinutes/index.ts index 81a9f71..acf931f 100644 --- a/src/date-fns/differenceInMinutes/index.ts +++ b/src/date-fns/differenceInMinutes/index.ts @@ -1,7 +1,7 @@ -import { getRoundingMethod } from '../_lib/getRoundingMethod/index'; -import { millisecondsInMinute } from '../constants/index'; -import { differenceInMilliseconds } from '../differenceInMilliseconds/index'; -import type { RoundingOptions } from '../types'; +import { getRoundingMethod } from "../_lib/getRoundingMethod/index.ts"; +import { millisecondsInMinute } from "../constants/index.ts"; +import { differenceInMilliseconds } from "../differenceInMilliseconds/index.ts"; +import type { DateArg, RoundingOptions } from "../types.ts"; /** * The {@link differenceInMinutes} function options. @@ -16,8 +16,6 @@ export interface DifferenceInMinutesOptions extends RoundingOptions {} * @description * Get the signed number of full (rounded towards 0) minutes between the given dates. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param dateLeft - The later date * @param dateRight - The earlier date * @param options - An object with options. @@ -40,11 +38,12 @@ export interface DifferenceInMinutesOptions extends RoundingOptions {} * ) * //=> -1 */ -export function differenceInMinutes( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInMinutes( + dateLeft: DateArg & {}, + dateRight: DateArg & {}, options?: DifferenceInMinutesOptions, ): number { - const diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute; + const diff = + differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute; return getRoundingMethod(options?.roundingMethod)(diff); } diff --git a/src/date-fns/differenceInMonths/index.ts b/src/date-fns/differenceInMonths/index.ts index 9452175..6c7bfd0 100644 --- a/src/date-fns/differenceInMonths/index.ts +++ b/src/date-fns/differenceInMonths/index.ts @@ -1,20 +1,22 @@ -import { compareAsc } from '../compareAsc/index'; -import { differenceInCalendarMonths } from '../differenceInCalendarMonths/index'; -import { isLastDayOfMonth } from '../isLastDayOfMonth/index'; -import { toDate } from '../toDate/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { compareAsc } from "../compareAsc/index.ts"; +import { differenceInCalendarMonths } from "../differenceInCalendarMonths/index.ts"; +import { isLastDayOfMonth } from "../isLastDayOfMonth/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link differenceInMonths} function options. + */ +export interface DifferenceInMonthsOptions extends ContextOptions {} /** * @name differenceInMonths * @category Month Helpers * @summary Get the number of full months between the given dates. * - * @description - * Get the number of full months between the given dates using trunc as a default rounding method. - * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - An object with options * * @returns The number of full months * @@ -23,41 +25,40 @@ import { toDate } from '../toDate/index'; * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31)) * //=> 7 */ -export function differenceInMonths( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInMonths( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInMonthsOptions | undefined, ): number { - const _dateLeft = toDate(dateLeft); - const _dateRight = toDate(dateRight); - - const sign = compareAsc(_dateLeft, _dateRight); - const difference = Math.abs(differenceInCalendarMonths(_dateLeft, _dateRight)); - let result; - - // Check for the difference of less than month - if (difference < 1) { - result = 0; - } else { - if (_dateLeft.getMonth() === 1 && _dateLeft.getDate() > 27) { - // This will check if the date is end of Feb and assign a higher end of month date - // to compare it with Jan - _dateLeft.setDate(30); - } - - _dateLeft.setMonth(_dateLeft.getMonth() - sign * difference); - - // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full - // If so, result must be decreased by 1 in absolute value - let isLastMonthNotFull = compareAsc(_dateLeft, _dateRight) === -sign; - - // Check for cases of one full calendar month - if (isLastDayOfMonth(toDate(dateLeft)) && difference === 1 && compareAsc(dateLeft, _dateRight) === 1) { - isLastMonthNotFull = false; - } - - result = sign * (difference - Number(isLastMonthNotFull)); + const [laterDate_, workingLaterDate, earlierDate_] = normalizeDates( + options?.in, + laterDate, + laterDate, + earlierDate, + ); + + const sign = compareAsc(workingLaterDate, earlierDate_); + const difference = Math.abs( + differenceInCalendarMonths(workingLaterDate, earlierDate_), + ); + + if (difference < 1) return 0; + + if (workingLaterDate.getMonth() === 1 && workingLaterDate.getDate() > 27) + workingLaterDate.setDate(30); + + workingLaterDate.setMonth(workingLaterDate.getMonth() - sign * difference); + + let isLastMonthNotFull = compareAsc(workingLaterDate, earlierDate_) === -sign; + + if ( + isLastDayOfMonth(laterDate_) && + difference === 1 && + compareAsc(laterDate_, earlierDate_) === 1 + ) { + isLastMonthNotFull = false; } - // Prevent negative zero + const result = sign * (difference - +isLastMonthNotFull); return result === 0 ? 0 : result; } diff --git a/src/date-fns/differenceInQuarters/index.ts b/src/date-fns/differenceInQuarters/index.ts index 9ac98dc..0359051 100644 --- a/src/date-fns/differenceInQuarters/index.ts +++ b/src/date-fns/differenceInQuarters/index.ts @@ -1,11 +1,13 @@ -import { getRoundingMethod } from '../_lib/getRoundingMethod/index'; -import { differenceInMonths } from '../differenceInMonths/index'; -import type { RoundingOptions } from '../types'; +import { getRoundingMethod } from "../_lib/getRoundingMethod/index.ts"; +import { differenceInMonths } from "../differenceInMonths/index.ts"; +import type { ContextOptions, DateArg, RoundingOptions } from "../types.ts"; /** * The {@link differenceInQuarters} function options. */ -export interface DifferenceInQuartersOptions extends RoundingOptions {} +export interface DifferenceInQuartersOptions + extends RoundingOptions, + ContextOptions {} /** * @name differenceInQuarters @@ -15,10 +17,8 @@ export interface DifferenceInQuartersOptions extends RoundingOptions {} * @description * Get the number of quarters between the given dates. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date * @param options - An object with options. * * @returns The number of full quarters @@ -28,11 +28,11 @@ export interface DifferenceInQuartersOptions extends RoundingOptions {} * const result = differenceInQuarters(new Date(2014, 6, 2), new Date(2013, 11, 31)) * //=> 2 */ -export function differenceInQuarters( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, - options?: DifferenceInQuartersOptions, +export function differenceInQuarters( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInQuartersOptions | undefined, ): number { - const diff = differenceInMonths(dateLeft, dateRight) / 3; + const diff = differenceInMonths(laterDate, earlierDate, options) / 3; return getRoundingMethod(options?.roundingMethod)(diff); } diff --git a/src/date-fns/differenceInSeconds/index.ts b/src/date-fns/differenceInSeconds/index.ts index 8c7c801..0845708 100644 --- a/src/date-fns/differenceInSeconds/index.ts +++ b/src/date-fns/differenceInSeconds/index.ts @@ -1,6 +1,6 @@ -import { getRoundingMethod } from '../_lib/getRoundingMethod/index'; -import { differenceInMilliseconds } from '../differenceInMilliseconds/index'; -import type { RoundingOptions } from '../types'; +import { getRoundingMethod } from "../_lib/getRoundingMethod/index.ts"; +import { differenceInMilliseconds } from "../differenceInMilliseconds/index.ts"; +import type { DateArg, RoundingOptions } from "../types.ts"; /** * The {@link differenceInSeconds} function options. @@ -15,10 +15,8 @@ export interface DifferenceInSecondsOptions extends RoundingOptions {} * @description * Get the number of seconds between the given dates. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date * @param options - An object with options. * * @returns The number of seconds @@ -32,11 +30,11 @@ export interface DifferenceInSecondsOptions extends RoundingOptions {} * ) * //=> 12 */ -export function differenceInSeconds( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInSeconds( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, options?: DifferenceInSecondsOptions, ): number { - const diff = differenceInMilliseconds(dateLeft, dateRight) / 1000; + const diff = differenceInMilliseconds(laterDate, earlierDate) / 1000; return getRoundingMethod(options?.roundingMethod)(diff); } diff --git a/src/date-fns/differenceInWeeks/index.ts b/src/date-fns/differenceInWeeks/index.ts index 8ffda89..7b9c614 100644 --- a/src/date-fns/differenceInWeeks/index.ts +++ b/src/date-fns/differenceInWeeks/index.ts @@ -1,11 +1,13 @@ -import { getRoundingMethod } from '../_lib/getRoundingMethod/index'; -import { differenceInDays } from '../differenceInDays/index'; -import type { RoundingOptions } from '../types'; +import { getRoundingMethod } from "../_lib/getRoundingMethod/index.ts"; +import { differenceInDays } from "../differenceInDays/index.ts"; +import type { ContextOptions, DateArg, RoundingOptions } from "../types.ts"; /** * The {@link differenceInWeeks} function options. */ -export interface DifferenceInWeeksOptions extends RoundingOptions {} +export interface DifferenceInWeeksOptions + extends RoundingOptions, + ContextOptions {} /** * @name differenceInWeeks @@ -23,10 +25,8 @@ export interface DifferenceInWeeksOptions extends RoundingOptions {} * To ignore DST and only measure exact 7*24-hour periods, use this instead: * `Math.trunc(differenceInHours(dateLeft, dateRight)/(7*24))|0`. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date * @param options - An object with options * * @returns The number of full weeks @@ -49,11 +49,11 @@ export interface DifferenceInWeeksOptions extends RoundingOptions {} * ) * //=> 8 */ -export function differenceInWeeks( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, - options?: DifferenceInWeeksOptions, +export function differenceInWeeks( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInWeeksOptions | undefined, ): number { - const diff = differenceInDays(dateLeft, dateRight) / 7; + const diff = differenceInDays(laterDate, earlierDate, options) / 7; return getRoundingMethod(options?.roundingMethod)(diff); } diff --git a/src/date-fns/differenceInYears/index.ts b/src/date-fns/differenceInYears/index.ts index 7b784cb..1a4e28c 100644 --- a/src/date-fns/differenceInYears/index.ts +++ b/src/date-fns/differenceInYears/index.ts @@ -1,6 +1,12 @@ -import { compareAsc } from '../compareAsc/index'; -import { differenceInCalendarYears } from '../differenceInCalendarYears/index'; -import { toDate } from '../toDate/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { compareAsc } from "../compareAsc/index.ts"; +import { differenceInCalendarYears } from "../differenceInCalendarYears/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link differenceInYears} function options. + */ +export interface DifferenceInYearsOptions extends ContextOptions {} /** * @name differenceInYears @@ -10,10 +16,9 @@ import { toDate } from '../toDate/index'; * @description * Get the number of full years between the given dates. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The later date - * @param dateRight - The earlier date + * @param laterDate - The later date + * @param earlierDate - The earlier date + * @param options - An object with options * * @returns The number of full years * @@ -22,25 +27,39 @@ import { toDate } from '../toDate/index'; * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31)) * //=> 1 */ -export function differenceInYears( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function differenceInYears( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: DifferenceInYearsOptions | undefined, ): number { - const _dateLeft = toDate(dateLeft); - const _dateRight = toDate(dateRight); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + + // -1 if the left date is earlier than the right date + // 2023-12-31 - 2024-01-01 = -1 + const sign = compareAsc(laterDate_, earlierDate_); + + // First calculate the difference in calendar years + // 2024-01-01 - 2023-12-31 = 1 year + const diff = Math.abs(differenceInCalendarYears(laterDate_, earlierDate_)); - const sign = compareAsc(_dateLeft, _dateRight); - const difference = Math.abs(differenceInCalendarYears(_dateLeft, _dateRight)); + // Now we need to calculate if the difference is full. To do that we set + // both dates to the same year and check if the both date's month and day + // form a full year. + laterDate_.setFullYear(1584); + earlierDate_.setFullYear(1584); - // Set both dates to a valid leap year for accurate comparison when dealing - // with leap days - _dateLeft.setFullYear(1584); - _dateRight.setFullYear(1584); + // For it to be true, when the later date is indeed later than the earlier date + // (2026-02-01 - 2023-12-10 = 3 years), the difference is full if + // the normalized later date is also later than the normalized earlier date. + // In our example, 1584-02-01 is earlier than 1584-12-10, so the difference + // is partial, hence we need to subtract 1 from the difference 3 - 1 = 2. + const partial = compareAsc(laterDate_, earlierDate_) === -sign; - // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full - // If so, result must be decreased by 1 in absolute value - const isLastYearNotFull = compareAsc(_dateLeft, _dateRight) === -sign; - const result = sign * (difference - +isLastYearNotFull); + const result = sign * (diff - +partial); // Prevent negative zero return result === 0 ? 0 : result; diff --git a/src/date-fns/eachDayOfInterval/index.ts b/src/date-fns/eachDayOfInterval/index.ts index 0d4596f..d0ae593 100644 --- a/src/date-fns/eachDayOfInterval/index.ts +++ b/src/date-fns/eachDayOfInterval/index.ts @@ -1,10 +1,32 @@ -import { toDate } from '../toDate/index'; -import type { Interval, StepOptions } from '../types'; +import { normalizeInterval } from "../_lib/normalizeInterval/index.ts"; +import { constructFrom } from "../constructFrom/index.ts"; +import type { ContextOptions, Interval, StepOptions } from "../types.ts"; /** * The {@link eachDayOfInterval} function options. */ -export interface EachDayOfIntervalOptions extends StepOptions {} +export interface EachDayOfIntervalOptions + extends StepOptions, + ContextOptions {} + +/** + * The {@link eachDayOfInterval} function result type. It resolves the proper data type. + * It uses the first argument date object type, starting from the date argument, + * then the start interval date, and finally the end interval date. If + * a context function is passed, it uses the context function return type. + */ +export type EachDayOfIntervalResult< + IntervalType extends Interval, + Options extends EachDayOfIntervalOptions | undefined, +> = Array< + Options extends EachDayOfIntervalOptions + ? DateType + : IntervalType["start"] extends Date + ? IntervalType["start"] + : IntervalType["end"] extends Date + ? IntervalType["end"] + : Date +>; /** * @name eachDayOfInterval @@ -14,7 +36,8 @@ export interface EachDayOfIntervalOptions extends StepOptions {} * @description * Return the array of dates within the specified time interval. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam IntervalType - Interval type. + * @typeParam Options - Options type. * * @param interval - The interval. * @param options - An object with options. @@ -35,17 +58,19 @@ export interface EachDayOfIntervalOptions extends StepOptions {} * // Fri Oct 10 2014 00:00:00 * // ] */ -export function eachDayOfInterval( - interval: Interval, - options?: EachDayOfIntervalOptions, -): DateType[] { - const startDate = toDate(interval.start); - const endDate = toDate(interval.end); +export function eachDayOfInterval< + IntervalType extends Interval, + Options extends EachDayOfIntervalOptions | undefined = undefined, +>( + interval: IntervalType, + options?: Options, +): EachDayOfIntervalResult { + const { start, end } = normalizeInterval(options?.in, interval); - let reversed = +startDate > +endDate; - const endTime = reversed ? +startDate : +endDate; - const currentDate = reversed ? endDate : startDate; - currentDate.setHours(0, 0, 0, 0); + let reversed = +start > +end; + const endTime = reversed ? +start : +end; + const date = reversed ? end : start; + date.setHours(0, 0, 0, 0); let step = options?.step ?? 1; if (!step) return []; @@ -54,12 +79,12 @@ export function eachDayOfInterval( reversed = !reversed; } - const dates = []; + const dates: EachDayOfIntervalResult = []; - while (+currentDate <= endTime) { - dates.push(toDate(currentDate)); - currentDate.setDate(currentDate.getDate() + step); - currentDate.setHours(0, 0, 0, 0); + while (+date <= endTime) { + dates.push(constructFrom(start, date)); + date.setDate(date.getDate() + step); + date.setHours(0, 0, 0, 0); } return reversed ? dates.reverse() : dates; diff --git a/src/date-fns/eachHourOfInterval/index.ts b/src/date-fns/eachHourOfInterval/index.ts index cf4d97b..03aca56 100644 --- a/src/date-fns/eachHourOfInterval/index.ts +++ b/src/date-fns/eachHourOfInterval/index.ts @@ -1,11 +1,30 @@ -import { addHours } from '../addHours/index'; -import { toDate } from '../toDate/index'; -import type { Interval, StepOptions } from '../types'; +import { normalizeInterval } from "../_lib/normalizeInterval/index.ts"; +import { constructFrom } from "../constructFrom/index.ts"; +import type { ContextOptions, Interval, StepOptions } from "../types.ts"; /** * The {@link eachHourOfInterval} function options. */ -export interface EachHourOfIntervalOptions extends StepOptions {} +export interface EachHourOfIntervalOptions + extends StepOptions, + ContextOptions {} + +/** + * The {@link eachHourOfInterval} function result type. + * Resolves to the appropriate date type based on inputs. + */ +export type EachHourOfIntervalResult< + IntervalType extends Interval, + Options extends EachHourOfIntervalOptions | undefined, +> = Array< + Options extends EachHourOfIntervalOptions + ? DateType + : IntervalType["start"] extends Date + ? IntervalType["start"] + : IntervalType["end"] extends Date + ? IntervalType["end"] + : Date +>; /** * @name eachHourOfInterval @@ -15,7 +34,8 @@ export interface EachHourOfIntervalOptions extends StepOptions {} * @description * Return the array of hours within the specified time interval. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam IntervalType - Interval type. + * @typeParam Options - Options type. * * @param interval - The interval. * @param options - An object with options. @@ -27,7 +47,7 @@ export interface EachHourOfIntervalOptions extends StepOptions {} * const result = eachHourOfInterval({ * start: new Date(2014, 9, 6, 12), * end: new Date(2014, 9, 6, 15) - * }) + * }); * //=> [ * // Mon Oct 06 2014 12:00:00, * // Mon Oct 06 2014 13:00:00, @@ -35,17 +55,19 @@ export interface EachHourOfIntervalOptions extends StepOptions {} * // Mon Oct 06 2014 15:00:00 * // ] */ -export function eachHourOfInterval( - interval: Interval, - options?: EachHourOfIntervalOptions, -): DateType[] { - const startDate = toDate(interval.start); - const endDate = toDate(interval.end); +export function eachHourOfInterval< + IntervalType extends Interval, + Options extends EachHourOfIntervalOptions | undefined = undefined, +>( + interval: IntervalType, + options?: Options, +): EachHourOfIntervalResult { + const { start, end } = normalizeInterval(options?.in, interval); - let reversed = +startDate > +endDate; - const endTime = reversed ? +startDate : +endDate; - let currentDate = reversed ? endDate : startDate; - currentDate.setMinutes(0, 0, 0); + let reversed = +start > +end; + const endTime = reversed ? +start : +end; + const date = reversed ? end : start; + date.setMinutes(0, 0, 0); let step = options?.step ?? 1; if (!step) return []; @@ -54,11 +76,11 @@ export function eachHourOfInterval( reversed = !reversed; } - const dates = []; + const dates: EachHourOfIntervalResult = []; - while (+currentDate <= endTime) { - dates.push(toDate(currentDate)); - currentDate = addHours(currentDate, step); + while (+date <= endTime) { + dates.push(constructFrom(start, date)); + date.setHours(date.getHours() + step); } return reversed ? dates.reverse() : dates; diff --git a/src/date-fns/eachMinuteOfInterval/index.ts b/src/date-fns/eachMinuteOfInterval/index.ts index 76c59e7..8b2e537 100644 --- a/src/date-fns/eachMinuteOfInterval/index.ts +++ b/src/date-fns/eachMinuteOfInterval/index.ts @@ -1,12 +1,33 @@ -import { addMinutes } from '../addMinutes/index'; -import { startOfMinute } from '../startOfMinute/index'; -import { toDate } from '../toDate/index'; -import type { Interval, StepOptions } from '../types'; +import { normalizeInterval } from "../_lib/normalizeInterval/index.ts"; +import { addMinutes } from "../addMinutes/index.ts"; +import { constructFrom } from "../constructFrom/index.ts"; +import type { ContextOptions, Interval, StepOptions } from "../types.ts"; /** * The {@link eachMinuteOfInterval} function options. */ -export interface EachMinuteOfIntervalOptions extends StepOptions {} +export interface EachMinuteOfIntervalOptions + extends StepOptions, + ContextOptions {} + +/** + * The {@link eachMinuteOfInterval} function result type. It resolves the proper data type. + * It uses the first argument date object type, starting from the date argument, + * then the start interval date, and finally the end interval date. If + * a context function is passed, it uses the context function return type. + */ +export type EachMinuteOfIntervalResult< + IntervalType extends Interval, + Options extends EachMinuteOfIntervalOptions | undefined, +> = Array< + Options extends EachMinuteOfIntervalOptions + ? DateType + : IntervalType["start"] extends Date + ? IntervalType["start"] + : IntervalType["end"] extends Date + ? IntervalType["end"] + : Date +>; /** * @name eachMinuteOfInterval @@ -16,7 +37,8 @@ export interface EachMinuteOfIntervalOptions extends StepOptions {} * @description * Returns the array of minutes within the specified time interval. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam IntervalType - Interval type. + * @typeParam Options - Options type. * * @param interval - The interval. * @param options - An object with options. @@ -36,16 +58,20 @@ export interface EachMinuteOfIntervalOptions extends StepOptions {} * // Wed Oct 14 2014 13:03:00 * // ] */ -export function eachMinuteOfInterval( - interval: Interval, - options?: EachMinuteOfIntervalOptions, -): DateType[] { - const startDate = startOfMinute(toDate(interval.start)); - const endDate = toDate(interval.end); +export function eachMinuteOfInterval< + IntervalType extends Interval, + Options extends EachMinuteOfIntervalOptions | undefined = undefined, +>( + interval: IntervalType, + options?: Options, +): EachMinuteOfIntervalResult { + const { start, end } = normalizeInterval(options?.in, interval); + // Set to the start of the minute + start.setSeconds(0, 0); - let reversed = +startDate > +endDate; - const endTime = reversed ? +startDate : +endDate; - let currentDate = reversed ? endDate : startDate; + let reversed = +start > +end; + const endTime = reversed ? +start : +end; + let date = reversed ? end : start; let step = options?.step ?? 1; if (!step) return []; @@ -54,11 +80,11 @@ export function eachMinuteOfInterval( reversed = !reversed; } - const dates = []; + const dates: EachMinuteOfIntervalResult = []; - while (+currentDate <= endTime) { - dates.push(toDate(currentDate)); - currentDate = addMinutes(currentDate, step); + while (+date <= endTime) { + dates.push(constructFrom(start, date)); + date = addMinutes(date, step); } return reversed ? dates.reverse() : dates; diff --git a/src/date-fns/eachMonthOfInterval/index.ts b/src/date-fns/eachMonthOfInterval/index.ts index fd195fa..584bf81 100644 --- a/src/date-fns/eachMonthOfInterval/index.ts +++ b/src/date-fns/eachMonthOfInterval/index.ts @@ -1,10 +1,29 @@ -import { toDate } from '../toDate/index'; -import type { Interval, StepOptions } from '../types'; +import { normalizeInterval } from "../_lib/normalizeInterval/index.ts"; +import { constructFrom } from "../constructFrom/index.ts"; +import type { ContextOptions, Interval, StepOptions } from "../types.ts"; /** * The {@link eachMonthOfInterval} function options. */ -export interface EachMonthOfIntervalOptions extends StepOptions {} +export interface EachMonthOfIntervalOptions + extends StepOptions, + ContextOptions {} + +/** + * The {@link eachMonthOfInterval} function result type. It resolves the proper data type. + */ +export type EachMonthOfIntervalResult< + IntervalType extends Interval, + Options extends EachMonthOfIntervalOptions | undefined, +> = Array< + Options extends EachMonthOfIntervalOptions + ? DateType + : IntervalType["start"] extends Date + ? IntervalType["start"] + : IntervalType["end"] extends Date + ? IntervalType["end"] + : Date +>; /** * @name eachMonthOfInterval @@ -14,9 +33,11 @@ export interface EachMonthOfIntervalOptions extends StepOptions {} * @description * Return the array of months within the specified time interval. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam IntervalType - Interval type. + * @typeParam Options - Options type. * - * @param interval - The interval + * @param interval - The interval. + * @param options - An object with options. * * @returns The array with starts of months from the month of the interval start to the month of the interval end * @@ -36,18 +57,20 @@ export interface EachMonthOfIntervalOptions extends StepOptions {} * // Fri Aug 01 2014 00:00:00 * // ] */ -export function eachMonthOfInterval( - interval: Interval, - options?: EachMonthOfIntervalOptions, -): DateType[] { - const startDate = toDate(interval.start); - const endDate = toDate(interval.end); +export function eachMonthOfInterval< + IntervalType extends Interval, + Options extends EachMonthOfIntervalOptions | undefined = undefined, +>( + interval: IntervalType, + options?: Options, +): EachMonthOfIntervalResult { + const { start, end } = normalizeInterval(options?.in, interval); - let reversed = +startDate > +endDate; - const endTime = reversed ? +startDate : +endDate; - const currentDate = reversed ? endDate : startDate; - currentDate.setHours(0, 0, 0, 0); - currentDate.setDate(1); + let reversed = +start > +end; + const endTime = reversed ? +start : +end; + const date = reversed ? end : start; + date.setHours(0, 0, 0, 0); + date.setDate(1); let step = options?.step ?? 1; if (!step) return []; @@ -56,11 +79,11 @@ export function eachMonthOfInterval( reversed = !reversed; } - const dates = []; + const dates: EachMonthOfIntervalResult = []; - while (+currentDate <= endTime) { - dates.push(toDate(currentDate)); - currentDate.setMonth(currentDate.getMonth() + step); + while (+date <= endTime) { + dates.push(constructFrom(start, date)); + date.setMonth(date.getMonth() + step); } return reversed ? dates.reverse() : dates; diff --git a/src/date-fns/eachQuarterOfInterval/index.ts b/src/date-fns/eachQuarterOfInterval/index.ts index 030770d..f5206ac 100644 --- a/src/date-fns/eachQuarterOfInterval/index.ts +++ b/src/date-fns/eachQuarterOfInterval/index.ts @@ -1,12 +1,34 @@ -import { addQuarters } from '../addQuarters/index'; -import { startOfQuarter } from '../startOfQuarter/index'; -import { toDate } from '../toDate/index'; -import type { Interval, StepOptions } from '../types'; +import { normalizeInterval } from "../_lib/normalizeInterval/index.ts"; +import { addQuarters } from "../addQuarters/index.ts"; +import { constructFrom } from "../constructFrom/index.ts"; +import { startOfQuarter } from "../startOfQuarter/index.ts"; +import type { ContextOptions, Interval, StepOptions } from "../types.ts"; /** * The {@link eachQuarterOfInterval} function options. */ -export interface EachQuarterOfIntervalOptions extends StepOptions {} +export interface EachQuarterOfIntervalOptions + extends StepOptions, + ContextOptions {} + +/** + * The {@link eachQuarterOfInterval} function result type. It resolves the proper data type. + * It uses the first argument date object type, starting from the date argument, + * then the start interval date, and finally the end interval date. If + * a context function is passed, it uses the context function return type. + */ +export type EachQuarterOfIntervalResult< + IntervalType extends Interval, + Options extends EachQuarterOfIntervalOptions | undefined, +> = Array< + Options extends EachQuarterOfIntervalOptions + ? DateType + : IntervalType["start"] extends Date + ? IntervalType["start"] + : IntervalType["end"] extends Date + ? IntervalType["end"] + : Date +>; /** * @name eachQuarterOfInterval @@ -16,9 +38,11 @@ export interface EachQuarterOfIntervalOptions extends StepOptions {} * @description * Return the array of quarters within the specified time interval. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam IntervalType - Interval type. + * @typeParam Options - Options type. * * @param interval - The interval + * @param options - An object with options * * @returns The array with starts of quarters from the quarter of the interval start to the quarter of the interval end * @@ -26,7 +50,7 @@ export interface EachQuarterOfIntervalOptions extends StepOptions {} * // Each quarter within interval 6 February 2014 - 10 August 2014: * const result = eachQuarterOfInterval({ * start: new Date(2014, 1, 6), - * end: new Date(2014, 7, 10) + * end: new Date(2014, 7, 10), * }) * //=> [ * // Wed Jan 01 2014 00:00:00, @@ -34,16 +58,18 @@ export interface EachQuarterOfIntervalOptions extends StepOptions {} * // Tue Jul 01 2014 00:00:00, * // ] */ -export function eachQuarterOfInterval( - interval: Interval, - options?: EachQuarterOfIntervalOptions, -): DateType[] { - const startDate = toDate(interval.start); - const endDate = toDate(interval.end); +export function eachQuarterOfInterval< + IntervalType extends Interval, + Options extends EachQuarterOfIntervalOptions | undefined = undefined, +>( + interval: IntervalType, + options?: Options, +): EachQuarterOfIntervalResult { + const { start, end } = normalizeInterval(options?.in, interval); - let reversed = +startDate > +endDate; - const endTime = reversed ? +startOfQuarter(startDate) : +startOfQuarter(endDate); - let currentDate = reversed ? startOfQuarter(endDate) : startOfQuarter(startDate); + let reversed = +start > +end; + const endTime = reversed ? +startOfQuarter(start) : +startOfQuarter(end); + let date = reversed ? startOfQuarter(end) : startOfQuarter(start); let step = options?.step ?? 1; if (!step) return []; @@ -52,11 +78,11 @@ export function eachQuarterOfInterval( reversed = !reversed; } - const dates = []; + const dates: EachQuarterOfIntervalResult = []; - while (+currentDate <= endTime) { - dates.push(toDate(currentDate)); - currentDate = addQuarters(currentDate, step); + while (+date <= endTime) { + dates.push(constructFrom(start, date)); + date = addQuarters(date, step); } return reversed ? dates.reverse() : dates; diff --git a/src/date-fns/eachWeekOfInterval/index.ts b/src/date-fns/eachWeekOfInterval/index.ts index 3763953..0c6b127 100644 --- a/src/date-fns/eachWeekOfInterval/index.ts +++ b/src/date-fns/eachWeekOfInterval/index.ts @@ -1,12 +1,41 @@ -import { addWeeks } from '../addWeeks/index'; -import { startOfWeek } from '../startOfWeek/index'; -import { toDate } from '../toDate/index'; -import type { Interval, LocalizedOptions, StepOptions, WeekOptions } from '../types'; +import { normalizeInterval } from "../_lib/normalizeInterval/index.ts"; +import { addWeeks } from "../addWeeks/index.ts"; +import { constructFrom } from "../constructFrom/index.ts"; +import { startOfWeek } from "../startOfWeek/index.ts"; +import type { + ContextOptions, + Interval, + LocalizedOptions, + StepOptions, + WeekOptions, +} from "../types.ts"; /** * The {@link eachWeekOfInterval} function options. */ -export interface EachWeekOfIntervalOptions extends StepOptions, WeekOptions, LocalizedOptions<'options'> {} +export interface EachWeekOfIntervalOptions + extends StepOptions, + WeekOptions, + LocalizedOptions<"options">, + ContextOptions {} + +/** + * The {@link eachWeekOfInterval} function result type. It resolves the proper data type. + * It uses the first argument date object type, starting from the interval start date, + * then the end interval date. If a context function is passed, it uses the context function return type. + */ +export type EachWeekOfIntervalResult< + IntervalType extends Interval, + Options extends EachWeekOfIntervalOptions | undefined, +> = Array< + Options extends EachWeekOfIntervalOptions + ? DateType + : IntervalType["start"] extends Date + ? IntervalType["start"] + : IntervalType["end"] extends Date + ? IntervalType["end"] + : Date +>; /** * @name eachWeekOfInterval @@ -16,8 +45,6 @@ export interface EachWeekOfIntervalOptions extends StepOptions, WeekOptions, Loc * @description * Return the array of weeks within the specified time interval. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param interval - The interval. * @param options - An object with options. * @@ -40,18 +67,23 @@ export interface EachWeekOfIntervalOptions extends StepOptions, WeekOptions, Loc * // Sun Nov 23 2014 00:00:00 * // ] */ -export function eachWeekOfInterval( - interval: Interval, - options?: EachWeekOfIntervalOptions, -): DateType[] { - const startDate = toDate(interval.start); - const endDate = toDate(interval.end); +export function eachWeekOfInterval< + IntervalType extends Interval, + Options extends EachWeekOfIntervalOptions | undefined = undefined, +>( + interval: IntervalType, + options?: Options, +): EachWeekOfIntervalResult { + const { start, end } = normalizeInterval(options?.in, interval); - let reversed = +startDate > +endDate; - const startDateWeek = reversed ? startOfWeek(endDate, options) : startOfWeek(startDate, options); - const endDateWeek = reversed ? startOfWeek(startDate, options) : startOfWeek(endDate, options); + let reversed = +start > +end; + const startDateWeek = reversed + ? startOfWeek(end, options) + : startOfWeek(start, options); + const endDateWeek = reversed + ? startOfWeek(start, options) + : startOfWeek(end, options); - // Some timezones switch DST at midnight, making start of day unreliable in these timezones, 3pm is a safe bet startDateWeek.setHours(15); endDateWeek.setHours(15); @@ -65,11 +97,11 @@ export function eachWeekOfInterval( reversed = !reversed; } - const dates = []; + const dates: EachWeekOfIntervalResult = []; while (+currentDate <= endTime) { currentDate.setHours(0); - dates.push(toDate(currentDate)); + dates.push(constructFrom(start, currentDate)); currentDate = addWeeks(currentDate, step); currentDate.setHours(15); } diff --git a/src/date-fns/eachWeekendOfInterval/index.ts b/src/date-fns/eachWeekendOfInterval/index.ts index c6e5d2d..445f739 100644 --- a/src/date-fns/eachWeekendOfInterval/index.ts +++ b/src/date-fns/eachWeekendOfInterval/index.ts @@ -1,6 +1,30 @@ -import { eachDayOfInterval } from '../eachDayOfInterval/index'; -import { isWeekend } from '../isWeekend/index'; -import type { Interval } from '../types'; +import { normalizeInterval } from "../_lib/normalizeInterval/index.ts"; +import { constructFrom } from "../constructFrom/index.ts"; +import { eachDayOfInterval } from "../eachDayOfInterval/index.ts"; +import { isWeekend } from "../isWeekend/index.ts"; +import type { ContextOptions, Interval } from "../types.ts"; + +/** + * The {@link eachWeekendOfInterval} function options. + */ +export interface EachWeekendOfIntervalOptions + extends ContextOptions {} + +/** + * The {@link eachWeekendOfInterval} function result type. + */ +export type EachWeekendOfIntervalResult< + IntervalType extends Interval, + Options extends EachWeekendOfIntervalOptions | undefined, +> = Array< + Options extends EachWeekendOfIntervalOptions + ? DateType + : IntervalType["start"] extends Date + ? IntervalType["start"] + : IntervalType["end"] extends Date + ? IntervalType["end"] + : Date +>; /** * @name eachWeekendOfInterval @@ -10,9 +34,11 @@ import type { Interval } from '../types'; * @description * Get all the Saturdays and Sundays in the given date interval. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam IntervalType - Interval type. + * @typeParam Options - Options type. * * @param interval - The given interval + * @param options - An object with options * * @returns An array containing all the Saturdays and Sundays * @@ -29,13 +55,20 @@ import type { Interval } from '../types'; * // Sun Sep 30 2018 00:00:00 * // ] */ -export function eachWeekendOfInterval(interval: Interval): DateType[] { - const dateInterval = eachDayOfInterval(interval); - const weekends = []; +export function eachWeekendOfInterval< + IntervalType extends Interval, + Options extends EachWeekendOfIntervalOptions | undefined = undefined, +>( + interval: IntervalType, + options?: Options, +): EachWeekendOfIntervalResult { + const { start, end } = normalizeInterval(options?.in, interval); + const dateInterval = eachDayOfInterval({ start, end }, options); + const weekends: EachWeekendOfIntervalResult = []; let index = 0; while (index < dateInterval.length) { const date = dateInterval[index++]; - if (isWeekend(date!)) weekends.push(date!); + if (isWeekend(date)) weekends.push(constructFrom(start, date)); } return weekends; } diff --git a/src/date-fns/eachWeekendOfMonth/index.ts b/src/date-fns/eachWeekendOfMonth/index.ts index 522d8c1..ec8d728 100644 --- a/src/date-fns/eachWeekendOfMonth/index.ts +++ b/src/date-fns/eachWeekendOfMonth/index.ts @@ -1,6 +1,13 @@ -import { eachWeekendOfInterval } from '../eachWeekendOfInterval/index'; -import { endOfMonth } from '../endOfMonth/index'; -import { startOfMonth } from '../startOfMonth/index'; +import { eachWeekendOfInterval } from "../eachWeekendOfInterval/index.ts"; +import { endOfMonth } from "../endOfMonth/index.ts"; +import { startOfMonth } from "../startOfMonth/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link eachWeekendOfMonth} function options. + */ +export interface EachWeekendOfMonthOptions + extends ContextOptions {} /** * @name eachWeekendOfMonth @@ -11,8 +18,10 @@ import { startOfMonth } from '../startOfMonth/index'; * Get all the Saturdays and Sundays in the given month. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The given month + * @param options - An object with options * * @returns An array containing all the Saturdays and Sundays * @@ -30,8 +39,14 @@ import { startOfMonth } from '../startOfMonth/index'; * // Sun Feb 27 2022 00:00:00 * // ] */ -export function eachWeekendOfMonth(date: DateType): DateType[] { - const start = startOfMonth(date); - const end = endOfMonth(date); - return eachWeekendOfInterval({ start, end }); +export function eachWeekendOfMonth< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: EachWeekendOfMonthOptions, +): ResultDate[] { + const start = startOfMonth(date, options); + const end = endOfMonth(date, options); + return eachWeekendOfInterval({ start, end }, options); } diff --git a/src/date-fns/eachWeekendOfYear/index.ts b/src/date-fns/eachWeekendOfYear/index.ts index 9f18649..2cd5a70 100644 --- a/src/date-fns/eachWeekendOfYear/index.ts +++ b/src/date-fns/eachWeekendOfYear/index.ts @@ -1,6 +1,13 @@ -import { eachWeekendOfInterval } from '../eachWeekendOfInterval/index'; -import { endOfYear } from '../endOfYear/index'; -import { startOfYear } from '../startOfYear/index'; +import { eachWeekendOfInterval } from "../eachWeekendOfInterval/index.ts"; +import { endOfYear } from "../endOfYear/index.ts"; +import { startOfYear } from "../startOfYear/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link eachWeekendOfYear} function options. + */ +export interface EachWeekendOfYearOptions + extends ContextOptions {} /** * @name eachWeekendOfYear @@ -11,8 +18,10 @@ import { startOfYear } from '../startOfYear/index'; * Get all the Saturdays and Sundays in the year. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The given year + * @param options - An object with options * * @returns An array containing all the Saturdays and Sundays * @@ -27,8 +36,14 @@ import { startOfYear } from '../startOfYear/index'; * // ] * ] */ -export function eachWeekendOfYear(date: DateType | number | string): DateType[] { - const start = startOfYear(date); - const end = endOfYear(date); - return eachWeekendOfInterval({ start, end }); +export function eachWeekendOfYear< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: EachWeekendOfYearOptions, +): ResultDate[] { + const start = startOfYear(date, options); + const end = endOfYear(date, options); + return eachWeekendOfInterval({ start, end }, options); } diff --git a/src/date-fns/eachYearOfInterval/index.ts b/src/date-fns/eachYearOfInterval/index.ts index 921181a..df44230 100644 --- a/src/date-fns/eachYearOfInterval/index.ts +++ b/src/date-fns/eachYearOfInterval/index.ts @@ -1,10 +1,32 @@ -import { toDate } from '../toDate/index'; -import type { Interval, StepOptions } from '../types'; +import { normalizeInterval } from "../_lib/normalizeInterval/index.ts"; +import { constructFrom } from "../constructFrom/index.ts"; +import type { ContextOptions, Interval, StepOptions } from "../types.ts"; /** * The {@link eachYearOfInterval} function options. */ -export interface EachYearOfIntervalOptions extends StepOptions {} +export interface EachYearOfIntervalOptions + extends StepOptions, + ContextOptions {} + +/** + * The {@link eachYearOfInterval} function result type. It resolves the proper data type. + * It uses the first argument date object type, starting from the date argument, + * then the start interval date, and finally the end interval date. If + * a context function is passed, it uses the context function return type. + */ +export type EachYearOfIntervalResult< + IntervalType extends Interval, + Options extends EachYearOfIntervalOptions | undefined, +> = Array< + Options extends EachYearOfIntervalOptions + ? DateType + : IntervalType["start"] extends Date + ? IntervalType["start"] + : IntervalType["end"] extends Date + ? IntervalType["end"] + : Date +>; /** * @name eachYearOfInterval @@ -14,9 +36,11 @@ export interface EachYearOfIntervalOptions extends StepOptions {} * @description * Return the array of yearly timestamps within the specified time interval. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam IntervalType - Interval type. + * @typeParam Options - Options type. * * @param interval - The interval. + * @param options - An object with options. * * @returns The array with starts of yearly timestamps from the month of the interval start to the month of the interval end * @@ -33,18 +57,20 @@ export interface EachYearOfIntervalOptions extends StepOptions {} * // Sun Jan 01 2017 00:00:00 * // ] */ -export function eachYearOfInterval( - interval: Interval, - options?: EachYearOfIntervalOptions, -): DateType[] { - const startDate = toDate(interval.start); - const endDate = toDate(interval.end); +export function eachYearOfInterval< + IntervalType extends Interval, + Options extends EachYearOfIntervalOptions | undefined = undefined, +>( + interval: IntervalType, + options?: Options, +): EachYearOfIntervalResult { + const { start, end } = normalizeInterval(options?.in, interval); - let reversed = +startDate > +endDate; - const endTime = reversed ? +startDate : +endDate; - const currentDate = reversed ? endDate : startDate; - currentDate.setHours(0, 0, 0, 0); - currentDate.setMonth(0, 1); + let reversed = +start > +end; + const endTime = reversed ? +start : +end; + const date = reversed ? end : start; + date.setHours(0, 0, 0, 0); + date.setMonth(0, 1); let step = options?.step ?? 1; if (!step) return []; @@ -53,11 +79,11 @@ export function eachYearOfInterval( reversed = !reversed; } - const dates = []; + const dates: EachYearOfIntervalResult = []; - while (+currentDate <= endTime) { - dates.push(toDate(currentDate)); - currentDate.setFullYear(currentDate.getFullYear() + step); + while (+date <= endTime) { + dates.push(constructFrom(start, date)); + date.setFullYear(date.getFullYear() + step); } return reversed ? dates.reverse() : dates; diff --git a/src/date-fns/endOfDay/index.ts b/src/date-fns/endOfDay/index.ts index f931400..51255fa 100644 --- a/src/date-fns/endOfDay/index.ts +++ b/src/date-fns/endOfDay/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link endOfDay} function options. + */ +export interface EndOfDayOptions + extends ContextOptions {} /** * @name endOfDay @@ -10,8 +17,10 @@ import { toDate } from '../toDate/index'; * The result will be in the local timezone. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The end of a day * @@ -20,8 +29,14 @@ import { toDate } from '../toDate/index'; * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0)) * //=> Tue Sep 02 2014 23:59:59.999 */ -export function endOfDay(date: DateType | number | string): DateType { - const _date = toDate(date); +export function endOfDay< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: EndOfDayOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); _date.setHours(23, 59, 59, 999); return _date; } diff --git a/src/date-fns/endOfDecade/index.ts b/src/date-fns/endOfDecade/index.ts index 0c64b7d..8f60992 100644 --- a/src/date-fns/endOfDecade/index.ts +++ b/src/date-fns/endOfDecade/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link endOfDecade} function options. + */ +export interface EndOfDecadeOptions + extends ContextOptions {} /** * @name endOfDecade @@ -9,8 +16,10 @@ import { toDate } from '../toDate/index'; * Return the end of a decade for the given date. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The end of a decade * @@ -19,11 +28,17 @@ import { toDate } from '../toDate/index'; * const result = endOfDecade(new Date(1984, 4, 12, 00, 00, 00)) * //=> Dec 31 1989 23:59:59.999 */ -export function endOfDecade(date: DateType | number | string): DateType { +export function endOfDecade< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: EndOfDecadeOptions | undefined, +): ResultDate { // TODO: Switch to more technical definition in of decades that start with 1 // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking // change, so it can only be done in 4.0. - const _date = toDate(date); + const _date = toDate(date, options?.in); const year = _date.getFullYear(); const decade = 9 + Math.floor(year / 10) * 10; _date.setFullYear(decade, 11, 31); diff --git a/src/date-fns/endOfHour/index.ts b/src/date-fns/endOfHour/index.ts index 1b249c9..adab80d 100644 --- a/src/date-fns/endOfHour/index.ts +++ b/src/date-fns/endOfHour/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link endOfHour} function options. + */ +export interface EndOfHourOptions + extends ContextOptions {} /** * @name endOfHour @@ -10,8 +17,10 @@ import { toDate } from '../toDate/index'; * The result will be in the local timezone. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The end of an hour * @@ -20,8 +29,14 @@ import { toDate } from '../toDate/index'; * const result = endOfHour(new Date(2014, 8, 2, 11, 55)) * //=> Tue Sep 02 2014 11:59:59.999 */ -export function endOfHour(date: DateType | number | string): DateType { - const _date = toDate(date); +export function endOfHour< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: EndOfHourOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); _date.setMinutes(59, 59, 999); return _date; } diff --git a/src/date-fns/endOfISOWeek/index.ts b/src/date-fns/endOfISOWeek/index.ts index 6e7984f..3c47625 100644 --- a/src/date-fns/endOfISOWeek/index.ts +++ b/src/date-fns/endOfISOWeek/index.ts @@ -1,4 +1,11 @@ -import { endOfWeek } from '../endOfWeek/index'; +import { endOfWeek } from "../endOfWeek/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link endOfISOWeek} function options. + */ +export interface EndOfISOWeekOptions + extends ContextOptions {} /** * @name endOfISOWeek @@ -12,8 +19,10 @@ import { endOfWeek } from '../endOfWeek/index'; * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The end of an ISO week * @@ -22,6 +31,12 @@ import { endOfWeek } from '../endOfWeek/index'; * const result = endOfISOWeek(new Date(2014, 8, 2, 11, 55, 0)) * //=> Sun Sep 07 2014 23:59:59.999 */ -export function endOfISOWeek(date: DateType | number | string): DateType { - return endOfWeek(date, { weekStartsOn: 1 }); +export function endOfISOWeek< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: EndOfISOWeekOptions | undefined, +): ResultDate { + return endOfWeek(date, { ...options, weekStartsOn: 1 }); } diff --git a/src/date-fns/endOfISOWeekYear/index.ts b/src/date-fns/endOfISOWeekYear/index.ts index 4a65ce4..217a1d1 100644 --- a/src/date-fns/endOfISOWeekYear/index.ts +++ b/src/date-fns/endOfISOWeekYear/index.ts @@ -1,6 +1,13 @@ -import { getISOWeekYear } from '../getISOWeekYear/index'; -import { startOfISOWeek } from '../startOfISOWeek/index'; -import { constructFrom } from '../constructFrom/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { getISOWeekYear } from "../getISOWeekYear/index.ts"; +import { startOfISOWeek } from "../startOfISOWeek/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link endOfISOWeekYear} function options. + */ +export interface EndOfISOWeekYearOptions + extends ContextOptions {} /** * @name endOfISOWeekYear @@ -15,8 +22,10 @@ import { constructFrom } from '../constructFrom/index'; * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ContextDate - The `Date` type of the context function. * * @param date - The original date + * @param options - The options * * @returns The end of an ISO week-numbering year * @@ -25,12 +34,18 @@ import { constructFrom } from '../constructFrom/index'; * const result = endOfISOWeekYear(new Date(2005, 6, 2)) * //=> Sun Jan 01 2006 23:59:59.999 */ -export function endOfISOWeekYear(date: DateType | number | string): DateType { - const year = getISOWeekYear(date); - const fourthOfJanuaryOfNextYear = constructFrom(date, 0); +export function endOfISOWeekYear< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: EndOfISOWeekYearOptions | undefined, +): ResultDate { + const year = getISOWeekYear(date, options); + const fourthOfJanuaryOfNextYear = constructFrom(options?.in || date, 0); fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4); fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0); - const _date = startOfISOWeek(fourthOfJanuaryOfNextYear); + const _date = startOfISOWeek(fourthOfJanuaryOfNextYear, options); _date.setMilliseconds(_date.getMilliseconds() - 1); return _date; } diff --git a/src/date-fns/endOfMinute/index.ts b/src/date-fns/endOfMinute/index.ts index b8d01c0..933c0bd 100644 --- a/src/date-fns/endOfMinute/index.ts +++ b/src/date-fns/endOfMinute/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link endOfMinute} function options. + */ +export interface EndOfMinuteOptions + extends ContextOptions {} /** * @name endOfMinute @@ -7,11 +14,13 @@ import { toDate } from '../toDate/index'; * * @description * Return the end of a minute for the given date. - * The result will be in the local timezone. + * The result will be in the local timezone or the provided context. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The end of a minute * @@ -20,8 +29,14 @@ import { toDate } from '../toDate/index'; * const result = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400)) * //=> Mon Dec 01 2014 22:15:59.999 */ -export function endOfMinute(date: DateType | number | string): DateType { - const _date = toDate(date); +export function endOfMinute< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: EndOfMinuteOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); _date.setSeconds(59, 999); return _date; } diff --git a/src/date-fns/endOfMonth/index.ts b/src/date-fns/endOfMonth/index.ts index d527794..2983c58 100644 --- a/src/date-fns/endOfMonth/index.ts +++ b/src/date-fns/endOfMonth/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link endOfMonth} function options. + */ +export interface EndOfMonthOptions + extends ContextOptions {} /** * @name endOfMonth @@ -10,8 +17,10 @@ import { toDate } from '../toDate/index'; * The result will be in the local timezone. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The end of a month * @@ -20,8 +29,14 @@ import { toDate } from '../toDate/index'; * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0)) * //=> Tue Sep 30 2014 23:59:59.999 */ -export function endOfMonth(date: DateType | number | string): DateType { - const _date = toDate(date); +export function endOfMonth< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: EndOfMonthOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); const month = _date.getMonth(); _date.setFullYear(_date.getFullYear(), month + 1, 0); _date.setHours(23, 59, 59, 999); diff --git a/src/date-fns/endOfQuarter/index.ts b/src/date-fns/endOfQuarter/index.ts index 2184891..4a20e4f 100644 --- a/src/date-fns/endOfQuarter/index.ts +++ b/src/date-fns/endOfQuarter/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link endOfQuarter} function options. + */ +export interface EndOfQuarterOptions + extends ContextOptions {} /** * @name endOfQuarter @@ -10,8 +17,10 @@ import { toDate } from '../toDate/index'; * The result will be in the local timezone. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The end of a quarter * @@ -20,8 +29,14 @@ import { toDate } from '../toDate/index'; * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0)) * //=> Tue Sep 30 2014 23:59:59.999 */ -export function endOfQuarter(date: DateType | number | string): DateType { - const _date = toDate(date); +export function endOfQuarter< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: EndOfQuarterOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); const currentMonth = _date.getMonth(); const month = currentMonth - (currentMonth % 3) + 3; _date.setMonth(month, 0); diff --git a/src/date-fns/endOfSecond/index.ts b/src/date-fns/endOfSecond/index.ts index d818e37..c5693d2 100644 --- a/src/date-fns/endOfSecond/index.ts +++ b/src/date-fns/endOfSecond/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link endOfSecond} function options. + */ +export interface EndOfSecondOptions + extends ContextOptions {} /** * @name endOfSecond @@ -7,11 +14,13 @@ import { toDate } from '../toDate/index'; * * @description * Return the end of a second for the given date. - * The result will be in the local timezone. + * The result will be in the local timezone if no `in` option is specified. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The end of a second * @@ -20,8 +29,14 @@ import { toDate } from '../toDate/index'; * const result = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400)) * //=> Mon Dec 01 2014 22:15:45.999 */ -export function endOfSecond(date: DateType | number | string): DateType { - const _date = toDate(date); +export function endOfSecond< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: EndOfSecondOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); _date.setMilliseconds(999); return _date; } diff --git a/src/date-fns/endOfToday/index.ts b/src/date-fns/endOfToday/index.ts index 4f23e7e..973d093 100644 --- a/src/date-fns/endOfToday/index.ts +++ b/src/date-fns/endOfToday/index.ts @@ -1,4 +1,11 @@ -import { endOfDay } from '../endOfDay/index'; +import { endOfDay } from "../endOfDay/index.ts"; +import type { ContextOptions } from "../types.ts"; + +/** + * The {@link endOfToday} function options. + */ +export interface EndOfTodayOptions + extends ContextOptions {} /** * @name endOfToday @@ -10,6 +17,9 @@ import { endOfDay } from '../endOfDay/index'; * Return the end of today. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. + * + * @param options - The options * * @returns The end of today * @@ -18,6 +28,8 @@ import { endOfDay } from '../endOfDay/index'; * const result = endOfToday() * //=> Mon Oct 6 2014 23:59:59.999 */ -export function endOfToday(): Date { - return endOfDay(Date.now()); +export function endOfToday( + options?: EndOfTodayOptions, +): ResultDate { + return endOfDay(Date.now(), options); } diff --git a/src/date-fns/endOfTomorrow/index.ts b/src/date-fns/endOfTomorrow/index.ts index df3e59f..c4981b6 100644 --- a/src/date-fns/endOfTomorrow/index.ts +++ b/src/date-fns/endOfTomorrow/index.ts @@ -1,3 +1,12 @@ +import { constructNow } from "../constructNow/index.ts"; +import type { ContextOptions } from "../types.ts"; + +/** + * The {@link endOfTomorrow} function options. + */ +export interface EndOfTomorrowOptions + extends ContextOptions {} + /** * @name endOfTomorrow * @category Day Helpers @@ -8,7 +17,9 @@ * Return the end of tomorrow. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * + * @param options - The options * @returns The end of tomorrow * * @example @@ -16,14 +27,17 @@ * const result = endOfTomorrow() * //=> Tue Oct 7 2014 23:59:59.999 */ -export function endOfTomorrow(): Date { - const now = new Date(); +export function endOfTomorrow< + DateType extends Date, + ResultDate extends Date = DateType, +>(options?: EndOfTomorrowOptions | undefined): ResultDate { + const now = constructNow(options?.in); const year = now.getFullYear(); const month = now.getMonth(); const day = now.getDate(); - const date = new Date(0); + const date = constructNow(options?.in); date.setFullYear(year, month, day + 1); date.setHours(23, 59, 59, 999); - return date; + return options?.in ? options.in(date) : (date as ResultDate); } diff --git a/src/date-fns/endOfWeek/index.ts b/src/date-fns/endOfWeek/index.ts index 6a0ad31..5d74cc6 100644 --- a/src/date-fns/endOfWeek/index.ts +++ b/src/date-fns/endOfWeek/index.ts @@ -1,11 +1,19 @@ -import { toDate } from '../toDate/index'; -import type { LocalizedOptions, WeekOptions } from '../types'; -import { getDefaultOptions } from '../_lib/defaultOptions/index'; +import { getDefaultOptions } from "../_lib/defaultOptions/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { + ContextOptions, + DateArg, + LocalizedOptions, + WeekOptions, +} from "../types.ts"; /** * The {@link endOfWeek} function options. */ -export interface EndOfWeekOptions extends WeekOptions, LocalizedOptions<'options'> {} +export interface EndOfWeekOptions + extends WeekOptions, + LocalizedOptions<"options">, + ContextOptions {} /** * @name endOfWeek @@ -17,6 +25,7 @@ export interface EndOfWeekOptions extends WeekOptions, LocalizedOptions<'options * The result will be in the local timezone. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date * @param options - An object with options @@ -33,10 +42,10 @@ export interface EndOfWeekOptions extends WeekOptions, LocalizedOptions<'options * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 }) * //=> Sun Sep 07 2014 23:59:59.999 */ -export function endOfWeek( - date: DateType | number | string, - options?: EndOfWeekOptions, -): DateType { +export function endOfWeek< + DateType extends Date, + ResultDate extends Date = DateType, +>(date: DateArg, options?: EndOfWeekOptions): ResultDate { const defaultOptions = getDefaultOptions(); const weekStartsOn = options?.weekStartsOn ?? @@ -45,7 +54,7 @@ export function endOfWeek( defaultOptions.locale?.options?.weekStartsOn ?? 0; - const _date = toDate(date); + const _date = toDate(date, options?.in); const day = _date.getDay(); const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn); diff --git a/src/date-fns/endOfYear/index.ts b/src/date-fns/endOfYear/index.ts index 3dee94e..da87eeb 100644 --- a/src/date-fns/endOfYear/index.ts +++ b/src/date-fns/endOfYear/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link endOfYear} function options. + */ +export interface EndOfYearOptions + extends ContextOptions {} /** * @name endOfYear @@ -10,18 +17,23 @@ import { toDate } from '../toDate/index'; * The result will be in the local timezone. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - The options * * @returns The end of a year * * @example * // The end of a year for 2 September 2014 11:55:00: - * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00)) + * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 0)) * //=> Wed Dec 31 2014 23:59:59.999 */ -export function endOfYear(date: DateType | number | string): DateType { - const _date = toDate(date); +export function endOfYear< + DateType extends Date, + ResultDate extends Date = DateType, +>(date: DateArg, options?: EndOfYearOptions): ResultDate { + const _date = toDate(date, options?.in); const year = _date.getFullYear(); _date.setFullYear(year + 1, 0, 0); _date.setHours(23, 59, 59, 999); diff --git a/src/date-fns/endOfYesterday/index.ts b/src/date-fns/endOfYesterday/index.ts index 7b272e7..6665606 100644 --- a/src/date-fns/endOfYesterday/index.ts +++ b/src/date-fns/endOfYesterday/index.ts @@ -1,3 +1,13 @@ +import { constructFrom } from "../constructFrom/index.ts"; +import { constructNow } from "../constructNow/index.ts"; +import type { ContextOptions } from "../types.ts"; + +/** + * The {@link endOfYesterday} function options. + */ +export interface EndOfYesterdayOptions + extends ContextOptions {} + /** * @name endOfYesterday * @category Day Helpers @@ -8,6 +18,7 @@ * Return the end of yesterday. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @returns The end of yesterday * @@ -16,14 +27,13 @@ * const result = endOfYesterday() * //=> Sun Oct 5 2014 23:59:59.999 */ -export function endOfYesterday(): Date { - const now = new Date(); - const year = now.getFullYear(); - const month = now.getMonth(); - const day = now.getDate(); - - const date = new Date(0); - date.setFullYear(year, month, day - 1); +export function endOfYesterday< + DateType extends Date, + ResultDate extends Date = DateType, +>(options?: EndOfYesterdayOptions | undefined): ResultDate { + const now = constructNow(options?.in); + const date = constructFrom(options?.in, 0); + date.setFullYear(now.getFullYear(), now.getMonth(), now.getDate() - 1); date.setHours(23, 59, 59, 999); return date; } diff --git a/src/date-fns/format/index.ts b/src/date-fns/format/index.ts index 0e2262c..d30df53 100644 --- a/src/date-fns/format/index.ts +++ b/src/date-fns/format/index.ts @@ -1,21 +1,23 @@ -import { defaultLocale } from '../_lib/defaultLocale/index'; -import { getDefaultOptions } from '../_lib/defaultOptions/index'; -import { formatters } from '../_lib/format/formatters/index'; -import { longFormatters } from '../_lib/format/longFormatters/index'; +import { defaultLocale } from "../_lib/defaultLocale/index.ts"; +import { getDefaultOptions } from "../_lib/defaultOptions/index.ts"; +import { formatters } from "../_lib/format/formatters/index.ts"; +import { longFormatters } from "../_lib/format/longFormatters/index.ts"; import { isProtectedDayOfYearToken, isProtectedWeekYearToken, warnOrThrowProtectedError, -} from '../_lib/protectedTokens/index'; -import { isValid } from '../isValid/index'; -import { toDate } from '../toDate/index'; +} from "../_lib/protectedTokens/index.ts"; +import { isValid } from "../isValid/index.ts"; +import { toDate } from "../toDate/index.ts"; import type { AdditionalTokensOptions, + ContextOptions, + DateArg, FirstWeekContainsDateOptions, FormatPart, LocalizedOptions, WeekOptions, -} from '../types'; +} from "../types.ts"; // Rexports of internal for libraries to use. // See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874 @@ -32,7 +34,8 @@ export { formatters, longFormatters }; // If there is no matching single quote // then the sequence will continue until the end of the string. // - . matches any single character unmatched by previous parts of the RegExps -const formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; +const formattingTokensRegExp = + /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also // sequences of symbols P, p, and the combinations like `PPPPPPPppppp` @@ -49,10 +52,11 @@ export type { FormatOptions as FormatDateOptions }; * The {@link format} function options. */ export interface FormatOptions - extends LocalizedOptions<'options' | 'localize' | 'formatLong'>, + extends LocalizedOptions<"options" | "localize" | "formatLong">, WeekOptions, FirstWeekContainsDateOptions, - AdditionalTokensOptions {} + AdditionalTokensOptions, + ContextOptions {} /** * @name format @@ -305,8 +309,6 @@ export interface FormatOptions * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month. * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The original date * @param format - The string of tokens * @param options - An object with options @@ -340,8 +342,8 @@ export interface FormatOptions * const result = format(new Date(2014, 6, 2, 15), "h 'o''clock'") * //=> "3 o'clock" */ -export function format( - date: DateType | number | string, +export function format( + date: DateArg & {}, formatStr: string, options?: FormatOptions, ): string { @@ -362,23 +364,23 @@ export function format( defaultOptions.locale?.options?.weekStartsOn ?? 0; - const originalDate = toDate(date); + const originalDate = toDate(date, options?.in); if (!isValid(originalDate)) { - throw new RangeError('Invalid time value'); + throw new RangeError("Invalid time value"); } let parts: FormatPart[] = formatStr .match(longFormattingTokensRegExp)! .map((substring) => { const firstCharacter = substring[0]; - if (firstCharacter === 'p' || firstCharacter === 'P') { + if (firstCharacter === "p" || firstCharacter === "P") { const longFormatter = longFormatters[firstCharacter]; - return longFormatter!(substring, locale.formatLong); + return longFormatter(substring, locale.formatLong); } return substring; }) - .join('') + .join("") .match(formattingTokensRegExp)! .map((substring) => { // Replace two single quote characters with one single quote character @@ -391,12 +393,16 @@ export function format( return { isToken: false, value: cleanEscapedString(substring) }; } - if (formatters[firstCharacter!]) { + if (formatters[firstCharacter]) { return { isToken: true, value: substring }; } - if (firstCharacter!.match(unescapedLatinCharacterRegExp)) { - throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`'); + if (firstCharacter.match(unescapedLatinCharacterRegExp)) { + throw new RangeError( + "Format string contains an unescaped latin alphabet character `" + + firstCharacter + + "`", + ); } return { isToken: false, value: substring }; @@ -420,16 +426,18 @@ export function format( const token = part.value; if ( - (!options?.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) || - (!options?.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) + (!options?.useAdditionalWeekYearTokens && + isProtectedWeekYearToken(token)) || + (!options?.useAdditionalDayOfYearTokens && + isProtectedDayOfYearToken(token)) ) { warnOrThrowProtectedError(token, formatStr, String(date)); } - const formatter = formatters[token[0]!]; - return formatter!(originalDate, token, locale.localize, formatterOptions); + const formatter = formatters[token[0]]; + return formatter(originalDate, token, locale.localize, formatterOptions); }) - .join(''); + .join(""); } function cleanEscapedString(input: string): string { @@ -439,5 +447,5 @@ function cleanEscapedString(input: string): string { return input; } - return matched[1]!.replace(doubleQuoteRegExp, "'"); + return matched[1].replace(doubleQuoteRegExp, "'"); } diff --git a/src/date-fns/formatDistance/index.ts b/src/date-fns/formatDistance/index.ts index 269506c..f5b745a 100644 --- a/src/date-fns/formatDistance/index.ts +++ b/src/date-fns/formatDistance/index.ts @@ -1,17 +1,19 @@ -import { compareAsc } from '../compareAsc/index'; -import { minutesInDay, minutesInMonth } from '../constants/index'; -import { differenceInMonths } from '../differenceInMonths/index'; -import { differenceInSeconds } from '../differenceInSeconds/index'; -import { toDate } from '../toDate/index'; -import type { LocalizedOptions } from '../types'; -import { defaultLocale } from '../_lib/defaultLocale/index'; -import { getDefaultOptions } from '../_lib/defaultOptions/index'; -import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMilliseconds/index'; +import { defaultLocale } from "../_lib/defaultLocale/index.ts"; +import { getDefaultOptions } from "../_lib/defaultOptions/index.ts"; +import { getTimezoneOffsetInMilliseconds } from "../_lib/getTimezoneOffsetInMilliseconds/index.ts"; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { compareAsc } from "../compareAsc/index.ts"; +import { minutesInDay, minutesInMonth } from "../constants/index.ts"; +import { differenceInMonths } from "../differenceInMonths/index.ts"; +import { differenceInSeconds } from "../differenceInSeconds/index.ts"; +import type { ContextOptions, DateArg, LocalizedOptions } from "../types.ts"; /** * The {@link formatDistance} function options. */ -export interface FormatDistanceOptions extends LocalizedOptions<'formatDistance'> { +export interface FormatDistanceOptions + extends LocalizedOptions<"formatDistance">, + ContextOptions { /** Distances less than a minute are more detailed */ includeSeconds?: boolean; /** Add "X ago"/"in X" in the locale language */ @@ -55,10 +57,8 @@ export interface FormatDistanceOptions extends LocalizedOptions<'formatDistance' * | 40 secs ... 60 secs | less than a minute | * | 60 secs ... 90 secs | 1 minute | * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param date - The date - * @param baseDate - The date to compare with + * @param laterDate - The date + * @param earlierDate - The date to compare with * @param options - An object with options * * @returns The distance in words @@ -98,40 +98,34 @@ export interface FormatDistanceOptions extends LocalizedOptions<'formatDistance' * }) * //=> 'pli ol 1 jaro' */ - -export function formatDistance( - date: DateType | number | string, - baseDate: DateType | number | string, +export function formatDistance( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, options?: FormatDistanceOptions, ): string { const defaultOptions = getDefaultOptions(); const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale; const minutesInAlmostTwoDays = 2520; - const comparison = compareAsc(date, baseDate); + const comparison = compareAsc(laterDate, earlierDate); - if (isNaN(comparison)) { - throw new RangeError('Invalid time value'); - } + if (isNaN(comparison)) throw new RangeError("Invalid time value"); const localizeOptions = Object.assign({}, options, { addSuffix: options?.addSuffix, comparison: comparison as -1 | 0 | 1, }); - let dateLeft; - let dateRight; - if (comparison > 0) { - dateLeft = toDate(baseDate); - dateRight = toDate(date); - } else { - dateLeft = toDate(date); - dateRight = toDate(baseDate); - } + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + ...(comparison > 0 ? [earlierDate, laterDate] : [laterDate, earlierDate]), + ); - const seconds = differenceInSeconds(dateRight, dateLeft); + const seconds = differenceInSeconds(earlierDate_, laterDate_); const offsetInSeconds = - (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000; + (getTimezoneOffsetInMilliseconds(earlierDate_) - + getTimezoneOffsetInMilliseconds(laterDate_)) / + 1000; const minutes = Math.round((seconds - offsetInSeconds) / 60); let months; @@ -139,60 +133,60 @@ export function formatDistance( if (minutes < 2) { if (options?.includeSeconds) { if (seconds < 5) { - return locale.formatDistance('lessThanXSeconds', 5, localizeOptions); + return locale.formatDistance("lessThanXSeconds", 5, localizeOptions); } else if (seconds < 10) { - return locale.formatDistance('lessThanXSeconds', 10, localizeOptions); + return locale.formatDistance("lessThanXSeconds", 10, localizeOptions); } else if (seconds < 20) { - return locale.formatDistance('lessThanXSeconds', 20, localizeOptions); + return locale.formatDistance("lessThanXSeconds", 20, localizeOptions); } else if (seconds < 40) { - return locale.formatDistance('halfAMinute', 0, localizeOptions); + return locale.formatDistance("halfAMinute", 0, localizeOptions); } else if (seconds < 60) { - return locale.formatDistance('lessThanXMinutes', 1, localizeOptions); + return locale.formatDistance("lessThanXMinutes", 1, localizeOptions); } else { - return locale.formatDistance('xMinutes', 1, localizeOptions); + return locale.formatDistance("xMinutes", 1, localizeOptions); } } else { if (minutes === 0) { - return locale.formatDistance('lessThanXMinutes', 1, localizeOptions); + return locale.formatDistance("lessThanXMinutes", 1, localizeOptions); } else { - return locale.formatDistance('xMinutes', minutes, localizeOptions); + return locale.formatDistance("xMinutes", minutes, localizeOptions); } } // 2 mins up to 0.75 hrs } else if (minutes < 45) { - return locale.formatDistance('xMinutes', minutes, localizeOptions); + return locale.formatDistance("xMinutes", minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs } else if (minutes < 90) { - return locale.formatDistance('aboutXHours', 1, localizeOptions); + return locale.formatDistance("aboutXHours", 1, localizeOptions); // 1.5 hrs up to 24 hrs } else if (minutes < minutesInDay) { const hours = Math.round(minutes / 60); - return locale.formatDistance('aboutXHours', hours, localizeOptions); + return locale.formatDistance("aboutXHours", hours, localizeOptions); // 1 day up to 1.75 days } else if (minutes < minutesInAlmostTwoDays) { - return locale.formatDistance('xDays', 1, localizeOptions); + return locale.formatDistance("xDays", 1, localizeOptions); // 1.75 days up to 30 days } else if (minutes < minutesInMonth) { const days = Math.round(minutes / minutesInDay); - return locale.formatDistance('xDays', days, localizeOptions); + return locale.formatDistance("xDays", days, localizeOptions); // 1 month up to 2 months } else if (minutes < minutesInMonth * 2) { months = Math.round(minutes / minutesInMonth); - return locale.formatDistance('aboutXMonths', months, localizeOptions); + return locale.formatDistance("aboutXMonths", months, localizeOptions); } - months = differenceInMonths(dateRight, dateLeft); + months = differenceInMonths(earlierDate_, laterDate_); // 2 months up to 12 months if (months < 12) { const nearestMonth = Math.round(minutes / minutesInMonth); - return locale.formatDistance('xMonths', nearestMonth, localizeOptions); + return locale.formatDistance("xMonths", nearestMonth, localizeOptions); // 1 year up to max Date } else { @@ -201,15 +195,15 @@ export function formatDistance( // N years up to 1 years 3 months if (monthsSinceStartOfYear < 3) { - return locale.formatDistance('aboutXYears', years, localizeOptions); + return locale.formatDistance("aboutXYears", years, localizeOptions); // N years 3 months up to N years 9 months } else if (monthsSinceStartOfYear < 9) { - return locale.formatDistance('overXYears', years, localizeOptions); + return locale.formatDistance("overXYears", years, localizeOptions); // N years 9 months up to N year 12 months } else { - return locale.formatDistance('almostXYears', years + 1, localizeOptions); + return locale.formatDistance("almostXYears", years + 1, localizeOptions); } } } diff --git a/src/date-fns/formatDistanceStrict/index.ts b/src/date-fns/formatDistanceStrict/index.ts index ff2b386..5c9e6eb 100644 --- a/src/date-fns/formatDistanceStrict/index.ts +++ b/src/date-fns/formatDistanceStrict/index.ts @@ -1,16 +1,29 @@ -import { defaultLocale } from '../_lib/defaultLocale/index'; -import { getDefaultOptions } from '../_lib/defaultOptions/index'; -import { getRoundingMethod } from '../_lib/getRoundingMethod/index'; -import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMilliseconds/index'; -import { compareAsc } from '../compareAsc/index'; -import { millisecondsInMinute, minutesInDay, minutesInMonth, minutesInYear } from '../constants/index'; -import { toDate } from '../toDate/index'; -import type { LocalizedOptions, RoundingOptions } from '../types'; +import { defaultLocale } from "../_lib/defaultLocale/index.ts"; +import { getDefaultOptions } from "../_lib/defaultOptions/index.ts"; +import { getRoundingMethod } from "../_lib/getRoundingMethod/index.ts"; +import { getTimezoneOffsetInMilliseconds } from "../_lib/getTimezoneOffsetInMilliseconds/index.ts"; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { compareAsc } from "../compareAsc/index.ts"; +import { + millisecondsInMinute, + minutesInDay, + minutesInMonth, + minutesInYear, +} from "../constants/index.ts"; +import type { + ContextOptions, + DateArg, + LocalizedOptions, + RoundingOptions, +} from "../types.ts"; /** * The {@link formatDistanceStrict} function options. */ -export interface FormatDistanceStrictOptions extends LocalizedOptions<'formatDistance'>, RoundingOptions { +export interface FormatDistanceStrictOptions + extends LocalizedOptions<"formatDistance">, + RoundingOptions, + ContextOptions { /** Add "X ago"/"in X" in the locale language */ addSuffix?: boolean; /** If specified, will force the unit */ @@ -20,7 +33,13 @@ export interface FormatDistanceStrictOptions extends LocalizedOptions<'formatDis /** * The unit used to format the distance in {@link formatDistanceStrict}. */ -export type FormatDistanceStrictUnit = 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year'; +export type FormatDistanceStrictUnit = + | "second" + | "minute" + | "hour" + | "day" + | "month" + | "year"; /** * @name formatDistanceStrict @@ -41,10 +60,8 @@ export type FormatDistanceStrictUnit = 'second' | 'minute' | 'hour' | 'day' | 'm * | 1 ... 11 months | [1..11] months | * | 1 ... N years | [1..N] years | * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param date - The date - * @param baseDate - The date to compare with + * @param laterDate - The date + * @param earlierDate - The date to compare with * @param options - An object with options * * @returns The distance in words @@ -102,18 +119,18 @@ export type FormatDistanceStrictUnit = 'second' | 'minute' | 'hour' | 'day' | 'm * //=> '1 jaro' */ -export function formatDistanceStrict( - date: DateType | number | string, - baseDate: DateType | number | string, +export function formatDistanceStrict( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, options?: FormatDistanceStrictOptions, ): string { const defaultOptions = getDefaultOptions(); const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale; - const comparison = compareAsc(date, baseDate); + const comparison = compareAsc(laterDate, earlierDate); if (isNaN(comparison)) { - throw new RangeError('Invalid time value'); + throw new RangeError("Invalid time value"); } const localizeOptions = Object.assign({}, options, { @@ -121,77 +138,75 @@ export function formatDistanceStrict( comparison: comparison as -1 | 0 | 1, }); - let dateLeft; - let dateRight; - if (comparison > 0) { - dateLeft = toDate(baseDate); - dateRight = toDate(date); - } else { - dateLeft = toDate(date); - dateRight = toDate(baseDate); - } + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + ...(comparison > 0 ? [earlierDate, laterDate] : [laterDate, earlierDate]), + ); - const roundingMethod = getRoundingMethod(options?.roundingMethod ?? 'round'); + const roundingMethod = getRoundingMethod(options?.roundingMethod ?? "round"); - const milliseconds = dateRight.getTime() - dateLeft.getTime(); + const milliseconds = earlierDate_.getTime() - laterDate_.getTime(); const minutes = milliseconds / millisecondsInMinute; - const timezoneOffset = getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft); + const timezoneOffset = + getTimezoneOffsetInMilliseconds(earlierDate_) - + getTimezoneOffsetInMilliseconds(laterDate_); // Use DST-normalized difference in minutes for years, months and days; // use regular difference in minutes for hours, minutes and seconds. - const dstNormalizedMinutes = (milliseconds - timezoneOffset) / millisecondsInMinute; + const dstNormalizedMinutes = + (milliseconds - timezoneOffset) / millisecondsInMinute; const defaultUnit = options?.unit; let unit: FormatDistanceStrictUnit; if (!defaultUnit) { if (minutes < 1) { - unit = 'second'; + unit = "second"; } else if (minutes < 60) { - unit = 'minute'; + unit = "minute"; } else if (minutes < minutesInDay) { - unit = 'hour'; + unit = "hour"; } else if (dstNormalizedMinutes < minutesInMonth) { - unit = 'day'; + unit = "day"; } else if (dstNormalizedMinutes < minutesInYear) { - unit = 'month'; + unit = "month"; } else { - unit = 'year'; + unit = "year"; } } else { unit = defaultUnit; } // 0 up to 60 seconds - if (unit === 'second') { + if (unit === "second") { const seconds = roundingMethod(milliseconds / 1000); - return locale.formatDistance('xSeconds', seconds, localizeOptions); + return locale.formatDistance("xSeconds", seconds, localizeOptions); // 1 up to 60 mins - } else if (unit === 'minute') { + } else if (unit === "minute") { const roundedMinutes = roundingMethod(minutes); - return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions); + return locale.formatDistance("xMinutes", roundedMinutes, localizeOptions); // 1 up to 24 hours - } else if (unit === 'hour') { + } else if (unit === "hour") { const hours = roundingMethod(minutes / 60); - return locale.formatDistance('xHours', hours, localizeOptions); + return locale.formatDistance("xHours", hours, localizeOptions); // 1 up to 30 days - } else if (unit === 'day') { + } else if (unit === "day") { const days = roundingMethod(dstNormalizedMinutes / minutesInDay); - return locale.formatDistance('xDays', days, localizeOptions); + return locale.formatDistance("xDays", days, localizeOptions); // 1 up to 12 months - } else if (unit === 'month') { + } else if (unit === "month") { const months = roundingMethod(dstNormalizedMinutes / minutesInMonth); - return months === 12 && defaultUnit !== 'month' - ? locale.formatDistance('xYears', 1, localizeOptions) - : locale.formatDistance('xMonths', months, localizeOptions); + return months === 12 && defaultUnit !== "month" + ? locale.formatDistance("xYears", 1, localizeOptions) + : locale.formatDistance("xMonths", months, localizeOptions); // 1 year up to max Date } else { const years = roundingMethod(dstNormalizedMinutes / minutesInYear); - return locale.formatDistance('xYears', years, localizeOptions); + return locale.formatDistance("xYears", years, localizeOptions); } } diff --git a/src/date-fns/formatDistanceToNow/index.ts b/src/date-fns/formatDistanceToNow/index.ts index f370e1c..d7bc907 100644 --- a/src/date-fns/formatDistanceToNow/index.ts +++ b/src/date-fns/formatDistanceToNow/index.ts @@ -1,11 +1,14 @@ -import { constructNow } from '../constructNow/index'; -import type { FormatDistanceOptions } from '../formatDistance/index'; -import { formatDistance } from '../formatDistance/index'; +import { constructNow } from "../constructNow/index.ts"; +import type { FormatDistanceOptions } from "../formatDistance/index.ts"; +import { formatDistance } from "../formatDistance/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; /** * The {@link formatDistanceToNow} function options. */ -export interface FormatDistanceToNowOptions extends FormatDistanceOptions {} +export interface FormatDistanceToNowOptions + extends FormatDistanceOptions, + ContextOptions {} /** * @name formatDistanceToNow @@ -45,8 +48,6 @@ export interface FormatDistanceToNowOptions extends FormatDistanceOptions {} * | 40 secs ... 60 secs | less than a minute | * | 60 secs ... 90 secs | 1 minute | * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date * @param options - The object with options * @@ -90,8 +91,8 @@ export interface FormatDistanceToNowOptions extends FormatDistanceOptions {} * ) * //=> 'pli ol 1 jaro' */ -export function formatDistanceToNow( - date: DateType | number | string, +export function formatDistanceToNow( + date: DateArg & {}, options?: FormatDistanceToNowOptions, ): string { return formatDistance(date, constructNow(date), options); diff --git a/src/date-fns/formatDistanceToNowStrict/index.ts b/src/date-fns/formatDistanceToNowStrict/index.ts index 5c47ac5..fce4244 100644 --- a/src/date-fns/formatDistanceToNowStrict/index.ts +++ b/src/date-fns/formatDistanceToNowStrict/index.ts @@ -1,11 +1,14 @@ -import type { FormatDistanceStrictOptions } from '../formatDistanceStrict/index'; -import { formatDistanceStrict } from '../formatDistanceStrict/index'; -import { constructNow } from '../constructNow/index'; +import { constructNow } from "../constructNow/index.ts"; +import type { FormatDistanceStrictOptions } from "../formatDistanceStrict/index.ts"; +import { formatDistanceStrict } from "../formatDistanceStrict/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; /** * The {@link formatDistanceToNowStrict} function options. */ -export interface FormatDistanceToNowStrictOptions extends FormatDistanceStrictOptions {} +export interface FormatDistanceToNowStrictOptions + extends FormatDistanceStrictOptions, + ContextOptions {} /** * @name formatDistanceToNowStrict @@ -27,8 +30,6 @@ export interface FormatDistanceToNowStrictOptions extends FormatDistanceStrictOp * | 1 ... 11 months | [1..11] months | * | 1 ... N years | [1..N] years | * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date * @param options - An object with options. * @@ -80,8 +81,8 @@ export interface FormatDistanceToNowStrictOptions extends FormatDistanceStrictOp * ) * //=> '1 jaro' */ -export function formatDistanceToNowStrict( - date: DateType | number | string, +export function formatDistanceToNowStrict( + date: DateArg & {}, options?: FormatDistanceToNowStrictOptions, ): string { return formatDistanceStrict(date, constructNow(date), options); diff --git a/src/date-fns/formatDuration/index.ts b/src/date-fns/formatDuration/index.ts index c819bf5..7f67207 100644 --- a/src/date-fns/formatDuration/index.ts +++ b/src/date-fns/formatDuration/index.ts @@ -1,12 +1,13 @@ -import type { FormatDistanceToken } from '../locale/types'; -import type { Duration, DurationUnit, LocalizedOptions } from '../types'; -import { defaultLocale } from '../_lib/defaultLocale/index'; -import { getDefaultOptions } from '../_lib/defaultOptions/index'; +import type { FormatDistanceToken } from "../locale/types.ts"; +import type { Duration, DurationUnit, LocalizedOptions } from "../types.ts"; +import { defaultLocale } from "../_lib/defaultLocale/index.ts"; +import { getDefaultOptions } from "../_lib/defaultOptions/index.ts"; /** * The {@link formatDuration} function options. */ -export interface FormatDurationOptions extends LocalizedOptions<'formatDistance'> { +export interface FormatDurationOptions + extends LocalizedOptions<"formatDistance"> { /** The array of units to format */ format?: DurationUnit[]; /** Should be zeros be included in the output? */ @@ -15,7 +16,15 @@ export interface FormatDurationOptions extends LocalizedOptions<'formatDistance' delimiter?: string; } -const defaultFormat: DurationUnit[] = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds']; +const defaultFormat: DurationUnit[] = [ + "years", + "months", + "weeks", + "days", + "hours", + "minutes", + "seconds", +]; /** * @name formatDuration @@ -25,8 +34,6 @@ const defaultFormat: DurationUnit[] = ['years', 'months', 'weeks', 'days', 'hour * @description * Return human-readable duration string i.e. "9 months 2 days" * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param duration - The duration to format * @param options - An object with options. * @@ -77,20 +84,25 @@ const defaultFormat: DurationUnit[] = ['years', 'months', 'weeks', 'days', 'hour * formatDuration({ years: 2, months: 9, weeks: 3 }, { delimiter: ', ' }) * //=> '2 years, 9 months, 3 weeks' */ -export function formatDuration(duration: Duration, options?: FormatDurationOptions): string { +export function formatDuration( + duration: Duration, + options?: FormatDurationOptions, +): string { const defaultOptions = getDefaultOptions(); const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale; const format = options?.format ?? defaultFormat; const zero = options?.zero ?? false; - const delimiter = options?.delimiter ?? ' '; + const delimiter = options?.delimiter ?? " "; if (!locale.formatDistance) { - return ''; + return ""; } const result = format .reduce((acc, unit) => { - const token = `x${unit.replace(/(^.)/, (m) => m.toUpperCase())}` as FormatDistanceToken; + const token = `x${unit.replace(/(^.)/, (m) => + m.toUpperCase(), + )}` as FormatDistanceToken; const value = duration[unit]; if (value !== undefined && (zero || duration[unit])) { return acc.concat(locale.formatDistance(token, value)); diff --git a/src/date-fns/formatISO/index.ts b/src/date-fns/formatISO/index.ts index a5ffaf5..ea13223 100644 --- a/src/date-fns/formatISO/index.ts +++ b/src/date-fns/formatISO/index.ts @@ -1,11 +1,13 @@ -import { toDate } from '../toDate/index'; -import type { ISOFormatOptions } from '../types'; -import { addLeadingZeros } from '../_lib/addLeadingZeros/index'; +import { addLeadingZeros } from "../_lib/addLeadingZeros/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg, ISOFormatOptions } from "../types.ts"; /** * The {@link formatISO} function options. */ -export interface FormatISOOptions extends ISOFormatOptions {} +export interface FormatISOOptions + extends ISOFormatOptions, + ContextOptions {} /** * @name formatISO @@ -15,12 +17,10 @@ export interface FormatISOOptions extends ISOFormatOptions {} * @description * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The original date * @param options - An object with options. * - * @returns The formatted date string (in loca.l time zone) + * @returns The formatted date string (in local time zone) * * @throws `date` must not be Invalid Date * @@ -44,55 +44,58 @@ export interface FormatISOOptions extends ISOFormatOptions {} * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' }) * //=> '19:00:52Z' */ -export function formatISO(date: DateType | number | string, options?: FormatISOOptions): string { - const _date = toDate(date); - - if (isNaN(_date.getTime())) { - throw new RangeError('Invalid time value'); +export function formatISO( + date: DateArg & {}, + options?: FormatISOOptions, +): string { + const date_ = toDate(date, options?.in); + + if (isNaN(+date_)) { + throw new RangeError("Invalid time value"); } - const format = options?.format ?? 'extended'; - const representation = options?.representation ?? 'complete'; + const format = options?.format ?? "extended"; + const representation = options?.representation ?? "complete"; - let result = ''; - let tzOffset = ''; + let result = ""; + let tzOffset = ""; - const dateDelimiter = format === 'extended' ? '-' : ''; - const timeDelimiter = format === 'extended' ? ':' : ''; + const dateDelimiter = format === "extended" ? "-" : ""; + const timeDelimiter = format === "extended" ? ":" : ""; // Representation is either 'date' or 'complete' - if (representation !== 'time') { - const day = addLeadingZeros(_date.getDate(), 2); - const month = addLeadingZeros(_date.getMonth() + 1, 2); - const year = addLeadingZeros(_date.getFullYear(), 4); + if (representation !== "time") { + const day = addLeadingZeros(date_.getDate(), 2); + const month = addLeadingZeros(date_.getMonth() + 1, 2); + const year = addLeadingZeros(date_.getFullYear(), 4); // yyyyMMdd or yyyy-MM-dd. result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`; } // Representation is either 'time' or 'complete' - if (representation !== 'date') { + if (representation !== "date") { // Add the timezone. - const offset = _date.getTimezoneOffset(); + const offset = date_.getTimezoneOffset(); if (offset !== 0) { const absoluteOffset = Math.abs(offset); const hourOffset = addLeadingZeros(Math.trunc(absoluteOffset / 60), 2); const minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); // If less than 0, the sign is +, because it is ahead of time. - const sign = offset < 0 ? '+' : '-'; + const sign = offset < 0 ? "+" : "-"; tzOffset = `${sign}${hourOffset}:${minuteOffset}`; } else { - tzOffset = 'Z'; + tzOffset = "Z"; } - const hour = addLeadingZeros(_date.getHours(), 2); - const minute = addLeadingZeros(_date.getMinutes(), 2); - const second = addLeadingZeros(_date.getSeconds(), 2); + const hour = addLeadingZeros(date_.getHours(), 2); + const minute = addLeadingZeros(date_.getMinutes(), 2); + const second = addLeadingZeros(date_.getSeconds(), 2); // If there's also date, separate it with time with 'T' - const separator = result === '' ? '' : 'T'; + const separator = result === "" ? "" : "T"; // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined. const time = [hour, minute, second].join(timeDelimiter); diff --git a/src/date-fns/formatISO9075/index.ts b/src/date-fns/formatISO9075/index.ts index 1e20657..fec3442 100644 --- a/src/date-fns/formatISO9075/index.ts +++ b/src/date-fns/formatISO9075/index.ts @@ -1,12 +1,14 @@ -import { isValid } from '../isValid/index'; -import { toDate } from '../toDate/index'; -import type { ISOFormatOptions } from '../types'; -import { addLeadingZeros } from '../_lib/addLeadingZeros/index'; +import { addLeadingZeros } from "../_lib/addLeadingZeros/index.ts"; +import { isValid } from "../isValid/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg, ISOFormatOptions } from "../types.ts"; /** * The {@link formatISO9075} function options. */ -export interface FormatISO9075Options extends ISOFormatOptions {} +export interface FormatISO9075Options + extends ISOFormatOptions, + ContextOptions {} /** * @name formatISO9075 @@ -16,8 +18,6 @@ export interface FormatISO9075Options extends ISOFormatOptions {} * @description * Return the formatted date string in ISO 9075 format. Options may be passed to control the parts and notations of the date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The original date * @param options - An object with options. * @@ -45,42 +45,42 @@ export interface FormatISO9075Options extends ISOFormatOptions {} * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' }) * //=> '19:00:52' */ -export function formatISO9075( - date: DateType | number | string, +export function formatISO9075( + date: DateArg & {}, options?: FormatISO9075Options, ): string { - const _date = toDate(date); + const date_ = toDate(date, options?.in); - if (!isValid(_date)) { - throw new RangeError('Invalid time value'); + if (!isValid(date_)) { + throw new RangeError("Invalid time value"); } - const format = options?.format ?? 'extended'; - const representation = options?.representation ?? 'complete'; + const format = options?.format ?? "extended"; + const representation = options?.representation ?? "complete"; - let result = ''; + let result = ""; - const dateDelimiter = format === 'extended' ? '-' : ''; - const timeDelimiter = format === 'extended' ? ':' : ''; + const dateDelimiter = format === "extended" ? "-" : ""; + const timeDelimiter = format === "extended" ? ":" : ""; // Representation is either 'date' or 'complete' - if (representation !== 'time') { - const day = addLeadingZeros(_date.getDate(), 2); - const month = addLeadingZeros(_date.getMonth() + 1, 2); - const year = addLeadingZeros(_date.getFullYear(), 4); + if (representation !== "time") { + const day = addLeadingZeros(date_.getDate(), 2); + const month = addLeadingZeros(date_.getMonth() + 1, 2); + const year = addLeadingZeros(date_.getFullYear(), 4); // yyyyMMdd or yyyy-MM-dd. result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`; } // Representation is either 'time' or 'complete' - if (representation !== 'date') { - const hour = addLeadingZeros(_date.getHours(), 2); - const minute = addLeadingZeros(_date.getMinutes(), 2); - const second = addLeadingZeros(_date.getSeconds(), 2); + if (representation !== "date") { + const hour = addLeadingZeros(date_.getHours(), 2); + const minute = addLeadingZeros(date_.getMinutes(), 2); + const second = addLeadingZeros(date_.getSeconds(), 2); // If there's also date, separate it with time with a space - const separator = result === '' ? '' : ' '; + const separator = result === "" ? "" : " "; // HHmmss or HH:mm:ss. result = `${result}${separator}${hour}${timeDelimiter}${minute}${timeDelimiter}${second}`; diff --git a/src/date-fns/formatISODuration/index.ts b/src/date-fns/formatISODuration/index.ts index 59c7104..24f5406 100644 --- a/src/date-fns/formatISODuration/index.ts +++ b/src/date-fns/formatISODuration/index.ts @@ -1,4 +1,4 @@ -import type { Duration } from '../types'; +import type { Duration } from "../types.ts"; /** * @name formatISODuration @@ -25,7 +25,14 @@ import type { Duration } from '../types'; * //=> 'P39Y2M20DT0H0M0S' */ export function formatISODuration(duration: Duration): string { - const { years = 0, months = 0, days = 0, hours = 0, minutes = 0, seconds = 0 } = duration; + const { + years = 0, + months = 0, + days = 0, + hours = 0, + minutes = 0, + seconds = 0, + } = duration; return `P${years}Y${months}M${days}DT${hours}H${minutes}M${seconds}S`; } diff --git a/src/date-fns/formatRFC3339/index.ts b/src/date-fns/formatRFC3339/index.ts index 625aeed..b1e3b48 100644 --- a/src/date-fns/formatRFC3339/index.ts +++ b/src/date-fns/formatRFC3339/index.ts @@ -1,11 +1,12 @@ -import { isValid } from '../isValid/index'; -import { toDate } from '../toDate/index'; -import { addLeadingZeros } from '../_lib/addLeadingZeros/index'; +import { addLeadingZeros } from "../_lib/addLeadingZeros/index.ts"; +import { isValid } from "../isValid/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; /** * The {@link formatRFC3339} function options. */ -export interface FormatRFC3339Options { +export interface FormatRFC3339Options extends ContextOptions { /** The number of digits after the decimal point after seconds, defaults to 0 */ fractionDigits?: 0 | 1 | 2 | 3; } @@ -18,8 +19,6 @@ export interface FormatRFC3339Options { * @description * Return the formatted date string in RFC 3339 format. Options may be passed to control the parts and notations of the date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The original date * @param options - An object with options. * @@ -39,46 +38,48 @@ export interface FormatRFC3339Options { * }) * //=> '2019-09-18T19:00:52.234Z' */ -export function formatRFC3339( - date: DateType | number | string, +export function formatRFC3339( + date: DateArg & {}, options?: FormatRFC3339Options, ): string { - const _date = toDate(date); + const date_ = toDate(date, options?.in); - if (!isValid(_date)) { - throw new RangeError('Invalid time value'); + if (!isValid(date_)) { + throw new RangeError("Invalid time value"); } const fractionDigits = options?.fractionDigits ?? 0; - const day = addLeadingZeros(_date.getDate(), 2); - const month = addLeadingZeros(_date.getMonth() + 1, 2); - const year = _date.getFullYear(); + const day = addLeadingZeros(date_.getDate(), 2); + const month = addLeadingZeros(date_.getMonth() + 1, 2); + const year = date_.getFullYear(); - const hour = addLeadingZeros(_date.getHours(), 2); - const minute = addLeadingZeros(_date.getMinutes(), 2); - const second = addLeadingZeros(_date.getSeconds(), 2); + const hour = addLeadingZeros(date_.getHours(), 2); + const minute = addLeadingZeros(date_.getMinutes(), 2); + const second = addLeadingZeros(date_.getSeconds(), 2); - let fractionalSecond = ''; + let fractionalSecond = ""; if (fractionDigits > 0) { - const milliseconds = _date.getMilliseconds(); - const fractionalSeconds = Math.trunc(milliseconds * Math.pow(10, fractionDigits - 3)); - fractionalSecond = '.' + addLeadingZeros(fractionalSeconds, fractionDigits); + const milliseconds = date_.getMilliseconds(); + const fractionalSeconds = Math.trunc( + milliseconds * Math.pow(10, fractionDigits - 3), + ); + fractionalSecond = "." + addLeadingZeros(fractionalSeconds, fractionDigits); } - let offset = ''; - const tzOffset = _date.getTimezoneOffset(); + let offset = ""; + const tzOffset = date_.getTimezoneOffset(); if (tzOffset !== 0) { const absoluteOffset = Math.abs(tzOffset); const hourOffset = addLeadingZeros(Math.trunc(absoluteOffset / 60), 2); const minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); // If less than 0, the sign is +, because it is ahead of time. - const sign = tzOffset < 0 ? '+' : '-'; + const sign = tzOffset < 0 ? "+" : "-"; offset = `${sign}${hourOffset}:${minuteOffset}`; } else { - offset = 'Z'; + offset = "Z"; } return `${year}-${month}-${day}T${hour}:${minute}:${second}${fractionalSecond}${offset}`; diff --git a/src/date-fns/formatRFC7231/index.ts b/src/date-fns/formatRFC7231/index.ts index 3f85008..982618a 100644 --- a/src/date-fns/formatRFC7231/index.ts +++ b/src/date-fns/formatRFC7231/index.ts @@ -1,10 +1,24 @@ -import { isValid } from '../isValid/index'; -import { toDate } from '../toDate/index'; -import { addLeadingZeros } from '../_lib/addLeadingZeros/index'; +import { addLeadingZeros } from "../_lib/addLeadingZeros/index.ts"; +import { isValid } from "../isValid/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; -const days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; +const days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; -const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +const months = [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", +]; /** * @name formatRFC7231 @@ -15,8 +29,6 @@ const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', ' * Return the formatted date string in RFC 7231 format. * The result will always be in UTC timezone. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The original date * * @returns The formatted date string @@ -28,11 +40,11 @@ const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', ' * const result = formatRFC7231(new Date(2019, 8, 18, 19, 0, 52)) * //=> 'Wed, 18 Sep 2019 19:00:52 GMT' */ -export function formatRFC7231(date: DateType | number | string): string { +export function formatRFC7231(date: DateArg & {}): string { const _date = toDate(date); if (!isValid(_date)) { - throw new RangeError('Invalid time value'); + throw new RangeError("Invalid time value"); } const dayName = days[_date.getUTCDay()]; diff --git a/src/date-fns/formatRelative/index.ts b/src/date-fns/formatRelative/index.ts index ab1592d..9c65fa0 100644 --- a/src/date-fns/formatRelative/index.ts +++ b/src/date-fns/formatRelative/index.ts @@ -1,17 +1,25 @@ -import { differenceInCalendarDays } from '../differenceInCalendarDays/index'; -import { format } from '../format/index'; -import type { FormatRelativeToken } from '../locale/types'; -import { toDate } from '../toDate/index'; -import type { LocalizedOptions, WeekOptions } from '../types'; -import { defaultLocale } from '../_lib/defaultLocale/index'; -import { getDefaultOptions } from '../_lib/defaultOptions/index'; +import { defaultLocale } from "../_lib/defaultLocale/index.ts"; +import { getDefaultOptions } from "../_lib/defaultOptions/index.ts"; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { differenceInCalendarDays } from "../differenceInCalendarDays/index.ts"; +import { format } from "../format/index.ts"; +import type { FormatRelativeToken } from "../locale/types.ts"; +import type { + ContextOptions, + DateArg, + LocalizedOptions, + WeekOptions, +} from "../types.ts"; /** * The {@link formatRelative} function options. */ export interface FormatRelativeOptions - extends LocalizedOptions<'options' | 'localize' | 'formatLong' | 'formatRelative'>, - WeekOptions {} + extends LocalizedOptions< + "options" | "localize" | "formatLong" | "formatRelative" + >, + WeekOptions, + ContextOptions {} /** * @name formatRelative @@ -30,8 +38,6 @@ export interface FormatRelativeOptions * | Next 6 days | Sunday at 04:30 AM | * | Other | 12/31/2017 | * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to format * @param baseDate - The date to compare with * @param options - An object with options @@ -49,13 +55,12 @@ export interface FormatRelativeOptions * const result = formatRelative(subDays(new Date(), 6), new Date()) * //=> "last Thursday at 12:45 AM" */ -export function formatRelative( - date: DateType | number | string, - baseDate: DateType | number | string, +export function formatRelative( + date: DateArg & {}, + baseDate: DateArg & {}, options?: FormatRelativeOptions, ): string { - const _date = toDate(date); - const _baseDate = toDate(baseDate); + const [date_, baseDate_] = normalizeDates(options?.in, date, baseDate); const defaultOptions = getDefaultOptions(); const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale; @@ -66,32 +71,32 @@ export function formatRelative( defaultOptions.locale?.options?.weekStartsOn ?? 0; - const diff = differenceInCalendarDays(_date, _baseDate); + const diff = differenceInCalendarDays(date_, baseDate_); if (isNaN(diff)) { - throw new RangeError('Invalid time value'); + throw new RangeError("Invalid time value"); } let token: FormatRelativeToken; if (diff < -6) { - token = 'other'; + token = "other"; } else if (diff < -1) { - token = 'lastWeek'; + token = "lastWeek"; } else if (diff < 0) { - token = 'yesterday'; + token = "yesterday"; } else if (diff < 1) { - token = 'today'; + token = "today"; } else if (diff < 2) { - token = 'tomorrow'; + token = "tomorrow"; } else if (diff < 7) { - token = 'nextWeek'; + token = "nextWeek"; } else { - token = 'other'; + token = "other"; } - const formatStr = locale.formatRelative(token, _date, _baseDate, { + const formatStr = locale.formatRelative(token, date_, baseDate_, { locale, weekStartsOn, }); - return format(_date, formatStr, { locale, weekStartsOn }); + return format(date_, formatStr, { locale, weekStartsOn }); } diff --git a/src/date-fns/fp/_lib/convertToFP/index.ts b/src/date-fns/fp/_lib/convertToFP/index.ts deleted file mode 100644 index 5f704a6..0000000 --- a/src/date-fns/fp/_lib/convertToFP/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { FPArity, FPFn, FPFnInput } from '../../types'; - -/** - * Converts a function to a curried function that accepts arguments in reverse - * order. - * - * @param fn - The function to convert to FP - * @param arity - The arity of the function - * @param curriedArgs - The curried arguments - * - * @returns FP version of the function - * - * @private - */ -export function convertToFP( - fn: Fn, - arity: Arity, - curriedArgs: unknown[] = [], -): FPFn { - return ( - curriedArgs.length >= arity - ? fn(...curriedArgs.slice(0, arity).reverse()) - : (...args: unknown[]) => convertToFP(fn, arity, curriedArgs.concat(args)) - ) as FPFn; -} diff --git a/src/date-fns/fp/add/index.ts b/src/date-fns/fp/add/index.ts deleted file mode 100644 index ad341de..0000000 --- a/src/date-fns/fp/add/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { add as fn } from '../../add/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const add = convertToFP(fn, 2); diff --git a/src/date-fns/fp/addBusinessDays/index.ts b/src/date-fns/fp/addBusinessDays/index.ts deleted file mode 100644 index 5d4a925..0000000 --- a/src/date-fns/fp/addBusinessDays/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { addBusinessDays as fn } from '../../addBusinessDays/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const addBusinessDays = convertToFP(fn, 2); diff --git a/src/date-fns/fp/addDays/index.ts b/src/date-fns/fp/addDays/index.ts deleted file mode 100644 index 434867f..0000000 --- a/src/date-fns/fp/addDays/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { addDays as fn } from '../../addDays/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const addDays = convertToFP(fn, 2); diff --git a/src/date-fns/fp/addHours/index.ts b/src/date-fns/fp/addHours/index.ts deleted file mode 100644 index 537bf92..0000000 --- a/src/date-fns/fp/addHours/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { addHours as fn } from '../../addHours/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const addHours = convertToFP(fn, 2); diff --git a/src/date-fns/fp/addISOWeekYears/index.ts b/src/date-fns/fp/addISOWeekYears/index.ts deleted file mode 100644 index bf1a3f1..0000000 --- a/src/date-fns/fp/addISOWeekYears/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { addISOWeekYears as fn } from '../../addISOWeekYears/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const addISOWeekYears = convertToFP(fn, 2); diff --git a/src/date-fns/fp/addMilliseconds/index.ts b/src/date-fns/fp/addMilliseconds/index.ts deleted file mode 100644 index 0a6ad7b..0000000 --- a/src/date-fns/fp/addMilliseconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { addMilliseconds as fn } from '../../addMilliseconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const addMilliseconds = convertToFP(fn, 2); diff --git a/src/date-fns/fp/addMinutes/index.ts b/src/date-fns/fp/addMinutes/index.ts deleted file mode 100644 index e8f2d7f..0000000 --- a/src/date-fns/fp/addMinutes/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { addMinutes as fn } from '../../addMinutes/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const addMinutes = convertToFP(fn, 2); diff --git a/src/date-fns/fp/addMonths/index.ts b/src/date-fns/fp/addMonths/index.ts deleted file mode 100644 index 85ff8ed..0000000 --- a/src/date-fns/fp/addMonths/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { addMonths as fn } from '../../addMonths/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const addMonths = convertToFP(fn, 2); diff --git a/src/date-fns/fp/addQuarters/index.ts b/src/date-fns/fp/addQuarters/index.ts deleted file mode 100644 index 9bc2a9e..0000000 --- a/src/date-fns/fp/addQuarters/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { addQuarters as fn } from '../../addQuarters/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const addQuarters = convertToFP(fn, 2); diff --git a/src/date-fns/fp/addSeconds/index.ts b/src/date-fns/fp/addSeconds/index.ts deleted file mode 100644 index 1caef08..0000000 --- a/src/date-fns/fp/addSeconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { addSeconds as fn } from '../../addSeconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const addSeconds = convertToFP(fn, 2); diff --git a/src/date-fns/fp/addWeeks/index.ts b/src/date-fns/fp/addWeeks/index.ts deleted file mode 100644 index a37afc8..0000000 --- a/src/date-fns/fp/addWeeks/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { addWeeks as fn } from '../../addWeeks/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const addWeeks = convertToFP(fn, 2); diff --git a/src/date-fns/fp/addYears/index.ts b/src/date-fns/fp/addYears/index.ts deleted file mode 100644 index d774629..0000000 --- a/src/date-fns/fp/addYears/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { addYears as fn } from '../../addYears/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const addYears = convertToFP(fn, 2); diff --git a/src/date-fns/fp/areIntervalsOverlapping/index.ts b/src/date-fns/fp/areIntervalsOverlapping/index.ts deleted file mode 100644 index c772694..0000000 --- a/src/date-fns/fp/areIntervalsOverlapping/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { areIntervalsOverlapping as fn } from '../../areIntervalsOverlapping/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const areIntervalsOverlapping = convertToFP(fn, 2); diff --git a/src/date-fns/fp/areIntervalsOverlappingWithOptions/index.ts b/src/date-fns/fp/areIntervalsOverlappingWithOptions/index.ts deleted file mode 100644 index 327b117..0000000 --- a/src/date-fns/fp/areIntervalsOverlappingWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { areIntervalsOverlapping as fn } from '../../areIntervalsOverlapping/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const areIntervalsOverlappingWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/clamp/index.ts b/src/date-fns/fp/clamp/index.ts deleted file mode 100644 index 050161d..0000000 --- a/src/date-fns/fp/clamp/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { clamp as fn } from '../../clamp/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const clamp = convertToFP(fn, 2); diff --git a/src/date-fns/fp/closestIndexTo/index.ts b/src/date-fns/fp/closestIndexTo/index.ts deleted file mode 100644 index a35ebc9..0000000 --- a/src/date-fns/fp/closestIndexTo/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { closestIndexTo as fn } from '../../closestIndexTo/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const closestIndexTo = convertToFP(fn, 2); diff --git a/src/date-fns/fp/closestTo/index.ts b/src/date-fns/fp/closestTo/index.ts deleted file mode 100644 index 5faa95b..0000000 --- a/src/date-fns/fp/closestTo/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { closestTo as fn } from '../../closestTo/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const closestTo = convertToFP(fn, 2); diff --git a/src/date-fns/fp/compareAsc/index.ts b/src/date-fns/fp/compareAsc/index.ts deleted file mode 100644 index 32d3c9f..0000000 --- a/src/date-fns/fp/compareAsc/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { compareAsc as fn } from '../../compareAsc/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const compareAsc = convertToFP(fn, 2); diff --git a/src/date-fns/fp/compareDesc/index.ts b/src/date-fns/fp/compareDesc/index.ts deleted file mode 100644 index 39b6c82..0000000 --- a/src/date-fns/fp/compareDesc/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { compareDesc as fn } from '../../compareDesc/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const compareDesc = convertToFP(fn, 2); diff --git a/src/date-fns/fp/constructFrom/index.ts b/src/date-fns/fp/constructFrom/index.ts deleted file mode 100644 index 33437b1..0000000 --- a/src/date-fns/fp/constructFrom/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { constructFrom as fn } from '../../constructFrom/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const constructFrom = convertToFP(fn, 2); diff --git a/src/date-fns/fp/daysToWeeks/index.ts b/src/date-fns/fp/daysToWeeks/index.ts deleted file mode 100644 index 06f5e83..0000000 --- a/src/date-fns/fp/daysToWeeks/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { daysToWeeks as fn } from '../../daysToWeeks/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const daysToWeeks = convertToFP(fn, 1); diff --git a/src/date-fns/fp/differenceInBusinessDays/index.ts b/src/date-fns/fp/differenceInBusinessDays/index.ts deleted file mode 100644 index ef6f86b..0000000 --- a/src/date-fns/fp/differenceInBusinessDays/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInBusinessDays as fn } from '../../differenceInBusinessDays/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInBusinessDays = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInCalendarDays/index.ts b/src/date-fns/fp/differenceInCalendarDays/index.ts deleted file mode 100644 index c1729f5..0000000 --- a/src/date-fns/fp/differenceInCalendarDays/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInCalendarDays as fn } from '../../differenceInCalendarDays/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInCalendarDays = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInCalendarISOWeekYears/index.ts b/src/date-fns/fp/differenceInCalendarISOWeekYears/index.ts deleted file mode 100644 index 154f8a4..0000000 --- a/src/date-fns/fp/differenceInCalendarISOWeekYears/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInCalendarISOWeekYears as fn } from '../../differenceInCalendarISOWeekYears/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInCalendarISOWeekYears = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInCalendarISOWeeks/index.ts b/src/date-fns/fp/differenceInCalendarISOWeeks/index.ts deleted file mode 100644 index 638c18d..0000000 --- a/src/date-fns/fp/differenceInCalendarISOWeeks/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInCalendarISOWeeks as fn } from '../../differenceInCalendarISOWeeks/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInCalendarISOWeeks = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInCalendarMonths/index.ts b/src/date-fns/fp/differenceInCalendarMonths/index.ts deleted file mode 100644 index 68836c1..0000000 --- a/src/date-fns/fp/differenceInCalendarMonths/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInCalendarMonths as fn } from '../../differenceInCalendarMonths/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInCalendarMonths = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInCalendarQuarters/index.ts b/src/date-fns/fp/differenceInCalendarQuarters/index.ts deleted file mode 100644 index 569ff56..0000000 --- a/src/date-fns/fp/differenceInCalendarQuarters/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInCalendarQuarters as fn } from '../../differenceInCalendarQuarters/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInCalendarQuarters = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInCalendarWeeks/index.ts b/src/date-fns/fp/differenceInCalendarWeeks/index.ts deleted file mode 100644 index d4eeca6..0000000 --- a/src/date-fns/fp/differenceInCalendarWeeks/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInCalendarWeeks as fn } from '../../differenceInCalendarWeeks/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInCalendarWeeks = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInCalendarWeeksWithOptions/index.ts b/src/date-fns/fp/differenceInCalendarWeeksWithOptions/index.ts deleted file mode 100644 index d4c24d3..0000000 --- a/src/date-fns/fp/differenceInCalendarWeeksWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInCalendarWeeks as fn } from '../../differenceInCalendarWeeks/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInCalendarWeeksWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/differenceInCalendarYears/index.ts b/src/date-fns/fp/differenceInCalendarYears/index.ts deleted file mode 100644 index 1f1bec9..0000000 --- a/src/date-fns/fp/differenceInCalendarYears/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInCalendarYears as fn } from '../../differenceInCalendarYears/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInCalendarYears = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInDays/index.ts b/src/date-fns/fp/differenceInDays/index.ts deleted file mode 100644 index 7ff74cb..0000000 --- a/src/date-fns/fp/differenceInDays/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInDays as fn } from '../../differenceInDays/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInDays = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInHours/index.ts b/src/date-fns/fp/differenceInHours/index.ts deleted file mode 100644 index 493190e..0000000 --- a/src/date-fns/fp/differenceInHours/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInHours as fn } from '../../differenceInHours/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInHours = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInHoursWithOptions/index.ts b/src/date-fns/fp/differenceInHoursWithOptions/index.ts deleted file mode 100644 index 71157d3..0000000 --- a/src/date-fns/fp/differenceInHoursWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInHours as fn } from '../../differenceInHours/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInHoursWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/differenceInISOWeekYears/index.ts b/src/date-fns/fp/differenceInISOWeekYears/index.ts deleted file mode 100644 index 5cafd45..0000000 --- a/src/date-fns/fp/differenceInISOWeekYears/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInISOWeekYears as fn } from '../../differenceInISOWeekYears/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInISOWeekYears = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInMilliseconds/index.ts b/src/date-fns/fp/differenceInMilliseconds/index.ts deleted file mode 100644 index c918cc6..0000000 --- a/src/date-fns/fp/differenceInMilliseconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInMilliseconds as fn } from '../../differenceInMilliseconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInMilliseconds = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInMinutes/index.ts b/src/date-fns/fp/differenceInMinutes/index.ts deleted file mode 100644 index 95062fb..0000000 --- a/src/date-fns/fp/differenceInMinutes/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInMinutes as fn } from '../../differenceInMinutes/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInMinutes = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInMinutesWithOptions/index.ts b/src/date-fns/fp/differenceInMinutesWithOptions/index.ts deleted file mode 100644 index 888c91a..0000000 --- a/src/date-fns/fp/differenceInMinutesWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInMinutes as fn } from '../../differenceInMinutes/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInMinutesWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/differenceInMonths/index.ts b/src/date-fns/fp/differenceInMonths/index.ts deleted file mode 100644 index 6e180e7..0000000 --- a/src/date-fns/fp/differenceInMonths/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInMonths as fn } from '../../differenceInMonths/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInMonths = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInQuarters/index.ts b/src/date-fns/fp/differenceInQuarters/index.ts deleted file mode 100644 index f21805d..0000000 --- a/src/date-fns/fp/differenceInQuarters/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInQuarters as fn } from '../../differenceInQuarters/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInQuarters = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInQuartersWithOptions/index.ts b/src/date-fns/fp/differenceInQuartersWithOptions/index.ts deleted file mode 100644 index db01365..0000000 --- a/src/date-fns/fp/differenceInQuartersWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInQuarters as fn } from '../../differenceInQuarters/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInQuartersWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/differenceInSeconds/index.ts b/src/date-fns/fp/differenceInSeconds/index.ts deleted file mode 100644 index 234a5c5..0000000 --- a/src/date-fns/fp/differenceInSeconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInSeconds as fn } from '../../differenceInSeconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInSeconds = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInSecondsWithOptions/index.ts b/src/date-fns/fp/differenceInSecondsWithOptions/index.ts deleted file mode 100644 index 4f17252..0000000 --- a/src/date-fns/fp/differenceInSecondsWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInSeconds as fn } from '../../differenceInSeconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInSecondsWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/differenceInWeeks/index.ts b/src/date-fns/fp/differenceInWeeks/index.ts deleted file mode 100644 index 4d9ede5..0000000 --- a/src/date-fns/fp/differenceInWeeks/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInWeeks as fn } from '../../differenceInWeeks/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInWeeks = convertToFP(fn, 2); diff --git a/src/date-fns/fp/differenceInWeeksWithOptions/index.ts b/src/date-fns/fp/differenceInWeeksWithOptions/index.ts deleted file mode 100644 index 11df6f0..0000000 --- a/src/date-fns/fp/differenceInWeeksWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInWeeks as fn } from '../../differenceInWeeks/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInWeeksWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/differenceInYears/index.ts b/src/date-fns/fp/differenceInYears/index.ts deleted file mode 100644 index 97d9ffe..0000000 --- a/src/date-fns/fp/differenceInYears/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { differenceInYears as fn } from '../../differenceInYears/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const differenceInYears = convertToFP(fn, 2); diff --git a/src/date-fns/fp/eachDayOfInterval/index.ts b/src/date-fns/fp/eachDayOfInterval/index.ts deleted file mode 100644 index 2989abf..0000000 --- a/src/date-fns/fp/eachDayOfInterval/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachDayOfInterval as fn } from '../../eachDayOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachDayOfInterval = convertToFP(fn, 1); diff --git a/src/date-fns/fp/eachDayOfIntervalWithOptions/index.ts b/src/date-fns/fp/eachDayOfIntervalWithOptions/index.ts deleted file mode 100644 index 8430d60..0000000 --- a/src/date-fns/fp/eachDayOfIntervalWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachDayOfInterval as fn } from '../../eachDayOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachDayOfIntervalWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/eachHourOfInterval/index.ts b/src/date-fns/fp/eachHourOfInterval/index.ts deleted file mode 100644 index ccedf31..0000000 --- a/src/date-fns/fp/eachHourOfInterval/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachHourOfInterval as fn } from '../../eachHourOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachHourOfInterval = convertToFP(fn, 1); diff --git a/src/date-fns/fp/eachHourOfIntervalWithOptions/index.ts b/src/date-fns/fp/eachHourOfIntervalWithOptions/index.ts deleted file mode 100644 index a4bf09d..0000000 --- a/src/date-fns/fp/eachHourOfIntervalWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachHourOfInterval as fn } from '../../eachHourOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachHourOfIntervalWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/eachMinuteOfInterval/index.ts b/src/date-fns/fp/eachMinuteOfInterval/index.ts deleted file mode 100644 index fc1e290..0000000 --- a/src/date-fns/fp/eachMinuteOfInterval/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachMinuteOfInterval as fn } from '../../eachMinuteOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachMinuteOfInterval = convertToFP(fn, 1); diff --git a/src/date-fns/fp/eachMinuteOfIntervalWithOptions/index.ts b/src/date-fns/fp/eachMinuteOfIntervalWithOptions/index.ts deleted file mode 100644 index 0079bec..0000000 --- a/src/date-fns/fp/eachMinuteOfIntervalWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachMinuteOfInterval as fn } from '../../eachMinuteOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachMinuteOfIntervalWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/eachMonthOfInterval/index.ts b/src/date-fns/fp/eachMonthOfInterval/index.ts deleted file mode 100644 index 8a4cb5d..0000000 --- a/src/date-fns/fp/eachMonthOfInterval/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachMonthOfInterval as fn } from '../../eachMonthOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachMonthOfInterval = convertToFP(fn, 1); diff --git a/src/date-fns/fp/eachMonthOfIntervalWithOptions/index.ts b/src/date-fns/fp/eachMonthOfIntervalWithOptions/index.ts deleted file mode 100644 index cec65d3..0000000 --- a/src/date-fns/fp/eachMonthOfIntervalWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachMonthOfInterval as fn } from '../../eachMonthOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachMonthOfIntervalWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/eachQuarterOfInterval/index.ts b/src/date-fns/fp/eachQuarterOfInterval/index.ts deleted file mode 100644 index 5d3d044..0000000 --- a/src/date-fns/fp/eachQuarterOfInterval/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachQuarterOfInterval as fn } from '../../eachQuarterOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachQuarterOfInterval = convertToFP(fn, 1); diff --git a/src/date-fns/fp/eachQuarterOfIntervalWithOptions/index.ts b/src/date-fns/fp/eachQuarterOfIntervalWithOptions/index.ts deleted file mode 100644 index b3d4f32..0000000 --- a/src/date-fns/fp/eachQuarterOfIntervalWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachQuarterOfInterval as fn } from '../../eachQuarterOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachQuarterOfIntervalWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/eachWeekOfInterval/index.ts b/src/date-fns/fp/eachWeekOfInterval/index.ts deleted file mode 100644 index 16d69c1..0000000 --- a/src/date-fns/fp/eachWeekOfInterval/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachWeekOfInterval as fn } from '../../eachWeekOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachWeekOfInterval = convertToFP(fn, 1); diff --git a/src/date-fns/fp/eachWeekOfIntervalWithOptions/index.ts b/src/date-fns/fp/eachWeekOfIntervalWithOptions/index.ts deleted file mode 100644 index dd85290..0000000 --- a/src/date-fns/fp/eachWeekOfIntervalWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachWeekOfInterval as fn } from '../../eachWeekOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachWeekOfIntervalWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/eachWeekendOfInterval/index.ts b/src/date-fns/fp/eachWeekendOfInterval/index.ts deleted file mode 100644 index 38baef9..0000000 --- a/src/date-fns/fp/eachWeekendOfInterval/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachWeekendOfInterval as fn } from '../../eachWeekendOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachWeekendOfInterval = convertToFP(fn, 1); diff --git a/src/date-fns/fp/eachWeekendOfMonth/index.ts b/src/date-fns/fp/eachWeekendOfMonth/index.ts deleted file mode 100644 index f2ade8b..0000000 --- a/src/date-fns/fp/eachWeekendOfMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachWeekendOfMonth as fn } from '../../eachWeekendOfMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachWeekendOfMonth = convertToFP(fn, 1); diff --git a/src/date-fns/fp/eachWeekendOfYear/index.ts b/src/date-fns/fp/eachWeekendOfYear/index.ts deleted file mode 100644 index 3de5f88..0000000 --- a/src/date-fns/fp/eachWeekendOfYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachWeekendOfYear as fn } from '../../eachWeekendOfYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachWeekendOfYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/eachYearOfInterval/index.ts b/src/date-fns/fp/eachYearOfInterval/index.ts deleted file mode 100644 index 4ac90a1..0000000 --- a/src/date-fns/fp/eachYearOfInterval/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachYearOfInterval as fn } from '../../eachYearOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachYearOfInterval = convertToFP(fn, 1); diff --git a/src/date-fns/fp/eachYearOfIntervalWithOptions/index.ts b/src/date-fns/fp/eachYearOfIntervalWithOptions/index.ts deleted file mode 100644 index 91be636..0000000 --- a/src/date-fns/fp/eachYearOfIntervalWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { eachYearOfInterval as fn } from '../../eachYearOfInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const eachYearOfIntervalWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/endOfDay/index.ts b/src/date-fns/fp/endOfDay/index.ts deleted file mode 100644 index a617823..0000000 --- a/src/date-fns/fp/endOfDay/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfDay as fn } from '../../endOfDay/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfDay = convertToFP(fn, 1); diff --git a/src/date-fns/fp/endOfDecade/index.ts b/src/date-fns/fp/endOfDecade/index.ts deleted file mode 100644 index e4fd41d..0000000 --- a/src/date-fns/fp/endOfDecade/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfDecade as fn } from '../../endOfDecade/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfDecade = convertToFP(fn, 1); diff --git a/src/date-fns/fp/endOfHour/index.ts b/src/date-fns/fp/endOfHour/index.ts deleted file mode 100644 index 54f0a81..0000000 --- a/src/date-fns/fp/endOfHour/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfHour as fn } from '../../endOfHour/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfHour = convertToFP(fn, 1); diff --git a/src/date-fns/fp/endOfISOWeek/index.ts b/src/date-fns/fp/endOfISOWeek/index.ts deleted file mode 100644 index 7a95ccf..0000000 --- a/src/date-fns/fp/endOfISOWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfISOWeek as fn } from '../../endOfISOWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfISOWeek = convertToFP(fn, 1); diff --git a/src/date-fns/fp/endOfISOWeekYear/index.ts b/src/date-fns/fp/endOfISOWeekYear/index.ts deleted file mode 100644 index 18a3714..0000000 --- a/src/date-fns/fp/endOfISOWeekYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfISOWeekYear as fn } from '../../endOfISOWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfISOWeekYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/endOfMinute/index.ts b/src/date-fns/fp/endOfMinute/index.ts deleted file mode 100644 index a76105b..0000000 --- a/src/date-fns/fp/endOfMinute/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfMinute as fn } from '../../endOfMinute/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfMinute = convertToFP(fn, 1); diff --git a/src/date-fns/fp/endOfMonth/index.ts b/src/date-fns/fp/endOfMonth/index.ts deleted file mode 100644 index 01a78e1..0000000 --- a/src/date-fns/fp/endOfMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfMonth as fn } from '../../endOfMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfMonth = convertToFP(fn, 1); diff --git a/src/date-fns/fp/endOfQuarter/index.ts b/src/date-fns/fp/endOfQuarter/index.ts deleted file mode 100644 index 180c9cf..0000000 --- a/src/date-fns/fp/endOfQuarter/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfQuarter as fn } from '../../endOfQuarter/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfQuarter = convertToFP(fn, 1); diff --git a/src/date-fns/fp/endOfSecond/index.ts b/src/date-fns/fp/endOfSecond/index.ts deleted file mode 100644 index b59b98d..0000000 --- a/src/date-fns/fp/endOfSecond/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfSecond as fn } from '../../endOfSecond/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfSecond = convertToFP(fn, 1); diff --git a/src/date-fns/fp/endOfWeek/index.ts b/src/date-fns/fp/endOfWeek/index.ts deleted file mode 100644 index a3bf378..0000000 --- a/src/date-fns/fp/endOfWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfWeek as fn } from '../../endOfWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfWeek = convertToFP(fn, 1); diff --git a/src/date-fns/fp/endOfWeekWithOptions/index.ts b/src/date-fns/fp/endOfWeekWithOptions/index.ts deleted file mode 100644 index e5043cc..0000000 --- a/src/date-fns/fp/endOfWeekWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfWeek as fn } from '../../endOfWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfWeekWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/endOfYear/index.ts b/src/date-fns/fp/endOfYear/index.ts deleted file mode 100644 index aef3a42..0000000 --- a/src/date-fns/fp/endOfYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { endOfYear as fn } from '../../endOfYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const endOfYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/format/index.ts b/src/date-fns/fp/format/index.ts deleted file mode 100644 index c54dc5e..0000000 --- a/src/date-fns/fp/format/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { format as fn } from '../../format/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const format = convertToFP(fn, 2); diff --git a/src/date-fns/fp/formatDistance/index.ts b/src/date-fns/fp/formatDistance/index.ts deleted file mode 100644 index dfcb98d..0000000 --- a/src/date-fns/fp/formatDistance/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatDistance as fn } from '../../formatDistance/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatDistance = convertToFP(fn, 2); diff --git a/src/date-fns/fp/formatDistanceStrict/index.ts b/src/date-fns/fp/formatDistanceStrict/index.ts deleted file mode 100644 index 42694d4..0000000 --- a/src/date-fns/fp/formatDistanceStrict/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatDistanceStrict as fn } from '../../formatDistanceStrict/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatDistanceStrict = convertToFP(fn, 2); diff --git a/src/date-fns/fp/formatDistanceStrictWithOptions/index.ts b/src/date-fns/fp/formatDistanceStrictWithOptions/index.ts deleted file mode 100644 index f946a48..0000000 --- a/src/date-fns/fp/formatDistanceStrictWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatDistanceStrict as fn } from '../../formatDistanceStrict/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatDistanceStrictWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/formatDistanceWithOptions/index.ts b/src/date-fns/fp/formatDistanceWithOptions/index.ts deleted file mode 100644 index 631fd9c..0000000 --- a/src/date-fns/fp/formatDistanceWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatDistance as fn } from '../../formatDistance/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatDistanceWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/formatDuration/index.ts b/src/date-fns/fp/formatDuration/index.ts deleted file mode 100644 index 78cd554..0000000 --- a/src/date-fns/fp/formatDuration/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatDuration as fn } from '../../formatDuration/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatDuration = convertToFP(fn, 1); diff --git a/src/date-fns/fp/formatDurationWithOptions/index.ts b/src/date-fns/fp/formatDurationWithOptions/index.ts deleted file mode 100644 index 10d706f..0000000 --- a/src/date-fns/fp/formatDurationWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatDuration as fn } from '../../formatDuration/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatDurationWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/formatISO/index.ts b/src/date-fns/fp/formatISO/index.ts deleted file mode 100644 index cfe81c9..0000000 --- a/src/date-fns/fp/formatISO/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatISO as fn } from '../../formatISO/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatISO = convertToFP(fn, 1); diff --git a/src/date-fns/fp/formatISO9075/index.ts b/src/date-fns/fp/formatISO9075/index.ts deleted file mode 100644 index 61f5f20..0000000 --- a/src/date-fns/fp/formatISO9075/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatISO9075 as fn } from '../../formatISO9075/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatISO9075 = convertToFP(fn, 1); diff --git a/src/date-fns/fp/formatISO9075WithOptions/index.ts b/src/date-fns/fp/formatISO9075WithOptions/index.ts deleted file mode 100644 index 46298c3..0000000 --- a/src/date-fns/fp/formatISO9075WithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatISO9075 as fn } from '../../formatISO9075/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatISO9075WithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/formatISODuration/index.ts b/src/date-fns/fp/formatISODuration/index.ts deleted file mode 100644 index 0b928ce..0000000 --- a/src/date-fns/fp/formatISODuration/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatISODuration as fn } from '../../formatISODuration/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatISODuration = convertToFP(fn, 1); diff --git a/src/date-fns/fp/formatISOWithOptions/index.ts b/src/date-fns/fp/formatISOWithOptions/index.ts deleted file mode 100644 index c19042a..0000000 --- a/src/date-fns/fp/formatISOWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatISO as fn } from '../../formatISO/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatISOWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/formatRFC3339/index.ts b/src/date-fns/fp/formatRFC3339/index.ts deleted file mode 100644 index 87f2c7b..0000000 --- a/src/date-fns/fp/formatRFC3339/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatRFC3339 as fn } from '../../formatRFC3339/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatRFC3339 = convertToFP(fn, 1); diff --git a/src/date-fns/fp/formatRFC3339WithOptions/index.ts b/src/date-fns/fp/formatRFC3339WithOptions/index.ts deleted file mode 100644 index 32de9f4..0000000 --- a/src/date-fns/fp/formatRFC3339WithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatRFC3339 as fn } from '../../formatRFC3339/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatRFC3339WithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/formatRFC7231/index.ts b/src/date-fns/fp/formatRFC7231/index.ts deleted file mode 100644 index 8415c2a..0000000 --- a/src/date-fns/fp/formatRFC7231/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatRFC7231 as fn } from '../../formatRFC7231/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatRFC7231 = convertToFP(fn, 1); diff --git a/src/date-fns/fp/formatRelative/index.ts b/src/date-fns/fp/formatRelative/index.ts deleted file mode 100644 index 78c173b..0000000 --- a/src/date-fns/fp/formatRelative/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatRelative as fn } from '../../formatRelative/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatRelative = convertToFP(fn, 2); diff --git a/src/date-fns/fp/formatRelativeWithOptions/index.ts b/src/date-fns/fp/formatRelativeWithOptions/index.ts deleted file mode 100644 index 9e32ef9..0000000 --- a/src/date-fns/fp/formatRelativeWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { formatRelative as fn } from '../../formatRelative/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatRelativeWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/formatWithOptions/index.ts b/src/date-fns/fp/formatWithOptions/index.ts deleted file mode 100644 index 66528d9..0000000 --- a/src/date-fns/fp/formatWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { format as fn } from '../../format/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const formatWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/fromUnixTime/index.ts b/src/date-fns/fp/fromUnixTime/index.ts deleted file mode 100644 index 1b4b80e..0000000 --- a/src/date-fns/fp/fromUnixTime/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { fromUnixTime as fn } from '../../fromUnixTime/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const fromUnixTime = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getDate/index.ts b/src/date-fns/fp/getDate/index.ts deleted file mode 100644 index d41cb99..0000000 --- a/src/date-fns/fp/getDate/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getDate as fn } from '../../getDate/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getDate = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getDay/index.ts b/src/date-fns/fp/getDay/index.ts deleted file mode 100644 index a487c3c..0000000 --- a/src/date-fns/fp/getDay/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getDay as fn } from '../../getDay/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getDay = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getDayOfYear/index.ts b/src/date-fns/fp/getDayOfYear/index.ts deleted file mode 100644 index ea5a272..0000000 --- a/src/date-fns/fp/getDayOfYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getDayOfYear as fn } from '../../getDayOfYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getDayOfYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getDaysInMonth/index.ts b/src/date-fns/fp/getDaysInMonth/index.ts deleted file mode 100644 index dda9287..0000000 --- a/src/date-fns/fp/getDaysInMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getDaysInMonth as fn } from '../../getDaysInMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getDaysInMonth = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getDaysInYear/index.ts b/src/date-fns/fp/getDaysInYear/index.ts deleted file mode 100644 index f3ceffd..0000000 --- a/src/date-fns/fp/getDaysInYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getDaysInYear as fn } from '../../getDaysInYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getDaysInYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getDecade/index.ts b/src/date-fns/fp/getDecade/index.ts deleted file mode 100644 index bce6e7a..0000000 --- a/src/date-fns/fp/getDecade/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getDecade as fn } from '../../getDecade/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getDecade = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getHours/index.ts b/src/date-fns/fp/getHours/index.ts deleted file mode 100644 index 067cbc6..0000000 --- a/src/date-fns/fp/getHours/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getHours as fn } from '../../getHours/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getHours = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getISODay/index.ts b/src/date-fns/fp/getISODay/index.ts deleted file mode 100644 index 22c2962..0000000 --- a/src/date-fns/fp/getISODay/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getISODay as fn } from '../../getISODay/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getISODay = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getISOWeek/index.ts b/src/date-fns/fp/getISOWeek/index.ts deleted file mode 100644 index c64d8ad..0000000 --- a/src/date-fns/fp/getISOWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getISOWeek as fn } from '../../getISOWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getISOWeek = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getISOWeekYear/index.ts b/src/date-fns/fp/getISOWeekYear/index.ts deleted file mode 100644 index 6af113b..0000000 --- a/src/date-fns/fp/getISOWeekYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getISOWeekYear as fn } from '../../getISOWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getISOWeekYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getISOWeeksInYear/index.ts b/src/date-fns/fp/getISOWeeksInYear/index.ts deleted file mode 100644 index f984898..0000000 --- a/src/date-fns/fp/getISOWeeksInYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getISOWeeksInYear as fn } from '../../getISOWeeksInYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getISOWeeksInYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getMilliseconds/index.ts b/src/date-fns/fp/getMilliseconds/index.ts deleted file mode 100644 index de61d75..0000000 --- a/src/date-fns/fp/getMilliseconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getMilliseconds as fn } from '../../getMilliseconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getMilliseconds = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getMinutes/index.ts b/src/date-fns/fp/getMinutes/index.ts deleted file mode 100644 index 56b9204..0000000 --- a/src/date-fns/fp/getMinutes/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getMinutes as fn } from '../../getMinutes/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getMinutes = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getMonth/index.ts b/src/date-fns/fp/getMonth/index.ts deleted file mode 100644 index a100095..0000000 --- a/src/date-fns/fp/getMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getMonth as fn } from '../../getMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getMonth = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getOverlappingDaysInIntervals/index.ts b/src/date-fns/fp/getOverlappingDaysInIntervals/index.ts deleted file mode 100644 index 861bcae..0000000 --- a/src/date-fns/fp/getOverlappingDaysInIntervals/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getOverlappingDaysInIntervals as fn } from '../../getOverlappingDaysInIntervals/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getOverlappingDaysInIntervals = convertToFP(fn, 2); diff --git a/src/date-fns/fp/getQuarter/index.ts b/src/date-fns/fp/getQuarter/index.ts deleted file mode 100644 index af9b7de..0000000 --- a/src/date-fns/fp/getQuarter/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getQuarter as fn } from '../../getQuarter/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getQuarter = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getSeconds/index.ts b/src/date-fns/fp/getSeconds/index.ts deleted file mode 100644 index c775598..0000000 --- a/src/date-fns/fp/getSeconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getSeconds as fn } from '../../getSeconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getSeconds = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getTime/index.ts b/src/date-fns/fp/getTime/index.ts deleted file mode 100644 index e43d805..0000000 --- a/src/date-fns/fp/getTime/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getTime as fn } from '../../getTime/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getTime = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getUnixTime/index.ts b/src/date-fns/fp/getUnixTime/index.ts deleted file mode 100644 index afbee9b..0000000 --- a/src/date-fns/fp/getUnixTime/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getUnixTime as fn } from '../../getUnixTime/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getUnixTime = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getWeek/index.ts b/src/date-fns/fp/getWeek/index.ts deleted file mode 100644 index 578930d..0000000 --- a/src/date-fns/fp/getWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getWeek as fn } from '../../getWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getWeek = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getWeekOfMonth/index.ts b/src/date-fns/fp/getWeekOfMonth/index.ts deleted file mode 100644 index 94cb474..0000000 --- a/src/date-fns/fp/getWeekOfMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getWeekOfMonth as fn } from '../../getWeekOfMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getWeekOfMonth = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getWeekOfMonthWithOptions/index.ts b/src/date-fns/fp/getWeekOfMonthWithOptions/index.ts deleted file mode 100644 index 1340ba2..0000000 --- a/src/date-fns/fp/getWeekOfMonthWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getWeekOfMonth as fn } from '../../getWeekOfMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getWeekOfMonthWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/getWeekWithOptions/index.ts b/src/date-fns/fp/getWeekWithOptions/index.ts deleted file mode 100644 index bda0da6..0000000 --- a/src/date-fns/fp/getWeekWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getWeek as fn } from '../../getWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getWeekWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/getWeekYear/index.ts b/src/date-fns/fp/getWeekYear/index.ts deleted file mode 100644 index 68e8b8c..0000000 --- a/src/date-fns/fp/getWeekYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getWeekYear as fn } from '../../getWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getWeekYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getWeekYearWithOptions/index.ts b/src/date-fns/fp/getWeekYearWithOptions/index.ts deleted file mode 100644 index 3f4d835..0000000 --- a/src/date-fns/fp/getWeekYearWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getWeekYear as fn } from '../../getWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getWeekYearWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/getWeeksInMonth/index.ts b/src/date-fns/fp/getWeeksInMonth/index.ts deleted file mode 100644 index 2863cee..0000000 --- a/src/date-fns/fp/getWeeksInMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getWeeksInMonth as fn } from '../../getWeeksInMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getWeeksInMonth = convertToFP(fn, 1); diff --git a/src/date-fns/fp/getWeeksInMonthWithOptions/index.ts b/src/date-fns/fp/getWeeksInMonthWithOptions/index.ts deleted file mode 100644 index fdc4947..0000000 --- a/src/date-fns/fp/getWeeksInMonthWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getWeeksInMonth as fn } from '../../getWeeksInMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getWeeksInMonthWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/getYear/index.ts b/src/date-fns/fp/getYear/index.ts deleted file mode 100644 index ab4e51c..0000000 --- a/src/date-fns/fp/getYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { getYear as fn } from '../../getYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const getYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/hoursToMilliseconds/index.ts b/src/date-fns/fp/hoursToMilliseconds/index.ts deleted file mode 100644 index bd213c3..0000000 --- a/src/date-fns/fp/hoursToMilliseconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { hoursToMilliseconds as fn } from '../../hoursToMilliseconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const hoursToMilliseconds = convertToFP(fn, 1); diff --git a/src/date-fns/fp/hoursToMinutes/index.ts b/src/date-fns/fp/hoursToMinutes/index.ts deleted file mode 100644 index 5217afe..0000000 --- a/src/date-fns/fp/hoursToMinutes/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { hoursToMinutes as fn } from '../../hoursToMinutes/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const hoursToMinutes = convertToFP(fn, 1); diff --git a/src/date-fns/fp/hoursToSeconds/index.ts b/src/date-fns/fp/hoursToSeconds/index.ts deleted file mode 100644 index 482e58f..0000000 --- a/src/date-fns/fp/hoursToSeconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { hoursToSeconds as fn } from '../../hoursToSeconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const hoursToSeconds = convertToFP(fn, 1); diff --git a/src/date-fns/fp/index.ts b/src/date-fns/fp/index.ts deleted file mode 100644 index 8609351..0000000 --- a/src/date-fns/fp/index.ts +++ /dev/null @@ -1,265 +0,0 @@ -// This file is generated automatically by `scripts/build/indices.ts`. Please, don't change it. - -export * from './add/index'; -export * from './addBusinessDays/index'; -export * from './addDays/index'; -export * from './addHours/index'; -export * from './addISOWeekYears/index'; -export * from './addMilliseconds/index'; -export * from './addMinutes/index'; -export * from './addMonths/index'; -export * from './addQuarters/index'; -export * from './addSeconds/index'; -export * from './addWeeks/index'; -export * from './addYears/index'; -export * from './areIntervalsOverlapping/index'; -export * from './areIntervalsOverlappingWithOptions/index'; -export * from './clamp/index'; -export * from './closestIndexTo/index'; -export * from './closestTo/index'; -export * from './compareAsc/index'; -export * from './compareDesc/index'; -export * from './constructFrom/index'; -export * from './daysToWeeks/index'; -export * from './differenceInBusinessDays/index'; -export * from './differenceInCalendarDays/index'; -export * from './differenceInCalendarISOWeekYears/index'; -export * from './differenceInCalendarISOWeeks/index'; -export * from './differenceInCalendarMonths/index'; -export * from './differenceInCalendarQuarters/index'; -export * from './differenceInCalendarWeeks/index'; -export * from './differenceInCalendarWeeksWithOptions/index'; -export * from './differenceInCalendarYears/index'; -export * from './differenceInDays/index'; -export * from './differenceInHours/index'; -export * from './differenceInHoursWithOptions/index'; -export * from './differenceInISOWeekYears/index'; -export * from './differenceInMilliseconds/index'; -export * from './differenceInMinutes/index'; -export * from './differenceInMinutesWithOptions/index'; -export * from './differenceInMonths/index'; -export * from './differenceInQuarters/index'; -export * from './differenceInQuartersWithOptions/index'; -export * from './differenceInSeconds/index'; -export * from './differenceInSecondsWithOptions/index'; -export * from './differenceInWeeks/index'; -export * from './differenceInWeeksWithOptions/index'; -export * from './differenceInYears/index'; -export * from './eachDayOfInterval/index'; -export * from './eachDayOfIntervalWithOptions/index'; -export * from './eachHourOfInterval/index'; -export * from './eachHourOfIntervalWithOptions/index'; -export * from './eachMinuteOfInterval/index'; -export * from './eachMinuteOfIntervalWithOptions/index'; -export * from './eachMonthOfInterval/index'; -export * from './eachMonthOfIntervalWithOptions/index'; -export * from './eachQuarterOfInterval/index'; -export * from './eachQuarterOfIntervalWithOptions/index'; -export * from './eachWeekOfInterval/index'; -export * from './eachWeekOfIntervalWithOptions/index'; -export * from './eachWeekendOfInterval/index'; -export * from './eachWeekendOfMonth/index'; -export * from './eachWeekendOfYear/index'; -export * from './eachYearOfInterval/index'; -export * from './eachYearOfIntervalWithOptions/index'; -export * from './endOfDay/index'; -export * from './endOfDecade/index'; -export * from './endOfHour/index'; -export * from './endOfISOWeek/index'; -export * from './endOfISOWeekYear/index'; -export * from './endOfMinute/index'; -export * from './endOfMonth/index'; -export * from './endOfQuarter/index'; -export * from './endOfSecond/index'; -export * from './endOfWeek/index'; -export * from './endOfWeekWithOptions/index'; -export * from './endOfYear/index'; -export * from './format/index'; -export * from './formatDistance/index'; -export * from './formatDistanceStrict/index'; -export * from './formatDistanceStrictWithOptions/index'; -export * from './formatDistanceWithOptions/index'; -export * from './formatDuration/index'; -export * from './formatDurationWithOptions/index'; -export * from './formatISO/index'; -export * from './formatISO9075/index'; -export * from './formatISO9075WithOptions/index'; -export * from './formatISODuration/index'; -export * from './formatISOWithOptions/index'; -export * from './formatRFC3339/index'; -export * from './formatRFC3339WithOptions/index'; -export * from './formatRFC7231/index'; -export * from './formatRelative/index'; -export * from './formatRelativeWithOptions/index'; -export * from './formatWithOptions/index'; -export * from './fromUnixTime/index'; -export * from './getDate/index'; -export * from './getDay/index'; -export * from './getDayOfYear/index'; -export * from './getDaysInMonth/index'; -export * from './getDaysInYear/index'; -export * from './getDecade/index'; -export * from './getHours/index'; -export * from './getISODay/index'; -export * from './getISOWeek/index'; -export * from './getISOWeekYear/index'; -export * from './getISOWeeksInYear/index'; -export * from './getMilliseconds/index'; -export * from './getMinutes/index'; -export * from './getMonth/index'; -export * from './getOverlappingDaysInIntervals/index'; -export * from './getQuarter/index'; -export * from './getSeconds/index'; -export * from './getTime/index'; -export * from './getUnixTime/index'; -export * from './getWeek/index'; -export * from './getWeekOfMonth/index'; -export * from './getWeekOfMonthWithOptions/index'; -export * from './getWeekWithOptions/index'; -export * from './getWeekYear/index'; -export * from './getWeekYearWithOptions/index'; -export * from './getWeeksInMonth/index'; -export * from './getWeeksInMonthWithOptions/index'; -export * from './getYear/index'; -export * from './hoursToMilliseconds/index'; -export * from './hoursToMinutes/index'; -export * from './hoursToSeconds/index'; -export * from './interval/index'; -export * from './intervalToDuration/index'; -export * from './intervalWithOptions/index'; -export * from './intlFormat/index'; -export * from './intlFormatDistance/index'; -export * from './intlFormatDistanceWithOptions/index'; -export * from './isAfter/index'; -export * from './isBefore/index'; -export * from './isDate/index'; -export * from './isEqual/index'; -export * from './isExists/index'; -export * from './isFirstDayOfMonth/index'; -export * from './isFriday/index'; -export * from './isLastDayOfMonth/index'; -export * from './isLeapYear/index'; -export * from './isMatch/index'; -export * from './isMatchWithOptions/index'; -export * from './isMonday/index'; -export * from './isSameDay/index'; -export * from './isSameHour/index'; -export * from './isSameISOWeek/index'; -export * from './isSameISOWeekYear/index'; -export * from './isSameMinute/index'; -export * from './isSameMonth/index'; -export * from './isSameQuarter/index'; -export * from './isSameSecond/index'; -export * from './isSameWeek/index'; -export * from './isSameWeekWithOptions/index'; -export * from './isSameYear/index'; -export * from './isSaturday/index'; -export * from './isSunday/index'; -export * from './isThursday/index'; -export * from './isTuesday/index'; -export * from './isValid/index'; -export * from './isWednesday/index'; -export * from './isWeekend/index'; -export * from './isWithinInterval/index'; -export * from './lastDayOfDecade/index'; -export * from './lastDayOfISOWeek/index'; -export * from './lastDayOfISOWeekYear/index'; -export * from './lastDayOfMonth/index'; -export * from './lastDayOfQuarter/index'; -export * from './lastDayOfWeek/index'; -export * from './lastDayOfWeekWithOptions/index'; -export * from './lastDayOfYear/index'; -export * from './lightFormat/index'; -export * from './max/index'; -export * from './milliseconds/index'; -export * from './millisecondsToHours/index'; -export * from './millisecondsToMinutes/index'; -export * from './millisecondsToSeconds/index'; -export * from './min/index'; -export * from './minutesToHours/index'; -export * from './minutesToMilliseconds/index'; -export * from './minutesToSeconds/index'; -export * from './monthsToQuarters/index'; -export * from './monthsToYears/index'; -export * from './nextDay/index'; -export * from './nextFriday/index'; -export * from './nextMonday/index'; -export * from './nextSaturday/index'; -export * from './nextSunday/index'; -export * from './nextThursday/index'; -export * from './nextTuesday/index'; -export * from './nextWednesday/index'; -export * from './parse/index'; -export * from './parseISO/index'; -export * from './parseISOWithOptions/index'; -export * from './parseJSON/index'; -export * from './parseWithOptions/index'; -export * from './previousDay/index'; -export * from './previousFriday/index'; -export * from './previousMonday/index'; -export * from './previousSaturday/index'; -export * from './previousSunday/index'; -export * from './previousThursday/index'; -export * from './previousTuesday/index'; -export * from './previousWednesday/index'; -export * from './quartersToMonths/index'; -export * from './quartersToYears/index'; -export * from './roundToNearestHours/index'; -export * from './roundToNearestHoursWithOptions/index'; -export * from './roundToNearestMinutes/index'; -export * from './roundToNearestMinutesWithOptions/index'; -export * from './secondsToHours/index'; -export * from './secondsToMilliseconds/index'; -export * from './secondsToMinutes/index'; -export * from './set/index'; -export * from './setDate/index'; -export * from './setDay/index'; -export * from './setDayOfYear/index'; -export * from './setDayWithOptions/index'; -export * from './setHours/index'; -export * from './setISODay/index'; -export * from './setISOWeek/index'; -export * from './setISOWeekYear/index'; -export * from './setMilliseconds/index'; -export * from './setMinutes/index'; -export * from './setMonth/index'; -export * from './setQuarter/index'; -export * from './setSeconds/index'; -export * from './setWeek/index'; -export * from './setWeekWithOptions/index'; -export * from './setWeekYear/index'; -export * from './setWeekYearWithOptions/index'; -export * from './setYear/index'; -export * from './startOfDay/index'; -export * from './startOfDecade/index'; -export * from './startOfHour/index'; -export * from './startOfISOWeek/index'; -export * from './startOfISOWeekYear/index'; -export * from './startOfMinute/index'; -export * from './startOfMonth/index'; -export * from './startOfQuarter/index'; -export * from './startOfSecond/index'; -export * from './startOfWeek/index'; -export * from './startOfWeekWithOptions/index'; -export * from './startOfWeekYear/index'; -export * from './startOfWeekYearWithOptions/index'; -export * from './startOfYear/index'; -export * from './sub/index'; -export * from './subBusinessDays/index'; -export * from './subDays/index'; -export * from './subHours/index'; -export * from './subISOWeekYears/index'; -export * from './subMilliseconds/index'; -export * from './subMinutes/index'; -export * from './subMonths/index'; -export * from './subQuarters/index'; -export * from './subSeconds/index'; -export * from './subWeeks/index'; -export * from './subYears/index'; -export * from './toDate/index'; -export * from './transpose/index'; -export * from './weeksToDays/index'; -export * from './yearsToDays/index'; -export * from './yearsToMonths/index'; -export * from './yearsToQuarters/index'; -export type * from '../types'; diff --git a/src/date-fns/fp/interval/index.ts b/src/date-fns/fp/interval/index.ts deleted file mode 100644 index 534730f..0000000 --- a/src/date-fns/fp/interval/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { interval as fn } from '../../interval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const interval = convertToFP(fn, 2); diff --git a/src/date-fns/fp/intervalToDuration/index.ts b/src/date-fns/fp/intervalToDuration/index.ts deleted file mode 100644 index 36b5557..0000000 --- a/src/date-fns/fp/intervalToDuration/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { intervalToDuration as fn } from '../../intervalToDuration/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const intervalToDuration = convertToFP(fn, 1); diff --git a/src/date-fns/fp/intervalWithOptions/index.ts b/src/date-fns/fp/intervalWithOptions/index.ts deleted file mode 100644 index f8d42f5..0000000 --- a/src/date-fns/fp/intervalWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { interval as fn } from '../../interval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const intervalWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/intlFormat/index.ts b/src/date-fns/fp/intlFormat/index.ts deleted file mode 100644 index 8a19a58..0000000 --- a/src/date-fns/fp/intlFormat/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { intlFormat as fn } from '../../intlFormat/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const intlFormat = convertToFP(fn, 3); diff --git a/src/date-fns/fp/intlFormatDistance/index.ts b/src/date-fns/fp/intlFormatDistance/index.ts deleted file mode 100644 index 81ee1c0..0000000 --- a/src/date-fns/fp/intlFormatDistance/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { intlFormatDistance as fn } from '../../intlFormatDistance/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const intlFormatDistance = convertToFP(fn, 2); diff --git a/src/date-fns/fp/intlFormatDistanceWithOptions/index.ts b/src/date-fns/fp/intlFormatDistanceWithOptions/index.ts deleted file mode 100644 index 9950e17..0000000 --- a/src/date-fns/fp/intlFormatDistanceWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { intlFormatDistance as fn } from '../../intlFormatDistance/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const intlFormatDistanceWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/isAfter/index.ts b/src/date-fns/fp/isAfter/index.ts deleted file mode 100644 index fc72f28..0000000 --- a/src/date-fns/fp/isAfter/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isAfter as fn } from '../../isAfter/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isAfter = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isBefore/index.ts b/src/date-fns/fp/isBefore/index.ts deleted file mode 100644 index f8d2d3b..0000000 --- a/src/date-fns/fp/isBefore/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isBefore as fn } from '../../isBefore/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isBefore = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isDate/index.ts b/src/date-fns/fp/isDate/index.ts deleted file mode 100644 index cbeffe9..0000000 --- a/src/date-fns/fp/isDate/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isDate as fn } from '../../isDate/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isDate = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isEqual/index.ts b/src/date-fns/fp/isEqual/index.ts deleted file mode 100644 index 43755e5..0000000 --- a/src/date-fns/fp/isEqual/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isEqual as fn } from '../../isEqual/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isEqual = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isExists/index.ts b/src/date-fns/fp/isExists/index.ts deleted file mode 100644 index 1abc3b2..0000000 --- a/src/date-fns/fp/isExists/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isExists as fn } from '../../isExists/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isExists = convertToFP(fn, 3); diff --git a/src/date-fns/fp/isFirstDayOfMonth/index.ts b/src/date-fns/fp/isFirstDayOfMonth/index.ts deleted file mode 100644 index 67ac38a..0000000 --- a/src/date-fns/fp/isFirstDayOfMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isFirstDayOfMonth as fn } from '../../isFirstDayOfMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isFirstDayOfMonth = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isFriday/index.ts b/src/date-fns/fp/isFriday/index.ts deleted file mode 100644 index e045d75..0000000 --- a/src/date-fns/fp/isFriday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isFriday as fn } from '../../isFriday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isFriday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isLastDayOfMonth/index.ts b/src/date-fns/fp/isLastDayOfMonth/index.ts deleted file mode 100644 index 340b09e..0000000 --- a/src/date-fns/fp/isLastDayOfMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isLastDayOfMonth as fn } from '../../isLastDayOfMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isLastDayOfMonth = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isLeapYear/index.ts b/src/date-fns/fp/isLeapYear/index.ts deleted file mode 100644 index d546fea..0000000 --- a/src/date-fns/fp/isLeapYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isLeapYear as fn } from '../../isLeapYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isLeapYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isMatch/index.ts b/src/date-fns/fp/isMatch/index.ts deleted file mode 100644 index 96974d0..0000000 --- a/src/date-fns/fp/isMatch/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isMatch as fn } from '../../isMatch/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isMatch = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isMatchWithOptions/index.ts b/src/date-fns/fp/isMatchWithOptions/index.ts deleted file mode 100644 index 97895b9..0000000 --- a/src/date-fns/fp/isMatchWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isMatch as fn } from '../../isMatch/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isMatchWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/isMonday/index.ts b/src/date-fns/fp/isMonday/index.ts deleted file mode 100644 index 4b3c6e5..0000000 --- a/src/date-fns/fp/isMonday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isMonday as fn } from '../../isMonday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isMonday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isSameDay/index.ts b/src/date-fns/fp/isSameDay/index.ts deleted file mode 100644 index 6a866ca..0000000 --- a/src/date-fns/fp/isSameDay/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSameDay as fn } from '../../isSameDay/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSameDay = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isSameHour/index.ts b/src/date-fns/fp/isSameHour/index.ts deleted file mode 100644 index 163ef54..0000000 --- a/src/date-fns/fp/isSameHour/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSameHour as fn } from '../../isSameHour/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSameHour = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isSameISOWeek/index.ts b/src/date-fns/fp/isSameISOWeek/index.ts deleted file mode 100644 index dd61875..0000000 --- a/src/date-fns/fp/isSameISOWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSameISOWeek as fn } from '../../isSameISOWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSameISOWeek = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isSameISOWeekYear/index.ts b/src/date-fns/fp/isSameISOWeekYear/index.ts deleted file mode 100644 index 74daef7..0000000 --- a/src/date-fns/fp/isSameISOWeekYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSameISOWeekYear as fn } from '../../isSameISOWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSameISOWeekYear = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isSameMinute/index.ts b/src/date-fns/fp/isSameMinute/index.ts deleted file mode 100644 index 3cc58f0..0000000 --- a/src/date-fns/fp/isSameMinute/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSameMinute as fn } from '../../isSameMinute/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSameMinute = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isSameMonth/index.ts b/src/date-fns/fp/isSameMonth/index.ts deleted file mode 100644 index 91e0400..0000000 --- a/src/date-fns/fp/isSameMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSameMonth as fn } from '../../isSameMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSameMonth = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isSameQuarter/index.ts b/src/date-fns/fp/isSameQuarter/index.ts deleted file mode 100644 index d689209..0000000 --- a/src/date-fns/fp/isSameQuarter/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSameQuarter as fn } from '../../isSameQuarter/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSameQuarter = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isSameSecond/index.ts b/src/date-fns/fp/isSameSecond/index.ts deleted file mode 100644 index b84ff61..0000000 --- a/src/date-fns/fp/isSameSecond/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSameSecond as fn } from '../../isSameSecond/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSameSecond = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isSameWeek/index.ts b/src/date-fns/fp/isSameWeek/index.ts deleted file mode 100644 index 1d42732..0000000 --- a/src/date-fns/fp/isSameWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSameWeek as fn } from '../../isSameWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSameWeek = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isSameWeekWithOptions/index.ts b/src/date-fns/fp/isSameWeekWithOptions/index.ts deleted file mode 100644 index 3493e62..0000000 --- a/src/date-fns/fp/isSameWeekWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSameWeek as fn } from '../../isSameWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSameWeekWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/isSameYear/index.ts b/src/date-fns/fp/isSameYear/index.ts deleted file mode 100644 index db1ebc5..0000000 --- a/src/date-fns/fp/isSameYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSameYear as fn } from '../../isSameYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSameYear = convertToFP(fn, 2); diff --git a/src/date-fns/fp/isSaturday/index.ts b/src/date-fns/fp/isSaturday/index.ts deleted file mode 100644 index 7a84666..0000000 --- a/src/date-fns/fp/isSaturday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSaturday as fn } from '../../isSaturday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSaturday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isSunday/index.ts b/src/date-fns/fp/isSunday/index.ts deleted file mode 100644 index cbc1d7e..0000000 --- a/src/date-fns/fp/isSunday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isSunday as fn } from '../../isSunday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isSunday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isThursday/index.ts b/src/date-fns/fp/isThursday/index.ts deleted file mode 100644 index 91211fd..0000000 --- a/src/date-fns/fp/isThursday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isThursday as fn } from '../../isThursday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isThursday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isTuesday/index.ts b/src/date-fns/fp/isTuesday/index.ts deleted file mode 100644 index b0fcc87..0000000 --- a/src/date-fns/fp/isTuesday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isTuesday as fn } from '../../isTuesday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isTuesday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isValid/index.ts b/src/date-fns/fp/isValid/index.ts deleted file mode 100644 index 99e6181..0000000 --- a/src/date-fns/fp/isValid/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isValid as fn } from '../../isValid/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isValid = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isWednesday/index.ts b/src/date-fns/fp/isWednesday/index.ts deleted file mode 100644 index ec3d892..0000000 --- a/src/date-fns/fp/isWednesday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isWednesday as fn } from '../../isWednesday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isWednesday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isWeekend/index.ts b/src/date-fns/fp/isWeekend/index.ts deleted file mode 100644 index 70195e5..0000000 --- a/src/date-fns/fp/isWeekend/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isWeekend as fn } from '../../isWeekend/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isWeekend = convertToFP(fn, 1); diff --git a/src/date-fns/fp/isWithinInterval/index.ts b/src/date-fns/fp/isWithinInterval/index.ts deleted file mode 100644 index a91bcb3..0000000 --- a/src/date-fns/fp/isWithinInterval/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { isWithinInterval as fn } from '../../isWithinInterval/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const isWithinInterval = convertToFP(fn, 2); diff --git a/src/date-fns/fp/lastDayOfDecade/index.ts b/src/date-fns/fp/lastDayOfDecade/index.ts deleted file mode 100644 index c949c79..0000000 --- a/src/date-fns/fp/lastDayOfDecade/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { lastDayOfDecade as fn } from '../../lastDayOfDecade/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const lastDayOfDecade = convertToFP(fn, 1); diff --git a/src/date-fns/fp/lastDayOfISOWeek/index.ts b/src/date-fns/fp/lastDayOfISOWeek/index.ts deleted file mode 100644 index 89ddeb3..0000000 --- a/src/date-fns/fp/lastDayOfISOWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { lastDayOfISOWeek as fn } from '../../lastDayOfISOWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const lastDayOfISOWeek = convertToFP(fn, 1); diff --git a/src/date-fns/fp/lastDayOfISOWeekYear/index.ts b/src/date-fns/fp/lastDayOfISOWeekYear/index.ts deleted file mode 100644 index 62c5ece..0000000 --- a/src/date-fns/fp/lastDayOfISOWeekYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { lastDayOfISOWeekYear as fn } from '../../lastDayOfISOWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const lastDayOfISOWeekYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/lastDayOfMonth/index.ts b/src/date-fns/fp/lastDayOfMonth/index.ts deleted file mode 100644 index d23909e..0000000 --- a/src/date-fns/fp/lastDayOfMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { lastDayOfMonth as fn } from '../../lastDayOfMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const lastDayOfMonth = convertToFP(fn, 1); diff --git a/src/date-fns/fp/lastDayOfQuarter/index.ts b/src/date-fns/fp/lastDayOfQuarter/index.ts deleted file mode 100644 index 3817b8b..0000000 --- a/src/date-fns/fp/lastDayOfQuarter/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { lastDayOfQuarter as fn } from '../../lastDayOfQuarter/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const lastDayOfQuarter = convertToFP(fn, 1); diff --git a/src/date-fns/fp/lastDayOfWeek/index.ts b/src/date-fns/fp/lastDayOfWeek/index.ts deleted file mode 100644 index 484b8d5..0000000 --- a/src/date-fns/fp/lastDayOfWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { lastDayOfWeek as fn } from '../../lastDayOfWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const lastDayOfWeek = convertToFP(fn, 1); diff --git a/src/date-fns/fp/lastDayOfWeekWithOptions/index.ts b/src/date-fns/fp/lastDayOfWeekWithOptions/index.ts deleted file mode 100644 index f32f2d4..0000000 --- a/src/date-fns/fp/lastDayOfWeekWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { lastDayOfWeek as fn } from '../../lastDayOfWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const lastDayOfWeekWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/lastDayOfYear/index.ts b/src/date-fns/fp/lastDayOfYear/index.ts deleted file mode 100644 index fb98cdc..0000000 --- a/src/date-fns/fp/lastDayOfYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { lastDayOfYear as fn } from '../../lastDayOfYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const lastDayOfYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/lightFormat/index.ts b/src/date-fns/fp/lightFormat/index.ts deleted file mode 100644 index 9c21351..0000000 --- a/src/date-fns/fp/lightFormat/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { lightFormat as fn } from '../../lightFormat/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const lightFormat = convertToFP(fn, 2); diff --git a/src/date-fns/fp/max/index.ts b/src/date-fns/fp/max/index.ts deleted file mode 100644 index aab8ffb..0000000 --- a/src/date-fns/fp/max/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { max as fn } from '../../max/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const max = convertToFP(fn, 1); diff --git a/src/date-fns/fp/milliseconds/index.ts b/src/date-fns/fp/milliseconds/index.ts deleted file mode 100644 index d9f76d8..0000000 --- a/src/date-fns/fp/milliseconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { milliseconds as fn } from '../../milliseconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const milliseconds = convertToFP(fn, 1); diff --git a/src/date-fns/fp/millisecondsToHours/index.ts b/src/date-fns/fp/millisecondsToHours/index.ts deleted file mode 100644 index 4f18564..0000000 --- a/src/date-fns/fp/millisecondsToHours/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { millisecondsToHours as fn } from '../../millisecondsToHours/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const millisecondsToHours = convertToFP(fn, 1); diff --git a/src/date-fns/fp/millisecondsToMinutes/index.ts b/src/date-fns/fp/millisecondsToMinutes/index.ts deleted file mode 100644 index b640264..0000000 --- a/src/date-fns/fp/millisecondsToMinutes/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { millisecondsToMinutes as fn } from '../../millisecondsToMinutes/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const millisecondsToMinutes = convertToFP(fn, 1); diff --git a/src/date-fns/fp/millisecondsToSeconds/index.ts b/src/date-fns/fp/millisecondsToSeconds/index.ts deleted file mode 100644 index 8368f77..0000000 --- a/src/date-fns/fp/millisecondsToSeconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { millisecondsToSeconds as fn } from '../../millisecondsToSeconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const millisecondsToSeconds = convertToFP(fn, 1); diff --git a/src/date-fns/fp/min/index.ts b/src/date-fns/fp/min/index.ts deleted file mode 100644 index 7338580..0000000 --- a/src/date-fns/fp/min/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { min as fn } from '../../min/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const min = convertToFP(fn, 1); diff --git a/src/date-fns/fp/minutesToHours/index.ts b/src/date-fns/fp/minutesToHours/index.ts deleted file mode 100644 index 900d645..0000000 --- a/src/date-fns/fp/minutesToHours/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { minutesToHours as fn } from '../../minutesToHours/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const minutesToHours = convertToFP(fn, 1); diff --git a/src/date-fns/fp/minutesToMilliseconds/index.ts b/src/date-fns/fp/minutesToMilliseconds/index.ts deleted file mode 100644 index 18aa899..0000000 --- a/src/date-fns/fp/minutesToMilliseconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { minutesToMilliseconds as fn } from '../../minutesToMilliseconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const minutesToMilliseconds = convertToFP(fn, 1); diff --git a/src/date-fns/fp/minutesToSeconds/index.ts b/src/date-fns/fp/minutesToSeconds/index.ts deleted file mode 100644 index 7586fe0..0000000 --- a/src/date-fns/fp/minutesToSeconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { minutesToSeconds as fn } from '../../minutesToSeconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const minutesToSeconds = convertToFP(fn, 1); diff --git a/src/date-fns/fp/monthsToQuarters/index.ts b/src/date-fns/fp/monthsToQuarters/index.ts deleted file mode 100644 index bf524f3..0000000 --- a/src/date-fns/fp/monthsToQuarters/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { monthsToQuarters as fn } from '../../monthsToQuarters/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const monthsToQuarters = convertToFP(fn, 1); diff --git a/src/date-fns/fp/monthsToYears/index.ts b/src/date-fns/fp/monthsToYears/index.ts deleted file mode 100644 index 8b20671..0000000 --- a/src/date-fns/fp/monthsToYears/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { monthsToYears as fn } from '../../monthsToYears/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const monthsToYears = convertToFP(fn, 1); diff --git a/src/date-fns/fp/nextDay/index.ts b/src/date-fns/fp/nextDay/index.ts deleted file mode 100644 index 4930a01..0000000 --- a/src/date-fns/fp/nextDay/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { nextDay as fn } from '../../nextDay/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const nextDay = convertToFP(fn, 2); diff --git a/src/date-fns/fp/nextFriday/index.ts b/src/date-fns/fp/nextFriday/index.ts deleted file mode 100644 index f590ea7..0000000 --- a/src/date-fns/fp/nextFriday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { nextFriday as fn } from '../../nextFriday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const nextFriday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/nextMonday/index.ts b/src/date-fns/fp/nextMonday/index.ts deleted file mode 100644 index efb5d2b..0000000 --- a/src/date-fns/fp/nextMonday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { nextMonday as fn } from '../../nextMonday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const nextMonday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/nextSaturday/index.ts b/src/date-fns/fp/nextSaturday/index.ts deleted file mode 100644 index d3be636..0000000 --- a/src/date-fns/fp/nextSaturday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { nextSaturday as fn } from '../../nextSaturday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const nextSaturday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/nextSunday/index.ts b/src/date-fns/fp/nextSunday/index.ts deleted file mode 100644 index 75fb357..0000000 --- a/src/date-fns/fp/nextSunday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { nextSunday as fn } from '../../nextSunday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const nextSunday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/nextThursday/index.ts b/src/date-fns/fp/nextThursday/index.ts deleted file mode 100644 index 8a83f2e..0000000 --- a/src/date-fns/fp/nextThursday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { nextThursday as fn } from '../../nextThursday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const nextThursday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/nextTuesday/index.ts b/src/date-fns/fp/nextTuesday/index.ts deleted file mode 100644 index 44130e6..0000000 --- a/src/date-fns/fp/nextTuesday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { nextTuesday as fn } from '../../nextTuesday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const nextTuesday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/nextWednesday/index.ts b/src/date-fns/fp/nextWednesday/index.ts deleted file mode 100644 index e81b526..0000000 --- a/src/date-fns/fp/nextWednesday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { nextWednesday as fn } from '../../nextWednesday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const nextWednesday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/parse/index.ts b/src/date-fns/fp/parse/index.ts deleted file mode 100644 index 16e864b..0000000 --- a/src/date-fns/fp/parse/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { parse as fn } from '../../parse/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const parse = convertToFP(fn, 3); diff --git a/src/date-fns/fp/parseISO/index.ts b/src/date-fns/fp/parseISO/index.ts deleted file mode 100644 index 6d4ebe8..0000000 --- a/src/date-fns/fp/parseISO/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { parseISO as fn } from '../../parseISO/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const parseISO = convertToFP(fn, 1); diff --git a/src/date-fns/fp/parseISOWithOptions/index.ts b/src/date-fns/fp/parseISOWithOptions/index.ts deleted file mode 100644 index f18012b..0000000 --- a/src/date-fns/fp/parseISOWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { parseISO as fn } from '../../parseISO/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const parseISOWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/parseJSON/index.ts b/src/date-fns/fp/parseJSON/index.ts deleted file mode 100644 index fdb5ef3..0000000 --- a/src/date-fns/fp/parseJSON/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { parseJSON as fn } from '../../parseJSON/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const parseJSON = convertToFP(fn, 1); diff --git a/src/date-fns/fp/parseWithOptions/index.ts b/src/date-fns/fp/parseWithOptions/index.ts deleted file mode 100644 index 8ae534d..0000000 --- a/src/date-fns/fp/parseWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { parse as fn } from '../../parse/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const parseWithOptions = convertToFP(fn, 4); diff --git a/src/date-fns/fp/previousDay/index.ts b/src/date-fns/fp/previousDay/index.ts deleted file mode 100644 index 75d0699..0000000 --- a/src/date-fns/fp/previousDay/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { previousDay as fn } from '../../previousDay/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const previousDay = convertToFP(fn, 2); diff --git a/src/date-fns/fp/previousFriday/index.ts b/src/date-fns/fp/previousFriday/index.ts deleted file mode 100644 index 94b1a95..0000000 --- a/src/date-fns/fp/previousFriday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { previousFriday as fn } from '../../previousFriday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const previousFriday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/previousMonday/index.ts b/src/date-fns/fp/previousMonday/index.ts deleted file mode 100644 index 7bfaac2..0000000 --- a/src/date-fns/fp/previousMonday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { previousMonday as fn } from '../../previousMonday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const previousMonday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/previousSaturday/index.ts b/src/date-fns/fp/previousSaturday/index.ts deleted file mode 100644 index 3442412..0000000 --- a/src/date-fns/fp/previousSaturday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { previousSaturday as fn } from '../../previousSaturday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const previousSaturday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/previousSunday/index.ts b/src/date-fns/fp/previousSunday/index.ts deleted file mode 100644 index c381fb9..0000000 --- a/src/date-fns/fp/previousSunday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { previousSunday as fn } from '../../previousSunday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const previousSunday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/previousThursday/index.ts b/src/date-fns/fp/previousThursday/index.ts deleted file mode 100644 index c74023f..0000000 --- a/src/date-fns/fp/previousThursday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { previousThursday as fn } from '../../previousThursday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const previousThursday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/previousTuesday/index.ts b/src/date-fns/fp/previousTuesday/index.ts deleted file mode 100644 index b531da5..0000000 --- a/src/date-fns/fp/previousTuesday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { previousTuesday as fn } from '../../previousTuesday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const previousTuesday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/previousWednesday/index.ts b/src/date-fns/fp/previousWednesday/index.ts deleted file mode 100644 index 697f287..0000000 --- a/src/date-fns/fp/previousWednesday/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { previousWednesday as fn } from '../../previousWednesday/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const previousWednesday = convertToFP(fn, 1); diff --git a/src/date-fns/fp/quartersToMonths/index.ts b/src/date-fns/fp/quartersToMonths/index.ts deleted file mode 100644 index 26dde10..0000000 --- a/src/date-fns/fp/quartersToMonths/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { quartersToMonths as fn } from '../../quartersToMonths/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const quartersToMonths = convertToFP(fn, 1); diff --git a/src/date-fns/fp/quartersToYears/index.ts b/src/date-fns/fp/quartersToYears/index.ts deleted file mode 100644 index fb89ae5..0000000 --- a/src/date-fns/fp/quartersToYears/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { quartersToYears as fn } from '../../quartersToYears/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const quartersToYears = convertToFP(fn, 1); diff --git a/src/date-fns/fp/roundToNearestHours/index.ts b/src/date-fns/fp/roundToNearestHours/index.ts deleted file mode 100644 index 4e7ee81..0000000 --- a/src/date-fns/fp/roundToNearestHours/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { roundToNearestHours as fn } from '../../roundToNearestHours/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const roundToNearestHours = convertToFP(fn, 1); diff --git a/src/date-fns/fp/roundToNearestHoursWithOptions/index.ts b/src/date-fns/fp/roundToNearestHoursWithOptions/index.ts deleted file mode 100644 index a24e28f..0000000 --- a/src/date-fns/fp/roundToNearestHoursWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { roundToNearestHours as fn } from '../../roundToNearestHours/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const roundToNearestHoursWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/roundToNearestMinutes/index.ts b/src/date-fns/fp/roundToNearestMinutes/index.ts deleted file mode 100644 index 1f99417..0000000 --- a/src/date-fns/fp/roundToNearestMinutes/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { roundToNearestMinutes as fn } from '../../roundToNearestMinutes/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const roundToNearestMinutes = convertToFP(fn, 1); diff --git a/src/date-fns/fp/roundToNearestMinutesWithOptions/index.ts b/src/date-fns/fp/roundToNearestMinutesWithOptions/index.ts deleted file mode 100644 index 7930fd2..0000000 --- a/src/date-fns/fp/roundToNearestMinutesWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { roundToNearestMinutes as fn } from '../../roundToNearestMinutes/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const roundToNearestMinutesWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/secondsToHours/index.ts b/src/date-fns/fp/secondsToHours/index.ts deleted file mode 100644 index 4f37fc7..0000000 --- a/src/date-fns/fp/secondsToHours/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { secondsToHours as fn } from '../../secondsToHours/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const secondsToHours = convertToFP(fn, 1); diff --git a/src/date-fns/fp/secondsToMilliseconds/index.ts b/src/date-fns/fp/secondsToMilliseconds/index.ts deleted file mode 100644 index 2352b6d..0000000 --- a/src/date-fns/fp/secondsToMilliseconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { secondsToMilliseconds as fn } from '../../secondsToMilliseconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const secondsToMilliseconds = convertToFP(fn, 1); diff --git a/src/date-fns/fp/secondsToMinutes/index.ts b/src/date-fns/fp/secondsToMinutes/index.ts deleted file mode 100644 index 4979bf3..0000000 --- a/src/date-fns/fp/secondsToMinutes/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { secondsToMinutes as fn } from '../../secondsToMinutes/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const secondsToMinutes = convertToFP(fn, 1); diff --git a/src/date-fns/fp/set/index.ts b/src/date-fns/fp/set/index.ts deleted file mode 100644 index 10a1671..0000000 --- a/src/date-fns/fp/set/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { set as fn } from '../../set/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const set = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setDate/index.ts b/src/date-fns/fp/setDate/index.ts deleted file mode 100644 index 5eb34a5..0000000 --- a/src/date-fns/fp/setDate/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setDate as fn } from '../../setDate/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setDate = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setDay/index.ts b/src/date-fns/fp/setDay/index.ts deleted file mode 100644 index b1051f6..0000000 --- a/src/date-fns/fp/setDay/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setDay as fn } from '../../setDay/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setDay = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setDayOfYear/index.ts b/src/date-fns/fp/setDayOfYear/index.ts deleted file mode 100644 index 7b43b0b..0000000 --- a/src/date-fns/fp/setDayOfYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setDayOfYear as fn } from '../../setDayOfYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setDayOfYear = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setDayWithOptions/index.ts b/src/date-fns/fp/setDayWithOptions/index.ts deleted file mode 100644 index 63237cc..0000000 --- a/src/date-fns/fp/setDayWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setDay as fn } from '../../setDay/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setDayWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/setHours/index.ts b/src/date-fns/fp/setHours/index.ts deleted file mode 100644 index 3c1da05..0000000 --- a/src/date-fns/fp/setHours/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setHours as fn } from '../../setHours/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setHours = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setISODay/index.ts b/src/date-fns/fp/setISODay/index.ts deleted file mode 100644 index d7c7e3b..0000000 --- a/src/date-fns/fp/setISODay/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setISODay as fn } from '../../setISODay/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setISODay = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setISOWeek/index.ts b/src/date-fns/fp/setISOWeek/index.ts deleted file mode 100644 index c5a7306..0000000 --- a/src/date-fns/fp/setISOWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setISOWeek as fn } from '../../setISOWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setISOWeek = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setISOWeekYear/index.ts b/src/date-fns/fp/setISOWeekYear/index.ts deleted file mode 100644 index d614eba..0000000 --- a/src/date-fns/fp/setISOWeekYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setISOWeekYear as fn } from '../../setISOWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setISOWeekYear = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setMilliseconds/index.ts b/src/date-fns/fp/setMilliseconds/index.ts deleted file mode 100644 index c870e9d..0000000 --- a/src/date-fns/fp/setMilliseconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setMilliseconds as fn } from '../../setMilliseconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setMilliseconds = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setMinutes/index.ts b/src/date-fns/fp/setMinutes/index.ts deleted file mode 100644 index fd125ec..0000000 --- a/src/date-fns/fp/setMinutes/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setMinutes as fn } from '../../setMinutes/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setMinutes = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setMonth/index.ts b/src/date-fns/fp/setMonth/index.ts deleted file mode 100644 index 55bad93..0000000 --- a/src/date-fns/fp/setMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setMonth as fn } from '../../setMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setMonth = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setQuarter/index.ts b/src/date-fns/fp/setQuarter/index.ts deleted file mode 100644 index 6cda1f2..0000000 --- a/src/date-fns/fp/setQuarter/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setQuarter as fn } from '../../setQuarter/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setQuarter = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setSeconds/index.ts b/src/date-fns/fp/setSeconds/index.ts deleted file mode 100644 index 263298a..0000000 --- a/src/date-fns/fp/setSeconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setSeconds as fn } from '../../setSeconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setSeconds = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setWeek/index.ts b/src/date-fns/fp/setWeek/index.ts deleted file mode 100644 index 1601596..0000000 --- a/src/date-fns/fp/setWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setWeek as fn } from '../../setWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setWeek = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setWeekWithOptions/index.ts b/src/date-fns/fp/setWeekWithOptions/index.ts deleted file mode 100644 index e233613..0000000 --- a/src/date-fns/fp/setWeekWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setWeek as fn } from '../../setWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setWeekWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/setWeekYear/index.ts b/src/date-fns/fp/setWeekYear/index.ts deleted file mode 100644 index 1c8c5df..0000000 --- a/src/date-fns/fp/setWeekYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setWeekYear as fn } from '../../setWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setWeekYear = convertToFP(fn, 2); diff --git a/src/date-fns/fp/setWeekYearWithOptions/index.ts b/src/date-fns/fp/setWeekYearWithOptions/index.ts deleted file mode 100644 index e4ab1eb..0000000 --- a/src/date-fns/fp/setWeekYearWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setWeekYear as fn } from '../../setWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setWeekYearWithOptions = convertToFP(fn, 3); diff --git a/src/date-fns/fp/setYear/index.ts b/src/date-fns/fp/setYear/index.ts deleted file mode 100644 index 4eb7507..0000000 --- a/src/date-fns/fp/setYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { setYear as fn } from '../../setYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const setYear = convertToFP(fn, 2); diff --git a/src/date-fns/fp/startOfDay/index.ts b/src/date-fns/fp/startOfDay/index.ts deleted file mode 100644 index a3d0822..0000000 --- a/src/date-fns/fp/startOfDay/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfDay as fn } from '../../startOfDay/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfDay = convertToFP(fn, 1); diff --git a/src/date-fns/fp/startOfDecade/index.ts b/src/date-fns/fp/startOfDecade/index.ts deleted file mode 100644 index 50217ac..0000000 --- a/src/date-fns/fp/startOfDecade/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfDecade as fn } from '../../startOfDecade/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfDecade = convertToFP(fn, 1); diff --git a/src/date-fns/fp/startOfHour/index.ts b/src/date-fns/fp/startOfHour/index.ts deleted file mode 100644 index 2b2afd6..0000000 --- a/src/date-fns/fp/startOfHour/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfHour as fn } from '../../startOfHour/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfHour = convertToFP(fn, 1); diff --git a/src/date-fns/fp/startOfISOWeek/index.ts b/src/date-fns/fp/startOfISOWeek/index.ts deleted file mode 100644 index e239cd2..0000000 --- a/src/date-fns/fp/startOfISOWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfISOWeek as fn } from '../../startOfISOWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfISOWeek = convertToFP(fn, 1); diff --git a/src/date-fns/fp/startOfISOWeekYear/index.ts b/src/date-fns/fp/startOfISOWeekYear/index.ts deleted file mode 100644 index 6141a23..0000000 --- a/src/date-fns/fp/startOfISOWeekYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfISOWeekYear as fn } from '../../startOfISOWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfISOWeekYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/startOfMinute/index.ts b/src/date-fns/fp/startOfMinute/index.ts deleted file mode 100644 index 39a7d88..0000000 --- a/src/date-fns/fp/startOfMinute/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfMinute as fn } from '../../startOfMinute/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfMinute = convertToFP(fn, 1); diff --git a/src/date-fns/fp/startOfMonth/index.ts b/src/date-fns/fp/startOfMonth/index.ts deleted file mode 100644 index 4423d2f..0000000 --- a/src/date-fns/fp/startOfMonth/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfMonth as fn } from '../../startOfMonth/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfMonth = convertToFP(fn, 1); diff --git a/src/date-fns/fp/startOfQuarter/index.ts b/src/date-fns/fp/startOfQuarter/index.ts deleted file mode 100644 index ffe290e..0000000 --- a/src/date-fns/fp/startOfQuarter/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfQuarter as fn } from '../../startOfQuarter/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfQuarter = convertToFP(fn, 1); diff --git a/src/date-fns/fp/startOfSecond/index.ts b/src/date-fns/fp/startOfSecond/index.ts deleted file mode 100644 index 8d91170..0000000 --- a/src/date-fns/fp/startOfSecond/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfSecond as fn } from '../../startOfSecond/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfSecond = convertToFP(fn, 1); diff --git a/src/date-fns/fp/startOfWeek/index.ts b/src/date-fns/fp/startOfWeek/index.ts deleted file mode 100644 index 8e8d68a..0000000 --- a/src/date-fns/fp/startOfWeek/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfWeek as fn } from '../../startOfWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfWeek = convertToFP(fn, 1); diff --git a/src/date-fns/fp/startOfWeekWithOptions/index.ts b/src/date-fns/fp/startOfWeekWithOptions/index.ts deleted file mode 100644 index 1118a07..0000000 --- a/src/date-fns/fp/startOfWeekWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfWeek as fn } from '../../startOfWeek/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfWeekWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/startOfWeekYear/index.ts b/src/date-fns/fp/startOfWeekYear/index.ts deleted file mode 100644 index a6baced..0000000 --- a/src/date-fns/fp/startOfWeekYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfWeekYear as fn } from '../../startOfWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfWeekYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/startOfWeekYearWithOptions/index.ts b/src/date-fns/fp/startOfWeekYearWithOptions/index.ts deleted file mode 100644 index fb39d71..0000000 --- a/src/date-fns/fp/startOfWeekYearWithOptions/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfWeekYear as fn } from '../../startOfWeekYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfWeekYearWithOptions = convertToFP(fn, 2); diff --git a/src/date-fns/fp/startOfYear/index.ts b/src/date-fns/fp/startOfYear/index.ts deleted file mode 100644 index 538947b..0000000 --- a/src/date-fns/fp/startOfYear/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { startOfYear as fn } from '../../startOfYear/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const startOfYear = convertToFP(fn, 1); diff --git a/src/date-fns/fp/sub/index.ts b/src/date-fns/fp/sub/index.ts deleted file mode 100644 index ee77d9b..0000000 --- a/src/date-fns/fp/sub/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { sub as fn } from '../../sub/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const sub = convertToFP(fn, 2); diff --git a/src/date-fns/fp/subBusinessDays/index.ts b/src/date-fns/fp/subBusinessDays/index.ts deleted file mode 100644 index faaf5d3..0000000 --- a/src/date-fns/fp/subBusinessDays/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { subBusinessDays as fn } from '../../subBusinessDays/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const subBusinessDays = convertToFP(fn, 2); diff --git a/src/date-fns/fp/subDays/index.ts b/src/date-fns/fp/subDays/index.ts deleted file mode 100644 index 06e38b2..0000000 --- a/src/date-fns/fp/subDays/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { subDays as fn } from '../../subDays/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const subDays = convertToFP(fn, 2); diff --git a/src/date-fns/fp/subHours/index.ts b/src/date-fns/fp/subHours/index.ts deleted file mode 100644 index cdb436c..0000000 --- a/src/date-fns/fp/subHours/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { subHours as fn } from '../../subHours/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const subHours = convertToFP(fn, 2); diff --git a/src/date-fns/fp/subISOWeekYears/index.ts b/src/date-fns/fp/subISOWeekYears/index.ts deleted file mode 100644 index c8f2cdc..0000000 --- a/src/date-fns/fp/subISOWeekYears/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { subISOWeekYears as fn } from '../../subISOWeekYears/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const subISOWeekYears = convertToFP(fn, 2); diff --git a/src/date-fns/fp/subMilliseconds/index.ts b/src/date-fns/fp/subMilliseconds/index.ts deleted file mode 100644 index f0cb01f..0000000 --- a/src/date-fns/fp/subMilliseconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { subMilliseconds as fn } from '../../subMilliseconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const subMilliseconds = convertToFP(fn, 2); diff --git a/src/date-fns/fp/subMinutes/index.ts b/src/date-fns/fp/subMinutes/index.ts deleted file mode 100644 index 172375b..0000000 --- a/src/date-fns/fp/subMinutes/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { subMinutes as fn } from '../../subMinutes/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const subMinutes = convertToFP(fn, 2); diff --git a/src/date-fns/fp/subMonths/index.ts b/src/date-fns/fp/subMonths/index.ts deleted file mode 100644 index f08c8f1..0000000 --- a/src/date-fns/fp/subMonths/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { subMonths as fn } from '../../subMonths/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const subMonths = convertToFP(fn, 2); diff --git a/src/date-fns/fp/subQuarters/index.ts b/src/date-fns/fp/subQuarters/index.ts deleted file mode 100644 index 4415f24..0000000 --- a/src/date-fns/fp/subQuarters/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { subQuarters as fn } from '../../subQuarters/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const subQuarters = convertToFP(fn, 2); diff --git a/src/date-fns/fp/subSeconds/index.ts b/src/date-fns/fp/subSeconds/index.ts deleted file mode 100644 index 8f67365..0000000 --- a/src/date-fns/fp/subSeconds/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { subSeconds as fn } from '../../subSeconds/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const subSeconds = convertToFP(fn, 2); diff --git a/src/date-fns/fp/subWeeks/index.ts b/src/date-fns/fp/subWeeks/index.ts deleted file mode 100644 index a0fb51e..0000000 --- a/src/date-fns/fp/subWeeks/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { subWeeks as fn } from '../../subWeeks/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const subWeeks = convertToFP(fn, 2); diff --git a/src/date-fns/fp/subYears/index.ts b/src/date-fns/fp/subYears/index.ts deleted file mode 100644 index b0de8f3..0000000 --- a/src/date-fns/fp/subYears/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { subYears as fn } from '../../subYears/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const subYears = convertToFP(fn, 2); diff --git a/src/date-fns/fp/toDate/index.ts b/src/date-fns/fp/toDate/index.ts deleted file mode 100644 index 5f6a4ce..0000000 --- a/src/date-fns/fp/toDate/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { toDate as fn } from '../../toDate/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const toDate = convertToFP(fn, 1); diff --git a/src/date-fns/fp/transpose/index.ts b/src/date-fns/fp/transpose/index.ts deleted file mode 100644 index 0774437..0000000 --- a/src/date-fns/fp/transpose/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { transpose as fn } from '../../transpose/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const transpose = convertToFP(fn, 2); diff --git a/src/date-fns/fp/types.ts b/src/date-fns/fp/types.ts deleted file mode 100644 index 633f85e..0000000 --- a/src/date-fns/fp/types.ts +++ /dev/null @@ -1,120 +0,0 @@ -/** - * The type of a function that can be converted to FP. - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -- We want any here. -export type FPFnInput = (...args: any[]) => any; - -/** - * The supported arity type. - */ -export type FPArity = 1 | 2 | 3 | 4; - -/** - * FP function interface. It infers the arity of the function and returns the - * corresponding FP function interface. - */ -export type FPFn = Arity extends 4 - ? FPFn4, Parameters[3], Parameters[2], Parameters[1], Parameters[0]> - : Arity extends 3 - ? FPFn3, Parameters[2], Parameters[1], Parameters[0]> - : Arity extends 2 - ? FPFn2, Parameters[1], Parameters[0]> - : Arity extends 1 - ? FPFn1, Parameters[0]> - : never; - -/** - * FP function interface with 1 arguments. - */ -export interface FPFn1 { - /** - * Curried version of the function. Returns itself. - */ - (): FPFn1; - - /** - * Returns the result of the function call. - */ - (arg: Arg): Result; -} - -/** - * FP function interface with 2 arguments. - */ -export interface FPFn2 { - /** - * Curried version of the function. Returns itself. - */ - (): FPFn2; - - /** - * Curried version of the function. Returns a function that accepts the rest - * arguments. - */ - (arg2: Arg2): FPFn1; - - /** - * Returns the result of the function call. - */ - (arg2: Arg2, arg1: Arg1): Result; -} - -/** - * FP function interface with 3 arguments. - */ -export interface FPFn3 { - /** - * Curried version of the function. Returns itself. - */ - (): FPFn3; - - /** - * Curried version of the function. Returns a function that accepts the rest - * arguments. - */ - (arg3: Arg3): FPFn2; - - /** - * Curried version of the function. Returns a function that accepts the rest - * arguments. - */ - (arg3: Arg3, arg2: Arg2): FPFn1; - - /** - * Returns the result of the function call. - */ - (arg3: Arg3, arg2: Arg2, arg1: Arg1): Result; -} - -/** - * FP function interface with 4 arguments. - */ -export interface FPFn4 { - /** - * Curried version of the function. Returns itself. - */ - (): FPFn4; - - /** - * Curried version of the function. Returns a function that accepts the rest - * arguments. - */ - (arg4: Arg4): FPFn3; - - /** - * Curried version of the function. Returns a function that accepts the rest - * arguments. - */ - (arg4: Arg4, arg3: Arg3): FPFn2; - - /** - * Curried version of the function. Returns a function that accepts the rest - * arguments. - */ - (arg4: Arg4, arg3: Arg3, arg2: Arg2): FPFn1; - - /** - * Returns the result of the function call. - */ - (arg4: Arg4, arg3: Arg3, arg2: Arg2, arg1: Arg1): Result; -} diff --git a/src/date-fns/fp/weeksToDays/index.ts b/src/date-fns/fp/weeksToDays/index.ts deleted file mode 100644 index edeb75d..0000000 --- a/src/date-fns/fp/weeksToDays/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { weeksToDays as fn } from '../../weeksToDays/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const weeksToDays = convertToFP(fn, 1); diff --git a/src/date-fns/fp/yearsToDays/index.ts b/src/date-fns/fp/yearsToDays/index.ts deleted file mode 100644 index 0986948..0000000 --- a/src/date-fns/fp/yearsToDays/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { yearsToDays as fn } from '../../yearsToDays/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const yearsToDays = convertToFP(fn, 1); diff --git a/src/date-fns/fp/yearsToMonths/index.ts b/src/date-fns/fp/yearsToMonths/index.ts deleted file mode 100644 index 8221811..0000000 --- a/src/date-fns/fp/yearsToMonths/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { yearsToMonths as fn } from '../../yearsToMonths/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const yearsToMonths = convertToFP(fn, 1); diff --git a/src/date-fns/fp/yearsToQuarters/index.ts b/src/date-fns/fp/yearsToQuarters/index.ts deleted file mode 100644 index 51ad4b4..0000000 --- a/src/date-fns/fp/yearsToQuarters/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it. - -import { yearsToQuarters as fn } from '../../yearsToQuarters/index'; -import { convertToFP } from '../_lib/convertToFP/index'; - -export const yearsToQuarters = convertToFP(fn, 1); diff --git a/src/date-fns/fromUnixTime/index.ts b/src/date-fns/fromUnixTime/index.ts index 2d68c98..37b1669 100644 --- a/src/date-fns/fromUnixTime/index.ts +++ b/src/date-fns/fromUnixTime/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions } from "../types.ts"; + +/** + * The {@link fromUnixTime} function options. + */ +export interface FromUnixTimeOptions + extends ContextOptions {} /** * @name fromUnixTime @@ -9,6 +16,9 @@ import { toDate } from '../toDate/index'; * Create a date from a Unix timestamp (in seconds). Decimal values will be discarded. * * @param unixTime - The given Unix timestamp (in seconds) + * @param options - An object with options. Allows to pass a context. + * + * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). * * @returns The date * @@ -17,6 +27,9 @@ import { toDate } from '../toDate/index'; * const result = fromUnixTime(1330515905) * //=> Wed Feb 29 2012 11:45:05 */ -export function fromUnixTime(unixTime: number): Date { - return toDate(unixTime * 1000); +export function fromUnixTime( + unixTime: number, + options?: FromUnixTimeOptions | undefined, +): DateType { + return toDate(unixTime * 1000, options?.in); } diff --git a/src/date-fns/getDate/index.ts b/src/date-fns/getDate/index.ts index d28485a..7776f31 100644 --- a/src/date-fns/getDate/index.ts +++ b/src/date-fns/getDate/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getDate} function options. + */ +export interface GetDateOptions extends ContextOptions {} /** * @name getDate @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Get the day of the month of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - An object with options. * * @returns The day of month * @@ -19,8 +24,9 @@ import { toDate } from '../toDate/index'; * const result = getDate(new Date(2012, 1, 29)) * //=> 29 */ -export function getDate(date: DateType | number | string): number { - const _date = toDate(date); - const dayOfMonth = _date.getDate(); - return dayOfMonth; +export function getDate( + date: DateArg & {}, + options?: GetDateOptions | undefined, +): number { + return toDate(date, options?.in).getDate(); } diff --git a/src/date-fns/getDay/index.ts b/src/date-fns/getDay/index.ts index 2b756a8..5206b05 100644 --- a/src/date-fns/getDay/index.ts +++ b/src/date-fns/getDay/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getDay} function options. + */ +export interface GetDayOptions extends ContextOptions {} /** * @name getDay @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Get the day of the week of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - The options * * @returns The day of week, 0 represents Sunday * @@ -19,8 +24,9 @@ import { toDate } from '../toDate/index'; * const result = getDay(new Date(2012, 1, 29)) * //=> 3 */ -export function getDay(date: DateType | number | string): number { - const _date = toDate(date); - const day = _date.getDay(); - return day; +export function getDay( + date: DateArg & {}, + options?: GetDayOptions | undefined, +): number { + return toDate(date, options?.in).getDay(); } diff --git a/src/date-fns/getDayOfYear/index.ts b/src/date-fns/getDayOfYear/index.ts index 63ad3c9..2a296d5 100644 --- a/src/date-fns/getDayOfYear/index.ts +++ b/src/date-fns/getDayOfYear/index.ts @@ -1,6 +1,12 @@ -import { differenceInCalendarDays } from '../differenceInCalendarDays/index'; -import { startOfYear } from '../startOfYear/index'; -import { toDate } from '../toDate/index'; +import { differenceInCalendarDays } from "../differenceInCalendarDays/index.ts"; +import { startOfYear } from "../startOfYear/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getDayOfYear} function options. + */ +export interface GetDayOfYearOptions extends ContextOptions {} /** * @name getDayOfYear @@ -10,9 +16,8 @@ import { toDate } from '../toDate/index'; * @description * Get the day of the year of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - The options * * @returns The day of year * @@ -21,8 +26,11 @@ import { toDate } from '../toDate/index'; * const result = getDayOfYear(new Date(2014, 6, 2)) * //=> 183 */ -export function getDayOfYear(date: DateType | number | string): number { - const _date = toDate(date); +export function getDayOfYear( + date: DateArg & {}, + options?: GetDayOfYearOptions | undefined, +): number { + const _date = toDate(date, options?.in); const diff = differenceInCalendarDays(_date, startOfYear(_date)); const dayOfYear = diff + 1; return dayOfYear; diff --git a/src/date-fns/getDaysInMonth/index.ts b/src/date-fns/getDaysInMonth/index.ts index 5504f12..ceaa5ed 100644 --- a/src/date-fns/getDaysInMonth/index.ts +++ b/src/date-fns/getDaysInMonth/index.ts @@ -1,5 +1,11 @@ -import { toDate } from '../toDate/index'; -import { constructFrom } from '../constructFrom/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getDaysInMonth} function options. + */ +export interface GetDaysInMonthOptions extends ContextOptions {} /** * @name getDaysInMonth @@ -7,11 +13,10 @@ import { constructFrom } from '../constructFrom/index'; * @summary Get the number of days in a month of the given date. * * @description - * Get the number of days in a month of the given date. - * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * Get the number of days in a month of the given date, considering the context if provided. * * @param date - The given date + * @param options - An object with options * * @returns The number of days in a month * @@ -20,11 +25,14 @@ import { constructFrom } from '../constructFrom/index'; * const result = getDaysInMonth(new Date(2000, 1)) * //=> 29 */ -export function getDaysInMonth(date: DateType | number | string): number { - const _date = toDate(date); +export function getDaysInMonth( + date: DateArg & {}, + options?: GetDaysInMonthOptions | undefined, +): number { + const _date = toDate(date, options?.in); const year = _date.getFullYear(); const monthIndex = _date.getMonth(); - const lastDayOfMonth = constructFrom(date, 0); + const lastDayOfMonth = constructFrom(_date, 0); lastDayOfMonth.setFullYear(year, monthIndex + 1, 0); lastDayOfMonth.setHours(0, 0, 0, 0); return lastDayOfMonth.getDate(); diff --git a/src/date-fns/getDaysInYear/index.ts b/src/date-fns/getDaysInYear/index.ts index dfc05de..19812d2 100644 --- a/src/date-fns/getDaysInYear/index.ts +++ b/src/date-fns/getDaysInYear/index.ts @@ -1,5 +1,11 @@ -import { isLeapYear } from '../isLeapYear/index'; -import { toDate } from '../toDate/index'; +import { isLeapYear } from "../isLeapYear/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getDaysInYear} function options. + */ +export interface GetDaysInYearOptions extends ContextOptions {} /** * @name getDaysInYear @@ -9,9 +15,8 @@ import { toDate } from '../toDate/index'; * @description * Get the number of days in a year of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - An object with options * * @returns The number of days in a year * @@ -20,12 +25,11 @@ import { toDate } from '../toDate/index'; * const result = getDaysInYear(new Date(2012, 0, 1)) * //=> 366 */ -export function getDaysInYear(date: DateType | number | string): number { - const _date = toDate(date); - - if (String(new Date(_date)) === 'Invalid Date') { - return NaN; - } - +export function getDaysInYear( + date: DateArg & {}, + options?: GetDaysInYearOptions | undefined, +): number { + const _date = toDate(date, options?.in); + if (Number.isNaN(+_date)) return NaN; return isLeapYear(_date) ? 366 : 365; } diff --git a/src/date-fns/getDecade/index.ts b/src/date-fns/getDecade/index.ts index d723a6f..f08ccec 100644 --- a/src/date-fns/getDecade/index.ts +++ b/src/date-fns/getDecade/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getDecade} function options. + */ +export interface GetDecadeOptions extends ContextOptions {} /** * @name getDecade @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Get the decade of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - An object with options * * @returns The year of decade * @@ -19,11 +24,14 @@ import { toDate } from '../toDate/index'; * const result = getDecade(new Date(1942, 10, 27)) * //=> 1940 */ -export function getDecade(date: DateType | number | string): number { +export function getDecade( + date: DateArg & {}, + options?: GetDecadeOptions | undefined, +): number { // TODO: Switch to more technical definition in of decades that start with 1 // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking // change, so it can only be done in 4.0. - const _date = toDate(date); + const _date = toDate(date, options?.in); const year = _date.getFullYear(); const decade = Math.floor(year / 10) * 10; return decade; diff --git a/src/date-fns/getDefaultOptions/index.ts b/src/date-fns/getDefaultOptions/index.ts index 8df1d8a..9701346 100644 --- a/src/date-fns/getDefaultOptions/index.ts +++ b/src/date-fns/getDefaultOptions/index.ts @@ -1,5 +1,8 @@ -import type { DefaultOptions } from '../_lib/defaultOptions/index'; -import { getDefaultOptions as getInternalDefaultOptions } from '../_lib/defaultOptions/index'; +import type { + DefaultOptions} from "../_lib/defaultOptions/index.ts"; +import { + getDefaultOptions as getInternalDefaultOptions, +} from "../_lib/defaultOptions/index.ts"; /** * @name getDefaultOptions diff --git a/src/date-fns/getHours/index.ts b/src/date-fns/getHours/index.ts index 9dce651..e7a10fb 100644 --- a/src/date-fns/getHours/index.ts +++ b/src/date-fns/getHours/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getHours} function options. + */ +export interface GetHoursOptions extends ContextOptions {} /** * @name getHours @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Get the hours of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - An object with options * * @returns The hours * @@ -19,8 +24,9 @@ import { toDate } from '../toDate/index'; * const result = getHours(new Date(2012, 1, 29, 11, 45)) * //=> 11 */ -export function getHours(date: DateType | number | string): number { - const _date = toDate(date); - const hours = _date.getHours(); - return hours; +export function getHours( + date: DateArg & {}, + options?: GetHoursOptions | undefined, +): number { + return toDate(date, options?.in).getHours(); } diff --git a/src/date-fns/getISODay/index.ts b/src/date-fns/getISODay/index.ts index 824371c..a807265 100644 --- a/src/date-fns/getISODay/index.ts +++ b/src/date-fns/getISODay/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getISODay} function options. + */ +export interface GetISODayOptions extends ContextOptions {} /** * @name getISODay @@ -11,9 +17,8 @@ import { toDate } from '../toDate/index'; * * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - An object with options * * @returns The day of ISO week * @@ -22,13 +27,10 @@ import { toDate } from '../toDate/index'; * const result = getISODay(new Date(2012, 1, 26)) * //=> 7 */ -export function getISODay(date: DateType | number | string): number { - const _date = toDate(date); - let day = _date.getDay(); - - if (day === 0) { - day = 7; - } - - return day; +export function getISODay( + date: DateArg & {}, + options?: GetISODayOptions, +): number { + const day = toDate(date, options?.in).getDay(); + return day === 0 ? 7 : day; } diff --git a/src/date-fns/getISOWeek/index.ts b/src/date-fns/getISOWeek/index.ts index e853b3b..f1a4492 100644 --- a/src/date-fns/getISOWeek/index.ts +++ b/src/date-fns/getISOWeek/index.ts @@ -1,7 +1,13 @@ -import { millisecondsInWeek } from '../constants/index'; -import { startOfISOWeek } from '../startOfISOWeek/index'; -import { startOfISOWeekYear } from '../startOfISOWeekYear/index'; -import { toDate } from '../toDate/index'; +import { millisecondsInWeek } from "../constants/index.ts"; +import { startOfISOWeek } from "../startOfISOWeek/index.ts"; +import { startOfISOWeekYear } from "../startOfISOWeekYear/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getISOWeek} function options. + */ +export interface GetISOWeekOptions extends ContextOptions {} /** * @name getISOWeek @@ -13,9 +19,8 @@ import { toDate } from '../toDate/index'; * * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - The options * * @returns The ISO week * @@ -24,8 +29,11 @@ import { toDate } from '../toDate/index'; * const result = getISOWeek(new Date(2005, 0, 2)) * //=> 53 */ -export function getISOWeek(date: DateType | number | string): number { - const _date = toDate(date); +export function getISOWeek( + date: DateArg & {}, + options?: GetISOWeekOptions | undefined, +): number { + const _date = toDate(date, options?.in); const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date); // Round the number of weeks to the nearest integer because the number of diff --git a/src/date-fns/getISOWeekYear/index.ts b/src/date-fns/getISOWeekYear/index.ts index d9b30ef..675222b 100644 --- a/src/date-fns/getISOWeekYear/index.ts +++ b/src/date-fns/getISOWeekYear/index.ts @@ -1,6 +1,12 @@ -import { constructFrom } from '../constructFrom/index'; -import { startOfISOWeek } from '../startOfISOWeek/index'; -import { toDate } from '../toDate/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { startOfISOWeek } from "../startOfISOWeek/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getISOWeekYear} function options. + */ +export interface GetISOWeekYearOptions extends ContextOptions {} /** * @name getISOWeekYear @@ -13,8 +19,6 @@ import { toDate } from '../toDate/index'; * * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date * * @returns The ISO week-numbering year @@ -24,16 +28,19 @@ import { toDate } from '../toDate/index'; * const result = getISOWeekYear(new Date(2005, 0, 2)) * //=> 2004 */ -export function getISOWeekYear(date: DateType | number | string): number { - const _date = toDate(date); +export function getISOWeekYear( + date: DateArg & {}, + options?: GetISOWeekYearOptions | undefined, +): number { + const _date = toDate(date, options?.in); const year = _date.getFullYear(); - const fourthOfJanuaryOfNextYear = constructFrom(date, 0); + const fourthOfJanuaryOfNextYear = constructFrom(_date, 0); fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4); fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0); const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear); - const fourthOfJanuaryOfThisYear = constructFrom(date, 0); + const fourthOfJanuaryOfThisYear = constructFrom(_date, 0); fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4); fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0); const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear); diff --git a/src/date-fns/getISOWeeksInYear/index.ts b/src/date-fns/getISOWeeksInYear/index.ts index 765183e..81d46c3 100644 --- a/src/date-fns/getISOWeeksInYear/index.ts +++ b/src/date-fns/getISOWeeksInYear/index.ts @@ -1,6 +1,12 @@ -import { addWeeks } from '../addWeeks/index'; -import { millisecondsInWeek } from '../constants/index'; -import { startOfISOWeekYear } from '../startOfISOWeekYear/index'; +import { addWeeks } from "../addWeeks/index.ts"; +import { millisecondsInWeek } from "../constants/index.ts"; +import { startOfISOWeekYear } from "../startOfISOWeekYear/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getISOWeeksInYear} function options. + */ +export interface GetISOWeeksInYearOptions extends ContextOptions {} /** * @name getISOWeeksInYear @@ -12,9 +18,8 @@ import { startOfISOWeekYear } from '../startOfISOWeekYear/index'; * * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - An object with options * * @returns The number of ISO weeks in a year * @@ -23,8 +28,11 @@ import { startOfISOWeekYear } from '../startOfISOWeekYear/index'; * const result = getISOWeeksInYear(new Date(2015, 1, 11)) * //=> 53 */ -export function getISOWeeksInYear(date: DateType | number | string): number { - const thisYear = startOfISOWeekYear(date); +export function getISOWeeksInYear( + date: DateArg & {}, + options?: GetISOWeeksInYearOptions | undefined, +): number { + const thisYear = startOfISOWeekYear(date, options); const nextYear = startOfISOWeekYear(addWeeks(thisYear, 60)); const diff = +nextYear - +thisYear; diff --git a/src/date-fns/getMilliseconds/index.ts b/src/date-fns/getMilliseconds/index.ts index 03834f2..6087162 100644 --- a/src/date-fns/getMilliseconds/index.ts +++ b/src/date-fns/getMilliseconds/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name getMilliseconds @@ -8,8 +9,6 @@ import { toDate } from '../toDate/index'; * @description * Get the milliseconds of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date * * @returns The milliseconds @@ -19,8 +18,6 @@ import { toDate } from '../toDate/index'; * const result = getMilliseconds(new Date(2012, 1, 29, 11, 45, 5, 123)) * //=> 123 */ -export function getMilliseconds(date: DateType | number | string): number { - const _date = toDate(date); - const milliseconds = _date.getMilliseconds(); - return milliseconds; +export function getMilliseconds(date: DateArg & {}): number { + return toDate(date).getMilliseconds(); } diff --git a/src/date-fns/getMinutes/index.ts b/src/date-fns/getMinutes/index.ts index 64960fe..1a65acb 100644 --- a/src/date-fns/getMinutes/index.ts +++ b/src/date-fns/getMinutes/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getMinutes} function options. + */ +export interface GetMinutesOptions extends ContextOptions {} /** * @name getMinutes @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Get the minutes of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - The options * * @returns The minutes * @@ -19,8 +24,9 @@ import { toDate } from '../toDate/index'; * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5)) * //=> 45 */ -export function getMinutes(date: DateType | number | string): number { - const _date = toDate(date); - const minutes = _date.getMinutes(); - return minutes; +export function getMinutes( + date: DateArg & {}, + options?: GetMinutesOptions | undefined, +): number { + return toDate(date, options?.in).getMinutes(); } diff --git a/src/date-fns/getMonth/index.ts b/src/date-fns/getMonth/index.ts index 330cb16..3a5ca29 100644 --- a/src/date-fns/getMonth/index.ts +++ b/src/date-fns/getMonth/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getMonth} function options. + */ +export interface GetMonthOptions extends ContextOptions {} /** * @name getMonth @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Get the month of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - An object with options * * @returns The month index (0-11) * @@ -19,8 +24,9 @@ import { toDate } from '../toDate/index'; * const result = getMonth(new Date(2012, 1, 29)) * //=> 1 */ -export function getMonth(date: DateType | number | string): number { - const _date = toDate(date); - const month = _date.getMonth(); - return month; +export function getMonth( + date: DateArg & {}, + options?: GetMonthOptions | undefined, +): number { + return toDate(date, options?.in).getMonth(); } diff --git a/src/date-fns/getOverlappingDaysInIntervals/index.ts b/src/date-fns/getOverlappingDaysInIntervals/index.ts index 3e8c5d8..e4219ed 100644 --- a/src/date-fns/getOverlappingDaysInIntervals/index.ts +++ b/src/date-fns/getOverlappingDaysInIntervals/index.ts @@ -1,7 +1,7 @@ -import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMilliseconds/index'; -import { millisecondsInDay } from '../constants/index'; -import { toDate } from '../toDate/index'; -import type { Interval } from '../types'; +import { getTimezoneOffsetInMilliseconds } from "../_lib/getTimezoneOffsetInMilliseconds/index.ts"; +import { millisecondsInDay } from "../constants/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { Interval } from "../types.ts"; /** * @name getOverlappingDaysInIntervals @@ -16,10 +16,9 @@ import type { Interval } from '../types'; * Two equal 0-length intervals will result in 0. Two equal 1ms intervals will * result in 1. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param intervalLeft - The first interval to compare. * @param intervalRight - The second interval to compare. + * @param options - An object with options * * @returns The number of days that overlap in two time intervals * @@ -40,22 +39,28 @@ import type { Interval } from '../types'; * //=> 0 */ -export function getOverlappingDaysInIntervals( - intervalLeft: Interval, - intervalRight: Interval, +export function getOverlappingDaysInIntervals( + intervalLeft: Interval, + intervalRight: Interval, ): number { - const [leftStart, leftEnd] = [+toDate(intervalLeft.start), +toDate(intervalLeft.end)].sort((a, b) => a - b); - const [rightStart, rightEnd] = [+toDate(intervalRight.start), +toDate(intervalRight.end)].sort((a, b) => a - b); + const [leftStart, leftEnd] = [ + +toDate(intervalLeft.start), + +toDate(intervalLeft.end), + ].sort((a, b) => a - b); + const [rightStart, rightEnd] = [ + +toDate(intervalRight.start), + +toDate(intervalRight.end), + ].sort((a, b) => a - b); // Prevent NaN result if intervals don't overlap at all. - const isOverlapping = leftStart! < rightEnd! && rightStart! < leftEnd!; + const isOverlapping = leftStart < rightEnd && rightStart < leftEnd; if (!isOverlapping) return 0; // Remove the timezone offset to negate the DST effect on calculations. - const overlapLeft = rightStart! < leftStart! ? leftStart : rightStart; - const left = overlapLeft! - getTimezoneOffsetInMilliseconds(overlapLeft!); - const overlapRight = rightEnd! > leftEnd! ? leftEnd : rightEnd; - const right = overlapRight! - getTimezoneOffsetInMilliseconds(overlapRight!); + const overlapLeft = rightStart < leftStart ? leftStart : rightStart; + const left = overlapLeft - getTimezoneOffsetInMilliseconds(overlapLeft); + const overlapRight = rightEnd > leftEnd ? leftEnd : rightEnd; + const right = overlapRight - getTimezoneOffsetInMilliseconds(overlapRight); // Ceil the number to include partial days too. return Math.ceil((right - left) / millisecondsInDay); diff --git a/src/date-fns/getQuarter/index.ts b/src/date-fns/getQuarter/index.ts index adc6173..c4f9ee7 100644 --- a/src/date-fns/getQuarter/index.ts +++ b/src/date-fns/getQuarter/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getQuarter} function options. + */ +export interface GetQuarterOptions extends ContextOptions {} /** * @name getQuarter @@ -8,19 +14,21 @@ import { toDate } from '../toDate/index'; * @description * Get the year quarter of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - An object with options * * @returns The quarter * * @example * // Which quarter is 2 July 2014? - * const result = getQuarter(new Date(2014, 6, 2)) + * const result = getQuarter(new Date(2014, 6, 2)); * //=> 3 */ -export function getQuarter(date: DateType | number | string): number { - const _date = toDate(date); +export function getQuarter( + date: DateArg & {}, + options?: GetQuarterOptions | undefined, +): number { + const _date = toDate(date, options?.in); const quarter = Math.trunc(_date.getMonth() / 3) + 1; return quarter; } diff --git a/src/date-fns/getSeconds/index.ts b/src/date-fns/getSeconds/index.ts index 132b575..5b40e43 100644 --- a/src/date-fns/getSeconds/index.ts +++ b/src/date-fns/getSeconds/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name getSeconds @@ -8,8 +9,6 @@ import { toDate } from '../toDate/index'; * @description * Get the seconds of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date * * @returns The seconds @@ -19,8 +18,6 @@ import { toDate } from '../toDate/index'; * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123)) * //=> 5 */ -export function getSeconds(date: DateType | number | string): number { - const _date = toDate(date); - const seconds = _date.getSeconds(); - return seconds; +export function getSeconds(date: DateArg & {}): number { + return toDate(date).getSeconds(); } diff --git a/src/date-fns/getTime/index.ts b/src/date-fns/getTime/index.ts index 0ba154f..141beb2 100644 --- a/src/date-fns/getTime/index.ts +++ b/src/date-fns/getTime/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name getTime @@ -8,8 +9,6 @@ import { toDate } from '../toDate/index'; * @description * Get the milliseconds timestamp of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date * * @returns The timestamp @@ -19,8 +18,6 @@ import { toDate } from '../toDate/index'; * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123)) * //=> 1330515905123 */ -export function getTime(date: DateType | number | string): number { - const _date = toDate(date); - const timestamp = _date.getTime(); - return timestamp; +export function getTime(date: DateArg & {}): number { + return +toDate(date); } diff --git a/src/date-fns/getUnixTime/index.ts b/src/date-fns/getUnixTime/index.ts index b1a8a13..4376cd1 100644 --- a/src/date-fns/getUnixTime/index.ts +++ b/src/date-fns/getUnixTime/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name getUnixTime @@ -8,8 +9,6 @@ import { toDate } from '../toDate/index'; * @description * Get the seconds timestamp of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date * * @returns The timestamp @@ -19,6 +18,6 @@ import { toDate } from '../toDate/index'; * const result = getUnixTime(new Date(2012, 1, 29, 11, 45, 5)) * //=> 1330512305 */ -export function getUnixTime(date: DateType | number | string): number { +export function getUnixTime(date: DateArg & {}): number { return Math.trunc(+toDate(date) / 1000); } diff --git a/src/date-fns/getWeek/index.ts b/src/date-fns/getWeek/index.ts index fb3e0eb..e091091 100644 --- a/src/date-fns/getWeek/index.ts +++ b/src/date-fns/getWeek/index.ts @@ -1,13 +1,23 @@ -import { millisecondsInWeek } from '../constants/index'; -import { startOfWeek } from '../startOfWeek/index'; -import { startOfWeekYear } from '../startOfWeekYear/index'; -import { toDate } from '../toDate/index'; -import type { FirstWeekContainsDateOptions, LocalizedOptions, WeekOptions } from '../types'; +import { millisecondsInWeek } from "../constants/index.ts"; +import { startOfWeek } from "../startOfWeek/index.ts"; +import { startOfWeekYear } from "../startOfWeekYear/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { + ContextOptions, + DateArg, + FirstWeekContainsDateOptions, + LocalizedOptions, + WeekOptions, +} from "../types.ts"; /** * The {@link getWeek} function options. */ -export interface GetWeekOptions extends LocalizedOptions<'options'>, WeekOptions, FirstWeekContainsDateOptions {} +export interface GetWeekOptions + extends LocalizedOptions<"options">, + WeekOptions, + FirstWeekContainsDateOptions, + ContextOptions {} /** * @name getWeek @@ -23,8 +33,6 @@ export interface GetWeekOptions extends LocalizedOptions<'options'>, WeekOptions * * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date * @param options - An object with options * @@ -45,9 +53,11 @@ export interface GetWeekOptions extends LocalizedOptions<'options'>, WeekOptions * }) * //=> 53 */ - -export function getWeek(date: DateType | number | string, options?: GetWeekOptions): number { - const _date = toDate(date); +export function getWeek( + date: DateArg & {}, + options?: GetWeekOptions | undefined, +): number { + const _date = toDate(date, options?.in); const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options); // Round the number of weeks to the nearest integer because the number of diff --git a/src/date-fns/getWeekOfMonth/index.ts b/src/date-fns/getWeekOfMonth/index.ts index 949491c..71b97c6 100644 --- a/src/date-fns/getWeekOfMonth/index.ts +++ b/src/date-fns/getWeekOfMonth/index.ts @@ -1,13 +1,22 @@ -import { getDate } from '../getDate/index'; -import { getDay } from '../getDay/index'; -import { startOfMonth } from '../startOfMonth/index'; -import type { LocalizedOptions, WeekOptions } from '../types'; -import { getDefaultOptions } from '../_lib/defaultOptions/index'; +import { getDefaultOptions } from "../_lib/defaultOptions/index.ts"; +import { getDate } from "../getDate/index.ts"; +import { getDay } from "../getDay/index.ts"; +import { startOfMonth } from "../startOfMonth/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { + ContextOptions, + DateArg, + LocalizedOptions, + WeekOptions, +} from "../types.ts"; /** * The {@link getWeekOfMonth} function options. */ -export interface GetWeekOfMonthOptions extends LocalizedOptions<'options'>, WeekOptions {} +export interface GetWeekOfMonthOptions + extends LocalizedOptions<"options">, + WeekOptions, + ContextOptions {} /** * @name getWeekOfMonth @@ -17,8 +26,6 @@ export interface GetWeekOfMonthOptions extends LocalizedOptions<'options'>, Week * @description * Get the week of the month of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date * @param options - An object with options. * @@ -29,8 +36,8 @@ export interface GetWeekOfMonthOptions extends LocalizedOptions<'options'>, Week * const result = getWeekOfMonth(new Date(2017, 10, 9)) * //=> 2 */ -export function getWeekOfMonth( - date: DateType | number | string, +export function getWeekOfMonth( + date: DateArg & {}, options?: GetWeekOfMonthOptions, ): number { const defaultOptions = getDefaultOptions(); @@ -41,10 +48,10 @@ export function getWeekOfMonth( defaultOptions.locale?.options?.weekStartsOn ?? 0; - const currentDayOfMonth = getDate(date); + const currentDayOfMonth = getDate(toDate(date, options?.in)); if (isNaN(currentDayOfMonth)) return NaN; - const startWeekDay = getDay(startOfMonth(date)); + const startWeekDay = getDay(startOfMonth(date, options)); let lastDayOfFirstWeek = weekStartsOn - startWeekDay; if (lastDayOfFirstWeek <= 0) lastDayOfFirstWeek += 7; diff --git a/src/date-fns/getWeekYear/index.ts b/src/date-fns/getWeekYear/index.ts index f14600b..a7eb926 100644 --- a/src/date-fns/getWeekYear/index.ts +++ b/src/date-fns/getWeekYear/index.ts @@ -1,13 +1,23 @@ -import { constructFrom } from '../constructFrom/index'; -import { startOfWeek } from '../startOfWeek/index'; -import { toDate } from '../toDate/index'; -import type { FirstWeekContainsDateOptions, LocalizedOptions, WeekOptions } from '../types'; -import { getDefaultOptions } from '../_lib/defaultOptions/index'; +import { getDefaultOptions } from "../_lib/defaultOptions/index.ts"; +import { constructFrom } from "../constructFrom/index.ts"; +import { startOfWeek } from "../startOfWeek/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { + ContextOptions, + DateArg, + FirstWeekContainsDateOptions, + LocalizedOptions, + WeekOptions, +} from "../types.ts"; /** * The {@link getWeekYear} function options. */ -export interface GetWeekYearOptions extends LocalizedOptions<'options'>, WeekOptions, FirstWeekContainsDateOptions {} +export interface GetWeekYearOptions + extends LocalizedOptions<"options">, + WeekOptions, + FirstWeekContainsDateOptions, + ContextOptions {} /** * @name getWeekYear @@ -23,8 +33,6 @@ export interface GetWeekYearOptions extends LocalizedOptions<'options'>, WeekOpt * * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date * @param options - An object with options. * @@ -45,11 +53,11 @@ export interface GetWeekYearOptions extends LocalizedOptions<'options'>, WeekOpt * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 }) * //=> 2004 */ -export function getWeekYear( - date: DateType | number | string, +export function getWeekYear( + date: DateArg & {}, options?: GetWeekYearOptions, ): number { - const _date = toDate(date); + const _date = toDate(date, options?.in); const year = _date.getFullYear(); const defaultOptions = getDefaultOptions(); @@ -60,19 +68,19 @@ export function getWeekYear( defaultOptions.locale?.options?.firstWeekContainsDate ?? 1; - const firstWeekOfNextYear = constructFrom(date, 0); + const firstWeekOfNextYear = constructFrom(options?.in || date, 0); firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate); firstWeekOfNextYear.setHours(0, 0, 0, 0); const startOfNextYear = startOfWeek(firstWeekOfNextYear, options); - const firstWeekOfThisYear = constructFrom(date, 0); + const firstWeekOfThisYear = constructFrom(options?.in || date, 0); firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate); firstWeekOfThisYear.setHours(0, 0, 0, 0); const startOfThisYear = startOfWeek(firstWeekOfThisYear, options); - if (_date.getTime() >= startOfNextYear.getTime()) { + if (+_date >= +startOfNextYear) { return year + 1; - } else if (_date.getTime() >= startOfThisYear.getTime()) { + } else if (+_date >= +startOfThisYear) { return year; } else { return year - 1; diff --git a/src/date-fns/getWeeksInMonth/index.ts b/src/date-fns/getWeeksInMonth/index.ts index b715c3b..23cf47f 100644 --- a/src/date-fns/getWeeksInMonth/index.ts +++ b/src/date-fns/getWeeksInMonth/index.ts @@ -1,12 +1,21 @@ -import { differenceInCalendarWeeks } from '../differenceInCalendarWeeks/index'; -import { lastDayOfMonth } from '../lastDayOfMonth/index'; -import { startOfMonth } from '../startOfMonth/index'; -import type { LocalizedOptions, WeekOptions } from '../types'; +import { differenceInCalendarWeeks } from "../differenceInCalendarWeeks/index.ts"; +import { lastDayOfMonth } from "../lastDayOfMonth/index.ts"; +import { startOfMonth } from "../startOfMonth/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { + ContextOptions, + DateArg, + LocalizedOptions, + WeekOptions, +} from "../types.ts"; /** * The {@link getWeeksInMonth} function options. */ -export interface GetWeeksInMonthOptions extends LocalizedOptions<'options'>, WeekOptions {} +export interface GetWeeksInMonthOptions + extends LocalizedOptions<"options">, + WeekOptions, + ContextOptions {} /** * @name getWeeksInMonth @@ -16,8 +25,6 @@ export interface GetWeeksInMonthOptions extends LocalizedOptions<'options'>, Wee * @description * Get the number of calendar weeks the month in the given date spans. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date * @param options - An object with options. * @@ -34,9 +41,16 @@ export interface GetWeeksInMonthOptions extends LocalizedOptions<'options'>, Wee * const result = getWeeksInMonth(new Date(2017, 6, 5), { weekStartsOn: 1 }) * //=> 6 */ -export function getWeeksInMonth( - date: DateType | number | string, - options?: GetWeeksInMonthOptions, +export function getWeeksInMonth( + date: DateArg & {}, + options?: GetWeeksInMonthOptions | undefined, ): number { - return differenceInCalendarWeeks(lastDayOfMonth(date), startOfMonth(date), options) + 1; + const contextDate = toDate(date, options?.in); + return ( + differenceInCalendarWeeks( + lastDayOfMonth(contextDate, options), + startOfMonth(contextDate, options), + options, + ) + 1 + ); } diff --git a/src/date-fns/getYear/index.ts b/src/date-fns/getYear/index.ts index e3a41a1..025a6a2 100644 --- a/src/date-fns/getYear/index.ts +++ b/src/date-fns/getYear/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link getYear} function options. + */ +export interface GetYearOptions extends ContextOptions {} /** * @name getYear @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Get the year of the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The given date + * @param options - An object with options * * @returns The year * @@ -19,6 +24,9 @@ import { toDate } from '../toDate/index'; * const result = getYear(new Date(2014, 6, 2)) * //=> 2014 */ -export function getYear(date: DateType | number | string): number { - return toDate(date).getFullYear(); +export function getYear( + date: DateArg & {}, + options?: GetYearOptions | undefined, +): number { + return toDate(date, options?.in).getFullYear(); } diff --git a/src/date-fns/hoursToMilliseconds/index.ts b/src/date-fns/hoursToMilliseconds/index.ts index f4ffe08..43248d6 100644 --- a/src/date-fns/hoursToMilliseconds/index.ts +++ b/src/date-fns/hoursToMilliseconds/index.ts @@ -1,4 +1,4 @@ -import { millisecondsInHour } from '../constants/index'; +import { millisecondsInHour } from "../constants/index.ts"; /** * @name hoursToMilliseconds @@ -8,8 +8,6 @@ import { millisecondsInHour } from '../constants/index'; * @description * Convert a number of hours to a full number of milliseconds. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param hours - number of hours to be converted * * @returns The number of hours converted to milliseconds diff --git a/src/date-fns/hoursToMinutes/index.ts b/src/date-fns/hoursToMinutes/index.ts index 52e1d12..1a40990 100644 --- a/src/date-fns/hoursToMinutes/index.ts +++ b/src/date-fns/hoursToMinutes/index.ts @@ -1,4 +1,4 @@ -import { minutesInHour } from '../constants/index'; +import { minutesInHour } from "../constants/index.ts"; /** * @name hoursToMinutes @@ -8,8 +8,6 @@ import { minutesInHour } from '../constants/index'; * @description * Convert a number of hours to a full number of minutes. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param hours - number of hours to be converted * * @returns The number of hours converted in minutes diff --git a/src/date-fns/hoursToSeconds/index.ts b/src/date-fns/hoursToSeconds/index.ts index 2fe0dd5..47675aa 100644 --- a/src/date-fns/hoursToSeconds/index.ts +++ b/src/date-fns/hoursToSeconds/index.ts @@ -1,4 +1,4 @@ -import { secondsInHour } from '../constants/index'; +import { secondsInHour } from "../constants/index.ts"; /** * @name hoursToSeconds @@ -8,8 +8,6 @@ import { secondsInHour } from '../constants/index'; * @description * Convert a number of hours to a full number of seconds. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param hours - The number of hours to be converted * * @returns The number of hours converted in seconds diff --git a/src/date-fns/index.ts b/src/date-fns/index.ts index cdf4d54..42c9df9 100755 --- a/src/date-fns/index.ts +++ b/src/date-fns/index.ts @@ -1,248 +1,248 @@ // This file is generated automatically by `scripts/build/indices.ts`. Please, don't change it. -export * from './add/index'; -export * from './addBusinessDays/index'; -export * from './addDays/index'; -export * from './addHours/index'; -export * from './addISOWeekYears/index'; -export * from './addMilliseconds/index'; -export * from './addMinutes/index'; -export * from './addMonths/index'; -export * from './addQuarters/index'; -export * from './addSeconds/index'; -export * from './addWeeks/index'; -export * from './addYears/index'; -export * from './areIntervalsOverlapping/index'; -export * from './clamp/index'; -export * from './closestIndexTo/index'; -export * from './closestTo/index'; -export * from './compareAsc/index'; -export * from './compareDesc/index'; -export * from './constructFrom/index'; -export * from './constructNow/index'; -export * from './daysToWeeks/index'; -export * from './differenceInBusinessDays/index'; -export * from './differenceInCalendarDays/index'; -export * from './differenceInCalendarISOWeekYears/index'; -export * from './differenceInCalendarISOWeeks/index'; -export * from './differenceInCalendarMonths/index'; -export * from './differenceInCalendarQuarters/index'; -export * from './differenceInCalendarWeeks/index'; -export * from './differenceInCalendarYears/index'; -export * from './differenceInDays/index'; -export * from './differenceInHours/index'; -export * from './differenceInISOWeekYears/index'; -export * from './differenceInMilliseconds/index'; -export * from './differenceInMinutes/index'; -export * from './differenceInMonths/index'; -export * from './differenceInQuarters/index'; -export * from './differenceInSeconds/index'; -export * from './differenceInWeeks/index'; -export * from './differenceInYears/index'; -export * from './eachDayOfInterval/index'; -export * from './eachHourOfInterval/index'; -export * from './eachMinuteOfInterval/index'; -export * from './eachMonthOfInterval/index'; -export * from './eachQuarterOfInterval/index'; -export * from './eachWeekOfInterval/index'; -export * from './eachWeekendOfInterval/index'; -export * from './eachWeekendOfMonth/index'; -export * from './eachWeekendOfYear/index'; -export * from './eachYearOfInterval/index'; -export * from './endOfDay/index'; -export * from './endOfDecade/index'; -export * from './endOfHour/index'; -export * from './endOfISOWeek/index'; -export * from './endOfISOWeekYear/index'; -export * from './endOfMinute/index'; -export * from './endOfMonth/index'; -export * from './endOfQuarter/index'; -export * from './endOfSecond/index'; -export * from './endOfToday/index'; -export * from './endOfTomorrow/index'; -export * from './endOfWeek/index'; -export * from './endOfYear/index'; -export * from './endOfYesterday/index'; -export * from './format/index'; -export * from './formatDistance/index'; -export * from './formatDistanceStrict/index'; -export * from './formatDistanceToNow/index'; -export * from './formatDistanceToNowStrict/index'; -export * from './formatDuration/index'; -export * from './formatISO/index'; -export * from './formatISO9075/index'; -export * from './formatISODuration/index'; -export * from './formatRFC3339/index'; -export * from './formatRFC7231/index'; -export * from './formatRelative/index'; -export * from './fromUnixTime/index'; -export * from './getDate/index'; -export * from './getDay/index'; -export * from './getDayOfYear/index'; -export * from './getDaysInMonth/index'; -export * from './getDaysInYear/index'; -export * from './getDecade/index'; -export * from './getDefaultOptions/index'; -export * from './getHours/index'; -export * from './getISODay/index'; -export * from './getISOWeek/index'; -export * from './getISOWeekYear/index'; -export * from './getISOWeeksInYear/index'; -export * from './getMilliseconds/index'; -export * from './getMinutes/index'; -export * from './getMonth/index'; -export * from './getOverlappingDaysInIntervals/index'; -export * from './getQuarter/index'; -export * from './getSeconds/index'; -export * from './getTime/index'; -export * from './getUnixTime/index'; -export * from './getWeek/index'; -export * from './getWeekOfMonth/index'; -export * from './getWeekYear/index'; -export * from './getWeeksInMonth/index'; -export * from './getYear/index'; -export * from './hoursToMilliseconds/index'; -export * from './hoursToMinutes/index'; -export * from './hoursToSeconds/index'; -export * from './interval/index'; -export * from './intervalToDuration/index'; -export * from './intlFormat/index'; -export * from './intlFormatDistance/index'; -export * from './isAfter/index'; -export * from './isBefore/index'; -export * from './isDate/index'; -export * from './isEqual/index'; -export * from './isExists/index'; -export * from './isFirstDayOfMonth/index'; -export * from './isFriday/index'; -export * from './isFuture/index'; -export * from './isLastDayOfMonth/index'; -export * from './isLeapYear/index'; -export * from './isMatch/index'; -export * from './isMonday/index'; -export * from './isPast/index'; -export * from './isSameDay/index'; -export * from './isSameHour/index'; -export * from './isSameISOWeek/index'; -export * from './isSameISOWeekYear/index'; -export * from './isSameMinute/index'; -export * from './isSameMonth/index'; -export * from './isSameQuarter/index'; -export * from './isSameSecond/index'; -export * from './isSameWeek/index'; -export * from './isSameYear/index'; -export * from './isSaturday/index'; -export * from './isSunday/index'; -export * from './isThisHour/index'; -export * from './isThisISOWeek/index'; -export * from './isThisMinute/index'; -export * from './isThisMonth/index'; -export * from './isThisQuarter/index'; -export * from './isThisSecond/index'; -export * from './isThisWeek/index'; -export * from './isThisYear/index'; -export * from './isThursday/index'; -export * from './isToday/index'; -export * from './isTomorrow/index'; -export * from './isTuesday/index'; -export * from './isValid/index'; -export * from './isWednesday/index'; -export * from './isWeekend/index'; -export * from './isWithinInterval/index'; -export * from './isYesterday/index'; -export * from './lastDayOfDecade/index'; -export * from './lastDayOfISOWeek/index'; -export * from './lastDayOfISOWeekYear/index'; -export * from './lastDayOfMonth/index'; -export * from './lastDayOfQuarter/index'; -export * from './lastDayOfWeek/index'; -export * from './lastDayOfYear/index'; -export * from './lightFormat/index'; -export * from './max/index'; -export * from './milliseconds/index'; -export * from './millisecondsToHours/index'; -export * from './millisecondsToMinutes/index'; -export * from './millisecondsToSeconds/index'; -export * from './min/index'; -export * from './minutesToHours/index'; -export * from './minutesToMilliseconds/index'; -export * from './minutesToSeconds/index'; -export * from './monthsToQuarters/index'; -export * from './monthsToYears/index'; -export * from './nextDay/index'; -export * from './nextFriday/index'; -export * from './nextMonday/index'; -export * from './nextSaturday/index'; -export * from './nextSunday/index'; -export * from './nextThursday/index'; -export * from './nextTuesday/index'; -export * from './nextWednesday/index'; -export * from './parse/index'; -export * from './parseISO/index'; -export * from './parseJSON/index'; -export * from './previousDay/index'; -export * from './previousFriday/index'; -export * from './previousMonday/index'; -export * from './previousSaturday/index'; -export * from './previousSunday/index'; -export * from './previousThursday/index'; -export * from './previousTuesday/index'; -export * from './previousWednesday/index'; -export * from './quartersToMonths/index'; -export * from './quartersToYears/index'; -export * from './roundToNearestHours/index'; -export * from './roundToNearestMinutes/index'; -export * from './secondsToHours/index'; -export * from './secondsToMilliseconds/index'; -export * from './secondsToMinutes/index'; -export * from './set/index'; -export * from './setDate/index'; -export * from './setDay/index'; -export * from './setDayOfYear/index'; -export * from './setDefaultOptions/index'; -export * from './setHours/index'; -export * from './setISODay/index'; -export * from './setISOWeek/index'; -export * from './setISOWeekYear/index'; -export * from './setMilliseconds/index'; -export * from './setMinutes/index'; -export * from './setMonth/index'; -export * from './setQuarter/index'; -export * from './setSeconds/index'; -export * from './setWeek/index'; -export * from './setWeekYear/index'; -export * from './setYear/index'; -export * from './startOfDay/index'; -export * from './startOfDecade/index'; -export * from './startOfHour/index'; -export * from './startOfISOWeek/index'; -export * from './startOfISOWeekYear/index'; -export * from './startOfMinute/index'; -export * from './startOfMonth/index'; -export * from './startOfQuarter/index'; -export * from './startOfSecond/index'; -export * from './startOfToday/index'; -export * from './startOfTomorrow/index'; -export * from './startOfWeek/index'; -export * from './startOfWeekYear/index'; -export * from './startOfYear/index'; -export * from './startOfYesterday/index'; -export * from './sub/index'; -export * from './subBusinessDays/index'; -export * from './subDays/index'; -export * from './subHours/index'; -export * from './subISOWeekYears/index'; -export * from './subMilliseconds/index'; -export * from './subMinutes/index'; -export * from './subMonths/index'; -export * from './subQuarters/index'; -export * from './subSeconds/index'; -export * from './subWeeks/index'; -export * from './subYears/index'; -export * from './toDate/index'; -export * from './transpose/index'; -export * from './weeksToDays/index'; -export * from './yearsToDays/index'; -export * from './yearsToMonths/index'; -export * from './yearsToQuarters/index'; -export type * from './types'; +export * from "./add/index.ts"; +export * from "./addBusinessDays/index.ts"; +export * from "./addDays/index.ts"; +export * from "./addHours/index.ts"; +export * from "./addISOWeekYears/index.ts"; +export * from "./addMilliseconds/index.ts"; +export * from "./addMinutes/index.ts"; +export * from "./addMonths/index.ts"; +export * from "./addQuarters/index.ts"; +export * from "./addSeconds/index.ts"; +export * from "./addWeeks/index.ts"; +export * from "./addYears/index.ts"; +export * from "./areIntervalsOverlapping/index.ts"; +export * from "./clamp/index.ts"; +export * from "./closestIndexTo/index.ts"; +export * from "./closestTo/index.ts"; +export * from "./compareAsc/index.ts"; +export * from "./compareDesc/index.ts"; +export * from "./constructFrom/index.ts"; +export * from "./constructNow/index.ts"; +export * from "./daysToWeeks/index.ts"; +export * from "./differenceInBusinessDays/index.ts"; +export * from "./differenceInCalendarDays/index.ts"; +export * from "./differenceInCalendarISOWeekYears/index.ts"; +export * from "./differenceInCalendarISOWeeks/index.ts"; +export * from "./differenceInCalendarMonths/index.ts"; +export * from "./differenceInCalendarQuarters/index.ts"; +export * from "./differenceInCalendarWeeks/index.ts"; +export * from "./differenceInCalendarYears/index.ts"; +export * from "./differenceInDays/index.ts"; +export * from "./differenceInHours/index.ts"; +export * from "./differenceInISOWeekYears/index.ts"; +export * from "./differenceInMilliseconds/index.ts"; +export * from "./differenceInMinutes/index.ts"; +export * from "./differenceInMonths/index.ts"; +export * from "./differenceInQuarters/index.ts"; +export * from "./differenceInSeconds/index.ts"; +export * from "./differenceInWeeks/index.ts"; +export * from "./differenceInYears/index.ts"; +export * from "./eachDayOfInterval/index.ts"; +export * from "./eachHourOfInterval/index.ts"; +export * from "./eachMinuteOfInterval/index.ts"; +export * from "./eachMonthOfInterval/index.ts"; +export * from "./eachQuarterOfInterval/index.ts"; +export * from "./eachWeekOfInterval/index.ts"; +export * from "./eachWeekendOfInterval/index.ts"; +export * from "./eachWeekendOfMonth/index.ts"; +export * from "./eachWeekendOfYear/index.ts"; +export * from "./eachYearOfInterval/index.ts"; +export * from "./endOfDay/index.ts"; +export * from "./endOfDecade/index.ts"; +export * from "./endOfHour/index.ts"; +export * from "./endOfISOWeek/index.ts"; +export * from "./endOfISOWeekYear/index.ts"; +export * from "./endOfMinute/index.ts"; +export * from "./endOfMonth/index.ts"; +export * from "./endOfQuarter/index.ts"; +export * from "./endOfSecond/index.ts"; +export * from "./endOfToday/index.ts"; +export * from "./endOfTomorrow/index.ts"; +export * from "./endOfWeek/index.ts"; +export * from "./endOfYear/index.ts"; +export * from "./endOfYesterday/index.ts"; +export * from "./format/index.ts"; +export * from "./formatDistance/index.ts"; +export * from "./formatDistanceStrict/index.ts"; +export * from "./formatDistanceToNow/index.ts"; +export * from "./formatDistanceToNowStrict/index.ts"; +export * from "./formatDuration/index.ts"; +export * from "./formatISO/index.ts"; +export * from "./formatISO9075/index.ts"; +export * from "./formatISODuration/index.ts"; +export * from "./formatRFC3339/index.ts"; +export * from "./formatRFC7231/index.ts"; +export * from "./formatRelative/index.ts"; +export * from "./fromUnixTime/index.ts"; +export * from "./getDate/index.ts"; +export * from "./getDay/index.ts"; +export * from "./getDayOfYear/index.ts"; +export * from "./getDaysInMonth/index.ts"; +export * from "./getDaysInYear/index.ts"; +export * from "./getDecade/index.ts"; +export * from "./getDefaultOptions/index.ts"; +export * from "./getHours/index.ts"; +export * from "./getISODay/index.ts"; +export * from "./getISOWeek/index.ts"; +export * from "./getISOWeekYear/index.ts"; +export * from "./getISOWeeksInYear/index.ts"; +export * from "./getMilliseconds/index.ts"; +export * from "./getMinutes/index.ts"; +export * from "./getMonth/index.ts"; +export * from "./getOverlappingDaysInIntervals/index.ts"; +export * from "./getQuarter/index.ts"; +export * from "./getSeconds/index.ts"; +export * from "./getTime/index.ts"; +export * from "./getUnixTime/index.ts"; +export * from "./getWeek/index.ts"; +export * from "./getWeekOfMonth/index.ts"; +export * from "./getWeekYear/index.ts"; +export * from "./getWeeksInMonth/index.ts"; +export * from "./getYear/index.ts"; +export * from "./hoursToMilliseconds/index.ts"; +export * from "./hoursToMinutes/index.ts"; +export * from "./hoursToSeconds/index.ts"; +export * from "./interval/index.ts"; +export * from "./intervalToDuration/index.ts"; +export * from "./intlFormat/index.ts"; +export * from "./intlFormatDistance/index.ts"; +export * from "./isAfter/index.ts"; +export * from "./isBefore/index.ts"; +export * from "./isDate/index.ts"; +export * from "./isEqual/index.ts"; +export * from "./isExists/index.ts"; +export * from "./isFirstDayOfMonth/index.ts"; +export * from "./isFriday/index.ts"; +export * from "./isFuture/index.ts"; +export * from "./isLastDayOfMonth/index.ts"; +export * from "./isLeapYear/index.ts"; +export * from "./isMatch/index.ts"; +export * from "./isMonday/index.ts"; +export * from "./isPast/index.ts"; +export * from "./isSameDay/index.ts"; +export * from "./isSameHour/index.ts"; +export * from "./isSameISOWeek/index.ts"; +export * from "./isSameISOWeekYear/index.ts"; +export * from "./isSameMinute/index.ts"; +export * from "./isSameMonth/index.ts"; +export * from "./isSameQuarter/index.ts"; +export * from "./isSameSecond/index.ts"; +export * from "./isSameWeek/index.ts"; +export * from "./isSameYear/index.ts"; +export * from "./isSaturday/index.ts"; +export * from "./isSunday/index.ts"; +export * from "./isThisHour/index.ts"; +export * from "./isThisISOWeek/index.ts"; +export * from "./isThisMinute/index.ts"; +export * from "./isThisMonth/index.ts"; +export * from "./isThisQuarter/index.ts"; +export * from "./isThisSecond/index.ts"; +export * from "./isThisWeek/index.ts"; +export * from "./isThisYear/index.ts"; +export * from "./isThursday/index.ts"; +export * from "./isToday/index.ts"; +export * from "./isTomorrow/index.ts"; +export * from "./isTuesday/index.ts"; +export * from "./isValid/index.ts"; +export * from "./isWednesday/index.ts"; +export * from "./isWeekend/index.ts"; +export * from "./isWithinInterval/index.ts"; +export * from "./isYesterday/index.ts"; +export * from "./lastDayOfDecade/index.ts"; +export * from "./lastDayOfISOWeek/index.ts"; +export * from "./lastDayOfISOWeekYear/index.ts"; +export * from "./lastDayOfMonth/index.ts"; +export * from "./lastDayOfQuarter/index.ts"; +export * from "./lastDayOfWeek/index.ts"; +export * from "./lastDayOfYear/index.ts"; +export * from "./lightFormat/index.ts"; +export * from "./max/index.ts"; +export * from "./milliseconds/index.ts"; +export * from "./millisecondsToHours/index.ts"; +export * from "./millisecondsToMinutes/index.ts"; +export * from "./millisecondsToSeconds/index.ts"; +export * from "./min/index.ts"; +export * from "./minutesToHours/index.ts"; +export * from "./minutesToMilliseconds/index.ts"; +export * from "./minutesToSeconds/index.ts"; +export * from "./monthsToQuarters/index.ts"; +export * from "./monthsToYears/index.ts"; +export * from "./nextDay/index.ts"; +export * from "./nextFriday/index.ts"; +export * from "./nextMonday/index.ts"; +export * from "./nextSaturday/index.ts"; +export * from "./nextSunday/index.ts"; +export * from "./nextThursday/index.ts"; +export * from "./nextTuesday/index.ts"; +export * from "./nextWednesday/index.ts"; +export * from "./parse/index.ts"; +export * from "./parseISO/index.ts"; +export * from "./parseJSON/index.ts"; +export * from "./previousDay/index.ts"; +export * from "./previousFriday/index.ts"; +export * from "./previousMonday/index.ts"; +export * from "./previousSaturday/index.ts"; +export * from "./previousSunday/index.ts"; +export * from "./previousThursday/index.ts"; +export * from "./previousTuesday/index.ts"; +export * from "./previousWednesday/index.ts"; +export * from "./quartersToMonths/index.ts"; +export * from "./quartersToYears/index.ts"; +export * from "./roundToNearestHours/index.ts"; +export * from "./roundToNearestMinutes/index.ts"; +export * from "./secondsToHours/index.ts"; +export * from "./secondsToMilliseconds/index.ts"; +export * from "./secondsToMinutes/index.ts"; +export * from "./set/index.ts"; +export * from "./setDate/index.ts"; +export * from "./setDay/index.ts"; +export * from "./setDayOfYear/index.ts"; +export * from "./setDefaultOptions/index.ts"; +export * from "./setHours/index.ts"; +export * from "./setISODay/index.ts"; +export * from "./setISOWeek/index.ts"; +export * from "./setISOWeekYear/index.ts"; +export * from "./setMilliseconds/index.ts"; +export * from "./setMinutes/index.ts"; +export * from "./setMonth/index.ts"; +export * from "./setQuarter/index.ts"; +export * from "./setSeconds/index.ts"; +export * from "./setWeek/index.ts"; +export * from "./setWeekYear/index.ts"; +export * from "./setYear/index.ts"; +export * from "./startOfDay/index.ts"; +export * from "./startOfDecade/index.ts"; +export * from "./startOfHour/index.ts"; +export * from "./startOfISOWeek/index.ts"; +export * from "./startOfISOWeekYear/index.ts"; +export * from "./startOfMinute/index.ts"; +export * from "./startOfMonth/index.ts"; +export * from "./startOfQuarter/index.ts"; +export * from "./startOfSecond/index.ts"; +export * from "./startOfToday/index.ts"; +export * from "./startOfTomorrow/index.ts"; +export * from "./startOfWeek/index.ts"; +export * from "./startOfWeekYear/index.ts"; +export * from "./startOfYear/index.ts"; +export * from "./startOfYesterday/index.ts"; +export * from "./sub/index.ts"; +export * from "./subBusinessDays/index.ts"; +export * from "./subDays/index.ts"; +export * from "./subHours/index.ts"; +export * from "./subISOWeekYears/index.ts"; +export * from "./subMilliseconds/index.ts"; +export * from "./subMinutes/index.ts"; +export * from "./subMonths/index.ts"; +export * from "./subQuarters/index.ts"; +export * from "./subSeconds/index.ts"; +export * from "./subWeeks/index.ts"; +export * from "./subYears/index.ts"; +export * from "./toDate/index.ts"; +export * from "./transpose/index.ts"; +export * from "./weeksToDays/index.ts"; +export * from "./yearsToDays/index.ts"; +export * from "./yearsToMonths/index.ts"; +export * from "./yearsToQuarters/index.ts"; +export type * from "./types.ts"; diff --git a/src/date-fns/interval/index.ts b/src/date-fns/interval/index.ts index c544e61..01d3f6a 100644 --- a/src/date-fns/interval/index.ts +++ b/src/date-fns/interval/index.ts @@ -1,14 +1,35 @@ -import { toDate } from '../toDate/index'; -import type { NormalizedInterval } from '../types'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import type { ContextOptions, DateArg, NormalizedInterval } from "../types.ts"; /** * The {@link interval} function options. */ -export interface IntervalOptions { +export interface IntervalOptions + extends ContextOptions { /** Asserts that the interval is positive (start is after the end). */ assertPositive?: boolean; } +/** + * The {@link interval} function result type. It resolves the proper data type. + * It uses the first argument date object type, starting from the start argument, + * then the end interval date. If a context function is passed, it uses the context + * function return type. + */ +export type IntervalResult< + StartDate extends DateArg, + EndDate extends DateArg, + Options extends IntervalOptions | undefined = undefined, +> = NormalizedInterval< + Options extends IntervalOptions + ? DateType + : StartDate extends Date + ? StartDate + : EndDate extends Date + ? EndDate + : Date +>; + /** * @name interval * @category Interval Helpers @@ -17,7 +38,9 @@ export interface IntervalOptions { * @description * Creates a normalized interval object and validates its values. If the interval is invalid, an exception is thrown. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam StartDate - Start date type. + * @typeParam EndDate - End date type. + * @typeParam Options - Options type. * * @param start - The start of the interval. * @param end - The end of the interval. @@ -29,18 +52,26 @@ export interface IntervalOptions { * * @returns The normalized and validated interval object. */ -export function interval( - start: DateType | number | string, - end: DateType | number | string, - options?: IntervalOptions, -): NormalizedInterval { - const _start = toDate(start); - if (isNaN(+_start)) throw new TypeError('Start date is invalid'); +export function interval< + StartDate extends DateArg, + EndDate extends DateArg, + Options extends IntervalOptions | undefined = undefined, +>( + start: StartDate, + end: EndDate, + options?: Options, +): IntervalResult { + const [_start, _end] = normalizeDates(options?.in, start, end); - const _end = toDate(end); - if (isNaN(+_end)) throw new TypeError('End date is invalid'); + if (isNaN(+_start)) throw new TypeError("Start date is invalid"); + if (isNaN(+_end)) throw new TypeError("End date is invalid"); - if (options?.assertPositive && +_start > +_end) throw new TypeError('End date must be after start date'); + if (options?.assertPositive && +_start > +_end) + throw new TypeError("End date must be after start date"); - return { start: _start, end: _end }; + return { start: _start, end: _end } as IntervalResult< + StartDate, + EndDate, + Options + >; } diff --git a/src/date-fns/intervalToDuration/index.ts b/src/date-fns/intervalToDuration/index.ts index 6a4e9b7..c0dd9ec 100644 --- a/src/date-fns/intervalToDuration/index.ts +++ b/src/date-fns/intervalToDuration/index.ts @@ -1,12 +1,17 @@ -import { add } from '../add/index'; -import { differenceInDays } from '../differenceInDays/index'; -import { differenceInHours } from '../differenceInHours/index'; -import { differenceInMinutes } from '../differenceInMinutes/index'; -import { differenceInMonths } from '../differenceInMonths/index'; -import { differenceInSeconds } from '../differenceInSeconds/index'; -import { differenceInYears } from '../differenceInYears/index'; -import { toDate } from '../toDate/index'; -import type { Duration, Interval } from '../types'; +import { normalizeInterval } from "../_lib/normalizeInterval/index.ts"; +import { add } from "../add/index.ts"; +import { differenceInDays } from "../differenceInDays/index.ts"; +import { differenceInHours } from "../differenceInHours/index.ts"; +import { differenceInMinutes } from "../differenceInMinutes/index.ts"; +import { differenceInMonths } from "../differenceInMonths/index.ts"; +import { differenceInSeconds } from "../differenceInSeconds/index.ts"; +import { differenceInYears } from "../differenceInYears/index.ts"; +import type { ContextOptions, Duration, Interval } from "../types.ts"; + +/** + * The {@link intervalToDuration} function options. + */ +export interface IntervalToDurationOptions extends ContextOptions {} /** * @name intervalToDuration @@ -14,11 +19,10 @@ import type { Duration, Interval } from '../types'; * @summary Convert interval to duration * * @description - * Convert a interval object to a duration object. - * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * Convert an interval object to a duration object. * * @param interval - The interval to convert to duration + * @param options - The context options * * @returns The duration object * @@ -27,41 +31,36 @@ import type { Duration, Interval } from '../types'; * intervalToDuration({ * start: new Date(1929, 0, 15, 12, 0, 0), * end: new Date(1968, 3, 4, 19, 5, 0) - * }) - * // => { years: 39, months: 2, days: 20, hours: 7, minutes: 5, seconds: 0 } + * }); + * //=> { years: 39, months: 2, days: 20, hours: 7, minutes: 5, seconds: 0 } */ -export function intervalToDuration(interval: Interval): Duration { - const start = toDate(interval.start); - const end = toDate(interval.end); - +export function intervalToDuration( + interval: Interval, + options?: IntervalToDurationOptions | undefined, +): Duration { + const { start, end } = normalizeInterval(options?.in, interval); const duration: Duration = {}; const years = differenceInYears(end, start); if (years) duration.years = years; - // @ts-ignore const remainingMonths = add(start, { years: duration.years }); - const months = differenceInMonths(end, remainingMonths); if (months) duration.months = months; - const remainingDays = add(remainingMonths, { months: duration.months! }); - + const remainingDays = add(remainingMonths, { months: duration.months }); const days = differenceInDays(end, remainingDays); if (days) duration.days = days; - const remainingHours = add(remainingDays, { days: duration.days! }); - + const remainingHours = add(remainingDays, { days: duration.days }); const hours = differenceInHours(end, remainingHours); if (hours) duration.hours = hours; - const remainingMinutes = add(remainingHours, { hours: duration.hours! }); - + const remainingMinutes = add(remainingHours, { hours: duration.hours }); const minutes = differenceInMinutes(end, remainingMinutes); if (minutes) duration.minutes = minutes; - const remainingSeconds = add(remainingMinutes, { minutes: duration.minutes! }); - + const remainingSeconds = add(remainingMinutes, { minutes: duration.minutes }); const seconds = differenceInSeconds(end, remainingSeconds); if (seconds) duration.seconds = seconds; diff --git a/src/date-fns/intlFormat/index.ts b/src/date-fns/intlFormat/index.ts index 840f512..54b79cb 100644 --- a/src/date-fns/intlFormat/index.ts +++ b/src/date-fns/intlFormat/index.ts @@ -1,9 +1,13 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg, MaybeArray } from "../types.ts"; /** * The locale string (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument). + * @deprecated + * + * [TODO] Remove in v4 */ -export type IntlFormatLocale = Intl.ResolvedDateTimeFormatOptions['locale']; +export type IntlFormatLocale = Intl.ResolvedDateTimeFormatOptions["locale"]; /** * The format options (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#options) @@ -14,8 +18,8 @@ export type IntlFormatFormatOptions = Intl.DateTimeFormatOptions; * The locale options. */ export interface IntlFormatLocaleOptions { - /** The locale(s) to use (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument) */ - locale: IntlFormatLocale | IntlFormatLocale[]; + /** The locales to use (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument) */ + locale: MaybeArray; } /** @@ -30,8 +34,6 @@ export interface IntlFormatLocaleOptions { * * > ⚠️ Please note that before Node version 13.0.0, only the locale data for en-US is available by default. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to format * * @returns The formatted date string @@ -43,11 +45,9 @@ export interface IntlFormatLocaleOptions { * const result = intlFormat(new Date(2019, 9, 4, 12, 30, 13, 456)) * //=> 10/4/2019 */ -export function intlFormat(date: DateType | number | string): string; +export function intlFormat(date: DateArg & {}): string; /** - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to format * @param localeOptions - An object with locale * @@ -63,14 +63,12 @@ export function intlFormat(date: DateType | number | stri * }) * //=> 2019. 10. 4. */ -export function intlFormat( - date: DateType | number | string, +export function intlFormat( + date: DateArg & {}, localeOptions: IntlFormatLocaleOptions, ): string; /** - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to format * @param formatOptions - The format options * @@ -89,14 +87,12 @@ export function intlFormat( * }) * //=> 10/4/2019, 12 PM */ -export function intlFormat( - date: DateType | number | string, +export function intlFormat( + date: DateArg & {}, formatOptions: IntlFormatFormatOptions, ): string; /** - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to format * @param formatOptions - The format options * @param localeOptions - An object with locale @@ -118,14 +114,14 @@ export function intlFormat( * }) * //=> Freitag, 4. Oktober 2019 */ -export function intlFormat( - date: DateType | number | string, +export function intlFormat( + date: DateArg & {}, formatOptions: IntlFormatFormatOptions, localeOptions: IntlFormatLocaleOptions, ): string; -export function intlFormat( - date: DateType | number | string, +export function intlFormat( + date: DateArg & {}, formatOrLocale?: IntlFormatFormatOptions | IntlFormatLocaleOptions, localeOptions?: IntlFormatLocaleOptions, ): string { @@ -137,11 +133,13 @@ export function intlFormat( localeOptions = formatOrLocale; } - return new Intl.DateTimeFormat(localeOptions?.locale, formatOptions).format(toDate(date)); + return new Intl.DateTimeFormat(localeOptions?.locale, formatOptions).format( + toDate(date), + ); } function isFormatOptions( opts: IntlFormatLocaleOptions | IntlFormatFormatOptions | undefined, ): opts is IntlFormatFormatOptions { - return opts !== undefined && !('locale' in opts); + return opts !== undefined && !("locale" in opts); } diff --git a/src/date-fns/intlFormatDistance/index.ts b/src/date-fns/intlFormatDistance/index.ts index b339545..e560049 100644 --- a/src/date-fns/intlFormatDistance/index.ts +++ b/src/date-fns/intlFormatDistance/index.ts @@ -1,3 +1,4 @@ +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; import { secondsInDay, secondsInHour, @@ -6,37 +7,41 @@ import { secondsInQuarter, secondsInWeek, secondsInYear, -} from '../constants/index'; -import { differenceInCalendarDays } from '../differenceInCalendarDays/index'; -import { differenceInCalendarMonths } from '../differenceInCalendarMonths/index'; -import { differenceInCalendarQuarters } from '../differenceInCalendarQuarters/index'; -import { differenceInCalendarWeeks } from '../differenceInCalendarWeeks/index'; -import { differenceInCalendarYears } from '../differenceInCalendarYears/index'; -import { differenceInHours } from '../differenceInHours/index'; -import { differenceInMinutes } from '../differenceInMinutes/index'; -import { differenceInSeconds } from '../differenceInSeconds/index'; -import { toDate } from '../toDate/index'; +} from "../constants/index.ts"; +import { differenceInCalendarDays } from "../differenceInCalendarDays/index.ts"; +import { differenceInCalendarMonths } from "../differenceInCalendarMonths/index.ts"; +import { differenceInCalendarQuarters } from "../differenceInCalendarQuarters/index.ts"; +import { differenceInCalendarWeeks } from "../differenceInCalendarWeeks/index.ts"; +import { differenceInCalendarYears } from "../differenceInCalendarYears/index.ts"; +import { differenceInHours } from "../differenceInHours/index.ts"; +import { differenceInMinutes } from "../differenceInMinutes/index.ts"; +import { differenceInSeconds } from "../differenceInSeconds/index.ts"; +import type { ContextOptions, DateArg, MaybeArray } from "../types.ts"; /** * The {@link intlFormatDistance} function options. */ -export interface IntlFormatDistanceOptions { +export interface IntlFormatDistanceOptions + extends Intl.RelativeTimeFormatOptions, + ContextOptions { /** Force the distance unit */ unit?: IntlFormatDistanceUnit; - /** The locale(s) to use (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument) */ - locale?: Intl.UnicodeBCP47LocaleIdentifier | Intl.UnicodeBCP47LocaleIdentifier[]; - /** The locale matching algorithm to use. Other value: 'lookup'. See MDN for details [Locale identification and negotiation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation) */ - localeMatcher?: Intl.RelativeTimeFormatLocaleMatcher; - /** The output message format. The values are 'auto' (e.g. `yesterday`), 'always'(e.g. `1 day ago`) */ - numeric?: Intl.RelativeTimeFormatNumeric; - /** The length of the result. The values are: 'long' (e.g. `1 month`), 'short' (e.g. 'in 1 mo.'), 'narrow' (e.g. 'in 1 mo.'). The narrow one could be similar to the short one for some locales. */ - style?: Intl.RelativeTimeFormatStyle; + /** The locales to use (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument) */ + locale?: MaybeArray; } /** * The unit used to format the distance in {@link intlFormatDistance}. */ -export type IntlFormatDistanceUnit = 'year' | 'quarter' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second'; +export type IntlFormatDistanceUnit = + | "year" + | "quarter" + | "month" + | "week" + | "day" + | "hour" + | "minute" + | "second"; /** * @name intlFormatDistance @@ -68,10 +73,8 @@ export type IntlFormatDistanceUnit = 'year' | 'quarter' | 'month' | 'week' | 'da * | 1 year | last year | next year | * | 2+ years | X years ago | in X years | * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param date - The date - * @param baseDate - The date to compare with. + * @param laterDate - The date + * @param earlierDate - The date to compare with. * @param options - An object with options. * See MDN for details [Locale identification and negotiation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation) * The narrow one could be similar to the short one for some locales. @@ -137,80 +140,86 @@ export type IntlFormatDistanceUnit = 'year' | 'quarter' | 'month' | 'week' | 'da * ) * //=> 'in 2 yr' */ -export function intlFormatDistance( - date: DateType | number | string, - baseDate: DateType | number | string, +export function intlFormatDistance( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, options?: IntlFormatDistanceOptions, ): string { let value: number = 0; let unit: Intl.RelativeTimeFormatUnit; - const dateLeft = toDate(date); - const dateRight = toDate(baseDate); + + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); if (!options?.unit) { // Get the unit based on diffInSeconds calculations if no unit is specified - const diffInSeconds = differenceInSeconds(dateLeft, dateRight); // The smallest unit + const diffInSeconds = differenceInSeconds(laterDate_, earlierDate_); // The smallest unit if (Math.abs(diffInSeconds) < secondsInMinute) { - value = differenceInSeconds(dateLeft, dateRight); - unit = 'second'; + value = differenceInSeconds(laterDate_, earlierDate_); + unit = "second"; } else if (Math.abs(diffInSeconds) < secondsInHour) { - value = differenceInMinutes(dateLeft, dateRight); - unit = 'minute'; - } else if (Math.abs(diffInSeconds) < secondsInDay && Math.abs(differenceInCalendarDays(dateLeft, dateRight)) < 1) { - value = differenceInHours(dateLeft, dateRight); - unit = 'hour'; + value = differenceInMinutes(laterDate_, earlierDate_); + unit = "minute"; + } else if ( + Math.abs(diffInSeconds) < secondsInDay && + Math.abs(differenceInCalendarDays(laterDate_, earlierDate_)) < 1 + ) { + value = differenceInHours(laterDate_, earlierDate_); + unit = "hour"; } else if ( Math.abs(diffInSeconds) < secondsInWeek && - (value = differenceInCalendarDays(dateLeft, dateRight)) && + (value = differenceInCalendarDays(laterDate_, earlierDate_)) && Math.abs(value) < 7 ) { - unit = 'day'; + unit = "day"; } else if (Math.abs(diffInSeconds) < secondsInMonth) { - value = differenceInCalendarWeeks(dateLeft, dateRight); - unit = 'week'; + value = differenceInCalendarWeeks(laterDate_, earlierDate_); + unit = "week"; } else if (Math.abs(diffInSeconds) < secondsInQuarter) { - value = differenceInCalendarMonths(dateLeft, dateRight); - unit = 'month'; + value = differenceInCalendarMonths(laterDate_, earlierDate_); + unit = "month"; } else if (Math.abs(diffInSeconds) < secondsInYear) { - if (differenceInCalendarQuarters(dateLeft, dateRight) < 4) { + if (differenceInCalendarQuarters(laterDate_, earlierDate_) < 4) { // To filter out cases that are less than a year but match 4 quarters - value = differenceInCalendarQuarters(dateLeft, dateRight); - unit = 'quarter'; + value = differenceInCalendarQuarters(laterDate_, earlierDate_); + unit = "quarter"; } else { - value = differenceInCalendarYears(dateLeft, dateRight); - unit = 'year'; + value = differenceInCalendarYears(laterDate_, earlierDate_); + unit = "year"; } } else { - value = differenceInCalendarYears(dateLeft, dateRight); - unit = 'year'; + value = differenceInCalendarYears(laterDate_, earlierDate_); + unit = "year"; } } else { // Get the value if unit is specified unit = options?.unit; - if (unit === 'second') { - value = differenceInSeconds(dateLeft, dateRight); - } else if (unit === 'minute') { - value = differenceInMinutes(dateLeft, dateRight); - } else if (unit === 'hour') { - value = differenceInHours(dateLeft, dateRight); - } else if (unit === 'day') { - value = differenceInCalendarDays(dateLeft, dateRight); - } else if (unit === 'week') { - value = differenceInCalendarWeeks(dateLeft, dateRight); - } else if (unit === 'month') { - value = differenceInCalendarMonths(dateLeft, dateRight); - } else if (unit === 'quarter') { - value = differenceInCalendarQuarters(dateLeft, dateRight); - } else if (unit === 'year') { - value = differenceInCalendarYears(dateLeft, dateRight); + if (unit === "second") { + value = differenceInSeconds(laterDate_, earlierDate_); + } else if (unit === "minute") { + value = differenceInMinutes(laterDate_, earlierDate_); + } else if (unit === "hour") { + value = differenceInHours(laterDate_, earlierDate_); + } else if (unit === "day") { + value = differenceInCalendarDays(laterDate_, earlierDate_); + } else if (unit === "week") { + value = differenceInCalendarWeeks(laterDate_, earlierDate_); + } else if (unit === "month") { + value = differenceInCalendarMonths(laterDate_, earlierDate_); + } else if (unit === "quarter") { + value = differenceInCalendarQuarters(laterDate_, earlierDate_); + } else if (unit === "year") { + value = differenceInCalendarYears(laterDate_, earlierDate_); } } const rtf = new Intl.RelativeTimeFormat(options?.locale, { - ...(options?.localeMatcher === undefined ? {} : { localeMatcher: options?.localeMatcher }), - numeric: options?.numeric || 'auto', - ...(options?.style === undefined ? {} : { style: options?.style }), + numeric: "auto", + ...options, }); return rtf.format(value, unit); diff --git a/src/date-fns/isAfter/index.ts b/src/date-fns/isAfter/index.ts index 3c69c91..e1296a4 100644 --- a/src/date-fns/isAfter/index.ts +++ b/src/date-fns/isAfter/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name isAfter @@ -8,8 +9,6 @@ import { toDate } from '../toDate/index'; * @description * Is the first date after the second one? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date that should be after the other one to return true * @param dateToCompare - The date to compare with * @@ -20,11 +19,9 @@ import { toDate } from '../toDate/index'; * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11)) * //=> true */ -export function isAfter( - date: DateType | number | string, - dateToCompare: DateType | number | string, +export function isAfter( + date: DateArg & {}, + dateToCompare: DateArg & {}, ): boolean { - const _date = toDate(date); - const _dateToCompare = toDate(dateToCompare); - return _date.getTime() > _dateToCompare.getTime(); + return +toDate(date) > +toDate(dateToCompare); } diff --git a/src/date-fns/isBefore/index.ts b/src/date-fns/isBefore/index.ts index dbbe416..3714a9b 100644 --- a/src/date-fns/isBefore/index.ts +++ b/src/date-fns/isBefore/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name isBefore @@ -8,8 +9,6 @@ import { toDate } from '../toDate/index'; * @description * Is the first date before the second one? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date that should be before the other one to return true * @param dateToCompare - The date to compare with * @@ -20,11 +19,9 @@ import { toDate } from '../toDate/index'; * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11)) * //=> false */ -export function isBefore( - date: DateType | number | string, - dateToCompare: DateType | number | string, +export function isBefore( + date: DateArg & {}, + dateToCompare: DateArg & {}, ): boolean { - const _date = toDate(date); - const _dateToCompare = toDate(dateToCompare); - return +_date < +_dateToCompare; + return +toDate(date) < +toDate(dateToCompare); } diff --git a/src/date-fns/isDate/index.ts b/src/date-fns/isDate/index.ts index 3c9f3b0..dd5aa78 100644 --- a/src/date-fns/isDate/index.ts +++ b/src/date-fns/isDate/index.ts @@ -32,6 +32,8 @@ */ export function isDate(value: unknown): value is Date { return ( - value instanceof Date || (typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]') + value instanceof Date || + (typeof value === "object" && + Object.prototype.toString.call(value) === "[object Date]") ); } diff --git a/src/date-fns/isEqual/index.ts b/src/date-fns/isEqual/index.ts index a279196..a36513c 100644 --- a/src/date-fns/isEqual/index.ts +++ b/src/date-fns/isEqual/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name isEqual @@ -8,8 +9,6 @@ import { toDate } from '../toDate/index'; * @description * Are the given dates equal? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param dateLeft - The first date to compare * @param dateRight - The second date to compare * @@ -23,11 +22,9 @@ import { toDate } from '../toDate/index'; * ) * //=> false */ -export function isEqual( - leftDate: DateType | number | string, - rightDate: DateType | number | string, +export function isEqual( + leftDate: DateArg & {}, + rightDate: DateArg & {}, ): boolean { - const _dateLeft = toDate(leftDate); - const _dateRight = toDate(rightDate); - return +_dateLeft === +_dateRight; + return +toDate(leftDate) === +toDate(rightDate); } diff --git a/src/date-fns/isExists/index.ts b/src/date-fns/isExists/index.ts index bf51f19..03dc517 100644 --- a/src/date-fns/isExists/index.ts +++ b/src/date-fns/isExists/index.ts @@ -24,5 +24,9 @@ */ export function isExists(year: number, month: number, day: number): boolean { const date = new Date(year, month, day); - return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day; + return ( + date.getFullYear() === year && + date.getMonth() === month && + date.getDate() === day + ); } diff --git a/src/date-fns/isFirstDayOfMonth/index.ts b/src/date-fns/isFirstDayOfMonth/index.ts index 3a37316..0b13bdc 100644 --- a/src/date-fns/isFirstDayOfMonth/index.ts +++ b/src/date-fns/isFirstDayOfMonth/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isFirstDayOfMonth} function options. + */ +export interface IsFirstDayOfMonthOptions extends ContextOptions {} /** * @name isFirstDayOfMonth @@ -8,10 +14,9 @@ import { toDate } from '../toDate/index'; * @description * Is the given date the first day of a month? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check - + * @param options - An object with options + * * @returns The date is the first day of a month * * @example @@ -19,6 +24,9 @@ import { toDate } from '../toDate/index'; * const result = isFirstDayOfMonth(new Date(2014, 8, 1)) * //=> true */ -export function isFirstDayOfMonth(date: DateType | number | string): boolean { - return toDate(date).getDate() === 1; +export function isFirstDayOfMonth( + date: DateArg & {}, + options?: IsFirstDayOfMonthOptions | undefined, +): boolean { + return toDate(date, options?.in).getDate() === 1; } diff --git a/src/date-fns/isFriday/index.ts b/src/date-fns/isFriday/index.ts index f7405f5..dafd4cb 100644 --- a/src/date-fns/isFriday/index.ts +++ b/src/date-fns/isFriday/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isFriday} function options. + */ +export interface IsFridayOptions extends ContextOptions {} /** * @name isFriday @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Is the given date Friday? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is Friday * @@ -19,6 +24,9 @@ import { toDate } from '../toDate/index'; * const result = isFriday(new Date(2014, 8, 26)) * //=> true */ -export function isFriday(date: DateType | number | string): boolean { - return toDate(date).getDay() === 5; +export function isFriday( + date: DateArg & {}, + options?: IsFridayOptions | undefined, +): boolean { + return toDate(date, options?.in).getDay() === 5; } diff --git a/src/date-fns/isFuture/index.ts b/src/date-fns/isFuture/index.ts index c1dabbf..2bb6ab8 100644 --- a/src/date-fns/isFuture/index.ts +++ b/src/date-fns/isFuture/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name isFuture @@ -9,8 +10,6 @@ import { toDate } from '../toDate/index'; * @description * Is the given date in the future? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check * * @returns The date is in the future @@ -20,6 +19,6 @@ import { toDate } from '../toDate/index'; * const result = isFuture(new Date(2014, 11, 31)) * //=> true */ -export function isFuture(date: DateType | number | string): boolean { +export function isFuture(date: DateArg & {}): boolean { return +toDate(date) > Date.now(); } diff --git a/src/date-fns/isLastDayOfMonth/index.ts b/src/date-fns/isLastDayOfMonth/index.ts index 3814e54..aa0ab3e 100644 --- a/src/date-fns/isLastDayOfMonth/index.ts +++ b/src/date-fns/isLastDayOfMonth/index.ts @@ -1,6 +1,9 @@ -import { endOfDay } from '../endOfDay/index'; -import { endOfMonth } from '../endOfMonth/index'; -import { toDate } from '../toDate/index'; +import { endOfDay } from "../endOfDay/index.ts"; +import { endOfMonth } from "../endOfMonth/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +export interface IsLastDayOfMonthOptions extends ContextOptions {} /** * @name isLastDayOfMonth @@ -10,10 +13,9 @@ import { toDate } from '../toDate/index'; * @description * Is the given date the last day of a month? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check - + * @param options - An object with options + * * @returns The date is the last day of a month * * @example @@ -21,7 +23,10 @@ import { toDate } from '../toDate/index'; * const result = isLastDayOfMonth(new Date(2014, 1, 28)) * //=> true */ -export function isLastDayOfMonth(date: DateType | number | string): boolean { - const _date = toDate(date); - return +endOfDay(_date) === +endOfMonth(_date); +export function isLastDayOfMonth( + date: DateArg & {}, + options?: IsLastDayOfMonthOptions | undefined, +): boolean { + const _date = toDate(date, options?.in); + return +endOfDay(_date, options) === +endOfMonth(_date, options); } diff --git a/src/date-fns/isLeapYear/index.ts b/src/date-fns/isLeapYear/index.ts index 25a6cf9..6f4c08c 100644 --- a/src/date-fns/isLeapYear/index.ts +++ b/src/date-fns/isLeapYear/index.ts @@ -1,4 +1,7 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +export interface IsLeapYearOptions extends ContextOptions {} /** * @name isLeapYear @@ -8,9 +11,8 @@ import { toDate } from '../toDate/index'; * @description * Is the given date in the leap year? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - The options object * * @returns The date is in the leap year * @@ -19,8 +21,11 @@ import { toDate } from '../toDate/index'; * const result = isLeapYear(new Date(2012, 8, 1)) * //=> true */ -export function isLeapYear(date: DateType | number | string): boolean { - const _date = toDate(date); +export function isLeapYear( + date: DateArg & {}, + options?: IsLeapYearOptions | undefined, +): boolean { + const _date = toDate(date, options?.in); const year = _date.getFullYear(); return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0); } diff --git a/src/date-fns/isMatch/index.ts b/src/date-fns/isMatch/index.ts index 0cd4b94..1217a0c 100644 --- a/src/date-fns/isMatch/index.ts +++ b/src/date-fns/isMatch/index.ts @@ -1,12 +1,17 @@ -import { isValid } from '../isValid/index'; -import { parse } from '../parse/index'; -import type { AdditionalTokensOptions, FirstWeekContainsDateOptions, LocalizedOptions, WeekOptions } from '../types'; +import { isValid } from "../isValid/index.ts"; +import { parse } from "../parse/index.ts"; +import type { + AdditionalTokensOptions, + FirstWeekContainsDateOptions, + LocalizedOptions, + WeekOptions, +} from "../types.ts"; /** * The {@link isMatch} function options. */ export interface IsMatchOptions - extends LocalizedOptions<'options' | 'match' | 'formatLong'>, + extends LocalizedOptions<"options" | "match" | "formatLong">, WeekOptions, FirstWeekContainsDateOptions, AdditionalTokensOptions {} @@ -197,7 +202,7 @@ export interface IsMatchOptions * * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'` * - * `isMatch` will try to match both formatting and stand-alone units interchangably. + * `isMatch` will try to match both formatting and stand-alone units interchangeably. * * 2. Any sequence of the identical letters is a pattern, unless it is escaped by * the single quote characters (see below). @@ -246,7 +251,7 @@ export interface IsMatchOptions * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years. * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md * - * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month. + * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month. * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md * * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based @@ -267,8 +272,6 @@ export interface IsMatchOptions * * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param dateStr - The date string to verify * @param format - The string of tokens * @param options - An object with options. @@ -297,6 +300,10 @@ export interface IsMatchOptions * }) * //=> true */ -export function isMatch(dateStr: string, formatStr: string, options?: IsMatchOptions): boolean { +export function isMatch( + dateStr: string, + formatStr: string, + options?: IsMatchOptions, +): boolean { return isValid(parse(dateStr, formatStr, new Date(), options)); } diff --git a/src/date-fns/isMonday/index.ts b/src/date-fns/isMonday/index.ts index 412b23e..6bc0ba6 100644 --- a/src/date-fns/isMonday/index.ts +++ b/src/date-fns/isMonday/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isMonday} function options. + */ +export interface IsMondayOptions extends ContextOptions {} /** * @name isMonday @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Is the given date Monday? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is Monday * @@ -19,6 +24,9 @@ import { toDate } from '../toDate/index'; * const result = isMonday(new Date(2014, 8, 22)) * //=> true */ -export function isMonday(date: DateType | number | string): boolean { - return toDate(date).getDay() === 1; +export function isMonday( + date: DateArg & {}, + options?: IsMondayOptions | undefined, +): boolean { + return toDate(date, options?.in).getDay() === 1; } diff --git a/src/date-fns/isPast/index.ts b/src/date-fns/isPast/index.ts index 8b15c0e..36da90e 100644 --- a/src/date-fns/isPast/index.ts +++ b/src/date-fns/isPast/index.ts @@ -1,4 +1,5 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name isPast @@ -9,8 +10,6 @@ import { toDate } from '../toDate/index'; * @description * Is the given date in the past? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check * * @returns The date is in the past @@ -20,6 +19,6 @@ import { toDate } from '../toDate/index'; * const result = isPast(new Date(2014, 6, 2)) * //=> true */ -export function isPast(date: DateType | number | string): boolean { +export function isPast(date: DateArg & {}): boolean { return +toDate(date) < Date.now(); } diff --git a/src/date-fns/isSameDay/index.ts b/src/date-fns/isSameDay/index.ts index dc29b62..db26fce 100644 --- a/src/date-fns/isSameDay/index.ts +++ b/src/date-fns/isSameDay/index.ts @@ -1,4 +1,11 @@ -import { startOfDay } from '../startOfDay/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { startOfDay } from "../startOfDay/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isSameDay} function options. + */ +export interface IsSameDayOptions extends ContextOptions {} /** * @name isSameDay @@ -8,11 +15,10 @@ import { startOfDay } from '../startOfDay/index'; * @description * Are the given dates in the same day (and year and month)? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @param laterDate - The first date to check + * @param earlierDate - The second date to check + * @param options - An object with options * - * @param dateLeft - The first date to check - * @param dateRight - The second date to check - * @returns The dates are in the same day (and year and month) * * @example @@ -30,12 +36,15 @@ import { startOfDay } from '../startOfDay/index'; * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4)) * //=> false */ -export function isSameDay( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function isSameDay( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: IsSameDayOptions | undefined, ): boolean { - const dateLeftStartOfDay = startOfDay(dateLeft); - const dateRightStartOfDay = startOfDay(dateRight); - - return +dateLeftStartOfDay === +dateRightStartOfDay; + const [dateLeft_, dateRight_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + return +startOfDay(dateLeft_) === +startOfDay(dateRight_); } diff --git a/src/date-fns/isSameHour/index.ts b/src/date-fns/isSameHour/index.ts index 4dac905..9991252 100644 --- a/src/date-fns/isSameHour/index.ts +++ b/src/date-fns/isSameHour/index.ts @@ -1,4 +1,11 @@ -import { startOfHour } from '../startOfHour/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { startOfHour } from "../startOfHour/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isSameHour} function options. + */ +export interface IsSameHourOptions extends ContextOptions {} /** * @name isSameHour @@ -8,10 +15,9 @@ import { startOfHour } from '../startOfHour/index'; * @description * Are the given dates in the same hour (and same day)? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param dateLeft - The first date to check * @param dateRight - The second date to check + * @param options - An object with options * * @returns The dates are in the same hour (and same day) * @@ -25,12 +31,15 @@ import { startOfHour } from '../startOfHour/index'; * const result = isSameHour(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 5, 6, 0)) * //=> false */ -export function isSameHour( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function isSameHour( + dateLeft: DateArg & {}, + dateRight: DateArg & {}, + options?: IsSameHourOptions | undefined, ): boolean { - const dateLeftStartOfHour = startOfHour(dateLeft); - const dateRightStartOfHour = startOfHour(dateRight); - - return +dateLeftStartOfHour === +dateRightStartOfHour; + const [dateLeft_, dateRight_] = normalizeDates( + options?.in, + dateLeft, + dateRight, + ); + return +startOfHour(dateLeft_) === +startOfHour(dateRight_); } diff --git a/src/date-fns/isSameISOWeek/index.ts b/src/date-fns/isSameISOWeek/index.ts index fe72458..aff5e9f 100644 --- a/src/date-fns/isSameISOWeek/index.ts +++ b/src/date-fns/isSameISOWeek/index.ts @@ -1,4 +1,10 @@ -import { isSameWeek } from '../isSameWeek/index'; +import { isSameWeek } from "../isSameWeek/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isSameISOWeek} function options. + */ +export interface IsSameISOWeekOptions extends ContextOptions {} /** * @name isSameISOWeek @@ -10,10 +16,9 @@ import { isSameWeek } from '../isSameWeek/index'; * * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The first date to check - * @param dateRight - The second date to check + * @param laterDate - The first date to check + * @param earlierDate - The second date to check + * @param options - An object with options * * @returns The dates are in the same ISO week (and year) * @@ -27,9 +32,10 @@ import { isSameWeek } from '../isSameWeek/index'; * const result = isSameISOWeek(new Date(2014, 8, 1), new Date(2015, 8, 1)) * //=> false */ -export function isSameISOWeek( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function isSameISOWeek( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: IsSameISOWeekOptions | undefined, ): boolean { - return isSameWeek(dateLeft, dateRight, { weekStartsOn: 1 }); + return isSameWeek(laterDate, earlierDate, { ...options, weekStartsOn: 1 }); } diff --git a/src/date-fns/isSameISOWeekYear/index.ts b/src/date-fns/isSameISOWeekYear/index.ts index 45bb436..f50f107 100644 --- a/src/date-fns/isSameISOWeekYear/index.ts +++ b/src/date-fns/isSameISOWeekYear/index.ts @@ -1,4 +1,11 @@ -import { startOfISOWeekYear } from '../startOfISOWeekYear/index'; +import { startOfISOWeekYear } from "../startOfISOWeekYear/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; + +/** + * The {@link isSameISOWeekYear} function options. + */ +export interface IsSameISOWeekYearOptions extends ContextOptions {} /** * @name isSameISOWeekYear @@ -10,10 +17,9 @@ import { startOfISOWeekYear } from '../startOfISOWeekYear/index'; * * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The first date to check - * @param dateRight - The second date to check + * @param laterDate - The first date to check + * @param earlierDate - The second date to check + * @param options - An object with options * * @returns The dates are in the same ISO week-numbering year * @@ -22,12 +28,15 @@ import { startOfISOWeekYear } from '../startOfISOWeekYear/index'; * const result = isSameISOWeekYear(new Date(2003, 11, 29), new Date(2005, 0, 2)) * //=> true */ -export function isSameISOWeekYear( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function isSameISOWeekYear( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: IsSameISOWeekYearOptions | undefined, ): boolean { - const dateLeftStartOfYear = startOfISOWeekYear(dateLeft); - const dateRightStartOfYear = startOfISOWeekYear(dateRight); - - return +dateLeftStartOfYear === +dateRightStartOfYear; + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + return +startOfISOWeekYear(laterDate_) === +startOfISOWeekYear(earlierDate_); } diff --git a/src/date-fns/isSameMinute/index.ts b/src/date-fns/isSameMinute/index.ts index 3b4918a..e40616f 100644 --- a/src/date-fns/isSameMinute/index.ts +++ b/src/date-fns/isSameMinute/index.ts @@ -1,4 +1,5 @@ -import { startOfMinute } from '../startOfMinute/index'; +import { startOfMinute } from "../startOfMinute/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name isSameMinute @@ -8,10 +9,8 @@ import { startOfMinute } from '../startOfMinute/index'; * @description * Are the given dates in the same minute (and hour and day)? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The first date to check - * @param dateRight - The second date to check + * @param laterDate - The first date to check + * @param earlierDate - The second date to check * * @returns The dates are in the same minute (and hour and day) * @@ -31,12 +30,9 @@ import { startOfMinute } from '../startOfMinute/index'; * ) * //=> false */ -export function isSameMinute( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function isSameMinute( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, ): boolean { - const dateLeftStartOfMinute = startOfMinute(dateLeft); - const dateRightStartOfMinute = startOfMinute(dateRight); - - return +dateLeftStartOfMinute === +dateRightStartOfMinute; + return +startOfMinute(laterDate) === +startOfMinute(earlierDate); } diff --git a/src/date-fns/isSameMonth/index.ts b/src/date-fns/isSameMonth/index.ts index dc34de9..1494afb 100644 --- a/src/date-fns/isSameMonth/index.ts +++ b/src/date-fns/isSameMonth/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isSameMonth} function options. + */ +export interface IsSameMonthOptions extends ContextOptions {} /** * @name isSameMonth @@ -8,10 +14,9 @@ import { toDate } from '../toDate/index'; * @description * Are the given dates in the same month (and year)? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The first date to check - * @param dateRight - The second date to check + * @param laterDate - The first date to check + * @param earlierDate - The second date to check + * @param options - An object with options * * @returns The dates are in the same month (and year) * @@ -25,11 +30,18 @@ import { toDate } from '../toDate/index'; * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25)) * //=> false */ -export function isSameMonth( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function isSameMonth( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: IsSameMonthOptions | undefined, ): boolean { - const _dateLeft = toDate(dateLeft); - const _dateRight = toDate(dateRight); - return _dateLeft.getFullYear() === _dateRight.getFullYear() && _dateLeft.getMonth() === _dateRight.getMonth(); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + return ( + laterDate_.getFullYear() === earlierDate_.getFullYear() && + laterDate_.getMonth() === earlierDate_.getMonth() + ); } diff --git a/src/date-fns/isSameQuarter/index.ts b/src/date-fns/isSameQuarter/index.ts index 96ee162..47e55c7 100644 --- a/src/date-fns/isSameQuarter/index.ts +++ b/src/date-fns/isSameQuarter/index.ts @@ -1,4 +1,11 @@ -import { startOfQuarter } from '../startOfQuarter/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { startOfQuarter } from "../startOfQuarter/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isSameQuarter} function options. + */ +export interface IsSameQuarterOptions extends ContextOptions {} /** * @name isSameQuarter @@ -8,11 +15,10 @@ import { startOfQuarter } from '../startOfQuarter/index'; * @description * Are the given dates in the same quarter (and year)? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @param laterDate - The first date to check + * @param earlierDate - The second date to check + * @param options - An object with options * - * @param dateLeft - The first date to check - * @param dateRight - The second date to check - * @returns The dates are in the same quarter (and year) * * @example @@ -25,12 +31,15 @@ import { startOfQuarter } from '../startOfQuarter/index'; * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1)) * //=> false */ -export function isSameQuarter( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function isSameQuarter( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: IsSameQuarterOptions | undefined, ): boolean { - const dateLeftStartOfQuarter = startOfQuarter(dateLeft); - const dateRightStartOfQuarter = startOfQuarter(dateRight); - - return +dateLeftStartOfQuarter === +dateRightStartOfQuarter; + const [dateLeft_, dateRight_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + return +startOfQuarter(dateLeft_) === +startOfQuarter(dateRight_); } diff --git a/src/date-fns/isSameSecond/index.ts b/src/date-fns/isSameSecond/index.ts index aa51e90..5a13598 100644 --- a/src/date-fns/isSameSecond/index.ts +++ b/src/date-fns/isSameSecond/index.ts @@ -1,4 +1,5 @@ -import { startOfSecond } from '../startOfSecond/index'; +import { startOfSecond } from "../startOfSecond/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name isSameSecond @@ -8,10 +9,8 @@ import { startOfSecond } from '../startOfSecond/index'; * @description * Are the given dates in the same second (and hour and day)? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The first date to check - * @param dateRight - The second date to check + * @param laterDate - The first date to check + * @param earlierDate - The second date to check * * @returns The dates are in the same second (and hour and day) * @@ -39,12 +38,9 @@ import { startOfSecond } from '../startOfSecond/index'; * ) * //=> false */ -export function isSameSecond( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function isSameSecond( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, ): boolean { - const dateLeftStartOfSecond = startOfSecond(dateLeft); - const dateRightStartOfSecond = startOfSecond(dateRight); - - return +dateLeftStartOfSecond === +dateRightStartOfSecond; + return +startOfSecond(laterDate) === +startOfSecond(earlierDate); } diff --git a/src/date-fns/isSameWeek/index.ts b/src/date-fns/isSameWeek/index.ts index bbc274b..7f93e27 100644 --- a/src/date-fns/isSameWeek/index.ts +++ b/src/date-fns/isSameWeek/index.ts @@ -1,10 +1,15 @@ -import { startOfWeek } from '../startOfWeek/index'; -import type { LocalizedOptions, WeekOptions } from '../types'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import { startOfWeek } from "../startOfWeek/index.ts"; +import type { LocalizedOptions, WeekOptions } from "../types.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; /** * The {@link isSameWeek} function options. */ -export interface IsSameWeekOptions extends WeekOptions, LocalizedOptions<'options'> {} +export interface IsSameWeekOptions + extends WeekOptions, + LocalizedOptions<"options">, + ContextOptions {} /** * @name isSameWeek @@ -14,10 +19,8 @@ export interface IsSameWeekOptions extends WeekOptions, LocalizedOptions<'option * @description * Are the given dates in the same week (and month and year)? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The first date to check - * @param dateRight - The second date to check + * @param laterDate - The first date to check + * @param earlierDate - The second date to check * @param options - An object with options * * @returns The dates are in the same week (and month and year) @@ -40,13 +43,17 @@ export interface IsSameWeekOptions extends WeekOptions, LocalizedOptions<'option * const result = isSameWeek(new Date(2014, 0, 1), new Date(2015, 0, 1)) * //=> false */ -export function isSameWeek( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function isSameWeek( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, options?: IsSameWeekOptions, ): boolean { - const dateLeftStartOfWeek = startOfWeek(dateLeft, options); - const dateRightStartOfWeek = startOfWeek(dateRight, options); - - return +dateLeftStartOfWeek === +dateRightStartOfWeek; + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + return ( + +startOfWeek(laterDate_, options) === +startOfWeek(earlierDate_, options) + ); } diff --git a/src/date-fns/isSameYear/index.ts b/src/date-fns/isSameYear/index.ts index 4ab76c0..b435c0f 100644 --- a/src/date-fns/isSameYear/index.ts +++ b/src/date-fns/isSameYear/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { normalizeDates } from "../_lib/normalizeDates/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isSameYear} function options. + */ +export interface IsSameYearOptions extends ContextOptions {} /** * @name isSameYear @@ -8,10 +14,9 @@ import { toDate } from '../toDate/index'; * @description * Are the given dates in the same year? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * - * @param dateLeft - The first date to check - * @param dateRight - The second date to check + * @param laterDate - The first date to check + * @param earlierDate - The second date to check + * @param options - An object with options * * @returns The dates are in the same year * @@ -20,11 +25,15 @@ import { toDate } from '../toDate/index'; * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25)) * //=> true */ -export function isSameYear( - dateLeft: DateType | number | string, - dateRight: DateType | number | string, +export function isSameYear( + laterDate: DateArg & {}, + earlierDate: DateArg & {}, + options?: IsSameYearOptions | undefined, ): boolean { - const _dateLeft = toDate(dateLeft); - const _dateRight = toDate(dateRight); - return _dateLeft.getFullYear() === _dateRight.getFullYear(); + const [laterDate_, earlierDate_] = normalizeDates( + options?.in, + laterDate, + earlierDate, + ); + return laterDate_.getFullYear() === earlierDate_.getFullYear(); } diff --git a/src/date-fns/isSaturday/index.ts b/src/date-fns/isSaturday/index.ts index 12f7fa7..42a2ace 100644 --- a/src/date-fns/isSaturday/index.ts +++ b/src/date-fns/isSaturday/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isSaturday} function options. + */ +export interface IsSaturdayOptions extends ContextOptions {} /** * @name isSaturday @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Is the given date Saturday? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is Saturday * @@ -19,6 +24,9 @@ import { toDate } from '../toDate/index'; * const result = isSaturday(new Date(2014, 8, 27)) * //=> true */ -export function isSaturday(date: DateType | number | string): boolean { - return toDate(date).getDay() === 6; +export function isSaturday( + date: DateArg & {}, + options?: IsSaturdayOptions | undefined, +): boolean { + return toDate(date, options?.in).getDay() === 6; } diff --git a/src/date-fns/isSunday/index.ts b/src/date-fns/isSunday/index.ts index c970862..55e4a8c 100644 --- a/src/date-fns/isSunday/index.ts +++ b/src/date-fns/isSunday/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isSunday} function options. + */ +export interface IsSundayOptions extends ContextOptions {} /** * @name isSunday @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Is the given date Sunday? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - The options object * * @returns The date is Sunday * @@ -19,6 +24,9 @@ import { toDate } from '../toDate/index'; * const result = isSunday(new Date(2014, 8, 21)) * //=> true */ -export function isSunday(date: DateType | number | string): boolean { - return toDate(date).getDay() === 0; +export function isSunday( + date: DateArg & {}, + options?: IsSundayOptions | undefined, +): boolean { + return toDate(date, options?.in).getDay() === 0; } diff --git a/src/date-fns/isThisHour/index.ts b/src/date-fns/isThisHour/index.ts index 3f56a2e..1a937cd 100644 --- a/src/date-fns/isThisHour/index.ts +++ b/src/date-fns/isThisHour/index.ts @@ -1,5 +1,12 @@ -import { constructNow } from '../constructNow/index'; -import { isSameHour } from '../isSameHour/index'; +import { constructNow } from "../constructNow/index.ts"; +import { isSameHour } from "../isSameHour/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isThisHour} function options. + */ +export interface IsThisHourOptions extends ContextOptions {} /** * @name isThisHour @@ -10,9 +17,8 @@ import { isSameHour } from '../isSameHour/index'; * @description * Is the given date in the same hour as the current date? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is in this hour * @@ -22,6 +28,12 @@ import { isSameHour } from '../isSameHour/index'; * const result = isThisHour(new Date(2014, 8, 25, 18)) * //=> true */ -export function isThisHour(date: DateType | number | string): boolean { - return isSameHour(date, constructNow(date)); +export function isThisHour( + date: DateArg & {}, + options?: IsThisHourOptions, +): boolean { + return isSameHour( + toDate(date, options?.in), + constructNow(options?.in || date), + ); } diff --git a/src/date-fns/isThisISOWeek/index.ts b/src/date-fns/isThisISOWeek/index.ts index 0a7427e..1963abf 100644 --- a/src/date-fns/isThisISOWeek/index.ts +++ b/src/date-fns/isThisISOWeek/index.ts @@ -1,5 +1,12 @@ -import { constructNow } from '../constructNow/index'; -import { isSameISOWeek } from '../isSameISOWeek/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { constructNow } from "../constructNow/index.ts"; +import { isSameISOWeek } from "../isSameISOWeek/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isThisISOWeek} function options. + */ +export interface IsThisISOWeekOptions extends ContextOptions {} /** * @name isThisISOWeek @@ -12,9 +19,8 @@ import { isSameISOWeek } from '../isSameISOWeek/index'; * * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is in this ISO week * @@ -23,7 +29,12 @@ import { isSameISOWeek } from '../isSameISOWeek/index'; * const result = isThisISOWeek(new Date(2014, 8, 22)) * //=> true */ - -export function isThisISOWeek(date: DateType | number | string): boolean { - return isSameISOWeek(date, constructNow(date)); +export function isThisISOWeek( + date: DateArg & {}, + options?: IsThisISOWeekOptions | undefined, +): boolean { + return isSameISOWeek( + constructFrom(options?.in || date, date), + constructNow(options?.in || date), + ); } diff --git a/src/date-fns/isThisMinute/index.ts b/src/date-fns/isThisMinute/index.ts index fec9448..8de3693 100644 --- a/src/date-fns/isThisMinute/index.ts +++ b/src/date-fns/isThisMinute/index.ts @@ -1,5 +1,6 @@ -import { constructNow } from '../constructNow/index'; -import { isSameMinute } from '../isSameMinute/index'; +import { constructNow } from "../constructNow/index.ts"; +import { isSameMinute } from "../isSameMinute/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name isThisMinute @@ -10,8 +11,6 @@ import { isSameMinute } from '../isSameMinute/index'; * @description * Is the given date in the same minute as the current date? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check * * @returns The date is in this minute @@ -23,6 +22,6 @@ import { isSameMinute } from '../isSameMinute/index'; * //=> true */ -export function isThisMinute(date: DateType | number | string): boolean { +export function isThisMinute(date: DateArg & {}): boolean { return isSameMinute(date, constructNow(date)); } diff --git a/src/date-fns/isThisMonth/index.ts b/src/date-fns/isThisMonth/index.ts index 10150c5..135c6de 100644 --- a/src/date-fns/isThisMonth/index.ts +++ b/src/date-fns/isThisMonth/index.ts @@ -1,5 +1,12 @@ -import { constructNow } from '../constructNow/index'; -import { isSameMonth } from '../isSameMonth/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { constructNow } from "../constructNow/index.ts"; +import { isSameMonth } from "../isSameMonth/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isThisMonth} function options. + */ +export interface IsThisMonthOptions extends ContextOptions {} /** * @name isThisMonth @@ -10,9 +17,8 @@ import { isSameMonth } from '../isSameMonth/index'; * @description * Is the given date in the same month as the current date? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is in this month * @@ -21,7 +27,12 @@ import { isSameMonth } from '../isSameMonth/index'; * const result = isThisMonth(new Date(2014, 8, 15)) * //=> true */ - -export function isThisMonth(date: DateType | number | string): boolean { - return isSameMonth(date, constructNow(date)); +export function isThisMonth( + date: DateArg & {}, + options?: IsThisMonthOptions | undefined, +): boolean { + return isSameMonth( + constructFrom(options?.in || date, date), + constructNow(options?.in || date), + ); } diff --git a/src/date-fns/isThisQuarter/index.ts b/src/date-fns/isThisQuarter/index.ts index 6fec7bc..28e0479 100644 --- a/src/date-fns/isThisQuarter/index.ts +++ b/src/date-fns/isThisQuarter/index.ts @@ -1,5 +1,12 @@ -import { constructNow } from '../constructNow/index'; -import { isSameQuarter } from '../isSameQuarter/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { constructNow } from "../constructNow/index.ts"; +import { isSameQuarter } from "../isSameQuarter/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isThisQuarter} function options. + */ +export interface IsThisQuarterOptions extends ContextOptions {} /** * @name isThisQuarter @@ -10,9 +17,8 @@ import { isSameQuarter } from '../isSameQuarter/index'; * @description * Is the given date in the same quarter as the current date? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is in this quarter * @@ -21,6 +27,12 @@ import { isSameQuarter } from '../isSameQuarter/index'; * const result = isThisQuarter(new Date(2014, 6, 2)) * //=> true */ -export function isThisQuarter(date: DateType | number | string): boolean { - return isSameQuarter(date, constructNow(date)); +export function isThisQuarter( + date: DateArg & {}, + options?: IsThisQuarterOptions, +): boolean { + return isSameQuarter( + constructFrom(options?.in || date, date), + constructNow(options?.in || date), + ); } diff --git a/src/date-fns/isThisSecond/index.ts b/src/date-fns/isThisSecond/index.ts index 6073dd5..eff101a 100644 --- a/src/date-fns/isThisSecond/index.ts +++ b/src/date-fns/isThisSecond/index.ts @@ -1,5 +1,6 @@ -import { constructNow } from '../constructNow/index'; -import { isSameSecond } from '../isSameSecond/index'; +import { constructNow } from "../constructNow/index.ts"; +import { isSameSecond } from "../isSameSecond/index.ts"; +import type { DateArg } from "../types.ts"; /** * @name isThisSecond @@ -10,8 +11,6 @@ import { isSameSecond } from '../isSameSecond/index'; * @description * Is the given date in the same second as the current date? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check * * @returns The date is in this second @@ -22,6 +21,6 @@ import { isSameSecond } from '../isSameSecond/index'; * const result = isThisSecond(new Date(2014, 8, 25, 18, 30, 15)) * //=> true */ -export function isThisSecond(date: DateType | number | string): boolean { +export function isThisSecond(date: DateArg & {}): boolean { return isSameSecond(date, constructNow(date)); } diff --git a/src/date-fns/isThisWeek/index.ts b/src/date-fns/isThisWeek/index.ts index 7215b95..37c81d5 100644 --- a/src/date-fns/isThisWeek/index.ts +++ b/src/date-fns/isThisWeek/index.ts @@ -1,11 +1,20 @@ -import { constructNow } from '../constructNow/index'; -import { isSameWeek } from '../isSameWeek/index'; -import type { LocalizedOptions, WeekOptions } from '../types'; +import { constructFrom } from "../constructFrom/index.ts"; +import { constructNow } from "../constructNow/index.ts"; +import { isSameWeek } from "../isSameWeek/index.ts"; +import type { + ContextOptions, + DateArg, + LocalizedOptions, + WeekOptions, +} from "../types.ts"; /** * The {@link isThisWeek} function options. */ -export interface IsThisWeekOptions extends WeekOptions, LocalizedOptions<'options'> {} +export interface IsThisWeekOptions + extends WeekOptions, + LocalizedOptions<"options">, + ContextOptions {} /** * @name isThisWeek @@ -16,8 +25,6 @@ export interface IsThisWeekOptions extends WeekOptions, LocalizedOptions<'option * @description * Is the given date in the same week as the current date? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check * @param options - The object with options * @@ -34,9 +41,13 @@ export interface IsThisWeekOptions extends WeekOptions, LocalizedOptions<'option * const result = isThisWeek(new Date(2014, 8, 21), { weekStartsOn: 1 }) * //=> false */ -export function isThisWeek( - date: DateType | number | string, +export function isThisWeek( + date: DateArg & {}, options?: IsThisWeekOptions, ): boolean { - return isSameWeek(date, constructNow(date), options); + return isSameWeek( + constructFrom(options?.in || date, date), + constructNow(options?.in || date), + options, + ); } diff --git a/src/date-fns/isThisYear/index.ts b/src/date-fns/isThisYear/index.ts index 251ad8f..cb5b03e 100644 --- a/src/date-fns/isThisYear/index.ts +++ b/src/date-fns/isThisYear/index.ts @@ -1,5 +1,12 @@ -import { constructNow } from '../constructNow/index'; -import { isSameYear } from '../isSameYear/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { constructNow } from "../constructNow/index.ts"; +import { isSameYear } from "../isSameYear/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isThisYear} function options. + */ +export interface IsThisYearOptions extends ContextOptions {} /** * @name isThisYear @@ -10,9 +17,8 @@ import { isSameYear } from '../isSameYear/index'; * @description * Is the given date in the same year as the current date? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is in this year * @@ -21,6 +27,12 @@ import { isSameYear } from '../isSameYear/index'; * const result = isThisYear(new Date(2014, 6, 2)) * //=> true */ -export function isThisYear(date: DateType | number | string): boolean { - return isSameYear(date, constructNow(date)); +export function isThisYear( + date: DateArg & {}, + options?: IsThisYearOptions | undefined, +): boolean { + return isSameYear( + constructFrom(options?.in || date, date), + constructNow(options?.in || date), + ); } diff --git a/src/date-fns/isThursday/index.ts b/src/date-fns/isThursday/index.ts index 469e931..f6d968f 100644 --- a/src/date-fns/isThursday/index.ts +++ b/src/date-fns/isThursday/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isThursday} function options. + */ +export interface IsThursdayOptions extends ContextOptions {} /** * @name isThursday @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Is the given date Thursday? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is Thursday * @@ -19,6 +24,9 @@ import { toDate } from '../toDate/index'; * const result = isThursday(new Date(2014, 8, 25)) * //=> true */ -export function isThursday(date: DateType | number | string): boolean { - return toDate(date).getDay() === 4; +export function isThursday( + date: DateArg & {}, + options?: IsThursdayOptions | undefined, +): boolean { + return toDate(date, options?.in).getDay() === 4; } diff --git a/src/date-fns/isToday/index.ts b/src/date-fns/isToday/index.ts index 232bcda..7f8f2fd 100644 --- a/src/date-fns/isToday/index.ts +++ b/src/date-fns/isToday/index.ts @@ -1,5 +1,12 @@ -import { constructNow } from '../constructNow/index'; -import { isSameDay } from '../isSameDay/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { constructNow } from "../constructNow/index.ts"; +import { isSameDay } from "../isSameDay/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isToday} function options. + */ +export interface IsTodayOptions extends ContextOptions {} /** * @name isToday @@ -10,9 +17,8 @@ import { isSameDay } from '../isSameDay/index'; * @description * Is the given date today? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is today * @@ -21,6 +27,12 @@ import { isSameDay } from '../isSameDay/index'; * const result = isToday(new Date(2014, 9, 6, 14, 0)) * //=> true */ -export function isToday(date: DateType | number | string): boolean { - return isSameDay(date, constructNow(date)); +export function isToday( + date: DateArg & {}, + options?: IsTodayOptions | undefined, +): boolean { + return isSameDay( + constructFrom(options?.in || date, date), + constructNow(options?.in || date), + ); } diff --git a/src/date-fns/isTomorrow/index.ts b/src/date-fns/isTomorrow/index.ts index d429019..24ef7a9 100644 --- a/src/date-fns/isTomorrow/index.ts +++ b/src/date-fns/isTomorrow/index.ts @@ -1,6 +1,12 @@ -import { addDays } from '../addDays/index'; -import { constructNow } from '../constructNow/index'; -import { isSameDay } from '../isSameDay/index'; +import { addDays } from "../addDays/index.ts"; +import { constructNow } from "../constructNow/index.ts"; +import { isSameDay } from "../isSameDay/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isTomorrow} function options. + */ +export interface IsTomorrowOptions extends ContextOptions {} /** * @name isTomorrow @@ -11,9 +17,8 @@ import { isSameDay } from '../isSameDay/index'; * @description * Is the given date tomorrow? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is tomorrow * @@ -22,6 +27,13 @@ import { isSameDay } from '../isSameDay/index'; * const result = isTomorrow(new Date(2014, 9, 7, 14, 0)) * //=> true */ -export function isTomorrow(date: DateType | number | string): boolean { - return isSameDay(date, addDays(constructNow(date), 1)); +export function isTomorrow( + date: DateArg & {}, + options?: IsTomorrowOptions | undefined, +): boolean { + return isSameDay( + date, + addDays(constructNow(options?.in || date), 1), + options, + ); } diff --git a/src/date-fns/isTuesday/index.ts b/src/date-fns/isTuesday/index.ts index 01fbd3d..11d5f1c 100644 --- a/src/date-fns/isTuesday/index.ts +++ b/src/date-fns/isTuesday/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isTuesday} function options. + */ +export interface IsTuesdayOptions extends ContextOptions {} /** * @name isTuesday @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Is the given date Tuesday? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is Tuesday * @@ -19,6 +24,9 @@ import { toDate } from '../toDate/index'; * const result = isTuesday(new Date(2014, 8, 23)) * //=> true */ -export function isTuesday(date: DateType | number | string): boolean { - return toDate(date).getDay() === 2; +export function isTuesday( + date: DateArg & {}, + options?: IsTuesdayOptions | undefined, +): boolean { + return toDate(date, options?.in).getDay() === 2; } diff --git a/src/date-fns/isValid/index.ts b/src/date-fns/isValid/index.ts index d6d5fe3..b88f88d 100644 --- a/src/date-fns/isValid/index.ts +++ b/src/date-fns/isValid/index.ts @@ -1,5 +1,5 @@ -import { isDate } from '../isDate/index'; -import { toDate } from '../toDate/index'; +import { isDate } from "../isDate/index.ts"; +import { toDate } from "../toDate/index.ts"; /** * @name isValid @@ -13,8 +13,6 @@ import { toDate } from '../toDate/index'; * * Time value of Date: http://es5.github.io/#x15.9.1.1 * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check * * @returns The date is valid @@ -25,7 +23,7 @@ import { toDate } from '../toDate/index'; * //=> true * * @example - * // For the value, convertable into a date: + * // For the value, convertible into a date: * const result = isValid(1393804800000) * //=> true * @@ -35,9 +33,5 @@ import { toDate } from '../toDate/index'; * //=> false */ export function isValid(date: unknown): boolean { - if (!isDate(date) && typeof date !== 'number') { - return false; - } - const _date = toDate(date); - return !isNaN(Number(_date)); + return !((!isDate(date) && typeof date !== "number") || isNaN(+toDate(date))); } diff --git a/src/date-fns/isWednesday/index.ts b/src/date-fns/isWednesday/index.ts index 3e26dd5..6007ca6 100644 --- a/src/date-fns/isWednesday/index.ts +++ b/src/date-fns/isWednesday/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isWednesday} function options. + */ +export interface IsWednesdayOptions extends ContextOptions {} /** * @name isWednesday @@ -8,9 +14,8 @@ import { toDate } from '../toDate/index'; * @description * Is the given date Wednesday? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is Wednesday * @@ -19,6 +24,9 @@ import { toDate } from '../toDate/index'; * const result = isWednesday(new Date(2014, 8, 24)) * //=> true */ -export function isWednesday(date: DateType | number | string): boolean { - return toDate(date).getDay() === 3; +export function isWednesday( + date: DateArg & {}, + options?: IsWednesdayOptions | undefined, +): boolean { + return toDate(date, options?.in).getDay() === 3; } diff --git a/src/date-fns/isWeekend/index.ts b/src/date-fns/isWeekend/index.ts index d69825e..c638572 100644 --- a/src/date-fns/isWeekend/index.ts +++ b/src/date-fns/isWeekend/index.ts @@ -1,4 +1,10 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isWeekend} function options. + */ +export interface IsWeekendOptions extends ContextOptions {} /** * @name isWeekend @@ -6,11 +12,10 @@ import { toDate } from '../toDate/index'; * @summary Does the given date fall on a weekend? * * @description - * Does the given date fall on a weekend? - * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * Does the given date fall on a weekend? A weekend is either Saturday (`6`) or Sunday (`0`). * * @param date - The date to check + * @param options - An object with options * * @returns The date falls on a weekend * @@ -19,7 +24,10 @@ import { toDate } from '../toDate/index'; * const result = isWeekend(new Date(2014, 9, 5)) * //=> true */ -export function isWeekend(date: DateType | number | string): boolean { - const day = toDate(date).getDay(); +export function isWeekend( + date: DateArg & {}, + options?: IsWeekendOptions | undefined, +): boolean { + const day = toDate(date, options?.in).getDay(); return day === 0 || day === 6; } diff --git a/src/date-fns/isWithinInterval/index.ts b/src/date-fns/isWithinInterval/index.ts index fbcab94..55a41d6 100644 --- a/src/date-fns/isWithinInterval/index.ts +++ b/src/date-fns/isWithinInterval/index.ts @@ -1,5 +1,10 @@ -import { toDate } from '../toDate/index'; -import type { Interval } from '../types'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg, Interval } from "../types.ts"; + +/** + * The {@link isWithinInterval} function options. + */ +export interface IsWithinIntervalOptions extends ContextOptions {} /** * @name isWithinInterval @@ -9,10 +14,9 @@ import type { Interval } from '../types'; * @description * Is the given date within the interval? (Including start and end.) * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check * @param interval - The interval to check + * @param options - An object with options * * @returns The date is within the interval * @@ -22,7 +26,7 @@ import type { Interval } from '../types'; * start: new Date(2014, 0, 1), * end: new Date(2014, 0, 7) * }) - * //=> true + * // => true * * @example * // For the date outside of the interval: @@ -30,24 +34,28 @@ import type { Interval } from '../types'; * start: new Date(2014, 0, 1), * end: new Date(2014, 0, 7) * }) - * //=> false + * // => false * * @example - * // For date equal to interval start: + * // For date equal to the interval start: * isWithinInterval(date, { start, end: date }) * // => true * * @example - * // For date equal to interval end: + * // For date equal to the interval end: * isWithinInterval(date, { start: date, end }) * // => true */ -export function isWithinInterval( - date: DateType | number | string, - interval: Interval, +export function isWithinInterval( + date: DateArg & {}, + interval: Interval, + options?: IsWithinIntervalOptions | undefined, ): boolean { - const time = +toDate(date); - const [startTime, endTime] = [+toDate(interval.start), +toDate(interval.end)].sort((a, b) => a - b); + const time = +toDate(date, options?.in); + const [startTime, endTime] = [ + +toDate(interval.start, options?.in), + +toDate(interval.end, options?.in), + ].sort((a, b) => a - b); - return time >= startTime! && time <= endTime!; + return time >= startTime && time <= endTime; } diff --git a/src/date-fns/isYesterday/index.ts b/src/date-fns/isYesterday/index.ts index 8d38018..fa77f0b 100644 --- a/src/date-fns/isYesterday/index.ts +++ b/src/date-fns/isYesterday/index.ts @@ -1,6 +1,13 @@ -import { constructNow } from '../constructNow/index'; -import { isSameDay } from '../isSameDay/index'; -import { subDays } from '../subDays/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { constructNow } from "../constructNow/index.ts"; +import { isSameDay } from "../isSameDay/index.ts"; +import { subDays } from "../subDays/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link isYesterday} function options. + */ +export interface IsYesterdayOptions extends ContextOptions {} /** * @name isYesterday @@ -11,9 +18,8 @@ import { subDays } from '../subDays/index'; * @description * Is the given date yesterday? * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The date to check + * @param options - An object with options * * @returns The date is yesterday * @@ -22,6 +28,12 @@ import { subDays } from '../subDays/index'; * const result = isYesterday(new Date(2014, 9, 5, 14, 0)) * //=> true */ -export function isYesterday(date: DateType | number | string): boolean { - return isSameDay(date, subDays(constructNow(date), 1)); +export function isYesterday( + date: DateArg & {}, + options?: IsYesterdayOptions | undefined, +): boolean { + return isSameDay( + constructFrom(options?.in || date, date), + subDays(constructNow(options?.in || date), 1), + ); } diff --git a/src/date-fns/lastDayOfDecade/index.ts b/src/date-fns/lastDayOfDecade/index.ts index 97dd635..4367485 100644 --- a/src/date-fns/lastDayOfDecade/index.ts +++ b/src/date-fns/lastDayOfDecade/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link lastDayOfDecade} function options. + */ +export interface LastDayOfDecadeOptions + extends ContextOptions {} /** * @name lastDayOfDecade @@ -8,9 +15,11 @@ import { toDate } from '../toDate/index'; * @description * Return the last day of a decade for the given date. * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows using extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type; inferred from arguments or specified by context. * * @param date - The original date + * @param options - The options * * @returns The last day of a decade * @@ -19,14 +28,17 @@ import { toDate } from '../toDate/index'; * const result = lastDayOfDecade(new Date(2012, 11, 21, 21, 12, 00)) * //=> Wed Dec 31 2019 00:00:00 */ -export function lastDayOfDecade(date: DateType | number | string): DateType { - // TODO: Switch to more technical definition in of decades that start with 1 - // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking - // change, so it can only be done in 4.0. - const _date = toDate(date); +export function lastDayOfDecade< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: LastDayOfDecadeOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); const year = _date.getFullYear(); const decade = 9 + Math.floor(year / 10) * 10; _date.setFullYear(decade + 1, 0, 0); _date.setHours(0, 0, 0, 0); - return _date; + return toDate(_date, options?.in); } diff --git a/src/date-fns/lastDayOfISOWeek/index.ts b/src/date-fns/lastDayOfISOWeek/index.ts index 6519ff0..a517bdb 100644 --- a/src/date-fns/lastDayOfISOWeek/index.ts +++ b/src/date-fns/lastDayOfISOWeek/index.ts @@ -1,4 +1,11 @@ -import { lastDayOfWeek } from '../lastDayOfWeek/index'; +import { lastDayOfWeek } from "../lastDayOfWeek/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link lastDayOfISOWeek} function options. + */ +export interface LastDayOfISOWeekOptions + extends ContextOptions {} /** * @name lastDayOfISOWeek @@ -11,9 +18,11 @@ import { lastDayOfWeek } from '../lastDayOfWeek/index'; * * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam DateType - The Date type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [UTCDate](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The last day of an ISO week * @@ -22,6 +31,12 @@ import { lastDayOfWeek } from '../lastDayOfWeek/index'; * const result = lastDayOfISOWeek(new Date(2014, 8, 2, 11, 55, 0)) * //=> Sun Sep 07 2014 00:00:00 */ -export function lastDayOfISOWeek(date: DateType | number | string): DateType { - return lastDayOfWeek(date, { weekStartsOn: 1 }); +export function lastDayOfISOWeek< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: LastDayOfISOWeekOptions | undefined, +): ResultDate { + return lastDayOfWeek(date, { ...options, weekStartsOn: 1 }); } diff --git a/src/date-fns/lastDayOfISOWeekYear/index.ts b/src/date-fns/lastDayOfISOWeekYear/index.ts index b4691be..3085b56 100644 --- a/src/date-fns/lastDayOfISOWeekYear/index.ts +++ b/src/date-fns/lastDayOfISOWeekYear/index.ts @@ -1,6 +1,13 @@ -import { getISOWeekYear } from '../getISOWeekYear/index'; -import { startOfISOWeek } from '../startOfISOWeek/index'; -import { constructFrom } from '../constructFrom/index'; +import { constructFrom } from "../constructFrom/index.ts"; +import { getISOWeekYear } from "../getISOWeekYear/index.ts"; +import { startOfISOWeek } from "../startOfISOWeek/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link lastDayOfISOWeekYear} function options. + */ +export interface LastDayOfISOWeekYearOptions + extends ContextOptions {} /** * @name lastDayOfISOWeekYear @@ -15,8 +22,10 @@ import { constructFrom } from '../constructFrom/index'; * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The end of an ISO week-numbering year * @@ -25,12 +34,19 @@ import { constructFrom } from '../constructFrom/index'; * const result = lastDayOfISOWeekYear(new Date(2005, 6, 2)) * //=> Sun Jan 01 2006 00:00:00 */ -export function lastDayOfISOWeekYear(date: DateType | number | string): DateType { - const year = getISOWeekYear(date); - const fourthOfJanuary = constructFrom(date, 0); +export function lastDayOfISOWeekYear< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: LastDayOfISOWeekYearOptions | undefined, +): ResultDate { + const year = getISOWeekYear(date, options); + const fourthOfJanuary = constructFrom(options?.in || date, 0); fourthOfJanuary.setFullYear(year + 1, 0, 4); fourthOfJanuary.setHours(0, 0, 0, 0); - const _date = startOfISOWeek(fourthOfJanuary); - _date.setDate(_date.getDate() - 1); - return _date; + + const date_ = startOfISOWeek(fourthOfJanuary, options); + date_.setDate(date_.getDate() - 1); + return date_; } diff --git a/src/date-fns/lastDayOfMonth/index.ts b/src/date-fns/lastDayOfMonth/index.ts index 11df24e..b9a45fb 100644 --- a/src/date-fns/lastDayOfMonth/index.ts +++ b/src/date-fns/lastDayOfMonth/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link lastDayOfMonth} function options. + */ +export interface LastDayOfMonthOptions + extends ContextOptions {} /** * @name lastDayOfMonth @@ -10,8 +17,10 @@ import { toDate } from '../toDate/index'; * The result will be in the local timezone. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The last day of a month * @@ -20,10 +29,16 @@ import { toDate } from '../toDate/index'; * const result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0)) * //=> Tue Sep 30 2014 00:00:00 */ -export function lastDayOfMonth(date: DateType | number | string): DateType { - const _date = toDate(date); +export function lastDayOfMonth< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: LastDayOfMonthOptions | undefined, +): ResultDate { + const _date = toDate(date, options?.in); const month = _date.getMonth(); _date.setFullYear(_date.getFullYear(), month + 1, 0); _date.setHours(0, 0, 0, 0); - return _date; + return toDate(_date, options?.in) as ResultDate; } diff --git a/src/date-fns/lastDayOfQuarter/index.ts b/src/date-fns/lastDayOfQuarter/index.ts index 23b12e5..0d810f9 100644 --- a/src/date-fns/lastDayOfQuarter/index.ts +++ b/src/date-fns/lastDayOfQuarter/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link lastDayOfQuarter} function options. + */ +export interface LastDayOfQuarterOptions + extends ContextOptions {} /** * @name lastDayOfQuarter @@ -10,8 +17,10 @@ import { toDate } from '../toDate/index'; * The result will be in the local timezone. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - The options * * @returns The last day of a quarter * @@ -20,11 +29,17 @@ import { toDate } from '../toDate/index'; * const result = lastDayOfQuarter(new Date(2014, 8, 2, 11, 55, 0)) * //=> Tue Sep 30 2014 00:00:00 */ -export function lastDayOfQuarter(date: DateType | number | string): DateType { - const _date = toDate(date); - const currentMonth = _date.getMonth(); +export function lastDayOfQuarter< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: LastDayOfQuarterOptions | undefined, +): ResultDate { + const date_ = toDate(date, options?.in); + const currentMonth = date_.getMonth(); const month = currentMonth - (currentMonth % 3) + 3; - _date.setMonth(month, 0); - _date.setHours(0, 0, 0, 0); - return _date; + date_.setMonth(month, 0); + date_.setHours(0, 0, 0, 0); + return date_; } diff --git a/src/date-fns/lastDayOfWeek/index.ts b/src/date-fns/lastDayOfWeek/index.ts index f73a14c..89780f7 100644 --- a/src/date-fns/lastDayOfWeek/index.ts +++ b/src/date-fns/lastDayOfWeek/index.ts @@ -1,11 +1,19 @@ -import { toDate } from '../toDate/index'; -import type { LocalizedOptions, WeekOptions } from '../types'; -import { getDefaultOptions } from '../_lib/defaultOptions/index'; +import { getDefaultOptions } from "../_lib/defaultOptions/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { + ContextOptions, + DateArg, + LocalizedOptions, + WeekOptions, +} from "../types.ts"; /** * The {@link lastDayOfWeek} function options. */ -export interface LastDayOfWeekOptions extends LocalizedOptions<'options'>, WeekOptions {} +export interface LastDayOfWeekOptions + extends LocalizedOptions<"options">, + WeekOptions, + ContextOptions {} /** * @name lastDayOfWeek @@ -14,29 +22,23 @@ export interface LastDayOfWeekOptions extends LocalizedOptions<'options'>, WeekO * * @description * Return the last day of a week for the given date. - * The result will be in the local timezone. + * The result will be in the local timezone unless a context is specified. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date * @param options - An object with options * * @returns The last day of a week - * - * @example - * // The last day of a week for 2 September 2014 11:55:00: - * const result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0)) - * //=> Sat Sep 06 2014 00:00:00 - * - * @example - * // If the week starts on Monday, the last day of the week for 2 September 2014 11:55:00: - * const result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 }) - * //=> Sun Sep 07 2014 00:00:00 */ -export function lastDayOfWeek( - date: DateType | number | string, - options?: LastDayOfWeekOptions, -): DateType { +export function lastDayOfWeek< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: LastDayOfWeekOptions, +): ResultDate { const defaultOptions = getDefaultOptions(); const weekStartsOn = options?.weekStartsOn ?? @@ -45,11 +47,12 @@ export function lastDayOfWeek( defaultOptions.locale?.options?.weekStartsOn ?? 0; - const _date = toDate(date); + const _date = toDate(date, options?.in); const day = _date.getDay(); const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn); _date.setHours(0, 0, 0, 0); _date.setDate(_date.getDate() + diff); + return _date; } diff --git a/src/date-fns/lastDayOfYear/index.ts b/src/date-fns/lastDayOfYear/index.ts index 1b5f08d..c0ed275 100644 --- a/src/date-fns/lastDayOfYear/index.ts +++ b/src/date-fns/lastDayOfYear/index.ts @@ -1,4 +1,11 @@ -import { toDate } from '../toDate/index'; +import { toDate } from "../toDate/index.ts"; +import type { ContextOptions, DateArg } from "../types.ts"; + +/** + * The {@link lastDayOfYear} function options. + */ +export interface LastDayOfYearOptions + extends ContextOptions {} /** * @name lastDayOfYear @@ -10,8 +17,10 @@ import { toDate } from '../toDate/index'; * The result will be in the local timezone. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). + * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date + * @param options - An object with options * * @returns The last day of a year * @@ -20,10 +29,16 @@ import { toDate } from '../toDate/index'; * const result = lastDayOfYear(new Date(2014, 8, 2, 11, 55, 00)) * //=> Wed Dec 31 2014 00:00:00 */ -export function lastDayOfYear(date: DateType | number | string): DateType { - const _date = toDate(date); - const year = _date.getFullYear(); - _date.setFullYear(year + 1, 0, 0); - _date.setHours(0, 0, 0, 0); - return _date; +export function lastDayOfYear< + DateType extends Date, + ResultDate extends Date = DateType, +>( + date: DateArg, + options?: LastDayOfYearOptions, +): ResultDate { + const date_ = toDate(date, options?.in); + const year = date_.getFullYear(); + date_.setFullYear(year + 1, 0, 0); + date_.setHours(0, 0, 0, 0); + return date_; } diff --git a/src/date-fns/lightFormat/index.ts b/src/date-fns/lightFormat/index.ts index cf81e0a..812003a 100644 --- a/src/date-fns/lightFormat/index.ts +++ b/src/date-fns/lightFormat/index.ts @@ -1,6 +1,7 @@ -import { isValid } from '../isValid/index'; -import { toDate } from '../toDate/index'; -import { lightFormatters } from '../_lib/format/lightFormatters/index'; +import { lightFormatters } from "../_lib/format/lightFormatters/index.ts"; +import { isValid } from "../isValid/index.ts"; +import { toDate } from "../toDate/index.ts"; +import type { DateArg } from "../types.ts"; // Rexports of internal for libraries to use. // See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874 @@ -71,8 +72,6 @@ type Token = keyof typeof lightFormatters; * | | SSS | 000, 001, ..., 999 | * | | SSSS | ... | * - * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). - * * @param date - The original date * @param format - The string of tokens * @@ -85,17 +84,20 @@ type Token = keyof typeof lightFormatters; * const result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd') * //=> '2014-02-11' */ -export function lightFormat(date: DateType | number | string, formatStr: string): string { - const _date = toDate(date); - - if (!isValid(_date)) { - throw new RangeError('Invalid time value'); +export function lightFormat( + date: DateArg & {}, + formatStr: string, +): string { + const date_ = toDate(date); + + if (!isValid(date_)) { + throw new RangeError("Invalid time value"); } const tokens = formatStr.match(formattingTokensRegExp); // The only case when formattingTokensRegExp doesn't match the string is when it's empty - if (!tokens) return ''; + if (!tokens) return ""; const result = tokens .map((substring) => { @@ -111,26 +113,26 @@ export function lightFormat(date: DateType | number | str const formatter = lightFormatters[firstCharacter as Token]; if (formatter) { - return formatter(_date, substring); + return formatter(date_, substring); } - if (firstCharacter!.match(unescapedLatinCharacterRegExp)) { - throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`'); + if (firstCharacter.match(unescapedLatinCharacterRegExp)) { + throw new RangeError( + "Format string contains an unescaped latin alphabet character `" + + firstCharacter + + "`", + ); } return substring; }) - .join(''); + .join(""); return result; } function cleanEscapedString(input: string) { const matches = input.match(escapedStringRegExp); - - if (!matches) { - return input; - } - - return matches[1]!.replace(doubleQuoteRegExp, "'"); + if (!matches) return input; + return matches[1].replace(doubleQuoteRegExp, "'"); } diff --git a/src/date-fns/locale/_lib/buildFormatLongFn/index.ts b/src/date-fns/locale/_lib/buildFormatLongFn/index.ts index 673cd5e..b482684 100644 --- a/src/date-fns/locale/_lib/buildFormatLongFn/index.ts +++ b/src/date-fns/locale/_lib/buildFormatLongFn/index.ts @@ -1,6 +1,8 @@ -import type { FormatLongFn, FormatLongWidth } from '../../types'; +import type { FormatLongFn, FormatLongWidth } from "../../types.ts"; -export interface BuildFormatLongFnArgs { +export interface BuildFormatLongFnArgs< + DefaultMatchWidth extends FormatLongWidth, +> { formats: Partial<{ [format in FormatLongWidth]: string }> & { [format in DefaultMatchWidth]: string; }; @@ -12,7 +14,9 @@ export function buildFormatLongFn( ): FormatLongFn { return (options = {}) => { // TODO: Remove String() - const width = options.width ? (String(options.width) as FormatLongWidth) : args.defaultWidth; + const width = options.width + ? (String(options.width) as FormatLongWidth) + : args.defaultWidth; const format = args.formats[width] || args.formats[args.defaultWidth]; return format; }; diff --git a/src/date-fns/locale/_lib/buildLocalizeFn/index.ts b/src/date-fns/locale/_lib/buildLocalizeFn/index.ts index 3a47576..43d2880 100644 --- a/src/date-fns/locale/_lib/buildLocalizeFn/index.ts +++ b/src/date-fns/locale/_lib/buildLocalizeFn/index.ts @@ -1,7 +1,10 @@ -/* eslint-disable no-unused-vars */ - -import type { Day, Era, Month, Quarter } from '../../../types'; -import type { LocaleDayPeriod, LocaleUnitValue, LocaleWidth, LocalizeFn } from '../../types'; +import type { Day, Era, Month, Quarter } from "../../../types.ts"; +import type { + LocaleDayPeriod, + LocaleUnitValue, + LocaleWidth, + LocalizeFn, +} from "../../types.ts"; export type BuildLocalizeFnArgs< Value extends LocaleUnitValue, @@ -23,7 +26,9 @@ export type BuildLocalizeFnArgs< * * @returns The converted value */ -export type LocalizeFnArgCallback = (value: Value) => LocalizeUnitIndex; +export type LocalizeFnArgCallback = ( + value: Value, +) => LocalizeUnitIndex; /** * The map of localized values for each width. @@ -36,24 +41,24 @@ export type LocalizePeriodValuesMap = { * The index type of the locale unit value. It types conversion of units of * values that don't start at 0 (i.e. quarters). */ -export type LocalizeUnitIndex = Value extends LocaleUnitValue - ? keyof LocalizeValues - : number; +export type LocalizeUnitIndex = + Value extends LocaleUnitValue ? keyof LocalizeValues : number; /** * Converts the unit value to the tuple of values. */ -export type LocalizeValues = Value extends LocaleDayPeriod - ? Record - : Value extends Era - ? LocalizeEraValues - : Value extends Quarter - ? LocalizeQuarterValues - : Value extends Day - ? LocalizeDayValues - : Value extends Month - ? LocalizeMonthValues - : never; +export type LocalizeValues = + Value extends LocaleDayPeriod + ? Record + : Value extends Era + ? LocalizeEraValues + : Value extends Quarter + ? LocalizeQuarterValues + : Value extends Day + ? LocalizeDayValues + : Value extends Month + ? LocalizeMonthValues + : never; /** * The tuple of localized era values. The first element represents BC, @@ -69,7 +74,15 @@ export type LocalizeQuarterValues = readonly [string, string, string, string]; /** * The tuple of localized day values. The first element represents Sunday. */ -export type LocalizeDayValues = readonly [string, string, string, string, string, string, string]; +export type LocalizeDayValues = readonly [ + string, + string, + string, + string, + string, + string, + string, +]; /** * The tuple of localized month values. The first element represents January. @@ -94,19 +107,27 @@ export function buildLocalizeFn< ArgCallback extends LocalizeFnArgCallback | undefined, >(args: BuildLocalizeFnArgs): LocalizeFn { return (value, options) => { - const context = options?.context ? String(options.context) : 'standalone'; + const context = options?.context ? String(options.context) : "standalone"; let valuesArray: LocalizeValues; - if (context === 'formatting' && args.formattingValues) { + if (context === "formatting" && args.formattingValues) { const defaultWidth = args.defaultFormattingWidth || args.defaultWidth; - const width = (options?.width ? String(options.width) : defaultWidth) as LocaleWidth; - valuesArray = (args.formattingValues[width] || args.formattingValues[defaultWidth]) as LocalizeValues; + const width = ( + options?.width ? String(options.width) : defaultWidth + ) as LocaleWidth; + valuesArray = (args.formattingValues[width] || + args.formattingValues[defaultWidth]) as LocalizeValues; } else { const defaultWidth = args.defaultWidth; - const width = (options?.width ? String(options.width) : args.defaultWidth) as LocaleWidth; - valuesArray = (args.values[width] || args.values[defaultWidth]) as LocalizeValues; + const width = ( + options?.width ? String(options.width) : args.defaultWidth + ) as LocaleWidth; + valuesArray = (args.values[width] || + args.values[defaultWidth]) as LocalizeValues; } - const index = (args.argumentCallback ? args.argumentCallback(value as Value) : value) as LocalizeUnitIndex; + const index = ( + args.argumentCallback ? args.argumentCallback(value as Value) : value + ) as LocalizeUnitIndex; // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it! return valuesArray[index]; }; diff --git a/src/date-fns/locale/_lib/buildMatchFn/index.ts b/src/date-fns/locale/_lib/buildMatchFn/index.ts index 2fa5dd6..3ecc543 100644 --- a/src/date-fns/locale/_lib/buildMatchFn/index.ts +++ b/src/date-fns/locale/_lib/buildMatchFn/index.ts @@ -1,5 +1,11 @@ -import type { Quarter, Era, Day, Month } from '../../../types'; -import type { LocaleUnitValue, LocaleWidth, LocaleDayPeriod, MatchFn, MatchValueCallback } from '../../types'; +import type { Quarter, Era, Day, Month } from "../../../types.ts"; +import type { + LocaleUnitValue, + LocaleWidth, + LocaleDayPeriod, + MatchFn, + MatchValueCallback, +} from "../../types.ts"; export interface BuildMatchFnArgs< Result extends LocaleUnitValue, @@ -10,7 +16,10 @@ export interface BuildMatchFnArgs< defaultMatchWidth: DefaultMatchWidth; parsePatterns: BuildMatchFnParsePatterns; defaultParseWidth: DefaultParseWidth; - valueCallback?: MatchValueCallback; + valueCallback?: MatchValueCallback< + Result extends LocaleDayPeriod ? string : number, + Result + >; } export type BuildMatchFnMatchPatterns = { @@ -19,33 +28,54 @@ export type BuildMatchFnMatchPatterns = { [Width in DefaultWidth]: RegExp; }; -export type BuildMatchFnParsePatterns = { +export type BuildMatchFnParsePatterns< + Value extends LocaleUnitValue, + DefaultWidth extends LocaleWidth, +> = { [Width in LocaleWidth]?: ParsePattern; } & { [Width in DefaultWidth]: ParsePattern; }; -export type ParsePattern = Value extends LocaleDayPeriod - ? Record - : Value extends Quarter - ? readonly [RegExp, RegExp, RegExp, RegExp] - : Value extends Era - ? readonly [RegExp, RegExp] - : Value extends Day - ? readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp] - : Value extends Month - ? readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp] - : never; +export type ParsePattern = + Value extends LocaleDayPeriod + ? Record + : Value extends Quarter + ? readonly [RegExp, RegExp, RegExp, RegExp] + : Value extends Era + ? readonly [RegExp, RegExp] + : Value extends Day + ? readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp] + : Value extends Month + ? readonly [ + RegExp, + RegExp, + RegExp, + RegExp, + RegExp, + RegExp, + RegExp, + RegExp, + RegExp, + RegExp, + RegExp, + RegExp, + ] + : never; export function buildMatchFn< Value extends LocaleUnitValue, DefaultMatchWidth extends LocaleWidth, DefaultParseWidth extends LocaleWidth, ->(args: BuildMatchFnArgs): MatchFn { +>( + args: BuildMatchFnArgs, +): MatchFn { return (string, options = {}) => { const width = options.width; - const matchPattern = (width && args.matchPatterns[width]) || args.matchPatterns[args.defaultMatchWidth]; + const matchPattern = + (width && args.matchPatterns[width]) || + args.matchPatterns[args.defaultMatchWidth]; const matchResult = string.match(matchPattern); if (!matchResult) { @@ -53,12 +83,14 @@ export function buildMatchFn< } const matchedString = matchResult[0]; - const parsePatterns = (width && args.parsePatterns[width]) || args.parsePatterns[args.defaultParseWidth]; + const parsePatterns = + (width && args.parsePatterns[width]) || + args.parsePatterns[args.defaultParseWidth]; const key = ( Array.isArray(parsePatterns) ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString)) - : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type + : // [TODO] -- I challenge you to fix the type findKey(parsePatterns, (pattern: any) => pattern.test(matchedString)) ) as Value extends LocaleDayPeriod ? string : number; @@ -66,7 +98,7 @@ export function buildMatchFn< value = (args.valueCallback ? args.valueCallback(key) : key) as Value; value = options.valueCallback - ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type + ? // [TODO] -- I challenge you to fix the type options.valueCallback(value as any) : value; @@ -81,16 +113,22 @@ function findKey( predicate: (value: Value) => boolean, ): keyof Obj | undefined { for (const key in object) { - if (Object.prototype.hasOwnProperty.call(object, key) && predicate(object[key]!)) { + if ( + Object.prototype.hasOwnProperty.call(object, key) && + predicate(object[key]) + ) { return key; } } return undefined; } -function findIndex(array: Item[], predicate: (item: Item) => boolean): number | undefined { +function findIndex( + array: Item[], + predicate: (item: Item) => boolean, +): number | undefined { for (let key = 0; key < array.length; key++) { - if (predicate(array[key]!)) { + if (predicate(array[key])) { return key; } } diff --git a/src/date-fns/locale/_lib/buildMatchPatternFn/index.ts b/src/date-fns/locale/_lib/buildMatchPatternFn/index.ts index 9722692..7cb4351 100644 --- a/src/date-fns/locale/_lib/buildMatchPatternFn/index.ts +++ b/src/date-fns/locale/_lib/buildMatchPatternFn/index.ts @@ -1,4 +1,4 @@ -import type { MatchFn, MatchValueCallback } from '../../types'; +import type { MatchFn, MatchValueCallback } from "../../types.ts"; export interface BuildMatchPatternFnArgs { matchPattern: RegExp; @@ -6,7 +6,9 @@ export interface BuildMatchPatternFnArgs { valueCallback?: MatchValueCallback; } -export function buildMatchPatternFn(args: BuildMatchPatternFnArgs): MatchFn { +export function buildMatchPatternFn( + args: BuildMatchPatternFnArgs, +): MatchFn { return (string, options = {}) => { const matchResult = string.match(args.matchPattern); if (!matchResult) return null; @@ -14,8 +16,10 @@ export function buildMatchPatternFn(args: BuildMatchPatternFnArgs = { lessThanXSeconds: { - one: 'less than a second', - other: 'less than {{count}} seconds', + one: "less than a second", + other: "less than {{count}} seconds", }, xSeconds: { - one: '1 second', - other: '{{count}} seconds', + one: "1 second", + other: "{{count}} seconds", }, - halfAMinute: 'half a minute', + halfAMinute: "half a minute", lessThanXMinutes: { - one: 'less than a minute', - other: 'less than {{count}} minutes', + one: "less than a minute", + other: "less than {{count}} minutes", }, xMinutes: { - one: '1 minute', - other: '{{count}} minutes', + one: "1 minute", + other: "{{count}} minutes", }, aboutXHours: { - one: 'about 1 hour', - other: 'about {{count}} hours', + one: "about 1 hour", + other: "about {{count}} hours", }, xHours: { - one: '1 hour', - other: '{{count}} hours', + one: "1 hour", + other: "{{count}} hours", }, xDays: { - one: '1 day', - other: '{{count}} days', + one: "1 day", + other: "{{count}} days", }, aboutXWeeks: { - one: 'about 1 week', - other: 'about {{count}} weeks', + one: "about 1 week", + other: "about {{count}} weeks", }, xWeeks: { - one: '1 week', - other: '{{count}} weeks', + one: "1 week", + other: "{{count}} weeks", }, aboutXMonths: { - one: 'about 1 month', - other: 'about {{count}} months', + one: "about 1 month", + other: "about {{count}} months", }, xMonths: { - one: '1 month', - other: '{{count}} months', + one: "1 month", + other: "{{count}} months", }, aboutXYears: { - one: 'about 1 year', - other: 'about {{count}} years', + one: "about 1 year", + other: "about {{count}} years", }, xYears: { - one: '1 year', - other: '{{count}} years', + one: "1 year", + other: "{{count}} years", }, overXYears: { - one: 'over 1 year', - other: 'over {{count}} years', + one: "over 1 year", + other: "over {{count}} years", }, almostXYears: { - one: 'almost 1 year', - other: 'almost {{count}} years', + one: "almost 1 year", + other: "almost {{count}} years", }, }; @@ -90,19 +90,19 @@ export const formatDistance: FormatDistanceFn = (token, count, options) => { let result; const tokenValue = formatDistanceLocale[token]; - if (typeof tokenValue === 'string') { + if (typeof tokenValue === "string") { result = tokenValue; } else if (count === 1) { result = tokenValue.one; } else { - result = tokenValue.other.replace('{{count}}', count.toString()); + result = tokenValue.other.replace("{{count}}", count.toString()); } if (options?.addSuffix) { if (options.comparison && options.comparison > 0) { - return 'in ' + result; + return "in " + result; } else { - return result + ' ago'; + return result + " ago"; } } diff --git a/src/date-fns/locale/en-US/_lib/formatLong/index.ts b/src/date-fns/locale/en-US/_lib/formatLong/index.ts index b078ffe..26c5855 100644 --- a/src/date-fns/locale/en-US/_lib/formatLong/index.ts +++ b/src/date-fns/locale/en-US/_lib/formatLong/index.ts @@ -1,40 +1,40 @@ -import { buildFormatLongFn } from '../../../_lib/buildFormatLongFn/index'; -import type { FormatLong } from '../../../types'; +import { buildFormatLongFn } from "../../../_lib/buildFormatLongFn/index.ts"; +import type { FormatLong } from "../../../types.ts"; const dateFormats = { - full: 'EEEE, MMMM do, y', - long: 'MMMM do, y', - medium: 'MMM d, y', - short: 'MM/dd/yyyy', + full: "EEEE, MMMM do, y", + long: "MMMM do, y", + medium: "MMM d, y", + short: "MM/dd/yyyy", }; const timeFormats = { - full: 'h:mm:ss a zzzz', - long: 'h:mm:ss a z', - medium: 'h:mm:ss a', - short: 'h:mm a', + full: "h:mm:ss a zzzz", + long: "h:mm:ss a z", + medium: "h:mm:ss a", + short: "h:mm a", }; const dateTimeFormats = { full: "{{date}} 'at' {{time}}", long: "{{date}} 'at' {{time}}", - medium: '{{date}}, {{time}}', - short: '{{date}}, {{time}}', + medium: "{{date}}, {{time}}", + short: "{{date}}, {{time}}", }; export const formatLong: FormatLong = { date: buildFormatLongFn({ formats: dateFormats, - defaultWidth: 'full', + defaultWidth: "full", }), time: buildFormatLongFn({ formats: timeFormats, - defaultWidth: 'full', + defaultWidth: "full", }), dateTime: buildFormatLongFn({ formats: dateTimeFormats, - defaultWidth: 'full', + defaultWidth: "full", }), }; diff --git a/src/date-fns/locale/en-US/_lib/formatRelative/index.ts b/src/date-fns/locale/en-US/_lib/formatRelative/index.ts index 3276be2..d4dc0b5 100644 --- a/src/date-fns/locale/en-US/_lib/formatRelative/index.ts +++ b/src/date-fns/locale/en-US/_lib/formatRelative/index.ts @@ -1,4 +1,4 @@ -import type { FormatRelativeFn } from '../../../types'; +import type { FormatRelativeFn } from "../../../types.ts"; const formatRelativeLocale = { lastWeek: "'last' eeee 'at' p", @@ -6,7 +6,12 @@ const formatRelativeLocale = { today: "'today at' p", tomorrow: "'tomorrow at' p", nextWeek: "eeee 'at' p", - other: 'P', + other: "P", }; -export const formatRelative: FormatRelativeFn = (token, _date, _baseDate, _options) => formatRelativeLocale[token]; +export const formatRelative: FormatRelativeFn = ( + token, + _date, + _baseDate, + _options, +) => formatRelativeLocale[token]; diff --git a/src/date-fns/locale/en-US/_lib/localize/index.ts b/src/date-fns/locale/en-US/_lib/localize/index.ts index a2aa27c..d68460b 100644 --- a/src/date-fns/locale/en-US/_lib/localize/index.ts +++ b/src/date-fns/locale/en-US/_lib/localize/index.ts @@ -1,16 +1,16 @@ -import type { Localize, LocalizeFn } from '../../../types'; -import { buildLocalizeFn } from '../../../_lib/buildLocalizeFn/index'; +import type { Localize, LocalizeFn } from "../../../types.ts"; +import { buildLocalizeFn } from "../../../_lib/buildLocalizeFn/index.ts"; const eraValues = { - narrow: ['B', 'A'] as const, - abbreviated: ['BC', 'AD'] as const, - wide: ['Before Christ', 'Anno Domini'] as const, + narrow: ["B", "A"] as const, + abbreviated: ["BC", "AD"] as const, + wide: ["Before Christ", "Anno Domini"] as const, }; const quarterValues = { - narrow: ['1', '2', '3', '4'] as const, - abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'] as const, - wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] as const, + narrow: ["1", "2", "3", "4"] as const, + abbreviated: ["Q1", "Q2", "Q3", "Q4"] as const, + wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"] as const, }; // Note: in English, the names of days of the week and months are capitalized. @@ -18,94 +18,115 @@ const quarterValues = { // Generally, formatted dates should look like they are in the middle of a sentence, // e.g. in Spanish language the weekdays and months should be in the lowercase. const monthValues = { - narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'] as const, - abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] as const, + narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"] as const, + abbreviated: [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ] as const, wide: [ - 'January', - 'February', - 'March', - 'April', - 'May', - 'June', - 'July', - 'August', - 'September', - 'October', - 'November', - 'December', + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", ] as const, }; const dayValues = { - narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'] as const, - short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'] as const, - abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] as const, - wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] as const, + narrow: ["S", "M", "T", "W", "T", "F", "S"] as const, + short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"] as const, + abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] as const, + wide: [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + ] as const, }; const dayPeriodValues = { narrow: { - am: 'a', - pm: 'p', - midnight: 'mi', - noon: 'n', - morning: 'morning', - afternoon: 'afternoon', - evening: 'evening', - night: 'night', + am: "a", + pm: "p", + midnight: "mi", + noon: "n", + morning: "morning", + afternoon: "afternoon", + evening: "evening", + night: "night", }, abbreviated: { - am: 'AM', - pm: 'PM', - midnight: 'midnight', - noon: 'noon', - morning: 'morning', - afternoon: 'afternoon', - evening: 'evening', - night: 'night', + am: "AM", + pm: "PM", + midnight: "midnight", + noon: "noon", + morning: "morning", + afternoon: "afternoon", + evening: "evening", + night: "night", }, wide: { - am: 'a.m.', - pm: 'p.m.', - midnight: 'midnight', - noon: 'noon', - morning: 'morning', - afternoon: 'afternoon', - evening: 'evening', - night: 'night', + am: "a.m.", + pm: "p.m.", + midnight: "midnight", + noon: "noon", + morning: "morning", + afternoon: "afternoon", + evening: "evening", + night: "night", }, }; const formattingDayPeriodValues = { narrow: { - am: 'a', - pm: 'p', - midnight: 'mi', - noon: 'n', - morning: 'in the morning', - afternoon: 'in the afternoon', - evening: 'in the evening', - night: 'at night', + am: "a", + pm: "p", + midnight: "mi", + noon: "n", + morning: "in the morning", + afternoon: "in the afternoon", + evening: "in the evening", + night: "at night", }, abbreviated: { - am: 'AM', - pm: 'PM', - midnight: 'midnight', - noon: 'noon', - morning: 'in the morning', - afternoon: 'in the afternoon', - evening: 'in the evening', - night: 'at night', + am: "AM", + pm: "PM", + midnight: "midnight", + noon: "noon", + morning: "in the morning", + afternoon: "in the afternoon", + evening: "in the evening", + night: "at night", }, wide: { - am: 'a.m.', - pm: 'p.m.', - midnight: 'midnight', - noon: 'noon', - morning: 'in the morning', - afternoon: 'in the afternoon', - evening: 'in the evening', - night: 'at night', + am: "a.m.", + pm: "p.m.", + midnight: "midnight", + noon: "noon", + morning: "in the morning", + afternoon: "in the afternoon", + evening: "in the evening", + night: "at night", }, }; @@ -123,14 +144,14 @@ const ordinalNumber: LocalizeFn = (dirtyNumber, _options) => { if (rem100 > 20 || rem100 < 10) { switch (rem100 % 10) { case 1: - return number + 'st'; + return number + "st"; case 2: - return number + 'nd'; + return number + "nd"; case 3: - return number + 'rd'; + return number + "rd"; } } - return number + 'th'; + return number + "th"; }; export const localize: Localize = { @@ -138,29 +159,29 @@ export const localize: Localize = { era: buildLocalizeFn({ values: eraValues, - defaultWidth: 'wide', + defaultWidth: "wide", }), quarter: buildLocalizeFn({ values: quarterValues, - defaultWidth: 'wide', + defaultWidth: "wide", argumentCallback: (quarter) => quarter - 1, }), month: buildLocalizeFn({ values: monthValues, - defaultWidth: 'wide', + defaultWidth: "wide", }), day: buildLocalizeFn({ values: dayValues, - defaultWidth: 'wide', + defaultWidth: "wide", }), dayPeriod: buildLocalizeFn({ values: dayPeriodValues, - defaultWidth: 'wide', + defaultWidth: "wide", formattingValues: formattingDayPeriodValues, - defaultFormattingWidth: 'wide', + defaultFormattingWidth: "wide", }), }; diff --git a/src/date-fns/locale/en-US/_lib/match/index.ts b/src/date-fns/locale/en-US/_lib/match/index.ts index 4449806..a5ddaa6 100644 --- a/src/date-fns/locale/en-US/_lib/match/index.ts +++ b/src/date-fns/locale/en-US/_lib/match/index.ts @@ -1,7 +1,7 @@ -import type { Quarter } from '../../../../types'; -import type { Match } from '../../../types'; -import { buildMatchFn } from '../../../_lib/buildMatchFn/index'; -import { buildMatchPatternFn } from '../../../_lib/buildMatchPatternFn/index'; +import type { Quarter } from "../../../../types.ts"; +import type { Match } from "../../../types.ts"; +import { buildMatchFn } from "../../../_lib/buildMatchFn/index.ts"; +import { buildMatchPatternFn } from "../../../_lib/buildMatchPatternFn/index.ts"; const matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i; const parseOrdinalNumberPattern = /\d+/i; @@ -30,8 +30,34 @@ const matchMonthPatterns = { wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i, }; const parseMonthPatterns = { - narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i] as const, - any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i] as const, + narrow: [ + /^j/i, + /^f/i, + /^m/i, + /^a/i, + /^m/i, + /^j/i, + /^j/i, + /^a/i, + /^s/i, + /^o/i, + /^n/i, + /^d/i, + ] as const, + any: [ + /^ja/i, + /^f/i, + /^mar/i, + /^ap/i, + /^may/i, + /^jun/i, + /^jul/i, + /^au/i, + /^s/i, + /^o/i, + /^n/i, + /^d/i, + ] as const, }; const matchDayPatterns = { @@ -71,37 +97,37 @@ export const match: Match = { era: buildMatchFn({ matchPatterns: matchEraPatterns, - defaultMatchWidth: 'wide', + defaultMatchWidth: "wide", parsePatterns: parseEraPatterns, - defaultParseWidth: 'any', + defaultParseWidth: "any", }), quarter: buildMatchFn({ matchPatterns: matchQuarterPatterns, - defaultMatchWidth: 'wide', + defaultMatchWidth: "wide", parsePatterns: parseQuarterPatterns, - defaultParseWidth: 'any', + defaultParseWidth: "any", valueCallback: (index) => (index + 1) as Quarter, }), month: buildMatchFn({ matchPatterns: matchMonthPatterns, - defaultMatchWidth: 'wide', + defaultMatchWidth: "wide", parsePatterns: parseMonthPatterns, - defaultParseWidth: 'any', + defaultParseWidth: "any", }), day: buildMatchFn({ matchPatterns: matchDayPatterns, - defaultMatchWidth: 'wide', + defaultMatchWidth: "wide", parsePatterns: parseDayPatterns, - defaultParseWidth: 'any', + defaultParseWidth: "any", }), dayPeriod: buildMatchFn({ matchPatterns: matchDayPeriodPatterns, - defaultMatchWidth: 'any', + defaultMatchWidth: "any", parsePatterns: parseDayPeriodPatterns, - defaultParseWidth: 'any', + defaultParseWidth: "any", }), }; diff --git a/src/date-fns/locale/en-US/index.ts b/src/date-fns/locale/en-US/index.ts index 9b1b5ea..a41a8e5 100644 --- a/src/date-fns/locale/en-US/index.ts +++ b/src/date-fns/locale/en-US/index.ts @@ -1,9 +1,9 @@ -import { formatDistance } from './_lib/formatDistance/index'; -import { formatLong } from './_lib/formatLong/index'; -import { formatRelative } from './_lib/formatRelative/index'; -import { localize } from './_lib/localize/index'; -import { match } from './_lib/match/index'; -import type { Locale } from '../types'; +import { formatDistance } from "./_lib/formatDistance/index.ts"; +import { formatLong } from "./_lib/formatLong/index.ts"; +import { formatRelative } from "./_lib/formatRelative/index.ts"; +import { localize } from "./_lib/localize/index.ts"; +import { match } from "./_lib/match/index.ts"; +import type { Locale } from "../types.ts"; /** * @category Locales @@ -14,7 +14,7 @@ import type { Locale } from '../types'; * @author Lesha Koss [@leshakoss](https://github.com/leshakoss) */ export const enUS: Locale = { - code: 'en-US', + code: "en-US", formatDistance: formatDistance, formatLong: formatLong, formatRelative: formatRelative, diff --git a/src/date-fns/locale/index.ts b/src/date-fns/locale/index.ts index 3b7f9ee..b2cac57 100644 --- a/src/date-fns/locale/index.ts +++ b/src/date-fns/locale/index.ts @@ -1,4 +1,98 @@ // This file is generated automatically by `scripts/build/indices.ts`. Please, don't change it. -export * from './en-US/index'; -export type * from './types'; +export * from "./af/index.ts"; +export * from "./ar/index.ts"; +export * from "./ar-DZ/index.ts"; +export * from "./ar-EG/index.ts"; +export * from "./ar-MA/index.ts"; +export * from "./ar-SA/index.ts"; +export * from "./ar-TN/index.ts"; +export * from "./az/index.ts"; +export * from "./be/index.ts"; +export * from "./be-tarask/index.ts"; +export * from "./bg/index.ts"; +export * from "./bn/index.ts"; +export * from "./bs/index.ts"; +export * from "./ca/index.ts"; +export * from "./ckb/index.ts"; +export * from "./cs/index.ts"; +export * from "./cy/index.ts"; +export * from "./da/index.ts"; +export * from "./de/index.ts"; +export * from "./de-AT/index.ts"; +export * from "./el/index.ts"; +export * from "./en-AU/index.ts"; +export * from "./en-CA/index.ts"; +export * from "./en-GB/index.ts"; +export * from "./en-IE/index.ts"; +export * from "./en-IN/index.ts"; +export * from "./en-NZ/index.ts"; +export * from "./en-US/index.ts"; +export * from "./en-ZA/index.ts"; +export * from "./eo/index.ts"; +export * from "./es/index.ts"; +export * from "./et/index.ts"; +export * from "./eu/index.ts"; +export * from "./fa-IR/index.ts"; +export * from "./fi/index.ts"; +export * from "./fr/index.ts"; +export * from "./fr-CA/index.ts"; +export * from "./fr-CH/index.ts"; +export * from "./fy/index.ts"; +export * from "./gd/index.ts"; +export * from "./gl/index.ts"; +export * from "./gu/index.ts"; +export * from "./he/index.ts"; +export * from "./hi/index.ts"; +export * from "./hr/index.ts"; +export * from "./ht/index.ts"; +export * from "./hu/index.ts"; +export * from "./hy/index.ts"; +export * from "./id/index.ts"; +export * from "./is/index.ts"; +export * from "./it/index.ts"; +export * from "./it-CH/index.ts"; +export * from "./ja/index.ts"; +export * from "./ja-Hira/index.ts"; +export * from "./ka/index.ts"; +export * from "./kk/index.ts"; +export * from "./km/index.ts"; +export * from "./kn/index.ts"; +export * from "./ko/index.ts"; +export * from "./lb/index.ts"; +export * from "./lt/index.ts"; +export * from "./lv/index.ts"; +export * from "./mk/index.ts"; +export * from "./mn/index.ts"; +export * from "./ms/index.ts"; +export * from "./mt/index.ts"; +export * from "./nb/index.ts"; +export * from "./nl/index.ts"; +export * from "./nl-BE/index.ts"; +export * from "./nn/index.ts"; +export * from "./oc/index.ts"; +export * from "./pl/index.ts"; +export * from "./pt/index.ts"; +export * from "./pt-BR/index.ts"; +export * from "./ro/index.ts"; +export * from "./ru/index.ts"; +export * from "./se/index.ts"; +export * from "./sk/index.ts"; +export * from "./sl/index.ts"; +export * from "./sq/index.ts"; +export * from "./sr/index.ts"; +export * from "./sr-Latn/index.ts"; +export * from "./sv/index.ts"; +export * from "./ta/index.ts"; +export * from "./te/index.ts"; +export * from "./th/index.ts"; +export * from "./tr/index.ts"; +export * from "./ug/index.ts"; +export * from "./uk/index.ts"; +export * from "./uz/index.ts"; +export * from "./uz-Cyrl/index.ts"; +export * from "./vi/index.ts"; +export * from "./zh-CN/index.ts"; +export * from "./zh-HK/index.ts"; +export * from "./zh-TW/index.ts"; +export type * from "./types.ts"; diff --git a/src/date-fns/locale/types.ts b/src/date-fns/locale/types.ts index 294cd00..a5e1716 100644 --- a/src/date-fns/locale/types.ts +++ b/src/date-fns/locale/types.ts @@ -1,6 +1,13 @@ -/* eslint-disable no-unused-vars */ - -import type { Day, Era, FirstWeekContainsDateOptions, LocalizedOptions, Month, Quarter, WeekOptions } from '../types'; +import type { + DateArg, + Day, + Era, + FirstWeekContainsDateOptions, + LocalizedOptions, + Month, + Quarter, + WeekOptions, +} from "../types.ts"; /** * The locale object with all functions and data needed to parse and format @@ -26,7 +33,9 @@ export interface Locale { /** * The locale options. */ -export interface LocaleOptions extends WeekOptions, FirstWeekContainsDateOptions {} +export interface LocaleOptions + extends WeekOptions, + FirstWeekContainsDateOptions {} /// Format distance types @@ -40,7 +49,11 @@ export interface LocaleOptions extends WeekOptions, FirstWeekContainsDateOptions * * @returns The localized distance in words */ -export type FormatDistanceFn = (token: FormatDistanceToken, count: number, options?: FormatDistanceFnOptions) => string; +export type FormatDistanceFn = ( + token: FormatDistanceToken, + count: number, + options?: FormatDistanceFnOptions, +) => string; /** * The {@link FormatDistanceFn} function options. @@ -85,22 +98,22 @@ export type FormatDistanceLocale