diff --git a/flux/package-lock.json b/flux/package-lock.json index 3b194cdf66..a69326954c 100644 --- a/flux/package-lock.json +++ b/flux/package-lock.json @@ -11,7 +11,7 @@ "yaml": "^2.5.0" }, "devDependencies": { - "@kinvolk/headlamp-plugin": "^0.13.0" + "@kinvolk/headlamp-plugin": "^0.13.1" } }, "node_modules/@adobe/css-tools": { @@ -1780,9 +1780,9 @@ } }, "node_modules/@kinvolk/headlamp-plugin": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@kinvolk/headlamp-plugin/-/headlamp-plugin-0.13.0.tgz", - "integrity": "sha512-T0PGETnMXcUSOXKy/MEUeprDLzoqYxsJNqfNIL9DCW5WmmFDKcJX5Gify2RWB+oJbWIAaaRZ7zQGqeYeqa5KTA==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@kinvolk/headlamp-plugin/-/headlamp-plugin-0.13.1.tgz", + "integrity": "sha512-aoAGs5w8HIS43p3YBcjzkIWZZlh18b/e02d+r/rr6+99vc48vOd9tKAIBZMVg4j+cVzbPtL1+t1tDE/UdeHcWQ==", "dev": true, "license": "Apache 2.0", "dependencies": { @@ -1801,13 +1801,12 @@ "@mui/x-date-pickers": "^7.15.0", "@mui/x-tree-view": "^6.17.0", "@reduxjs/toolkit": "^2.2.7", - "@storybook/addon-docs": "^9.1.2", - "@storybook/addon-links": "^9.1.2", + "@storybook/addon-docs": "^9.1.17", + "@storybook/addon-links": "^9.1.17", "@storybook/addon-webpack5-compiler-swc": "^3.0.0", - "@storybook/react-vite": "^9.1.2", - "@storybook/react-webpack5": "^9.1.2", + "@storybook/react-vite": "^9.1.17", + "@storybook/react-webpack5": "^9.1.17", "@tanstack/react-query": "^5.51.24", - "@tanstack/react-query-devtools": "^5.51.24", "@testing-library/dom": "^10.1.0", "@testing-library/jest-dom": "^6.4.8", "@testing-library/react": "^16.0.0", @@ -1842,6 +1841,7 @@ "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-unused-imports": "^4.1.3", + "fast-check": "^4.5.3", "fs-extra": "^11.2.0", "fuse.js": "^7.0.0", "humanize-duration": "^3.27.2", @@ -1852,7 +1852,7 @@ "js-yaml": "^4.1.1", "jsdom": "^24.0.0", "jsonpath-plus": "^10.3.0", - "lodash": "^4.17.21", + "lodash": "^4.17.23", "material-react-table": "^2.13.3", "monaco-editor": "^0.52.0", "msw": "2.4.9", @@ -1876,9 +1876,9 @@ "shx": "^0.4.0", "simple-eval": "^2.0.0", "spacetime": "^7.4.0", - "storybook": "^9.1.2", + "storybook": "^9.1.17", "table": "^6.8.2", - "tar": "^7.4.3", + "tar": "^7.5.7", "ts-loader": "^9.5.2", "typescript": "5.6.2", "validate-npm-package-name": "^3.0.0", @@ -2879,16 +2879,16 @@ "license": "MIT" }, "node_modules/@storybook/addon-docs": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-9.1.13.tgz", - "integrity": "sha512-V1nCo7bfC3kQ5VNVq0VDcHsIhQf507m+BxMA5SIYiwdJHljH2BXpW2fL3FFn9gv9Wp57AEEzhm+wh4zANaJgkg==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-9.1.20.tgz", + "integrity": "sha512-eUIOd4u/p9994Nkv8Avn6r/xmS7D+RNmhmu6KGROefN3myLe3JfhSdimal2wDFe/h/OUNZ/LVVKMZrya9oEfKQ==", "dev": true, "license": "MIT", "dependencies": { "@mdx-js/react": "^3.0.0", - "@storybook/csf-plugin": "9.1.13", + "@storybook/csf-plugin": "9.1.20", "@storybook/icons": "^1.4.0", - "@storybook/react-dom-shim": "9.1.13", + "@storybook/react-dom-shim": "9.1.20", "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", "ts-dedent": "^2.0.0" @@ -2898,13 +2898,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^9.1.13" + "storybook": "^9.1.20" } }, "node_modules/@storybook/addon-links": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-9.1.13.tgz", - "integrity": "sha512-wx33RA5PPRSepVAjR0hMFp2IXoPgjwNAHIP92aoi2QQFS3+NHlf1I4vXEPpHU6lc0WBwM43qvLSI0qTAyZd8Nw==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-9.1.20.tgz", + "integrity": "sha512-/fFOqTZQ0Q5JmSAVlyfEFRa0W3hAh2u7kg+OQRLVxvNZVVuW50mOxE3853tAqisw9UX8TOCN6ZflFBeeoGLYfg==", "dev": true, "license": "MIT", "dependencies": { @@ -2916,7 +2916,7 @@ }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^9.1.13" + "storybook": "^9.1.20" }, "peerDependenciesMeta": { "react": { @@ -2939,13 +2939,13 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-9.1.13.tgz", - "integrity": "sha512-pmtIjU02ASJOZKdL8DoxWXJgZnpTDgD5WmMnjKJh9FaWmc2YiCW2Y6VRxPox96OM655jYHQe5+UIbk3Cwtwb4A==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-9.1.20.tgz", + "integrity": "sha512-cdU3Q2/wEaT8h+mApFToRiF/0hYKH1eAkD0scQn67aODgp7xnkr0YHcdA+8w0Uxd2V7U8crV/cmT/HD0ELVOGw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf-plugin": "9.1.13", + "@storybook/csf-plugin": "9.1.20", "ts-dedent": "^2.0.0" }, "funding": { @@ -2953,18 +2953,18 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^9.1.13", + "storybook": "^9.1.20", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" } }, "node_modules/@storybook/builder-webpack5": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-9.1.13.tgz", - "integrity": "sha512-BoFXrTlc22ryLl6U5QwgV/gHVbHBcXeVSjYOyu6XZ9SPV5GGbw5T/G7NJYJAZcsz1ZxuMEYYSMFryfZ5qcjRsA==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-9.1.20.tgz", + "integrity": "sha512-SN8n6NgfKUD73k9RMDTp0sxHkaEuOLlUWV2VVeXUj+HjacCDLopDXSxMcLsFP5+uSHYLBk4DQiX7EsD0rx8AJw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core-webpack": "9.1.13", + "@storybook/core-webpack": "9.1.20", "case-sensitive-paths-webpack-plugin": "^2.4.0", "cjs-module-lexer": "^1.2.3", "css-loader": "^6.7.1", @@ -2985,7 +2985,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^9.1.13" + "storybook": "^9.1.20" }, "peerDependenciesMeta": { "typescript": { @@ -2994,9 +2994,9 @@ } }, "node_modules/@storybook/core-webpack": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-9.1.13.tgz", - "integrity": "sha512-HtBZ+ZVgeqlhyMiT/Tdb/vpKrCSiZEi6p4s7y/qk04SaX8XIPSufEeqLI/ELSz2hOcuCy6smU/tE1JkqVz/4uA==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-9.1.20.tgz", + "integrity": "sha512-GaH54yOx2I/1HUNHdxD3+kbbEE2xoC9sp7+8HxGC0fofEiyK/nlExo0tIX4+LRXC3T7hI+alWEc9bHgkmyLJMg==", "dev": true, "license": "MIT", "dependencies": { @@ -3007,13 +3007,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^9.1.13" + "storybook": "^9.1.20" } }, "node_modules/@storybook/csf-plugin": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-9.1.13.tgz", - "integrity": "sha512-EMpzYuyt9FDcxxfBChWzfId50y8QMpdenviEQ8m+pa6c+ANx3pC5J6t7y0khD8TQu815sTy+nc6cc8PC45dPUA==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-9.1.20.tgz", + "integrity": "sha512-HHgk50YQhML7mT01Mzf9N7lNMFHWN4HwwRP90kPT9Ct+Jhx7h3LBDbdmWjI96HwujcpY7eoYdTfpB1Sw8Z7nBQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3024,7 +3024,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^9.1.13" + "storybook": "^9.1.20" } }, "node_modules/@storybook/global": { @@ -3049,13 +3049,13 @@ } }, "node_modules/@storybook/preset-react-webpack": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-9.1.13.tgz", - "integrity": "sha512-2bWRdGSYvXWaE1QnrKFeE7EbTj+/Y0D8DHZ/OlKCB3xtNM7koMDrTnnI27hVlMjXqcX8RvOwb/N31FGBRgkiNg==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-9.1.20.tgz", + "integrity": "sha512-/PPsRJVqRhW5P0Ff58AN7wuPxda2et8a5iUN3ebkol9r/zmc17QPzhqbIEDoa1jTC7DYa1pYgXvxbU+fY6lhrQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core-webpack": "9.1.13", + "@storybook/core-webpack": "9.1.20", "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", "@types/semver": "^7.3.4", "find-up": "^7.0.0", @@ -3076,7 +3076,7 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^9.1.13" + "storybook": "^9.1.20" }, "peerDependenciesMeta": { "typescript": { @@ -3107,14 +3107,14 @@ } }, "node_modules/@storybook/react": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-9.1.13.tgz", - "integrity": "sha512-B0UpYikKf29t8QGcdmumWojSQQ0phSDy/Ne2HYdrpNIxnUvHHUVOlGpq4lFcIDt52Ip5YG5GuAwJg3+eR4LCRg==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-9.1.20.tgz", + "integrity": "sha512-TJhqzggs7HCvLhTXKfx8HodnVq9YizsB2J31s9v6olU0UCxbCY+FYaCF+XdE8qUCyefGRZgHKzGBIczJ/q9e2g==", "dev": true, "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/react-dom-shim": "9.1.13" + "@storybook/react-dom-shim": "9.1.20" }, "engines": { "node": ">=20.0.0" @@ -3126,7 +3126,7 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^9.1.13", + "storybook": "^9.1.20", "typescript": ">= 4.9.x" }, "peerDependenciesMeta": { @@ -3156,9 +3156,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-9.1.13.tgz", - "integrity": "sha512-/tMr9TmV3+98GEQO0S03k4gtKHGCpv9+k9Dmnv+TJK3TBz7QsaFEzMwe3gCgoTaebLACyVveDiZkWnCYAWB6NA==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-9.1.20.tgz", + "integrity": "sha512-UYdZavfPwHEqCKMqPssUOlyFVZiJExLxnSHwkICSZBmw3gxXJcp1aXWs7PvoZdWz2K4ztl3IcKErXXHeiY6w+A==", "dev": true, "license": "MIT", "funding": { @@ -3168,20 +3168,20 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^9.1.13" + "storybook": "^9.1.20" } }, "node_modules/@storybook/react-vite": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-9.1.13.tgz", - "integrity": "sha512-mV1bZ1bpkNQygnuDo1xMGAS5ZXuoXFF0WGmr/BzNDGmRhZ1K1HQh42kC0w3PklckFBUwCFxmP58ZwTFzf+/dJA==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-9.1.20.tgz", + "integrity": "sha512-buXeNvEJ9kp4FKbGYV7zW4sh/KS01EAjeq8Z6AVxaXOh4W2CIRTKM9maWGz+Rr+YyqQIq/Gl+RqNwxctpxeuHA==", "dev": true, "license": "MIT", "dependencies": { "@joshwooding/vite-plugin-react-docgen-typescript": "0.6.1", "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "9.1.13", - "@storybook/react": "9.1.13", + "@storybook/builder-vite": "9.1.20", + "@storybook/react": "9.1.20", "find-up": "^7.0.0", "magic-string": "^0.30.0", "react-docgen": "^8.0.0", @@ -3198,20 +3198,20 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^9.1.13", + "storybook": "^9.1.20", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" } }, "node_modules/@storybook/react-webpack5": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/@storybook/react-webpack5/-/react-webpack5-9.1.13.tgz", - "integrity": "sha512-gsVWXbaodo22j6LcxA/55K6iQ83+MVObE76lSBsgOAWLe6gL9fiU4HBbi0B6/mrCN3Kqe7n95zM8QdOg4WbKeg==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/@storybook/react-webpack5/-/react-webpack5-9.1.20.tgz", + "integrity": "sha512-t5/+UenrE5h0hfsxcB6FOj3pV2YhrrPVpzaHlybgdhzzkPEQSUd34laWi82N74exqcjVLoDwWSkl3M2g1xoaMg==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/builder-webpack5": "9.1.13", - "@storybook/preset-react-webpack": "9.1.13", - "@storybook/react": "9.1.13" + "@storybook/builder-webpack5": "9.1.20", + "@storybook/preset-react-webpack": "9.1.20", + "@storybook/react": "9.1.20" }, "engines": { "node": ">=20.0.0" @@ -3223,7 +3223,7 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^9.1.13", + "storybook": "^9.1.20", "typescript": ">= 4.9.x" }, "peerDependenciesMeta": { @@ -3728,20 +3728,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.90.5", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.5.tgz", - "integrity": "sha512-wLamYp7FaDq6ZnNehypKI5fNvxHPfTYylE0m/ZpuuzJfJqhR5Pxg9gvGBHZx4n7J+V5Rg5mZxHHTlv25Zt5u+w==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/query-devtools": { - "version": "5.90.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.90.1.tgz", - "integrity": "sha512-GtINOPjPUH0OegJExZ70UahT9ykmAhmtNVcmtdnOZbxLwT7R5OmRztR5Ahe3/Cu7LArEmR6/588tAycuaWb1xQ==", + "version": "5.91.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.91.2.tgz", + "integrity": "sha512-Uz2pTgPC1mhqrrSGg18RKCWT/pkduAYtxbcyIyKBhw7dTWjXZIzqmpzO2lBkyWr4hlImQgpu1m1pei3UnkFRWw==", "dev": true, "license": "MIT", "funding": { @@ -3750,13 +3739,13 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.90.5", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.5.tgz", - "integrity": "sha512-pN+8UWpxZkEJ/Rnnj2v2Sxpx1WFlaa9L6a4UO89p6tTQbeo+m0MS8oYDjbggrR8QcTyjKoYWKS3xJQGr3ExT8Q==", + "version": "5.91.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.91.2.tgz", + "integrity": "sha512-GClLPzbM57iFXv+FlvOUL56XVe00PxuTaVEyj1zAObhRiKF008J5vedmaq7O6ehs+VmPHe8+PUQhMuEyv8d9wQ==", "dev": true, "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.90.5" + "@tanstack/query-core": "5.91.2" }, "funding": { "type": "github", @@ -3766,24 +3755,6 @@ "react": "^18 || ^19" } }, - "node_modules/@tanstack/react-query-devtools": { - "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==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tanstack/query-devtools": "5.90.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "@tanstack/react-query": "^5.90.2", - "react": "^18 || ^19" - } - }, "node_modules/@tanstack/react-table": { "version": "8.20.5", "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.20.5.tgz", @@ -8798,6 +8769,29 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-check": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.6.0.tgz", + "integrity": "sha512-h7H6Dm0Fy+H4ciQYFxFjXnXkzR2kr9Fb22c0UBpHnm59K2zpr2t13aPTHlltFiNT6zuxp6HMPAVVvgur4BLdpA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT", + "dependencies": { + "pure-rand": "^8.0.0" + }, + "engines": { + "node": ">=12.17.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -9111,9 +9105,9 @@ } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -9925,9 +9919,9 @@ } }, "node_modules/html-webpack-plugin": { - "version": "5.6.4", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.4.tgz", - "integrity": "sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw==", + "version": "5.6.6", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.6.tgz", + "integrity": "sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==", "dev": true, "license": "MIT", "dependencies": { @@ -13610,9 +13604,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "license": "MIT", "dependencies": { @@ -13815,6 +13809,23 @@ "node": ">=6" } }, + "node_modules/pure-rand": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-8.3.0.tgz", + "integrity": "sha512-1ws1Ab8fnsf4bvpL+SujgBnr3KFs5abgCLVzavBp+f2n8Ld5YTOZlkv/ccYPhu3X9s+MEeqPRMqKlJz/kWDK8A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, "node_modules/qs": { "version": "6.14.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", @@ -13985,9 +13996,9 @@ } }, "node_modules/react-docgen": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-8.0.2.tgz", - "integrity": "sha512-+NRMYs2DyTP4/tqWz371Oo50JqmWltR1h2gcdgUMAWZJIAvrd0/SqlCfx7tpzpl/s36rzw6qH2MjoNrxtRNYhA==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-8.0.3.tgz", + "integrity": "sha512-aEZ9qP+/M+58x2qgfSFEWH1BxLyHe5+qkLNJOZQb5iGS017jpbRnoKhNRrXPeA6RfBrZO5wZrT9DMC1UqE1f1w==", "dev": true, "license": "MIT", "dependencies": { @@ -15068,9 +15079,9 @@ } }, "node_modules/schema-utils/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "dev": true, "license": "MIT", "dependencies": { @@ -15527,9 +15538,9 @@ } }, "node_modules/storybook": { - "version": "9.1.13", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-9.1.13.tgz", - "integrity": "sha512-G3KZ36EVzXyHds72B/qtWiJnhUpM0xOUeYlDcO9DSHL1bDTv15cW4+upBl+mcBZrDvU838cn7Bv4GpF+O5MCfw==", + "version": "9.1.20", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-9.1.20.tgz", + "integrity": "sha512-6rME2tww6PFhm96iG2Xx44yzwLDWBiDWy+kJ2ub6x90werSTOiuo+tZJ94BgCfFutR0tEfLRIq59s+Zg6YyChA==", "dev": true, "license": "MIT", "dependencies": { @@ -16112,11 +16123,11 @@ } }, "node_modules/tar": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.3.tgz", - "integrity": "sha512-ENg5JUHUm2rDD7IvKNFGzyElLXNjachNLp6RaGf4+JOgxXHkqA+gq81ZAMCUmtMtqBsoU62lcp6S27g1LCYGGQ==", + "version": "7.5.12", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.12.tgz", + "integrity": "sha512-9TsuLcdhOn4XztcQqhNyq1KOwOOED/3k58JAvtULiYqbO8B/0IBAAIE1hj0Svmm58k27TmcigyDI0deMlgG3uw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", @@ -18044,9 +18055,9 @@ } }, "node_modules/yocto-queue": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", - "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", "dev": true, "license": "MIT", "engines": { diff --git a/flux/package.json b/flux/package.json index 528157fd56..f9ef82aa28 100644 --- a/flux/package.json +++ b/flux/package.json @@ -32,7 +32,7 @@ ] }, "devDependencies": { - "@kinvolk/headlamp-plugin": "^0.13.0" + "@kinvolk/headlamp-plugin": "^0.13.1" }, "dependencies": { "yaml": "^2.5.0" diff --git a/flux/src/overview/index.tsx b/flux/src/overview/index.tsx index 8f846bb197..ac08fdde21 100644 --- a/flux/src/overview/index.tsx +++ b/flux/src/overview/index.tsx @@ -1,6 +1,7 @@ import { Icon } from '@iconify/react'; import { K8s } from '@kinvolk/headlamp-plugin/lib'; import { + ActionButton, Link, NameValueTable, SectionBox, @@ -39,6 +40,7 @@ import { } from '../common/Resources'; import Table from '../common/Table'; import { useFluxCheck } from '../helpers'; +import { store } from '../settings'; // Helper to get failed count for a resource class function getFailedCount(items: KubeObject[] | null) { @@ -108,7 +110,10 @@ function getDisplayName(resourceClass: KubeObjectClass) { } export function FluxOverview() { - const [sortFilter, setSortFilter] = useState('failed'); + const [sortFilter, setSortFilter] = useState(() => store.get()?.overviewSortFilter ?? 'failed'); + const [showFilter, setShowFilter] = useState( + () => store.get()?.overviewShowFilter ?? 'configured' + ); const fluxCheck = useFluxCheck(); const namespace = fluxCheck.namespace; @@ -179,7 +184,7 @@ export function FluxOverview() { { rc: ImageUpdateAutomation, items: imageUpdateAutomations }, ]; - const resourceData = itemsWithClass.map(({ rc, items }) => ({ + let resourceData = itemsWithClass.map(({ rc, items }) => ({ rc, failed: getFailedCount(items), total: items?.length ?? 0, @@ -187,6 +192,10 @@ export function FluxOverview() { name: getDisplayName(rc), })); + if (showFilter === 'configured') { + resourceData = resourceData.filter(({ total }) => total > 0); + } + switch (sortFilter) { case 'failed': return resourceData.sort((a, b) => b.failed - a.failed).map(obj => obj.rc); @@ -222,21 +231,28 @@ export function FluxOverview() { imagePolicies, imageUpdateAutomations, sortFilter, + showFilter, ]); const handleSortFilterChange = event => { - setSortFilter(event.target.value); + const value = event.target.value; + setSortFilter(value); + store.set({ ...store.get(), overviewSortFilter: value }); + }; + + const handleShowFilterChange = event => { + const value = event.target.value; + setShowFilter(value); + store.set({ ...store.get(), overviewShowFilter: value }); }; return ( <> - -

Flux Overview

-
- + title="Flux Overview" + headerProps={{ + actions: [ + Sort By - - - } + , + + Show + + , + { + window.location.href = '/settings/plugins/@headlamp-k8s%2Fflux'; + }} + />, + ], + }} > - + {sortedResourceClasses.map((resourceClass, idx) => ( diff --git a/flux/src/settings/index.tsx b/flux/src/settings/index.tsx index 3305bc5b53..def768e88c 100644 --- a/flux/src/settings/index.tsx +++ b/flux/src/settings/index.tsx @@ -50,12 +50,16 @@ function AutoSaveSwitch({ ); } -interface PluginConfig { +export interface PluginConfig { linkHRelToKs: boolean; + overviewShowFilter: 'configured' | 'all'; + overviewSortFilter: string; } const DEFAULT_CONFIG: PluginConfig = { linkHRelToKs: false, + overviewShowFilter: 'configured', + overviewSortFilter: 'failed', }; export const store = new ConfigStore('@headlamp-k8s/flux'); diff --git a/flux/src/sources/SourceList.tsx b/flux/src/sources/SourceList.tsx index 3675e402fd..03a6ad911f 100644 --- a/flux/src/sources/SourceList.tsx +++ b/flux/src/sources/SourceList.tsx @@ -18,16 +18,17 @@ import { useNamespaces } from '../helpers'; export function FluxSources() { return ( <> - + + - ); }