diff --git a/.gitignore b/.gitignore index 85eb636..9b73f54 100644 --- a/.gitignore +++ b/.gitignore @@ -60,5 +60,8 @@ Thumbs.db .tmp .temp +# Screenshots +*.png + # Build tools .turbo diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index f8e4cfd..681acce 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -10,15 +10,17 @@ "clean": "rm -rf dist" }, "dependencies": { + "lucide-react": "^0.414.0", "react": "^19.1.1", "react-dom": "^19.1.1", - "recharts": "^2.12.6", - "lucide-react": "^0.414.0" + "react-router-dom": "^7.8.2", + "recharts": "^2.12.6" }, "devDependencies": { "@types/react": "^19.1.10", "@types/react-dom": "^19.1.7", - "typescript": "catalog:", - "rolldown-vite": "7.1.4" + "@types/react-router-dom": "^5.3.3", + "rolldown-vite": "7.1.4", + "typescript": "catalog:" } } diff --git a/apps/dashboard/src/App.css b/apps/dashboard/src/App.css index 2da3bfc..3666519 100644 --- a/apps/dashboard/src/App.css +++ b/apps/dashboard/src/App.css @@ -62,7 +62,88 @@ } } -/* Navigation */ +/* Page Navigation */ +.page-nav { + background: transparent; + padding: 1rem 2rem; + display: flex; + gap: 0.5rem; + max-width: 1200px; + margin: 0 auto; + border-radius: 0.75rem; + margin-top: -0.5rem; + position: relative; + z-index: 10; +} + +.page-button { + display: flex; + align-items: center; + gap: 0.625rem; + padding: 1rem 1.5rem; + border: 2px solid transparent; + background: transparent; + border-radius: 0.75rem; + cursor: pointer; + font-weight: 600; + font-size: 0.95rem; + transition: all 0.3s ease; + color: #64748b; + text-transform: capitalize; + letter-spacing: -0.025em; + position: relative; + overflow: hidden; + min-width: 160px; + justify-content: center; +} + +.page-button::before { + content: ''; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, + transparent, + rgba(16, 185, 129, 0.3), + transparent); + transition: left 0.5s ease; +} + +.page-button:hover { + background: transparent; + border-color: #10b981; + color: #059669; + transform: translateY(-2px); + box-shadow: 0 8px 16px rgba(16, 185, 129, 0.2); +} + +.page-button:hover::before { + left: 100%; +} + +.page-button.active { + background: transparent; + border-color: #10b981; + color: #059669; + box-shadow: 0 8px 20px rgba(16, 185, 129, 0.3); + transform: translateY(-1px); +} + +.page-button.active::before { + background: linear-gradient(90deg, + transparent, + rgba(16, 185, 129, 0.2), + transparent); +} + +.page-button.active:hover { + transform: translateY(-3px); + box-shadow: 0 12px 24px rgba(16, 185, 129, 0.4); +} + +/* Metric Navigation */ .dashboard-nav { background: transparent; padding: 1.25rem 2rem; @@ -236,8 +317,71 @@ border: 1px solid rgba(220, 38, 38, 0.2); } +/* Library Charts Grid - Combined Layout */ +.library-charts-grid { + display: flex; + flex-direction: column; + gap: 2rem; + margin-bottom: 2rem; + padding: 0 2rem; +} + +.library-chart-row { + background: #ffffff; + border: 1px solid #e5e7eb; + border-radius: 0.75rem; + padding: 1.5rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); + transition: all 0.3s ease; +} + +.library-chart-row:hover { + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + transform: translateY(-2px); +} + +.library-charts-columns { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 2rem; + margin-top: 1rem; +} + +.library-chart-container { + background: #f9fafb; + border: 1px solid #e5e7eb; + border-radius: 0.5rem; + padding: 1rem; +} + +.chart-subtitle { + margin: 0 0 1rem 0; + font-size: 1rem; + font-weight: 500; + color: #374151; + text-align: center; + padding-bottom: 0.5rem; + border-bottom: 1px solid #e5e7eb; +} + +.library-title { + margin: 0 0 1rem 0; + font-size: 1.125rem; + font-weight: 600; + color: #111827; + text-transform: capitalize; + text-align: center; + padding-bottom: 0.5rem; + border-bottom: 2px solid #e5e7eb; +} + /* Responsive Design */ @media (max-width: 768px) { + .page-nav { + flex-direction: column; + gap: 0.5rem; + } + .dashboard-nav { flex-direction: column; gap: 0.5rem; @@ -254,6 +398,20 @@ .stats-grid { grid-template-columns: 1fr; } + + .library-charts-grid { + padding: 0 1rem; + gap: 1rem; + } + + .library-charts-columns { + grid-template-columns: 1fr; + gap: 1rem; + } + + .library-chart-container { + padding: 1rem; + } } /* Remove default styles */ diff --git a/apps/dashboard/src/App.tsx b/apps/dashboard/src/App.tsx index 3e26870..a7b3f84 100644 --- a/apps/dashboard/src/App.tsx +++ b/apps/dashboard/src/App.tsx @@ -1,208 +1,19 @@ -import { useState } from 'react' -import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, Cell } from 'recharts' -import { BarChart3, Clock, Package } from 'lucide-react' +import { BrowserRouter, Routes, Route } from 'react-router-dom' import './App.css' -import rolldownStats from '../../../rolldown-version-stats.json' - -// Utility function to format numbers with commas -const formatNumberWithCommas = (num: number): string => { - return num.toLocaleString() -} - -// Transform rolldown stats data for charts -const buildTimeData = rolldownStats.map(stat => ({ - name: `v${stat.version}`, - value: stat.buildTime -})) - -// Calculate bundle size differences between consecutive versions -const bundleSizeDiffData = rolldownStats.map((stat, index) => { - if (index === 0) { - // For the first version, show 0 difference or could show absolute value - return { - name: `v${stat.version}`, - value: 0, - previousSize: null, - currentSize: stat.totalSize, - isBaseline: true - } - } - - const prevSize = rolldownStats[index - 1].totalSize - const currentSize = stat.totalSize - const diff = currentSize - prevSize - - return { - name: `v${stat.version}`, - value: diff, - previousSize: prevSize, - currentSize: currentSize, - isBaseline: false - } -}) +import Layout from './components/Layout' +import RolldownStatsPage from './pages/RolldownStatsPage' +import MinificationBenchmarksPage from './pages/MinificationBenchmarksPage' function App() { - const [selectedMetric, setSelectedMetric] = useState('bundleSize') - - // Custom tooltip formatter for bundle size differences - const bundleSizeDiffTooltipFormatter = (value: any, name: string, props: any) => { - const data = props.payload - if (!data) return [value, name] - - if (data.isBaseline) { - return [`${formatNumberWithCommas(data.currentSize)} bytes (baseline)`, 'Bundle Size'] - } - - const sign = value >= 0 ? '+' : '' - const changeText = `${sign}${formatNumberWithCommas(value)} bytes` - const fromTo = `(${formatNumberWithCommas(data.previousSize)} → ${formatNumberWithCommas(data.currentSize)})` - - return [`${changeText} ${fromTo}`, 'Size Change'] - } - - const metrics = [ - { id: 'bundleSize', name: 'Bundle Size', icon: Package, data: bundleSizeDiffData, color: '#374151' }, - { id: 'buildTime', name: 'Build Time', icon: Clock, data: buildTimeData, color: '#000000' }, - ] - - const currentMetric = metrics.find(m => m.id === selectedMetric) || metrics[0] - return ( -
-
-
-
- -

Rolldown-Vite dashboard

-
-

Statistics collected from different Rolldown-Vite versions

-
-
- - - -
-
-

{currentMetric.name}

- - {selectedMetric === 'bundleSize' ? ( - - - - - - - - {currentMetric.data.map((entry: any, index: number) => ( - = 0 ? '#dc2626' : '#16a34a')} - /> - ))} - - - ) : ( - - - - - - - - - - - - - - - )} - -
- -
-
-

Average Build Time

-

{Math.round(buildTimeData.reduce((sum, item) => sum + item.value, 0) / buildTimeData.length)}ms

- Across {buildTimeData.length} versions -
-
-

Latest Bundle Size

-

{formatNumberWithCommas(rolldownStats[rolldownStats.length - 1]?.totalSize || 0)} bytes

- v{rolldownStats[rolldownStats.length - 1]?.version} -
-
-

Bundle Size Range

-

{Math.round((Math.max(...rolldownStats.map(s => s.totalSize)) - Math.min(...rolldownStats.map(s => s.totalSize))) / 1024)}KB

- Size Variation -
-
-

Versions Tested

-

{rolldownStats.length}

- {rolldownStats[0]?.version} - {rolldownStats[rolldownStats.length - 1]?.version} -
-
-
-
+ + + }> + } /> + } /> + + + ) } diff --git a/apps/dashboard/src/MinificationBenchmarks.tsx b/apps/dashboard/src/MinificationBenchmarks.tsx new file mode 100644 index 0000000..239e9c6 --- /dev/null +++ b/apps/dashboard/src/MinificationBenchmarks.tsx @@ -0,0 +1,193 @@ +import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, LabelList } from 'recharts' +import minificationData from '../../../minification-benchmarks-data.json' + +// Transform minification data for charts +// Get popular minifiers for comparison +const popularMinifiers = ['terser', 'esbuild', '@swc/core', 'uglify-js', 'oxc-minify'] + +// Get library names from the data, sorted by size (largest first) +const libraries = Object.entries(minificationData) + .map(([name, data]: [string, any]) => ({ name, size: data.size })) + .sort((a, b) => b.size - a.size) + .map(item => item.name) + +// Transform minification data for individual library charts +const getLibraryData = (library: string, metric: 'time' | 'compression') => { + const libraryData = (minificationData as any)[library] + const data: any[] = [] + + popularMinifiers.forEach(minifier => { + const minifierData = libraryData.minified?.[minifier] + if (minifierData?.result?.data) { + let value: number + let minzippedBytes = 0 + if (metric === 'time') { + value = Math.round(minifierData.result.data.time || 0) + } else { + // compression ratio + const originalSize = libraryData.size + minzippedBytes = minifierData.result.data.minzippedBytes || 0 + value = Math.round(((originalSize - minzippedBytes) / originalSize) * 100 * 10) / 10 + } + + data.push({ + name: minifier === '@swc/core' ? 'SWC' : + minifier === 'uglify-js' ? 'UglifyJS' : + minifier === 'oxc-minify' ? 'OXC' : + minifier === 'esbuild' ? 'ESBuild' : + minifier === 'terser' ? 'Terser' : minifier, + value, + minzippedBytes: minzippedBytes || 0, + fill: minifier === 'terser' ? '#8b5cf6' : + minifier === 'esbuild' ? '#059669' : + minifier === '@swc/core' ? '#0ea5e9' : + minifier === 'uglify-js' ? '#dc2626' : + minifier === 'oxc-minify' ? '#f59e0b' : '#6b7280' + }) + } + }) + + // Sort data: time from smallest to largest (fastest to slowest), compression from largest to smallest (best to worst) + return data.sort((a, b) => metric === 'time' ? a.value - b.value : a.minzippedBytes - b.minzippedBytes) +} + + +interface MinificationBenchmarksProps { + // Remove selectedMetric and setSelectedMetric since we'll show both metrics together +} + +function MinificationBenchmarks({ }: MinificationBenchmarksProps) { + return ( + <> +
+ {/* Combined Charts for Each Library - Time and Compression Side by Side */} +
+ {libraries.map(library => { + const timeData = getLibraryData(library, 'time') + const compressionData = getLibraryData(library, 'compression') + + return ( +
+

{library}

+
+ {/* Left column - Minification Time */} +
+

Minification Time

+ + + + + + [`${value}ms`, 'Minification Time']} + /> + + `${value}ms`} + style={{ fontSize: '12px', fill: '#374151' }} + /> + + + +
+ + {/* Right column - Compression Ratio */} +
+

Compression Ratio

+ + + + + + [ + `${value}% (${props.payload.minzippedBytes} bytes)`, + 'Compression Ratio' + ]} + /> + + `${value}%`} + style={{ fontSize: '10px', fill: '#374151' }} + /> + + + +
+
+
+ ) + })} +
+ +
+ {/* Minification statistics */} +
+

Libraries Tested

+

{Object.keys(minificationData).length}

+ JavaScript Libraries +
+
+

Minifiers Compared

+

{popularMinifiers.length}

+ Popular Tools +
+
+

Fastest Minifier

+

OXC

+ Rust-based +
+
+

Best Compression

+

UglifyJS

+ Traditional Leader +
+
+
+ + ) +} + +export default MinificationBenchmarks diff --git a/apps/dashboard/src/RolldownStats.tsx b/apps/dashboard/src/RolldownStats.tsx new file mode 100644 index 0000000..0fe7edc --- /dev/null +++ b/apps/dashboard/src/RolldownStats.tsx @@ -0,0 +1,217 @@ +import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, Cell, LabelList } from 'recharts' +import { Clock, Package } from 'lucide-react' +import rolldownStats from '../../../rolldown-version-stats.json' + +// Utility function to format numbers with commas +const formatNumberWithCommas = (num: number): string => { + return num.toLocaleString() +} + +// Transform rolldown stats data for charts +const buildTimeData = rolldownStats.map(stat => ({ + name: `v${stat.version}`, + value: stat.buildTime +})).sort((a, b) => a.value - b.value) // Sort from smallest to largest + +// Calculate bundle size differences between consecutive versions +const bundleSizeDiffData = rolldownStats.map((stat, index) => { + if (index === 0) { + // For the first version, show 0 difference or could show absolute value + return { + name: `v${stat.version}`, + value: 0, + previousSize: null, + currentSize: stat.totalSize, + isBaseline: true + } + } + + const prevSize = rolldownStats[index - 1].totalSize + const currentSize = stat.totalSize + const diff = currentSize - prevSize + + return { + name: `v${stat.version}`, + value: diff, + previousSize: prevSize, + currentSize: currentSize, + isBaseline: false + } +}).sort((a, b) => a.value - b.value) // Sort from smallest to largest + +interface RolldownStatsProps { + selectedMetric: string + setSelectedMetric: (metric: string) => void +} + +function RolldownStats({ selectedMetric, setSelectedMetric }: RolldownStatsProps) { + // Custom tooltip formatter for bundle size differences + const bundleSizeDiffTooltipFormatter = (value: any, name: string, props: any) => { + const data = props.payload + if (!data) return [value, name] + + if (data.isBaseline) { + return [`${formatNumberWithCommas(data.currentSize)} bytes (baseline)`, 'Bundle Size'] + } + + const sign = value >= 0 ? '+' : '' + const changeText = `${sign}${formatNumberWithCommas(value)} bytes` + const fromTo = `(${formatNumberWithCommas(data.previousSize)} → ${formatNumberWithCommas(data.currentSize)})` + + return [`${changeText} ${fromTo}`, 'Size Change'] + } + + const rolldownMetrics = [ + { id: 'bundleSize', name: 'Bundle Size', icon: Package, data: bundleSizeDiffData, color: '#374151' }, + { id: 'buildTime', name: 'Build Time', icon: Clock, data: buildTimeData, color: '#000000' }, + ] + + const currentMetric = rolldownMetrics.find(m => m.id === selectedMetric) || rolldownMetrics[0] + + return ( + <> + {/* Metric Navigation */} + + +
+
+

{currentMetric.name}

+ + {selectedMetric === 'bundleSize' ? ( + + + + + + + + { + if (value === 0) return 'baseline'; + return value >= 0 ? `+${formatNumberWithCommas(value)}` : formatNumberWithCommas(value); + }} + style={{ fontSize: '11px', fill: '#374151' }} + /> + {currentMetric.data.map((entry: any, index: number) => ( + = 0 ? '#dc2626' : '#16a34a')} + /> + ))} + + + ) : ( + + + + + + + + `${value}ms`} + style={{ fontSize: '11px', fill: '#374151' }} + /> + + + + + + + + + )} + +
+ +
+
+

Average Build Time

+

{Math.round(buildTimeData.reduce((sum, item) => sum + item.value, 0) / buildTimeData.length)}ms

+ Across {buildTimeData.length} versions +
+
+

Latest Bundle Size

+

{formatNumberWithCommas(rolldownStats[rolldownStats.length - 1]?.totalSize || 0)} bytes

+ v{rolldownStats[rolldownStats.length - 1]?.version} +
+
+

Bundle Size Range

+

{Math.round((Math.max(...rolldownStats.map(s => s.totalSize)) - Math.min(...rolldownStats.map(s => s.totalSize))) / 1024)}KB

+ Size Variation +
+
+

Versions Tested

+

{rolldownStats.length}

+ {rolldownStats[0]?.version} - {rolldownStats[rolldownStats.length - 1]?.version} +
+
+
+ + ) +} + +export default RolldownStats \ No newline at end of file diff --git a/apps/dashboard/src/components/Layout.tsx b/apps/dashboard/src/components/Layout.tsx new file mode 100644 index 0000000..9914277 --- /dev/null +++ b/apps/dashboard/src/components/Layout.tsx @@ -0,0 +1,33 @@ +import { Outlet, Link, useLocation } from 'react-router-dom' +import { Package, Zap } from 'lucide-react' + +function Layout() { + const location = useLocation() + + return ( + <> + {/* Page Navigation */} + + + {/* Render the current route's component */} + + + ) +} + +export default Layout \ No newline at end of file diff --git a/apps/dashboard/src/pages/MinificationBenchmarksPage.tsx b/apps/dashboard/src/pages/MinificationBenchmarksPage.tsx new file mode 100644 index 0000000..7485a21 --- /dev/null +++ b/apps/dashboard/src/pages/MinificationBenchmarksPage.tsx @@ -0,0 +1,24 @@ +import { BarChart3 } from 'lucide-react' +import MinificationBenchmarks from '../MinificationBenchmarks' + +function MinificationBenchmarksPage() { + return ( +
+
+
+
+ +

Minification Benchmarks

+
+

+ Performance comparison of JavaScript minification tools +

+
+
+ + +
+ ) +} + +export default MinificationBenchmarksPage \ No newline at end of file diff --git a/apps/dashboard/src/pages/RolldownStatsPage.tsx b/apps/dashboard/src/pages/RolldownStatsPage.tsx new file mode 100644 index 0000000..1993866 --- /dev/null +++ b/apps/dashboard/src/pages/RolldownStatsPage.tsx @@ -0,0 +1,30 @@ +import { useState } from 'react' +import { BarChart3 } from 'lucide-react' +import RolldownStats from '../RolldownStats' + +function RolldownStatsPage() { + const [selectedMetric, setSelectedMetric] = useState('bundleSize') + + return ( +
+
+
+
+ +

Rolldown-Vite Dashboard

+
+

+ Statistics collected from different Rolldown-Vite versions +

+
+
+ + +
+ ) +} + +export default RolldownStatsPage \ No newline at end of file diff --git a/minification-benchmarks-data.json b/minification-benchmarks-data.json new file mode 100644 index 0000000..871bd74 --- /dev/null +++ b/minification-benchmarks-data.json @@ -0,0 +1,2086 @@ +{ + "react": { + "version": "17.0.2", + "filePath": "/cjs/react.development.js", + "size": 72132, + "gzipSize": 19385, + "minified": { + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 22641, + "minzippedBytes": 8177, + "time": 496.9757794, + "runs": 5 + } + } + }, + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 22812, + "minzippedBytes": 8186, + "time": 12.1451782, + "runs": 5 + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "data": { + "minifiedBytes": 22843, + "minzippedBytes": 8216, + "time": 1047.0273668, + "runs": 5 + } + } + }, + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 23052, + "minzippedBytes": 8255, + "time": 274.551738, + "runs": 5 + } + } + }, + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 23245, + "minzippedBytes": 8396, + "time": 3.1556648000000003, + "runs": 5 + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "data": { + "minifiedBytes": 23601, + "minzippedBytes": 8448, + "time": 646.9409106, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 23699, + "minzippedBytes": 8542, + "time": 14.644507200000001, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 23494, + "minzippedBytes": 8628, + "time": 2.5089859999999997, + "runs": 5 + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "data": { + "minifiedBytes": 23993, + "minzippedBytes": 8661, + "time": 12.6656054, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 25030, + "minzippedBytes": 8668, + "time": 91.1176644, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 25063, + "minzippedBytes": 8739, + "time": 117.94929340000002, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 40036, + "minzippedBytes": 10858, + "time": 12.010004400000001, + "runs": 5 + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "data": { + "minifiedBytes": 40821, + "minzippedBytes": 11040, + "time": 125.73683779999999, + "runs": 5 + } + } + } + } + }, + "moment": { + "version": "2.29.1", + "filePath": "/moment.js", + "size": 173902, + "gzipSize": 36231, + "minified": { + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 57728, + "minzippedBytes": 18568, + "time": 1148.7919532, + "runs": 5 + } + } + }, + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 59010, + "minzippedBytes": 18689, + "time": 693.0884932000001, + "runs": 5 + } + } + }, + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 58424, + "minzippedBytes": 18747, + "time": 28.7603562, + "runs": 5 + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "data": { + "minifiedBytes": 58293, + "minzippedBytes": 18923, + "time": 1228.7687749999998, + "runs": 5 + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "data": { + "minifiedBytes": 59703, + "minzippedBytes": 19119, + "time": 1465.0631562, + "runs": 5 + } + } + }, + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 59450, + "minzippedBytes": 19244, + "time": 8.599861200000001, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 59818, + "minzippedBytes": 19333, + "time": 20.489266999999998, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 59889, + "minzippedBytes": 19480, + "time": 5.285310600000001, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 62495, + "minzippedBytes": 19569, + "time": 214.5709446, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 63011, + "minzippedBytes": 19651, + "time": 288.9846528, + "runs": 5 + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "data": { + "minifiedBytes": 61836, + "minzippedBytes": 19857, + "time": 17.228784400000002, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 95933, + "minzippedBytes": 24744, + "time": 10.408164399999999, + "runs": 5 + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "data": { + "minifiedBytes": 97632, + "minzippedBytes": 24998, + "time": 284.4643002, + "runs": 5 + } + } + } + } + }, + "jquery": { + "version": "3.5.1", + "filePath": "/dist/jquery.js", + "size": 287628, + "gzipSize": 84498, + "minified": { + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 89244, + "minzippedBytes": 30856, + "time": 920.8123079999999, + "runs": 5 + } + } + }, + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 89173, + "minzippedBytes": 30866, + "time": 45.252684, + "runs": 5 + } + } + }, + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 88448, + "minzippedBytes": 30903, + "time": 1592.905865, + "runs": 5 + } + } + }, + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 89287, + "minzippedBytes": 30966, + "time": 14.536240600000003, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 89681, + "minzippedBytes": 31446, + "time": 8.5301818, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 94082, + "minzippedBytes": 31470, + "time": 313.6579852, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 94258, + "minzippedBytes": 31555, + "time": 372.5247128, + "runs": 5 + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "data": { + "minifiedBytes": 92103, + "minzippedBytes": 31799, + "time": 2397.5567532, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 90073, + "minzippedBytes": 31955, + "time": 36.434889, + "runs": 5 + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "data": { + "minifiedBytes": 92548, + "minzippedBytes": 32653, + "time": 26.853957199999996, + "runs": 5 + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "data": { + "minifiedBytes": 92729, + "minzippedBytes": 33092, + "time": 1357.3189418, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 141454, + "minzippedBytes": 40365, + "time": 21.9325996, + "runs": 5 + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "data": { + "minifiedBytes": 144144, + "minzippedBytes": 40879, + "time": 361.25692, + "runs": 5 + } + } + } + } + }, + "vue": { + "version": "2.6.12", + "filePath": "/dist/vue.js", + "size": 342146, + "gzipSize": 89668, + "minified": { + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 115693, + "minzippedBytes": 42730, + "time": 61.95181279999999, + "runs": 5 + } + } + }, + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 116604, + "minzippedBytes": 42870, + "time": 1143.4689174, + "runs": 5 + } + } + }, + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 113796, + "minzippedBytes": 43036, + "time": 2205.7858818, + "runs": 5 + } + } + }, + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 117008, + "minzippedBytes": 43241, + "time": 18.3407382, + "runs": 5 + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "data": { + "minifiedBytes": 117896, + "minzippedBytes": 43925, + "time": 2695.911624, + "runs": 5 + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "data": { + "minifiedBytes": 115605, + "minzippedBytes": 44184, + "time": 1471.6905998000002, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 117698, + "minzippedBytes": 44367, + "time": 12.281387200000001, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 118144, + "minzippedBytes": 44373, + "time": 40.82703780000001, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 126137, + "minzippedBytes": 44450, + "time": 364.40576219999997, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 126386, + "minzippedBytes": 44636, + "time": 441.904378, + "runs": 5 + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "data": { + "minifiedBytes": 121496, + "minzippedBytes": 45400, + "time": 28.852307000000003, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 193907, + "minzippedBytes": 56356, + "time": 23.0388784, + "runs": 5 + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "data": { + "minifiedBytes": 197357, + "minzippedBytes": 57169, + "time": 477.7607884, + "runs": 5 + } + } + } + } + }, + "lodash": { + "version": "4.17.21", + "filePath": "/lodash.js", + "size": 544089, + "gzipSize": 96690, + "minified": { + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 68167, + "minzippedBytes": 24686, + "time": 1688.5425219999997, + "runs": 5 + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "data": { + "minifiedBytes": 73502, + "minzippedBytes": 25022, + "time": 1531.4422749999999, + "runs": 5 + } + } + }, + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 70408, + "minzippedBytes": 25152, + "time": 1028.4189818, + "runs": 5 + } + } + }, + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 69811, + "minzippedBytes": 25240, + "time": 49.850932799999995, + "runs": 5 + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "data": { + "minifiedBytes": 72367, + "minzippedBytes": 25503, + "time": 2082.6992265999997, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 74607, + "minzippedBytes": 25862, + "time": 332.6733872, + "runs": 5 + } + } + }, + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 71177, + "minzippedBytes": 25976, + "time": 13.872408400000001, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 75035, + "minzippedBytes": 26187, + "time": 393.1307176, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 72497, + "minzippedBytes": 26204, + "time": 33.5148896, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 71895, + "minzippedBytes": 26498, + "time": 11.588117, + "runs": 5 + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "data": { + "minifiedBytes": 73448, + "minzippedBytes": 26655, + "time": 22.399882400000003, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 146273, + "minzippedBytes": 35944, + "time": 12.930271199999998, + "runs": 5 + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "data": { + "minifiedBytes": 148780, + "minzippedBytes": 36327, + "time": 371.0038666, + "runs": 5 + } + } + } + } + }, + "d3": { + "version": "6.3.1", + "filePath": "/dist/d3.js", + "size": 555767, + "gzipSize": 130686, + "minified": { + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 263558, + "minzippedBytes": 87016, + "time": 3926.9689769999995, + "runs": 5 + } + } + }, + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 265215, + "minzippedBytes": 87205, + "time": 133.5562306, + "runs": 5 + } + } + }, + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 267417, + "minzippedBytes": 87997, + "time": 2338.2048836, + "runs": 5 + } + } + }, + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 270779, + "minzippedBytes": 88098, + "time": 41.199357199999994, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 275347, + "minzippedBytes": 88319, + "time": 710.7314338, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 276125, + "minzippedBytes": 89069, + "time": 1019.8746441999999, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 269413, + "minzippedBytes": 89880, + "time": 33.9365498, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 270207, + "minzippedBytes": 90809, + "time": 68.2451408, + "runs": 5 + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "data": { + "minifiedBytes": 273406, + "minzippedBytes": 92395, + "time": 47.3571204, + "runs": 5 + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "data": { + "minifiedBytes": 270317, + "minzippedBytes": 94166, + "time": 2239.5654332, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 393697, + "minzippedBytes": 103813, + "time": 28.0347076, + "runs": 5 + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "error": { + "message": "unknown: Cannot read properties of undefined (reading 'add')", + "stack": "TypeError: unknown: Cannot read properties of undefined (reading 'add')\n at ScopeTracker.addReference (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/scope-tracker.js:47:34)\n at ReferencedIdentifier (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:202:26)\n at newFn (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/visitors.js:216:17)\n at bfsTraverse (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/bfs-traverse.js:38:43)\n at Mangler.collect (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:235:7)\n at Mangler.run (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:60:12)\n at PluginPass.exit (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:546:19)\n at newFn (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/visitors.js:175:21)\n at NodePath._call (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/path/context.js:55:20)\n at NodePath.call (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/path/context.js:42:17)", + "stage": "minification" + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "error": { + "message": "RuntimeException: Unclosed regex pattern at position: 289075 in /packages/minifiers/vendor/tedivm/jshrink/src/JShrink/Minifier.php:660", + "stack": "Stack trace:\n#0 /packages/minifiers/vendor/tedivm/jshrink/src/JShrink/Minifier.php(302): JShrink\\Minifier->saveRegex()\n#1 /packages/minifiers/vendor/tedivm/jshrink/src/JShrink/Minifier.php(164): JShrink\\Minifier->loop()\n#2 /packages/minifiers/vendor/tedivm/jshrink/src/JShrink/Minifier.php(139): JShrink\\Minifier->minifyToString()\n#3 /packages/minifiers/minifiers/jshrink/jshrink.php(8): JShrink\\Minifier::minify()\n#4 {main}", + "stage": "minification" + } + } + } + } + }, + "terser": { + "version": "5.30.3", + "filePath": "/dist/bundle.min.js", + "size": 1009635, + "gzipSize": 193763, + "minified": { + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 439583, + "minzippedBytes": 122123, + "time": 45.070734, + "runs": 5 + } + } + }, + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 455518, + "minzippedBytes": 123258, + "time": 123.34301599999999, + "runs": 5 + } + } + }, + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 451192, + "minzippedBytes": 123334, + "time": 3786.5722984, + "runs": 5 + } + } + }, + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 456593, + "minzippedBytes": 123346, + "time": 2226.7631194, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 472579, + "minzippedBytes": 124253, + "time": 965.7785854, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 472162, + "minzippedBytes": 124609, + "time": 778.440208, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 456604, + "minzippedBytes": 124884, + "time": 37.561242, + "runs": 5 + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "data": { + "minifiedBytes": 439974, + "minzippedBytes": 126454, + "time": 2140.9360084, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 458925, + "minzippedBytes": 126711, + "time": 61.586201599999995, + "runs": 5 + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "data": { + "minifiedBytes": 466803, + "minzippedBytes": 127653, + "time": 41.417042800000004, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 625930, + "minzippedBytes": 144303, + "time": 23.2993394, + "runs": 5 + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "data": { + "minifiedBytes": 633710, + "minzippedBytes": 145178, + "time": 1337.417236, + "runs": 5 + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "error": { + "message": "unknown: Cannot read properties of undefined (reading 'add')", + "stack": "TypeError: unknown: Cannot read properties of undefined (reading 'add')\n at ScopeTracker.addReference (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/scope-tracker.js:47:34)\n at ReferencedIdentifier (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:202:26)\n at newFn (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/visitors.js:216:17)\n at bfsTraverse (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/bfs-traverse.js:38:43)\n at Mangler.collect (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:235:7)\n at Mangler.run (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:60:12)\n at PluginPass.exit (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:546:19)\n at newFn (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/visitors.js:175:21)\n at NodePath._call (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/path/context.js:55:20)\n at NodePath.call (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/path/context.js:42:17)", + "stage": "minification" + } + } + } + } + }, + "three": { + "version": "0.124.0", + "filePath": "/build/three.js", + "size": 1247235, + "gzipSize": 248267, + "minified": { + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 643030, + "minzippedBytes": 158751, + "time": 186.72430260000002, + "runs": 5 + } + } + }, + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 641593, + "minzippedBytes": 159071, + "time": 5046.1294526, + "runs": 5 + } + } + }, + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 653180, + "minzippedBytes": 159165, + "time": 2984.6040494, + "runs": 5 + } + } + }, + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 645653, + "minzippedBytes": 160068, + "time": 59.954443000000005, + "runs": 5 + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "data": { + "minifiedBytes": 644520, + "minzippedBytes": 162771, + "time": 3252.6717416, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 674490, + "minzippedBytes": 163036, + "time": 993.953499, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 675428, + "minzippedBytes": 163181, + "time": 1294.1005918, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 646934, + "minzippedBytes": 163747, + "time": 88.20525, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 642468, + "minzippedBytes": 164615, + "time": 51.11986699999999, + "runs": 5 + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "data": { + "minifiedBytes": 655932, + "minzippedBytes": 166210, + "time": 53.3063676, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 941063, + "minzippedBytes": 191965, + "time": 24.0326054, + "runs": 5 + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "data": { + "minifiedBytes": 952007, + "minzippedBytes": 193471, + "time": 1713.5111401999998, + "runs": 5 + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "error": { + "message": "timeout" + } + } + } + } + }, + "victory": { + "version": "35.8.4", + "filePath": "/dist/victory.js", + "size": 2132722, + "gzipSize": 309942, + "minified": { + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 694781, + "minzippedBytes": 157435, + "time": 6578.685240199999, + "runs": 5 + } + } + }, + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 705986, + "minzippedBytes": 157754, + "time": 261.4591094, + "runs": 5 + } + } + }, + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 712872, + "minzippedBytes": 158459, + "time": 4041.5376894, + "runs": 5 + } + } + }, + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 713542, + "minzippedBytes": 161467, + "time": 89.6914934, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 717114, + "minzippedBytes": 165017, + "time": 54.302933800000005, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 756623, + "minzippedBytes": 166176, + "time": 1572.7221264, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 756530, + "minzippedBytes": 167579, + "time": 1314.1042733999998, + "runs": 5 + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "data": { + "minifiedBytes": 705934, + "minzippedBytes": 175469, + "time": 3799.0975919999996, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 725650, + "minzippedBytes": 181233, + "time": 122.381871, + "runs": 5 + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "data": { + "minifiedBytes": 727899, + "minzippedBytes": 182671, + "time": 75.2266094, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 1433404, + "minzippedBytes": 221118, + "time": 34.2264782, + "runs": 5 + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "error": { + "message": "unknown: Cannot read properties of undefined (reading 'add')", + "stack": "TypeError: unknown: Cannot read properties of undefined (reading 'add')\n at ScopeTracker.addReference (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/scope-tracker.js:47:34)\n at ReferencedIdentifier (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:202:26)\n at newFn (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/visitors.js:216:17)\n at bfsTraverse (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/bfs-traverse.js:38:43)\n at Mangler.collect (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:235:7)\n at Mangler.run (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:60:12)\n at PluginPass.exit (/node_modules/.pnpm/babel-plugin-minify-mangle-names@0.5.1/node_modules/babel-plugin-minify-mangle-names/lib/index.js:546:19)\n at newFn (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/visitors.js:175:21)\n at NodePath._call (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/path/context.js:55:20)\n at NodePath.call (/node_modules/.pnpm/@babel+traverse@7.12.12/node_modules/@babel/traverse/lib/path/context.js:42:17)", + "stage": "minification" + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "error": { + "message": "Unexpected token '~'", + "stack": "fs-require://2/index.js:594\nreturn function(key,value){if(stack.length>0){var thisPos=stack.indexOf(this)~thisPos?stack.splice(thisPos+1):stack.push(this)~thisPos?keys.splice(thisPos,Infinity,key):keys.push(key)\n ^\n\nSyntaxError: Unexpected token '~'\n at new Script (node:vm:116:7)\n at createScript (node:vm:268:10)\n at Object.runInThisContext (node:vm:316:10)\n at p. (file:///node_modules/.pnpm/fs-require@1.6.0/node_modules/fs-require/dist/index.mjs:1:1165)\n at s (file:///node_modules/.pnpm/fs-require@1.6.0/node_modules/fs-require/dist/index.mjs:1:1657)\n at requireString (/packages/artifacts/utils/require-string.ts:9:9)\n at Artifact.validate (/packages/artifacts/utils/artifact.ts:100:23)\n at (/packages/bench/benchmark/cli.ts:98:2)", + "stage": "post-validation" + } + } + } + } + }, + "echarts": { + "version": "5.1.1", + "filePath": "/dist/echarts.js", + "size": 3196329, + "gzipSize": 684611, + "minified": { + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 994070, + "minzippedBytes": 321110, + "time": 541.0395758000001, + "runs": 5 + } + } + }, + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 998445, + "minzippedBytes": 321556, + "time": 6086.235555, + "runs": 5 + } + } + }, + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 1003804, + "minzippedBytes": 323648, + "time": 203.62955440000002, + "runs": 5 + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "data": { + "minifiedBytes": 991092, + "minzippedBytes": 328037, + "time": 5145.6046416, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 1069227, + "minzippedBytes": 330348, + "time": 2683.738582, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 1068386, + "minzippedBytes": 331412, + "time": 1756.3432927999997, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 1011956, + "minzippedBytes": 331621, + "time": 188.35948, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 1013910, + "minzippedBytes": 331789, + "time": 114.91252320000001, + "runs": 5 + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "data": { + "minifiedBytes": 1024688, + "minzippedBytes": 337934, + "time": 122.47312159999998, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 1770178, + "minzippedBytes": 434451, + "time": 45.795898, + "runs": 5 + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "error": { + "message": "timeout" + } + } + }, + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "error": { + "message": "timeout" + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "error": { + "message": "RuntimeException: Unclosed regex pattern at position: 37315 in /packages/minifiers/vendor/tedivm/jshrink/src/JShrink/Minifier.php:660", + "stack": "Stack trace:\n#0 /packages/minifiers/vendor/tedivm/jshrink/src/JShrink/Minifier.php(302): JShrink\\Minifier->saveRegex()\n#1 /packages/minifiers/vendor/tedivm/jshrink/src/JShrink/Minifier.php(164): JShrink\\Minifier->loop()\n#2 /packages/minifiers/vendor/tedivm/jshrink/src/JShrink/Minifier.php(139): JShrink\\Minifier->minifyToString()\n#3 /packages/minifiers/minifiers/jshrink/jshrink.php(8): JShrink\\Minifier::minify()\n#4 {main}", + "stage": "minification" + } + } + } + } + }, + "antd": { + "version": "4.16.1", + "filePath": "/dist/antd.js", + "size": 6672611, + "gzipSize": 825175, + "minified": { + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 2145894, + "minzippedBytes": 452400, + "time": 682.9486800000001, + "runs": 5 + } + } + }, + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 2220461, + "minzippedBytes": 456937, + "time": 285.818411, + "runs": 5 + } + } + }, + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 2244769, + "minzippedBytes": 457352, + "time": 7180.1554232, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 2292513, + "minzippedBytes": 471796, + "time": 138.3470482, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 2420814, + "minzippedBytes": 474973, + "time": 3144.4844826, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 2420587, + "minzippedBytes": 478572, + "time": 2524.760631, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 2311632, + "minzippedBytes": 488421, + "time": 300.129338, + "runs": 5 + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "data": { + "minifiedBytes": 2296786, + "minzippedBytes": 491833, + "time": 168.6869766, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 4428662, + "minzippedBytes": 623370, + "time": 73.88052719999999, + "runs": 5 + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "data": { + "minifiedBytes": 4449283, + "minzippedBytes": 626675, + "time": 7276.2058372, + "runs": 5 + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "error": { + "message": "timeout" + } + } + }, + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "error": { + "message": "timeout" + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "error": { + "message": "timeout" + } + } + } + } + }, + "typescript": { + "version": "4.9.5", + "filePath": "/lib/typescript.js", + "size": 10945727, + "gzipSize": 1884998, + "minified": { + "oxc-minify": { + "minifierPath": "oxc-minify.ts", + "version": "0.86.0", + "configHash": "adfabf738f", + "result": { + "data": { + "minifiedBytes": 3336798, + "minzippedBytes": 855247, + "time": 613.7153956, + "runs": 5 + } + } + }, + "@swc/core": { + "minifierPath": "swc.ts", + "version": "1.13.5", + "configHash": "349d426e0a", + "result": { + "data": { + "minifiedBytes": 3307908, + "minzippedBytes": 859044, + "time": 1526.4316551999998, + "runs": 5 + } + } + }, + "@tdewolff/minify": { + "minifierPath": "tdewolff-minify.ts", + "version": "2.24.2", + "configHash": "38ae91bbd1", + "result": { + "data": { + "minifiedBytes": 3348166, + "minzippedBytes": 875823, + "time": 259.181507, + "runs": 5 + } + } + }, + "uglify-js (no compress)": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "data": { + "minifiedBytes": 3538024, + "minzippedBytes": 876535, + "time": 4029.2976471999996, + "runs": 5 + } + } + }, + "terser (no compress)": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "data": { + "minifiedBytes": 3525593, + "minzippedBytes": 878642, + "time": 5316.191062600001, + "runs": 5 + } + } + }, + "esbuild": { + "minifierPath": "esbuild.ts", + "version": "0.25.9", + "configHash": "f235d34b26", + "result": { + "data": { + "minifiedBytes": 3489829, + "minzippedBytes": 915590, + "time": 490.5950317999999, + "runs": 5 + } + } + }, + "@cminify/cminify-linux-x64": { + "minifierPath": "cminify.ts", + "version": "3.0.1", + "configHash": "d14f2a4dad", + "result": { + "data": { + "minifiedBytes": 5853398, + "minzippedBytes": 1128072, + "time": 111.0135956, + "runs": 5 + } + } + }, + "terser": { + "minifierPath": "terser.ts", + "version": "5.43.1", + "configHash": "fb23c51035", + "result": { + "error": { + "message": "timeout" + } + } + }, + "babel-minify": { + "minifierPath": "babel-minify.ts", + "version": "0.5.2", + "configHash": "0774252772", + "result": { + "error": { + "message": "timeout" + } + } + }, + "uglify-js": { + "minifierPath": "uglify-js.ts", + "version": "3.19.3", + "configHash": "4beb4311b5", + "result": { + "error": { + "message": "timeout" + } + } + }, + "tedivm/jshrink": { + "minifierPath": "jshrink/index.ts", + "version": "1.8.0", + "configHash": "97050c77cb", + "result": { + "error": { + "message": "timeout" + } + } + }, + "google-closure-compiler": { + "minifierPath": "google-closure-compiler.ts", + "version": "20250820.0.0", + "configHash": "004f9ddc59", + "result": { + "error": { + "message": "timeout" + } + } + }, + "bun": { + "minifierPath": "bun.ts", + "version": "1.2.21", + "configHash": "cd9d902c70", + "result": { + "error": { + "message": "Expected values to be strictly equal:\n+ actual - expected\n\n+ 'var x = function () { return \"string\"; };\\r\\n'\n- 'var x = function () { return \"string\"; };\\n'", + "stack": "AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n+ actual - expected\n\n+ 'var x = function () { return \"string\"; };\\r\\n'\n- 'var x = function () { return \"string\"; };\\n'\n at Object.run (/packages/artifacts/artifacts/typescript/test.ts:13:10)\n at Artifact.validate (/packages/artifacts/utils/artifact.ts:101:15)\n at (/packages/bench/benchmark/cli.ts:98:2)", + "stage": "post-validation" + } + } + } + } + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0e042b2..3c35f7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,6 +29,9 @@ importers: react-dom: specifier: ^19.1.1 version: 19.1.1(react@19.1.1) + react-router-dom: + specifier: ^7.8.2 + version: 7.8.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1) recharts: specifier: ^2.12.6 version: 2.15.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -39,6 +42,9 @@ importers: '@types/react-dom': specifier: ^19.1.7 version: 19.1.7(@types/react@19.1.11) + '@types/react-router-dom': + specifier: ^5.3.3 + version: 5.3.3 rolldown-vite: specifier: 7.1.4 version: 7.1.4(@types/node@20.19.11)(esbuild@0.25.9) @@ -512,6 +518,9 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/history@4.7.11': + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + '@types/node@20.19.11': resolution: {integrity: sha512-uug3FEEGv0r+jrecvUUpbY8lLisvIjg6AAic6a2bSP5OEOLeJsDSnvhCDov7ipFFMXS3orMpzlmi0ZcuGkBbow==} @@ -520,6 +529,12 @@ packages: peerDependencies: '@types/react': ^19.0.0 + '@types/react-router-dom@5.3.3': + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + + '@types/react-router@5.1.20': + resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} + '@types/react@19.1.11': resolution: {integrity: sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==} @@ -581,6 +596,10 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -837,6 +856,23 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-router-dom@7.8.2: + resolution: {integrity: sha512-Z4VM5mKDipal2jQ385H6UBhiiEDlnJPx6jyWsTYoZQdl5TrjxEV2a9yl3Fi60NBJxYzOTGTTHXPi0pdizvTwow==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' + + react-router@7.8.2: + resolution: {integrity: sha512-7M2fR1JbIZ/jFWqelpvSZx+7vd7UlBTfdZqf6OSdF9g6+sfdqJDAWcak6ervbHph200ePlu+7G8LdoiC3ReyAQ==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true + react-smooth@4.0.4: resolution: {integrity: sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==} peerDependencies: @@ -915,6 +951,9 @@ packages: scheduler@0.26.0: resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + set-cookie-parser@2.7.1: + resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -1344,6 +1383,8 @@ snapshots: '@types/estree@1.0.8': {} + '@types/history@4.7.11': {} + '@types/node@20.19.11': dependencies: undici-types: 6.21.0 @@ -1353,6 +1394,17 @@ snapshots: dependencies: '@types/react': 19.1.11 + '@types/react-router-dom@5.3.3': + dependencies: + '@types/history': 4.7.11 + '@types/react': 19.1.11 + '@types/react-router': 5.1.20 + + '@types/react-router@5.1.20': + dependencies: + '@types/history': 4.7.11 + '@types/react': 19.1.11 + '@types/react@19.1.11': dependencies: csstype: 3.1.3 @@ -1445,6 +1497,8 @@ snapshots: clsx@2.1.1: {} + cookie@1.0.2: {} + csstype@3.1.3: {} d3-array@3.2.4: @@ -1672,6 +1726,20 @@ snapshots: react-is@18.3.1: {} + react-router-dom@7.8.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + dependencies: + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) + react-router: 7.8.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + + react-router@7.8.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + dependencies: + cookie: 1.0.2 + react: 19.1.1 + set-cookie-parser: 2.7.1 + optionalDependencies: + react-dom: 19.1.1(react@19.1.1) + react-smooth@4.0.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: fast-equals: 5.2.2 @@ -1771,6 +1839,8 @@ snapshots: scheduler@0.26.0: {} + set-cookie-parser@2.7.1: {} + siginfo@2.0.0: {} source-map-js@1.2.1: {}