diff --git a/CHANGELOG.md b/CHANGELOG.md index 282cccb..e1fd294 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,17 +1,17 @@ - - - ## 0.4.0 (2024-10-27) #### :rocket: New Feature -* [#61](https://github.com/WasiqB/ultra-reporter-app/pull/61) feat: :sparkles: updated landing page ([@WasiqB](https://github.com/WasiqB)) -* [#60](https://github.com/WasiqB/ultra-reporter-app/pull/60) feat: :sparkles: added config method filter toggle ([@WasiqB](https://github.com/WasiqB)) -* [#57](https://github.com/WasiqB/ultra-reporter-app/pull/57) feat: :sparkles: added test execution trend chart ([@WasiqB](https://github.com/WasiqB)) + +- [#61](https://github.com/WasiqB/ultra-reporter-app/pull/61) feat: :sparkles: updated landing page ([@WasiqB](https://github.com/WasiqB)) +- [#60](https://github.com/WasiqB/ultra-reporter-app/pull/60) feat: :sparkles: added config method filter toggle ([@WasiqB](https://github.com/WasiqB)) +- [#57](https://github.com/WasiqB/ultra-reporter-app/pull/57) feat: :sparkles: added test execution trend chart ([@WasiqB](https://github.com/WasiqB)) #### :bug: Bug Fix -* [#62](https://github.com/WasiqB/ultra-reporter-app/pull/62) fix: :bug: added support for multiple attachments for single test ([@WasiqB](https://github.com/WasiqB)) + +- [#62](https://github.com/WasiqB/ultra-reporter-app/pull/62) fix: :bug: added support for multiple attachments for single test ([@WasiqB](https://github.com/WasiqB)) #### Committers: 1 + - Wasiq Bhamla ([@WasiqB](https://github.com/WasiqB)) ## 0.3.0 (2024-10-15) diff --git a/apps/web/app/(app)/not-found.tsx b/apps/web/app/(app)/not-found.tsx new file mode 100644 index 0000000..1247c9b --- /dev/null +++ b/apps/web/app/(app)/not-found.tsx @@ -0,0 +1,23 @@ +import { Button } from '@ultra-reporter/ui/components/button'; +import Link from 'next/link'; + +const NotFound = (): JSX.Element => { + return ( +
+

+ 404 +

+

+ Page Not Found +

+

+ The page you're looking for doesn't exist or has been moved. +

+ +
+ ); +}; + +export default NotFound; diff --git a/apps/web/app/(app)/results/[suite_id]/page.tsx b/apps/web/app/(app)/results/[suite_id]/page.tsx new file mode 100644 index 0000000..e69de29 diff --git a/apps/web/app/(app)/results/page.tsx b/apps/web/app/(app)/results/page.tsx index aa6b614..90b3abd 100644 --- a/apps/web/app/(app)/results/page.tsx +++ b/apps/web/app/(app)/results/page.tsx @@ -6,6 +6,7 @@ import { VisibilityState, } from '@tanstack/react-table'; import { AreaChartComponent } from '@ultra-reporter/ui/charts/area-chart'; +import { barConfig, chartConfig } from '@ultra-reporter/ui/charts/chart-props'; import { DoughNutComponent } from '@ultra-reporter/ui/charts/dough-nut-chart'; import { PieComponent } from '@ultra-reporter/ui/charts/pie-chart'; import { @@ -15,63 +16,50 @@ import { CardHeader, CardTitle, } from '@ultra-reporter/ui/components/card'; -import { ChartConfig } from '@ultra-reporter/ui/components/chart'; import { Skeleton } from '@ultra-reporter/ui/components/skeleton'; -import { getFormattedData, TestResultData } from '@ultra-reporter/ui/data'; +import { getFormattedData } from '@ultra-reporter/ui/data'; import { DataTable } from '@ultra-reporter/ui/data-table/data-table'; -import { columns } from '@ultra-reporter/ui/data-table/table/columns'; +import { suiteColumns } from '@ultra-reporter/ui/data-table/table/suite-columns'; import { NavBar } from '@ultra-reporter/ui/home/nav-bar'; +import { BreadcrumbNav } from '@ultra-reporter/ui/results/breadcrumb-nav'; import { cn } from '@ultra-reporter/utils/cn'; -import { FormattedData } from '@ultra-reporter/utils/types'; +import { + FormattedData, + ProcessedData, + TestClassResultData, + TestMethodResultData, + TestResultData, + TestSuiteResultData, +} from '@ultra-reporter/utils/types'; import { useEffect, useState } from 'react'; -const chartConfig: ChartConfig = { - total: { - label: 'Test Cases', - }, - pass: { - label: 'Passes', - color: 'hsl(var(--passed))', - }, - fail: { - label: 'Failed', - color: 'hsl(var(--failed))', - }, - skip: { - label: 'Skipped', - color: 'hsl(var(--skipped))', - }, - ignored: { - label: 'Ignored', - color: 'hsl(var(--ignored))', - }, -}; - -const barConfig: ChartConfig = { - property: { - label: 'Method', - color: 'hsl(var(--failed))', - }, -}; - const ResultsPage = (): JSX.Element => { const [sorting, setSorting] = useState([]); const [columnFilters, setColumnFilters] = useState([]); const [columnVisibility, setColumnVisibility] = useState({}); - const [result, setResult] = useState([]); + const [suites, setSuites] = useState([]); + const [tests, setTests] = useState([]); + const [classes, setClasses] = useState([]); + const [methods, setMethods] = useState([]); const [formattedData, setFormattedData] = useState(); const [isLoading, setIsLoading] = useState(true); useEffect(() => { const resultData = localStorage.getItem('json-data') as string; if (resultData) { - const testResult: TestResultData[] = JSON.parse(resultData); - setResult(testResult); - setFormattedData(getFormattedData(testResult)); + const { suites, tests, classes, methods }: ProcessedData = + JSON.parse(resultData); + setSuites(suites); + setTests(tests); + setClasses(classes); + setMethods(methods); + setFormattedData(getFormattedData(suites)); } setIsLoading(false); }, []); + const breadcrumbItems = [{ label: 'All Suites', href: '/results' }]; + const { passed, failed, @@ -90,7 +78,8 @@ const ResultsPage = (): JSX.Element => { cta='Generate new Report' showFeedback /> -
+
+
@@ -183,22 +172,24 @@ const ResultsPage = (): JSX.Element => { )} -
- {isLoading ? ( - <> - - - ) : ( - <> - - - )} -
+ {areaChartData && areaChartData.length > 0 && ( +
+ {isLoading ? ( + <> + + + ) : ( + <> + + + )} +
+ )} Test Details @@ -209,11 +200,11 @@ const ResultsPage = (): JSX.Element => { {isLoading ? ( - ) : result ? ( + ) : suites ? ( { table: Table; diff --git a/packages/ui/src/data-table/table/data.ts b/packages/ui/src/data-table/data/data.ts similarity index 51% rename from packages/ui/src/data-table/table/data.ts rename to packages/ui/src/data-table/data/data.ts index f6dc60b..4457c9e 100644 --- a/packages/ui/src/data-table/table/data.ts +++ b/packages/ui/src/data-table/data/data.ts @@ -9,37 +9,54 @@ import { AreaChartData, ChartData, FormattedData, - TestException, - TestLog, + ProcessedData, + TestClassResultData, + TestMethodResultData, TestResult, + TestResultData, + TestSuiteResultData, } from '@ultra-reporter/utils/types'; -import { AlertTriangle, Check, X } from 'lucide-react'; - -export type TestResultData = { - run_date: string; - suite_name: string; - test_name: string; - class_name: string; - method_name: string; - is_config: boolean; - tags: string[]; - parameters: string[]; - status: string; - exception?: TestException; - attachment?: TestLog; - started_at: string; - finished_at: string; - duration_ms: string; -}; -export const getData = (data: TestResult): TestResultData[] => { - const result: TestResultData[] = []; +export const getData = (data: TestResult): ProcessedData => { + const suiteResults: TestSuiteResultData[] = []; + const testResults: TestResultData[] = []; + const classResults: TestClassResultData[] = []; + const methodResults: TestMethodResultData[] = []; const suites = data.test_suites; + for (const suite of suites) { + suiteResults.push({ + suite_name: suite.name, + status: suite.failed === 0 ? 'pass' : 'fail', + duration_ms: formatDuration(suite.duration_ms), + started_at: formatDateTime(suite.started_at).time, + finished_at: formatDateTime(suite.finished_at).time, + run_date: formatDateTime(suite.started_at).date, + }); + for (const test of suite.test_cases) { + testResults.push({ + suite_name: suite.name, + test_name: test.name, + status: test.failed === 0 ? 'pass' : 'fail', + duration_ms: formatDuration(test.duration_ms), + started_at: formatDateTime(test.started_at).time, + finished_at: formatDateTime(test.finished_at).time, + run_date: formatDateTime(test.started_at).date, + }); + for (const cls of test.test_classes) { + let start_at: string = ''; + let finish_at: string = ''; + let duration: number = 0; + for (const method of cls.test_methods) { - result.push({ + if (start_at !== '') { + start_at = formatDateTime(method.started_at).time; + } + finish_at = formatDateTime(method.finished_at).time; + + methodResults.push({ run_date: formatDateTime(method.started_at).date, suite_name: suite.name, test_name: test.name, @@ -56,37 +73,35 @@ export const getData = (data: TestResult): TestResultData[] => { duration_ms: formatDuration(method.duration_ms), }); } + + classResults.push({ + suite_name: suite.name, + test_name: test.name, + class_name: cls.name, + status: cls.failed === 0 ? 'pass' : 'fail', + duration_ms: formatDuration(duration), + started_at: start_at, + finished_at: finish_at, + run_date: formatDateTime(test.started_at).date, + }); } } } - return result; + return { + suites: suiteResults, + tests: testResults, + classes: classResults, + methods: methodResults, + }; }; -export const statuses = [ - { - value: 'pass', - label: 'Passed', - icon: Check, - badge_style: 'bg-green-100 hover:bg-green-300 text-green-800', - label_style: 'text-green-500', - }, - { - value: 'fail', - label: 'Failed', - icon: X, - badge_style: 'bg-red-100 hover:bg-red-300 text-red-800', - label_style: 'text-red-500', - }, - { - value: 'skip', - label: 'Skipped', - icon: AlertTriangle, - badge_style: 'bg-yellow-100 hover:bg-yellow-300 text-yellow-800', - label_style: 'text-yellow-500', - }, -]; - -export const getFormattedData = (data: TestResultData[]): FormattedData => { +export const getFormattedData = ( + data: + | TestSuiteResultData[] + | TestResultData[] + | TestClassResultData[] + | TestMethodResultData[] +): FormattedData => { const statusCounts = { pass: 0, fail: 0, @@ -130,12 +145,17 @@ export const getFormattedData = (data: TestResultData[]): FormattedData => { }, ]; - const areaChartData: AreaChartData[] = data.map((r) => { - return { - property: `${r.class_name} / ${r.method_name}`, - value: toDuration(r.duration_ms), - }; - }); + const areaChartData: AreaChartData[] = []; + if (data[0] && 'method_name' in data[0] && 'class_name' in data[0]) { + areaChartData.push( + ...(data as TestMethodResultData[]).map((r) => { + return { + property: `${r.class_name} / ${r.method_name}`, + value: toDuration(r.duration_ms), + }; + }) + ); + } const date = data && data.length > 0 diff --git a/packages/ui/src/data-table/table/columns.tsx b/packages/ui/src/data-table/table/columns.tsx index 4579860..975b2e4 100644 --- a/packages/ui/src/data-table/table/columns.tsx +++ b/packages/ui/src/data-table/table/columns.tsx @@ -1,7 +1,11 @@ +import { StatusCell } from '@/results/cells/status'; import { GearIcon } from '@radix-ui/react-icons'; import { ColumnDef } from '@tanstack/react-table'; -import { cn } from '@ultra-reporter/utils/cn'; -import { TestException, TestLog } from '@ultra-reporter/utils/types'; +import { + TestException, + TestLog, + TestMethodResultData, +} from '@ultra-reporter/utils/types'; import { CircleAlert, Link, @@ -12,7 +16,6 @@ import { TestTubes, } from 'lucide-react'; import { useState } from 'react'; -import { Badge } from '../../components/badge'; import { Button } from '../../components/button'; import { Card, @@ -32,9 +35,8 @@ import { import { TooltipWrapper } from '../../utils/tooltip-wrapper'; import { CellData, SortableHeader } from '../cell-text-data'; import { AttachmentDialog } from './attachment'; -import { statuses, TestResultData } from './data'; -export const columns: ColumnDef[] = [ +export const columns: ColumnDef[] = [ { accessorKey: 'suite_name', header: 'Suite Name', @@ -74,30 +76,7 @@ export const columns: ColumnDef[] = [ header: ({ column }) => , cell: ({ row }) => { const status = row.getValue('status') as string; - const foundStatus = statuses.find((s) => s.value === status); - if (!foundStatus) { - return null; - } - return ( -
- - - {foundStatus.label} - -
- ); + return ; }, filterFn: (row, id, value) => { return value.includes(row.getValue(id)); diff --git a/packages/ui/src/data-table/table/suite-columns.tsx b/packages/ui/src/data-table/table/suite-columns.tsx new file mode 100644 index 0000000..7f794c4 --- /dev/null +++ b/packages/ui/src/data-table/table/suite-columns.tsx @@ -0,0 +1,72 @@ +import { StatusCell } from '@/results/cells/status'; +import { ColumnDef } from '@tanstack/react-table'; +import { TestSuiteResultData } from '@ultra-reporter/utils/types'; +import { useRouter } from 'next/navigation'; +import { Button } from '../../components/button'; +import { CellData, SortableHeader } from '../cell-text-data'; + +export const suiteColumns: ColumnDef[] = [ + { + accessorKey: 'suite_name', + header: ({ column }) => ( + + ), + cell: ({ row }) => { + const router = useRouter(); + const value = row.getValue('suite_name') as string; + return ( + + ); + }, + }, + { + accessorKey: 'status', + header: ({ column }) => , + cell: ({ row }) => { + const status = row.getValue('status') as string; + return ; + }, + filterFn: (row, id, value) => { + return value.includes(row.getValue(id)); + }, + }, + { + accessorKey: 'duration_ms', + header: ({ column }) => ( + + ), + cell: ({ row }) => { + const duration: string = row.getValue('duration_ms'); + return ; + }, + }, + { + accessorKey: 'started_at', + header: ({ column }) => ( + + ), + cell: ({ row }) => { + const dateTime: string = row.getValue('started_at'); + return ; + }, + }, + { + accessorKey: 'finished_at', + header: ({ column }) => ( + + ), + cell: ({ row }) => { + const dateTime: string = row.getValue('finished_at'); + return ; + }, + }, +]; diff --git a/packages/ui/src/data-table/table/test-columns.tsx b/packages/ui/src/data-table/table/test-columns.tsx new file mode 100644 index 0000000..d693566 --- /dev/null +++ b/packages/ui/src/data-table/table/test-columns.tsx @@ -0,0 +1,31 @@ +import { ColumnDef } from '@tanstack/react-table'; +import { TestResultData } from '@ultra-reporter/utils/types'; +import { useRouter } from 'next/navigation'; +import { Button } from '../../components/button'; +import { SortableHeader } from '../cell-text-data'; + +export const testColumns: ColumnDef[] = [ + { + accessorKey: 'test_name', + header: ({ column }) => ( + + ), + cell: ({ row }) => { + const router = useRouter(); + const value = row.getValue('test_name') as string; + return ( + + ); + }, + }, + // Add other relevant columns for test level data +]; diff --git a/packages/ui/src/global.css b/packages/ui/src/global.css index d42bcd3..fe38401 100644 --- a/packages/ui/src/global.css +++ b/packages/ui/src/global.css @@ -13,23 +13,23 @@ --background: 0 0% 100%; --foreground: 222.2 84% 4.9%; --card: 0 0% 100%; - --card-foreground: 240 10% 3.9%; + --card-foreground: 222.2 84% 4.9%; --popover: 0 0% 100%; - --popover-foreground: 240 10% 3.9%; - --primary: 240 5.9% 10%; - --primary-foreground: 0 0% 98%; - --secondary: 240 4.8% 95.9%; - --secondary-foreground: 240 5.9% 10%; - --muted: 240 4.8% 95.9%; - --muted-foreground: 240 3.8% 46.1%; - --accent: 240 4.8% 95.9%; - --accent-foreground: 240 5.9% 10%; - --destructive: 0 72.22% 50.59%; - --destructive-foreground: 0 0% 98%; - --border: 240 5.9% 90%; - --input: 240 5.9% 90%; - --ring: 240 5% 64.9%; - + --popover-foreground: 222.2 84% 4.9%; + --primary: 221.2 83.2% 53.3%; + --primary-foreground: 210 40% 98%; + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 210 40% 98%; + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + --ring: 221.2 83.2% 53.3%; + --radius: 1rem; --chart-1: 12 76% 61%; --chart-2: 173 58% 39%; --chart-3: 197 37% 24%; @@ -39,36 +39,33 @@ --passed: 141.7 76.6% 73.1%; --failed: 0 84.2% 60.2%; --skipped: 50.4 97.8% 63.5%; - - --radius: 0.5rem; - --color-1: 0 100% 63%; --color-2: 270 100% 63%; --color-3: 210 100% 63%; --color-4: 195 100% 63%; --color-5: 90 100% 63%; } + .dark { - --background: 220 13% 18%; + --background: 222.2 84% 4.9%; --foreground: 210 40% 98%; - --card: 240 10% 3.9%; - --card-foreground: 0 0% 98%; - --popover: 240 10% 3.9%; - --popover-foreground: 0 0% 98%; - --primary: 0 0% 98%; - --primary-foreground: 240 5.9% 10%; - --secondary: 240 3.7% 15.9%; - --secondary-foreground: 0 0% 98%; - --muted: 240 3.7% 15.9%; - --muted-foreground: 240 5% 64.9%; - --accent: 240 3.7% 15.9%; - --accent-foreground: 0 0% 98%; + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; + --primary: 217.2 91.2% 59.8%; + --primary-foreground: 222.2 47.4% 11.2%; + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; --destructive: 0 62.8% 30.6%; - --destructive-foreground: 0 85.7% 97.3%; - --border: 240 3.7% 15.9%; - --input: 240 3.7% 15.9%; - --ring: 240 4.9% 83.9%; - + --destructive-foreground: 210 40% 98%; + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --ring: 224.3 76.3% 48%; --chart-1: 220 70% 50%; --chart-2: 160 60% 45%; --chart-3: 30 80% 55%; diff --git a/packages/ui/src/results/breadcrumb-nav.tsx b/packages/ui/src/results/breadcrumb-nav.tsx new file mode 100644 index 0000000..fed5829 --- /dev/null +++ b/packages/ui/src/results/breadcrumb-nav.tsx @@ -0,0 +1,37 @@ +import React from 'react'; +import { + Breadcrumb, + BreadcrumbItem, + BreadcrumbLink, + BreadcrumbList, + BreadcrumbPage, + BreadcrumbSeparator, +} from '../components/breadcrumb'; + +interface BreadcrumbNavProps { + items: Array<{ + label: string; + href: string; + }>; +} + +export const BreadcrumbNav = ({ items }: BreadcrumbNavProps): JSX.Element => { + return ( + + + {items.map((item, index) => ( + + + {index === items.length - 1 ? ( + {item.label} + ) : ( + {item.label} + )} + + {index < items.length - 1 && } + + ))} + + + ); +}; diff --git a/packages/ui/src/results/cells/status.tsx b/packages/ui/src/results/cells/status.tsx new file mode 100644 index 0000000..305fa41 --- /dev/null +++ b/packages/ui/src/results/cells/status.tsx @@ -0,0 +1,58 @@ +import { Badge } from '@/components/badge'; +import { cn } from '@ultra-reporter/utils/cn'; +import { AlertTriangle, Check, X } from 'lucide-react'; + +interface StatusProps { + status: string; +} + +export const statuses = [ + { + value: 'pass', + label: 'Passed', + icon: Check, + badge_style: 'bg-green-100 hover:bg-green-300 text-green-800', + label_style: 'text-green-500', + }, + { + value: 'fail', + label: 'Failed', + icon: X, + badge_style: 'bg-red-100 hover:bg-red-300 text-red-800', + label_style: 'text-red-500', + }, + { + value: 'skip', + label: 'Skipped', + icon: AlertTriangle, + badge_style: 'bg-yellow-100 hover:bg-yellow-300 text-yellow-800', + label_style: 'text-yellow-500', + }, +]; + +export const StatusCell = ({ status }: StatusProps): JSX.Element | null => { + const foundStatus = statuses.find((s) => s.value === status); + if (!foundStatus) { + return null; + } + return ( +
+ + + {foundStatus.label} + +
+ ); +}; diff --git a/packages/utils/src/types/types.ts b/packages/utils/src/types/types.ts index 555a2dc..037e487 100644 --- a/packages/utils/src/types/types.ts +++ b/packages/utils/src/types/types.ts @@ -98,16 +98,75 @@ type FormattedData = { areaChartData: AreaChartData[]; }; +type TestSuiteResultData = { + run_date: string; + suite_name: string; + status: string; + started_at: string; + finished_at: string; + duration_ms: string; +}; + +type TestResultData = { + run_date: string; + suite_name: string; + test_name: string; + status: string; + started_at: string; + finished_at: string; + duration_ms: string; +}; + +type TestClassResultData = { + run_date: string; + suite_name: string; + test_name: string; + class_name: string; + status: string; + started_at: string; + finished_at: string; + duration_ms: string; +}; + +type TestMethodResultData = { + run_date: string; + suite_name: string; + test_name: string; + class_name: string; + method_name: string; + is_config: boolean; + tags: string[]; + parameters: string[]; + status: string; + exception?: TestException; + attachment?: TestLog; + started_at: string; + finished_at: string; + duration_ms: string; +}; + +type ProcessedData = { + suites: TestSuiteResultData[]; + tests: TestResultData[]; + classes: TestClassResultData[]; + methods: TestMethodResultData[]; +}; + export type { AreaChartData, ChartData, FormattedData, + ProcessedData, TestCase, TestClass, + TestClassResultData, TestException, TestLog, TestMethod, + TestMethodResultData, TestResult, + TestResultData, TestStatus, TestSuite, + TestSuiteResultData, }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 531b42a..aab6ebc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: devDependencies: '@eslint/compat': specifier: ^1.2.2 - version: 1.2.2(eslint@9.13.0(jiti@2.3.3)) + version: 1.2.2(eslint@9.14.0(jiti@2.3.3)) '@next/eslint-plugin-next': specifier: ^14.2.15 version: 14.2.16 @@ -18,44 +18,44 @@ importers: specifier: ^7.0.0 version: 7.0.0(release-it@17.10.0(typescript@5.6.3)) '@stylistic/eslint-plugin-js': - specifier: ^2.9.0 - version: 2.9.0(eslint@9.13.0(jiti@2.3.3)) + specifier: ^2.10.1 + version: 2.10.1(eslint@9.14.0(jiti@2.3.3)) '@stylistic/eslint-plugin-ts': - specifier: ^2.9.0 - version: 2.9.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + specifier: ^2.10.1 + version: 2.10.1(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) '@types/node': - specifier: ^22.8.7 - version: 22.8.7 + specifier: ^22.9.0 + version: 22.9.0 '@typescript-eslint/eslint-plugin': - specifier: ^8.11.0 - version: 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + specifier: ^8.13.0 + version: 8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) '@typescript-eslint/parser': - specifier: ^8.11.0 - version: 8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + specifier: ^8.13.0 + version: 8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) '@vercel/style-guide': specifier: ^6.0.0 - version: 6.0.0(@next/eslint-plugin-next@14.2.16)(eslint@9.13.0(jiti@2.3.3))(prettier@3.3.3)(typescript@5.6.3) + version: 6.0.0(@next/eslint-plugin-next@14.2.16)(eslint@9.14.0(jiti@2.3.3))(prettier@3.3.3)(typescript@5.6.3) eslint: - specifier: ^9.13.0 - version: 9.13.0(jiti@2.3.3) + specifier: ^9.14.0 + version: 9.14.0(jiti@2.3.3) eslint-config-next: specifier: 14.2.15 - version: 14.2.15(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + version: 14.2.15(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.13.0(jiti@2.3.3)) + version: 9.1.0(eslint@9.14.0(jiti@2.3.3)) eslint-config-turbo: specifier: 2.2.3 - version: 2.2.3(eslint@9.13.0(jiti@2.3.3)) + version: 2.2.3(eslint@9.14.0(jiti@2.3.3)) eslint-plugin-only-warn: specifier: ^1.1.0 version: 1.1.0 eslint-plugin-prettier: specifier: ^5.2.1 - version: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@2.3.3)))(eslint@9.13.0(jiti@2.3.3))(prettier@3.3.3) + version: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.14.0(jiti@2.3.3)))(eslint@9.14.0(jiti@2.3.3))(prettier@3.3.3) globals: - specifier: ^15.11.0 - version: 15.11.0 + specifier: ^15.12.0 + version: 15.12.0 husky: specifier: ^9.1.6 version: 9.1.6 @@ -87,8 +87,8 @@ importers: specifier: ^5 version: 5.6.3 typescript-eslint: - specifier: ^8.11.0 - version: 8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + specifier: ^8.13.0 + version: 8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) apps/web: dependencies: @@ -105,8 +105,8 @@ importers: specifier: workspace:* version: link:../../packages/utils lucide-react: - specifier: ^0.453.0 - version: 0.453.0(react@18.3.1) + specifier: ^0.454.0 + version: 0.454.0(react@18.3.1) next: specifier: 14.2.15 version: 14.2.15(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -208,20 +208,20 @@ importers: specifier: ^0.7.0 version: 0.7.0 cmdk: - specifier: 1.0.3 - version: 1.0.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.0.4 + version: 1.0.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) embla-carousel-react: specifier: ^8.3.1 version: 8.3.1(react@18.3.1) lucide-react: - specifier: ^0.453.0 - version: 0.453.0(react@18.3.1) + specifier: ^0.454.0 + version: 0.454.0(react@18.3.1) next: specifier: 14.2.15 version: 14.2.15(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes: - specifier: ^0.3.0 - version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^0.4.3 + version: 0.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-code-blocks: specifier: ^0.1.6 version: 0.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -393,6 +393,10 @@ packages: resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + '@babel/template@7.25.9': resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} @@ -442,8 +446,8 @@ packages: resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-community/regexpp@4.12.0': - resolution: {integrity: sha512-gh7PdNombP8ftL8TinYC8Xd7WEypB8EKV4PI2h0eMzndKjPCXuo2zUiZtD2Hu+MSPt02Ty2MdS788ADl9ai1rA==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/compat@1.2.2': @@ -471,16 +475,16 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.13.0': - resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} + '@eslint/js@9.14.0': + resolution: {integrity: sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.1': - resolution: {integrity: sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==} + '@eslint/plugin-kit@0.2.2': + resolution: {integrity: sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@floating-ui/core@1.6.8': @@ -501,12 +505,12 @@ packages: '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@humanfs/core@0.19.0': - resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.5': - resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': @@ -517,6 +521,10 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} + '@humanwhocodes/retry@0.4.0': + resolution: {integrity: sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g==} + engines: {node: '>=18.18'} + '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} @@ -1186,14 +1194,14 @@ packages: resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} - '@stylistic/eslint-plugin-js@2.9.0': - resolution: {integrity: sha512-h08DQybPsXxIvHIvQqU1tFWcu74M7kZK/0S0jVIDdoHSFq7jB+TzxikBWAg5j0lPR17WsGGGHAS8GHFlAAQXHA==} + '@stylistic/eslint-plugin-js@2.10.1': + resolution: {integrity: sha512-IikL/RKy9Sk2UMDUUpqrEcwDeYzUEt6SaL2/UVCFuVQxKACHSgStT0NxXkxZmBOUforaU52FPf2Su07FYH5s5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' - '@stylistic/eslint-plugin-ts@2.9.0': - resolution: {integrity: sha512-CxB73paAKlmaIDtOfKoIHlhNJVlyRMVobuBqdOc4wbVSqfhbgpCWuJYpBkV3ydGDKRfVWNJ9yg5b99lzZtrjhg==} + '@stylistic/eslint-plugin-ts@2.10.1': + resolution: {integrity: sha512-XmXcixLPYfW0Z4Nf2ChnQ7CnfALNy/5gwNh22POiy64xreVYtiag4+yxN2SBEalEfoOAwDnqwDKam7e7XeoKTA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' @@ -1273,8 +1281,8 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@22.8.7': - resolution: {integrity: sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q==} + '@types/node@22.9.0': + resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1311,8 +1319,8 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.11.0': - resolution: {integrity: sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==} + '@typescript-eslint/eslint-plugin@8.13.0': + resolution: {integrity: sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -1332,8 +1340,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.11.0': - resolution: {integrity: sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==} + '@typescript-eslint/parser@8.13.0': + resolution: {integrity: sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1350,12 +1358,12 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.10.0': - resolution: {integrity: sha512-AgCaEjhfql9MDKjMUxWvH7HjLeBqMCBfIaBbzzIcBbQPZE7CPh1m6FF+L75NUMJFMLYhCywJXIDEMa3//1A0dw==} + '@typescript-eslint/scope-manager@8.12.2': + resolution: {integrity: sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.11.0': - resolution: {integrity: sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==} + '@typescript-eslint/scope-manager@8.13.0': + resolution: {integrity: sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/type-utils@7.18.0': @@ -1368,8 +1376,8 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.11.0': - resolution: {integrity: sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==} + '@typescript-eslint/type-utils@8.13.0': + resolution: {integrity: sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1385,12 +1393,12 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.10.0': - resolution: {integrity: sha512-k/E48uzsfJCRRbGLapdZgrX52csmWJ2rcowwPvOZ8lwPUv3xW6CcFeJAXgx4uJm+Ge4+a4tFOkdYvSpxhRhg1w==} + '@typescript-eslint/types@8.12.2': + resolution: {integrity: sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.11.0': - resolution: {integrity: sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==} + '@typescript-eslint/types@8.13.0': + resolution: {integrity: sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@5.62.0': @@ -1411,8 +1419,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.10.0': - resolution: {integrity: sha512-3OE0nlcOHaMvQ8Xu5gAfME3/tWVDpb/HxtpUZ1WeOAksZ/h/gwrBzCklaGzwZT97/lBbbxJ16dMA98JMEngW4w==} + '@typescript-eslint/typescript-estree@8.12.2': + resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1420,8 +1428,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.11.0': - resolution: {integrity: sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==} + '@typescript-eslint/typescript-estree@8.13.0': + resolution: {integrity: sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1441,14 +1449,14 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.10.0': - resolution: {integrity: sha512-Oq4uZ7JFr9d1ZunE/QKy5egcDRXT/FrS2z/nlxzPua2VHFtmMvFNDvpq1m/hq0ra+T52aUezfcjGRIB7vNJF9w==} + '@typescript-eslint/utils@8.12.2': + resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/utils@8.11.0': - resolution: {integrity: sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==} + '@typescript-eslint/utils@8.13.0': + resolution: {integrity: sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1461,12 +1469,12 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.10.0': - resolution: {integrity: sha512-k8nekgqwr7FadWk548Lfph6V3r9OVqjzAIVskE7orMZR23cGJjAOVazsZSJW+ElyjfTM4wx/1g88Mi70DDtG9A==} + '@typescript-eslint/visitor-keys@8.12.2': + resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.11.0': - resolution: {integrity: sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==} + '@typescript-eslint/visitor-keys@8.13.0': + resolution: {integrity: sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vercel/style-guide@6.0.0': @@ -1497,6 +1505,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -1867,8 +1880,8 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - cmdk@1.0.3: - resolution: {integrity: sha512-2c3uTjwT4YeHj60q2k8S1B0WHSoGR6t5CPnec6PMFD2QF4gwid0t1VSPNeEmL02EwBwNky/A3gwPCOViKTtoPA==} + cmdk@1.0.4: + resolution: {integrity: sha512-AnsjfHyHpQ/EFeAnG216WY7A5LiYCoZzCSygiLvfXC3H3LFGCprErteUcszaVluGOhuOTbJS3jWHrSDYPBBygg==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc @@ -2464,8 +2477,8 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@8.1.0: - resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@2.1.0: @@ -2476,12 +2489,12 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.1.0: - resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.13.0: - resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} + eslint@9.14.0: + resolution: {integrity: sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2490,8 +2503,8 @@ packages: jiti: optional: true - espree@10.2.0: - resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.6.1: @@ -2746,8 +2759,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.11.0: - resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} + globals@15.12.0: + resolution: {integrity: sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==} engines: {node: '>=18'} globalthis@1.0.4: @@ -3360,8 +3373,8 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - lucide-react@0.453.0: - resolution: {integrity: sha512-kL+RGZCcJi9BvJtzg2kshO192Ddy9hv3ij+cPrVPWSRzgCWCVazoQJxOjAwgK53NomL07HB7GPHW120FimjNhQ==} + lucide-react@0.454.0: + resolution: {integrity: sha512-hw7zMDwykCLnEzgncEEjHeA6+45aeEzRYuKHuyRSOPkhko+J3ySGjGIzu+mmMfDFG1vazHepMaYFYHbTFAZAAQ==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc @@ -3573,11 +3586,11 @@ packages: resolution: {integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - next-themes@0.3.0: - resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==} + next-themes@0.4.3: + resolution: {integrity: sha512-nG84VPkTdUHR2YeD89YchvV4I9RbiMAql3GiLEQlPvq1ioaqPaIReK+yMRdg/zgiXws620qS1rU30TiWmmG9lA==} peerDependencies: - react: ^16.8 || ^17 || ^18 - react-dom: ^16.8 || ^17 || ^18 + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc next@14.2.15: resolution: {integrity: sha512-h9ctmOokpoDphRvMGnwOJAedT6zKhwqyZML9mDtspgf4Rh3Pn7UTYKqePNoDvhsWBAO5GoPNYshnAUGIazVGmw==} @@ -4654,6 +4667,12 @@ packages: peerDependencies: typescript: '>=4.2.0' + ts-api-utils@1.4.0: + resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -4757,8 +4776,8 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typescript-eslint@8.11.0: - resolution: {integrity: sha512-cBRGnW3FSlxaYwU8KfAewxFK5uzeOAp0l2KebIlPDOT5olVi65KDG/yjBooPBG0kGW/HLkoz1c/iuBFehcS3IA==} + typescript-eslint@8.13.0: + resolution: {integrity: sha512-vIMpDRJrQd70au2G8w34mPps0ezFSPMEX4pXkTzUkrNbRX+36ais2ksGWN0esZL+ZMaFJEneOBHzCgSqle7DHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -5039,11 +5058,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.25.9(@babel/core@7.26.0)(eslint@9.13.0(jiti@2.3.3))': + '@babel/eslint-parser@7.25.9(@babel/core@7.26.0)(eslint@9.14.0(jiti@2.3.3))': dependencies: '@babel/core': 7.26.0 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) eslint-visitor-keys: 2.1.0 semver: 6.3.1 @@ -5107,6 +5126,10 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/template@7.25.9': dependencies: '@babel/code-frame': 7.26.0 @@ -5146,23 +5169,23 @@ snapshots: '@emotion/unitless@0.8.1': {} - '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@2.3.3))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.14.0(jiti@2.3.3))': dependencies: - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.1(eslint@9.13.0(jiti@2.3.3))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.14.0(jiti@2.3.3))': dependencies: - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} - '@eslint-community/regexpp@4.12.0': {} + '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.2.2(eslint@9.13.0(jiti@2.3.3))': + '@eslint/compat@1.2.2(eslint@9.14.0(jiti@2.3.3))': optionalDependencies: - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) '@eslint/config-array@0.18.0': dependencies: @@ -5192,7 +5215,7 @@ snapshots: dependencies: ajv: 6.12.6 debug: 4.3.7 - espree: 10.2.0 + espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 @@ -5202,11 +5225,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.13.0': {} + '@eslint/js@9.14.0': {} '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.2.1': + '@eslint/plugin-kit@0.2.2': dependencies: levn: 0.4.1 @@ -5229,17 +5252,19 @@ snapshots: '@gar/promisify@1.1.3': {} - '@humanfs/core@0.19.0': {} + '@humanfs/core@0.19.1': {} - '@humanfs/node@0.16.5': + '@humanfs/node@0.16.6': dependencies: - '@humanfs/core': 0.19.0 + '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/retry@0.3.1': {} + '@humanwhocodes/retry@0.4.0': {} + '@iarna/toml@2.2.5': {} '@inquirer/figures@1.0.7': {} @@ -5906,18 +5931,18 @@ snapshots: '@sindresorhus/merge-streams@4.0.0': {} - '@stylistic/eslint-plugin-js@2.9.0(eslint@9.13.0(jiti@2.3.3))': + '@stylistic/eslint-plugin-js@2.10.1(eslint@9.14.0(jiti@2.3.3))': dependencies: - eslint: 9.13.0(jiti@2.3.3) - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 + eslint: 9.14.0(jiti@2.3.3) + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 - '@stylistic/eslint-plugin-ts@2.9.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': + '@stylistic/eslint-plugin-ts@2.10.1(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@typescript-eslint/utils': 8.10.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - eslint: 9.13.0(jiti@2.3.3) - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 + '@typescript-eslint/utils': 8.12.2(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.14.0(jiti@2.3.3) + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 transitivePeerDependencies: - supports-color - typescript @@ -5987,7 +6012,7 @@ snapshots: '@types/ms@0.7.34': {} - '@types/node@22.8.7': + '@types/node@22.9.0': dependencies: undici-types: 6.19.8 @@ -6012,17 +6037,17 @@ snapshots: '@types/xml2js@0.4.14': dependencies: - '@types/node': 22.8.7 + '@types/node': 22.9.0 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/parser': 7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -6032,45 +6057,45 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.12.0 - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/type-utils': 8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.11.0 - eslint: 9.13.0(jiti@2.3.3) + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.13.0 + '@typescript-eslint/type-utils': 8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.13.0 + eslint: 9.14.0(jiti@2.3.3) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.6.3) + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.3.7 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.11.0 + '@typescript-eslint/scope-manager': 8.13.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.13.0 debug: 4.3.7 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -6086,34 +6111,34 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.10.0': + '@typescript-eslint/scope-manager@8.12.2': dependencies: - '@typescript-eslint/types': 8.10.0 - '@typescript-eslint/visitor-keys': 8.10.0 + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/visitor-keys': 8.12.2 - '@typescript-eslint/scope-manager@8.11.0': + '@typescript-eslint/scope-manager@8.13.0': dependencies: - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/visitor-keys': 8.11.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/visitor-keys': 8.13.0 - '@typescript-eslint/type-utils@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) debug: 4.3.7 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) debug: 4.3.7 - ts-api-utils: 1.3.0(typescript@5.6.3) + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -6124,9 +6149,9 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.10.0': {} + '@typescript-eslint/types@8.12.2': {} - '@typescript-eslint/types@8.11.0': {} + '@typescript-eslint/types@8.13.0': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@5.6.3)': dependencies: @@ -6157,80 +6182,80 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.10.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.12.2(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.10.0 - '@typescript-eslint/visitor-keys': 8.10.0 + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/visitor-keys': 8.12.2 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.11.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.13.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/visitor-keys': 8.11.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/visitor-keys': 8.13.0 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/utils@5.62.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@2.3.3)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.3.3)) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.6.3) - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) eslint-scope: 5.1.1 semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/utils@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@2.3.3)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.3.3)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.10.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/utils@8.12.2(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.3.3)) - '@typescript-eslint/scope-manager': 8.10.0 - '@typescript-eslint/types': 8.10.0 - '@typescript-eslint/typescript-estree': 8.10.0(typescript@5.6.3) - eslint: 9.13.0(jiti@2.3.3) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.3.3)) + '@typescript-eslint/scope-manager': 8.12.2 + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3) + eslint: 9.14.0(jiti@2.3.3) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)': + '@typescript-eslint/utils@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@2.3.3)) - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) - eslint: 9.13.0(jiti@2.3.3) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.3.3)) + '@typescript-eslint/scope-manager': 8.13.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) + eslint: 9.14.0(jiti@2.3.3) transitivePeerDependencies: - supports-color - typescript @@ -6245,41 +6270,41 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.10.0': + '@typescript-eslint/visitor-keys@8.12.2': dependencies: - '@typescript-eslint/types': 8.10.0 + '@typescript-eslint/types': 8.12.2 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.11.0': + '@typescript-eslint/visitor-keys@8.13.0': dependencies: - '@typescript-eslint/types': 8.11.0 + '@typescript-eslint/types': 8.13.0 eslint-visitor-keys: 3.4.3 - '@vercel/style-guide@6.0.0(@next/eslint-plugin-next@14.2.16)(eslint@9.13.0(jiti@2.3.3))(prettier@3.3.3)(typescript@5.6.3)': + '@vercel/style-guide@6.0.0(@next/eslint-plugin-next@14.2.16)(eslint@9.14.0(jiti@2.3.3))(prettier@3.3.3)(typescript@5.6.3)': dependencies: '@babel/core': 7.26.0 - '@babel/eslint-parser': 7.25.9(@babel/core@7.26.0)(eslint@9.13.0(jiti@2.3.3)) + '@babel/eslint-parser': 7.25.9(@babel/core@7.26.0)(eslint@9.14.0(jiti@2.3.3)) '@rushstack/eslint-patch': 1.10.4 - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/parser': 7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - eslint-config-prettier: 9.1.0(eslint@9.13.0(jiti@2.3.3)) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/parser': 7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + eslint-config-prettier: 9.1.0(eslint@9.14.0(jiti@2.3.3)) eslint-import-resolver-alias: 1.1.2(eslint-plugin-import@2.31.0) - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-eslint-comments: 3.2.0(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)))(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-playwright: 1.8.3(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-react: 7.37.2(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-react-hooks: 4.6.2(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-testing-library: 6.4.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.14.0(jiti@2.3.3)))(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-playwright: 1.8.3(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-react: 7.37.2(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-react-hooks: 4.6.2(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-testing-library: 6.4.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) eslint-plugin-tsdoc: 0.2.17 - eslint-plugin-unicorn: 51.0.1(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-vitest: 0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + eslint-plugin-unicorn: 51.0.1(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-vitest: 0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) prettier-plugin-packagejson: 2.5.3(prettier@3.3.3) optionalDependencies: '@next/eslint-plugin-next': 14.2.16 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) prettier: 3.3.3 typescript: 5.6.3 transitivePeerDependencies: @@ -6290,12 +6315,14 @@ snapshots: - supports-color - vitest - acorn-jsx@5.3.2(acorn@8.12.1): + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - acorn: 8.12.1 + acorn: 8.14.0 acorn@8.12.1: {} + acorn@8.14.0: {} + agent-base@6.0.2: dependencies: debug: 4.3.7 @@ -6752,7 +6779,7 @@ snapshots: clsx@2.1.1: {} - cmdk@1.0.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + cmdk@1.0.4(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.1.0(@types/react@18.3.12)(react@18.3.1) @@ -7031,7 +7058,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.25.7 + '@babel/runtime': 7.26.0 csstype: 3.1.3 dot-prop@5.3.0: @@ -7196,19 +7223,19 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@14.2.15(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3): + eslint-config-next@14.2.15(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3): dependencies: '@next/eslint-plugin-next': 14.2.15 '@rushstack/eslint-patch': 1.10.4 - '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - eslint: 9.13.0(jiti@2.3.3) + '@typescript-eslint/eslint-plugin': 8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.14.0(jiti@2.3.3) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-react: 7.37.2(eslint@9.13.0(jiti@2.3.3)) - eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@9.13.0(jiti@2.3.3)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-react: 7.37.2(eslint@9.14.0(jiti@2.3.3)) + eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@9.14.0(jiti@2.3.3)) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -7216,18 +7243,18 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@2.3.3)): + eslint-config-prettier@9.1.0(eslint@9.14.0(jiti@2.3.3)): dependencies: - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) - eslint-config-turbo@2.2.3(eslint@9.13.0(jiti@2.3.3)): + eslint-config-turbo@2.2.3(eslint@9.14.0(jiti@2.3.3)): dependencies: - eslint: 9.13.0(jiti@2.3.3) - eslint-plugin-turbo: 2.2.3(eslint@9.13.0(jiti@2.3.3)) + eslint: 9.14.0(jiti@2.3.3) + eslint-plugin-turbo: 2.2.3(eslint@9.14.0(jiti@2.3.3)) eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.31.0): dependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@2.3.3)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.14.0(jiti@2.3.3)) eslint-import-resolver-node@0.3.9: dependencies: @@ -7237,73 +7264,73 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.14.0(jiti@2.3.3)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 - eslint: 9.13.0(jiti@2.3.3) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)))(eslint@9.13.0(jiti@2.3.3)) + eslint: 9.14.0(jiti@2.3.3) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.14.0(jiti@2.3.3)))(eslint@9.14.0(jiti@2.3.3)) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@2.3.3)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.14.0(jiti@2.3.3)) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.14.0(jiti@2.3.3)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 - eslint: 9.13.0(jiti@2.3.3) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@2.3.3)) + eslint: 9.14.0(jiti@2.3.3) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.14.0(jiti@2.3.3)) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@2.3.3)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.14.0(jiti@2.3.3)) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)))(eslint@9.13.0(jiti@2.3.3)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.14.0(jiti@2.3.3)))(eslint@9.14.0(jiti@2.3.3)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - eslint: 9.13.0(jiti@2.3.3) + '@typescript-eslint/parser': 7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.14.0(jiti@2.3.3) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.14.0(jiti@2.3.3)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@2.3.3)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.14.0(jiti@2.3.3)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - eslint: 9.13.0(jiti@2.3.3) + '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.14.0(jiti@2.3.3) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.14.0(jiti@2.3.3)) transitivePeerDependencies: - supports-color - eslint-plugin-eslint-comments@3.2.0(eslint@9.13.0(jiti@2.3.3)): + eslint-plugin-eslint-comments@3.2.0(eslint@9.14.0(jiti@2.3.3)): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) ignore: 5.3.2 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)))(eslint@9.13.0(jiti@2.3.3)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.14.0(jiti@2.3.3)))(eslint@9.14.0(jiti@2.3.3)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -7312,9 +7339,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)))(eslint@9.13.0(jiti@2.3.3)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.14.0(jiti@2.3.3)))(eslint@9.14.0(jiti@2.3.3)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -7326,13 +7353,13 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/parser': 7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@2.3.3)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.14.0(jiti@2.3.3)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -7341,9 +7368,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@2.3.3)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.14.0(jiti@2.3.3)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -7355,23 +7382,23 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3): dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - eslint: 9.13.0(jiti@2.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.14.0(jiti@2.3.3) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsx-a11y@6.10.2(eslint@9.13.0(jiti@2.3.3)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.14.0(jiti@2.3.3)): dependencies: aria-query: 5.3.2 array-includes: 3.1.8 @@ -7381,7 +7408,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -7392,31 +7419,31 @@ snapshots: eslint-plugin-only-warn@1.1.0: {} - eslint-plugin-playwright@1.8.3(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3)): + eslint-plugin-playwright@1.8.3(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3)): dependencies: - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) globals: 13.24.0 optionalDependencies: - eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) - eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@2.3.3)))(eslint@9.13.0(jiti@2.3.3))(prettier@3.3.3): + eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@9.14.0(jiti@2.3.3)))(eslint@9.14.0(jiti@2.3.3))(prettier@3.3.3): dependencies: - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) prettier: 3.3.3 prettier-linter-helpers: 1.0.0 synckit: 0.9.2 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@9.13.0(jiti@2.3.3)) + eslint-config-prettier: 9.1.0(eslint@9.14.0(jiti@2.3.3)) - eslint-plugin-react-hooks@4.6.2(eslint@9.13.0(jiti@2.3.3)): + eslint-plugin-react-hooks@4.6.2(eslint@9.14.0(jiti@2.3.3)): dependencies: - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) - eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@9.13.0(jiti@2.3.3)): + eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@9.14.0(jiti@2.3.3)): dependencies: - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) - eslint-plugin-react@7.37.2(eslint@9.13.0(jiti@2.3.3)): + eslint-plugin-react@7.37.2(eslint@9.14.0(jiti@2.3.3)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -7424,7 +7451,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.1.0 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -7438,10 +7465,10 @@ snapshots: string.prototype.matchall: 4.0.11 string.prototype.repeat: 1.0.0 - eslint-plugin-testing-library@6.4.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3): + eslint-plugin-testing-library@6.4.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3): dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - eslint: 9.13.0(jiti@2.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.14.0(jiti@2.3.3) transitivePeerDependencies: - supports-color - typescript @@ -7451,20 +7478,20 @@ snapshots: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - eslint-plugin-turbo@2.2.3(eslint@9.13.0(jiti@2.3.3)): + eslint-plugin-turbo@2.2.3(eslint@9.14.0(jiti@2.3.3)): dependencies: dotenv: 16.0.3 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) - eslint-plugin-unicorn@51.0.1(eslint@9.13.0(jiti@2.3.3)): + eslint-plugin-unicorn@51.0.1(eslint@9.14.0(jiti@2.3.3)): dependencies: '@babel/helper-validator-identifier': 7.25.7 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.3.3)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@2.3.3)) '@eslint/eslintrc': 2.1.4 ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.38.1 - eslint: 9.13.0(jiti@2.3.3) + eslint: 9.14.0(jiti@2.3.3) esquery: 1.6.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -7478,12 +7505,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-vitest@0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3): + eslint-plugin-vitest@0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - eslint: 9.13.0(jiti@2.3.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.14.0(jiti@2.3.3) optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) transitivePeerDependencies: - supports-color - typescript @@ -7493,7 +7520,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@8.1.0: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -7502,20 +7529,20 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.1.0: {} + eslint-visitor-keys@4.2.0: {} - eslint@9.13.0(jiti@2.3.3): + eslint@9.14.0(jiti@2.3.3): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.3.3)) - '@eslint-community/regexpp': 4.11.1 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@2.3.3)) + '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.18.0 '@eslint/core': 0.7.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.13.0 - '@eslint/plugin-kit': 0.2.1 - '@humanfs/node': 0.16.5 + '@eslint/js': 9.14.0 + '@eslint/plugin-kit': 0.2.2 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.0 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -7523,9 +7550,9 @@ snapshots: cross-spawn: 7.0.3 debug: 4.3.7 escape-string-regexp: 4.0.0 - eslint-scope: 8.1.0 - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -7546,16 +7573,16 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.2.0: + espree@10.3.0: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 4.1.0 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 espree@9.6.1: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -7857,7 +7884,7 @@ snapshots: globals@14.0.0: {} - globals@15.11.0: {} + globals@15.12.0: {} globalthis@1.0.4: dependencies: @@ -8444,7 +8471,7 @@ snapshots: lru-cache@7.18.3: {} - lucide-react@0.453.0(react@18.3.1): + lucide-react@0.454.0(react@18.3.1): dependencies: react: 18.3.1 @@ -8733,7 +8760,7 @@ snapshots: dependencies: type-fest: 2.19.0 - next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next-themes@0.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -9286,7 +9313,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.25.7 + '@babel/runtime': 7.26.0 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -9871,6 +9898,10 @@ snapshots: dependencies: typescript: 5.6.3 + ts-api-utils@1.4.0(typescript@5.6.3): + dependencies: + typescript: 5.6.3 + ts-interface-checker@0.1.13: {} tsconfig-paths@3.15.0: @@ -9968,11 +9999,11 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript-eslint@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3): + typescript-eslint@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@2.3.3))(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: