dashboard/new-dashboard/src/routes.ts (2,665 lines of code) (raw):

/* eslint-disable @typescript-eslint/prefer-literal-enum-member */ import { ParentRouteRecord, TypedRouteRecord } from "./components/common/route" import { KOTLIN_MAIN_METRICS } from "./components/kotlin/projects" import { eap } from "./configurators/ReleaseNightlyConfigurator" import type { PerformanceTestsProps } from "./components/common/PerformanceTests.vue" const COMPONENTS = { perfTests: () => import("./components/common/PerformanceTests.vue"), compareBuilds: () => import("./components/common/compare/CompareBuilds.vue"), startupDashboard: () => import("./components/common/StartupMetricsDashboard.vue"), compareBranches: () => import("./components/common/compare/CompareBranches.vue"), compareModes: () => import("./components/common/compare/CompareModes.vue"), } const MACHINES = { HETZNER: "linux-blade-hetzner", AWS_LINUX: "Linux EC2 C6id.8xlarge (32 vCPU Xeon, 64 GB)", } const enum ROUTE_PREFIX { Startup = "/ij", IntelliJ = "/intellij", IntelliJBuildTools = "/intellij/buildTools", IntelliJSharedIndexes = "/intellij/sharedIndexes", IntelliJKotlinK2Performance = "/intellij/kotlinK2Performance", IntelliJPackageChecker = "/intellij/packageChecker", PhpStorm = "/phpstorm", GoLand = "/goland", RubyMine = "/rubymine", Kotlin = "/kotlin", KotlinBuildTools = "/kotlinBuildTools", KotlinMemory = Kotlin + "/memory", Rust = "/rust", Scala = "/scala", JBR = "/jbr", Fleet = "/fleet", PyCharm = "/pycharm", WebStorm = "/webstorm", Bazel = "/bazel", Qodana = "/qodana", Clion = "/clion", Vcs = IntelliJ + "/vcs", EmbeddingSearch = IntelliJ + "/embeddingSearch", PerfUnit = "/perfUnit", IJent = "/ijent", ML = "/ml", DataGrip = "/datagrip", AIA = "/aia", KMT = "/kmt", Diogen = "/diogen", Toolbox = "/toolbox", LSP = "/lsp", } const TEST_ROUTE = "tests" const DEV_TEST_ROUTE = "testsDev" const DASHBOARD_ROUTE = "dashboard" const STARTUP_ROUTE = "startup" const PRODUCT_METRICS_ROUTE = "product-metrics" const COMPARE_ROUTE = "compare" const COMPARE_BRANCHES_ROUTE = "compareBranches" const COMPARE_MODES_ROUTE = "compareModes" enum ROUTES { StartupPulse = `${ROUTE_PREFIX.Startup}/pulse`, StartupPulseInstaller = `${ROUTE_PREFIX.Startup}/pulseInstaller`, StartupProgress = `${ROUTE_PREFIX.Startup}/progressOverTime`, StartupModuleLoading = `${ROUTE_PREFIX.Startup}/moduleLoading`, StartupGcAndMemory = `${ROUTE_PREFIX.Startup}/gcAndMemory`, StartupExplore = `${ROUTE_PREFIX.Startup}/explore`, StartupExploreInstaller = `${ROUTE_PREFIX.Startup}/exploreInstaller`, IntelliJStartupDashboard = `${ROUTE_PREFIX.IntelliJ}/${STARTUP_ROUTE}`, IntelliJProductMetricsDashboard = `${ROUTE_PREFIX.IntelliJ}/${PRODUCT_METRICS_ROUTE}`, IntelliJIndexingDashboard = `${ROUTE_PREFIX.IntelliJ}/indexingDashboard`, IntelliJJavaDashboard = `${ROUTE_PREFIX.IntelliJ}/javaDashboard`, IntelliJKotlinDashboard = `${ROUTE_PREFIX.IntelliJ}/kotlinDashboard`, IntelliJUltimateDashboard = `${ROUTE_PREFIX.IntelliJ}/ultimateDashboard`, IntelliJUIDashboard = `${ROUTE_PREFIX.IntelliJ}/uiDashboard`, IntelliJLaggingLatencyDashboard = `${ROUTE_PREFIX.IntelliJ}/laggingLatencyDashboard`, IntelliJEmbeddingSearchDashboard = `${ROUTE_PREFIX.EmbeddingSearch}/dashboard`, IntelliJK2Dashboard = `${ROUTE_PREFIX.IntelliJKotlinK2Performance}/${DASHBOARD_ROUTE}`, IntelliJDevTests = `${ROUTE_PREFIX.IntelliJ}/${DEV_TEST_ROUTE}`, IntelliJCompare = `${ROUTE_PREFIX.IntelliJ}/${COMPARE_ROUTE}`, IntelliJCompareBranches = `${ROUTE_PREFIX.IntelliJ}/${COMPARE_BRANCHES_ROUTE}`, IntelliJCompareModes = `${ROUTE_PREFIX.IntelliJ}/${COMPARE_MODES_ROUTE}`, IntelliJGradleDashboardDev = `${ROUTE_PREFIX.IntelliJBuildTools}/gradleDashboardDev`, IntelliJMavenDashboardDev = `${ROUTE_PREFIX.IntelliJBuildTools}/mavenDashboardDev`, IntelliJMavenImportersConfiguratorsDashboardDev = `${ROUTE_PREFIX.IntelliJBuildTools}/mavenImportersConfiguratorsDashboardDev`, IntelliJJpsDashboardDev = `${ROUTE_PREFIX.IntelliJBuildTools}/jpsDashboardDev`, IntelliJBuildTests = `${ROUTE_PREFIX.IntelliJBuildTools}/${TEST_ROUTE}`, IntelliJBuildTestsDev = `${ROUTE_PREFIX.IntelliJBuildTools}/${DEV_TEST_ROUTE}`, IntelliJSharedIndicesDashboard = `${ROUTE_PREFIX.IntelliJSharedIndexes}/${DASHBOARD_ROUTE}`, IntelliJSharedIndicesTests = `${ROUTE_PREFIX.IntelliJSharedIndexes}/${TEST_ROUTE}`, IntelliJPackageCheckerDashboard = `${ROUTE_PREFIX.IntelliJPackageChecker}/${DASHBOARD_ROUTE}`, IntelliJPackageCheckerTests = `${ROUTE_PREFIX.IntelliJPackageChecker}/${TEST_ROUTE}`, PhpStormProductMetricsDashboard = `${ROUTE_PREFIX.PhpStorm}/${PRODUCT_METRICS_ROUTE}`, PhpStormLLMDashboard = `${ROUTE_PREFIX.PhpStorm}/llmDashboard`, PhpStormIndexingDashboard = `${ROUTE_PREFIX.PhpStorm}/indexingDashboard`, PhpStormInspectionsDashboard = `${ROUTE_PREFIX.PhpStorm}/inspectionsDashboard`, PhpStormCodeEditingDashboard = `${ROUTE_PREFIX.PhpStorm}/codeEditingDashboard`, PhpStormStartupDashboard = `${ROUTE_PREFIX.PhpStorm}/${STARTUP_ROUTE}`, PhpStormWithPluginsDashboard = `${ROUTE_PREFIX.PhpStorm}/pluginsDashboard`, PhpStormTests = `${ROUTE_PREFIX.PhpStorm}/${TEST_ROUTE}`, PhpStormDevTests = `${ROUTE_PREFIX.PhpStorm}/${DEV_TEST_ROUTE}`, PhpStormWithPluginsTests = `${ROUTE_PREFIX.PhpStorm}/testsWithPlugins`, PhpStormCompareBranches = `${ROUTE_PREFIX.PhpStorm}/${COMPARE_BRANCHES_ROUTE}`, PhpStormCompareModes = `${ROUTE_PREFIX.PhpStorm}/${COMPARE_MODES_ROUTE}`, KotlinDashboard = `${ROUTE_PREFIX.Kotlin}/${DASHBOARD_ROUTE}`, KotlinDashboardDev = `${ROUTE_PREFIX.Kotlin}/${DASHBOARD_ROUTE}Dev`, KotlinUserScenariosDashboardDev = `${ROUTE_PREFIX.Kotlin}/Scenarios${DASHBOARD_ROUTE}Dev`, KotlinCodeAnalysisDev = `${ROUTE_PREFIX.Kotlin}/codeAnalysisDev `, KotlinTests = `${ROUTE_PREFIX.Kotlin}/${TEST_ROUTE}`, KotlinTestsDev = `${ROUTE_PREFIX.Kotlin}/${DEV_TEST_ROUTE}`, KotlinCompletionDev = `${ROUTE_PREFIX.Kotlin}/completionDev`, KotlinFindUsagesDev = `${ROUTE_PREFIX.Kotlin}/findUsagesDev`, KotlinRefactoringDev = `${ROUTE_PREFIX.Kotlin}/refactoringDev`, KotlinDebuggerDev = `${ROUTE_PREFIX.Kotlin}/debuggerDev`, KotlinScriptDev = `${ROUTE_PREFIX.Kotlin}/scriptDev`, KotlinK1VsK2Comparison = `${ROUTE_PREFIX.Kotlin}/k1VsK2Comparison`, KotlinK1VsK2ComparisonDev = `${ROUTE_PREFIX.Kotlin}/k1VsK2ComparisonDev`, KotlinCompare = `${ROUTE_PREFIX.Kotlin}/${COMPARE_ROUTE}`, KotlinMemoryDashboard = `${ROUTE_PREFIX.KotlinMemory}/dashboard`, KotlinMemoryDashboardDev = `${ROUTE_PREFIX.KotlinMemory}/dashboardDev`, KotlinCompareBranches = `${ROUTE_PREFIX.Kotlin}/${COMPARE_BRANCHES_ROUTE}`, KotlinCompareBranchesDev = `${ROUTE_PREFIX.Kotlin}/${COMPARE_BRANCHES_ROUTE}Dev`, GoLandStartupDashboard = `${ROUTE_PREFIX.GoLand}/${STARTUP_ROUTE}`, GoLandProductMetricsDashboard = `${ROUTE_PREFIX.GoLand}/${PRODUCT_METRICS_ROUTE}`, GoLandProductMetricsDashboardOld = `${ROUTE_PREFIX.GoLand}/${PRODUCT_METRICS_ROUTE}Old`, GoLandIndexingDashboard = `${ROUTE_PREFIX.GoLand}/indexingDashboard`, GoLandIndexingDashboardOld = `${ROUTE_PREFIX.GoLand}/indexingDashboardOld`, GoLandCompletionDashboard = `${ROUTE_PREFIX.GoLand}/completionDashboard`, GoLandCompletionDashboardOld = `${ROUTE_PREFIX.GoLand}/completionDashboardOld`, GoLandInspectionDashboard = `${ROUTE_PREFIX.GoLand}/inspectionsDashboard`, GoLandInspectionDashboardOld = `${ROUTE_PREFIX.GoLand}/inspectionsDashboardOld`, GoLandDebuggerDashboard = `${ROUTE_PREFIX.GoLand}/debuggerDashboard`, GoLandDebuggerDashboardOld = `${ROUTE_PREFIX.GoLand}/debuggerDashboardOld`, GoLandFindUsagesDashboard = `${ROUTE_PREFIX.GoLand}/findUsagesDashboard`, GoLandFindUsagesDashboardOld = `${ROUTE_PREFIX.GoLand}/findUsagesDashboardOld`, GoLandDFADashboard = `${ROUTE_PREFIX.GoLand}/dfaDashboard`, GoLandDFADashboardOld = `${ROUTE_PREFIX.GoLand}/dfaDashboardOld`, GoLandTests = `${ROUTE_PREFIX.GoLand}/${TEST_ROUTE}Dev`, GoLandTestsOld = `${ROUTE_PREFIX.GoLand}/${TEST_ROUTE}`, GoLandCompare = `${ROUTE_PREFIX.GoLand}/${COMPARE_ROUTE}`, GoLandCompareBranches = `${ROUTE_PREFIX.GoLand}/${COMPARE_BRANCHES_ROUTE}`, PyCharmStartupDashboard = `${ROUTE_PREFIX.PyCharm}/${STARTUP_ROUTE}`, PyCharmProductMetricsDashboard = `${ROUTE_PREFIX.PyCharm}/${PRODUCT_METRICS_ROUTE}`, PyCharmDashboard = `${ROUTE_PREFIX.PyCharm}/${DASHBOARD_ROUTE}Dev`, PyCharmOldDashboard = `${ROUTE_PREFIX.PyCharm}/${DASHBOARD_ROUTE}`, PyCharmTests = `${ROUTE_PREFIX.PyCharm}/${TEST_ROUTE}`, PyCharmDevTests = `${ROUTE_PREFIX.PyCharm}/${DEV_TEST_ROUTE}`, PyCharmCompare = `${ROUTE_PREFIX.PyCharm}/${COMPARE_ROUTE}`, PyCharmCompareBranches = `${ROUTE_PREFIX.PyCharm}/${COMPARE_BRANCHES_ROUTE}`, WebStormStartupDashboard = `${ROUTE_PREFIX.WebStorm}/${STARTUP_ROUTE}`, WebStormProductMetricsDashboard = `${ROUTE_PREFIX.WebStorm}/${PRODUCT_METRICS_ROUTE}`, WebStormDashboard = `${ROUTE_PREFIX.WebStorm}/${DASHBOARD_ROUTE}`, WebStormDashboardBuiltInVsNEXT = `${ROUTE_PREFIX.WebStorm}/dashboardBuiltInVsNext`, WebStormDashboardDelicateProjects = `${ROUTE_PREFIX.WebStorm}/dashboardDelicateProjects`, WebStormTests = `${ROUTE_PREFIX.WebStorm}/${TEST_ROUTE}Dev`, WebStormCompare = `${ROUTE_PREFIX.WebStorm}/${COMPARE_ROUTE}`, WebStormCompareBranches = `${ROUTE_PREFIX.WebStorm}/${COMPARE_BRANCHES_ROUTE}`, RubyStartupDashboard = `${ROUTE_PREFIX.RubyMine}/${STARTUP_ROUTE}`, RubyMineProductMetricsDashboard = `${ROUTE_PREFIX.RubyMine}/${PRODUCT_METRICS_ROUTE}Dev`, RubyMineDashboard = `${ROUTE_PREFIX.RubyMine}/${DASHBOARD_ROUTE}Dev`, RubyMineIndexingDashBoard = `${ROUTE_PREFIX.RubyMine}/indexingDashboardDev`, RubyMineInspectionsDashBoard = `${ROUTE_PREFIX.RubyMine}/inspectionsDashboardDev`, RubyMineTestsDev = `${ROUTE_PREFIX.RubyMine}/${DEV_TEST_ROUTE}`, RubyMineCompare = `${ROUTE_PREFIX.RubyMine}/${COMPARE_ROUTE}`, RubyMineCompareBranches = `${ROUTE_PREFIX.RubyMine}/${COMPARE_BRANCHES_ROUTE}`, RubyMineCompareModes = `${ROUTE_PREFIX.RubyMine}/${COMPARE_MODES_ROUTE}`, RustRoverDashboard = `${ROUTE_PREFIX.Rust}/rustPluginDashboard`, RustRoverDashboardDev = `${ROUTE_PREFIX.Rust}/rustPluginDashboardDev`, RustRoverProductMetricsDashboard = `${ROUTE_PREFIX.Rust}/${PRODUCT_METRICS_ROUTE}`, RustRoverProductMetricsDashboardDev = `${ROUTE_PREFIX.Rust}/${PRODUCT_METRICS_ROUTE}Dev`, RustRoverFirstStartupDashboard = `${ROUTE_PREFIX.Rust}/rustRoverFirstStartupDashboard`, RustRoverFirstStartupDashboardDev = `${ROUTE_PREFIX.Rust}/rustRoverFirstStartupDashboardDev`, RustTests = `${ROUTE_PREFIX.Rust}/${TEST_ROUTE}`, RustTestsDev = `${ROUTE_PREFIX.Rust}/${TEST_ROUTE}Dev`, RustCompare = `${ROUTE_PREFIX.Rust}/${COMPARE_ROUTE}`, RustCompareBranchesDev = `${ROUTE_PREFIX.Rust}/${COMPARE_BRANCHES_ROUTE}Dev`, RustCompareBranches = `${ROUTE_PREFIX.Rust}/${COMPARE_BRANCHES_ROUTE}`, ScalaTests = `${ROUTE_PREFIX.Scala}/${TEST_ROUTE}`, ScalaCompare = `${ROUTE_PREFIX.Scala}/${COMPARE_ROUTE}`, ScalaCompareBranches = `${ROUTE_PREFIX.Scala}/${COMPARE_BRANCHES_ROUTE}`, JBRTests = `${ROUTE_PREFIX.JBR}/${TEST_ROUTE}`, MapBenchDashboard = `${ROUTE_PREFIX.JBR}/mapbenchDashboard`, DaCapoDashboard = `${ROUTE_PREFIX.JBR}/dacapoDashboard`, J2DBenchDashboard = `${ROUTE_PREFIX.JBR}/j2dDashboard`, JavaDrawDashboard = `${ROUTE_PREFIX.JBR}/javaDrawDashboard`, RenderDashboard = `${ROUTE_PREFIX.JBR}/renderDashboard`, SPECjbb2015Dashboard = `${ROUTE_PREFIX.JBR}/specDashboard`, SwingMarkDashboard = `${ROUTE_PREFIX.JBR}/swingmarkDashboard`, FleetTest = `${ROUTE_PREFIX.Fleet}/${TEST_ROUTE}`, FleetPerfDashboard = `${ROUTE_PREFIX.Fleet}/perfDashboard`, FleetPerfStartupComparisonDashboard = `${ROUTE_PREFIX.Fleet}/startupComparisonDashboard`, FleetStartupDashboard = `${ROUTE_PREFIX.Fleet}/startupDashboard`, FleetStartupExplore = `${ROUTE_PREFIX.Fleet}/startupExplore`, BazelTest = `${ROUTE_PREFIX.Bazel}/${TEST_ROUTE}`, BazelPluginDashboard = `${ROUTE_PREFIX.Bazel}/BazelPluginDashboard`, QodanaTest = `${ROUTE_PREFIX.Qodana}/${TEST_ROUTE}`, ClionClassicStartupDashboard = `${ROUTE_PREFIX.Clion}/${STARTUP_ROUTE}`, ClionProductMetricsDashboard = `${ROUTE_PREFIX.Clion}/${PRODUCT_METRICS_ROUTE}`, ClionProductMetricsDashboardOld = `${ROUTE_PREFIX.Clion}/${PRODUCT_METRICS_ROUTE}Old`, ClionTest = `${ROUTE_PREFIX.Clion}/${DEV_TEST_ROUTE}`, ClionTestOld = `${ROUTE_PREFIX.Clion}/${TEST_ROUTE}`, ClionPerfDashboard = `${ROUTE_PREFIX.Clion}/perfDashboard`, ClionPerfDashboardOld = `${ROUTE_PREFIX.Clion}/perfDashboardOld`, ClionDetailedPerfDashboard = `${ROUTE_PREFIX.Clion}/detailedPerfDashboard`, ClionDetailedPerfDashboardOld = `${ROUTE_PREFIX.Clion}/detailedPerfDashboardOld`, ClionMemoryDashboard = `${ROUTE_PREFIX.Clion}/memoryDashboard`, ClionMemoryDashboardOld = `${ROUTE_PREFIX.Clion}/memoryDashboardOld`, ClionProjectModelDashboard = `${ROUTE_PREFIX.Clion}/projectModelDashboard`, ClionProjectModelDashboardOld = `${ROUTE_PREFIX.Clion}/projectModelDashboardOld`, ClionLaggingLatencyDashboard = `${ROUTE_PREFIX.Clion}/laggingLatencyDashboard`, ClionCompareBranches = `${ROUTE_PREFIX.Clion}/${COMPARE_BRANCHES_ROUTE}`, VcsIdeaDashboard = `${ROUTE_PREFIX.Vcs}/idea`, VcsSpaceDashboard = `${ROUTE_PREFIX.Vcs}/space`, VcsStarterDashboard = `${ROUTE_PREFIX.Vcs}/starter`, VcsIdeaDashboardDev = `${ROUTE_PREFIX.Vcs}/ideaDev`, VcsSpaceDashboardDev = `${ROUTE_PREFIX.Vcs}/spaceDev`, VcsStarterDashboardDev = `${ROUTE_PREFIX.Vcs}/starterDev`, PerfUnitTests = `${ROUTE_PREFIX.PerfUnit}/${TEST_ROUTE}`, IJentBenchmarksDashboard = `${ROUTE_PREFIX.IJent}/benchmarksDashboard`, IJentPerfTestsDashboard = `${ROUTE_PREFIX.IJent}/performanceDashboard`, IJentRawPerfData = `${ROUTE_PREFIX.IJent}/rawPerfData`, MLDevTests = `${ROUTE_PREFIX.ML}/dev/${DEV_TEST_ROUTE}`, AIAssistantApiTests = `${ROUTE_PREFIX.ML}/dev/apiTests`, AIAssistantTestGeneration = `${ROUTE_PREFIX.ML}/dev/testGeneration`, LLMDevTests = `${ROUTE_PREFIX.ML}/dev/llmDashboardDev`, AIAPrivacyDashboard = `${ROUTE_PREFIX.ML}/dev/aiaPrivacyDashboard`, DataGripProductMetricsDashboard = `${ROUTE_PREFIX.DataGrip}/${PRODUCT_METRICS_ROUTE}`, DataGripIndexingDashboard = `${ROUTE_PREFIX.DataGrip}/indexingDashboard`, AIATests = `${ROUTE_PREFIX.AIA}/${TEST_ROUTE}`, AIACompletionDashboard = `${ROUTE_PREFIX.AIA}/completion`, AIACodeGenerationDashboard = `${ROUTE_PREFIX.AIA}/codeGeneration`, AIAChatCodeGenerationDashboard = `${ROUTE_PREFIX.AIA}/chatCodeGeneration`, AIANameSuggestionDashboard = `${ROUTE_PREFIX.AIA}/nameSuggestion`, AIATestGenerationDashboard = `${ROUTE_PREFIX.AIA}/testGeneration`, KMTTests = `${ROUTE_PREFIX.KMT}/unitTests`, KMTIntegrationTests = `${ROUTE_PREFIX.KMT}/${TEST_ROUTE}`, KMTDashboard = `${ROUTE_PREFIX.KMT}/${DASHBOARD_ROUTE}`, DiogenTests = `${ROUTE_PREFIX.Diogen}/${TEST_ROUTE}`, ToolboxTests = `${ROUTE_PREFIX.Toolbox}/${TEST_ROUTE}`, KotlinBuildToolsTests = `${ROUTE_PREFIX.KotlinBuildTools}/${TEST_ROUTE}`, ToolboxTestsGwDeployDashboard = `${ROUTE_PREFIX.Toolbox}/gw-deploy`, LSPTests = `${ROUTE_PREFIX.LSP}/${TEST_ROUTE}`, LSPDashboard = `${ROUTE_PREFIX.LSP}/diagnosticDashboard`, ReportDegradations = "/degradations/report", MetricsDescription = "/metrics/description", BisectLauncher = "/bisect/launcher", } export interface Tab { url: ROUTES label: string } export interface SubProject { url: ROUTE_PREFIX label: string tabs: Tab[] } interface Product { url: ROUTE_PREFIX | ROUTES label: string children: SubProject[] } const TESTS_LABEL = "Tests" const COMPARE_BUILDS_LABEL = "Compare Builds" const COMPARE_BRANCHES_LABEL = "Compare Branches" const COMPARE_MODES_LABEL = "Compare Modes" const DASHBOARD_LABEL = "Dashboard" const STARTUP_LABEL = "Startup" const PRODUCT_METRICS_LABEL = "Product Metrics" const IJ_STARTUP: Product = { url: ROUTE_PREFIX.Startup, label: "IntelliJ Startup (deprecated)", children: [ { url: ROUTE_PREFIX.Startup, label: "", tabs: [ { url: ROUTES.StartupPulse, label: "Pulse", }, { url: ROUTES.StartupPulseInstaller, label: "Pulse (Installer)", }, { url: ROUTES.StartupModuleLoading, label: "Module Loading", }, { url: ROUTES.StartupGcAndMemory, label: "GC and Memory", }, { url: ROUTES.StartupProgress, label: "Progress Over Time", }, { url: ROUTES.StartupExplore, label: "Explore", }, { url: ROUTES.StartupExploreInstaller, label: "Explore (Installer)", }, ], }, ], } const IDEA: Product = { url: ROUTE_PREFIX.IntelliJ, label: "IDEA", children: [ { url: ROUTE_PREFIX.IntelliJ, label: "Primary Functionality", tabs: [ { url: ROUTES.IntelliJStartupDashboard, label: STARTUP_LABEL, }, { url: ROUTES.IntelliJProductMetricsDashboard, label: PRODUCT_METRICS_LABEL, }, { url: ROUTES.IntelliJIndexingDashboard, label: "Indexes", }, { url: ROUTES.IntelliJJavaDashboard, label: "Java", }, { url: ROUTES.IntelliJKotlinDashboard, label: "Kotlin", }, { url: ROUTES.IntelliJUltimateDashboard, label: "Ultimate", }, { url: ROUTES.IntelliJUIDashboard, label: "UI", }, { url: ROUTES.IntelliJLaggingLatencyDashboard, label: "Lagging/Latency", }, { url: ROUTES.IntelliJDevTests, label: "Tests (Dev)", }, { url: ROUTES.IntelliJCompareBranches, label: COMPARE_BRANCHES_LABEL, }, { url: ROUTES.IntelliJCompareModes, label: COMPARE_MODES_LABEL, }, ], }, { url: ROUTE_PREFIX.IntelliJBuildTools, label: "Build Tools", tabs: [ { url: ROUTES.IntelliJGradleDashboardDev, label: "Gradle Import DevServer", }, { url: ROUTES.IntelliJMavenDashboardDev, label: "Maven Import DevServer", }, { url: ROUTES.IntelliJMavenImportersConfiguratorsDashboardDev, label: "Maven Importers and Configurators DevServer", }, { url: ROUTES.IntelliJJpsDashboardDev, label: "JPS Import DevServer", }, { url: ROUTES.IntelliJBuildTests, label: TESTS_LABEL, }, { url: ROUTES.IntelliJBuildTestsDev, label: "Tests (DevServer)", }, ], }, { url: ROUTE_PREFIX.IntelliJSharedIndexes, label: "Shared Indexes", tabs: [ { url: ROUTES.IntelliJSharedIndicesDashboard, label: DASHBOARD_LABEL, }, { url: ROUTES.IntelliJSharedIndicesTests, label: TESTS_LABEL, }, ], }, { url: ROUTE_PREFIX.IntelliJKotlinK2Performance, label: "Performance K2", tabs: [ { url: ROUTES.IntelliJK2Dashboard, label: DASHBOARD_LABEL, }, ], }, { url: ROUTE_PREFIX.IntelliJPackageChecker, label: "Package Checker", tabs: [ { url: ROUTES.IntelliJPackageCheckerDashboard, label: DASHBOARD_LABEL, }, { url: ROUTES.IntelliJPackageCheckerTests, label: TESTS_LABEL, }, ], }, { url: ROUTE_PREFIX.Vcs, label: "VCS", tabs: [ { url: ROUTES.VcsIdeaDashboardDev, label: "Performance dashboard idea project DevServer", }, { url: ROUTES.VcsSpaceDashboardDev, label: "Performance dashboard space project DevServer", }, { url: ROUTES.VcsStarterDashboardDev, label: "Performance dashboard starter project DevServer", }, { url: ROUTES.VcsIdeaDashboard, label: "Performance dashboard idea project (obsolete)", }, { url: ROUTES.VcsSpaceDashboard, label: "Performance dashboard space project (obsolete)", }, { url: ROUTES.VcsStarterDashboard, label: "Performance dashboard starter project (obsolete)", }, ], }, { url: ROUTE_PREFIX.EmbeddingSearch, label: "Embedding Search", tabs: [ { url: ROUTES.IntelliJEmbeddingSearchDashboard, label: "Embedding Search", }, ], }, ], } const PHPSTORM: Product = { url: ROUTE_PREFIX.PhpStorm, label: "PhpStorm", children: [ { url: ROUTE_PREFIX.PhpStorm, label: "", tabs: [ { url: ROUTES.PhpStormStartupDashboard, label: STARTUP_LABEL, }, { url: ROUTES.PhpStormProductMetricsDashboard, label: PRODUCT_METRICS_LABEL, }, { url: ROUTES.PhpStormLLMDashboard, label: "LLM Dashboard", }, { url: ROUTES.PhpStormIndexingDashboard, label: "Indexing Dashboard", }, { url: ROUTES.PhpStormInspectionsDashboard, label: "Inspections Dashboard", }, { url: ROUTES.PhpStormCodeEditingDashboard, label: "Code Editing Dashboard", }, { url: ROUTES.PhpStormDevTests, label: TESTS_LABEL, }, { url: ROUTES.PhpStormCompareBranches, label: COMPARE_BRANCHES_LABEL, }, { url: ROUTES.PhpStormCompareModes, label: COMPARE_MODES_LABEL, }, { url: ROUTES.PhpStormWithPluginsDashboard, label: "Dashboard with Plugins", }, { url: ROUTES.PhpStormWithPluginsTests, label: "Tests with Plugins", }, ], }, ], } const KOTLIN: Product = { url: ROUTE_PREFIX.Kotlin, label: "Kotlin", children: [ { url: ROUTE_PREFIX.Kotlin, label: "K1 vs K2", tabs: [ { url: ROUTES.KotlinDashboardDev, label: DASHBOARD_LABEL + " (dev)", }, { url: ROUTES.KotlinUserScenariosDashboardDev, label: "User Scenarios(dev)", }, { url: ROUTES.KotlinDashboard, label: DASHBOARD_LABEL, }, { url: ROUTES.KotlinTests, label: TESTS_LABEL, }, { url: ROUTES.KotlinTestsDev, label: "Tests (dev)", }, { url: ROUTES.KotlinK1VsK2Comparison, label: "K1 vs. K2", }, { url: ROUTES.KotlinK1VsK2ComparisonDev, label: "K1 vs. K2 (dev)", }, { url: ROUTES.KotlinCompareBranches, label: COMPARE_BRANCHES_LABEL, }, { url: ROUTES.KotlinCompareBranchesDev, label: COMPARE_BRANCHES_LABEL + " (dev)", }, ], }, { url: ROUTE_PREFIX.KotlinMemory, label: "Memory dashboards", tabs: [ { url: ROUTES.KotlinMemoryDashboardDev, label: "Memory k1 vs k2 (dev)", }, { url: ROUTES.KotlinMemoryDashboard, label: "Memory k1 vs k2", }, ], }, ], } const GOLAND: Product = { url: ROUTE_PREFIX.GoLand, label: "GoLand", children: [ { url: ROUTE_PREFIX.GoLand, label: "Primary Functionality", tabs: [ { url: ROUTES.GoLandStartupDashboard, label: STARTUP_LABEL, }, { url: ROUTES.GoLandProductMetricsDashboard, label: PRODUCT_METRICS_LABEL, }, { url: ROUTES.GoLandProductMetricsDashboardOld, label: PRODUCT_METRICS_LABEL + " (Old)", }, { url: ROUTES.GoLandIndexingDashboard, label: "Indexing", }, { url: ROUTES.GoLandIndexingDashboardOld, label: "Indexing (Old)", }, { url: ROUTES.GoLandCompletionDashboard, label: "Completion", }, { url: ROUTES.GoLandCompletionDashboardOld, label: "Completion (Old)", }, { url: ROUTES.GoLandInspectionDashboard, label: "Inspections", }, { url: ROUTES.GoLandInspectionDashboardOld, label: "Inspections (Old)", }, { url: ROUTES.GoLandDebuggerDashboard, label: "Debugger", }, { url: ROUTES.GoLandDebuggerDashboardOld, label: "Debugger (Old)", }, { url: ROUTES.GoLandFindUsagesDashboard, label: "Find Usages", }, { url: ROUTES.GoLandFindUsagesDashboardOld, label: "Find Usages (Old)", }, { url: ROUTES.GoLandDFADashboard, label: "DFA", }, { url: ROUTES.GoLandDFADashboardOld, label: "DFA (Old)", }, { url: ROUTES.GoLandTests, label: TESTS_LABEL, }, { url: ROUTES.GoLandTestsOld, label: TESTS_LABEL + " (Old)", }, { url: ROUTES.GoLandCompareBranches, label: COMPARE_BRANCHES_LABEL, }, ], }, ], } const RUBYMINE: Product = { url: ROUTE_PREFIX.RubyMine, label: "RubyMine", children: [ { url: ROUTE_PREFIX.RubyMine, label: "", tabs: [ { url: ROUTES.RubyStartupDashboard, label: STARTUP_LABEL, }, { url: ROUTES.RubyMineProductMetricsDashboard, label: PRODUCT_METRICS_LABEL, }, { url: ROUTES.RubyMineDashboard, label: DASHBOARD_LABEL, }, { url: ROUTES.RubyMineInspectionsDashBoard, label: "Inspections", }, { url: ROUTES.RubyMineIndexingDashBoard, label: "Indexing", }, { url: ROUTES.RubyMineTestsDev, label: TESTS_LABEL, }, { url: ROUTES.RubyMineCompareBranches, label: COMPARE_BRANCHES_LABEL, }, { url: ROUTES.RubyMineCompareModes, label: COMPARE_MODES_LABEL, }, ], }, ], } const PYCHARM: Product = { url: ROUTE_PREFIX.PyCharm, label: "PyCharm", children: [ { url: ROUTE_PREFIX.PyCharm, label: "Primary Functionality", tabs: [ { url: ROUTES.PyCharmStartupDashboard, label: STARTUP_LABEL, }, { url: ROUTES.PyCharmProductMetricsDashboard, label: PRODUCT_METRICS_LABEL, }, { url: ROUTES.PyCharmDashboard, label: DASHBOARD_LABEL, }, { url: ROUTES.PyCharmOldDashboard, label: DASHBOARD_LABEL + " (Old)", }, { url: ROUTES.PyCharmDevTests, label: TESTS_LABEL, }, { url: ROUTES.PyCharmTests, label: TESTS_LABEL + " (Old)", }, { url: ROUTES.PyCharmCompareBranches, label: COMPARE_BRANCHES_LABEL, }, ], }, ], } const WEBSTORM: Product = { url: ROUTE_PREFIX.WebStorm, label: "WebStorm", children: [ { url: ROUTE_PREFIX.WebStorm, label: "", tabs: [ { url: ROUTES.WebStormStartupDashboard, label: STARTUP_LABEL, }, { url: ROUTES.WebStormProductMetricsDashboard, label: PRODUCT_METRICS_LABEL, }, { url: ROUTES.WebStormDashboard, label: DASHBOARD_LABEL, }, { url: ROUTES.WebStormDashboardBuiltInVsNEXT, label: "Built-in vs NEXT", }, { url: ROUTES.WebStormDashboardDelicateProjects, label: "Delicate Projects", }, { url: ROUTES.WebStormTests, label: TESTS_LABEL, }, { url: ROUTES.WebStormCompareBranches, label: COMPARE_BRANCHES_LABEL, }, ], }, ], } const RUST: Product = { url: ROUTE_PREFIX.Rust, label: "Rust", children: [ { url: ROUTE_PREFIX.Rust, label: "", tabs: [ { url: ROUTES.RustRoverFirstStartupDashboardDev, label: "RustRover First Startup Dashboard", }, { url: ROUTES.RustRoverFirstStartupDashboard, label: "RustRover First Startup Dashboard (Old)", }, { url: ROUTES.RustRoverProductMetricsDashboardDev, label: PRODUCT_METRICS_LABEL, }, { url: ROUTES.RustRoverProductMetricsDashboard, label: PRODUCT_METRICS_LABEL + " (Old)", }, { url: ROUTES.RustRoverDashboardDev, label: "RustRover Dashboard", }, { url: ROUTES.RustRoverDashboard, label: "RustRover Dashboard (Old)", }, { url: ROUTES.RustTestsDev, label: TESTS_LABEL, }, { url: ROUTES.RustTests, label: TESTS_LABEL + " (Old)", }, { url: ROUTES.RustCompareBranchesDev, label: COMPARE_BRANCHES_LABEL, }, { url: ROUTES.RustCompareBranches, label: COMPARE_BRANCHES_LABEL + " (Old)", }, ], }, ], } const SCALA: Product = { url: ROUTE_PREFIX.Scala, label: "Scala", children: [ { url: ROUTE_PREFIX.Scala, label: "", tabs: [ { url: ROUTES.ScalaTests, label: TESTS_LABEL, }, { url: ROUTES.ScalaCompareBranches, label: COMPARE_BRANCHES_LABEL, }, ], }, ], } const JBR: Product = { url: ROUTE_PREFIX.JBR, label: "JBR", children: [ { url: ROUTE_PREFIX.JBR, label: "", tabs: [ { url: ROUTES.DaCapoDashboard, label: "DaCapo", }, { url: ROUTES.J2DBenchDashboard, label: "J2DBench", }, { url: ROUTES.JavaDrawDashboard, label: "JavaDraw", }, { url: ROUTES.RenderDashboard, label: "Render", }, { url: ROUTES.SPECjbb2015Dashboard, label: "SPECjbb2015", }, { url: ROUTES.SwingMarkDashboard, label: "SwingMark", }, { url: ROUTES.MapBenchDashboard, label: "MapBench", }, { url: ROUTES.JBRTests, label: TESTS_LABEL, }, ], }, ], } const FLEET: Product = { url: ROUTE_PREFIX.Fleet, label: "Fleet", children: [ { url: ROUTE_PREFIX.Fleet, label: "", tabs: [ { url: ROUTES.FleetStartupDashboard, label: "Startup Dashboard", }, { url: ROUTES.FleetStartupExplore, label: "Startup Explore", }, { url: ROUTES.FleetPerfDashboard, label: "Performance Dashboard", }, { url: ROUTES.FleetPerfStartupComparisonDashboard, label: "Startup Comparison Dashboard", }, { url: ROUTES.FleetTest, label: TESTS_LABEL, }, ], }, ], } const BAZEL: Product = { url: ROUTE_PREFIX.Bazel, label: "Bazel", children: [ { url: ROUTE_PREFIX.Bazel, label: "", tabs: [ { url: ROUTES.BazelPluginDashboard, label: "Bazel Plugin Dashboard", }, { url: ROUTES.BazelTest, label: TESTS_LABEL, }, ], }, ], } const QODANA: Product = { url: ROUTE_PREFIX.Qodana, label: "Qodana", children: [ { url: ROUTE_PREFIX.Qodana, label: "", tabs: [ { url: ROUTES.QodanaTest, label: TESTS_LABEL, }, ], }, ], } const CLION: Product = { url: ROUTE_PREFIX.Clion, label: "CLion", children: [ { url: ROUTE_PREFIX.Clion, label: "", tabs: [ { url: ROUTES.ClionClassicStartupDashboard, label: "CLion Startup", }, { url: ROUTES.ClionProductMetricsDashboard, label: PRODUCT_METRICS_LABEL, }, { url: ROUTES.ClionProductMetricsDashboardOld, label: PRODUCT_METRICS_LABEL + " (Old)", }, { url: ROUTES.ClionPerfDashboard, label: "Performance", }, { url: ROUTES.ClionPerfDashboardOld, label: "Performance (Old)", }, { url: ROUTES.ClionDetailedPerfDashboard, label: "Detailed Performance", }, { url: ROUTES.ClionDetailedPerfDashboardOld, label: "Detailed Performance (Old)", }, { url: ROUTES.ClionMemoryDashboard, label: "Memory", }, { url: ROUTES.ClionMemoryDashboardOld, label: "Memory (Old)", }, { url: ROUTES.ClionProjectModelDashboard, label: "Project Model", }, { url: ROUTES.ClionProjectModelDashboardOld, label: "Project Model (Old)", }, { url: ROUTES.ClionLaggingLatencyDashboard, label: "Lagging/Latency", }, { url: ROUTES.ClionTest, label: TESTS_LABEL, }, { url: ROUTES.ClionTestOld, label: TESTS_LABEL + "(Old)", }, { url: ROUTES.ClionCompareBranches, label: COMPARE_BRANCHES_LABEL, }, ], }, ], } const DATAGRIP: Product = { url: ROUTE_PREFIX.DataGrip, label: "DataGrip", children: [ { url: ROUTE_PREFIX.DataGrip, label: "", tabs: [ { url: ROUTES.DataGripProductMetricsDashboard, label: PRODUCT_METRICS_LABEL, }, { url: ROUTES.DataGripIndexingDashboard, label: "Indexing", }, ], }, ], } const PERF_UNIT: Product = { url: ROUTE_PREFIX.PerfUnit, label: "Perf Unit Tests", children: [ { url: ROUTE_PREFIX.PerfUnit, label: "", tabs: [ { url: ROUTES.PerfUnitTests, label: "Tests", }, ], }, ], } const IJENT: Product = { url: ROUTE_PREFIX.IJent, label: "IJent", children: [ { url: ROUTE_PREFIX.IJent, label: "", tabs: [ { url: ROUTES.IJentBenchmarksDashboard, label: "Benchmarks Dashboard", }, { url: ROUTES.IJentPerfTestsDashboard, label: "Performance Dashboard", }, { url: ROUTES.IJentRawPerfData, label: "Raw Performance Data", }, ], }, ], } const ML_TESTS: Product = { url: ROUTE_PREFIX.ML, label: "ML Tests", children: [ { url: ROUTE_PREFIX.ML, label: "", tabs: [ { url: ROUTES.AIAssistantApiTests, label: "AI Assistant Api Tests", }, { url: ROUTES.AIAssistantTestGeneration, label: "Test generation", }, { url: ROUTES.LLMDevTests, label: "AIA Dashboard", }, { url: ROUTES.AIAPrivacyDashboard, label: "AIA Privacy Dashboard", }, { url: ROUTES.MLDevTests, label: "ML Tests on dev-server/fast-installer", }, ], }, ], } const AIA: Product = { url: ROUTE_PREFIX.AIA, label: "AIA", children: [ { url: ROUTE_PREFIX.AIA, label: "", tabs: [ { url: ROUTES.AIATests, label: "All", }, { url: ROUTES.AIACompletionDashboard, label: "Completion", }, { url: ROUTES.AIACodeGenerationDashboard, label: "Code Generation", }, { url: ROUTES.AIAChatCodeGenerationDashboard, label: "Chat Code Generation", }, { url: ROUTES.AIANameSuggestionDashboard, label: "Name Suggestion", }, { url: ROUTES.AIATestGenerationDashboard, label: "Test Generation", }, ], }, ], } const KMT: Product = { url: ROUTE_PREFIX.KMT, label: "KMT", children: [ { url: ROUTE_PREFIX.KMT, label: "", tabs: [ { url: ROUTES.KMTDashboard, label: "Dashboard", }, { url: ROUTES.KMTIntegrationTests, label: "Integration Tests", }, { url: ROUTES.KMTTests, label: "Unit Tests", }, ], }, ], } const DIOGEN: Product = { url: ROUTE_PREFIX.Diogen, label: "Diogen", children: [ { url: ROUTE_PREFIX.Diogen, label: "", tabs: [ { url: ROUTES.DiogenTests, label: "All", }, ], }, ], } const TOOLBOX: Product = { url: ROUTE_PREFIX.Toolbox, label: "Toolbox", children: [ { url: ROUTE_PREFIX.Toolbox, label: "", tabs: [ { url: ROUTES.ToolboxTests, label: "All", }, { url: ROUTES.ToolboxTestsGwDeployDashboard, label: "GW Deploy", }, ], }, ], } const KOTLIN_BUILD_TOOLS: Product = { url: ROUTE_PREFIX.KotlinBuildTools, label: "Kotlin Build Tools", children: [ { url: ROUTE_PREFIX.KotlinBuildTools, label: "", tabs: [ { url: ROUTES.KotlinBuildToolsTests, label: "All", }, ], }, ], } const LSP: Product = { url: ROUTE_PREFIX.LSP, label: "LSP", children: [ { url: ROUTE_PREFIX.LSP, label: "", tabs: [ { url: ROUTES.LSPDashboard, label: "Dashboard", }, { url: ROUTES.LSPTests, label: "Tests", }, ], }, ], } export const PRODUCTS = [ AIA, BAZEL, CLION, DATAGRIP, DIOGEN, FLEET, GOLAND, IDEA, IJENT, IJ_STARTUP, JBR, KMT, KOTLIN, KOTLIN_BUILD_TOOLS, LSP, ML_TESTS, PERF_UNIT, PHPSTORM, PYCHARM, QODANA, RUBYMINE, RUST, SCALA, TOOLBOX, WEBSTORM, ] export function getNavigationElement(path: string): Product { const prefix = "/" + path.split("/")[1] return PRODUCTS.find((PRODUCTS) => prefix == PRODUCTS.url) ?? PRODUCTS[0] } const startupRoutes = [ { path: ROUTES.StartupPulse, component: () => import("./components/startup/IntelliJPulse.vue"), meta: { pageTitle: "Pulse" }, }, { path: ROUTES.StartupPulseInstaller, component: () => import("./components/startup/IntelliJPulse.vue"), props: { withInstaller: true, }, meta: { pageTitle: "Pulse" }, }, { path: ROUTES.StartupModuleLoading, component: () => import("./components/startup/IntelliJModuleLoading.vue"), meta: { pageTitle: "Module Loading" }, }, { path: ROUTES.StartupGcAndMemory, component: () => import("./components/startup/GcAndMemory.vue"), meta: { pageTitle: "GC and Memory" }, }, { path: ROUTES.StartupProgress, component: () => import("./components/startup/IntelliJProgressOverTime.vue"), meta: { pageTitle: "Progress Over Time" }, }, { path: ROUTES.StartupExplore, component: () => import("./components/startup/IntelliJExplore.vue"), props: { withInstaller: false, }, meta: { pageTitle: "Explore" }, }, { path: ROUTES.StartupExploreInstaller, component: () => import("./components/startup/IntelliJExplore.vue"), props: { withInstaller: true, }, meta: { pageTitle: "Explore (Installer)" }, }, ] const intellijRoutes = [ { path: ROUTES.IntelliJStartupDashboard, component: COMPONENTS.startupDashboard, props: { table: "idea", defaultProject: "idea", }, meta: { pageTitle: "IDEA Startup dashboard" }, }, { path: ROUTES.IntelliJProductMetricsDashboard, component: () => import("./components/intelliJ/ProductMetricsDashboard.vue"), meta: { pageTitle: "IDEA product metrics" }, }, { path: ROUTES.IntelliJIndexingDashboard, component: () => import("./components/intelliJ/IndexingDashboard.vue"), meta: { pageTitle: "IntelliJ Indexing Performance dashboard" }, }, { path: ROUTES.IntelliJJavaDashboard, component: () => import("./components/intelliJ/JavaDashboard.vue"), meta: { pageTitle: "IntelliJ Java Performance dashboard" }, }, { path: ROUTES.IntelliJKotlinDashboard, component: () => import("./components/intelliJ/KotlinDashboard.vue"), meta: { pageTitle: "IntelliJ Kotlin Performance dashboard" }, }, { path: ROUTES.IntelliJUltimateDashboard, component: () => import("./components/intelliJ/UltimateDashboard.vue"), meta: { pageTitle: "IntelliJ Ultimate Performance dashboard" }, }, { path: ROUTES.IntelliJUIDashboard, component: () => import("./components/intelliJ/UIDashboard.vue"), meta: { pageTitle: "IntelliJ UI Performance dashboard" }, }, { path: ROUTES.IntelliJLaggingLatencyDashboard, component: () => import("./components/intelliJ/PerformanceLaggingLatencyDashboard.vue"), meta: { pageTitle: "IntelliJ Lagging/Latency Performance dashboard" }, }, { path: ROUTES.IntelliJK2Dashboard, component: () => import("./components/intelliJ/PerformanceK2Dashboard.vue"), meta: { pageTitle: "IntelliJ Performance K2 dashboard" }, }, { path: ROUTES.IntelliJGradleDashboardDev, component: () => import("./components/intelliJ/build-tools/gradle/GradleImportPerformanceDashboardDevServer.vue"), meta: { pageTitle: "Gradle Import DevServer" }, }, { path: ROUTES.IntelliJMavenDashboardDev, component: () => import("./components/intelliJ/build-tools/maven/MavenImportPerformanceDashboardDevServer.vue"), meta: { pageTitle: "Maven Import dashboard DevServer" }, }, { path: ROUTES.IntelliJMavenImportersConfiguratorsDashboardDev, component: () => import("./components/intelliJ/build-tools/maven/MavenImportersAndConfiguratorsPerformanceDashboardDevServer.vue"), meta: { pageTitle: "Maven Importers And Configurators dashboard DevServer" }, }, { path: ROUTES.IntelliJJpsDashboardDev, component: () => import("./components/intelliJ/build-tools/jps/JpsImportPerformanceDashboardDevServer.vue"), meta: { pageTitle: "JPS Import dashboard DevServer" }, }, { path: ROUTES.IntelliJPackageCheckerDashboard, component: () => import("./components/intelliJ/PackageCheckerDashboard.vue"), meta: { pageTitle: "Package Checker" }, }, { path: ROUTES.IntelliJSharedIndicesDashboard, component: () => import("./components/intelliJ/SharedIndexesDashboard.vue"), meta: { pageTitle: "Shared Indexes Performance Dashboard" }, }, { path: ROUTES.IntelliJEmbeddingSearchDashboard, component: () => import("./components/intelliJ/embeddingSearch/Dashboard.vue"), meta: { pageTitle: "IntelliJ performance tests for embedding search" }, }, { path: `${ROUTE_PREFIX.IntelliJ}/:subproject?/${TEST_ROUTE}`, component: COMPONENTS.perfTests, props: { dbName: "perfint", table: "idea", initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "IntelliJ Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: `${ROUTE_PREFIX.IntelliJ}/:subproject?/${DEV_TEST_ROUTE}`, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "idea", initialMachine: MACHINES.AWS_LINUX, withInstaller: false, }, meta: { pageTitle: "IntelliJ Integration Performance Tests On DevServer" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.IntelliJCompare, component: () => COMPONENTS.compareBuilds, props: { dbName: "perfint", table: "idea", }, meta: { pageTitle: COMPARE_BUILDS_LABEL }, }, { path: ROUTES.IntelliJCompareBranches, component: COMPONENTS.compareBranches, props: { dbName: "perfintDev", table: "idea", }, meta: { pageTitle: COMPARE_BRANCHES_LABEL }, }, { path: ROUTES.IntelliJCompareModes, component: COMPONENTS.compareModes, props: { dbName: "perfintDev", table: "idea", }, meta: { pageTitle: COMPARE_MODES_LABEL }, }, ] const phpstormRoutes = [ { path: ROUTES.PhpStormStartupDashboard, component: COMPONENTS.startupDashboard, props: { table: "phpstorm", defaultProject: "stitcher_with_composer", }, meta: { pageTitle: "PhpStorm Startup dashboard" }, }, { path: ROUTES.PhpStormProductMetricsDashboard, component: () => import("./components/phpstorm/ProductMetricsDashboard.vue"), meta: { pageTitle: "PhpStorm product metrics" }, }, { path: ROUTES.PhpStormLLMDashboard, component: () => import("./components/phpstorm/MLDashboard.vue"), meta: { pageTitle: "PhpStorm LLM Performance dashboard" }, }, { path: ROUTES.PhpStormIndexingDashboard, component: () => import("./components/phpstorm/IndexingDashboard.vue"), meta: { pageTitle: "PhpStorm Indexing Dashboard" }, }, { path: ROUTES.PhpStormInspectionsDashboard, component: () => import("./components/phpstorm/InspectionsDashboard.vue"), meta: { pageTitle: "PhpStorm Inspections Dashboard" }, }, { path: ROUTES.PhpStormCodeEditingDashboard, component: () => import("./components/phpstorm/CodeEditingDashboard.vue"), meta: { pageTitle: "PhpStorm Code Editing Dashboard" }, }, { path: ROUTES.PhpStormWithPluginsDashboard, component: () => import("./components/phpstorm/PerformanceDashboardWithPlugins.vue"), meta: { pageTitle: "PhpStorm With Plugins Performance dashboard" }, }, { path: ROUTES.PhpStormWithPluginsTests, component: COMPONENTS.perfTests, props: { dbName: "perfint", table: "phpstormWithPlugins", initialMachine: MACHINES.HETZNER, }, meta: { pageTitle: "PhpStorm Performance tests with plugins" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.PhpStormTests, component: COMPONENTS.perfTests, props: { dbName: "perfint", table: "phpstorm", initialMachine: MACHINES.HETZNER, }, meta: { pageTitle: "PhpStorm Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.PhpStormDevTests, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "phpstorm", initialMachine: MACHINES.HETZNER, withInstaller: false, }, meta: { pageTitle: "PhpStorm Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.PhpStormCompareBranches, component: COMPONENTS.compareBranches, props: { dbName: "perfintDev", table: "phpstorm", }, meta: { pageTitle: COMPARE_BRANCHES_LABEL }, }, { path: ROUTES.PhpStormCompareModes, component: COMPONENTS.compareModes, props: { dbName: "perfintDev", table: "phpstorm", }, meta: { pageTitle: COMPARE_MODES_LABEL }, }, ] const golandRoutes = [ { path: ROUTES.GoLandInspectionDashboard, component: () => import("./components/goland/InspectionsDashboard.vue"), meta: { pageTitle: "GoLand Inspections dashboard" }, }, { path: ROUTES.GoLandInspectionDashboardOld, component: () => import("./components/goland/InspectionsDashboardOld.vue"), meta: { pageTitle: "GoLand Inspections dashboard" }, }, { path: ROUTES.GoLandStartupDashboard, component: COMPONENTS.startupDashboard, props: { table: "goland", defaultProject: "pocketbase", }, meta: { pageTitle: "GoLand Startup dashboard" }, }, { path: ROUTES.GoLandProductMetricsDashboard, component: () => import("./components/goland/ProductMetricsDashboard.vue"), meta: { pageTitle: "GoLand product metrics" }, }, { path: ROUTES.GoLandProductMetricsDashboardOld, component: () => import("./components/goland/ProductMetricsDashboardOld.vue"), meta: { pageTitle: "GoLand product metrics" }, }, { path: ROUTES.GoLandIndexingDashboard, component: () => import("./components/goland/IndexingDashboard.vue"), meta: { pageTitle: "GoLand Indexing dashboard" }, }, { path: ROUTES.GoLandIndexingDashboardOld, component: () => import("./components/goland/IndexingDashboardOld.vue"), meta: { pageTitle: "GoLand Indexing dashboard" }, }, { path: ROUTES.GoLandCompletionDashboard, component: () => import("./components/goland/CompletionDashboard.vue"), meta: { pageTitle: "GoLand Completion dashboard" }, }, { path: ROUTES.GoLandCompletionDashboardOld, component: () => import("./components/goland/CompletionDashboardOld.vue"), meta: { pageTitle: "GoLand Completion dashboard" }, }, { path: ROUTES.GoLandDebuggerDashboard, component: () => import("./components/goland/DebuggerDashboard.vue"), meta: { pageTitle: "GoLand Debugger dashboard" }, }, { path: ROUTES.GoLandDebuggerDashboardOld, component: () => import("./components/goland/DebuggerDashboardOld.vue"), meta: { pageTitle: "GoLand Debugger dashboard" }, }, { path: ROUTES.GoLandFindUsagesDashboard, component: () => import("./components/goland/FindUsagesDashboard.vue"), meta: { pageTitle: "GoLand Find Usages dashboard" }, }, { path: ROUTES.GoLandFindUsagesDashboardOld, component: () => import("./components/goland/FindUsagesDashboardOld.vue"), meta: { pageTitle: "GoLand Find Usages dashboard" }, }, { path: ROUTES.GoLandDFADashboard, component: () => import("./components/goland/DataFlowAnalysisDashboard.vue"), meta: { pageTitle: "GoLand DFA dashboard" }, }, { path: ROUTES.GoLandDFADashboardOld, component: () => import("./components/goland/DataFlowAnalysisDashboardOld.vue"), meta: { pageTitle: "GoLand DFA dashboard" }, }, { path: ROUTES.GoLandTests, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "goland", withInstaller: false, initialMachine: MACHINES.HETZNER, }, meta: { pageTitle: "GoLand Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.GoLandTestsOld, component: COMPONENTS.perfTests, props: { dbName: "perfint", table: "goland", initialMachine: MACHINES.HETZNER, }, meta: { pageTitle: "GoLand Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.GoLandCompare, component: COMPONENTS.compareBuilds, props: { dbName: "perfintDev", table: "goland", }, meta: { pageTitle: COMPARE_BUILDS_LABEL }, }, { path: ROUTES.GoLandCompareBranches, component: COMPONENTS.compareBranches, props: { dbName: "perfintDev", table: "goland", }, meta: { pageTitle: COMPARE_BRANCHES_LABEL }, }, ] const pycharmRoutes = [ { path: ROUTES.PyCharmStartupDashboard, component: COMPONENTS.startupDashboard, props: { table: "pycharm", defaultProject: "tensorflow", }, meta: { pageTitle: "PyCharm Startup dashboard" }, }, { path: ROUTES.PyCharmProductMetricsDashboard, component: () => import("./components/pycharm/ProductMetricsDashboard.vue"), meta: { pageTitle: "PyCharm product metrics" }, }, { path: ROUTES.PyCharmDashboard, component: () => import("./components/pycharm/PerformanceDashboard.vue"), meta: { pageTitle: "PyCharm Performance dashboard" }, }, { path: ROUTES.PyCharmOldDashboard, component: () => import("./components/pycharm/PerformanceDashboardOld.vue"), meta: { pageTitle: "PyCharm Performance dashboard" }, }, { path: ROUTES.PyCharmTests, component: COMPONENTS.perfTests, props: { dbName: "perfint", table: "pycharm", initialMachine: MACHINES.HETZNER, }, meta: { pageTitle: "PyCharm Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.PyCharmDevTests, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "pycharm", initialMachine: MACHINES.HETZNER, withInstaller: false, }, meta: { pageTitle: "PyCharm Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.PyCharmCompare, component: COMPONENTS.compareBuilds, props: { dbName: "perfint", table: "pycharm", }, meta: { pageTitle: COMPARE_BUILDS_LABEL }, }, { path: ROUTES.PyCharmCompareBranches, component: COMPONENTS.compareBranches, props: { dbName: "perfintDev", table: "pycharm", }, meta: { pageTitle: COMPARE_BRANCHES_LABEL }, }, ] const webstormRoutes = [ { path: ROUTES.WebStormStartupDashboard, component: COMPONENTS.startupDashboard, props: { table: "webstorm", defaultProject: "angular", }, meta: { pageTitle: "WebStorm Startup dashboard" }, }, { path: ROUTES.WebStormProductMetricsDashboard, component: () => import("./components/webstorm/ProductMetricsDashboard.vue"), meta: { pageTitle: "WebStorm product metrics" }, }, { path: ROUTES.WebStormDashboard, component: () => import("./components/webstorm/PerformanceDashboard.vue"), meta: { pageTitle: "WebStorm Performance dashboard" }, }, { path: ROUTES.WebStormTests, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", withInstaller: false, table: "webstorm", initialMachine: MACHINES.HETZNER, }, meta: { pageTitle: "WebStorm Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.WebStormDashboardBuiltInVsNEXT, component: () => import("./components/webstorm/PerformanceDashboardBuiltInVsNEXT.vue"), meta: { pageTitle: "Built-in vs NEXT" }, }, { path: ROUTES.WebStormDashboardDelicateProjects, component: () => import("./components/webstorm/PerformanceDashboardDelicateProjects.vue"), meta: { pageTitle: "Delicate Projects" }, }, { path: ROUTES.WebStormCompare, component: COMPONENTS.compareBuilds, props: { dbName: "perfintDev", table: "webstorm", }, meta: { pageTitle: COMPARE_BUILDS_LABEL }, }, { path: ROUTES.WebStormCompareBranches, component: COMPONENTS.compareBranches, props: { dbName: "perfintDev", table: "webstorm", }, meta: { pageTitle: COMPARE_BRANCHES_LABEL }, }, ] const rubymineRoutes = [ { path: ROUTES.RubyStartupDashboard, component: COMPONENTS.startupDashboard, props: { table: "ruby", defaultProject: "diaspora", }, meta: { pageTitle: "Ruby Startup dashboard" }, }, { path: ROUTES.RubyMineProductMetricsDashboard, component: () => import("./components/rubymine/ProductMetricsDevDashboard.vue"), meta: { pageTitle: "RubyMine product metrics" }, }, { path: ROUTES.RubyMineDashboard, component: () => import("./components/rubymine/PerformanceDevDashboard.vue"), meta: { pageTitle: "RubyMine Performance Dashboard" }, }, { path: ROUTES.RubyMineInspectionsDashBoard, component: () => import("./components/rubymine/InspectionsDevDashboard.vue"), meta: { pageTitle: "RubyMine Inspections Dashboard" }, }, { path: ROUTES.RubyMineIndexingDashBoard, component: () => import("./components/rubymine/IndexingDevDashboard.vue"), meta: { pageTitle: "RubyMine Indexing Dashboard" }, }, { path: ROUTES.RubyMineTestsDev, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "ruby", initialMachine: MACHINES.AWS_LINUX, withInstaller: false, }, meta: { pageTitle: "RubyMine Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.RubyMineCompare, component: COMPONENTS.compareBuilds, props: { dbName: "perfint", table: "ruby", }, meta: { pageTitle: COMPARE_BUILDS_LABEL }, }, { path: ROUTES.RubyMineCompareBranches, component: COMPONENTS.compareBranches, props: { dbName: "perfintDev", table: "ruby", }, meta: { pageTitle: COMPARE_BRANCHES_LABEL }, }, { path: ROUTES.RubyMineCompareModes, component: COMPONENTS.compareModes, props: { dbName: "perfintDev", table: "ruby", }, meta: { pageTitle: COMPARE_MODES_LABEL }, }, ] const rustRoutes = [ { path: ROUTES.RustRoverProductMetricsDashboard, component: () => import("./components/rust/ProductMetricsDashboard.vue"), meta: { pageTitle: "RustRover product metrics" }, }, { path: ROUTES.RustRoverProductMetricsDashboardDev, component: () => import("./components/rust/ProductMetricsDashboardDev.vue"), meta: { pageTitle: "RustRover product metrics" }, }, { path: ROUTES.RustRoverDashboard, component: () => import("./components/rust/PerformanceDashboardRustRover.vue"), props: { releaseConfigurator: eap, }, meta: { pageTitle: "RustRover Performance dashboard" }, }, { path: ROUTES.RustRoverDashboardDev, component: () => import("./components/rust/PerformanceDashboardRustRoverDev.vue"), meta: { pageTitle: "RustRover Performance dashboard" }, }, { path: ROUTES.RustRoverFirstStartupDashboard, component: () => import("./components/rust/PerformanceDashboardRustRoverFirstStartup.vue"), meta: { pageTitle: "RustRover First Startup Performance dashboard" }, }, { path: ROUTES.RustRoverFirstStartupDashboardDev, component: () => import("./components/rust/PerformanceDashboardRustRoverFirstStartupDev.vue"), meta: { pageTitle: "RustRover First Startup Performance dashboard" }, }, { path: ROUTES.RustTests, component: COMPONENTS.perfTests, props: { dbName: "perfint", table: "rust", initialMachine: MACHINES.AWS_LINUX, releaseConfigurator: eap, }, meta: { pageTitle: "Rust Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.RustTestsDev, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "rust", initialMachine: MACHINES.AWS_LINUX, withInstaller: false, }, meta: { pageTitle: "Rust Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.RustCompare, component: COMPONENTS.compareBuilds, props: { dbName: "perfint", table: "rust", }, meta: { pageTitle: COMPARE_BUILDS_LABEL }, }, { path: ROUTES.RustCompareBranches, component: COMPONENTS.compareBranches, props: { dbName: "perfint", table: "rust", }, meta: { pageTitle: COMPARE_BRANCHES_LABEL }, }, { path: ROUTES.RustCompareBranchesDev, component: COMPONENTS.compareBranches, props: { dbName: "perfintDev", table: "rust", }, meta: { pageTitle: COMPARE_BRANCHES_LABEL }, }, ] const kotlinRoutes = [ { path: ROUTES.KotlinTests, component: COMPONENTS.perfTests, props: { dbName: "perfint", table: "kotlin", initialMachine: MACHINES.HETZNER, }, meta: { pageTitle: "Kotlin Performance tests explore" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.KotlinTestsDev, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "kotlin", initialMachine: MACHINES.HETZNER, withInstaller: false, }, meta: { pageTitle: "Kotlin Performance tests explore (dev/fast installer)" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.KotlinDashboard, component: () => import("./components/kotlin/PerformanceDashboard.vue"), meta: { pageTitle: "Kotlin Performance dashboard" }, }, { path: ROUTES.KotlinDashboardDev, component: () => import("./components/kotlin/dev/PerformanceDashboard.vue"), meta: { pageTitle: "Kotlin Performance dashboard (dev)" }, }, { path: ROUTES.KotlinUserScenariosDashboardDev, component: () => import("./components/kotlin/dev/UserScenariosDashboard.vue"), meta: { pageTitle: "User scenarios dashboard (dev)" }, }, { path: ROUTES.KotlinCodeAnalysisDev, component: () => import("./components/kotlin/dev/KotlinCodeAnalysisChartsDashboard.vue"), meta: { pageTitle: "Code analysis (dev)" }, }, { path: ROUTES.KotlinCompletionDev, component: () => import("./components/kotlin/dev/CompletionDashboard.vue"), meta: { pageTitle: "Kotlin completion (dev/fast)" }, }, { path: ROUTES.KotlinFindUsagesDev, component: () => import("./components/kotlin/dev/FindUsagesDashboard.vue"), meta: { pageTitle: "Kotlin findUsages (dev/fast)" }, }, { path: ROUTES.KotlinRefactoringDev, component: () => import("./components/kotlin/dev/RefactoringDashboard.vue"), meta: { pageTitle: "Kotlin refactoring (dev/fast)" }, }, { path: ROUTES.KotlinDebuggerDev, component: () => import("./components/kotlin/dev/DebuggerDashboard.vue"), meta: { pageTitle: "Kotlin debugger (dev/fast)" }, }, { path: ROUTES.KotlinScriptDev, component: () => import("./components/kotlin/dev/ScriptDashboard.vue"), meta: { pageTitle: "Kts (dev/fast)" }, }, { path: ROUTES.KotlinK1VsK2Comparison, component: () => import("./components/kotlin/K1VsK2ComparisonDashboard.vue"), meta: { pageTitle: "Kotlin K1 vs. K2" }, }, { path: ROUTES.KotlinK1VsK2ComparisonDev, component: () => import("./components/kotlin/dev/K1VsK2ComparisonDevDashboard.vue"), meta: { pageTitle: "Kotlin K1 vs. K2 (dev/fast)" }, }, { path: ROUTES.KotlinCompare, component: COMPONENTS.compareBuilds, props: { dbName: "perfint", table: "kotlin", }, meta: { pageTitle: COMPARE_BUILDS_LABEL }, }, { path: ROUTES.KotlinCompareBranches, component: COMPONENTS.compareBranches, props: { dbName: "perfint", table: "kotlin", metricsNames: KOTLIN_MAIN_METRICS, }, meta: { pageTitle: COMPARE_BRANCHES_LABEL }, }, { path: ROUTES.KotlinCompareBranchesDev, component: COMPONENTS.compareBranches, props: { dbName: "perfintDev", table: "kotlin", metricsNames: KOTLIN_MAIN_METRICS, }, meta: { pageTitle: COMPARE_BRANCHES_LABEL + "(dev/fast)" }, }, { path: ROUTES.KotlinMemoryDashboard, component: () => import("./components/kotlin/MemoryPerformanceDashboard.vue"), meta: { pageTitle: "Memory" }, }, { path: ROUTES.KotlinMemoryDashboardDev, component: () => import("./components/kotlin/dev/MemoryPerformanceDashboard.vue"), meta: { pageTitle: "Memory (dev)" }, }, ] const scalaRoutes = [ { path: ROUTES.ScalaTests, component: COMPONENTS.perfTests, props: { dbName: "perfint", table: "scala", initialMachine: MACHINES.HETZNER, }, meta: { pageTitle: "Scala Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.ScalaCompare, component: COMPONENTS.compareBuilds, props: { dbName: "perfint", table: "scala", }, meta: { pageTitle: COMPARE_BUILDS_LABEL }, }, { path: ROUTES.ScalaCompareBranches, component: COMPONENTS.compareBranches, props: { dbName: "perfint", table: "scala", }, meta: { pageTitle: COMPARE_BRANCHES_LABEL }, }, ] const jbrRoutes = [ { path: ROUTES.JBRTests, component: () => import("./components/jbr/PerformanceTests.vue"), meta: { pageTitle: "JBR Performance tests" }, }, { path: ROUTES.MapBenchDashboard, component: () => import("./components/jbr/MapBenchDashboard.vue"), meta: { pageTitle: "MapBench Dashboard" }, }, { path: ROUTES.DaCapoDashboard, component: () => import("./components/jbr/DaCapoDashboard.vue"), meta: { pageTitle: "DaCapo Dashboard" }, }, { path: ROUTES.J2DBenchDashboard, component: () => import("./components/jbr/J2DBenchDashboard.vue"), meta: { pageTitle: "J2DBench Dashboard" }, }, { path: ROUTES.JavaDrawDashboard, component: () => import("./components/jbr/JavaDrawDashboard.vue"), meta: { pageTitle: "JavaDraw Dashboard" }, }, { path: ROUTES.RenderDashboard, component: () => import("./components/jbr/RenderDashboard.vue"), meta: { pageTitle: "Render Dashboard" }, }, { path: ROUTES.SPECjbb2015Dashboard, component: () => import("./components/jbr/SPECjbb2015Dashboard.vue"), meta: { pageTitle: "Spec Dashboard" }, }, { path: ROUTES.SwingMarkDashboard, component: () => import("./components/jbr/SwingMarkDashboard.vue"), meta: { pageTitle: "SwingMark Dashboard" }, }, ] const fleetRoutes = [ { path: ROUTES.FleetTest, component: COMPONENTS.perfTests, props: { dbName: "fleet", table: "measure_new", initialMachine: MACHINES.HETZNER, withInstaller: false, }, meta: { pageTitle: "Fleet Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.FleetPerfDashboard, component: () => import("./components/fleet/PerformanceDashboard.vue"), meta: { pageTitle: "Fleet Performance dashboard" }, }, { path: ROUTES.FleetPerfStartupComparisonDashboard, component: () => import("./components/fleet/StartupComparisonDashboard.vue"), meta: { pageTitle: "Fleet Startup Comparison dashboard" }, }, { path: ROUTES.FleetStartupDashboard, component: () => import("./components/fleet/FleetDashboard.vue"), meta: { pageTitle: "Fleet Startup dashboard" }, }, { path: ROUTES.FleetStartupExplore, component: () => import("./components/fleet/FleetExplore.vue"), meta: { pageTitle: "Fleet Startup Explore" }, props: { withInstaller: true, }, }, ] const bazelRoutes = [ { path: ROUTES.BazelTest, component: COMPONENTS.perfTests, props: { dbName: "bazel", table: "report", initialMachine: "Linux EC2 m5ad.2xlarge (8 vCPU Xeon, 32 GB)", withInstaller: false, }, meta: { pageTitle: "Bazel Performance tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.BazelPluginDashboard, component: () => import("./components/bazel/BazelPluginDashboard.vue"), meta: { pageTitle: "Bazel Plugin Dashboard" }, }, ] const qodanaRoutes = [ { path: ROUTES.QodanaTest, component: COMPONENTS.perfTests, props: { dbName: "qodana", table: "report", initialMachine: "Linux EC2 c5a(d).xlarge (4 vCPU, 8 GB)", withInstaller: false, }, meta: { pageTitle: "Qodana tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, ] const clionRoutes = [ { path: ROUTES.ClionTest, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "clion", withInstaller: false, initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "CLion tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.ClionTestOld, component: COMPONENTS.perfTests, props: { dbName: "perfint", table: "clion", initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "CLion tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.ClionClassicStartupDashboard, component: COMPONENTS.startupDashboard, props: { table: "clion", defaultProject: "radler/clion/cmake", }, meta: { pageTitle: "CLion Startup dashboard" }, }, { path: ROUTES.ClionProductMetricsDashboard, component: () => import("./components/clion/ProductMetricsDashboard.vue"), meta: { pageTitle: "CLion product metrics" }, }, { path: ROUTES.ClionProductMetricsDashboardOld, component: () => import("./components/clion/ProductMetricsDashboardOld.vue"), props: { initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "CLion product metrics" }, }, { path: ROUTES.ClionPerfDashboard, component: () => import("./components/clion/PerformanceDashboard.vue"), props: { initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "CLion dashboard" }, }, { path: ROUTES.ClionPerfDashboardOld, component: () => import("./components/clion/PerformanceDashboardOld.vue"), props: { initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "CLion dashboard" }, }, { path: ROUTES.ClionDetailedPerfDashboard, component: () => import("./components/clion/DetailedPerformanceDashboard.vue"), props: { initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "CLion Detailed Performance dashboard" }, }, { path: ROUTES.ClionDetailedPerfDashboardOld, component: () => import("./components/clion/DetailedPerformanceDashboardOld.vue"), props: { initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "CLion Detailed Performance dashboard" }, }, { path: ROUTES.ClionMemoryDashboard, component: () => import("./components/clion/MemoryDashboard.vue"), props: { initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "CLion Memory dashboard" }, }, { path: ROUTES.ClionMemoryDashboardOld, component: () => import("./components/clion/MemoryDashboardOld.vue"), props: { initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "CLion Memory dashboard" }, }, { path: ROUTES.ClionProjectModelDashboard, component: () => import("./components/clion/ProjectModelDashboard.vue"), props: { initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "CLion Project Model dashboard" }, }, { path: ROUTES.ClionProjectModelDashboardOld, component: () => import("./components/clion/ProjectModelDashboardOld.vue"), props: { initialMachine: MACHINES.AWS_LINUX, }, meta: { pageTitle: "CLion Project Model dashboard" }, }, { path: ROUTES.ClionLaggingLatencyDashboard, component: () => import("./components/clion/CLionLaggingLatencyDashboard.vue"), meta: { pageTitle: "CLion Lagging/Latency Dashboard" }, }, { path: ROUTES.ClionCompareBranches, component: COMPONENTS.compareBranches, props: { dbName: "perfintDev", table: "clion", }, meta: { pageTitle: COMPARE_BRANCHES_LABEL }, }, ] const vcsRoutes = [ { path: ROUTES.VcsIdeaDashboardDev, component: () => import("./components/vcs/PerformanceDashboardDev.vue"), meta: { pageTitle: "Vcs Idea performance dashboard DevServer" }, }, { path: ROUTES.VcsSpaceDashboardDev, component: () => import("./components/vcs/PerformanceSpaceDashboardDev.vue"), meta: { pageTitle: "Vcs Space performance dashboard DevServer" }, }, { path: ROUTES.VcsStarterDashboardDev, component: () => import("./components/vcs/PerformanceStarterDashboardDev.vue"), meta: { pageTitle: "Vcs Starer performance dashboard DevServer" }, }, { path: ROUTES.VcsIdeaDashboard, component: () => import("./components/vcs/PerformanceDashboard.vue"), meta: { pageTitle: "Vcs Idea performance dashboard (obsolete)" }, }, { path: ROUTES.VcsSpaceDashboard, component: () => import("./components/vcs/PerformanceSpaceDashboard.vue"), meta: { pageTitle: "Vcs Space performance dashboard (obsolete)" }, }, { path: ROUTES.VcsStarterDashboard, component: () => import("./components/vcs/PerformanceStarterDashboard.vue"), meta: { pageTitle: "Vcs Starer performance dashboard (obsolete)" }, }, ] const datagripRoutes = [ { path: ROUTES.DataGripProductMetricsDashboard, component: () => import("./components/datagrip/ProductMetricsDashboard.vue"), meta: { pageTitle: "DataGrip product metrics" }, }, { path: ROUTES.DataGripIndexingDashboard, component: () => import("./components/datagrip/IndexingDashboard.vue"), meta: { pageTitle: "DataGrip Indexing dashboard" }, }, ] const toolboxRoutes = [ { path: ROUTES.ToolboxTests, component: COMPONENTS.perfTests, props: { dbName: "toolbox", table: "report", withInstaller: false, branch: "refs/heads/main", initialMachine: "Linux EC2 M5d.xlarge (4 vCPU Xeon, 16 GB)", withoutAccidents: true, }, meta: { pageTitle: "Toolbox" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.ToolboxTestsGwDeployDashboard, component: () => import("./components/toolbox/GwDeployMetricsDashboard.vue"), props: { dbName: "toolbox", table: "report", withInstaller: false, branch: "refs/heads/master", withoutAccidents: true, }, meta: { pageTitle: "GW Dashboard" }, }, ] const ijentRoutes = [ { path: ROUTES.IJentBenchmarksDashboard, component: () => import("./components/ijent/IJentBenchmarskDashboard.vue"), meta: { pageTitle: "IJent Benchmarks Dashboard" }, }, { path: ROUTES.IJentPerfTestsDashboard, component: () => import("./components/ijent/IJentPerformanceTestsDashboard.vue"), meta: { pageTitle: "IJent Performance Tests Dashboard" }, }, { path: ROUTES.IJentRawPerfData, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "ijent", initialMachine: "Linux Munich i7-13700, 64 Gb", withInstaller: false, }, meta: { pageTitle: "IJent Raw Performance Data" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, ] const mlRoutes = [ { path: ROUTES.AIAssistantApiTests, component: () => import("./components/ml/dev/AiAssistantApiTests.vue"), meta: { pageTitle: "AI API Tests" }, }, { path: ROUTES.AIAssistantTestGeneration, component: () => import("./components/ml/dev/TestGenerationDashboard.vue"), meta: { pageTitle: "Test generation" }, }, { path: ROUTES.LLMDevTests, component: () => import("./components/ml/dev/LLMDashboard.vue"), meta: { pageTitle: "AIA dashboard" }, }, { path: ROUTES.AIAPrivacyDashboard, component: () => import("./components/ml/dev/AIAPrivacyDashboard.vue"), meta: { pageTitle: "AIA Privacy" }, }, { path: ROUTES.MLDevTests, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "ml", initialMachine: MACHINES.AWS_LINUX, withInstaller: false, }, meta: { pageTitle: "ML Tests dev-server" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, ] const aiaRoutes = [ { path: ROUTES.AIATests, component: COMPONENTS.perfTests, props: { dbName: "mlEvaluation", table: "report", withInstaller: false, branch: null, initialMachine: null, }, meta: { pageTitle: "AIA Tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.AIACompletionDashboard, component: () => import("./components/aia/AIACompletionDashboard.vue"), meta: { pageTitle: "AIA completion dashboard" }, }, { path: ROUTES.AIACodeGenerationDashboard, component: () => import("./components/aia/AIACodeGeneration.vue"), meta: { pageTitle: "AIA code generation dashboard" }, }, { path: ROUTES.AIAChatCodeGenerationDashboard, component: () => import("./components/aia/ChatCodeGeneration.vue"), meta: { pageTitle: "AIA chat code generation dashboard" }, }, { path: ROUTES.AIANameSuggestionDashboard, component: () => import("./components/aia/AIANameSuggestion.vue"), meta: { pageTitle: "AIA name suggestion dashboard" }, }, { path: ROUTES.AIATestGenerationDashboard, component: () => import("./components/aia/AIATestGeneration.vue"), meta: { pageTitle: "AIA test generation dashboard" }, }, ] const kmtRoutes = [ { path: ROUTES.KMTTests, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "swift", withInstaller: false, branch: null, initialMachine: "Mac Cidr Performance", }, meta: { pageTitle: "KMT Unit Tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.KMTIntegrationTests, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "kmt", withInstaller: false, branch: "master", initialMachine: "Mac Cidr Performance", }, meta: { pageTitle: "KMT Integration Tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.KMTDashboard, component: () => import("./components/kmt/PerformanceDashboard.vue"), meta: { pageTitle: "KMT Dashboard" }, }, ] const diogenRoutes = [ { path: ROUTES.DiogenTests, component: COMPONENTS.perfTests, props: { dbName: "diogen", table: "report", withInstaller: false, branch: "refs/heads/main", initialMachine: null, withoutAccidents: true, }, meta: { pageTitle: "Diogen" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, ] const perfUnitTestsRoutes = [ { path: ROUTES.PerfUnitTests, component: () => import("./components/common/PerformanceUnitTests.vue"), props: { dbName: "perfUnitTests", table: "report", initialMachine: MACHINES.HETZNER, withInstaller: false, }, meta: { pageTitle: "Perf Unit Tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, ] const kotlinBuildToolsRoutes = [ { path: ROUTES.KotlinBuildToolsTests, component: COMPONENTS.perfTests, props: { dbName: "perfintDev", table: "kotlinBuildTools", withInstaller: false, branch: "master", initialMachine: MACHINES.HETZNER, }, meta: { pageTitle: "Kotlin Build Tools Tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, ] const lspRoutes = [ { path: ROUTES.LSPTests, component: () => import("./components/common/PerformanceUnitTests.vue"), props: { dbName: "perfUnitTests", table: "report", initialMachine: MACHINES.HETZNER, withInstaller: false, }, meta: { pageTitle: "LSP Tests" }, } satisfies TypedRouteRecord<PerformanceTestsProps>, { path: ROUTES.LSPDashboard, component: () => import("./components/lsp/LSPDashboard.vue"), meta: { pageTitle: "LSP Diagnostic Dashboard" }, }, ] export function getNewDashboardRoutes(): ParentRouteRecord[] { return [ { children: [ ...startupRoutes, ...intellijRoutes, ...phpstormRoutes, ...golandRoutes, ...pycharmRoutes, ...webstormRoutes, ...rubymineRoutes, ...rustRoutes, ...kotlinRoutes, ...scalaRoutes, ...jbrRoutes, ...fleetRoutes, ...bazelRoutes, ...qodanaRoutes, ...clionRoutes, ...vcsRoutes, ...datagripRoutes, ...toolboxRoutes, ...ijentRoutes, ...mlRoutes, ...aiaRoutes, ...kmtRoutes, ...diogenRoutes, ...perfUnitTestsRoutes, ...kotlinBuildToolsRoutes, ...lspRoutes, { path: ROUTES.ReportDegradations, component: () => import("./components/degradations/ReportDegradation.vue"), meta: { pageTitle: "Report degradations" }, props: (route) => ({ tests: route.query["tests"], build: route.query["build"], date: route.query["date"], }), }, { path: ROUTES.MetricsDescription, component: () => import("./components/metrics/MetricDescriptions.vue"), meta: { pageTitle: "Metrics description" }, }, { path: ROUTES.BisectLauncher, component: () => import("./components/bisect/BisectLauncher.vue"), meta: { pageTitle: "Bisect launcher" }, props: (route) => ({ ...route.query }), }, ], }, ] }