diff --git a/frontend/bun.lock b/frontend/bun.lock
index 605fbb9158..3f1d38df99 100644
--- a/frontend/bun.lock
+++ b/frontend/bun.lock
@@ -39,8 +39,8 @@
"@shikijs/themes": "^3.23.0",
"@stepperize/react": "^5.1.9",
"@tanstack/react-form": "^1.12.3",
- "@tanstack/react-query": "^5.99.2",
- "@tanstack/react-router": "^1.170.7",
+ "@tanstack/react-query": "5.101.4",
+ "@tanstack/react-router": "1.170.22",
"@tanstack/react-table": "^8.21.3",
"@tanstack/react-virtual": "^3.13.12",
"@uiw/react-codemirror": "^4.25.10",
@@ -106,9 +106,9 @@
"@rsbuild/plugin-tailwindcss": "2.0.2",
"@rsbuild/plugin-yaml": "1.0.5",
"@rsdoctor/rspack-plugin": "1.6.0",
- "@tanstack/react-query-devtools": "^5.90.2",
- "@tanstack/react-router-devtools": "^1.167.0",
- "@tanstack/router-plugin": "^1.168.19",
+ "@tanstack/react-query-devtools": "5.101.4",
+ "@tanstack/react-router-devtools": "1.167.1",
+ "@tanstack/router-plugin": "1.168.27",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^7.0.0",
"@testing-library/react": "^16.3.2",
@@ -981,23 +981,23 @@
"@tanstack/form-core": ["@tanstack/form-core@1.25.0", "", { "dependencies": { "@tanstack/devtools-event-client": "^0.3.5", "@tanstack/pacer": "^0.15.3", "@tanstack/store": "^0.7.7" } }, "sha512-OEWW2uTOFMyRmHrVEiPOn+J27ekQ/vXwRAJt9kD8U8vCt8CmpClj989OOGGSBSVJtDNxGUcWyKF8gYznnqIyaw=="],
- "@tanstack/history": ["@tanstack/history@1.162.0", "", {}, "sha512-79pf/RkhteYZTRgcR4F9kbk84P2N8rugQJswxfIqovlbRiT3yI7eBE+5QorIrZaOKktsgzRlXh1l/du/xpl4iA=="],
+ "@tanstack/history": ["@tanstack/history@1.162.1", "", {}, "sha512-DR9t6lfLVdrjgCwpglrR9DR7Ok8/HlXjcOE+goWXF3zyuLUO/ug7vMbSFxTqrQTtbRghJfyhmIZ0S6LhPIy44w=="],
"@tanstack/pacer": ["@tanstack/pacer@0.15.4", "", { "dependencies": { "@tanstack/devtools-event-client": "^0.3.2", "@tanstack/store": "^0.7.5" } }, "sha512-vGY+CWsFZeac3dELgB6UZ4c7OacwsLb8hvL2gLS6hTgy8Fl0Bm/aLokHaeDIP+q9F9HUZTnp360z9uv78eg8pg=="],
- "@tanstack/query-core": ["@tanstack/query-core@5.99.2", "", {}, "sha512-1HunU0bXVsR1ZJMZbcOPE6VtaBJxsW809RE9xPe4Gz7MlB0GWwQvuTPhMoEmQ/hIzFKJ/DWAuttIe7BOaWx0tA=="],
+ "@tanstack/query-core": ["@tanstack/query-core@5.101.4", "", {}, "sha512-gNwcvOJcRbLWPOLG/2OBm+zM+Yv+MKsXKEOWC57USuZDEsI71hEErQsiEGx5wX9rzWWkfwM0fVSPoiIFSsxfiw=="],
- "@tanstack/query-devtools": ["@tanstack/query-devtools@5.90.1", "", {}, "sha512-GtINOPjPUH0OegJExZ70UahT9ykmAhmtNVcmtdnOZbxLwT7R5OmRztR5Ahe3/Cu7LArEmR6/588tAycuaWb1xQ=="],
+ "@tanstack/query-devtools": ["@tanstack/query-devtools@5.101.4", "", {}, "sha512-z5IPHnDX3aUWeTWlRKLyooBQekaCAw4xRpZqPQ390RiWTDBcTynjpPT221BArw0u2+pnQMdGvPQI9YNNubBcmA=="],
"@tanstack/react-form": ["@tanstack/react-form@1.25.0", "", { "dependencies": { "@tanstack/form-core": "1.25.0", "@tanstack/react-store": "^0.7.7" }, "peerDependencies": { "react": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-SjKpBkjegNVW9WU+qlO8+/+kSbSEwo2zwHnrQz/yOnnJRhtdgubUt50LfeUtdzkMsbbptQ5MSZrXH03kidQjyw=="],
- "@tanstack/react-query": ["@tanstack/react-query@5.99.2", "", { "dependencies": { "@tanstack/query-core": "5.99.2" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-vM91UEe45QUS9ED6OklsVL15i8qKcRqNwpWzPTVWvRPRSEgDudDgHpvyTjcdlwHcrKNa80T+xXYcchT2noPnZA=="],
+ "@tanstack/react-query": ["@tanstack/react-query@5.101.4", "", { "dependencies": { "@tanstack/query-core": "5.101.4" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-yRg2pfOCxIs4ZJW3XYYHU/WgtD04FHSnfHlpRT7h7pR77hwkdRG4wxbKe4aq6P0RvXUTBSQpQeadS1SUYUe+KA=="],
- "@tanstack/react-query-devtools": ["@tanstack/react-query-devtools@5.90.2", "", { "dependencies": { "@tanstack/query-devtools": "5.90.1" }, "peerDependencies": { "@tanstack/react-query": "^5.90.2", "react": "^18 || ^19" } }, "sha512-vAXJzZuBXtCQtrY3F/yUNJCV4obT/A/n81kb3+YqLbro5Z2+phdAbceO+deU3ywPw8B42oyJlp4FhO0SoivDFQ=="],
+ "@tanstack/react-query-devtools": ["@tanstack/react-query-devtools@5.101.4", "", { "dependencies": { "@tanstack/query-devtools": "5.101.4" }, "peerDependencies": { "@tanstack/react-query": "^5.101.4", "react": "^18 || ^19" } }, "sha512-VeK2gtmfj7kvRBjtxS7TKxt/6qKhn8VzabY4UiYMr7NV9CddjSRYRgeYyld+NpjAkgMV9dd+2Qdr8ah5I03NeA=="],
- "@tanstack/react-router": ["@tanstack/react-router@1.170.17", "", { "dependencies": { "@tanstack/history": "1.162.0", "@tanstack/react-store": "^0.9.3", "@tanstack/router-core": "1.171.14", "isbot": "^5.1.22" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-ppLkjCfSMaeug9rmFRYzOd4TIqWV+yTE7tzIny7alJsSnM7w4lzEZm6eqCehG0SPetpZ0R3K+UnanSmBgOAVcQ=="],
+ "@tanstack/react-router": ["@tanstack/react-router@1.170.22", "", { "dependencies": { "@tanstack/history": "1.162.1", "@tanstack/react-store": "^0.9.3", "@tanstack/router-core": "1.171.19", "isbot": "^5.1.22" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-LMOHWpVMf9WJYcvzIn6TwaoRKpELnhJTwx47da6LHFy2SwNIwn4DBCh5sZ6SdCkMvkmwZaOVu7wWT2ppPP6a1Q=="],
- "@tanstack/react-router-devtools": ["@tanstack/react-router-devtools@1.167.0", "", { "dependencies": { "@tanstack/router-devtools-core": "1.168.0" }, "peerDependencies": { "@tanstack/react-router": "^1.170.0", "@tanstack/router-core": "^1.170.0", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" }, "optionalPeers": ["@tanstack/router-core"] }, "sha512-nGw095EG7IHx0h5NtlEmzf6vcCTaFNPWdTSuDKazajhN0ct/v/TkekJ9J6KYUCeV1a8/2ZmToc58M+0rrOyn7w=="],
+ "@tanstack/react-router-devtools": ["@tanstack/react-router-devtools@1.167.1", "", { "dependencies": { "@tanstack/router-devtools-core": "1.168.1" }, "peerDependencies": { "@tanstack/react-router": "^1.170.19", "@tanstack/router-core": "^1.171.16", "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" }, "optionalPeers": ["@tanstack/router-core"] }, "sha512-pjfGrmjj4d7naEPM7oshqFfwBoxDPNo/UxltlHH5ePbHsJ+plBhd+JaAewm1ueYOjZ0js9hckjWWDYXpCrSfKw=="],
"@tanstack/react-store": ["@tanstack/react-store@0.7.7", "", { "dependencies": { "@tanstack/store": "0.7.7", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-qqT0ufegFRDGSof9D/VqaZgjNgp4tRPHZIJq2+QIHkMUtHjaJ0lYrrXjeIUJvjnTbgPfSD1XgOMEt0lmANn6Zg=="],
@@ -1005,13 +1005,13 @@
"@tanstack/react-virtual": ["@tanstack/react-virtual@3.13.12", "", { "dependencies": { "@tanstack/virtual-core": "3.13.12" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA=="],
- "@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="],
+ "@tanstack/router-core": ["@tanstack/router-core@1.171.19", "", { "dependencies": { "@tanstack/history": "1.162.1", "cookie-es": "^3.0.0", "seroval": "^1.6.2", "seroval-plugins": "^1.6.2" } }, "sha512-uCZhgnfmuBA3PoRLIVSjUhQpJQd/HA7p0XxG1IFKnvXU9lIMZ7gIqx45hyuf9JopxXZI8k7qaz9/6PC7mZLdfQ=="],
- "@tanstack/router-devtools-core": ["@tanstack/router-devtools-core@1.168.0", "", { "dependencies": { "clsx": "^2.1.1", "goober": "^2.1.16" }, "peerDependencies": { "@tanstack/router-core": "^1.170.0", "csstype": "^3.0.10" }, "optionalPeers": ["csstype"] }, "sha512-wQoQhlBK7nlZgqzaqdYXKWNTpdHdsaREdaPhFZVH0/Ador+F+eM3/NF2i3f2LPeS0GgKraZUQXe1Q/1+KHyEYg=="],
+ "@tanstack/router-devtools-core": ["@tanstack/router-devtools-core@1.168.1", "", { "dependencies": { "clsx": "^2.1.1", "goober": "^2.1.16" }, "peerDependencies": { "@tanstack/router-core": "^1.171.16", "csstype": "^3.0.10" }, "optionalPeers": ["csstype"] }, "sha512-qr4voa4cpSMwQvS3867xkU3AB3MtJbTuovKIy+btjJ/Faju6er9w0nDylmD+005Mk/3YKw9/iueZJl2JAB7JOA=="],
- "@tanstack/router-generator": ["@tanstack/router-generator@1.167.18", "", { "dependencies": { "@babel/types": "^7.28.5", "@tanstack/router-core": "1.171.14", "@tanstack/router-utils": "1.162.2", "@tanstack/virtual-file-routes": "1.162.0", "jiti": "^2.7.0", "magic-string": "^0.30.21", "prettier": "^3.5.0", "zod": "^4.4.3" } }, "sha512-kFvM4caRds9Q3EXg64bZubJ6rbDxyV0YDSBSGvOGzmKspQPdz5Xrh0uj5T1Ov8avUUg+c761u04VQAaEzSBXRw=="],
+ "@tanstack/router-generator": ["@tanstack/router-generator@1.167.25", "", { "dependencies": { "@babel/types": "^7.28.5", "@tanstack/router-core": "1.171.19", "@tanstack/router-utils": "1.162.2", "@tanstack/virtual-file-routes": "1.162.0", "jiti": "^2.7.0", "magic-string": "^0.30.21", "prettier": "^3.5.0", "zod": "^4.4.3" } }, "sha512-M+S+QvGicfiH7kMkjrm6q+UMWXTdl7v9+pvMVnzA+lFm7whe8qmVOY72h/O8GGnejNn14jxdPrnLXv97NJjlWQ=="],
- "@tanstack/router-plugin": ["@tanstack/router-plugin@1.168.19", "", { "dependencies": { "@babel/core": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "@tanstack/router-core": "1.171.14", "@tanstack/router-generator": "1.167.18", "@tanstack/router-utils": "1.162.2", "chokidar": "^5.0.0", "unplugin": "^3.0.0", "zod": "^4.4.3" }, "peerDependencies": { "@rsbuild/core": ">=1.0.2 || ^2.0.0", "@tanstack/react-router": "^1.170.17", "vite": ">=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0", "vite-plugin-solid": "^2.11.10 || ^3.0.0-0", "webpack": ">=5.92.0" }, "optionalPeers": ["@rsbuild/core", "@tanstack/react-router", "vite", "vite-plugin-solid", "webpack"] }, "sha512-aFglwLc+bbPTgZlkXn3PvOwpjJAfgUyPGSuql4MP3XrqTTh6WkBiy2RYb6oaG5h0s7EKwivEuq85K3Y4V0Mt1g=="],
+ "@tanstack/router-plugin": ["@tanstack/router-plugin@1.168.27", "", { "dependencies": { "@babel/core": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "@tanstack/router-core": "1.171.19", "@tanstack/router-generator": "1.167.25", "@tanstack/router-utils": "1.162.2", "chokidar": "^5.0.0", "unplugin": "^3.0.0", "zod": "^4.4.3" }, "peerDependencies": { "@rsbuild/core": ">=1.0.2 || ^2.0.0", "@tanstack/react-router": "^1.170.22", "vite": ">=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0", "vite-plugin-solid": "^2.11.10 || ^3.0.0-0", "webpack": ">=5.92.0" }, "optionalPeers": ["@rsbuild/core", "@tanstack/react-router", "vite", "vite-plugin-solid", "webpack"] }, "sha512-M/3XG6RIxid8+f5VKXILtPpapQPjIgKRKV1JxuvYJwQM811iSUzK9onrZnezUktZcHaWJN+wD7FR5HedH/WY7Q=="],
"@tanstack/router-utils": ["@tanstack/router-utils@1.162.2", "", { "dependencies": { "@babel/generator": "^7.28.5", "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "ansis": "^4.1.0", "babel-dead-code-elimination": "^1.0.12", "diff": "^8.0.2", "pathe": "^2.0.3", "tinyglobby": "^0.2.15" } }, "sha512-hTWqJtqIFFdvuCl8WXNyrodp2L9zo2G37xKRrcVmVRWpAB2h+U1LuRAfS4tsFTiWOIoE/B+WDVFB8JpoEdw6jQ=="],
@@ -2627,9 +2627,9 @@
"semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="],
- "seroval": ["seroval@1.5.4", "", {}, "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw=="],
+ "seroval": ["seroval@1.6.2", "", {}, "sha512-mPT+SD2TrlB6wvte1KkYOYUkubaTbd6pZ/6Kk3C9nxzrHmCZyhxOO7XGAeL7f+yLKZglzGtM9odUVvg/EhO+vQ=="],
- "seroval-plugins": ["seroval-plugins@1.5.4", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw=="],
+ "seroval-plugins": ["seroval-plugins@1.6.2", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-TfxuUjlbBESzUOWdTkTKqvSmav0ABym+itetDXLK6mDz8SmrpdI30aF8RTXE8Bvq+tH/1yIDkvy3W0lfQb1ipQ=="],
"set-cookie-parser": ["set-cookie-parser@2.7.2", "", {}, "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw=="],
@@ -3225,14 +3225,8 @@
"@tanstack/react-router/@tanstack/react-store": ["@tanstack/react-store@0.9.3", "", { "dependencies": { "@tanstack/store": "0.9.3", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-y2iHd/N9OkoQbFJLUX1T9vbc2O9tjH0pQRgTcx1/Nz4IlwLvkgpuglXUx+mXt0g5ZDFrEeDnONPqkbfxXJKwRg=="],
- "@tanstack/react-router/@tanstack/router-core": ["@tanstack/router-core@1.171.14", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-Mo3hwx0qB0cJsVYGDjG0+Ouf7VV74h/vsoDMGztdlyzDanp4gBA2s7IVvm6hFrmQM6GpD9F0Z7SqD7OldfLE7g=="],
-
- "@tanstack/router-generator/@tanstack/router-core": ["@tanstack/router-core@1.171.14", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-Mo3hwx0qB0cJsVYGDjG0+Ouf7VV74h/vsoDMGztdlyzDanp4gBA2s7IVvm6hFrmQM6GpD9F0Z7SqD7OldfLE7g=="],
-
"@tanstack/router-generator/jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="],
- "@tanstack/router-plugin/@tanstack/router-core": ["@tanstack/router-core@1.171.14", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-Mo3hwx0qB0cJsVYGDjG0+Ouf7VV74h/vsoDMGztdlyzDanp4gBA2s7IVvm6hFrmQM6GpD9F0Z7SqD7OldfLE7g=="],
-
"@tanstack/router-utils/diff": ["diff@8.0.4", "", {}, "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw=="],
"@testing-library/jest-dom/dom-accessibility-api": ["dom-accessibility-api@0.6.3", "", {}, "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w=="],
diff --git a/frontend/package.json b/frontend/package.json
index d975108cbd..aa59ff4458 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -80,8 +80,8 @@
"@shikijs/themes": "^3.23.0",
"@stepperize/react": "^5.1.9",
"@tanstack/react-form": "^1.12.3",
- "@tanstack/react-query": "^5.99.2",
- "@tanstack/react-router": "^1.170.7",
+ "@tanstack/react-query": "^5.101.4",
+ "@tanstack/react-router": "^1.170.22",
"@tanstack/react-table": "^8.21.3",
"@tanstack/react-virtual": "^3.13.12",
"@uiw/react-codemirror": "^4.25.10",
@@ -147,9 +147,9 @@
"@rsbuild/plugin-tailwindcss": "2.0.2",
"@rsbuild/plugin-yaml": "1.0.5",
"@rsdoctor/rspack-plugin": "1.6.0",
- "@tanstack/react-query-devtools": "^5.90.2",
- "@tanstack/react-router-devtools": "^1.167.0",
- "@tanstack/router-plugin": "^1.168.19",
+ "@tanstack/react-query-devtools": "^5.101.4",
+ "@tanstack/react-router-devtools": "^1.167.1",
+ "@tanstack/router-plugin": "^1.168.27",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^7.0.0",
"@testing-library/react": "^16.3.2",
diff --git a/frontend/rsbuild.config.ts b/frontend/rsbuild.config.ts
index 1d222e16d3..76259417f6 100644
--- a/frontend/rsbuild.config.ts
+++ b/frontend/rsbuild.config.ts
@@ -8,12 +8,13 @@ import { pluginSvgr } from '@rsbuild/plugin-svgr';
import { pluginTailwindcss } from '@rsbuild/plugin-tailwindcss';
import { pluginYaml } from '@rsbuild/plugin-yaml';
import { RsdoctorRspackPlugin } from '@rsdoctor/rspack-plugin';
-import { TanStackRouterRspack } from '@tanstack/router-plugin/rspack';
+import { tanstackRouter } from '@tanstack/router-plugin/rspack';
import MonacoWebpackPlugin from 'monaco-editor-webpack-plugin';
import { moduleFederationConfig } from './module-federation.config';
import { HEAP_APP_ID } from './src/heap/heap.helper';
import { HUBSPOT_PORTAL_ID } from './src/hubspot/hubspot.helper';
+import { TANSTACK_CHUNK_PATTERN, tanstackRouterConfig } from './tanstack-router.config';
import path from 'node:path';
const { publicVars, rawPublicVars } = loadEnv({ prefixes: ['REACT_APP_'] });
@@ -131,6 +132,18 @@ export default defineConfig({
// production diagnostics.
removeConsole: ['log', 'warn'],
},
+ splitChunks: {
+ preset: 'default',
+ cacheGroups: {
+ tanstack: {
+ test: TANSTACK_CHUNK_PATTERN,
+ name: 'lib-tanstack',
+ chunks: 'all',
+ priority: 10,
+ reuseExistingChunk: true,
+ },
+ },
+ },
output: {
distPath: {
root: 'build',
@@ -180,14 +193,7 @@ export default defineConfig({
};
const plugins = [
- TanStackRouterRspack({
- target: 'react',
- autoCodeSplitting: true,
- routesDirectory: './src/routes',
- generatedRouteTree: './src/routeTree.gen.ts',
- quoteStyle: 'single',
- semicolons: true,
- }),
+ tanstackRouter(tanstackRouterConfig),
new MonacoWebpackPlugin({
languages: ['yaml', 'json', 'typescript', 'javascript', 'protobuf'],
customLanguages: [
diff --git a/frontend/src/app.tsx b/frontend/src/app.tsx
index 2f91099679..dff2ed4d52 100644
--- a/frontend/src/app.tsx
+++ b/frontend/src/app.tsx
@@ -53,6 +53,7 @@ import { applyOverrides as applyDebugFeatureFlagOverrides } from './components/d
import { NotFoundPage } from './components/misc/not-found-page';
import { RoutePendingFallback } from './components/misc/route-pending-fallback';
import { addBearerTokenInterceptor, checkExpiredLicenseInterceptor, getGrpcBasePath, setup } from './config';
+import { routerDefaults } from './router-defaults';
import { routeTree } from './routeTree.gen';
import { installUISettingsSideEffects } from './state/ui';
@@ -68,6 +69,7 @@ const dataplaneTransport = createConnectTransport({
// Create router instance
const router = createRouter({
routeTree,
+ ...routerDefaults,
context: {
basePath: getBasePath(),
queryClient,
diff --git a/frontend/src/components/layout/header.test.tsx b/frontend/src/components/layout/header.test.tsx
new file mode 100644
index 0000000000..025054511c
--- /dev/null
+++ b/frontend/src/components/layout/header.test.tsx
@@ -0,0 +1,90 @@
+/**
+ * Copyright 2026 Redpanda Data, Inc.
+ *
+ * Use of this software is governed by the Business Source License
+ * included in the file https://github.com/redpanda-data/redpanda/blob/dev/licenses/bsl.md
+ *
+ * As of the Change Date specified in that file, in accordance with
+ * the Business Source License, use of this software will be governed
+ * by the Apache License, Version 2.0
+ */
+
+import { render, screen } from '@testing-library/react';
+import type { PropsWithChildren, ReactNode } from 'react';
+
+const getMatchedRoutes = vi.fn(() => [[{ options: { staticData: { breadcrumbOnlyHeader: true } } }], {}, undefined]);
+
+vi.mock('@tanstack/react-router', () => ({
+ Link: ({ children }: PropsWithChildren) => {children},
+ useLocation: () => ({ pathname: '/sql-studio' }),
+ useMatchRoute: () => () => false,
+ useRouter: () => ({ getMatchedRoutes }),
+}));
+
+vi.mock('@redpanda-data/ui', () => ({
+ Button: () => null,
+ ColorModeSwitch: () => null,
+ CopyButton: () => null,
+}));
+
+vi.mock('components/redpanda-ui/lib/utils', () => ({
+ cn: (...classes: Array) => classes.filter(Boolean).join(' '),
+}));
+
+vi.mock('lucide-react', () => ({
+ ChevronLeft: () => null,
+}));
+
+vi.mock('../../config', () => ({
+ isEmbedded: () => false,
+ isFeatureFlagEnabled: () => false,
+}));
+
+vi.mock('../../state/backend-api', () => ({
+ api: { isRedpanda: false, userData: null },
+ useApiStoreHook: (selector: (state: { userData: null }) => T) => selector({ userData: null }),
+}));
+
+vi.mock('../../state/ui-state', () => ({
+ useUIStateStore: (
+ selector: (state: {
+ _pageTitle: string;
+ backLink: null;
+ pageBreadcrumbs: never[];
+ selectedClusterName: null;
+ shouldHidePageHeader: boolean;
+ }) => T
+ ) =>
+ selector({
+ _pageTitle: 'Cluster details',
+ backLink: null,
+ pageBreadcrumbs: [],
+ selectedClusterName: null,
+ shouldHidePageHeader: false,
+ }),
+}));
+
+vi.mock('../../utils/env', () => ({ IsDev: false }));
+vi.mock('../misc/buttons/data-refresh/component', () => ({ default: () => null }));
+
+vi.mock('../redpanda-ui/components/breadcrumb', () => ({
+ Breadcrumb: ({ children }: PropsWithChildren) => children,
+ BreadcrumbItem: ({ children }: PropsWithChildren) => children,
+ BreadcrumbLink: ({ render: content }: { render: ReactNode }) => content,
+ BreadcrumbList: ({ children }: PropsWithChildren) => children,
+ BreadcrumbSeparator: () => null,
+}));
+
+vi.mock('../redpanda-ui/components/button', () => ({ Button: () => null }));
+vi.mock('../redpanda-ui/components/separator', () => ({ Separator: () => null }));
+vi.mock('../redpanda-ui/components/sidebar', () => ({ SidebarTrigger: () => null }));
+
+import AppPageHeader from './header';
+
+describe('AppPageHeader', () => {
+ it('hides the title row when the matched route owns it', () => {
+ render();
+
+ expect(screen.queryByRole('heading', { name: 'Cluster details' })).not.toBeInTheDocument();
+ });
+});
diff --git a/frontend/src/components/layout/header.tsx b/frontend/src/components/layout/header.tsx
index 75b5e63895..43e59c7163 100644
--- a/frontend/src/components/layout/header.tsx
+++ b/frontend/src/components/layout/header.tsx
@@ -179,9 +179,9 @@ function useRouteOwnsTitleRow() {
const router = useRouter();
const { pathname } = useLocation();
- return router
- .getMatchedRoutes(pathname)
- .matchedRoutes.some((route) => route.options.staticData?.breadcrumbOnlyHeader);
+ const [matchedRoutes] = router.getMatchedRoutes(pathname);
+
+ return matchedRoutes.some((route) => route.options.staticData?.breadcrumbOnlyHeader);
}
/**
diff --git a/frontend/src/components/routes/route-pending.test.tsx b/frontend/src/components/routes/route-pending.test.tsx
new file mode 100644
index 0000000000..fa20f9b4fa
--- /dev/null
+++ b/frontend/src/components/routes/route-pending.test.tsx
@@ -0,0 +1,22 @@
+/**
+ * Copyright 2026 Redpanda Data, Inc.
+ *
+ * Use of this software is governed by the Business Source License
+ * included in the file https://github.com/redpanda-data/redpanda/blob/dev/licenses/bsl.md
+ *
+ * As of the Change Date specified in that file, in accordance with
+ * the Business Source License, use of this software will be governed
+ * by the Apache License, Version 2.0
+ */
+
+import { render, screen } from '@testing-library/react';
+
+import { RoutePending } from './route-pending';
+
+describe('RoutePending', () => {
+ it('announces route loading', () => {
+ render();
+
+ expect(screen.getByRole('status', { name: 'Loading page' })).toBeVisible();
+ });
+});
diff --git a/frontend/src/components/routes/route-pending.tsx b/frontend/src/components/routes/route-pending.tsx
index f8c0dcc7dc..d49bd2db1f 100644
--- a/frontend/src/components/routes/route-pending.tsx
+++ b/frontend/src/components/routes/route-pending.tsx
@@ -17,9 +17,9 @@ import { LoaderIcon } from 'components/icons';
*/
export const RoutePending = () => (
);
diff --git a/frontend/src/embedded-app.tsx b/frontend/src/embedded-app.tsx
index 9ca609e3c6..2537d0baf7 100644
--- a/frontend/src/embedded-app.tsx
+++ b/frontend/src/embedded-app.tsx
@@ -52,6 +52,7 @@ import {
type SetConfigArguments,
setup,
} from './config';
+import { routerDefaults } from './router-defaults';
import { routeTree } from './routeTree.gen';
import { appGlobal } from './state/app-global';
import { installUISettingsSideEffects } from './state/ui';
@@ -138,6 +139,7 @@ function EmbeddedApp({ basePath = '', ...p }: EmbeddedProps) {
() =>
createRouter({
routeTree,
+ ...routerDefaults,
context: {
basePath,
queryClient,
diff --git a/frontend/src/routeTree.gen.ts b/frontend/src/routeTree.gen.ts
index bd32d388d1..b89209659c 100644
--- a/frontend/src/routeTree.gen.ts
+++ b/frontend/src/routeTree.gen.ts
@@ -9,94 +9,79 @@
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
import { Route as rootRouteImport } from './routes/__root';
-import { Route as UploadLicenseRouteImport } from './routes/upload-license';
-import { Route as TrialExpiredRouteImport } from './routes/trial-expired';
-import { Route as TransformsSetupRouteImport } from './routes/transforms-setup';
-import { Route as SqlRouteImport } from './routes/sql';
-import { Route as SecurityRouteImport } from './routes/security';
-import { Route as ReassignPartitionsRouteImport } from './routes/reassign-partitions';
-import { Route as QuotasRouteImport } from './routes/quotas';
import { Route as IndexRouteImport } from './routes/index';
-import { Route as TransformsIndexRouteImport } from './routes/transforms/index';
-import { Route as TopicsIndexRouteImport } from './routes/topics/index';
-import { Route as ShadowlinksIndexRouteImport } from './routes/shadowlinks/index';
-import { Route as SecurityIndexRouteImport } from './routes/security/index';
-import { Route as SecretsIndexRouteImport } from './routes/secrets/index';
-import { Route as SchemaRegistryIndexRouteImport } from './routes/schema-registry/index';
-import { Route as OverviewIndexRouteImport } from './routes/overview/index';
-import { Route as ObservabilityIndexRouteImport } from './routes/observability/index';
-import { Route as LoginIndexRouteImport } from './routes/login/index';
-import { Route as GroupsIndexRouteImport } from './routes/groups/index';
-import { Route as DebugBundleIndexRouteImport } from './routes/debug-bundle/index';
+import { Route as QuotasRouteImport } from './routes/quotas';
+import { Route as ReassignPartitionsRouteImport } from './routes/reassign-partitions';
+import { Route as SecurityRouteImport } from './routes/security';
+import { Route as SqlRouteImport } from './routes/sql';
+import { Route as TransformsSetupRouteImport } from './routes/transforms-setup';
+import { Route as TrialExpiredRouteImport } from './routes/trial-expired';
+import { Route as UploadLicenseRouteImport } from './routes/upload-license';
import { Route as ConnectClustersIndexRouteImport } from './routes/connect-clusters/index';
-import { Route as TransformsTransformNameRouteImport } from './routes/transforms/$transformName';
-import { Route as ShadowlinksCreateRouteImport } from './routes/shadowlinks/create';
-import { Route as SecretsCreateRouteImport } from './routes/secrets/create';
-import { Route as SchemaRegistryEditModeRouteImport } from './routes/schema-registry/edit-mode';
-import { Route as SchemaRegistryEditCompatibilityRouteImport } from './routes/schema-registry/edit-compatibility';
-import { Route as SchemaRegistryCreateRouteImport } from './routes/schema-registry/create';
-import { Route as RpConnectCreateRouteImport } from './routes/rp-connect/create';
-import { Route as OverviewBrokerIdRouteImport } from './routes/overview/$brokerId';
+import { Route as DebugBundleIndexRouteImport } from './routes/debug-bundle/index';
+import { Route as GroupsIndexRouteImport } from './routes/groups/index';
import { Route as GroupsGroupIdRouteImport } from './routes/groups/$groupId';
-import { Route as TopicsTopicNameIndexRouteImport } from './routes/topics/$topicName/index';
-import { Route as ShadowlinksNameIndexRouteImport } from './routes/shadowlinks/$name/index';
-import { Route as SecurityUsersIndexRouteImport } from './routes/security/users/index';
-import { Route as SecurityRolesIndexRouteImport } from './routes/security/roles/index';
-import { Route as SecurityPermissionsIndexRouteImport } from './routes/security/permissions/index';
-import { Route as SecurityPermissionsListIndexRouteImport } from './routes/security/permissions-list/index';
-import { Route as SecurityAclsIndexRouteImport } from './routes/security/acls/index';
-import { Route as RpConnectPipelineIdIndexRouteImport } from './routes/rp-connect/$pipelineId/index';
+import { Route as LoginIndexRouteImport } from './routes/login/index';
+import { Route as ObservabilityIndexRouteImport } from './routes/observability/index';
+import { Route as OverviewIndexRouteImport } from './routes/overview/index';
+import { Route as OverviewBrokerIdRouteImport } from './routes/overview/$brokerId';
+import { Route as RpConnectCreateRouteImport } from './routes/rp-connect/create';
+import { Route as SchemaRegistryIndexRouteImport } from './routes/schema-registry/index';
+import { Route as SchemaRegistryCreateRouteImport } from './routes/schema-registry/create';
+import { Route as SchemaRegistryEditCompatibilityRouteImport } from './routes/schema-registry/edit-compatibility';
+import { Route as SchemaRegistryEditModeRouteImport } from './routes/schema-registry/edit-mode';
+import { Route as SecretsIndexRouteImport } from './routes/secrets/index';
+import { Route as SecretsCreateRouteImport } from './routes/secrets/create';
+import { Route as SecurityIndexRouteImport } from './routes/security/index';
+import { Route as ShadowlinksIndexRouteImport } from './routes/shadowlinks/index';
+import { Route as ShadowlinksCreateRouteImport } from './routes/shadowlinks/create';
+import { Route as TopicsIndexRouteImport } from './routes/topics/index';
+import { Route as TransformsIndexRouteImport } from './routes/transforms/index';
+import { Route as TransformsTransformNameRouteImport } from './routes/transforms/$transformName';
import { Route as ConnectClustersClusterNameIndexRouteImport } from './routes/connect-clusters/$clusterName/index';
-import { Route as TopicsTopicNameProduceRecordRouteImport } from './routes/topics/$topicName/produce-record';
-import { Route as ShadowlinksNameEditRouteImport } from './routes/shadowlinks/$name/edit';
-import { Route as SecurityUsersCreateRouteImport } from './routes/security/users/create';
-import { Route as SecurityRolesCreateRouteImport } from './routes/security/roles/create';
-import { Route as SecurityAclsCreateRouteImport } from './routes/security/acls/create';
-import { Route as SecretsIdEditRouteImport } from './routes/secrets/$id/edit';
-import { Route as RpConnectSecretsCreateRouteImport } from './routes/rp-connect/secrets/create';
-import { Route as RpConnectPipelineIdEditRouteImport } from './routes/rp-connect/$pipelineId/edit';
-import { Route as LoginCallbacksProviderRouteImport } from './routes/login/callbacks/$provider';
-import { Route as DebugBundleProgressJobIdRouteImport } from './routes/debug-bundle/progress/$jobId';
-import { Route as ConnectClustersClusterNameCreateConnectorRouteImport } from './routes/connect-clusters/$clusterName/create-connector';
import { Route as ConnectClustersClusterNameConnectorRouteImport } from './routes/connect-clusters/$clusterName/$connector';
+import { Route as ConnectClustersClusterNameCreateConnectorRouteImport } from './routes/connect-clusters/$clusterName/create-connector';
+import { Route as DebugBundleProgressJobIdRouteImport } from './routes/debug-bundle/progress/$jobId';
+import { Route as LoginCallbacksProviderRouteImport } from './routes/login/callbacks/$provider';
+import { Route as RpConnectPipelineIdIndexRouteImport } from './routes/rp-connect/$pipelineId/index';
+import { Route as RpConnectPipelineIdEditRouteImport } from './routes/rp-connect/$pipelineId/edit';
+import { Route as RpConnectSecretsCreateRouteImport } from './routes/rp-connect/secrets/create';
+import { Route as SecretsIdEditRouteImport } from './routes/secrets/$id/edit';
+import { Route as SecurityAclsIndexRouteImport } from './routes/security/acls/index';
+import { Route as SecurityAclsCreateRouteImport } from './routes/security/acls/create';
+import { Route as SecurityPermissionsListIndexRouteImport } from './routes/security/permissions-list/index';
+import { Route as SecurityPermissionsIndexRouteImport } from './routes/security/permissions/index';
+import { Route as SecurityRolesIndexRouteImport } from './routes/security/roles/index';
+import { Route as SecurityRolesCreateRouteImport } from './routes/security/roles/create';
+import { Route as SecurityUsersIndexRouteImport } from './routes/security/users/index';
+import { Route as SecurityUsersCreateRouteImport } from './routes/security/users/create';
+import { Route as ShadowlinksNameIndexRouteImport } from './routes/shadowlinks/$name/index';
+import { Route as ShadowlinksNameEditRouteImport } from './routes/shadowlinks/$name/edit';
+import { Route as TopicsTopicNameIndexRouteImport } from './routes/topics/$topicName/index';
+import { Route as TopicsTopicNameProduceRecordRouteImport } from './routes/topics/$topicName/produce-record';
+import { Route as RpConnectSecretsSecretIdEditRouteImport } from './routes/rp-connect/secrets/$secretId/edit';
+import { Route as SchemaRegistryContextsContextNameCreateRouteImport } from './routes/schema-registry/contexts/$contextName/create';
+import { Route as SchemaRegistryContextsContextNameEditCompatibilityRouteImport } from './routes/schema-registry/contexts/$contextName/edit-compatibility';
+import { Route as SchemaRegistryContextsContextNameEditModeRouteImport } from './routes/schema-registry/contexts/$contextName/edit-mode';
import { Route as SchemaRegistrySubjectsSubjectNameIndexRouteImport } from './routes/schema-registry/subjects/$subjectName/index';
-import { Route as SecurityUsersUserNameDetailsRouteImport } from './routes/security/users/$userName/details';
-import { Route as SecurityRolesRoleNameUpdateRouteImport } from './routes/security/roles/$roleName/update';
-import { Route as SecurityRolesRoleNameEditRouteImport } from './routes/security/roles/$roleName/edit';
-import { Route as SecurityRolesRoleNameDetailsRouteImport } from './routes/security/roles/$roleName/details';
-import { Route as SecurityAclsAclNameUpdateRouteImport } from './routes/security/acls/$aclName/update';
-import { Route as SecurityAclsAclNameDetailsRouteImport } from './routes/security/acls/$aclName/details';
-import { Route as SchemaRegistrySubjectsSubjectNameEditModeRouteImport } from './routes/schema-registry/subjects/$subjectName/edit-mode';
-import { Route as SchemaRegistrySubjectsSubjectNameEditCompatibilityRouteImport } from './routes/schema-registry/subjects/$subjectName/edit-compatibility';
import { Route as SchemaRegistrySubjectsSubjectNameAddVersionRouteImport } from './routes/schema-registry/subjects/$subjectName/add-version';
-import { Route as SchemaRegistryContextsContextNameEditModeRouteImport } from './routes/schema-registry/contexts/$contextName/edit-mode';
-import { Route as SchemaRegistryContextsContextNameEditCompatibilityRouteImport } from './routes/schema-registry/contexts/$contextName/edit-compatibility';
-import { Route as SchemaRegistryContextsContextNameCreateRouteImport } from './routes/schema-registry/contexts/$contextName/create';
-import { Route as RpConnectSecretsSecretIdEditRouteImport } from './routes/rp-connect/secrets/$secretId/edit';
+import { Route as SchemaRegistrySubjectsSubjectNameEditCompatibilityRouteImport } from './routes/schema-registry/subjects/$subjectName/edit-compatibility';
+import { Route as SchemaRegistrySubjectsSubjectNameEditModeRouteImport } from './routes/schema-registry/subjects/$subjectName/edit-mode';
+import { Route as SecurityAclsAclNameDetailsRouteImport } from './routes/security/acls/$aclName/details';
+import { Route as SecurityAclsAclNameUpdateRouteImport } from './routes/security/acls/$aclName/update';
+import { Route as SecurityRolesRoleNameDetailsRouteImport } from './routes/security/roles/$roleName/details';
+import { Route as SecurityRolesRoleNameEditRouteImport } from './routes/security/roles/$roleName/edit';
+import { Route as SecurityRolesRoleNameUpdateRouteImport } from './routes/security/roles/$roleName/update';
+import { Route as SecurityUsersUserNameDetailsRouteImport } from './routes/security/users/$userName/details';
-const UploadLicenseRoute = UploadLicenseRouteImport.update({
- id: '/upload-license',
- path: '/upload-license',
- getParentRoute: () => rootRouteImport,
-} as any);
-const TrialExpiredRoute = TrialExpiredRouteImport.update({
- id: '/trial-expired',
- path: '/trial-expired',
- getParentRoute: () => rootRouteImport,
-} as any);
-const TransformsSetupRoute = TransformsSetupRouteImport.update({
- id: '/transforms-setup',
- path: '/transforms-setup',
- getParentRoute: () => rootRouteImport,
-} as any);
-const SqlRoute = SqlRouteImport.update({
- id: '/sql',
- path: '/sql',
+const IndexRoute = IndexRouteImport.update({
+ id: '/',
+ path: '/',
getParentRoute: () => rootRouteImport,
} as any);
-const SecurityRoute = SecurityRouteImport.update({
- id: '/security',
- path: '/security',
+const QuotasRoute = QuotasRouteImport.update({
+ id: '/quotas',
+ path: '/quotas',
getParentRoute: () => rootRouteImport,
} as any);
const ReassignPartitionsRoute = ReassignPartitionsRouteImport.update({
@@ -104,54 +89,49 @@ const ReassignPartitionsRoute = ReassignPartitionsRouteImport.update({
path: '/reassign-partitions',
getParentRoute: () => rootRouteImport,
} as any);
-const QuotasRoute = QuotasRouteImport.update({
- id: '/quotas',
- path: '/quotas',
+const SecurityRoute = SecurityRouteImport.update({
+ id: '/security',
+ path: '/security',
getParentRoute: () => rootRouteImport,
} as any);
-const IndexRoute = IndexRouteImport.update({
- id: '/',
- path: '/',
+const SqlRoute = SqlRouteImport.update({
+ id: '/sql',
+ path: '/sql',
getParentRoute: () => rootRouteImport,
} as any);
-const TransformsIndexRoute = TransformsIndexRouteImport.update({
- id: '/transforms/',
- path: '/transforms/',
+const TransformsSetupRoute = TransformsSetupRouteImport.update({
+ id: '/transforms-setup',
+ path: '/transforms-setup',
getParentRoute: () => rootRouteImport,
} as any);
-const TopicsIndexRoute = TopicsIndexRouteImport.update({
- id: '/topics/',
- path: '/topics/',
+const TrialExpiredRoute = TrialExpiredRouteImport.update({
+ id: '/trial-expired',
+ path: '/trial-expired',
getParentRoute: () => rootRouteImport,
} as any);
-const ShadowlinksIndexRoute = ShadowlinksIndexRouteImport.update({
- id: '/shadowlinks/',
- path: '/shadowlinks/',
+const UploadLicenseRoute = UploadLicenseRouteImport.update({
+ id: '/upload-license',
+ path: '/upload-license',
getParentRoute: () => rootRouteImport,
} as any);
-const SecurityIndexRoute = SecurityIndexRouteImport.update({
- id: '/',
- path: '/',
- getParentRoute: () => SecurityRoute,
-} as any);
-const SecretsIndexRoute = SecretsIndexRouteImport.update({
- id: '/secrets/',
- path: '/secrets/',
+const ConnectClustersIndexRoute = ConnectClustersIndexRouteImport.update({
+ id: '/connect-clusters/',
+ path: '/connect-clusters/',
getParentRoute: () => rootRouteImport,
} as any);
-const SchemaRegistryIndexRoute = SchemaRegistryIndexRouteImport.update({
- id: '/schema-registry/',
- path: '/schema-registry/',
+const DebugBundleIndexRoute = DebugBundleIndexRouteImport.update({
+ id: '/debug-bundle/',
+ path: '/debug-bundle/',
getParentRoute: () => rootRouteImport,
} as any);
-const OverviewIndexRoute = OverviewIndexRouteImport.update({
- id: '/overview/',
- path: '/overview/',
+const GroupsIndexRoute = GroupsIndexRouteImport.update({
+ id: '/groups/',
+ path: '/groups/',
getParentRoute: () => rootRouteImport,
} as any);
-const ObservabilityIndexRoute = ObservabilityIndexRouteImport.update({
- id: '/observability/',
- path: '/observability/',
+const GroupsGroupIdRoute = GroupsGroupIdRouteImport.update({
+ id: '/groups/$groupId',
+ path: '/groups/$groupId',
getParentRoute: () => rootRouteImport,
} as any);
const LoginIndexRoute = LoginIndexRouteImport.update({
@@ -159,39 +139,34 @@ const LoginIndexRoute = LoginIndexRouteImport.update({
path: '/login/',
getParentRoute: () => rootRouteImport,
} as any);
-const GroupsIndexRoute = GroupsIndexRouteImport.update({
- id: '/groups/',
- path: '/groups/',
- getParentRoute: () => rootRouteImport,
-} as any);
-const DebugBundleIndexRoute = DebugBundleIndexRouteImport.update({
- id: '/debug-bundle/',
- path: '/debug-bundle/',
+const ObservabilityIndexRoute = ObservabilityIndexRouteImport.update({
+ id: '/observability/',
+ path: '/observability/',
getParentRoute: () => rootRouteImport,
} as any);
-const ConnectClustersIndexRoute = ConnectClustersIndexRouteImport.update({
- id: '/connect-clusters/',
- path: '/connect-clusters/',
+const OverviewIndexRoute = OverviewIndexRouteImport.update({
+ id: '/overview/',
+ path: '/overview/',
getParentRoute: () => rootRouteImport,
} as any);
-const TransformsTransformNameRoute = TransformsTransformNameRouteImport.update({
- id: '/transforms/$transformName',
- path: '/transforms/$transformName',
+const OverviewBrokerIdRoute = OverviewBrokerIdRouteImport.update({
+ id: '/overview/$brokerId',
+ path: '/overview/$brokerId',
getParentRoute: () => rootRouteImport,
} as any);
-const ShadowlinksCreateRoute = ShadowlinksCreateRouteImport.update({
- id: '/shadowlinks/create',
- path: '/shadowlinks/create',
+const RpConnectCreateRoute = RpConnectCreateRouteImport.update({
+ id: '/rp-connect/create',
+ path: '/rp-connect/create',
getParentRoute: () => rootRouteImport,
} as any);
-const SecretsCreateRoute = SecretsCreateRouteImport.update({
- id: '/secrets/create',
- path: '/secrets/create',
+const SchemaRegistryIndexRoute = SchemaRegistryIndexRouteImport.update({
+ id: '/schema-registry/',
+ path: '/schema-registry/',
getParentRoute: () => rootRouteImport,
} as any);
-const SchemaRegistryEditModeRoute = SchemaRegistryEditModeRouteImport.update({
- id: '/schema-registry/edit-mode',
- path: '/schema-registry/edit-mode',
+const SchemaRegistryCreateRoute = SchemaRegistryCreateRouteImport.update({
+ id: '/schema-registry/create',
+ path: '/schema-registry/create',
getParentRoute: () => rootRouteImport,
} as any);
const SchemaRegistryEditCompatibilityRoute =
@@ -200,62 +175,79 @@ const SchemaRegistryEditCompatibilityRoute =
path: '/schema-registry/edit-compatibility',
getParentRoute: () => rootRouteImport,
} as any);
-const SchemaRegistryCreateRoute = SchemaRegistryCreateRouteImport.update({
- id: '/schema-registry/create',
- path: '/schema-registry/create',
+const SchemaRegistryEditModeRoute = SchemaRegistryEditModeRouteImport.update({
+ id: '/schema-registry/edit-mode',
+ path: '/schema-registry/edit-mode',
getParentRoute: () => rootRouteImport,
} as any);
-const RpConnectCreateRoute = RpConnectCreateRouteImport.update({
- id: '/rp-connect/create',
- path: '/rp-connect/create',
+const SecretsIndexRoute = SecretsIndexRouteImport.update({
+ id: '/secrets/',
+ path: '/secrets/',
getParentRoute: () => rootRouteImport,
} as any);
-const OverviewBrokerIdRoute = OverviewBrokerIdRouteImport.update({
- id: '/overview/$brokerId',
- path: '/overview/$brokerId',
+const SecretsCreateRoute = SecretsCreateRouteImport.update({
+ id: '/secrets/create',
+ path: '/secrets/create',
getParentRoute: () => rootRouteImport,
} as any);
-const GroupsGroupIdRoute = GroupsGroupIdRouteImport.update({
- id: '/groups/$groupId',
- path: '/groups/$groupId',
+const SecurityIndexRoute = SecurityIndexRouteImport.update({
+ id: '/',
+ path: '/',
+ getParentRoute: () => SecurityRoute,
+} as any);
+const ShadowlinksIndexRoute = ShadowlinksIndexRouteImport.update({
+ id: '/shadowlinks/',
+ path: '/shadowlinks/',
getParentRoute: () => rootRouteImport,
} as any);
-const TopicsTopicNameIndexRoute = TopicsTopicNameIndexRouteImport.update({
- id: '/topics/$topicName/',
- path: '/topics/$topicName/',
+const ShadowlinksCreateRoute = ShadowlinksCreateRouteImport.update({
+ id: '/shadowlinks/create',
+ path: '/shadowlinks/create',
getParentRoute: () => rootRouteImport,
} as any);
-const ShadowlinksNameIndexRoute = ShadowlinksNameIndexRouteImport.update({
- id: '/shadowlinks/$name/',
- path: '/shadowlinks/$name/',
+const TopicsIndexRoute = TopicsIndexRouteImport.update({
+ id: '/topics/',
+ path: '/topics/',
getParentRoute: () => rootRouteImport,
} as any);
-const SecurityUsersIndexRoute = SecurityUsersIndexRouteImport.update({
- id: '/users/',
- path: '/users/',
- getParentRoute: () => SecurityRoute,
+const TransformsIndexRoute = TransformsIndexRouteImport.update({
+ id: '/transforms/',
+ path: '/transforms/',
+ getParentRoute: () => rootRouteImport,
} as any);
-const SecurityRolesIndexRoute = SecurityRolesIndexRouteImport.update({
- id: '/roles/',
- path: '/roles/',
- getParentRoute: () => SecurityRoute,
+const TransformsTransformNameRoute = TransformsTransformNameRouteImport.update({
+ id: '/transforms/$transformName',
+ path: '/transforms/$transformName',
+ getParentRoute: () => rootRouteImport,
} as any);
-const SecurityPermissionsIndexRoute =
- SecurityPermissionsIndexRouteImport.update({
- id: '/permissions/',
- path: '/permissions/',
- getParentRoute: () => SecurityRoute,
+const ConnectClustersClusterNameIndexRoute =
+ ConnectClustersClusterNameIndexRouteImport.update({
+ id: '/connect-clusters/$clusterName/',
+ path: '/connect-clusters/$clusterName/',
+ getParentRoute: () => rootRouteImport,
} as any);
-const SecurityPermissionsListIndexRoute =
- SecurityPermissionsListIndexRouteImport.update({
- id: '/permissions-list/',
- path: '/permissions-list/',
- getParentRoute: () => SecurityRoute,
+const ConnectClustersClusterNameConnectorRoute =
+ ConnectClustersClusterNameConnectorRouteImport.update({
+ id: '/connect-clusters/$clusterName/$connector',
+ path: '/connect-clusters/$clusterName/$connector',
+ getParentRoute: () => rootRouteImport,
} as any);
-const SecurityAclsIndexRoute = SecurityAclsIndexRouteImport.update({
- id: '/acls/',
- path: '/acls/',
- getParentRoute: () => SecurityRoute,
+const ConnectClustersClusterNameCreateConnectorRoute =
+ ConnectClustersClusterNameCreateConnectorRouteImport.update({
+ id: '/connect-clusters/$clusterName/create-connector',
+ path: '/connect-clusters/$clusterName/create-connector',
+ getParentRoute: () => rootRouteImport,
+ } as any);
+const DebugBundleProgressJobIdRoute =
+ DebugBundleProgressJobIdRouteImport.update({
+ id: '/debug-bundle/progress/$jobId',
+ path: '/debug-bundle/progress/$jobId',
+ getParentRoute: () => rootRouteImport,
+ } as any);
+const LoginCallbacksProviderRoute = LoginCallbacksProviderRouteImport.update({
+ id: '/login/callbacks/$provider',
+ path: '/login/callbacks/$provider',
+ getParentRoute: () => rootRouteImport,
} as any);
const RpConnectPipelineIdIndexRoute =
RpConnectPipelineIdIndexRouteImport.update({
@@ -263,26 +255,46 @@ const RpConnectPipelineIdIndexRoute =
path: '/rp-connect/$pipelineId/',
getParentRoute: () => rootRouteImport,
} as any);
-const ConnectClustersClusterNameIndexRoute =
- ConnectClustersClusterNameIndexRouteImport.update({
- id: '/connect-clusters/$clusterName/',
- path: '/connect-clusters/$clusterName/',
- getParentRoute: () => rootRouteImport,
- } as any);
-const TopicsTopicNameProduceRecordRoute =
- TopicsTopicNameProduceRecordRouteImport.update({
- id: '/topics/$topicName/produce-record',
- path: '/topics/$topicName/produce-record',
- getParentRoute: () => rootRouteImport,
- } as any);
-const ShadowlinksNameEditRoute = ShadowlinksNameEditRouteImport.update({
- id: '/shadowlinks/$name/edit',
- path: '/shadowlinks/$name/edit',
+const RpConnectPipelineIdEditRoute = RpConnectPipelineIdEditRouteImport.update({
+ id: '/rp-connect/$pipelineId/edit',
+ path: '/rp-connect/$pipelineId/edit',
getParentRoute: () => rootRouteImport,
} as any);
-const SecurityUsersCreateRoute = SecurityUsersCreateRouteImport.update({
- id: '/users/create',
- path: '/users/create',
+const RpConnectSecretsCreateRoute = RpConnectSecretsCreateRouteImport.update({
+ id: '/rp-connect/secrets/create',
+ path: '/rp-connect/secrets/create',
+ getParentRoute: () => rootRouteImport,
+} as any);
+const SecretsIdEditRoute = SecretsIdEditRouteImport.update({
+ id: '/secrets/$id/edit',
+ path: '/secrets/$id/edit',
+ getParentRoute: () => rootRouteImport,
+} as any);
+const SecurityAclsIndexRoute = SecurityAclsIndexRouteImport.update({
+ id: '/acls/',
+ path: '/acls/',
+ getParentRoute: () => SecurityRoute,
+} as any);
+const SecurityAclsCreateRoute = SecurityAclsCreateRouteImport.update({
+ id: '/acls/create',
+ path: '/acls/create',
+ getParentRoute: () => SecurityRoute,
+} as any);
+const SecurityPermissionsListIndexRoute =
+ SecurityPermissionsListIndexRouteImport.update({
+ id: '/permissions-list/',
+ path: '/permissions-list/',
+ getParentRoute: () => SecurityRoute,
+ } as any);
+const SecurityPermissionsIndexRoute =
+ SecurityPermissionsIndexRouteImport.update({
+ id: '/permissions/',
+ path: '/permissions/',
+ getParentRoute: () => SecurityRoute,
+ } as any);
+const SecurityRolesIndexRoute = SecurityRolesIndexRouteImport.update({
+ id: '/roles/',
+ path: '/roles/',
getParentRoute: () => SecurityRoute,
} as any);
const SecurityRolesCreateRoute = SecurityRolesCreateRouteImport.update({
@@ -290,47 +302,59 @@ const SecurityRolesCreateRoute = SecurityRolesCreateRouteImport.update({
path: '/roles/create',
getParentRoute: () => SecurityRoute,
} as any);
-const SecurityAclsCreateRoute = SecurityAclsCreateRouteImport.update({
- id: '/acls/create',
- path: '/acls/create',
+const SecurityUsersIndexRoute = SecurityUsersIndexRouteImport.update({
+ id: '/users/',
+ path: '/users/',
getParentRoute: () => SecurityRoute,
} as any);
-const SecretsIdEditRoute = SecretsIdEditRouteImport.update({
- id: '/secrets/$id/edit',
- path: '/secrets/$id/edit',
- getParentRoute: () => rootRouteImport,
+const SecurityUsersCreateRoute = SecurityUsersCreateRouteImport.update({
+ id: '/users/create',
+ path: '/users/create',
+ getParentRoute: () => SecurityRoute,
} as any);
-const RpConnectSecretsCreateRoute = RpConnectSecretsCreateRouteImport.update({
- id: '/rp-connect/secrets/create',
- path: '/rp-connect/secrets/create',
+const ShadowlinksNameIndexRoute = ShadowlinksNameIndexRouteImport.update({
+ id: '/shadowlinks/$name/',
+ path: '/shadowlinks/$name/',
getParentRoute: () => rootRouteImport,
} as any);
-const RpConnectPipelineIdEditRoute = RpConnectPipelineIdEditRouteImport.update({
- id: '/rp-connect/$pipelineId/edit',
- path: '/rp-connect/$pipelineId/edit',
+const ShadowlinksNameEditRoute = ShadowlinksNameEditRouteImport.update({
+ id: '/shadowlinks/$name/edit',
+ path: '/shadowlinks/$name/edit',
getParentRoute: () => rootRouteImport,
} as any);
-const LoginCallbacksProviderRoute = LoginCallbacksProviderRouteImport.update({
- id: '/login/callbacks/$provider',
- path: '/login/callbacks/$provider',
+const TopicsTopicNameIndexRoute = TopicsTopicNameIndexRouteImport.update({
+ id: '/topics/$topicName/',
+ path: '/topics/$topicName/',
getParentRoute: () => rootRouteImport,
} as any);
-const DebugBundleProgressJobIdRoute =
- DebugBundleProgressJobIdRouteImport.update({
- id: '/debug-bundle/progress/$jobId',
- path: '/debug-bundle/progress/$jobId',
+const TopicsTopicNameProduceRecordRoute =
+ TopicsTopicNameProduceRecordRouteImport.update({
+ id: '/topics/$topicName/produce-record',
+ path: '/topics/$topicName/produce-record',
getParentRoute: () => rootRouteImport,
} as any);
-const ConnectClustersClusterNameCreateConnectorRoute =
- ConnectClustersClusterNameCreateConnectorRouteImport.update({
- id: '/connect-clusters/$clusterName/create-connector',
- path: '/connect-clusters/$clusterName/create-connector',
+const RpConnectSecretsSecretIdEditRoute =
+ RpConnectSecretsSecretIdEditRouteImport.update({
+ id: '/rp-connect/secrets/$secretId/edit',
+ path: '/rp-connect/secrets/$secretId/edit',
getParentRoute: () => rootRouteImport,
} as any);
-const ConnectClustersClusterNameConnectorRoute =
- ConnectClustersClusterNameConnectorRouteImport.update({
- id: '/connect-clusters/$clusterName/$connector',
- path: '/connect-clusters/$clusterName/$connector',
+const SchemaRegistryContextsContextNameCreateRoute =
+ SchemaRegistryContextsContextNameCreateRouteImport.update({
+ id: '/schema-registry/contexts/$contextName/create',
+ path: '/schema-registry/contexts/$contextName/create',
+ getParentRoute: () => rootRouteImport,
+ } as any);
+const SchemaRegistryContextsContextNameEditCompatibilityRoute =
+ SchemaRegistryContextsContextNameEditCompatibilityRouteImport.update({
+ id: '/schema-registry/contexts/$contextName/edit-compatibility',
+ path: '/schema-registry/contexts/$contextName/edit-compatibility',
+ getParentRoute: () => rootRouteImport,
+ } as any);
+const SchemaRegistryContextsContextNameEditModeRoute =
+ SchemaRegistryContextsContextNameEditModeRouteImport.update({
+ id: '/schema-registry/contexts/$contextName/edit-mode',
+ path: '/schema-registry/contexts/$contextName/edit-mode',
getParentRoute: () => rootRouteImport,
} as any);
const SchemaRegistrySubjectsSubjectNameIndexRoute =
@@ -339,28 +363,28 @@ const SchemaRegistrySubjectsSubjectNameIndexRoute =
path: '/schema-registry/subjects/$subjectName/',
getParentRoute: () => rootRouteImport,
} as any);
-const SecurityUsersUserNameDetailsRoute =
- SecurityUsersUserNameDetailsRouteImport.update({
- id: '/users/$userName/details',
- path: '/users/$userName/details',
- getParentRoute: () => SecurityRoute,
+const SchemaRegistrySubjectsSubjectNameAddVersionRoute =
+ SchemaRegistrySubjectsSubjectNameAddVersionRouteImport.update({
+ id: '/schema-registry/subjects/$subjectName/add-version',
+ path: '/schema-registry/subjects/$subjectName/add-version',
+ getParentRoute: () => rootRouteImport,
} as any);
-const SecurityRolesRoleNameUpdateRoute =
- SecurityRolesRoleNameUpdateRouteImport.update({
- id: '/roles/$roleName/update',
- path: '/roles/$roleName/update',
- getParentRoute: () => SecurityRoute,
+const SchemaRegistrySubjectsSubjectNameEditCompatibilityRoute =
+ SchemaRegistrySubjectsSubjectNameEditCompatibilityRouteImport.update({
+ id: '/schema-registry/subjects/$subjectName/edit-compatibility',
+ path: '/schema-registry/subjects/$subjectName/edit-compatibility',
+ getParentRoute: () => rootRouteImport,
} as any);
-const SecurityRolesRoleNameEditRoute =
- SecurityRolesRoleNameEditRouteImport.update({
- id: '/roles/$roleName/edit',
- path: '/roles/$roleName/edit',
- getParentRoute: () => SecurityRoute,
+const SchemaRegistrySubjectsSubjectNameEditModeRoute =
+ SchemaRegistrySubjectsSubjectNameEditModeRouteImport.update({
+ id: '/schema-registry/subjects/$subjectName/edit-mode',
+ path: '/schema-registry/subjects/$subjectName/edit-mode',
+ getParentRoute: () => rootRouteImport,
} as any);
-const SecurityRolesRoleNameDetailsRoute =
- SecurityRolesRoleNameDetailsRouteImport.update({
- id: '/roles/$roleName/details',
- path: '/roles/$roleName/details',
+const SecurityAclsAclNameDetailsRoute =
+ SecurityAclsAclNameDetailsRouteImport.update({
+ id: '/acls/$aclName/details',
+ path: '/acls/$aclName/details',
getParentRoute: () => SecurityRoute,
} as any);
const SecurityAclsAclNameUpdateRoute =
@@ -369,53 +393,29 @@ const SecurityAclsAclNameUpdateRoute =
path: '/acls/$aclName/update',
getParentRoute: () => SecurityRoute,
} as any);
-const SecurityAclsAclNameDetailsRoute =
- SecurityAclsAclNameDetailsRouteImport.update({
- id: '/acls/$aclName/details',
- path: '/acls/$aclName/details',
+const SecurityRolesRoleNameDetailsRoute =
+ SecurityRolesRoleNameDetailsRouteImport.update({
+ id: '/roles/$roleName/details',
+ path: '/roles/$roleName/details',
getParentRoute: () => SecurityRoute,
} as any);
-const SchemaRegistrySubjectsSubjectNameEditModeRoute =
- SchemaRegistrySubjectsSubjectNameEditModeRouteImport.update({
- id: '/schema-registry/subjects/$subjectName/edit-mode',
- path: '/schema-registry/subjects/$subjectName/edit-mode',
- getParentRoute: () => rootRouteImport,
- } as any);
-const SchemaRegistrySubjectsSubjectNameEditCompatibilityRoute =
- SchemaRegistrySubjectsSubjectNameEditCompatibilityRouteImport.update({
- id: '/schema-registry/subjects/$subjectName/edit-compatibility',
- path: '/schema-registry/subjects/$subjectName/edit-compatibility',
- getParentRoute: () => rootRouteImport,
- } as any);
-const SchemaRegistrySubjectsSubjectNameAddVersionRoute =
- SchemaRegistrySubjectsSubjectNameAddVersionRouteImport.update({
- id: '/schema-registry/subjects/$subjectName/add-version',
- path: '/schema-registry/subjects/$subjectName/add-version',
- getParentRoute: () => rootRouteImport,
- } as any);
-const SchemaRegistryContextsContextNameEditModeRoute =
- SchemaRegistryContextsContextNameEditModeRouteImport.update({
- id: '/schema-registry/contexts/$contextName/edit-mode',
- path: '/schema-registry/contexts/$contextName/edit-mode',
- getParentRoute: () => rootRouteImport,
- } as any);
-const SchemaRegistryContextsContextNameEditCompatibilityRoute =
- SchemaRegistryContextsContextNameEditCompatibilityRouteImport.update({
- id: '/schema-registry/contexts/$contextName/edit-compatibility',
- path: '/schema-registry/contexts/$contextName/edit-compatibility',
- getParentRoute: () => rootRouteImport,
+const SecurityRolesRoleNameEditRoute =
+ SecurityRolesRoleNameEditRouteImport.update({
+ id: '/roles/$roleName/edit',
+ path: '/roles/$roleName/edit',
+ getParentRoute: () => SecurityRoute,
} as any);
-const SchemaRegistryContextsContextNameCreateRoute =
- SchemaRegistryContextsContextNameCreateRouteImport.update({
- id: '/schema-registry/contexts/$contextName/create',
- path: '/schema-registry/contexts/$contextName/create',
- getParentRoute: () => rootRouteImport,
+const SecurityRolesRoleNameUpdateRoute =
+ SecurityRolesRoleNameUpdateRouteImport.update({
+ id: '/roles/$roleName/update',
+ path: '/roles/$roleName/update',
+ getParentRoute: () => SecurityRoute,
} as any);
-const RpConnectSecretsSecretIdEditRoute =
- RpConnectSecretsSecretIdEditRouteImport.update({
- id: '/rp-connect/secrets/$secretId/edit',
- path: '/rp-connect/secrets/$secretId/edit',
- getParentRoute: () => rootRouteImport,
+const SecurityUsersUserNameDetailsRoute =
+ SecurityUsersUserNameDetailsRouteImport.update({
+ id: '/users/$userName/details',
+ path: '/users/$userName/details',
+ getParentRoute: () => SecurityRoute,
} as any);
export interface FileRoutesByFullPath {
@@ -870,25 +870,32 @@ export interface RootRouteChildren {
declare module '@tanstack/react-router' {
interface FileRoutesByPath {
- '/upload-license': {
- id: '/upload-license';
- path: '/upload-license';
- fullPath: '/upload-license';
- preLoaderRoute: typeof UploadLicenseRouteImport;
+ '/': {
+ id: '/';
+ path: '/';
+ fullPath: '/';
+ preLoaderRoute: typeof IndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/trial-expired': {
- id: '/trial-expired';
- path: '/trial-expired';
- fullPath: '/trial-expired';
- preLoaderRoute: typeof TrialExpiredRouteImport;
+ '/quotas': {
+ id: '/quotas';
+ path: '/quotas';
+ fullPath: '/quotas';
+ preLoaderRoute: typeof QuotasRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/transforms-setup': {
- id: '/transforms-setup';
- path: '/transforms-setup';
- fullPath: '/transforms-setup';
- preLoaderRoute: typeof TransformsSetupRouteImport;
+ '/reassign-partitions': {
+ id: '/reassign-partitions';
+ path: '/reassign-partitions';
+ fullPath: '/reassign-partitions';
+ preLoaderRoute: typeof ReassignPartitionsRouteImport;
+ parentRoute: typeof rootRouteImport;
+ };
+ '/security': {
+ id: '/security';
+ path: '/security';
+ fullPath: '/security';
+ preLoaderRoute: typeof SecurityRouteImport;
parentRoute: typeof rootRouteImport;
};
'/sql': {
@@ -898,74 +905,67 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof SqlRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/security': {
- id: '/security';
- path: '/security';
- fullPath: '/security';
- preLoaderRoute: typeof SecurityRouteImport;
+ '/transforms-setup': {
+ id: '/transforms-setup';
+ path: '/transforms-setup';
+ fullPath: '/transforms-setup';
+ preLoaderRoute: typeof TransformsSetupRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/reassign-partitions': {
- id: '/reassign-partitions';
- path: '/reassign-partitions';
- fullPath: '/reassign-partitions';
- preLoaderRoute: typeof ReassignPartitionsRouteImport;
+ '/trial-expired': {
+ id: '/trial-expired';
+ path: '/trial-expired';
+ fullPath: '/trial-expired';
+ preLoaderRoute: typeof TrialExpiredRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/quotas': {
- id: '/quotas';
- path: '/quotas';
- fullPath: '/quotas';
- preLoaderRoute: typeof QuotasRouteImport;
+ '/upload-license': {
+ id: '/upload-license';
+ path: '/upload-license';
+ fullPath: '/upload-license';
+ preLoaderRoute: typeof UploadLicenseRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/': {
- id: '/';
- path: '/';
- fullPath: '/';
- preLoaderRoute: typeof IndexRouteImport;
+ '/connect-clusters/': {
+ id: '/connect-clusters/';
+ path: '/connect-clusters';
+ fullPath: '/connect-clusters/';
+ preLoaderRoute: typeof ConnectClustersIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/transforms/': {
- id: '/transforms/';
- path: '/transforms';
- fullPath: '/transforms/';
- preLoaderRoute: typeof TransformsIndexRouteImport;
+ '/debug-bundle/': {
+ id: '/debug-bundle/';
+ path: '/debug-bundle';
+ fullPath: '/debug-bundle/';
+ preLoaderRoute: typeof DebugBundleIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/topics/': {
- id: '/topics/';
- path: '/topics';
- fullPath: '/topics/';
- preLoaderRoute: typeof TopicsIndexRouteImport;
+ '/groups/': {
+ id: '/groups/';
+ path: '/groups';
+ fullPath: '/groups/';
+ preLoaderRoute: typeof GroupsIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/shadowlinks/': {
- id: '/shadowlinks/';
- path: '/shadowlinks';
- fullPath: '/shadowlinks/';
- preLoaderRoute: typeof ShadowlinksIndexRouteImport;
+ '/groups/$groupId': {
+ id: '/groups/$groupId';
+ path: '/groups/$groupId';
+ fullPath: '/groups/$groupId';
+ preLoaderRoute: typeof GroupsGroupIdRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/security/': {
- id: '/security/';
- path: '/';
- fullPath: '/security/';
- preLoaderRoute: typeof SecurityIndexRouteImport;
- parentRoute: typeof SecurityRoute;
- };
- '/secrets/': {
- id: '/secrets/';
- path: '/secrets';
- fullPath: '/secrets/';
- preLoaderRoute: typeof SecretsIndexRouteImport;
+ '/login/': {
+ id: '/login/';
+ path: '/login';
+ fullPath: '/login/';
+ preLoaderRoute: typeof LoginIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/schema-registry/': {
- id: '/schema-registry/';
- path: '/schema-registry';
- fullPath: '/schema-registry/';
- preLoaderRoute: typeof SchemaRegistryIndexRouteImport;
+ '/observability/': {
+ id: '/observability/';
+ path: '/observability';
+ fullPath: '/observability/';
+ preLoaderRoute: typeof ObservabilityIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
'/overview/': {
@@ -975,53 +975,53 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof OverviewIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/observability/': {
- id: '/observability/';
- path: '/observability';
- fullPath: '/observability/';
- preLoaderRoute: typeof ObservabilityIndexRouteImport;
+ '/overview/$brokerId': {
+ id: '/overview/$brokerId';
+ path: '/overview/$brokerId';
+ fullPath: '/overview/$brokerId';
+ preLoaderRoute: typeof OverviewBrokerIdRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/login/': {
- id: '/login/';
- path: '/login';
- fullPath: '/login/';
- preLoaderRoute: typeof LoginIndexRouteImport;
+ '/rp-connect/create': {
+ id: '/rp-connect/create';
+ path: '/rp-connect/create';
+ fullPath: '/rp-connect/create';
+ preLoaderRoute: typeof RpConnectCreateRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/groups/': {
- id: '/groups/';
- path: '/groups';
- fullPath: '/groups/';
- preLoaderRoute: typeof GroupsIndexRouteImport;
+ '/schema-registry/': {
+ id: '/schema-registry/';
+ path: '/schema-registry';
+ fullPath: '/schema-registry/';
+ preLoaderRoute: typeof SchemaRegistryIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/debug-bundle/': {
- id: '/debug-bundle/';
- path: '/debug-bundle';
- fullPath: '/debug-bundle/';
- preLoaderRoute: typeof DebugBundleIndexRouteImport;
+ '/schema-registry/create': {
+ id: '/schema-registry/create';
+ path: '/schema-registry/create';
+ fullPath: '/schema-registry/create';
+ preLoaderRoute: typeof SchemaRegistryCreateRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/connect-clusters/': {
- id: '/connect-clusters/';
- path: '/connect-clusters';
- fullPath: '/connect-clusters/';
- preLoaderRoute: typeof ConnectClustersIndexRouteImport;
+ '/schema-registry/edit-compatibility': {
+ id: '/schema-registry/edit-compatibility';
+ path: '/schema-registry/edit-compatibility';
+ fullPath: '/schema-registry/edit-compatibility';
+ preLoaderRoute: typeof SchemaRegistryEditCompatibilityRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/transforms/$transformName': {
- id: '/transforms/$transformName';
- path: '/transforms/$transformName';
- fullPath: '/transforms/$transformName';
- preLoaderRoute: typeof TransformsTransformNameRouteImport;
+ '/schema-registry/edit-mode': {
+ id: '/schema-registry/edit-mode';
+ path: '/schema-registry/edit-mode';
+ fullPath: '/schema-registry/edit-mode';
+ preLoaderRoute: typeof SchemaRegistryEditModeRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/shadowlinks/create': {
- id: '/shadowlinks/create';
- path: '/shadowlinks/create';
- fullPath: '/shadowlinks/create';
- preLoaderRoute: typeof ShadowlinksCreateRouteImport;
+ '/secrets/': {
+ id: '/secrets/';
+ path: '/secrets';
+ fullPath: '/secrets/';
+ preLoaderRoute: typeof SecretsIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
'/secrets/create': {
@@ -1031,96 +1031,82 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof SecretsCreateRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/schema-registry/edit-mode': {
- id: '/schema-registry/edit-mode';
- path: '/schema-registry/edit-mode';
- fullPath: '/schema-registry/edit-mode';
- preLoaderRoute: typeof SchemaRegistryEditModeRouteImport;
- parentRoute: typeof rootRouteImport;
+ '/security/': {
+ id: '/security/';
+ path: '/';
+ fullPath: '/security/';
+ preLoaderRoute: typeof SecurityIndexRouteImport;
+ parentRoute: typeof SecurityRoute;
};
- '/schema-registry/edit-compatibility': {
- id: '/schema-registry/edit-compatibility';
- path: '/schema-registry/edit-compatibility';
- fullPath: '/schema-registry/edit-compatibility';
- preLoaderRoute: typeof SchemaRegistryEditCompatibilityRouteImport;
+ '/shadowlinks/': {
+ id: '/shadowlinks/';
+ path: '/shadowlinks';
+ fullPath: '/shadowlinks/';
+ preLoaderRoute: typeof ShadowlinksIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/schema-registry/create': {
- id: '/schema-registry/create';
- path: '/schema-registry/create';
- fullPath: '/schema-registry/create';
- preLoaderRoute: typeof SchemaRegistryCreateRouteImport;
+ '/shadowlinks/create': {
+ id: '/shadowlinks/create';
+ path: '/shadowlinks/create';
+ fullPath: '/shadowlinks/create';
+ preLoaderRoute: typeof ShadowlinksCreateRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/rp-connect/create': {
- id: '/rp-connect/create';
- path: '/rp-connect/create';
- fullPath: '/rp-connect/create';
- preLoaderRoute: typeof RpConnectCreateRouteImport;
+ '/topics/': {
+ id: '/topics/';
+ path: '/topics';
+ fullPath: '/topics/';
+ preLoaderRoute: typeof TopicsIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/overview/$brokerId': {
- id: '/overview/$brokerId';
- path: '/overview/$brokerId';
- fullPath: '/overview/$brokerId';
- preLoaderRoute: typeof OverviewBrokerIdRouteImport;
+ '/transforms/': {
+ id: '/transforms/';
+ path: '/transforms';
+ fullPath: '/transforms/';
+ preLoaderRoute: typeof TransformsIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/groups/$groupId': {
- id: '/groups/$groupId';
- path: '/groups/$groupId';
- fullPath: '/groups/$groupId';
- preLoaderRoute: typeof GroupsGroupIdRouteImport;
+ '/transforms/$transformName': {
+ id: '/transforms/$transformName';
+ path: '/transforms/$transformName';
+ fullPath: '/transforms/$transformName';
+ preLoaderRoute: typeof TransformsTransformNameRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/topics/$topicName/': {
- id: '/topics/$topicName/';
- path: '/topics/$topicName';
- fullPath: '/topics/$topicName/';
- preLoaderRoute: typeof TopicsTopicNameIndexRouteImport;
+ '/connect-clusters/$clusterName/': {
+ id: '/connect-clusters/$clusterName/';
+ path: '/connect-clusters/$clusterName';
+ fullPath: '/connect-clusters/$clusterName/';
+ preLoaderRoute: typeof ConnectClustersClusterNameIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/shadowlinks/$name/': {
- id: '/shadowlinks/$name/';
- path: '/shadowlinks/$name';
- fullPath: '/shadowlinks/$name/';
- preLoaderRoute: typeof ShadowlinksNameIndexRouteImport;
+ '/connect-clusters/$clusterName/$connector': {
+ id: '/connect-clusters/$clusterName/$connector';
+ path: '/connect-clusters/$clusterName/$connector';
+ fullPath: '/connect-clusters/$clusterName/$connector';
+ preLoaderRoute: typeof ConnectClustersClusterNameConnectorRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/security/users/': {
- id: '/security/users/';
- path: '/users';
- fullPath: '/security/users/';
- preLoaderRoute: typeof SecurityUsersIndexRouteImport;
- parentRoute: typeof SecurityRoute;
- };
- '/security/roles/': {
- id: '/security/roles/';
- path: '/roles';
- fullPath: '/security/roles/';
- preLoaderRoute: typeof SecurityRolesIndexRouteImport;
- parentRoute: typeof SecurityRoute;
- };
- '/security/permissions/': {
- id: '/security/permissions/';
- path: '/permissions';
- fullPath: '/security/permissions/';
- preLoaderRoute: typeof SecurityPermissionsIndexRouteImport;
- parentRoute: typeof SecurityRoute;
+ '/connect-clusters/$clusterName/create-connector': {
+ id: '/connect-clusters/$clusterName/create-connector';
+ path: '/connect-clusters/$clusterName/create-connector';
+ fullPath: '/connect-clusters/$clusterName/create-connector';
+ preLoaderRoute: typeof ConnectClustersClusterNameCreateConnectorRouteImport;
+ parentRoute: typeof rootRouteImport;
};
- '/security/permissions-list/': {
- id: '/security/permissions-list/';
- path: '/permissions-list';
- fullPath: '/security/permissions-list/';
- preLoaderRoute: typeof SecurityPermissionsListIndexRouteImport;
- parentRoute: typeof SecurityRoute;
+ '/debug-bundle/progress/$jobId': {
+ id: '/debug-bundle/progress/$jobId';
+ path: '/debug-bundle/progress/$jobId';
+ fullPath: '/debug-bundle/progress/$jobId';
+ preLoaderRoute: typeof DebugBundleProgressJobIdRouteImport;
+ parentRoute: typeof rootRouteImport;
};
- '/security/acls/': {
- id: '/security/acls/';
- path: '/acls';
- fullPath: '/security/acls/';
- preLoaderRoute: typeof SecurityAclsIndexRouteImport;
- parentRoute: typeof SecurityRoute;
+ '/login/callbacks/$provider': {
+ id: '/login/callbacks/$provider';
+ path: '/login/callbacks/$provider';
+ fullPath: '/login/callbacks/$provider';
+ preLoaderRoute: typeof LoginCallbacksProviderRouteImport;
+ parentRoute: typeof rootRouteImport;
};
'/rp-connect/$pipelineId/': {
id: '/rp-connect/$pipelineId/';
@@ -1129,32 +1115,60 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof RpConnectPipelineIdIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/connect-clusters/$clusterName/': {
- id: '/connect-clusters/$clusterName/';
- path: '/connect-clusters/$clusterName';
- fullPath: '/connect-clusters/$clusterName/';
- preLoaderRoute: typeof ConnectClustersClusterNameIndexRouteImport;
+ '/rp-connect/$pipelineId/edit': {
+ id: '/rp-connect/$pipelineId/edit';
+ path: '/rp-connect/$pipelineId/edit';
+ fullPath: '/rp-connect/$pipelineId/edit';
+ preLoaderRoute: typeof RpConnectPipelineIdEditRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/topics/$topicName/produce-record': {
- id: '/topics/$topicName/produce-record';
- path: '/topics/$topicName/produce-record';
- fullPath: '/topics/$topicName/produce-record';
- preLoaderRoute: typeof TopicsTopicNameProduceRecordRouteImport;
+ '/rp-connect/secrets/create': {
+ id: '/rp-connect/secrets/create';
+ path: '/rp-connect/secrets/create';
+ fullPath: '/rp-connect/secrets/create';
+ preLoaderRoute: typeof RpConnectSecretsCreateRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/shadowlinks/$name/edit': {
- id: '/shadowlinks/$name/edit';
- path: '/shadowlinks/$name/edit';
- fullPath: '/shadowlinks/$name/edit';
- preLoaderRoute: typeof ShadowlinksNameEditRouteImport;
+ '/secrets/$id/edit': {
+ id: '/secrets/$id/edit';
+ path: '/secrets/$id/edit';
+ fullPath: '/secrets/$id/edit';
+ preLoaderRoute: typeof SecretsIdEditRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/security/users/create': {
- id: '/security/users/create';
- path: '/users/create';
- fullPath: '/security/users/create';
- preLoaderRoute: typeof SecurityUsersCreateRouteImport;
+ '/security/acls/': {
+ id: '/security/acls/';
+ path: '/acls';
+ fullPath: '/security/acls/';
+ preLoaderRoute: typeof SecurityAclsIndexRouteImport;
+ parentRoute: typeof SecurityRoute;
+ };
+ '/security/acls/create': {
+ id: '/security/acls/create';
+ path: '/acls/create';
+ fullPath: '/security/acls/create';
+ preLoaderRoute: typeof SecurityAclsCreateRouteImport;
+ parentRoute: typeof SecurityRoute;
+ };
+ '/security/permissions-list/': {
+ id: '/security/permissions-list/';
+ path: '/permissions-list';
+ fullPath: '/security/permissions-list/';
+ preLoaderRoute: typeof SecurityPermissionsListIndexRouteImport;
+ parentRoute: typeof SecurityRoute;
+ };
+ '/security/permissions/': {
+ id: '/security/permissions/';
+ path: '/permissions';
+ fullPath: '/security/permissions/';
+ preLoaderRoute: typeof SecurityPermissionsIndexRouteImport;
+ parentRoute: typeof SecurityRoute;
+ };
+ '/security/roles/': {
+ id: '/security/roles/';
+ path: '/roles';
+ fullPath: '/security/roles/';
+ preLoaderRoute: typeof SecurityRolesIndexRouteImport;
parentRoute: typeof SecurityRoute;
};
'/security/roles/create': {
@@ -1164,60 +1178,74 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof SecurityRolesCreateRouteImport;
parentRoute: typeof SecurityRoute;
};
- '/security/acls/create': {
- id: '/security/acls/create';
- path: '/acls/create';
- fullPath: '/security/acls/create';
- preLoaderRoute: typeof SecurityAclsCreateRouteImport;
+ '/security/users/': {
+ id: '/security/users/';
+ path: '/users';
+ fullPath: '/security/users/';
+ preLoaderRoute: typeof SecurityUsersIndexRouteImport;
parentRoute: typeof SecurityRoute;
};
- '/secrets/$id/edit': {
- id: '/secrets/$id/edit';
- path: '/secrets/$id/edit';
- fullPath: '/secrets/$id/edit';
- preLoaderRoute: typeof SecretsIdEditRouteImport;
+ '/security/users/create': {
+ id: '/security/users/create';
+ path: '/users/create';
+ fullPath: '/security/users/create';
+ preLoaderRoute: typeof SecurityUsersCreateRouteImport;
+ parentRoute: typeof SecurityRoute;
+ };
+ '/shadowlinks/$name/': {
+ id: '/shadowlinks/$name/';
+ path: '/shadowlinks/$name';
+ fullPath: '/shadowlinks/$name/';
+ preLoaderRoute: typeof ShadowlinksNameIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/rp-connect/secrets/create': {
- id: '/rp-connect/secrets/create';
- path: '/rp-connect/secrets/create';
- fullPath: '/rp-connect/secrets/create';
- preLoaderRoute: typeof RpConnectSecretsCreateRouteImport;
+ '/shadowlinks/$name/edit': {
+ id: '/shadowlinks/$name/edit';
+ path: '/shadowlinks/$name/edit';
+ fullPath: '/shadowlinks/$name/edit';
+ preLoaderRoute: typeof ShadowlinksNameEditRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/rp-connect/$pipelineId/edit': {
- id: '/rp-connect/$pipelineId/edit';
- path: '/rp-connect/$pipelineId/edit';
- fullPath: '/rp-connect/$pipelineId/edit';
- preLoaderRoute: typeof RpConnectPipelineIdEditRouteImport;
+ '/topics/$topicName/': {
+ id: '/topics/$topicName/';
+ path: '/topics/$topicName';
+ fullPath: '/topics/$topicName/';
+ preLoaderRoute: typeof TopicsTopicNameIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/login/callbacks/$provider': {
- id: '/login/callbacks/$provider';
- path: '/login/callbacks/$provider';
- fullPath: '/login/callbacks/$provider';
- preLoaderRoute: typeof LoginCallbacksProviderRouteImport;
+ '/topics/$topicName/produce-record': {
+ id: '/topics/$topicName/produce-record';
+ path: '/topics/$topicName/produce-record';
+ fullPath: '/topics/$topicName/produce-record';
+ preLoaderRoute: typeof TopicsTopicNameProduceRecordRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/debug-bundle/progress/$jobId': {
- id: '/debug-bundle/progress/$jobId';
- path: '/debug-bundle/progress/$jobId';
- fullPath: '/debug-bundle/progress/$jobId';
- preLoaderRoute: typeof DebugBundleProgressJobIdRouteImport;
+ '/rp-connect/secrets/$secretId/edit': {
+ id: '/rp-connect/secrets/$secretId/edit';
+ path: '/rp-connect/secrets/$secretId/edit';
+ fullPath: '/rp-connect/secrets/$secretId/edit';
+ preLoaderRoute: typeof RpConnectSecretsSecretIdEditRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/connect-clusters/$clusterName/create-connector': {
- id: '/connect-clusters/$clusterName/create-connector';
- path: '/connect-clusters/$clusterName/create-connector';
- fullPath: '/connect-clusters/$clusterName/create-connector';
- preLoaderRoute: typeof ConnectClustersClusterNameCreateConnectorRouteImport;
+ '/schema-registry/contexts/$contextName/create': {
+ id: '/schema-registry/contexts/$contextName/create';
+ path: '/schema-registry/contexts/$contextName/create';
+ fullPath: '/schema-registry/contexts/$contextName/create';
+ preLoaderRoute: typeof SchemaRegistryContextsContextNameCreateRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/connect-clusters/$clusterName/$connector': {
- id: '/connect-clusters/$clusterName/$connector';
- path: '/connect-clusters/$clusterName/$connector';
- fullPath: '/connect-clusters/$clusterName/$connector';
- preLoaderRoute: typeof ConnectClustersClusterNameConnectorRouteImport;
+ '/schema-registry/contexts/$contextName/edit-compatibility': {
+ id: '/schema-registry/contexts/$contextName/edit-compatibility';
+ path: '/schema-registry/contexts/$contextName/edit-compatibility';
+ fullPath: '/schema-registry/contexts/$contextName/edit-compatibility';
+ preLoaderRoute: typeof SchemaRegistryContextsContextNameEditCompatibilityRouteImport;
+ parentRoute: typeof rootRouteImport;
+ };
+ '/schema-registry/contexts/$contextName/edit-mode': {
+ id: '/schema-registry/contexts/$contextName/edit-mode';
+ path: '/schema-registry/contexts/$contextName/edit-mode';
+ fullPath: '/schema-registry/contexts/$contextName/edit-mode';
+ preLoaderRoute: typeof SchemaRegistryContextsContextNameEditModeRouteImport;
parentRoute: typeof rootRouteImport;
};
'/schema-registry/subjects/$subjectName/': {
@@ -1227,32 +1255,32 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof SchemaRegistrySubjectsSubjectNameIndexRouteImport;
parentRoute: typeof rootRouteImport;
};
- '/security/users/$userName/details': {
- id: '/security/users/$userName/details';
- path: '/users/$userName/details';
- fullPath: '/security/users/$userName/details';
- preLoaderRoute: typeof SecurityUsersUserNameDetailsRouteImport;
- parentRoute: typeof SecurityRoute;
+ '/schema-registry/subjects/$subjectName/add-version': {
+ id: '/schema-registry/subjects/$subjectName/add-version';
+ path: '/schema-registry/subjects/$subjectName/add-version';
+ fullPath: '/schema-registry/subjects/$subjectName/add-version';
+ preLoaderRoute: typeof SchemaRegistrySubjectsSubjectNameAddVersionRouteImport;
+ parentRoute: typeof rootRouteImport;
};
- '/security/roles/$roleName/update': {
- id: '/security/roles/$roleName/update';
- path: '/roles/$roleName/update';
- fullPath: '/security/roles/$roleName/update';
- preLoaderRoute: typeof SecurityRolesRoleNameUpdateRouteImport;
- parentRoute: typeof SecurityRoute;
+ '/schema-registry/subjects/$subjectName/edit-compatibility': {
+ id: '/schema-registry/subjects/$subjectName/edit-compatibility';
+ path: '/schema-registry/subjects/$subjectName/edit-compatibility';
+ fullPath: '/schema-registry/subjects/$subjectName/edit-compatibility';
+ preLoaderRoute: typeof SchemaRegistrySubjectsSubjectNameEditCompatibilityRouteImport;
+ parentRoute: typeof rootRouteImport;
};
- '/security/roles/$roleName/edit': {
- id: '/security/roles/$roleName/edit';
- path: '/roles/$roleName/edit';
- fullPath: '/security/roles/$roleName/edit';
- preLoaderRoute: typeof SecurityRolesRoleNameEditRouteImport;
- parentRoute: typeof SecurityRoute;
+ '/schema-registry/subjects/$subjectName/edit-mode': {
+ id: '/schema-registry/subjects/$subjectName/edit-mode';
+ path: '/schema-registry/subjects/$subjectName/edit-mode';
+ fullPath: '/schema-registry/subjects/$subjectName/edit-mode';
+ preLoaderRoute: typeof SchemaRegistrySubjectsSubjectNameEditModeRouteImport;
+ parentRoute: typeof rootRouteImport;
};
- '/security/roles/$roleName/details': {
- id: '/security/roles/$roleName/details';
- path: '/roles/$roleName/details';
- fullPath: '/security/roles/$roleName/details';
- preLoaderRoute: typeof SecurityRolesRoleNameDetailsRouteImport;
+ '/security/acls/$aclName/details': {
+ id: '/security/acls/$aclName/details';
+ path: '/acls/$aclName/details';
+ fullPath: '/security/acls/$aclName/details';
+ preLoaderRoute: typeof SecurityAclsAclNameDetailsRouteImport;
parentRoute: typeof SecurityRoute;
};
'/security/acls/$aclName/update': {
@@ -1262,61 +1290,33 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof SecurityAclsAclNameUpdateRouteImport;
parentRoute: typeof SecurityRoute;
};
- '/security/acls/$aclName/details': {
- id: '/security/acls/$aclName/details';
- path: '/acls/$aclName/details';
- fullPath: '/security/acls/$aclName/details';
- preLoaderRoute: typeof SecurityAclsAclNameDetailsRouteImport;
+ '/security/roles/$roleName/details': {
+ id: '/security/roles/$roleName/details';
+ path: '/roles/$roleName/details';
+ fullPath: '/security/roles/$roleName/details';
+ preLoaderRoute: typeof SecurityRolesRoleNameDetailsRouteImport;
parentRoute: typeof SecurityRoute;
};
- '/schema-registry/subjects/$subjectName/edit-mode': {
- id: '/schema-registry/subjects/$subjectName/edit-mode';
- path: '/schema-registry/subjects/$subjectName/edit-mode';
- fullPath: '/schema-registry/subjects/$subjectName/edit-mode';
- preLoaderRoute: typeof SchemaRegistrySubjectsSubjectNameEditModeRouteImport;
- parentRoute: typeof rootRouteImport;
- };
- '/schema-registry/subjects/$subjectName/edit-compatibility': {
- id: '/schema-registry/subjects/$subjectName/edit-compatibility';
- path: '/schema-registry/subjects/$subjectName/edit-compatibility';
- fullPath: '/schema-registry/subjects/$subjectName/edit-compatibility';
- preLoaderRoute: typeof SchemaRegistrySubjectsSubjectNameEditCompatibilityRouteImport;
- parentRoute: typeof rootRouteImport;
- };
- '/schema-registry/subjects/$subjectName/add-version': {
- id: '/schema-registry/subjects/$subjectName/add-version';
- path: '/schema-registry/subjects/$subjectName/add-version';
- fullPath: '/schema-registry/subjects/$subjectName/add-version';
- preLoaderRoute: typeof SchemaRegistrySubjectsSubjectNameAddVersionRouteImport;
- parentRoute: typeof rootRouteImport;
- };
- '/schema-registry/contexts/$contextName/edit-mode': {
- id: '/schema-registry/contexts/$contextName/edit-mode';
- path: '/schema-registry/contexts/$contextName/edit-mode';
- fullPath: '/schema-registry/contexts/$contextName/edit-mode';
- preLoaderRoute: typeof SchemaRegistryContextsContextNameEditModeRouteImport;
- parentRoute: typeof rootRouteImport;
- };
- '/schema-registry/contexts/$contextName/edit-compatibility': {
- id: '/schema-registry/contexts/$contextName/edit-compatibility';
- path: '/schema-registry/contexts/$contextName/edit-compatibility';
- fullPath: '/schema-registry/contexts/$contextName/edit-compatibility';
- preLoaderRoute: typeof SchemaRegistryContextsContextNameEditCompatibilityRouteImport;
- parentRoute: typeof rootRouteImport;
+ '/security/roles/$roleName/edit': {
+ id: '/security/roles/$roleName/edit';
+ path: '/roles/$roleName/edit';
+ fullPath: '/security/roles/$roleName/edit';
+ preLoaderRoute: typeof SecurityRolesRoleNameEditRouteImport;
+ parentRoute: typeof SecurityRoute;
};
- '/schema-registry/contexts/$contextName/create': {
- id: '/schema-registry/contexts/$contextName/create';
- path: '/schema-registry/contexts/$contextName/create';
- fullPath: '/schema-registry/contexts/$contextName/create';
- preLoaderRoute: typeof SchemaRegistryContextsContextNameCreateRouteImport;
- parentRoute: typeof rootRouteImport;
+ '/security/roles/$roleName/update': {
+ id: '/security/roles/$roleName/update';
+ path: '/roles/$roleName/update';
+ fullPath: '/security/roles/$roleName/update';
+ preLoaderRoute: typeof SecurityRolesRoleNameUpdateRouteImport;
+ parentRoute: typeof SecurityRoute;
};
- '/rp-connect/secrets/$secretId/edit': {
- id: '/rp-connect/secrets/$secretId/edit';
- path: '/rp-connect/secrets/$secretId/edit';
- fullPath: '/rp-connect/secrets/$secretId/edit';
- preLoaderRoute: typeof RpConnectSecretsSecretIdEditRouteImport;
- parentRoute: typeof rootRouteImport;
+ '/security/users/$userName/details': {
+ id: '/security/users/$userName/details';
+ path: '/users/$userName/details';
+ fullPath: '/security/users/$userName/details';
+ preLoaderRoute: typeof SecurityUsersUserNameDetailsRouteImport;
+ parentRoute: typeof SecurityRoute;
};
}
}
diff --git a/frontend/src/router-defaults.test.ts b/frontend/src/router-defaults.test.ts
new file mode 100644
index 0000000000..114187bcc9
--- /dev/null
+++ b/frontend/src/router-defaults.test.ts
@@ -0,0 +1,25 @@
+/**
+ * Copyright 2026 Redpanda Data, Inc.
+ *
+ * Use of this software is governed by the Business Source License
+ * included in the file https://github.com/redpanda-data/redpanda/blob/dev/licenses/bsl.md
+ *
+ * As of the Change Date specified in that file, in accordance with
+ * the Business Source License, use of this software will be governed
+ * by the Apache License, Version 2.0
+ */
+
+import { RouteError } from './components/routes/route-error';
+import { RoutePending } from './components/routes/route-pending';
+import { routerDefaults } from './router-defaults';
+
+describe('routerDefaults', () => {
+ it('preloads on intent while TanStack Query owns caching and route boundaries', () => {
+ expect(routerDefaults).toEqual({
+ defaultErrorComponent: RouteError,
+ defaultPendingComponent: RoutePending,
+ defaultPreload: 'intent',
+ defaultPreloadStaleTime: 0,
+ });
+ });
+});
diff --git a/frontend/src/router-defaults.ts b/frontend/src/router-defaults.ts
new file mode 100644
index 0000000000..e9525e0965
--- /dev/null
+++ b/frontend/src/router-defaults.ts
@@ -0,0 +1,20 @@
+/**
+ * Copyright 2026 Redpanda Data, Inc.
+ *
+ * Use of this software is governed by the Business Source License
+ * included in the file https://github.com/redpanda-data/redpanda/blob/dev/licenses/bsl.md
+ *
+ * As of the Change Date specified in that file, in accordance with
+ * the Business Source License, use of this software will be governed
+ * by the Apache License, Version 2.0
+ */
+
+import { RouteError } from './components/routes/route-error';
+import { RoutePending } from './components/routes/route-pending';
+
+export const routerDefaults = {
+ defaultPreload: 'intent',
+ defaultPreloadStaleTime: 0,
+ defaultPendingComponent: RoutePending,
+ defaultErrorComponent: RouteError,
+} as const;
diff --git a/frontend/src/tanstack-router-config.test.ts b/frontend/src/tanstack-router-config.test.ts
new file mode 100644
index 0000000000..6cddbf0548
--- /dev/null
+++ b/frontend/src/tanstack-router-config.test.ts
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2026 Redpanda Data, Inc.
+ *
+ * Use of this software is governed by the Business Source License
+ * included in the file https://github.com/redpanda-data/redpanda/blob/dev/licenses/bsl.md
+ *
+ * As of the Change Date specified in that file, in accordance with
+ * the Business Source License, use of this software will be governed
+ * by the Apache License, Version 2.0
+ */
+
+import { TANSTACK_CHUNK_PATTERN, tanstackRouterConfig } from '../tanstack-router.config';
+
+describe('tanstackRouterConfig', () => {
+ it('configures file-based React routes with automatic code splitting', () => {
+ expect(tanstackRouterConfig).toMatchObject({
+ autoCodeSplitting: true,
+ generatedRouteTree: './src/routeTree.gen.ts',
+ quoteStyle: 'single',
+ routeFileIgnorePattern: String.raw`\.(?:test|spec)\.[cm]?[jt]sx?$`,
+ routeFileIgnorePrefix: '-',
+ routesDirectory: './src/routes',
+ semicolons: true,
+ target: 'react',
+ });
+ });
+
+ it('matches TanStack packages across operating systems', () => {
+ expect(TANSTACK_CHUNK_PATTERN.test('/app/node_modules/@tanstack/react-router/dist/index.js')).toBe(true);
+ expect(TANSTACK_CHUNK_PATTERN.test(String.raw`C:\app\node_modules\@tanstack\react-query\dist\index.js`)).toBe(true);
+ expect(TANSTACK_CHUNK_PATTERN.test('/app/node_modules/@redpanda-data/ui/dist/index.js')).toBe(false);
+ });
+});
diff --git a/frontend/tanstack-router.config.ts b/frontend/tanstack-router.config.ts
new file mode 100644
index 0000000000..6ded78e358
--- /dev/null
+++ b/frontend/tanstack-router.config.ts
@@ -0,0 +1,25 @@
+/**
+ * Copyright 2026 Redpanda Data, Inc.
+ *
+ * Use of this software is governed by the Business Source License
+ * included in the file https://github.com/redpanda-data/redpanda/blob/dev/licenses/bsl.md
+ *
+ * As of the Change Date specified in that file, in accordance with
+ * the Business Source License, use of this software will be governed
+ * by the Apache License, Version 2.0
+ */
+
+import type { Config } from '@tanstack/router-plugin/rspack';
+
+export const TANSTACK_CHUNK_PATTERN = /[\\/]node_modules[\\/]@tanstack[\\/]/;
+
+export const tanstackRouterConfig = {
+ target: 'react',
+ autoCodeSplitting: true,
+ routesDirectory: './src/routes',
+ generatedRouteTree: './src/routeTree.gen.ts',
+ routeFileIgnorePrefix: '-',
+ routeFileIgnorePattern: String.raw`\.(?:test|spec)\.[cm]?[jt]sx?$`,
+ quoteStyle: 'single',
+ semicolons: true,
+} satisfies Partial;
diff --git a/frontend/vitest.config.integration.mts b/frontend/vitest.config.integration.mts
index 2101fcf218..425f1cc75f 100644
--- a/frontend/vitest.config.integration.mts
+++ b/frontend/vitest.config.integration.mts
@@ -6,6 +6,7 @@ import envCompatible from 'vite-plugin-env-compatible';
import tsconfigPaths from 'vite-tsconfig-paths';
import { defineConfig } from 'vitest/config';
+import { tanstackRouterConfig } from './tanstack-router.config';
import { sharedAliases } from './vitest.shared.mts';
const ENV_PREFIX = 'REACT_APP_';
@@ -89,14 +90,7 @@ export default defineConfig(({ mode }) => {
},
},
plugins: [
- tanstackRouter({
- target: 'react',
- autoCodeSplitting: true,
- routesDirectory: './src/routes',
- generatedRouteTree: './src/routeTree.gen.ts',
- quoteStyle: 'single',
- semicolons: true,
- }),
+ tanstackRouter(tanstackRouterConfig),
react(),
envCompatible({ prefix: ENV_PREFIX }),
tsconfigPaths({
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index ab8ce3d08a..6ed0f9c683 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -3382,10 +3382,10 @@
"@tanstack/pacer" "^0.15.3"
"@tanstack/store" "^0.7.7"
-"@tanstack/history@1.162.0":
- version "1.162.0"
- resolved "https://registry.npmjs.org/@tanstack/history/-/history-1.162.0.tgz"
- integrity sha512-79pf/RkhteYZTRgcR4F9kbk84P2N8rugQJswxfIqovlbRiT3yI7eBE+5QorIrZaOKktsgzRlXh1l/du/xpl4iA==
+"@tanstack/history@1.162.1":
+ version "1.162.1"
+ resolved "https://registry.npmjs.org/@tanstack/history/-/history-1.162.1.tgz"
+ integrity sha512-DR9t6lfLVdrjgCwpglrR9DR7Ok8/HlXjcOE+goWXF3zyuLUO/ug7vMbSFxTqrQTtbRghJfyhmIZ0S6LhPIy44w==
"@tanstack/pacer@^0.15.3":
version "0.15.4"
@@ -3395,15 +3395,15 @@
"@tanstack/devtools-event-client" "^0.3.2"
"@tanstack/store" "^0.7.5"
-"@tanstack/query-core@5.99.2", "@tanstack/query-core@>=5.62.0":
- version "5.99.2"
- resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.99.2.tgz"
- integrity sha512-1HunU0bXVsR1ZJMZbcOPE6VtaBJxsW809RE9xPe4Gz7MlB0GWwQvuTPhMoEmQ/hIzFKJ/DWAuttIe7BOaWx0tA==
+"@tanstack/query-core@5.101.4", "@tanstack/query-core@>=5.62.0":
+ version "5.101.4"
+ resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.101.4.tgz"
+ integrity sha512-gNwcvOJcRbLWPOLG/2OBm+zM+Yv+MKsXKEOWC57USuZDEsI71hEErQsiEGx5wX9rzWWkfwM0fVSPoiIFSsxfiw==
-"@tanstack/query-devtools@5.90.1":
- version "5.90.1"
- resolved "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.90.1.tgz"
- integrity sha512-GtINOPjPUH0OegJExZ70UahT9ykmAhmtNVcmtdnOZbxLwT7R5OmRztR5Ahe3/Cu7LArEmR6/588tAycuaWb1xQ==
+"@tanstack/query-devtools@5.101.4":
+ version "5.101.4"
+ resolved "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.101.4.tgz"
+ integrity sha512-z5IPHnDX3aUWeTWlRKLyooBQekaCAw4xRpZqPQ390RiWTDBcTynjpPT221BArw0u2+pnQMdGvPQI9YNNubBcmA==
"@tanstack/react-form@^1.12.3":
version "1.25.0"
@@ -3413,36 +3413,36 @@
"@tanstack/form-core" "1.25.0"
"@tanstack/react-store" "^0.7.7"
-"@tanstack/react-query@>=5.62.0", "@tanstack/react-query@^5.90.2", "@tanstack/react-query@^5.99.2":
- version "5.99.2"
- resolved "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.99.2.tgz"
- integrity sha512-vM91UEe45QUS9ED6OklsVL15i8qKcRqNwpWzPTVWvRPRSEgDudDgHpvyTjcdlwHcrKNa80T+xXYcchT2noPnZA==
+"@tanstack/react-query@>=5.62.0", "@tanstack/react-query@^5.101.4":
+ version "5.101.4"
+ resolved "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.101.4.tgz"
+ integrity sha512-yRg2pfOCxIs4ZJW3XYYHU/WgtD04FHSnfHlpRT7h7pR77hwkdRG4wxbKe4aq6P0RvXUTBSQpQeadS1SUYUe+KA==
dependencies:
- "@tanstack/query-core" "5.99.2"
+ "@tanstack/query-core" "5.101.4"
-"@tanstack/react-query-devtools@^5.90.2":
- version "5.90.2"
- resolved "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.90.2.tgz"
- integrity sha512-vAXJzZuBXtCQtrY3F/yUNJCV4obT/A/n81kb3+YqLbro5Z2+phdAbceO+deU3ywPw8B42oyJlp4FhO0SoivDFQ==
+"@tanstack/react-query-devtools@^5.101.4":
+ version "5.101.4"
+ resolved "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.101.4.tgz"
+ integrity sha512-VeK2gtmfj7kvRBjtxS7TKxt/6qKhn8VzabY4UiYMr7NV9CddjSRYRgeYyld+NpjAkgMV9dd+2Qdr8ah5I03NeA==
dependencies:
- "@tanstack/query-devtools" "5.90.1"
+ "@tanstack/query-devtools" "5.101.4"
-"@tanstack/react-router@^1", "@tanstack/react-router@^1.170.0", "@tanstack/react-router@^1.170.17", "@tanstack/react-router@^1.170.7":
- version "1.170.17"
- resolved "https://registry.npmjs.org/@tanstack/react-router/-/react-router-1.170.17.tgz"
- integrity sha512-ppLkjCfSMaeug9rmFRYzOd4TIqWV+yTE7tzIny7alJsSnM7w4lzEZm6eqCehG0SPetpZ0R3K+UnanSmBgOAVcQ==
+"@tanstack/react-router@^1", "@tanstack/react-router@^1.170.19", "@tanstack/react-router@^1.170.22":
+ version "1.170.22"
+ resolved "https://registry.npmjs.org/@tanstack/react-router/-/react-router-1.170.22.tgz"
+ integrity sha512-LMOHWpVMf9WJYcvzIn6TwaoRKpELnhJTwx47da6LHFy2SwNIwn4DBCh5sZ6SdCkMvkmwZaOVu7wWT2ppPP6a1Q==
dependencies:
- "@tanstack/history" "1.162.0"
+ "@tanstack/history" "1.162.1"
"@tanstack/react-store" "^0.9.3"
- "@tanstack/router-core" "1.171.14"
+ "@tanstack/router-core" "1.171.19"
isbot "^5.1.22"
-"@tanstack/react-router-devtools@^1.167.0":
- version "1.167.0"
- resolved "https://registry.npmjs.org/@tanstack/react-router-devtools/-/react-router-devtools-1.167.0.tgz"
- integrity sha512-nGw095EG7IHx0h5NtlEmzf6vcCTaFNPWdTSuDKazajhN0ct/v/TkekJ9J6KYUCeV1a8/2ZmToc58M+0rrOyn7w==
+"@tanstack/react-router-devtools@^1.167.1":
+ version "1.167.1"
+ resolved "https://registry.npmjs.org/@tanstack/react-router-devtools/-/react-router-devtools-1.167.1.tgz"
+ integrity sha512-pjfGrmjj4d7naEPM7oshqFfwBoxDPNo/UxltlHH5ePbHsJ+plBhd+JaAewm1ueYOjZ0js9hckjWWDYXpCrSfKw==
dependencies:
- "@tanstack/router-devtools-core" "1.168.0"
+ "@tanstack/router-devtools-core" "1.168.1"
"@tanstack/react-store@^0.7.7":
version "0.7.7"
@@ -3474,41 +3474,31 @@
dependencies:
"@tanstack/virtual-core" "3.13.12"
-"@tanstack/router-core@^1.170.0":
- version "1.171.13"
- resolved "https://registry.npmjs.org/@tanstack/router-core/-/router-core-1.171.13.tgz"
- integrity sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA==
- dependencies:
- "@tanstack/history" "1.162.0"
- cookie-es "^3.0.0"
- seroval "^1.5.4"
- seroval-plugins "^1.5.4"
-
-"@tanstack/router-core@1.171.14":
- version "1.171.14"
- resolved "https://registry.npmjs.org/@tanstack/router-core/-/router-core-1.171.14.tgz"
- integrity sha512-Mo3hwx0qB0cJsVYGDjG0+Ouf7VV74h/vsoDMGztdlyzDanp4gBA2s7IVvm6hFrmQM6GpD9F0Z7SqD7OldfLE7g==
+"@tanstack/router-core@1.171.19", "@tanstack/router-core@^1.171.16":
+ version "1.171.19"
+ resolved "https://registry.npmjs.org/@tanstack/router-core/-/router-core-1.171.19.tgz"
+ integrity sha512-uCZhgnfmuBA3PoRLIVSjUhQpJQd/HA7p0XxG1IFKnvXU9lIMZ7gIqx45hyuf9JopxXZI8k7qaz9/6PC7mZLdfQ==
dependencies:
- "@tanstack/history" "1.162.0"
+ "@tanstack/history" "1.162.1"
cookie-es "^3.0.0"
- seroval "^1.5.4"
- seroval-plugins "^1.5.4"
+ seroval "^1.6.2"
+ seroval-plugins "^1.6.2"
-"@tanstack/router-devtools-core@1.168.0":
- version "1.168.0"
- resolved "https://registry.npmjs.org/@tanstack/router-devtools-core/-/router-devtools-core-1.168.0.tgz"
- integrity sha512-wQoQhlBK7nlZgqzaqdYXKWNTpdHdsaREdaPhFZVH0/Ador+F+eM3/NF2i3f2LPeS0GgKraZUQXe1Q/1+KHyEYg==
+"@tanstack/router-devtools-core@1.168.1":
+ version "1.168.1"
+ resolved "https://registry.npmjs.org/@tanstack/router-devtools-core/-/router-devtools-core-1.168.1.tgz"
+ integrity sha512-qr4voa4cpSMwQvS3867xkU3AB3MtJbTuovKIy+btjJ/Faju6er9w0nDylmD+005Mk/3YKw9/iueZJl2JAB7JOA==
dependencies:
clsx "^2.1.1"
goober "^2.1.16"
-"@tanstack/router-generator@1.167.18":
- version "1.167.18"
- resolved "https://registry.npmjs.org/@tanstack/router-generator/-/router-generator-1.167.18.tgz"
- integrity sha512-kFvM4caRds9Q3EXg64bZubJ6rbDxyV0YDSBSGvOGzmKspQPdz5Xrh0uj5T1Ov8avUUg+c761u04VQAaEzSBXRw==
+"@tanstack/router-generator@1.167.25":
+ version "1.167.25"
+ resolved "https://registry.npmjs.org/@tanstack/router-generator/-/router-generator-1.167.25.tgz"
+ integrity sha512-M+S+QvGicfiH7kMkjrm6q+UMWXTdl7v9+pvMVnzA+lFm7whe8qmVOY72h/O8GGnejNn14jxdPrnLXv97NJjlWQ==
dependencies:
"@babel/types" "^7.28.5"
- "@tanstack/router-core" "1.171.14"
+ "@tanstack/router-core" "1.171.19"
"@tanstack/router-utils" "1.162.2"
"@tanstack/virtual-file-routes" "1.162.0"
jiti "^2.7.0"
@@ -3516,16 +3506,16 @@
prettier "^3.5.0"
zod "^4.4.3"
-"@tanstack/router-plugin@^1.168.19":
- version "1.168.19"
- resolved "https://registry.npmjs.org/@tanstack/router-plugin/-/router-plugin-1.168.19.tgz"
- integrity sha512-aFglwLc+bbPTgZlkXn3PvOwpjJAfgUyPGSuql4MP3XrqTTh6WkBiy2RYb6oaG5h0s7EKwivEuq85K3Y4V0Mt1g==
+"@tanstack/router-plugin@^1.168.27":
+ version "1.168.27"
+ resolved "https://registry.npmjs.org/@tanstack/router-plugin/-/router-plugin-1.168.27.tgz"
+ integrity sha512-M/3XG6RIxid8+f5VKXILtPpapQPjIgKRKV1JxuvYJwQM811iSUzK9onrZnezUktZcHaWJN+wD7FR5HedH/WY7Q==
dependencies:
"@babel/core" "^7.28.5"
"@babel/template" "^7.27.2"
"@babel/types" "^7.28.5"
- "@tanstack/router-core" "1.171.14"
- "@tanstack/router-generator" "1.167.18"
+ "@tanstack/router-core" "1.171.19"
+ "@tanstack/router-generator" "1.167.25"
"@tanstack/router-utils" "1.162.2"
chokidar "^5.0.0"
unplugin "^3.0.0"
@@ -10488,15 +10478,15 @@ semver@^7.8.5:
resolved "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz"
integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==
-seroval@^1.0, seroval@^1.5.4:
- version "1.5.4"
- resolved "https://registry.npmjs.org/seroval/-/seroval-1.5.4.tgz"
- integrity sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw==
+seroval@^1.0, seroval@^1.6.2:
+ version "1.6.2"
+ resolved "https://registry.npmjs.org/seroval/-/seroval-1.6.2.tgz"
+ integrity sha512-mPT+SD2TrlB6wvte1KkYOYUkubaTbd6pZ/6Kk3C9nxzrHmCZyhxOO7XGAeL7f+yLKZglzGtM9odUVvg/EhO+vQ==
-seroval-plugins@^1.5.4:
- version "1.5.4"
- resolved "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.5.4.tgz"
- integrity sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw==
+seroval-plugins@^1.6.2:
+ version "1.6.2"
+ resolved "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.6.2.tgz"
+ integrity sha512-TfxuUjlbBESzUOWdTkTKqvSmav0ABym+itetDXLK6mDz8SmrpdI30aF8RTXE8Bvq+tH/1yIDkvy3W0lfQb1ipQ==
set-cookie-parser@^2.6.0:
version "2.7.2"