From b746133d9bdc60d6fc1f0deb7eeec19ca0d2fbd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 22:29:14 +0000 Subject: [PATCH 01/66] build(deps-dev): Bump svelte from 5.42.2 to 5.42.3 Bumps [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte) from 5.42.2 to 5.42.3. - [Release notes](https://github.com/sveltejs/svelte/releases) - [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md) - [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.42.3/packages/svelte) --- updated-dependencies: - dependency-name: svelte dependency-version: 5.42.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: Adameska --- package.json | 2 +- pnpm-lock.yaml | 214 ++++++++++++++++++++++++------------------------- 2 files changed, 108 insertions(+), 108 deletions(-) diff --git a/package.json b/package.json index a12949fe..b939d649 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "node-gyp": "^11.2.0", "prettier": "^3.6.1", "prettier-plugin-svelte": "^3.3.3", - "svelte": "5.42.2", + "svelte": "5.43.0", "svelte-check": "^4.3.1", "svelte-eslint-parser": "^1.3.0", "typescript": "5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 336d439f..c81f90ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,10 +26,10 @@ importers: version: 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) '@vitest/coverage-v8': specifier: ^3.2.2 - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) '@vitest/eslint-plugin': specifier: ^1.3.17 - version: 1.3.26(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) + version: 1.3.26(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) @@ -71,7 +71,7 @@ importers: version: 3.0.5(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-svelte: specifier: ^3.12.3 - version: 3.12.5(eslint@9.38.0(jiti@2.6.1))(svelte@5.42.2) + version: 3.12.5(eslint@9.38.0(jiti@2.6.1))(svelte@5.43.0) eslint-plugin-unicorn: specifier: ^62.0.0 version: 62.0.0(eslint@9.38.0(jiti@2.6.1)) @@ -83,16 +83,16 @@ importers: version: 3.6.2 prettier-plugin-svelte: specifier: ^3.3.3 - version: 3.4.0(prettier@3.6.2)(svelte@5.42.2) + version: 3.4.0(prettier@3.6.2)(svelte@5.43.0) svelte: - specifier: 5.42.2 - version: 5.42.2 + specifier: 5.43.0 + version: 5.43.0 svelte-check: specifier: ^4.3.1 - version: 4.3.3(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.9.3) + version: 4.3.3(picomatch@4.0.3)(svelte@5.43.0)(typescript@5.9.3) svelte-eslint-parser: specifier: ^1.3.0 - version: 1.4.0(svelte@5.42.2) + version: 1.4.0(svelte@5.43.0) typescript: specifier: 5.9.3 version: 5.9.3 @@ -101,10 +101,10 @@ importers: version: 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) vite: specifier: ^7.1.12 - version: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + version: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) vitest: specifier: ^3.1.2 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) packages/channels: devDependencies: @@ -113,7 +113,7 @@ importers: version: link:../rpc vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.9.1)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) + version: 4.5.4(@types/node@24.9.2)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) packages/extension: dependencies: @@ -144,7 +144,7 @@ importers: version: 1.23.0-next.202510141447-e1ab0ef8faf '@types/node': specifier: ^24 - version: 24.9.1 + version: 24.9.2 '@types/ws': specifier: ^8.18.0 version: 8.18.1 @@ -156,7 +156,7 @@ importers: version: 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) '@vitest/coverage-v8': specifier: ^3.2.2 - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) eslint: specifier: ^9.37.0 version: 9.38.0(jiti@2.6.1) @@ -195,16 +195,16 @@ importers: version: 5.9.3 vite: specifier: ^7.1 - version: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + version: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) vitest: specifier: ^3.1 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) packages/rpc: devDependencies: vite-plugin-dts: specifier: ^4.5.4 - version: 4.5.4(@types/node@24.9.1)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) + version: 4.5.4(@types/node@24.9.2)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) packages/webview: dependencies: @@ -219,7 +219,7 @@ importers: version: 2.30.1 svelte-preprocess: specifier: ^6.0.3 - version: 6.0.3(postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1))(postcss@8.5.6)(svelte@5.42.2)(typescript@5.9.3) + version: 6.0.3(postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1))(postcss@8.5.6)(svelte@5.43.0)(typescript@5.9.3) tinro: specifier: ^0.6.12 version: 0.6.12 @@ -247,19 +247,19 @@ importers: version: link:../rpc '@podman-desktop/ui-svelte': specifier: 1.22.1 - version: 1.22.1(svelte-fa@4.0.4(svelte@5.42.2))(svelte@5.42.2) + version: 1.22.1(svelte-fa@4.0.4(svelte@5.43.0))(svelte@5.43.0) '@podman-desktop/webview-api': specifier: 1.22.1 version: 1.22.1 '@sveltejs/vite-plugin-svelte': specifier: ^6 - version: 6.2.1(svelte@5.42.2)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) + version: 6.2.1(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) '@tailwindcss/typography': specifier: ^0.5.18 version: 0.5.19(tailwindcss@4.1.16) '@tailwindcss/vite': specifier: ^4.1.15 - version: 4.1.16(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) + version: 4.1.16(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) '@testing-library/dom': specifier: ^10.4.0 version: 10.4.1 @@ -268,7 +268,7 @@ importers: version: 6.9.1 '@testing-library/svelte': specifier: ^5.2.7 - version: 5.2.8(svelte@5.42.2)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) + version: 5.2.8(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) '@testing-library/user-event': specifier: ^14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) @@ -313,28 +313,28 @@ importers: version: 3.6.2 prettier-plugin-svelte: specifier: ^3.3.3 - version: 3.4.0(prettier@3.6.2)(svelte@5.42.2) + version: 3.4.0(prettier@3.6.2)(svelte@5.43.0) reflect-metadata: specifier: ^0.2.2 version: 0.2.2 svelte: specifier: ^5 - version: 5.42.2 + version: 5.43.0 svelte-fa: specifier: ^4.0.3 - version: 4.0.4(svelte@5.42.2) + version: 4.0.4(svelte@5.43.0) svelte-markdown: specifier: ^0.4.1 - version: 0.4.1(svelte@5.42.2) + version: 0.4.1(svelte@5.43.0) tailwindcss: specifier: ^4 version: 4.1.16 vite: specifier: ^7.1 - version: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + version: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) vitest: specifier: ^3 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) packages: @@ -1200,8 +1200,8 @@ packages: '@types/node-fetch@2.6.13': resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} - '@types/node@24.9.1': - resolution: {integrity: sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==} + '@types/node@24.9.2': + resolution: {integrity: sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} @@ -3754,8 +3754,8 @@ packages: typescript: optional: true - svelte@5.42.2: - resolution: {integrity: sha512-iSry5jsBHispVczyt9UrBX/1qu3HQ/UyKPAIjqlvlu3o/eUvc+kpyMyRS2O4HLLx4MvLurLGIUOyyP11pyD59g==} + svelte@5.43.0: + resolution: {integrity: sha512-1sRxVbgJAB+UGzwkc3GUoiBSzEOf0jqzccMaVoI2+pI+kASUe9qubslxace8+Mzhqw19k4syTA5niCIJwfXpOA==} engines: {node: '>=18'} symbol-tree@3.2.4: @@ -4584,7 +4584,7 @@ snapshots: '@kubernetes/client-node@1.4.0(encoding@0.1.13)': dependencies: '@types/js-yaml': 4.0.9 - '@types/node': 24.9.1 + '@types/node': 24.9.2 '@types/node-fetch': 2.6.13 '@types/stream-buffers': 3.0.7 form-data: 4.0.4 @@ -4607,23 +4607,23 @@ snapshots: - supports-color - utf-8-validate - '@microsoft/api-extractor-model@7.31.1(@types/node@24.9.1)': + '@microsoft/api-extractor-model@7.31.1(@types/node@24.9.2)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.17.0(@types/node@24.9.1) + '@rushstack/node-core-library': 5.17.0(@types/node@24.9.2) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.53.1(@types/node@24.9.1)': + '@microsoft/api-extractor@7.53.1(@types/node@24.9.2)': dependencies: - '@microsoft/api-extractor-model': 7.31.1(@types/node@24.9.1) + '@microsoft/api-extractor-model': 7.31.1(@types/node@24.9.2) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.17.0(@types/node@24.9.1) + '@rushstack/node-core-library': 5.17.0(@types/node@24.9.2) '@rushstack/rig-package': 0.6.0 - '@rushstack/terminal': 0.19.1(@types/node@24.9.1) - '@rushstack/ts-command-line': 5.1.1(@types/node@24.9.1) + '@rushstack/terminal': 0.19.1(@types/node@24.9.2) + '@rushstack/ts-command-line': 5.1.1(@types/node@24.9.2) lodash: 4.17.21 minimatch: 10.0.3 resolve: 1.22.10 @@ -4685,7 +4685,7 @@ snapshots: '@podman-desktop/api@1.23.0-next.202510141447-e1ab0ef8faf': {} - '@podman-desktop/ui-svelte@1.22.1(svelte-fa@4.0.4(svelte@5.42.2))(svelte@5.42.2)': + '@podman-desktop/ui-svelte@1.22.1(svelte-fa@4.0.4(svelte@5.43.0))(svelte@5.43.0)': dependencies: '@fortawesome/fontawesome-free': 7.1.0 '@fortawesome/free-brands-svg-icons': 7.1.0 @@ -4693,8 +4693,8 @@ snapshots: '@fortawesome/free-solid-svg-icons': 7.1.0 humanize-duration: 3.33.1 moment: 2.30.1 - svelte: 5.42.2 - svelte-fa: 4.0.4(svelte@5.42.2) + svelte: 5.43.0 + svelte-fa: 4.0.4(svelte@5.43.0) '@podman-desktop/webview-api@1.22.1': {} @@ -4774,7 +4774,7 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@rushstack/node-core-library@5.17.0(@types/node@24.9.1)': + '@rushstack/node-core-library@5.17.0(@types/node@24.9.2)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -4785,28 +4785,28 @@ snapshots: resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 - '@rushstack/problem-matcher@0.1.1(@types/node@24.9.1)': + '@rushstack/problem-matcher@0.1.1(@types/node@24.9.2)': optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 '@rushstack/rig-package@0.6.0': dependencies: resolve: 1.22.10 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.19.1(@types/node@24.9.1)': + '@rushstack/terminal@0.19.1(@types/node@24.9.2)': dependencies: - '@rushstack/node-core-library': 5.17.0(@types/node@24.9.1) - '@rushstack/problem-matcher': 0.1.1(@types/node@24.9.1) + '@rushstack/node-core-library': 5.17.0(@types/node@24.9.2) + '@rushstack/problem-matcher': 0.1.1(@types/node@24.9.2) supports-color: 8.1.1 optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 - '@rushstack/ts-command-line@5.1.1(@types/node@24.9.1)': + '@rushstack/ts-command-line@5.1.1(@types/node@24.9.2)': dependencies: - '@rushstack/terminal': 0.19.1(@types/node@24.9.1) + '@rushstack/terminal': 0.19.1(@types/node@24.9.2) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -4817,24 +4817,24 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/vite-plugin-svelte-inspector@5.0.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.42.2)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)))(svelte@5.42.2)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': + '@sveltejs/vite-plugin-svelte-inspector@5.0.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)))(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.42.2)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) debug: 4.4.3 - svelte: 5.42.2 - vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + svelte: 5.43.0 + vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.42.2)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': + '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.42.2)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)))(svelte@5.42.2)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte-inspector': 5.0.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)))(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) debug: 4.4.1 deepmerge: 4.3.1 magic-string: 0.30.17 - svelte: 5.42.2 - vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) - vitefu: 1.1.1(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) + svelte: 5.43.0 + vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + vitefu: 1.1.1(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) transitivePeerDependencies: - supports-color @@ -4904,12 +4904,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.16 - '@tailwindcss/vite@4.1.16(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': + '@tailwindcss/vite@4.1.16(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: '@tailwindcss/node': 4.1.16 '@tailwindcss/oxide': 4.1.16 tailwindcss: 4.1.16 - vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) '@testing-library/dom@10.4.1': dependencies: @@ -4931,13 +4931,13 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/svelte@5.2.8(svelte@5.42.2)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': + '@testing-library/svelte@5.2.8(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: '@testing-library/dom': 10.4.1 - svelte: 5.42.2 + svelte: 5.43.0 optionalDependencies: - vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: @@ -4980,10 +4980,10 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 form-data: 4.0.4 - '@types/node@24.9.1': + '@types/node@24.9.2': dependencies: undici-types: 7.16.0 @@ -4991,11 +4991,11 @@ snapshots: '@types/stream-buffers@3.0.7': dependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 '@types/ws@8.18.1': dependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 '@types/yargs-parser@21.0.3': {} @@ -5291,7 +5291,7 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.7.13': optional: true - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -5306,18 +5306,18 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.3.26(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': + '@vitest/eslint-plugin@1.3.26(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: '@typescript-eslint/scope-manager': 8.46.1 '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) eslint: 9.38.0(jiti@2.6.1) optionalDependencies: typescript: 5.9.3 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -5329,13 +5329,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -6221,7 +6221,7 @@ snapshots: semver: 7.7.2 typescript: 5.9.3 - eslint-plugin-svelte@3.12.5(eslint@9.38.0(jiti@2.6.1))(svelte@5.42.2): + eslint-plugin-svelte@3.12.5(eslint@9.38.0(jiti@2.6.1))(svelte@5.43.0): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) '@jridgewell/sourcemap-codec': 1.5.5 @@ -6233,9 +6233,9 @@ snapshots: postcss-load-config: 3.1.4(postcss@8.5.6) postcss-safe-parser: 7.0.1(postcss@8.5.6) semver: 7.7.2 - svelte-eslint-parser: 1.4.0(svelte@5.42.2) + svelte-eslint-parser: 1.4.0(svelte@5.43.0) optionalDependencies: - svelte: 5.42.2 + svelte: 5.43.0 transitivePeerDependencies: - ts-node @@ -7428,10 +7428,10 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.42.2): + prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.43.0): dependencies: prettier: 3.6.2 - svelte: 5.42.2 + svelte: 5.43.0 prettier@3.6.2: {} @@ -7799,19 +7799,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.3.3(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.9.3): + svelte-check@4.3.3(picomatch@4.0.3)(svelte@5.43.0)(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.29 chokidar: 4.0.3 fdir: 6.4.6(picomatch@4.0.3) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.42.2 + svelte: 5.43.0 typescript: 5.9.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.4.0(svelte@5.42.2): + svelte-eslint-parser@1.4.0(svelte@5.43.0): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -7820,27 +7820,27 @@ snapshots: postcss-scss: 4.0.9(postcss@8.5.6) postcss-selector-parser: 7.1.0 optionalDependencies: - svelte: 5.42.2 + svelte: 5.43.0 - svelte-fa@4.0.4(svelte@5.42.2): + svelte-fa@4.0.4(svelte@5.43.0): dependencies: - svelte: 5.42.2 + svelte: 5.43.0 - svelte-markdown@0.4.1(svelte@5.42.2): + svelte-markdown@0.4.1(svelte@5.43.0): dependencies: '@types/marked': 5.0.2 marked: 5.1.2 - svelte: 5.42.2 + svelte: 5.43.0 - svelte-preprocess@6.0.3(postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1))(postcss@8.5.6)(svelte@5.42.2)(typescript@5.9.3): + svelte-preprocess@6.0.3(postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1))(postcss@8.5.6)(svelte@5.43.0)(typescript@5.9.3): dependencies: - svelte: 5.42.2 + svelte: 5.43.0 optionalDependencies: postcss: 8.5.6 postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1) typescript: 5.9.3 - svelte@5.42.2: + svelte@5.43.0: dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -8104,13 +8104,13 @@ snapshots: util-deprecate@1.0.2: {} - vite-node@3.2.4(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -8125,9 +8125,9 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.4(@types/node@24.9.1)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)): + vite-plugin-dts@4.5.4(@types/node@24.9.2)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)): dependencies: - '@microsoft/api-extractor': 7.53.1(@types/node@24.9.1) + '@microsoft/api-extractor': 7.53.1(@types/node@24.9.2) '@rollup/pluginutils': 5.3.0(rollup@4.52.5) '@volar/typescript': 2.4.23 '@vue/language-core': 2.2.0(typescript@5.9.3) @@ -8138,13 +8138,13 @@ snapshots: magic-string: 0.30.19 typescript: 5.9.3 optionalDependencies: - vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1): + vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1): dependencies: esbuild: 0.25.11 fdir: 6.5.0(picomatch@4.0.3) @@ -8153,21 +8153,21 @@ snapshots: rollup: 4.52.5 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 yaml: 2.8.1 - vitefu@1.1.1(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)): + vitefu@1.1.1(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)): optionalDependencies: - vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -8185,12 +8185,12 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 24.9.1 + '@types/node': 24.9.2 jsdom: 27.0.1(postcss@8.5.6) transitivePeerDependencies: - jiti From 4803ab7e0ee69e5ef1fa989cb2f007da7c9f39c7 Mon Sep 17 00:00:00 2001 From: Philippe Martin Date: Wed, 29 Oct 2025 08:03:44 +0100 Subject: [PATCH 02/66] List kubernetes providers in "no context" page (#368) * feat: display kubernetes renderers Signed-off-by: Philippe Martin * feat: simple markdown component Signed-off-by: Philippe Martin * test: add unit tests Signed-off-by: Philippe Martin --------- Signed-off-by: Philippe Martin Signed-off-by: Adameska --- .../dashboard/KubernetesProviderCard.spec.ts | 69 ++++++++++ .../dashboard/KubernetesProviderCard.svelte | 47 +++++++ .../component/dashboard/NoContextPage.spec.ts | 118 ++++++++++++++++++ .../component/dashboard/NoContextPage.svelte | 26 +++- 4 files changed, 258 insertions(+), 2 deletions(-) create mode 100644 packages/webview/src/component/dashboard/KubernetesProviderCard.spec.ts create mode 100644 packages/webview/src/component/dashboard/KubernetesProviderCard.svelte create mode 100644 packages/webview/src/component/dashboard/NoContextPage.spec.ts diff --git a/packages/webview/src/component/dashboard/KubernetesProviderCard.spec.ts b/packages/webview/src/component/dashboard/KubernetesProviderCard.spec.ts new file mode 100644 index 00000000..a49f68ba --- /dev/null +++ b/packages/webview/src/component/dashboard/KubernetesProviderCard.spec.ts @@ -0,0 +1,69 @@ +/********************************************************************** + * Copyright (C) 2025 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ***********************************************************************/ + +import '@testing-library/jest-dom/vitest'; + +import { render, screen } from '@testing-library/svelte'; +import { beforeEach, expect, test, vi } from 'vitest'; +import KubernetesProviderCard from '/@/component/dashboard/KubernetesProviderCard.svelte'; +import { RemoteMocks } from '/@/tests/remote-mocks'; +import { API_NAVIGATION } from '@kubernetes-dashboard/channels'; +import type { NavigationApi } from '@kubernetes-dashboard/channels'; +import userEvent from '@testing-library/user-event'; + +const remoteMocks = new RemoteMocks(); + +beforeEach(() => { + vi.resetAllMocks(); + remoteMocks.reset(); + + remoteMocks.mock(API_NAVIGATION, { + navigateToProviderNewConnection: vi.fn(), + } as unknown as NavigationApi); +}); + +test('should render with all values passed', async () => { + render(KubernetesProviderCard, { + provider: { + id: 'k8s-provider', + creationDisplayName: 'Kubernetes Provider', + creationButtonTitle: 'Create Kubernetes Provider', + emptyConnectionMarkdownDescription: 'Create a new Kubernetes Provider', + }, + }); + screen.getByText('Kubernetes Provider'); + screen.getByText('Create Kubernetes Provider'); + const btn = screen.getByRole('button', { name: 'Create Kubernetes Provider' }); + expect(btn).toBeEnabled(); + await userEvent.click(btn); + expect(remoteMocks.get(API_NAVIGATION).navigateToProviderNewConnection).toHaveBeenCalledWith('k8s-provider'); +}); + +test('should render with minimal values passed', async () => { + render(KubernetesProviderCard, { + provider: { + id: 'k8s-provider', + }, + }); + screen.getByText('Create'); + screen.getByText('Create new'); + const btn = screen.getByRole('button', { name: 'Create new' }); + expect(btn).toBeEnabled(); + await userEvent.click(btn); + expect(remoteMocks.get(API_NAVIGATION).navigateToProviderNewConnection).toHaveBeenCalledWith('k8s-provider'); +}); diff --git a/packages/webview/src/component/dashboard/KubernetesProviderCard.svelte b/packages/webview/src/component/dashboard/KubernetesProviderCard.svelte new file mode 100644 index 00000000..e77b7db2 --- /dev/null +++ b/packages/webview/src/component/dashboard/KubernetesProviderCard.svelte @@ -0,0 +1,47 @@ + + +
+
+ +
+

+ {provider.creationDisplayName ?? 'Create'} +

+ +

+ +

+ +
+ +
+
diff --git a/packages/webview/src/component/dashboard/NoContextPage.spec.ts b/packages/webview/src/component/dashboard/NoContextPage.spec.ts new file mode 100644 index 00000000..f6b14618 --- /dev/null +++ b/packages/webview/src/component/dashboard/NoContextPage.spec.ts @@ -0,0 +1,118 @@ +/********************************************************************** + * Copyright (C) 2025 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + ***********************************************************************/ + +import '@testing-library/jest-dom/vitest'; + +import { render, screen } from '@testing-library/svelte'; +import { beforeEach, expect, test, vi } from 'vitest'; +import NoContextPage from './NoContextPage.svelte'; +import { StatesMocks } from '/@/tests/state-mocks'; +import { FakeStateObject } from '/@/state/util/fake-state-object.svelte'; +import type { KubernetesProvidersInfo } from '@kubernetes-dashboard/channels'; +import KubeIcon from '/@/component/icons/KubeIcon.svelte'; +import KubernetesProviderCard from '/@/component/dashboard/KubernetesProviderCard.svelte'; +import type { Unsubscriber } from 'svelte/store'; + +vi.mock(import('./KubernetesProviderCard.svelte')); +vi.mock(import('/@/component/icons/KubeIcon.svelte')); + +const statesMocks = new StatesMocks(); +let kubernetesProvidersMock: FakeStateObject; + +beforeEach(() => { + vi.resetAllMocks(); + statesMocks.reset(); + + kubernetesProvidersMock = new FakeStateObject(); + statesMocks.mock('stateKubernetesProvidersInfoUI', kubernetesProvidersMock); +}); + +test('should render the Kubernetes icon', () => { + render(NoContextPage); + expect(KubeIcon).toHaveBeenCalledWith(expect.anything(), { size: '80' }); +}); + +test('should render the main heading', () => { + render(NoContextPage); + + const heading = screen.getByRole('heading', { level: 1 }); + expect(heading).toHaveTextContent('No Kubernetes cluster'); +}); + +test('should render the description text', () => { + render(NoContextPage); + + const description = screen.getByText(/A Kubernetes cluster is a group of nodes/); + expect(description).toBeInTheDocument(); + expect(description).toHaveClass('text-[var(--pd-details-empty-sub-header)]', 'text-balance'); +}); + +test('should render providers when data is available', () => { + const mockProviders: KubernetesProvidersInfo = { + providers: [ + { + id: 'provider-1', + creationDisplayName: 'Provider 1', + creationButtonTitle: 'Create Provider 1', + emptyConnectionMarkdownDescription: 'Description 1', + }, + { + id: 'provider-2', + creationDisplayName: 'Provider 2', + creationButtonTitle: 'Create Provider 2', + emptyConnectionMarkdownDescription: 'Description 2', + }, + ], + }; + + kubernetesProvidersMock.setData(mockProviders); + render(NoContextPage); + + expect(KubernetesProviderCard).toHaveBeenCalledWith(expect.anything(), { provider: mockProviders.providers[0] }); + expect(KubernetesProviderCard).toHaveBeenCalledWith(expect.anything(), { provider: mockProviders.providers[1] }); +}); + +test('should handle providers with minimal data', () => { + const mockProviders = { + providers: [ + { + id: 'minimal-provider', + }, + ], + }; + + kubernetesProvidersMock.setData(mockProviders); + render(NoContextPage); + + expect(KubernetesProviderCard).toHaveBeenCalledWith(expect.anything(), { provider: mockProviders.providers[0] }); +}); + +test('should call subscribe on mount', () => { + render(NoContextPage); + + expect(kubernetesProvidersMock.subscribe).toHaveBeenCalledTimes(1); +}); + +test('should call unsubscribe on unmount', () => { + const unsubscribeMock: Unsubscriber = vi.fn(); + vi.mocked(kubernetesProvidersMock.subscribe).mockReturnValue(unsubscribeMock); + const component = render(NoContextPage); + + component.unmount(); + expect(unsubscribeMock).toHaveBeenCalledTimes(1); +}); diff --git a/packages/webview/src/component/dashboard/NoContextPage.svelte b/packages/webview/src/component/dashboard/NoContextPage.svelte index 15984556..cfc5c1d4 100644 --- a/packages/webview/src/component/dashboard/NoContextPage.svelte +++ b/packages/webview/src/component/dashboard/NoContextPage.svelte @@ -1,16 +1,38 @@
-
+

No Kubernetes cluster

-
+
A Kubernetes cluster is a group of nodes (virtual or physical) that run Kubernetes, a system for automating the deployment and management of containerized applications.
+
+ {#each kubernetesProviders.data?.providers as provider (provider.id)} + + {/each} +
From 944bebcd3ec2060ffe99e4104560d26c43aefb4f Mon Sep 17 00:00:00 2001 From: Philippe Martin Date: Wed, 29 Oct 2025 09:44:49 +0100 Subject: [PATCH 03/66] fix: set kind during the list operation (#400) Signed-off-by: Philippe Martin Signed-off-by: Adameska --- packages/extension/src/manager/contexts-manager.spec.ts | 6 +++--- packages/extension/src/manager/contexts-manager.ts | 7 +------ .../extension/src/resources/configmaps-resource-factory.ts | 2 +- .../extension/src/resources/cronjobs-resource-factory.ts | 2 +- .../src/resources/deployments-resource-factory.ts | 2 +- .../src/resources/endpoint-slices-resource-factory.ts | 2 +- .../extension/src/resources/events-resource-factory.ts | 2 +- .../extension/src/resources/ingresses-resource-factory.ts | 2 +- packages/extension/src/resources/jobs-resource-factory.ts | 2 +- .../extension/src/resources/namespaces-resource-factory.ts | 2 +- packages/extension/src/resources/nodes-resource-factory.ts | 2 +- packages/extension/src/resources/pods-resource-factory.ts | 2 +- packages/extension/src/resources/pvcs-resource-factory.ts | 2 +- .../extension/src/resources/routes-resource-factory.ts | 2 +- .../extension/src/resources/secrets-resource-factory.ts | 2 +- .../extension/src/resources/services-resource-factory.ts | 2 +- 16 files changed, 18 insertions(+), 23 deletions(-) diff --git a/packages/extension/src/manager/contexts-manager.spec.ts b/packages/extension/src/manager/contexts-manager.spec.ts index 5843289a..4ea19b85 100644 --- a/packages/extension/src/manager/contexts-manager.spec.ts +++ b/packages/extension/src/manager/contexts-manager.spec.ts @@ -874,8 +874,8 @@ describe('HealthChecker pass and PermissionsChecker resturns a value', async () list: listMock, get: getMock, } as ObjectCache); - listMock.mockReturnValue([{ metadata: { name: 'obj1', namespace: 'ns1' } }]); - getMock.mockReturnValue({ metadata: { name: 'obj1', namespace: 'ns1' } }); + listMock.mockReturnValue([{ kind: 'Resource1', metadata: { name: 'obj1', namespace: 'ns1' } }]); + getMock.mockReturnValue({ kind: 'Resource1', metadata: { name: 'obj1', namespace: 'ns1' } }); await manager.update(kc); const result = manager.getResourceDetails('context1', 'resource1', 'obj1', 'ns1'); @@ -889,7 +889,7 @@ describe('HealthChecker pass and PermissionsChecker resturns a value', async () list: listMock, get: getMock, } as ObjectCache); - listMock.mockReturnValue([{ metadata: { name: 'obj1', namespace: 'ns1' } }]); + listMock.mockReturnValue([{ kind: 'Resource1', metadata: { name: 'obj1', namespace: 'ns1' } }]); getMock.mockReturnValue(undefined); await manager.update(kc); diff --git a/packages/extension/src/manager/contexts-manager.ts b/packages/extension/src/manager/contexts-manager.ts index 7faa3b22..99eba2a0 100644 --- a/packages/extension/src/manager/contexts-manager.ts +++ b/packages/extension/src/manager/contexts-manager.ts @@ -278,12 +278,7 @@ export class ContextsManager { namespace?: string, ): KubernetesObject | undefined { const value = this.#objectCaches.get(contextName, resourceName); - let details = value?.get(name, namespace); - if (details) { - const kind = this.#resourceFactoryHandler.getResourceFactoryByResourceName(resourceName)?.kind; - details = { ...details, kind }; - } - return details; + return value?.get(name, namespace); } getResourceEvents(contextName: string, uid: string): CoreV1Event[] { diff --git a/packages/extension/src/resources/configmaps-resource-factory.ts b/packages/extension/src/resources/configmaps-resource-factory.ts index f9a2f127..7584d83d 100644 --- a/packages/extension/src/resources/configmaps-resource-factory.ts +++ b/packages/extension/src/resources/configmaps-resource-factory.ts @@ -46,7 +46,7 @@ export class ConfigmapsResourceFactory extends ResourceFactoryBase implements Re ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setDeleteObject(this.deleteConfigMap); } diff --git a/packages/extension/src/resources/cronjobs-resource-factory.ts b/packages/extension/src/resources/cronjobs-resource-factory.ts index 31a8f1e2..5288b473 100644 --- a/packages/extension/src/resources/cronjobs-resource-factory.ts +++ b/packages/extension/src/resources/cronjobs-resource-factory.ts @@ -47,7 +47,7 @@ export class CronjobsResourceFactory extends ResourceFactoryBase implements Reso ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setDeleteObject(this.deleteCronJob); } diff --git a/packages/extension/src/resources/deployments-resource-factory.ts b/packages/extension/src/resources/deployments-resource-factory.ts index 9c8cf2fe..6f699d6c 100644 --- a/packages/extension/src/resources/deployments-resource-factory.ts +++ b/packages/extension/src/resources/deployments-resource-factory.ts @@ -47,7 +47,7 @@ export class DeploymentsResourceFactory extends ResourceFactoryBase implements R ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setIsActive(this.isDeploymentActive); this.setDeleteObject(this.deleteDeployment); diff --git a/packages/extension/src/resources/endpoint-slices-resource-factory.ts b/packages/extension/src/resources/endpoint-slices-resource-factory.ts index 727eca14..aee6e578 100644 --- a/packages/extension/src/resources/endpoint-slices-resource-factory.ts +++ b/packages/extension/src/resources/endpoint-slices-resource-factory.ts @@ -52,7 +52,7 @@ export class EndpointSlicesResourceFactory extends ResourceFactoryBase implement ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setSearchByTargetRef(this.searchEndpointSlicesByTargetRef); diff --git a/packages/extension/src/resources/events-resource-factory.ts b/packages/extension/src/resources/events-resource-factory.ts index 4d5a5ba9..ad465f4c 100644 --- a/packages/extension/src/resources/events-resource-factory.ts +++ b/packages/extension/src/resources/events-resource-factory.ts @@ -46,7 +46,7 @@ export class EventsResourceFactory extends ResourceFactoryBase implements Resour ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); } diff --git a/packages/extension/src/resources/ingresses-resource-factory.ts b/packages/extension/src/resources/ingresses-resource-factory.ts index c139f171..d2e732c2 100644 --- a/packages/extension/src/resources/ingresses-resource-factory.ts +++ b/packages/extension/src/resources/ingresses-resource-factory.ts @@ -49,7 +49,7 @@ export class IngressesResourceFactory extends ResourceFactoryBase implements Res ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setDeleteObject(this.deleteIngress); this.setSearchByTargetRef(this.searchIngressesByTargetRef); diff --git a/packages/extension/src/resources/jobs-resource-factory.ts b/packages/extension/src/resources/jobs-resource-factory.ts index b97d6e71..c8ee40ff 100644 --- a/packages/extension/src/resources/jobs-resource-factory.ts +++ b/packages/extension/src/resources/jobs-resource-factory.ts @@ -48,7 +48,7 @@ export class JobsResourceFactory extends ResourceFactoryBase implements Resource ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setDeleteObject(this.deleteJob); this.setReadObject(this.readJob); diff --git a/packages/extension/src/resources/namespaces-resource-factory.ts b/packages/extension/src/resources/namespaces-resource-factory.ts index 015db632..53e98567 100644 --- a/packages/extension/src/resources/namespaces-resource-factory.ts +++ b/packages/extension/src/resources/namespaces-resource-factory.ts @@ -51,7 +51,7 @@ export class NamespacesResourceFactory extends ResourceFactoryBase implements Re ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setDeleteObject(this.deleteNamespace); this.setSearchBySelector(this.searchNamespacesBySelector); diff --git a/packages/extension/src/resources/nodes-resource-factory.ts b/packages/extension/src/resources/nodes-resource-factory.ts index ef3daedc..db5e36e5 100644 --- a/packages/extension/src/resources/nodes-resource-factory.ts +++ b/packages/extension/src/resources/nodes-resource-factory.ts @@ -46,7 +46,7 @@ export class NodesResourceFactory extends ResourceFactoryBase implements Resourc ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setIsActive(this.isNodeActive); } diff --git a/packages/extension/src/resources/pods-resource-factory.ts b/packages/extension/src/resources/pods-resource-factory.ts index 83139ca2..fe653ed2 100644 --- a/packages/extension/src/resources/pods-resource-factory.ts +++ b/packages/extension/src/resources/pods-resource-factory.ts @@ -48,7 +48,7 @@ export class PodsResourceFactory extends ResourceFactoryBase implements Resource ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setDeleteObject(this.deletePod); this.setSearchBySelector(this.searchPodsBySelector); diff --git a/packages/extension/src/resources/pvcs-resource-factory.ts b/packages/extension/src/resources/pvcs-resource-factory.ts index 157f8051..bee3da43 100644 --- a/packages/extension/src/resources/pvcs-resource-factory.ts +++ b/packages/extension/src/resources/pvcs-resource-factory.ts @@ -51,7 +51,7 @@ export class PVCsResourceFactory extends ResourceFactoryBase implements Resource ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setDeleteObject(this.deletePVC); } diff --git a/packages/extension/src/resources/routes-resource-factory.ts b/packages/extension/src/resources/routes-resource-factory.ts index 5a4451b6..d5660903 100644 --- a/packages/extension/src/resources/routes-resource-factory.ts +++ b/packages/extension/src/resources/routes-resource-factory.ts @@ -50,7 +50,7 @@ export class RoutesResourceFactory extends ResourceFactoryBase implements Resour ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setDeleteObject(this.deleteRoute); this.setSearchByTargetRef(this.searchRoutesByTargetRef); diff --git a/packages/extension/src/resources/secrets-resource-factory.ts b/packages/extension/src/resources/secrets-resource-factory.ts index a9679e36..3ffbacd6 100644 --- a/packages/extension/src/resources/secrets-resource-factory.ts +++ b/packages/extension/src/resources/secrets-resource-factory.ts @@ -46,7 +46,7 @@ export class SecretsResourceFactory extends ResourceFactoryBase implements Resou ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setDeleteObject(this.deleteSecret); } diff --git a/packages/extension/src/resources/services-resource-factory.ts b/packages/extension/src/resources/services-resource-factory.ts index 9a506df5..b01d81c5 100644 --- a/packages/extension/src/resources/services-resource-factory.ts +++ b/packages/extension/src/resources/services-resource-factory.ts @@ -46,7 +46,7 @@ export class ServicesResourceFactory extends ResourceFactoryBase implements Reso ], }); this.setInformer({ - createInformer: this.createInformer, + createInformer: this.createInformer.bind(this), }); this.setDeleteObject(this.deleteService); } From 30065b1d331cdd8245d340d6ee56c41baa9fdc0c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Oct 2025 11:51:55 +0100 Subject: [PATCH 04/66] build(deps-dev): Bump @eslint/compat in the eslint group (#410) Bumps the eslint group with 1 update: [@eslint/compat](https://github.com/eslint/rewrite/tree/HEAD/packages/compat). Updates `@eslint/compat` from 1.4.0 to 1.4.1 - [Release notes](https://github.com/eslint/rewrite/releases) - [Changelog](https://github.com/eslint/rewrite/blob/main/packages/compat/CHANGELOG.md) - [Commits](https://github.com/eslint/rewrite/commits/compat-v1.4.1/packages/compat) --- updated-dependencies: - dependency-name: "@eslint/compat" dependency-version: 1.4.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Adameska --- package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index b939d649..b83bcb64 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "typecheck": "pnpm run typecheck:rpc && pnpm run typecheck:channels && pnpm run typecheck:webview && pnpm run typecheck:extension" }, "devDependencies": { - "@eslint/compat": "^1.3.2", + "@eslint/compat": "^1.4.1", "@typescript-eslint/eslint-plugin": "^8.46.1", "@typescript-eslint/parser": "^8.30.1", "@vitest/coverage-v8": "^3.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c81f90ee..a49a13d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,8 +16,8 @@ importers: version: 5.0.0(ws@8.18.3) devDependencies: '@eslint/compat': - specifier: ^1.3.2 - version: 1.4.0(eslint@9.38.0(jiti@2.6.1)) + specifier: ^1.4.1 + version: 1.4.1(eslint@9.38.0(jiti@2.6.1)) '@typescript-eslint/eslint-plugin': specifier: ^8.46.1 version: 8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) @@ -605,8 +605,8 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/compat@1.4.0': - resolution: {integrity: sha512-DEzm5dKeDBPm3r08Ixli/0cmxr8LkRdwxMRUIJBlSCpAwSrvFEJpVBzV+66JhDxiaqKxnRzCXhtiMiczF7Hglg==} + '@eslint/compat@1.4.1': + resolution: {integrity: sha512-cfO82V9zxxGBxcQDr1lfaYB7wykTa0b00mGa36FrJl7iTFd0Z2cHfEYuxcBRP/iNijCsWsEkA+jzT8hGYmv33w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.40 || 9 @@ -626,6 +626,10 @@ packages: resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4377,9 +4381,9 @@ snapshots: '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.4.0(eslint@9.38.0(jiti@2.6.1))': + '@eslint/compat@1.4.1(eslint@9.38.0(jiti@2.6.1))': dependencies: - '@eslint/core': 0.16.0 + '@eslint/core': 0.17.0 optionalDependencies: eslint: 9.38.0(jiti@2.6.1) @@ -4399,6 +4403,10 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 From 469e445913084984bd8bfbfb4af535a9ca63f756 Mon Sep 17 00:00:00 2001 From: David Hettinger Date: Mon, 3 Nov 2025 16:04:12 -0600 Subject: [PATCH 05/66] feat: Support ctrl+f keybinding in terminal windows and allow close Added close button and improved search controls. Signed-off-by: David Hettinger Signed-off-by: Adameska --- .../terminal/TerminalSearchControls.svelte | 117 +++++++++++++----- 1 file changed, 84 insertions(+), 33 deletions(-) diff --git a/packages/webview/src/component/terminal/TerminalSearchControls.svelte b/packages/webview/src/component/terminal/TerminalSearchControls.svelte index f1d0b86a..8652c875 100644 --- a/packages/webview/src/component/terminal/TerminalSearchControls.svelte +++ b/packages/webview/src/component/terminal/TerminalSearchControls.svelte @@ -1,5 +1,5 @@ -
-
- -
-
- - + +{#if showSearch} +
+ {#if searchTerm && !hasMatches} + + No results + + {/if} +
+ +
+
+ + + +
-
+{/if} From 38f7d50ce6fd05717489c753ce21b70ab3627c4b Mon Sep 17 00:00:00 2001 From: David Hettinger Date: Mon, 3 Nov 2025 16:04:38 -0600 Subject: [PATCH 06/66] Add search functionality to TerminalWindow component Signed-off-by: David Hettinger Signed-off-by: Adameska --- packages/webview/src/component/pods/PodLogs.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webview/src/component/pods/PodLogs.svelte b/packages/webview/src/component/pods/PodLogs.svelte index dd17d026..144ba201 100644 --- a/packages/webview/src/component/pods/PodLogs.svelte +++ b/packages/webview/src/component/pods/PodLogs.svelte @@ -104,5 +104,5 @@ onDestroy(() => { class:invisible={noLogs === true} class:h-0={noLogs === true} class:h-full={noLogs === false}> - +
From 1e1c652a7970220af47fc4b6fe7c1156d5a3a3d7 Mon Sep 17 00:00:00 2001 From: David Hettinger Date: Thu, 13 Nov 2025 09:31:54 -0600 Subject: [PATCH 07/66] Switch to command f for mac Signed-off-by: David Hettinger Signed-off-by: Adameska --- .../terminal/TerminalSearchControls.svelte | 165 ++++++++++-------- 1 file changed, 91 insertions(+), 74 deletions(-) diff --git a/packages/webview/src/component/terminal/TerminalSearchControls.svelte b/packages/webview/src/component/terminal/TerminalSearchControls.svelte index 8652c875..9e526664 100644 --- a/packages/webview/src/component/terminal/TerminalSearchControls.svelte +++ b/packages/webview/src/component/terminal/TerminalSearchControls.svelte @@ -1,96 +1,113 @@ From ac50b4bb8af66fc57485dd390a37331bef398cf8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Oct 2025 16:26:08 +0000 Subject: [PATCH 08/66] build(deps-dev): Bump svelte from 5.43.0 to 5.43.2 Bumps [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte) from 5.43.0 to 5.43.2. - [Release notes](https://github.com/sveltejs/svelte/releases) - [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md) - [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.43.2/packages/svelte) --- updated-dependencies: - dependency-name: svelte dependency-version: 5.43.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: Adameska --- package.json | 2 +- pnpm-lock.yaml | 106 ++++++++++++++++++++++++------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index b83bcb64..d5522b72 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "node-gyp": "^11.2.0", "prettier": "^3.6.1", "prettier-plugin-svelte": "^3.3.3", - "svelte": "5.43.0", + "svelte": "5.43.2", "svelte-check": "^4.3.1", "svelte-eslint-parser": "^1.3.0", "typescript": "5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a49a13d8..9fdbf05a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,7 +29,7 @@ importers: version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) '@vitest/eslint-plugin': specifier: ^1.3.17 - version: 1.3.26(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) + version: 1.4.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) @@ -71,7 +71,7 @@ importers: version: 3.0.5(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-svelte: specifier: ^3.12.3 - version: 3.12.5(eslint@9.38.0(jiti@2.6.1))(svelte@5.43.0) + version: 3.13.0(eslint@9.38.0(jiti@2.6.1))(svelte@5.43.2) eslint-plugin-unicorn: specifier: ^62.0.0 version: 62.0.0(eslint@9.38.0(jiti@2.6.1)) @@ -83,16 +83,16 @@ importers: version: 3.6.2 prettier-plugin-svelte: specifier: ^3.3.3 - version: 3.4.0(prettier@3.6.2)(svelte@5.43.0) + version: 3.4.0(prettier@3.6.2)(svelte@5.43.2) svelte: - specifier: 5.43.0 - version: 5.43.0 + specifier: 5.43.2 + version: 5.43.2 svelte-check: specifier: ^4.3.1 - version: 4.3.3(picomatch@4.0.3)(svelte@5.43.0)(typescript@5.9.3) + version: 4.3.3(picomatch@4.0.3)(svelte@5.43.2)(typescript@5.9.3) svelte-eslint-parser: specifier: ^1.3.0 - version: 1.4.0(svelte@5.43.0) + version: 1.4.0(svelte@5.43.2) typescript: specifier: 5.9.3 version: 5.9.3 @@ -219,7 +219,7 @@ importers: version: 2.30.1 svelte-preprocess: specifier: ^6.0.3 - version: 6.0.3(postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1))(postcss@8.5.6)(svelte@5.43.0)(typescript@5.9.3) + version: 6.0.3(postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1))(postcss@8.5.6)(svelte@5.43.2)(typescript@5.9.3) tinro: specifier: ^0.6.12 version: 0.6.12 @@ -247,13 +247,13 @@ importers: version: link:../rpc '@podman-desktop/ui-svelte': specifier: 1.22.1 - version: 1.22.1(svelte-fa@4.0.4(svelte@5.43.0))(svelte@5.43.0) + version: 1.22.1(svelte-fa@4.0.4(svelte@5.43.2))(svelte@5.43.2) '@podman-desktop/webview-api': specifier: 1.22.1 version: 1.22.1 '@sveltejs/vite-plugin-svelte': specifier: ^6 - version: 6.2.1(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) + version: 6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) '@tailwindcss/typography': specifier: ^0.5.18 version: 0.5.19(tailwindcss@4.1.16) @@ -268,7 +268,7 @@ importers: version: 6.9.1 '@testing-library/svelte': specifier: ^5.2.7 - version: 5.2.8(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) + version: 5.2.8(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) '@testing-library/user-event': specifier: ^14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) @@ -313,19 +313,19 @@ importers: version: 3.6.2 prettier-plugin-svelte: specifier: ^3.3.3 - version: 3.4.0(prettier@3.6.2)(svelte@5.43.0) + version: 3.4.0(prettier@3.6.2)(svelte@5.43.2) reflect-metadata: specifier: ^0.2.2 version: 0.2.2 svelte: specifier: ^5 - version: 5.43.0 + version: 5.43.2 svelte-fa: specifier: ^4.0.3 - version: 4.0.4(svelte@5.43.0) + version: 4.0.4(svelte@5.43.2) svelte-markdown: specifier: ^0.4.1 - version: 0.4.1(svelte@5.43.0) + version: 0.4.1(svelte@5.43.2) tailwindcss: specifier: ^4 version: 4.1.16 @@ -1472,8 +1472,8 @@ packages: '@vitest/browser': optional: true - '@vitest/eslint-plugin@1.3.26': - resolution: {integrity: sha512-oP+Vyqgp+kLuMagG0tRkcT7e2tUoE+XWgti1OFxqdTpmMlSZJ6BWSC3rv8vzhtDXReXNyAJI1eojuc7N0QqbNQ==} + '@vitest/eslint-plugin@1.4.0': + resolution: {integrity: sha512-TMzJ0Vqdsc71stblzI0ZdqSnt6Bp4mJ+amD3Hv3qhKK82hBUnznYfnLwA80gdGfe5V24ysndMOoSGrol6fyvbA==} engines: {node: '>=18'} peerDependencies: eslint: '>=8.57.0' @@ -2219,8 +2219,8 @@ packages: peerDependencies: eslint: ^8.0.0 || ^9.0.0 - eslint-plugin-svelte@3.12.5: - resolution: {integrity: sha512-4KRG84eAHQfYd9OjZ1K7sCHy0nox+9KwT+s5WCCku3jTim5RV4tVENob274nCwIaApXsYPKAUAZFBxKZ3Wyfjw==} + eslint-plugin-svelte@3.13.0: + resolution: {integrity: sha512-2ohCCQJJTNbIpQCSDSTWj+FN0OVfPmSO03lmSNT7ytqMaWF6kpT86LdzDqtm4sh7TVPl/OEWJ/d7R87bXP2Vjg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.1 || ^9.0.0 @@ -2272,8 +2272,8 @@ packages: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - esrap@2.1.1: - resolution: {integrity: sha512-ebTT9B6lOtZGMgJ3o5r12wBacHctG7oEWazIda8UlPfA3HD/Wrv8FdXoVo73vzdpwCxNyXjPauyN2bbJzMkB9A==} + esrap@2.1.2: + resolution: {integrity: sha512-DgvlIQeowRNyvLPWW4PT7Gu13WznY288Du086E751mwwbsgr29ytBiYeLzAGIo0qk3Ujob0SDk8TiSaM5WQzNg==} esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} @@ -3758,8 +3758,8 @@ packages: typescript: optional: true - svelte@5.43.0: - resolution: {integrity: sha512-1sRxVbgJAB+UGzwkc3GUoiBSzEOf0jqzccMaVoI2+pI+kASUe9qubslxace8+Mzhqw19k4syTA5niCIJwfXpOA==} + svelte@5.43.2: + resolution: {integrity: sha512-ro1umEzX8rT5JpCmlf0PPv7ncD8MdVob9e18bhwqTKNoLjS8kDvhVpaoYVPc+qMwDAOfcwJtyY7ZFSDbOaNPgA==} engines: {node: '>=18'} symbol-tree@3.2.4: @@ -4693,7 +4693,7 @@ snapshots: '@podman-desktop/api@1.23.0-next.202510141447-e1ab0ef8faf': {} - '@podman-desktop/ui-svelte@1.22.1(svelte-fa@4.0.4(svelte@5.43.0))(svelte@5.43.0)': + '@podman-desktop/ui-svelte@1.22.1(svelte-fa@4.0.4(svelte@5.43.2))(svelte@5.43.2)': dependencies: '@fortawesome/fontawesome-free': 7.1.0 '@fortawesome/free-brands-svg-icons': 7.1.0 @@ -4701,8 +4701,8 @@ snapshots: '@fortawesome/free-solid-svg-icons': 7.1.0 humanize-duration: 3.33.1 moment: 2.30.1 - svelte: 5.43.0 - svelte-fa: 4.0.4(svelte@5.43.0) + svelte: 5.43.2 + svelte-fa: 4.0.4(svelte@5.43.2) '@podman-desktop/webview-api@1.22.1': {} @@ -4825,22 +4825,22 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/vite-plugin-svelte-inspector@5.0.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)))(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': + '@sveltejs/vite-plugin-svelte-inspector@5.0.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)))(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) debug: 4.4.3 - svelte: 5.43.0 + svelte: 5.43.2 vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': + '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 5.0.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)))(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) + '@sveltejs/vite-plugin-svelte-inspector': 5.0.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)))(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) debug: 4.4.1 deepmerge: 4.3.1 magic-string: 0.30.17 - svelte: 5.43.0 + svelte: 5.43.2 vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) vitefu: 1.1.1(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)) transitivePeerDependencies: @@ -4939,10 +4939,10 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/svelte@5.2.8(svelte@5.43.0)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': + '@testing-library/svelte@5.2.8(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: '@testing-library/dom': 10.4.1 - svelte: 5.43.0 + svelte: 5.43.2 optionalDependencies: vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) @@ -5318,7 +5318,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.3.26(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': + '@vitest/eslint-plugin@1.4.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: '@typescript-eslint/scope-manager': 8.46.1 '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) @@ -6229,7 +6229,7 @@ snapshots: semver: 7.7.2 typescript: 5.9.3 - eslint-plugin-svelte@3.12.5(eslint@9.38.0(jiti@2.6.1))(svelte@5.43.0): + eslint-plugin-svelte@3.13.0(eslint@9.38.0(jiti@2.6.1))(svelte@5.43.2): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) '@jridgewell/sourcemap-codec': 1.5.5 @@ -6241,9 +6241,9 @@ snapshots: postcss-load-config: 3.1.4(postcss@8.5.6) postcss-safe-parser: 7.0.1(postcss@8.5.6) semver: 7.7.2 - svelte-eslint-parser: 1.4.0(svelte@5.43.0) + svelte-eslint-parser: 1.4.0(svelte@5.43.2) optionalDependencies: - svelte: 5.43.0 + svelte: 5.43.2 transitivePeerDependencies: - ts-node @@ -6336,7 +6336,7 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.1.1: + esrap@2.1.2: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -7436,10 +7436,10 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.43.0): + prettier-plugin-svelte@3.4.0(prettier@3.6.2)(svelte@5.43.2): dependencies: prettier: 3.6.2 - svelte: 5.43.0 + svelte: 5.43.2 prettier@3.6.2: {} @@ -7807,19 +7807,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.3.3(picomatch@4.0.3)(svelte@5.43.0)(typescript@5.9.3): + svelte-check@4.3.3(picomatch@4.0.3)(svelte@5.43.2)(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.29 chokidar: 4.0.3 fdir: 6.4.6(picomatch@4.0.3) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.43.0 + svelte: 5.43.2 typescript: 5.9.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.4.0(svelte@5.43.0): + svelte-eslint-parser@1.4.0(svelte@5.43.2): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -7828,27 +7828,27 @@ snapshots: postcss-scss: 4.0.9(postcss@8.5.6) postcss-selector-parser: 7.1.0 optionalDependencies: - svelte: 5.43.0 + svelte: 5.43.2 - svelte-fa@4.0.4(svelte@5.43.0): + svelte-fa@4.0.4(svelte@5.43.2): dependencies: - svelte: 5.43.0 + svelte: 5.43.2 - svelte-markdown@0.4.1(svelte@5.43.0): + svelte-markdown@0.4.1(svelte@5.43.2): dependencies: '@types/marked': 5.0.2 marked: 5.1.2 - svelte: 5.43.0 + svelte: 5.43.2 - svelte-preprocess@6.0.3(postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1))(postcss@8.5.6)(svelte@5.43.0)(typescript@5.9.3): + svelte-preprocess@6.0.3(postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1))(postcss@8.5.6)(svelte@5.43.2)(typescript@5.9.3): dependencies: - svelte: 5.43.0 + svelte: 5.43.2 optionalDependencies: postcss: 8.5.6 postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1) typescript: 5.9.3 - svelte@5.43.0: + svelte@5.43.2: dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -7859,7 +7859,7 @@ snapshots: axobject-query: 4.1.0 clsx: 2.1.1 esm-env: 1.2.2 - esrap: 2.1.1 + esrap: 2.1.2 is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 From 307bccb6eb8e326a780a71008b5e6574e110a9db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 07:12:28 +0100 Subject: [PATCH 09/66] build(deps-dev): Bump jsdom from 27.0.1 to 27.1.0 (#419) Bumps [jsdom](https://github.com/jsdom/jsdom) from 27.0.1 to 27.1.0. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md) - [Commits](https://github.com/jsdom/jsdom/compare/27.0.1...27.1.0) --- updated-dependencies: - dependency-name: jsdom dependency-version: 27.1.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Adameska --- packages/webview/package.json | 2 +- pnpm-lock.yaml | 101 ++++++++++++++++------------------ 2 files changed, 48 insertions(+), 55 deletions(-) diff --git a/packages/webview/package.json b/packages/webview/package.json index 2248ad0d..f270da4f 100644 --- a/packages/webview/package.json +++ b/packages/webview/package.json @@ -48,7 +48,7 @@ "@xterm/addon-serialize": "^0.13.0", "@xterm/xterm": "^5.5.0", "humanize-duration": "^3.33.0", - "jsdom": "^27.0.0", + "jsdom": "^27.1.0", "micromark": "^4.0.2", "monaco-editor": "^0.54.0", "prettier": "^3.6.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9fdbf05a..99c999c2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,10 +26,10 @@ importers: version: 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) '@vitest/coverage-v8': specifier: ^3.2.2 - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1)) '@vitest/eslint-plugin': specifier: ^1.3.17 - version: 1.4.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) + version: 1.4.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1)) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) @@ -104,7 +104,7 @@ importers: version: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) vitest: specifier: ^3.1.2 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1) packages/channels: devDependencies: @@ -156,7 +156,7 @@ importers: version: 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) '@vitest/coverage-v8': specifier: ^3.2.2 - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1)) eslint: specifier: ^9.37.0 version: 9.38.0(jiti@2.6.1) @@ -198,7 +198,7 @@ importers: version: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) vitest: specifier: ^3.1 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1) packages/rpc: devDependencies: @@ -268,7 +268,7 @@ importers: version: 6.9.1 '@testing-library/svelte': specifier: ^5.2.7 - version: 5.2.8(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1)) + version: 5.2.8(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1)) '@testing-library/user-event': specifier: ^14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) @@ -300,8 +300,8 @@ importers: specifier: ^3.33.0 version: 3.33.1 jsdom: - specifier: ^27.0.0 - version: 27.0.1(postcss@8.5.6) + specifier: ^27.1.0 + version: 27.1.0 micromark: specifier: ^4.0.2 version: 4.0.2 @@ -334,10 +334,13 @@ importers: version: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) vitest: specifier: ^3 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1) packages: + '@acemir/cssom@0.9.19': + resolution: {integrity: sha512-Pp2gAQXPZ2o7lt4j0IMwNRXqQ3pagxtDj5wctL5U2Lz4oV0ocDNlkgx4DpxfyKav4S/bePuI+SMqcBSUHLy9kg==} + '@adobe/css-tools@4.4.4': resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} @@ -348,8 +351,8 @@ packages: '@asamuzakjp/css-color@4.0.5': resolution: {integrity: sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==} - '@asamuzakjp/dom-selector@6.7.2': - resolution: {integrity: sha512-ccKogJI+0aiDhOahdjANIc9SDixSud1gbwdVrhn7kMopAtLXqsz9MKmQQtIl6Y5aC2IYq+j4dz/oedL2AVMmVQ==} + '@asamuzakjp/dom-selector@6.7.3': + resolution: {integrity: sha512-kiGFeY+Hxf5KbPpjRLf+ffWbkos1aGo8MBfd91oxS3O57RgU3XhZrt/6UzoVF9VMpWbC3v87SRc9jxGrc9qHtQ==} '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} @@ -420,11 +423,9 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-syntax-patches-for-csstree@1.0.14': - resolution: {integrity: sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==} + '@csstools/css-syntax-patches-for-csstree@1.0.15': + resolution: {integrity: sha512-q0p6zkVq2lJnmzZVPR33doA51G7YOja+FBvRdp5ISIthL0MtFCgYHHhR563z9WFGxcOn0WfjSkPDJ5Qig3H3Sw==} engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 '@csstools/css-tokenizer@3.0.4': resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} @@ -1906,8 +1907,8 @@ packages: engines: {node: '>=4'} hasBin: true - cssstyle@5.3.1: - resolution: {integrity: sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ==} + cssstyle@5.3.2: + resolution: {integrity: sha512-zDMqXh8Vs1CdRYZQ2M633m/SFgcjlu8RB8b/1h82i+6vpArF507NSYIWJHGlJaTWoS+imcnctmEz43txhbVkOw==} engines: {node: '>=20'} data-urls@6.0.0: @@ -2747,9 +2748,9 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsdom@27.0.1: - resolution: {integrity: sha512-SNSQteBL1IlV2zqhwwolaG9CwhIhTvVHWg3kTss/cLE7H/X4644mtPQqYvCfsSrGQWt9hSZcgOXX8bOZaMN+kA==} - engines: {node: '>=20'} + jsdom@27.1.0: + resolution: {integrity: sha512-Pcfm3eZ+eO4JdZCXthW9tCDT3nF4K+9dmeZ+5X39n+Kqz0DDIABRP5CAEOHRFZk8RGuC2efksTJxrjp8EXCunQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: @@ -3468,9 +3469,6 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rrweb-cssom@0.8.0: - resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -3828,11 +3826,11 @@ packages: resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} engines: {node: '>=14.0.0'} - tldts-core@7.0.14: - resolution: {integrity: sha512-viZGNK6+NdluOJWwTO9olaugx0bkKhscIdriQQ+lNNhwitIKvb+SvhbYgnCz6j9p7dX3cJntt4agQAKMXLjJ5g==} + tldts-core@7.0.17: + resolution: {integrity: sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==} - tldts@7.0.14: - resolution: {integrity: sha512-lMNHE4aSI3LlkMUMicTmAG3tkkitjOQGDTFboPJwAg2kJXKP1ryWEyqujktg5qhrFZOkk5YFzgkxg3jErE+i5w==} + tldts@7.0.17: + resolution: {integrity: sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==} hasBin: true to-regex-range@5.0.1: @@ -4195,6 +4193,8 @@ packages: snapshots: + '@acemir/cssom@0.9.19': {} + '@adobe/css-tools@4.4.4': {} '@ampproject/remapping@2.3.0': @@ -4210,7 +4210,7 @@ snapshots: '@csstools/css-tokenizer': 3.0.4 lru-cache: 11.2.2 - '@asamuzakjp/dom-selector@6.7.2': + '@asamuzakjp/dom-selector@6.7.3': dependencies: '@asamuzakjp/nwsapi': 2.3.9 bidi-js: 1.0.3 @@ -4274,9 +4274,7 @@ snapshots: dependencies: '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-syntax-patches-for-csstree@1.0.14(postcss@8.5.6)': - dependencies: - postcss: 8.5.6 + '@csstools/css-syntax-patches-for-csstree@1.0.15': {} '@csstools/css-tokenizer@3.0.4': {} @@ -4939,13 +4937,13 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/svelte@5.2.8(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': + '@testing-library/svelte@5.2.8(svelte@5.43.2)(vite@7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: '@testing-library/dom': 10.4.1 svelte: 5.43.2 optionalDependencies: vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1) '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: @@ -5299,7 +5297,7 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.7.13': optional: true - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -5314,18 +5312,18 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.4.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1))': + '@vitest/eslint-plugin@1.4.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1))': dependencies: '@typescript-eslint/scope-manager': 8.46.1 '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) eslint: 9.38.0(jiti@2.6.1) optionalDependencies: typescript: 5.9.3 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -5785,13 +5783,11 @@ snapshots: cssesc@3.0.0: {} - cssstyle@5.3.1(postcss@8.5.6): + cssstyle@5.3.2: dependencies: '@asamuzakjp/css-color': 4.0.5 - '@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.6) + '@csstools/css-syntax-patches-for-csstree': 1.0.15 css-tree: 3.1.0 - transitivePeerDependencies: - - postcss data-urls@6.0.0: dependencies: @@ -6801,10 +6797,11 @@ snapshots: dependencies: argparse: 2.0.1 - jsdom@27.0.1(postcss@8.5.6): + jsdom@27.1.0: dependencies: - '@asamuzakjp/dom-selector': 6.7.2 - cssstyle: 5.3.1(postcss@8.5.6) + '@acemir/cssom': 0.9.19 + '@asamuzakjp/dom-selector': 6.7.3 + cssstyle: 5.3.2 data-urls: 6.0.0 decimal.js: 10.6.0 html-encoding-sniffer: 4.0.0 @@ -6812,7 +6809,6 @@ snapshots: https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 parse5: 8.0.0 - rrweb-cssom: 0.8.0 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.0 @@ -6825,7 +6821,6 @@ snapshots: xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil - - postcss - supports-color - utf-8-validate @@ -7569,8 +7564,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.52.5 fsevents: 2.3.3 - rrweb-cssom@0.8.0: {} - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -7942,11 +7935,11 @@ snapshots: tinyspy@4.0.3: {} - tldts-core@7.0.14: {} + tldts-core@7.0.17: {} - tldts@7.0.14: + tldts@7.0.17: dependencies: - tldts-core: 7.0.14 + tldts-core: 7.0.17 to-regex-range@5.0.1: dependencies: @@ -7954,7 +7947,7 @@ snapshots: tough-cookie@6.0.0: dependencies: - tldts: 7.0.14 + tldts: 7.0.17 tr46@0.0.3: {} @@ -8171,7 +8164,7 @@ snapshots: optionalDependencies: vite: 7.1.12(@types/node@24.9.2)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1) - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.0.1(postcss@8.5.6))(lightningcss@1.30.2)(yaml@2.8.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(jiti@2.6.1)(jsdom@27.1.0)(lightningcss@1.30.2)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 @@ -8199,7 +8192,7 @@ snapshots: optionalDependencies: '@types/debug': 4.1.12 '@types/node': 24.9.2 - jsdom: 27.0.1(postcss@8.5.6) + jsdom: 27.1.0 transitivePeerDependencies: - jiti - less From 360a60a56124b2f264a89eb1aa69b0956229ae9b Mon Sep 17 00:00:00 2001 From: Philippe Martin Date: Mon, 3 Nov 2025 08:28:33 +0100 Subject: [PATCH 10/66] refactor: use Disposable from podman desktop api (#421) Signed-off-by: Philippe Martin Signed-off-by: Adameska --- __mocks__/@podman-desktop/api.js | 5 ++- packages/channels/src/index.ts | 4 +- packages/channels/src/types/disposable.ts | 37 ------------------- .../src/manager/contexts-manager.spec.ts | 3 +- .../src/manager/kubernetes-providers.spec.ts | 3 +- .../port-forward/port-forward-connection.ts | 2 +- .../src/port-forward/port-forward-service.ts | 3 +- .../src/component/pods/PodTerminal.spec.ts | 4 +- .../src/component/pods/PodTerminal.svelte | 22 ++++++----- packages/webview/src/stream/pod-logs.ts | 11 +++--- packages/webview/src/stream/pod-terminals.ts | 15 +++----- .../stream/util/fake-stream-object.svelte.ts | 4 +- 12 files changed, 38 insertions(+), 75 deletions(-) diff --git a/__mocks__/@podman-desktop/api.js b/__mocks__/@podman-desktop/api.js index 277c7a6d..5f703e42 100644 --- a/__mocks__/@podman-desktop/api.js +++ b/__mocks__/@podman-desktop/api.js @@ -80,7 +80,10 @@ const plugin = { kubernetes: { onDidUpdateKubeconfig: vi.fn(), getKubeconfig: vi.fn(), - } + }, + Disposable: { + create: (func) => ({ dispose: func }), + }, }; module.exports = plugin; diff --git a/packages/channels/src/index.ts b/packages/channels/src/index.ts index 46c0e94a..0752ef23 100644 --- a/packages/channels/src/index.ts +++ b/packages/channels/src/index.ts @@ -16,9 +16,9 @@ * SPDX-License-Identifier: Apache-2.0 ***********************************************************************/ -import { IDisposable, Disposable } from './types/disposable'; +import { IDisposable } from './types/disposable'; -export { IDisposable, Disposable }; +export { IDisposable }; export * from './interface'; export * from './model'; export * from './channels'; diff --git a/packages/channels/src/types/disposable.ts b/packages/channels/src/types/disposable.ts index 46f580df..6bf54a70 100644 --- a/packages/channels/src/types/disposable.ts +++ b/packages/channels/src/types/disposable.ts @@ -20,40 +20,3 @@ export const IDisposable = Symbol.for('IDisposable'); export interface IDisposable { dispose(): void; } - -export class Disposable implements IDisposable { - private disposable: undefined | (() => void); - - static from(...disposables: { dispose(): unknown }[]): Disposable { - return new Disposable(() => { - if (disposables) { - for (const disposable of disposables) { - if (disposable && typeof disposable.dispose === 'function') { - disposable.dispose(); - } - } - } - }); - } - - constructor(func: () => void) { - this.disposable = func; - } - /** - * Dispose this object. - */ - dispose(): void { - if (this.disposable) { - this.disposable(); - this.disposable = undefined; - } - } - - static create(func: () => void): Disposable { - return new Disposable(func); - } - - static noop(): Disposable { - return Disposable.from(); - } -} diff --git a/packages/extension/src/manager/contexts-manager.spec.ts b/packages/extension/src/manager/contexts-manager.spec.ts index 4ea19b85..ba0440cf 100644 --- a/packages/extension/src/manager/contexts-manager.spec.ts +++ b/packages/extension/src/manager/contexts-manager.spec.ts @@ -18,7 +18,7 @@ import type { Cluster, CoreV1Event, KubernetesObject, ObjectCache, V1Status } from '@kubernetes/client-node'; import { ApiException, KubeConfig } from '@kubernetes/client-node'; -import type { Uri } from '@podman-desktop/api'; +import { type Uri, Disposable } from '@podman-desktop/api'; import { afterEach, assert, beforeEach, describe, expect, test, vi } from 'vitest'; import { kubernetes, window } from '@podman-desktop/api'; @@ -35,7 +35,6 @@ import type { ResourceFactory } from '/@/resources/resource-factory.js'; import { ResourceFactoryBase } from '/@/resources/resource-factory.js'; import type { CacheUpdatedEvent, ObjectDeletedEvent, ResourceInformer } from '/@/types/resource-informer.js'; import { vol } from 'memfs'; -import { Disposable } from '@kubernetes-dashboard/channels'; const resource4DeleteObjectMock = vi.fn(); const resource4SearchBySelectorMock = vi.fn(); diff --git a/packages/extension/src/manager/kubernetes-providers.spec.ts b/packages/extension/src/manager/kubernetes-providers.spec.ts index a60a7d7d..bb2ba45d 100644 --- a/packages/extension/src/manager/kubernetes-providers.spec.ts +++ b/packages/extension/src/manager/kubernetes-providers.spec.ts @@ -18,9 +18,8 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'; import { KubernetesProvidersManager } from '/@/manager/kubernetes-providers'; -import type { ConnectionFactory, ConnectionFactoryDetails } from '@podman-desktop/api'; +import { type ConnectionFactory, type ConnectionFactoryDetails, Disposable } from '@podman-desktop/api'; import { provider } from '@podman-desktop/api'; -import { Disposable } from '@kubernetes-dashboard/channels'; let manager: KubernetesProvidersManager; let onDidSetDisposable: Disposable; diff --git a/packages/extension/src/port-forward/port-forward-connection.ts b/packages/extension/src/port-forward/port-forward-connection.ts index 9305cafb..37b8a977 100644 --- a/packages/extension/src/port-forward/port-forward-connection.ts +++ b/packages/extension/src/port-forward/port-forward-connection.ts @@ -19,13 +19,13 @@ import net from 'node:net'; import type { KubeConfig, V1Deployment, V1Pod, V1Service } from '@kubernetes/client-node'; import { PortForward } from '@kubernetes/client-node'; +import { Disposable } from '@podman-desktop/api'; import { type ForwardConfig, type PortForwardableResource, type PortMapping, WorkloadKind, type IDisposable, - Disposable, } from '@kubernetes-dashboard/channels'; import type { ForwardConfigRequirements } from './port-forward-validation'; import type { ContextsManager } from '/@/manager/contexts-manager'; diff --git a/packages/extension/src/port-forward/port-forward-service.ts b/packages/extension/src/port-forward/port-forward-service.ts index 444d6c58..b8ff9d02 100644 --- a/packages/extension/src/port-forward/port-forward-service.ts +++ b/packages/extension/src/port-forward/port-forward-service.ts @@ -21,7 +21,6 @@ import { PortForwardConnectionService } from './port-forward-connection'; import { ForwardConfigRequirements } from './port-forward-validation'; import { ConfigManagementService, MemoryBasedStorage } from './port-forward-storage'; import { - Disposable, type IDisposable, type ForwardConfig, type ForwardOptions, @@ -31,7 +30,7 @@ import { ContextsManager } from '/@/manager/contexts-manager'; import { inject, injectable } from 'inversify'; import { Emitter, Event } from '/@/types/emitter'; import { SystemApiImpl } from '/@/manager/system-api'; -import { window } from '@podman-desktop/api'; +import { Disposable, window } from '@podman-desktop/api'; /** * Service provider for Kubernetes port forwarding. diff --git a/packages/webview/src/component/pods/PodTerminal.spec.ts b/packages/webview/src/component/pods/PodTerminal.spec.ts index c1b5cafa..0e6a6953 100644 --- a/packages/webview/src/component/pods/PodTerminal.spec.ts +++ b/packages/webview/src/component/pods/PodTerminal.spec.ts @@ -23,7 +23,7 @@ import { API_POD_TERMINALS, type PodTerminalsApi, type PodTerminalChunk, - Disposable, + type IDisposable, } from '@kubernetes-dashboard/channels'; import { StreamsMocks } from '/@/tests/stream-mocks'; import { Terminal } from '@xterm/xterm'; @@ -63,7 +63,7 @@ const terminalMock = { beforeEach(() => { vi.resetAllMocks(); vi.mocked(Terminal).mockReturnValue(terminalMock); - vi.mocked(terminalMock.onData).mockReturnValue(Disposable.create(() => {})); + vi.mocked(terminalMock.onData).mockReturnValue({ dispose: () => {} } as IDisposable); streamMocks.reset(); streamMocks.mock('streamPodTerminals', streamPodTerminalsMock); diff --git a/packages/webview/src/component/pods/PodTerminal.svelte b/packages/webview/src/component/pods/PodTerminal.svelte index 7ce89dc4..af5a4322 100644 --- a/packages/webview/src/component/pods/PodTerminal.svelte +++ b/packages/webview/src/component/pods/PodTerminal.svelte @@ -8,7 +8,7 @@ import { getTerminalTheme } from '/@/component/terminal/terminal-theme'; import { FitAddon } from '@xterm/addon-fit'; import { SerializeAddon } from '@xterm/addon-serialize'; import { Remote } from '/@/remote/remote'; -import { API_POD_TERMINALS, Disposable } from '@kubernetes-dashboard/channels'; +import { API_POD_TERMINALS } from '@kubernetes-dashboard/channels'; interface Props { object: V1Pod; @@ -47,7 +47,7 @@ async function initializeNewTerminal( containerName: string, ): Promise { if (!container) { - return Disposable.create(() => {}); + return { dispose: () => {} } as IDisposable; } shellTerminal = new Terminal({ fontSize: 10, @@ -86,14 +86,16 @@ async function initializeNewTerminal( window.addEventListener('resize', onResize); await resize(); - return Disposable.create(() => { - const terminalContent = serializeAddon.serialize(); - podTerminalsApi.saveState(podName, namespace, containerName, terminalContent).catch(console.error); - window.removeEventListener('resize', onResize); - shellTerminal.dispose(); - fitAddon.dispose(); - serializeAddon.dispose(); - }); + return { + dispose: () => { + const terminalContent = serializeAddon.serialize(); + podTerminalsApi.saveState(podName, namespace, containerName, terminalContent).catch(console.error); + window.removeEventListener('resize', onResize); + shellTerminal.dispose(); + fitAddon.dispose(); + serializeAddon.dispose(); + }, + } as IDisposable; } onDestroy(() => { diff --git a/packages/webview/src/stream/pod-logs.ts b/packages/webview/src/stream/pod-logs.ts index 1fce3849..8266451d 100644 --- a/packages/webview/src/stream/pod-logs.ts +++ b/packages/webview/src/stream/pod-logs.ts @@ -23,7 +23,6 @@ import { POD_LOGS, type PodLogsApi, type PodLogsChunk, - Disposable, type IDisposable, } from '@kubernetes-dashboard/channels'; import { RpcBrowser } from '@kubernetes-dashboard/rpc'; @@ -51,9 +50,11 @@ export class StreamPodLogs implements StreamObject { callback(chunk); }); await this.#podLogsApi.streamPodLogs(podName, namespace, containerName); - return Disposable.create(() => { - disposable.dispose(); - this.#podLogsApi.stopStreamPodLogs(podName, namespace, containerName).catch(console.error); - }); + return { + dispose: () => { + disposable.dispose(); + this.#podLogsApi.stopStreamPodLogs(podName, namespace, containerName).catch(console.error); + }, + } as IDisposable; } } diff --git a/packages/webview/src/stream/pod-terminals.ts b/packages/webview/src/stream/pod-terminals.ts index 880ff1eb..575e3f30 100644 --- a/packages/webview/src/stream/pod-terminals.ts +++ b/packages/webview/src/stream/pod-terminals.ts @@ -20,12 +20,7 @@ import { inject } from 'inversify'; import { Remote } from '/@/remote/remote'; import { API_POD_TERMINALS, POD_TERMINAL_DATA } from '@kubernetes-dashboard/channels'; import { RpcBrowser } from '@kubernetes-dashboard/rpc'; -import { - Disposable, - type IDisposable, - type PodTerminalsApi, - type PodTerminalChunk, -} from '@kubernetes-dashboard/channels'; +import { type IDisposable, type PodTerminalsApi, type PodTerminalChunk } from '@kubernetes-dashboard/channels'; import type { StreamObject } from './util/stream-object'; export class StreamPodTerminals implements StreamObject { @@ -50,8 +45,10 @@ export class StreamPodTerminals implements StreamObject { callback(chunk); }); await this.#podTerminalsApi.startTerminal(podName, namespace, containerName); - return Disposable.create(() => { - disposable.dispose(); - }); + return { + dispose: () => { + disposable.dispose(); + }, + } as IDisposable; } } diff --git a/packages/webview/src/stream/util/fake-stream-object.svelte.ts b/packages/webview/src/stream/util/fake-stream-object.svelte.ts index b7cd719f..a51b5fda 100644 --- a/packages/webview/src/stream/util/fake-stream-object.svelte.ts +++ b/packages/webview/src/stream/util/fake-stream-object.svelte.ts @@ -17,7 +17,7 @@ ***********************************************************************/ import type { StreamObject } from './stream-object'; -import { Disposable, type IDisposable } from '@kubernetes-dashboard/channels'; +import { type IDisposable } from '@kubernetes-dashboard/channels'; /** * Fake StreamObject for tests @@ -31,7 +31,7 @@ export class FakeStreamObject implements StreamObject { callback: (data: T) => void, ): Promise { this.#callback = callback; - return Disposable.create(() => {}); + return { dispose: () => {} } as IDisposable; } sendData(data: T): void { From f77472c01d0764e138580dbf51af33cbe925d394 Mon Sep 17 00:00:00 2001 From: Philippe Martin Date: Mon, 3 Nov 2025 09:09:53 +0100 Subject: [PATCH 11/66] chore: use projects in vitest config (#423) Signed-off-by: Philippe Martin Signed-off-by: Adameska --- vitest.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vitest.config.ts b/vitest.config.ts index bcdd29cf..13e52171 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -19,7 +19,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { - workspace: ['packages/*/vitest.config.ts'], + projects: ['packages/*/vitest.config.ts'], // use GitHub action reporters when running in CI reporters: process.env.GITHUB_ACTIONS?['github-actions', 'default']:['default'], coverage: { From 6c594fdf85379f23a31b27fb73779fa121deb7f2 Mon Sep 17 00:00:00 2001 From: Philippe Martin Date: Mon, 3 Nov 2025 10:01:14 +0100 Subject: [PATCH 12/66] ci: run svelte:check as part of ci checks (#424) Signed-off-by: Philippe Martin Signed-off-by: Adameska --- .github/workflows/pr-check.yaml | 3 +++ .../src/component/objects/KubernetesObjectDetailsSpec.svelte | 1 + 2 files changed, 4 insertions(+) diff --git a/.github/workflows/pr-check.yaml b/.github/workflows/pr-check.yaml index e5742496..db7df289 100644 --- a/.github/workflows/pr-check.yaml +++ b/.github/workflows/pr-check.yaml @@ -60,6 +60,9 @@ jobs: - name: Run typecheck run: pnpm typecheck + - name: Run svelte check + run: pnpm svelte:check + # skip formatter on windows - name: Run formatter if: ${{ matrix.os=='ubuntu-24.04' || matrix.os=='macos-14' }} diff --git a/packages/webview/src/component/objects/KubernetesObjectDetailsSpec.svelte b/packages/webview/src/component/objects/KubernetesObjectDetailsSpec.svelte index c6f3a702..1a24af5c 100644 --- a/packages/webview/src/component/objects/KubernetesObjectDetailsSpec.svelte +++ b/packages/webview/src/component/objects/KubernetesObjectDetailsSpec.svelte @@ -6,6 +6,7 @@ import type { V1Node } from '@kubernetes/client-node'; Date: Mon, 3 Nov 2025 11:01:42 +0100 Subject: [PATCH 13/66] refactor: use tailwindcss canonical form (#422) Signed-off-by: Philippe Martin Signed-off-by: Adameska --- packages/webview/index.html | 2 +- packages/webview/src/App.svelte | 2 +- packages/webview/src/Navigation.svelte | 4 ++-- .../src/component/button/IconButton.svelte | 10 ++++----- .../configmaps-secrets/columns/Type.spec.ts | 4 ++-- .../configmaps-secrets/columns/Type.svelte | 2 +- .../connection/CheckConnection.svelte | 2 +- .../CurrentContextConnectionBadge.spec.ts | 6 ++--- .../CurrentContextConnectionBadge.svelte | 6 ++--- .../cronjobs/columns/Schedule.svelte | 2 +- .../src/component/dashboard/Dashboard.svelte | 4 ++-- .../dashboard/DashboardGuideCard.spec.ts | 6 ++--- .../dashboard/DashboardGuideCard.svelte | 6 ++--- .../dashboard/DashboardResourceCard.spec.ts | 22 +++++++++---------- .../dashboard/DashboardResourceCard.svelte | 14 ++++++------ .../dashboard/KubernetesProviderCard.svelte | 6 ++--- .../component/dashboard/NoContextPage.spec.ts | 2 +- .../component/dashboard/NoContextPage.svelte | 6 ++--- .../dashboard/NoSelectedContextPage.svelte | 8 +++---- .../deployments/columns/Conditions.spec.ts | 18 +++++++-------- .../deployments/columns/Conditions.svelte | 20 ++++++++--------- .../deployments/columns/Pods.spec.ts | 2 +- .../component/deployments/columns/Pods.svelte | 2 +- .../src/component/details/Subtitle.svelte | 2 +- .../src/component/details/Table.svelte | 2 +- .../src/component/details/Title.svelte | 2 +- .../ingresses-routes/columns/Backend.spec.ts | 8 +++---- .../ingresses-routes/columns/Backend.svelte | 2 +- .../ingresses-routes/columns/HostPath.spec.ts | 2 +- .../ingresses-routes/columns/HostPath.svelte | 2 +- .../jobs/columns/Completions.spec.ts | 2 +- .../component/jobs/columns/Completions.svelte | 2 +- .../component/jobs/columns/Conditions.spec.ts | 10 ++++----- .../component/jobs/columns/Conditions.svelte | 12 +++++----- .../webview/src/component/label/Label.spec.ts | 4 ++-- .../webview/src/component/label/Label.svelte | 4 +--- .../src/component/nodes/columns/Roles.svelte | 6 ++--- .../objects/KubernetesObjectDetails.svelte | 2 +- .../objects/NamespaceDropdown.svelte | 2 +- .../component/objects/columns/Name.spec.ts | 6 ++--- .../src/component/objects/columns/Name.svelte | 4 ++-- .../src/component/pods/PodTerminal.svelte | 2 +- .../component/pods/columns/Containers.spec.ts | 2 +- .../src/component/pods/dots/Dots.spec.ts | 20 ++++++++--------- .../webview/src/component/pods/dots/Dots.ts | 20 ++++++++--------- .../src/component/pods/dots/StatusDot.spec.ts | 20 ++++++++--------- .../src/component/pods/dots/StatusDot.svelte | 2 +- .../port-forward/columns/Name.svelte | 4 ++-- .../src/component/pvcs/columns/Mode.svelte | 10 ++++----- .../component/services/columns/Type.spec.ts | 8 +++---- .../component/services/columns/Type.svelte | 8 +++---- .../terminal/TerminalSearchControls.svelte | 10 ++++----- .../component/terminal/TerminalWindow.svelte | 2 +- 53 files changed, 168 insertions(+), 170 deletions(-) diff --git a/packages/webview/index.html b/packages/webview/index.html index 19d6c44c..a9cbc105 100644 --- a/packages/webview/index.html +++ b/packages/webview/index.html @@ -5,7 +5,7 @@ Kubernetes Dashboard Extension - +
diff --git a/packages/webview/src/App.svelte b/packages/webview/src/App.svelte index 0f205314..e70f2307 100644 --- a/packages/webview/src/App.svelte +++ b/packages/webview/src/App.svelte @@ -32,7 +32,7 @@ function waitThrottleDelay(): Promise { -
+
{#if !currentContextName} {#await waitThrottleDelay() then _} diff --git a/packages/webview/src/Navigation.svelte b/packages/webview/src/Navigation.svelte index d6189b71..37f6f4ce 100644 --- a/packages/webview/src/Navigation.svelte +++ b/packages/webview/src/Navigation.svelte @@ -16,11 +16,11 @@ const navigator = dependencyAccessor.get(Navigator);