diff --git a/common/config/rush/.pnpmfile.cjs b/common/config/rush/.pnpmfile.cjs index 7f687d02b7b..62e4429631d 100644 --- a/common/config/rush/.pnpmfile.cjs +++ b/common/config/rush/.pnpmfile.cjs @@ -60,6 +60,9 @@ module.exports = { if (pkg.dependencies['min-document']) { pkg.dependencies['min-document'] = '^2.19.1'; } + if (pkg.dependencies['js-yaml']) { + pkg.dependencies['js-yaml'] = '^4.1.1'; + } } if (pkg.devDependencies) { diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 5588c7c0fae..76a46f5374a 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -53,8 +53,8 @@ importers: specifier: ~0.4.12 version: 0.4.14 '@vscode/vsce': - specifier: ~2.21.0 - version: 2.21.1 + specifier: ^3.7.0 + version: 3.7.0 '@wso2/api-designer-core': specifier: workspace:* version: link:../api-designer-core @@ -80,8 +80,8 @@ importers: specifier: ^0.4.4 version: 0.4.4 js-yaml: - specifier: ~4.1.0 - version: 4.1.0 + specifier: ^4.1.1 + version: 4.1.1 json-schema: specifier: 0.4.0 version: 0.4.0 @@ -96,7 +96,7 @@ importers: version: 2.6.13(encoding@0.1.13) node-loader: specifier: ~2.0.0 - version: 2.0.0(webpack@5.102.1) + version: 2.0.0(webpack@5.103.0) portfinder: specifier: ^1.0.32 version: 1.0.38 @@ -121,7 +121,7 @@ importers: version: 16.18.126 '@types/vscode': specifier: ^1.81.0 - version: 1.105.0 + version: 1.106.1 '@typescript-eslint/eslint-plugin': specifier: ^6.4.1 version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) @@ -139,16 +139,16 @@ importers: version: 5.0.10 ts-loader: specifier: ^9.4.4 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: 5.8.3 version: 5.8.3 webpack: specifier: ^5.94.0 - version: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@5.1.4) + version: 5.103.0(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 - version: 5.1.4(webpack@5.102.1) + version: 5.1.4(webpack@5.103.0) ../../workspaces/api-designer/api-designer-rpc-client: dependencies: @@ -229,8 +229,8 @@ importers: specifier: workspace:* version: link:../../common-libs/ui-toolkit js-yaml: - specifier: ~4.1.0 - version: 4.1.0 + specifier: ^4.1.1 + version: 4.1.1 lodash: specifier: ~4.17.21 version: 4.17.21 @@ -285,7 +285,7 @@ importers: version: 4.14.202 '@types/node': specifier: ^20.10.6 - version: 20.19.24 + version: 20.19.25 '@types/react': specifier: 18.2.0 version: 18.2.0 @@ -303,31 +303,31 @@ importers: version: 2.4.1 css-loader: specifier: ^5.2.7 - version: 5.2.7(webpack@5.102.1) + version: 5.2.7(webpack@5.103.0) sass-loader: specifier: ^13.2.0 - version: 13.3.3(sass@1.93.3)(webpack@5.102.1) + version: 13.3.3(sass@1.94.1)(webpack@5.103.0) source-map-loader: specifier: ^4.0.1 - version: 4.0.2(webpack@5.102.1) + version: 4.0.2(webpack@5.103.0) style-loader: specifier: ^1.3.0 - version: 1.3.0(webpack@5.102.1) + version: 1.3.0(webpack@5.103.0) ts-loader: specifier: ^9.5.0 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: 5.8.3 version: 5.8.3 webpack: specifier: ^5.94.0 - version: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@5.1.4) + version: 5.103.0(webpack-cli@5.1.4) webpack-cli: specifier: ~5.1.4 - version: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.102.1) + version: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.103.0) webpack-dev-server: specifier: ^5.2.1 - version: 5.2.2(webpack-cli@5.1.4)(webpack@5.102.1) + version: 5.2.2(webpack-cli@5.1.4)(webpack@5.103.0) ../../workspaces/apk/apk-extension: devDependencies: @@ -342,7 +342,7 @@ importers: version: 18.19.130 '@types/vscode': specifier: ^1.63.0 - version: 1.105.0 + version: 1.106.1 '@typescript-eslint/eslint-plugin': specifier: ~5.48.2 version: 5.48.2(@typescript-eslint/parser@5.48.2(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) @@ -352,6 +352,9 @@ importers: '@vscode/test-electron': specifier: ^2.3.2 version: 2.5.2 + '@vscode/vsce': + specifier: ^3.7.0 + version: 3.7.0 copyfiles: specifier: ^2.4.1 version: 2.4.1 @@ -359,17 +362,14 @@ importers: specifier: ^8.32.0 version: 8.57.1 glob: - specifier: ^8.1.0 - version: 8.1.0 + specifier: ^11.1.0 + version: 11.1.0 mocha: specifier: ^10.2.0 version: 10.8.2 typescript: specifier: 5.8.3 version: 5.8.3 - vsce: - specifier: ^2.15.0 - version: 2.15.0 ../../workspaces/ballerina/ballerina-core: dependencies: @@ -427,7 +427,7 @@ importers: version: 18.2.0 '@types/vscode': specifier: ^1.83.1 - version: 1.105.0 + version: 1.106.1 '@typescript-eslint/eslint-plugin': specifier: ^8.32.1 version: 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3))(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3) @@ -448,10 +448,10 @@ importers: dependencies: '@ai-sdk/amazon-bedrock': specifier: ^3.0.25 - version: 3.0.52(zod@4.1.11) + version: 3.0.56(zod@4.1.11) '@ai-sdk/anthropic': specifier: ^2.0.20 - version: 2.0.42(zod@4.1.11) + version: 2.0.45(zod@4.1.11) '@types/lodash': specifier: ^4.14.200 version: 4.17.17 @@ -459,8 +459,8 @@ importers: specifier: ^2.5.2 version: 2.5.2 '@vscode/vsce': - specifier: ^2.22.0 - version: 2.32.0 + specifier: ^3.7.0 + version: 3.7.0 '@wso2/ballerina-core': specifier: workspace:* version: link:../ballerina-core @@ -481,7 +481,7 @@ importers: version: link:../../wso2-platform/wso2-platform-core ai: specifier: ^5.0.56 - version: 5.0.89(zod@4.1.11) + version: 5.0.93(zod@4.1.11) cors-anywhere: specifier: ^0.4.4 version: 0.4.4 @@ -495,8 +495,8 @@ importers: specifier: ^2.0.0 version: 2.0.0 glob: - specifier: ^7.2.3 - version: 7.2.3 + specifier: ^11.1.0 + version: 11.1.0 handlebars: specifier: ~4.7.8 version: 4.7.8 @@ -587,7 +587,7 @@ importers: version: 1.0.4 '@types/vscode': specifier: ^1.83.1 - version: 1.105.0 + version: 1.106.1 '@types/vscode-notebook-renderer': specifier: ~1.72.2 version: 1.72.4 @@ -616,8 +616,8 @@ importers: specifier: ^0.4.5 version: 0.4.5 js-yaml: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.1.1 + version: 4.1.1 keytar: specifier: ^7.9.0 version: 7.9.0 @@ -644,7 +644,7 @@ importers: version: 1.0.2 ts-loader: specifier: ^9.5.0 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) tslint: specifier: ^6.1.3 version: 6.1.3(typescript@5.8.3) @@ -659,13 +659,10 @@ importers: version: 5.10.0(mocha@10.8.2)(typescript@5.8.3) webpack: specifier: ^5.94.0 - version: 5.102.1(webpack-cli@6.0.1) + version: 5.103.0(webpack-cli@6.0.1) webpack-cli: specifier: ^6.0.1 - version: 6.0.1(webpack@5.102.1) - webpack-merge-and-include-globally: - specifier: ^2.3.4 - version: 2.3.4(webpack@5.102.1) + version: 6.0.1(webpack@5.103.0) yarn: specifier: ^1.22.19 version: 1.22.22 @@ -710,7 +707,7 @@ importers: version: 4.7.8 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + version: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) joi: specifier: ^17.13.3 version: 17.13.3 @@ -756,31 +753,31 @@ importers: version: 7.27.2(@babel/core@7.27.7) '@rollup/plugin-commonjs': specifier: ^28.0.3 - version: 28.0.9(rollup@4.53.1) + version: 28.0.9(rollup@4.53.2) '@rollup/plugin-json': specifier: ^6.1.0 - version: 6.1.0(rollup@4.53.1) + version: 6.1.0(rollup@4.53.2) '@rollup/plugin-node-resolve': specifier: ^16.0.1 - version: 16.0.3(rollup@4.53.1) + version: 16.0.3(rollup@4.53.2) '@storybook/addon-actions': specifier: ^6.5.16 version: 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-essentials': specifier: ^6.5.16 - version: 6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.102.1) + version: 6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.103.0) '@storybook/addon-links': specifier: ^6.5.16 version: 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/builder-webpack5': specifier: ^6.5.16 - version: 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + version: 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/manager-webpack5': specifier: ^6.5.9 - version: 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + version: 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/react': specifier: ^6.5.16 - version: 6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/webpack@5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1) + version: 6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/webpack@5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1) '@types/classnames': specifier: ^2.2.9 version: 2.3.4 @@ -810,34 +807,34 @@ importers: version: 10.0.0 '@types/webpack': specifier: ^5.28.5 - version: 5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + version: 5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) babel-loader: specifier: ^10.0.0 - version: 10.0.0(@babel/core@7.27.7)(webpack@5.102.1) + version: 10.0.0(@babel/core@7.27.7)(webpack@5.103.0) copy-webpack-plugin: specifier: ^13.0.0 - version: 13.0.1(webpack@5.102.1) + version: 13.0.1(webpack@5.103.0) copyfiles: specifier: ^2.4.1 version: 2.4.1 css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.102.1) + version: 7.1.2(webpack@5.103.0) express: specifier: ^5.1.0 version: 5.1.0 file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.102.1) + version: 6.2.0(webpack@5.103.0) fork-ts-checker-webpack-plugin: specifier: ^9.1.0 - version: 9.1.0(typescript@5.8.3)(webpack@5.102.1) + version: 9.1.0(typescript@5.8.3)(webpack@5.103.0) glob: - specifier: ^11.0.2 - version: 11.0.3 + specifier: ^11.1.0 + version: 11.1.0 react-scripts-ts: specifier: ^3.1.0 - version: 3.1.0(@swc/core@1.15.0(@swc/helpers@0.5.17))(babel-core@7.0.0-bridge.0(@babel/core@7.27.7))(babel-runtime@6.26.0)(typescript@5.8.3)(webpack-cli@6.0.1) + version: 3.1.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(babel-core@7.0.0-bridge.0(@babel/core@7.27.7))(babel-runtime@6.26.0)(typescript@5.8.3)(webpack-cli@6.0.1) react-test-renderer: specifier: ^19.1.0 version: 19.1.1(react@18.2.0) @@ -846,16 +843,16 @@ importers: version: 6.0.1 rollup: specifier: ^4.41.0 - version: 4.53.1 + version: 4.53.2 rollup-plugin-import-css: specifier: ^3.5.8 - version: 3.5.8(rollup@4.53.1) + version: 3.5.8(rollup@4.53.2) rollup-plugin-peer-deps-external: specifier: ^2.2.4 - version: 2.2.4(rollup@4.53.1) + version: 2.2.4(rollup@4.53.2) rollup-plugin-postcss: specifier: ^4.0.2 - version: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + version: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) rollup-plugin-scss: specifier: ^4.0.1 version: 4.0.1 @@ -864,19 +861,19 @@ importers: version: 2.0.0 rollup-plugin-typescript2: specifier: ^0.36.0 - version: 0.36.0(rollup@4.53.1)(typescript@5.8.3) + version: 0.36.0(rollup@4.53.2)(typescript@5.8.3) sass: specifier: ^1.89.0 - version: 1.93.3 + version: 1.94.1 sass-loader: specifier: ^16.0.5 - version: 16.0.6(sass@1.93.3)(webpack@5.102.1) + version: 16.0.6(sass@1.94.1)(webpack@5.103.0) storybook: specifier: ^8.6.14 version: 8.6.14(prettier@3.5.3) style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.102.1) + version: 4.0.0(webpack@5.103.0) stylelint: specifier: ^16.19.1 version: 16.25.0(typescript@5.8.3) @@ -885,10 +882,10 @@ importers: version: 38.0.0(stylelint@16.25.0(typescript@5.8.3)) svg-url-loader: specifier: ^8.0.0 - version: 8.0.0(webpack@5.102.1) + version: 8.0.0(webpack@5.103.0) ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -906,13 +903,13 @@ importers: version: 5.8.3 webpack: specifier: ^5.94.0 - version: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + version: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) webpack-cli: specifier: ^6.0.1 - version: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.102.1) + version: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.103.0) webpack-dev-server: specifier: ^5.2.1 - version: 5.2.2(webpack-cli@6.0.1)(webpack@5.102.1) + version: 5.2.2(webpack-cli@6.0.1)(webpack@5.103.0) ../../workspaces/ballerina/ballerina-rpc-client: dependencies: @@ -974,6 +971,18 @@ importers: ../../workspaces/ballerina/ballerina-side-panel: dependencies: + '@codemirror/autocomplete': + specifier: ~6.19.1 + version: 6.19.1 + '@codemirror/commands': + specifier: ~6.10.0 + version: 6.10.0 + '@codemirror/state': + specifier: ~6.5.2 + version: 6.5.2 + '@codemirror/view': + specifier: ~6.38.6 + version: 6.38.8 '@emotion/react': specifier: ^11.14.0 version: 11.14.0(@types/react@18.2.0)(react@18.2.0) @@ -1010,7 +1019,7 @@ importers: devDependencies: '@storybook/react': specifier: ^6.5.16 - version: 6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1) + version: 6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1) '@types/lodash': specifier: ~4.17.16 version: 4.17.17 @@ -1046,7 +1055,7 @@ importers: version: 5.0.1(react-hook-form@7.56.4(react@18.2.0)) '@tanstack/query-core': specifier: ^5.77.1 - version: 5.90.7 + version: 5.90.10 '@tanstack/react-query': specifier: 5.77.1 version: 5.77.1(react@18.2.0) @@ -1191,7 +1200,7 @@ importers: version: 2.4.1 css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.102.1) + version: 7.1.2(webpack@5.103.0) eslint: specifier: ^9.26.0 version: 9.27.0(jiti@2.6.1) @@ -1203,28 +1212,28 @@ importers: version: 0.4.24(eslint@9.27.0(jiti@2.6.1)) sass-loader: specifier: ^16.0.5 - version: 16.0.6(sass@1.93.3)(webpack@5.102.1) + version: 16.0.6(sass@1.94.1)(webpack@5.103.0) source-map-loader: specifier: ^5.0.0 - version: 5.0.0(webpack@5.102.1) + version: 5.0.0(webpack@5.103.0) style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.102.1) + version: 4.0.0(webpack@5.103.0) ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: 5.8.3 version: 5.8.3 webpack: specifier: ^5.94.0 - version: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@5.1.4) + version: 5.103.0(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 - version: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.102.1) + version: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.103.0) webpack-dev-server: specifier: ^5.2.1 - version: 5.2.2(webpack-cli@5.1.4)(webpack@5.102.1) + version: 5.2.2(webpack-cli@5.1.4)(webpack@5.103.0) ../../workspaces/ballerina/bi-diagram: dependencies: @@ -1285,7 +1294,7 @@ importers: version: 7.27.1(@babel/core@7.27.7) '@storybook/react': specifier: ^6.3.7 - version: 6.5.16(@babel/core@7.27.7)(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/webpack@5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17)))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))))(webpack-hot-middleware@2.26.1) + version: 6.5.16(@babel/core@7.27.7)(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/webpack@5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17)))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))))(webpack-hot-middleware@2.26.1) '@testing-library/dom': specifier: ~10.4.0 version: 10.4.1 @@ -1324,7 +1333,7 @@ importers: version: 3.0.0 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + version: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) jest-environment-jsdom: specifier: 29.7.0 version: 29.7.0 @@ -1336,7 +1345,7 @@ importers: version: 19.1.1(react@18.2.0) ts-jest: specifier: 29.3.4 - version: 29.3.4(@babel/core@7.27.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.7))(jest@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.3.4(@babel/core@7.27.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.7))(jest@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)))(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1403,7 +1412,7 @@ importers: version: 7.27.1(@babel/core@7.27.7) '@storybook/react': specifier: ^6.5.16 - version: 6.5.16(@babel/core@7.27.7)(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/webpack@5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17)))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))))(webpack-hot-middleware@2.26.1) + version: 6.5.16(@babel/core@7.27.7)(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/webpack@5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17)))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))))(webpack-hot-middleware@2.26.1) '@testing-library/dom': specifier: ~10.4.0 version: 10.4.1 @@ -1442,7 +1451,7 @@ importers: version: 3.0.0 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + version: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) jest-environment-jsdom: specifier: 29.7.0 version: 29.7.0 @@ -1454,7 +1463,7 @@ importers: version: 19.1.1(react@18.2.0) ts-jest: specifier: 29.3.4 - version: 29.3.4(@babel/core@7.27.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.7))(jest@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.3.4(@babel/core@7.27.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.7))(jest@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)))(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -1484,7 +1493,7 @@ importers: version: 6.7.4(lodash@4.17.21)(react@18.2.0)(resize-observer-polyfill@1.5.1) '@tanstack/query-core': specifier: ^5.77.1 - version: 5.90.7 + version: 5.90.10 '@tanstack/react-query': specifier: 5.77.1 version: 5.77.1(react@18.2.0) @@ -1560,7 +1569,7 @@ importers: version: 2.4.1 css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.102.1) + version: 7.1.2(webpack@5.103.0) eslint: specifier: ^9.26.0 version: 9.27.0(jiti@2.6.1) @@ -1572,13 +1581,13 @@ importers: version: 0.4.24(eslint@9.27.0(jiti@2.6.1)) file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.102.1) + version: 6.2.0(webpack@5.103.0) react-hook-form: specifier: ~7.56.3 version: 7.56.4(react@18.2.0) ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -1621,7 +1630,7 @@ importers: version: 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-essentials': specifier: ^6.5.9 - version: 6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.102.1) + version: 6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.103.0) '@storybook/addon-links': specifier: ^6.5.9 version: 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -1642,34 +1651,34 @@ importers: version: 18.2.0 babel-loader: specifier: ^10.0.0 - version: 10.0.0(@babel/core@7.27.7)(webpack@5.102.1) + version: 10.0.0(@babel/core@7.27.7)(webpack@5.103.0) css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.102.1) + version: 7.1.2(webpack@5.103.0) graphql: specifier: ^16.11.0 version: 16.12.0 mini-css-extract-plugin: specifier: ^2.9.2 - version: 2.9.4(webpack@5.102.1) + version: 2.9.4(webpack@5.103.0) source-map-loader: specifier: ^5.0.0 - version: 5.0.0(webpack@5.102.1) + version: 5.0.0(webpack@5.103.0) style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.102.1) + version: 4.0.0(webpack@5.103.0) ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: 5.8.3 version: 5.8.3 webpack: specifier: ^5.94.0 - version: 5.102.1(webpack-cli@4.10.0) + version: 5.103.0(webpack-cli@4.10.0) webpack-cli: specifier: ^4.10.0 - version: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.102.1) + version: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.103.0) ../../workspaces/ballerina/graphql-design-diagram: dependencies: @@ -1848,7 +1857,7 @@ importers: version: 0.8.5 file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.102.1) + version: 6.2.0(webpack@5.103.0) html-to-image: specifier: ^1.10.8 version: 1.11.11 @@ -1891,31 +1900,31 @@ importers: version: link:../../common-libs/ui-toolkit babel-loader: specifier: ^10.0.0 - version: 10.0.0(@babel/core@7.27.7)(webpack@5.102.1) + version: 10.0.0(@babel/core@7.27.7)(webpack@5.103.0) copyfiles: specifier: ^2.4.1 version: 2.4.1 css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.102.1) + version: 7.1.2(webpack@5.103.0) source-map-loader: specifier: ^5.0.0 - version: 5.0.0(webpack@5.102.1) + version: 5.0.0(webpack@5.103.0) style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.102.1) + version: 4.0.0(webpack@5.103.0) ts-loader: specifier: ^9.4.1 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) webpack: specifier: ^5.94.0 - version: 5.102.1(webpack-cli@6.0.1) + version: 5.103.0(webpack-cli@6.0.1) webpack-cli: specifier: ^6.0.1 - version: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.102.1) + version: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.103.0) webpack-dev-server: specifier: ^5.2.1 - version: 5.2.2(webpack-cli@6.0.1)(webpack@5.102.1) + version: 5.2.2(webpack-cli@6.0.1)(webpack@5.103.0) ../../workspaces/ballerina/record-creator: dependencies: @@ -2052,7 +2061,7 @@ importers: devDependencies: '@storybook/react': specifier: ^6.3.7 - version: 6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1) + version: 6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1) '@types/dagre': specifier: ~0.7.52 version: 0.7.53 @@ -2094,10 +2103,10 @@ importers: version: 11.13.5 '@emotion/react': specifier: ^11.9.3 - version: 11.14.0(@types/react@17.0.89)(react@19.1.0) + version: 11.14.0(@types/react@17.0.90)(react@19.1.0) '@emotion/styled': specifier: ^11.10.5 - version: 11.14.1(@emotion/react@11.14.0(@types/react@17.0.89)(react@19.1.0))(@types/react@17.0.89)(react@19.1.0) + version: 11.14.1(@emotion/react@11.14.0(@types/react@17.0.90)(react@19.1.0))(@types/react@17.0.90)(react@19.1.0) '@tanstack/query-core': specifier: ^4.0.0-beta.1 version: 4.41.0 @@ -2152,7 +2161,7 @@ importers: devDependencies: '@storybook/react': specifier: ^6.5.9 - version: 6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@4.9.5)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1) + version: 6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@4.9.5)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1) '@types/classnames': specifier: ^2.2.9 version: 2.3.4 @@ -2167,7 +2176,7 @@ importers: version: 4.0.9 '@types/react': specifier: ^17.0.37 - version: 17.0.89 + version: 17.0.90 '@types/react-dom': specifier: 17.0.14 version: 17.0.14 @@ -2255,31 +2264,31 @@ importers: version: 2.4.1 css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.102.1) + version: 7.1.2(webpack@5.103.0) sass-loader: specifier: ^16.0.5 - version: 16.0.6(sass@1.93.3)(webpack@5.102.1) + version: 16.0.6(sass@1.94.1)(webpack@5.103.0) source-map-loader: specifier: ^5.0.0 - version: 5.0.0(webpack@5.102.1) + version: 5.0.0(webpack@5.103.0) style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.102.1) + version: 4.0.0(webpack@5.103.0) ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: 5.8.3 version: 5.8.3 webpack: specifier: ^5.94.0 - version: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@5.1.4) + version: 5.103.0(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 - version: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.102.1) + version: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.103.0) webpack-dev-server: specifier: ^5.2.1 - version: 5.2.2(webpack-cli@5.1.4)(webpack@5.102.1) + version: 5.2.2(webpack-cli@5.1.4)(webpack@5.103.0) ../../workspaces/ballerina/type-diagram: dependencies: @@ -2324,7 +2333,7 @@ importers: version: 0.8.5 file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.102.1) + version: 6.2.0(webpack@5.103.0) html-to-image: specifier: ^1.11.11 version: 1.11.11 @@ -2373,31 +2382,31 @@ importers: version: link:../../common-libs/ui-toolkit babel-loader: specifier: ^10.0.0 - version: 10.0.0(@babel/core@7.27.7)(webpack@5.102.1) + version: 10.0.0(@babel/core@7.27.7)(webpack@5.103.0) copyfiles: specifier: ^2.4.1 version: 2.4.1 css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.102.1) + version: 7.1.2(webpack@5.103.0) source-map-loader: specifier: ^5.0.0 - version: 5.0.0(webpack@5.102.1) + version: 5.0.0(webpack@5.103.0) style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.102.1) + version: 4.0.0(webpack@5.103.0) ts-loader: specifier: ^9.4.1 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) webpack: specifier: ^5.94.0 - version: 5.102.1(webpack-cli@6.0.1) + version: 5.103.0(webpack-cli@6.0.1) webpack-cli: specifier: ^6.0.1 - version: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.102.1) + version: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.103.0) webpack-dev-server: specifier: ^5.2.1 - version: 5.2.2(webpack-cli@6.0.1)(webpack@5.102.1) + version: 5.2.2(webpack-cli@6.0.1)(webpack@5.103.0) ../../workspaces/ballerina/type-editor: dependencies: @@ -2513,7 +2522,7 @@ importers: version: 22.15.18 '@types/vscode': specifier: ^1.84.0 - version: 1.105.0 + version: 1.106.1 '@typescript-eslint/eslint-plugin': specifier: ^6.21.0 version: 6.21.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) @@ -2524,14 +2533,14 @@ importers: specifier: ^2.5.2 version: 2.5.2 '@vscode/vsce': - specifier: ^3.4.0 - version: 3.4.2 + specifier: ^3.7.0 + version: 3.7.0 '@wso2/playwright-vscode-tester': specifier: workspace:* version: link:../../common-libs/playwright-vscode-tester copy-webpack-plugin: specifier: ^13.0.0 - version: 13.0.1(webpack@5.102.1) + version: 13.0.1(webpack@5.103.0) copyfiles: specifier: ^2.4.1 version: 2.4.1 @@ -2539,8 +2548,8 @@ importers: specifier: ^8.57.1 version: 8.57.1 glob: - specifier: ^11.0.2 - version: 11.0.3 + specifier: ^11.1.0 + version: 11.1.0 mocha: specifier: ^11.2.2 version: 11.7.5 @@ -2549,16 +2558,16 @@ importers: version: 0.5.21 ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: 5.8.3 version: 5.8.3 webpack: specifier: ^5.94.0 - version: 5.102.1(webpack-cli@6.0.1) + version: 5.103.0(webpack-cli@6.0.1) webpack-cli: specifier: ^6.0.1 - version: 6.0.1(webpack@5.102.1) + version: 6.0.1(webpack@5.103.0) webpack-permissions-plugin: specifier: ^1.0.9 version: 1.0.10 @@ -2621,8 +2630,8 @@ importers: specifier: ^18.2.1 version: 18.7.0 js-yaml: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.1.1 + version: 4.1.1 jschardet: specifier: ^3.0.0 version: 3.1.4 @@ -2665,13 +2674,13 @@ importers: version: 22.15.35 '@types/vscode': specifier: ^1.100.0 - version: 1.105.0 + version: 1.106.1 '@types/which': specifier: ^3.0.4 version: 3.0.4 '@vscode/vsce': - specifier: ^3.4.2 - version: 3.4.2 + specifier: ^3.7.0 + version: 3.7.0 '@wso2/playwright-vscode-tester': specifier: workspace:* version: link:../../common-libs/playwright-vscode-tester @@ -2680,7 +2689,7 @@ importers: version: 1.12.2 copy-webpack-plugin: specifier: ^13.0.0 - version: 13.0.1(webpack@5.102.1) + version: 13.0.1(webpack@5.103.0) copyfiles: specifier: ^2.4.1 version: 2.4.1 @@ -2692,10 +2701,10 @@ importers: version: 11.7.5 terser-webpack-plugin: specifier: ^5.3.10 - version: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + version: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) ts-loader: specifier: ~9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: 5.8.3 version: 5.8.3 @@ -2704,10 +2713,10 @@ importers: version: 8.14.1(mocha@11.7.5)(typescript@5.8.3) webpack: specifier: ^5.94.0 - version: 5.102.1(webpack-cli@6.0.1) + version: 5.103.0(webpack-cli@6.0.1) webpack-cli: specifier: ^6.0.1 - version: 6.0.1(webpack@5.102.1) + version: 6.0.1(webpack@5.103.0) webpack-permissions-plugin: specifier: ^1.0.9 version: 1.0.10 @@ -2751,8 +2760,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 js-yaml: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.1.1 + version: 4.1.1 lodash.debounce: specifier: ~4.0.8 version: 4.0.8 @@ -2816,16 +2825,16 @@ importers: version: 1.57.5 autoprefixer: specifier: ^10.4.21 - version: 10.4.21(postcss@8.5.6) + version: 10.4.22(postcss@8.5.6) copyfiles: specifier: ~2.4.1 version: 2.4.1 css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.102.1) + version: 7.1.2(webpack@5.103.0) file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.102.1) + version: 6.2.0(webpack@5.103.0) path: specifier: ^0.12.7 version: 0.12.7 @@ -2834,34 +2843,34 @@ importers: version: 8.5.6 postcss-loader: specifier: ^8.1.1 - version: 8.2.0(postcss@8.5.6)(typescript@5.8.3)(webpack@5.102.1) + version: 8.2.0(postcss@8.5.6)(typescript@5.8.3)(webpack@5.103.0) sass-loader: specifier: ^16.0.5 - version: 16.0.6(sass@1.93.3)(webpack@5.102.1) + version: 16.0.6(sass@1.94.1)(webpack@5.103.0) source-map-loader: specifier: ^5.0.0 - version: 5.0.0(webpack@5.102.1) + version: 5.0.0(webpack@5.103.0) style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.102.1) + version: 4.0.0(webpack@5.103.0) tailwindcss: specifier: ^3.4.3 version: 3.4.18(yaml@2.8.1) ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: 5.8.3 version: 5.8.3 webpack: specifier: ^5.94.0 - version: 5.102.1(webpack-cli@6.0.1) + version: 5.103.0(webpack-cli@6.0.1) webpack-cli: specifier: ^6.0.1 - version: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.102.1) + version: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.103.0) webpack-dev-server: specifier: ^5.2.1 - version: 5.2.2(webpack-cli@6.0.1)(webpack@5.102.1) + version: 5.2.2(webpack-cli@6.0.1)(webpack@5.103.0) ../../workspaces/common-libs/font-wso2-vscode: devDependencies: @@ -2869,8 +2878,8 @@ importers: specifier: 0.0.36 version: 0.0.36 fantasticon: - specifier: ^1.2.3 - version: 1.2.3 + specifier: ^3.0.0 + version: 3.0.0 icon-font-generator: specifier: ^2.1.11 version: 2.1.11 @@ -2884,8 +2893,8 @@ importers: specifier: 1.55.1 version: 1.55.1 '@vscode/vsce': - specifier: ~3.4.2 - version: 3.4.2 + specifier: ^3.7.0 + version: 3.7.0 compare-versions: specifier: ~6.1.1 version: 6.1.1 @@ -3071,7 +3080,7 @@ importers: version: 9.1.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3))(typescript@5.8.3) '@storybook/react-vite': specifier: ^9.0.12 - version: 9.1.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.53.1)(storybook@9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3))(typescript@5.8.3) + version: 9.1.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.53.2)(storybook@9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3))(typescript@5.8.3) '@types/lodash': specifier: ~4.17.16 version: 4.17.17 @@ -3109,8 +3118,8 @@ importers: specifier: ^6.3.0 version: 6.3.0 glob: - specifier: ^11.0.2 - version: 11.0.3 + specifier: ^11.1.0 + version: 11.1.0 http-server: specifier: ^14.1.1 version: 14.1.1 @@ -3128,7 +3137,7 @@ importers: dependencies: '@modelcontextprotocol/inspector': specifier: ^0.17.2 - version: 0.17.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.18)(@types/react-dom@18.2.0)(@types/react@18.2.0)(typescript@5.8.3) + version: 0.17.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.18)(@types/react-dom@18.2.0)(@types/react@18.2.0)(typescript@5.8.3) devDependencies: '@types/mocha': specifier: ^10.0.3 @@ -3138,7 +3147,7 @@ importers: version: 22.15.18 '@types/vscode': specifier: ^1.84.0 - version: 1.105.0 + version: 1.106.1 '@typescript-eslint/eslint-plugin': specifier: ^6.21.0 version: 6.21.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) @@ -3149,11 +3158,11 @@ importers: specifier: ^2.5.2 version: 2.5.2 '@vscode/vsce': - specifier: ^3.4.0 - version: 3.4.2 + specifier: ^3.7.0 + version: 3.7.0 copy-webpack-plugin: specifier: ^13.0.0 - version: 13.0.1(webpack@5.102.1) + version: 13.0.1(webpack@5.103.0) copyfiles: specifier: ^2.4.1 version: 2.4.1 @@ -3171,16 +3180,16 @@ importers: version: 6.1.6 ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: 5.8.3 version: 5.8.3 webpack: specifier: ^5.94.0 - version: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@5.1.4) + version: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 - version: 5.1.4(webpack@5.102.1) + version: 5.1.4(webpack@5.103.0) ../../workspaces/mi/mi-component-diagram: dependencies: @@ -3226,7 +3235,7 @@ importers: devDependencies: '@storybook/react': specifier: ^6.3.7 - version: 6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1) + version: 6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1) '@types/dagre': specifier: ~0.7.52 version: 0.7.53 @@ -3305,7 +3314,7 @@ importers: version: 6.7.4(lodash@4.17.21)(react@18.2.0)(resize-observer-polyfill@1.5.1) '@tanstack/query-core': specifier: ^5.76.2 - version: 5.90.7 + version: 5.90.10 '@tanstack/react-query': specifier: 5.76.2 version: 5.76.2(react@18.2.0) @@ -3387,7 +3396,7 @@ importers: version: 2.4.1 css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.102.1) + version: 7.1.2(webpack@5.103.0) eslint: specifier: ^9.27.0 version: 9.27.0(jiti@2.6.1) @@ -3399,13 +3408,13 @@ importers: version: 0.4.24(eslint@9.27.0(jiti@2.6.1)) file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.102.1) + version: 6.2.0(webpack@5.103.0) react-hook-form: specifier: 7.56.4 version: 7.56.4(react@18.2.0) ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) ts-morph: specifier: ^22.0.0 version: 22.0.0 @@ -3570,7 +3579,7 @@ importers: version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) '@storybook/react-webpack5': specifier: ^8.6.14 - version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.15.0(@swc/helpers@0.5.17))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) + version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) '@storybook/test': specifier: ^8.6.14 version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) @@ -3587,8 +3596,8 @@ importers: specifier: ~1.0.4 version: 1.0.4 '@types/jest': - specifier: 29.5.14 - version: 29.5.14 + specifier: ^30.0.0 + version: 30.0.0 '@types/react': specifier: 18.2.0 version: 18.2.0 @@ -3605,8 +3614,8 @@ importers: specifier: ~8.32.1 version: 8.32.1(@typescript-eslint/parser@8.33.1(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3))(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3) babel-jest: - specifier: 29.7.0 - version: 29.7.0(@babel/core@7.27.7) + specifier: ^30.0.0 + version: 30.2.0(@babel/core@7.27.7) deep-equal: specifier: ~2.2.3 version: 2.2.3 @@ -3614,8 +3623,8 @@ importers: specifier: ~3.0.0 version: 3.0.0 jest: - specifier: 29.7.0 - version: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + specifier: ^30.0.0 + version: 30.2.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) jest-environment-jsdom: specifier: 29.7.0 version: 29.7.0 @@ -3630,7 +3639,7 @@ importers: version: 8.6.14(prettier@3.5.3) ts-jest: specifier: 29.3.4 - version: 29.3.4(@babel/core@7.27.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.7))(jest@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.3.4(@babel/core@7.27.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@30.2.0(@babel/core@7.27.7))(esbuild@0.25.12)(jest@30.2.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)))(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -3651,7 +3660,7 @@ importers: dependencies: '@ai-sdk/anthropic': specifier: ^2.0.35 - version: 2.0.42(zod@3.25.76) + version: 2.0.45(zod@3.25.76) '@apidevtools/json-schema-ref-parser': specifier: 12.0.2 version: 12.0.2 @@ -3686,8 +3695,8 @@ importers: specifier: ~0.4.12 version: 0.4.14 '@vscode/vsce': - specifier: ~3.4.2 - version: 3.4.2 + specifier: ^3.7.0 + version: 3.7.0 '@wso2/font-wso2-vscode': specifier: workspace:* version: link:../../common-libs/font-wso2-vscode @@ -3711,7 +3720,7 @@ importers: version: 0.5.16 ai: specifier: ^5.0.76 - version: 5.0.89(zod@3.25.76) + version: 5.0.93(zod@3.25.76) axios: specifier: ~1.12.0 version: 1.12.2 @@ -3759,7 +3768,7 @@ importers: version: 3.3.2 node-loader: specifier: ~2.1.0 - version: 2.1.0(webpack@5.102.1) + version: 2.1.0(webpack@5.103.0) portfinder: specifier: ^1.0.37 version: 1.0.38 @@ -3826,7 +3835,7 @@ importers: version: 22.15.21 '@types/vscode': specifier: ^1.100.0 - version: 1.105.0 + version: 1.106.1 '@typescript-eslint/eslint-plugin': specifier: ^8.32.1 version: 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3))(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3) @@ -3853,7 +3862,7 @@ importers: version: 9.27.0(jiti@2.6.1) glob: specifier: ^11.0.2 - version: 11.0.3 + version: 11.1.0 mocha: specifier: ^11.4.0 version: 11.7.5 @@ -3865,7 +3874,7 @@ importers: version: 6.0.1 ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) ts-morph: specifier: ^26.0.0 version: 26.0.0 @@ -3874,10 +3883,10 @@ importers: version: 5.8.3 webpack: specifier: ^5.94.0 - version: 5.102.1(webpack-cli@4.10.0) + version: 5.103.0(webpack-cli@4.10.0) webpack-cli: specifier: ^4.10.0 - version: 4.10.0(webpack@5.102.1) + version: 4.10.0(webpack@5.103.0) yaml: specifier: ~2.8.0 version: 2.8.1 @@ -3956,10 +3965,10 @@ importers: version: 1.55.1 '@pmmmwh/react-refresh-webpack-plugin': specifier: ~0.6.0 - version: 0.6.1(@types/webpack@5.28.5(webpack-cli@5.1.4))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.102.1) + version: 0.6.1(@types/webpack@5.28.5(webpack-cli@5.1.4))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.103.0) '@tanstack/query-core': specifier: ^5.76.0 - version: 5.90.7 + version: 5.90.10 '@tanstack/react-query': specifier: 5.76.1 version: 5.76.1(react@18.2.0) @@ -3983,7 +3992,7 @@ importers: version: 1.57.5 '@uiw/react-codemirror': specifier: ~4.23.12 - version: 4.23.14(@codemirror/lint@6.8.5)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 4.23.14(@codemirror/lint@6.8.5)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@vscode/webview-ui-toolkit': specifier: ^1.4.0 version: 1.4.0(react@18.2.0) @@ -4116,19 +4125,19 @@ importers: version: 2.4.1 css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.102.1) + version: 7.1.2(webpack@5.103.0) sass-loader: specifier: ^16.0.5 - version: 16.0.6(sass@1.93.3)(webpack@5.102.1) + version: 16.0.6(sass@1.94.1)(webpack@5.103.0) source-map-loader: specifier: ^5.0.0 - version: 5.0.0(webpack@5.102.1) + version: 5.0.0(webpack@5.103.0) style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.102.1) + version: 4.0.0(webpack@5.103.0) ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: 5.8.3 version: 5.8.3 @@ -4137,13 +4146,13 @@ importers: version: 3.17.5 webpack: specifier: ^5.94.0 - version: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@5.1.4) + version: 5.103.0(webpack-cli@5.1.4) webpack-cli: specifier: ~5.1.4 - version: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.102.1) + version: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.103.0) webpack-dev-server: specifier: ^5.2.1 - version: 5.2.2(webpack-cli@5.1.4)(webpack@5.102.1) + version: 5.2.2(webpack-cli@5.1.4)(webpack@5.103.0) yaml: specifier: ~2.8.0 version: 2.8.1 @@ -4217,7 +4226,7 @@ importers: dependencies: '@aws-sdk/client-s3': specifier: ^3.817.0 - version: 3.927.0 + version: 3.933.0 '@vscode-logging/logger': specifier: ^2.0.0 version: 2.0.0 @@ -4252,8 +4261,8 @@ importers: specifier: ^18.2.1 version: 18.7.0 js-yaml: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.1.1 + version: 4.1.1 jschardet: specifier: ^3.1.4 version: 3.1.4 @@ -4299,13 +4308,13 @@ importers: version: 22.15.35 '@types/vscode': specifier: ^1.100.0 - version: 1.105.0 + version: 1.106.1 '@types/which': specifier: ^3.0.4 version: 3.0.4 '@vscode/vsce': - specifier: ^3.4.2 - version: 3.4.2 + specifier: ^3.7.0 + version: 3.7.0 '@wso2/playwright-vscode-tester': specifier: workspace:* version: link:../../common-libs/playwright-vscode-tester @@ -4314,7 +4323,7 @@ importers: version: 1.12.2 copy-webpack-plugin: specifier: ^13.0.0 - version: 13.0.1(webpack@5.102.1) + version: 13.0.1(webpack@5.103.0) copyfiles: specifier: ^2.4.1 version: 2.4.1 @@ -4326,10 +4335,10 @@ importers: version: 11.7.5 terser-webpack-plugin: specifier: ^5.3.14 - version: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + version: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) ts-loader: specifier: ~9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -4338,10 +4347,10 @@ importers: version: 8.14.1(mocha@11.7.5)(typescript@5.8.3) webpack: specifier: ^5.94.0 - version: 5.102.1(webpack-cli@6.0.1) + version: 5.103.0(webpack-cli@6.0.1) webpack-cli: specifier: ^6.0.1 - version: 6.0.1(webpack@5.102.1) + version: 6.0.1(webpack@5.103.0) webpack-permissions-plugin: specifier: ^1.0.10 version: 1.0.10 @@ -4382,8 +4391,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 js-yaml: - specifier: ^4.1.0 - version: 4.1.0 + specifier: ^4.1.1 + version: 4.1.1 lodash.debounce: specifier: ~4.0.8 version: 4.0.8 @@ -4447,16 +4456,16 @@ importers: version: 1.57.5 autoprefixer: specifier: ^10.4.19 - version: 10.4.21(postcss@8.5.6) + version: 10.4.22(postcss@8.5.6) copyfiles: specifier: ~2.4.1 version: 2.4.1 css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.102.1) + version: 7.1.2(webpack@5.103.0) file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.102.1) + version: 6.2.0(webpack@5.103.0) path: specifier: ^0.12.7 version: 0.12.7 @@ -4465,60 +4474,60 @@ importers: version: 8.5.6 postcss-loader: specifier: ^8.1.1 - version: 8.2.0(postcss@8.5.6)(typescript@5.8.3)(webpack@5.102.1) + version: 8.2.0(postcss@8.5.6)(typescript@5.8.3)(webpack@5.103.0) sass-loader: specifier: ^16.0.5 - version: 16.0.6(sass@1.93.3)(webpack@5.102.1) + version: 16.0.6(sass@1.94.1)(webpack@5.103.0) source-map-loader: specifier: ^5.0.0 - version: 5.0.0(webpack@5.102.1) + version: 5.0.0(webpack@5.103.0) style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.102.1) + version: 4.0.0(webpack@5.103.0) tailwindcss: specifier: ^4.1.7 version: 4.1.17 ts-loader: specifier: ^9.5.2 - version: 9.5.4(typescript@5.8.3)(webpack@5.102.1) + version: 9.5.4(typescript@5.8.3)(webpack@5.103.0) typescript: specifier: 5.8.3 version: 5.8.3 webpack: specifier: ^5.94.0 - version: 5.102.1(webpack-cli@6.0.1) + version: 5.103.0(webpack-cli@6.0.1) webpack-cli: specifier: ^6.0.1 - version: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.102.1) + version: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.103.0) webpack-dev-server: specifier: ^5.2.1 - version: 5.2.2(webpack-cli@6.0.1)(webpack@5.102.1) + version: 5.2.2(webpack-cli@6.0.1)(webpack@5.103.0) packages: '@adobe/css-tools@4.4.4': resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} - '@ai-sdk/amazon-bedrock@3.0.52': - resolution: {integrity: sha512-dCse5ShXxeKB0IBg2/uac3DaHaFHYh6xoDBGjtlxeosHAppHwkal4OA5tgy6uj3Zp9bRZg4ZlkR77zdw3HC4ug==} + '@ai-sdk/amazon-bedrock@3.0.56': + resolution: {integrity: sha512-SncBHNNav14D5TOZilLX/FZHpPKwp8dixPj1FRut8YBGZ1Ou4gOqjR2eJ2NVsMiKi1X/Hb+Izo8vQcZ81AGSXg==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/anthropic@2.0.42': - resolution: {integrity: sha512-5BcXMx6VTYPeA4csd1SvJgpCn5Nu9qHqsNqOr1e/R7UHq83Vv4j4OcgbFwdWgaW/wihNla5B+y4OGqTFIw216w==} + '@ai-sdk/anthropic@2.0.45': + resolution: {integrity: sha512-Ipv62vavDCmrV/oE/lXehL9FzwQuZOnnlhPEftWizx464Wb6lvnBTJx8uhmEYruFSzOWTI95Z33ncZ4tA8E6RQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/gateway@2.0.7': - resolution: {integrity: sha512-/AI5AKi4vOK9SEb8Z1dfXkhsJ5NAfWsoJQc96B/mzn2KIrjw5occOjIwD06scuhV9xWlghCoXJT1sQD9QH/tyg==} + '@ai-sdk/gateway@2.0.9': + resolution: {integrity: sha512-E6x4h5CPPPJ0za1r5HsLtHbeI+Tp3H+YFtcH8G3dSSPFE6w+PZINzB4NxLZmg1QqSeA5HTP3ZEzzsohp0o2GEw==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@3.0.16': - resolution: {integrity: sha512-lsWQY9aDXHitw7C1QRYIbVGmgwyT98TF3MfM8alNIXKpdJdi+W782Rzd9f1RyOfgRmZ08gJ2EYNDhWNK7RqpEA==} + '@ai-sdk/provider-utils@3.0.17': + resolution: {integrity: sha512-TR3Gs4I3Tym4Ll+EPdzRdvo/rc8Js6c4nVhFLuvGLX/Y4V9ZcQMa/HTiYsHEgmYrf1zVi6Q145UEZUfleOwOjw==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -4570,123 +4579,123 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.927.0': - resolution: {integrity: sha512-LwjZH7/WDFw2++ntRtJMMlkZy+BTMaQQv+S8m3amfRo4iF4KJKRE2q3+QOKX2Xpvnw5IEHkmLa+oEanGlk2t1g==} + '@aws-sdk/client-s3@3.933.0': + resolution: {integrity: sha512-KxwZvdxdCeWK6o8mpnb+kk7Kgb8V+8AjTwSXUWH1UAD85B0tjdo1cSfE5zoR5fWGol4Ml5RLez12a6LPhsoTqA==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-sso@3.927.0': - resolution: {integrity: sha512-O+e+jo6ei7U/BA7lhT4mmPCWmeR9dFgGUHVwCwJ5c/nCaSaHQ+cb7j2h8WPXERu0LhPSFyj1aD5dk3jFIwNlbg==} + '@aws-sdk/client-sso@3.933.0': + resolution: {integrity: sha512-zwGLSiK48z3PzKpQiDMKP85+fpIrPMF1qQOQW9OW7BGj5AuBZIisT2O4VzIgYJeh+t47MLU7VgBQL7muc+MJDg==} engines: {node: '>=18.0.0'} - '@aws-sdk/core@3.927.0': - resolution: {integrity: sha512-QOtR9QdjNeC7bId3fc/6MnqoEezvQ2Fk+x6F+Auf7NhOxwYAtB1nvh0k3+gJHWVGpfxN1I8keahRZd79U68/ag==} + '@aws-sdk/core@3.932.0': + resolution: {integrity: sha512-AS8gypYQCbNojwgjvZGkJocC2CoEICDx9ZJ15ILsv+MlcCVLtUJSRSx3VzJOUY2EEIaGLRrPNlIqyn/9/fySvA==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-env@3.927.0': - resolution: {integrity: sha512-bAllBpmaWINpf0brXQWh/hjkBctapknZPYb3FJRlBHytEGHi7TpgqBXi8riT0tc6RVWChhnw58rQz22acOmBuw==} + '@aws-sdk/credential-provider-env@3.932.0': + resolution: {integrity: sha512-ozge/c7NdHUDyHqro6+P5oHt8wfKSUBN+olttiVfBe9Mw3wBMpPa3gQ0pZnG+gwBkKskBuip2bMR16tqYvUSEA==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-http@3.927.0': - resolution: {integrity: sha512-jEvb8C7tuRBFhe8vZY9vm9z6UQnbP85IMEt3Qiz0dxAd341Hgu0lOzMv5mSKQ5yBnTLq+t3FPKgD9tIiHLqxSQ==} + '@aws-sdk/credential-provider-http@3.932.0': + resolution: {integrity: sha512-b6N9Nnlg8JInQwzBkUq5spNaXssM3h3zLxGzpPrnw0nHSIWPJPTbZzA5Ca285fcDUFuKP+qf3qkuqlAjGOdWhg==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-ini@3.927.0': - resolution: {integrity: sha512-WvliaKYT7bNLiryl/FsZyUwRGBo/CWtboekZWvSfloAb+0SKFXWjmxt3z+Y260aoaPm/LIzEyslDHfxqR9xCJQ==} + '@aws-sdk/credential-provider-ini@3.933.0': + resolution: {integrity: sha512-HygGyKuMG5AaGXsmM0d81miWDon55xwalRHB3UmDg3QBhtunbNIoIaWUbNTKuBZXcIN6emeeEZw/YgSMqLc0YA==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-node@3.927.0': - resolution: {integrity: sha512-M6BLrI+WHQ7PUY1aYu2OkI/KEz9aca+05zyycACk7cnlHlZaQ3vTFd0xOqF+A1qaenQBuxApOTs7Z21pnPUo9Q==} + '@aws-sdk/credential-provider-node@3.933.0': + resolution: {integrity: sha512-L2dE0Y7iMLammQewPKNeEh1z/fdJyYEU+/QsLBD9VEh+SXcN/FIyTi21Isw8wPZN6lMB9PDVtISzBnF8HuSFrw==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-process@3.927.0': - resolution: {integrity: sha512-rvqdZIN3TRhLKssufN5G2EWLMBct3ZebOBdwr0tuOoPEdaYflyXYYUScu+Beb541CKfXaFnEOlZokq12r7EPcQ==} + '@aws-sdk/credential-provider-process@3.932.0': + resolution: {integrity: sha512-BodZYKvT4p/Dkm28Ql/FhDdS1+p51bcZeMMu2TRtU8PoMDHnVDhHz27zASEKSZwmhvquxHrZHB0IGuVqjZUtSQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-sso@3.927.0': - resolution: {integrity: sha512-XrCuncze/kxZE6WYEWtNMGtrJvJtyhUqav4xQQ9PJcNjxCUYiIRv7Gwkt7cuwJ1HS+akQj+JiZmljAg97utfDw==} + '@aws-sdk/credential-provider-sso@3.933.0': + resolution: {integrity: sha512-/R1DBR7xNcuZIhS2RirU+P2o8E8/fOk+iLAhbqeSTq+g09fP/F6W7ouFpS5eVE2NIfWG7YBFoVddOhvuqpn51g==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-web-identity@3.927.0': - resolution: {integrity: sha512-Oh/aFYjZQsIiZ2PQEgTNvqEE/mmOYxZKZzXV86qrU3jBUfUUBvprUZc684nBqJbSKPwM5jCZtxiRYh+IrZDE7A==} + '@aws-sdk/credential-provider-web-identity@3.933.0': + resolution: {integrity: sha512-c7Eccw2lhFx2/+qJn3g+uIDWRuWi2A6Sz3PVvckFUEzPsP0dPUo19hlvtarwP5GzrsXn0yEPRVhpewsIaSCGaQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-bucket-endpoint@3.922.0': - resolution: {integrity: sha512-Dpr2YeOaLFqt3q1hocwBesynE3x8/dXZqXZRuzSX/9/VQcwYBFChHAm4mTAl4zuvArtDbLrwzWSxmOWYZGtq5w==} + '@aws-sdk/middleware-bucket-endpoint@3.930.0': + resolution: {integrity: sha512-cnCLWeKPYgvV4yRYPFH6pWMdUByvu2cy2BAlfsPpvnm4RaVioztyvxmQj5PmVN5fvWs5w/2d6U7le8X9iye2sA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-expect-continue@3.922.0': - resolution: {integrity: sha512-xmnLWMtmHJHJBupSWMUEW1gyxuRIeQ1Ov2xa8Tqq77fPr4Ft2AluEwiDMaZIMHoAvpxWKEEt9Si59Li7GIA+bQ==} + '@aws-sdk/middleware-expect-continue@3.930.0': + resolution: {integrity: sha512-5HEQ+JU4DrLNWeY27wKg/jeVa8Suy62ivJHOSUf6e6hZdVIMx0h/kXS1fHEQNNiLu2IzSEP/bFXsKBaW7x7s0g==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.927.0': - resolution: {integrity: sha512-f6R2Rn5gl+B7S3BOCKjv5ZwI1RsHXXHf8pecRW3n1EZjDR/BA5TiUso57DC2I9myR53qp2gADsgQ248tQdZb2g==} + '@aws-sdk/middleware-flexible-checksums@3.932.0': + resolution: {integrity: sha512-hyvRz/XS/0HTHp9/Ld1mKwpOi7bZu5olI42+T112rkCTbt1bewkygzEl4oflY4H7cKMamQusYoL0yBUD/QSEvA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-host-header@3.922.0': - resolution: {integrity: sha512-HPquFgBnq/KqKRVkiuCt97PmWbKtxQ5iUNLEc6FIviqOoZTmaYG3EDsIbuFBz9C4RHJU4FKLmHL2bL3FEId6AA==} + '@aws-sdk/middleware-host-header@3.930.0': + resolution: {integrity: sha512-x30jmm3TLu7b/b+67nMyoV0NlbnCVT5DI57yDrhXAPCtdgM1KtdLWt45UcHpKOm1JsaIkmYRh2WYu7Anx4MG0g==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-location-constraint@3.922.0': - resolution: {integrity: sha512-T4iqd7WQ2DDjCH/0s50mnhdoX+IJns83ZE+3zj9IDlpU0N2aq8R91IG890qTfYkUEdP9yRm0xir/CNed+v6Dew==} + '@aws-sdk/middleware-location-constraint@3.930.0': + resolution: {integrity: sha512-QIGNsNUdRICog+LYqmtJ03PLze6h2KCORXUs5td/hAEjVP5DMmubhtrGg1KhWyctACluUH/E/yrD14p4pRXxwA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-logger@3.922.0': - resolution: {integrity: sha512-AkvYO6b80FBm5/kk2E636zNNcNgjztNNUxpqVx+huyGn9ZqGTzS4kLqW2hO6CBe5APzVtPCtiQsXL24nzuOlAg==} + '@aws-sdk/middleware-logger@3.930.0': + resolution: {integrity: sha512-vh4JBWzMCBW8wREvAwoSqB2geKsZwSHTa0nSt0OMOLp2PdTYIZDi0ZiVMmpfnjcx9XbS6aSluLv9sKx4RrG46A==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-recursion-detection@3.922.0': - resolution: {integrity: sha512-TtSCEDonV/9R0VhVlCpxZbp/9sxQvTTRKzIf8LxW3uXpby6Wl8IxEciBJlxmSkoqxh542WRcko7NYODlvL/gDA==} + '@aws-sdk/middleware-recursion-detection@3.933.0': + resolution: {integrity: sha512-qgrMlkVKzTCAdNw2A05DC2sPBo0KRQ7wk+lbYSRJnWVzcrceJhnmhoZVV5PFv7JtchK7sHVcfm9lcpiyd+XaCA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-sdk-s3@3.927.0': - resolution: {integrity: sha512-kl39er2nUDIw21jxniBxCOnsw1m6gz7juuIn1cIyOAkUyPkkDpQT9+vTFpJcyNDkW+USxykBNe7HIXNiCKLyUg==} + '@aws-sdk/middleware-sdk-s3@3.932.0': + resolution: {integrity: sha512-bYMHxqQzseaAP9Z5qLI918z5AtbAnZRRtFi3POb4FLZyreBMgCgBNaPkIhdgywnkqaydTWvbMBX4s9f4gUwlTw==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-ssec@3.922.0': - resolution: {integrity: sha512-eHvSJZTSRJO+/tjjGD6ocnPc8q9o3m26+qbwQTu/4V6yOJQ1q+xkDZNqwJQphL+CodYaQ7uljp8g1Ji/AN3D9w==} + '@aws-sdk/middleware-ssec@3.930.0': + resolution: {integrity: sha512-N2/SvodmaDS6h7CWfuapt3oJyn1T2CBz0CsDIiTDv9cSagXAVFjPdm2g4PFJqrNBeqdDIoYBnnta336HmamWHg==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-user-agent@3.927.0': - resolution: {integrity: sha512-sv6St9EgEka6E7y19UMCsttFBZ8tsmz2sstgRd7LztlX3wJynpeDUhq0gtedguG1lGZY/gDf832k5dqlRLUk7g==} + '@aws-sdk/middleware-user-agent@3.932.0': + resolution: {integrity: sha512-9BGTbJyA/4PTdwQWE9hAFIJGpsYkyEW20WON3i15aDqo5oRZwZmqaVageOD57YYqG8JDJjvcwKyDdR4cc38dvg==} engines: {node: '>=18.0.0'} - '@aws-sdk/nested-clients@3.927.0': - resolution: {integrity: sha512-Oy6w7+fzIdr10DhF/HpfVLy6raZFTdiE7pxS1rvpuj2JgxzW2y6urm2sYf3eLOpMiHyuG4xUBwFiJpU9CCEvJA==} + '@aws-sdk/nested-clients@3.933.0': + resolution: {integrity: sha512-o1GX0+IPlFi/D8ei9y/jj3yucJWNfPnbB5appVBWevAyUdZA5KzQ2nK/hDxiu9olTZlFEFpf1m1Rn3FaGxHqsw==} engines: {node: '>=18.0.0'} - '@aws-sdk/region-config-resolver@3.925.0': - resolution: {integrity: sha512-FOthcdF9oDb1pfQBRCfWPZhJZT5wqpvdAS5aJzB1WDZ+6EuaAhLzLH/fW1slDunIqq1PSQGG3uSnVglVVOvPHQ==} + '@aws-sdk/region-config-resolver@3.930.0': + resolution: {integrity: sha512-KL2JZqH6aYeQssu1g1KuWsReupdfOoxD6f1as2VC+rdwYFUu4LfzMsFfXnBvvQWWqQ7rZHWOw1T+o5gJmg7Dzw==} engines: {node: '>=18.0.0'} - '@aws-sdk/signature-v4-multi-region@3.927.0': - resolution: {integrity: sha512-P0TZxFhNxj2V9LtR9vk8b3RVbnKt7HkPRptnZafpKjvG6VhWch8bDmrEveCIT8XP2vSUc/5O6a7S3MuPPgnTJA==} + '@aws-sdk/signature-v4-multi-region@3.932.0': + resolution: {integrity: sha512-NCIRJvoRc9246RZHIusY1+n/neeG2yGhBGdKhghmrNdM+mLLN6Ii7CKFZjx3DhxtpHMpl1HWLTMhdVrGwP2upw==} engines: {node: '>=18.0.0'} - '@aws-sdk/token-providers@3.927.0': - resolution: {integrity: sha512-JRdaprkZjZ6EY4WVwsZaEjPUj9W9vqlSaFDm4oD+IbwlY4GjAXuUQK6skKcvVyoOsSTvJp/CaveSws2FiWUp9Q==} + '@aws-sdk/token-providers@3.933.0': + resolution: {integrity: sha512-Qzq7zj9yXUgAAJEbbmqRhm0jmUndl8nHG0AbxFEfCfQRVZWL96Qzx0mf8lYwT9hIMrXncLwy31HOthmbXwFRwQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/types@3.922.0': - resolution: {integrity: sha512-eLA6XjVobAUAMivvM7DBL79mnHyrm+32TkXNWZua5mnxF+6kQCfblKKJvxMZLGosO53/Ex46ogim8IY5Nbqv2w==} + '@aws-sdk/types@3.930.0': + resolution: {integrity: sha512-we/vaAgwlEFW7IeftmCLlLMw+6hFs3DzZPJw7lVHbj/5HJ0bz9gndxEsS2lQoeJ1zhiiLqAqvXxmM43s0MBg0A==} engines: {node: '>=18.0.0'} '@aws-sdk/util-arn-parser@3.893.0': resolution: {integrity: sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-endpoints@3.922.0': - resolution: {integrity: sha512-4ZdQCSuNMY8HMlR1YN4MRDdXuKd+uQTeKIr5/pIM+g3TjInZoj8imvXudjcrFGA63UF3t92YVTkBq88mg58RXQ==} + '@aws-sdk/util-endpoints@3.930.0': + resolution: {integrity: sha512-M2oEKBzzNAYr136RRc6uqw3aWlwCxqTP1Lawps9E1d2abRPvl1p1ztQmmXp1Ak4rv8eByIZ+yQyKQ3zPdRG5dw==} engines: {node: '>=18.0.0'} '@aws-sdk/util-locate-window@3.893.0': resolution: {integrity: sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-user-agent-browser@3.922.0': - resolution: {integrity: sha512-qOJAERZ3Plj1st7M4Q5henl5FRpE30uLm6L9edZqZXGR6c7ry9jzexWamWVpQ4H4xVAVmiO9dIEBAfbq4mduOA==} + '@aws-sdk/util-user-agent-browser@3.930.0': + resolution: {integrity: sha512-q6lCRm6UAe+e1LguM5E4EqM9brQlDem4XDcQ87NzEvlTW6GzmNCO0w1jS0XgCFXQHjDxjdlNFX+5sRbHijwklg==} - '@aws-sdk/util-user-agent-node@3.927.0': - resolution: {integrity: sha512-5Ty+29jBTHg1mathEhLJavzA7A7vmhephRYGenFzo8rApLZh+c+MCAqjddSjdDzcf5FH+ydGGnIrj4iIfbZIMQ==} + '@aws-sdk/util-user-agent-node@3.932.0': + resolution: {integrity: sha512-/kC6cscHrZL74TrZtgiIL5jJNbVsw9duGGPurmaVgoCbP7NnxyaSWEurbNV3VPNPhNE3bV3g4Ci+odq+AlsYQg==} engines: {node: '>=18.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -4694,12 +4703,12 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.921.0': - resolution: {integrity: sha512-LVHg0jgjyicKKvpNIEMXIMr1EBViESxcPkqfOlT+X1FkmUMTNZEEVF18tOJg4m4hV5vxtkWcqtr4IEeWa1C41Q==} + '@aws-sdk/xml-builder@3.930.0': + resolution: {integrity: sha512-YIfkD17GocxdmlUVc3ia52QhcWuRIUJonbF8A2CYfcWNV3HzvAqpcPeC0bYUhkK+8e8YO1ARnLKZQE0TlwzorA==} engines: {node: '>=18.0.0'} - '@aws/lambda-invoke-store@0.1.1': - resolution: {integrity: sha512-RcLam17LdlbSOSp9VxmUu1eI6Mwxp+OwhD2QhiSNmNCzoDb0EeUXTD2n/WbcnrAYMGlmf05th6QYq23VqvJqpA==} + '@aws/lambda-invoke-store@0.2.0': + resolution: {integrity: sha512-D1jAmAZQYMoPiacfgNf7AWhg3DFN3Wq/vQv3WINt9znwjzHp2x+WzdJFxxj7xZL7V1U79As6G8f7PorMYWBKsQ==} engines: {node: '>=18.0.0'} '@azu/format-text@1.0.2': @@ -4748,8 +4757,8 @@ packages: resolution: {integrity: sha512-vQYQcG4J43UWgo1lj7LcmdsGUKWYo28RfEvDQAEMmQIMjSFufvb+pS0FJ3KXmrPmnWlt1vHDl3oip6mIDUQ4uA==} engines: {node: '>=0.8.0'} - '@azure/msal-node@3.8.1': - resolution: {integrity: sha512-HszfqoC+i2C9+BRDQfuNUGp15Re7menIhCEbFCQ49D3KaqEDrgZIgQ8zSct4T59jWeUIL9N/Dwiv4o2VueTdqQ==} + '@azure/msal-node@3.8.2': + resolution: {integrity: sha512-dQrex2LiXwlCe9WuBHnCsY+xxLyuMXSd2SDEYJuhqB7cE8u6QafiC1xy8j8eBjGO30AsRi2M6amH0ZKk7vJpjA==} engines: {node: '>=16'} '@babel/code-frame@7.27.1': @@ -5571,14 +5580,11 @@ packages: cpu: [x64] os: [win32] - '@cacheable/memoize@2.0.3': - resolution: {integrity: sha512-hl9wfQgpiydhQEIv7fkjEzTGE+tcosCXLKFDO707wYJ/78FVOlowb36djex5GdbSyeHnG62pomYLMuV/OT8Pbw==} + '@cacheable/memory@2.0.5': + resolution: {integrity: sha512-fkiAxCvssEyJZ5fxX4tcdZFRmW9JehSTGvvqmXn6rTzG5cH6V/3C4ad8yb01vOjp2xBydHkHrgpW0qeGtzt6VQ==} - '@cacheable/memory@2.0.4': - resolution: {integrity: sha512-cCmJKCKlT1t7hNBI1+gFCwmKFd9I4pS3zqBeNGXTSODnpa0EeDmORHY8oEMTuozfdg3cgsVh8ojLaPYb6eC7Cg==} - - '@cacheable/utils@2.2.0': - resolution: {integrity: sha512-7xaQayO3msdVcxXLYcLU5wDqJBNdQcPPPHr6mdTEIQI7N7TbtSVVTpWOTfjyhg0L6AQwQdq7miKdWtTDBoBldQ==} + '@cacheable/utils@2.3.1': + resolution: {integrity: sha512-38NJXjIr4W1Sghun8ju+uYWD8h2c61B4dKwfnQHVDFpAJ9oS28RpfqZQJ6Dgd3RceGkILDY9YT+72HJR3LoeSQ==} '@cnakazawa/watch@1.0.4': resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} @@ -5678,8 +5684,8 @@ packages: '@codemirror/theme-one-dark@6.1.3': resolution: {integrity: sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==} - '@codemirror/view@6.38.6': - resolution: {integrity: sha512-qiS0z1bKs5WOvHIAC0Cybmv4AJSkAXgX5aD6Mqd2epSLlVJsQl8NG23jCVouIgkh4All/mrbdsf2UOLFnJw0tw==} + '@codemirror/view@6.38.8': + resolution: {integrity: sha512-XcE9fcnkHCbWkjeKyi0lllwXmBLtyYb5dt89dJyx23I9+LSh5vZDIuk7OLG4VM1lgrXZQcY6cxyZyk5WVPRv/A==} '@codesandbox/nodebox@0.1.8': resolution: {integrity: sha512-2VRS6JDSk+M+pg56GA6CryyUSGPjBEe8Pnae0QL3jJF1mJZJVMDKr93gJRtBbLkfZN6LD/DwMtf+2L0bpWrjqg==} @@ -5753,6 +5759,15 @@ packages: '@dual-bundle/import-meta-resolve@4.2.1': resolution: {integrity: sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==} + '@emnapi/core@1.7.1': + resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} + + '@emnapi/runtime@1.7.1': + resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} + + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emotion/babel-plugin@11.13.5': resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} @@ -6198,6 +6213,10 @@ packages: resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/console@30.2.0': + resolution: {integrity: sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/core@25.5.4': resolution: {integrity: sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==} engines: {node: '>= 8.3'} @@ -6211,6 +6230,19 @@ packages: node-notifier: optional: true + '@jest/core@30.2.0': + resolution: {integrity: sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/diff-sequences@30.0.1': + resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/environment@25.5.0': resolution: {integrity: sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==} engines: {node: '>= 8.3'} @@ -6219,14 +6251,26 @@ packages: resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/environment@30.2.0': + resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/expect-utils@29.7.0': resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect-utils@30.2.0': + resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/expect@29.7.0': resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect@30.2.0': + resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/fake-timers@25.5.0': resolution: {integrity: sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==} engines: {node: '>= 8.3'} @@ -6235,6 +6279,14 @@ packages: resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@30.2.0': + resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/get-type@30.1.0': + resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/globals@25.5.2': resolution: {integrity: sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==} engines: {node: '>= 8.3'} @@ -6243,6 +6295,14 @@ packages: resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/globals@30.2.0': + resolution: {integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/pattern@30.0.1': + resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/reporters@25.5.1': resolution: {integrity: sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==} engines: {node: '>= 8.3'} @@ -6256,10 +6316,27 @@ packages: node-notifier: optional: true + '@jest/reporters@30.2.0': + resolution: {integrity: sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@30.0.5': + resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/snapshot-utils@30.2.0': + resolution: {integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/source-map@25.5.0': resolution: {integrity: sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==} engines: {node: '>= 8.3'} @@ -6268,6 +6345,10 @@ packages: resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/source-map@30.0.1': + resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/test-result@25.5.0': resolution: {integrity: sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==} engines: {node: '>= 8.3'} @@ -6276,6 +6357,10 @@ packages: resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-result@30.2.0': + resolution: {integrity: sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/test-sequencer@25.5.4': resolution: {integrity: sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==} engines: {node: '>= 8.3'} @@ -6284,6 +6369,10 @@ packages: resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-sequencer@30.2.0': + resolution: {integrity: sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/transform@25.5.1': resolution: {integrity: sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==} engines: {node: '>= 8.3'} @@ -6296,6 +6385,10 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/transform@30.2.0': + resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/types@25.5.0': resolution: {integrity: sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==} engines: {node: '>= 8.3'} @@ -6308,6 +6401,10 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@30.2.0': + resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1': resolution: {integrity: sha512-J4BaTocTOYFkMHIra1JDWrMWpNmBl4EkplIwHEsV8aeUOtdWjwSnln9U7twjMFTAEB7mptNtSKyVi1Y2W9sDJw==} peerDependencies: @@ -6381,11 +6478,11 @@ packages: '@juggle/resize-observer@3.4.0': resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} - '@keyv/bigmap@1.1.0': - resolution: {integrity: sha512-MX7XIUNwVRK+hjZcAbNJ0Z8DREo+Weu9vinBOjGU1thEi9F6vPhICzBbk4CCf3eEefKRz7n6TfZXwUFZTSgj8Q==} + '@keyv/bigmap@1.3.0': + resolution: {integrity: sha512-KT01GjzV6AQD5+IYrcpoYLkCu1Jod3nau1Z7EsEuViO3TZGRacSbO9MfHmbJ1WaOXFtWLxPVj169cn2WNKPkIg==} engines: {node: '>= 18'} peerDependencies: - keyv: ^5.5.3 + keyv: ^5.5.4 '@keyv/serialize@1.1.1': resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} @@ -6617,8 +6714,8 @@ packages: engines: {node: '>=22.7.5'} hasBin: true - '@modelcontextprotocol/sdk@1.21.1': - resolution: {integrity: sha512-UyLFcJLDvUuZbGnaQqXFT32CpPpGj7VS19roLut6gkQVhb439xUzYWbsUvdI3ZPL+2hnFosuugtYWE0Mcs1rmQ==} + '@modelcontextprotocol/sdk@1.22.0': + resolution: {integrity: sha512-VUpl106XVTCpDmTBil2ehgJZjhyLY2QZikzF8NvTXtLRF1CvO5iEE2UNZdVIUer35vFOwMKYeUGbjJtvPWan3g==} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -6662,6 +6759,9 @@ packages: resolution: {integrity: sha512-3fkKj25kEjsfObL6IlKPAlHYPq/oYwUkkQ03zsTTiDjD7vg/RxjdiLeCydqtxHZP0JgsXL3D/X5oAkMGzuUp/Q==} engines: {node: '>=12'} + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + '@ndelangen/get-tarball@3.0.9': resolution: {integrity: sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA==} @@ -6813,6 +6913,10 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@playwright/test@1.55.1': resolution: {integrity: sha512-IVAh/nOJaw6W9g+RJVlIQJ6gSiER+ae6mKQ5CX1bERzQgbC1VSeBlwdvczT7pxb0GWiyrxH4TGKbMfDb4Sq/ig==} engines: {node: '>=18'} @@ -7847,113 +7951,113 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.53.1': - resolution: {integrity: sha512-bxZtughE4VNVJlL1RdoSE545kc4JxL7op57KKoi59/gwuU5rV6jLWFXXc8jwgFoT6vtj+ZjO+Z2C5nrY0Cl6wA==} + '@rollup/rollup-android-arm-eabi@4.53.2': + resolution: {integrity: sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.53.1': - resolution: {integrity: sha512-44a1hreb02cAAfAKmZfXVercPFaDjqXCK+iKeVOlJ9ltvnO6QqsBHgKVPTu+MJHSLLeMEUbeG2qiDYgbFPU48g==} + '@rollup/rollup-android-arm64@4.53.2': + resolution: {integrity: sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.53.1': - resolution: {integrity: sha512-usmzIgD0rf1syoOZ2WZvy8YpXK5G1V3btm3QZddoGSa6mOgfXWkkv+642bfUUldomgrbiLQGrPryb7DXLovPWQ==} + '@rollup/rollup-darwin-arm64@4.53.2': + resolution: {integrity: sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.53.1': - resolution: {integrity: sha512-is3r/k4vig2Gt8mKtTlzzyaSQ+hd87kDxiN3uDSDwggJLUV56Umli6OoL+/YZa/KvtdrdyNfMKHzL/P4siOOmg==} + '@rollup/rollup-darwin-x64@4.53.2': + resolution: {integrity: sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.53.1': - resolution: {integrity: sha512-QJ1ksgp/bDJkZB4daldVmHaEQkG4r8PUXitCOC2WRmRaSaHx5RwPoI3DHVfXKwDkB+Sk6auFI/+JHacTekPRSw==} + '@rollup/rollup-freebsd-arm64@4.53.2': + resolution: {integrity: sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.53.1': - resolution: {integrity: sha512-J6ma5xgAzvqsnU6a0+jgGX/gvoGokqpkx6zY4cWizRrm0ffhHDpJKQgC8dtDb3+MqfZDIqs64REbfHDMzxLMqQ==} + '@rollup/rollup-freebsd-x64@4.53.2': + resolution: {integrity: sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.53.1': - resolution: {integrity: sha512-JzWRR41o2U3/KMNKRuZNsDUAcAVUYhsPuMlx5RUldw0E4lvSIXFUwejtYz1HJXohUmqs/M6BBJAUBzKXZVddbg==} + '@rollup/rollup-linux-arm-gnueabihf@4.53.2': + resolution: {integrity: sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.53.1': - resolution: {integrity: sha512-L8kRIrnfMrEoHLHtHn+4uYA52fiLDEDyezgxZtGUTiII/yb04Krq+vk3P2Try+Vya9LeCE9ZHU8CXD6J9EhzHQ==} + '@rollup/rollup-linux-arm-musleabihf@4.53.2': + resolution: {integrity: sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.53.1': - resolution: {integrity: sha512-ysAc0MFRV+WtQ8li8hi3EoFi7us6d1UzaS/+Dp7FYZfg3NdDljGMoVyiIp6Ucz7uhlYDBZ/zt6XI0YEZbUO11Q==} + '@rollup/rollup-linux-arm64-gnu@4.53.2': + resolution: {integrity: sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.53.1': - resolution: {integrity: sha512-UV6l9MJpDbDZZ/fJvqNcvO1PcivGEf1AvKuTcHoLjVZVFeAMygnamCTDikCVMRnA+qJe+B3pSbgX2+lBMqgBhA==} + '@rollup/rollup-linux-arm64-musl@4.53.2': + resolution: {integrity: sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.53.1': - resolution: {integrity: sha512-UDUtelEprkA85g95Q+nj3Xf0M4hHa4DiJ+3P3h4BuGliY4NReYYqwlc0Y8ICLjN4+uIgCEvaygYlpf0hUj90Yg==} + '@rollup/rollup-linux-loong64-gnu@4.53.2': + resolution: {integrity: sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.53.1': - resolution: {integrity: sha512-vrRn+BYhEtNOte/zbc2wAUQReJXxEx2URfTol6OEfY2zFEUK92pkFBSXRylDM7aHi+YqEPJt9/ABYzmcrS4SgQ==} + '@rollup/rollup-linux-ppc64-gnu@4.53.2': + resolution: {integrity: sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.53.1': - resolution: {integrity: sha512-gto/1CxHyi4A7YqZZNznQYrVlPSaodOBPKM+6xcDSCMVZN/Fzb4K+AIkNz/1yAYz9h3Ng+e2fY9H6bgawVq17w==} + '@rollup/rollup-linux-riscv64-gnu@4.53.2': + resolution: {integrity: sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.53.1': - resolution: {integrity: sha512-KZ6Vx7jAw3aLNjFR8eYVcQVdFa/cvBzDNRFM3z7XhNNunWjA03eUrEwJYPk0G8V7Gs08IThFKcAPS4WY/ybIrQ==} + '@rollup/rollup-linux-riscv64-musl@4.53.2': + resolution: {integrity: sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.53.1': - resolution: {integrity: sha512-HvEixy2s/rWNgpwyKpXJcHmE7om1M89hxBTBi9Fs6zVuLU4gOrEMQNbNsN/tBVIMbLyysz/iwNiGtMOpLAOlvA==} + '@rollup/rollup-linux-s390x-gnu@4.53.2': + resolution: {integrity: sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.53.1': - resolution: {integrity: sha512-E/n8x2MSjAQgjj9IixO4UeEUeqXLtiA7pyoXCFYLuXpBA/t2hnbIdxHfA7kK9BFsYAoNU4st1rHYdldl8dTqGA==} + '@rollup/rollup-linux-x64-gnu@4.53.2': + resolution: {integrity: sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.53.1': - resolution: {integrity: sha512-IhJ087PbLOQXCN6Ui/3FUkI9pWNZe/Z7rEIVOzMsOs1/HSAECCvSZ7PkIbkNqL/AZn6WbZvnoVZw/qwqYMo4/w==} + '@rollup/rollup-linux-x64-musl@4.53.2': + resolution: {integrity: sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA==} cpu: [x64] os: [linux] - '@rollup/rollup-openharmony-arm64@4.53.1': - resolution: {integrity: sha512-0++oPNgLJHBblreu0SFM7b3mAsBJBTY0Ksrmu9N6ZVrPiTkRgda52mWR7TKhHAsUb9noCjFvAw9l6ZO1yzaVbA==} + '@rollup/rollup-openharmony-arm64@4.53.2': + resolution: {integrity: sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.53.1': - resolution: {integrity: sha512-VJXivz61c5uVdbmitLkDlbcTk9Or43YC2QVLRkqp86QoeFSqI81bNgjhttqhKNMKnQMWnecOCm7lZz4s+WLGpQ==} + '@rollup/rollup-win32-arm64-msvc@4.53.2': + resolution: {integrity: sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.53.1': - resolution: {integrity: sha512-NmZPVTUOitCXUH6erJDzTQ/jotYw4CnkMDjCYRxNHVD9bNyfrGoIse684F9okwzKCV4AIHRbUkeTBc9F2OOH5Q==} + '@rollup/rollup-win32-ia32-msvc@4.53.2': + resolution: {integrity: sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.53.1': - resolution: {integrity: sha512-2SNj7COIdAf6yliSpLdLG8BEsp5lgzRehgfkP0Av8zKfQFKku6JcvbobvHASPJu4f3BFxej5g+HuQPvqPhHvpQ==} + '@rollup/rollup-win32-x64-gnu@4.53.2': + resolution: {integrity: sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.53.1': - resolution: {integrity: sha512-rLarc1Ofcs3DHtgSzFO31pZsCh8g05R2azN1q3fF+H423Co87My0R+tazOEvYVKXSLh8C4LerMK41/K7wlklcg==} + '@rollup/rollup-win32-x64-msvc@4.53.2': + resolution: {integrity: sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA==} cpu: [x64] os: [win32] @@ -7966,50 +8070,50 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@secretlint/config-creator@9.3.4': - resolution: {integrity: sha512-GRMYfHJ+rewwB26CC3USVObqSQ/mDLXzXcUMJw/wJisPr3HDZmdsYlcsNnaAcGN+EZmvqSDkgSibQm1hyZpzbg==} - engines: {node: ^14.13.1 || >=16.0.0} + '@secretlint/config-creator@10.2.2': + resolution: {integrity: sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==} + engines: {node: '>=20.0.0'} - '@secretlint/config-loader@9.3.4': - resolution: {integrity: sha512-sy+yWDWh4cbAbpQYLiO39DjwNGEK1EUhTqNamLLBo163BdJP10FIWhqpe8mtGQBSBXRtxr8Hg/gc3Xe4meIoww==} - engines: {node: ^14.13.1 || >=16.0.0} + '@secretlint/config-loader@10.2.2': + resolution: {integrity: sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==} + engines: {node: '>=20.0.0'} - '@secretlint/core@9.3.4': - resolution: {integrity: sha512-ErIVHI6CJd191qdNKuMkH3bZQo9mWJsrSg++bQx64o0WFuG5nPvkYrDK0p/lebf+iQuOnzvl5HrZU6GU9a6o+Q==} - engines: {node: ^14.13.1 || >=16.0.0} + '@secretlint/core@10.2.2': + resolution: {integrity: sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==} + engines: {node: '>=20.0.0'} - '@secretlint/formatter@9.3.4': - resolution: {integrity: sha512-ARpoBOKz6WP3ocLITCFkR1/Lj636ugpBknylhlpc45r5aLdvmyvWAJqodlw5zmUCfgD6JXeAMf3Hi60aAiuqWQ==} - engines: {node: ^14.13.1 || >=16.0.0} + '@secretlint/formatter@10.2.2': + resolution: {integrity: sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==} + engines: {node: '>=20.0.0'} - '@secretlint/node@9.3.4': - resolution: {integrity: sha512-S0u8i+CnPmyAKtuccgot9L5cmw6DqJc0F+b3hhVIALd8kkeLt3RIXOOej15tU7N0V1ISph90Gz92V72ovsprgQ==} - engines: {node: ^14.13.1 || >=16.0.0} + '@secretlint/node@10.2.2': + resolution: {integrity: sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==} + engines: {node: '>=20.0.0'} - '@secretlint/profiler@9.3.4': - resolution: {integrity: sha512-99WmaHd4dClNIm5BFsG++E6frNIZ3qVwg6s804Ql/M19pDmtZOoVCl4/UuzWpwNniBqLIgn9rHQZ/iGlIW3wyw==} + '@secretlint/profiler@10.2.2': + resolution: {integrity: sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==} - '@secretlint/resolver@9.3.4': - resolution: {integrity: sha512-L1lIrcjzqcspPzZttmOvMmOFDpJTYFyRBONg94TZBWrpv4x0w5G2SYR+K7EE1SbYQAiPxw1amoXT1YRP8cZF2A==} + '@secretlint/resolver@10.2.2': + resolution: {integrity: sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==} - '@secretlint/secretlint-formatter-sarif@9.3.4': - resolution: {integrity: sha512-IpAl5gzKwpTRqoivKOTJB89l6b7uvBwjSNKzJb3oIGD9Jg3vXcQunSntvLv5XGynYtdi1NhANfEpbhavlmMSyA==} + '@secretlint/secretlint-formatter-sarif@10.2.2': + resolution: {integrity: sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==} - '@secretlint/secretlint-rule-no-dotenv@9.3.4': - resolution: {integrity: sha512-lMSVwTrJiZ/zL9VIzpT7tMcb0ClI6u4cyJo2YKGSbuJErJG1zB4gQKtjIwCSt7px5JF6U+aFtpb9M8+s40WWCQ==} - engines: {node: ^14.13.1 || >=16.0.0} + '@secretlint/secretlint-rule-no-dotenv@10.2.2': + resolution: {integrity: sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==} + engines: {node: '>=20.0.0'} - '@secretlint/secretlint-rule-preset-recommend@9.3.4': - resolution: {integrity: sha512-RvzrLNN2A0B2bYQgRSRjh2dkdaIDuhXjj4SO5bElK1iBtJNiD6VBTxSSY1P3hXYaBeva7MEF+q1PZ3cCL8XYOA==} - engines: {node: ^14.13.1 || >=16.0.0} + '@secretlint/secretlint-rule-preset-recommend@10.2.2': + resolution: {integrity: sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA==} + engines: {node: '>=20.0.0'} - '@secretlint/source-creator@9.3.4': - resolution: {integrity: sha512-I9ZA1gm9HJNaAhZiQdInY9VM04VTAGDV4bappVbEJzMUDnK/LTbYqfQ88RPqgCGCqa6ee8c0/j5Bn7ypweouIw==} - engines: {node: ^14.13.1 || >=16.0.0} + '@secretlint/source-creator@10.2.2': + resolution: {integrity: sha512-h6I87xJfwfUTgQ7irWq7UTdq/Bm1RuQ/fYhA3dtTIAop5BwSFmZyrchph4WcoEvbN460BWKmk4RYSvPElIIvxw==} + engines: {node: '>=20.0.0'} - '@secretlint/types@9.3.4': - resolution: {integrity: sha512-z9rdKHNeL4xa48+367RQJVw1d7/Js9HIQ+gTs/angzteM9osfgs59ad3iwVRhCGYbeUoUUDe2yxJG2ylYLaH3Q==} - engines: {node: ^14.13.1 || >=16.0.0} + '@secretlint/types@10.2.2': + resolution: {integrity: sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==} + engines: {node: '>=20.0.0'} '@sentry/cli@1.77.3': resolution: {integrity: sha512-c3eDqcDRmy4TFz2bFU5Y6QatlpoBPPa8cxBooaS4aMQpnIdLYPF1xhyyiW0LQlDUNc3rRjNF7oN5qKoaRoMTQQ==} @@ -8032,6 +8136,9 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.34.41': + resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==} + '@sindresorhus/is@5.6.0': resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} @@ -8057,6 +8164,9 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@sinonjs/fake-timers@13.0.5': + resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} + '@size-limit/esbuild@11.2.0': resolution: {integrity: sha512-vSg9H0WxGQPRzDnBzeDyD9XT0Zdq0L+AI3+77/JhxznbSCMJMMr8ndaWVQRhOsixl97N0oD4pRFw2+R1Lcvi6A==} engines: {node: ^18.0.0 || >=20.0.0} @@ -8074,8 +8184,8 @@ packages: peerDependencies: size-limit: 11.2.0 - '@smithy/abort-controller@4.2.4': - resolution: {integrity: sha512-Z4DUr/AkgyFf1bOThW2HwzREagee0sB5ycl+hDiSZOfRLW8ZgrOjDi6g8mHH19yyU5E2A/64W3z6SMIf5XiUSQ==} + '@smithy/abort-controller@4.2.5': + resolution: {integrity: sha512-j7HwVkBw68YW8UmFRcjZOmssE77Rvk0GWAIN1oFBhsaovQmZWYCIcGa9/pwRB0ExI8Sk9MWNALTjftjHZea7VA==} engines: {node: '>=18.0.0'} '@smithy/chunked-blob-reader-native@4.2.1': @@ -8086,56 +8196,56 @@ packages: resolution: {integrity: sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==} engines: {node: '>=18.0.0'} - '@smithy/config-resolver@4.4.2': - resolution: {integrity: sha512-4Jys0ni2tB2VZzgslbEgszZyMdTkPOFGA8g+So/NjR8oy6Qwaq4eSwsrRI+NMtb0Dq4kqCzGUu/nGUx7OM/xfw==} + '@smithy/config-resolver@4.4.3': + resolution: {integrity: sha512-ezHLe1tKLUxDJo2LHtDuEDyWXolw8WGOR92qb4bQdWq/zKenO5BvctZGrVJBK08zjezSk7bmbKFOXIVyChvDLw==} engines: {node: '>=18.0.0'} - '@smithy/core@3.17.2': - resolution: {integrity: sha512-n3g4Nl1Te+qGPDbNFAYf+smkRVB+JhFsGy9uJXXZQEufoP4u0r+WLh6KvTDolCswaagysDc/afS1yvb2jnj1gQ==} + '@smithy/core@3.18.4': + resolution: {integrity: sha512-o5tMqPZILBvvROfC8vC+dSVnWJl9a0u9ax1i1+Bq8515eYjUJqqk5XjjEsDLoeL5dSqGSh6WGdVx1eJ1E/Nwhw==} engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.2.4': - resolution: {integrity: sha512-YVNMjhdz2pVto5bRdux7GMs0x1m0Afz3OcQy/4Yf9DH4fWOtroGH7uLvs7ZmDyoBJzLdegtIPpXrpJOZWvUXdw==} + '@smithy/credential-provider-imds@4.2.5': + resolution: {integrity: sha512-BZwotjoZWn9+36nimwm/OLIcVe+KYRwzMjfhd4QT7QxPm9WY0HiOV8t/Wlh+HVUif0SBVV7ksq8//hPaBC/okQ==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@4.2.4': - resolution: {integrity: sha512-aV8blR9RBDKrOlZVgjOdmOibTC2sBXNiT7WA558b4MPdsLTV6sbyc1WIE9QiIuYMJjYtnPLciefoqSW8Gi+MZQ==} + '@smithy/eventstream-codec@4.2.5': + resolution: {integrity: sha512-Ogt4Zi9hEbIP17oQMd68qYOHUzmH47UkK7q7Gl55iIm9oKt27MUGrC5JfpMroeHjdkOliOA4Qt3NQ1xMq/nrlA==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-browser@4.2.4': - resolution: {integrity: sha512-d5T7ZS3J/r8P/PDjgmCcutmNxnSRvPH1U6iHeXjzI50sMr78GLmFcrczLw33Ap92oEKqa4CLrkAPeSSOqvGdUA==} + '@smithy/eventstream-serde-browser@4.2.5': + resolution: {integrity: sha512-HohfmCQZjppVnKX2PnXlf47CW3j92Ki6T/vkAT2DhBR47e89pen3s4fIa7otGTtrVxmj7q+IhH0RnC5kpR8wtw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-config-resolver@4.3.4': - resolution: {integrity: sha512-lxfDT0UuSc1HqltOGsTEAlZ6H29gpfDSdEPTapD5G63RbnYToZ+ezjzdonCCH90j5tRRCw3aLXVbiZaBW3VRVg==} + '@smithy/eventstream-serde-config-resolver@4.3.5': + resolution: {integrity: sha512-ibjQjM7wEXtECiT6my1xfiMH9IcEczMOS6xiCQXoUIYSj5b1CpBbJ3VYbdwDy8Vcg5JHN7eFpOCGk8nyZAltNQ==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-node@4.2.4': - resolution: {integrity: sha512-TPhiGByWnYyzcpU/K3pO5V7QgtXYpE0NaJPEZBCa1Y5jlw5SjqzMSbFiLb+ZkJhqoQc0ImGyVINqnq1ze0ZRcQ==} + '@smithy/eventstream-serde-node@4.2.5': + resolution: {integrity: sha512-+elOuaYx6F2H6x1/5BQP5ugv12nfJl66GhxON8+dWVUEDJ9jah/A0tayVdkLRP0AeSac0inYkDz5qBFKfVp2Gg==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@4.2.4': - resolution: {integrity: sha512-GNI/IXaY/XBB1SkGBFmbW033uWA0tj085eCxYih0eccUe/PFR7+UBQv9HNDk2fD9TJu7UVsCWsH99TkpEPSOzQ==} + '@smithy/eventstream-serde-universal@4.2.5': + resolution: {integrity: sha512-G9WSqbST45bmIFaeNuP/EnC19Rhp54CcVdX9PDL1zyEB514WsDVXhlyihKlGXnRycmHNmVv88Bvvt4EYxWef/Q==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.3.5': - resolution: {integrity: sha512-mg83SM3FLI8Sa2ooTJbsh5MFfyMTyNRwxqpKHmE0ICRIa66Aodv80DMsTQI02xBLVJ0hckwqTRr5IGAbbWuFLQ==} + '@smithy/fetch-http-handler@5.3.6': + resolution: {integrity: sha512-3+RG3EA6BBJ/ofZUeTFJA7mHfSYrZtQIrDP9dI8Lf7X6Jbos2jptuLrAAteDiFVrmbEmLSuRG/bUKzfAXk7dhg==} engines: {node: '>=18.0.0'} - '@smithy/hash-blob-browser@4.2.5': - resolution: {integrity: sha512-kCdgjD2J50qAqycYx0imbkA9tPtyQr1i5GwbK/EOUkpBmJGSkJe4mRJm+0F65TUSvvui1HZ5FFGFCND7l8/3WQ==} + '@smithy/hash-blob-browser@4.2.6': + resolution: {integrity: sha512-8P//tA8DVPk+3XURk2rwcKgYwFvwGwmJH/wJqQiSKwXZtf/LiZK+hbUZmPj/9KzM+OVSwe4o85KTp5x9DUZTjw==} engines: {node: '>=18.0.0'} - '@smithy/hash-node@4.2.4': - resolution: {integrity: sha512-kKU0gVhx/ppVMntvUOZE7WRMFW86HuaxLwvqileBEjL7PoILI8/djoILw3gPQloGVE6O0oOzqafxeNi2KbnUJw==} + '@smithy/hash-node@4.2.5': + resolution: {integrity: sha512-DpYX914YOfA3UDT9CN1BM787PcHfWRBB43fFGCYrZFUH0Jv+5t8yYl+Pd5PW4+QzoGEDvn5d5QIO4j2HyYZQSA==} engines: {node: '>=18.0.0'} - '@smithy/hash-stream-node@4.2.4': - resolution: {integrity: sha512-amuh2IJiyRfO5MV0X/YFlZMD6banjvjAwKdeJiYGUbId608x+oSNwv3vlyW2Gt6AGAgl3EYAuyYLGRX/xU8npQ==} + '@smithy/hash-stream-node@4.2.5': + resolution: {integrity: sha512-6+do24VnEyvWcGdHXomlpd0m8bfZePpUKBy7m311n+JuRwug8J4dCanJdTymx//8mi0nlkflZBvJe+dEO/O12Q==} engines: {node: '>=18.0.0'} - '@smithy/invalid-dependency@4.2.4': - resolution: {integrity: sha512-z6aDLGiHzsMhbS2MjetlIWopWz//K+mCoPXjW6aLr0mypF+Y7qdEh5TyJ20Onf9FbWHiWl4eC+rITdizpnXqOw==} + '@smithy/invalid-dependency@4.2.5': + resolution: {integrity: sha512-2L2erASEro1WC5nV+plwIMxrTXpvpfzl4e+Nre6vBVRR2HKeGGcvpJyyL3/PpiSg+cJG2KpTmZmq934Olb6e5A==} engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.2.0': @@ -8146,76 +8256,76 @@ packages: resolution: {integrity: sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==} engines: {node: '>=18.0.0'} - '@smithy/md5-js@4.2.4': - resolution: {integrity: sha512-h7kzNWZuMe5bPnZwKxhVbY1gan5+TZ2c9JcVTHCygB14buVGOZxLl+oGfpY2p2Xm48SFqEWdghpvbBdmaz3ncQ==} + '@smithy/md5-js@4.2.5': + resolution: {integrity: sha512-Bt6jpSTMWfjCtC0s79gZ/WZ1w90grfmopVOWqkI2ovhjpD5Q2XRXuecIPB9689L2+cCySMbaXDhBPU56FKNDNg==} engines: {node: '>=18.0.0'} - '@smithy/middleware-content-length@4.2.4': - resolution: {integrity: sha512-hJRZuFS9UsElX4DJSJfoX4M1qXRH+VFiLMUnhsWvtOOUWRNvvOfDaUSdlNbjwv1IkpVjj/Rd/O59Jl3nhAcxow==} + '@smithy/middleware-content-length@4.2.5': + resolution: {integrity: sha512-Y/RabVa5vbl5FuHYV2vUCwvh/dqzrEY/K2yWPSqvhFUwIY0atLqO4TienjBXakoy4zrKAMCZwg+YEqmH7jaN7A==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.3.6': - resolution: {integrity: sha512-PXehXofGMFpDqr933rxD8RGOcZ0QBAWtuzTgYRAHAL2BnKawHDEdf/TnGpcmfPJGwonhginaaeJIKluEojiF/w==} + '@smithy/middleware-endpoint@4.3.11': + resolution: {integrity: sha512-eJXq9VJzEer1W7EQh3HY2PDJdEcEUnv6sKuNt4eVjyeNWcQFS4KmnY+CKkYOIR6tSqarn6bjjCqg1UB+8UJiPQ==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.4.6': - resolution: {integrity: sha512-OhLx131znrEDxZPAvH/OYufR9d1nB2CQADyYFN4C3V/NQS7Mg4V6uvxHC/Dr96ZQW8IlHJTJ+vAhKt6oxWRndA==} + '@smithy/middleware-retry@4.4.11': + resolution: {integrity: sha512-EL5OQHvFOKneJVRgzRW4lU7yidSwp/vRJOe542bHgExN3KNThr1rlg0iE4k4SnA+ohC+qlUxoK+smKeAYPzfAQ==} engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@4.2.4': - resolution: {integrity: sha512-jUr3x2CDhV15TOX2/Uoz4gfgeqLrRoTQbYAuhLS7lcVKNev7FeYSJ1ebEfjk+l9kbb7k7LfzIR/irgxys5ZTOg==} + '@smithy/middleware-serde@4.2.6': + resolution: {integrity: sha512-VkLoE/z7e2g8pirwisLz8XJWedUSY8my/qrp81VmAdyrhi94T+riBfwP+AOEEFR9rFTSonC/5D2eWNmFabHyGQ==} engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.2.4': - resolution: {integrity: sha512-Gy3TKCOnm9JwpFooldwAboazw+EFYlC+Bb+1QBsSi5xI0W5lX81j/P5+CXvD/9ZjtYKRgxq+kkqd/KOHflzvgA==} + '@smithy/middleware-stack@4.2.5': + resolution: {integrity: sha512-bYrutc+neOyWxtZdbB2USbQttZN0mXaOyYLIsaTbJhFsfpXyGWUxJpEuO1rJ8IIJm2qH4+xJT0mxUSsEDTYwdQ==} engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.3.4': - resolution: {integrity: sha512-3X3w7qzmo4XNNdPKNS4nbJcGSwiEMsNsRSunMA92S4DJLLIrH5g1AyuOA2XKM9PAPi8mIWfqC+fnfKNsI4KvHw==} + '@smithy/node-config-provider@4.3.5': + resolution: {integrity: sha512-UTurh1C4qkVCtqggI36DGbLB2Kv8UlcFdMXDcWMbqVY2uRg0XmT9Pb4Vj6oSQ34eizO1fvR0RnFV4Axw4IrrAg==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.4.4': - resolution: {integrity: sha512-VXHGfzCXLZeKnFp6QXjAdy+U8JF9etfpUXD1FAbzY1GzsFJiDQRQIt2CnMUvUdz3/YaHNqT3RphVWMUpXTIODA==} + '@smithy/node-http-handler@4.4.5': + resolution: {integrity: sha512-CMnzM9R2WqlqXQGtIlsHMEZfXKJVTIrqCNoSd/QpAyp+Dw0a1Vps13l6ma1fH8g7zSPNsA59B/kWgeylFuA/lw==} engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.2.4': - resolution: {integrity: sha512-g2DHo08IhxV5GdY3Cpt/jr0mkTlAD39EJKN27Jb5N8Fb5qt8KG39wVKTXiTRCmHHou7lbXR8nKVU14/aRUf86w==} + '@smithy/property-provider@4.2.5': + resolution: {integrity: sha512-8iLN1XSE1rl4MuxvQ+5OSk/Zb5El7NJZ1td6Tn+8dQQHIjp59Lwl6bd0+nzw6SKm2wSSriH2v/I9LPzUic7EOg==} engines: {node: '>=18.0.0'} - '@smithy/protocol-http@5.3.4': - resolution: {integrity: sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==} + '@smithy/protocol-http@5.3.5': + resolution: {integrity: sha512-RlaL+sA0LNMp03bf7XPbFmT5gN+w3besXSWMkA8rcmxLSVfiEXElQi4O2IWwPfxzcHkxqrwBFMbngB8yx/RvaQ==} engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@4.2.4': - resolution: {integrity: sha512-KQ1gFXXC+WsbPFnk7pzskzOpn4s+KheWgO3dzkIEmnb6NskAIGp/dGdbKisTPJdtov28qNDohQrgDUKzXZBLig==} + '@smithy/querystring-builder@4.2.5': + resolution: {integrity: sha512-y98otMI1saoajeik2kLfGyRp11e5U/iJYH/wLCh3aTV/XutbGT9nziKGkgCaMD1ghK7p6htHMm6b6scl9JRUWg==} engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@4.2.4': - resolution: {integrity: sha512-aHb5cqXZocdzEkZ/CvhVjdw5l4r1aU/9iMEyoKzH4eXMowT6M0YjBpp7W/+XjkBnY8Xh0kVd55GKjnPKlCwinQ==} + '@smithy/querystring-parser@4.2.5': + resolution: {integrity: sha512-031WCTdPYgiQRYNPXznHXof2YM0GwL6SeaSyTH/P72M1Vz73TvCNH2Nq8Iu2IEPq9QP2yx0/nrw5YmSeAi/AjQ==} engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@4.2.4': - resolution: {integrity: sha512-fdWuhEx4+jHLGeew9/IvqVU/fxT/ot70tpRGuOLxE3HzZOyKeTQfYeV1oaBXpzi93WOk668hjMuuagJ2/Qs7ng==} + '@smithy/service-error-classification@4.2.5': + resolution: {integrity: sha512-8fEvK+WPE3wUAcDvqDQG1Vk3ANLR8Px979te96m84CbKAjBVf25rPYSzb4xU4hlTyho7VhOGnh5i62D/JVF0JQ==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.3.4': - resolution: {integrity: sha512-y5ozxeQ9omVjbnJo9dtTsdXj9BEvGx2X8xvRgKnV+/7wLBuYJQL6dOa/qMY6omyHi7yjt1OA97jZLoVRYi8lxA==} + '@smithy/shared-ini-file-loader@4.4.0': + resolution: {integrity: sha512-5WmZ5+kJgJDjwXXIzr1vDTG+RhF9wzSODQBfkrQ2VVkYALKGvZX1lgVSxEkgicSAFnFhPj5rudJV0zoinqS0bA==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.3.4': - resolution: {integrity: sha512-ScDCpasxH7w1HXHYbtk3jcivjvdA1VICyAdgvVqKhKKwxi+MTwZEqFw0minE+oZ7F07oF25xh4FGJxgqgShz0A==} + '@smithy/signature-v4@5.3.5': + resolution: {integrity: sha512-xSUfMu1FT7ccfSXkoLl/QRQBi2rOvi3tiBZU2Tdy3I6cgvZ6SEi9QNey+lqps/sJRnogIS+lq+B1gxxbra2a/w==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.9.2': - resolution: {integrity: sha512-gZU4uAFcdrSi3io8U99Qs/FvVdRxPvIMToi+MFfsy/DN9UqtknJ1ais+2M9yR8e0ASQpNmFYEKeIKVcMjQg3rg==} + '@smithy/smithy-client@4.9.7': + resolution: {integrity: sha512-pskaE4kg0P9xNQWihfqlTMyxyFR3CH6Sr6keHYghgyqqDXzjl2QJg5lAzuVe/LzZiOzcbcVtxKYi1/fZPt/3DA==} engines: {node: '>=18.0.0'} - '@smithy/types@4.8.1': - resolution: {integrity: sha512-N0Zn0OT1zc+NA+UVfkYqQzviRh5ucWwO7mBV3TmHHprMnfcJNfhlPicDkBHi0ewbh+y3evR6cNAW0Raxvb01NA==} + '@smithy/types@4.9.0': + resolution: {integrity: sha512-MvUbdnXDTwykR8cB1WZvNNwqoWVaTRA0RLlLmf/cIFNMM2cKWz01X4Ly6SMC4Kks30r8tT3Cty0jmeWfiuyHTA==} engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.2.4': - resolution: {integrity: sha512-w/N/Iw0/PTwJ36PDqU9PzAwVElo4qXxCC0eCTlUtIz/Z5V/2j/cViMHi0hPukSBHp4DVwvUlUhLgCzqSJ6plrg==} + '@smithy/url-parser@4.2.5': + resolution: {integrity: sha512-VaxMGsilqFnK1CeBX+LXnSuaMx4sTL/6znSZh2829txWieazdVxr54HmiyTsIbpOTLcf5nYpq9lpzmwRdxj6rQ==} engines: {node: '>=18.0.0'} '@smithy/util-base64@4.3.0': @@ -8242,32 +8352,32 @@ packages: resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.3.5': - resolution: {integrity: sha512-GwaGjv/QLuL/QHQaqhf/maM7+MnRFQQs7Bsl6FlaeK6lm6U7mV5AAnVabw68cIoMl5FQFyKK62u7RWRzWL25OQ==} + '@smithy/util-defaults-mode-browser@4.3.10': + resolution: {integrity: sha512-3iA3JVO1VLrP21FsZZpMCeF93aqP3uIOMvymAT3qHIJz2YlgDeRvNUspFwCNqd/j3qqILQJGtsVQnJZICh/9YA==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.2.8': - resolution: {integrity: sha512-gIoTf9V/nFSIZ0TtgDNLd+Ws59AJvijmMDYrOozoMHPJaG9cMRdqNO50jZTlbM6ydzQYY8L/mQ4tKSw/TB+s6g==} + '@smithy/util-defaults-mode-node@4.2.13': + resolution: {integrity: sha512-PTc6IpnpSGASuzZAgyUtaVfOFpU0jBD2mcGwrgDuHf7PlFgt5TIPxCYBDbFQs06jxgeV3kd/d/sok1pzV0nJRg==} engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@3.2.4': - resolution: {integrity: sha512-f+nBDhgYRCmUEDKEQb6q0aCcOTXRDqH5wWaFHJxt4anB4pKHlgGoYP3xtioKXH64e37ANUkzWf6p4Mnv1M5/Vg==} + '@smithy/util-endpoints@3.2.5': + resolution: {integrity: sha512-3O63AAWu2cSNQZp+ayl9I3NapW1p1rR5mlVHcF6hAB1dPZUQFfRPYtplWX/3xrzWthPGj5FqB12taJJCfH6s8A==} engines: {node: '>=18.0.0'} '@smithy/util-hex-encoding@4.2.0': resolution: {integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==} engines: {node: '>=18.0.0'} - '@smithy/util-middleware@4.2.4': - resolution: {integrity: sha512-fKGQAPAn8sgV0plRikRVo6g6aR0KyKvgzNrPuM74RZKy/wWVzx3BMk+ZWEueyN3L5v5EDg+P582mKU+sH5OAsg==} + '@smithy/util-middleware@4.2.5': + resolution: {integrity: sha512-6Y3+rvBF7+PZOc40ybeZMcGln6xJGVeY60E7jy9Mv5iKpMJpHgRE6dKy9ScsVxvfAYuEX4Q9a65DQX90KaQ3bA==} engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.2.4': - resolution: {integrity: sha512-yQncJmj4dtv/isTXxRb4AamZHy4QFr4ew8GxS6XLWt7sCIxkPxPzINWd7WLISEFPsIan14zrKgvyAF+/yzfwoA==} + '@smithy/util-retry@4.2.5': + resolution: {integrity: sha512-GBj3+EZBbN4NAqJ/7pAhsXdfzdlznOh8PydUijy6FpNIMnHPSMO2/rP4HKu+UFeikJxShERk528oy7GT79YiJg==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.5.5': - resolution: {integrity: sha512-7M5aVFjT+HPilPOKbOmQfCIPchZe4DSBc1wf1+NvHvSoFTiFtauZzT+onZvCj70xhXd0AEmYnZYmdJIuwxOo4w==} + '@smithy/util-stream@4.5.6': + resolution: {integrity: sha512-qWw/UM59TiaFrPevefOZ8CNBKbYEP6wBAIlLqxn3VAIo9rgnTNc4ASbVrqDmhuwI87usnjhdQrxodzAGFFzbRQ==} engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@4.2.0': @@ -8282,8 +8392,8 @@ packages: resolution: {integrity: sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==} engines: {node: '>=18.0.0'} - '@smithy/util-waiter@4.2.4': - resolution: {integrity: sha512-roKXtXIC6fopFvVOju8VYHtguc/jAcMlK8IlDOHsrQn0ayMkHynjm/D2DCMRf7MJFXzjHhlzg2edr3QPEakchQ==} + '@smithy/util-waiter@4.2.5': + resolution: {integrity: sha512-Dbun99A3InifQdIrsXZ+QLcC0PGBPAdrl4cj1mTgJvyc9N2zf7QSxg8TBkzsCmGJdE3TLbO9ycwpY0EkWahQ/g==} engines: {node: '>=18.0.0'} '@smithy/uuid@1.1.0': @@ -9338,68 +9448,68 @@ packages: resolution: {integrity: sha512-qMx1nOrzoB+PF+pzb26Q4Tc2sOlrx9Ba2UBNX9hB31Omrq+QoZ2Gly0KLrQWw4Of1AQ4J9lnD+XOdwOdcdXqqw==} engines: {node: '>=12.20.0'} - '@swc/core-darwin-arm64@1.15.0': - resolution: {integrity: sha512-TBKWkbnShnEjlIbO4/gfsrIgAqHBVqgPWLbWmPdZ80bF393yJcLgkrb7bZEnJs6FCbSSuGwZv2rx1jDR2zo6YA==} + '@swc/core-darwin-arm64@1.15.2': + resolution: {integrity: sha512-Ghyz4RJv4zyXzrUC1B2MLQBbppIB5c4jMZJybX2ebdEQAvryEKp3gq1kBksCNsatKGmEgXul88SETU19sMWcrw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.15.0': - resolution: {integrity: sha512-f5JKL1v1H56CIZc1pVn4RGPOfnWqPwmuHdpf4wesvXunF1Bx85YgcspW5YxwqG5J9g3nPU610UFuExJXVUzOiQ==} + '@swc/core-darwin-x64@1.15.2': + resolution: {integrity: sha512-7n/PGJOcL2QoptzL42L5xFFfXY5rFxLHnuz1foU+4ruUTG8x2IebGhtwVTpaDN8ShEv2UZObBlT1rrXTba15Zw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.15.0': - resolution: {integrity: sha512-duK6nG+WyuunnfsfiTUQdzC9Fk8cyDLqT9zyXvY2i2YgDu5+BH5W6wM5O4mDNCU5MocyB/SuF5YDF7XySnowiQ==} + '@swc/core-linux-arm-gnueabihf@1.15.2': + resolution: {integrity: sha512-ZUQVCfRJ9wimuxkStRSlLwqX4TEDmv6/J+E6FicGkQ6ssLMWoKDy0cAo93HiWt/TWEee5vFhFaSQYzCuBEGO6A==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.15.0': - resolution: {integrity: sha512-ITe9iDtTRXM98B91rvyPP6qDVbhUBnmA/j4UxrHlMQ0RlwpqTjfZYZkD0uclOxSZ6qIrOj/X5CaoJlDUuQ0+Cw==} + '@swc/core-linux-arm64-gnu@1.15.2': + resolution: {integrity: sha512-GZh3pYBmfnpQ+JIg+TqLuz+pM+Mjsk5VOzi8nwKn/m+GvQBsxD5ectRtxuWUxMGNG8h0lMy4SnHRqdK3/iJl7A==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.15.0': - resolution: {integrity: sha512-Q5ldc2bzriuzYEoAuqJ9Vr3FyZhakk5hiwDbniZ8tlEXpbjBhbOleGf9/gkhLaouDnkNUEazFW9mtqwUTRdh7Q==} + '@swc/core-linux-arm64-musl@1.15.2': + resolution: {integrity: sha512-5av6VYZZeneiYIodwzGMlnyVakpuYZryGzFIbgu1XP8wVylZxduEzup4eP8atiMDFmIm+s4wn8GySJmYqeJC0A==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.15.0': - resolution: {integrity: sha512-pY4is+jEpOxlYCSnI+7N8Oxbap9TmTz5YT84tUvRTlOlTBwFAUlWFCX0FRwWJlsfP0TxbqhIe8dNNzlsEmJbXQ==} + '@swc/core-linux-x64-gnu@1.15.2': + resolution: {integrity: sha512-1nO/UfdCLuT/uE/7oB3EZgTeZDCIa6nL72cFEpdegnqpJVNDI6Qb8U4g/4lfVPkmHq2lvxQ0L+n+JdgaZLhrRA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.15.0': - resolution: {integrity: sha512-zYEt5eT8y8RUpoe7t5pjpoOdGu+/gSTExj8PV86efhj6ugB3bPlj3Y85ogdW3WMVXr4NvwqvzdaYGCZfXzSyVg==} + '@swc/core-linux-x64-musl@1.15.2': + resolution: {integrity: sha512-Ksfrb0Tx310kr+TLiUOvB/I80lyZ3lSOp6cM18zmNRT/92NB4mW8oX2Jo7K4eVEI2JWyaQUAFubDSha2Q+439A==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.15.0': - resolution: {integrity: sha512-zC1rmOgFH5v2BCbByOazEqs0aRNpTdLRchDExfcCfgKgeaD+IdpUOqp7i3VG1YzkcnbuZjMlXfM0ugpt+CddoA==} + '@swc/core-win32-arm64-msvc@1.15.2': + resolution: {integrity: sha512-IzUb5RlMUY0r1A9IuJrQ7Tbts1wWb73/zXVXT8VhewbHGoNlBKE0qUhKMED6Tv4wDF+pmbtUJmKXDthytAvLmg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.15.0': - resolution: {integrity: sha512-7t9U9KwMwQblkdJIH+zX1V4q1o3o41i0HNO+VlnAHT5o+5qHJ963PHKJ/pX3P2UlZnBCY465orJuflAN4rAP9A==} + '@swc/core-win32-ia32-msvc@1.15.2': + resolution: {integrity: sha512-kCATEzuY2LP9AlbU2uScjcVhgnCAkRdu62vbce17Ro5kxEHxYWcugkveyBRS3AqZGtwAKYbMAuNloer9LS/hpw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.15.0': - resolution: {integrity: sha512-VE0Zod5vcs8iMLT64m5QS1DlTMXJFI/qSgtMDRx8rtZrnjt6/9NW8XUaiPJuRu8GluEO1hmHoyf1qlbY19gGSQ==} + '@swc/core-win32-x64-msvc@1.15.2': + resolution: {integrity: sha512-iJaHeYCF4jTn7OEKSa3KRiuVFIVYts8jYjNmCdyz1u5g8HRyTDISD76r8+ljEOgm36oviRQvcXaw6LFp1m0yyA==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.15.0': - resolution: {integrity: sha512-8SnJV+JV0rYbfSiEiUvYOmf62E7QwsEG+aZueqSlKoxFt0pw333+bgZSQXGUV6etXU88nxur0afVMaINujBMSw==} + '@swc/core@1.15.2': + resolution: {integrity: sha512-OQm+yJdXxvSjqGeaWhP6Ia264ogifwAO7Q12uTDVYj/Ks4jBTI4JknlcjDRAXtRhqbWsfbZyK/5RtuIPyptk3w==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -9435,8 +9545,8 @@ packages: '@tanstack/query-core@5.77.1': resolution: {integrity: sha512-nfxVhy4UynChMFfN4NxwI8pktV9R3Zt/ROxOAe6pdOf8CigDLn26p+ex1YW5uien26BBICLmN0dTvIELHCs5vw==} - '@tanstack/query-core@5.90.7': - resolution: {integrity: sha512-6PN65csiuTNfBMXqQUxQhCNdtm1rV+9kC9YwWAIKcaxAauq3Wu7p18j3gQY3YIBJU70jT/wzCCZ2uqto/vQgiQ==} + '@tanstack/query-core@5.90.10': + resolution: {integrity: sha512-EhZVFu9rl7GfRNuJLJ3Y7wtbTnENsvzp+YpcAV7kCYiXni1v8qZh++lpw4ch4rrwC0u/EZRnBHIehzCGzwXDSQ==} '@tanstack/query-persist-client-core@4.27.0': resolution: {integrity: sha512-A+dPA7zG0MJOMDeBc/2WcKXW4wV2JMkeBVydobPW9G02M4q0yAj7vI+7SmM2dFuXyIvxXp4KulCywN6abRKDSQ==} @@ -9537,20 +9647,20 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@textlint/ast-node-types@14.8.4': - resolution: {integrity: sha512-+fI7miec/r9VeniFV9ppL4jRCmHNsTxieulTUf/4tvGII3db5hGriKHC4p/diq1SkQ9Sgs7kg6UyydxZtpTz1Q==} + '@textlint/ast-node-types@15.4.0': + resolution: {integrity: sha512-IqY8i7IOGuvy05wZxISB7Me1ZyrvhaQGgx6DavfQjH3cfwpPFdDbDYmMXMuSv2xLS1kDB1kYKBV7fL2Vi16lRA==} - '@textlint/linter-formatter@14.8.4': - resolution: {integrity: sha512-sZ0UfYRDBNHnfMVBqLqqYnqTB7Ec169ljlmo+SEHR1T+dHUPYy1/DZK4p7QREXlBSFL4cnkswETCbc9xRodm4Q==} + '@textlint/linter-formatter@15.4.0': + resolution: {integrity: sha512-rfqOZmnI1Wwc/Pa4LK+vagvVPmvxf9oRsBRqIOB04DwhucingZyAIJI/TyG18DIDYbP2aFXBZ3oOvyAxHe/8PQ==} - '@textlint/module-interop@14.8.4': - resolution: {integrity: sha512-1LdPYLAVpa27NOt6EqvuFO99s4XLB0c19Hw9xKSG6xQ1K82nUEyuWhzTQKb3KJ5Qx7qj14JlXZLfnEuL6A16Bw==} + '@textlint/module-interop@15.4.0': + resolution: {integrity: sha512-uGf+SFIfzOLCbZI0gp+2NLsrkSArsvEWulPP6lJuKp7yRHadmy7Xf/YHORe46qhNyyxc8PiAfiixHJSaHGUrGg==} - '@textlint/resolver@14.8.4': - resolution: {integrity: sha512-nMDOgDAVwNU9ommh+Db0U+MCMNDPbQ/1HBNjbnHwxZkCpcT6hsAJwBe38CW/DtWVUv8yeR4R40IYNPT84srNwA==} + '@textlint/resolver@15.4.0': + resolution: {integrity: sha512-Vh/QceKZQHFJFG4GxxIsKM1Xhwv93mbtKHmFE5/ybal1mIKHdqF03Z9Guaqt6Sx/AeNUshq0hkMOEhEyEWnehQ==} - '@textlint/types@14.8.4': - resolution: {integrity: sha512-9nyY8vVXlr8hHKxa6+37omJhXWCwovMQcgMteuldYd4dOxGm14AK2nXdkgtKEUQnzLGaXy46xwLCfhQy7V7/YA==} + '@textlint/types@15.4.0': + resolution: {integrity: sha512-ZMwJgw/xjxJufOD+IB7I2Enl9Si4Hxo04B76RwUZ5cKBKzOPcmd6WvGe2F7jqdgmTdGnfMU+Bo/joQrjPNIWqg==} '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} @@ -9581,8 +9691,8 @@ packages: '@ts-morph/common@0.27.0': resolution: {integrity: sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==} - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + '@tsconfig/node10@1.0.12': + resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} '@tsconfig/node12@1.0.11': resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} @@ -9593,6 +9703,9 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -9768,6 +9881,9 @@ packages: '@types/jest@29.5.14': resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + '@types/jest@30.0.0': + resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==} + '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} @@ -9853,8 +9969,8 @@ packages: '@types/node@18.19.130': resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - '@types/node@20.19.24': - resolution: {integrity: sha512-FE5u0ezmi6y9OZEzlJfg37mqqf6ZDSF2V/NLjUyGrR9uTZ7Sb9F7bLNZ03S4XVUNRWGA7Ck4c1kK+YnuWjl+DA==} + '@types/node@20.19.25': + resolution: {integrity: sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ==} '@types/node@22.15.18': resolution: {integrity: sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==} @@ -9928,8 +10044,8 @@ packages: '@types/react-test-renderer@19.1.0': resolution: {integrity: sha512-XD0WZrHqjNrxA/MaR9O22w/RNidWR9YZmBdRGI7wcnWGrv/3dA8wKCJ8m63Sn+tLJhcjmuhOi629N66W6kgWzQ==} - '@types/react@17.0.89': - resolution: {integrity: sha512-I98SaDCar5lvEYl80ClRIUztH/hyWHR+I2f+5yTVp/MQ205HgYkA2b5mVdry/+nsEIrf8I65KA5V/PASx68MsQ==} + '@types/react@17.0.90': + resolution: {integrity: sha512-P9beVR/x06U9rCJzSxtENnOr4BrbJ6VrsrDTc+73TtHv9XHhryXKbjGRB+6oooB2r0G/pQkD/S4dHo/7jUfwFw==} '@types/react@18.2.0': resolution: {integrity: sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA==} @@ -9955,8 +10071,8 @@ packages: '@types/scheduler@0.26.0': resolution: {integrity: sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA==} - '@types/selenium-webdriver@4.35.3': - resolution: {integrity: sha512-V8rEfVHFNsamhflPVqEgP1u8VShsEBAuQoLkIzpjwvPOkfmcNFp+mzJzFBwcIS9S90bxgRN3sp+Us/Mx55MXIA==} + '@types/selenium-webdriver@4.35.4': + resolution: {integrity: sha512-hZFsK0dt/2PA5eLrFOJwkoTBpPXtaKnln7NCtg3pMAPwg7DXG6kTilHoAw8KzsQeDFLJ0mYcL6dPSMt1Qk7eSw==} '@types/semver@7.7.1': resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} @@ -10039,8 +10155,8 @@ packages: '@types/vscode-webview@1.57.5': resolution: {integrity: sha512-iBAUYNYkz+uk1kdsq05fEcoh8gJmwT3lqqFPN7MGyjQ3HVloViMdo7ZJ8DFIP8WOK74PjOEilosqAyxV2iUFUw==} - '@types/vscode@1.105.0': - resolution: {integrity: sha512-Lotk3CTFlGZN8ray4VxJE7axIyLZZETQJVWi/lYoUVQuqfRxlQhVOfoejsD2V3dVXPSbS15ov5ZyowMAzgUqcw==} + '@types/vscode@1.106.1': + resolution: {integrity: sha512-R/HV8u2h8CAddSbX8cjpdd7B8/GnE4UjgjpuGuHcbp1xV6yh4OeqU4L1pKjlwujCrSFS0MOpwJAIs/NexMB1fQ==} '@types/webpack-env@1.18.8': resolution: {integrity: sha512-G9eAoJRMLjcvN4I08wB5I7YofOb/kaJNd5uoCMX+LbKXTPCF+ZIHuqTnFaK9Jz1rgs035f9JUPUhNFtqgucy/A==} @@ -10066,11 +10182,11 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@15.0.19': - resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==} + '@types/yargs@15.0.20': + resolution: {integrity: sha512-KIkX+/GgfFitlASYCGoSF+T4XRXhOubJLhkLVtSfsRTe9jWMmuM2g28zQ41BtPTG7TRBb2xHW+LCNVE9QR/vsg==} - '@types/yargs@17.0.34': - resolution: {integrity: sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A==} + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} '@typescript-eslint/eslint-plugin@2.34.0': resolution: {integrity: sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==} @@ -10198,8 +10314,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/project-service@8.46.3': - resolution: {integrity: sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ==} + '@typescript-eslint/project-service@8.47.0': + resolution: {integrity: sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -10224,8 +10340,8 @@ packages: resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.46.3': - resolution: {integrity: sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==} + '@typescript-eslint/scope-manager@8.47.0': + resolution: {integrity: sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/tsconfig-utils@8.33.1': @@ -10234,8 +10350,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/tsconfig-utils@8.46.3': - resolution: {integrity: sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA==} + '@typescript-eslint/tsconfig-utils@8.47.0': + resolution: {integrity: sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -10304,8 +10420,8 @@ packages: resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.46.3': - resolution: {integrity: sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==} + '@typescript-eslint/types@8.47.0': + resolution: {integrity: sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@2.34.0': @@ -10356,8 +10472,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.46.3': - resolution: {integrity: sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==} + '@typescript-eslint/typescript-estree@8.47.0': + resolution: {integrity: sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -10394,8 +10510,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.46.3': - resolution: {integrity: sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g==} + '@typescript-eslint/utils@8.47.0': + resolution: {integrity: sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -10421,8 +10537,8 @@ packages: resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.46.3': - resolution: {integrity: sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==} + '@typescript-eslint/visitor-keys@8.47.0': + resolution: {integrity: sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typespec/ts-http-runtime@0.3.2': @@ -10445,6 +10561,101 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + cpu: [x64] + os: [win32] + '@vercel/oidc@3.0.3': resolution: {integrity: sha512-yNEQvPcVrK9sIe637+I0jD6leluPxzwJKx/Haw6F4H77CdDsszUn5V3o96LPziXkSNE2B83+Z3mjqGKBK/R6Gg==} engines: {node: '>= 20'} @@ -10526,13 +10737,13 @@ packages: cpu: [x64] os: [alpine] - '@vscode/vsce-sign-darwin-arm64@2.0.2': - resolution: {integrity: sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ==} + '@vscode/vsce-sign-darwin-arm64@2.0.6': + resolution: {integrity: sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==} cpu: [arm64] os: [darwin] - '@vscode/vsce-sign-darwin-x64@2.0.2': - resolution: {integrity: sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw==} + '@vscode/vsce-sign-darwin-x64@2.0.6': + resolution: {integrity: sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==} cpu: [x64] os: [darwin] @@ -10561,21 +10772,16 @@ packages: cpu: [x64] os: [win32] - '@vscode/vsce-sign@2.0.8': - resolution: {integrity: sha512-H7p8E11cZMj6mt8xIi3QXZ7dSU/2MH3Y7c+5JfUhHAV4xfaPNc8ozwLVK282c6ah596KoIJIdPUlNHV7Qs/5JA==} - - '@vscode/vsce@2.21.1': - resolution: {integrity: sha512-f45/aT+HTubfCU2oC7IaWnH9NjOWp668ML002QiFObFRVUCoLtcwepp9mmql/ArFUy+HCHp54Xrq4koTcOD6TA==} - engines: {node: '>= 14'} - hasBin: true + '@vscode/vsce-sign@2.0.9': + resolution: {integrity: sha512-8IvaRvtFyzUnGGl3f5+1Cnor3LqaUWvhaUjAYO8Y39OUYlOf3cRd+dowuQYLpZcP3uwSG+mURwjEBOSq4SOJ0g==} '@vscode/vsce@2.32.0': resolution: {integrity: sha512-3EFJfsgrSftIqt3EtdRcAygy/OJ3hstyI1cDmIgkU9CFZW5C+3djr6mfosndCUqcVYuyjmxOK1xmFp/Bq7+NIg==} engines: {node: '>= 16'} hasBin: true - '@vscode/vsce@3.4.2': - resolution: {integrity: sha512-U2gC7GiQc22nxRpWH4cdW16rRr5u9w+Bjsjm8g8mEjY4aeOG1U6/3XNGq+ElwdeoT8jAyhBmBAuYG7INcSe/6A==} + '@vscode/vsce@3.7.0': + resolution: {integrity: sha512-LY9r2T4joszRjz4d92ZPl6LTBUPS4IWH9gG/3JUv+1QyBJrveZlcVISuiaq0EOpmcgFh0GgVgKD4rD/21Tu8sA==} engines: {node: '>= 20'} hasBin: true @@ -10848,8 +11054,8 @@ packages: resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} engines: {node: '>=12'} - ai@5.0.89: - resolution: {integrity: sha512-8Nq+ZojGacQrupoJEQLrTDzT5VtR3gyp5AaqFSV3tzsAXlYQ9Igb7QE3yeoEdzOk5IRfDwWL7mDCUD+oBg1hDA==} + ai@5.0.93: + resolution: {integrity: sha512-9eGcu+1PJgPg4pRNV4L7tLjRR3wdJC9CXQoNMvtqvYNOLZHFCzjHtVIOr2SIkoJJeu2+sOy3hyiSuTmy2MA40g==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -10898,8 +11104,8 @@ packages: resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} engines: {node: '>=0.4.2'} - anser@2.3.2: - resolution: {integrity: sha512-PMqBCBvrOVDRqLGooQb+z+t1Q0PiPyurUQeZRR5uHBOVZcW8B04KMmnT12USnhpNX2wCPagWzLVppQMUG3u0Dw==} + anser@2.3.3: + resolution: {integrity: sha512-QGY1oxYE7/kkeNmbtY/2ZjQ07BCG3zYdz+k/+sf69kMzEIxb93guHkPnIXITQ+BYi61oQwG74twMOX1tD4aesg==} ansi-align@2.0.0: resolution: {integrity: sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA==} @@ -11235,8 +11441,8 @@ packages: autolinker@3.16.2: resolution: {integrity: sha512-JiYl7j2Z19F9NdTmirENSUUIIL/9MytEWtmzhfmsKPCp9E+G35Y0UNCMoM9tFigxT59qSc8Ml2dlZXOCVTYwuA==} - autoprefixer@10.4.21: - resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} + autoprefixer@10.4.22: + resolution: {integrity: sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -11279,9 +11485,6 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - azure-devops-node-api@11.2.0: - resolution: {integrity: sha512-XdiGPhrpaT5J8wdERRKs5g8E0Zy1pvOYTli7z9E8nmOn3YGp4FhtjhrOyFmX/8veWCwdI69mCHKJw6l+4J/bHA==} - azure-devops-node-api@12.5.0: resolution: {integrity: sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==} @@ -11368,6 +11571,12 @@ packages: peerDependencies: '@babel/core': ^7.8.0 + babel-jest@30.2.0: + resolution: {integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-0 + babel-loader@10.0.0: resolution: {integrity: sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==} engines: {node: ^18.20.0 || ^20.10.0 || >=22.0.0} @@ -11433,6 +11642,10 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} + babel-plugin-istanbul@7.0.1: + resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==} + engines: {node: '>=12'} + babel-plugin-jest-hoist@20.0.3: resolution: {integrity: sha512-rnyXaCLaHX6BjzT9h4UI1xK7oobCwtLfhompk0qxbcQNhw8JEidggjO1KonVrpdd2+q3QAww3DwVdTYs0g373Q==} @@ -11447,6 +11660,10 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@30.2.0: + resolution: {integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + babel-plugin-macros@2.8.0: resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} @@ -11651,6 +11868,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + babel-preset-jest@30.2.0: + resolution: {integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-beta.1 + babel-preset-react-app@3.1.2: resolution: {integrity: sha512-/sh5Qd5T08PYa6t4kuCdKh9tXp6/m/Jwyx7PJTqugsYMfsDUJMlBXOs5EwFODHprzjWrmQ0SydnMZu9FY4MZYg==} peerDependencies: @@ -11701,8 +11924,8 @@ packages: bare-abort-controller: optional: true - bare-fs@4.5.0: - resolution: {integrity: sha512-GljgCjeupKZJNetTqxKaQArLK10vpmK28or0+RwWjEl5Rk+/xG3wkpmkv+WrcBm3q1BwHKlnhXzR8O37kcvkXQ==} + bare-fs@4.5.1: + resolution: {integrity: sha512-zGUCsm3yv/ePt2PHNbVxjjn0nNB1MkIaR4wOCxJ2ig5pCf5cCVAYJXVhQg/3OhhJV6DB1ts7Hv0oUaElc2TPQg==} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -11737,8 +11960,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.8.25: - resolution: {integrity: sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==} + baseline-browser-mapping@2.8.29: + resolution: {integrity: sha512-sXdt2elaVnhpDNRDz+1BDx1JQoJRuNk7oVlAlbGiFkLikHCAQiccexF/9e91zVi6RCgqspl04aP+6Cnl9zRLrA==} hasBin: true basic-auth@2.0.1: @@ -11870,8 +12093,8 @@ packages: deprecated: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools. hasBin: true - browserslist@4.27.0: - resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==} + browserslist@4.28.0: + resolution: {integrity: sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -11982,8 +12205,8 @@ packages: resolution: {integrity: sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg==} engines: {node: '>=18'} - cacheable@2.1.1: - resolution: {integrity: sha512-LmF4AXiSNdiRbI2UjH8pAp9NIXxeQsTotpEaegPiDcnN0YPygDJDV3l/Urc0mL72JWdATEorKqIHEx55nDlONg==} + cacheable@2.2.0: + resolution: {integrity: sha512-LEJxRqfeomiiRd2t0uON6hxAtgOoWDfY3fugebbz+J3vDLO+SkdfFChQcOHTZhj9SYa9iwE9MGYNX72dKiOE4w==} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} @@ -12055,19 +12278,16 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-db@1.0.30001754: - resolution: {integrity: sha512-xiQRtIvVj33+nRR+rMUaDS+GTbU2J47APUoxmlTXimjJ0f20AY2dszjjo6eBli96r68al3d9OUnztZJmFIhN6w==} + caniuse-db@1.0.30001755: + resolution: {integrity: sha512-R8xk0HVpfPgDIp4rpbHNYMZY3Bnr5XgEvQ54sbPQwIL2rBruVQNipYcGKlve7txXcgoD7ihoQDLU020hFysTLw==} - caniuse-lite@1.0.30001754: - resolution: {integrity: sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==} + caniuse-lite@1.0.30001755: + resolution: {integrity: sha512-44V+Jm6ctPj7R52Na4TLi3Zri4dWUljJd+RDm+j8LtNCc/ihLCT+X1TzoOAkRETEWqjuLnh9581Tl80FvK7jVA==} canvas@3.2.0: resolution: {integrity: sha512-jk0GxrLtUEmW/TmFsk2WghvgHe8B0pxGilqCL21y8lHkPUGa6FTsnCNtHPOzT8O3y+N+m3espawV80bbBlgfTA==} engines: {node: ^18.12.0 || >= 20.9.0} - capital-case@1.0.4: - resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} - capture-exit@2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} engines: {node: 6.* || 8.* || >= 10.*} @@ -12084,6 +12304,10 @@ packages: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} engines: {node: '>=4'} + case@1.6.3: + resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} + engines: {node: '>= 0.8.0'} + caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -12124,9 +12348,6 @@ packages: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - change-case@4.1.2: - resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} - char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -12204,12 +12425,19 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + ci-info@4.3.1: + resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + engines: {node: '>=8'} + citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cjs-module-lexer@2.1.1: + resolution: {integrity: sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ==} + clap@1.2.3: resolution: {integrity: sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==} engines: {node: '>=0.10.0'} @@ -12398,8 +12626,8 @@ packages: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-convert@3.1.2: - resolution: {integrity: sha512-UNqkvCDXstVck3kdowtOTWROIJQwafjOfXSmddoDrXo4cewMKmusCeF22Q24zvjR8nwWib/3S/dfyzPItPEiJg==} + color-convert@3.1.3: + resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==} engines: {node: '>=14.6'} color-name@1.1.3: @@ -12408,15 +12636,15 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-name@2.0.2: - resolution: {integrity: sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==} + color-name@2.1.0: + resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==} engines: {node: '>=12.20'} color-string@0.3.0: resolution: {integrity: sha512-sz29j1bmSDfoAxKIEU6zwoIZXN6BrFbAMIhfYCNyiZXBDuU/aiHlN84lp/xDzL2ubyFhLDobHIlU1X70XRrMDA==} - color-string@2.1.2: - resolution: {integrity: sha512-RxmjYxbWemV9gKu4zPgiZagUxbH3RQpEIO77XoSSX0ivgABDZ+h8Zuash/EMFLTI4N9QgFPOJ6JQpPZKFxa+dA==} + color-string@2.1.4: + resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} engines: {node: '>=18'} color-support@1.1.3: @@ -12426,8 +12654,8 @@ packages: color@0.11.4: resolution: {integrity: sha512-Ajpjd8asqZ6EdxQeqGzU5WBhhTfJ/0cA4Wlbre7e5vXfmDSmda7Ov6jeKoru+b0vHcb1CqvuroTHp5zIWzhVMA==} - color@5.0.2: - resolution: {integrity: sha512-e2hz5BzbUPcYlIRHo8ieAhYgoajrJr+hWoceg6E345TPsATMUKqDgzt8fSXZJJbxfpiPzkWyphz8yn8At7q3fA==} + color@5.0.3: + resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==} engines: {node: '>=18'} colord@2.9.3: @@ -12508,6 +12736,10 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + common-path-prefix@3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} @@ -12561,9 +12793,6 @@ packages: console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - constant-case@3.0.4: - resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} - constants-browserify@1.0.0: resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} @@ -12575,9 +12804,9 @@ packages: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} - content-disposition@1.0.0: - resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==} - engines: {node: '>= 0.6'} + content-disposition@1.0.1: + resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} + engines: {node: '>=18'} content-type-parser@1.0.2: resolution: {integrity: sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==} @@ -12628,18 +12857,18 @@ packages: resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==} hasBin: true - core-js-compat@3.46.0: - resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} + core-js-compat@3.47.0: + resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} - core-js-pure@3.46.0: - resolution: {integrity: sha512-NMCW30bHNofuhwLhYPt66OLOKTMbOhgTTatKVbaQC3KRHpTCiRIBYvtshr+NBYSnBxwAFhjW/RfJ0XbIjS16rw==} + core-js-pure@3.47.0: + resolution: {integrity: sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==} core-js@2.6.12: resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. - core-js@3.46.0: - resolution: {integrity: sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==} + core-js@3.47.0: + resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -12891,8 +13120,8 @@ packages: resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} cubic2quad@1.2.1: resolution: {integrity: sha512-wT5Y7mO8abrV16gnssKdmIhIbA9wSkeMzhh27jAguKrV82i24wER0vL5TGhUJ9dbJNDcigoRZ0IAHFEEEI4THQ==} @@ -13056,12 +13285,12 @@ packages: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} - default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} engines: {node: '>=18'} - default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + default-browser@5.4.0: + resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==} engines: {node: '>=18'} default-require-extensions@1.0.0: @@ -13386,8 +13615,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.249: - resolution: {integrity: sha512-5vcfL3BBe++qZ5kuFhD/p8WOM1N9m3nwvJPULJx+4xf2usSlZFJ0qoNYO2fOX4hi3ocuDcmDobtA+5SFr4OmBg==} + electron-to-chromium@1.5.255: + resolution: {integrity: sha512-Z9oIp4HrFF/cZkDPMpz2XSuVpc1THDpT4dlmATFlJUIBVCy9Vap5/rIXsASP1CscBacBqhabwh8vLctqBwEerQ==} email-addresses@5.0.0: resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} @@ -13538,8 +13767,8 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - es-toolkit@1.41.0: - resolution: {integrity: sha512-bDd3oRmbVgqZCJS6WmeQieOrzpl3URcWBUVDXxOELlUW2FuW+0glPOz1n0KnRie+PdyvUZcXz2sOn00c6pPRIA==} + es-toolkit@1.42.0: + resolution: {integrity: sha512-SLHIyY7VfDJBM8clz4+T2oquwTQxEzu263AyhVK4jREOAwJ+8eebaa4wM3nlvnAqhDrMm2EsA6hWHaQsMPQ1nA==} es5-ext@0.10.64: resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} @@ -13555,9 +13784,6 @@ packages: es6-promise@4.2.8: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - es6-promisify@6.1.1: - resolution: {integrity: sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==} - es6-shim@0.35.8: resolution: {integrity: sha512-Twf7I2v4/1tLoIXMT8HlqaBSS5H2wQTs2wx3MNYCI8K1R1/clXyCazrcVCPm/FuO9cyV8+leEaZOWD5C253NDg==} @@ -13949,6 +14175,10 @@ packages: exenv-es6@1.1.1: resolution: {integrity: sha512-vlVu3N8d6yEMpMsEm+7sUBAI81aqYYuEvfK0jNqmdb/OPXzzH7QWDDnVjMvDSY47JdHEqx/dfC/q8WkfoTmpGQ==} + exit-x@0.2.2: + resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} + engines: {node: '>= 0.8.0'} + exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -13972,6 +14202,10 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expect@30.2.0: + resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + exponential-backoff@3.1.3: resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} @@ -14022,9 +14256,9 @@ packages: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} engines: {'0': node >=0.6.0} - fantasticon@1.2.3: - resolution: {integrity: sha512-VoPXI8+wbLq4qooK2LAFRcqKtOCR20+InF/Io/9I1kLp3IT+LwqJgeFijFvp9a3HRZptfCAxNvazoVHn4kihzQ==} - engines: {node: '>= 10.0.0'} + fantasticon@3.0.0: + resolution: {integrity: sha512-PylulixZA8I0SeiUKtuyOhwrz/ojZTSA1KXddipvEyQXCVrpPMTnSXzaE9nXXK7nCjJWFkqoBAQ1aBdaxMltrg==} + engines: {node: '>= 16.0.0'} hasBin: true fast-deep-equal@1.1.0: @@ -14284,8 +14518,8 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flat-cache@6.1.18: - resolution: {integrity: sha512-JUPnFgHMuAVmLmoH9/zoZ6RHOt5n9NlUw/sDXsTbROJ2SFoS2DS4s+swAV6UTeTbGH/CAsZIE6M8TaG/3jVxgQ==} + flat-cache@6.1.19: + resolution: {integrity: sha512-l/K33newPTZMTGAnnzaiqSl6NnH7Namh8jBNjrgjprWxGmZUuxx/sJNIRaijOh3n7q7ESbhNZC+pvVZMFdeU4A==} flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -14301,8 +14535,8 @@ packages: resolution: {integrity: sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==} deprecated: flatten is deprecated in favor of utility frameworks such as lodash. - flow-parser@0.290.0: - resolution: {integrity: sha512-9qXeNyrHPIoRK23kX7HNp275RYMy2y1AWb37y86ZTH/2UvfrofBis18aBunzfTIXkRpeD0F/w/uAKFhLUpboqQ==} + flow-parser@0.291.0: + resolution: {integrity: sha512-MLqjFn72Dvndqrkjy280HaIs4AV9Z6nxVRmNPO3TjbYcipg4hR7QX7tEYZYsVvaaZWZPGe6Mithluk2aPGlDOw==} engines: {node: '>=0.4.0'} flush-write-stream@1.1.1: @@ -14386,8 +14620,8 @@ packages: resolution: {integrity: sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==} engines: {node: '>= 18'} - form-data@4.0.4: - resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} format@0.2.2: @@ -14402,8 +14636,8 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} framer-motion@6.5.1: resolution: {integrity: sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==} @@ -14531,9 +14765,6 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - geometry-interfaces@1.1.4: - resolution: {integrity: sha512-qD6OdkT6NcES9l4Xx3auTpwraQruU7dARbQPVO71MKvkGYw5/z/oIiGymuFXrRaEQa5Y67EIojUpaLeGEa5hGA==} - get-caller-file@1.0.3: resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} @@ -14669,12 +14900,12 @@ packages: resolution: {integrity: sha512-ZyqlgowMbfj2NPjxaZZ/EtsXlOch28FRXgMd64vqZWk1bT9+wvSRLYD1om9M7QfQru51zJPAT17qXm4/zd+9QA==} engines: {node: '>= 0.10'} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} hasBin: true - glob@11.0.3: - resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} + glob@11.1.0: + resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} engines: {node: 20 || >=22} hasBin: true @@ -14893,6 +15124,10 @@ packages: resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} engines: {node: '>= 0.4.0'} + hashery@1.2.0: + resolution: {integrity: sha512-43XJKpwle72Ik5Zpam7MuzRWyNdwwdf6XHlh8wCj2PggvWf+v/Dm5B0dxGZOmddidgeO6Ofu9As/o231Ti/9PA==} + engines: {node: '>=20'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -14958,9 +15193,6 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - header-case@2.0.4: - resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} - heap@0.2.5: resolution: {integrity: sha512-G7HLD+WKcrOyJP5VQwYZNC3Z6FcQ7YYjEFiFoIj8PfEr73mu421o8B1N5DKUcc8K37EsJ2XXWA8DtrDz/2dReg==} @@ -14988,8 +15220,8 @@ packages: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} - hookified@1.12.2: - resolution: {integrity: sha512-aokUX1VdTpI0DUsndvW+OiwmBpKCu/NgRsSSkuSY0zq8PY6Q6a+lmOfAFDXAAOtBqJELvcWY9L1EVtzjbQcMdg==} + hookified@1.13.0: + resolution: {integrity: sha512-6sPYUY8olshgM/1LDNW4QZQN0IqgKhtl/1C8koNZBJrKLBk3AZl6chQtNwpNztvfiApHMEwMHek5rv993PRbWw==} hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -15071,8 +15303,8 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 - html-webpack-plugin@5.6.4: - resolution: {integrity: sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw==} + html-webpack-plugin@5.6.5: + resolution: {integrity: sha512-4xynFbKNNk+WlzXeQQ+6YYsH2g7mpfPszQZUi3ovKlj+pDmngQ7vRXjrrmGROabmKwyQkcgcX5hqfOwHbFmK5g==} engines: {node: '>=10.13.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -15289,6 +15521,10 @@ packages: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} + index-to-position@1.2.0: + resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} + engines: {node: '>=18'} + indexes-of@1.0.1: resolution: {integrity: sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==} @@ -15311,8 +15547,8 @@ packages: inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - inline-style-parser@0.2.6: - resolution: {integrity: sha512-gtGXVaBdl5mAes3rPcMedEBm12ibjt1kDMFfheul1wUAOVEJW60voNdMVzVkfLN06O7ZaD/rxhfKgtlgtTbMjg==} + inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} inquirer@3.3.0: resolution: {integrity: sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==} @@ -15351,8 +15587,8 @@ packages: resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==} engines: {node: '>=0.10.0'} - ip-address@10.0.1: - resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} + ip-address@10.1.0: + resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} engines: {node: '>= 12'} ip-regex@2.1.0: @@ -15881,6 +16117,10 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} + istanbul-reports@1.5.1: resolution: {integrity: sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==} @@ -15933,10 +16173,18 @@ packages: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-changed-files@30.2.0: + resolution: {integrity: sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-circus@29.7.0: resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-circus@30.2.0: + resolution: {integrity: sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-cli@20.0.4: resolution: {integrity: sha512-OfQTkV6T5+V+c3hbzGVJl1SqTOmIw7dBIZYl6XDdSNOmhoyCmwNh/dsEs0lgqIMZkF+AeLbRswkH91XBVXyKqg==} engines: {node: '>= 4'} @@ -15957,6 +16205,16 @@ packages: node-notifier: optional: true + jest-cli@30.2.0: + resolution: {integrity: sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + jest-config@20.0.4: resolution: {integrity: sha512-9urceXnsfO+DXNGrzeDFKx/IAFpUljbvaiPZEn1sWuF97QN0Ppt7yXmnPoAOylwxpNK1t9lWUER5eeoH63rPCA==} @@ -15979,6 +16237,21 @@ packages: ts-node: optional: true + jest-config@30.2.0: + resolution: {integrity: sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@types/node': '*' + esbuild-register: '>=3.4.0' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + esbuild-register: + optional: true + ts-node: + optional: true + jest-diff@20.0.3: resolution: {integrity: sha512-DITOXlTg0HDL9QKiVpf82vDu/nva60/V9xp056zjnAYpHVTZlJgfLMIHJmgPCoSu0+7n7QUAfxyFUHUGyHLFSw==} @@ -15993,6 +16266,10 @@ packages: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@30.2.0: + resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-docblock@20.0.3: resolution: {integrity: sha512-lHwefzd+CB38Awy4yiWb8he+ovUXjNeuN4tNQ1sa6/vBh6P7XwpiuSDIs4GH6/yE1uDBUaYiaf/msD7cWMTL7g==} @@ -16004,6 +16281,10 @@ packages: resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-docblock@30.2.0: + resolution: {integrity: sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-each@25.5.0: resolution: {integrity: sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==} engines: {node: '>= 8.3'} @@ -16012,6 +16293,10 @@ packages: resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-each@30.2.0: + resolution: {integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-environment-jsdom@20.0.3: resolution: {integrity: sha512-SSm2oCtH0kBYdXhEMzZDFM4GU/auz4x7yv8AGduAZSZP5loKYHLNoKfVlyN1iFQ+vCJ+1QSS+sVnUARSwaBqbw==} @@ -16045,6 +16330,10 @@ packages: resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-environment-node@30.2.0: + resolution: {integrity: sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-get-type@22.4.3: resolution: {integrity: sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==} @@ -16071,6 +16360,10 @@ packages: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-haste-map@30.2.0: + resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-jasmine2@20.0.4: resolution: {integrity: sha512-XNHvFt9iljOaSSZU5t5dC9kJtrcM+KnVbw0Qa/BpGZlrorqS+m0iWiAJO2xXcGMimCmhT4NLZAS1v/JBGWR8Cg==} @@ -16089,6 +16382,10 @@ packages: resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-leak-detector@30.2.0: + resolution: {integrity: sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-matcher-utils@20.0.3: resolution: {integrity: sha512-eSNh2n3aXULZUbherq5+lZVdpUau8sniowi1tcc1ZueBk/97avAwwoDwBVvxI9JINVrPTsCI51SiQtrjBkVvPw==} @@ -16103,6 +16400,10 @@ packages: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@30.2.0: + resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-matchers@20.0.3: resolution: {integrity: sha512-aDlp50L8qPJ+Y+tifrlKewT0ZU1uC9OP7GJ5T0UKSw/wB73wf6jKEAZUqyA67BocW8BZD7qVVWHasm7u2D1CMQ==} @@ -16120,6 +16421,10 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@30.2.0: + resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-mock@20.0.3: resolution: {integrity: sha512-Edmuskld6ImmUuqxhbwwX5fDXQlFC/fe3XcZKVwK9SnbetIFyivTaub71ZbL5uuWdkvr4VggcyxlhdnpsIlRvg==} @@ -16134,6 +16439,10 @@ packages: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@30.2.0: + resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-pnp-resolver@1.2.3: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} @@ -16161,6 +16470,10 @@ packages: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-regex-util@30.0.1: + resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-resolve-dependencies@20.0.3: resolution: {integrity: sha512-k0DK242umC88ih4KKH1jVlXBulQJfOmMXV/nMMfqRgeFKbBYfUROLZkz0zr8TON5WfnuiHV5GotqE0pXoqg08A==} @@ -16172,6 +16485,10 @@ packages: resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve-dependencies@30.2.0: + resolution: {integrity: sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-resolve@20.0.4: resolution: {integrity: sha512-n/u93CugulXmQ8FcHHGv1kUEFagsbXsJgKLK2G4eAdmawHObAc6DgJtOVp9hgNJOGRU6c6ozdB5nzMO02Fecig==} @@ -16186,6 +16503,10 @@ packages: resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve@30.2.0: + resolution: {integrity: sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-runner@25.5.4: resolution: {integrity: sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==} engines: {node: '>= 8.3'} @@ -16194,6 +16515,10 @@ packages: resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runner@30.2.0: + resolution: {integrity: sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-runtime@20.0.4: resolution: {integrity: sha512-NTGhGRKhfM19w0egxges3hhIO8gPXB2H6Txaie3+AZIHF+VZCItH27uEFzU6cQTdwzcWaiieYgCAfGKNeUUf7g==} hasBin: true @@ -16207,6 +16532,10 @@ packages: resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runtime@30.2.0: + resolution: {integrity: sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-serializer@25.5.0: resolution: {integrity: sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==} engines: {node: '>= 8.3'} @@ -16229,6 +16558,10 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-snapshot@30.2.0: + resolution: {integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-util@20.0.3: resolution: {integrity: sha512-Ig/4sAywd/7YJe3jUOIyj+NaX7NCQnxMc/lfRezvbkceZDye0mch126UfIzqyBdS2gjxQl7S8yERvcZDMvK1NA==} @@ -16247,6 +16580,10 @@ packages: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@30.2.0: + resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-validate@20.0.3: resolution: {integrity: sha512-yIpGo3le6q+ZPID2UCl58FRM4ZVGZK9qu1RaWSbEnZFUcj08XznJWd6g2HbPqsWCY9abBO3hq2aP5GZveEfGUg==} @@ -16261,6 +16598,10 @@ packages: resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-validate@30.2.0: + resolution: {integrity: sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-watch-typeahead@0.5.0: resolution: {integrity: sha512-4r36w9vU8+rdg48hj0Z7TvcSqVP6Ao8dk04grlHQNgduyCB0SqrI0xWIl85ZhXrzYvxQ0N5H+rRLAejkQzEHeQ==} @@ -16272,6 +16613,10 @@ packages: resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-watcher@30.2.0: + resolution: {integrity: sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-worker@24.9.0: resolution: {integrity: sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==} engines: {node: '>= 6'} @@ -16292,6 +16637,10 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@30.2.0: + resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest@20.0.4: resolution: {integrity: sha512-MU1kGBtzhDHwasL1BbuFmlIlwseDXy18p/M3hB7ehifac8FCbj6nJf8ihGtBA594tlUcktotHHd8z42V47ZB1g==} engines: {node: '>= 4'} @@ -16312,6 +16661,16 @@ packages: node-notifier: optional: true + jest@30.2.0: + resolution: {integrity: sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + jiti@1.21.7: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true @@ -16342,16 +16701,8 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@3.7.0: - resolution: {integrity: sha512-eIlkGty7HGmntbV6P/ZlAsoncFLGsNoM27lkTzS+oneY/EiNhj+geqD9ezg/ip+SW6Var0BJU2JtV0vEUZpWVQ==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true jsbn@0.1.1: @@ -16417,10 +16768,6 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-parse-even-better-errors@3.0.2: - resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - json-schema-to-ts@3.1.1: resolution: {integrity: sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==} engines: {node: '>=16'} @@ -16520,8 +16867,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - keyv@5.5.3: - resolution: {integrity: sha512-h0Un1ieD+HUrzBH6dJXhod3ifSghk5Hw/2Y4/KHBziPlZecrFyE9YOTPU6eOs0V9pYl8gOs86fkr/KN8lUX39A==} + keyv@5.5.4: + resolution: {integrity: sha512-eohl3hKTiVyD1ilYdw9T0OiB4hnjef89e3dMYKz+mVKDzj+5IteTseASUsOB+EU9Tf6VNTCjDePcP6wkDGmLKQ==} kill-port@2.0.1: resolution: {integrity: sha512-e0SVOV5jFo0mx8r7bS29maVWp17qGqLBZ5ricNSajON6//kmb7qqqNnml4twNE8Dtj97UQD+gNFOaipS/q1zzQ==} @@ -16615,10 +16962,6 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - linkify-it@3.0.3: resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} @@ -17086,8 +17429,8 @@ packages: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} - memfs@4.50.0: - resolution: {integrity: sha512-N0LUYQMUA1yS5tJKmMtU9yprPm6ZIg24yr/OVv/7t6q0kKDIho4cBbXRi1XKttUmNYDYgF/q45qrKE/UhGO0CA==} + memfs@4.51.0: + resolution: {integrity: sha512-4zngfkVM/GpIhC8YazOsM6E8hoB33NP0BCESPOA6z7qaL6umPJNqkO8CNYaLV2FB2MV6H1O3x2luHHOSqppv+A==} memoizee@0.4.17: resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} @@ -17395,8 +17738,8 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - min-document@2.19.1: - resolution: {integrity: sha512-8lqe85PkqQJzIcs2iD7xW/WSxcncC3/DPVbTOafKNJDIMXwGfwXS350mH4SJslomntN2iYtFBuC0yNO3CEap6g==} + min-document@2.19.2: + resolution: {integrity: sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==} min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -17604,6 +17947,11 @@ packages: napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -17647,8 +17995,8 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-abi@3.80.0: - resolution: {integrity: sha512-LyPuZJcI9HVwzXK1GPxWNzrr+vr8Hp/3UqlmWxxh8p54U1ZbclOqbSog9lWHaCX+dBaiGi6n/hIX+mKu74GmPA==} + node-abi@3.85.0: + resolution: {integrity: sha512-zsFhmbkAzwhTft6nd3VxcG0cvJsT70rL+BIGHWVq5fi6MwGrHwzqKaxXE+Hl2GmnGItnDKPPkO5/LQqjVkIdFg==} engines: {node: '>=10'} node-abort-controller@3.1.1: @@ -17744,9 +18092,9 @@ packages: node-releases@2.0.27: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - node-sarif-builder@2.0.3: - resolution: {integrity: sha512-Pzr3rol8fvhG/oJjIq2NTVB0vmdNNlz22FENhhPojYRZ4/ee08CfK4YuKmuL54V9MLhI1kpzxfOJ/63LzmZzDg==} - engines: {node: '>=14'} + node-sarif-builder@3.3.0: + resolution: {integrity: sha512-8taRy2nQs1xNs8iO2F0XbkZJEliiijpKgFVcyiwKjJ2+3X59LVI3wY84qRdJwRDpIo5GK8wvb1pxcJ+JVu3jrg==} + engines: {node: '>=20'} node-schedule@2.1.1: resolution: {integrity: sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==} @@ -18105,8 +18453,8 @@ packages: resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} engines: {node: '>=12'} - p-map@7.0.3: - resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} + p-map@7.0.4: + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} engines: {node: '>=18'} p-queue@6.6.2: @@ -18172,9 +18520,9 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-json@7.1.1: - resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} - engines: {node: '>=16'} + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} @@ -18218,9 +18566,6 @@ packages: path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - path-case@3.0.4: - resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} - path-dirname@1.0.2: resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} @@ -18963,6 +19308,10 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@30.2.0: + resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + pretty-hrtime@1.0.3: resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} engines: {node: '>= 0.8'} @@ -19101,6 +19450,9 @@ packages: pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + pure-rand@7.0.1: + resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} + q@1.5.1: resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} @@ -19109,8 +19461,8 @@ packages: (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) - qified@0.5.1: - resolution: {integrity: sha512-+BtFN3dCP+IaFA6IYNOu/f/uK1B8xD2QWyOeCse0rjtAebBmkzgd2d1OAXi3ikAzJMIBSdzZDNZ3wZKEUDQs5w==} + qified@0.5.2: + resolution: {integrity: sha512-7gJ6mxcQb9vUBOtbKm5mDevbe2uRcOEVp1g4gb/Q+oLntB3HY8eBhOYRxFI2mlDFlY1e4DOSCptzxarXRvzxCA==} engines: {node: '>=20'} qs@6.13.0: @@ -19582,9 +19934,9 @@ packages: resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} engines: {node: '>=12'} - read-pkg@8.1.0: - resolution: {integrity: sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==} - engines: {node: '>=16'} + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} read@1.0.7: resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} @@ -19941,10 +20293,6 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rev-hash@3.0.0: - resolution: {integrity: sha512-s+87HfEKAu95TaTxnbCobn0/BkbzR23LHSwVdYvr8mn5+PPjzy+hTWyh92b5oaLgig9TKPe5d6ZcubsVBtUrZg==} - engines: {node: '>=8'} - rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} @@ -20033,8 +20381,8 @@ packages: resolution: {integrity: sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==} hasBin: true - rollup@4.53.1: - resolution: {integrity: sha512-n2I0V0lN3E9cxxMqBCT3opWOiQBzRN7UG60z/WDKqdX2zHUS/39lezBcsckZFsV6fUTSnfqI7kHf60jDAPGKug==} + rollup@4.53.2: + resolution: {integrity: sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -20160,8 +20508,8 @@ packages: webpack: optional: true - sass@1.93.3: - resolution: {integrity: sha512-elOcIZRTM76dvxNAjqYrucTSI0teAF/L2Lv0s6f6b7FOwcwIuA357bIE871580AjHJuSvLIRUosgV+lIWx6Rgg==} + sass@1.94.1: + resolution: {integrity: sha512-/YVm5FRQaRlr3oNh2LLFYne1PdPlRZGyKnHh1sLleOqLcohTR4eUUvBjBIqkl1fEXd1MGOHgzJGJh+LgTtV4KQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -20209,9 +20557,9 @@ packages: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} - secretlint@9.3.4: - resolution: {integrity: sha512-iNOzgMX/+W1SQNW/TW6eikGChyaPiazr2AEXjzjpoB0R6QJEulvlwhn0KLT1/xjPfdYrk3yiXZM40csUqET8uQ==} - engines: {node: ^14.13.1 || >=16.0.0} + secretlint@10.2.2: + resolution: {integrity: sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==} + engines: {node: '>=20.0.0'} hasBin: true secure-compare@3.0.1: @@ -20257,9 +20605,6 @@ packages: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} - sentence-case@3.0.4: - resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} - serialize-error@8.1.0: resolution: {integrity: sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==} engines: {node: '>=10'} @@ -20456,9 +20801,6 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - sockjs-client@1.1.5: resolution: {integrity: sha512-PmPRkAYIeuRgX+ZSieViT4Z3Q23bLS2Itm/ck1tSf5P0/yVuFDiI5q9mcnpXoMdToaPSRS9MEyUx/aaBxrFzyw==} @@ -20904,14 +21246,14 @@ packages: style-mod@4.1.3: resolution: {integrity: sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==} - style-to-js@1.1.19: - resolution: {integrity: sha512-Ev+SgeqiNGT1ufsXyVC5RrJRXdrkRJ1Gol9Qw7Pb72YCKJXrBvP0ckZhBeVSrw2m06DJpei2528uIpjMb4TsoQ==} + style-to-js@1.1.21: + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} style-to-object@0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} - style-to-object@1.0.12: - resolution: {integrity: sha512-ddJqYnoT4t97QvN2C95bCgt+m7AAgXjVnkk/jxAfmp7EAB8nnqqZYEbMd3em7/vEomDb2LAQKAy1RFfv41mdNw==} + style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} style-value-types@5.0.0: resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==} @@ -21011,9 +21353,9 @@ packages: resolution: {integrity: sha512-CgqMyZrbOPpc+WqH7aga4JWkDPso23EgypLsbQ6gN3uoPWwwiLjXvzgrwGADBExvCRJrWFzAeK1bSoSpE7ixSQ==} hasBin: true - svgicons2svgfont@10.0.6: - resolution: {integrity: sha512-fUgQEVg3XwTbOHvlXahHGqCet5Wvfo1bV4DCvbSRvjsOCPCRunYbG4dUJCPegps37BMph3eOrfoobhH5AWuC6A==} - engines: {node: '>=12.0.0'} + svgicons2svgfont@12.0.0: + resolution: {integrity: sha512-fjyDkhiG0M1TPBtZzD12QV3yDcG2fUgiqHPOCYzf7hHE40Hl3GhnE6P1njsJCCByhwM7MiufyDW3L7IOR5dg9w==} + engines: {node: '>=16.15.0'} hasBin: true svgicons2svgfont@5.0.2: @@ -21082,6 +21424,10 @@ packages: synchronous-promise@2.0.17: resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==} + synckit@0.11.11: + resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + engines: {node: ^14.18.0 || >=16.0.0} + system-architecture@0.1.0: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} @@ -21169,6 +21515,10 @@ packages: resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} engines: {node: '>=8'} + terminal-link@4.0.0: + resolution: {integrity: sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==} + engines: {node: '>=18'} + terser-webpack-plugin@4.2.3: resolution: {integrity: sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==} engines: {node: '>= 10.13.0'} @@ -21629,14 +21979,18 @@ packages: resolution: {integrity: sha512-U56aG2Ylw7psLOmakjemAzmpqVgeadwENg9oaDjaZG5NYX4WB6+7h74bNPcc+0BXsoU5A/XWiHabDXyzFOmsxQ==} hasBin: true + ttf2eot@3.1.0: + resolution: {integrity: sha512-aHTbcYosNHVqb2Qtt9Xfta77ae/5y0VfdwNLUS6sGBeGr22cX2JDMo/i5h3uuOf+FAD3akYOr17+fYd5NK8aXw==} + hasBin: true + ttf2woff2@2.0.3: resolution: {integrity: sha512-HVI+ZVmIbHAxfmbxV/Ahjh20che2WUCs4xWIcCUaD/BLEof/ylYUjnc0DAhpYsAzEJy1kQwkOQD45RLgtWQHfw==} engines: {node: '>=0.12'} hasBin: true - ttf2woff2@4.0.5: - resolution: {integrity: sha512-zpoU0NopfjoyVqkFeQ722SyKk/n607mm5OHxuDS/wCCSy82B8H3hHXrezftA2KMbKqfJIjie2lsJHdvPnBGbsw==} - engines: {node: '>=12'} + ttf2woff2@5.0.0: + resolution: {integrity: sha512-FplhShJd3rT8JGa8N04YWQuP7xRvwr9AIq+9/z5O/5ubqNiCADshKl8v51zJDFkhDVcYpdUqUpm7T4M53Z2JoQ==} + engines: {node: '>=14'} hasBin: true ttf2woff@2.0.2: @@ -21701,10 +22055,6 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - type-fest@4.41.0: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} @@ -21978,6 +22328,9 @@ packages: unraw@3.0.0: resolution: {integrity: sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg==} + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + untildify@2.1.0: resolution: {integrity: sha512-sJjbDp2GodvkB0FZZcn7k6afVisqX5BZD7Yq3xp4nN2O15BBK0cLm3Vwn2vQaF7UDS0UUsrQMkkplmDI5fskig==} engines: {node: '>=0.10.0'} @@ -22010,15 +22363,9 @@ packages: resolution: {integrity: sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==} engines: {node: '>=4'} - upper-case-first@2.0.2: - resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} - upper-case@1.1.3: resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==} - upper-case@2.0.2: - resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} - uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -22215,12 +22562,6 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vsce@2.15.0: - resolution: {integrity: sha512-P8E9LAZvBCQnoGoizw65JfGvyMqNGlHdlUXD1VAuxtvYAaHBKLBdKPnpy60XKVDAkQCfmMu53g+gq9FM+ydepw==} - engines: {node: '>= 14'} - deprecated: vsce has been renamed to @vscode/vsce. Install using @vscode/vsce instead. - hasBin: true - vscode-debugadapter-testsupport@1.51.0: resolution: {integrity: sha512-rb8tfn7J3kxLi1rRhEyG5ggGkFcJH2WrYYrq6Vb1tDAcHoFXF580M1dAA2jPOrc0I14GuWxMnndvfGkfG10VxA==} deprecated: This package has been renamed to @vscode/debugadapter-testsupport, please update to the new name @@ -22511,11 +22852,6 @@ packages: peerDependencies: webpack: 1 || 2 || 3 - webpack-merge-and-include-globally@2.3.4: - resolution: {integrity: sha512-s5dd7m3ycVBlC7C6GAx91JQzbjhxC/NJRuT2sCkg8WCcF8CE1x/7xwVXqgmt0Fr/H/0sX5C5HE2RdU6+vCY5yg==} - peerDependencies: - webpack: '>=1.0.0' - webpack-merge@5.10.0: resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} engines: {node: '>=10.0.0'} @@ -22546,8 +22882,8 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.102.1: - resolution: {integrity: sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==} + webpack@5.103.0: + resolution: {integrity: sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -22790,10 +23126,6 @@ packages: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} - xml2js@0.4.23: - resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} - engines: {node: '>=4.0.0'} - xml2js@0.5.0: resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} engines: {node: '>=4.0.0'} @@ -22914,8 +23246,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.2.1: - resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} + yocto-queue@1.2.2: + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} engines: {node: '>=12.20'} yoctocolors@2.1.2: @@ -22970,50 +23302,50 @@ snapshots: '@adobe/css-tools@4.4.4': {} - '@ai-sdk/amazon-bedrock@3.0.52(zod@4.1.11)': + '@ai-sdk/amazon-bedrock@3.0.56(zod@4.1.11)': dependencies: - '@ai-sdk/anthropic': 2.0.42(zod@4.1.11) + '@ai-sdk/anthropic': 2.0.45(zod@4.1.11) '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.16(zod@4.1.11) - '@smithy/eventstream-codec': 4.2.4 + '@ai-sdk/provider-utils': 3.0.17(zod@4.1.11) + '@smithy/eventstream-codec': 4.2.5 '@smithy/util-utf8': 4.2.0 aws4fetch: 1.0.20 zod: 4.1.11 - '@ai-sdk/anthropic@2.0.42(zod@3.25.76)': + '@ai-sdk/anthropic@2.0.45(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.16(zod@3.25.76) + '@ai-sdk/provider-utils': 3.0.17(zod@3.25.76) zod: 3.25.76 - '@ai-sdk/anthropic@2.0.42(zod@4.1.11)': + '@ai-sdk/anthropic@2.0.45(zod@4.1.11)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.16(zod@4.1.11) + '@ai-sdk/provider-utils': 3.0.17(zod@4.1.11) zod: 4.1.11 - '@ai-sdk/gateway@2.0.7(zod@3.25.76)': + '@ai-sdk/gateway@2.0.9(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.16(zod@3.25.76) + '@ai-sdk/provider-utils': 3.0.17(zod@3.25.76) '@vercel/oidc': 3.0.3 zod: 3.25.76 - '@ai-sdk/gateway@2.0.7(zod@4.1.11)': + '@ai-sdk/gateway@2.0.9(zod@4.1.11)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.16(zod@4.1.11) + '@ai-sdk/provider-utils': 3.0.17(zod@4.1.11) '@vercel/oidc': 3.0.3 zod: 4.1.11 - '@ai-sdk/provider-utils@3.0.16(zod@3.25.76)': + '@ai-sdk/provider-utils@3.0.17(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.0 '@standard-schema/spec': 1.0.0 eventsource-parser: 3.0.6 zod: 3.25.76 - '@ai-sdk/provider-utils@3.0.16(zod@4.1.11)': + '@ai-sdk/provider-utils@3.0.17(zod@4.1.11)': dependencies: '@ai-sdk/provider': 2.0.0 '@standard-schema/spec': 1.0.0 @@ -23035,13 +23367,13 @@ snapshots: dependencies: '@jsdevtools/ono': 7.1.3 '@types/json-schema': 7.0.15 - js-yaml: 4.1.0 + js-yaml: 4.1.1 '@apidevtools/json-schema-ref-parser@12.0.2': dependencies: '@jsdevtools/ono': 7.1.3 '@types/json-schema': 7.0.15 - js-yaml: 4.1.0 + js-yaml: 4.1.1 '@aw-web-design/x-default-browser@1.4.126': dependencies: @@ -23050,20 +23382,20 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.922.0 + '@aws-sdk/types': 3.930.0 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.922.0 + '@aws-sdk/types': 3.930.0 tslib: 2.8.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.922.0 + '@aws-sdk/types': 3.930.0 '@aws-sdk/util-locate-window': 3.893.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -23073,7 +23405,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.922.0 + '@aws-sdk/types': 3.930.0 '@aws-sdk/util-locate-window': 3.893.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -23081,7 +23413,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.922.0 + '@aws-sdk/types': 3.930.0 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -23090,429 +23422,427 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.922.0 + '@aws-sdk/types': 3.930.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-s3@3.927.0': + '@aws-sdk/client-s3@3.933.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.927.0 - '@aws-sdk/credential-provider-node': 3.927.0 - '@aws-sdk/middleware-bucket-endpoint': 3.922.0 - '@aws-sdk/middleware-expect-continue': 3.922.0 - '@aws-sdk/middleware-flexible-checksums': 3.927.0 - '@aws-sdk/middleware-host-header': 3.922.0 - '@aws-sdk/middleware-location-constraint': 3.922.0 - '@aws-sdk/middleware-logger': 3.922.0 - '@aws-sdk/middleware-recursion-detection': 3.922.0 - '@aws-sdk/middleware-sdk-s3': 3.927.0 - '@aws-sdk/middleware-ssec': 3.922.0 - '@aws-sdk/middleware-user-agent': 3.927.0 - '@aws-sdk/region-config-resolver': 3.925.0 - '@aws-sdk/signature-v4-multi-region': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@aws-sdk/util-endpoints': 3.922.0 - '@aws-sdk/util-user-agent-browser': 3.922.0 - '@aws-sdk/util-user-agent-node': 3.927.0 - '@aws-sdk/xml-builder': 3.921.0 - '@smithy/config-resolver': 4.4.2 - '@smithy/core': 3.17.2 - '@smithy/eventstream-serde-browser': 4.2.4 - '@smithy/eventstream-serde-config-resolver': 4.3.4 - '@smithy/eventstream-serde-node': 4.2.4 - '@smithy/fetch-http-handler': 5.3.5 - '@smithy/hash-blob-browser': 4.2.5 - '@smithy/hash-node': 4.2.4 - '@smithy/hash-stream-node': 4.2.4 - '@smithy/invalid-dependency': 4.2.4 - '@smithy/md5-js': 4.2.4 - '@smithy/middleware-content-length': 4.2.4 - '@smithy/middleware-endpoint': 4.3.6 - '@smithy/middleware-retry': 4.4.6 - '@smithy/middleware-serde': 4.2.4 - '@smithy/middleware-stack': 4.2.4 - '@smithy/node-config-provider': 4.3.4 - '@smithy/node-http-handler': 4.4.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/smithy-client': 4.9.2 - '@smithy/types': 4.8.1 - '@smithy/url-parser': 4.2.4 + '@aws-sdk/core': 3.932.0 + '@aws-sdk/credential-provider-node': 3.933.0 + '@aws-sdk/middleware-bucket-endpoint': 3.930.0 + '@aws-sdk/middleware-expect-continue': 3.930.0 + '@aws-sdk/middleware-flexible-checksums': 3.932.0 + '@aws-sdk/middleware-host-header': 3.930.0 + '@aws-sdk/middleware-location-constraint': 3.930.0 + '@aws-sdk/middleware-logger': 3.930.0 + '@aws-sdk/middleware-recursion-detection': 3.933.0 + '@aws-sdk/middleware-sdk-s3': 3.932.0 + '@aws-sdk/middleware-ssec': 3.930.0 + '@aws-sdk/middleware-user-agent': 3.932.0 + '@aws-sdk/region-config-resolver': 3.930.0 + '@aws-sdk/signature-v4-multi-region': 3.932.0 + '@aws-sdk/types': 3.930.0 + '@aws-sdk/util-endpoints': 3.930.0 + '@aws-sdk/util-user-agent-browser': 3.930.0 + '@aws-sdk/util-user-agent-node': 3.932.0 + '@smithy/config-resolver': 4.4.3 + '@smithy/core': 3.18.4 + '@smithy/eventstream-serde-browser': 4.2.5 + '@smithy/eventstream-serde-config-resolver': 4.3.5 + '@smithy/eventstream-serde-node': 4.2.5 + '@smithy/fetch-http-handler': 5.3.6 + '@smithy/hash-blob-browser': 4.2.6 + '@smithy/hash-node': 4.2.5 + '@smithy/hash-stream-node': 4.2.5 + '@smithy/invalid-dependency': 4.2.5 + '@smithy/md5-js': 4.2.5 + '@smithy/middleware-content-length': 4.2.5 + '@smithy/middleware-endpoint': 4.3.11 + '@smithy/middleware-retry': 4.4.11 + '@smithy/middleware-serde': 4.2.6 + '@smithy/middleware-stack': 4.2.5 + '@smithy/node-config-provider': 4.3.5 + '@smithy/node-http-handler': 4.4.5 + '@smithy/protocol-http': 5.3.5 + '@smithy/smithy-client': 4.9.7 + '@smithy/types': 4.9.0 + '@smithy/url-parser': 4.2.5 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.5 - '@smithy/util-defaults-mode-node': 4.2.8 - '@smithy/util-endpoints': 3.2.4 - '@smithy/util-middleware': 4.2.4 - '@smithy/util-retry': 4.2.4 - '@smithy/util-stream': 4.5.5 + '@smithy/util-defaults-mode-browser': 4.3.10 + '@smithy/util-defaults-mode-node': 4.2.13 + '@smithy/util-endpoints': 3.2.5 + '@smithy/util-middleware': 4.2.5 + '@smithy/util-retry': 4.2.5 + '@smithy/util-stream': 4.5.6 '@smithy/util-utf8': 4.2.0 - '@smithy/util-waiter': 4.2.4 - '@smithy/uuid': 1.1.0 + '@smithy/util-waiter': 4.2.5 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.927.0': + '@aws-sdk/client-sso@3.933.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.927.0 - '@aws-sdk/middleware-host-header': 3.922.0 - '@aws-sdk/middleware-logger': 3.922.0 - '@aws-sdk/middleware-recursion-detection': 3.922.0 - '@aws-sdk/middleware-user-agent': 3.927.0 - '@aws-sdk/region-config-resolver': 3.925.0 - '@aws-sdk/types': 3.922.0 - '@aws-sdk/util-endpoints': 3.922.0 - '@aws-sdk/util-user-agent-browser': 3.922.0 - '@aws-sdk/util-user-agent-node': 3.927.0 - '@smithy/config-resolver': 4.4.2 - '@smithy/core': 3.17.2 - '@smithy/fetch-http-handler': 5.3.5 - '@smithy/hash-node': 4.2.4 - '@smithy/invalid-dependency': 4.2.4 - '@smithy/middleware-content-length': 4.2.4 - '@smithy/middleware-endpoint': 4.3.6 - '@smithy/middleware-retry': 4.4.6 - '@smithy/middleware-serde': 4.2.4 - '@smithy/middleware-stack': 4.2.4 - '@smithy/node-config-provider': 4.3.4 - '@smithy/node-http-handler': 4.4.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/smithy-client': 4.9.2 - '@smithy/types': 4.8.1 - '@smithy/url-parser': 4.2.4 + '@aws-sdk/core': 3.932.0 + '@aws-sdk/middleware-host-header': 3.930.0 + '@aws-sdk/middleware-logger': 3.930.0 + '@aws-sdk/middleware-recursion-detection': 3.933.0 + '@aws-sdk/middleware-user-agent': 3.932.0 + '@aws-sdk/region-config-resolver': 3.930.0 + '@aws-sdk/types': 3.930.0 + '@aws-sdk/util-endpoints': 3.930.0 + '@aws-sdk/util-user-agent-browser': 3.930.0 + '@aws-sdk/util-user-agent-node': 3.932.0 + '@smithy/config-resolver': 4.4.3 + '@smithy/core': 3.18.4 + '@smithy/fetch-http-handler': 5.3.6 + '@smithy/hash-node': 4.2.5 + '@smithy/invalid-dependency': 4.2.5 + '@smithy/middleware-content-length': 4.2.5 + '@smithy/middleware-endpoint': 4.3.11 + '@smithy/middleware-retry': 4.4.11 + '@smithy/middleware-serde': 4.2.6 + '@smithy/middleware-stack': 4.2.5 + '@smithy/node-config-provider': 4.3.5 + '@smithy/node-http-handler': 4.4.5 + '@smithy/protocol-http': 5.3.5 + '@smithy/smithy-client': 4.9.7 + '@smithy/types': 4.9.0 + '@smithy/url-parser': 4.2.5 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.5 - '@smithy/util-defaults-mode-node': 4.2.8 - '@smithy/util-endpoints': 3.2.4 - '@smithy/util-middleware': 4.2.4 - '@smithy/util-retry': 4.2.4 + '@smithy/util-defaults-mode-browser': 4.3.10 + '@smithy/util-defaults-mode-node': 4.2.13 + '@smithy/util-endpoints': 3.2.5 + '@smithy/util-middleware': 4.2.5 + '@smithy/util-retry': 4.2.5 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.927.0': - dependencies: - '@aws-sdk/types': 3.922.0 - '@aws-sdk/xml-builder': 3.921.0 - '@smithy/core': 3.17.2 - '@smithy/node-config-provider': 4.3.4 - '@smithy/property-provider': 4.2.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/signature-v4': 5.3.4 - '@smithy/smithy-client': 4.9.2 - '@smithy/types': 4.8.1 + '@aws-sdk/core@3.932.0': + dependencies: + '@aws-sdk/types': 3.930.0 + '@aws-sdk/xml-builder': 3.930.0 + '@smithy/core': 3.18.4 + '@smithy/node-config-provider': 4.3.5 + '@smithy/property-provider': 4.2.5 + '@smithy/protocol-http': 5.3.5 + '@smithy/signature-v4': 5.3.5 + '@smithy/smithy-client': 4.9.7 + '@smithy/types': 4.9.0 '@smithy/util-base64': 4.3.0 - '@smithy/util-middleware': 4.2.4 + '@smithy/util-middleware': 4.2.5 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.927.0': + '@aws-sdk/credential-provider-env@3.932.0': dependencies: - '@aws-sdk/core': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@smithy/property-provider': 4.2.4 - '@smithy/types': 4.8.1 + '@aws-sdk/core': 3.932.0 + '@aws-sdk/types': 3.930.0 + '@smithy/property-provider': 4.2.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.927.0': - dependencies: - '@aws-sdk/core': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@smithy/fetch-http-handler': 5.3.5 - '@smithy/node-http-handler': 4.4.4 - '@smithy/property-provider': 4.2.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/smithy-client': 4.9.2 - '@smithy/types': 4.8.1 - '@smithy/util-stream': 4.5.5 + '@aws-sdk/credential-provider-http@3.932.0': + dependencies: + '@aws-sdk/core': 3.932.0 + '@aws-sdk/types': 3.930.0 + '@smithy/fetch-http-handler': 5.3.6 + '@smithy/node-http-handler': 4.4.5 + '@smithy/property-provider': 4.2.5 + '@smithy/protocol-http': 5.3.5 + '@smithy/smithy-client': 4.9.7 + '@smithy/types': 4.9.0 + '@smithy/util-stream': 4.5.6 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.927.0': - dependencies: - '@aws-sdk/core': 3.927.0 - '@aws-sdk/credential-provider-env': 3.927.0 - '@aws-sdk/credential-provider-http': 3.927.0 - '@aws-sdk/credential-provider-process': 3.927.0 - '@aws-sdk/credential-provider-sso': 3.927.0 - '@aws-sdk/credential-provider-web-identity': 3.927.0 - '@aws-sdk/nested-clients': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@smithy/credential-provider-imds': 4.2.4 - '@smithy/property-provider': 4.2.4 - '@smithy/shared-ini-file-loader': 4.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/credential-provider-ini@3.933.0': + dependencies: + '@aws-sdk/core': 3.932.0 + '@aws-sdk/credential-provider-env': 3.932.0 + '@aws-sdk/credential-provider-http': 3.932.0 + '@aws-sdk/credential-provider-process': 3.932.0 + '@aws-sdk/credential-provider-sso': 3.933.0 + '@aws-sdk/credential-provider-web-identity': 3.933.0 + '@aws-sdk/nested-clients': 3.933.0 + '@aws-sdk/types': 3.930.0 + '@smithy/credential-provider-imds': 4.2.5 + '@smithy/property-provider': 4.2.5 + '@smithy/shared-ini-file-loader': 4.4.0 + '@smithy/types': 4.9.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.927.0': - dependencies: - '@aws-sdk/credential-provider-env': 3.927.0 - '@aws-sdk/credential-provider-http': 3.927.0 - '@aws-sdk/credential-provider-ini': 3.927.0 - '@aws-sdk/credential-provider-process': 3.927.0 - '@aws-sdk/credential-provider-sso': 3.927.0 - '@aws-sdk/credential-provider-web-identity': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@smithy/credential-provider-imds': 4.2.4 - '@smithy/property-provider': 4.2.4 - '@smithy/shared-ini-file-loader': 4.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/credential-provider-node@3.933.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.932.0 + '@aws-sdk/credential-provider-http': 3.932.0 + '@aws-sdk/credential-provider-ini': 3.933.0 + '@aws-sdk/credential-provider-process': 3.932.0 + '@aws-sdk/credential-provider-sso': 3.933.0 + '@aws-sdk/credential-provider-web-identity': 3.933.0 + '@aws-sdk/types': 3.930.0 + '@smithy/credential-provider-imds': 4.2.5 + '@smithy/property-provider': 4.2.5 + '@smithy/shared-ini-file-loader': 4.4.0 + '@smithy/types': 4.9.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.927.0': + '@aws-sdk/credential-provider-process@3.932.0': dependencies: - '@aws-sdk/core': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@smithy/property-provider': 4.2.4 - '@smithy/shared-ini-file-loader': 4.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/core': 3.932.0 + '@aws-sdk/types': 3.930.0 + '@smithy/property-provider': 4.2.5 + '@smithy/shared-ini-file-loader': 4.4.0 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.927.0': + '@aws-sdk/credential-provider-sso@3.933.0': dependencies: - '@aws-sdk/client-sso': 3.927.0 - '@aws-sdk/core': 3.927.0 - '@aws-sdk/token-providers': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@smithy/property-provider': 4.2.4 - '@smithy/shared-ini-file-loader': 4.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/client-sso': 3.933.0 + '@aws-sdk/core': 3.932.0 + '@aws-sdk/token-providers': 3.933.0 + '@aws-sdk/types': 3.930.0 + '@smithy/property-provider': 4.2.5 + '@smithy/shared-ini-file-loader': 4.4.0 + '@smithy/types': 4.9.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.927.0': + '@aws-sdk/credential-provider-web-identity@3.933.0': dependencies: - '@aws-sdk/core': 3.927.0 - '@aws-sdk/nested-clients': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@smithy/property-provider': 4.2.4 - '@smithy/shared-ini-file-loader': 4.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/core': 3.932.0 + '@aws-sdk/nested-clients': 3.933.0 + '@aws-sdk/types': 3.930.0 + '@smithy/property-provider': 4.2.5 + '@smithy/shared-ini-file-loader': 4.4.0 + '@smithy/types': 4.9.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/middleware-bucket-endpoint@3.922.0': + '@aws-sdk/middleware-bucket-endpoint@3.930.0': dependencies: - '@aws-sdk/types': 3.922.0 + '@aws-sdk/types': 3.930.0 '@aws-sdk/util-arn-parser': 3.893.0 - '@smithy/node-config-provider': 4.3.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/types': 4.8.1 + '@smithy/node-config-provider': 4.3.5 + '@smithy/protocol-http': 5.3.5 + '@smithy/types': 4.9.0 '@smithy/util-config-provider': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-expect-continue@3.922.0': + '@aws-sdk/middleware-expect-continue@3.930.0': dependencies: - '@aws-sdk/types': 3.922.0 - '@smithy/protocol-http': 5.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/types': 3.930.0 + '@smithy/protocol-http': 5.3.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.927.0': + '@aws-sdk/middleware-flexible-checksums@3.932.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.927.0 - '@aws-sdk/types': 3.922.0 + '@aws-sdk/core': 3.932.0 + '@aws-sdk/types': 3.930.0 '@smithy/is-array-buffer': 4.2.0 - '@smithy/node-config-provider': 4.3.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/types': 4.8.1 - '@smithy/util-middleware': 4.2.4 - '@smithy/util-stream': 4.5.5 + '@smithy/node-config-provider': 4.3.5 + '@smithy/protocol-http': 5.3.5 + '@smithy/types': 4.9.0 + '@smithy/util-middleware': 4.2.5 + '@smithy/util-stream': 4.5.6 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.922.0': + '@aws-sdk/middleware-host-header@3.930.0': dependencies: - '@aws-sdk/types': 3.922.0 - '@smithy/protocol-http': 5.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/types': 3.930.0 + '@smithy/protocol-http': 5.3.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/middleware-location-constraint@3.922.0': + '@aws-sdk/middleware-location-constraint@3.930.0': dependencies: - '@aws-sdk/types': 3.922.0 - '@smithy/types': 4.8.1 + '@aws-sdk/types': 3.930.0 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.922.0': + '@aws-sdk/middleware-logger@3.930.0': dependencies: - '@aws-sdk/types': 3.922.0 - '@smithy/types': 4.8.1 + '@aws-sdk/types': 3.930.0 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.922.0': + '@aws-sdk/middleware-recursion-detection@3.933.0': dependencies: - '@aws-sdk/types': 3.922.0 - '@aws/lambda-invoke-store': 0.1.1 - '@smithy/protocol-http': 5.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/types': 3.930.0 + '@aws/lambda-invoke-store': 0.2.0 + '@smithy/protocol-http': 5.3.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.927.0': + '@aws-sdk/middleware-sdk-s3@3.932.0': dependencies: - '@aws-sdk/core': 3.927.0 - '@aws-sdk/types': 3.922.0 + '@aws-sdk/core': 3.932.0 + '@aws-sdk/types': 3.930.0 '@aws-sdk/util-arn-parser': 3.893.0 - '@smithy/core': 3.17.2 - '@smithy/node-config-provider': 4.3.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/signature-v4': 5.3.4 - '@smithy/smithy-client': 4.9.2 - '@smithy/types': 4.8.1 + '@smithy/core': 3.18.4 + '@smithy/node-config-provider': 4.3.5 + '@smithy/protocol-http': 5.3.5 + '@smithy/signature-v4': 5.3.5 + '@smithy/smithy-client': 4.9.7 + '@smithy/types': 4.9.0 '@smithy/util-config-provider': 4.2.0 - '@smithy/util-middleware': 4.2.4 - '@smithy/util-stream': 4.5.5 + '@smithy/util-middleware': 4.2.5 + '@smithy/util-stream': 4.5.6 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.922.0': + '@aws-sdk/middleware-ssec@3.930.0': dependencies: - '@aws-sdk/types': 3.922.0 - '@smithy/types': 4.8.1 + '@aws-sdk/types': 3.930.0 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.927.0': + '@aws-sdk/middleware-user-agent@3.932.0': dependencies: - '@aws-sdk/core': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@aws-sdk/util-endpoints': 3.922.0 - '@smithy/core': 3.17.2 - '@smithy/protocol-http': 5.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/core': 3.932.0 + '@aws-sdk/types': 3.930.0 + '@aws-sdk/util-endpoints': 3.930.0 + '@smithy/core': 3.18.4 + '@smithy/protocol-http': 5.3.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.927.0': + '@aws-sdk/nested-clients@3.933.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.927.0 - '@aws-sdk/middleware-host-header': 3.922.0 - '@aws-sdk/middleware-logger': 3.922.0 - '@aws-sdk/middleware-recursion-detection': 3.922.0 - '@aws-sdk/middleware-user-agent': 3.927.0 - '@aws-sdk/region-config-resolver': 3.925.0 - '@aws-sdk/types': 3.922.0 - '@aws-sdk/util-endpoints': 3.922.0 - '@aws-sdk/util-user-agent-browser': 3.922.0 - '@aws-sdk/util-user-agent-node': 3.927.0 - '@smithy/config-resolver': 4.4.2 - '@smithy/core': 3.17.2 - '@smithy/fetch-http-handler': 5.3.5 - '@smithy/hash-node': 4.2.4 - '@smithy/invalid-dependency': 4.2.4 - '@smithy/middleware-content-length': 4.2.4 - '@smithy/middleware-endpoint': 4.3.6 - '@smithy/middleware-retry': 4.4.6 - '@smithy/middleware-serde': 4.2.4 - '@smithy/middleware-stack': 4.2.4 - '@smithy/node-config-provider': 4.3.4 - '@smithy/node-http-handler': 4.4.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/smithy-client': 4.9.2 - '@smithy/types': 4.8.1 - '@smithy/url-parser': 4.2.4 + '@aws-sdk/core': 3.932.0 + '@aws-sdk/middleware-host-header': 3.930.0 + '@aws-sdk/middleware-logger': 3.930.0 + '@aws-sdk/middleware-recursion-detection': 3.933.0 + '@aws-sdk/middleware-user-agent': 3.932.0 + '@aws-sdk/region-config-resolver': 3.930.0 + '@aws-sdk/types': 3.930.0 + '@aws-sdk/util-endpoints': 3.930.0 + '@aws-sdk/util-user-agent-browser': 3.930.0 + '@aws-sdk/util-user-agent-node': 3.932.0 + '@smithy/config-resolver': 4.4.3 + '@smithy/core': 3.18.4 + '@smithy/fetch-http-handler': 5.3.6 + '@smithy/hash-node': 4.2.5 + '@smithy/invalid-dependency': 4.2.5 + '@smithy/middleware-content-length': 4.2.5 + '@smithy/middleware-endpoint': 4.3.11 + '@smithy/middleware-retry': 4.4.11 + '@smithy/middleware-serde': 4.2.6 + '@smithy/middleware-stack': 4.2.5 + '@smithy/node-config-provider': 4.3.5 + '@smithy/node-http-handler': 4.4.5 + '@smithy/protocol-http': 5.3.5 + '@smithy/smithy-client': 4.9.7 + '@smithy/types': 4.9.0 + '@smithy/url-parser': 4.2.5 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.5 - '@smithy/util-defaults-mode-node': 4.2.8 - '@smithy/util-endpoints': 3.2.4 - '@smithy/util-middleware': 4.2.4 - '@smithy/util-retry': 4.2.4 + '@smithy/util-defaults-mode-browser': 4.3.10 + '@smithy/util-defaults-mode-node': 4.2.13 + '@smithy/util-endpoints': 3.2.5 + '@smithy/util-middleware': 4.2.5 + '@smithy/util-retry': 4.2.5 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/region-config-resolver@3.925.0': + '@aws-sdk/region-config-resolver@3.930.0': dependencies: - '@aws-sdk/types': 3.922.0 - '@smithy/config-resolver': 4.4.2 - '@smithy/node-config-provider': 4.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/types': 3.930.0 + '@smithy/config-resolver': 4.4.3 + '@smithy/node-config-provider': 4.3.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.927.0': + '@aws-sdk/signature-v4-multi-region@3.932.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@smithy/protocol-http': 5.3.4 - '@smithy/signature-v4': 5.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/middleware-sdk-s3': 3.932.0 + '@aws-sdk/types': 3.930.0 + '@smithy/protocol-http': 5.3.5 + '@smithy/signature-v4': 5.3.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/token-providers@3.927.0': + '@aws-sdk/token-providers@3.933.0': dependencies: - '@aws-sdk/core': 3.927.0 - '@aws-sdk/nested-clients': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@smithy/property-provider': 4.2.4 - '@smithy/shared-ini-file-loader': 4.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/core': 3.932.0 + '@aws-sdk/nested-clients': 3.933.0 + '@aws-sdk/types': 3.930.0 + '@smithy/property-provider': 4.2.5 + '@smithy/shared-ini-file-loader': 4.4.0 + '@smithy/types': 4.9.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/types@3.922.0': + '@aws-sdk/types@3.930.0': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 tslib: 2.8.1 '@aws-sdk/util-arn-parser@3.893.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.922.0': + '@aws-sdk/util-endpoints@3.930.0': dependencies: - '@aws-sdk/types': 3.922.0 - '@smithy/types': 4.8.1 - '@smithy/url-parser': 4.2.4 - '@smithy/util-endpoints': 3.2.4 + '@aws-sdk/types': 3.930.0 + '@smithy/types': 4.9.0 + '@smithy/url-parser': 4.2.5 + '@smithy/util-endpoints': 3.2.5 tslib: 2.8.1 '@aws-sdk/util-locate-window@3.893.0': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.922.0': + '@aws-sdk/util-user-agent-browser@3.930.0': dependencies: - '@aws-sdk/types': 3.922.0 - '@smithy/types': 4.8.1 + '@aws-sdk/types': 3.930.0 + '@smithy/types': 4.9.0 bowser: 2.12.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.927.0': + '@aws-sdk/util-user-agent-node@3.932.0': dependencies: - '@aws-sdk/middleware-user-agent': 3.927.0 - '@aws-sdk/types': 3.922.0 - '@smithy/node-config-provider': 4.3.4 - '@smithy/types': 4.8.1 + '@aws-sdk/middleware-user-agent': 3.932.0 + '@aws-sdk/types': 3.930.0 + '@smithy/node-config-provider': 4.3.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.921.0': + '@aws-sdk/xml-builder@3.930.0': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 fast-xml-parser: 5.2.5 tslib: 2.8.1 - '@aws/lambda-invoke-store@0.1.1': {} + '@aws/lambda-invoke-store@0.2.0': {} '@azu/format-text@1.0.2': {} @@ -23578,7 +23908,7 @@ snapshots: '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 '@azure/msal-browser': 4.26.1 - '@azure/msal-node': 3.8.1 + '@azure/msal-node': 3.8.2 open: 10.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -23597,7 +23927,7 @@ snapshots: '@azure/msal-common@15.13.1': {} - '@azure/msal-node@3.8.1': + '@azure/msal-node@3.8.2': dependencies: '@azure/msal-common': 15.13.1 jsonwebtoken: 9.0.2 @@ -23688,7 +24018,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.5 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.27.0 + browserslist: 4.28.0 lru-cache: 5.1.1 semver: 6.3.1 @@ -25083,7 +25413,7 @@ snapshots: babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.27.7) babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.7) babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.27.7) - core-js-compat: 3.46.0 + core-js-compat: 3.47.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -25158,7 +25488,7 @@ snapshots: babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.5) babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) - core-js-compat: 3.46.0 + core-js-compat: 3.47.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -25261,7 +25591,7 @@ snapshots: '@babel/runtime-corejs3@7.28.4': dependencies: - core-js-pure: 3.46.0 + core-js-pure: 3.47.0 '@babel/runtime@7.28.4': {} @@ -25331,20 +25661,17 @@ snapshots: '@biomejs/cli-win32-x64@1.9.4': optional: true - '@cacheable/memoize@2.0.3': - dependencies: - '@cacheable/utils': 2.2.0 - - '@cacheable/memory@2.0.4': + '@cacheable/memory@2.0.5': dependencies: - '@cacheable/utils': 2.2.0 - '@keyv/bigmap': 1.1.0(keyv@5.5.3) - hookified: 1.12.2 - keyv: 5.5.3 + '@cacheable/utils': 2.3.1 + '@keyv/bigmap': 1.3.0(keyv@5.5.4) + hookified: 1.13.0 + keyv: 5.5.4 - '@cacheable/utils@2.2.0': + '@cacheable/utils@2.3.1': dependencies: - keyv: 5.5.3 + hashery: 1.2.0 + keyv: 5.5.4 '@cnakazawa/watch@1.0.4': dependencies: @@ -25355,14 +25682,14 @@ snapshots: dependencies: '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@lezer/common': 1.3.0 '@codemirror/commands@6.10.0': dependencies: '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@lezer/common': 1.3.0 '@codemirror/lang-angular@0.1.4': @@ -25402,7 +25729,7 @@ snapshots: '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@lezer/common': 1.3.0 '@lezer/css': 1.3.0 '@lezer/html': 1.3.12 @@ -25418,7 +25745,7 @@ snapshots: '@codemirror/language': 6.11.3 '@codemirror/lint': 6.8.5 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@lezer/common': 1.3.0 '@lezer/javascript': 1.5.4 @@ -25449,7 +25776,7 @@ snapshots: '@codemirror/lang-html': 6.4.11 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.3 '@lezer/lr': 1.4.3 @@ -25460,7 +25787,7 @@ snapshots: '@codemirror/lang-html': 6.4.11 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@lezer/common': 1.3.0 '@lezer/markdown': 1.6.0 @@ -25523,7 +25850,7 @@ snapshots: '@codemirror/autocomplete': 6.19.1 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@lezer/common': 1.3.0 '@lezer/xml': 1.0.6 @@ -25566,7 +25893,7 @@ snapshots: '@codemirror/language@6.11.3': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.3 '@lezer/lr': 1.4.3 @@ -25579,21 +25906,21 @@ snapshots: '@codemirror/lint@6.8.5': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 crelt: 1.0.6 '@codemirror/merge@6.11.2': dependencies: '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@lezer/highlight': 1.2.3 style-mod: 4.1.3 '@codemirror/search@6.5.11': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 crelt: 1.0.6 '@codemirror/state@6.5.2': @@ -25604,10 +25931,10 @@ snapshots: dependencies: '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@lezer/highlight': 1.2.3 - '@codemirror/view@6.38.6': + '@codemirror/view@6.38.8': dependencies: '@codemirror/state': 6.5.2 crelt: 1.0.6 @@ -25637,12 +25964,12 @@ snapshots: '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@codesandbox/sandpack-client': 2.19.8 '@lezer/highlight': 1.2.3 '@react-hook/intersection-observer': 3.1.2(react@18.2.0) '@stitches/core': 1.2.8 - anser: 2.3.2 + anser: 2.3.3 clean-set: 1.1.2 dequal: 2.0.3 escape-carriage: 1.3.1 @@ -25696,6 +26023,22 @@ snapshots: '@dual-bundle/import-meta-resolve@4.2.1': {} + '@emnapi/core@1.7.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.7.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.1.0': + dependencies: + tslib: 2.8.1 + optional: true + '@emotion/babel-plugin@11.13.5': dependencies: '@babel/helper-module-imports': 7.27.1 @@ -25746,7 +26089,7 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@17.0.89)(react@19.1.0)': + '@emotion/react@11.14.0(@types/react@17.0.90)(react@19.1.0)': dependencies: '@babel/runtime': 7.28.4 '@emotion/babel-plugin': 11.13.5 @@ -25758,7 +26101,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.1.0 optionalDependencies: - '@types/react': 17.0.89 + '@types/react': 17.0.90 transitivePeerDependencies: - supports-color @@ -25800,22 +26143,22 @@ snapshots: '@emotion/memoize': 0.9.0 '@emotion/unitless': 0.10.0 '@emotion/utils': 1.4.2 - csstype: 3.1.3 + csstype: 3.2.3 '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@17.0.89)(react@19.1.0))(@types/react@17.0.89)(react@19.1.0)': + '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@17.0.90)(react@19.1.0))(@types/react@17.0.90)(react@19.1.0)': dependencies: '@babel/runtime': 7.28.4 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.4.0 - '@emotion/react': 11.14.0(@types/react@17.0.89)(react@19.1.0) + '@emotion/react': 11.14.0(@types/react@17.0.90)(react@19.1.0) '@emotion/serialize': 1.3.3 '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.1.0) '@emotion/utils': 1.4.2 react: 19.1.0 optionalDependencies: - '@types/react': 17.0.89 + '@types/react': 17.0.90 transitivePeerDependencies: - supports-color @@ -26003,7 +26346,7 @@ snapshots: globals: 13.24.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.0 + js-yaml: 4.1.1 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -26017,7 +26360,7 @@ snapshots: globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.0 + js-yaml: 4.1.1 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -26259,7 +26602,7 @@ snapshots: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 - js-yaml: 3.14.1 + js-yaml: 4.1.1 resolve-from: 5.0.0 '@istanbuljs/schema@0.1.3': {} @@ -26281,6 +26624,15 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 + '@jest/console@30.2.0': + dependencies: + '@jest/types': 30.2.0 + '@types/node': 22.15.35 + chalk: 4.1.2 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + slash: 3.0.0 + '@jest/core@25.5.4': dependencies: '@jest/console': 25.5.0 @@ -26317,7 +26669,7 @@ snapshots: - supports-color - utf-8-validate - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -26331,7 +26683,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -26352,6 +26704,44 @@ snapshots: - supports-color - ts-node + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3))': + dependencies: + '@jest/console': 30.2.0 + '@jest/pattern': 30.0.1 + '@jest/reporters': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.15.35 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 4.3.1 + exit-x: 0.2.2 + graceful-fs: 4.2.11 + jest-changed-files: 30.2.0 + jest-config: 30.2.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + jest-haste-map: 30.2.0 + jest-message-util: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-resolve-dependencies: 30.2.0 + jest-runner: 30.2.0 + jest-runtime: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + jest-watcher: 30.2.0 + micromatch: 4.0.8 + pretty-format: 30.2.0 + slash: 3.0.0 + transitivePeerDependencies: + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + + '@jest/diff-sequences@30.0.1': {} + '@jest/environment@25.5.0': dependencies: '@jest/fake-timers': 25.5.0 @@ -26365,10 +26755,21 @@ snapshots: '@types/node': 22.15.35 jest-mock: 29.7.0 + '@jest/environment@30.2.0': + dependencies: + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.15.35 + jest-mock: 30.2.0 + '@jest/expect-utils@29.7.0': dependencies: jest-get-type: 29.6.3 + '@jest/expect-utils@30.2.0': + dependencies: + '@jest/get-type': 30.1.0 + '@jest/expect@29.7.0': dependencies: expect: 29.7.0 @@ -26376,6 +26777,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/expect@30.2.0': + dependencies: + expect: 30.2.0 + jest-snapshot: 30.2.0 + transitivePeerDependencies: + - supports-color + '@jest/fake-timers@25.5.0': dependencies: '@jest/types': 25.5.0 @@ -26393,6 +26801,17 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 + '@jest/fake-timers@30.2.0': + dependencies: + '@jest/types': 30.2.0 + '@sinonjs/fake-timers': 13.0.5 + '@types/node': 22.15.35 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 + + '@jest/get-type@30.1.0': {} + '@jest/globals@25.5.2': dependencies: '@jest/environment': 25.5.0 @@ -26408,6 +26827,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/globals@30.2.0': + dependencies: + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/types': 30.2.0 + jest-mock: 30.2.0 + transitivePeerDependencies: + - supports-color + + '@jest/pattern@30.0.1': + dependencies: + '@types/node': 22.15.35 + jest-regex-util: 30.0.1 + '@jest/reporters@25.5.1': dependencies: '@bcoe/v8-coverage': 0.2.3 @@ -26468,10 +26901,49 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/reporters@30.2.0': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 22.15.35 + chalk: 4.1.2 + collect-v8-coverage: 1.0.3 + exit-x: 0.2.2 + glob: 10.5.0 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.2.0 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + jest-worker: 30.2.0 + slash: 3.0.0 + string-length: 4.0.2 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 + '@jest/schemas@30.0.5': + dependencies: + '@sinclair/typebox': 0.34.41 + + '@jest/snapshot-utils@30.2.0': + dependencies: + '@jest/types': 30.2.0 + chalk: 4.1.2 + graceful-fs: 4.2.11 + natural-compare: 1.4.0 + '@jest/source-map@25.5.0': dependencies: callsites: 3.1.0 @@ -26484,6 +26956,12 @@ snapshots: callsites: 3.1.0 graceful-fs: 4.2.11 + '@jest/source-map@30.0.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + callsites: 3.1.0 + graceful-fs: 4.2.11 + '@jest/test-result@25.5.0': dependencies: '@jest/console': 25.5.0 @@ -26498,6 +26976,13 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.3 + '@jest/test-result@30.2.0': + dependencies: + '@jest/console': 30.2.0 + '@jest/types': 30.2.0 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 + '@jest/test-sequencer@25.5.4': dependencies: '@jest/test-result': 25.5.0 @@ -26518,6 +27003,13 @@ snapshots: jest-haste-map: 29.7.0 slash: 3.0.0 + '@jest/test-sequencer@30.2.0': + dependencies: + '@jest/test-result': 30.2.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + slash: 3.0.0 + '@jest/transform@25.5.1': dependencies: '@babel/core': 7.27.7 @@ -26579,11 +27071,31 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/transform@30.2.0': + dependencies: + '@babel/core': 7.27.7 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 7.0.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + jest-regex-util: 30.0.1 + jest-util: 30.2.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + '@jest/types@25.5.0': dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 1.1.2 - '@types/yargs': 15.0.19 + '@types/yargs': 15.0.20 chalk: 3.0.0 '@jest/types@26.6.2': @@ -26591,7 +27103,7 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 22.15.35 - '@types/yargs': 15.0.19 + '@types/yargs': 15.0.20 chalk: 4.1.2 '@jest/types@29.6.3': @@ -26600,12 +27112,22 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 22.15.35 - '@types/yargs': 17.0.34 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + + '@jest/types@30.2.0': + dependencies: + '@jest/pattern': 30.0.1 + '@jest/schemas': 30.0.5 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.15.35 + '@types/yargs': 17.0.35 chalk: 4.1.2 '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.8.3)': dependencies: - glob: 10.4.5 + glob: 10.5.0 magic-string: 0.30.21 react-docgen-typescript: 2.4.0(typescript@5.8.3) optionalDependencies: @@ -26680,10 +27202,11 @@ snapshots: '@juggle/resize-observer@3.4.0': {} - '@keyv/bigmap@1.1.0(keyv@5.5.3)': + '@keyv/bigmap@1.3.0(keyv@5.5.4)': dependencies: - hookified: 1.12.2 - keyv: 5.5.3 + hashery: 1.2.0 + hookified: 1.13.0 + keyv: 5.5.4 '@keyv/serialize@1.1.1': {} @@ -26982,7 +27505,7 @@ snapshots: '@codemirror/language-data': 6.5.2 '@codemirror/merge': 6.11.2 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@codesandbox/sandpack-react': 2.20.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@lexical/clipboard': 0.17.1 '@lexical/link': 0.17.1 @@ -27003,10 +27526,10 @@ snapshots: '@radix-ui/react-toolbar': 1.1.11(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-tooltip': 1.2.8(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) classnames: 2.5.1 - cm6-theme-basic-light: 0.2.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/highlight@1.2.3) + cm6-theme-basic-light: 0.2.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/highlight@1.2.3) codemirror: 6.0.2 downshift: 7.6.2(react@18.2.0) - js-yaml: 4.1.0 + js-yaml: 4.1.1 lexical: 0.17.1 mdast-util-directive: 3.1.0 mdast-util-from-markdown: 2.0.2 @@ -27137,7 +27660,7 @@ snapshots: '@modelcontextprotocol/inspector-cli@0.17.2': dependencies: - '@modelcontextprotocol/sdk': 1.21.1 + '@modelcontextprotocol/sdk': 1.22.0 commander: 13.1.0 spawn-rx: 5.1.2 transitivePeerDependencies: @@ -27146,7 +27669,7 @@ snapshots: '@modelcontextprotocol/inspector-client@0.17.2(@types/react-dom@18.2.0)(@types/react@18.2.0)': dependencies: - '@modelcontextprotocol/sdk': 1.21.1 + '@modelcontextprotocol/sdk': 1.22.0 '@radix-ui/react-checkbox': 1.3.3(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-icons': 1.3.2(react@18.3.1) @@ -27179,7 +27702,7 @@ snapshots: '@modelcontextprotocol/inspector-server@0.17.2': dependencies: - '@modelcontextprotocol/sdk': 1.21.1 + '@modelcontextprotocol/sdk': 1.22.0 cors: 2.8.5 express: 5.1.0 shell-quote: 1.8.3 @@ -27192,18 +27715,18 @@ snapshots: - supports-color - utf-8-validate - '@modelcontextprotocol/inspector@0.17.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.18)(@types/react-dom@18.2.0)(@types/react@18.2.0)(typescript@5.8.3)': + '@modelcontextprotocol/inspector@0.17.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.18)(@types/react-dom@18.2.0)(@types/react@18.2.0)(typescript@5.8.3)': dependencies: '@modelcontextprotocol/inspector-cli': 0.17.2 '@modelcontextprotocol/inspector-client': 0.17.2(@types/react-dom@18.2.0)(@types/react@18.2.0) '@modelcontextprotocol/inspector-server': 0.17.2 - '@modelcontextprotocol/sdk': 1.21.1 + '@modelcontextprotocol/sdk': 1.22.0 concurrently: 9.2.1 node-fetch: 3.3.2 open: 10.2.0 shell-quote: 1.8.3 spawn-rx: 5.1.2 - ts-node: 10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.18)(typescript@5.8.3) + ts-node: 10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.18)(typescript@5.8.3) zod: 3.25.76 transitivePeerDependencies: - '@cfworker/json-schema' @@ -27217,7 +27740,7 @@ snapshots: - typescript - utf-8-validate - '@modelcontextprotocol/sdk@1.21.1': + '@modelcontextprotocol/sdk@1.22.0': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -27295,6 +27818,13 @@ snapshots: '@n1ru4l/push-pull-async-iterable-iterator@3.2.0': {} + '@napi-rs/wasm-runtime@0.2.12': + dependencies: + '@emnapi/core': 1.7.1 + '@emnapi/runtime': 1.7.1 + '@tybys/wasm-util': 0.10.1 + optional: true + '@ndelangen/get-tarball@3.0.9': dependencies: gunzip-maybe: 1.4.2 @@ -27430,109 +27960,111 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@pkgr/core@0.2.9': {} + '@playwright/test@1.55.1': dependencies: playwright: 1.55.1 - '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.102.1)': + '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.103.0)': dependencies: ansi-html: 0.0.9 - core-js-pure: 3.46.0 + core-js-pure: 3.47.0 error-stack-parser: 2.1.4 html-entities: 2.6.0 loader-utils: 2.0.4 react-refresh: 0.11.0 schema-utils: 4.3.3 source-map: 0.7.6 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) optionalDependencies: - '@types/webpack': 5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + '@types/webpack': 5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) type-fest: 4.41.0 - webpack-dev-server: 5.2.2(webpack-cli@6.0.1)(webpack@5.102.1) + webpack-dev-server: 5.2.2(webpack-cli@6.0.1)(webpack@5.103.0) webpack-hot-middleware: 2.26.1 - '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17)))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))))(webpack-hot-middleware@2.26.1)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17)))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))))(webpack-hot-middleware@2.26.1)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)))': dependencies: ansi-html: 0.0.9 - core-js-pure: 3.46.0 + core-js-pure: 3.47.0 error-stack-parser: 2.1.4 html-entities: 2.6.0 loader-utils: 2.0.4 react-refresh: 0.11.0 schema-utils: 4.3.3 source-map: 0.7.6 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) optionalDependencies: - '@types/webpack': 5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17)) + '@types/webpack': 5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17)) type-fest: 4.41.0 - webpack-dev-server: 5.2.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + webpack-dev-server: 5.2.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) webpack-hot-middleware: 2.26.1 - '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@5.28.5(webpack-cli@4.10.0))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.102.1)': + '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@5.28.5(webpack-cli@4.10.0))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.103.0)': dependencies: ansi-html: 0.0.9 - core-js-pure: 3.46.0 + core-js-pure: 3.47.0 error-stack-parser: 2.1.4 html-entities: 2.6.0 loader-utils: 2.0.4 react-refresh: 0.11.0 schema-utils: 4.3.3 source-map: 0.7.6 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@4.10.0) optionalDependencies: '@types/webpack': 5.28.5(webpack-cli@4.10.0) type-fest: 4.41.0 - webpack-dev-server: 5.2.2(webpack-cli@4.10.0)(webpack@5.102.1) + webpack-dev-server: 5.2.2(webpack-cli@4.10.0)(webpack@5.103.0) webpack-hot-middleware: 2.26.1 - '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@5.28.5(webpack-cli@5.1.4))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.102.1)': + '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@5.28.5(webpack-cli@5.1.4))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.103.0)': dependencies: ansi-html: 0.0.9 - core-js-pure: 3.46.0 + core-js-pure: 3.47.0 error-stack-parser: 2.1.4 html-entities: 2.6.0 loader-utils: 2.0.4 react-refresh: 0.11.0 schema-utils: 4.3.3 source-map: 0.7.6 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: '@types/webpack': 5.28.5(webpack-cli@5.1.4) type-fest: 4.41.0 - webpack-dev-server: 5.2.2(webpack-cli@5.1.4)(webpack@5.102.1) + webpack-dev-server: 5.2.2(webpack-cli@5.1.4)(webpack@5.103.0) webpack-hot-middleware: 2.26.1 - '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@5.28.5)(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1)(webpack@5.102.1)': + '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@5.28.5)(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1)(webpack@5.103.0)': dependencies: ansi-html: 0.0.9 - core-js-pure: 3.46.0 + core-js-pure: 3.47.0 error-stack-parser: 2.1.4 html-entities: 2.6.0 loader-utils: 2.0.4 react-refresh: 0.11.0 schema-utils: 4.3.3 source-map: 0.7.6 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: '@types/webpack': 5.28.5 type-fest: 4.41.0 - webpack-dev-server: 5.2.2(webpack@5.102.1) + webpack-dev-server: 5.2.2(webpack@5.103.0) webpack-hot-middleware: 2.26.1 - '@pmmmwh/react-refresh-webpack-plugin@0.6.1(@types/webpack@5.28.5(webpack-cli@5.1.4))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.102.1)': + '@pmmmwh/react-refresh-webpack-plugin@0.6.1(@types/webpack@5.28.5(webpack-cli@5.1.4))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.103.0)': dependencies: - anser: 2.3.2 - core-js-pure: 3.46.0 + anser: 2.3.3 + core-js-pure: 3.47.0 error-stack-parser: 2.1.4 html-entities: 2.6.0 react-refresh: 0.11.0 schema-utils: 4.3.3 source-map: 0.7.6 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: '@types/webpack': 5.28.5(webpack-cli@5.1.4) type-fest: 4.41.0 - webpack-dev-server: 5.2.2(webpack-cli@5.1.4)(webpack@5.102.1) + webpack-dev-server: 5.2.2(webpack-cli@5.1.4)(webpack@5.103.0) webpack-hot-middleware: 2.26.1 '@projectstorm/geometry@6.7.4': {} @@ -29292,9 +29824,9 @@ snapshots: resolve: 1.22.11 rollup: 1.32.1 - '@rollup/plugin-commonjs@28.0.9(rollup@4.53.1)': + '@rollup/plugin-commonjs@28.0.9(rollup@4.53.2)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.53.1) + '@rollup/pluginutils': 5.3.0(rollup@4.53.2) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.5.0(picomatch@4.0.3) @@ -29302,28 +29834,28 @@ snapshots: magic-string: 0.30.21 picomatch: 4.0.3 optionalDependencies: - rollup: 4.53.1 + rollup: 4.53.2 '@rollup/plugin-json@4.1.0(rollup@1.32.1)': dependencies: '@rollup/pluginutils': 3.1.0(rollup@1.32.1) rollup: 1.32.1 - '@rollup/plugin-json@6.1.0(rollup@4.53.1)': + '@rollup/plugin-json@6.1.0(rollup@4.53.2)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.53.1) + '@rollup/pluginutils': 5.3.0(rollup@4.53.2) optionalDependencies: - rollup: 4.53.1 + rollup: 4.53.2 - '@rollup/plugin-node-resolve@16.0.3(rollup@4.53.1)': + '@rollup/plugin-node-resolve@16.0.3(rollup@4.53.2)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.53.1) + '@rollup/pluginutils': 5.3.0(rollup@4.53.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.11 optionalDependencies: - rollup: 4.53.1 + rollup: 4.53.2 '@rollup/plugin-node-resolve@9.0.0(rollup@1.32.1)': dependencies: @@ -29353,78 +29885,78 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.3.0(rollup@4.53.1)': + '@rollup/pluginutils@5.3.0(rollup@4.53.2)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.53.1 + rollup: 4.53.2 - '@rollup/rollup-android-arm-eabi@4.53.1': + '@rollup/rollup-android-arm-eabi@4.53.2': optional: true - '@rollup/rollup-android-arm64@4.53.1': + '@rollup/rollup-android-arm64@4.53.2': optional: true - '@rollup/rollup-darwin-arm64@4.53.1': + '@rollup/rollup-darwin-arm64@4.53.2': optional: true - '@rollup/rollup-darwin-x64@4.53.1': + '@rollup/rollup-darwin-x64@4.53.2': optional: true - '@rollup/rollup-freebsd-arm64@4.53.1': + '@rollup/rollup-freebsd-arm64@4.53.2': optional: true - '@rollup/rollup-freebsd-x64@4.53.1': + '@rollup/rollup-freebsd-x64@4.53.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.53.1': + '@rollup/rollup-linux-arm-gnueabihf@4.53.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.53.1': + '@rollup/rollup-linux-arm-musleabihf@4.53.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.53.1': + '@rollup/rollup-linux-arm64-gnu@4.53.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.53.1': + '@rollup/rollup-linux-arm64-musl@4.53.2': optional: true - '@rollup/rollup-linux-loong64-gnu@4.53.1': + '@rollup/rollup-linux-loong64-gnu@4.53.2': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.53.1': + '@rollup/rollup-linux-ppc64-gnu@4.53.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.53.1': + '@rollup/rollup-linux-riscv64-gnu@4.53.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.53.1': + '@rollup/rollup-linux-riscv64-musl@4.53.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.53.1': + '@rollup/rollup-linux-s390x-gnu@4.53.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.53.1': + '@rollup/rollup-linux-x64-gnu@4.53.2': optional: true - '@rollup/rollup-linux-x64-musl@4.53.1': + '@rollup/rollup-linux-x64-musl@4.53.2': optional: true - '@rollup/rollup-openharmony-arm64@4.53.1': + '@rollup/rollup-openharmony-arm64@4.53.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.53.1': + '@rollup/rollup-win32-arm64-msvc@4.53.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.53.1': + '@rollup/rollup-win32-ia32-msvc@4.53.2': optional: true - '@rollup/rollup-win32-x64-gnu@4.53.1': + '@rollup/rollup-win32-x64-gnu@4.53.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.53.1': + '@rollup/rollup-win32-x64-msvc@4.53.2': optional: true '@rtsao/scc@1.1.0': {} @@ -29433,79 +29965,79 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@secretlint/config-creator@9.3.4': + '@secretlint/config-creator@10.2.2': dependencies: - '@secretlint/types': 9.3.4 + '@secretlint/types': 10.2.2 - '@secretlint/config-loader@9.3.4': + '@secretlint/config-loader@10.2.2': dependencies: - '@secretlint/profiler': 9.3.4 - '@secretlint/resolver': 9.3.4 - '@secretlint/types': 9.3.4 + '@secretlint/profiler': 10.2.2 + '@secretlint/resolver': 10.2.2 + '@secretlint/types': 10.2.2 ajv: 8.17.1 debug: 4.4.3(supports-color@8.1.1) rc-config-loader: 4.1.3 transitivePeerDependencies: - supports-color - '@secretlint/core@9.3.4': + '@secretlint/core@10.2.2': dependencies: - '@secretlint/profiler': 9.3.4 - '@secretlint/types': 9.3.4 + '@secretlint/profiler': 10.2.2 + '@secretlint/types': 10.2.2 debug: 4.4.3(supports-color@8.1.1) structured-source: 4.0.0 transitivePeerDependencies: - supports-color - '@secretlint/formatter@9.3.4': + '@secretlint/formatter@10.2.2': dependencies: - '@secretlint/resolver': 9.3.4 - '@secretlint/types': 9.3.4 - '@textlint/linter-formatter': 14.8.4 - '@textlint/module-interop': 14.8.4 - '@textlint/types': 14.8.4 - chalk: 4.1.2 + '@secretlint/resolver': 10.2.2 + '@secretlint/types': 10.2.2 + '@textlint/linter-formatter': 15.4.0 + '@textlint/module-interop': 15.4.0 + '@textlint/types': 15.4.0 + chalk: 5.6.2 debug: 4.4.3(supports-color@8.1.1) pluralize: 8.0.0 - strip-ansi: 6.0.1 + strip-ansi: 7.1.2 table: 6.9.0 - terminal-link: 2.1.1 + terminal-link: 4.0.0 transitivePeerDependencies: - supports-color - '@secretlint/node@9.3.4': + '@secretlint/node@10.2.2': dependencies: - '@secretlint/config-loader': 9.3.4 - '@secretlint/core': 9.3.4 - '@secretlint/formatter': 9.3.4 - '@secretlint/profiler': 9.3.4 - '@secretlint/source-creator': 9.3.4 - '@secretlint/types': 9.3.4 + '@secretlint/config-loader': 10.2.2 + '@secretlint/core': 10.2.2 + '@secretlint/formatter': 10.2.2 + '@secretlint/profiler': 10.2.2 + '@secretlint/source-creator': 10.2.2 + '@secretlint/types': 10.2.2 debug: 4.4.3(supports-color@8.1.1) - p-map: 4.0.0 + p-map: 7.0.4 transitivePeerDependencies: - supports-color - '@secretlint/profiler@9.3.4': {} + '@secretlint/profiler@10.2.2': {} - '@secretlint/resolver@9.3.4': {} + '@secretlint/resolver@10.2.2': {} - '@secretlint/secretlint-formatter-sarif@9.3.4': + '@secretlint/secretlint-formatter-sarif@10.2.2': dependencies: - node-sarif-builder: 2.0.3 + node-sarif-builder: 3.3.0 - '@secretlint/secretlint-rule-no-dotenv@9.3.4': + '@secretlint/secretlint-rule-no-dotenv@10.2.2': dependencies: - '@secretlint/types': 9.3.4 + '@secretlint/types': 10.2.2 - '@secretlint/secretlint-rule-preset-recommend@9.3.4': {} + '@secretlint/secretlint-rule-preset-recommend@10.2.2': {} - '@secretlint/source-creator@9.3.4': + '@secretlint/source-creator@10.2.2': dependencies: - '@secretlint/types': 9.3.4 + '@secretlint/types': 10.2.2 istextorbinary: 9.5.0 - '@secretlint/types@9.3.4': {} + '@secretlint/types@10.2.2': {} '@sentry/cli@1.77.3(encoding@0.1.13)': dependencies: @@ -29537,6 +30069,8 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sinclair/typebox@0.34.41': {} + '@sindresorhus/is@5.6.0': {} '@sindresorhus/is@7.1.1': {} @@ -29557,6 +30091,10 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 + '@sinonjs/fake-timers@13.0.5': + dependencies: + '@sinonjs/commons': 3.0.1 + '@size-limit/esbuild@11.2.0(size-limit@11.2.0)': dependencies: esbuild: 0.25.12 @@ -29573,9 +30111,9 @@ snapshots: '@size-limit/file': 11.2.0(size-limit@11.2.0) size-limit: 11.2.0 - '@smithy/abort-controller@4.2.4': + '@smithy/abort-controller@4.2.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 tslib: 2.8.1 '@smithy/chunked-blob-reader-native@4.2.1': @@ -29587,97 +30125,97 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/config-resolver@4.4.2': + '@smithy/config-resolver@4.4.3': dependencies: - '@smithy/node-config-provider': 4.3.4 - '@smithy/types': 4.8.1 + '@smithy/node-config-provider': 4.3.5 + '@smithy/types': 4.9.0 '@smithy/util-config-provider': 4.2.0 - '@smithy/util-endpoints': 3.2.4 - '@smithy/util-middleware': 4.2.4 + '@smithy/util-endpoints': 3.2.5 + '@smithy/util-middleware': 4.2.5 tslib: 2.8.1 - '@smithy/core@3.17.2': + '@smithy/core@3.18.4': dependencies: - '@smithy/middleware-serde': 4.2.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/types': 4.8.1 + '@smithy/middleware-serde': 4.2.6 + '@smithy/protocol-http': 5.3.5 + '@smithy/types': 4.9.0 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 - '@smithy/util-middleware': 4.2.4 - '@smithy/util-stream': 4.5.5 + '@smithy/util-middleware': 4.2.5 + '@smithy/util-stream': 4.5.6 '@smithy/util-utf8': 4.2.0 '@smithy/uuid': 1.1.0 tslib: 2.8.1 - '@smithy/credential-provider-imds@4.2.4': + '@smithy/credential-provider-imds@4.2.5': dependencies: - '@smithy/node-config-provider': 4.3.4 - '@smithy/property-provider': 4.2.4 - '@smithy/types': 4.8.1 - '@smithy/url-parser': 4.2.4 + '@smithy/node-config-provider': 4.3.5 + '@smithy/property-provider': 4.2.5 + '@smithy/types': 4.9.0 + '@smithy/url-parser': 4.2.5 tslib: 2.8.1 - '@smithy/eventstream-codec@4.2.4': + '@smithy/eventstream-codec@4.2.5': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 '@smithy/util-hex-encoding': 4.2.0 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@4.2.4': + '@smithy/eventstream-serde-browser@4.2.5': dependencies: - '@smithy/eventstream-serde-universal': 4.2.4 - '@smithy/types': 4.8.1 + '@smithy/eventstream-serde-universal': 4.2.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@4.3.4': + '@smithy/eventstream-serde-config-resolver@4.3.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/eventstream-serde-node@4.2.4': + '@smithy/eventstream-serde-node@4.2.5': dependencies: - '@smithy/eventstream-serde-universal': 4.2.4 - '@smithy/types': 4.8.1 + '@smithy/eventstream-serde-universal': 4.2.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@4.2.4': + '@smithy/eventstream-serde-universal@4.2.5': dependencies: - '@smithy/eventstream-codec': 4.2.4 - '@smithy/types': 4.8.1 + '@smithy/eventstream-codec': 4.2.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.3.5': + '@smithy/fetch-http-handler@5.3.6': dependencies: - '@smithy/protocol-http': 5.3.4 - '@smithy/querystring-builder': 4.2.4 - '@smithy/types': 4.8.1 + '@smithy/protocol-http': 5.3.5 + '@smithy/querystring-builder': 4.2.5 + '@smithy/types': 4.9.0 '@smithy/util-base64': 4.3.0 tslib: 2.8.1 - '@smithy/hash-blob-browser@4.2.5': + '@smithy/hash-blob-browser@4.2.6': dependencies: '@smithy/chunked-blob-reader': 5.2.0 '@smithy/chunked-blob-reader-native': 4.2.1 - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/hash-node@4.2.4': + '@smithy/hash-node@4.2.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 '@smithy/util-buffer-from': 4.2.0 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/hash-stream-node@4.2.4': + '@smithy/hash-stream-node@4.2.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/invalid-dependency@4.2.4': + '@smithy/invalid-dependency@4.2.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': @@ -29688,126 +30226,126 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/md5-js@4.2.4': + '@smithy/md5-js@4.2.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/middleware-content-length@4.2.4': + '@smithy/middleware-content-length@4.2.5': dependencies: - '@smithy/protocol-http': 5.3.4 - '@smithy/types': 4.8.1 + '@smithy/protocol-http': 5.3.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.3.6': + '@smithy/middleware-endpoint@4.3.11': dependencies: - '@smithy/core': 3.17.2 - '@smithy/middleware-serde': 4.2.4 - '@smithy/node-config-provider': 4.3.4 - '@smithy/shared-ini-file-loader': 4.3.4 - '@smithy/types': 4.8.1 - '@smithy/url-parser': 4.2.4 - '@smithy/util-middleware': 4.2.4 + '@smithy/core': 3.18.4 + '@smithy/middleware-serde': 4.2.6 + '@smithy/node-config-provider': 4.3.5 + '@smithy/shared-ini-file-loader': 4.4.0 + '@smithy/types': 4.9.0 + '@smithy/url-parser': 4.2.5 + '@smithy/util-middleware': 4.2.5 tslib: 2.8.1 - '@smithy/middleware-retry@4.4.6': + '@smithy/middleware-retry@4.4.11': dependencies: - '@smithy/node-config-provider': 4.3.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/service-error-classification': 4.2.4 - '@smithy/smithy-client': 4.9.2 - '@smithy/types': 4.8.1 - '@smithy/util-middleware': 4.2.4 - '@smithy/util-retry': 4.2.4 + '@smithy/node-config-provider': 4.3.5 + '@smithy/protocol-http': 5.3.5 + '@smithy/service-error-classification': 4.2.5 + '@smithy/smithy-client': 4.9.7 + '@smithy/types': 4.9.0 + '@smithy/util-middleware': 4.2.5 + '@smithy/util-retry': 4.2.5 '@smithy/uuid': 1.1.0 tslib: 2.8.1 - '@smithy/middleware-serde@4.2.4': + '@smithy/middleware-serde@4.2.6': dependencies: - '@smithy/protocol-http': 5.3.4 - '@smithy/types': 4.8.1 + '@smithy/protocol-http': 5.3.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/middleware-stack@4.2.4': + '@smithy/middleware-stack@4.2.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/node-config-provider@4.3.4': + '@smithy/node-config-provider@4.3.5': dependencies: - '@smithy/property-provider': 4.2.4 - '@smithy/shared-ini-file-loader': 4.3.4 - '@smithy/types': 4.8.1 + '@smithy/property-provider': 4.2.5 + '@smithy/shared-ini-file-loader': 4.4.0 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/node-http-handler@4.4.4': + '@smithy/node-http-handler@4.4.5': dependencies: - '@smithy/abort-controller': 4.2.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/querystring-builder': 4.2.4 - '@smithy/types': 4.8.1 + '@smithy/abort-controller': 4.2.5 + '@smithy/protocol-http': 5.3.5 + '@smithy/querystring-builder': 4.2.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/property-provider@4.2.4': + '@smithy/property-provider@4.2.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/protocol-http@5.3.4': + '@smithy/protocol-http@5.3.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/querystring-builder@4.2.4': + '@smithy/querystring-builder@4.2.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 '@smithy/util-uri-escape': 4.2.0 tslib: 2.8.1 - '@smithy/querystring-parser@4.2.4': + '@smithy/querystring-parser@4.2.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/service-error-classification@4.2.4': + '@smithy/service-error-classification@4.2.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 - '@smithy/shared-ini-file-loader@4.3.4': + '@smithy/shared-ini-file-loader@4.4.0': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/signature-v4@5.3.4': + '@smithy/signature-v4@5.3.5': dependencies: '@smithy/is-array-buffer': 4.2.0 - '@smithy/protocol-http': 5.3.4 - '@smithy/types': 4.8.1 + '@smithy/protocol-http': 5.3.5 + '@smithy/types': 4.9.0 '@smithy/util-hex-encoding': 4.2.0 - '@smithy/util-middleware': 4.2.4 + '@smithy/util-middleware': 4.2.5 '@smithy/util-uri-escape': 4.2.0 '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/smithy-client@4.9.2': + '@smithy/smithy-client@4.9.7': dependencies: - '@smithy/core': 3.17.2 - '@smithy/middleware-endpoint': 4.3.6 - '@smithy/middleware-stack': 4.2.4 - '@smithy/protocol-http': 5.3.4 - '@smithy/types': 4.8.1 - '@smithy/util-stream': 4.5.5 + '@smithy/core': 3.18.4 + '@smithy/middleware-endpoint': 4.3.11 + '@smithy/middleware-stack': 4.2.5 + '@smithy/protocol-http': 5.3.5 + '@smithy/types': 4.9.0 + '@smithy/util-stream': 4.5.6 tslib: 2.8.1 - '@smithy/types@4.8.1': + '@smithy/types@4.9.0': dependencies: tslib: 2.8.1 - '@smithy/url-parser@4.2.4': + '@smithy/url-parser@4.2.5': dependencies: - '@smithy/querystring-parser': 4.2.4 - '@smithy/types': 4.8.1 + '@smithy/querystring-parser': 4.2.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 '@smithy/util-base64@4.3.0': @@ -29838,49 +30376,49 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.3.5': + '@smithy/util-defaults-mode-browser@4.3.10': dependencies: - '@smithy/property-provider': 4.2.4 - '@smithy/smithy-client': 4.9.2 - '@smithy/types': 4.8.1 + '@smithy/property-provider': 4.2.5 + '@smithy/smithy-client': 4.9.7 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.2.8': + '@smithy/util-defaults-mode-node@4.2.13': dependencies: - '@smithy/config-resolver': 4.4.2 - '@smithy/credential-provider-imds': 4.2.4 - '@smithy/node-config-provider': 4.3.4 - '@smithy/property-provider': 4.2.4 - '@smithy/smithy-client': 4.9.2 - '@smithy/types': 4.8.1 + '@smithy/config-resolver': 4.4.3 + '@smithy/credential-provider-imds': 4.2.5 + '@smithy/node-config-provider': 4.3.5 + '@smithy/property-provider': 4.2.5 + '@smithy/smithy-client': 4.9.7 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/util-endpoints@3.2.4': + '@smithy/util-endpoints@3.2.5': dependencies: - '@smithy/node-config-provider': 4.3.4 - '@smithy/types': 4.8.1 + '@smithy/node-config-provider': 4.3.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 '@smithy/util-hex-encoding@4.2.0': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@4.2.4': + '@smithy/util-middleware@4.2.5': dependencies: - '@smithy/types': 4.8.1 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/util-retry@4.2.4': + '@smithy/util-retry@4.2.5': dependencies: - '@smithy/service-error-classification': 4.2.4 - '@smithy/types': 4.8.1 + '@smithy/service-error-classification': 4.2.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 - '@smithy/util-stream@4.5.5': + '@smithy/util-stream@4.5.6': dependencies: - '@smithy/fetch-http-handler': 5.3.5 - '@smithy/node-http-handler': 4.4.4 - '@smithy/types': 4.8.1 + '@smithy/fetch-http-handler': 5.3.6 + '@smithy/node-http-handler': 4.4.5 + '@smithy/types': 4.9.0 '@smithy/util-base64': 4.3.0 '@smithy/util-buffer-from': 4.2.0 '@smithy/util-hex-encoding': 4.2.0 @@ -29901,10 +30439,10 @@ snapshots: '@smithy/util-buffer-from': 4.2.0 tslib: 2.8.1 - '@smithy/util-waiter@4.2.4': + '@smithy/util-waiter@4.2.5': dependencies: - '@smithy/abort-controller': 4.2.4 - '@smithy/types': 4.8.1 + '@smithy/abort-controller': 4.2.5 + '@smithy/types': 4.9.0 tslib: 2.8.1 '@smithy/uuid@1.1.0': @@ -29913,7 +30451,7 @@ snapshots: '@so-ric/colorspace@1.1.6': dependencies: - color: 5.0.2 + color: 5.0.3 text-hex: 1.0.0 '@standard-schema/spec@1.0.0': {} @@ -29931,7 +30469,7 @@ snapshots: '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.46.0 + core-js: 3.47.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -30024,7 +30562,7 @@ snapshots: '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 memoizerific: 1.11.3 regenerator-runtime: 0.13.11 @@ -30086,18 +30624,18 @@ snapshots: storybook: 9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-controls@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': + '@storybook/addon-controls@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': dependencies: '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 6.5.16 '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/node-logger': 6.5.16 '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.46.0 + core-js: 3.47.0 lodash: 4.17.21 ts-dedent: 2.2.0 optionalDependencies: @@ -30124,7 +30662,7 @@ snapshots: '@storybook/node-logger': 6.5.16 '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.46.0 + core-js: 3.47.0 lodash: 4.17.21 ts-dedent: 2.2.0 optionalDependencies: @@ -30200,7 +30738,7 @@ snapshots: storybook: 9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-docs@6.5.16(@babel/core@7.27.7)(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.102.1)': + '@storybook/addon-docs@6.5.16(@babel/core@7.27.7)(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.103.0)': dependencies: '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.7) '@babel/preset-env': 7.27.2(@babel/core@7.27.7) @@ -30209,7 +30747,7 @@ snapshots: '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/docs-tools': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -30220,8 +30758,8 @@ snapshots: '@storybook/source-loader': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) - core-js: 3.46.0 + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) + core-js: 3.47.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -30245,7 +30783,7 @@ snapshots: - webpack - webpack-cli - '@storybook/addon-docs@6.5.16(@babel/core@7.27.7)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.102.1)': + '@storybook/addon-docs@6.5.16(@babel/core@7.27.7)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.103.0)': dependencies: '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.7) '@babel/preset-env': 7.27.2(@babel/core@7.27.7) @@ -30265,8 +30803,8 @@ snapshots: '@storybook/source-loader': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) - core-js: 3.46.0 + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) + core-js: 3.47.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -30387,29 +30925,29 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.102.1)': + '@storybook/addon-essentials@6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.103.0)': dependencies: '@babel/core': 7.27.7 '@storybook/addon-actions': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-backgrounds': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addon-controls': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) - '@storybook/addon-docs': 6.5.16(@babel/core@7.27.7)(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.102.1) + '@storybook/addon-controls': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/addon-docs': 6.5.16(@babel/core@7.27.7)(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.103.0) '@storybook/addon-measure': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-outline': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-toolbars': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-viewport': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/node-logger': 6.5.16 - core-js: 3.46.0 + core-js: 3.47.0 regenerator-runtime: 0.13.11 ts-dedent: 2.2.0 optionalDependencies: - '@storybook/builder-webpack5': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/builder-webpack5': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) transitivePeerDependencies: - '@storybook/mdx2-csf' - '@swc/core' @@ -30421,13 +30959,13 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/addon-essentials@6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.102.1)': + '@storybook/addon-essentials@6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.103.0)': dependencies: '@babel/core': 7.27.7 '@storybook/addon-actions': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-backgrounds': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-controls': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) - '@storybook/addon-docs': 6.5.16(@babel/core@7.27.7)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.102.1) + '@storybook/addon-docs': 6.5.16(@babel/core@7.27.7)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.103.0) '@storybook/addon-measure': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-outline': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-toolbars': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -30436,14 +30974,14 @@ snapshots: '@storybook/api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) '@storybook/node-logger': 6.5.16 - core-js: 3.46.0 + core-js: 3.47.0 regenerator-runtime: 0.13.11 ts-dedent: 2.2.0 optionalDependencies: '@storybook/builder-webpack5': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@4.10.0) transitivePeerDependencies: - '@storybook/mdx2-csf' - '@swc/core' @@ -30568,7 +31106,7 @@ snapshots: '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/router': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/qs': 6.14.0 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 prop-types: 15.8.1 qs: 6.14.0 @@ -30618,7 +31156,7 @@ snapshots: '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 optionalDependencies: react: 18.2.0 @@ -30682,7 +31220,7 @@ snapshots: '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 regenerator-runtime: 0.13.11 ts-dedent: 2.2.0 @@ -30743,7 +31281,7 @@ snapshots: '@storybook/client-logger': 6.5.16 '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.46.0 + core-js: 3.47.0 regenerator-runtime: 0.13.11 optionalDependencies: react: 18.2.0 @@ -30793,7 +31331,7 @@ snapshots: '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/core-events': 6.5.16 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 memoizerific: 1.11.3 prop-types: 15.8.1 @@ -30858,7 +31396,7 @@ snapshots: '@storybook/router': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/webpack-env': 1.18.8 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -30874,7 +31412,7 @@ snapshots: '@storybook/router': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@storybook/theming': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/webpack-env': 1.18.8 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) @@ -30905,7 +31443,7 @@ snapshots: '@storybook/router': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/semver': 7.3.2 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.46.0 + core-js: 3.47.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -30927,7 +31465,7 @@ snapshots: '@storybook/router': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@storybook/semver': 7.3.2 '@storybook/theming': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - core-js: 3.46.0 + core-js: 3.47.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -31061,7 +31599,7 @@ snapshots: storybook: 9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/builder-webpack4@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': + '@storybook/builder-webpack4@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': dependencies: '@babel/core': 7.27.7 '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -31071,7 +31609,7 @@ snapshots: '@storybook/client-api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 6.5.16 '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@storybook/core-events': 6.5.16 '@storybook/node-logger': 6.5.16 '@storybook/preview-web': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -31083,33 +31621,33 @@ snapshots: '@types/node': 16.18.126 '@types/webpack': 4.41.40 autoprefixer: 9.8.8 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) case-sensitive-paths-webpack-plugin: 2.4.0 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) + file-loader: 6.2.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) find-up: 5.0.0 fork-ts-checker-webpack-plugin: 4.1.6 glob: 7.2.3 glob-promise: 3.4.0(glob@7.2.3) global: 4.4.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + html-webpack-plugin: 4.5.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) pnp-webpack-plugin: 1.6.4(typescript@5.8.3) postcss: 7.0.39 postcss-flexbugs-fixes: 4.2.1 - postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - raw-loader: 4.0.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) + raw-loader: 4.0.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) stable: 0.1.8 - style-loader: 1.3.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - terser-webpack-plugin: 4.2.3(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + style-loader: 1.3.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) + terser-webpack-plugin: 4.2.3(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))))(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))))(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) - webpack-dev-middleware: 3.7.3(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - webpack-filter-warnings-plugin: 1.2.1(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) + webpack-dev-middleware: 3.7.3(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) + webpack-filter-warnings-plugin: 1.2.1(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.2.2 optionalDependencies: @@ -31123,7 +31661,7 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/builder-webpack4@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': + '@storybook/builder-webpack4@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': dependencies: '@babel/core': 7.27.7 '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -31133,7 +31671,7 @@ snapshots: '@storybook/client-api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 6.5.16 '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/core-events': 6.5.16 '@storybook/node-logger': 6.5.16 '@storybook/preview-web': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -31145,33 +31683,33 @@ snapshots: '@types/node': 16.18.126 '@types/webpack': 4.41.40 autoprefixer: 9.8.8 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1) - file-loader: 6.2.0(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0) + file-loader: 6.2.0(webpack@5.103.0) find-up: 5.0.0 fork-ts-checker-webpack-plugin: 4.1.6 glob: 7.2.3 glob-promise: 3.4.0(glob@7.2.3) global: 4.4.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1) + html-webpack-plugin: 4.5.2(webpack@5.103.0) pnp-webpack-plugin: 1.6.4(typescript@5.8.3) postcss: 7.0.39 postcss-flexbugs-fixes: 4.2.1 - postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.102.1) - raw-loader: 4.0.2(webpack@5.102.1) + postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.103.0) + raw-loader: 4.0.2(webpack@5.103.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) stable: 0.1.8 - style-loader: 1.3.0(webpack@5.102.1) - terser-webpack-plugin: 4.2.3(webpack@5.102.1) + style-loader: 1.3.0(webpack@5.103.0) + terser-webpack-plugin: 4.2.3(webpack@5.103.0) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - webpack-dev-middleware: 3.7.3(webpack@5.102.1) - webpack-filter-warnings-plugin: 1.2.1(webpack@5.102.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack-dev-middleware: 3.7.3(webpack@5.103.0) + webpack-filter-warnings-plugin: 1.2.1(webpack@5.103.0) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.2.2 optionalDependencies: @@ -31207,33 +31745,33 @@ snapshots: '@types/node': 16.18.126 '@types/webpack': 4.41.40 autoprefixer: 9.8.8 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1) - file-loader: 6.2.0(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0) + file-loader: 6.2.0(webpack@5.103.0) find-up: 5.0.0 fork-ts-checker-webpack-plugin: 4.1.6 glob: 7.2.3 glob-promise: 3.4.0(glob@7.2.3) global: 4.4.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1) + html-webpack-plugin: 4.5.2(webpack@5.103.0) pnp-webpack-plugin: 1.6.4(typescript@5.8.3) postcss: 7.0.39 postcss-flexbugs-fixes: 4.2.1 - postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.102.1) - raw-loader: 4.0.2(webpack@5.102.1) + postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.103.0) + raw-loader: 4.0.2(webpack@5.103.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) stable: 0.1.8 - style-loader: 1.3.0(webpack@5.102.1) - terser-webpack-plugin: 4.2.3(webpack@5.102.1) + style-loader: 1.3.0(webpack@5.103.0) + terser-webpack-plugin: 4.2.3(webpack@5.103.0) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-dev-middleware: 3.7.3(webpack@5.102.1) - webpack-filter-warnings-plugin: 1.2.1(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-dev-middleware: 3.7.3(webpack@5.103.0) + webpack-filter-warnings-plugin: 1.2.1(webpack@5.103.0) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.2.2 optionalDependencies: @@ -31269,33 +31807,33 @@ snapshots: '@types/node': 16.18.126 '@types/webpack': 4.41.40 autoprefixer: 9.8.8 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1) - file-loader: 6.2.0(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0) + file-loader: 6.2.0(webpack@5.103.0) find-up: 5.0.0 fork-ts-checker-webpack-plugin: 4.1.6 glob: 7.2.3 glob-promise: 3.4.0(glob@7.2.3) global: 4.4.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1) + html-webpack-plugin: 4.5.2(webpack@5.103.0) pnp-webpack-plugin: 1.6.4(typescript@5.8.3) postcss: 7.0.39 postcss-flexbugs-fixes: 4.2.1 - postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.102.1) - raw-loader: 4.0.2(webpack@5.102.1) + postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.103.0) + raw-loader: 4.0.2(webpack@5.103.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) stable: 0.1.8 - style-loader: 1.3.0(webpack@5.102.1) - terser-webpack-plugin: 4.2.3(webpack@5.102.1) + style-loader: 1.3.0(webpack@5.103.0) + terser-webpack-plugin: 4.2.3(webpack@5.103.0) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-dev-middleware: 3.7.3(webpack@5.102.1) - webpack-filter-warnings-plugin: 1.2.1(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-dev-middleware: 3.7.3(webpack@5.103.0) + webpack-filter-warnings-plugin: 1.2.1(webpack@5.103.0) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.2.2 optionalDependencies: @@ -31331,33 +31869,33 @@ snapshots: '@types/node': 16.18.126 '@types/webpack': 4.41.40 autoprefixer: 9.8.8 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1) - file-loader: 6.2.0(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0) + file-loader: 6.2.0(webpack@5.103.0) find-up: 5.0.0 fork-ts-checker-webpack-plugin: 4.1.6 glob: 7.2.3 glob-promise: 3.4.0(glob@7.2.3) global: 4.4.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1) + html-webpack-plugin: 4.5.2(webpack@5.103.0) pnp-webpack-plugin: 1.6.4(typescript@5.8.3) postcss: 7.0.39 postcss-flexbugs-fixes: 4.2.1 - postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.102.1) - raw-loader: 4.0.2(webpack@5.102.1) + postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.103.0) + raw-loader: 4.0.2(webpack@5.103.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) stable: 0.1.8 - style-loader: 1.3.0(webpack@5.102.1) - terser-webpack-plugin: 4.2.3(webpack@5.102.1) + style-loader: 1.3.0(webpack@5.103.0) + terser-webpack-plugin: 4.2.3(webpack@5.103.0) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-dev-middleware: 3.7.3(webpack@5.102.1) - webpack-filter-warnings-plugin: 1.2.1(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@4.10.0) + webpack-dev-middleware: 3.7.3(webpack@5.103.0) + webpack-filter-warnings-plugin: 1.2.1(webpack@5.103.0) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.2.2 optionalDependencies: @@ -31393,33 +31931,33 @@ snapshots: '@types/node': 16.18.126 '@types/webpack': 4.41.40 autoprefixer: 9.8.8 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1) - file-loader: 6.2.0(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0) + file-loader: 6.2.0(webpack@5.103.0) find-up: 5.0.0 fork-ts-checker-webpack-plugin: 4.1.6 glob: 7.2.3 glob-promise: 3.4.0(glob@7.2.3) global: 4.4.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1) + html-webpack-plugin: 4.5.2(webpack@5.103.0) pnp-webpack-plugin: 1.6.4(typescript@4.9.5) postcss: 7.0.39 postcss-flexbugs-fixes: 4.2.1 - postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.102.1) - raw-loader: 4.0.2(webpack@5.102.1) + postcss-loader: 4.3.0(postcss@7.0.39)(webpack@5.103.0) + raw-loader: 4.0.2(webpack@5.103.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) stable: 0.1.8 - style-loader: 1.3.0(webpack@5.102.1) - terser-webpack-plugin: 4.2.3(webpack@5.102.1) + style-loader: 1.3.0(webpack@5.103.0) + terser-webpack-plugin: 4.2.3(webpack@5.103.0) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-dev-middleware: 3.7.3(webpack@5.102.1) - webpack-filter-warnings-plugin: 1.2.1(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-dev-middleware: 3.7.3(webpack@5.103.0) + webpack-filter-warnings-plugin: 1.2.1(webpack@5.103.0) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.2.2 optionalDependencies: @@ -31433,7 +31971,7 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/builder-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': + '@storybook/builder-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': dependencies: '@babel/core': 7.27.7 '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -31443,7 +31981,7 @@ snapshots: '@storybook/client-api': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 6.5.16 '@storybook/components': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/core-events': 6.5.16 '@storybook/node-logger': 6.5.16 '@storybook/preview-web': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -31452,27 +31990,27 @@ snapshots: '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/node': 16.18.126 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) babel-plugin-named-exports-order: 0.0.2 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 - core-js: 3.46.0 - css-loader: 5.2.7(webpack@5.102.1) - fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 5.2.7(webpack@5.103.0) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.103.0) glob: 7.2.3 glob-promise: 3.4.0(glob@7.2.3) - html-webpack-plugin: 5.6.4(webpack@5.102.1) + html-webpack-plugin: 5.6.5(webpack@5.103.0) path-browserify: 1.0.1 process: 0.11.10 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) stable: 0.1.8 - style-loader: 2.0.0(webpack@5.102.1) - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + style-loader: 2.0.0(webpack@5.103.0) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - webpack-dev-middleware: 4.3.0(webpack@5.102.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack-dev-middleware: 4.3.0(webpack@5.103.0) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.4.6 optionalDependencies: @@ -31506,27 +32044,27 @@ snapshots: '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/node': 16.18.126 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) babel-plugin-named-exports-order: 0.0.2 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 - core-js: 3.46.0 - css-loader: 5.2.7(webpack@5.102.1) - fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 5.2.7(webpack@5.103.0) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.103.0) glob: 7.2.3 glob-promise: 3.4.0(glob@7.2.3) - html-webpack-plugin: 5.6.4(webpack@5.102.1) + html-webpack-plugin: 5.6.5(webpack@5.103.0) path-browserify: 1.0.1 process: 0.11.10 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) stable: 0.1.8 - style-loader: 2.0.0(webpack@5.102.1) - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + style-loader: 2.0.0(webpack@5.103.0) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-dev-middleware: 4.3.0(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@4.10.0) + webpack-dev-middleware: 4.3.0(webpack@5.103.0) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.4.6 optionalDependencies: @@ -31560,33 +32098,33 @@ snapshots: '@storybook/router': 7.4.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/store': 7.4.6 '@storybook/theming': 7.4.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@swc/core': 1.15.0(@swc/helpers@0.5.17) + '@swc/core': 1.15.2(@swc/helpers@0.5.17) '@types/node': 16.18.126 '@types/semver': 7.7.1 - babel-loader: 9.2.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 9.2.1(@babel/core@7.27.7)(webpack@5.103.0) babel-plugin-named-exports-order: 0.0.2 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.102.1) + css-loader: 6.11.0(webpack@5.103.0) express: 4.21.2 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.102.1) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.103.0) fs-extra: 11.3.2 - html-webpack-plugin: 5.6.4(webpack@5.102.1) + html-webpack-plugin: 5.6.5(webpack@5.103.0) path-browserify: 1.0.1 process: 0.11.10 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) semver: 7.7.3 - style-loader: 3.3.4(webpack@5.102.1) - swc-loader: 0.2.6(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + style-loader: 3.3.4(webpack@5.103.0) + swc-loader: 0.2.6(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@5.1.4) - webpack-dev-middleware: 6.1.3(webpack@5.102.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@5.1.4) + webpack-dev-middleware: 6.1.3(webpack@5.103.0) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.5.0 optionalDependencies: @@ -31621,33 +32159,33 @@ snapshots: '@storybook/router': 7.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@storybook/store': 7.4.6 '@storybook/theming': 7.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@swc/core': 1.15.0(@swc/helpers@0.5.17) + '@swc/core': 1.15.2(@swc/helpers@0.5.17) '@types/node': 16.18.126 '@types/semver': 7.7.1 - babel-loader: 9.2.1(@babel/core@7.27.7)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + babel-loader: 9.2.1(@babel/core@7.27.7)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) babel-plugin-named-exports-order: 0.0.2 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + css-loader: 6.11.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) express: 4.21.2 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) fs-extra: 11.3.2 - html-webpack-plugin: 5.6.4(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + html-webpack-plugin: 5.6.5(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) path-browserify: 1.0.1 process: 0.11.10 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) semver: 7.7.3 - style-loader: 3.3.4(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - swc-loader: 0.2.6(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + style-loader: 3.3.4(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) + swc-loader: 0.2.6(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) - webpack-dev-middleware: 6.1.3(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) + webpack-dev-middleware: 6.1.3(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.5.0 optionalDependencies: @@ -31663,7 +32201,7 @@ snapshots: - uglify-js - webpack-cli - '@storybook/builder-webpack5@8.6.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/builder-webpack5@8.6.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': dependencies: '@storybook/core-webpack': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@types/semver': 7.7.1 @@ -31671,23 +32209,23 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + css-loader: 6.11.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)) es-module-lexer: 1.7.0 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - html-webpack-plugin: 5.6.4(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)) + html-webpack-plugin: 5.6.5(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)) magic-string: 0.30.21 path-browserify: 1.0.1 process: 0.11.10 semver: 7.7.3 storybook: 8.6.14(prettier@3.5.3) - style-loader: 3.3.4(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + style-loader: 3.3.4(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) - webpack-dev-middleware: 6.1.3(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12) + webpack-dev-middleware: 6.1.3(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -31707,23 +32245,23 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.102.1) + css-loader: 6.11.0(webpack@5.103.0) es-module-lexer: 1.7.0 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.102.1) - html-webpack-plugin: 5.6.4(webpack@5.102.1) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.103.0) + html-webpack-plugin: 5.6.5(webpack@5.103.0) magic-string: 0.30.21 path-browserify: 1.0.1 process: 0.11.10 semver: 7.7.3 storybook: 9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3) - style-loader: 3.3.4(webpack@5.102.1) - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + style-loader: 3.3.4(webpack@5.103.0) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@5.1.4) - webpack-dev-middleware: 6.1.3(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-dev-middleware: 6.1.3(webpack@5.103.0) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -31740,7 +32278,7 @@ snapshots: '@storybook/channels': 6.5.16 '@storybook/client-logger': 6.5.16 '@storybook/core-events': 6.5.16 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 qs: 6.14.0 telejson: 6.0.8 @@ -31749,13 +32287,13 @@ snapshots: dependencies: '@storybook/channels': 6.5.16 '@storybook/client-logger': 6.5.16 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 telejson: 6.0.8 '@storybook/channels@6.5.16': dependencies: - core-js: 3.46.0 + core-js: 3.47.0 ts-dedent: 2.2.0 util-deprecate: 1.0.2 @@ -31859,7 +32397,7 @@ snapshots: '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/qs': 6.14.0 '@types/webpack-env': 1.18.8 - core-js: 3.46.0 + core-js: 3.47.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -31884,7 +32422,7 @@ snapshots: '@storybook/store': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/qs': 6.14.0 '@types/webpack-env': 1.18.8 - core-js: 3.46.0 + core-js: 3.47.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -31905,7 +32443,7 @@ snapshots: '@storybook/client-logger@6.5.16': dependencies: - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 '@storybook/client-logger@7.4.6': @@ -31939,7 +32477,7 @@ snapshots: dependencies: '@types/cross-spawn': 6.0.6 cross-spawn: 7.0.6 - es-toolkit: 1.41.0 + es-toolkit: 1.42.0 globby: 14.1.0 jscodeshift: 0.15.2(@babel/preset-env@7.27.2(@babel/core@7.28.5)) prettier: 3.5.3 @@ -31959,7 +32497,7 @@ snapshots: '@storybook/client-logger': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.46.0 + core-js: 3.47.0 memoizerific: 1.11.3 qs: 6.14.0 react: 18.2.0 @@ -31972,7 +32510,7 @@ snapshots: '@storybook/client-logger': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/theming': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - core-js: 3.46.0 + core-js: 3.47.0 memoizerific: 1.11.3 qs: 6.14.0 react: 19.1.0 @@ -32024,7 +32562,7 @@ snapshots: dependencies: storybook: 9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3) - '@storybook/core-client@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)))': + '@storybook/core-client@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)))': dependencies: '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/channel-postmessage': 6.5.16 @@ -32038,7 +32576,7 @@ snapshots: '@storybook/ui': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) airbnb-js-shims: 2.2.1 ansi-to-html: 0.6.15 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 lodash: 4.17.21 qs: 6.14.0 @@ -32048,11 +32586,11 @@ snapshots: ts-dedent: 2.2.0 unfetch: 4.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) optionalDependencies: typescript: 5.8.3 - '@storybook/core-client@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1)': + '@storybook/core-client@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0)': dependencies: '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/channel-postmessage': 6.5.16 @@ -32066,7 +32604,7 @@ snapshots: '@storybook/ui': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) airbnb-js-shims: 2.2.1 ansi-to-html: 0.6.15 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 lodash: 4.17.21 qs: 6.14.0 @@ -32076,11 +32614,11 @@ snapshots: ts-dedent: 2.2.0 unfetch: 4.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) optionalDependencies: typescript: 5.8.3 - '@storybook/core-client@6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.102.1)': + '@storybook/core-client@6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.103.0)': dependencies: '@storybook/addons': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@storybook/channel-postmessage': 6.5.16 @@ -32094,7 +32632,7 @@ snapshots: '@storybook/ui': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) airbnb-js-shims: 2.2.1 ansi-to-html: 0.6.15 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 lodash: 4.17.21 qs: 6.14.0 @@ -32104,7 +32642,7 @@ snapshots: ts-dedent: 2.2.0 unfetch: 4.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: typescript: 4.9.5 @@ -32113,7 +32651,7 @@ snapshots: '@storybook/client-logger': 7.4.6 '@storybook/preview-api': 7.4.6 - '@storybook/core-common@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': + '@storybook/core-common@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': dependencies: '@babel/core': 7.27.7 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.7) @@ -32141,15 +32679,15 @@ snapshots: '@storybook/semver': 7.3.2 '@types/node': 16.18.126 '@types/pretty-hrtime': 1.0.3 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) babel-plugin-macros: 3.1.0 babel-plugin-polyfill-corejs3: 0.1.7(@babel/core@7.27.7) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 express: 4.21.2 file-system-cache: 1.1.0 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) fs-extra: 9.1.0 glob: 7.2.3 handlebars: 4.7.8 @@ -32166,7 +32704,7 @@ snapshots: telejson: 6.0.8 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -32178,7 +32716,7 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/core-common@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': + '@storybook/core-common@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': dependencies: '@babel/core': 7.27.7 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.7) @@ -32206,15 +32744,15 @@ snapshots: '@storybook/semver': 7.3.2 '@types/node': 16.18.126 '@types/pretty-hrtime': 1.0.3 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) babel-plugin-macros: 3.1.0 babel-plugin-polyfill-corejs3: 0.1.7(@babel/core@7.27.7) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 express: 4.21.2 file-system-cache: 1.1.0 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.102.1) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.103.0) fs-extra: 9.1.0 glob: 7.2.3 handlebars: 4.7.8 @@ -32231,7 +32769,7 @@ snapshots: telejson: 6.0.8 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -32271,15 +32809,15 @@ snapshots: '@storybook/semver': 7.3.2 '@types/node': 16.18.126 '@types/pretty-hrtime': 1.0.3 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) babel-plugin-macros: 3.1.0 babel-plugin-polyfill-corejs3: 0.1.7(@babel/core@7.27.7) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 express: 4.21.2 file-system-cache: 1.1.0 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.26.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.102.1) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.26.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.103.0) fs-extra: 9.1.0 glob: 7.2.3 handlebars: 4.7.8 @@ -32296,7 +32834,7 @@ snapshots: telejson: 6.0.8 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -32336,15 +32874,15 @@ snapshots: '@storybook/semver': 7.3.2 '@types/node': 16.18.126 '@types/pretty-hrtime': 1.0.3 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) babel-plugin-macros: 3.1.0 babel-plugin-polyfill-corejs3: 0.1.7(@babel/core@7.27.7) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 express: 4.21.2 file-system-cache: 1.1.0 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.102.1) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.103.0) fs-extra: 9.1.0 glob: 7.2.3 handlebars: 4.7.8 @@ -32361,7 +32899,7 @@ snapshots: telejson: 6.0.8 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -32401,15 +32939,15 @@ snapshots: '@storybook/semver': 7.3.2 '@types/node': 16.18.126 '@types/pretty-hrtime': 1.0.3 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) babel-plugin-macros: 3.1.0 babel-plugin-polyfill-corejs3: 0.1.7(@babel/core@7.27.7) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 express: 4.21.2 file-system-cache: 1.1.0 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.102.1) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.103.0) fs-extra: 9.1.0 glob: 7.2.3 handlebars: 4.7.8 @@ -32426,7 +32964,7 @@ snapshots: telejson: 6.0.8 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@4.10.0) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -32466,15 +33004,15 @@ snapshots: '@storybook/semver': 7.3.2 '@types/node': 16.18.126 '@types/pretty-hrtime': 1.0.3 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) babel-plugin-macros: 3.1.0 babel-plugin-polyfill-corejs3: 0.1.7(@babel/core@7.27.7) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 express: 4.21.2 file-system-cache: 1.1.0 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@4.9.5)(webpack@5.102.1) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@4.9.5)(webpack@5.103.0) fs-extra: 9.1.0 glob: 7.2.3 handlebars: 4.7.8 @@ -32491,7 +33029,7 @@ snapshots: telejson: 6.0.8 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: @@ -32519,7 +33057,7 @@ snapshots: find-cache-dir: 3.3.2 find-up: 5.0.0 fs-extra: 11.3.2 - glob: 10.4.5 + glob: 10.5.0 handlebars: 4.7.8 lazy-universal-dotenv: 4.0.0 node-fetch: 2.6.13(encoding@0.1.13) @@ -32548,7 +33086,7 @@ snapshots: find-cache-dir: 3.3.2 find-up: 5.0.0 fs-extra: 11.3.2 - glob: 10.4.5 + glob: 10.5.0 handlebars: 4.7.8 lazy-universal-dotenv: 4.0.0 node-fetch: 2.6.13(encoding@0.1.13) @@ -32563,7 +33101,7 @@ snapshots: '@storybook/core-events@6.5.16': dependencies: - core-js: 3.46.0 + core-js: 3.47.0 '@storybook/core-events@7.4.6': dependencies: @@ -32573,20 +33111,20 @@ snapshots: dependencies: ts-dedent: 2.2.0 - '@storybook/core-server@6.5.16(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': + '@storybook/core-server@6.5.16(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': dependencies: '@discoveryjs/json-ext': 0.5.7 - '@storybook/builder-webpack4': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/builder-webpack4': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/csf-tools': 6.5.16 - '@storybook/manager-webpack4': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/manager-webpack4': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/node-logger': 6.5.16 '@storybook/semver': 7.3.2 '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/telemetry': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/telemetry': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@types/node': 16.18.126 '@types/node-fetch': 2.6.13 '@types/pretty-hrtime': 1.0.3 @@ -32597,7 +33135,7 @@ snapshots: cli-table3: 0.6.5 commander: 6.2.1 compression: 1.8.1 - core-js: 3.46.0 + core-js: 3.47.0 cpy: 8.1.2 detect-port: 1.6.1 express: 4.21.2 @@ -32619,12 +33157,12 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 watchpack: 2.4.4 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) ws: 8.18.3 x-default-browser: 0.4.0 optionalDependencies: - '@storybook/builder-webpack5': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) - '@storybook/manager-webpack5': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/builder-webpack5': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/manager-webpack5': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) typescript: 5.8.3 transitivePeerDependencies: - '@storybook/mdx2-csf' @@ -32643,7 +33181,7 @@ snapshots: dependencies: '@discoveryjs/json-ext': 0.5.7 '@storybook/builder-webpack4': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 @@ -32663,7 +33201,7 @@ snapshots: cli-table3: 0.6.5 commander: 6.2.1 compression: 1.8.1 - core-js: 3.46.0 + core-js: 3.47.0 cpy: 8.1.2 detect-port: 1.6.1 express: 4.21.2 @@ -32685,7 +33223,7 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 watchpack: 2.4.4 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@4.10.0) ws: 8.18.3 x-default-browser: 0.4.0 optionalDependencies: @@ -32705,20 +33243,20 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/core-server@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': + '@storybook/core-server@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': dependencies: '@discoveryjs/json-ext': 0.5.7 - '@storybook/builder-webpack4': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) + '@storybook/builder-webpack4': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/csf-tools': 6.5.16 - '@storybook/manager-webpack4': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) + '@storybook/manager-webpack4': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@storybook/node-logger': 6.5.16 '@storybook/semver': 7.3.2 '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/telemetry': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) + '@storybook/telemetry': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@types/node': 16.18.126 '@types/node-fetch': 2.6.13 '@types/pretty-hrtime': 1.0.3 @@ -32729,7 +33267,7 @@ snapshots: cli-table3: 0.6.5 commander: 6.2.1 compression: 1.8.1 - core-js: 3.46.0 + core-js: 3.47.0 cpy: 8.1.2 detect-port: 1.6.1 express: 4.21.2 @@ -32751,7 +33289,7 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 watchpack: 2.4.4 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) ws: 8.18.3 x-default-browser: 0.4.0 optionalDependencies: @@ -32773,7 +33311,7 @@ snapshots: dependencies: '@discoveryjs/json-ext': 0.5.7 '@storybook/builder-webpack4': 6.5.16(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 @@ -32793,7 +33331,7 @@ snapshots: cli-table3: 0.6.5 commander: 6.2.1 compression: 1.8.1 - core-js: 3.46.0 + core-js: 3.47.0 cpy: 8.1.2 detect-port: 1.6.1 express: 4.21.2 @@ -32815,7 +33353,7 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 watchpack: 2.4.4 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) ws: 8.18.3 x-default-browser: 0.4.0 optionalDependencies: @@ -32837,7 +33375,7 @@ snapshots: dependencies: '@discoveryjs/json-ext': 0.5.7 '@storybook/builder-webpack4': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 @@ -32857,7 +33395,7 @@ snapshots: cli-table3: 0.6.5 commander: 6.2.1 compression: 1.8.1 - core-js: 3.46.0 + core-js: 3.47.0 cpy: 8.1.2 detect-port: 1.6.1 express: 4.21.2 @@ -32879,7 +33417,7 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 watchpack: 2.4.4 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) ws: 8.18.3 x-default-browser: 0.4.0 optionalDependencies: @@ -32901,7 +33439,7 @@ snapshots: dependencies: '@discoveryjs/json-ext': 0.5.7 '@storybook/builder-webpack4': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5) - '@storybook/core-client': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5) '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 @@ -32921,7 +33459,7 @@ snapshots: cli-table3: 0.6.5 commander: 6.2.1 compression: 1.8.1 - core-js: 3.46.0 + core-js: 3.47.0 cpy: 8.1.2 detect-port: 1.6.1 express: 4.21.2 @@ -32943,7 +33481,7 @@ snapshots: ts-dedent: 2.2.0 util-deprecate: 1.0.2 watchpack: 2.4.4 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) ws: 8.18.3 x-default-browser: 0.4.0 optionalDependencies: @@ -33030,16 +33568,16 @@ snapshots: storybook: 9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/core@6.5.16(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.102.1)': + '@storybook/core@6.5.16(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.103.0)': dependencies: - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) - '@storybook/core-server': 6.5.16(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) + '@storybook/core-server': 6.5.16(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) optionalDependencies: - '@storybook/builder-webpack5': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) - '@storybook/manager-webpack5': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/builder-webpack5': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/manager-webpack5': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) typescript: 5.8.3 transitivePeerDependencies: - '@storybook/mdx2-csf' @@ -33054,13 +33592,13 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/core@6.5.16(@storybook/builder-webpack5@6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(@storybook/manager-webpack5@6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.102.1)': + '@storybook/core@6.5.16(@storybook/builder-webpack5@6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(@storybook/manager-webpack5@6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.103.0)': dependencies: - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-server': 6.5.16(@storybook/builder-webpack5@6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(@storybook/manager-webpack5@6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@4.10.0) optionalDependencies: '@storybook/builder-webpack5': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) '@storybook/manager-webpack5': 6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) @@ -33078,13 +33616,13 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/core@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)))': + '@storybook/core@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)))': dependencies: - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - '@storybook/core-server': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) + '@storybook/core-server': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -33100,13 +33638,13 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/core@6.5.16(encoding@0.1.13)(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1)': + '@storybook/core@6.5.16(encoding@0.1.13)(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0)': dependencies: - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-server': 6.5.16(encoding@0.1.13)(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -33122,13 +33660,13 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/core@6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1)': + '@storybook/core@6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0)': dependencies: - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-server': 6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -33144,13 +33682,13 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/core@6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.102.1)': + '@storybook/core@6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.103.0)': dependencies: - '@storybook/core-client': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.103.0) '@storybook/core-server': 6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: typescript: 4.9.5 transitivePeerDependencies: @@ -33220,7 +33758,7 @@ snapshots: '@babel/types': 7.28.5 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/mdx1-csf': 0.0.1(@babel/core@7.27.7) - core-js: 3.46.0 + core-js: 3.47.0 fs-extra: 9.1.0 global: 4.4.0 regenerator-runtime: 0.13.11 @@ -33271,7 +33809,7 @@ snapshots: '@babel/core': 7.27.7 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.46.0 + core-js: 3.47.0 doctrine: 3.0.0 lodash: 4.17.21 regenerator-runtime: 0.13.11 @@ -33285,7 +33823,7 @@ snapshots: '@babel/core': 7.27.7 '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/store': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - core-js: 3.46.0 + core-js: 3.47.0 doctrine: 3.0.0 lodash: 4.17.21 regenerator-runtime: 0.13.11 @@ -33379,29 +33917,29 @@ snapshots: dependencies: storybook: 9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3) - '@storybook/manager-webpack4@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': + '@storybook/manager-webpack4@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': dependencies: '@babel/core': 7.27.7 '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.7) '@babel/preset-react': 7.27.1(@babel/core@7.27.7) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@storybook/node-logger': 6.5.16 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/ui': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/node': 16.18.126 '@types/webpack': 4.41.40 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) case-sensitive-paths-webpack-plugin: 2.4.0 chalk: 4.1.2 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) express: 4.21.2 - file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + file-loader: 6.2.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) find-up: 5.0.0 fs-extra: 9.1.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + html-webpack-plugin: 4.5.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) node-fetch: 2.6.13(encoding@0.1.13) pnp-webpack-plugin: 1.6.4(typescript@5.8.3) react: 18.2.0 @@ -33409,14 +33947,14 @@ snapshots: read-pkg-up: 7.0.1 regenerator-runtime: 0.13.11 resolve-from: 5.0.0 - style-loader: 1.3.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + style-loader: 1.3.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) telejson: 6.0.8 - terser-webpack-plugin: 4.2.3(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + terser-webpack-plugin: 4.2.3(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))))(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))))(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) - webpack-dev-middleware: 3.7.3(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) + webpack-dev-middleware: 3.7.3(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) webpack-virtual-modules: 0.2.2 optionalDependencies: typescript: 5.8.3 @@ -33430,29 +33968,29 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/manager-webpack4@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': + '@storybook/manager-webpack4@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': dependencies: '@babel/core': 7.27.7 '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.7) '@babel/preset-react': 7.27.1(@babel/core@7.27.7) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/node-logger': 6.5.16 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/ui': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/node': 16.18.126 '@types/webpack': 4.41.40 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 chalk: 4.1.2 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0) express: 4.21.2 - file-loader: 6.2.0(webpack@5.102.1) + file-loader: 6.2.0(webpack@5.103.0) find-up: 5.0.0 fs-extra: 9.1.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1) + html-webpack-plugin: 4.5.2(webpack@5.103.0) node-fetch: 2.6.13(encoding@0.1.13) pnp-webpack-plugin: 1.6.4(typescript@5.8.3) react: 18.2.0 @@ -33460,14 +33998,14 @@ snapshots: read-pkg-up: 7.0.1 regenerator-runtime: 0.13.11 resolve-from: 5.0.0 - style-loader: 1.3.0(webpack@5.102.1) + style-loader: 1.3.0(webpack@5.103.0) telejson: 6.0.8 - terser-webpack-plugin: 4.2.3(webpack@5.102.1) + terser-webpack-plugin: 4.2.3(webpack@5.103.0) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - webpack-dev-middleware: 3.7.3(webpack@5.102.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack-dev-middleware: 3.7.3(webpack@5.103.0) webpack-virtual-modules: 0.2.2 optionalDependencies: typescript: 5.8.3 @@ -33487,23 +34025,23 @@ snapshots: '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.7) '@babel/preset-react': 7.27.1(@babel/core@7.27.7) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@storybook/node-logger': 6.5.16 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/ui': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/node': 16.18.126 '@types/webpack': 4.41.40 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 chalk: 4.1.2 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0) express: 4.21.2 - file-loader: 6.2.0(webpack@5.102.1) + file-loader: 6.2.0(webpack@5.103.0) find-up: 5.0.0 fs-extra: 9.1.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1) + html-webpack-plugin: 4.5.2(webpack@5.103.0) node-fetch: 2.6.13(encoding@0.1.13) pnp-webpack-plugin: 1.6.4(typescript@5.8.3) react: 18.2.0 @@ -33511,14 +34049,14 @@ snapshots: read-pkg-up: 7.0.1 regenerator-runtime: 0.13.11 resolve-from: 5.0.0 - style-loader: 1.3.0(webpack@5.102.1) + style-loader: 1.3.0(webpack@5.103.0) telejson: 6.0.8 - terser-webpack-plugin: 4.2.3(webpack@5.102.1) + terser-webpack-plugin: 4.2.3(webpack@5.103.0) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-dev-middleware: 3.7.3(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-dev-middleware: 3.7.3(webpack@5.103.0) webpack-virtual-modules: 0.2.2 optionalDependencies: typescript: 5.8.3 @@ -33538,23 +34076,23 @@ snapshots: '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.7) '@babel/preset-react': 7.27.1(@babel/core@7.27.7) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@storybook/node-logger': 6.5.16 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/ui': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/node': 16.18.126 '@types/webpack': 4.41.40 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 chalk: 4.1.2 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0) express: 4.21.2 - file-loader: 6.2.0(webpack@5.102.1) + file-loader: 6.2.0(webpack@5.103.0) find-up: 5.0.0 fs-extra: 9.1.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1) + html-webpack-plugin: 4.5.2(webpack@5.103.0) node-fetch: 2.6.13(encoding@0.1.13) pnp-webpack-plugin: 1.6.4(typescript@5.8.3) react: 18.2.0 @@ -33562,14 +34100,14 @@ snapshots: read-pkg-up: 7.0.1 regenerator-runtime: 0.13.11 resolve-from: 5.0.0 - style-loader: 1.3.0(webpack@5.102.1) + style-loader: 1.3.0(webpack@5.103.0) telejson: 6.0.8 - terser-webpack-plugin: 4.2.3(webpack@5.102.1) + terser-webpack-plugin: 4.2.3(webpack@5.103.0) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-dev-middleware: 3.7.3(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-dev-middleware: 3.7.3(webpack@5.103.0) webpack-virtual-modules: 0.2.2 optionalDependencies: typescript: 5.8.3 @@ -33589,23 +34127,23 @@ snapshots: '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.7) '@babel/preset-react': 7.27.1(@babel/core@7.27.7) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) '@storybook/node-logger': 6.5.16 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/ui': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/node': 16.18.126 '@types/webpack': 4.41.40 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 chalk: 4.1.2 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0) express: 4.21.2 - file-loader: 6.2.0(webpack@5.102.1) + file-loader: 6.2.0(webpack@5.103.0) find-up: 5.0.0 fs-extra: 9.1.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1) + html-webpack-plugin: 4.5.2(webpack@5.103.0) node-fetch: 2.6.13(encoding@0.1.13) pnp-webpack-plugin: 1.6.4(typescript@5.8.3) react: 18.2.0 @@ -33613,14 +34151,14 @@ snapshots: read-pkg-up: 7.0.1 regenerator-runtime: 0.13.11 resolve-from: 5.0.0 - style-loader: 1.3.0(webpack@5.102.1) + style-loader: 1.3.0(webpack@5.103.0) telejson: 6.0.8 - terser-webpack-plugin: 4.2.3(webpack@5.102.1) + terser-webpack-plugin: 4.2.3(webpack@5.103.0) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-dev-middleware: 3.7.3(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@4.10.0) + webpack-dev-middleware: 3.7.3(webpack@5.103.0) webpack-virtual-modules: 0.2.2 optionalDependencies: typescript: 5.8.3 @@ -33640,23 +34178,23 @@ snapshots: '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.7) '@babel/preset-react': 7.27.1(@babel/core@7.27.7) '@storybook/addons': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@storybook/core-client': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5) '@storybook/node-logger': 6.5.16 '@storybook/theming': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@storybook/ui': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/node': 16.18.126 '@types/webpack': 4.41.40 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 chalk: 4.1.2 - core-js: 3.46.0 - css-loader: 3.6.0(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 3.6.0(webpack@5.103.0) express: 4.21.2 - file-loader: 6.2.0(webpack@5.102.1) + file-loader: 6.2.0(webpack@5.103.0) find-up: 5.0.0 fs-extra: 9.1.0 - html-webpack-plugin: 4.5.2(webpack@5.102.1) + html-webpack-plugin: 4.5.2(webpack@5.103.0) node-fetch: 2.6.13(encoding@0.1.13) pnp-webpack-plugin: 1.6.4(typescript@4.9.5) react: 19.1.0 @@ -33664,14 +34202,14 @@ snapshots: read-pkg-up: 7.0.1 regenerator-runtime: 0.13.11 resolve-from: 5.0.0 - style-loader: 1.3.0(webpack@5.102.1) + style-loader: 1.3.0(webpack@5.103.0) telejson: 6.0.8 - terser-webpack-plugin: 4.2.3(webpack@5.102.1) + terser-webpack-plugin: 4.2.3(webpack@5.103.0) ts-dedent: 2.2.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0) util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-dev-middleware: 3.7.3(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-dev-middleware: 3.7.3(webpack@5.103.0) webpack-virtual-modules: 0.2.2 optionalDependencies: typescript: 4.9.5 @@ -33685,27 +34223,27 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/manager-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': + '@storybook/manager-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': dependencies: '@babel/core': 7.27.7 '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.7) '@babel/preset-react': 7.27.1(@babel/core@7.27.7) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/node-logger': 6.5.16 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/ui': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/node': 16.18.126 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 chalk: 4.1.2 - core-js: 3.46.0 - css-loader: 5.2.7(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 5.2.7(webpack@5.103.0) express: 4.21.2 find-up: 5.0.0 fs-extra: 9.1.0 - html-webpack-plugin: 5.6.4(webpack@5.102.1) + html-webpack-plugin: 5.6.5(webpack@5.103.0) node-fetch: 2.6.13(encoding@0.1.13) process: 0.11.10 react: 18.2.0 @@ -33713,13 +34251,13 @@ snapshots: read-pkg-up: 7.0.1 regenerator-runtime: 0.13.11 resolve-from: 5.0.0 - style-loader: 2.0.0(webpack@5.102.1) + style-loader: 2.0.0(webpack@5.103.0) telejson: 6.0.8 - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - webpack-dev-middleware: 4.3.0(webpack@5.102.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack-dev-middleware: 4.3.0(webpack@5.103.0) webpack-virtual-modules: 0.4.6 optionalDependencies: typescript: 5.8.3 @@ -33740,21 +34278,21 @@ snapshots: '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.7) '@babel/preset-react': 7.27.1(@babel/core@7.27.7) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core-client': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) '@storybook/node-logger': 6.5.16 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/ui': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/node': 16.18.126 - babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.102.1) + babel-loader: 8.4.1(@babel/core@7.27.7)(webpack@5.103.0) case-sensitive-paths-webpack-plugin: 2.4.0 chalk: 4.1.2 - core-js: 3.46.0 - css-loader: 5.2.7(webpack@5.102.1) + core-js: 3.47.0 + css-loader: 5.2.7(webpack@5.103.0) express: 4.21.2 find-up: 5.0.0 fs-extra: 9.1.0 - html-webpack-plugin: 5.6.4(webpack@5.102.1) + html-webpack-plugin: 5.6.5(webpack@5.103.0) node-fetch: 2.6.13(encoding@0.1.13) process: 0.11.10 react: 18.2.0 @@ -33762,13 +34300,13 @@ snapshots: read-pkg-up: 7.0.1 regenerator-runtime: 0.13.11 resolve-from: 5.0.0 - style-loader: 2.0.0(webpack@5.102.1) + style-loader: 2.0.0(webpack@5.103.0) telejson: 6.0.8 - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-dev-middleware: 4.3.0(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@4.10.0) + webpack-dev-middleware: 4.3.0(webpack@5.103.0) webpack-virtual-modules: 0.4.6 optionalDependencies: typescript: 5.8.3 @@ -33808,7 +34346,7 @@ snapshots: dependencies: '@types/npmlog': 4.1.6 chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 npmlog: 5.0.1 pretty-hrtime: 1.0.3 @@ -33818,7 +34356,7 @@ snapshots: '@storybook/postinstall@6.5.16': dependencies: - core-js: 3.46.0 + core-js: 3.47.0 '@storybook/postinstall@7.4.6': {} @@ -33826,12 +34364,12 @@ snapshots: dependencies: '@babel/preset-flow': 7.27.1(@babel/core@7.28.5) '@babel/preset-react': 7.27.1(@babel/core@7.28.5) - '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5(webpack-cli@5.1.4))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.102.1) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5(webpack-cli@5.1.4))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.103.0) '@storybook/core-webpack': 7.4.6(encoding@0.1.13) '@storybook/docs-tools': 7.4.6(encoding@0.1.13) '@storybook/node-logger': 7.4.6 '@storybook/react': 7.4.6(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.102.1) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.103.0) '@types/node': 16.18.126 '@types/semver': 7.7.1 babel-plugin-add-react-displayname: 0.0.5 @@ -33841,7 +34379,7 @@ snapshots: react-dom: 18.2.0(react@18.2.0) react-refresh: 0.11.0 semver: 7.7.3 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: '@babel/core': 7.28.5 typescript: 5.8.3 @@ -33863,12 +34401,12 @@ snapshots: dependencies: '@babel/preset-flow': 7.27.1(@babel/core@7.28.5) '@babel/preset-react': 7.27.1(@babel/core@7.28.5) - '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5)(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1)(webpack@5.102.1) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5)(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1)(webpack@5.103.0) '@storybook/core-webpack': 7.4.6(encoding@0.1.13) '@storybook/docs-tools': 7.4.6(encoding@0.1.13) '@storybook/node-logger': 7.4.6 '@storybook/react': 7.4.6(encoding@0.1.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.102.1) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.103.0) '@types/node': 16.18.126 '@types/semver': 7.7.1 babel-plugin-add-react-displayname: 0.0.5 @@ -33878,7 +34416,7 @@ snapshots: react-dom: 19.1.0(react@19.1.0) react-refresh: 0.11.0 semver: 7.7.3 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: '@babel/core': 7.28.5 typescript: 5.8.3 @@ -33896,11 +34434,11 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.15.0(@swc/helpers@0.5.17))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': dependencies: '@storybook/core-webpack': 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)) '@types/semver': 7.7.1 find-up: 5.0.0 magic-string: 0.30.21 @@ -33911,7 +34449,7 @@ snapshots: semver: 7.7.3 storybook: 8.6.14(prettier@3.5.3) tsconfig-paths: 4.2.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -33926,7 +34464,7 @@ snapshots: dependencies: '@storybook/core-webpack': 8.6.14(storybook@9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3)) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3))(typescript@5.8.3) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.102.1) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.103.0) '@types/semver': 7.7.1 find-up: 5.0.0 magic-string: 0.30.21 @@ -33937,7 +34475,7 @@ snapshots: semver: 7.7.3 storybook: 9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3) tsconfig-paths: 4.2.0 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -33999,7 +34537,7 @@ snapshots: '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) ansi-to-html: 0.6.15 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 lodash: 4.17.21 qs: 6.14.0 @@ -34020,7 +34558,7 @@ snapshots: '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/store': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) ansi-to-html: 0.6.15 - core-js: 3.46.0 + core-js: 3.47.0 global: 4.4.0 lodash: 4.17.21 qs: 6.14.0 @@ -34034,7 +34572,7 @@ snapshots: '@storybook/preview@7.4.6': {} - '@storybook/react-docgen-typescript-plugin@1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@4.9.5)(webpack@5.102.1)': + '@storybook/react-docgen-typescript-plugin@1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@4.9.5)(webpack@5.103.0)': dependencies: debug: 4.4.3(supports-color@8.1.1) endent: 2.1.0 @@ -34044,11 +34582,11 @@ snapshots: react-docgen-typescript: 2.4.0(typescript@4.9.5) tslib: 2.8.1 typescript: 4.9.5 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) transitivePeerDependencies: - supports-color - '@storybook/react-docgen-typescript-plugin@1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)))': + '@storybook/react-docgen-typescript-plugin@1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)))': dependencies: debug: 4.4.3(supports-color@8.1.1) endent: 2.1.0 @@ -34058,11 +34596,11 @@ snapshots: react-docgen-typescript: 2.4.0(typescript@5.8.3) tslib: 2.8.1 typescript: 5.8.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) transitivePeerDependencies: - supports-color - '@storybook/react-docgen-typescript-plugin@1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.102.1)': + '@storybook/react-docgen-typescript-plugin@1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.103.0)': dependencies: debug: 4.4.3(supports-color@8.1.1) endent: 2.1.0 @@ -34072,11 +34610,11 @@ snapshots: react-docgen-typescript: 2.4.0(typescript@5.8.3) tslib: 2.8.1 typescript: 5.8.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) transitivePeerDependencies: - supports-color - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12))': dependencies: debug: 4.4.3(supports-color@8.1.1) endent: 2.1.0 @@ -34086,11 +34624,11 @@ snapshots: react-docgen-typescript: 2.4.0(typescript@5.8.3) tslib: 2.8.1 typescript: 5.8.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12) transitivePeerDependencies: - supports-color - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.102.1)': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.103.0)': dependencies: debug: 4.4.3(supports-color@8.1.1) endent: 2.1.0 @@ -34100,7 +34638,7 @@ snapshots: react-docgen-typescript: 2.4.0(typescript@5.8.3) tslib: 2.8.1 typescript: 5.8.3 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) transitivePeerDependencies: - supports-color @@ -34144,10 +34682,10 @@ snapshots: react-dom: 19.1.0(react@19.1.0) storybook: 9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3) - '@storybook/react-vite@9.1.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.53.1)(storybook@9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/react-vite@9.1.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.53.2)(storybook@9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3))(typescript@5.8.3)': dependencies: '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.8.3) - '@rollup/pluginutils': 5.3.0(rollup@4.53.1) + '@rollup/pluginutils': 5.3.0(rollup@4.53.2) '@storybook/builder-vite': 9.1.16(storybook@9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3)) '@storybook/react': 9.1.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3))(typescript@5.8.3) find-up: 7.0.0 @@ -34221,10 +34759,10 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/react-webpack5@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.15.0(@swc/helpers@0.5.17))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/react-webpack5@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)': dependencies: - '@storybook/builder-webpack5': 8.6.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) - '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.15.0(@swc/helpers@0.5.17))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) + '@storybook/builder-webpack5': 8.6.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) + '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -34259,19 +34797,19 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react@6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/webpack@5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)': + '@storybook/react@6.5.16(@babel/core@7.27.7)(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/webpack@5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)': dependencies: '@babel/preset-flow': 7.27.1(@babel/core@7.27.7) '@babel/preset-react': 7.27.1(@babel/core@7.27.7) - '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.102.1) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.103.0) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 6.5.16 - '@storybook/core': 6.5.16(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.102.1) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/core': 6.5.16(@storybook/builder-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@storybook/manager-webpack5@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1))(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)(webpack@5.103.0) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/docs-tools': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/node-logger': 6.5.16 - '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.102.1) + '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.103.0) '@storybook/semver': 7.3.2 '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/estree': 0.0.51 @@ -34282,7 +34820,7 @@ snapshots: acorn-walk: 7.2.0 babel-plugin-add-react-displayname: 0.0.5 babel-plugin-react-docgen: 4.2.1 - core-js: 3.46.0 + core-js: 3.47.0 escodegen: 2.1.0 fs-extra: 9.1.0 global: 4.4.0 @@ -34298,11 +34836,11 @@ snapshots: require-from-string: 2.0.2 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) optionalDependencies: '@babel/core': 7.27.7 - '@storybook/builder-webpack5': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) - '@storybook/manager-webpack5': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/builder-webpack5': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/manager-webpack5': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) typescript: 5.8.3 transitivePeerDependencies: - '@storybook/mdx2-csf' @@ -34327,15 +34865,15 @@ snapshots: dependencies: '@babel/preset-flow': 7.27.1(@babel/core@7.27.7) '@babel/preset-react': 7.27.1(@babel/core@7.27.7) - '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5(webpack-cli@4.10.0))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.102.1) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5(webpack-cli@4.10.0))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2)(webpack-hot-middleware@2.26.1)(webpack@5.103.0) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 6.5.16 - '@storybook/core': 6.5.16(@storybook/builder-webpack5@6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(@storybook/manager-webpack5@6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.102.1) + '@storybook/core': 6.5.16(@storybook/builder-webpack5@6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(@storybook/manager-webpack5@6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/docs-tools': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/node-logger': 6.5.16 - '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.102.1) + '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.103.0) '@storybook/semver': 7.3.2 '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/estree': 0.0.51 @@ -34346,7 +34884,7 @@ snapshots: acorn-walk: 7.2.0 babel-plugin-add-react-displayname: 0.0.5 babel-plugin-react-docgen: 4.2.1 - core-js: 3.46.0 + core-js: 3.47.0 escodegen: 2.1.0 fs-extra: 9.1.0 global: 4.4.0 @@ -34362,7 +34900,7 @@ snapshots: require-from-string: 2.0.2 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@4.10.0) optionalDependencies: '@babel/core': 7.27.7 '@storybook/builder-webpack5': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) @@ -34387,19 +34925,19 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/react@6.5.16(@babel/core@7.27.7)(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/webpack@5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17)))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))))(webpack-hot-middleware@2.26.1)': + '@storybook/react@6.5.16(@babel/core@7.27.7)(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/webpack@5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17)))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))))(webpack-hot-middleware@2.26.1)': dependencies: '@babel/preset-flow': 7.27.1(@babel/core@7.27.7) '@babel/preset-react': 7.27.1(@babel/core@7.27.7) - '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17)))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))))(webpack-hot-middleware@2.26.1)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17)))(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))))(webpack-hot-middleware@2.26.1)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 6.5.16 - '@storybook/core': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) + '@storybook/core': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/docs-tools': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/node-logger': 6.5.16 - '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) '@storybook/semver': 7.3.2 '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/estree': 0.0.51 @@ -34410,7 +34948,7 @@ snapshots: acorn-walk: 7.2.0 babel-plugin-add-react-displayname: 0.0.5 babel-plugin-react-docgen: 4.2.1 - core-js: 3.46.0 + core-js: 3.47.0 escodegen: 2.1.0 fs-extra: 9.1.0 global: 4.4.0 @@ -34426,7 +34964,7 @@ snapshots: require-from-string: 2.0.2 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) optionalDependencies: '@babel/core': 7.27.7 typescript: 5.8.3 @@ -34449,19 +34987,19 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/react@6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1)': + '@storybook/react@6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1)': dependencies: '@babel/preset-flow': 7.27.1(@babel/core@7.28.5) '@babel/preset-react': 7.27.1(@babel/core@7.28.5) - '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5)(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1)(webpack@5.102.1) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5)(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1)(webpack@5.103.0) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 6.5.16 - '@storybook/core': 6.5.16(encoding@0.1.13)(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core': 6.5.16(encoding@0.1.13)(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/docs-tools': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/node-logger': 6.5.16 - '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.102.1) + '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.103.0) '@storybook/semver': 7.3.2 '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/estree': 0.0.51 @@ -34472,7 +35010,7 @@ snapshots: acorn-walk: 7.2.0 babel-plugin-add-react-displayname: 0.0.5 babel-plugin-react-docgen: 4.2.1 - core-js: 3.46.0 + core-js: 3.47.0 escodegen: 2.1.0 fs-extra: 9.1.0 global: 4.4.0 @@ -34488,7 +35026,7 @@ snapshots: require-from-string: 2.0.2 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: '@babel/core': 7.28.5 typescript: 5.8.3 @@ -34511,19 +35049,19 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/react@6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1)': + '@storybook/react@6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.8.3)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1)': dependencies: '@babel/preset-flow': 7.27.1(@babel/core@7.28.5) '@babel/preset-react': 7.27.1(@babel/core@7.28.5) - '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5)(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1)(webpack@5.102.1) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5)(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1)(webpack@5.103.0) '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 6.5.16 - '@storybook/core': 6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.102.1) + '@storybook/core': 6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/docs-tools': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/node-logger': 6.5.16 - '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.102.1) + '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@5.8.3)(webpack@5.103.0) '@storybook/semver': 7.3.2 '@storybook/store': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/estree': 0.0.51 @@ -34534,7 +35072,7 @@ snapshots: acorn-walk: 7.2.0 babel-plugin-add-react-displayname: 0.0.5 babel-plugin-react-docgen: 4.2.1 - core-js: 3.46.0 + core-js: 3.47.0 escodegen: 2.1.0 fs-extra: 9.1.0 global: 4.4.0 @@ -34550,7 +35088,7 @@ snapshots: require-from-string: 2.0.2 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: '@babel/core': 7.28.5 typescript: 5.8.3 @@ -34573,19 +35111,19 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/react@6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@4.9.5)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1)': + '@storybook/react@6.5.16(@babel/core@7.28.5)(@types/webpack@5.28.5)(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@4.9.5)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1)': dependencies: '@babel/preset-flow': 7.27.1(@babel/core@7.28.5) '@babel/preset-react': 7.27.1(@babel/core@7.28.5) - '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5)(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.102.1))(webpack-hot-middleware@2.26.1)(webpack@5.102.1) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@5.28.5)(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@5.2.2(webpack@5.103.0))(webpack-hot-middleware@2.26.1)(webpack@5.103.0) '@storybook/addons': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@storybook/client-logger': 6.5.16 - '@storybook/core': 6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.102.1) + '@storybook/core': 6.5.16(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5)(webpack@5.103.0) '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5) '@storybook/csf': 0.0.2--canary.4566f4d.1 '@storybook/docs-tools': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@storybook/node-logger': 6.5.16 - '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@4.9.5)(webpack@5.102.1) + '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@4.9.5)(webpack@5.103.0) '@storybook/semver': 7.3.2 '@storybook/store': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/estree': 0.0.51 @@ -34596,7 +35134,7 @@ snapshots: acorn-walk: 7.2.0 babel-plugin-add-react-displayname: 0.0.5 babel-plugin-react-docgen: 4.2.1 - core-js: 3.46.0 + core-js: 3.47.0 escodegen: 2.1.0 fs-extra: 9.1.0 global: 4.4.0 @@ -34612,7 +35150,7 @@ snapshots: require-from-string: 2.0.2 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: '@babel/core': 7.28.5 typescript: 4.9.5 @@ -34740,7 +35278,7 @@ snapshots: '@storybook/router@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@storybook/client-logger': 6.5.16 - core-js: 3.46.0 + core-js: 3.47.0 memoizerific: 1.11.3 qs: 6.14.0 react: 18.2.0 @@ -34750,7 +35288,7 @@ snapshots: '@storybook/router@6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@storybook/client-logger': 6.5.16 - core-js: 3.46.0 + core-js: 3.47.0 memoizerific: 1.11.3 qs: 6.14.0 react: 19.1.0 @@ -34775,7 +35313,7 @@ snapshots: '@storybook/semver@7.3.2': dependencies: - core-js: 3.46.0 + core-js: 3.47.0 find-up: 4.1.0 '@storybook/source-loader@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': @@ -34783,7 +35321,7 @@ snapshots: '@storybook/addons': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.46.0 + core-js: 3.47.0 estraverse: 5.3.0 global: 4.4.0 loader-utils: 2.0.4 @@ -34799,7 +35337,7 @@ snapshots: '@storybook/client-logger': 6.5.16 '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.46.0 + core-js: 3.47.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -34819,7 +35357,7 @@ snapshots: '@storybook/client-logger': 6.5.16 '@storybook/core-events': 6.5.16 '@storybook/csf': 0.0.2--canary.4566f4d.1 - core-js: 3.46.0 + core-js: 3.47.0 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -34838,12 +35376,12 @@ snapshots: '@storybook/client-logger': 7.4.6 '@storybook/preview-api': 7.4.6 - '@storybook/telemetry@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': + '@storybook/telemetry@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)': dependencies: '@storybook/client-logger': 6.5.16 - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 detect-package-manager: 2.0.1 fetch-retry: 5.0.6 fs-extra: 9.1.0 @@ -34865,12 +35403,12 @@ snapshots: - vue-template-compiler - webpack-cli - '@storybook/telemetry@6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': + '@storybook/telemetry@6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(encoding@0.1.13)(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1)': dependencies: '@storybook/client-logger': 6.5.16 - '@storybook/core-common': 6.5.16(@swc/core@1.15.0(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) + '@storybook/core-common': 6.5.16(@swc/core@1.15.2(@swc/helpers@0.5.17))(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@6.0.1) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 detect-package-manager: 2.0.1 fetch-retry: 5.0.6 fs-extra: 9.1.0 @@ -34897,7 +35435,7 @@ snapshots: '@storybook/client-logger': 6.5.16 '@storybook/core-common': 6.5.16(eslint@9.26.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 detect-package-manager: 2.0.1 fetch-retry: 5.0.6 fs-extra: 9.1.0 @@ -34924,7 +35462,7 @@ snapshots: '@storybook/client-logger': 6.5.16 '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 detect-package-manager: 2.0.1 fetch-retry: 5.0.6 fs-extra: 9.1.0 @@ -34951,7 +35489,7 @@ snapshots: '@storybook/client-logger': 6.5.16 '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.8.3)(webpack-cli@4.10.0) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 detect-package-manager: 2.0.1 fetch-retry: 5.0.6 fs-extra: 9.1.0 @@ -34978,7 +35516,7 @@ snapshots: '@storybook/client-logger': 6.5.16 '@storybook/core-common': 6.5.16(eslint@9.27.0(jiti@2.6.1))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@4.9.5) chalk: 4.1.2 - core-js: 3.46.0 + core-js: 3.47.0 detect-package-manager: 2.0.1 fetch-retry: 5.0.6 fs-extra: 9.1.0 @@ -35040,7 +35578,7 @@ snapshots: '@storybook/theming@6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@storybook/client-logger': 6.5.16 - core-js: 3.46.0 + core-js: 3.47.0 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -35049,7 +35587,7 @@ snapshots: '@storybook/theming@6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@storybook/client-logger': 6.5.16 - core-js: 3.46.0 + core-js: 3.47.0 memoizerific: 1.11.3 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) @@ -35106,7 +35644,7 @@ snapshots: '@storybook/router': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/semver': 7.3.2 '@storybook/theming': 6.5.16(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - core-js: 3.46.0 + core-js: 3.47.0 memoizerific: 1.11.3 qs: 6.14.0 react: 18.2.0 @@ -35125,7 +35663,7 @@ snapshots: '@storybook/router': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@storybook/semver': 7.3.2 '@storybook/theming': 6.5.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - core-js: 3.46.0 + core-js: 3.47.0 memoizerific: 1.11.3 qs: 6.14.0 react: 19.1.0 @@ -35492,51 +36030,51 @@ snapshots: dependencies: apg-lite: 1.0.5 - '@swc/core-darwin-arm64@1.15.0': + '@swc/core-darwin-arm64@1.15.2': optional: true - '@swc/core-darwin-x64@1.15.0': + '@swc/core-darwin-x64@1.15.2': optional: true - '@swc/core-linux-arm-gnueabihf@1.15.0': + '@swc/core-linux-arm-gnueabihf@1.15.2': optional: true - '@swc/core-linux-arm64-gnu@1.15.0': + '@swc/core-linux-arm64-gnu@1.15.2': optional: true - '@swc/core-linux-arm64-musl@1.15.0': + '@swc/core-linux-arm64-musl@1.15.2': optional: true - '@swc/core-linux-x64-gnu@1.15.0': + '@swc/core-linux-x64-gnu@1.15.2': optional: true - '@swc/core-linux-x64-musl@1.15.0': + '@swc/core-linux-x64-musl@1.15.2': optional: true - '@swc/core-win32-arm64-msvc@1.15.0': + '@swc/core-win32-arm64-msvc@1.15.2': optional: true - '@swc/core-win32-ia32-msvc@1.15.0': + '@swc/core-win32-ia32-msvc@1.15.2': optional: true - '@swc/core-win32-x64-msvc@1.15.0': + '@swc/core-win32-x64-msvc@1.15.2': optional: true - '@swc/core@1.15.0(@swc/helpers@0.5.17)': + '@swc/core@1.15.2(@swc/helpers@0.5.17)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.25 optionalDependencies: - '@swc/core-darwin-arm64': 1.15.0 - '@swc/core-darwin-x64': 1.15.0 - '@swc/core-linux-arm-gnueabihf': 1.15.0 - '@swc/core-linux-arm64-gnu': 1.15.0 - '@swc/core-linux-arm64-musl': 1.15.0 - '@swc/core-linux-x64-gnu': 1.15.0 - '@swc/core-linux-x64-musl': 1.15.0 - '@swc/core-win32-arm64-msvc': 1.15.0 - '@swc/core-win32-ia32-msvc': 1.15.0 - '@swc/core-win32-x64-msvc': 1.15.0 + '@swc/core-darwin-arm64': 1.15.2 + '@swc/core-darwin-x64': 1.15.2 + '@swc/core-linux-arm-gnueabihf': 1.15.2 + '@swc/core-linux-arm64-gnu': 1.15.2 + '@swc/core-linux-arm64-musl': 1.15.2 + '@swc/core-linux-x64-gnu': 1.15.2 + '@swc/core-linux-x64-musl': 1.15.2 + '@swc/core-win32-arm64-msvc': 1.15.2 + '@swc/core-win32-ia32-msvc': 1.15.2 + '@swc/core-win32-x64-msvc': 1.15.2 '@swc/helpers': 0.5.17 '@swc/counter@0.1.3': {} @@ -35563,7 +36101,7 @@ snapshots: '@tanstack/query-core@5.77.1': {} - '@tanstack/query-core@5.90.7': {} + '@tanstack/query-core@5.90.10': {} '@tanstack/query-persist-client-core@4.27.0': dependencies: @@ -35689,18 +36227,18 @@ snapshots: dependencies: '@testing-library/dom': 10.4.1 - '@textlint/ast-node-types@14.8.4': {} + '@textlint/ast-node-types@15.4.0': {} - '@textlint/linter-formatter@14.8.4': + '@textlint/linter-formatter@15.4.0': dependencies: '@azu/format-text': 1.0.2 '@azu/style-format': 1.0.1 - '@textlint/module-interop': 14.8.4 - '@textlint/resolver': 14.8.4 - '@textlint/types': 14.8.4 + '@textlint/module-interop': 15.4.0 + '@textlint/resolver': 15.4.0 + '@textlint/types': 15.4.0 chalk: 4.1.2 debug: 4.4.3(supports-color@8.1.1) - js-yaml: 3.14.1 + js-yaml: 4.1.1 lodash: 4.17.21 pluralize: 2.0.0 string-width: 4.2.3 @@ -35710,13 +36248,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@textlint/module-interop@14.8.4': {} + '@textlint/module-interop@15.4.0': {} - '@textlint/resolver@14.8.4': {} + '@textlint/resolver@15.4.0': {} - '@textlint/types@14.8.4': + '@textlint/types@15.4.0': dependencies: - '@textlint/ast-node-types': 14.8.4 + '@textlint/ast-node-types': 15.4.0 '@tokenizer/token@0.3.0': {} @@ -35747,7 +36285,7 @@ snapshots: minimatch: 10.1.1 path-browserify: 1.0.1 - '@tsconfig/node10@1.0.11': {} + '@tsconfig/node10@1.0.12': {} '@tsconfig/node12@1.0.11': {} @@ -35755,6 +36293,11 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + '@types/aria-query@5.0.4': {} '@types/babel__core@7.20.5': @@ -35960,6 +36503,11 @@ snapshots: expect: 29.7.0 pretty-format: 29.7.0 + '@types/jest@30.0.0': + dependencies: + expect: 30.2.0 + pretty-format: 30.2.0 + '@types/js-yaml@4.0.9': {} '@types/jsdom@20.0.1': @@ -36029,7 +36577,7 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: '@types/node': 22.15.35 - form-data: 4.0.4 + form-data: 4.0.5 '@types/node-forge@1.3.14': dependencies: @@ -36041,7 +36589,7 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@20.19.24': + '@types/node@20.19.25': dependencies: undici-types: 6.21.0 @@ -36120,17 +36668,17 @@ snapshots: dependencies: '@types/react': 18.2.0 - '@types/react@17.0.89': + '@types/react@17.0.90': dependencies: '@types/prop-types': 15.7.15 '@types/scheduler': 0.16.8 - csstype: 3.1.3 + csstype: 3.2.3 '@types/react@18.2.0': dependencies: '@types/prop-types': 15.7.15 '@types/scheduler': 0.26.0 - csstype: 3.1.3 + csstype: 3.2.3 '@types/resolve@1.17.1': dependencies: @@ -36148,7 +36696,7 @@ snapshots: '@types/scheduler@0.26.0': {} - '@types/selenium-webdriver@4.35.3': + '@types/selenium-webdriver@4.35.4': dependencies: '@types/node': 22.15.35 '@types/ws': 8.18.1 @@ -36229,7 +36777,7 @@ snapshots: '@types/vscode-webview@1.57.5': {} - '@types/vscode@1.105.0': {} + '@types/vscode@1.106.1': {} '@types/webpack-env@1.18.8': {} @@ -36252,7 +36800,7 @@ snapshots: dependencies: '@types/node': 22.15.35 tapable: 2.3.0 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) transitivePeerDependencies: - '@swc/core' - esbuild @@ -36260,11 +36808,11 @@ snapshots: - webpack-cli optional: true - '@types/webpack@5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17))': + '@types/webpack@5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17))': dependencies: '@types/node': 22.15.35 tapable: 2.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) transitivePeerDependencies: - '@swc/core' - esbuild @@ -36272,11 +36820,11 @@ snapshots: - webpack-cli optional: true - '@types/webpack@5.28.5(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1)': + '@types/webpack@5.28.5(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1)': dependencies: '@types/node': 22.15.35 tapable: 2.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) transitivePeerDependencies: - '@swc/core' - esbuild @@ -36287,7 +36835,7 @@ snapshots: dependencies: '@types/node': 22.15.35 tapable: 2.3.0 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@4.10.0) transitivePeerDependencies: - '@swc/core' - esbuild @@ -36299,7 +36847,7 @@ snapshots: dependencies: '@types/node': 22.15.35 tapable: 2.3.0 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) transitivePeerDependencies: - '@swc/core' - esbuild @@ -36318,11 +36866,11 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@types/yargs@15.0.19': + '@types/yargs@15.0.20': dependencies: '@types/yargs-parser': 21.0.3 - '@types/yargs@17.0.34': + '@types/yargs@17.0.35': dependencies: '@types/yargs-parser': 21.0.3 @@ -36601,10 +37149,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.46.3(typescript@5.8.3)': + '@typescript-eslint/project-service@8.47.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.3(typescript@5.8.3) - '@typescript-eslint/types': 8.46.3 + '@typescript-eslint/tsconfig-utils': 8.47.0(typescript@5.8.3) + '@typescript-eslint/types': 8.47.0 debug: 4.4.3(supports-color@8.1.1) typescript: 5.8.3 transitivePeerDependencies: @@ -36635,16 +37183,16 @@ snapshots: '@typescript-eslint/types': 8.33.1 '@typescript-eslint/visitor-keys': 8.33.1 - '@typescript-eslint/scope-manager@8.46.3': + '@typescript-eslint/scope-manager@8.47.0': dependencies: - '@typescript-eslint/types': 8.46.3 - '@typescript-eslint/visitor-keys': 8.46.3 + '@typescript-eslint/types': 8.47.0 + '@typescript-eslint/visitor-keys': 8.47.0 '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/tsconfig-utils@8.46.3(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.47.0(typescript@5.8.3)': dependencies: typescript: 5.8.3 @@ -36727,7 +37275,7 @@ snapshots: '@typescript-eslint/types@8.33.1': {} - '@typescript-eslint/types@8.46.3': {} + '@typescript-eslint/types@8.47.0': {} '@typescript-eslint/typescript-estree@2.34.0(typescript@3.9.10)': dependencies: @@ -36817,12 +37365,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.46.3(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.47.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.46.3(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.46.3(typescript@5.8.3) - '@typescript-eslint/types': 8.46.3 - '@typescript-eslint/visitor-keys': 8.46.3 + '@typescript-eslint/project-service': 8.47.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.47.0(typescript@5.8.3) + '@typescript-eslint/types': 8.47.0 + '@typescript-eslint/visitor-keys': 8.47.0 debug: 4.4.3(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 @@ -36906,12 +37454,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.46.3(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/utils@8.47.0(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.46.3 - '@typescript-eslint/types': 8.46.3 - '@typescript-eslint/typescript-estree': 8.46.3(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.47.0 + '@typescript-eslint/types': 8.47.0 + '@typescript-eslint/typescript-estree': 8.47.0(typescript@5.8.3) eslint: 8.57.1 typescript: 5.8.3 transitivePeerDependencies: @@ -36942,9 +37490,9 @@ snapshots: '@typescript-eslint/types': 8.33.1 eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@8.46.3': + '@typescript-eslint/visitor-keys@8.47.0': dependencies: - '@typescript-eslint/types': 8.46.3 + '@typescript-eslint/types': 8.47.0 eslint-visitor-keys: 4.2.1 '@typespec/ts-http-runtime@0.3.2': @@ -36963,15 +37511,15 @@ snapshots: '@codemirror/lint': 6.8.5 '@codemirror/search': 6.5.11 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 - '@uiw/react-codemirror@4.23.14(@codemirror/lint@6.8.5)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@uiw/react-codemirror@4.23.14(@codemirror/lint@6.8.5)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.28.4 '@codemirror/commands': 6.10.0 '@codemirror/state': 6.5.2 '@codemirror/theme-one-dark': 6.1.3 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@uiw/codemirror-extensions-basic-setup': 4.23.14(@codemirror/lint@6.8.5) codemirror: 6.0.2 react: 18.2.0 @@ -36981,6 +37529,65 @@ snapshots: '@ungap/structured-clone@1.3.0': {} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true + '@vercel/oidc@3.0.3': {} '@vitest/expect@2.0.5': @@ -37096,10 +37703,10 @@ snapshots: '@vscode/vsce-sign-alpine-x64@2.0.6': optional: true - '@vscode/vsce-sign-darwin-arm64@2.0.2': + '@vscode/vsce-sign-darwin-arm64@2.0.6': optional: true - '@vscode/vsce-sign-darwin-x64@2.0.2': + '@vscode/vsce-sign-darwin-x64@2.0.6': optional: true '@vscode/vsce-sign-linux-arm64@2.0.6': @@ -37117,57 +37724,28 @@ snapshots: '@vscode/vsce-sign-win32-x64@2.0.6': optional: true - '@vscode/vsce-sign@2.0.8': + '@vscode/vsce-sign@2.0.9': optionalDependencies: '@vscode/vsce-sign-alpine-arm64': 2.0.6 '@vscode/vsce-sign-alpine-x64': 2.0.6 - '@vscode/vsce-sign-darwin-arm64': 2.0.2 - '@vscode/vsce-sign-darwin-x64': 2.0.2 + '@vscode/vsce-sign-darwin-arm64': 2.0.6 + '@vscode/vsce-sign-darwin-x64': 2.0.6 '@vscode/vsce-sign-linux-arm': 2.0.6 '@vscode/vsce-sign-linux-arm64': 2.0.6 '@vscode/vsce-sign-linux-x64': 2.0.6 '@vscode/vsce-sign-win32-arm64': 2.0.6 '@vscode/vsce-sign-win32-x64': 2.0.6 - '@vscode/vsce@2.21.1': - dependencies: - azure-devops-node-api: 11.2.0 - chalk: 2.4.2 - cheerio: 1.1.2 - commander: 6.2.1 - glob: 7.2.3 - hosted-git-info: 4.1.0 - jsonc-parser: 3.3.1 - leven: 3.1.0 - markdown-it: 12.3.2 - mime: 1.6.0 - minimatch: 3.1.2 - parse-semver: 1.1.1 - read: 1.0.7 - semver: 7.7.3 - tmp: 0.2.5 - typed-rest-client: 1.8.11 - url-join: 4.0.1 - xml2js: 0.5.0 - yauzl: 2.10.0 - yazl: 2.5.1 - optionalDependencies: - keytar: 7.9.0 - transitivePeerDependencies: - - bare-abort-controller - - bare-buffer - - react-native-b4a - '@vscode/vsce@2.32.0': dependencies: '@azure/identity': 4.13.0 - '@vscode/vsce-sign': 2.0.8 + '@vscode/vsce-sign': 2.0.9 azure-devops-node-api: 12.5.0 chalk: 2.4.2 cheerio: 1.1.2 cockatiel: 3.2.1 commander: 6.2.1 - form-data: 4.0.4 + form-data: 4.0.5 glob: 7.2.3 hosted-git-info: 4.1.0 jsonc-parser: 3.3.1 @@ -37192,21 +37770,21 @@ snapshots: - react-native-b4a - supports-color - '@vscode/vsce@3.4.2': + '@vscode/vsce@3.7.0': dependencies: '@azure/identity': 4.13.0 - '@secretlint/node': 9.3.4 - '@secretlint/secretlint-formatter-sarif': 9.3.4 - '@secretlint/secretlint-rule-no-dotenv': 9.3.4 - '@secretlint/secretlint-rule-preset-recommend': 9.3.4 - '@vscode/vsce-sign': 2.0.8 + '@secretlint/node': 10.2.2 + '@secretlint/secretlint-formatter-sarif': 10.2.2 + '@secretlint/secretlint-rule-no-dotenv': 10.2.2 + '@secretlint/secretlint-rule-preset-recommend': 10.2.2 + '@vscode/vsce-sign': 2.0.9 azure-devops-node-api: 12.5.0 - chalk: 2.4.2 + chalk: 4.1.2 cheerio: 1.1.2 cockatiel: 3.2.1 commander: 12.1.0 - form-data: 4.0.4 - glob: 11.0.3 + form-data: 4.0.5 + glob: 11.1.0 hosted-git-info: 4.1.0 jsonc-parser: 3.3.1 leven: 3.1.0 @@ -37215,7 +37793,7 @@ snapshots: minimatch: 3.1.2 parse-semver: 1.1.1 read: 1.0.7 - secretlint: 9.3.4 + secretlint: 10.2.2 semver: 7.7.3 tmp: 0.2.5 typed-rest-client: 1.8.11 @@ -37323,69 +37901,69 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.102.1)': + '@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.103.0)': dependencies: - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-cli: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@4.10.0) + webpack-cli: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.103.0) - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.102.1)': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.103.0)': dependencies: - webpack: 5.102.1(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.103.0) - '@webpack-cli/configtest@3.0.1(webpack-cli@6.0.1)(webpack@5.102.1)': + '@webpack-cli/configtest@3.0.1(webpack-cli@6.0.1)(webpack@5.103.0)': dependencies: - webpack: 5.102.1(webpack-cli@6.0.1) - webpack-cli: 6.0.1(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@6.0.1) + webpack-cli: 6.0.1(webpack@5.103.0) '@webpack-cli/info@1.5.0(webpack-cli@4.10.0)': dependencies: envinfo: 7.20.0 - webpack-cli: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.102.1) + webpack-cli: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.103.0) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.102.1)': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.103.0)': dependencies: - webpack: 5.102.1(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.103.0) - '@webpack-cli/info@3.0.1(webpack-cli@6.0.1)(webpack@5.102.1)': + '@webpack-cli/info@3.0.1(webpack-cli@6.0.1)(webpack@5.103.0)': dependencies: - webpack: 5.102.1(webpack-cli@6.0.1) - webpack-cli: 6.0.1(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@6.0.1) + webpack-cli: 6.0.1(webpack@5.103.0) '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0)': dependencies: - webpack-cli: 4.10.0(webpack@5.102.1) + webpack-cli: 4.10.0(webpack@5.103.0) '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0)(webpack-dev-server@5.2.2)': dependencies: - webpack-cli: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.102.1) + webpack-cli: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.103.0) optionalDependencies: - webpack-dev-server: 5.2.2(webpack-cli@4.10.0)(webpack@5.102.1) + webpack-dev-server: 5.2.2(webpack-cli@4.10.0)(webpack@5.103.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.2.2)(webpack@5.102.1)': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.2.2)(webpack@5.103.0)': dependencies: - webpack: 5.102.1(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.103.0) optionalDependencies: - webpack-dev-server: 5.2.2(webpack-cli@5.1.4)(webpack@5.102.1) + webpack-dev-server: 5.2.2(webpack-cli@5.1.4)(webpack@5.103.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.102.1)': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.103.0)': dependencies: - webpack: 5.102.1(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.103.0) - '@webpack-cli/serve@3.0.1(webpack-cli@6.0.1)(webpack-dev-server@5.2.2)(webpack@5.102.1)': + '@webpack-cli/serve@3.0.1(webpack-cli@6.0.1)(webpack-dev-server@5.2.2)(webpack@5.103.0)': dependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - webpack-cli: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.102.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack-cli: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.103.0) optionalDependencies: - webpack-dev-server: 5.2.2(webpack-cli@6.0.1)(webpack@5.102.1) + webpack-dev-server: 5.2.2(webpack-cli@6.0.1)(webpack@5.103.0) - '@webpack-cli/serve@3.0.1(webpack-cli@6.0.1)(webpack@5.102.1)': + '@webpack-cli/serve@3.0.1(webpack-cli@6.0.1)(webpack@5.103.0)': dependencies: - webpack: 5.102.1(webpack-cli@6.0.1) - webpack-cli: 6.0.1(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@6.0.1) + webpack-cli: 6.0.1(webpack@5.103.0) '@xmldom/xmldom@0.7.13': {} @@ -37506,19 +38084,19 @@ snapshots: clean-stack: 4.2.0 indent-string: 5.0.0 - ai@5.0.89(zod@3.25.76): + ai@5.0.93(zod@3.25.76): dependencies: - '@ai-sdk/gateway': 2.0.7(zod@3.25.76) + '@ai-sdk/gateway': 2.0.9(zod@3.25.76) '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.16(zod@3.25.76) + '@ai-sdk/provider-utils': 3.0.17(zod@3.25.76) '@opentelemetry/api': 1.9.0 zod: 3.25.76 - ai@5.0.89(zod@4.1.11): + ai@5.0.93(zod@4.1.11): dependencies: - '@ai-sdk/gateway': 2.0.7(zod@4.1.11) + '@ai-sdk/gateway': 2.0.9(zod@4.1.11) '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.16(zod@4.1.11) + '@ai-sdk/provider-utils': 3.0.17(zod@4.1.11) '@opentelemetry/api': 1.9.0 zod: 4.1.11 @@ -37587,7 +38165,7 @@ snapshots: amdefine@1.0.1: optional: true - anser@2.3.2: {} + anser@2.3.3: {} ansi-align@2.0.0: dependencies: @@ -37901,11 +38479,11 @@ snapshots: dependencies: tslib: 2.8.1 - autoprefixer@10.4.21(postcss@8.5.6): + autoprefixer@10.4.22(postcss@8.5.6): dependencies: - browserslist: 4.27.0 - caniuse-lite: 1.0.30001754 - fraction.js: 4.3.7 + browserslist: 4.28.0 + caniuse-lite: 1.0.30001755 + fraction.js: 5.3.4 normalize-range: 0.1.2 picocolors: 1.1.1 postcss: 8.5.6 @@ -37914,7 +38492,7 @@ snapshots: autoprefixer@6.7.7: dependencies: browserslist: 1.7.7 - caniuse-db: 1.0.30001754 + caniuse-db: 1.0.30001755 normalize-range: 0.1.2 num2fraction: 1.2.2 postcss: 5.2.18 @@ -37923,7 +38501,7 @@ snapshots: autoprefixer@7.1.6: dependencies: browserslist: 2.11.3 - caniuse-lite: 1.0.30001754 + caniuse-lite: 1.0.30001755 normalize-range: 0.1.2 num2fraction: 1.2.2 postcss: 6.0.23 @@ -37931,8 +38509,8 @@ snapshots: autoprefixer@9.8.8: dependencies: - browserslist: 4.27.0 - caniuse-lite: 1.0.30001754 + browserslist: 4.28.0 + caniuse-lite: 1.0.30001755 normalize-range: 0.1.2 num2fraction: 1.2.2 picocolors: 0.2.1 @@ -37956,18 +38534,13 @@ snapshots: axios@1.12.2: dependencies: follow-redirects: 1.15.11 - form-data: 4.0.4 + form-data: 4.0.5 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug axobject-query@4.1.0: {} - azure-devops-node-api@11.2.0: - dependencies: - tunnel: 0.0.6 - typed-rest-client: 1.8.11 - azure-devops-node-api@12.5.0: dependencies: tunnel: 0.0.6 @@ -38150,59 +38723,72 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@10.0.0(@babel/core@7.27.7)(webpack@5.102.1): + babel-jest@30.2.0(@babel/core@7.27.7): + dependencies: + '@babel/core': 7.27.7 + '@jest/transform': 30.2.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 7.0.1 + babel-preset-jest: 30.2.0(@babel/core@7.27.7) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-loader@10.0.0(@babel/core@7.27.7)(webpack@5.103.0): dependencies: '@babel/core': 7.27.7 find-up: 5.0.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - babel-loader@7.1.2(babel-core@7.0.0-bridge.0(@babel/core@7.27.7))(webpack@5.102.1): + babel-loader@7.1.2(babel-core@7.0.0-bridge.0(@babel/core@7.27.7))(webpack@5.103.0): dependencies: babel-core: 7.0.0-bridge.0(@babel/core@7.27.7) find-cache-dir: 1.0.0 loader-utils: 1.4.2 mkdirp: 0.5.6 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - babel-loader@7.1.2(babel-core@7.0.0-bridge.0(@babel/core@7.28.5))(webpack@5.102.1): + babel-loader@7.1.2(babel-core@7.0.0-bridge.0(@babel/core@7.28.5))(webpack@5.103.0): dependencies: babel-core: 7.0.0-bridge.0(@babel/core@7.28.5) find-cache-dir: 1.0.0 loader-utils: 1.4.2 mkdirp: 0.5.6 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) - babel-loader@8.4.1(@babel/core@7.27.7)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + babel-loader@8.4.1(@babel/core@7.27.7)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: '@babel/core': 7.27.7 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - babel-loader@8.4.1(@babel/core@7.27.7)(webpack@5.102.1): + babel-loader@8.4.1(@babel/core@7.27.7)(webpack@5.103.0): dependencies: '@babel/core': 7.27.7 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - babel-loader@9.2.1(@babel/core@7.27.7)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + babel-loader@9.2.1(@babel/core@7.27.7)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: '@babel/core': 7.27.7 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - babel-loader@9.2.1(@babel/core@7.27.7)(webpack@5.102.1): + babel-loader@9.2.1(@babel/core@7.27.7)(webpack@5.103.0): dependencies: '@babel/core': 7.27.7 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) babel-messages@6.23.0: dependencies: @@ -38255,6 +38841,16 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-istanbul@7.0.1: + dependencies: + '@babel/helper-plugin-utils': 7.27.1 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 6.0.3 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + babel-plugin-jest-hoist@20.0.3: {} babel-plugin-jest-hoist@22.4.4: {} @@ -38272,6 +38868,10 @@ snapshots: '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 + babel-plugin-jest-hoist@30.2.0: + dependencies: + '@types/babel__core': 7.20.5 + babel-plugin-macros@2.8.0: dependencies: '@babel/runtime': 7.28.4 @@ -38309,7 +38909,7 @@ snapshots: dependencies: '@babel/core': 7.27.7 '@babel/helper-define-polyfill-provider': 0.1.5(@babel/core@7.27.7) - core-js-compat: 3.46.0 + core-js-compat: 3.47.0 transitivePeerDependencies: - supports-color @@ -38317,7 +38917,7 @@ snapshots: dependencies: '@babel/core': 7.27.7 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.27.7) - core-js-compat: 3.46.0 + core-js-compat: 3.47.0 transitivePeerDependencies: - supports-color @@ -38325,7 +38925,7 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) - core-js-compat: 3.46.0 + core-js-compat: 3.47.0 transitivePeerDependencies: - supports-color optional: true @@ -38660,6 +39260,12 @@ snapshots: babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.27.7) + babel-preset-jest@30.2.0(@babel/core@7.27.7): + dependencies: + '@babel/core': 7.27.7 + babel-plugin-jest-hoist: 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.27.7) + babel-preset-react-app@3.1.2(babel-runtime@6.26.0): dependencies: babel-plugin-dynamic-import-node: 1.1.0 @@ -38742,7 +39348,7 @@ snapshots: bare-events@2.8.2: {} - bare-fs@4.5.0: + bare-fs@4.5.1: dependencies: bare-events: 2.8.2 bare-path: 3.0.0 @@ -38781,7 +39387,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.8.25: {} + baseline-browser-mapping@2.8.29: {} basic-auth@2.0.1: dependencies: @@ -38934,21 +39540,21 @@ snapshots: browserslist@1.7.7: dependencies: - caniuse-db: 1.0.30001754 - electron-to-chromium: 1.5.249 + caniuse-db: 1.0.30001755 + electron-to-chromium: 1.5.255 browserslist@2.11.3: dependencies: - caniuse-lite: 1.0.30001754 - electron-to-chromium: 1.5.249 + caniuse-lite: 1.0.30001755 + electron-to-chromium: 1.5.255 - browserslist@4.27.0: + browserslist@4.28.0: dependencies: - baseline-browser-mapping: 2.8.25 - caniuse-lite: 1.0.30001754 - electron-to-chromium: 1.5.249 + baseline-browser-mapping: 2.8.29 + caniuse-lite: 1.0.30001755 + electron-to-chromium: 1.5.255 node-releases: 2.0.27 - update-browserslist-db: 1.1.4(browserslist@4.27.0) + update-browserslist-db: 1.1.4(browserslist@4.28.0) bs-logger@0.2.6: dependencies: @@ -39115,14 +39721,13 @@ snapshots: normalize-url: 8.1.0 responselike: 3.0.0 - cacheable@2.1.1: + cacheable@2.2.0: dependencies: - '@cacheable/memoize': 2.0.3 - '@cacheable/memory': 2.0.4 - '@cacheable/utils': 2.2.0 - hookified: 1.12.2 - keyv: 5.5.3 - qified: 0.5.1 + '@cacheable/memory': 2.0.5 + '@cacheable/utils': 2.3.1 + hookified: 1.13.0 + keyv: 5.5.4 + qified: 0.5.2 call-bind-apply-helpers@1.0.2: dependencies: @@ -39186,20 +39791,20 @@ snapshots: caniuse-api@1.6.1: dependencies: browserslist: 1.7.7 - caniuse-db: 1.0.30001754 + caniuse-db: 1.0.30001755 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 caniuse-api@3.0.0: dependencies: - browserslist: 4.27.0 - caniuse-lite: 1.0.30001754 + browserslist: 4.28.0 + caniuse-lite: 1.0.30001755 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-db@1.0.30001754: {} + caniuse-db@1.0.30001755: {} - caniuse-lite@1.0.30001754: {} + caniuse-lite@1.0.30001755: {} canvas@3.2.0: dependencies: @@ -39211,12 +39816,6 @@ snapshots: - react-native-b4a optional: true - capital-case@1.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - upper-case-first: 2.0.2 - capture-exit@2.0.0: dependencies: rsvp: 4.8.5 @@ -39227,6 +39826,8 @@ snapshots: case-sensitive-paths-webpack-plugin@2.4.0: {} + case@1.6.3: {} + caseless@0.12.0: {} ccount@1.1.0: {} @@ -39281,21 +39882,6 @@ snapshots: chalk@5.6.2: {} - change-case@4.1.2: - dependencies: - camel-case: 4.1.2 - capital-case: 1.0.4 - constant-case: 3.0.4 - dot-case: 3.0.4 - header-case: 2.0.4 - no-case: 3.0.4 - param-case: 3.0.4 - pascal-case: 3.1.2 - path-case: 3.0.4 - sentence-case: 3.0.4 - snake-case: 3.0.4 - tslib: 2.8.1 - char-regex@1.0.2: {} character-entities-html4@2.1.0: {} @@ -39386,12 +39972,16 @@ snapshots: ci-info@3.9.0: {} + ci-info@4.3.1: {} + citty@0.1.6: dependencies: consola: 3.4.2 cjs-module-lexer@1.4.3: {} + cjs-module-lexer@2.1.1: {} + clap@1.2.3: dependencies: chalk: 1.1.3 @@ -39530,11 +40120,11 @@ snapshots: clsx@2.1.1: {} - cm6-theme-basic-light@0.2.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/highlight@1.2.3): + cm6-theme-basic-light@0.2.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.8)(@lezer/highlight@1.2.3): dependencies: '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 '@lezer/highlight': 1.2.3 cmdk@1.1.1(@types/react-dom@18.2.0)(@types/react@18.2.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -39579,7 +40169,7 @@ snapshots: '@codemirror/lint': 6.8.5 '@codemirror/search': 6.5.11 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.6 + '@codemirror/view': 6.38.8 collapse-white-space@1.0.6: {} @@ -39593,23 +40183,23 @@ snapshots: dependencies: color-name: 1.1.4 - color-convert@3.1.2: + color-convert@3.1.3: dependencies: - color-name: 2.0.2 + color-name: 2.1.0 color-name@1.1.3: {} color-name@1.1.4: {} - color-name@2.0.2: {} + color-name@2.1.0: {} color-string@0.3.0: dependencies: color-name: 1.1.4 - color-string@2.1.2: + color-string@2.1.4: dependencies: - color-name: 2.0.2 + color-name: 2.1.0 color-support@1.1.3: {} @@ -39619,10 +40209,10 @@ snapshots: color-convert: 1.9.3 color-string: 0.3.0 - color@5.0.2: + color@5.0.3: dependencies: - color-convert: 3.1.2 - color-string: 2.1.2 + color-convert: 3.1.3 + color-string: 2.1.4 colord@2.9.3: {} @@ -39674,6 +40264,8 @@ snapshots: commander@8.3.0: {} + commander@9.5.0: {} + common-path-prefix@3.0.0: {} commondir@1.0.1: {} @@ -39735,12 +40327,6 @@ snapshots: console-control-strings@1.1.0: {} - constant-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - upper-case: 2.0.2 - constants-browserify@1.0.0: {} content-disposition@0.5.2: {} @@ -39749,9 +40335,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - content-disposition@1.0.0: - dependencies: - safe-buffer: 5.2.1 + content-disposition@1.0.1: {} content-type-parser@1.0.2: {} @@ -39787,14 +40371,14 @@ snapshots: dependencies: toggle-selection: 1.0.6 - copy-webpack-plugin@13.0.1(webpack@5.102.1): + copy-webpack-plugin@13.0.1(webpack@5.103.0): dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 6.0.2 tinyglobby: 0.2.15 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) copyfiles@2.4.1: dependencies: @@ -39806,15 +40390,15 @@ snapshots: untildify: 4.0.0 yargs: 16.2.0 - core-js-compat@3.46.0: + core-js-compat@3.47.0: dependencies: - browserslist: 4.27.0 + browserslist: 4.28.0 - core-js-pure@3.46.0: {} + core-js-pure@3.47.0: {} core-js@2.6.12: {} - core-js@3.46.0: {} + core-js@3.47.0: {} core-util-is@1.0.2: {} @@ -39837,7 +40421,7 @@ snapshots: cosmiconfig@2.2.2: dependencies: is-directory: 0.3.1 - js-yaml: 3.14.1 + js-yaml: 4.1.1 minimist: 1.2.8 object-assign: 4.1.1 os-homedir: 1.0.2 @@ -39863,7 +40447,7 @@ snapshots: cosmiconfig@8.3.6(typescript@5.8.3): dependencies: import-fresh: 3.3.1 - js-yaml: 4.1.0 + js-yaml: 4.1.1 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: @@ -39873,7 +40457,7 @@ snapshots: dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.1.0 + js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: typescript: 5.8.3 @@ -39915,13 +40499,13 @@ snapshots: dependencies: capture-stack-trace: 1.0.2 - create-jest@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): + create-jest@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -40007,7 +40591,7 @@ snapshots: postcss-value-parser: 3.3.1 source-list-map: 2.0.1 - css-loader@3.6.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + css-loader@3.6.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: camelcase: 5.3.1 cssesc: 3.0.0 @@ -40022,9 +40606,9 @@ snapshots: postcss-value-parser: 4.2.0 schema-utils: 2.7.1 semver: 6.3.1 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - css-loader@3.6.0(webpack@5.102.1): + css-loader@3.6.0(webpack@5.103.0): dependencies: camelcase: 5.3.1 cssesc: 3.0.0 @@ -40039,9 +40623,9 @@ snapshots: postcss-value-parser: 4.2.0 schema-utils: 2.7.1 semver: 6.3.1 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - css-loader@5.2.7(webpack@5.102.1): + css-loader@5.2.7(webpack@5.103.0): dependencies: icss-utils: 5.1.0(postcss@8.5.6) loader-utils: 2.0.4 @@ -40053,9 +40637,22 @@ snapshots: postcss-value-parser: 4.2.0 schema-utils: 3.3.0 semver: 7.7.3 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) + + css-loader@6.11.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)): + dependencies: + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) + postcss-modules-scope: 3.2.1(postcss@8.5.6) + postcss-modules-values: 4.0.0(postcss@8.5.6) + postcss-value-parser: 4.2.0 + semver: 7.7.3 + optionalDependencies: + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12) - css-loader@6.11.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + css-loader@6.11.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -40066,9 +40663,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.3 optionalDependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - css-loader@6.11.0(webpack@5.102.1): + css-loader@6.11.0(webpack@5.103.0): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -40079,9 +40676,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.3 optionalDependencies: - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) - css-loader@7.1.2(webpack@5.102.1): + css-loader@7.1.2(webpack@5.103.0): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -40092,7 +40689,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.3 optionalDependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) css-select@4.3.0: dependencies: @@ -40237,7 +40834,7 @@ snapshots: dependencies: cssom: 0.3.8 - csstype@3.1.3: {} + csstype@3.2.3: {} cubic2quad@1.2.1: {} @@ -40401,12 +40998,12 @@ snapshots: bplist-parser: 0.2.0 untildify: 4.0.0 - default-browser-id@5.0.0: {} + default-browser-id@5.0.1: {} - default-browser@5.2.1: + default-browser@5.4.0: dependencies: bundle-name: 4.1.0 - default-browser-id: 5.0.0 + default-browser-id: 5.0.1 default-require-extensions@1.0.0: dependencies: @@ -40486,7 +41083,7 @@ snapshots: is-glob: 4.0.3 is-path-cwd: 3.0.0 is-path-inside: 4.0.0 - p-map: 7.0.3 + p-map: 7.0.4 presentable-error: 0.0.1 slash: 5.1.0 @@ -40733,7 +41330,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.249: {} + electron-to-chromium@1.5.255: {} email-addresses@5.0.0: {} @@ -40945,7 +41542,7 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - es-toolkit@1.41.0: {} + es-toolkit@1.42.0: {} es5-ext@0.10.64: dependencies: @@ -40964,8 +41561,6 @@ snapshots: es6-promise@4.2.8: {} - es6-promisify@6.1.1: {} - es6-shim@0.35.8: {} es6-symbol@3.1.4: @@ -41217,7 +41812,7 @@ snapshots: eslint-plugin-storybook@9.1.16(eslint@8.57.1)(storybook@9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3))(typescript@5.8.3): dependencies: - '@typescript-eslint/utils': 8.46.3(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.47.0(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 storybook: 9.1.16(@testing-library/dom@10.4.1)(prettier@3.5.3) transitivePeerDependencies: @@ -41295,7 +41890,7 @@ snapshots: imurmurhash: 0.1.4 inquirer: 7.3.3 is-glob: 4.0.3 - js-yaml: 3.14.1 + js-yaml: 4.1.1 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.3.0 lodash: 4.17.21 @@ -41345,7 +41940,7 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.0 + js-yaml: 4.1.1 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 @@ -41370,7 +41965,7 @@ snapshots: '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 - '@modelcontextprotocol/sdk': 1.21.1 + '@modelcontextprotocol/sdk': 1.22.0 '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -41639,6 +42234,8 @@ snapshots: exenv-es6@1.1.1: {} + exit-x@0.2.2: {} + exit@0.1.2: {} expand-template@2.0.3: {} @@ -41673,6 +42270,15 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 + expect@30.2.0: + dependencies: + '@jest/expect-utils': 30.2.0 + '@jest/get-type': 30.1.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 + exponential-backoff@3.1.3: {} express-rate-limit@7.5.1(express@5.1.0): @@ -41717,7 +42323,7 @@ snapshots: dependencies: accepts: 2.0.0 body-parser: 2.2.0 - content-disposition: 1.0.0 + content-disposition: 1.0.1 content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 @@ -41768,12 +42374,12 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 - extract-text-webpack-plugin@3.0.2(webpack@5.102.1): + extract-text-webpack-plugin@3.0.2(webpack@5.103.0): dependencies: async: 2.6.4 loader-utils: 1.4.2 schema-utils: 0.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) webpack-sources: 1.4.3 extract-zip@1.7.0: @@ -41785,19 +42391,19 @@ snapshots: extsprintf@1.3.0: {} - fantasticon@1.2.3: + fantasticon@3.0.0: dependencies: - change-case: 4.1.2 + case: 1.6.3 cli-color: 2.0.4 - commander: 7.2.0 - glob: 7.2.3 + commander: 12.1.0 + glob: 10.5.0 handlebars: 4.7.8 slugify: 1.6.6 svg2ttf: 6.0.3 - svgicons2svgfont: 10.0.6 - ttf2eot: 2.0.0 + svgicons2svgfont: 12.0.0 + ttf2eot: 3.1.0 ttf2woff: 3.0.0 - ttf2woff2: 4.0.5 + ttf2woff2: 5.0.0 transitivePeerDependencies: - supports-color @@ -41921,7 +42527,7 @@ snapshots: file-entry-cache@10.1.4: dependencies: - flat-cache: 6.1.18 + flat-cache: 6.1.19 file-entry-cache@5.0.1: dependencies: @@ -41941,23 +42547,23 @@ snapshots: minimatch: 3.1.2 proper-lockfile: 1.2.0 - file-loader@1.1.5(webpack@5.102.1): + file-loader@1.1.5(webpack@5.103.0): dependencies: loader-utils: 1.4.2 schema-utils: 0.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - file-loader@6.2.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + file-loader@6.2.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - file-loader@6.2.0(webpack@5.102.1): + file-loader@6.2.0(webpack@5.103.0): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) file-system-cache@1.1.0: dependencies: @@ -42116,11 +42722,11 @@ snapshots: flatted: 3.3.3 keyv: 4.5.4 - flat-cache@6.1.18: + flat-cache@6.1.19: dependencies: - cacheable: 2.1.1 + cacheable: 2.2.0 flatted: 3.3.3 - hookified: 1.12.2 + hookified: 1.13.0 flat@5.0.2: {} @@ -42130,7 +42736,7 @@ snapshots: flatten@1.0.3: {} - flow-parser@0.290.0: {} + flow-parser@0.291.0: {} flush-write-stream@1.1.1: dependencies: @@ -42165,7 +42771,7 @@ snapshots: forever-agent@0.6.1: {} - fork-ts-checker-webpack-plugin@0.2.10(typescript@5.8.3)(webpack@5.102.1): + fork-ts-checker-webpack-plugin@0.2.10(typescript@5.8.3)(webpack@5.103.0): dependencies: babel-code-frame: 6.26.0 chalk: 1.1.3 @@ -42176,7 +42782,7 @@ snapshots: lodash.startswith: 4.2.1 minimatch: 3.1.2 typescript: 5.8.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) fork-ts-checker-webpack-plugin@4.1.6: dependencies: @@ -42188,7 +42794,7 @@ snapshots: tapable: 1.1.3 worker-rpc: 0.1.1 - fork-ts-checker-webpack-plugin@6.5.3(eslint@9.26.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.102.1): + fork-ts-checker-webpack-plugin@6.5.3(eslint@9.26.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.103.0): dependencies: '@babel/code-frame': 7.27.1 '@types/json-schema': 7.0.15 @@ -42204,11 +42810,11 @@ snapshots: semver: 7.7.3 tapable: 1.1.3 typescript: 5.8.3 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: eslint: 9.26.0(jiti@2.6.1) - fork-ts-checker-webpack-plugin@6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@4.9.5)(webpack@5.102.1): + fork-ts-checker-webpack-plugin@6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@4.9.5)(webpack@5.103.0): dependencies: '@babel/code-frame': 7.27.1 '@types/json-schema': 7.0.15 @@ -42224,11 +42830,11 @@ snapshots: semver: 7.7.3 tapable: 1.1.3 typescript: 4.9.5 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: eslint: 9.27.0(jiti@2.6.1) - fork-ts-checker-webpack-plugin@6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + fork-ts-checker-webpack-plugin@6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: '@babel/code-frame': 7.27.1 '@types/json-schema': 7.0.15 @@ -42244,11 +42850,11 @@ snapshots: semver: 7.7.3 tapable: 1.1.3 typescript: 5.8.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) optionalDependencies: eslint: 9.27.0(jiti@2.6.1) - fork-ts-checker-webpack-plugin@6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.102.1): + fork-ts-checker-webpack-plugin@6.5.3(eslint@9.27.0(jiti@2.6.1))(typescript@5.8.3)(webpack@5.103.0): dependencies: '@babel/code-frame': 7.27.1 '@types/json-schema': 7.0.15 @@ -42264,11 +42870,28 @@ snapshots: semver: 7.7.3 tapable: 1.1.3 typescript: 5.8.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) optionalDependencies: eslint: 9.27.0(jiti@2.6.1) - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)): + dependencies: + '@babel/code-frame': 7.27.1 + chalk: 4.1.2 + chokidar: 3.6.0 + cosmiconfig: 7.1.0 + deepmerge: 4.3.1 + fs-extra: 10.1.0 + memfs: 3.5.3 + minimatch: 3.1.2 + node-abort-controller: 3.1.1 + schema-utils: 3.3.0 + semver: 7.7.3 + tapable: 2.3.0 + typescript: 5.8.3 + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12) + + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: '@babel/code-frame': 7.27.1 chalk: 4.1.2 @@ -42283,9 +42906,9 @@ snapshots: semver: 7.7.3 tapable: 2.3.0 typescript: 5.8.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.102.1): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.103.0): dependencies: '@babel/code-frame': 7.27.1 chalk: 4.1.2 @@ -42300,9 +42923,9 @@ snapshots: semver: 7.7.3 tapable: 2.3.0 typescript: 5.8.3 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) - fork-ts-checker-webpack-plugin@9.1.0(typescript@5.8.3)(webpack@5.102.1): + fork-ts-checker-webpack-plugin@9.1.0(typescript@5.8.3)(webpack@5.103.0): dependencies: '@babel/code-frame': 7.27.1 chalk: 4.1.2 @@ -42317,13 +42940,13 @@ snapshots: semver: 7.7.3 tapable: 2.3.0 typescript: 5.8.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) form-data-encoder@2.1.4: {} form-data-encoder@4.1.0: {} - form-data@4.0.4: + form-data@4.0.5: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -42339,7 +42962,7 @@ snapshots: forwarded@0.2.0: {} - fraction.js@4.3.7: {} + fraction.js@5.3.4: {} framer-motion@6.5.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: @@ -42515,8 +43138,6 @@ snapshots: gensync@1.0.0-beta.2: {} - geometry-interfaces@1.1.4: {} - get-caller-file@1.0.3: {} get-caller-file@2.0.5: {} @@ -42648,7 +43269,7 @@ snapshots: dependencies: find-index: 0.1.1 - glob@10.4.5: + glob@10.5.0: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 @@ -42657,7 +43278,7 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.0.3: + glob@11.1.0: dependencies: foreground-child: 3.3.1 jackspeak: 4.1.1 @@ -42721,7 +43342,7 @@ snapshots: global@4.4.0: dependencies: - min-document: 2.19.1 + min-document: 2.19.2 process: 0.11.10 globals@12.4.0: @@ -42944,6 +43565,10 @@ snapshots: has@1.0.4: {} + hashery@1.2.0: + dependencies: + hookified: 1.13.0 + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -43055,7 +43680,7 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.19 + style-to-js: 1.1.21 unist-util-position: 5.0.0 vfile-message: 4.0.3 transitivePeerDependencies: @@ -43120,11 +43745,6 @@ snapshots: he@1.2.0: {} - header-case@2.0.4: - dependencies: - capital-case: 1.0.4 - tslib: 2.8.1 - heap@0.2.5: {} hey-listen@1.0.8: {} @@ -43148,7 +43768,7 @@ snapshots: dependencies: parse-passwd: 1.0.0 - hookified@1.12.2: {} + hookified@1.13.0: {} hosted-git-info@2.8.9: {} @@ -43225,7 +43845,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@2.29.0(webpack@5.102.1): + html-webpack-plugin@2.29.0(webpack@5.103.0): dependencies: bluebird: 3.7.2 html-minifier: 3.5.21 @@ -43233,9 +43853,9 @@ snapshots: lodash: 4.17.21 pretty-error: 2.1.2 toposort: 1.0.7 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - html-webpack-plugin@4.5.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + html-webpack-plugin@4.5.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: '@types/html-minifier-terser': 5.1.2 '@types/tapable': 1.0.12 @@ -43246,9 +43866,9 @@ snapshots: pretty-error: 2.1.2 tapable: 1.1.3 util.promisify: 1.0.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - html-webpack-plugin@4.5.2(webpack@5.102.1): + html-webpack-plugin@4.5.2(webpack@5.103.0): dependencies: '@types/html-minifier-terser': 5.1.2 '@types/tapable': 1.0.12 @@ -43259,9 +43879,19 @@ snapshots: pretty-error: 2.1.2 tapable: 1.1.3 util.promisify: 1.0.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + + html-webpack-plugin@5.6.5(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)): + dependencies: + '@types/html-minifier-terser': 6.1.0 + html-minifier-terser: 6.1.0 + lodash: 4.17.21 + pretty-error: 4.0.0 + tapable: 2.3.0 + optionalDependencies: + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12) - html-webpack-plugin@5.6.4(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + html-webpack-plugin@5.6.5(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -43269,9 +43899,9 @@ snapshots: pretty-error: 4.0.0 tapable: 2.3.0 optionalDependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - html-webpack-plugin@5.6.4(webpack@5.102.1): + html-webpack-plugin@5.6.5(webpack@5.103.0): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -43279,7 +43909,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.3.0 optionalDependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) htmlparser2@10.0.0: dependencies: @@ -43511,6 +44141,8 @@ snapshots: indent-string@5.0.0: {} + index-to-position@1.2.0: {} + indexes-of@1.0.1: {} infer-owner@1.0.4: {} @@ -43528,7 +44160,7 @@ snapshots: inline-style-parser@0.1.1: {} - inline-style-parser@0.2.6: {} + inline-style-parser@0.2.7: {} inquirer@3.3.0: dependencies: @@ -43590,7 +44222,7 @@ snapshots: invert-kv@1.0.0: {} - ip-address@10.0.1: {} + ip-address@10.1.0: {} ip-regex@2.1.0: {} @@ -43980,7 +44612,7 @@ snapshots: istanbul-lib-report: 1.1.5 istanbul-lib-source-maps: 1.2.6 istanbul-reports: 1.5.1 - js-yaml: 3.14.1 + js-yaml: 4.1.1 mkdirp: 0.5.6 once: 1.4.0 @@ -44060,6 +44692,14 @@ snapshots: transitivePeerDependencies: - supports-color + istanbul-lib-source-maps@5.0.6: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + debug: 4.4.3(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + istanbul-reports@1.5.1: dependencies: handlebars: 4.7.8 @@ -44077,7 +44717,7 @@ snapshots: esprima: 2.7.3 glob: 5.0.15 handlebars: 4.7.8 - js-yaml: 3.14.1 + js-yaml: 4.1.1 mkdirp: 0.5.6 nopt: 3.0.6 once: 1.4.0 @@ -44138,6 +44778,12 @@ snapshots: jest-util: 29.7.0 p-limit: 3.1.0 + jest-changed-files@30.2.0: + dependencies: + execa: 5.1.1 + jest-util: 30.2.0 + p-limit: 3.1.0 + jest-circus@29.7.0(babel-plugin-macros@3.1.0): dependencies: '@jest/environment': 29.7.0 @@ -44164,6 +44810,32 @@ snapshots: - babel-plugin-macros - supports-color + jest-circus@30.2.0(babel-plugin-macros@3.1.0): + dependencies: + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.15.35 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.7.0(babel-plugin-macros@3.1.0) + is-generator-fn: 2.1.0 + jest-each: 30.2.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-runtime: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + p-limit: 3.1.0 + pretty-format: 30.2.0 + pure-rand: 7.0.1 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + jest-cli@20.0.4: dependencies: ansi-escapes: 1.4.0 @@ -44219,16 +44891,16 @@ snapshots: - supports-color - utf-8-validate - jest-cli@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): + jest-cli@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + create-jest: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -44238,6 +44910,25 @@ snapshots: - supports-color - ts-node + jest-cli@30.2.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): + dependencies: + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + chalk: 4.1.2 + exit-x: 0.2.2 + import-local: 3.2.0 + jest-config: 30.2.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + jest-util: 30.2.0 + jest-validate: 30.2.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + jest-config@20.0.4: dependencies: chalk: 1.1.3 @@ -44292,7 +44983,7 @@ snapshots: - supports-color - utf-8-validate - jest-config@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): + jest-config@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): dependencies: '@babel/core': 7.27.7 '@jest/test-sequencer': 29.7.0 @@ -44318,7 +45009,41 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 22.15.35 - ts-node: 10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3) + ts-node: 10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@30.2.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): + dependencies: + '@babel/core': 7.27.7 + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.27.7) + chalk: 4.1.2 + ci-info: 4.3.1 + deepmerge: 4.3.1 + glob: 10.5.0 + graceful-fs: 4.2.11 + jest-circus: 30.2.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-runner: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 30.2.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.15.35 + esbuild-register: 3.6.0(esbuild@0.25.12) + ts-node: 10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -44351,6 +45076,13 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-diff@30.2.0: + dependencies: + '@jest/diff-sequences': 30.0.1 + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + pretty-format: 30.2.0 + jest-docblock@20.0.3: {} jest-docblock@25.3.0: @@ -44361,6 +45093,10 @@ snapshots: dependencies: detect-newline: 3.1.0 + jest-docblock@30.2.0: + dependencies: + detect-newline: 3.1.0 + jest-each@25.5.0: dependencies: '@jest/types': 25.5.0 @@ -44377,6 +45113,14 @@ snapshots: jest-util: 29.7.0 pretty-format: 29.7.0 + jest-each@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + '@jest/types': 30.2.0 + chalk: 4.1.2 + jest-util: 30.2.0 + pretty-format: 30.2.0 + jest-environment-jsdom@20.0.3: dependencies: jest-mock: 20.0.3 @@ -44445,6 +45189,16 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 + jest-environment-node@30.2.0: + dependencies: + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.15.35 + jest-mock: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + jest-get-type@22.4.3: {} jest-get-type@25.2.6: {} @@ -44511,6 +45265,21 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + jest-haste-map@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 22.15.35 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 30.0.1 + jest-util: 30.2.0 + jest-worker: 30.2.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + jest-jasmine2@20.0.4: dependencies: chalk: 1.1.3 @@ -44557,7 +45326,10 @@ snapshots: pretty-format: 25.5.0 throat: 5.0.0 transitivePeerDependencies: + - bufferutil + - canvas - supports-color + - utf-8-validate jest-leak-detector@25.5.0: dependencies: @@ -44569,6 +45341,11 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-leak-detector@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + pretty-format: 30.2.0 + jest-matcher-utils@20.0.3: dependencies: chalk: 1.1.3 @@ -44594,6 +45371,13 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-matcher-utils@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + jest-diff: 30.2.0 + pretty-format: 30.2.0 + jest-matchers@20.0.3: dependencies: jest-diff: 20.0.3 @@ -44638,6 +45422,18 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 + jest-message-util@30.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + '@jest/types': 30.2.0 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 30.2.0 + slash: 3.0.0 + stack-utils: 2.0.6 + jest-mock@20.0.3: {} jest-mock@22.4.3: {} @@ -44652,6 +45448,12 @@ snapshots: '@types/node': 22.15.35 jest-util: 29.7.0 + jest-mock@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 22.15.35 + jest-util: 30.2.0 + jest-pnp-resolver@1.2.3(jest-resolve@25.5.1): optionalDependencies: jest-resolve: 25.5.1 @@ -44660,6 +45462,10 @@ snapshots: optionalDependencies: jest-resolve: 29.7.0 + jest-pnp-resolver@1.2.3(jest-resolve@30.2.0): + optionalDependencies: + jest-resolve: 30.2.0 + jest-regex-util@20.0.3: {} jest-regex-util@22.4.3: {} @@ -44670,6 +45476,8 @@ snapshots: jest-regex-util@29.6.3: {} + jest-regex-util@30.0.1: {} + jest-resolve-dependencies@20.0.3: dependencies: jest-regex-util: 20.0.3 @@ -44687,6 +45495,13 @@ snapshots: transitivePeerDependencies: - supports-color + jest-resolve-dependencies@30.2.0: + dependencies: + jest-regex-util: 30.0.1 + jest-snapshot: 30.2.0 + transitivePeerDependencies: + - supports-color + jest-resolve@20.0.4: dependencies: browser-resolve: 1.11.3 @@ -44722,6 +45537,17 @@ snapshots: resolve.exports: 2.0.3 slash: 3.0.0 + jest-resolve@30.2.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + jest-pnp-resolver: 1.2.3(jest-resolve@30.2.0) + jest-util: 30.2.0 + jest-validate: 30.2.0 + slash: 3.0.0 + unrs-resolver: 1.11.1 + jest-runner@25.5.4: dependencies: '@jest/console': 25.5.0 @@ -44775,6 +45601,33 @@ snapshots: transitivePeerDependencies: - supports-color + jest-runner@30.2.0: + dependencies: + '@jest/console': 30.2.0 + '@jest/environment': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.15.35 + chalk: 4.1.2 + emittery: 0.13.1 + exit-x: 0.2.2 + graceful-fs: 4.2.11 + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-haste-map: 30.2.0 + jest-leak-detector: 30.2.0 + jest-message-util: 30.2.0 + jest-resolve: 30.2.0 + jest-runtime: 30.2.0 + jest-util: 30.2.0 + jest-watcher: 30.2.0 + jest-worker: 30.2.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + jest-runtime@20.0.4: dependencies: babel-core: 6.26.3 @@ -44802,7 +45655,7 @@ snapshots: '@jest/test-result': 25.5.0 '@jest/transform': 25.5.1 '@jest/types': 25.5.0 - '@types/yargs': 15.0.19 + '@types/yargs': 15.0.20 chalk: 3.0.0 collect-v8-coverage: 1.0.3 exit: 0.1.2 @@ -44854,6 +45707,33 @@ snapshots: transitivePeerDependencies: - supports-color + jest-runtime@30.2.0: + dependencies: + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/globals': 30.2.0 + '@jest/source-map': 30.0.1 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.15.35 + chalk: 4.1.2 + cjs-module-lexer: 2.1.1 + collect-v8-coverage: 1.0.3 + glob: 10.5.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + jest-serializer@25.5.0: dependencies: graceful-fs: 4.2.11 @@ -44924,6 +45804,32 @@ snapshots: transitivePeerDependencies: - supports-color + jest-snapshot@30.2.0: + dependencies: + '@babel/core': 7.27.7 + '@babel/generator': 7.28.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.7) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.7) + '@babel/types': 7.28.5 + '@jest/expect-utils': 30.2.0 + '@jest/get-type': 30.1.0 + '@jest/snapshot-utils': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.27.7) + chalk: 4.1.2 + expect: 30.2.0 + graceful-fs: 4.2.11 + jest-diff: 30.2.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + pretty-format: 30.2.0 + semver: 7.7.3 + synckit: 0.11.11 + transitivePeerDependencies: + - supports-color + jest-util@20.0.3: dependencies: chalk: 1.1.3 @@ -44970,6 +45876,15 @@ snapshots: graceful-fs: 4.2.11 picomatch: 2.3.1 + jest-util@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 22.15.35 + chalk: 4.1.2 + ci-info: 4.3.1 + graceful-fs: 4.2.11 + picomatch: 4.0.3 + jest-validate@20.0.3: dependencies: chalk: 1.1.3 @@ -45003,6 +45918,15 @@ snapshots: leven: 3.1.0 pretty-format: 29.7.0 + jest-validate@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + '@jest/types': 30.2.0 + camelcase: 6.3.0 + chalk: 4.1.2 + leven: 3.1.0 + pretty-format: 30.2.0 + jest-watch-typeahead@0.5.0: dependencies: ansi-escapes: 4.3.2 @@ -45033,6 +45957,17 @@ snapshots: jest-util: 29.7.0 string-length: 4.0.2 + jest-watcher@30.2.0: + dependencies: + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 22.15.35 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 30.2.0 + string-length: 4.0.2 + jest-worker@24.9.0: dependencies: merge-stream: 2.0.0 @@ -45062,6 +45997,14 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 + jest-worker@30.2.0: + dependencies: + '@types/node': 22.15.35 + '@ungap/structured-clone': 1.3.0 + jest-util: 30.2.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + jest@20.0.4: dependencies: jest-cli: 20.0.4 @@ -45077,15 +46020,28 @@ snapshots: - supports-color - utf-8-validate - jest@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): + jest@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + jest-cli: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest@30.2.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): + dependencies: + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + '@jest/types': 30.2.0 + import-local: 3.2.0 + jest-cli: 30.2.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros + - esbuild-register - supports-color - ts-node @@ -45113,17 +46069,7 @@ snapshots: js-tokens@4.0.0: {} - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@3.7.0: - dependencies: - argparse: 1.0.10 - esprima: 2.7.3 - - js-yaml@4.1.0: + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -45145,7 +46091,7 @@ snapshots: '@babel/register': 7.28.3(@babel/core@7.27.7) babel-core: 7.0.0-bridge.0(@babel/core@7.27.7) chalk: 4.1.2 - flow-parser: 0.290.0 + flow-parser: 0.291.0 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -45172,7 +46118,7 @@ snapshots: '@babel/register': 7.28.3(@babel/core@7.27.7) babel-core: 7.0.0-bridge.0(@babel/core@7.27.7) chalk: 4.1.2 - flow-parser: 0.290.0 + flow-parser: 0.291.0 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -45259,7 +46205,7 @@ snapshots: decimal.js: 10.6.0 domexception: 4.0.0 escodegen: 2.1.0 - form-data: 4.0.4 + form-data: 4.0.5 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 @@ -45313,8 +46259,6 @@ snapshots: json-parse-even-better-errors@2.3.1: {} - json-parse-even-better-errors@3.0.2: {} - json-schema-to-ts@3.1.1: dependencies: '@babel/runtime': 7.28.4 @@ -45440,7 +46384,7 @@ snapshots: dependencies: json-buffer: 3.0.1 - keyv@5.5.3: + keyv@5.5.4: dependencies: '@keyv/serialize': 1.1.1 @@ -45484,7 +46428,7 @@ snapshots: dependencies: '@babel/runtime': 7.28.4 app-root-dir: 1.0.2 - core-js: 3.46.0 + core-js: 3.47.0 dotenv: 8.6.0 dotenv-expand: 5.1.0 @@ -45526,8 +46470,6 @@ snapshots: lines-and-columns@1.2.4: {} - lines-and-columns@2.0.4: {} - linkify-it@3.0.3: dependencies: uc.micro: 1.0.6 @@ -46168,7 +47110,7 @@ snapshots: dependencies: fs-monkey: 1.1.0 - memfs@4.50.0: + memfs@4.51.0: dependencies: '@jsonjoy.com/json-pack': 1.21.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) @@ -46706,17 +47648,17 @@ snapshots: mimic-response@4.0.0: {} - min-document@2.19.1: + min-document@2.19.2: dependencies: dom-walk: 0.1.2 min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.4(webpack@5.102.1): + mini-css-extract-plugin@2.9.4(webpack@5.103.0): dependencies: schema-utils: 4.3.3 tapable: 2.3.0 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@4.10.0) minim@0.23.8: dependencies: @@ -46838,7 +47780,7 @@ snapshots: find-up: 5.0.0 glob: 8.1.0 he: 1.2.0 - js-yaml: 4.1.0 + js-yaml: 4.1.1 log-symbols: 4.1.0 minimatch: 5.1.6 ms: 2.1.3 @@ -46858,10 +47800,10 @@ snapshots: diff: 7.0.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 - glob: 10.4.5 + glob: 10.5.0 he: 1.2.0 is-path-inside: 3.0.3 - js-yaml: 4.1.0 + js-yaml: 4.1.1 log-symbols: 4.1.0 minimatch: 9.0.5 ms: 2.1.3 @@ -46954,6 +47896,8 @@ snapshots: napi-build-utils@2.0.0: {} + napi-postinstall@0.3.4: {} + natural-compare-lite@1.4.0: {} natural-compare@1.4.0: {} @@ -46987,7 +47931,7 @@ snapshots: lower-case: 2.0.2 tslib: 2.8.1 - node-abi@3.80.0: + node-abi@3.85.0: dependencies: semver: 7.7.3 @@ -47070,15 +48014,15 @@ snapshots: node-int64@0.4.0: {} - node-loader@2.0.0(webpack@5.102.1): + node-loader@2.0.0(webpack@5.103.0): dependencies: loader-utils: 2.0.4 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) - node-loader@2.1.0(webpack@5.102.1): + node-loader@2.1.0(webpack@5.103.0): dependencies: loader-utils: 2.0.4 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@4.10.0) node-notifier@5.4.5: dependencies: @@ -47099,10 +48043,10 @@ snapshots: node-releases@2.0.27: {} - node-sarif-builder@2.0.3: + node-sarif-builder@3.3.0: dependencies: '@types/sarif': 2.1.7 - fs-extra: 10.1.0 + fs-extra: 11.3.2 node-schedule@2.1.1: dependencies: @@ -47320,7 +48264,7 @@ snapshots: open@10.2.0: dependencies: - default-browser: 5.2.1 + default-browser: 5.4.0 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 wsl-utils: 0.1.0 @@ -47472,7 +48416,7 @@ snapshots: p-limit@4.0.0: dependencies: - yocto-queue: 1.2.1 + yocto-queue: 1.2.2 p-locate@2.0.0: dependencies: @@ -47510,7 +48454,7 @@ snapshots: dependencies: aggregate-error: 4.0.1 - p-map@7.0.3: {} + p-map@7.0.4: {} p-queue@6.6.2: dependencies: @@ -47595,13 +48539,11 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-json@7.1.1: + parse-json@8.3.0: dependencies: '@babel/code-frame': 7.27.1 - error-ex: 1.3.4 - json-parse-even-better-errors: 3.0.2 - lines-and-columns: 2.0.4 - type-fest: 3.13.1 + index-to-position: 1.2.0 + type-fest: 4.41.0 parse-ms@4.0.0: {} @@ -47641,11 +48583,6 @@ snapshots: path-browserify@1.0.1: {} - path-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 - path-dirname@1.0.2: {} path-exists@2.1.0: @@ -47878,7 +48815,7 @@ snapshots: postcss-colormin@5.3.1(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + browserslist: 4.28.0 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.6 @@ -47891,7 +48828,7 @@ snapshots: postcss-convert-values@5.1.3(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + browserslist: 4.28.0 postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -47963,13 +48900,13 @@ snapshots: postcss-load-options: 1.2.0 postcss-load-plugins: 2.3.0 - postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): + postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: postcss: 8.5.6 - ts-node: 10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3) + ts-node: 10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3) postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.1): dependencies: @@ -47996,7 +48933,7 @@ snapshots: postcss-load-config: 1.2.0 schema-utils: 0.3.0 - postcss-loader@4.3.0(postcss@7.0.39)(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + postcss-loader@4.3.0(postcss@7.0.39)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 @@ -48004,9 +48941,9 @@ snapshots: postcss: 7.0.39 schema-utils: 3.3.0 semver: 7.7.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - postcss-loader@4.3.0(postcss@7.0.39)(webpack@5.102.1): + postcss-loader@4.3.0(postcss@7.0.39)(webpack@5.103.0): dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 @@ -48014,16 +48951,16 @@ snapshots: postcss: 7.0.39 schema-utils: 3.3.0 semver: 7.7.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - postcss-loader@8.2.0(postcss@8.5.6)(typescript@5.8.3)(webpack@5.102.1): + postcss-loader@8.2.0(postcss@8.5.6)(typescript@5.8.3)(webpack@5.103.0): dependencies: cosmiconfig: 9.0.0(typescript@5.8.3) jiti: 2.6.1 postcss: 8.5.6 semver: 7.7.3 optionalDependencies: - webpack: 5.102.1(webpack-cli@6.0.1) + webpack: 5.103.0(webpack-cli@6.0.1) transitivePeerDependencies: - typescript @@ -48053,7 +48990,7 @@ snapshots: postcss-merge-rules@5.1.4(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + browserslist: 4.28.0 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -48093,7 +49030,7 @@ snapshots: postcss-minify-params@5.1.4(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + browserslist: 4.28.0 cssnano-utils: 3.1.0(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -48223,7 +49160,7 @@ snapshots: postcss-normalize-unicode@5.1.1(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + browserslist: 4.28.0 postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -48267,7 +49204,7 @@ snapshots: postcss-reduce-initial@5.1.2(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + browserslist: 4.28.0 caniuse-api: 3.0.0 postcss: 8.5.6 @@ -48370,7 +49307,7 @@ snapshots: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 2.0.0 - node-abi: 3.80.0 + node-abi: 3.85.0 pump: 3.0.3 rc: 1.2.8 simple-get: 4.0.1 @@ -48442,6 +49379,12 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + pretty-format@30.2.0: + dependencies: + '@jest/schemas': 30.0.5 + ansi-styles: 5.2.0 + react-is: 18.3.1 + pretty-hrtime@1.0.3: {} pretty-ms@9.3.0: @@ -48608,11 +49551,13 @@ snapshots: pure-rand@6.1.0: {} + pure-rand@7.0.1: {} + q@1.5.1: {} - qified@0.5.1: + qified@0.5.2: dependencies: - hookified: 1.12.2 + hookified: 1.13.0 qs@6.13.0: dependencies: @@ -48676,22 +49621,22 @@ snapshots: iconv-lite: 0.7.0 unpipe: 1.0.0 - raw-loader@4.0.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + raw-loader@4.0.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - raw-loader@4.0.2(webpack@5.102.1): + raw-loader@4.0.2(webpack@5.103.0): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) rc-config-loader@4.1.3: dependencies: debug: 4.4.3(supports-color@8.1.1) - js-yaml: 4.1.0 + js-yaml: 4.1.1 json5: 2.2.3 require-from-string: 2.0.2 transitivePeerDependencies: @@ -49180,22 +50125,22 @@ snapshots: optionalDependencies: '@types/react': 18.2.0 - react-scripts-ts@3.1.0(@swc/core@1.15.0(@swc/helpers@0.5.17))(babel-core@7.0.0-bridge.0(@babel/core@7.27.7))(babel-runtime@6.26.0)(typescript@5.8.3)(webpack-cli@6.0.1): + react-scripts-ts@3.1.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(babel-core@7.0.0-bridge.0(@babel/core@7.27.7))(babel-runtime@6.26.0)(typescript@5.8.3)(webpack-cli@6.0.1): dependencies: autoprefixer: 7.1.6 babel-jest: 20.0.3 - babel-loader: 7.1.2(babel-core@7.0.0-bridge.0(@babel/core@7.27.7))(webpack@5.102.1) + babel-loader: 7.1.2(babel-core@7.0.0-bridge.0(@babel/core@7.27.7))(webpack@5.103.0) babel-preset-react-app: 3.1.2(babel-runtime@6.26.0) case-sensitive-paths-webpack-plugin: 2.1.1 chalk: 1.1.3 css-loader: 0.28.7 dotenv: 4.0.0 dotenv-expand: 4.2.0 - extract-text-webpack-plugin: 3.0.2(webpack@5.102.1) - file-loader: 1.1.5(webpack@5.102.1) - fork-ts-checker-webpack-plugin: 0.2.10(typescript@5.8.3)(webpack@5.102.1) + extract-text-webpack-plugin: 3.0.2(webpack@5.103.0) + file-loader: 1.1.5(webpack@5.103.0) + fork-ts-checker-webpack-plugin: 0.2.10(typescript@5.8.3)(webpack@5.103.0) fs-extra: 3.0.1 - html-webpack-plugin: 2.29.0(webpack@5.102.1) + html-webpack-plugin: 2.29.0(webpack@5.103.0) jest: 20.0.4 object-assign: 4.1.1 postcss-flexbugs-fixes: 3.2.0 @@ -49206,7 +50151,7 @@ snapshots: resolve: 1.6.0 source-map-loader: 0.2.4 style-loader: 0.19.0 - sw-precache-webpack-plugin: 0.11.4(webpack@5.102.1) + sw-precache-webpack-plugin: 0.11.4(webpack@5.103.0) ts-jest: 22.0.1(jest@20.0.4)(typescript@5.8.3) ts-loader: 2.3.7 tsconfig-paths-webpack-plugin: 2.0.0 @@ -49214,11 +50159,11 @@ snapshots: tslint-config-prettier: 1.18.0 tslint-react: 3.6.0(tslint@5.20.1(typescript@5.8.3))(typescript@5.8.3) typescript: 5.8.3 - uglifyjs-webpack-plugin: 1.2.5(webpack@5.102.1) - url-loader: 0.6.2(file-loader@1.1.5(webpack@5.102.1)) - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - webpack-dev-server: 5.2.2(webpack-cli@6.0.1)(webpack@5.102.1) - webpack-manifest-plugin: 1.3.2(webpack@5.102.1) + uglifyjs-webpack-plugin: 1.2.5(webpack@5.103.0) + url-loader: 0.6.2(file-loader@1.1.5(webpack@5.103.0)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack-dev-server: 5.2.2(webpack-cli@6.0.1)(webpack@5.103.0) + webpack-manifest-plugin: 1.3.2(webpack@5.103.0) whatwg-fetch: 2.0.3 optionalDependencies: fsevents: 1.2.13 @@ -49238,18 +50183,18 @@ snapshots: dependencies: autoprefixer: 7.1.6 babel-jest: 20.0.3 - babel-loader: 7.1.2(babel-core@7.0.0-bridge.0(@babel/core@7.28.5))(webpack@5.102.1) + babel-loader: 7.1.2(babel-core@7.0.0-bridge.0(@babel/core@7.28.5))(webpack@5.103.0) babel-preset-react-app: 3.1.2(babel-runtime@6.26.0) case-sensitive-paths-webpack-plugin: 2.1.1 chalk: 1.1.3 css-loader: 0.28.7 dotenv: 4.0.0 dotenv-expand: 4.2.0 - extract-text-webpack-plugin: 3.0.2(webpack@5.102.1) - file-loader: 1.1.5(webpack@5.102.1) - fork-ts-checker-webpack-plugin: 0.2.10(typescript@5.8.3)(webpack@5.102.1) + extract-text-webpack-plugin: 3.0.2(webpack@5.103.0) + file-loader: 1.1.5(webpack@5.103.0) + fork-ts-checker-webpack-plugin: 0.2.10(typescript@5.8.3)(webpack@5.103.0) fs-extra: 3.0.1 - html-webpack-plugin: 2.29.0(webpack@5.102.1) + html-webpack-plugin: 2.29.0(webpack@5.103.0) jest: 20.0.4 object-assign: 4.1.1 postcss-flexbugs-fixes: 3.2.0 @@ -49260,7 +50205,7 @@ snapshots: resolve: 1.6.0 source-map-loader: 0.2.4 style-loader: 0.19.0 - sw-precache-webpack-plugin: 0.11.4(webpack@5.102.1) + sw-precache-webpack-plugin: 0.11.4(webpack@5.103.0) ts-jest: 22.0.1(jest@20.0.4)(typescript@5.8.3) ts-loader: 2.3.7 tsconfig-paths-webpack-plugin: 2.0.0 @@ -49268,11 +50213,11 @@ snapshots: tslint-config-prettier: 1.18.0 tslint-react: 3.6.0(tslint@5.20.1(typescript@5.8.3))(typescript@5.8.3) typescript: 5.8.3 - uglifyjs-webpack-plugin: 1.2.5(webpack@5.102.1) - url-loader: 0.6.2(file-loader@1.1.5(webpack@5.102.1)) - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-dev-server: 5.2.2(webpack@5.102.1) - webpack-manifest-plugin: 1.3.2(webpack@5.102.1) + uglifyjs-webpack-plugin: 1.2.5(webpack@5.103.0) + url-loader: 0.6.2(file-loader@1.1.5(webpack@5.103.0)) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-dev-server: 5.2.2(webpack@5.103.0) + webpack-manifest-plugin: 1.3.2(webpack@5.103.0) whatwg-fetch: 2.0.3 optionalDependencies: fsevents: 1.2.13 @@ -49420,12 +50365,13 @@ snapshots: parse-json: 5.2.0 type-fest: 1.4.0 - read-pkg@8.1.0: + read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 - parse-json: 7.1.1 + parse-json: 8.3.0 type-fest: 4.41.0 + unicorn-magic: 0.1.0 read@1.0.7: dependencies: @@ -49822,7 +50768,7 @@ snapshots: combined-stream: 1.0.8 extend: 3.0.2 forever-agent: 0.6.1 - form-data: 4.0.4 + form-data: 4.0.5 har-validator: 5.1.5 http-signature: 1.2.0 is-typedarray: 1.0.0 @@ -49921,8 +50867,6 @@ snapshots: reusify@1.1.0: {} - rev-hash@3.0.0: {} - rfdc@1.4.1: {} rimraf@2.6.3: @@ -49939,23 +50883,23 @@ snapshots: rimraf@5.0.10: dependencies: - glob: 10.4.5 + glob: 10.5.0 rimraf@6.0.1: dependencies: - glob: 11.0.3 + glob: 11.1.0 package-json-from-dist: 1.0.1 - rollup-plugin-import-css@3.5.8(rollup@4.53.1): + rollup-plugin-import-css@3.5.8(rollup@4.53.2): dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.53.1) - rollup: 4.53.1 + '@rollup/pluginutils': 5.3.0(rollup@4.53.2) + rollup: 4.53.2 - rollup-plugin-peer-deps-external@2.2.4(rollup@4.53.1): + rollup-plugin-peer-deps-external@2.2.4(rollup@4.53.2): dependencies: - rollup: 4.53.1 + rollup: 4.53.2 - rollup-plugin-postcss@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): + rollup-plugin-postcss@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)): dependencies: chalk: 4.1.2 concat-with-sourcemaps: 1.1.0 @@ -49964,7 +50908,7 @@ snapshots: p-queue: 6.6.2 pify: 5.0.0 postcss: 8.5.6 - postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) postcss-modules: 4.3.1(postcss@8.5.6) promise.series: 0.2.0 resolve: 1.22.11 @@ -50009,12 +50953,12 @@ snapshots: tslib: 2.0.1 typescript: 3.9.10 - rollup-plugin-typescript2@0.36.0(rollup@4.53.1)(typescript@5.8.3): + rollup-plugin-typescript2@0.36.0(rollup@4.53.2)(typescript@5.8.3): dependencies: '@rollup/pluginutils': 4.2.1 find-cache-dir: 3.3.2 fs-extra: 10.1.0 - rollup: 4.53.1 + rollup: 4.53.2 semver: 7.7.3 tslib: 2.8.1 typescript: 5.8.3 @@ -50034,32 +50978,32 @@ snapshots: '@types/node': 22.15.35 acorn: 7.4.1 - rollup@4.53.1: + rollup@4.53.2: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.53.1 - '@rollup/rollup-android-arm64': 4.53.1 - '@rollup/rollup-darwin-arm64': 4.53.1 - '@rollup/rollup-darwin-x64': 4.53.1 - '@rollup/rollup-freebsd-arm64': 4.53.1 - '@rollup/rollup-freebsd-x64': 4.53.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.53.1 - '@rollup/rollup-linux-arm-musleabihf': 4.53.1 - '@rollup/rollup-linux-arm64-gnu': 4.53.1 - '@rollup/rollup-linux-arm64-musl': 4.53.1 - '@rollup/rollup-linux-loong64-gnu': 4.53.1 - '@rollup/rollup-linux-ppc64-gnu': 4.53.1 - '@rollup/rollup-linux-riscv64-gnu': 4.53.1 - '@rollup/rollup-linux-riscv64-musl': 4.53.1 - '@rollup/rollup-linux-s390x-gnu': 4.53.1 - '@rollup/rollup-linux-x64-gnu': 4.53.1 - '@rollup/rollup-linux-x64-musl': 4.53.1 - '@rollup/rollup-openharmony-arm64': 4.53.1 - '@rollup/rollup-win32-arm64-msvc': 4.53.1 - '@rollup/rollup-win32-ia32-msvc': 4.53.1 - '@rollup/rollup-win32-x64-gnu': 4.53.1 - '@rollup/rollup-win32-x64-msvc': 4.53.1 + '@rollup/rollup-android-arm-eabi': 4.53.2 + '@rollup/rollup-android-arm64': 4.53.2 + '@rollup/rollup-darwin-arm64': 4.53.2 + '@rollup/rollup-darwin-x64': 4.53.2 + '@rollup/rollup-freebsd-arm64': 4.53.2 + '@rollup/rollup-freebsd-x64': 4.53.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.53.2 + '@rollup/rollup-linux-arm-musleabihf': 4.53.2 + '@rollup/rollup-linux-arm64-gnu': 4.53.2 + '@rollup/rollup-linux-arm64-musl': 4.53.2 + '@rollup/rollup-linux-loong64-gnu': 4.53.2 + '@rollup/rollup-linux-ppc64-gnu': 4.53.2 + '@rollup/rollup-linux-riscv64-gnu': 4.53.2 + '@rollup/rollup-linux-riscv64-musl': 4.53.2 + '@rollup/rollup-linux-s390x-gnu': 4.53.2 + '@rollup/rollup-linux-x64-gnu': 4.53.2 + '@rollup/rollup-linux-x64-musl': 4.53.2 + '@rollup/rollup-openharmony-arm64': 4.53.2 + '@rollup/rollup-win32-arm64-msvc': 4.53.2 + '@rollup/rollup-win32-ia32-msvc': 4.53.2 + '@rollup/rollup-win32-x64-gnu': 4.53.2 + '@rollup/rollup-win32-x64-msvc': 4.53.2 fsevents: 2.3.3 router@2.2.0: @@ -50159,21 +51103,21 @@ snapshots: dependencies: truncate-utf8-bytes: 1.0.2 - sass-loader@13.3.3(sass@1.93.3)(webpack@5.102.1): + sass-loader@13.3.3(sass@1.94.1)(webpack@5.103.0): dependencies: neo-async: 2.6.2 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) optionalDependencies: - sass: 1.93.3 + sass: 1.94.1 - sass-loader@16.0.6(sass@1.93.3)(webpack@5.102.1): + sass-loader@16.0.6(sass@1.94.1)(webpack@5.103.0): dependencies: neo-async: 2.6.2 optionalDependencies: - sass: 1.93.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + sass: 1.94.1 + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - sass@1.93.3: + sass@1.94.1: dependencies: chokidar: 4.0.3 immutable: 5.1.4 @@ -50233,15 +51177,15 @@ snapshots: ajv-formats: 2.1.1 ajv-keywords: 5.1.0(ajv@8.17.1) - secretlint@9.3.4: + secretlint@10.2.2: dependencies: - '@secretlint/config-creator': 9.3.4 - '@secretlint/formatter': 9.3.4 - '@secretlint/node': 9.3.4 - '@secretlint/profiler': 9.3.4 + '@secretlint/config-creator': 10.2.2 + '@secretlint/formatter': 10.2.2 + '@secretlint/node': 10.2.2 + '@secretlint/profiler': 10.2.2 debug: 4.4.3(supports-color@8.1.1) globby: 14.1.0 - read-pkg: 8.1.0 + read-pkg: 9.0.1 transitivePeerDependencies: - supports-color @@ -50308,12 +51252,6 @@ snapshots: transitivePeerDependencies: - supports-color - sentence-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - upper-case-first: 2.0.2 - serialize-error@8.1.0: dependencies: type-fest: 0.20.2 @@ -50543,11 +51481,6 @@ snapshots: smart-buffer@4.2.0: {} - snake-case@3.0.4: - dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 - sockjs-client@1.1.5: dependencies: debug: 2.6.9 @@ -50573,7 +51506,7 @@ snapshots: socks@2.8.7: dependencies: - ip-address: 10.0.1 + ip-address: 10.1.0 smart-buffer: 4.2.0 sort-keys@1.1.2: @@ -50591,17 +51524,17 @@ snapshots: async: 2.6.4 loader-utils: 1.4.2 - source-map-loader@4.0.2(webpack@5.102.1): + source-map-loader@4.0.2(webpack@5.103.0): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) - source-map-loader@5.0.0(webpack@5.102.1): + source-map-loader@5.0.0(webpack@5.103.0): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) source-map-resolve@0.6.0: dependencies: @@ -51044,49 +51977,53 @@ snapshots: loader-utils: 1.4.2 schema-utils: 0.3.0 - style-loader@1.3.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + style-loader@1.3.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: loader-utils: 2.0.4 schema-utils: 2.7.1 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - style-loader@1.3.0(webpack@5.102.1): + style-loader@1.3.0(webpack@5.103.0): dependencies: loader-utils: 2.0.4 schema-utils: 2.7.1 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) - style-loader@2.0.0(webpack@5.102.1): + style-loader@2.0.0(webpack@5.103.0): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - style-loader@3.3.4(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + style-loader@3.3.4(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)): dependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12) - style-loader@3.3.4(webpack@5.102.1): + style-loader@3.3.4(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - style-loader@4.0.0(webpack@5.102.1): + style-loader@3.3.4(webpack@5.103.0): dependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(webpack-cli@5.1.4) + + style-loader@4.0.0(webpack@5.103.0): + dependencies: + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) style-mod@4.1.3: {} - style-to-js@1.1.19: + style-to-js@1.1.21: dependencies: - style-to-object: 1.0.12 + style-to-object: 1.0.14 style-to-object@0.3.0: dependencies: inline-style-parser: 0.1.1 - style-to-object@1.0.12: + style-to-object@1.0.14: dependencies: - inline-style-parser: 0.2.6 + inline-style-parser: 0.2.7 style-value-types@5.0.0: dependencies: @@ -51095,7 +52032,7 @@ snapshots: stylehacks@5.1.1(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + browserslist: 4.28.0 postcss: 8.5.6 postcss-selector-parser: 6.1.2 @@ -51162,7 +52099,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.13 commander: 4.1.1 - glob: 10.4.5 + glob: 10.5.0 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.7 @@ -51210,10 +52147,10 @@ snapshots: svg-tags@1.0.0: {} - svg-url-loader@8.0.0(webpack@5.102.1): + svg-url-loader@8.0.0(webpack@5.103.0): dependencies: - file-loader: 6.2.0(webpack@5.102.1) - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + file-loader: 6.2.0(webpack@5.103.0) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) svg2ttf@4.3.0: dependencies: @@ -51233,13 +52170,10 @@ snapshots: microbuffer: 1.0.0 svgpath: 2.6.0 - svgicons2svgfont@10.0.6: + svgicons2svgfont@12.0.0: dependencies: - commander: 7.2.0 - geometry-interfaces: 1.1.4 - glob: 7.2.3 - neatequal: 1.0.0 - readable-stream: 3.6.2 + commander: 9.5.0 + glob: 8.1.0 sax: 1.4.3 svg-pathdata: 6.0.3 @@ -51258,7 +52192,7 @@ snapshots: coa: 1.0.4 colors: 1.1.2 csso: 2.3.2 - js-yaml: 3.7.0 + js-yaml: 4.1.1 mkdirp: 0.5.6 sax: 1.2.4 whet.extend: 0.9.9 @@ -51275,12 +52209,12 @@ snapshots: svgpath@2.6.0: {} - sw-precache-webpack-plugin@0.11.4(webpack@5.102.1): + sw-precache-webpack-plugin@0.11.4(webpack@5.103.0): dependencies: del: 2.2.2 sw-precache: 5.2.1 uglify-js: 3.19.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) sw-precache@5.2.1: dependencies: @@ -51312,7 +52246,7 @@ snapshots: '@swaggerexpert/cookie': 2.0.2 deepmerge: 4.3.1 fast-json-patch: 3.1.1 - js-yaml: 4.1.0 + js-yaml: 4.1.1 neotraverse: 0.6.18 node-abort-controller: 3.1.1 node-fetch-commonjs: 3.3.2 @@ -51335,7 +52269,7 @@ snapshots: ieee754: 1.2.1 immutable: 3.8.2 js-file-download: 0.4.12 - js-yaml: 4.1.0 + js-yaml: 4.1.1 lodash: 4.17.21 prop-types: 15.8.1 randexp: 0.5.3 @@ -51377,7 +52311,7 @@ snapshots: ieee754: 1.2.1 immutable: 3.8.2 js-file-download: 0.4.12 - js-yaml: 4.1.0 + js-yaml: 4.1.1 lodash: 4.17.21 prop-types: 15.8.1 randexp: 0.5.3 @@ -51406,17 +52340,17 @@ snapshots: - '@types/react' - debug - swc-loader@0.2.6(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + swc-loader@0.2.6(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: - '@swc/core': 1.15.0(@swc/helpers@0.5.17) + '@swc/core': 1.15.2(@swc/helpers@0.5.17) '@swc/counter': 0.1.3 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - swc-loader@0.2.6(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1): + swc-loader@0.2.6(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0): dependencies: - '@swc/core': 1.15.0(@swc/helpers@0.5.17) + '@swc/core': 1.15.2(@swc/helpers@0.5.17) '@swc/counter': 0.1.3 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) symbol-tree@3.2.4: {} @@ -51432,6 +52366,10 @@ snapshots: synchronous-promise@2.0.17: {} + synckit@0.11.11: + dependencies: + '@pkgr/core': 0.2.9 + system-architecture@0.1.0: {} tabbable@5.3.3: {} @@ -51496,7 +52434,7 @@ snapshots: pump: 3.0.3 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.5.0 + bare-fs: 4.5.1 bare-path: 3.0.0 transitivePeerDependencies: - bare-abort-controller @@ -51580,7 +52518,12 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@4.2.3(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + terminal-link@4.0.0: + dependencies: + ansi-escapes: 7.2.0 + supports-hyperlinks: 3.2.0 + + terser-webpack-plugin@4.2.3(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: cacache: 15.3.0 find-cache-dir: 3.3.2 @@ -51590,10 +52533,10 @@ snapshots: serialize-javascript: 5.0.1 source-map: 0.6.1 terser: 5.44.1 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) webpack-sources: 1.4.3 - terser-webpack-plugin@4.2.3(webpack@5.102.1): + terser-webpack-plugin@4.2.3(webpack@5.103.0): dependencies: cacache: 15.3.0 find-cache-dir: 3.3.2 @@ -51603,30 +52546,42 @@ snapshots: serialize-javascript: 5.0.1 source-map: 0.6.1 terser: 5.44.1 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) webpack-sources: 1.4.3 - terser-webpack-plugin@5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + terser-webpack-plugin@5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.44.1 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12) optionalDependencies: - '@swc/core': 1.15.0(@swc/helpers@0.5.17) + '@swc/core': 1.15.2(@swc/helpers@0.5.17) + esbuild: 0.25.12 - terser-webpack-plugin@5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1): + terser-webpack-plugin@5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.44.1 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) optionalDependencies: - '@swc/core': 1.15.0(@swc/helpers@0.5.17) + '@swc/core': 1.15.2(@swc/helpers@0.5.17) + + terser-webpack-plugin@5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + serialize-javascript: 6.0.2 + terser: 5.44.1 + webpack: 5.103.0(webpack-cli@5.1.4) + optionalDependencies: + '@swc/core': 1.15.2(@swc/helpers@0.5.17) terser@4.8.1: dependencies: @@ -51658,7 +52613,7 @@ snapshots: test-exclude@7.0.1: dependencies: '@istanbuljs/schema': 0.1.3 - glob: 10.4.5 + glob: 10.5.0 minimatch: 9.0.5 text-decoder@1.2.3: @@ -51912,12 +52867,12 @@ snapshots: typescript: 3.9.10 yargs-parser: 18.1.3 - ts-jest@29.3.4(@babel/core@7.27.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.7))(jest@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)))(typescript@5.8.3): + ts-jest@29.3.4(@babel/core@7.27.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.7))(jest@29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)))(typescript@5.8.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + jest: 29.7.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -51932,6 +52887,27 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.27.7) + ts-jest@29.3.4(@babel/core@7.27.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@30.2.0(@babel/core@7.27.7))(esbuild@0.25.12)(jest@30.2.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)))(typescript@5.8.3): + dependencies: + bs-logger: 0.2.6 + ejs: 3.1.10 + fast-json-stable-stringify: 2.1.0 + jest: 30.2.0(@types/node@22.15.35)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.12))(ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3)) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.3 + type-fest: 4.41.0 + typescript: 5.8.3 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.27.7 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 30.2.0(@babel/core@7.27.7) + esbuild: 0.25.12 + ts-loader@2.3.7: dependencies: chalk: 2.4.2 @@ -51939,7 +52915,7 @@ snapshots: loader-utils: 1.4.2 semver: 5.7.2 - ts-loader@9.5.4(typescript@5.8.3)(webpack@5.102.1): + ts-loader@9.5.4(typescript@5.8.3)(webpack@5.103.0): dependencies: chalk: 4.1.2 enhanced-resolve: 5.18.3 @@ -51947,7 +52923,7 @@ snapshots: semver: 7.7.3 source-map: 0.7.6 typescript: 5.8.3 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) ts-mixer@6.0.4: {} @@ -51961,10 +52937,10 @@ snapshots: '@ts-morph/common': 0.27.0 code-block-writer: 13.0.3 - ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.18)(typescript@5.8.3): + ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.18)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 + '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 @@ -51979,12 +52955,12 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.15.0(@swc/helpers@0.5.17) + '@swc/core': 1.15.2(@swc/helpers@0.5.17) - ts-node@10.9.2(@swc/core@1.15.0(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3): + ts-node@10.9.2(@swc/core@1.15.2(@swc/helpers@0.5.17))(@types/node@22.15.35)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 + '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 @@ -51999,7 +52975,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.15.0(@swc/helpers@0.5.17) + '@swc/core': 1.15.2(@swc/helpers@0.5.17) optional: true ts-pnp@1.2.0(typescript@4.9.5): @@ -52146,7 +53122,7 @@ snapshots: commander: 2.20.3 diff: 4.0.2 glob: 7.2.3 - js-yaml: 3.14.1 + js-yaml: 4.1.1 minimatch: 3.1.2 mkdirp: 0.5.6 resolve: 1.6.0 @@ -52163,7 +53139,7 @@ snapshots: commander: 2.20.3 diff: 4.0.2 glob: 7.2.3 - js-yaml: 3.14.1 + js-yaml: 4.1.1 minimatch: 3.1.2 mkdirp: 0.5.6 resolve: 1.22.11 @@ -52180,7 +53156,7 @@ snapshots: commander: 2.20.3 diff: 4.0.2 glob: 7.2.3 - js-yaml: 3.14.1 + js-yaml: 4.1.1 minimatch: 3.1.2 mkdirp: 0.5.6 resolve: 1.22.11 @@ -52219,6 +53195,10 @@ snapshots: argparse: 1.0.10 microbuffer: 1.0.0 + ttf2eot@3.1.0: + dependencies: + argparse: 2.0.1 + ttf2woff2@2.0.3: dependencies: bindings: 1.5.0 @@ -52226,7 +53206,7 @@ snapshots: nan: 2.23.1 node-gyp: 3.8.0 - ttf2woff2@4.0.5: + ttf2woff2@5.0.0: dependencies: bindings: 1.5.0 bufferstreams: 3.0.0 @@ -52280,8 +53260,6 @@ snapshots: type-fest@2.19.0: {} - type-fest@3.13.1: {} - type-fest@4.41.0: {} type-is@1.6.18: @@ -52372,7 +53350,7 @@ snapshots: commander: 2.19.0 source-map: 0.6.1 - uglifyjs-webpack-plugin@1.2.5(webpack@5.102.1): + uglifyjs-webpack-plugin@1.2.5(webpack@5.103.0): dependencies: cacache: 10.0.4 find-cache-dir: 1.0.0 @@ -52380,7 +53358,7 @@ snapshots: serialize-javascript: 1.9.1 source-map: 0.6.1 uglify-es: 3.3.9 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) webpack-sources: 1.4.3 worker-farm: 1.7.0 @@ -52588,6 +53566,30 @@ snapshots: unraw@3.0.0: {} + unrs-resolver@1.11.1: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + untildify@2.1.0: dependencies: os-homedir: 1.0.2 @@ -52620,9 +53622,9 @@ snapshots: upath@2.0.1: {} - update-browserslist-db@1.1.4(browserslist@4.27.0): + update-browserslist-db@1.1.4(browserslist@4.28.0): dependencies: - browserslist: 4.27.0 + browserslist: 4.28.0 escalade: 3.2.0 picocolors: 1.1.1 @@ -52639,16 +53641,8 @@ snapshots: semver-diff: 2.1.0 xdg-basedir: 3.0.0 - upper-case-first@2.0.2: - dependencies: - tslib: 2.8.1 - upper-case@1.1.3: {} - upper-case@2.0.2: - dependencies: - tslib: 2.8.1 - uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -52659,30 +53653,30 @@ snapshots: url-join@4.0.1: {} - url-loader@0.6.2(file-loader@1.1.5(webpack@5.102.1)): + url-loader@0.6.2(file-loader@1.1.5(webpack@5.103.0)): dependencies: - file-loader: 1.1.5(webpack@5.102.1) + file-loader: 1.1.5(webpack@5.103.0) loader-utils: 1.4.2 mime: 1.6.0 schema-utils: 0.3.0 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))))(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))))(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) optionalDependencies: - file-loader: 6.2.0(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + file-loader: 6.2.0(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) - url-loader@4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.103.0))(webpack@5.103.0): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) optionalDependencies: - file-loader: 6.2.0(webpack@5.102.1) + file-loader: 6.2.0(webpack@5.103.0) url-parse-lax@1.0.0: dependencies: @@ -52883,33 +53877,6 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vsce@2.15.0: - dependencies: - azure-devops-node-api: 11.2.0 - chalk: 2.4.2 - cheerio: 1.1.2 - commander: 6.2.1 - glob: 7.2.3 - hosted-git-info: 4.1.0 - keytar: 7.9.0 - leven: 3.1.0 - markdown-it: 12.3.2 - mime: 1.6.0 - minimatch: 3.1.2 - parse-semver: 1.1.1 - read: 1.0.7 - semver: 5.7.2 - tmp: 0.2.5 - typed-rest-client: 1.8.11 - url-join: 4.0.1 - xml2js: 0.4.23 - yauzl: 2.10.0 - yazl: 2.5.1 - transitivePeerDependencies: - - bare-abort-controller - - bare-buffer - - react-native-b4a - vscode-debugadapter-testsupport@1.51.0: dependencies: vscode-debugprotocol: 1.51.0 @@ -52932,15 +53899,15 @@ snapshots: vscode-extension-tester@5.10.0(mocha@10.8.2)(typescript@5.8.3): dependencies: - '@types/selenium-webdriver': 4.35.3 + '@types/selenium-webdriver': 4.35.4 '@vscode/vsce': 2.32.0 commander: 11.1.0 compare-versions: 6.1.1 fs-extra: 11.3.2 - glob: 10.4.5 + glob: 10.5.0 got: 13.0.0 hpagent: 1.2.0 - js-yaml: 4.1.0 + js-yaml: 4.1.1 mocha: 10.8.2 monaco-page-objects: 3.14.1(selenium-webdriver@4.38.0)(typescript@5.8.3) sanitize-filename: 1.6.3 @@ -52961,17 +53928,17 @@ snapshots: dependencies: '@redhat-developer/locators': 1.17.0(@redhat-developer/page-objects@1.17.0(selenium-webdriver@4.38.0)(typescript@5.8.3))(selenium-webdriver@4.38.0) '@redhat-developer/page-objects': 1.17.0(selenium-webdriver@4.38.0)(typescript@5.8.3) - '@types/selenium-webdriver': 4.35.3 - '@vscode/vsce': 3.4.2 + '@types/selenium-webdriver': 4.35.4 + '@vscode/vsce': 3.7.0 c8: 10.1.3 commander: 13.1.0 compare-versions: 6.1.1 find-up: 7.0.0 fs-extra: 11.3.2 - glob: 11.0.3 + glob: 11.1.0 got: 14.4.7 hpagent: 1.2.0 - js-yaml: 4.1.0 + js-yaml: 4.1.1 mocha: 11.7.5 sanitize-filename: 1.6.3 selenium-webdriver: 4.38.0 @@ -53138,10 +54105,10 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-cli@4.10.0(webpack-dev-server@5.2.2)(webpack@5.102.1): + webpack-cli@4.10.0(webpack-dev-server@5.2.2)(webpack@5.103.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.102.1) + '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.103.0) '@webpack-cli/info': 1.5.0(webpack-cli@4.10.0) '@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0)(webpack-dev-server@5.2.2) colorette: 2.0.20 @@ -53151,15 +54118,15 @@ snapshots: import-local: 3.2.0 interpret: 2.2.0 rechoir: 0.7.1 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@4.10.0) webpack-merge: 5.10.0 optionalDependencies: - webpack-dev-server: 5.2.2(webpack-cli@4.10.0)(webpack@5.102.1) + webpack-dev-server: 5.2.2(webpack-cli@4.10.0)(webpack@5.103.0) - webpack-cli@4.10.0(webpack@5.102.1): + webpack-cli@4.10.0(webpack@5.103.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.102.1) + '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.103.0) '@webpack-cli/info': 1.5.0(webpack-cli@4.10.0) '@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0) colorette: 2.0.20 @@ -53169,15 +54136,15 @@ snapshots: import-local: 3.2.0 interpret: 2.2.0 rechoir: 0.7.1 - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@4.10.0) webpack-merge: 5.10.0 - webpack-cli@5.1.4(webpack-dev-server@5.2.2)(webpack@5.102.1): + webpack-cli@5.1.4(webpack-dev-server@5.2.2)(webpack@5.103.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.102.1) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.102.1) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.2.2)(webpack@5.102.1) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.103.0) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.103.0) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.2.2)(webpack@5.103.0) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.6 @@ -53186,17 +54153,17 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) webpack-merge: 5.10.0 optionalDependencies: - webpack-dev-server: 5.2.2(webpack-cli@5.1.4)(webpack@5.102.1) + webpack-dev-server: 5.2.2(webpack-cli@5.1.4)(webpack@5.103.0) - webpack-cli@5.1.4(webpack@5.102.1): + webpack-cli@5.1.4(webpack@5.103.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.102.1) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.102.1) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.102.1) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.103.0) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.103.0) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.103.0) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.6 @@ -53205,15 +54172,15 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) webpack-merge: 5.10.0 - webpack-cli@6.0.1(webpack-dev-server@5.2.2)(webpack@5.102.1): + webpack-cli@6.0.1(webpack-dev-server@5.2.2)(webpack@5.103.0): dependencies: '@discoveryjs/json-ext': 0.6.3 - '@webpack-cli/configtest': 3.0.1(webpack-cli@6.0.1)(webpack@5.102.1) - '@webpack-cli/info': 3.0.1(webpack-cli@6.0.1)(webpack@5.102.1) - '@webpack-cli/serve': 3.0.1(webpack-cli@6.0.1)(webpack-dev-server@5.2.2)(webpack@5.102.1) + '@webpack-cli/configtest': 3.0.1(webpack-cli@6.0.1)(webpack@5.103.0) + '@webpack-cli/info': 3.0.1(webpack-cli@6.0.1)(webpack@5.103.0) + '@webpack-cli/serve': 3.0.1(webpack-cli@6.0.1)(webpack-dev-server@5.2.2)(webpack@5.103.0) colorette: 2.0.20 commander: 12.1.0 cross-spawn: 7.0.6 @@ -53222,17 +54189,17 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) webpack-merge: 6.0.1 optionalDependencies: - webpack-dev-server: 5.2.2(webpack-cli@6.0.1)(webpack@5.102.1) + webpack-dev-server: 5.2.2(webpack-cli@6.0.1)(webpack@5.103.0) - webpack-cli@6.0.1(webpack@5.102.1): + webpack-cli@6.0.1(webpack@5.103.0): dependencies: '@discoveryjs/json-ext': 0.6.3 - '@webpack-cli/configtest': 3.0.1(webpack-cli@6.0.1)(webpack@5.102.1) - '@webpack-cli/info': 3.0.1(webpack-cli@6.0.1)(webpack@5.102.1) - '@webpack-cli/serve': 3.0.1(webpack-cli@6.0.1)(webpack@5.102.1) + '@webpack-cli/configtest': 3.0.1(webpack-cli@6.0.1)(webpack@5.103.0) + '@webpack-cli/info': 3.0.1(webpack-cli@6.0.1)(webpack@5.103.0) + '@webpack-cli/serve': 3.0.1(webpack-cli@6.0.1)(webpack@5.103.0) colorette: 2.0.20 commander: 12.1.0 cross-spawn: 7.0.6 @@ -53241,28 +54208,28 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.102.1(webpack-cli@6.0.1) + webpack: 5.103.0(webpack-cli@6.0.1) webpack-merge: 6.0.1 - webpack-dev-middleware@3.7.3(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + webpack-dev-middleware@3.7.3(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: memory-fs: 0.4.1 mime: 2.6.0 mkdirp: 0.5.6 range-parser: 1.2.1 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) webpack-log: 2.0.0 - webpack-dev-middleware@3.7.3(webpack@5.102.1): + webpack-dev-middleware@3.7.3(webpack@5.103.0): dependencies: memory-fs: 0.4.1 mime: 2.6.0 mkdirp: 0.5.6 range-parser: 1.2.1 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) webpack-log: 2.0.0 - webpack-dev-middleware@4.3.0(webpack@5.102.1): + webpack-dev-middleware@4.3.0(webpack@5.103.0): dependencies: colorette: 1.4.0 mem: 8.1.1 @@ -53270,9 +54237,19 @@ snapshots: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 3.3.0 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + + webpack-dev-middleware@6.1.3(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)): + dependencies: + colorette: 2.0.20 + memfs: 3.5.3 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.3.3 + optionalDependencies: + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12) - webpack-dev-middleware@6.1.3(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + webpack-dev-middleware@6.1.3(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -53280,9 +54257,9 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - webpack-dev-middleware@6.1.3(webpack@5.102.1): + webpack-dev-middleware@6.1.3(webpack@5.103.0): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -53290,32 +54267,32 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) - webpack-dev-middleware@7.4.5(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + webpack-dev-middleware@7.4.5(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: colorette: 2.0.20 - memfs: 4.50.0 + memfs: 4.51.0 mime-types: 3.0.1 on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) optional: true - webpack-dev-middleware@7.4.5(webpack@5.102.1): + webpack-dev-middleware@7.4.5(webpack@5.103.0): dependencies: colorette: 2.0.20 - memfs: 4.50.0 + memfs: 4.51.0 mime-types: 3.0.1 on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.102.1(webpack-cli@5.1.4) + webpack: 5.103.0(webpack-cli@5.1.4) - webpack-dev-server@5.2.2(webpack-cli@4.10.0)(webpack@5.102.1): + webpack-dev-server@5.2.2(webpack-cli@4.10.0)(webpack@5.103.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -53343,11 +54320,11 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(webpack@5.102.1) + webpack-dev-middleware: 7.4.5(webpack@5.103.0) ws: 8.18.3 optionalDependencies: - webpack: 5.102.1(webpack-cli@4.10.0) - webpack-cli: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@4.10.0) + webpack-cli: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.103.0) transitivePeerDependencies: - bufferutil - debug @@ -53355,7 +54332,7 @@ snapshots: - utf-8-validate optional: true - webpack-dev-server@5.2.2(webpack-cli@5.1.4)(webpack@5.102.1): + webpack-dev-server@5.2.2(webpack-cli@5.1.4)(webpack@5.103.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -53383,18 +54360,18 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(webpack@5.102.1) + webpack-dev-middleware: 7.4.5(webpack@5.103.0) ws: 8.18.3 optionalDependencies: - webpack: 5.102.1(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.102.1) + webpack: 5.103.0(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-dev-server@5.2.2)(webpack@5.103.0) transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate - webpack-dev-server@5.2.2(webpack-cli@6.0.1)(webpack@5.102.1): + webpack-dev-server@5.2.2(webpack-cli@6.0.1)(webpack@5.103.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -53422,18 +54399,18 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(webpack@5.102.1) + webpack-dev-middleware: 7.4.5(webpack@5.103.0) ws: 8.18.3 optionalDependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - webpack-cli: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.102.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack-cli: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.103.0) transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate - webpack-dev-server@5.2.2(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + webpack-dev-server@5.2.2(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -53461,10 +54438,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + webpack-dev-middleware: 7.4.5(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) ws: 8.18.3 optionalDependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) transitivePeerDependencies: - bufferutil - debug @@ -53472,7 +54449,7 @@ snapshots: - utf-8-validate optional: true - webpack-dev-server@5.2.2(webpack@5.102.1): + webpack-dev-server@5.2.2(webpack@5.103.0): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -53500,23 +54477,23 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(webpack@5.102.1) + webpack-dev-middleware: 7.4.5(webpack@5.103.0) ws: 8.18.3 optionalDependencies: - webpack: 5.102.1(webpack-cli@4.10.0) + webpack: 5.103.0(webpack-cli@5.1.4) transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate - webpack-filter-warnings-plugin@1.2.1(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))): + webpack-filter-warnings-plugin@1.2.1(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))): dependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)) - webpack-filter-warnings-plugin@1.2.1(webpack@5.102.1): + webpack-filter-warnings-plugin@1.2.1(webpack@5.103.0): dependencies: - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) webpack-hot-middleware@2.26.1: dependencies: @@ -53529,18 +54506,11 @@ snapshots: ansi-colors: 3.2.4 uuid: 3.4.0 - webpack-manifest-plugin@1.3.2(webpack@5.102.1): + webpack-manifest-plugin@1.3.2(webpack@5.103.0): dependencies: fs-extra: 0.30.0 lodash: 4.17.21 - webpack: 5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1) - - webpack-merge-and-include-globally@2.3.4(webpack@5.102.1): - dependencies: - es6-promisify: 6.1.1 - glob: 7.2.3 - rev-hash: 3.0.0 - webpack: 5.102.1(webpack-cli@6.0.1) + webpack: 5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1) webpack-merge@5.10.0: dependencies: @@ -53575,7 +54545,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17)): + webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17)): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -53585,7 +54555,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.27.0 + browserslist: 4.28.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -53599,7 +54569,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))) watchpack: 2.4.4 webpack-sources: 3.3.3 transitivePeerDependencies: @@ -53607,7 +54577,7 @@ snapshots: - esbuild - uglify-js - webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@5.1.4): + webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -53617,7 +54587,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.27.0 + browserslist: 4.28.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -53631,17 +54601,49 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)(webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(esbuild@0.25.12)) + watchpack: 2.4.4 + webpack-sources: 3.3.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@5.1.4): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.15.0 + acorn-import-phases: 1.0.4(acorn@8.15.0) + browserslist: 4.28.0 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.18.3 + es-module-lexer: 1.7.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.1 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 4.3.3 + tapable: 2.3.0 + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) watchpack: 2.4.4 webpack-sources: 3.3.3 optionalDependencies: - webpack-cli: 5.1.4(webpack@5.102.1) + webpack-cli: 5.1.4(webpack@5.103.0) transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - webpack@5.102.1(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack-cli@6.0.1): + webpack@5.103.0(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack-cli@6.0.1): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -53651,7 +54653,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.27.0 + browserslist: 4.28.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -53665,17 +54667,17 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) watchpack: 2.4.4 webpack-sources: 3.3.3 optionalDependencies: - webpack-cli: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.102.1) + webpack-cli: 6.0.1(webpack-dev-server@5.2.2)(webpack@5.103.0) transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - webpack@5.102.1(webpack-cli@4.10.0): + webpack@5.103.0(webpack-cli@4.10.0): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -53685,7 +54687,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.27.0 + browserslist: 4.28.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -53699,17 +54701,17 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) watchpack: 2.4.4 webpack-sources: 3.3.3 optionalDependencies: - webpack-cli: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.102.1) + webpack-cli: 4.10.0(webpack-dev-server@5.2.2)(webpack@5.103.0) transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - webpack@5.102.1(webpack-cli@5.1.4): + webpack@5.103.0(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -53719,7 +54721,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.27.0 + browserslist: 4.28.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -53733,17 +54735,17 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) watchpack: 2.4.4 webpack-sources: 3.3.3 optionalDependencies: - webpack-cli: 5.1.4(webpack@5.102.1) + webpack-cli: 5.1.4(webpack@5.103.0) transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - webpack@5.102.1(webpack-cli@6.0.1): + webpack@5.103.0(webpack-cli@6.0.1): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -53753,7 +54755,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.27.0 + browserslist: 4.28.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -53767,11 +54769,11 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(@swc/core@1.15.0(@swc/helpers@0.5.17))(webpack@5.102.1) + terser-webpack-plugin: 5.3.14(@swc/core@1.15.2(@swc/helpers@0.5.17))(webpack@5.103.0) watchpack: 2.4.4 webpack-sources: 3.3.3 optionalDependencies: - webpack-cli: 6.0.1(webpack@5.102.1) + webpack-cli: 6.0.1(webpack@5.103.0) transitivePeerDependencies: - '@swc/core' - esbuild @@ -54040,11 +55042,6 @@ snapshots: xml-name-validator@4.0.0: {} - xml2js@0.4.23: - dependencies: - sax: 1.4.3 - xmlbuilder: 11.0.1 - xml2js@0.5.0: dependencies: sax: 1.4.3 @@ -54062,7 +55059,7 @@ snapshots: '@oozcitak/dom': 1.15.10 '@oozcitak/infra': 1.0.8 '@oozcitak/util': 8.3.8 - js-yaml: 3.14.1 + js-yaml: 4.1.1 xmlbuilder@11.0.1: {} @@ -54195,7 +55192,7 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.2.1: {} + yocto-queue@1.2.2: {} yoctocolors@2.1.2: {} diff --git a/workspaces/api-designer/api-designer-extension/package.json b/workspaces/api-designer/api-designer-extension/package.json index bd6f836deca..72a2b6ddeea 100644 --- a/workspaces/api-designer/api-designer-extension/package.json +++ b/workspaces/api-designer/api-designer-extension/package.json @@ -113,7 +113,7 @@ }, "dependencies": { "copyfiles": "^2.4.1", - "@vscode/vsce": "~2.21.0", + "@vscode/vsce": "^3.7.0", "vscode-messenger": "^0.4.5", "vscode-messenger-common": "^0.4.5", "@wso2/api-designer-core": "workspace:*", @@ -136,6 +136,6 @@ "cors-anywhere": "^0.4.4", "@apidevtools/json-schema-ref-parser": "11.6.1", "adm-zip": "~0.5.14", - "js-yaml": "~4.1.0" + "js-yaml": "~4.1.1" } } diff --git a/workspaces/api-designer/api-designer-visualizer/.gitignore b/workspaces/api-designer/api-designer-visualizer/.gitignore new file mode 100644 index 00000000000..dfd992064a3 --- /dev/null +++ b/workspaces/api-designer/api-designer-visualizer/.gitignore @@ -0,0 +1,3 @@ +lib/ +storybook-static/ +.storybook/fonts/ diff --git a/workspaces/api-designer/api-designer-visualizer/package.json b/workspaces/api-designer/api-designer-visualizer/package.json index e0a478a09f0..911a8da70de 100644 --- a/workspaces/api-designer/api-designer-visualizer/package.json +++ b/workspaces/api-designer/api-designer-visualizer/package.json @@ -26,7 +26,7 @@ "@wso2/font-wso2-vscode": "workspace:*", "react-dom": "18.2.0", "react-markdown": "~9.0.1", - "js-yaml": "~4.1.0", + "js-yaml": "~4.1.1", "process": "~0.11.10", "path": "~0.12.7", "@hookform/resolvers": "~3.3.4", diff --git a/workspaces/apk/apk-extension/package.json b/workspaces/apk/apk-extension/package.json index eabee0bcc55..cd3478bc546 100644 --- a/workspaces/apk/apk-extension/package.json +++ b/workspaces/apk/apk-extension/package.json @@ -65,11 +65,11 @@ "@typescript-eslint/parser": "~5.48.2", "@vscode/test-electron": "^2.3.2", "eslint": "^8.32.0", - "glob": "^8.1.0", + "glob": "^11.1.0", "mocha": "^10.2.0", "typescript": "5.8.3", - "vsce": "^2.15.0", - "copyfiles": "^2.4.1" + "copyfiles": "^2.4.1", + "@vscode/vsce": "^3.7.0" } } diff --git a/workspaces/apk/apk-extension/src/test/suite/index.ts b/workspaces/apk/apk-extension/src/test/suite/index.ts index c7fbb180b94..0532f893425 100644 --- a/workspaces/apk/apk-extension/src/test/suite/index.ts +++ b/workspaces/apk/apk-extension/src/test/suite/index.ts @@ -18,7 +18,7 @@ import * as path from 'path'; import * as Mocha from 'mocha'; -import * as glob from 'glob'; +import { glob } from 'glob'; export function run(): Promise { // Create the mocha test @@ -29,11 +29,9 @@ export function run(): Promise { const testsRoot = path.resolve(__dirname, '..'); - return new Promise((c, e) => { - glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { - if (err) { - return e(err); - } + return new Promise(async (c, e) => { + try { + const files = await glob('**/**.test.js', { cwd: testsRoot }); // Add files to the test suite files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); @@ -51,6 +49,8 @@ export function run(): Promise { console.error(err); e(err); } - }); + } catch (err) { + e(err); + } }); } diff --git a/workspaces/ballerina/ballerina-core/src/interfaces/bi.ts b/workspaces/ballerina/ballerina-core/src/interfaces/bi.ts index 2321edd939f..cda639857b3 100644 --- a/workspaces/ballerina/ballerina-core/src/interfaces/bi.ts +++ b/workspaces/ballerina/ballerina-core/src/interfaces/bi.ts @@ -256,21 +256,49 @@ export enum FUNCTION_TYPE { ALL = "all", } -export interface ProjectStructureResponse { +/** + * Represents the directory structure of artifacts in a project. + */ +export type ProjectDirectoryMap = { + [DIRECTORY_MAP.SERVICE]: ProjectStructureArtifactResponse[]; + [DIRECTORY_MAP.AUTOMATION]: ProjectStructureArtifactResponse[]; + [DIRECTORY_MAP.LISTENER]: ProjectStructureArtifactResponse[]; + [DIRECTORY_MAP.FUNCTION]: ProjectStructureArtifactResponse[]; + [DIRECTORY_MAP.CONNECTION]: ProjectStructureArtifactResponse[]; + [DIRECTORY_MAP.TYPE]: ProjectStructureArtifactResponse[]; + [DIRECTORY_MAP.CONFIGURABLE]: ProjectStructureArtifactResponse[]; + [DIRECTORY_MAP.DATA_MAPPER]: ProjectStructureArtifactResponse[]; + [DIRECTORY_MAP.NP_FUNCTION]: ProjectStructureArtifactResponse[]; + [DIRECTORY_MAP.AGENTS]: ProjectStructureArtifactResponse[]; + [DIRECTORY_MAP.LOCAL_CONNECTORS]: ProjectStructureArtifactResponse[]; +}; + +/** + * Represents a single project's structure with its artifacts organized by directory type. + */ +export interface ProjectStructure { projectName: string; - directoryMap: { - [DIRECTORY_MAP.SERVICE]: ProjectStructureArtifactResponse[]; - [DIRECTORY_MAP.AUTOMATION]: ProjectStructureArtifactResponse[]; - [DIRECTORY_MAP.LISTENER]: ProjectStructureArtifactResponse[]; - [DIRECTORY_MAP.FUNCTION]: ProjectStructureArtifactResponse[]; - [DIRECTORY_MAP.CONNECTION]: ProjectStructureArtifactResponse[]; - [DIRECTORY_MAP.TYPE]: ProjectStructureArtifactResponse[]; - [DIRECTORY_MAP.CONFIGURABLE]: ProjectStructureArtifactResponse[]; - [DIRECTORY_MAP.DATA_MAPPER]: ProjectStructureArtifactResponse[]; - [DIRECTORY_MAP.NP_FUNCTION]: ProjectStructureArtifactResponse[]; - [DIRECTORY_MAP.AGENTS]: ProjectStructureArtifactResponse[]; - [DIRECTORY_MAP.LOCAL_CONNECTORS]: ProjectStructureArtifactResponse[]; - }; + projectPath?: string; + projectTitle?: string; + directoryMap: ProjectDirectoryMap; +} + +/** + * Unified response structure for both single projects and multi-project workspaces. + * + * For single project: + * - workspaceName: undefined + * - projects: array with single project + * + * For workspace with multiple projects: + * - workspaceName: name of the workspace + * - projects: array with multiple projects + */ +export interface ProjectStructureResponse { + workspaceName?: string; + workspaceTitle?: string; + workspacePath?: string; + projects: ProjectStructure[]; } export interface ProjectStructureArtifactResponse { diff --git a/workspaces/ballerina/ballerina-core/src/interfaces/constants.ts b/workspaces/ballerina/ballerina-core/src/interfaces/constants.ts index b35efce4625..5c8388e5777 100644 --- a/workspaces/ballerina/ballerina-core/src/interfaces/constants.ts +++ b/workspaces/ballerina/ballerina-core/src/interfaces/constants.ts @@ -46,11 +46,12 @@ export const BI_COMMANDS = { VIEW_CONFIGURATION: 'BI.project-explorer.view-configuration', ADD_PROJECT: 'BI.project-explorer.add', SHOW_OVERVIEW: 'BI.project-explorer.overview', - SWITCH_PROJECT: 'BI.project-explorer.switch-project', ADD_DATA_MAPPER: 'BI.project-explorer.add-data-mapper', BI_EDIT_TEST_FUNCTION: 'BI.test.edit.function', BI_ADD_TEST_FUNCTION: 'BI.test.add.function', BI_EDIT_TEST_FUNCTION_DEF: 'BI.test.edit.function.def', ADD_NATURAL_FUNCTION: 'BI.project-explorer.add-natural-function', TOGGLE_TRACE_LOGS: 'BI.toggle.trace.logs', + ADD_INTEGRATION: 'BI.project-explorer.add-integration', + NOTIFY_PROJECT_EXPLORER: 'BI.project-explorer.notify', }; diff --git a/workspaces/ballerina/ballerina-core/src/interfaces/extended-lang-client.ts b/workspaces/ballerina/ballerina-core/src/interfaces/extended-lang-client.ts index c755aee3da2..5293d4ab909 100644 --- a/workspaces/ballerina/ballerina-core/src/interfaces/extended-lang-client.ts +++ b/workspaces/ballerina/ballerina-core/src/interfaces/extended-lang-client.ts @@ -1245,6 +1245,14 @@ export interface ImportIntegrationRequest { parameters?: Record; } +export interface ProjectMigrationResult { + projectName: string; + textEdits: { + [key: string]: string; + }; + report: string; +} + export interface ImportIntegrationResponse { error: string; textEdits: { @@ -1882,6 +1890,11 @@ export enum ARTIFACT_TYPE { Variables = "Variables" } +export enum PROJECT_KIND { + WORKSPACE_PROJECT = "WORKSPACE_PROJECT", + BUILD_PROJECT = "BUILD_PROJECT" +} + export interface Artifacts { [ARTIFACT_TYPE.Functions]: Record; [ARTIFACT_TYPE.Connections]: Record; @@ -1901,10 +1914,26 @@ export interface ArtifactsNotification { export interface ProjectArtifactsRequest { projectPath: string; } + export interface ProjectArtifacts { artifacts: Artifacts; } +export interface ProjectInfoRequest { + projectPath: string; +} + +export interface ProjectInfo { + projectKind: PROJECT_KIND; + name?: string; + title?: string; + orgName?: string; + org?: string; + version?: string; + projectPath?: string; + children?: ProjectInfo[]; +}; + // <------------ BI INTERFACES ---------> export interface BaseLangClientInterface { @@ -2002,5 +2031,6 @@ export interface ExtendedLangClientInterface extends BIInterface { updateStatusBar(): void; getDidOpenParams(): DidOpenParams; getProjectArtifacts(params: ProjectArtifactsRequest): Promise; + getProjectInfo(params: ProjectInfoRequest): Promise; openConfigToml(params: OpenConfigTomlRequest): Promise; } diff --git a/workspaces/ballerina/ballerina-core/src/rpc-types/ai-panel/interfaces.ts b/workspaces/ballerina/ballerina-core/src/rpc-types/ai-panel/interfaces.ts index 8173d0c0212..5e354ab38f1 100644 --- a/workspaces/ballerina/ballerina-core/src/rpc-types/ai-panel/interfaces.ts +++ b/workspaces/ballerina/ballerina-core/src/rpc-types/ai-panel/interfaces.ts @@ -54,7 +54,9 @@ export interface ProjectSource { projectModules?: ProjectModule[]; projectTests?: SourceFile[]; sourceFiles: SourceFile[]; - projectName: string; + projectName: string; // Actual package name from package's Ballerina.toml (e.g., "mypackage") + packagePath: string; // Relative path from workspace root (e.g., "package1", "packages/foo"), empty string for non-workspace + isActive: boolean; // True if this is the currently active package in the workspace } export interface ProjectModule { @@ -272,11 +274,12 @@ export interface DocumentationGeneratorIntermediaryState { } export interface PostProcessRequest { - assistant_response: string; + sourceFiles: SourceFile[]; + updatedFileNames: string[]; } export interface PostProcessResponse { - assistant_response: string; + sourceFiles: SourceFile[]; diagnostics: ProjectDiagnostics; } @@ -383,19 +386,17 @@ export interface GenerateCodeRequest { fileAttachmentContents: FileAttatchment[]; } -export interface SourceFiles { - filePath: string; - content: string; -} - export interface RepairParams { previousMessages: any[]; - assistantResponse: string; + assistantResponse?: string; // XML format with code blocks + sourceFiles?: SourceFile[]; // Optional: parsed from assistantResponse if not provided + updatedFileNames: string[]; diagnostics: DiagnosticEntry[]; } export interface RepairResponse { - repairResponse: string; + sourceFiles: SourceFile[]; + updatedFileNames: string[]; diagnostics: DiagnosticEntry[]; } diff --git a/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/index.ts b/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/index.ts index e81ed5535d3..5419755de17 100644 --- a/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/index.ts +++ b/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/index.ts @@ -119,7 +119,9 @@ import { BuildMode, DevantMetadata, GeneratedClientSaveResponse, - AddProjectToWorkspaceRequest + AddProjectToWorkspaceRequest, + DeleteProjectRequest, + OpenReadmeRequest } from "./interfaces"; export interface BIDiagramAPI { @@ -138,6 +140,7 @@ export interface BIDiagramAPI { getNodeTemplate: (params: BINodeTemplateRequest) => Promise; getAiSuggestions: (params: BIAiSuggestionsRequest) => Promise; createProject: (params: ProjectRequest) => void; + deleteProject: (params: DeleteProjectRequest) => void; addProjectToWorkspace: (params: AddProjectToWorkspaceRequest) => void; getWorkspaces: () => Promise; getProjectStructure: () => Promise; @@ -153,8 +156,8 @@ export interface BIDiagramAPI { deleteConfigVariableV2: (params: DeleteConfigVariableRequestV2) => Promise; getConfigVariableNodeTemplate: (params: GetConfigVariableNodeTemplateRequest) => Promise; getModuleNodes: () => Promise; - getReadmeContent: () => Promise; - openReadme: () => void; + getReadmeContent: (params: ReadmeContentRequest) => Promise; + openReadme: (params: OpenReadmeRequest) => void; renameIdentifier: (params: RenameIdentifierRequest) => Promise; deployProject: (params: DeploymentRequest) => Promise; openAIChat: (params: AIChatRequest) => void; diff --git a/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/interfaces.ts b/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/interfaces.ts index e0abdaed138..c3952f0920e 100644 --- a/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/interfaces.ts +++ b/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/interfaces.ts @@ -100,10 +100,16 @@ export interface RecordsInWorkspaceMentions { } export interface ReadmeContentRequest { - read: boolean + projectPath: string; + read?: boolean content?: string; } +export interface OpenReadmeRequest { + projectPath: string; + isWorkspaceReadme?: boolean; +} + export interface ReadmeContentResponse { content: string; } @@ -187,3 +193,7 @@ export interface DevantMetadata { export interface GeneratedClientSaveResponse { errorMessage?: string; } + +export interface DeleteProjectRequest { + projectPath: string; +} diff --git a/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/rpc-type.ts b/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/rpc-type.ts index 44caa41be76..2215ab4d577 100644 --- a/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/rpc-type.ts +++ b/workspaces/ballerina/ballerina-core/src/rpc-types/bi-diagram/rpc-type.ts @@ -121,7 +121,9 @@ import { BuildMode, DevantMetadata, GeneratedClientSaveResponse, - AddProjectToWorkspaceRequest + AddProjectToWorkspaceRequest, + DeleteProjectRequest, + OpenReadmeRequest } from "./interfaces"; import { RequestType, NotificationType } from "vscode-messenger-common"; @@ -141,6 +143,7 @@ export const getEnclosedFunction: RequestType = { method: `${_preFix}/getNodeTemplate` }; export const getAiSuggestions: RequestType = { method: `${_preFix}/getAiSuggestions` }; export const createProject: NotificationType = { method: `${_preFix}/createProject` }; +export const deleteProject: NotificationType = { method: `${_preFix}/deleteProject` }; export const addProjectToWorkspace: NotificationType = { method: `${_preFix}/addProjectToWorkspace` }; export const getWorkspaces: RequestType = { method: `${_preFix}/getWorkspaces` }; export const getProjectStructure: RequestType = { method: `${_preFix}/getProjectStructure` }; @@ -156,8 +159,8 @@ export const updateConfigVariablesV2: RequestType = { method: `${_preFix}/deleteConfigVariableV2` }; export const getConfigVariableNodeTemplate: RequestType = { method: `${_preFix}/getConfigVariableNodeTemplate` }; export const getModuleNodes: RequestType = { method: `${_preFix}/getModuleNodes` }; -export const getReadmeContent: RequestType = { method: `${_preFix}/getReadmeContent` }; -export const openReadme: NotificationType = { method: `${_preFix}/openReadme` }; +export const getReadmeContent: RequestType = { method: `${_preFix}/getReadmeContent` }; +export const openReadme: NotificationType = { method: `${_preFix}/openReadme` }; export const renameIdentifier: NotificationType = { method: `${_preFix}/renameIdentifier` }; export const deployProject: RequestType = { method: `${_preFix}/deployProject` }; export const openAIChat: NotificationType = { method: `${_preFix}/openAIChat` }; diff --git a/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/index.ts b/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/index.ts index 520a5cc3301..2d3e1ef6f84 100644 --- a/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/index.ts +++ b/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/index.ts @@ -17,13 +17,15 @@ */ import { ImportIntegrationResponse } from "../../interfaces/extended-lang-client"; -import { GetMigrationToolsResponse, ImportIntegrationRPCRequest, MigrateRequest, MigrationToolPullRequest, OpenMigrationReportRequest, SaveMigrationReportRequest } from "./interfaces"; +import { GetMigrationToolsResponse, ImportIntegrationRPCRequest, MigrateRequest, MigrationToolPullRequest, OpenMigrationReportRequest, OpenSubProjectReportRequest, SaveMigrationReportRequest, StoreSubProjectReportsRequest } from "./interfaces"; export interface MigrateIntegrationAPI { getMigrationTools: () => Promise; pullMigrationTool: (params: MigrationToolPullRequest) => void; importIntegration: (params: ImportIntegrationRPCRequest) => Promise; openMigrationReport: (params: OpenMigrationReportRequest) => void; + openSubProjectReport: (params: OpenSubProjectReportRequest) => void; + storeSubProjectReports: (params: StoreSubProjectReportsRequest) => void; saveMigrationReport: (params: SaveMigrationReportRequest) => void; migrateProject: (params: MigrateRequest) => void; } diff --git a/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/interfaces.ts b/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/interfaces.ts index 01af97bd31b..5656071c9bd 100644 --- a/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/interfaces.ts +++ b/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/interfaces.ts @@ -16,6 +16,7 @@ * under the License. */ +import { ProjectMigrationResult } from "../../interfaces/extended-lang-client"; import { ProjectRequest } from "../bi-diagram/interfaces"; export interface MigrationTool { @@ -59,6 +60,9 @@ export interface OpenMigrationReportRequest { export interface SaveMigrationReportRequest { reportContent: string; defaultFileName: string; + projectReports?: { + [projectName: string]: string; + }; } export interface MigrateRequest { @@ -66,4 +70,13 @@ export interface MigrateRequest { textEdits: { [key: string]: string; }; + projects?: ProjectMigrationResult[]; +} + +export interface OpenSubProjectReportRequest { + projectName: string; +} + +export interface StoreSubProjectReportsRequest { + reports: { [projectName: string]: string }; } diff --git a/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/rpc-type.ts b/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/rpc-type.ts index a328ab47652..ebead0af2b6 100644 --- a/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/rpc-type.ts +++ b/workspaces/ballerina/ballerina-core/src/rpc-types/migrate-integration/rpc-type.ts @@ -18,7 +18,7 @@ * THIS FILE INCLUDES AUTO GENERATED CODE */ import { ImportIntegrationResponse } from "../../interfaces/extended-lang-client"; -import { GetMigrationToolsResponse, ImportIntegrationRPCRequest, MigrateRequest, MigrationToolPullRequest, OpenMigrationReportRequest, SaveMigrationReportRequest } from "./interfaces"; +import { GetMigrationToolsResponse, ImportIntegrationRPCRequest, MigrateRequest, MigrationToolPullRequest, OpenMigrationReportRequest, OpenSubProjectReportRequest, SaveMigrationReportRequest, StoreSubProjectReportsRequest } from "./interfaces"; import { RequestType, NotificationType } from "vscode-messenger-common"; const _preFix = "migrate-integration"; @@ -26,5 +26,7 @@ export const getMigrationTools: RequestType = { export const pullMigrationTool: NotificationType = { method: `${_preFix}/pullMigrationTool` }; export const importIntegration: RequestType = { method: `${_preFix}/importIntegration` }; export const openMigrationReport: NotificationType = { method: `${_preFix}/openMigrationReport` }; +export const openSubProjectReport: NotificationType = { method: `${_preFix}/openSubProjectReport` }; +export const storeSubProjectReports: NotificationType = { method: `${_preFix}/storeSubProjectReports` }; export const saveMigrationReport: NotificationType = { method: `${_preFix}/saveMigrationReport` }; export const migrateProject: NotificationType = { method: `${_preFix}/migrateProject` }; diff --git a/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/index.ts b/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/index.ts index 8bd924bbbc6..6b3d27ba160 100644 --- a/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/index.ts +++ b/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/index.ts @@ -19,7 +19,7 @@ import { HistoryEntry } from "../../history"; import { ProjectStructureArtifactResponse, UpdatedArtifactsResponse } from "../../interfaces/bi"; import { ColorThemeKind } from "../../state-machine-types"; -import { AddToUndoStackRequest, OpenViewRequest, UndoRedoStateResponse } from "./interfaces"; +import { AddToUndoStackRequest, JoinProjectPathRequest, JoinProjectPathResponse, OpenViewRequest, UndoRedoStateResponse } from "./interfaces"; export interface VisualizerAPI { openView: (params: OpenViewRequest) => void; @@ -32,7 +32,7 @@ export interface VisualizerAPI { redo: (count: number) => Promise; addToUndoStack: (params: AddToUndoStackRequest) => void; undoRedoState: () => Promise; - joinProjectPath: (segments: string | string[]) => Promise; + joinProjectPath: (params: JoinProjectPathRequest) => Promise; getThemeKind: () => Promise; updateCurrentArtifactLocation: (params: UpdatedArtifactsResponse) => Promise; } diff --git a/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/interfaces.ts b/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/interfaces.ts index 9081a3a1509..dd0301a1fec 100644 --- a/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/interfaces.ts +++ b/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/interfaces.ts @@ -16,6 +16,7 @@ * under the License. */ +import { CodeData } from "../../interfaces/bi"; import { EVENT_TYPE, PopupVisualizerLocation, VisualizerLocation } from "../../state-machine-types"; export interface UpdateUndoRedoMangerRequest { @@ -48,3 +49,13 @@ export interface AddToUndoStackRequest { source: string; description?: string; } + +export interface JoinProjectPathRequest { + segments: string | string[]; + codeData?: CodeData; +} + +export interface JoinProjectPathResponse { + filePath: string; + projectPath: string; +} diff --git a/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/rpc-type.ts b/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/rpc-type.ts index 3347c1363d6..69a0eb6a1b5 100644 --- a/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/rpc-type.ts +++ b/workspaces/ballerina/ballerina-core/src/rpc-types/visualizer/rpc-type.ts @@ -20,7 +20,7 @@ import { HistoryEntry } from "../../history"; import { ProjectStructureArtifactResponse, UpdatedArtifactsResponse } from "../../interfaces/bi"; import { ColorThemeKind } from "../../state-machine-types"; -import { AddToUndoStackRequest, OpenViewRequest, UndoRedoStateResponse } from "./interfaces"; +import { AddToUndoStackRequest, JoinProjectPathRequest, JoinProjectPathResponse, OpenViewRequest, UndoRedoStateResponse } from "./interfaces"; import { NotificationType, RequestType } from "vscode-messenger-common"; const _preFix = "visualizer"; @@ -34,6 +34,6 @@ export const undo: RequestType = { method: `${_preFix}/undo` }; export const redo: RequestType = { method: `${_preFix}/redo` }; export const addToUndoStack: NotificationType = { method: `${_preFix}/addToUndoStack` }; export const undoRedoState: RequestType = { method: `${_preFix}/undoRedoState` }; -export const joinProjectPath: RequestType = { method: `${_preFix}/joinProjectPath` }; +export const joinProjectPath: RequestType = { method: `${_preFix}/joinProjectPath` }; export const getThemeKind: RequestType = { method: `${_preFix}/getThemeKind` }; export const updateCurrentArtifactLocation: RequestType = { method: `${_preFix}/updateCurrentArtifactLocation` }; diff --git a/workspaces/ballerina/ballerina-core/src/state-machine-types.ts b/workspaces/ballerina/ballerina-core/src/state-machine-types.ts index 2b44f15d986..89912db8444 100644 --- a/workspaces/ballerina/ballerina-core/src/state-machine-types.ts +++ b/workspaces/ballerina/ballerina-core/src/state-machine-types.ts @@ -20,7 +20,7 @@ import { NotificationType, RequestType } from "vscode-messenger-common"; import { NodePosition, STNode } from "@wso2/syntax-tree"; import { Command } from "./interfaces/ai-panel"; import { LinePosition } from "./interfaces/common"; -import { Type } from "./interfaces/extended-lang-client"; +import { ProjectInfo, ProjectMigrationResult, Type } from "./interfaces/extended-lang-client"; import { CodeData, DIRECTORY_MAP, ProjectStructureArtifactResponse, ProjectStructureResponse } from "./interfaces/bi"; import { DiagnosticEntry, TestGeneratorIntermediaryState, DocumentationGeneratorIntermediaryState, SourceFile } from "./rpc-types/ai-panel/interfaces"; @@ -63,7 +63,8 @@ export enum SCOPE { export type VoidCommands = "OPEN_LOW_CODE" | "OPEN_PROJECT" | "CREATE_PROJECT"; export enum MACHINE_VIEW { - Overview = "Overview", + PackageOverview = "Overview", + WorkspaceOverview = "Workspace Overview", BallerinaUpdateView = "Ballerina Update View", SequenceDiagram = "Sequence Diagram", ServiceDesigner = "Service Designer", @@ -123,6 +124,7 @@ export interface VisualizerLocation { documentUri?: string; projectPath?: string; workspacePath?: string; + projectInfo?: ProjectInfo; identifier?: string; parentIdentifier?: string; artifactType?: DIRECTORY_MAP; @@ -279,9 +281,11 @@ export const onDownloadProgress: NotificationType = { method: export const onChatNotify: NotificationType = { method: 'onChatNotify' }; export const onMigrationToolLogs: NotificationType = { method: 'onMigrationToolLogs' }; export const onMigrationToolStateChanged: NotificationType = { method: 'onMigrationToolStateChanged' }; +export const onMigratedProject: NotificationType = { method: 'onMigratedProject' }; export const projectContentUpdated: NotificationType = { method: 'projectContentUpdated' }; export const getVisualizerLocation: RequestType = { method: 'getVisualizerLocation' }; export const webviewReady: NotificationType = { method: `webviewReady` }; +export const dependencyPullProgress: NotificationType = { method: 'dependencyPullProgress' }; // Artifact updated request and notification export const onArtifactUpdatedNotification: NotificationType = { method: 'onArtifactUpdatedNotification' }; diff --git a/workspaces/ballerina/ballerina-extension/CHANGELOG.md b/workspaces/ballerina/ballerina-extension/CHANGELOG.md index 8d3ceb71062..d12251ea60c 100644 --- a/workspaces/ballerina/ballerina-extension/CHANGELOG.md +++ b/workspaces/ballerina/ballerina-extension/CHANGELOG.md @@ -4,6 +4,30 @@ All notable changes to the **Ballerina** extension will be documented in this fi The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project adheres to [Semantic Versioning](https://semver.org/). + +## [5.6.2](https://github.com/wso2/vscode-extensions/compare/ballerina-integrator-1.5.1...ballerina-integrator-1.5.2) - 2025-11-18 + +### Changed + +- **Workspace & Project Management** — Improved workspace management with a new Workspace Overview, expanded tree view support, and multi-project migration capabilities. Integration management is enhanced, allowing additions and deletions directly from the overview. The build command and language server integration have also been updated for better multi-project support. +- **Editor & Configuration** — Updated the expression editor with an expanded view for a better editing experience. The service and record configuration views have been improved with better styling, diagnostics, and form support. Configuration editing is enhanced with a new configuration object editor, and the dependency pull flow now provides improved visual feedback. +- **AI Features** — Enhanced the AI Data Mapper to support multiple file uploads and updated the AI code generator for compatibility with Ballerina workspaces. +- **Editor & UX** — Improved the user experience for the expanded expression editor and component diagram. Refactored floating button styles in the expression editor for better theming, and improved chip styling for light themes. +- **Project & Configuration** — Enhanced feature compatibility validation across different Ballerina versions. Updated the package configurable view for better configuration management. + +### Fixed + +- **Expression Editor & Configuration Views** — Resolved multiple issues in the expression editor, including problems with completions, styles, and value synchronization in the record config view. Fixed popup stacking order and button alignment in configuration popups. +- **General UI & Editor** — Addressed UI glitches, including a helper pane overflow issue, incorrect tree item highlighting with diagnostics, and an infinite re-render bug in the print form. Fixed a language server project loading issue in workspace setups. +- **Security** — Updated dependencies to address security vulnerabilities (`CVE-2025-64718`, `CVE-2025-64756`). + +## [5.6.1](https://github.com/wso2/vscode-extensions/compare/ballerina-integrator-1.5.0...ballerina-integrator-1.5.1) - 2025-11-12 + +### Fixed + +- **Ballerina Version Compatibility** — The "New Project" and "Natural Programming functions" features are now only shown for Ballerina versions 2201.13.0 and above. + + ## [5.6.0](https://github.com/wso2/vscode-extensions/compare/ballerina-integrator-1.4.0...ballerina-integrator-1.5.0) - 2025-11-11 ### Added diff --git a/workspaces/ballerina/ballerina-extension/grammar/ballerina-grammar b/workspaces/ballerina/ballerina-extension/grammar/ballerina-grammar index eb62358724d..10325fc5436 160000 --- a/workspaces/ballerina/ballerina-extension/grammar/ballerina-grammar +++ b/workspaces/ballerina/ballerina-extension/grammar/ballerina-grammar @@ -1 +1 @@ -Subproject commit eb62358724deaad784458ae1d5ec33c4d164e483 +Subproject commit 10325fc5436a87606407ba68bf668bcd59dc180d diff --git a/workspaces/ballerina/ballerina-extension/package.json b/workspaces/ballerina/ballerina-extension/package.json index 526952b3fea..b7128735175 100644 --- a/workspaces/ballerina/ballerina-extension/package.json +++ b/workspaces/ballerina/ballerina-extension/package.json @@ -2,7 +2,7 @@ "name": "ballerina", "displayName": "Ballerina", "description": "Ballerina Language support, debugging, graphical visualization, AI-based data-mapping and many more.", - "version": "5.6.1", + "version": "5.6.2", "publisher": "wso2", "icon": "resources/images/ballerina.png", "homepage": "https://wso2.com/ballerina/vscode/docs", @@ -26,7 +26,6 @@ "activationEvents": [ "onStartupFinished", "onLanguage:ballerina", - "onCommand:ballerina.showExamples", "workspaceContains:**/Ballerina.toml", "onNotebook:ballerina-notebook", "onUri" @@ -348,11 +347,6 @@ } ], "commands": [ - { - "command": "ballerina.showExamples", - "title": "Show Examples", - "category": "Ballerina" - }, { "command": "ballerina.project.build", "title": "Build", @@ -680,19 +674,13 @@ "group": "navigation", "category": "BI" }, - { - "command": "BI.project-explorer.switch-project", - "title": "Switch Project", - "icon": "$(distro-switch-project)", - "group": "navigation", - "category": "BI" - }, { "command": "BI.project-explorer.add", "title": "Add Project", "icon": "$(add)", "group": "navigation", - "category": "BI" + "category": "BI", + "when": "ballerina.bi.workspaceSupported" }, { "command": "BI.project-explorer.overview", @@ -1027,21 +1015,21 @@ "description": "design-view", "default": { "fontPath": "./resources/font-wso2-vscode/dist/wso2-vscode.woff", - "fontCharacter": "\\f19a" + "fontCharacter": "\\f16e" } }, "distro-start": { "description": "start", "default": { "fontPath": "./resources/font-wso2-vscode/dist/wso2-vscode.woff", - "fontCharacter": "\\f210" + "fontCharacter": "\\f11a" } }, "distro-debug": { "description": "debug", "default": { "fontPath": "./resources/font-wso2-vscode/dist/wso2-vscode.woff", - "fontCharacter": "\\f195" + "fontCharacter": "\\f171" } }, "distro-source-view": { @@ -1055,7 +1043,7 @@ "description": "persist-diagram", "default": { "fontPath": "./resources/font-wso2-vscode/dist/wso2-vscode.woff", - "fontCharacter": "\\f1eb" + "fontCharacter": "\\f133" } }, "distro-cached-rounded": { @@ -1192,6 +1180,7 @@ "copyVSIX": "copyfiles *.vsix ./vsix", "copyVSIXToRoot": "copyfiles -f ./vsix/*.vsix ../../..", "download-ls": "node scripts/download-ls.js", + "download-ls:prerelease": "node scripts/download-ls.js --prerelease --replace", "build": "pnpm run compile && pnpm run lint && pnpm run postbuild", "rebuild": "pnpm run clean && pnpm run compile && pnpm run postbuild", "postbuild": "if [ \"$isPreRelease\" = \"true\" ]; then pnpm run download-ls --prerelease; else pnpm run download-ls; fi && pnpm run copyFonts && pnpm run copyJSLibs && pnpm run package && pnpm run copyVSIX", @@ -1202,7 +1191,7 @@ "@ai-sdk/anthropic": "^2.0.20", "@types/lodash": "^4.14.200", "@vscode/test-electron": "^2.5.2", - "@vscode/vsce": "^2.22.0", + "@vscode/vsce": "^3.7.0", "@wso2/ballerina-core": "workspace:*", "@wso2/ballerina-visualizer": "workspace:*", "@wso2/trace-visualizer": "workspace:*", @@ -1214,7 +1203,7 @@ "del-cli": "^5.1.0", "dotenv": "~16.5.0", "file-uri-to-path": "^2.0.0", - "glob": "^7.2.3", + "glob": "^11.1.0", "handlebars": "~4.7.8", "jwt-decode": "^4.0.0", "lodash": "^4.17.21", @@ -1256,7 +1245,7 @@ "decache": "^4.6.2", "express": "^4.18.2", "istanbul": "^0.4.5", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "jwt-decode": "^3.1.2", "keytar": "^7.9.0", "kill-port": "2.0.1", @@ -1274,7 +1263,6 @@ "vscode-messenger": "^0.4.4", "webpack": "^5.89.0", "webpack-cli": "^6.0.1", - "webpack-merge-and-include-globally": "^2.3.4", "yarn": "^1.22.19" }, "extensionPack": [ diff --git a/workspaces/ballerina/ballerina-extension/scripts/download-ls.js b/workspaces/ballerina/ballerina-extension/scripts/download-ls.js index aff1cd55daa..71a6ba0d39f 100644 --- a/workspaces/ballerina/ballerina-extension/scripts/download-ls.js +++ b/workspaces/ballerina/ballerina-extension/scripts/download-ls.js @@ -10,6 +10,7 @@ const GITHUB_REPO_URL = 'https://api.github.com/repos/ballerina-platform/balleri const args = process.argv.slice(2); const usePrerelease = args.includes('--prerelease') || process.env.isPreRelease === 'true'; +const forceReplace = args.includes('--replace'); function checkExistingJar() { try { @@ -177,11 +178,16 @@ async function getLatestRelease(usePrerelease) { async function main() { try { - if (checkExistingJar()) { + if (!forceReplace && checkExistingJar()) { process.exit(0); } - console.log(`Downloading Ballerina language server${usePrerelease ? ' (prerelease)' : ''}...`); + console.log(`Downloading Ballerina language server${usePrerelease ? ' (prerelease)' : ''}${forceReplace ? ' (force replace)' : ''}...`); + + if (forceReplace && fs.existsSync(LS_DIR)) { + console.log('Force replace enabled: clearing existing language server directory...'); + fs.rmSync(LS_DIR, { recursive: true, force: true }); + } if (!fs.existsSync(LS_DIR)) { fs.mkdirSync(LS_DIR, { recursive: true }); diff --git a/workspaces/ballerina/ballerina-extension/src/RPCLayer.ts b/workspaces/ballerina/ballerina-extension/src/RPCLayer.ts index 47fccac94c3..2550a32a896 100644 --- a/workspaces/ballerina/ballerina-extension/src/RPCLayer.ts +++ b/workspaces/ballerina/ballerina-extension/src/RPCLayer.ts @@ -140,7 +140,7 @@ async function getContext(): Promise { metadata: { isBISupported: context.isBISupported, haveLS: StateMachine.langClient() && true, - recordFilePath: path.join(context.projectPath, "types.bal"), + recordFilePath: context.projectPath ? path.join(context.projectPath, "types.bal") : undefined, enableSequenceDiagram: extension.ballerinaExtInstance.enableSequenceDiagramView(), target: context.metadata?.target }, diff --git a/workspaces/ballerina/ballerina-extension/src/core/extended-language-client.ts b/workspaces/ballerina/ballerina-extension/src/core/extended-language-client.ts index 69bfad802fa..935ccdded7f 100644 --- a/workspaces/ballerina/ballerina-extension/src/core/extended-language-client.ts +++ b/workspaces/ballerina/ballerina-extension/src/core/extended-language-client.ts @@ -268,7 +268,11 @@ import { BISearchNodesRequest, BISearchNodesResponse, ExpressionTokensRequest, - ExpressionTokensResponse + ExpressionTokensResponse, + ProjectInfoRequest, + ProjectInfo, + onMigratedProject, + ProjectMigrationResult } from "@wso2/ballerina-core"; import { BallerinaExtension } from "./index"; import { debug, handlePullModuleProgress } from "../utils"; @@ -449,6 +453,7 @@ enum EXTENDED_APIS { OPEN_API_GENERATE_CLIENT = 'openAPIService/genClient', OPEN_API_GENERATED_MODULES = 'openAPIService/getModules', OPEN_API_CLIENT_DELETE = 'openAPIService/deleteModule', + GET_PROJECT_INFO = 'designModelService/projectInfo', GET_ARTIFACTS = 'designModelService/artifacts', PUBLISH_ARTIFACTS = 'designModelService/publishArtifacts', COPILOT_ALL_LIBRARIES = 'copilotLibraryManager/getLibrariesList', @@ -458,6 +463,7 @@ enum EXTENDED_APIS { MULE_TO_BI = 'projectService/importMule', MIGRATION_TOOL_STATE = 'projectService/stateCallback', MIGRATION_TOOL_LOG = 'projectService/logCallback', + PUSH_MIGRATED_PROJECT = 'projectService/pushMigratedProject' } enum EXTENDED_APIS_ORG { @@ -580,12 +586,28 @@ export class ExtendedLangClient extends LanguageClient implements ExtendedLangCl console.error("Error in MIGRATION_TOOL_LOG handler:", error); } }); + + this.onNotification(EXTENDED_APIS.PUSH_MIGRATED_PROJECT, async (res: ProjectMigrationResult) => { + try { + RPCLayer._messenger.sendNotification( + onMigratedProject, + { type: "webview", webviewType: VisualizerWebview.viewType }, + res + ); + } catch (error) { + console.error("Error in PUSH_MIGRATED_PROJECT handler:", error); + } + }); } async getProjectArtifacts(params: ProjectArtifactsRequest): Promise { return this.sendRequest(EXTENDED_APIS.GET_ARTIFACTS, params); } + async getProjectInfo(params: ProjectInfoRequest): Promise { + return this.sendRequest(EXTENDED_APIS.GET_PROJECT_INFO, params); + } + async definition(params: DefinitionParams): Promise { return this.sendRequest(VSCODE_APIS.DEFINITION, params); } diff --git a/workspaces/ballerina/ballerina-extension/src/core/extension.ts b/workspaces/ballerina/ballerina-extension/src/core/extension.ts index a137d0b0189..e63257c23b4 100644 --- a/workspaces/ballerina/ballerina-extension/src/core/extension.ts +++ b/workspaces/ballerina/ballerina-extension/src/core/extension.ts @@ -43,7 +43,8 @@ import { isSupportedVersion, VERSION, isSupportedSLVersion, - createVersionNumber + createVersionNumber, + checkIsBallerinaWorkspace } from '../utils'; import { AssertionError } from "assert"; import { @@ -457,7 +458,23 @@ export class BallerinaExtension { try { this.biSupported = isSupportedSLVersion(this, createVersionNumber(2201, 12, 3)); // Minimum supported version for BI: 2201.12.3 this.isNPSupported = isSupportedSLVersion(this, createVersionNumber(2201, 13, 0)) && this.enabledExperimentalFeatures(); // Minimum supported requirements for NP: 2201.13.0 + this.isWorkspaceSupported = isSupportedSLVersion(this, createVersionNumber(2201, 13, 0)); // Minimum supported requirements for Workspace: 2201.13.0 + const workspaceFolders = workspace.workspaceFolders; + + if (workspaceFolders && workspaceFolders.length === 1) { + const isBalWorkspace = await checkIsBallerinaWorkspace(workspaceFolders[0].uri); + if (isBalWorkspace && !this.isWorkspaceSupported) { + window.showInformationMessage( + 'Your current ballerina distribution is not supported for workspaces. Please update to version 2201.13.0 or above to use workspaces. You will need to reload VS Code after updating.', + 'Update' + ).then(selection => { + if (selection === 'Update') { + commands.executeCommand('ballerina.update-ballerina-visually'); + } + }); + } + } debug(`[INIT] Feature support calculated - BI: ${this.biSupported}, NP: ${this.isNPSupported}, Workspace: ${this.isWorkspaceSupported}`); } catch (error) { debug(`[INIT] Error calculating feature support: ${error}`); diff --git a/workspaces/ballerina/ballerina-extension/src/extension.ts b/workspaces/ballerina/ballerina-extension/src/extension.ts index 491b256b5e8..e2e72faca83 100644 --- a/workspaces/ballerina/ballerina-extension/src/extension.ts +++ b/workspaces/ballerina/ballerina-extension/src/extension.ts @@ -154,8 +154,9 @@ export async function activateBallerina(): Promise { activateEditorSupport(ballerinaExtInstance); // <------------ MAIN FEATURES -----------> - // Enable Ballerina by examples - activateBBE(ballerinaExtInstance); + // TODO: Enable Ballerina by examples once the samples are available + // https://github.com/wso2/product-ballerina-integrator/issues/1967 + // activateBBE(ballerinaExtInstance); //Enable BI Feature activateBIFeatures(ballerinaExtInstance); diff --git a/workspaces/ballerina/ballerina-extension/src/features/ai/dataMapping.ts b/workspaces/ballerina/ballerina-extension/src/features/ai/dataMapping.ts index 725c66ce8e3..e7ff27cd30b 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/ai/dataMapping.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/ai/dataMapping.ts @@ -241,7 +241,7 @@ export async function repairCodeWithLLM(codeRepairRequest: repairCodeRequest): P } } - const projectSourceResponse = { sourceFiles: repairedSourceFiles, projectName: "" }; + const projectSourceResponse = { sourceFiles: repairedSourceFiles, projectName: "", packagePath: "", isActive: true }; return projectSourceResponse; } diff --git a/workspaces/ballerina/ballerina-extension/src/features/ai/service/code/code.ts b/workspaces/ballerina/ballerina-extension/src/features/ai/service/code/code.ts index d9adeb7bb7d..c066a93d407 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/ai/service/code/code.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/ai/service/code/code.ts @@ -21,9 +21,13 @@ import { getLibraryProviderTool } from "../libs/libraryProviderTool"; import { getRewrittenPrompt, populateHistory, - transformProjectSource, + flattenProjectToFiles, getErrorMessage, extractResourceDocumentContent, + parseSourceFilesFromXML, + buildFilePaths, + buildPackageContext, + formatFileUploadContents, } from "../utils"; import { LANGLIBS } from "./../libs/langlibs"; import { Library } from "./../libs/libs_types"; @@ -36,10 +40,10 @@ import { ProjectSource, RepairParams, RepairResponse, - SourceFiles, + SourceFile, Command, } from "@wso2/ballerina-core"; -import { getProjectFromResponse, getProjectSource, postProcess } from "../../../../rpc-managers/ai-panel/rpc-manager"; +import { getProjectSource, postProcess } from "../../../../rpc-managers/ai-panel/rpc-manager"; import { CopilotEventHandler, createWebviewEventHandler } from "../event"; import { AIPanelAbortController } from "../../../../../src/rpc-managers/ai-panel/utils"; import { getRequirementAnalysisCodeGenPrefix, getRequirementAnalysisTestGenPrefix } from "./np_prompts"; @@ -65,12 +69,13 @@ function appendFinalMessages( // Core code generation function that emits events export async function generateCodeCore(params: GenerateCodeRequest, eventHandler: CopilotEventHandler): Promise { - const project: ProjectSource = await getProjectSource(params.operationType); - const packageName = project.projectName; - const sourceFiles: SourceFiles[] = transformProjectSource(project); - let updatedSourceFiles: SourceFiles[] = [...sourceFiles]; + const projects: ProjectSource[] = await getProjectSource(params.operationType); + const activeProject = projects.find(p => p.isActive) || projects[0]; + const packageName = activeProject.projectName; + const sourceFiles: SourceFile[] = flattenProjectToFiles(projects); + let updatedSourceFiles: SourceFile[] = [...sourceFiles]; let updatedFileNames: string[] = []; - const prompt = getRewrittenPrompt(params, sourceFiles); + const prompt = getRewrittenPrompt(params, projects); const historyMessages = populateHistory(params.chatHistory); const cacheOptions = await getProviderCacheControl(); @@ -84,7 +89,7 @@ export async function generateCodeCore(params: GenerateCodeRequest, eventHandler const allMessages: ModelMessage[] = [ { role: "system", - content: getSystemPromptPrefix(sourceFiles, params.operationType), + content: getSystemPromptPrefix(projects, params.operationType), }, { role: "system", @@ -96,7 +101,7 @@ export async function generateCodeCore(params: GenerateCodeRequest, eventHandler role: "user", content: getUserPrompt( prompt, - sourceFiles, + projects, params.fileAttachmentContents, packageName, params.operationType @@ -126,7 +131,6 @@ export async function generateCodeCore(params: GenerateCodeRequest, eventHandler eventHandler({ type: "start" }); let assistantResponse: string = ""; - let finalResponse: string = ""; let selectedLibraries: string[] = []; let codeGenStart = false; const tempCodeSegment = '\n```ballerina\n// Code Generation\n```\n'; @@ -222,19 +226,17 @@ export async function generateCodeCore(params: GenerateCodeRequest, eventHandler const { messages: finalMessages } = await response; appendFinalMessages(allMessages, finalMessages, cacheOptions); - let codeSegment = getCodeBlocks(updatedSourceFiles, updatedFileNames); const postProcessedResp: PostProcessResponse = await postProcess({ - assistant_response: codeSegment, + sourceFiles: updatedSourceFiles, + updatedFileNames: updatedFileNames, }); - codeSegment = postProcessedResp.assistant_response; + updatedSourceFiles = postProcessedResp.sourceFiles; let diagnostics: DiagnosticEntry[] = postProcessedResp.diagnostics.diagnostics; const MAX_REPAIR_ATTEMPTS = 3; let repair_attempt = 0; - let diagnosticFixResp = codeSegment; //TODO: Check if we need this variable while ( - hasCodeBlocks(diagnosticFixResp) && diagnostics.length > 0 && repair_attempt < MAX_REPAIR_ATTEMPTS ) { @@ -244,20 +246,24 @@ export async function generateCodeCore(params: GenerateCodeRequest, eventHandler const repairedResponse: RepairResponse = await repairCode( { previousMessages: allMessages, - assistantResponse: diagnosticFixResp, + sourceFiles: updatedSourceFiles, + updatedFileNames: updatedFileNames, diagnostics: diagnostics, }, libraryDescriptions, - updatedSourceFiles, eventHandler ); - diagnosticFixResp = repairedResponse.repairResponse; + updatedSourceFiles = repairedResponse.sourceFiles; + updatedFileNames = repairedResponse.updatedFileNames; diagnostics = repairedResponse.diagnostics; repair_attempt++; } + // Generate final code blocks from repaired source files + const finalCodeSegment = getCodeBlocks(updatedSourceFiles, updatedFileNames); + // Update the final assistant response with the final code blocks - assistantResponse = assistantResponse.replace(tempCodeSegment, diagnosticFixResp); + assistantResponse = assistantResponse.replace(tempCodeSegment, finalCodeSegment); console.log("Final Diagnostics ", diagnostics); codeGenStart = false; @@ -271,7 +277,7 @@ export async function generateCodeCore(params: GenerateCodeRequest, eventHandler } } -function getCodeBlocks(updatedSourceFiles: SourceFiles[], updatedFileNames: string[]) { +function getCodeBlocks(updatedSourceFiles: SourceFile[], updatedFileNames: string[]) { const codeBlocks: string[] = []; for (const fileName of updatedFileNames) { @@ -301,12 +307,14 @@ export async function generateCode(params: GenerateCodeRequest): Promise { } } -function getSystemPromptPrefix(sourceFiles: SourceFiles[], op: OperationType): string { +function getSystemPromptPrefix(projects: ProjectSource[], op: OperationType): string { const basePrompt = `You are an expert assistant specializing in Ballerina code generation. Your should ONLY answer Ballerina related queries.`; if (op === "CODE_FOR_USER_REQUIREMENT") { + const sourceFiles = flattenProjectToFiles(projects); return getRequirementAnalysisCodeGenPrefix(extractResourceDocumentContent(sourceFiles)); } else if (op === "TESTS_FOR_USER_REQUIREMENT") { + const sourceFiles = flattenProjectToFiles(projects); return getRequirementAnalysisTestGenPrefix(extractResourceDocumentContent(sourceFiles)); } return basePrompt; @@ -381,22 +389,13 @@ Once the explanation is finished, make the necessary File modifications. Avoid a function getUserPrompt( usecase: string, - existingCode: SourceFiles[], + projects: ProjectSource[], fileUploadContents: FileAttatchment[], packageName: string, op: OperationType ): string { - let fileInstructions = ""; - if (fileUploadContents.length > 0) { - fileInstructions = `4. File Upload Contents. : Contents of the file which the user uploaded as additional information for the query. - -${fileUploadContents - .map( - (file) => `File Name: ${file.fileName} -Content: ${file.content}` - ) - .join("\n")}`; - } + const fileInstructions = formatFileUploadContents(fileUploadContents); + const packageContext = buildPackageContext(projects, packageName); return `QUERY: The query you need to answer. @@ -405,10 +404,10 @@ ${usecase} Existing Code: Users existing code. -${stringifyExistingCode(existingCode, op)} +${stringifyExistingCode(projects, op)} -Current Package name: ${packageName} +${packageContext} ${fileInstructions} @@ -419,6 +418,12 @@ export async function triggerGeneratedCodeRepair(params: RepairParams): Promise< // add null as the command since this is a repair operation is not a command const eventHandler = createWebviewEventHandler(undefined); try { + // Parse sourceFiles from assistantResponse XML if provided + if (params.assistantResponse && !params.sourceFiles) { + params.sourceFiles = parseSourceFilesFromXML(params.assistantResponse); + params.updatedFileNames = params.sourceFiles.map(file => file.filePath); + } + // Fetch all libraries for tool description const allLibraries = await getAllLibraries(GenerationType.CODE_GENERATION); const libraryDescriptions = @@ -440,8 +445,10 @@ export async function repairCodeCore( eventHandler: CopilotEventHandler ): Promise { eventHandler({ type: "start" }); - const resp = await repairCode(params, libraryDescriptions, [], eventHandler); - eventHandler({ type: "content_replace", content: resp.repairResponse }); + const resp = await repairCode(params, libraryDescriptions, eventHandler); + // Convert repaired sourceFiles to XML format for display + const repairedCodeBlocks = getCodeBlocks(resp.sourceFiles, resp.updatedFileNames); + eventHandler({ type: "content_replace", content: repairedCodeBlocks }); console.log("Manual Repair Diagnostics left: ", resp.diagnostics); eventHandler({ type: "diagnostics", diagnostics: resp.diagnostics }); eventHandler({ type: "stop", command: undefined }); @@ -451,14 +458,16 @@ export async function repairCodeCore( export async function repairCode( params: RepairParams, libraryDescriptions: string, - sourceFiles: SourceFiles[] = [], eventHandler?: CopilotEventHandler ): Promise { + // Convert current sourceFiles to XML format for assistant message + const assistantResponse = getCodeBlocks(params.sourceFiles, params.updatedFileNames); + const allMessages: ModelMessage[] = [ ...params.previousMessages, { role: "assistant", - content: params.assistantResponse, + content: assistantResponse, }, { role: "user", @@ -469,9 +478,8 @@ export async function repairCode( }, ]; - let updatedSourceFiles: SourceFiles[] = - sourceFiles.length == 0 ? getProjectFromResponse(params.assistantResponse).sourceFiles : sourceFiles; - let updatedFileNames: string[] = []; + let updatedSourceFiles: SourceFile[] = [...params.sourceFiles]; + let updatedFileNames: string[] = [...params.updatedFileNames]; const tools = { LibraryProviderTool: getLibraryProviderTool(libraryDescriptions, GenerationType.CODE_GENERATION), @@ -505,31 +513,45 @@ export async function repairCode( }, }); } - const updatedCodeBlocks = getCodeBlocks(updatedSourceFiles, updatedFileNames); - // replace original response with new code blocks - let diagnosticFixResp = replaceCodeBlocks(params.assistantResponse, updatedCodeBlocks); + const postProcessResp: PostProcessResponse = await postProcess({ - assistant_response: diagnosticFixResp, + sourceFiles: updatedSourceFiles, + updatedFileNames: updatedFileNames, }); - diagnosticFixResp = postProcessResp.assistant_response; console.log("After auto repair, Diagnostics : ", postProcessResp.diagnostics.diagnostics); - return { repairResponse: diagnosticFixResp, diagnostics: postProcessResp.diagnostics.diagnostics }; + return { + sourceFiles: postProcessResp.sourceFiles, + updatedFileNames: updatedFileNames, + diagnostics: postProcessResp.diagnostics.diagnostics + }; } -export function stringifyExistingCode(existingCode: SourceFiles[], op: OperationType): string { - let existingCodeStr = ""; - for (const file of existingCode) { - const filePath = file.filePath; - if (op !== "CODE_GENERATION" && !filePath.endsWith(".bal")) { - continue; - } +/** + * Formats a file as XML with filename and optional external package attribute. + */ +function formatFileAsXml(filePath: string, content: string, externalAttr: string): string { + return ` + +${content} + +`; +} - existingCodeStr += `\n`; - existingCodeStr += `\n${file.content}\n\n`; - existingCodeStr += `\n`; - } - return existingCodeStr; +export function stringifyExistingCode(projects: ProjectSource[], op: OperationType): string { + const usePackagePrefix = projects.length > 1; + const fileFilter = (filePath: string) => + op === "CODE_GENERATION" || filePath.endsWith(".bal"); + + const files = buildFilePaths(projects, fileFilter); + + return files.map(({ filePath, content, packageName, isActive }) => { + const externalAttr = (usePackagePrefix && packageName && !isActive) + ? ` externalPackageName="${packageName}"` + : ""; + + return formatFileAsXml(filePath, content, externalAttr); + }).join("\n"); } export function hasCodeBlocks(text: string) { diff --git a/workspaces/ballerina/ballerina-extension/src/features/ai/service/datamapper/datamapper.ts b/workspaces/ballerina/ballerina-extension/src/features/ai/service/datamapper/datamapper.ts index b2c105a1be4..0b838807ed5 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/ai/service/datamapper/datamapper.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/ai/service/datamapper/datamapper.ts @@ -346,10 +346,19 @@ export async function generateMappingCodeCore(mappingRequest: ProcessMappingPara let customFunctionsTargetPath: string; let customFunctionsFileName: string; - + if (allMappingsRequest.customFunctionsFilePath) { - customFunctionsTargetPath = determineCustomFunctionsPath(projectRoot, currentActiveFile); - customFunctionsFileName = path.basename(customFunctionsTargetPath); + const absoluteCustomFunctionsPath = determineCustomFunctionsPath(projectRoot, currentActiveFile); + customFunctionsFileName = path.basename(absoluteCustomFunctionsPath); + + // For workspace projects, make path relative to workspace root + const workspacePath = context.workspacePath; + if (workspacePath) { + customFunctionsTargetPath = path.relative(workspacePath, absoluteCustomFunctionsPath); + } else { + // Normal project: use relative path from project root + customFunctionsTargetPath = path.relative(projectRoot, absoluteCustomFunctionsPath); + } } // Check if mappings file and custom functions file are the same @@ -395,7 +404,15 @@ export async function generateMappingCodeCore(mappingRequest: ProcessMappingPara ); await new Promise((resolve) => setTimeout(resolve, 200)); - let targetFilePath = path.join(projectRoot, mappingContext.filePath); + // For workspace projects, compute relative file path from workspace root + const workspacePath = context.workspacePath; + let targetFilePath = mappingContext.filePath; + + if (workspacePath) { + // Workspace project: need to include package path prefix (e.g., "foo/mappings.bal") + const absoluteFilePath = path.join(projectRoot, mappingContext.filePath); + targetFilePath = path.relative(workspacePath, absoluteFilePath); + } const generatedSourceFiles = buildMappingFileArray( targetFilePath, @@ -416,12 +433,12 @@ export async function generateMappingCodeCore(mappingRequest: ProcessMappingPara if (isSameFile) { const mergedContent = `${generatedFunctionDefinition.source}\n${customContent}`; - assistantResponse += `\n\`\`\`ballerina\n${mergedContent}\n\`\`\`\n`; + assistantResponse += `\n\`\`\`ballerina\n${mergedContent}\n\`\`\`\n`; } else { - assistantResponse += `\n\`\`\`ballerina\n${generatedFunctionDefinition.source}\n\`\`\`\n`; + assistantResponse += `\n\`\`\`ballerina\n${generatedFunctionDefinition.source}\n\`\`\`\n`; if (codeRepairResult.customFunctionsContent) { - assistantResponse += `\n\`\`\`ballerina\n${codeRepairResult.customFunctionsContent}\n\`\`\`\n`; + assistantResponse += `\n\`\`\`ballerina\n${codeRepairResult.customFunctionsContent}\n\`\`\`\n`; } } @@ -650,10 +667,19 @@ export async function generateInlineMappingCodeCore(inlineMappingRequest: Metada let customFunctionsTargetPath: string | undefined; let customFunctionsFileName: string | undefined; - + if (inlineMappingsResult.allMappingsRequest.customFunctionsFilePath) { - customFunctionsTargetPath = determineCustomFunctionsPath(projectRoot, targetFileName); - customFunctionsFileName = path.basename(customFunctionsTargetPath); + const absoluteCustomFunctionsPath = determineCustomFunctionsPath(projectRoot, targetFileName); + customFunctionsFileName = path.basename(absoluteCustomFunctionsPath); + + // For workspace projects, make path relative to workspace root + const workspacePath = context.workspacePath; + if (workspacePath) { + customFunctionsTargetPath = path.relative(workspacePath, absoluteCustomFunctionsPath); + } else { + // Normal project: use relative path from project root + customFunctionsTargetPath = path.relative(projectRoot, absoluteCustomFunctionsPath); + } } // Check if mappings file and custom functions file are the same @@ -691,8 +717,17 @@ export async function generateInlineMappingCodeCore(inlineMappingRequest: Metada }, langClient, projectRoot); } + // For workspace projects, compute relative file path from workspace root + let targetFilePath = path.relative(projectRoot, context.documentUri); + const workspacePath = context.workspacePath; + + if (workspacePath) { + // Workspace project: make path relative to workspace root (e.g., "foo/mappings.bal") + targetFilePath = path.relative(workspacePath, context.documentUri); + } + const generatedSourceFiles = buildMappingFileArray( - context.documentUri, + targetFilePath, codeRepairResult.finalContent, customFunctionsTargetPath, codeRepairResult.customFunctionsContent, @@ -718,12 +753,12 @@ export async function generateInlineMappingCodeCore(inlineMappingRequest: Metada if (isSameFile) { const mergedCodeDisplay = customContent ? `${codeToDisplay}\n${customContent}` : codeToDisplay; - assistantResponse += `\n\`\`\`ballerina\n${mergedCodeDisplay}\n\`\`\`\n`; + assistantResponse += `\n\`\`\`ballerina\n${mergedCodeDisplay}\n\`\`\`\n`; } else { - assistantResponse += `\n\`\`\`ballerina\n${codeToDisplay}\n\`\`\`\n`; + assistantResponse += `\n\`\`\`ballerina\n${codeToDisplay}\n\`\`\`\n`; if (codeRepairResult.customFunctionsContent) { - assistantResponse += `\n\`\`\`ballerina\n${codeRepairResult.customFunctionsContent}\n\`\`\`\n`; + assistantResponse += `\n\`\`\`ballerina\n${codeRepairResult.customFunctionsContent}\n\`\`\`\n`; } } @@ -765,6 +800,7 @@ export async function generateContextTypesCore(typeCreationRequest: ProcessConte try { const biDiagramRpcManager = new BiDiagramRpcManager(); const langClient = StateMachine.langClient(); + const context = StateMachine.context(); const projectComponents = await biDiagramRpcManager.getProjectComponents(); // Generate types from context with validation @@ -774,11 +810,22 @@ export async function generateContextTypesCore(typeCreationRequest: ProcessConte langClient ); + // For workspace projects, compute relative file path from workspace root + const workspacePath = context.workspacePath; + const projectRoot = context.projectPath; + let targetFilePath = filePath; + + if (workspacePath && projectRoot) { + // Workspace project: need to include package path prefix (e.g., "foo/types.bal") + const absoluteFilePath = path.isAbsolute(filePath) ? filePath : path.join(projectRoot, filePath); + targetFilePath = path.relative(workspacePath, absoluteFilePath); + } + // Build assistant response const sourceAttachmentNames = typeCreationRequest.attachments?.map(a => a.name).join(", ") || "attachment"; const fileText = typeCreationRequest.attachments?.length === 1 ? "file" : "files"; assistantResponse = `Record types generated from the ${sourceAttachmentNames} ${fileText} shown below.\n`; - assistantResponse += `\n\`\`\`ballerina\n${typesCode}\n\`\`\`\n`; + assistantResponse += `\n\`\`\`ballerina\n${typesCode}\n\`\`\`\n`; // Send assistant response through event handler eventHandler({ type: "content_block", content: assistantResponse }); diff --git a/workspaces/ballerina/ballerina-extension/src/features/ai/service/healthcare/healthcare.ts b/workspaces/ballerina/ballerina-extension/src/features/ai/service/healthcare/healthcare.ts index 5201e543d7f..94a4e6b0afa 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/ai/service/healthcare/healthcare.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/ai/service/healthcare/healthcare.ts @@ -17,7 +17,7 @@ import { ModelMessage, generateObject, streamText } from "ai"; import { getAnthropicClient, ANTHROPIC_HAIKU, ANTHROPIC_SONNET_4, getProviderCacheControl } from "../connection"; import { GenerationType, getRelevantLibrariesAndFunctions } from "../libs/libs"; -import { getRewrittenPrompt, populateHistory, transformProjectSource, getErrorMessage } from "../utils"; +import { getRewrittenPrompt, populateHistory, flattenProjectToFiles, getErrorMessage, buildPackageContext, formatFileUploadContents } from "../utils"; import { libraryContains } from "../libs/funcs"; import { LANGLIBS } from "../libs/langlibs"; import { @@ -33,7 +33,7 @@ import { FileAttatchment, GenerateCodeRequest, ProjectSource, - SourceFiles, + SourceFile, OperationType, Command } from "@wso2/ballerina-core"; @@ -48,10 +48,10 @@ export async function generateHealthcareCodeCore( params: GenerateCodeRequest, eventHandler: CopilotEventHandler ): Promise { - const project: ProjectSource = await getProjectSource(params.operationType); - const packageName = project.projectName; - const sourceFiles: SourceFiles[] = transformProjectSource(project); - const prompt = getRewrittenPrompt(params, sourceFiles); + const projects: ProjectSource[] = await getProjectSource(params.operationType); + const activeProject = projects.find(p => p.isActive) || projects[0]; + const packageName = activeProject.projectName; + const prompt = getRewrittenPrompt(params, projects); const relevantTrimmedFuncs: Library[] = ( await getRelevantLibrariesAndFunctions({ query: prompt }, GenerationType.HEALTHCARE_GENERATION) ).libraries; @@ -62,7 +62,7 @@ export async function generateHealthcareCodeCore( const allMessages: ModelMessage[] = [ { role: "system", - content: getSystemPromptPrefix(relevantTrimmedFuncs, sourceFiles), + content: getSystemPromptPrefix(relevantTrimmedFuncs), }, { role: "system", @@ -72,7 +72,7 @@ export async function generateHealthcareCodeCore( ...historyMessages, { role: "user", - content: getUserPrompt(prompt, sourceFiles, params.fileAttachmentContents, packageName, params.operationType), + content: getUserPrompt(prompt, projects, params.fileAttachmentContents, packageName, params.operationType), providerOptions: cacheOptions, }, ]; @@ -126,7 +126,7 @@ export async function generateHealthcareCode(params: GenerateCodeRequest): Promi } } -export function getSystemPromptPrefix(apidocs: Library[], sourceFiles: SourceFiles[]): string { +export function getSystemPromptPrefix(apidocs: Library[]): string { return `You are an expert assistant who specializes in writing Ballerina code for healthcare integrations. Your goal is to ONLY answer Ballerina related queries. You should always answer with accurate and functional Ballerina code that addresses the specified query while adhering to the constraints of the given API documentation. You will be provided with following inputs: @@ -256,22 +256,13 @@ Example Codeblock segments: function getUserPrompt( usecase: string, - existingCode: SourceFiles[], + projects: ProjectSource[], fileUploadContents: FileAttatchment[], packageName: string, op: OperationType ): string { - let fileInstructions = ""; - if (fileUploadContents.length > 0) { - fileInstructions = `4. File Upload Contents. : Contents of the file which the user uploaded as addtional information for the query. - -${fileUploadContents - .map( - (file) => `File Name: ${file.fileName} -Content: ${file.content}` - ) - .join("\n")}`; - } + const fileInstructions = formatFileUploadContents(fileUploadContents); + const packageContext = buildPackageContext(projects, packageName); return `QUERY: The query you need to answer using the provided api documentation. @@ -280,10 +271,10 @@ ${usecase} Existing Code: Users existing code. -${stringifyExistingCode(existingCode, op)} +${stringifyExistingCode(projects, op)} -Current Package name: ${packageName} +${packageContext} ${fileInstructions} diff --git a/workspaces/ballerina/ballerina-extension/src/features/ai/service/libs/text_editor_tool.ts b/workspaces/ballerina/ballerina-extension/src/features/ai/service/libs/text_editor_tool.ts index 18e7085f29c..6c03012b853 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/ai/service/libs/text_editor_tool.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/ai/service/libs/text_editor_tool.ts @@ -14,7 +14,7 @@ // specific language governing permissions and limitations // under the License. -import { SourceFile, SourceFiles } from "@wso2/ballerina-core"; +import { SourceFile } from "@wso2/ballerina-core"; import { tool } from 'ai'; import { z } from 'zod'; @@ -305,10 +305,14 @@ export function createEditExecute(files: SourceFile[], updatedFileNames: string[ // Perform replacement let newContent: string; - if (replace_all) { - newContent = content.replaceAll(old_string, new_string); + if (content.trim() === "" && old_string.trim() === "") { + newContent = new_string; } else { - newContent = content.replace(old_string, new_string); + if (replace_all) { + newContent = content.replaceAll(old_string, new_string); + } else { + newContent = content.replace(old_string, new_string); + } } updateOrCreateFile(files, file_path, newContent); @@ -400,10 +404,14 @@ export function createMultiEditExecute(files: SourceFile[], updatedFileNames: st } // Apply the edit to simulate the sequence - if (edit.replace_all) { - content = content.replaceAll(edit.old_string, edit.new_string); + if (content.trim() === "" && edit.old_string.trim() === "") { + content = edit.new_string; } else { - content = content.replace(edit.old_string, edit.new_string); + if (edit.replace_all) { + content = content.replaceAll(edit.old_string, edit.new_string); + } else { + content = content.replace(edit.old_string, edit.new_string); + } } } diff --git a/workspaces/ballerina/ballerina-extension/src/features/ai/service/test/function_tests.ts b/workspaces/ballerina/ballerina-extension/src/features/ai/service/test/function_tests.ts index f4d8c173f66..eb9989c14e7 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/ai/service/test/function_tests.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/ai/service/test/function_tests.ts @@ -19,15 +19,16 @@ import { getErrorMessage } from "../utils"; import { generateTest, getDiagnostics } from "../../testGenerator"; import { URI } from "vscode-uri"; import * as fs from "fs"; +import * as path from "path"; import { CopilotEventHandler, createWebviewEventHandler } from "../event"; import { getCurrentProjectRoot } from "../../../../utils/project-utils"; +import { StateMachine } from "../../../../stateMachine"; // Core function test generation that emits events export async function generateFunctionTestsCore( params: TestGeneratorIntermediaryState, eventHandler: CopilotEventHandler ): Promise { - const testPath = "tests/test.bal"; const functionIdentifier = params.resourceFunction; eventHandler({ @@ -48,6 +49,22 @@ export async function generateFunctionTestsCore( return; } + // Compute workspace-relative paths for test files (for display in UI) + const context = StateMachine.context(); + const workspacePath = context.workspacePath; + let testPathForDisplay = "tests/test.bal"; + let configPathForDisplay = "tests/Config.toml"; + + if (workspacePath) { + // Workspace project: include package path prefix (e.g., "foo/tests/test.bal") + const relativeProjectPath = path.relative(workspacePath, projectPath); + testPathForDisplay = path.join(relativeProjectPath, "tests/test.bal"); + configPathForDisplay = path.join(relativeProjectPath, "tests/Config.toml"); + } + + // Use project-relative path for file operations + const testPath = "tests/test.bal"; + const response = await generateTest(projectPath, { targetType: TestGenerationTarget.Function, targetIdentifier: functionIdentifier, @@ -102,12 +119,12 @@ export async function generateFunctionTestsCore( }); eventHandler({ type: "content_block", - content: `\n\n\n\`\`\`ballerina\n${testCode}\n\`\`\`\n`, + content: `\n\n\n\`\`\`ballerina\n${testCode}\n\`\`\`\n`, }); if (testConfig) { eventHandler({ type: "content_block", - content: `\n\n\n\`\`\`ballerina\n${testConfig}\n\`\`\`\n`, + content: `\n\n\n\`\`\`ballerina\n${testConfig}\n\`\`\`\n`, }); } diff --git a/workspaces/ballerina/ballerina-extension/src/features/ai/service/test/test_plan.ts b/workspaces/ballerina/ballerina-extension/src/features/ai/service/test/test_plan.ts index 41af2b865b8..a4d9ffb612c 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/ai/service/test/test_plan.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/ai/service/test/test_plan.ts @@ -22,6 +22,8 @@ import { generateTest, getDiagnostics } from "../../testGenerator"; import { CopilotEventHandler, createWebviewEventHandler } from "../event"; import { AIPanelAbortController } from "../../../../../src/rpc-managers/ai-panel/utils"; import { getCurrentProjectRoot } from "../../../../utils/project-utils"; +import { StateMachine } from "../../../../stateMachine"; +import * as path from "path"; export interface TestPlanResponse { testPlan: string; @@ -176,6 +178,20 @@ export async function generateTestPlanCore( eventHandler({ type: "error", content: getErrorMessage(error) }); return; } + + // Compute workspace-relative paths for test files + const context = StateMachine.context(); + const workspacePath = context.workspacePath; + let testPath = "tests/test.bal"; + let configPath = "tests/Config.toml"; + + if (workspacePath) { + // Workspace project: include package path prefix (e.g., "foo/tests/test.bal") + const relativeProjectPath = path.relative(workspacePath, projectPath); + testPath = path.join(relativeProjectPath, "tests/test.bal"); + configPath = path.join(relativeProjectPath, "tests/Config.toml"); + } + const testResp = await generateTest(projectPath, { targetType: TestGenerationTarget.Service, targetIdentifier: target, @@ -209,12 +225,12 @@ export async function generateTestPlanCore( }); eventHandler({ type: "content_block", - content: `\n\n\n\`\`\`ballerina\n${testCode}\n\`\`\`\n`, + content: `\n\n\n\`\`\`ballerina\n${testCode}\n\`\`\`\n`, }); if (testConfig) { eventHandler({ type: "content_block", - content: `\n\n\n\`\`\`ballerina\n${testConfig}\n\`\`\`\n`, + content: `\n\n\n\`\`\`ballerina\n${testConfig}\n\`\`\`\n`, }); } eventHandler({ type: "stop", command: Command.Tests }); diff --git a/workspaces/ballerina/ballerina-extension/src/features/ai/service/utils.ts b/workspaces/ballerina/ballerina-extension/src/features/ai/service/utils.ts index f0c451730cb..29431e50dcc 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/ai/service/utils.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/ai/service/utils.ts @@ -26,7 +26,6 @@ import { IntermidaryState, onChatNotify, ProjectSource, - SourceFiles, SourceFile, TestGeneratorIntermediaryState, ToolCall, @@ -35,7 +34,9 @@ import { DocumentationGeneratorIntermediaryState, PayloadContext, HttpPayloadContext, - MessageQueuePayloadContext + MessageQueuePayloadContext, + FileAttatchment, + OperationType } from "@wso2/ballerina-core"; import { ModelMessage } from "ai"; import { MessageRole } from "./types"; @@ -62,35 +63,105 @@ export function populateHistory(chatHistory: ChatEntry[]): ModelMessage[] { return messages; } -export function transformProjectSource(project: ProjectSource): SourceFiles[] { - const sourceFiles: SourceFiles[] = []; - project.sourceFiles.forEach((file) => { - sourceFiles.push({ - filePath: file.filePath, - content: file.content, - }); - }); - project.projectModules?.forEach((module) => { - let basePath = ""; - if (!module.isGenerated) { - basePath += "modules/"; - } else { - basePath += "generated/"; +/** + * Builds file paths for project files with workspace-aware prefixing. + * Returns structured data including file path, content, package name, and active status. + * + * @param projects - Array of project sources to process + * @param fileFilter - Optional filter function to include/exclude files + * @returns Array of file objects with path, content, and metadata + */ +export function buildFilePaths( + projects: ProjectSource[], + fileFilter?: (filePath: string) => boolean +): Array<{ filePath: string; content: string; packageName?: string; isActive: boolean }> { + const usePackagePrefix = projects.length > 1; + const result: Array<{ filePath: string; content: string; packageName?: string; isActive: boolean }> = []; + + for (const project of projects) { + const packagePrefix = usePackagePrefix && project.packagePath ? `${project.packagePath}/` : ""; + const packageName = project.projectName; + const isActive = project.isActive; + + // Process root files + for (const file of project.sourceFiles) { + const filePath = packagePrefix + file.filePath; + if (!fileFilter || fileFilter(filePath)) { + result.push({ filePath, content: file.content, packageName, isActive }); + } } - basePath += module.moduleName + "/"; - // const path = - module.sourceFiles.forEach((file) => { - sourceFiles.push({ - filePath: basePath + file.filePath, - content: file.content, - }); + // Process module files + project.projectModules?.forEach((module) => { + let basePath = packagePrefix; + basePath += module.isGenerated ? "generated/" : "modules/"; + basePath += module.moduleName + "/"; + + for (const file of module.sourceFiles) { + const filePath = basePath + file.filePath; + if (!fileFilter || fileFilter(filePath)) { + result.push({ filePath, content: file.content, packageName, isActive }); + } + } }); - }); - return sourceFiles; + } + + return result; +} + +export function flattenProjectToFiles(projects: ProjectSource[]): SourceFile[] { + return buildFilePaths(projects).map(({ filePath, content }) => ({ + filePath, + content + })); } -export function extractResourceDocumentContent(sourceFiles: readonly SourceFiles[]): string { +/** + * Creates workspace context message for AI prompts. + * Handles single vs multi-package scenarios and provides instructions for working with workspaces. + * + * @param projects - Array of project sources + * @param packageName - Name of the current active package + * @returns Formatted context string for AI prompts + */ +export function buildPackageContext(projects: ProjectSource[], packageName: string): string { + const hasMultiplePackages = projects.length > 1; + + if (!hasMultiplePackages) { + return `Current Package name: ${packageName}`; + } + + return `Current Active Package: ${packageName} + +Note: This is a Ballerina workspace with multiple packages. File paths are prefixed with their package paths (e.g., "mainpackage/main.bal"). +Files from external packages (not the active package) are marked with the externalPackageName attribute (e.g., ). +You can import these packages by just using the package name (e.g., import otherpackage;). +When creating or modifying files, you should always prefer making edits for the current active package. Make sure to include the package path as prefix for the file edits.`; +} + +/** + * Formats file upload contents for AI prompts. + * Returns empty string if no files are uploaded. + * + * @param fileUploadContents - Array of file attachments + * @returns Formatted string with file names and contents + */ +export function formatFileUploadContents(fileUploadContents: FileAttatchment[]): string { + if (fileUploadContents.length === 0) { + return ""; + } + + const formattedFiles = fileUploadContents + .map(file => `File Name: ${file.fileName} +Content: ${file.content}`) + .join("\n"); + + return `4. File Upload Contents. : Contents of the file which the user uploaded as additional information for the query. + +${formattedFiles}`; +} + +export function extractResourceDocumentContent(sourceFiles: readonly SourceFile[]): string { const requirementFiles = sourceFiles .filter(sourceFile => sourceFile.filePath.toLowerCase().endsWith(REQUIREMENTS_DOCUMENT_KEY)) .slice(0, 1) @@ -103,14 +174,16 @@ export function extractResourceDocumentContent(sourceFiles: readonly SourceFiles } //TODO: This should be a query rewriter ideally. -export function getRewrittenPrompt(params: GenerateCodeRequest, sourceFiles: SourceFiles[]) { +export function getRewrittenPrompt(params: GenerateCodeRequest, projects: ProjectSource[]) { const prompt = params.usecase; if (prompt.trim() === GENERATE_CODE_AGAINST_THE_REQUIREMENT) { + const sourceFiles = flattenProjectToFiles(projects); const resourceContent = extractResourceDocumentContent(sourceFiles); return `${GENERATE_CODE_AGAINST_THE_REQUIREMENT}: ${resourceContent}`; } if (prompt.trim() === GENERATE_TEST_AGAINST_THE_REQUIREMENT) { + const sourceFiles = flattenProjectToFiles(projects); const resourceContent = extractResourceDocumentContent(sourceFiles); return `${GENERATE_TEST_AGAINST_THE_REQUIREMENT}: ${resourceContent}`; @@ -120,6 +193,7 @@ ${resourceContent}`; return prompt; } + const sourceFiles = flattenProjectToFiles(projects); const readmeFiles = sourceFiles .filter((sourceFile) => sourceFile.filePath.toLowerCase().endsWith("readme.md")) .map((sourceFile) => sourceFile.content); @@ -277,3 +351,27 @@ export function isHttpPayloadContext(context: PayloadContext): context is HttpPa export function isMessageQueuePayloadContext(context: PayloadContext): context is MessageQueuePayloadContext { return context.protocol === "MESSAGE_BROKER"; } + +/** + * Parses XML-formatted assistant response to extract source files. + * Extracts code blocks with format: ```ballerina...``` + * + * @param xmlString - The assistant response containing XML code blocks + * @returns Array of SourceFile objects parsed from the XML + */ +export function parseSourceFilesFromXML(xmlString: string): SourceFile[] { + const sourceFiles: SourceFile[] = []; + const regex = /\s*```ballerina([\s\S]*?)```\s*<\/code>/g; + let match; + + while ((match = regex.exec(xmlString)) !== null) { + const filePath = match[1]; + const fileContent = match[2].trim(); + sourceFiles.push({ + filePath, + content: fileContent + }); + } + + return sourceFiles; +} diff --git a/workspaces/ballerina/ballerina-extension/src/features/ai/testGenerator.ts b/workspaces/ballerina/ballerina-extension/src/features/ai/testGenerator.ts index 48331a10cf1..71e75d07134 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/ai/testGenerator.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/ai/testGenerator.ts @@ -95,7 +95,9 @@ export async function generateTest( content: serviceDeclaration.source } ], - projectName: "" + projectName: "", + packagePath: "", + isActive: true }; const unitTestResp: TestGenerationResponse | ErrorCode = await getUnitTests(updatedTestGenRequest, serviceProjectSource, abortController, openApiSpec); @@ -249,7 +251,9 @@ async function getProjectSource(projectRoot: string): Promise = {} +): void { + const isBalWorkspace = StateMachine.context().workspacePath; + + // Scenario 1: Multi-package workspace invoked from command palette + if (isBalWorkspace && !item) { + const packageList = StateMachine.context().projectInfo?.children.map((child) => child.projectPath); + + if (!packageList || packageList.length === 0) { + openView(EVENT_TYPE.OPEN_VIEW, { view, ...additionalViewParams }); + return; + } + + window.showQuickPick(packageList, { + placeHolder: "Select a package" + }).then((selectedPackage) => { + if (selectedPackage) { + openView(EVENT_TYPE.OPEN_VIEW, { + view, + projectPath: selectedPackage, + ...additionalViewParams + }); + } + }); + } + // Scenario 2: Invoked from tree view with item context + else if (item?.resourceUri) { + const projectPath = item.resourceUri.fsPath; + openView(EVENT_TYPE.OPEN_VIEW, { + view, + projectPath, + ...additionalViewParams + }); + } + // Scenario 3: Default - no specific context + else { + openView(EVENT_TYPE.OPEN_VIEW, { view, ...additionalViewParams }); + } +} + export function activate(context: BallerinaExtension) { + const isWorkspaceSupported = isSupportedSLVersion(extension.ballerinaExtInstance, createVersionNumber(2201, 13, 0)); + + // Set context for command visibility + commands.executeCommand('setContext', 'ballerina.bi.workspaceSupported', isWorkspaceSupported); + commands.registerCommand(BI_COMMANDS.BI_RUN_PROJECT, () => { prepareAndGenerateConfig(context, StateMachine.context().projectPath, false, true); }); @@ -51,73 +108,86 @@ export function activate(context: BallerinaExtension) { startDebugging(Uri.file(StateMachine.context().projectPath), false, true); }); - commands.registerCommand(BI_COMMANDS.ADD_CONNECTIONS, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.AddConnectionWizard }); + commands.registerCommand(BI_COMMANDS.ADD_CONNECTIONS, (item?: TreeItem) => { + handleCommandWithContext(item, MACHINE_VIEW.AddConnectionWizard); }); - commands.registerCommand(BI_COMMANDS.ADD_CUSTOM_CONNECTOR, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.AddCustomConnector }); + commands.registerCommand(BI_COMMANDS.ADD_CUSTOM_CONNECTOR, (item?: TreeItem) => { + handleCommandWithContext(item, MACHINE_VIEW.AddCustomConnector); }); - commands.registerCommand(BI_COMMANDS.ADD_ENTRY_POINT, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BIComponentView }); + commands.registerCommand(BI_COMMANDS.ADD_ENTRY_POINT, (item?: TreeItem) => { + handleCommandWithContext(item, MACHINE_VIEW.BIComponentView); }); - commands.registerCommand(BI_COMMANDS.ADD_TYPE, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.TypeDiagram, addType: true }); + commands.registerCommand(BI_COMMANDS.ADD_TYPE, (item?: TreeItem) => { + handleCommandWithContext(item, MACHINE_VIEW.TypeDiagram, { addType: true }); }); - commands.registerCommand(BI_COMMANDS.VIEW_TYPE_DIAGRAM, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.TypeDiagram, rootDiagramId: `type-diagram-${Date.now()}` }); + commands.registerCommand(BI_COMMANDS.VIEW_TYPE_DIAGRAM, (item?: TreeItem) => { + handleCommandWithContext(item, MACHINE_VIEW.TypeDiagram, { rootDiagramId: `type-diagram-${Date.now()}` }); }); - commands.registerCommand(BI_COMMANDS.ADD_FUNCTION, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BIFunctionForm }); + commands.registerCommand(BI_COMMANDS.ADD_FUNCTION, (item?: TreeItem) => { + handleCommandWithContext(item, MACHINE_VIEW.BIFunctionForm); }); - commands.registerCommand(BI_COMMANDS.ADD_CONFIGURATION, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.AddConfigVariables }); + commands.registerCommand(BI_COMMANDS.ADD_CONFIGURATION, (item?: TreeItem) => { + handleCommandWithContext(item, MACHINE_VIEW.AddConfigVariables); }); - commands.registerCommand(BI_COMMANDS.VIEW_CONFIGURATION, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.ViewConfigVariables }); + commands.registerCommand(BI_COMMANDS.VIEW_CONFIGURATION, (item?: TreeItem) => { + handleCommandWithContext(item, MACHINE_VIEW.ViewConfigVariables); }); commands.registerCommand(BI_COMMANDS.SHOW_OVERVIEW, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.Overview }); + const isBallerinaWorkspace = !!StateMachine.context().workspacePath; + if (isBallerinaWorkspace) { + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.WorkspaceOverview }); + } else { + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.PackageOverview }); + } }); commands.registerCommand(BI_COMMANDS.ADD_PROJECT, async () => { - const workspacePath = StateMachine.context().workspacePath; - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BIAddProjectForm, workspacePath: workspacePath }); - }); - - commands.registerCommand(BI_COMMANDS.ADD_DATA_MAPPER, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BIDataMapperForm }); + if (!isWorkspaceSupported) { + window.showErrorMessage('This command requires Ballerina version 2201.13.0 or higher. '); + return; + } + + const projectPath = StateMachine.context().projectPath || StateMachine.context().workspacePath; + if (projectPath) { + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BIAddProjectForm }); + } else { + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BIProjectForm }); + } }); - commands.registerCommand(BI_COMMANDS.ADD_NATURAL_FUNCTION, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BINPFunctionForm }); + commands.registerCommand(BI_COMMANDS.ADD_DATA_MAPPER, (item?: TreeItem) => { + handleCommandWithContext(item, MACHINE_VIEW.BIDataMapperForm); }); - commands.registerCommand(BI_COMMANDS.SWITCH_PROJECT, async () => { - // Hack to switch the project. This will reload the window and prompt the user to select the project. - // This is a temporary solution until we provide the support for multi root workspaces. - // Ref: https://github.com/wso2/product-ballerina-integrator/issues/1465 - StateMachine.sendEvent("SWITCH_PROJECT" as any); + commands.registerCommand(BI_COMMANDS.ADD_NATURAL_FUNCTION, (item?: TreeItem) => { + handleCommandWithContext(item, MACHINE_VIEW.BINPFunctionForm); }); commands.registerCommand(BI_COMMANDS.TOGGLE_TRACE_LOGS, toggleTraceLogs); - commands.registerCommand(BI_COMMANDS.DELETE_COMPONENT, async (item: any) => { + commands.registerCommand(BI_COMMANDS.DELETE_COMPONENT, async (item?: TreeItem & { info?: string }) => { + // Guard: DELETE requires a tree item context + if (!item) { + window.showErrorMessage('This command must be invoked from the project explorer.'); + return; + } + console.log(">>> delete component", item); if (item.contextValue === DIRECTORY_MAP.CONNECTION) { - await handleConnectionDeletion(item.label, item.info); + await handleConnectionDeletion(item.label as string, item.info); } else if (item.contextValue === DIRECTORY_MAP.LOCAL_CONNECTORS) { - await handleLocalModuleDeletion(item.label, item.info); + await handleLocalModuleDeletion(item.label as string, item.info); } else { - await handleComponentDeletion(item.contextValue, item.label, item.info); + await handleComponentDeletion(item.contextValue as string, item.label as string, item.info); } }); @@ -127,7 +197,10 @@ export function activate(context: BallerinaExtension) { function openBallerinaTomlFile(context: BallerinaExtension) { - const projectPath = StateMachine.context().projectPath; + const projectPath = StateMachine.context().projectPath || StateMachine.context().workspacePath; + if (!projectPath) { + return; + } const ballerinaTomlFile = path.join(projectPath, "Ballerina.toml"); try { const content = readFileSync(ballerinaTomlFile, "utf8"); @@ -207,7 +280,10 @@ const findBallerinaFiles = (dir: string, fileList: string[] = []): string[] => { const handleComponentDeletion = async (componentType: string, itemLabel: string, filePath: string) => { const rpcClient = new BiDiagramRpcManager(); - const componentCategory = StateMachine.context().projectStructure.directoryMap[componentType]; + const projectPath = StateMachine.context().projectPath; + const projectStructure = await rpcClient.getProjectStructure(); + const project = projectStructure.projects.find(project => project.projectPath === projectPath); + const componentCategory = project?.directoryMap[componentType]; if (!componentCategory) { console.error(`Component type ${componentType} not found in project structure`); @@ -256,7 +332,7 @@ const handleConnectionDeletion = async (itemLabel: string, filePath: string) => console.log(">>> Updated source code after delete", response); if (response.artifacts) { if (hasNoComponentsOpenInDiagram() || isFlowNodeOpenInDiagram(connector)) { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.Overview }); + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.PackageOverview }); } } else { console.error(">>> Error updating source code", response); @@ -279,7 +355,7 @@ async function deleteComponent(component: ComponentInfo, rpcClient: BiDiagramRpc await rpcClient.deleteByComponentInfo(req); if (hasNoComponentsOpenInDiagram() || isComponentOpenInDiagram(component)) { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.Overview }); + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.PackageOverview }); } } diff --git a/workspaces/ballerina/ballerina-extension/src/features/project/cmds/build.ts b/workspaces/ballerina/ballerina-extension/src/features/project/cmds/build.ts index ca08706b1d5..cd53e73e5eb 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/project/cmds/build.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/project/cmds/build.ts @@ -16,17 +16,31 @@ * under the License. */ +import { MACHINE_VIEW } from "@wso2/ballerina-core"; import { LANGUAGE } from "../../../core"; import { extension } from "../../../BalExtensionContext"; import { commands, window } from "vscode"; import { - TM_EVENT_PROJECT_BUILD, CMP_PROJECT_BUILD, sendTelemetryEvent, sendTelemetryException + TM_EVENT_PROJECT_BUILD, + CMP_PROJECT_BUILD, + sendTelemetryEvent, + sendTelemetryException } from "../../telemetry"; -import { runCommand, BALLERINA_COMMANDS, PROJECT_TYPE, PALETTE_COMMANDS, MESSAGES } - from "./cmd-runner"; -import { getCurrentBallerinaProject, getCurrenDirectoryPath, getCurrentBallerinaFile } - from "../../../utils/project-utils"; +import { + runCommand, + BALLERINA_COMMANDS, + PROJECT_TYPE, + PALETTE_COMMANDS, + MESSAGES +} from "./cmd-runner"; +import { + getCurrentBallerinaProject, + getCurrenDirectoryPath, + getCurrentBallerinaFile, + getCurrentProjectRoot +} from "../../../utils/project-utils"; import { isSupportedSLVersion, createVersionNumber } from "../../../utils"; +import { StateMachine } from "../../../stateMachine"; export function activateBuildCommand() { // register run project build handler @@ -39,9 +53,28 @@ export function activateBuildCommand() { return; } - const currentProject = extension.ballerinaExtInstance.getDocumentContext().isActiveDiagram() ? await - getCurrentBallerinaProject(extension.ballerinaExtInstance.getDocumentContext().getLatestDocument()?.toString()) - : await getCurrentBallerinaProject(); + const context = StateMachine.context(); + const { workspacePath, view: webviewType, projectPath } = context; + + let targetPath = projectPath ?? ""; + if (workspacePath && webviewType === MACHINE_VIEW.WorkspaceOverview) { + targetPath = workspacePath; + } else if (workspacePath && !projectPath) { + try { + targetPath = await getCurrentProjectRoot(); + } catch (error) { + targetPath = workspacePath; + } + } else { + targetPath = await getCurrentProjectRoot(); + } + + if (!targetPath) { + window.showErrorMessage(MESSAGES.NO_PROJECT_FOUND); + return; + } + + const currentProject = await getCurrentBallerinaProject(targetPath); let balCommand = BALLERINA_COMMANDS.BUILD; diff --git a/workspaces/ballerina/ballerina-extension/src/features/project/cmds/cmd-runner.ts b/workspaces/ballerina/ballerina-extension/src/features/project/cmds/cmd-runner.ts index 13daaab78aa..26edf3ed08b 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/project/cmds/cmd-runner.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/project/cmds/cmd-runner.ts @@ -50,7 +50,6 @@ export const PALETTE_COMMANDS = { SHOW_DIAGRAM: 'ballerina.show.diagram', SHOW_SOURCE: 'ballerina.show.source', SHOW_ARCHITECTURE_VIEW: 'ballerina.view.architectureView', - SHOW_EXAMPLES: 'ballerina.showExamples', REFRESH_SHOW_ARCHITECTURE_VIEW: "ballerina.view.architectureView.refresh", RUN_CONFIG: 'ballerina.project.run.config', CONFIG_CREATE_COMMAND: 'ballerina.project.config.create', @@ -82,12 +81,13 @@ export enum MESSAGES { NOT_SUPPORT = "Ballerina version is not supported by the VSCode plugin.", MODULE_NAME = "Enter module name.", SELECT_OPTION = "Select a build option.", - NOT_IN_PROJECT = "Current file does not belong to a ballerina project.", + NOT_IN_PROJECT = "Current file does not belong to a Ballerina project.", INVALID_PACK = "Only a Ballerina package can be packed.", INVALID_JSON = "Invalid JSON String", INVALID_JSON_RESPONSE = "JSON response is invalid.", INVALID_XML = "Invalid XML String", - INVALID_XML_RESPONSE = "XML response is invalid." + INVALID_XML_RESPONSE = "XML response is invalid.", + NO_PROJECT_FOUND = "No Ballerina project found." } export const BAL_CONFIG_FILE = 'Config.toml'; diff --git a/workspaces/ballerina/ballerina-extension/src/features/test-explorer/activator.ts b/workspaces/ballerina/ballerina-extension/src/features/test-explorer/activator.ts index 96d792c193b..036df018c82 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/test-explorer/activator.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/test-explorer/activator.ts @@ -17,17 +17,31 @@ * under the License. */ -import { tests, workspace, TestRunProfileKind, TestController } from "vscode"; +import { tests, workspace, TestRunProfileKind, TestController, Uri } from "vscode"; import { BallerinaExtension } from "../../core"; import { runHandler } from "./runner"; import { activateEditBiTest } from "./commands"; import { discoverTestFunctionsInProject, handleFileChange as handleTestFileUpdate, handleFileDelete as handleTestFileDelete } from "./discover"; +import { getCurrentBallerinaProject, getWorkspaceRoot } from "../../utils/project-utils"; +import { checkIsBallerinaPackage, checkIsBallerinaWorkspace } from "../../utils"; +import { PROJECT_TYPE } from "../project"; export let testController: TestController; export async function activate(ballerinaExtInstance: BallerinaExtension) { testController = tests.createTestController('ballerina-integrator-tests', 'WSO2 Integrator: BI Tests'); + const workspaceRoot = getWorkspaceRoot(); + + const isBallerinaWorkspace = await checkIsBallerinaWorkspace(Uri.file(workspaceRoot)); + const isBallerinaProject = !isBallerinaWorkspace && await checkIsBallerinaPackage(Uri.file(workspaceRoot)); + const currentProject = !isBallerinaWorkspace && !isBallerinaProject && await getCurrentBallerinaProject(); + const isSingleFile = currentProject && currentProject.kind === PROJECT_TYPE.SINGLE_FILE; + + if (!isBallerinaWorkspace && !isBallerinaProject && !isSingleFile) { + return; + } + // Create test profiles to display. testController.createRunProfile('Run Tests', TestRunProfileKind.Run, runHandler, true); testController.createRunProfile('Debug Tests', TestRunProfileKind.Debug, runHandler, true); diff --git a/workspaces/ballerina/ballerina-extension/src/features/test-explorer/discover.ts b/workspaces/ballerina/ballerina-extension/src/features/test-explorer/discover.ts index c9881166c05..e618da6e936 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/test-explorer/discover.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/test-explorer/discover.ts @@ -22,81 +22,155 @@ import { StateMachine } from "../../stateMachine"; import { TestsDiscoveryRequest, TestsDiscoveryResponse, FunctionTreeNode } from "@wso2/ballerina-core"; import { BallerinaExtension } from "../../core"; import { Position, Range, TestController, Uri, TestItem, commands } from "vscode"; -import { getCurrentProjectRoot } from "../../utils/project-utils"; +import { getWorkspaceRoot, getCurrentProjectRoot } from "../../utils/project-utils"; let groups: string[] = []; export async function discoverTestFunctionsInProject(ballerinaExtInstance: BallerinaExtension, testController: TestController) { groups.push(testController.id); + + const workspaceRoot = getWorkspaceRoot(); + const projectInfo = await ballerinaExtInstance.langClient?.getProjectInfo({ projectPath: workspaceRoot }); + // Handle workspace with multiple child projects + if (projectInfo?.children?.length > 0) { + await discoverTestsInWorkspace(projectInfo.children, ballerinaExtInstance, testController); + return; + } + + // Handle single project + await discoverTestsInSingleProject(ballerinaExtInstance, testController); +} + +async function discoverTestsInWorkspace( + children: any[], + ballerinaExtInstance: BallerinaExtension, + testController: TestController +) { + // Iterate over project children sequentially to allow awaiting each request + for (const child of children) { + if (!child?.projectPath) { + continue; + } + + const response: TestsDiscoveryResponse = await ballerinaExtInstance.langClient?.getProjectTestFunctions({ + projectPath: child.projectPath + }); + + if (response) { + createTests(response, testController, child.projectPath); + setGroupsContext(); + } + } +} + +async function discoverTestsInSingleProject( + ballerinaExtInstance: BallerinaExtension, + testController: TestController, +) { const projectPath = await getCurrentProjectRoot(); if (!projectPath) { + console.warn('No project root found for test discovery'); return; } const request: TestsDiscoveryRequest = { projectPath }; const response: TestsDiscoveryResponse = await ballerinaExtInstance.langClient?.getProjectTestFunctions(request); + if (response) { createTests(response, testController); setGroupsContext(); } } -function createTests(response: TestsDiscoveryResponse, testController: TestController) { - if (response.result) { - // Check if the result is a Map or a plain object - const isMap = response.result instanceof Map; +function createTests(response: TestsDiscoveryResponse, testController: TestController, projectPath?: string) { + if (!response.result) { + return; + } - // Convert the result to an iterable format - const entries = isMap - ? Array.from(response.result.entries()) // If it's a Map, convert to an array of entries - : Object.entries(response.result); // If it's a plain object, use Object.entries + // Check if the result is a Map or a plain object + const isMap = response.result instanceof Map; - // Iterate over the result map - for (const [group, testFunctions] of entries) { - // Create a test item for the group - const groupId = `group:${group}`; - let groupItem: TestItem = testController.items.get(groupId); + // Convert the result to an iterable format + const entries = isMap + ? Array.from(response.result.entries()) // If it's a Map, convert to an array of entries + : Object.entries(response.result); // If it's a plain object, use Object.entries + + // Determine if we're in a workspace context (multiple projects) + const isWorkspaceContext = projectPath !== undefined; + + // Get or create the project-level group for workspace scenarios + let projectGroupItem: TestItem | undefined; + if (isWorkspaceContext) { + const projectName = path.basename(projectPath); + const projectGroupId = `project:${projectName}`; + + projectGroupItem = testController.items.get(projectGroupId); + if (!projectGroupItem) { + projectGroupItem = testController.createTestItem(projectGroupId, projectName); + testController.items.add(projectGroupItem); + groups.push(projectGroupId); + } + } + + // Iterate over the result map (test groups) + for (const [group, testFunctions] of entries) { + let groupItem: TestItem | undefined; + // For workspace context with DEFAULT_GROUP, skip the group level and add tests directly to project + if (isWorkspaceContext && group === 'DEFAULT_GROUP' && projectGroupItem) { + groupItem = projectGroupItem; + } else if (isWorkspaceContext && projectGroupItem) { + // For workspace context with named groups, create test group under project + const groupId = `group:${path.basename(projectPath)}:${group}`; + groupItem = projectGroupItem.children.get(groupId); + if (!groupItem) { + groupItem = testController.createTestItem(groupId, group); + projectGroupItem.children.add(groupItem); + groups.push(groupId); + } + } else { + // Single project - create group at root level (including DEFAULT_GROUP) + const groupId = `group:${group}`; + groupItem = testController.items.get(groupId); if (!groupItem) { - // If the group doesn't exist, create it groupItem = testController.createTestItem(groupId, group); testController.items.add(groupItem); groups.push(groupId); } + } - // Ensure testFunctions is iterable (convert to an array if necessary) - const testFunctionsArray = Array.isArray(testFunctions) - ? testFunctions // If it's already an array, use it directly - : Object.values(testFunctions); // If it's an object, convert to an array - - // Iterate over the test functions in the group - for (const tf of testFunctionsArray) { - const testFunc: FunctionTreeNode = tf as FunctionTreeNode; - // Generate a unique ID for the test item using the function name - const fileName: string = testFunc.lineRange.fileName; - const fileUri = Uri.file(path.join(StateMachine.context().projectPath, fileName)); - const testId = `test:${path.basename(fileUri.path)}:${testFunc.functionName}`; - - // Create a test item for the test function - const testItem = testController.createTestItem(testId, testFunc.functionName); - - // Set the range for the test (optional, for navigation) - const startPosition = new Position( - testFunc.lineRange.startLine.line, // Convert to 0-based line number - testFunc.lineRange.startLine.offset - ); - const endPosition = new Position( - testFunc.lineRange.endLine.line, // Convert to 0-based line number - testFunc.lineRange.endLine.offset - ); - testItem.range = new Range(startPosition, endPosition); - - // Add the test item to the group - groupItem.children.add(testItem); - } + // Ensure testFunctions is iterable (convert to an array if necessary) + const testFunctionsArray = Array.isArray(testFunctions) + ? testFunctions // If it's already an array, use it directly + : Object.values(testFunctions); // If it's an object, convert to an array + + // Iterate over the test functions in the group + for (const tf of testFunctionsArray) { + const testFunc: FunctionTreeNode = tf as FunctionTreeNode; + // Generate a unique ID for the test item using the function name + const fileName: string = testFunc.lineRange.fileName; + const resolvedProjectPath = projectPath || StateMachine.context().projectPath; + const fileUri = Uri.file(path.join(resolvedProjectPath, fileName)); + const testId = `test:${resolvedProjectPath}:${path.basename(fileUri.path)}:${testFunc.functionName}`; + + // Create a test item for the test function + const testItem = testController.createTestItem(testId, testFunc.functionName, fileUri); + + // Set the range for the test (optional, for navigation) + const startPosition = new Position( + testFunc.lineRange.startLine.line, // Convert to 0-based line number + testFunc.lineRange.startLine.offset + ); + const endPosition = new Position( + testFunc.lineRange.endLine.line, // Convert to 0-based line number + testFunc.lineRange.endLine.offset + ); + testItem.range = new Range(startPosition, endPosition); + + groupItem.children.add(testItem); } } } @@ -104,6 +178,31 @@ function createTests(response: TestsDiscoveryResponse, testController: TestContr export async function handleFileChange(ballerinaExtInstance: BallerinaExtension, uri: Uri, testController: TestController) { + // Determine which project this file belongs to + const projectInfo = StateMachine.context().projectInfo; + let targetProjectPath: string | undefined; + const isWorkspace = projectInfo?.children?.length > 0; + + // Check if this file belongs to a child project in a workspace + if (isWorkspace) { + for (const child of projectInfo.children) { + if (uri.path.startsWith(child.projectPath)) { + targetProjectPath = child.projectPath; + break; + } + } + } + + // If not found in children, use the main project path + if (!targetProjectPath) { + targetProjectPath = await getCurrentProjectRoot(); + } + + if (!targetProjectPath) { + console.warn('Could not determine project path for file change:', uri.path); + return; + } + const request: TestsDiscoveryRequest = { projectPath: uri.path }; @@ -112,40 +211,115 @@ export async function handleFileChange(ballerinaExtInstance: BallerinaExtension, return; } - handleFileDelete(uri, testController); - createTests(response, testController); + await handleFileDelete(uri, testController); + createTests(response, testController, isWorkspace ? targetProjectPath : undefined); setGroupsContext(); } export async function handleFileDelete(uri: Uri, testController: TestController) { - const filePath = path.basename(uri.path); + // Determine which project this file belongs to + const projectInfo = StateMachine.context().projectInfo; + let targetProjectPath: string | undefined; + + // Check if this file belongs to a child project in a workspace + if (projectInfo?.children?.length > 0) { + for (const child of projectInfo.children) { + if (uri.path.startsWith(child.projectPath)) { + targetProjectPath = child.projectPath; + break; + } + } + } + + // If not found in children, use the main project path + if (!targetProjectPath) { + targetProjectPath = await getCurrentProjectRoot(); + } + + if (!targetProjectPath) { + console.warn('Could not determine project path for file deletion:', uri.path); + return; + } + + const fileName = path.basename(uri.path); + + // Helper function to check if a test belongs to the specific file in the specific project + const belongsToFile = (testItem: TestItem): boolean => { + // Test ID format: test:${projectPath}:${fileName}:${functionName} + // We need to match both the project path and the filename + return testItem.id.startsWith(`test:${targetProjectPath}:${fileName}:`); + }; + + // Helper function to delete tests from a test group item + const deleteTestsFromGroup = (groupItem: TestItem) => { + const childrenToDelete: TestItem[] = []; + groupItem.children.forEach((child) => { + if (belongsToFile(child)) { + childrenToDelete.push(child); + } + }); + + // Remove the matching test function items + childrenToDelete.forEach((child) => { + groupItem.children.delete(child.id); + }); + + return groupItem.children.size === 0; + }; // Iterate over all root-level items in the Test Explorer testController.items.forEach((item) => { - if (isTestFunctionItem(item)) { - // If the item is a test function, check if it belongs to the deleted file - if (item.id.startsWith(`test:${filePath}:`)) { - testController.items.delete(item.id); + if (isProjectGroupItem(item)) { + // Only process this project group if it matches our target project + const projectName = path.basename(targetProjectPath); + if (item.id !== `project:${projectName}`) { + return; // Skip this project, it's not the one we're looking for } - } else if (isTestGroupItem(item)) { - // If the item is a test group, iterate over its children - const childrenToDelete: TestItem[] = []; + + // Project group can contain either test groups or tests directly (when DEFAULT_GROUP is skipped) + const groupsToDelete: TestItem[] = []; + const testsToDelete: TestItem[] = []; + item.children.forEach((child) => { - if (child.id.startsWith(`test:${filePath}:`)) { - childrenToDelete.push(child); + if (isTestFunctionItem(child)) { + // Test added directly to project (DEFAULT_GROUP was skipped) + if (belongsToFile(child)) { + testsToDelete.push(child); + } + } else if (isTestGroupItem(child)) { + // Test group - check if it becomes empty after deletion + const isEmpty = deleteTestsFromGroup(child); + if (isEmpty) { + groupsToDelete.push(child); + } } }); - // Remove the matching test function items - childrenToDelete.forEach((child) => { - item.children.delete(child.id); + // Remove tests that belong to the file + testsToDelete.forEach((test) => { + item.children.delete(test.id); }); - // If the group is empty after deletion, remove it + // Remove empty test groups + groupsToDelete.forEach((groupItem) => { + item.children.delete(groupItem.id); + groups = groups.filter((group) => group !== groupItem.id); + }); + + // If the project group is empty after deletion, remove it if (item.children.size === 0) { testController.items.delete(item.id); groups = groups.filter((group) => group !== item.id); } + } else if (isTestGroupItem(item)) { + // Single project scenario - test group at root level + const isEmpty = deleteTestsFromGroup(item); + + // If the group is empty after deletion, remove it + if (isEmpty) { + testController.items.delete(item.id); + groups = groups.filter((group) => group !== item.id); + } } }); } @@ -160,6 +334,11 @@ export function isTestGroupItem(item: TestItem): boolean { return item.id.startsWith('group:'); } +export function isProjectGroupItem(item: TestItem): boolean { + // Project group items have IDs starting with "project:" + return item.id.startsWith('project:'); +} + function setGroupsContext() { commands.executeCommand('setContext', 'testGroups', groups); } diff --git a/workspaces/ballerina/ballerina-extension/src/features/test-explorer/runner.ts b/workspaces/ballerina/ballerina-extension/src/features/test-explorer/runner.ts index 576d1e197c8..c1d6aafd496 100644 --- a/workspaces/ballerina/ballerina-extension/src/features/test-explorer/runner.ts +++ b/workspaces/ballerina/ballerina-extension/src/features/test-explorer/runner.ts @@ -21,12 +21,69 @@ import { exec } from 'child_process'; import { CancellationToken, TestRunRequest, TestMessage, TestRun, TestItem, debug, Uri, WorkspaceFolder, DebugConfiguration, workspace, TestRunProfileKind } from 'vscode'; import { testController } from './activator'; import { StateMachine } from "../../stateMachine"; -import { isTestFunctionItem, isTestGroupItem } from './discover'; +import { isTestFunctionItem, isTestGroupItem, isProjectGroupItem } from './discover'; import { extension } from '../../BalExtensionContext'; import { constructDebugConfig } from "../debugger"; const fs = require('fs'); import path from 'path'; +/** + * Extract project path from a test item + * Test IDs have the format: test:${projectPath}:${fileName}:${functionName} + */ +function getProjectPathFromTestItem(test: TestItem): string | undefined { + if (isTestFunctionItem(test)) { + // Extract from test ID: test:${projectPath}:${fileName}:${functionName} + const parts = test.id.split(':'); + if (parts.length >= 2 && parts[0] === 'test') { + return parts[1]; + } + } else if (isProjectGroupItem(test)) { + // For project groups, we need to get a child test to extract the path + let projectPath: string | undefined; + test.children.forEach((child) => { + if (!projectPath) { + projectPath = getProjectPathFromTestItem(child); + } + }); + return projectPath; + } else if (isTestGroupItem(test)) { + // For test groups, check if they have a parent project or extract from children + if (test.parent && isProjectGroupItem(test.parent)) { + return getProjectPathFromTestItem(test.parent); + } + // Otherwise extract from children + let projectPath: string | undefined; + test.children.forEach((child) => { + if (!projectPath) { + projectPath = getProjectPathFromTestItem(child); + } + }); + return projectPath; + } + return StateMachine.context().projectPath; +} + +/** + * Check if we're in a workspace context (multiple projects) + * Returns the project name if in workspace, undefined otherwise + */ +function getProjectNameIfWorkspace(projectPath: string): string | undefined { + const projectInfo = StateMachine.context().projectInfo; + + // Check if this is a workspace with multiple child projects + if (projectInfo?.children?.length > 0) { + // Find the matching child project + for (const child of projectInfo.children) { + if (child.projectPath === projectPath) { + return path.basename(projectPath); + } + } + } + + return undefined; +} + export async function runHandler(request: TestRunRequest, token: CancellationToken) { if (!request.include) { return; @@ -57,11 +114,82 @@ export async function runHandler(request: TestRunRequest, token: CancellationTok run.started(test); + // Get the project path for this test + const projectPath = getProjectPathFromTestItem(test); + if (!projectPath) { + run.failed(test, new TestMessage('Could not determine project path for test')); + run.end(); + return; + } + + // Check if we're in a workspace with multiple projects + const projectName = getProjectNameIfWorkspace(projectPath); + let command: string; const executor = extension.ballerinaExtInstance.getBallerinaCmd(); - if (isTestGroupItem(test)) { + + // Handle running all tests in a project group + if (isProjectGroupItem(test)) { + let testCaseNames: string[] = []; + let testItems: TestItem[] = []; + + // Collect all test functions from the project + // Children can be either test groups or test functions directly (when DEFAULT_GROUP is skipped) + test.children.forEach((child) => { + if (isTestFunctionItem(child)) { + // Test added directly to project (DEFAULT_GROUP was skipped) + testCaseNames.push(child.label); + testItems.push(child); + run.started(child); + } else if (isTestGroupItem(child)) { + // Test group - iterate through its children + child.children.forEach((testFunc) => { + if (isTestFunctionItem(testFunc)) { + testCaseNames.push(testFunc.label); + testItems.push(testFunc); + run.started(testFunc); + } + }); + } + }); + + if (projectName) { + // Workspace context - include project name in command + command = testCaseNames.length > 0 + ? `${executor} test --code-coverage --tests ${testCaseNames.join(',')} ${projectName}` + : `${executor} test --code-coverage ${projectName}`; + } else { + // Single project context + command = testCaseNames.length > 0 + ? `${executor} test --code-coverage --tests ${testCaseNames.join(',')}` + : `${executor} test --code-coverage`; + } + + const startTime = Date.now(); + // For workspace, run from workspace root; for single project, run from project path + const workingDirectory = projectName ? StateMachine.context().workspacePath || projectPath : projectPath; + runCommand(command, workingDirectory).then(() => { + const endTime = Date.now(); + const timeElapsed = calculateTimeElapsed(startTime, endTime, testItems); + + reportTestResults(run, testItems, timeElapsed, projectPath).then(() => { + endGroup(test, true, run); + }).catch(() => { + endGroup(test, false, run); + }); + }).catch(() => { + const endTime = Date.now(); + const timeElapsed = calculateTimeElapsed(startTime, endTime, testItems); + + reportTestResults(run, testItems, timeElapsed, projectPath).then(() => { + endGroup(test, true, run); + }).catch(() => { + endGroup(test, false, run); + }); + }); + } else if (isTestGroupItem(test)) { let testCaseNames: string[] = []; - let testItems : TestItem[] = []; + let testItems: TestItem[] = []; test.children.forEach((child) => { const functionName = child.label; testCaseNames.push(functionName); @@ -69,30 +197,44 @@ export async function runHandler(request: TestRunRequest, token: CancellationTok run.started(child); }); - command = `bal test --tests ${testCaseNames.join(',')} --code-coverage`; + if (projectName) { + // Workspace context - include project name in command + command = `${executor} test --code-coverage --tests ${testCaseNames.join(',')} ${projectName}`; + } else { + // Single project context + command = `${executor} test --code-coverage --tests ${testCaseNames.join(',')}`; + } const startTime = Date.now(); - runCommand(command).then(() => { - const EndTime = Date.now(); - const timeElapsed = (EndTime - startTime) / testItems.length; + // For workspace, run from workspace root; for single project, run from project path + const workingDirectory = projectName ? StateMachine.context().workspacePath || projectPath : projectPath; + runCommand(command, workingDirectory).then(() => { + const endTime = Date.now(); + const timeElapsed = calculateTimeElapsed(startTime, endTime, testItems); - reportTestResults(run, testItems, timeElapsed).then(() => { + reportTestResults(run, testItems, timeElapsed, projectPath).then(() => { endGroup(test, true, run); }).catch(() => { endGroup(test, false, run); }); }).catch(() => { - const EndTime = Date.now(); - const timeElapsed = (EndTime - startTime) / testItems.length; + const endTime = Date.now(); + const timeElapsed = calculateTimeElapsed(startTime, endTime, testItems); - reportTestResults(run, testItems, timeElapsed).then(() => { + reportTestResults(run, testItems, timeElapsed, projectPath).then(() => { endGroup(test, true, run); }).catch(() => { endGroup(test, false, run); }); }); } else if (isTestFunctionItem(test)) { - command = `${executor} test --tests ${test.label} --code-coverage`; + if (projectName) { + // Workspace context - include project name in command + command = `${executor} test --code-coverage --tests ${test.label} ${projectName}`; + } else { + // Single project context + command = `${executor} test --code-coverage --tests ${test.label}`; + } const parentGroup = test.parent; let testItems: TestItem[] = []; @@ -105,30 +247,43 @@ export async function runHandler(request: TestRunRequest, token: CancellationTok } const startTime = Date.now(); - runCommand(command).then(() => { - const EndTime = Date.now(); - const timeElapsed = (EndTime - startTime) / testItems.length; + // For workspace, run from workspace root; for single project, run from project path + const workingDirectory = projectName ? StateMachine.context().workspacePath || projectPath : projectPath; + runCommand(command, workingDirectory).then(() => { + const endTime = Date.now(); + const timeElapsed = calculateTimeElapsed(startTime, endTime, testItems); - reportTestResults(run, testItems, timeElapsed, true).then(() => { + reportTestResults(run, testItems, timeElapsed, projectPath, true).then(() => { endGroup(test, true, run); }).catch(() => { endGroup(test, false, run); }); }).catch(() => { - const EndTime = Date.now(); - const timeElapsed = (EndTime - startTime) / testItems.length; + const endTime = Date.now(); + const timeElapsed = calculateTimeElapsed(startTime, endTime, testItems); - reportTestResults(run, testItems, timeElapsed, true).then(() => { + reportTestResults(run, testItems, timeElapsed, projectPath, true).then(() => { endGroup(test, true, run); }).catch(() => { endGroup(test, false, run); }); - }).finally(() => { + }).finally(() => { run.end(); }); } }); } +/** + * Calculate time elapsed per test item + * @param startTime - Start time in milliseconds + * @param endTime - End time in milliseconds + * @param testItems - Array of test items + * @returns Time elapsed per test item in milliseconds + */ +function calculateTimeElapsed(startTime: number, endTime: number, testItems: TestItem[]): number { + return testItems.length > 0 ? (endTime - startTime) / testItems.length : (endTime - startTime); +} + const TEST_RESULTS_PATH = path.join("target", "report", "test_results.json").toString(); enum TEST_STATUS { @@ -137,12 +292,23 @@ enum TEST_STATUS { SKIPPED = 'SKIPPED', } -async function reportTestResults(run: TestRun, testItems: TestItem[], timeElapsed: number, individualTest: boolean = false) { - const projectRoot = StateMachine.context().projectPath; - +async function reportTestResults(run: TestRun, testItems: TestItem[], timeElapsed: number, projectPath: string, individualTest: boolean = false) { // reading test results + // For workspace projects, results are in workspace/target, not project/target + const projectInfo = StateMachine.context().projectInfo; + const workspacePath = StateMachine.context().workspacePath; + + let testResultsPath: string; + if (projectInfo?.children?.length > 0 && workspacePath) { + // Workspace with multiple projects - results are at workspace root + testResultsPath = path.join(workspacePath, TEST_RESULTS_PATH); + } else { + // Single project - results are in project directory + testResultsPath = path.join(projectPath, TEST_RESULTS_PATH); + } + let testsJson: JSON | undefined = undefined; - testsJson = await readTestJson(path.join(projectRoot!, TEST_RESULTS_PATH).toString()); + testsJson = await readTestJson(testResultsPath); if (!testsJson) { for (const test of testItems) { const testMessage: TestMessage = new TestMessage("Command failed"); @@ -151,7 +317,33 @@ async function reportTestResults(run: TestRun, testItems: TestItem[], timeElapse return; } - const moduleStatus = testsJson["moduleStatus"]; + // For workspace projects, test results are nested under packages[].moduleStatus + // For single projects, they're directly at moduleStatus + let moduleStatus; + if (testsJson["packages"]) { + // Workspace structure - find the matching package + const projectName = path.basename(projectPath); + const packages = testsJson["packages"]; + const matchingPackage = packages.find(pkg => pkg["projectName"] === projectName); + + if (matchingPackage) { + moduleStatus = matchingPackage["moduleStatus"]; + } else { + // If we can't find the specific package, try the first one + moduleStatus = packages[0]?.["moduleStatus"]; + } + } else { + // Single project structure + moduleStatus = testsJson["moduleStatus"]; + } + + if (!moduleStatus) { + for (const test of testItems) { + const testMessage: TestMessage = new TestMessage("No test results found"); + run.failed(test, testMessage, timeElapsed); + } + return; + } for (const test of testItems) { let found = false; @@ -211,9 +403,9 @@ function endGroup(test: TestItem, allPassed: boolean, run: TestRun) { run.end(); } -async function runCommand(command: string): Promise { +async function runCommand(command: string, projectPath: string): Promise { return new Promise((resolve, reject) => { - exec(command, { cwd: StateMachine.context().projectPath }, (error, stdout, stderr) => { + exec(command, { cwd: projectPath }, (error, stdout, stderr) => { if (error) { // Report test failure reject(new Error(stderr || 'Test failed!')); diff --git a/workspaces/ballerina/ballerina-extension/src/rpc-managers/ai-panel/rpc-manager.ts b/workspaces/ballerina/ballerina-extension/src/rpc-managers/ai-panel/rpc-manager.ts index 0cd49fbb2dc..b38822402e2 100644 --- a/workspaces/ballerina/ballerina-extension/src/rpc-managers/ai-panel/rpc-manager.ts +++ b/workspaces/ballerina/ballerina-extension/src/rpc-managers/ai-panel/rpc-manager.ts @@ -101,8 +101,7 @@ import { attemptRepairProject, checkProjectDiagnostics } from "./repair-utils"; import { AIPanelAbortController, addToIntegration, cleanDiagnosticMessages, isErrorCode, requirementsSpecification, searchDocumentation } from "./utils"; import { fetchData } from "./utils/fetch-data-utils"; import { checkToken } from "../../../src/views/ai-panel/utils"; -import { getCurrentProjectRoot } from "../../utils/project-utils"; - +import { getWorkspaceTomlValues } from "./../../../src/utils/config"; export class AiPanelRpcManager implements AIPanelAPI { // ================================== @@ -186,7 +185,7 @@ export class AiPanelRpcManager implements AIPanelAPI { } async addToProject(req: AddToProjectRequest): Promise { - const projectPath = await getCurrentProjectRoot(); + const projectPath = StateMachine.context().projectPath; // Check if workspaceFolderPath is a Ballerina project // Assuming a Ballerina project must contain a 'Ballerina.toml' file const ballerinaProjectFile = path.join(projectPath, 'Ballerina.toml'); @@ -209,7 +208,11 @@ export class AiPanelRpcManager implements AIPanelAPI { } async getFromFile(req: GetFromFileRequest): Promise { - const projectPath = await getCurrentProjectRoot(); + let projectPath = StateMachine.context().projectPath; + const workspacePath = StateMachine.context().workspacePath; + if (workspacePath) { + projectPath = workspacePath; + } const ballerinaProjectFile = path.join(projectPath, 'Ballerina.toml'); if (!fs.existsSync(ballerinaProjectFile)) { throw new Error("Not a Ballerina project."); @@ -225,7 +228,11 @@ export class AiPanelRpcManager implements AIPanelAPI { } async deleteFromProject(req: DeleteFromProjectRequest): Promise { - const projectPath = await getCurrentProjectRoot(); + let projectPath = StateMachine.context().projectPath; + const workspacePath = StateMachine.context().workspacePath; + if (workspacePath) { + projectPath = workspacePath; + } const ballerinaProjectFile = path.join(projectPath, 'Ballerina.toml'); if (!fs.existsSync(ballerinaProjectFile)) { throw new Error("Not a Ballerina project."); @@ -247,7 +254,7 @@ export class AiPanelRpcManager implements AIPanelAPI { } async getFileExists(req: GetFromFileRequest): Promise { - const projectPath = await getCurrentProjectRoot(); + const projectPath = StateMachine.context().projectPath; const ballerinaProjectFile = path.join(projectPath, 'Ballerina.toml'); if (!fs.existsSync(ballerinaProjectFile)) { throw new Error("Not a Ballerina project."); @@ -310,7 +317,7 @@ export class AiPanelRpcManager implements AIPanelAPI { async getGeneratedTests(params: TestGenerationRequest): Promise { return new Promise(async (resolve, reject) => { try { - const projectPath = await getCurrentProjectRoot(); + const projectPath = StateMachine.context().projectPath; const generatedTests = await generateTest(projectPath, params, AIPanelAbortController.getInstance()); resolve(generatedTests); @@ -323,7 +330,7 @@ export class AiPanelRpcManager implements AIPanelAPI { async getTestDiagnostics(params: TestGenerationResponse): Promise { return new Promise(async (resolve, reject) => { try { - const projectPath = await getCurrentProjectRoot(); + const projectPath = StateMachine.context().projectPath; const diagnostics = await getDiagnostics(projectPath, params); resolve(diagnostics); } catch (error) { @@ -335,7 +342,7 @@ export class AiPanelRpcManager implements AIPanelAPI { async getServiceSourceForName(params: string): Promise { return new Promise(async (resolve, reject) => { try { - const projectPath = await getCurrentProjectRoot(); + const projectPath = StateMachine.context().projectPath; const { serviceDeclaration } = await getServiceDeclaration(projectPath, params); resolve(serviceDeclaration.source); } catch (error) { @@ -347,7 +354,7 @@ export class AiPanelRpcManager implements AIPanelAPI { async getResourceSourceForMethodAndPath(params: string): Promise { return new Promise(async (resolve, reject) => { try { - const projectPath = await getCurrentProjectRoot(); + const projectPath = StateMachine.context().projectPath; const { resourceAccessorDef } = await getResourceAccessorDef(projectPath, params); resolve(resourceAccessorDef.source); } catch (error) { @@ -359,7 +366,7 @@ export class AiPanelRpcManager implements AIPanelAPI { async getServiceNames(): Promise { return new Promise(async (resolve, reject) => { try { - const projectPath = await getCurrentProjectRoot(); + const projectPath = StateMachine.context().projectPath; const serviceDeclNames = await getServiceDeclarationNames(projectPath); resolve({ mentions: serviceDeclNames @@ -373,7 +380,7 @@ export class AiPanelRpcManager implements AIPanelAPI { async getResourceMethodAndPaths(): Promise { return new Promise(async (resolve, reject) => { try { - const projectPath = await getCurrentProjectRoot(); + const projectPath = StateMachine.context().projectPath; const resourceAccessorNames = await getResourceAccessorNames(projectPath); resolve({ mentions: resourceAccessorNames @@ -393,7 +400,7 @@ export class AiPanelRpcManager implements AIPanelAPI { } async applyDoOnFailBlocks(): Promise { - const projectPath = await getCurrentProjectRoot(); + const projectPath = StateMachine.context().projectPath; if (!projectPath) { return null; @@ -655,7 +662,11 @@ export class AiPanelRpcManager implements AIPanelAPI { async addFilesToProject(params: AddFilesToProjectRequest): Promise { try { - const projectPath = await getCurrentProjectRoot(); + let projectPath = StateMachine.context().projectPath; + const workspacePath = StateMachine.context().workspacePath; + if (workspacePath) { + projectPath = workspacePath; + } const ballerinaProjectFile = path.join(projectPath, "Ballerina.toml"); if (!fs.existsSync(ballerinaProjectFile)) { @@ -696,39 +707,6 @@ export class AiPanelRpcManager implements AIPanelAPI { } } -function getModifiedAssistantResponse(originalAssistantResponse: string, tempDir: string, project: ProjectSource): string { - const newSourceFiles = []; - for (const sourceFile of project.sourceFiles) { - const newContentPath = path.join(tempDir, sourceFile.filePath); - if (!fs.existsSync(newContentPath) && !(sourceFile.filePath.endsWith('.bal'))) { - newSourceFiles.push({ filePath: sourceFile.filePath, content: sourceFile.content }); - continue; - } - newSourceFiles.push({ filePath: sourceFile.filePath, content: fs.readFileSync(newContentPath, 'utf-8') }); - } - - // Build a map from filenames to their new content - const fileContentMap = new Map(); - for (const sourceFile of newSourceFiles) { - fileContentMap.set(sourceFile.filePath, sourceFile.content); - } - - // Replace code blocks in originalAssistantResponse with new content - const modifiedResponse = originalAssistantResponse.replace( - /\s*```ballerina([\s\S]*?)```[\s\S]*?<\/code>/g, - (match, filename) => { - if (fileContentMap.has(filename)) { - const newContent = fileContentMap.get(filename); - return `\n\`\`\`ballerina\n${newContent}\n\`\`\`\n`; - } else { - // If no new content, keep the original - return match; - } - } - ); - - return modifiedResponse; -} interface SummaryResponse { summary: string; @@ -741,7 +719,11 @@ interface BalModification { async function setupProjectEnvironment(project: ProjectSource): Promise<{ langClient: ExtendedLangClient, tempDir: string } | null> { //TODO: Move this to LS - const projectPath = await getCurrentProjectRoot(); + let projectPath = StateMachine.context().projectPath; + const workspacePath = StateMachine.context().workspacePath; + if (workspacePath) { + projectPath = workspacePath; + } if (!projectPath) { return null; } @@ -763,19 +745,6 @@ async function setupProjectEnvironment(project: ProjectSource): Promise<{ langCl return { langClient, tempDir }; } -export function getProjectFromResponse(req: string): ProjectSource { - const sourceFiles: SourceFile[] = []; - const regex = /\s*```ballerina([\s\S]*?)```\s*<\/code>/g; - let match; - - while ((match = regex.exec(req)) !== null) { - const filePath = match[1]; - const fileContent = match[2].trim(); - sourceFiles.push({ filePath, content: fileContent }); - } - - return { sourceFiles, projectName: "" }; -} function getErrorDiagnostics(diagnostics: Diagnostics[]): DiagnosticEntry[] { const errorDiagnostics: DiagnosticEntry[] = []; @@ -814,15 +783,14 @@ enum CodeGenerationType { CODE_GENERATION = "CODE_GENERATION" } -async function getCurrentProjectSource(requestType: OperationType): Promise { - const projectPath = await getCurrentProjectRoot(); - - if (!projectPath) { +async function getCurrentProjectSource(requestType: OperationType, projectPath?: string): Promise { + const targetProjectPath = projectPath || StateMachine.context().projectPath; + if (!targetProjectPath) { return null; } // Read the Ballerina.toml file to get package name - const ballerinaTomlPath = path.join(projectPath, 'Ballerina.toml'); + const ballerinaTomlPath = path.join(targetProjectPath, 'Ballerina.toml'); let packageName; if (fs.existsSync(ballerinaTomlPath)) { const tomlContent = await fs.promises.readFile(ballerinaTomlPath, 'utf-8'); @@ -842,20 +810,20 @@ async function getCurrentProjectSource(requestType: OperationType): Promise { - let assist_resp = req.assistant_response; - assist_resp = assist_resp.replace(/import ballerinax\/client\.config/g, "import ballerinax/'client.config"); - const project: ProjectSource = getProjectFromResponse(assist_resp); + // Fix import statement format + const processedSourceFiles = req.sourceFiles.map(sf => ({ + ...sf, + content: sf.content.replace(/import ballerinax\/client\.config/g, "import ballerinax/'client.config") + })); + + const project: ProjectSource = { + sourceFiles: processedSourceFiles, + projectName: "", + packagePath: "", + isActive: true + }; + const environment = await setupProjectEnvironment(project); if (!environment) { - return { assistant_response: assist_resp, diagnostics: { diagnostics: [] } }; + return { sourceFiles: processedSourceFiles, diagnostics: { diagnostics: [] } }; } - const { langClient, tempDir } = environment; - // check project diagnostics - let remainingDiags: Diagnostics[] = await attemptRepairProject(langClient, tempDir); + let { langClient, tempDir } = environment; + let remainingDiags: Diagnostics[] = []; + if (StateMachine.context().workspacePath) { + // this is a workspace project + // assign active project path to tempDir + const projectTempDir = path.join(tempDir, path.basename(StateMachine.context().projectPath)); + remainingDiags = await attemptRepairProject(langClient, projectTempDir); + } else { + remainingDiags = await attemptRepairProject(langClient, tempDir); + } const filteredDiags: DiagnosticEntry[] = getErrorDiagnostics(remainingDiags); - const newAssistantResponse = getModifiedAssistantResponse(assist_resp, tempDir, project); + + // Read repaired files from temp directory + const repairedSourceFiles = []; + for (const sourceFile of project.sourceFiles) { + const newContentPath = path.join(tempDir, sourceFile.filePath); + if (!fs.existsSync(newContentPath) && !(sourceFile.filePath.endsWith('.bal'))) { + repairedSourceFiles.push({ filePath: sourceFile.filePath, content: sourceFile.content }); + continue; + } + repairedSourceFiles.push({ filePath: sourceFile.filePath, content: fs.readFileSync(newContentPath, 'utf-8') }); + } + await closeAllBallerinaFiles(tempDir); return { - assistant_response: newAssistantResponse, + sourceFiles: repairedSourceFiles, diagnostics: { diagnostics: filteredDiags } }; } -export async function getProjectSource(requestType: OperationType): Promise { - // Fetch the Ballerina project source - const project: BallerinaProject = await getCurrentProjectSource(requestType); - - // Initialize the ProjectSource object +function convertToProjectSource(project: BallerinaProject, pkgPath: string, isActive: boolean): ProjectSource { const projectSource: ProjectSource = { sourceFiles: [], projectModules: [], projectName: project.projectName, + packagePath: pkgPath, + isActive: isActive }; // Iterate through root-level sources @@ -953,8 +947,6 @@ export async function getProjectSource(requestType: OperationType): Promise { + const context = StateMachine.context(); + const currentProjectPath = context.projectPath; + const workspacePath = context.workspacePath; + + // Early return for non-workspace case: single project only + if (!workspacePath) { + const project = await getCurrentProjectSource(requestType); + // No workspace context, so packagePath is empty string + return [convertToProjectSource(project, "", true)]; + } + + // Workspace case: load all packages from the workspace + const workspaceTomlValues = await getWorkspaceTomlValues(workspacePath); + + // Fallback to single project if workspace.toml is invalid or has no packages + if (!workspaceTomlValues || !workspaceTomlValues.workspace || !workspaceTomlValues.workspace.packages) { + const project = await getCurrentProjectSource(requestType); + // Workspace exists but invalid, treat as non-workspace + return [convertToProjectSource(project, "", true)]; + } + + const packagePaths = StateMachine.context().projectInfo?.children.map(child => child.projectPath); + + // Load all packages in parallel + const projectSources: ProjectSource[] = await Promise.all( + packagePaths.map(async (pkgPath) => { + // Resolve the full path for reading files and checking if active + const fullPackagePath = path.isAbsolute(pkgPath) + ? pkgPath + : path.join(workspacePath, pkgPath); + + const project = await getCurrentProjectSource(requestType, fullPackagePath); + const isActive = fullPackagePath === currentProjectPath; + + // Use relative path from workspace for packagePath + const relativePackagePath = path.isAbsolute(pkgPath) + ? path.relative(workspacePath, pkgPath) + : pkgPath; + + return convertToProjectSource(project, relativePackagePath, isActive); + }) + ); + + return projectSources; +} diff --git a/workspaces/ballerina/ballerina-extension/src/rpc-managers/bi-diagram/rpc-handler.ts b/workspaces/ballerina/ballerina-extension/src/rpc-managers/bi-diagram/rpc-handler.ts index d87acd707d5..db61df3bb88 100644 --- a/workspaces/ballerina/ballerina-extension/src/rpc-managers/bi-diagram/rpc-handler.ts +++ b/workspaces/ballerina/ballerina-extension/src/rpc-managers/bi-diagram/rpc-handler.ts @@ -47,6 +47,8 @@ import { deleteConfigVariableV2, deleteFlowNode, deleteOpenApiGeneratedModules, + deleteProject, + DeleteProjectRequest, deleteType, DeleteTypeRequest, DeploymentRequest, @@ -148,7 +150,8 @@ import { getExpressionTokens, ExpressionTokensRequest, addProjectToWorkspace, - AddProjectToWorkspaceRequest + AddProjectToWorkspaceRequest, + OpenReadmeRequest } from "@wso2/ballerina-core"; import { Messenger } from "vscode-messenger"; import { BiDiagramRpcManager } from "./rpc-manager"; @@ -170,6 +173,7 @@ export function registerBiDiagramRpcHandlers(messenger: Messenger) { messenger.onRequest(getNodeTemplate, (args: BINodeTemplateRequest) => rpcManger.getNodeTemplate(args)); messenger.onRequest(getAiSuggestions, (args: BIAiSuggestionsRequest) => rpcManger.getAiSuggestions(args)); messenger.onNotification(createProject, (args: ProjectRequest) => rpcManger.createProject(args)); + messenger.onNotification(deleteProject, (args: DeleteProjectRequest) => rpcManger.deleteProject(args)); messenger.onNotification(addProjectToWorkspace, (args: AddProjectToWorkspaceRequest) => rpcManger.addProjectToWorkspace(args)); messenger.onRequest(getWorkspaces, () => rpcManger.getWorkspaces()); messenger.onRequest(getProjectStructure, () => rpcManger.getProjectStructure()); @@ -186,8 +190,8 @@ export function registerBiDiagramRpcHandlers(messenger: Messenger) { messenger.onRequest(getConfigVariableNodeTemplate, (args: GetConfigVariableNodeTemplateRequest) => rpcManger.getConfigVariableNodeTemplate(args)); messenger.onRequest(openConfigToml, (args: OpenConfigTomlRequest) => rpcManger.openConfigToml(args)); messenger.onRequest(getModuleNodes, () => rpcManger.getModuleNodes()); - messenger.onRequest(getReadmeContent, () => rpcManger.getReadmeContent()); - messenger.onNotification(openReadme, () => rpcManger.openReadme()); + messenger.onRequest(getReadmeContent, (args: ReadmeContentRequest) => rpcManger.getReadmeContent(args)); + messenger.onNotification(openReadme, (args: OpenReadmeRequest) => rpcManger.openReadme(args)); messenger.onRequest(renameIdentifier, (args: RenameIdentifierRequest) => rpcManger.renameIdentifier(args)); messenger.onRequest(deployProject, (args: DeploymentRequest) => rpcManger.deployProject(args)); messenger.onNotification(openAIChat, (args: AIChatRequest) => rpcManger.openAIChat(args)); diff --git a/workspaces/ballerina/ballerina-extension/src/rpc-managers/bi-diagram/rpc-manager.ts b/workspaces/ballerina/ballerina-extension/src/rpc-managers/bi-diagram/rpc-manager.ts index ed92e9295c7..b21914b468d 100644 --- a/workspaces/ballerina/ballerina-extension/src/rpc-managers/bi-diagram/rpc-manager.ts +++ b/workspaces/ballerina/ballerina-extension/src/rpc-managers/bi-diagram/rpc-manager.ts @@ -65,6 +65,7 @@ import { DIRECTORY_MAP, DeleteConfigVariableRequestV2, DeleteConfigVariableResponseV2, + DeleteProjectRequest, DeleteTypeRequest, DeleteTypeResponse, DeploymentRequest, @@ -145,6 +146,7 @@ import { ExpressionTokensRequest, ExpressionTokensResponse, AddProjectToWorkspaceRequest, + OpenReadmeRequest, } from "@wso2/ballerina-core"; import * as fs from "fs"; import * as path from 'path'; @@ -167,10 +169,10 @@ import { notifyBreakpointChange } from "../../RPCLayer"; import { OLD_BACKEND_URL } from "../../features/ai/utils"; import { cleanAndValidateProject, getCurrentBIProject } from "../../features/config-generator/configGenerator"; import { BreakpointManager } from "../../features/debugger/breakpoint-manager"; -import { openView, StateMachine, updateView } from "../../stateMachine"; +import { StateMachine, updateView } from "../../stateMachine"; import { getAccessToken, getLoginMethod } from "../../utils/ai/auth"; import { getCompleteSuggestions } from '../../utils/ai/completions'; -import { README_FILE, addProjectToExistingWorkspace, convertProjectToWorkspace, createBIAutomation, createBIFunction, createBIProjectPure, createBIWorkspace, openInVSCode } from "../../utils/bi"; +import { README_FILE, addProjectToExistingWorkspace, convertProjectToWorkspace, createBIAutomation, createBIFunction, createBIProjectPure, createBIWorkspace, deleteProjectFromWorkspace, openInVSCode } from "../../utils/bi"; import { writeBallerinaFileDidOpen } from "../../utils/modification"; import { updateSourceCode } from "../../utils/source-utils"; import { getView } from "../../utils/state-machine-utils"; @@ -596,18 +598,54 @@ export class BiDiagramRpcManager implements BIDiagramAPI { } } + async deleteProject(params: DeleteProjectRequest): Promise { + const projectInfo = StateMachine.context().projectInfo; + const targetProject = projectInfo?.children.find((child) => child.projectPath === params.projectPath); + const projectName = targetProject?.title || targetProject?.name; + if (!projectName) { + return; + } + // Confirm destructive action with user + const response = await window.showWarningMessage( + `Delete Integration '${projectName}'?`, + { + modal: true, + detail: "This action cannot be undone. The integration will be permanently removed from the workspace." + }, + { title: "Delete", isCloseAffordance: false }, + { title: "Cancel", isCloseAffordance: true } + ); + + if (response?.title !== "Delete") { + return; + } + + const projectPath = params.projectPath; + const workspacePath = projectInfo?.projectPath; + await deleteProjectFromWorkspace(workspacePath, projectPath); + + // Refresh project info to update UI with newly added project + StateMachine.refreshProjectInfo(); + } + async addProjectToWorkspace(params: AddProjectToWorkspaceRequest): Promise { if (params.convertToWorkspace) { try { await convertProjectToWorkspace(params); + // Refresh project info to update UI with newly added project + StateMachine.refreshProjectInfo(); } catch (error) { - window.showErrorMessage("Error converting project to workspace"); + window.showErrorMessage("Error converting integration to workspace"); + console.error("Error converting integration to workspace:", error); } } else { try { await addProjectToExistingWorkspace(params); + // Refresh project info to update UI with newly added project + StateMachine.refreshProjectInfo(); } catch (error) { - window.showErrorMessage("Error adding project to existing workspace"); + window.showErrorMessage("Error adding integration to existing workspace"); + console.error("Error adding integration to existing workspace:", error); } } } @@ -813,10 +851,13 @@ export class BiDiagramRpcManager implements BIDiagramAPI { } async handleReadmeContent(params: ReadmeContentRequest): Promise { - // console.log(">>> Savineadme.md", params); return new Promise((resolve) => { - const projectPath = StateMachine.context().projectPath; - const readmePath = path.join(projectPath, README_FILE); + const projectPath = params.projectPath; + const readmePath = projectPath ? path.join(projectPath, README_FILE) : undefined; + if (!readmePath) { + resolve({ content: "" }); + return; + } if (params.read) { if (!fs.existsSync(readmePath)) { resolve({ content: "" }); @@ -993,16 +1034,10 @@ export class BiDiagramRpcManager implements BIDiagramAPI { } - async getReadmeContent(): Promise { + async getReadmeContent(params: ReadmeContentRequest): Promise { return new Promise((resolve) => { - const workspaceFolders = workspace.workspaceFolders; - if (!workspaceFolders || workspaceFolders.length === 0) { - resolve({ content: "" }); - return; - } - - const projectRoot = workspaceFolders[0].uri.fsPath; - const readmePath = path.join(projectRoot, "README.md"); + const projectPath = params.projectPath; + const readmePath = path.join(projectPath, "README.md"); if (!fs.existsSync(readmePath)) { resolve({ content: "" }); @@ -1020,19 +1055,28 @@ export class BiDiagramRpcManager implements BIDiagramAPI { }); } - openReadme(): void { - const workspaceFolders = workspace.workspaceFolders; - if (!workspaceFolders || workspaceFolders.length === 0) { - window.showErrorMessage("No workspace folder is open."); - return; - } - - const projectRoot = workspaceFolders[0].uri.fsPath; + openReadme(params: OpenReadmeRequest): void { + const projectRoot = params.projectPath; const readmePath = path.join(projectRoot, "README.md"); if (!fs.existsSync(readmePath)) { // Create README.md if it doesn't exist - fs.writeFileSync(readmePath, "# Project Overview\n\nAdd your project description here."); + + const projectInfo = StateMachine.context().projectInfo; + let content = ""; + + if (params.isWorkspaceReadme) { + const workspaceName = projectInfo?.title || projectInfo?.name; + content = `# ${workspaceName} Workspace\n\nAdd your workspace description here.`; + } else { + const project = projectInfo?.children && projectInfo?.children.length > 0 + ? projectInfo?.children.find((child) => child.projectPath === params.projectPath) + : projectInfo; + const projectName = project?.title || project?.name; + content = `# ${projectName} Integration\n\nAdd your integration description here.`; + } + + fs.writeFileSync(readmePath, content); } // Open README.md in the editor @@ -1041,8 +1085,6 @@ export class BiDiagramRpcManager implements BIDiagramAPI { }); } - - async deployProject(params: DeploymentRequest): Promise { const scopes = params.integrationTypes; @@ -1053,7 +1095,7 @@ export class BiDiagramRpcManager implements BIDiagramAPI { } else { // Show a quick pick to select deployment option const selectedScope = await window.showQuickPick(scopes, { - placeHolder: 'You have different types of artifacts within this project. Select the artifact type to be deployed' + placeHolder: 'You have different types of artifacts within this integration. Select the artifact type to be deployed' }); integrationType = selectedScope as SCOPE; } diff --git a/workspaces/ballerina/ballerina-extension/src/rpc-managers/migrate-integration/rpc-handler.ts b/workspaces/ballerina/ballerina-extension/src/rpc-managers/migrate-integration/rpc-handler.ts index 157bd86354d..b36acc83ff5 100644 --- a/workspaces/ballerina/ballerina-extension/src/rpc-managers/migrate-integration/rpc-handler.ts +++ b/workspaces/ballerina/ballerina-extension/src/rpc-managers/migrate-integration/rpc-handler.ts @@ -26,19 +26,25 @@ import { MigrationToolPullRequest, openMigrationReport, OpenMigrationReportRequest, + openSubProjectReport, + OpenSubProjectReportRequest, pullMigrationTool, saveMigrationReport, - SaveMigrationReportRequest + SaveMigrationReportRequest, + storeSubProjectReports, + StoreSubProjectReportsRequest } from "@wso2/ballerina-core"; import { Messenger } from "vscode-messenger"; import { MigrateIntegrationRpcManager } from "./rpc-manager"; export function registerMigrateIntegrationRpcHandlers(messenger: Messenger) { - const rpcManger = new MigrateIntegrationRpcManager(); + const rpcManger = MigrateIntegrationRpcManager.getInstance(); messenger.onRequest(getMigrationTools, () => rpcManger.getMigrationTools()); messenger.onNotification(pullMigrationTool, (args: MigrationToolPullRequest) => rpcManger.pullMigrationTool(args)); messenger.onRequest(importIntegration, (args: ImportIntegrationRPCRequest) => rpcManger.importIntegration(args)); messenger.onNotification(openMigrationReport, (args: OpenMigrationReportRequest) => rpcManger.openMigrationReport(args)); + messenger.onNotification(openSubProjectReport, (args: OpenSubProjectReportRequest) => rpcManger.openSubProjectReport(args)); + messenger.onNotification(storeSubProjectReports, (args: StoreSubProjectReportsRequest) => rpcManger.storeSubProjectReports(args)); messenger.onNotification(saveMigrationReport, (args: SaveMigrationReportRequest) => rpcManger.saveMigrationReport(args)); messenger.onNotification(migrateProject, (args: MigrateRequest) => rpcManger.migrateProject(args)); } diff --git a/workspaces/ballerina/ballerina-extension/src/rpc-managers/migrate-integration/rpc-manager.ts b/workspaces/ballerina/ballerina-extension/src/rpc-managers/migrate-integration/rpc-manager.ts index 65d64dc91f5..9aaeedbe363 100644 --- a/workspaces/ballerina/ballerina-extension/src/rpc-managers/migrate-integration/rpc-manager.ts +++ b/workspaces/ballerina/ballerina-extension/src/rpc-managers/migrate-integration/rpc-manager.ts @@ -25,14 +25,31 @@ import { MigrateIntegrationAPI, MigrateRequest, OpenMigrationReportRequest, - SaveMigrationReportRequest + OpenSubProjectReportRequest, + SaveMigrationReportRequest, + StoreSubProjectReportsRequest } from "@wso2/ballerina-core"; +import os from "os"; +import path from "path"; +import vscode from "vscode"; import { StateMachine } from "../../stateMachine"; import { createBIProjectFromMigration, getUsername, sanitizeName } from "../../utils/bi"; import { pullMigrationTool } from "../../utils/migrate-integration"; import { MigrationReportWebview } from "../../views/migration-report/webview"; export class MigrateIntegrationRpcManager implements MigrateIntegrationAPI { + private static instance: MigrateIntegrationRpcManager; + private subProjectReports: Map = new Map(); + + private constructor() { } + + public static getInstance(): MigrateIntegrationRpcManager { + if (!MigrateIntegrationRpcManager.instance) { + MigrateIntegrationRpcManager.instance = new MigrateIntegrationRpcManager(); + } + return MigrateIntegrationRpcManager.instance; + } + async pullMigrationTool(args: { toolName: string; version: string }): Promise { try { await pullMigrationTool(args.toolName, args.version); @@ -70,22 +87,115 @@ export class MigrateIntegrationRpcManager implements MigrateIntegrationAPI { MigrationReportWebview.createOrShow(params.fileName, params.reportContent); } - async saveMigrationReport(params: SaveMigrationReportRequest): Promise { - const vscode = await import('vscode'); - - // Show save dialog - const saveUri = await vscode.window.showSaveDialog({ - defaultUri: vscode.Uri.file(params.defaultFileName), - filters: { - 'HTML files': ['html'], - 'All files': ['*'] + async openSubProjectReport(params: OpenSubProjectReportRequest): Promise { + let reportContent = this.subProjectReports.get(params.projectName); + + // If not found, try with _ballerina suffix + if (!reportContent) { + reportContent = this.subProjectReports.get(`${params.projectName}_ballerina`); + } + + // If still not found, try to find a fuzzy match by checking all keys + if (!reportContent) { + const matchingKeys = Array.from(this.subProjectReports.keys()).filter(key => + key.startsWith(params.projectName) + ); + if (matchingKeys.length > 0) { + reportContent = this.subProjectReports.get(matchingKeys[0]); } + } + + if (!reportContent) { + const availableKeys = Array.from(this.subProjectReports.keys()); + throw new Error(`Report for project '${params.projectName}' not found. Available projects: ${availableKeys.join(', ')}`); + } + MigrationReportWebview.createOrShow(params.projectName, reportContent); + } + + async storeSubProjectReports(params: StoreSubProjectReportsRequest): Promise { + this.subProjectReports.clear(); + Object.entries(params.reports).forEach(([projectName, reportContent]) => { + this.subProjectReports.set(projectName, reportContent); }); + } - if (saveUri) { - // Write the report content to the selected file - await vscode.workspace.fs.writeFile(saveUri, Buffer.from(params.reportContent, 'utf8')); - vscode.window.showInformationMessage(`Migration report saved to ${saveUri.fsPath}`); + async saveMigrationReport(params: SaveMigrationReportRequest): Promise { + + // Check if this is a multi-project save (has projectReports) + const hasMultipleProjects = params.projectReports && Object.keys(params.projectReports).length > 0; + + if (hasMultipleProjects) { + // For multi-project scenarios, show folder dialog + // Default to workspace root, or home directory as fallback (works on all OSes) + let defaultUri: any; + if (vscode.workspace.workspaceFolders && vscode.workspace.workspaceFolders.length > 0) { + defaultUri = vscode.workspace.workspaceFolders[0].uri; + } else { + // Fall back to user's home directory (cross-platform) + defaultUri = vscode.Uri.file(os.homedir()); + } + + const folderUri = await vscode.window.showOpenDialog({ + canSelectFolders: true, + canSelectFiles: false, + canSelectMany: false, + defaultUri: defaultUri, + title: 'Select folder to save migration reports' + }); + + if (!folderUri || folderUri.length === 0) { + return; + } + + const baseDir = folderUri[0]; + + try { + // Write the aggregate report at the root + const aggregateReportPath = path.join(baseDir.fsPath, params.defaultFileName); + await vscode.workspace.fs.writeFile( + vscode.Uri.file(aggregateReportPath), + Buffer.from(params.reportContent, 'utf8') + ); + console.log(`Aggregate migration report saved to ${aggregateReportPath}`); + + // Write per-project reports in subdirectories + for (const [projectName, reportContent] of Object.entries(params.projectReports)) { + const projectDir = path.join(baseDir.fsPath, projectName); + const projectReportPath = path.join(projectDir, 'migration_report.html'); + + // Create project subdirectory if it doesn't exist + await vscode.workspace.fs.createDirectory(vscode.Uri.file(projectDir)); + + // Write project report + await vscode.workspace.fs.writeFile( + vscode.Uri.file(projectReportPath), + Buffer.from(reportContent, 'utf8') + ); + console.log(`Project migration report saved to ${projectReportPath}`); + } + + vscode.window.showInformationMessage( + `Migration reports saved successfully to ${baseDir.fsPath}` + ); + } catch (error) { + console.error('Failed to save multi-project migration reports:', error); + vscode.window.showErrorMessage(`Failed to save migration reports: ${error instanceof Error ? error.message : String(error)}`); + } + } else { + // Single project - use simple save dialog + const saveUri = await vscode.window.showSaveDialog({ + defaultUri: vscode.Uri.file(params.defaultFileName), + filters: { + 'HTML files': ['html'], + 'All files': ['*'] + } + }); + + if (saveUri) { + // Write the report content to the selected file + await vscode.workspace.fs.writeFile(saveUri, Buffer.from(params.reportContent, 'utf8')); + vscode.window.showInformationMessage(`Migration report saved to ${saveUri.fsPath}`); + } } } diff --git a/workspaces/ballerina/ballerina-extension/src/rpc-managers/visualizer/rpc-handler.ts b/workspaces/ballerina/ballerina-extension/src/rpc-managers/visualizer/rpc-handler.ts index 20a990373b8..61f9d04cce9 100644 --- a/workspaces/ballerina/ballerina-extension/src/rpc-managers/visualizer/rpc-handler.ts +++ b/workspaces/ballerina/ballerina-extension/src/rpc-managers/visualizer/rpc-handler.ts @@ -28,6 +28,7 @@ import { goSelected, HistoryEntry, joinProjectPath, + JoinProjectPathRequest, openView, OpenViewRequest, redo, @@ -51,7 +52,7 @@ export function registerVisualizerRpcHandlers(messenger: Messenger) { messenger.onRequest(redo, (count: number) => rpcManger.redo(count)); messenger.onNotification(addToUndoStack, (args: AddToUndoStackRequest) => rpcManger.addToUndoStack(args)); messenger.onRequest(undoRedoState, () => rpcManger.undoRedoState()); - messenger.onRequest(joinProjectPath, (args: string | string[]) => rpcManger.joinProjectPath(args)); + messenger.onRequest(joinProjectPath, (args: JoinProjectPathRequest) => rpcManger.joinProjectPath(args)); messenger.onRequest(getThemeKind, () => rpcManger.getThemeKind()); messenger.onRequest(updateCurrentArtifactLocation, (args: UpdatedArtifactsResponse) => rpcManger.updateCurrentArtifactLocation(args)); } diff --git a/workspaces/ballerina/ballerina-extension/src/rpc-managers/visualizer/rpc-manager.ts b/workspaces/ballerina/ballerina-extension/src/rpc-managers/visualizer/rpc-manager.ts index 0226d4cfc8a..aa800f16d1a 100644 --- a/workspaces/ballerina/ballerina-extension/src/rpc-managers/visualizer/rpc-manager.ts +++ b/workspaces/ballerina/ballerina-extension/src/rpc-managers/visualizer/rpc-manager.ts @@ -20,6 +20,8 @@ import { ColorThemeKind, EVENT_TYPE, HistoryEntry, + JoinProjectPathRequest, + JoinProjectPathResponse, MACHINE_VIEW, OpenViewRequest, PopupVisualizerLocation, @@ -45,7 +47,7 @@ export class VisualizerRpcManager implements VisualizerAPI { return new Promise(async (resolve) => { if (params.isPopup) { const view = params.location.view; - if (view && view === MACHINE_VIEW.Overview) { + if (view && view === MACHINE_VIEW.PackageOverview) { openPopupView(EVENT_TYPE.CLOSE_VIEW, params.location as PopupVisualizerLocation); } else { openPopupView(params.type, params.location as PopupVisualizerLocation); @@ -67,8 +69,17 @@ export class VisualizerRpcManager implements VisualizerAPI { goHome(): void { history.clear(); + const isWithinBallerinaWorkspace = !!StateMachine.context().workspacePath; commands.executeCommand(SHARED_COMMANDS.FORCE_UPDATE_PROJECT_ARTIFACTS).then(() => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.Overview }, true); + openView( + EVENT_TYPE.OPEN_VIEW, + { + view: isWithinBallerinaWorkspace + ? MACHINE_VIEW.WorkspaceOverview + : MACHINE_VIEW.PackageOverview + }, + true + ); }); } @@ -112,7 +123,7 @@ export class VisualizerRpcManager implements VisualizerAPI { clearTimeout(timeoutId); StateMachine.setReadyMode(); if (!currentArtifact) { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.Overview }); + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.PackageOverview }); resolve("Undo successful"); // resolve the undo string } notifyCurrentWebview(); @@ -126,7 +137,7 @@ export class VisualizerRpcManager implements VisualizerAPI { console.log("No artifact update notification received within 10 seconds"); unsubscribe(); StateMachine.setReadyMode(); - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.Overview }); + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.PackageOverview }); reject(new Error("Operation timed out. Please try again.")); }, 10000); @@ -171,7 +182,7 @@ export class VisualizerRpcManager implements VisualizerAPI { console.log("No artifact update notification received within 10 seconds"); unsubscribe(); StateMachine.setReadyMode(); - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.Overview }); + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.PackageOverview }); reject(new Error("Operation timed out. Please try again.")); }, 10000); @@ -198,11 +209,25 @@ export class VisualizerRpcManager implements VisualizerAPI { }); } - async joinProjectPath(segments: string | string[]): Promise { + async joinProjectPath(params: JoinProjectPathRequest): Promise { return new Promise((resolve) => { - const projectPath = StateMachine.context().projectPath; - const filePath = Array.isArray(segments) ? Utils.joinPath(URI.file(projectPath), ...segments) : Utils.joinPath(URI.file(projectPath), segments); - resolve(filePath.fsPath); + let projectPath = StateMachine.context().projectPath; + // If code data is provided, try to find the project path from the project structure + if (params.codeData && params.codeData.packageName) { + const packageInfo = StateMachine.context().projectStructure.projects.find(project => { + console.log(">>> project", project); + return project.projectName === params.codeData.packageName; + }); + if (packageInfo) { + projectPath = packageInfo.projectPath; + } + } + if (!projectPath) { + resolve({ filePath: "", projectPath: "" }); + return; + } + const filePath = Array.isArray(params.segments) ? Utils.joinPath(URI.file(projectPath), ...params.segments) : Utils.joinPath(URI.file(projectPath), params.segments); + resolve({ filePath: filePath.fsPath, projectPath: projectPath }); }); } async undoRedoState(): Promise { diff --git a/workspaces/ballerina/ballerina-extension/src/stateMachine.ts b/workspaces/ballerina/ballerina-extension/src/stateMachine.ts index 340671dfac4..c3003ca8d70 100644 --- a/workspaces/ballerina/ballerina-extension/src/stateMachine.ts +++ b/workspaces/ballerina/ballerina-extension/src/stateMachine.ts @@ -2,12 +2,39 @@ import { ExtendedLangClient } from './core'; import { createMachine, assign, interpret } from 'xstate'; import { activateBallerina } from './extension'; -import { EVENT_TYPE, SyntaxTree, History, MachineStateValue, IUndoRedoManager, VisualizerLocation, webviewReady, MACHINE_VIEW, DIRECTORY_MAP, SCOPE, ProjectStructureResponse, ProjectStructureArtifactResponse, CodeData, ProjectDiagnosticsResponse, Type } from "@wso2/ballerina-core"; +import { + EVENT_TYPE, + SyntaxTree, + History, + MachineStateValue, + IUndoRedoManager, + VisualizerLocation, + webviewReady, + MACHINE_VIEW, + DIRECTORY_MAP, + SCOPE, + ProjectStructureResponse, + ProjectStructureArtifactResponse, + CodeData, + ProjectDiagnosticsResponse, + Type, + dependencyPullProgress, + BI_COMMANDS, + NodePosition, + ProjectInfo +} from "@wso2/ballerina-core"; import { fetchAndCacheLibraryData } from './features/library-browser'; import { VisualizerWebview } from './views/visualizer/webview'; -import { commands, extensions, ShellExecution, Task, TaskDefinition, tasks, Uri, window, workspace, WorkspaceFolder } from 'vscode'; +import { commands, extensions, Uri, window, workspace, WorkspaceFolder } from 'vscode'; import { notifyCurrentWebview, RPCLayer } from './RPCLayer'; -import { generateUid, getComponentIdentifier, getNodeByIndex, getNodeByName, getNodeByUid, getView } from './utils/state-machine-utils'; +import { + generateUid, + getComponentIdentifier, + getNodeByIndex, + getNodeByName, + getNodeByUid, + getView +} from './utils/state-machine-utils'; import * as path from 'path'; import { extension } from './BalExtensionContext'; import { AIStateMachine } from './views/ai-panel/aiMachine'; @@ -17,18 +44,18 @@ import { checkIsBallerinaWorkspace, checkIsBI, fetchScope, - filterPackagePaths, getOrgPackageName, UndoRedoManager, - getProjectTomlValues, - getWorkspaceTomlValues + getOrgAndPackageName } from './utils'; -import { buildProjectArtifactsStructure } from './utils/project-artifacts'; +import { buildProjectsStructure } from './utils/project-artifacts'; +import { runCommandWithOutput } from './utils/runCommand'; +import { buildOutputChannel } from './utils/logger'; export interface ProjectMetadata { readonly isBI: boolean; - readonly projectPath: string; readonly workspacePath?: string; + readonly projectPath?: string; readonly scope?: SCOPE; readonly orgName?: string; readonly packageName?: string; @@ -47,7 +74,7 @@ let pendingProjectRootUpdateResolvers: Array<() => void> = []; const stateMachine = createMachine( { - /** @xstate-layout N4IgpgJg5mDOIC5QDUCWsCuBDANqgXmAE4DEASgKIDKFAKgPq0Dy9FAGrRQHJUCSTXepQCCAEQCaAbQAMAXUSgADgHtYqAC6plAOwUgAnogC0ARgDsAVgB0AZgvSHANhPS7Ji44BMAGhAAPRHsAFgBfEN80TFwCYitUbQ1UaMISCB0wOO0AN2UAawzI7DxCIkzE5LAEeJyAYyxNHRlZJr0VNQbdJH9ETyCgqwAOO2legE4gxwtLTxtfQwQTT1HpW1G18aCLAaCZsIj0IpjS+PLisBJiImVSxRx6gDNrgFsrQorjhM0KquzlOo6mi0um1Ejo9AEEL1+kN7GMJlMLDM5sYTHYrI5LA4bNILOYpgM9iA3mdSlgaposvUwAAZKipdKZHL5V4Hd5WMkUqm0n61epabSAuStVSgzqgCF2UZWIJmTyIkwDcYDcxBZELGzjaVjUYWUbbbEmUaE4lHdnk1CU9Q0umXa5WW4PZ4sqIks2cq3c6p-PmNORApQijrgxCS6Wy+WKoLKsyqgyIExBPXSxNrSwuBXSAnhIms104WAUIhXUiUWhkKRC4GB-nBhYDTxWQ2LMwKpUqnxx9WanYp3X66SG42501gPxW7RqHRkMBYCD6EhMAAK3HoyF4FAA6v6QCCg10Ib0BtLhjYXPZpMsBo41QmLNZPAMY2tXI4caMzEOXaasqgwAB3YRzSyDIf3-XhPnpbQMi9ZkTRKKxQIAoCQN-P9wI0HlvQBP1KwDdoay6eZz2ldYBgsbFT0TCxfAlcwrA8R8PBcNwPE-Q54MQwCKQyP8wAAIzQf9qWUWd4igSDoN+WDhw41CuItHj+MEv9hNE7QoEw-5+UFeQq3wsF9x6bZ6McRjnFcXEPDVTYGxTPVyNcBMdTYtlOOQqxeIE1DVIgSAJMZPIChk2I3O4jylO8kTfIgTSfQFHDdLw0VayWBshkxUZ3ERMwbD6azpH6OyyIopyLBc11QoUhDUOnWd5yXFc103bddwI8UelPVYbEsbFcUsMwBjVO8j1y7q7BKqjyu-OT3MQ2q5xIJqN3oABVRdRGETgWurAz2shTqNW6hy+vxNVHEmWxHyjPUBmkAavCm2T-3k4Dqv-eb5wAMV4akKFYUReFobb9LFbp9pMLqepxPEBrVMxZWPRY+k2bZdmzOCQpmsLEIoCBEnUkgKABhhRAEChgeSwz9scKwzFGI7NnhxwbAxDt5kfKUZTsl83w-QltGUXz4C6DGiGFEHayMUZr07IxPGZqwRnPZYJnfPoyvR4KPlOGJxcpvbTClSZegGs8FTlDEhqjEi1mKxzJs1r94I5C0uSoPW9wNw10URGVlWh+sPDMOHsUbFMr3rZYH1CR32NifNC2LD22rBw2fZN-3cUDy3O0yiG6dtmFEzumxHtiUdx0nbQPuT3bU+942-bN7Pg87FwJisTwn2WRwgm6uU+f2J3Mee5Da9BiEjCjNVTxp+sUxsB8KMHnNh9KSrXsQ9D1HH2tpCGhwbfsibnNj1ysaqzzlJ8sTd6p-fO1MhsnL1J+o+2Mv14v16r8i2dIDvntYyUZHymRsGRFszhZidgGLAzuSMBo9nsCzT+b0kLYxqjOOcgCwYP3mO3awfRbY3TuleTwqCN4oX-LjfGUAcEQjwfGcwUpRjak8CYRw0sCqODCGEIAA */ + /** @xstate-layout N4IgpgJg5mDOIC5QDUCWsCuBDANqgXmAE4DEASgKIDKFAKgPq0Dy9FAGrRQHJUCSTXepQCCAEQCaAbQAMAXUSgADgHtYqAC6plAOwUgAHogDsRgDQgAnogCMADgBsAVgB0ATkcAmawGZX0owAsRrYBtgC+YeZomLgExCQAqgAKosKc9ElkTABSFADCDFS0ZAkFCZQy8kggKmqaOnqGCNYervbOtkbW0gG+AR4B0t7mVs3Sts4Bjt7Wg66uAdZd9q4RUejYeISkyanpmTn5DFlMtJV6tRpautVNPl7OM-beL0Hjsx4jNgsTU17e0mk9ls81WkRA0U2cR2KTSFAyWVyBXoABkmHk0vwuOdqpd6jdQHcAQFnNIPEYPPYuk93GZLDYPGsIRtYtsSFQAOq8Wh5AASCMOBRxSlUVwatxs-i+zQ8HhcQNc3lsMzs5McRiZkNZxGcsAA7hoAMYAC3oiiIygAVmBDeoSBAdGBnKhtAA3ZQAaydWq2Ov1RtN5qtNvUCBd7sNWHxlWFNVF+MaiCC1jcPnmnm8rUc0kc0us1j8znz9mswL89iG5M1LN9RGd2iu2vtjvr7q9zh90Prjd9Ybdykj0bksbx10TCA8DlJ9jlOaC3lCM+lXQm3QWbXJRgXmerMVr3c0TYd2id4c93prXZdPbifYjUeuMesVRFdTHEonU6Bs8c88Xn3pBB1RJbxHAWQEjBLbpgV3KFtgPVAm2IC060UHAowAM2UIgAFsO0veDr0PXsz0HR9hzkC543fQlEHJdpv2zX8t3-aUQW8ZxHFsMCQVLCkjC42DtTrIgwG0CBiF4BtiLQMA9WbE9W3PfC9y7UTxMk6TEJwWS9TvAcHx0GNKNxajxVohBFQ4ycWgBVwQjlLjl0CR5QJBewgnJVxrEcIT93UiSiCkntdJIZDsOcNDMOwvDO3ggLNJC1A5P0sijIol84zfcyDEQKznBsjw7IcxwnMAil2mVCsVknPxxl88E4p1LBbVQV0ozAFEqAU09+3bJq6xazR2vUTqqFSwztGMzLRxyu5+lcDp7NAgIAkVNbHHsZdWkmbjXCMfw5RWJY-K7Ia2o6rqwqIFDIvQ9QsNwlS4Oa1qRrGiah1kEczIJXLLLpUZZnsdpNsVPw+l-AJTvgjCwHUE0kgta1bSodQiAwW0MFEnqlP6gidThhHjSR4NUfRzH1GxsBPvI76TNfMU-qafoOKmOzoJWRxSzzA6PAK0JbFsHNFSK0qYcJ+HEeRkM0YxrGcfC1D7se2KCbrInpbJ9Q5cp6nafS+mZt+8dWcmaZpG8oEuZ5wDS3GZwjHcIWunJVb8wluscFgCgbuw8g6DIKQGaypnx28QG6JmDowN8bjbFlOUE895wwH0UbtDUHQyDALAIAsEgmCSbh6GQXgKA5H7suZvKhkeXonGeYIneVXn-Dcey2kBfwwNWlPXWSvVhDep0B7k4K7WPXq2wvVT4LHoeR+cBeJ4NqaMqo6vxx8IEluVOxuK3YEtrt7mSR6CsIOFpUq0a9Xl8H4fhtHweJ9xs98bnnUF6ftqX-H6Sa8nzGy3h+HelVloH3VN4Y+eZG6Oy7iqYEgwXj90fkvUSsBlA4FdGAAAsugNQ2goCiDAIoMSEltCGmSrAd+fVZ4vTrD-DBcBsG4IIbAIhJCyEULEtQuAQCN6mVARZAsk5SQBCpO8LoPRXB5jWimBUixIK+AjjBO+X8mHoOfs4PUYAABGukUTKDzi6KAdCZ7PWEg-OSv9cG6IMUYkxEAzGCKNpvMOH4Bj5jcMCHiSwgixzgYsR2LRgQmBzBSeYaDbFLz0YYwexi86QAscpAaNjF46PiU45JEA3FV08RZbxKY2h7VsAEgSio8wLhJFxCsiowLTAjuEDRjCMl2P-nqHOecC5FxLmXCuBSExeOth0HonhZGZhWCfIGC4XDlMVA4ASHlLYtPWJo9pS8F7dPziQAZHJ6C7DhEMmi-1im+LKRUoJp8pgFTAjOcpXgE4CRiZkv+GSdkFwAGK8BRPCCgohuQnLmnRRYJS-H2SuVUu2rRz4OH8ICCO0gfJrOZBs5hOiF4UBcZoYhJAAXcnoKIAQFBgU1wnL0CYAx7ITP2isSOMpeicXhZIoIDhFkRHBNoZQEl4DVAGh44ZFkAC0+Z5EgVjm0FBNTOgp39MTM0MtbSCtOU0AERgY4+VlJmUCFI8weDJNOBpzxgRKlcIyVp1iiLaTiCqkFYwGXqgmEqMCfhFi9AEha9ZbSEpBS0rgXSdryVdBJMEFo7qarmoAqMZYzL7mUkTgWBq3rrHnXel1IN29Zi-DTIEDc2ZgjSldW4Pa2ZJEHXzF6tFbTNYkyVTrCmCswCZo-OauBDxPADDLb4ckIQU7e19ihFtFktwpmmHVJYcpBh6rtm5SYq1QIFkGNxQSlr9xpwzlnbQnzh3-S3PzToCjSzlMpTMmwo7JgCV-DMRcryOm7ruEMFwcdWhUmCK0QIeYfIMT2k7JYPl9rJurdYjF7yV7SQfZKZUjx7KvpMAnfaAR5GdAkRWSRwsgjmrvSwrBOD8GELMaQ8hGkqE0Mg80EsGqDVZgGJmZZthkOLV-P4qkThIJAfSaB+x2TEnOLMeR2UpYY5RorAa+yq04FLAKmE4+yLzUR2w1kxxvHckCd7kWUI5IyT7SdqVPMjSOgRwEvmQERUQaKbA4PHdwjClnIGKuezq0-G9DkbOks0nyRLoEk8Cz9isU4v4zZoVZz1PZq0x+3TuYYUglJGSDykqqQNQiEAA */ id: "Visualizer", initial: 'initialize', predictableActionArguments: true, @@ -55,12 +82,12 @@ const stateMachine = createMachine( langClient: null, errorCode: null, isBISupported: false, - view: MACHINE_VIEW.Overview, + view: MACHINE_VIEW.PackageOverview, dependenciesResolved: false }, on: { RESET_TO_EXTENSION_READY: { - target: "extensionReady", + target: "extensionReady" }, UPDATE_PROJECT_STRUCTURE: { actions: [ @@ -70,24 +97,68 @@ const stateMachine = createMachine( () => { // Use queueMicrotask to ensure context is updated before command execution queueMicrotask(() => { + console.log('Refreshing BI project explorer'); commands.executeCommand("BI.project-explorer.refresh"); + console.log('Notifying current webview'); + // Check if the current view is Service desginer and if so don't notify the webview + if (StateMachine.context().view !== MACHINE_VIEW.ServiceDesigner) { + notifyCurrentWebview(); + } }); } ] }, - UPDATE_PROJECT_ROOT: { + UPDATE_PROJECT_ROOT_AND_INFO: { actions: [ assign({ - projectPath: (context, event) => event.projectPath + projectPath: (context, event) => event.projectPath, + projectInfo: (context, event) => event.projectInfo }), async (context, event) => { - await buildProjectArtifactsStructure(event.projectPath, StateMachine.langClient(), true); + await buildProjectsStructure(event.projectInfo, StateMachine.langClient(), true); notifyCurrentWebview(); + notifyTreeView(event.projectPath, context.documentUri, context.position, context.view); // Resolve the next pending promise waiting for project root update completion pendingProjectRootUpdateResolvers.shift()?.(); } ] }, + REFRESH_PROJECT_INFO: { + actions: [ + async (context, event) => { + try { + const projectPath = context.workspacePath || context.projectPath; + if (!projectPath) { + console.warn("No project path available for refreshing project info"); + return; + } + + // Fetch updated project info from language server + const projectInfo = await context.langClient.getProjectInfo({ projectPath }); + + // Update context with new project info + stateService.send({ + type: 'UPDATE_PROJECT_INFO', + projectInfo + }); + } catch (error) { + console.error("Error refreshing project info:", error); + } + } + ] + }, + UPDATE_PROJECT_INFO: { + actions: [ + assign({ + projectInfo: (context, event) => event.projectInfo + }), + async (context, event) => { + // Rebuild project structure with updated project info + await buildProjectsStructure(event.projectInfo, StateMachine.langClient(), true); + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.WorkspaceOverview }); + } + ] + }, UPDATE_PROJECT_LOCATION: { actions: [ assign({ @@ -95,20 +166,24 @@ const stateMachine = createMachine( position: (context, event) => event.viewLocation.position ? event.viewLocation.position : context.position, identifier: (context, event) => event.viewLocation.identifier ? event.viewLocation.identifier : context.identifier, addType: (context, event) => event.viewLocation?.addType !== undefined ? event.viewLocation.addType : context?.addType, - }) + }), + (context, event) => notifyTreeView( + context.projectPath, + event.viewLocation.documentUri || context.documentUri, + event.viewLocation.position || context.position, + context.view + ) ] - }, - SWITCH_PROJECT: { - target: "switch_project" } }, states: { - switch_project: { + initialize: { invoke: { - src: (context, event) => checkForProjects(true), + src: (context, event) => checkForProjects, onDone: [ { - target: "viewActive.viewReady", + target: "renderInitialView", + cond: (context, event) => event.data && event.data.isBI, actions: [ assign({ isBI: (context, event) => event.data.isBI, @@ -116,45 +191,35 @@ const stateMachine = createMachine( workspacePath: (context, event) => event.data.workspacePath, scope: (context, event) => event.data.scope, org: (context, event) => event.data.orgName, - package: (context, event) => event.data.packageName, + package: (context, event) => event.data.packageName }), - async (context, event) => { - await buildProjectArtifactsStructure(event.data.projectPath, StateMachine.langClient(), true); - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.Overview }); - notifyCurrentWebview(); - } + (context, event) => notifyTreeView( + event.data.projectPath, + context.documentUri, + context.position, + context.view + ) ] - } - ], - } - }, - initialize: { - invoke: { - src: (context, event) => checkForProjects(false), - onDone: [ - { - target: "renderInitialView", - cond: (context, event) => event.data && event.data.isBI, - actions: assign({ - isBI: (context, event) => event.data.isBI, - projectPath: (context, event) => event.data.projectPath, - workspacePath: (context, event) => event.data.workspacePath, - scope: (context, event) => event.data.scope, - org: (context, event) => event.data.orgName, - package: (context, event) => event.data.packageName, - }) }, { target: "activateLS", cond: (context, event) => event.data && event.data.isBI === false, - actions: assign({ - isBI: (context, event) => event.data.isBI, - projectPath: (context, event) => event.data.projectPath, - workspacePath: (context, event) => event.data.workspacePath, - scope: (context, event) => event.data.scope, - org: (context, event) => event.data.orgName, - package: (context, event) => event.data.packageName, - }) + actions: [ + assign({ + isBI: (context, event) => event.data.isBI, + projectPath: (context, event) => event.data.projectPath, + workspacePath: (context, event) => event.data.workspacePath, + scope: (context, event) => event.data.scope, + org: (context, event) => event.data.orgName, + package: (context, event) => event.data.packageName + }), + (context, event) => notifyTreeView( + event.data.projectPath, + context.documentUri, + context.position, + context.view + ) + ] } ], onError: { @@ -177,7 +242,7 @@ const stateMachine = createMachine( invoke: { src: 'activateLanguageServer', onDone: { - target: "fetchProjectStructure", + target: "fetchProjectInfo", actions: assign({ langClient: (context, event) => event.data.langClient, isBISupported: (context, event) => event.data.isBISupported @@ -191,6 +256,23 @@ const stateMachine = createMachine( } } }, + fetchProjectInfo: { + invoke: { + src: 'fetchProjectInfo', + onDone: { + target: "fetchProjectStructure", + actions: assign({ + projectInfo: (context, event) => event.data.projectInfo + }) + }, + onError: { + target: "lsError", + actions: () => { + console.error("Error occurred while fetching project info."); + } + } + } + }, fetchProjectStructure: { invoke: { src: 'registerProjectArtifactsStructure', @@ -217,20 +299,31 @@ const stateMachine = createMachine( on: { OPEN_VIEW: { target: "viewActive", - actions: assign({ - view: (context, event) => event.viewLocation.view, - documentUri: (context, event) => event.viewLocation.documentUri, - position: (context, event) => event.viewLocation.position, - identifier: (context, event) => event.viewLocation.identifier, - serviceType: (context, event) => event.viewLocation.serviceType, - type: (context, event) => event.viewLocation?.type, - isGraphql: (context, event) => event.viewLocation?.isGraphql, - metadata: (context, event) => event.viewLocation?.metadata, - addType: (context, event) => event.viewLocation?.addType, - dataMapperMetadata: (context, event) => event.viewLocation?.dataMapperMetadata, - artifactInfo: (context, event) => event.viewLocation?.artifactInfo, - rootDiagramId: (context, event) => event.viewLocation?.rootDiagramId - }) + actions: [ + assign({ + org: (context, event) => event.viewLocation?.org, + package: (context, event) => event.viewLocation?.package, + view: (context, event) => event.viewLocation.view, + documentUri: (context, event) => event.viewLocation.documentUri, + position: (context, event) => event.viewLocation.position, + projectPath: (context, event) => event.viewLocation?.projectPath || context?.projectPath, + identifier: (context, event) => event.viewLocation.identifier, + serviceType: (context, event) => event.viewLocation.serviceType, + type: (context, event) => event.viewLocation?.type, + isGraphql: (context, event) => event.viewLocation?.isGraphql, + metadata: (context, event) => event.viewLocation?.metadata, + addType: (context, event) => event.viewLocation?.addType, + dataMapperMetadata: (context, event) => event.viewLocation?.dataMapperMetadata, + artifactInfo: (context, event) => event.viewLocation?.artifactInfo, + rootDiagramId: (context, event) => event.viewLocation?.rootDiagramId + }), + (context, event) => notifyTreeView( + context.projectPath, + event.viewLocation?.documentUri, + event.viewLocation?.position, + event.viewLocation?.view + ) + ] } } }, @@ -291,41 +384,58 @@ const stateMachine = createMachine( on: { OPEN_VIEW: { target: "viewInit", - actions: assign({ - view: (context, event) => event.viewLocation.view, - documentUri: (context, event) => event.viewLocation.documentUri, - position: (context, event) => event.viewLocation.position, - identifier: (context, event) => event.viewLocation.identifier, - serviceType: (context, event) => event.viewLocation.serviceType, - projectPath: (context, event) => event.viewLocation?.projectPath || context?.projectPath, - package: (context, event) => event.viewLocation?.package || context?.package, - type: (context, event) => event.viewLocation?.type, - isGraphql: (context, event) => event.viewLocation?.isGraphql, - metadata: (context, event) => event.viewLocation?.metadata, - addType: (context, event) => event.viewLocation?.addType, - dataMapperMetadata: (context, event) => event.viewLocation?.dataMapperMetadata, - artifactInfo: (context, event) => event.viewLocation?.artifactInfo, - rootDiagramId: (context, event) => event.viewLocation?.rootDiagramId - }) + actions: [ + assign({ + view: (context, event) => event.viewLocation.view, + documentUri: (context, event) => event.viewLocation.documentUri, + position: (context, event) => event.viewLocation.position, + identifier: (context, event) => event.viewLocation.identifier, + serviceType: (context, event) => event.viewLocation.serviceType, + projectPath: (context, event) => event.viewLocation?.projectPath || context?.projectPath, + org: (context, event) => event.viewLocation?.org || context?.org, + package: (context, event) => event.viewLocation?.package || context?.package, + type: (context, event) => event.viewLocation?.type, + isGraphql: (context, event) => event.viewLocation?.isGraphql, + metadata: (context, event) => event.viewLocation?.metadata, + addType: (context, event) => event.viewLocation?.addType, + dataMapperMetadata: (context, event) => event.viewLocation?.dataMapperMetadata, + artifactInfo: (context, event) => event.viewLocation?.artifactInfo, + rootDiagramId: (context, event) => event.viewLocation?.rootDiagramId + }), + (context, event) => notifyTreeView( + event.viewLocation?.projectPath || context?.projectPath, + event.viewLocation?.documentUri, + event.viewLocation?.position, + event.viewLocation?.view + ) + ] }, VIEW_UPDATE: { target: "webViewLoaded", - actions: assign({ - documentUri: (context, event) => event.viewLocation.documentUri, - position: (context, event) => event.viewLocation.position, - view: (context, event) => event.viewLocation.view, - identifier: (context, event) => event.viewLocation.identifier, - serviceType: (context, event) => event.viewLocation.serviceType, - type: (context, event) => event.viewLocation?.type, - isGraphql: (context, event) => event.viewLocation?.isGraphql, - addType: (context, event) => event.viewLocation?.addType, - dataMapperMetadata: (context, event) => event.viewLocation?.dataMapperMetadata - }) + actions: [ + assign({ + documentUri: (context, event) => event.viewLocation.documentUri, + position: (context, event) => event.viewLocation.position, + view: (context, event) => event.viewLocation.view, + identifier: (context, event) => event.viewLocation.identifier, + serviceType: (context, event) => event.viewLocation.serviceType, + type: (context, event) => event.viewLocation?.type, + isGraphql: (context, event) => event.viewLocation?.isGraphql, + addType: (context, event) => event.viewLocation?.addType, + dataMapperMetadata: (context, event) => event.viewLocation?.dataMapperMetadata + }), + (context, event) => notifyTreeView( + context.projectPath, + event.viewLocation?.documentUri, + event.viewLocation?.position, + event.viewLocation?.view + ) + ] }, FILE_EDIT: { target: "viewEditing" }, - } + }, }, viewEditing: { on: { @@ -357,18 +467,33 @@ const stateMachine = createMachine( } }); }, + fetchProjectInfo: (context, event) => { + return new Promise(async (resolve, reject) => { + try { + const projectPath = context.workspacePath || context.projectPath; + if (!projectPath) { + resolve({ projectInfo: undefined }); + } else { + const projectInfo = await context.langClient.getProjectInfo({ projectPath }); + resolve({ projectInfo }); + } + } catch (error) { + throw new Error("Error occurred while fetching project info.", error); + } + }); + }, registerProjectArtifactsStructure: (context, event) => { return new Promise(async (resolve, reject) => { try { // Register the event driven listener to get the artifact changes context.langClient.registerPublishArtifacts(); - // If the project uri or workspace path is not set, we don't need to build the project structure - if (context.projectPath || context.workspacePath) { + // IF the project info is not set, we don't need to build the project structure + if (context.projectInfo) { // Add a 2 second delay before registering artifacts await new Promise(resolve => setTimeout(resolve, 1000)); // Initial Project Structure - const projectStructure = await buildProjectArtifactsStructure(context.projectPath, context.langClient); + const projectStructure = await buildProjectsStructure(context.projectInfo, context.langClient); resolve({ projectStructure }); } else { resolve({ projectStructure: undefined }); @@ -427,11 +552,7 @@ const stateMachine = createMachine( return; } - const taskDefinition: TaskDefinition = { - type: 'shell', - task: 'run' - }; - + // Construct the build command let buildCommand = 'bal build'; const config = workspace.getConfiguration('ballerina'); @@ -440,44 +561,46 @@ const stateMachine = createMachine( buildCommand = path.join(ballerinaHome, 'bin', buildCommand); } - // Use the current process environment which should have the updated PATH - const execution = new ShellExecution(buildCommand, { env: process.env as { [key: string]: string } }); - - if (!workspace.workspaceFolders || workspace.workspaceFolders.length === 0) { - resolve(true); - return; - } - - - const task = new Task( - taskDefinition, - workspace.workspaceFolders![0], - 'Ballerina Build', - 'ballerina', - execution - ); - try { - const taskExecution = await tasks.executeTask(task); - - // Wait for task completion - await new Promise((taskResolve) => { - // Listen for task completion - const disposable = tasks.onDidEndTask((taskEndEvent) => { - if (taskEndEvent.execution === taskExecution) { - console.log('Build task completed'); + // Execute the build command with output streaming + const result = await runCommandWithOutput( + buildCommand, + context.projectPath, + buildOutputChannel, + (message: string) => { + // Send progress notification to the visualizer + RPCLayer._messenger.sendNotification( + dependencyPullProgress, + { type: 'webview', webviewType: VisualizerWebview.viewType }, + message + ); + } + ); - // Close the terminal pane on completion - commands.executeCommand('workbench.action.closePanel'); + if (result.success) { + console.log('Build task completed successfully'); - disposable.dispose(); - taskResolve(); + // Retry resolving missing dependencies after build is successful. This is a temporary solution to ensure the project is reloaded with new dependencies. + const projectUri = Uri.file(context.projectPath).toString(); + await StateMachine.langClient().resolveMissingDependencies({ + documentIdentifier: { + uri: projectUri } }); - }); + + + // Close the output panel on successful completion + commands.executeCommand('workbench.action.closePanel'); + } else { + const errorMsg = `Failed to build Ballerina package. Exit code: ${result.exitCode}`; + console.error(errorMsg); + window.showErrorMessage(errorMsg); + } } catch (error) { - window.showErrorMessage(`Failed to build Ballerina package: ${error}`); + const errorMsg = `Failed to build Ballerina package: ${error}`; + console.error(errorMsg, error); + window.showErrorMessage(errorMsg); } } @@ -486,17 +609,25 @@ const stateMachine = createMachine( }, findView(context, event): Promise { return new Promise(async (resolve, reject) => { - const projectTomlValues = await getProjectTomlValues(context.projectPath); - const packageName = projectTomlValues?.package?.name; + const { orgName, packageName } = getOrgAndPackageName(context.projectInfo, context.projectPath); if (!context.view && context.langClient) { if (!context.position || ("groupId" in context.position)) { - history.push({ - location: { - view: MACHINE_VIEW.Overview, - documentUri: context.documentUri, - package: packageName || context.package - } - }); + if (!context.projectPath && context.workspacePath) { + history.push({ + location: { + view: MACHINE_VIEW.WorkspaceOverview + } + }); + } else { + history.push({ + location: { + view: MACHINE_VIEW.PackageOverview, + documentUri: context.documentUri, + org: orgName || context.org, + package: packageName || context.package, + } + }); + } return resolve(); } const view = await getView(context.documentUri, context.position, context?.projectPath); @@ -511,6 +642,7 @@ const stateMachine = createMachine( documentUri: context.documentUri, position: context.position, identifier: context.identifier, + org: orgName || context.org, package: packageName || context.package, type: context?.type, isGraphql: context?.isGraphql, @@ -528,9 +660,13 @@ const stateMachine = createMachine( const selectedEntry = getLastHistory(); if (!context.langClient) { if (!selectedEntry) { - return resolve({ view: MACHINE_VIEW.Overview, documentUri: context.documentUri }); + return resolve( + context.workspacePath + ? { view: MACHINE_VIEW.WorkspaceOverview } + : { view: MACHINE_VIEW.PackageOverview, documentUri: context.documentUri } + ); } - return resolve({ ...selectedEntry.location, view: selectedEntry.location.view ? selectedEntry.location.view : MACHINE_VIEW.Overview }); + return resolve({ ...selectedEntry.location, view: selectedEntry.location.view ? selectedEntry.location.view : MACHINE_VIEW.PackageOverview }); } if (selectedEntry && (selectedEntry.location.view === MACHINE_VIEW.ERDiagram || selectedEntry.location.view === MACHINE_VIEW.ServiceDesigner || selectedEntry.location.view === MACHINE_VIEW.BIDiagram)) { @@ -556,7 +692,11 @@ const stateMachine = createMachine( }) as SyntaxTree; if (!selectedEntry?.location.view) { - return resolve({ view: MACHINE_VIEW.Overview, documentUri: context.documentUri }); + return resolve( + context.workspacePath + ? { view: MACHINE_VIEW.WorkspaceOverview } + : { view: MACHINE_VIEW.PackageOverview, documentUri: context.documentUri } + ); } let selectedST; @@ -664,12 +804,15 @@ export const StateMachine = { }, sendEvent: (eventType: EVENT_TYPE) => { stateService.send({ type: eventType }); }, updateProjectStructure: (payload: ProjectStructureResponse) => { stateService.send({ type: "UPDATE_PROJECT_STRUCTURE", payload }); }, - updateProjectRoot: (projectPath: string): Promise => { + updateProjectRootAndInfo: (projectPath: string, projectInfo: ProjectInfo): Promise => { return new Promise((resolve) => { pendingProjectRootUpdateResolvers.push(resolve); - stateService.send({ type: "UPDATE_PROJECT_ROOT", projectPath }); + stateService.send({ type: "UPDATE_PROJECT_ROOT_AND_INFO", projectPath, projectInfo }); }); }, + refreshProjectInfo: () => { + stateService.send({ type: 'REFRESH_PROJECT_INFO' }); + }, resetToExtensionReady: () => { stateService.send({ type: 'RESET_TO_EXTENSION_READY' }); }, @@ -682,6 +825,10 @@ export function openView(type: EVENT_TYPE, viewLocation: VisualizerLocation, res } extension.hasPullModuleResolved = false; extension.hasPullModuleNotification = false; + const projectPath = viewLocation.projectPath || StateMachine.context().projectPath; + const { orgName, packageName } = getOrgAndPackageName(StateMachine.context().projectInfo, projectPath); + viewLocation.org = orgName; + viewLocation.package = packageName; stateService.send({ type: type, viewLocation: viewLocation }); } @@ -706,8 +853,11 @@ export function updateView(refreshTreeView?: boolean) { targetedArtifactType = DIRECTORY_MAP.SERVICE; } + const projectPath = StateMachine.context().projectPath; + const project = StateMachine.context().projectStructure.projects.find(project => project.projectPath === projectPath); + // These changes will be revisited in the revamp - StateMachine.context().projectStructure.directoryMap[targetedArtifactType].forEach((artifact) => { + project.directoryMap[targetedArtifactType].forEach((artifact) => { if (artifact.id === currentIdentifier || artifact.name === currentIdentifier) { currentArtifact = artifact; } @@ -733,7 +883,11 @@ export function updateView(refreshTreeView?: boolean) { // Check for service class model in the new location if (!newLocationFound && lastView?.location?.type) { let currentArtifact: ProjectStructureArtifactResponse; - StateMachine.context().projectStructure.directoryMap[DIRECTORY_MAP.TYPE].forEach((artifact) => { + + const projectPath = StateMachine.context().projectPath; + const project = StateMachine.context().projectStructure.projects.find(project => project.projectPath === projectPath); + + project.directoryMap[DIRECTORY_MAP.TYPE].forEach((artifact) => { if (artifact.id === lastView.location.type.name || artifact.name === lastView.location.type.name) { currentArtifact = artifact; } @@ -762,7 +916,7 @@ export function updateView(refreshTreeView?: boolean) { stateService.send({ type: "VIEW_UPDATE", viewLocation: lastView ? newLocation : { view: "Overview" } }); if (refreshTreeView) { - buildProjectArtifactsStructure(StateMachine.context().projectPath, StateMachine.langClient(), true); + buildProjectsStructure(StateMachine.context().projectInfo, StateMachine.langClient(), true); } notifyCurrentWebview(); } @@ -797,18 +951,18 @@ function getLastHistory() { return historyStack?.[historyStack?.length - 1]; } -async function checkForProjects(isSwitching: boolean = false): Promise { +async function checkForProjects() { const workspaceFolders = workspace.workspaceFolders; if (!workspaceFolders) { - return { isBI: false, projectPath: '' }; + return { isBI: false, projects: [] }; } if (workspaceFolders.length > 1) { return await handleMultipleWorkspaceFolders(workspaceFolders); } - return await handleSingleWorkspaceFolder(workspaceFolders[0].uri, isSwitching); + return await handleSingleWorkspaceFolder(workspaceFolders[0].uri); } async function handleMultipleWorkspaceFolders(workspaceFolders: readonly WorkspaceFolder[]): Promise { @@ -829,84 +983,32 @@ async function handleMultipleWorkspaceFolders(workspaceFolders: readonly Workspa 'Learn More' ).then(selection => { if (selection === 'Learn More') { - // TODO: Add a guide on how to use Ballerina workspaces - // Open documentation or guide about Ballerina workspaces commands.executeCommand('vscode.open', Uri.parse('https://ballerina.io/learn/workspaces')); } }); // Return empty result to indicate no project should be loaded - return { isBI: false, projectPath: '' }; + return { isBI: false }; } else if (balProjects.length === 1) { const isBI = checkIsBI(balProjects[0].uri); const scope = isBI && fetchScope(balProjects[0].uri); const { orgName, packageName } = getOrgPackageName(balProjects[0].uri.fsPath); setBIContext(isBI); - return { isBI, projectPath: balProjects[0].uri.fsPath, scope, orgName, packageName }; + const projectPath = balProjects[0].uri.fsPath; + return { isBI, projectPath, scope, orgName, packageName }; } - return { isBI: false, projectPath: '' }; + return { isBI: false }; } -async function handleSingleWorkspaceFolder(workspaceURI: Uri, isSwitching: boolean = false): Promise { +async function handleSingleWorkspaceFolder(workspaceURI: Uri): Promise { const isBallerinaWorkspace = await checkIsBallerinaWorkspace(workspaceURI); if (isBallerinaWorkspace) { - // A workaround for supporting multiple packages in a workspace - // TODO: Once the artifacts API is updated to support multiple packages and the new API for detecting the - // most appropriate package to load the WSO2 Integrator is implemented, this workaround can be removed - // Ref: https://github.com/wso2/product-ballerina-integrator/issues/1465 - const workspaceTomlValues = await getWorkspaceTomlValues(workspaceURI.fsPath); - - if (!workspaceTomlValues) { - return { isBI: false, projectPath: '' }; - } - - const biExtension = extensions.getExtension('wso2.ballerina-integrator'); - const shouldShowBIQuickPick = isSwitching || (biExtension && checkIsBI(workspaceURI)); - const packages = await filterPackagePaths(workspaceTomlValues.workspace.packages, workspaceURI.fsPath); - let targetPackage; - - if (packages.length === 0) { - return { isBI: false, projectPath: '' }; - } else if (shouldShowBIQuickPick && packages.length > 1) { - targetPackage = await window.showQuickPick(packages, { - title: 'Select Package for WSO2 Integrator: BI', - placeHolder: 'Choose a package from your workspace to load in BI mode', - ignoreFocusOut: true - }); - } else if (!shouldShowBIQuickPick || packages.length === 1) { - targetPackage = packages[0]; - } - - if (!targetPackage && packages.length > 1) { - // If the user has not selected a package, select the first package - // This is a temporary solution until we provide the support for multi root workspaces - // Ref: https://github.com/wso2/product-ballerina-integrator/issues/1465 - targetPackage = packages[0]; - } - - if (targetPackage) { - const packagePath = path.isAbsolute(targetPackage) - ? targetPackage - : path.join(workspaceURI.fsPath, targetPackage); - const packageUri = Uri.file(packagePath); - - const isBallerinaPackage = await checkIsBallerinaPackage(packageUri); - const isBI = isBallerinaPackage && checkIsBI(packageUri); - const scope = fetchScope(packageUri); - const projectPath = isBallerinaPackage ? packagePath : ""; - const { orgName, packageName } = getOrgPackageName(projectPath); - - setBIContext(isBI); - if (!isBI) { - console.error("No BI enabled workspace found"); - } + const isBI = checkIsBI(workspaceURI); + setBIContext(isBI); - return { isBI, projectPath, workspacePath: workspaceURI.fsPath, scope, orgName, packageName }; - } else { - return { isBI: false, projectPath: '' }; - } + return { isBI, workspacePath: workspaceURI.fsPath }; } else { const isBallerinaPackage = await checkIsBallerinaPackage(workspaceURI); const isBI = isBallerinaPackage && checkIsBI(workspaceURI); @@ -922,6 +1024,30 @@ async function handleSingleWorkspaceFolder(workspaceURI: Uri, isSwitching: boole return { isBI, projectPath, scope, orgName, packageName }; } } + +function notifyTreeView( + projectPath?: string, + documentUri?: string, + position?: NodePosition, + view?: MACHINE_VIEW +) { + try { + const biExtension = extensions.getExtension('wso2.ballerina-integrator'); + if (biExtension && !biExtension.isActive) { + return; + } + + commands.executeCommand(BI_COMMANDS.NOTIFY_PROJECT_EXPLORER, { + projectPath, + documentUri, + position, + view + }); + } catch (error) { + console.error('Error notifying tree view:', error); + } +} + function setBIContext(isBI: boolean) { commands.executeCommand('setContext', 'isBIProject', isBI); } diff --git a/workspaces/ballerina/ballerina-extension/src/utils/bi.ts b/workspaces/ballerina/ballerina-extension/src/utils/bi.ts index cd1de8524b8..424b6cfc4da 100644 --- a/workspaces/ballerina/ballerina-extension/src/utils/bi.ts +++ b/workspaces/ballerina/ballerina-extension/src/utils/bi.ts @@ -15,19 +15,30 @@ * specific language governing permissions and limitations * under the License. */ - -import { exec } from "child_process"; -import { window, commands, workspace, Uri } from "vscode"; +import { commands, workspace, Uri } from "vscode"; import * as fs from 'fs'; import path from "path"; -import { AddProjectToWorkspaceRequest, BallerinaProjectComponents, ComponentRequest, CreateComponentResponse, createFunctionSignature, EVENT_TYPE, MACHINE_VIEW, MigrateRequest, NodePosition, ProjectRequest, STModification, SyntaxTreeResponse, VisualizerLocation, WorkspaceTomlValues } from "@wso2/ballerina-core"; +import { + AddProjectToWorkspaceRequest, + BallerinaProjectComponents, + ComponentRequest, + CreateComponentResponse, + createFunctionSignature, + EVENT_TYPE, + MigrateRequest, + NodePosition, + ProjectMigrationResult, + ProjectRequest, + STModification, + SyntaxTreeResponse, + WorkspaceTomlValues +} from "@wso2/ballerina-core"; import { StateMachine, history, openView } from "../stateMachine"; import { applyModifications, modifyFileContent, writeBallerinaFileDidOpen } from "./modification"; import { ModulePart, STKindChecker } from "@wso2/syntax-tree"; import { URI } from "vscode-uri"; import { debug } from "./logger"; import { parse } from "toml"; -import { buildProjectArtifactsStructure } from "./project-artifacts"; import { getProjectTomlValues } from "./config"; export const README_FILE = "readme.md"; @@ -134,6 +145,32 @@ function resolveDirectoryPath(basePath: string, directoryName?: string, shouldCr return resolvedPath; } +/** + * Creates .vscode folder and settings.json file + * @param projectRoot - Root directory of the project + */ +function createVSCodeSettings(projectRoot: string): void { + const vscodeDir = path.join(projectRoot, '.vscode'); + if (!fs.existsSync(vscodeDir)) { + fs.mkdirSync(vscodeDir); + } + + const settingsPath = path.join(vscodeDir, 'settings.json'); + fs.writeFileSync(settingsPath, settingsJsonContent); +} + +/** + * Creates .vscode folder with both settings.json and launch.json files + * @param projectRoot - Root directory of the project + */ +function createVSCodeSettingsWithLaunch(projectRoot: string): void { + createVSCodeSettings(projectRoot); + + const vscodeDir = path.join(projectRoot, '.vscode'); + const launchPath = path.join(vscodeDir, 'launch.json'); + fs.writeFileSync(launchPath, launchJsonContent.trim()); +} + /** * Resolves the project root path and creates the directory if needed * @param projectPath - Base project path @@ -199,7 +236,10 @@ packages = ["${projectRequest.packageName}"] writeBallerinaFileDidOpen(ballerinaTomlPath, ballerinaTomlContent); // Create Ballerina Package - createBIProjectPure({...projectRequest, projectPath: workspaceRoot, createDirectory: true}); + createBIProjectPure({ ...projectRequest, projectPath: workspaceRoot, createDirectory: true }); + + // create settings.json file + createVSCodeSettings(workspaceRoot); console.log(`BI workspace created successfully at ${workspaceRoot}`); return workspaceRoot; @@ -259,19 +299,8 @@ sticky = true const datamappingsBalPath = path.join(projectRoot, 'data_mappings.bal'); writeBallerinaFileDidOpen(datamappingsBalPath, EMPTY); - // Create a .vscode folder - const vscodeDir = path.join(projectRoot, '.vscode'); - if (!fs.existsSync(vscodeDir)) { - fs.mkdirSync(vscodeDir); - } - - // Create launch.json file - const launchPath = path.join(vscodeDir, 'launch.json'); - fs.writeFileSync(launchPath, launchJsonContent.trim()); - - // Create settings.json file - const settingsPath = path.join(vscodeDir, 'settings.json'); - fs.writeFileSync(settingsPath, settingsJsonContent); + // Create .vscode configuration files + createVSCodeSettingsWithLaunch(projectRoot); // Create .gitignore file const gitignorePath = path.join(projectRoot, '.gitignore'); @@ -299,21 +328,21 @@ export async function convertProjectToWorkspace(params: AddProjectToWorkspaceReq fs.renameSync(currentProjectPath, updatedProjectPath); createWorkspaceToml(newDirectory, currentPackageName); - updateWorkspaceToml(newDirectory, params.packageName); + addToWorkspaceToml(newDirectory, params.packageName); createProjectInWorkspace(params, newDirectory); + // create settings.json file + createVSCodeSettings(newDirectory); + openInVSCode(newDirectory); } export async function addProjectToExistingWorkspace(params: AddProjectToWorkspaceRequest): Promise { const workspacePath = StateMachine.context().workspacePath; + addToWorkspaceToml(workspacePath, params.packageName); - updateWorkspaceToml(workspacePath, params.packageName); - - const projectPath = createProjectInWorkspace(params, workspacePath); - - await openNewlyCreatedProject(params, workspacePath, projectPath); + createProjectInWorkspace(params, workspacePath); } function createWorkspaceToml(workspacePath: string, packageName: string) { @@ -325,7 +354,7 @@ packages = ["${packageName}"] writeBallerinaFileDidOpen(ballerinaTomlPath, ballerinaTomlContent); } -function updateWorkspaceToml(workspacePath: string, packageName: string) { +function addToWorkspaceToml(workspacePath: string, packageName: string) { const ballerinaTomlPath = path.join(workspacePath, 'Ballerina.toml'); if (!fs.existsSync(ballerinaTomlPath)) { @@ -348,6 +377,47 @@ function updateWorkspaceToml(workspacePath: string, packageName: string) { } } +export function deleteProjectFromWorkspace(workspacePath: string, packagePath: string) { + const relativeProjectPath = path.relative(workspacePath, packagePath); + console.log(">>> relative project path", relativeProjectPath); + + const ballerinaTomlPath = path.join(workspacePath, 'Ballerina.toml'); + if (!fs.existsSync(ballerinaTomlPath)) { + return; + } + + try { + const ballerinaTomlContent = fs.readFileSync(ballerinaTomlPath, 'utf8'); + const tomlData: WorkspaceTomlValues = parse(ballerinaTomlContent); + const existingPackages: string[] = tomlData.workspace?.packages || []; + + if (!existingPackages.includes(relativeProjectPath)) { + return; // Package not found + } + + const updatedContent = removePackageFromToml(ballerinaTomlContent, relativeProjectPath); + fs.writeFileSync(ballerinaTomlPath, updatedContent); + + // send didChange event to the language server + StateMachine.langClient().didChange({ + contentChanges: [ + { + text: updatedContent + } + ], + textDocument: { + uri: Uri.file(ballerinaTomlPath).toString(), + version: 1 + } + }); + + // delete the project directory + fs.rmdirSync(packagePath, { recursive: true }); + } catch (error) { + console.error(">>> error deleting project from workspace", error); + } +} + function addPackageToToml(tomlContent: string, packageName: string): string { const packagesRegex = /packages\s*=\s*\[([\s\S]*?)\]/; const match = tomlContent.match(packagesRegex); @@ -364,6 +434,26 @@ function addPackageToToml(tomlContent: string, packageName: string): string { } } +function removePackageFromToml(tomlContent: string, packagePath: string): string { + const packagesRegex = /packages\s*=\s*\[([\s\S]*?)\]/; + const match = tomlContent.match(packagesRegex); + + if (match) { + const currentArrayContent = match[1].trim(); + + // Split by comma, trim whitespace, and filter out the package to remove + const packages = currentArrayContent + .split(',') + .map(pkg => pkg.trim()) + .filter(pkg => pkg && pkg !== `"${packagePath}"`); + + const newArrayContent = packages.length > 0 ? packages.join(', ') : ''; + return tomlContent.replace(packagesRegex, `packages = [${newArrayContent}]`); + } else { + return tomlContent; + } +} + function createProjectInWorkspace(params: AddProjectToWorkspaceRequest, workspacePath: string): string { const projectRequest: ProjectRequest = { projectName: params.projectName, @@ -377,19 +467,6 @@ function createProjectInWorkspace(params: AddProjectToWorkspaceRequest, workspac return createBIProjectPure(projectRequest); } -async function openNewlyCreatedProject(params: AddProjectToWorkspaceRequest, workspacePath: string, projectPath: string) { - const viewLocation: VisualizerLocation = { - view: MACHINE_VIEW.Overview, - workspacePath: workspacePath, - projectPath: projectPath, - package: params.packageName, - org: params.orgName - }; - - await buildProjectArtifactsStructure(projectPath, StateMachine.langClient(), true); - openView(EVENT_TYPE.OPEN_VIEW, viewLocation); -} - export function openInVSCode(projectRoot: string) { commands.executeCommand('vscode.openFolder', Uri.file(path.resolve(projectRoot))); } @@ -413,19 +490,12 @@ export async function createBIProjectFromMigration(params: MigrateRequest) { writeBallerinaFileDidOpen(filePath, content || EMPTY); } - // Create a .vscode folder - const vscodeDir = path.join(projectRoot, '.vscode'); - if (!fs.existsSync(vscodeDir)) { - fs.mkdirSync(vscodeDir); - } - - // Create launch.json file - const launchPath = path.join(vscodeDir, 'launch.json'); - fs.writeFileSync(launchPath, launchJsonContent.trim()); + params.projects?.forEach(project => { + createProjectFiles(project, projectRoot); + }); - // Create settings.json file - const settingsPath = path.join(vscodeDir, 'settings.json'); - fs.writeFileSync(settingsPath, settingsJsonContent); + // Create .vscode configuration files + createVSCodeSettingsWithLaunch(projectRoot); // Create .gitignore file const gitignorePath = path.join(projectRoot, '.gitignore'); @@ -435,6 +505,23 @@ export async function createBIProjectFromMigration(params: MigrateRequest) { commands.executeCommand('vscode.openFolder', Uri.file(path.resolve(projectRoot))); } +async function createProjectFiles(project: ProjectMigrationResult, projectRoot: string) { + for (const [fileName, fileContent] of Object.entries(project.textEdits)) { + const filePath = path.join(projectRoot, project.projectName, fileName); + const fileDir = path.dirname(filePath); + if (!fs.existsSync(fileDir)) { + fs.mkdirSync(fileDir, { recursive: true }); + } + writeBallerinaFileDidOpen(filePath, fileContent || "\n"); + } + + // Save migration report for this project + if (project.report) { + const reportPath = path.join(projectRoot, project.projectName, 'migration_report.html'); + fs.writeFileSync(reportPath, project.report); + } +} + export async function createBIAutomation(params: ComponentRequest): Promise { return new Promise(async (resolve) => { const functionFile = await handleAutomationCreation(params); diff --git a/workspaces/ballerina/ballerina-extension/src/utils/config.ts b/workspaces/ballerina/ballerina-extension/src/utils/config.ts index 16407d567ae..f3b6c780b59 100644 --- a/workspaces/ballerina/ballerina-extension/src/utils/config.ts +++ b/workspaces/ballerina/ballerina-extension/src/utils/config.ts @@ -16,7 +16,7 @@ * under the License. */ -import { SemanticVersion, PackageTomlValues, SCOPE, WorkspaceTomlValues } from '@wso2/ballerina-core'; +import { SemanticVersion, PackageTomlValues, SCOPE, WorkspaceTomlValues, ProjectInfo } from '@wso2/ballerina-core'; import { BallerinaExtension } from '../core'; import { WorkspaceConfiguration, workspace, Uri, RelativePattern } from 'vscode'; import * as fs from 'fs'; @@ -136,12 +136,12 @@ function compareVersions( if (current.major !== minimum.major) { return current.major > minimum.major; } - + // Major versions are equal, compare minor if (current.minor !== minimum.minor) { return current.minor > minimum.minor; } - + // Major and minor are equal, compare patch return current.patch >= minimum.patch; } @@ -230,7 +230,7 @@ export async function checkIsBallerinaWorkspace(uri: Uri): Promise { try { const tomlValues = await getWorkspaceTomlValues(uri.fsPath); - return tomlValues?.workspace !== undefined; + return tomlValues?.workspace !== undefined && tomlValues.workspace?.packages !== undefined; } catch (error) { // If there's an error reading the file, it's not a valid Ballerina workspace console.error(`Error reading workspace Ballerina.toml: ${error}`); @@ -278,45 +278,6 @@ export async function getBallerinaPackages(uri: Uri): Promise { } } -/** - * Filters package paths to only include valid Ballerina packages within the workspace. - * - * For each path, this function: - * - Resolves the path (handling relative paths like `.` and `..`) - * - Verifies the path exists on the filesystem - * - Ensures the path is within the workspace boundaries (prevents path traversal) - * - Validates it's a valid Ballerina package - * - * @param packagePaths Array of package paths (relative or absolute) - * @param workspacePath Absolute path to the workspace root - * @returns Filtered array of valid Ballerina package paths that exist within the workspace - */ -export async function filterPackagePaths(packagePaths: string[], workspacePath: string): Promise { - const results = await Promise.all( - packagePaths.map(async pkgPath => { - if (path.isAbsolute(pkgPath)) { - const resolvedPath = path.resolve(pkgPath); - const resolvedWorkspacePath = path.resolve(workspacePath); - if (fs.existsSync(resolvedPath) && isPathInside(resolvedPath, resolvedWorkspacePath)) { - return await checkIsBallerinaPackage(Uri.file(resolvedPath)); - } - } - const resolvedPath = path.resolve(workspacePath, pkgPath); - const resolvedWorkspacePath = path.resolve(workspacePath); - if (fs.existsSync(resolvedPath) && isPathInside(resolvedPath, resolvedWorkspacePath)) { - return await checkIsBallerinaPackage(Uri.file(resolvedPath)); - } - return false; - }) - ); - return packagePaths.filter((_, index) => results[index]); -} - -function isPathInside(childPath: string, parentPath: string): boolean { - const relative = path.relative(parentPath, childPath); - return !relative.startsWith('..') && !path.isAbsolute(relative); -} - export function getOrgPackageName(projectPath: string): { orgName: string, packageName: string } { const ballerinaTomlPath = path.join(projectPath, 'Ballerina.toml'); @@ -395,3 +356,27 @@ export function setupBIFiles(projectDir: string): void { } }); } + +export function getOrgAndPackageName(projectInfo: ProjectInfo, projectPath: string): { orgName: string, packageName: string } { + if (!projectPath || !projectInfo) { + return { orgName: '', packageName: '' }; + } + + if (projectInfo.children?.length) { + const matchedProject = projectInfo.children.find( + (child) => child.projectPath === projectPath + ); + + if (matchedProject) { + return { + orgName: matchedProject.org || matchedProject.orgName, + packageName: matchedProject.title || matchedProject.name + }; + } + } + + return { + orgName: projectInfo.org || projectInfo.orgName, + packageName: projectInfo.title || projectInfo.name + }; +} diff --git a/workspaces/ballerina/ballerina-extension/src/utils/logger.ts b/workspaces/ballerina/ballerina-extension/src/utils/logger.ts index cc8be1a259a..d507c28b191 100644 --- a/workspaces/ballerina/ballerina-extension/src/utils/logger.ts +++ b/workspaces/ballerina/ballerina-extension/src/utils/logger.ts @@ -23,6 +23,7 @@ import os from 'os'; import fs from 'fs'; export const outputChannel = vscode.window.createOutputChannel("Ballerina"); +export const buildOutputChannel = vscode.window.createOutputChannel("Ballerina Build"); const logLevelDebug: boolean = getPluginConfig().get('debugLog') === true; function withNewLine(value: string) { diff --git a/workspaces/ballerina/ballerina-extension/src/utils/migrate-integration.ts b/workspaces/ballerina/ballerina-extension/src/utils/migrate-integration.ts index 5851b19636c..02da6e72759 100644 --- a/workspaces/ballerina/ballerina-extension/src/utils/migrate-integration.ts +++ b/workspaces/ballerina/ballerina-extension/src/utils/migrate-integration.ts @@ -131,7 +131,7 @@ export async function pullMigrationTool(migrationToolName: string, version: stri // Extract download info from progress line if available const sizeMatch = lastLine.match(/(\d+)\/(\d+)\s+KB/); - let message = `Downloading... ${currentPercentage}%`; + let message = `Downloading...`; if (sizeMatch) { const downloaded = parseInt(sizeMatch[1], 10); diff --git a/workspaces/ballerina/ballerina-extension/src/utils/project-artifacts.ts b/workspaces/ballerina/ballerina-extension/src/utils/project-artifacts.ts index 7602bf9bfd8..9269a352017 100644 --- a/workspaces/ballerina/ballerina-extension/src/utils/project-artifacts.ts +++ b/workspaces/ballerina/ballerina-extension/src/utils/project-artifacts.ts @@ -18,19 +18,56 @@ import * as vscode from "vscode"; import * as path from 'path'; import { URI, Utils } from "vscode-uri"; -import { ARTIFACT_TYPE, Artifacts, ArtifactsNotification, BaseArtifact, DIRECTORY_MAP, NodePosition, ProjectStructureArtifactResponse, ProjectStructureResponse } from "@wso2/ballerina-core"; +import { ARTIFACT_TYPE, Artifacts, ArtifactsNotification, BaseArtifact, DIRECTORY_MAP, PROJECT_KIND, ProjectInfo, ProjectStructure, ProjectStructureArtifactResponse, ProjectStructureResponse } from "@wso2/ballerina-core"; import { StateMachine } from "../stateMachine"; import { ExtendedLangClient } from "../core/extended-language-client"; import { ArtifactsUpdated, ArtifactNotificationHandler } from "./project-artifacts-handler"; -import { CommonRpcManager } from "../rpc-managers/common/rpc-manager"; -export async function buildProjectArtifactsStructure( - projectPath: string, +export async function buildProjectsStructure( + projectInfo: ProjectInfo, langClient: ExtendedLangClient, isUpdate: boolean = false ): Promise { - const result: ProjectStructureResponse = { - projectName: "", + + const isWorkspace = projectInfo.projectKind === PROJECT_KIND.WORKSPACE_PROJECT; + + const packages = isWorkspace ? projectInfo.children : [projectInfo]; + + const projects: ProjectStructure[] = []; + for (const packageInfo of packages) { + const project = await buildProjectArtifactsStructure( + packageInfo.projectPath, + packageInfo.name, + packageInfo.title, + langClient + ); + projects.push(project); + } + + const response: ProjectStructureResponse = { + workspaceName: isWorkspace ? projectInfo.name : undefined, + workspacePath: isWorkspace ? projectInfo.projectPath : undefined, + workspaceTitle: isWorkspace ? projectInfo.title : undefined, + projects: projects + }; + + if (isUpdate) { + StateMachine.updateProjectStructure({ ...response }); + } + + return response; +} + +async function buildProjectArtifactsStructure( + projectPath: string, + packageName: string, + packageTitle: string, + langClient: ExtendedLangClient +): Promise { + const result: ProjectStructure = { + projectName: packageName, + projectPath: projectPath, + projectTitle: packageTitle, directoryMap: { [DIRECTORY_MAP.AUTOMATION]: [], [DIRECTORY_MAP.SERVICE]: [], @@ -48,38 +85,17 @@ export async function buildProjectArtifactsStructure( const designArtifacts = await langClient.getProjectArtifacts({ projectPath }); console.log("designArtifacts", designArtifacts); if (designArtifacts?.artifacts) { - traverseComponents(designArtifacts.artifacts, result); + traverseComponents(designArtifacts.artifacts, projectPath, result); await populateLocalConnectors(projectPath, result); } - // Attempt to get the project name from the workspace folder as a fallback if not found in Ballerina.toml - const workspace = vscode.workspace.workspaceFolders?.find(folder => folder.uri.fsPath === projectPath); - - let projectName = ""; - if (workspace) { - projectName = workspace.name; - } else { - // Project defined within a Ballerina workspace - projectName = path.basename(projectPath); - } - // Get the project name from the ballerina.toml file - const commonRpcManager = new CommonRpcManager(); - const tomlValues = await commonRpcManager.getCurrentProjectTomlValues(); - if (tomlValues) { - projectName = tomlValues.package?.title || tomlValues.package?.name; - } - - result.projectName = projectName; - if (isUpdate) { - StateMachine.updateProjectStructure({ ...result }); - } return result; } export async function updateProjectArtifacts(publishedArtifacts: ArtifactsNotification): Promise { // Current project structure const currentProjectStructure: ProjectStructureResponse = StateMachine.context().projectStructure; - const projectUri = URI.file(StateMachine.context().projectPath); + const projectUri = URI.file(StateMachine.context().projectPath) || URI.file(StateMachine.context().workspacePath); const isWithinProject = URI .parse(publishedArtifacts.uri).fsPath.toLowerCase() .includes(projectUri.fsPath.toLowerCase()); @@ -102,19 +118,26 @@ export async function updateProjectArtifacts(publishedArtifacts: ArtifactsNotifi } } -async function traverseComponents(artifacts: Artifacts, response: ProjectStructureResponse) { - response.directoryMap[DIRECTORY_MAP.AUTOMATION].push(...await getComponents(artifacts[ARTIFACT_TYPE.EntryPoints], DIRECTORY_MAP.AUTOMATION, "task")); - response.directoryMap[DIRECTORY_MAP.SERVICE].push(...await getComponents(artifacts[ARTIFACT_TYPE.EntryPoints], DIRECTORY_MAP.SERVICE, "http-service")); - response.directoryMap[DIRECTORY_MAP.LISTENER].push(...await getComponents(artifacts[ARTIFACT_TYPE.Listeners], DIRECTORY_MAP.LISTENER, "http-service")); - response.directoryMap[DIRECTORY_MAP.FUNCTION].push(...await getComponents(artifacts[ARTIFACT_TYPE.Functions], DIRECTORY_MAP.FUNCTION, "function")); - response.directoryMap[DIRECTORY_MAP.DATA_MAPPER].push(...await getComponents(artifacts[ARTIFACT_TYPE.DataMappers], DIRECTORY_MAP.DATA_MAPPER, "dataMapper")); - response.directoryMap[DIRECTORY_MAP.CONNECTION].push(...await getComponents(artifacts[ARTIFACT_TYPE.Connections], DIRECTORY_MAP.CONNECTION, "connection")); - response.directoryMap[DIRECTORY_MAP.TYPE].push(...await getComponents(artifacts[ARTIFACT_TYPE.Types], DIRECTORY_MAP.TYPE, "type")); - response.directoryMap[DIRECTORY_MAP.CONFIGURABLE].push(...await getComponents(artifacts[ARTIFACT_TYPE.Configurations], DIRECTORY_MAP.CONFIGURABLE, "config")); - response.directoryMap[DIRECTORY_MAP.NP_FUNCTION].push(...await getComponents(artifacts[ARTIFACT_TYPE.NaturalFunctions], DIRECTORY_MAP.NP_FUNCTION, "function")); +async function traverseComponents(artifacts: Artifacts, projectPath: string, response: ProjectStructure) { + response.directoryMap[DIRECTORY_MAP.AUTOMATION].push(...await getComponents(artifacts[ARTIFACT_TYPE.EntryPoints], projectPath, DIRECTORY_MAP.AUTOMATION, "task")); + response.directoryMap[DIRECTORY_MAP.SERVICE].push(...await getComponents(artifacts[ARTIFACT_TYPE.EntryPoints], projectPath, DIRECTORY_MAP.SERVICE, "http-service")); + response.directoryMap[DIRECTORY_MAP.LISTENER].push(...await getComponents(artifacts[ARTIFACT_TYPE.Listeners], projectPath, DIRECTORY_MAP.LISTENER, "http-service")); + response.directoryMap[DIRECTORY_MAP.FUNCTION].push(...await getComponents(artifacts[ARTIFACT_TYPE.Functions], projectPath, DIRECTORY_MAP.FUNCTION, "function")); + response.directoryMap[DIRECTORY_MAP.DATA_MAPPER].push(...await getComponents(artifacts[ARTIFACT_TYPE.DataMappers], projectPath, DIRECTORY_MAP.DATA_MAPPER, "dataMapper")); + response.directoryMap[DIRECTORY_MAP.CONNECTION].push(...await getComponents(artifacts[ARTIFACT_TYPE.Connections], projectPath, DIRECTORY_MAP.CONNECTION, "connection")); + response.directoryMap[DIRECTORY_MAP.TYPE].push(...await getComponents(artifacts[ARTIFACT_TYPE.Types], projectPath, DIRECTORY_MAP.TYPE, "type")); + response.directoryMap[DIRECTORY_MAP.CONFIGURABLE].push(...await getComponents(artifacts[ARTIFACT_TYPE.Configurations], projectPath, DIRECTORY_MAP.CONFIGURABLE, "config")); + response.directoryMap[DIRECTORY_MAP.NP_FUNCTION].push(...await getComponents(artifacts[ARTIFACT_TYPE.NaturalFunctions], projectPath, DIRECTORY_MAP.NP_FUNCTION, "function")); } -async function getComponents(artifacts: Record, artifactType: DIRECTORY_MAP, icon: string, moduleName?: string): Promise { +async function getComponents( + artifacts: Record, + projectPath: string, + artifactType: DIRECTORY_MAP, + icon: string, + moduleName?: string +): Promise { + const entries: ProjectStructureArtifactResponse[] = []; if (!artifacts) { return entries; @@ -125,14 +148,14 @@ async function getComponents(artifacts: Record, artifactTy if (artifact.type !== artifactType) { continue; } - const entryValue = await getEntryValue(artifact, icon, moduleName); + const entryValue = await getEntryValue(artifact, projectPath, icon, moduleName); entries.push(entryValue); } return entries; } -async function getEntryValue(artifact: BaseArtifact, icon: string, moduleName?: string) { - const targetFile = Utils.joinPath(URI.file(StateMachine.context().projectPath), artifact.location.fileName).fsPath; +async function getEntryValue(artifact: BaseArtifact, projectPath: string, icon: string, moduleName?: string) { + const targetFile = Utils.joinPath(URI.file(projectPath), artifact.location.fileName).fsPath; const entryValue: ProjectStructureArtifactResponse = { id: artifact.id, name: artifact.name, @@ -169,17 +192,17 @@ async function getEntryValue(artifact: BaseArtifact, icon: string, moduleName?: }; } else { // Get the children of the service - const resourceFunctions = await getComponents(artifact.children, DIRECTORY_MAP.RESOURCE, icon, artifact.module); - const remoteFunctions = await getComponents(artifact.children, DIRECTORY_MAP.REMOTE, icon, artifact.module); - const privateFunctions = await getComponents(artifact.children, DIRECTORY_MAP.FUNCTION, icon, artifact.module); + const resourceFunctions = await getComponents(artifact.children, projectPath, DIRECTORY_MAP.RESOURCE, icon, artifact.module); + const remoteFunctions = await getComponents(artifact.children, projectPath, DIRECTORY_MAP.REMOTE, icon, artifact.module); + const privateFunctions = await getComponents(artifact.children, projectPath, DIRECTORY_MAP.FUNCTION, icon, artifact.module); entryValue.resources = [...resourceFunctions, ...remoteFunctions, ...privateFunctions]; } break; case DIRECTORY_MAP.TYPE: if (artifact.children && Object.keys(artifact.children).length > 0) { - const resourceFunctions = await getComponents(artifact.children, DIRECTORY_MAP.RESOURCE, icon, artifact.module); - const remoteFunctions = await getComponents(artifact.children, DIRECTORY_MAP.REMOTE, icon, artifact.module); - const privateFunctions = await getComponents(artifact.children, DIRECTORY_MAP.FUNCTION, icon, artifact.module); + const resourceFunctions = await getComponents(artifact.children, projectPath, DIRECTORY_MAP.RESOURCE, icon, artifact.module); + const remoteFunctions = await getComponents(artifact.children, projectPath, DIRECTORY_MAP.REMOTE, icon, artifact.module); + const privateFunctions = await getComponents(artifact.children, projectPath, DIRECTORY_MAP.FUNCTION, icon, artifact.module); entryValue.resources = [...resourceFunctions, ...remoteFunctions, ...privateFunctions]; } break; @@ -272,8 +295,10 @@ function getDirectoryMapKeyAndIcon(artifact: BaseArtifact, artifactCategoryKey: function processDeletion(artifact: BaseArtifact, artifactCategoryKey: string, projectStructure: ProjectStructureResponse): void { const mapping = getDirectoryMapKeyAndIcon(artifact, artifactCategoryKey); if (mapping) { - projectStructure.directoryMap[mapping.mapKey] = - projectStructure.directoryMap[mapping.mapKey]?.filter(value => value.id !== artifact.id) ?? []; + const projectPath = StateMachine.context().projectPath; + const project = projectStructure.projects.find(project => project.projectPath === projectPath); + project.directoryMap[mapping.mapKey] = + project.directoryMap[mapping.mapKey]?.filter(value => value.id !== artifact.id) ?? []; } else { console.error(`Could not determine directory map key for deletion of artifact ${artifact.id} in category ${artifactCategoryKey}`); } @@ -290,13 +315,16 @@ async function processAddition(artifact: BaseArtifact, artifactCategoryKey: stri const mapping = getDirectoryMapKeyAndIcon(artifact, artifactCategoryKey); if (mapping) { try { - const entryValue = await getEntryValue(artifact, mapping.icon); + const projectPath = StateMachine.context().projectPath; + const entryValue = await getEntryValue(artifact, projectPath, mapping.icon); + + const project = projectStructure.projects.find(project => project.projectPath === projectPath); // Ensure the array exists before pushing - if (!projectStructure.directoryMap[mapping.mapKey]) { - projectStructure.directoryMap[mapping.mapKey] = []; + if (!project.directoryMap[mapping.mapKey]) { + project.directoryMap[mapping.mapKey] = []; } entryValue.isNew = true; // This is a flag to identify the new artifact - projectStructure.directoryMap[mapping.mapKey]?.push(entryValue); + project.directoryMap[mapping.mapKey]?.push(entryValue); return entryValue; } catch (error) { console.error(`Error processing addition for artifact ${artifact.id} in category ${artifactCategoryKey}:`, error); @@ -319,18 +347,20 @@ async function processUpdate(artifact: BaseArtifact, artifactCategoryKey: string const mapping = getDirectoryMapKeyAndIcon(artifact, artifactCategoryKey); if (mapping) { try { - const entryValue = await getEntryValue(artifact, mapping.icon); + const projectPath = StateMachine.context().projectPath; + const entryValue = await getEntryValue(artifact, projectPath, mapping.icon); + const project = projectStructure.projects.find(project => project.projectPath === projectPath); // Ensure the array exists - if (!projectStructure.directoryMap[mapping.mapKey]) { - projectStructure.directoryMap[mapping.mapKey] = []; + if (!project.directoryMap[mapping.mapKey]) { + project.directoryMap[mapping.mapKey] = []; } - const index = projectStructure.directoryMap[mapping.mapKey]?.findIndex(value => value.id === artifact.id); + const index = project.directoryMap[mapping.mapKey]?.findIndex(value => value.id === artifact.id); if (index !== undefined && index !== -1) { - projectStructure.directoryMap[mapping.mapKey][index] = entryValue; + project.directoryMap[mapping.mapKey][index] = entryValue; } else { // Artifact not found for update, add it instead (matches original logic) console.warn(`Artifact ${artifact.id} not found for update in ${mapping.mapKey}, adding it instead.`); - projectStructure.directoryMap[mapping.mapKey]?.push(entryValue); + project.directoryMap[mapping.mapKey]?.push(entryValue); } return entryValue; } catch (error) { @@ -374,9 +404,12 @@ async function traverseUpdatedComponents(publishedArtifacts: Artifacts, currentP // Wait for all additions and updates to complete const results = await Promise.all(promises); - for (const key of Object.keys(currentProjectStructure.directoryMap)) { - if (currentProjectStructure.directoryMap[key]) { - currentProjectStructure.directoryMap[key].sort((a, b) => a.name.localeCompare(b.name)); + const projectPath = StateMachine.context().projectPath; + const project = currentProjectStructure.projects.find(project => project.projectPath === projectPath); + + for (const key of Object.keys(project.directoryMap)) { + if (project.directoryMap[key]) { + project.directoryMap[key].sort((a, b) => a.name.localeCompare(b.name)); } } @@ -389,7 +422,7 @@ async function traverseUpdatedComponents(publishedArtifacts: Artifacts, currentP return entryLocations; } -async function populateLocalConnectors(projectDir: string, response: ProjectStructureResponse) { +async function populateLocalConnectors(projectDir: string, response: ProjectStructure) { const filePath = `${projectDir}/Ballerina.toml`; const localConnectors = (await StateMachine.langClient().getOpenApiGeneratedModules({ projectPath: projectDir })).modules || []; const mappedEntries: ProjectStructureArtifactResponse[] = localConnectors.map(moduleName => ({ diff --git a/workspaces/ballerina/ballerina-extension/src/utils/runCommand.ts b/workspaces/ballerina/ballerina-extension/src/utils/runCommand.ts index 49dddf0f045..ee791f5075e 100644 --- a/workspaces/ballerina/ballerina-extension/src/utils/runCommand.ts +++ b/workspaces/ballerina/ballerina-extension/src/utils/runCommand.ts @@ -38,6 +38,93 @@ export async function runBackgroundTerminalCommand(command: string) { }); } +/** + * Run a command with output streamed to an output channel + * @param command Command to execute + * @param cwd Working directory for the command + * @param outputChannel VSCode output channel to stream output to + * @param onProgress Optional callback to report progress (e.g., module being pulled) + * @returns Promise that resolves with success status and exit code + */ +export function runCommandWithOutput( + command: string, + cwd: string, + outputChannel: vscode.OutputChannel, + onProgress?: (message: string) => void +): Promise<{ success: boolean; exitCode: number | null }> { + return new Promise((resolve) => { + console.log(`[runCommandWithOutput] Executing: ${command} in ${cwd}`); + + // Show the output channel + outputChannel.show(true); + outputChannel.appendLine(`Running: ${command}`); + outputChannel.appendLine(`Working directory: ${cwd}`); + outputChannel.appendLine(''); + + // Spawn the process + const proc = child_process.spawn(command, [], { + shell: true, + cwd: cwd, + env: process.env as { [key: string]: string } + }); + + // Handle stdout + proc.stdout?.on('data', (data: Buffer) => { + const text = data.toString(); + outputChannel.append(text); + + // Parse module names from output for progress reporting + if (onProgress) { + // Look for patterns like "ballerinax/redis:3.1.0 [central.ballerina.io..." + const moduleMatch = text.match(/(\w+\/[\w-]+:\d+\.\d+\.\d+)\s+\[/); + if (moduleMatch) { + const moduleName = moduleMatch[1]; + onProgress(`Pulling ${moduleName} ...`); + } + + // Also check for "pulled from central successfully" messages + const successMatch = text.match(/(\w+\/[\w-]+:\d+\.\d+\.\d+)\s+pulled from central successfully/); + if (successMatch) { + const moduleName = successMatch[1]; + onProgress(`${moduleName} pulled successfully`); + } + } + }); + + // Handle stderr + proc.stderr?.on('data', (data: Buffer) => { + const text = data.toString(); + outputChannel.append(text); + console.log(`[runCommandWithOutput] stderr: ${text}`); + onProgress(`Something went wrong. check the output for more details.`); + }); + + // Handle process errors + proc.on('error', (error) => { + const errorMsg = `Process error: ${error.message}`; + outputChannel.appendLine(errorMsg); + console.error(`[runCommandWithOutput] ${errorMsg}`, error); + onProgress(`Something went wrong. check the output for more details.`); + resolve({ success: false, exitCode: null }); + }); + + // Handle process exit + proc.on('close', (code) => { + const exitMsg = `\nProcess exited with code ${code}`; + outputChannel.appendLine(exitMsg); + console.log(`[runCommandWithOutput] ${exitMsg}`); + + const success = code === 0; + if (success) { + onProgress(`All dependencies pulled successfully`); + } else { + onProgress(`Something went wrong. check the output for more details.`); + } + resolve({ success, exitCode: code }); + }); + }); +} + export function openExternalUrl(url:string){ vscode.env.openExternal(vscode.Uri.parse(url)); } diff --git a/workspaces/ballerina/ballerina-extension/src/utils/source-utils.ts b/workspaces/ballerina/ballerina-extension/src/utils/source-utils.ts index 95cd3203957..ed399c82c75 100644 --- a/workspaces/ballerina/ballerina-extension/src/utils/source-utils.ts +++ b/workspaces/ballerina/ballerina-extension/src/utils/source-utils.ts @@ -186,7 +186,7 @@ export async function updateSourceCode(updateSourceCodeRequest: UpdateSourceCode console.log("No artifact update notification received within 10 seconds"); unsubscribe(); StateMachine.setReadyMode(); - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.Overview }); + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.PackageOverview }); reject(new Error("Operation timed out. Please try again.")); }, 10000); diff --git a/workspaces/ballerina/ballerina-extension/src/utils/state-machine-utils.ts b/workspaces/ballerina/ballerina-extension/src/utils/state-machine-utils.ts index cd112d139fa..a769b3291f7 100644 --- a/workspaces/ballerina/ballerina-extension/src/utils/state-machine-utils.ts +++ b/workspaces/ballerina/ballerina-extension/src/utils/state-machine-utils.ts @@ -28,9 +28,9 @@ import { getConstructBodyString } from "./history/util"; import { extension } from "../BalExtensionContext"; import path from "path"; -export async function getView(documentUri: string, position: NodePosition, projectPath?: string): Promise { +export async function getView(documentUri: string, position: NodePosition, projectPath: string): Promise { const haveTreeData = !!StateMachine.context().projectStructure; - const isServiceClassFunction = await checkForServiceClassFunctions(documentUri, position); + const isServiceClassFunction = await checkForServiceClassFunctions(documentUri, position, projectPath); if (isServiceClassFunction || path.relative(projectPath || '', documentUri).startsWith("tests")) { return { location: { @@ -49,10 +49,11 @@ export async function getView(documentUri: string, position: NodePosition, proje } } -async function checkForServiceClassFunctions(documentUri: string, position: NodePosition) { +async function checkForServiceClassFunctions(documentUri: string, position: NodePosition, projectPath: string) { const currentProjectArtifacts = StateMachine.context().projectStructure; if (currentProjectArtifacts) { - for (const dir of currentProjectArtifacts.directoryMap[DIRECTORY_MAP.TYPE]) { + const project = currentProjectArtifacts.projects.find(project => project.projectPath === projectPath); + for (const dir of project.directoryMap[DIRECTORY_MAP.TYPE]) { if (dir.path === documentUri && isPositionWithinBlock(position, dir.position)) { const req = getSTByRangeReq(documentUri, position); const node = await StateMachine.langClient().getSTByRange(req) as SyntaxTreeResponse; @@ -262,15 +263,16 @@ async function getViewBySTRange(documentUri: string, position: NodePosition, pro } } - return { location: { view: MACHINE_VIEW.Overview, documentUri: documentUri } }; + return { location: { view: MACHINE_VIEW.PackageOverview, documentUri: documentUri } }; } -function getViewByArtifacts(documentUri: string, position: NodePosition, projectPath?: string) { +function getViewByArtifacts(documentUri: string, position: NodePosition, projectPath: string) { const currentProjectArtifacts = StateMachine.context().projectStructure; if (currentProjectArtifacts) { // Iterate through each category in the directory map - for (const [key, directory] of Object.entries(currentProjectArtifacts.directoryMap)) { + const project = currentProjectArtifacts.projects.find(project => project.projectPath === projectPath); + for (const [key, directory] of Object.entries(project.directoryMap)) { // Check each artifact in the category for (const dir of directory) { // Go through the resources array if it exists @@ -291,7 +293,7 @@ function getViewByArtifacts(documentUri: string, position: NodePosition, project } } // If no view is found, return the overview view - return { location: { view: MACHINE_VIEW.Overview, documentUri: documentUri } }; + return { location: { view: MACHINE_VIEW.PackageOverview, documentUri: documentUri } }; } } diff --git a/workspaces/ballerina/ballerina-extension/src/views/ai-panel/activate.ts b/workspaces/ballerina/ballerina-extension/src/views/ai-panel/activate.ts index 3fe5b860c14..4dab56881ab 100644 --- a/workspaces/ballerina/ballerina-extension/src/views/ai-panel/activate.ts +++ b/workspaces/ballerina/ballerina-extension/src/views/ai-panel/activate.ts @@ -17,20 +17,53 @@ */ import * as vscode from 'vscode'; -import { AIPanelPrompt, SHARED_COMMANDS } from '@wso2/ballerina-core'; +import { AIPanelPrompt, EVENT_TYPE, MACHINE_VIEW, SHARED_COMMANDS } from '@wso2/ballerina-core'; import { closeAIWebview, openAIWebview } from './aiMachine'; import { BallerinaExtension } from '../../core'; import { notifyAiWebview } from '../../RPCLayer'; +import { openView, StateMachine } from '../../stateMachine'; export function activateAiPanel(ballerinaExtInstance: BallerinaExtension) { ballerinaExtInstance.context.subscriptions.push( - vscode.commands.registerCommand(SHARED_COMMANDS.OPEN_AI_PANEL, (defaultPrompt?: AIPanelPrompt) => { - if (defaultPrompt instanceof vscode.Uri) { - // Passed directly from vscode side - openAIWebview(null); - } else { - openAIWebview(defaultPrompt); + vscode.commands.registerCommand(SHARED_COMMANDS.OPEN_AI_PANEL, async (defaultPrompt?: AIPanelPrompt) => { + const context = StateMachine.context(); + const { workspacePath, view, projectPath, projectInfo } = context; + + // Determine if package selection is required + const requiresPackageSelection = + workspacePath && + (view === MACHINE_VIEW.WorkspaceOverview || !projectPath); + + if (requiresPackageSelection) { + const availablePackages = projectInfo?.children.map((child) => child.projectPath) ?? []; + + // No packages available, open webview with no context + if (availablePackages.length === 0) { + openAIWebview(null); + return; + } + + try { + const selectedPackage = await vscode.window.showQuickPick(availablePackages, { + placeHolder: "Select a package to open AI panel", + ignoreFocusOut: false + }); + + // User cancelled selection + if (!selectedPackage) { + return; + } + + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.PackageOverview, projectPath: selectedPackage }); + } catch (error) { + console.error("Error selecting package:", error); + return; + } } + + // Open webview with appropriate prompt + const prompt = defaultPrompt instanceof vscode.Uri ? null : defaultPrompt; + openAIWebview(prompt); }) ); ballerinaExtInstance.context.subscriptions.push( diff --git a/workspaces/ballerina/ballerina-extension/src/views/bbe/activator.ts b/workspaces/ballerina/ballerina-extension/src/views/bbe/activator.ts index eda692f24a5..c05206026ea 100644 --- a/workspaces/ballerina/ballerina-extension/src/views/bbe/activator.ts +++ b/workspaces/ballerina/ballerina-extension/src/views/bbe/activator.ts @@ -104,12 +104,6 @@ function showExamples(context: ExtensionContext, langClient: ExtendedLangClient) } export function activate(ballerinaExtInstance: BallerinaExtension) { - const context = ballerinaExtInstance.context; - const langClient = ballerinaExtInstance.langClient; - const examplesListRenderer = commands.registerCommand(PALETTE_COMMANDS.SHOW_EXAMPLES, () => { - sendTelemetryEvent(ballerinaExtInstance, TM_EVENT_OPEN_EXAMPLES, CMP_EXAMPLES_VIEW); - showExamples(context, langClient); - }); - - context.subscriptions.push(examplesListRenderer); + // TODO: Implement this once the samples are available + // https://github.com/wso2/product-ballerina-integrator/issues/1967 } diff --git a/workspaces/ballerina/ballerina-extension/src/views/migration-report/webview.ts b/workspaces/ballerina/ballerina-extension/src/views/migration-report/webview.ts index 0e4c1dd6ec1..1797dc1cf5b 100644 --- a/workspaces/ballerina/ballerina-extension/src/views/migration-report/webview.ts +++ b/workspaces/ballerina/ballerina-extension/src/views/migration-report/webview.ts @@ -19,6 +19,7 @@ import { Disposable, Uri, ViewColumn, WebviewPanel, window } from "vscode"; import { extension } from "../../BalExtensionContext"; import path from "path"; +import { MigrateIntegrationRpcManager } from "../../rpc-managers/migrate-integration/rpc-manager"; export class MigrationReportWebview { public static currentPanel: MigrationReportWebview | undefined; @@ -29,31 +30,75 @@ export class MigrationReportWebview { this._panel = panel; this._panel.onDidDispose(() => this.dispose(), null, this._disposables); - const htmlWithStyleRemoval = reportContent.replace( + // Get the singleton RPC manager + const rpcManager = MigrateIntegrationRpcManager.getInstance(); + + // Set up message listener to handle clicks from webview + this._panel.webview.onDidReceiveMessage( + message => { + if (message.type === 'openSubProjectReport') { + // Forward the message to the RPC manager + rpcManager.openSubProjectReport({ + projectName: message.projectName + }).catch(error => { + console.error("Failed to open sub-project report:", error); + }); + } + }, + null, + this._disposables + ); + + const htmlWithScripts = reportContent.replace( "", `` ); - this._panel.webview.html = htmlWithStyleRemoval; + this._panel.webview.html = htmlWithScripts; } public static createOrShow(fileName: string, reportContent: string): void { - if (MigrationReportWebview.currentPanel) { + // For the aggregate report (default name), reuse the panel if it exists + const isAggregateReport = fileName === "migration-report.html"; + + if (isAggregateReport && MigrationReportWebview.currentPanel) { MigrationReportWebview.currentPanel._panel.reveal(ViewColumn.Active); MigrationReportWebview.currentPanel.updateContent(reportContent); return; } const panel = window.createWebviewPanel( - "migrationReport", - `Migration Report`, + isAggregateReport ? "migrationReport" : `migrationReport-${Date.now()}`, + isAggregateReport ? `Migration Report` : `Migration Report - ${fileName}`, ViewColumn.Active, { enableScripts: true, @@ -66,23 +111,50 @@ export class MigrationReportWebview { dark: Uri.file(path.join(extension.context.extensionPath, "resources", "icons", "dark-icon.svg")), }; - MigrationReportWebview.currentPanel = new MigrationReportWebview(panel, reportContent); + const webview = new MigrationReportWebview(panel, reportContent); + + // Only set as currentPanel if it's the aggregate report + if (isAggregateReport) { + MigrationReportWebview.currentPanel = webview; + } } private updateContent(reportContent: string): void { - const htmlWithStyleRemoval = reportContent.replace( + const htmlWithScripts = reportContent.replace( "", `` ); - this._panel.webview.html = htmlWithStyleRemoval; + this._panel.webview.html = htmlWithScripts; } public dispose(): void { diff --git a/workspaces/ballerina/ballerina-extension/src/views/visualizer/activate.ts b/workspaces/ballerina/ballerina-extension/src/views/visualizer/activate.ts index 3e1c4b28e77..0a59af5ea2a 100644 --- a/workspaces/ballerina/ballerina-extension/src/views/visualizer/activate.ts +++ b/workspaces/ballerina/ballerina-extension/src/views/visualizer/activate.ts @@ -21,8 +21,8 @@ import { PALETTE_COMMANDS } from '../../features/project/cmds/cmd-runner'; import { StateMachine, openView } from '../../stateMachine'; import { extension } from '../../BalExtensionContext'; import { BI_COMMANDS, EVENT_TYPE, MACHINE_VIEW, NodePosition, SHARED_COMMANDS } from '@wso2/ballerina-core'; -import { buildProjectArtifactsStructure } from '../../utils/project-artifacts'; -import { findBallerinaPackageRoot } from '../../utils'; +import { buildProjectsStructure } from '../../utils/project-artifacts'; +import { createVersionNumber, findBallerinaPackageRoot, isSupportedSLVersion } from '../../utils'; export function activateSubscriptions() { const context = extension.context; @@ -45,49 +45,82 @@ export function activateSubscriptions() { // <------------- Shared Commands ------------> context.subscriptions.push( - vscode.commands.registerCommand(SHARED_COMMANDS.SHOW_VISUALIZER, async (path: string | vscode.Uri, position, resetHistory = false) => { - // Check if position is a LineRange object (has 'start' and 'end' keys) - let nodePosition: NodePosition = position; - if (position && typeof position === "object" && "start" in position && "end" in position) { - // Convert LineRange to NodePosition - nodePosition = { - startLine: position.start.line, - startColumn: position.start.character, - endLine: position.end.line, - endColumn: position.end.character - }; - } - let documentPath = ""; - if (path) { - if (typeof path === "string") { - if (path.startsWith("file:")) { - documentPath = vscode.Uri.parse(path).fsPath; - } else { - documentPath = vscode.Uri.file(path).fsPath; + vscode.commands.registerCommand( + SHARED_COMMANDS.SHOW_VISUALIZER, + async ( + pathOrItem: string | vscode.Uri | vscode.TreeItem, + position, + resetHistory = false + ) => { + // Check if position is a LineRange object (has 'start' and 'end' keys) + let nodePosition: NodePosition = position; + if (position && typeof position === "object" && "start" in position && "end" in position) { + // Convert LineRange to NodePosition + nodePosition = { + startLine: position.start.line, + startColumn: position.start.character, + endLine: position.end.line, + endColumn: position.end.character + }; + } + let documentPath = ""; + if (pathOrItem) { + if (typeof pathOrItem === "string") { + if (pathOrItem.startsWith("file:")) { + documentPath = vscode.Uri.parse(pathOrItem).fsPath; + } else { + documentPath = vscode.Uri.file(pathOrItem).fsPath; + } + } else if (pathOrItem instanceof vscode.Uri) { + documentPath = pathOrItem.fsPath; } - } else if (path.fsPath) { - documentPath = path.fsPath; } - } - const projectPath = StateMachine.context().projectPath; - const projectRoot = await findBallerinaPackageRoot(documentPath); + let projectPath = StateMachine.context().projectPath; + const projectRoot = await findBallerinaPackageRoot(documentPath); + + const isBallerinaWorkspace = !!StateMachine.context().workspacePath; + if (isBallerinaWorkspace) { + if (pathOrItem instanceof vscode.TreeItem) { + openView( + EVENT_TYPE.OPEN_VIEW, + { + projectPath: pathOrItem.resourceUri?.fsPath, + view: MACHINE_VIEW.PackageOverview + }, + true + ); + return; + } + const documentUri = documentPath || vscode.window.activeTextEditor?.document.uri.fsPath; + openView( + EVENT_TYPE.OPEN_VIEW, + { + projectPath: projectRoot, + documentUri: documentUri, + position: nodePosition + }, + true + ); + return; + } - if (!projectPath || projectPath !== projectRoot) { - // Initialize project structure if not already set by finding and loading the Ballerina project root - // Can happen when the user opens a directory containing multiple Ballerina projects - if (projectRoot) { - await StateMachine.updateProjectRoot(projectRoot); + if (!projectPath || projectPath !== projectRoot) { + // Initialize project structure if not already set by finding and loading the Ballerina project root + // Can happen when the user opens a directory containing multiple Ballerina projects + if (projectRoot) { + const projectInfo = await StateMachine.langClient().getProjectInfo({ projectPath: projectRoot }); + await StateMachine.updateProjectRootAndInfo(projectRoot, projectInfo); + } + } + + if (StateMachine.langClient() && StateMachine.context().isBISupported) { // This is added since we can't fetch new diagram data without bi supported ballerina version + openView(EVENT_TYPE.OPEN_VIEW, { documentUri: documentPath || vscode.window.activeTextEditor?.document.uri.fsPath, position: nodePosition }, resetHistory); + } else { + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BallerinaUpdateView }); // Redirect user to the ballerina update available page } } - - if (StateMachine.langClient() && StateMachine.context().isBISupported) { // This is added since we can't fetch new diagram data without bi supported ballerina version - openView(EVENT_TYPE.OPEN_VIEW, { documentUri: documentPath || vscode.window.activeTextEditor?.document.uri.fsPath, position: nodePosition }, resetHistory); - } else { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BallerinaUpdateView }); // Redirect user to the ballerina update available page - } - - }) + ) ); context.subscriptions.push( @@ -98,7 +131,8 @@ export function activateSubscriptions() { context.subscriptions.push( vscode.commands.registerCommand(SHARED_COMMANDS.FORCE_UPDATE_PROJECT_ARTIFACTS, () => { - return buildProjectArtifactsStructure(StateMachine.context().projectPath, StateMachine.langClient(), true); + console.log("Force updating project artifacts..."); + return buildProjectsStructure(StateMachine.context().projectInfo, StateMachine.langClient(), true); }) ); @@ -114,7 +148,17 @@ export function activateSubscriptions() { context.subscriptions.push( vscode.commands.registerCommand(SHARED_COMMANDS.OPEN_BI_NEW_PROJECT, () => { - openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BIProjectForm }); + const isBallerinaWorkspace = !!StateMachine.context().workspacePath; + const isWorkspaceSupported = isSupportedSLVersion( + extension.ballerinaExtInstance, + createVersionNumber(2201, 13, 0) + ); + + if (isBallerinaWorkspace && isWorkspaceSupported) { + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BIAddProjectForm }); + } else { + openView(EVENT_TYPE.OPEN_VIEW, { view: MACHINE_VIEW.BIProjectForm }); + } }) ); diff --git a/workspaces/ballerina/ballerina-extension/src/views/visualizer/webview.ts b/workspaces/ballerina/ballerina-extension/src/views/visualizer/webview.ts index a7ed431ac61..93172a02b46 100644 --- a/workspaces/ballerina/ballerina-extension/src/views/visualizer/webview.ts +++ b/workspaces/ballerina/ballerina-extension/src/views/visualizer/webview.ts @@ -68,7 +68,7 @@ export class VisualizerWebview { const documentUri = document.document.uri.toString(); const isDocumentUnderProject = documentUri.includes(projectPath); // Reset visualizer the undo-redo stack if user did changes in the editor - if (isOpened && isDocumentUnderProject && !this._panel?.active) { + if (isOpened && isDocumentUnderProject && !this._panel?.active && !undoRedoManager?.isBatchInProgress()) { undoRedoManager.reset(); } @@ -172,16 +172,15 @@ export class VisualizerWebview { .loader-wrapper { display: flex; justify-content: center; - align-items: flex-start; - height: 100%; + align-items: center; + height: 100vh; width: 100%; - padding-top: 30vh; } .loader { - width: 36px; + width: 28px; aspect-ratio: 1; border-radius: 50%; - border: 6px solid var(--vscode-button-background); + border: 5px solid var(--vscode-progressBar-background); animation: l20-1 0.5s infinite linear alternate, l20-2 1s infinite linear; @@ -210,13 +209,12 @@ export class VisualizerWebview { font-family: var(--vscode-font-family); } .logo-container { - margin-bottom: 2rem; display: flex; justify-content: center; } .welcome-title { color: var(--vscode-foreground); - margin: 0 0 0.5rem 0; + margin: 1.5rem 0 0.5rem 0; letter-spacing: -0.02em; font-size: 1.5em; font-weight: 400; @@ -229,7 +227,7 @@ export class VisualizerWebview { opacity: 0.8; } .loading-text { - color: var(--vscode-foreground); + color: var(--vscode-button-background); font-size: 13px; font-weight: 500; } diff --git a/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/batch-processing.ts b/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/batch-processing.ts index d16eba8e1c7..eab486a6be7 100644 --- a/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/batch-processing.ts +++ b/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/batch-processing.ts @@ -102,18 +102,4 @@ async function setupTestEnvironmentForBatch(projectPath: string): Promise // Give VSCode time to detect the workspace and trigger activation await new Promise(resolve => setTimeout(resolve, TIMING.WORKSPACE_SETTLE_DELAY)); - - // Force extension activation by opening a Ballerina file - try { - const testBalFile = Uri.file(path.join(projectPath, FILES.MAIN_BAL)); - await commands.executeCommand(VSCODE_COMMANDS.OPEN, testBalFile); - await new Promise(resolve => setTimeout(resolve, TIMING.FILE_OPEN_DELAY)); - } catch (error) { - // Fallback: try to execute a ballerina command to force activation - try { - await commands.executeCommand(VSCODE_COMMANDS.SHOW_EXAMPLES); - } catch (cmdError) { - // Extension might still be loading - } - } } diff --git a/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/constants.ts b/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/constants.ts index 002872c0b9a..6225a495d57 100644 --- a/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/constants.ts +++ b/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/constants.ts @@ -76,6 +76,5 @@ observabilityIncluded = true export const VSCODE_COMMANDS = { CLOSE_ALL_EDITORS: "workbench.action.closeAllEditors", OPEN: "vscode.open", - SHOW_EXAMPLES: "ballerina.showExamples", AI_GENERATE_CODE_CORE: "ballerina.test.ai.generateCodeCore" } as const; diff --git a/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/evaluator-utils.ts b/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/evaluator-utils.ts index 18cd396aab9..49946170609 100644 --- a/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/evaluator-utils.ts +++ b/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/evaluator-utils.ts @@ -15,7 +15,7 @@ // under the License. import { generateText } from "ai"; -import { ProjectModule, ProjectSource, SourceFile, SourceFiles } from "@wso2/ballerina-core"; +import { ProjectModule, ProjectSource, SourceFile } from "@wso2/ballerina-core"; import { createAnthropic } from "@ai-sdk/anthropic"; import path from "path"; import fs from "fs"; @@ -61,12 +61,12 @@ const evaluationSchema = z.object({ */ export async function evaluateCodeWithLLM( userQuery: string, - initialSource: SourceFiles[], - finalSource: SourceFiles[] + initialSource: SourceFile[], + finalSource: SourceFile[] ): Promise { console.log("🤖 Starting LLM-based semantic evaluation..."); - const stringifySources = (sources: SourceFiles[]): string => { + const stringifySources = (sources: SourceFile[]): string => { if (sources.length === 0) return "No files in the project."; return sources.map(file => `--- File: ${file.filePath} ---\n${file.content}`).join("\n\n"); }; @@ -164,7 +164,9 @@ export async function getProjectSource(dirPath: string): Promise\s*```ballerina([\s\S]*?)```\s*<\/code>/g; let match; diff --git a/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/test-execution.ts b/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/test-execution.ts index 028b2e89c20..c175edc1293 100644 --- a/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/test-execution.ts +++ b/workspaces/ballerina/ballerina-extension/test/ai/evals/code/utils/test-execution.ts @@ -21,14 +21,14 @@ import { createTestEventHandler } from './test-event-handler'; import { validateTestResult } from './test-validation'; import { VSCODE_COMMANDS } from './constants'; import { getProjectFromResponse, getProjectSource } from "./evaluator-utils"; -import { SourceFiles } from "@wso2/ballerina-core"; +import { SourceFile } from "@wso2/ballerina-core"; /** * Executes a single test case and returns the result */ export async function executeSingleTestCase(useCase: TestUseCase): Promise { console.log(`\n🚀 Starting test case: ${useCase.id} - ${useCase.description}`); - + const { handler: testEventHandler, getResult } = createTestEventHandler(useCase); const params: GenerateCodeRequest = { @@ -38,13 +38,13 @@ export async function executeSingleTestCase(useCase: TestUseCase): Promise { +export async function validateTestResult(result: TestEventResult, useCase: TestUseCase, initialSources: SourceFile[], finalSources: SourceFile[]): Promise { const validationDetails = { noErrorCheck: true, noDiagnosticsCheck: true diff --git a/workspaces/ballerina/ballerina-extension/test/ai/integration_tests/libs/index.ts b/workspaces/ballerina/ballerina-extension/test/ai/integration_tests/libs/index.ts index e2309aace78..f42d6fedd87 100644 --- a/workspaces/ballerina/ballerina-extension/test/ai/integration_tests/libs/index.ts +++ b/workspaces/ballerina/ballerina-extension/test/ai/integration_tests/libs/index.ts @@ -29,27 +29,28 @@ export function run(): Promise { const testsRoot = path.resolve(__dirname, "."); return new Promise((resolve, reject) => { - glob.glob("**/**.test.js", { cwd: testsRoot }, (err, files) => { - if (err) { - return reject(err); - } - - // Add files to the test suite - files.forEach((f) => mocha.addFile(path.resolve(testsRoot, f))); - - try { - // Run the mocha test - mocha.run((failures) => { - if (failures > 0) { - reject(new Error(`${failures} tests failed.`)); - } else { - resolve(); - } - }); - } catch (err) { + glob.glob("**/**.test.js", { cwd: testsRoot }) + .then((files) => { + // Add files to the test suite + files.forEach((f) => mocha.addFile(path.resolve(testsRoot, f))); + + try { + // Run the mocha test + mocha.run((failures) => { + if (failures > 0) { + reject(new Error(`${failures} tests failed.`)); + } else { + resolve(); + } + }); + } catch (err) { + console.error(err); + reject(err); + } + }) + .catch((err) => { console.error(err); reject(err); - } - }); + }); }); } diff --git a/workspaces/ballerina/ballerina-extension/test/ai/integration_tests/libs/setup.ts b/workspaces/ballerina/ballerina-extension/test/ai/integration_tests/libs/setup.ts index 2000537bf9a..5e966615075 100644 --- a/workspaces/ballerina/ballerina-extension/test/ai/integration_tests/libs/setup.ts +++ b/workspaces/ballerina/ballerina-extension/test/ai/integration_tests/libs/setup.ts @@ -35,8 +35,7 @@ const PATHS = { const VSCODE_COMMANDS = { CLOSE_ALL_EDITORS: "workbench.action.closeAllEditors", - OPEN: "vscode.open", - SHOW_EXAMPLES: "ballerina.showExamples", + OPEN: "vscode.open" }; /** @@ -59,21 +58,6 @@ export async function setupTestEnvironment(): Promise { // Wait for workspace to settle and extension to activate await new Promise(resolve => setTimeout(resolve, TIMING.WORKSPACE_SETTLE_DELAY)); - // Force extension activation by opening a Ballerina file - try { - const PROJECT_ROOT = path.resolve(__dirname, PATHS.PROJECT_ROOT_RELATIVE); - const testBalFile = Uri.file(path.join(PROJECT_ROOT, "main.bal")); - await commands.executeCommand(VSCODE_COMMANDS.OPEN, testBalFile); - await new Promise(resolve => setTimeout(resolve, TIMING.FILE_OPEN_DELAY)); - } catch (error) { - // Fallback: try to execute a ballerina command to force activation - try { - await commands.executeCommand(VSCODE_COMMANDS.SHOW_EXAMPLES); - } catch (cmdError) { - // Extension might still be loading - } - } - // Wait for extension to activate (it activates onStartupFinished) // Give it sufficient time to load language server and initialize console.log("Waiting for extension activation and language server initialization..."); diff --git a/workspaces/ballerina/ballerina-extension/webpack.config.js b/workspaces/ballerina/ballerina-extension/webpack.config.js index cbf4aad0946..509f2aa0292 100644 --- a/workspaces/ballerina/ballerina-extension/webpack.config.js +++ b/workspaces/ballerina/ballerina-extension/webpack.config.js @@ -3,15 +3,48 @@ 'use strict'; const path = require('path'); -const MergeIntoSingleFile = require('webpack-merge-and-include-globally'); +const fs = require('fs'); +const { minify } = require('uglify-js'); const dotenv = require('dotenv'); const webpack = require('webpack'); const { createEnvDefinePlugin } = require('../../../common/scripts/env-webpack-helper'); +/** + * Concatenate and minify a list of source files into a single output file. + * @param {{ sources: string[]; outputRelativePath: string }} options + * @returns {{ apply(compiler: import('webpack').Compiler): void }} + */ +function concatenateAndMinify(options) { + return { + apply(compiler) { + compiler.hooks.afterEmit.tapPromise('ConcatenateAndMinifyPlugin', async (compilation) => { + try { + const concatenated = options.sources + .map(file => fs.readFileSync(file, 'utf8')) + .join('\n;\n'); + const result = minify(concatenated, { toplevel: false }); + if (result.error) throw result.error; + const outBase = (compiler.options.output && compiler.options.output.path) ? compiler.options.output.path : path.resolve(__dirname, 'dist'); + const outPath = path.resolve(outBase, options.outputRelativePath); + fs.mkdirSync(path.dirname(outPath), { recursive: true }); + fs.writeFileSync(outPath, result.code, 'utf8'); + console.log(`Created concatenated webview commons: ${outPath}`); + } catch (err) { + const e = err instanceof Error ? err : new Error(String(err)); + compilation.errors.push(e); + console.error('Failed to build webviewCommons.js:', e); + } + }); + } + }; +} + const envPath = path.resolve(__dirname, '.env'); -const env = dotenv.config({ path: envPath }).parsed; +const env = dotenv.config({ path: envPath }).parsed || {}; // ensure object for //@ts-check console.log("Fetching values for environment variables..."); -const { envKeys, missingVars } = createEnvDefinePlugin(env); +const cenv = /** @type {any} */ (createEnvDefinePlugin(env)); +const envKeys = cenv.envKeys || {}; +const missingVars = Array.isArray(cenv.missingVars) ? cenv.missingVars : []; if (missingVars.length > 0) { console.warn( '\n⚠️ Environment Variable Configuration Warning:\n' + @@ -60,16 +93,13 @@ module.exports = { stats: 'normal', plugins: [ new webpack.DefinePlugin(envKeys), - new MergeIntoSingleFile({ - files: { - [path.join('..', 'resources', 'jslibs', 'webviewCommons.js')]: [ - path.resolve('resources', 'utils', 'undo-redo.js'), - path.resolve('node_modules', 'pako', 'dist', 'pako.min.js'), - ], - }, - transform: { - 'webviewCommons.js': code => require("uglify-js").minify(code).code - } + // Custom concatenation + minification plugin (replacement for deprecated dependency) + concatenateAndMinify({ + sources: [ + path.resolve(__dirname, 'resources', 'utils', 'undo-redo.js'), + path.resolve(__dirname, 'node_modules', 'pako', 'dist', 'pako.min.js'), + ], + outputRelativePath: path.join('..', 'resources', 'jslibs', 'webviewCommons.js') }) ] }; diff --git a/workspaces/ballerina/ballerina-low-code-diagram/package.json b/workspaces/ballerina/ballerina-low-code-diagram/package.json index 2fa7e46f929..c4ecb72a6e6 100644 --- a/workspaces/ballerina/ballerina-low-code-diagram/package.json +++ b/workspaces/ballerina/ballerina-low-code-diagram/package.json @@ -75,7 +75,7 @@ "css-loader": "^7.1.2", "file-loader": "^6.2.0", "fork-ts-checker-webpack-plugin": "^9.1.0", - "glob": "^11.0.2", + "glob": "^11.1.0", "react-scripts-ts": "^3.1.0", "react-test-renderer": "^19.1.0", "rimraf": "^6.0.1", diff --git a/workspaces/ballerina/ballerina-rpc-client/src/BallerinaRpcClient.ts b/workspaces/ballerina/ballerina-rpc-client/src/BallerinaRpcClient.ts index 0ad25d5aaa1..7b5882861a8 100644 --- a/workspaces/ballerina/ballerina-rpc-client/src/BallerinaRpcClient.ts +++ b/workspaces/ballerina/ballerina-rpc-client/src/BallerinaRpcClient.ts @@ -51,7 +51,10 @@ import { currentThemeChanged, ChatNotify, onChatNotify, - AIMachineSendableEvent + AIMachineSendableEvent, + dependencyPullProgress, + ProjectMigrationResult, + onMigratedProject } from "@wso2/ballerina-core"; import { LangClientRpcClient } from "./rpc-clients/lang-client/rpc-client"; import { LibraryBrowserRpcClient } from "./rpc-clients/library-browser/rpc-client"; @@ -237,6 +240,14 @@ export class BallerinaRpcClient { this.messenger.onNotification(onMigrationToolStateChanged, callback); } + onDependencyPullProgress(callback: (message: string) => void) { + this.messenger.onNotification(dependencyPullProgress, callback); + } + + onMigratedProject(callback: (result: ProjectMigrationResult) => void) { + this.messenger.onNotification(onMigratedProject, callback); + } + getPopupVisualizerState(): Promise { return this.messenger.sendRequest(getPopupVisualizerState, HOST_EXTENSION); } diff --git a/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/bi-diagram/rpc-client.ts b/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/bi-diagram/rpc-client.ts index 1c206541478..4caa723cdd3 100644 --- a/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/bi-diagram/rpc-client.ts +++ b/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/bi-diagram/rpc-client.ts @@ -53,6 +53,7 @@ import { CurrentBreakpointsResponse, DeleteConfigVariableRequestV2, DeleteConfigVariableResponseV2, + DeleteProjectRequest, DeleteTypeRequest, DeleteTypeResponse, DeploymentRequest, @@ -130,6 +131,7 @@ import { deleteConfigVariableV2, deleteFlowNode, deleteOpenApiGeneratedModules, + deleteProject, deleteType, deployProject, formDidClose, @@ -199,6 +201,7 @@ import { getExpressionTokens, ExpressionTokensRequest, AddProjectToWorkspaceRequest, + OpenReadmeRequest, } from "@wso2/ballerina-core"; import { HOST_EXTENSION } from "vscode-messenger-common"; import { Messenger } from "vscode-messenger-webview"; @@ -270,6 +273,10 @@ export class BiDiagramRpcClient implements BIDiagramAPI { return this._messenger.sendNotification(createProject, HOST_EXTENSION, params); } + deleteProject(params: DeleteProjectRequest): void { + return this._messenger.sendNotification(deleteProject, HOST_EXTENSION, params); + } + addProjectToWorkspace(params: AddProjectToWorkspaceRequest): void { return this._messenger.sendNotification(addProjectToWorkspace, HOST_EXTENSION, params); } @@ -334,12 +341,12 @@ export class BiDiagramRpcClient implements BIDiagramAPI { return this._messenger.sendRequest(getModuleNodes, HOST_EXTENSION); } - getReadmeContent(): Promise { - return this._messenger.sendRequest(getReadmeContent, HOST_EXTENSION); + getReadmeContent(params: ReadmeContentRequest): Promise { + return this._messenger.sendRequest(getReadmeContent, HOST_EXTENSION, params); } - openReadme(): void { - return this._messenger.sendNotification(openReadme, HOST_EXTENSION); + openReadme(params: OpenReadmeRequest): void { + return this._messenger.sendNotification(openReadme, HOST_EXTENSION, params); } renameIdentifier(params: RenameIdentifierRequest): Promise { diff --git a/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/migrate-integration/rpc-client.ts b/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/migrate-integration/rpc-client.ts index 8c91f99e201..e2894c7c5a3 100644 --- a/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/migrate-integration/rpc-client.ts +++ b/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/migrate-integration/rpc-client.ts @@ -25,13 +25,17 @@ import { MigrateRequest, MigrationToolPullRequest, OpenMigrationReportRequest, + OpenSubProjectReportRequest, SaveMigrationReportRequest, + StoreSubProjectReportsRequest, getMigrationTools, importIntegration, migrateProject, openMigrationReport, + openSubProjectReport, pullMigrationTool, - saveMigrationReport + saveMigrationReport, + storeSubProjectReports } from "@wso2/ballerina-core"; import { HOST_EXTENSION } from "vscode-messenger-common"; import { Messenger } from "vscode-messenger-webview"; @@ -59,6 +63,14 @@ export class MigrateIntegrationRpcClient implements MigrateIntegrationAPI { return this._messenger.sendNotification(openMigrationReport, HOST_EXTENSION, params); } + openSubProjectReport(params: OpenSubProjectReportRequest): void { + return this._messenger.sendNotification(openSubProjectReport, HOST_EXTENSION, params); + } + + storeSubProjectReports(params: StoreSubProjectReportsRequest): void { + return this._messenger.sendNotification(storeSubProjectReports, HOST_EXTENSION, params); + } + saveMigrationReport(params: SaveMigrationReportRequest): void { return this._messenger.sendNotification(saveMigrationReport, HOST_EXTENSION, params); } diff --git a/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/visualizer/rpc-client.ts b/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/visualizer/rpc-client.ts index bbdde39ea7e..cb01c023a9d 100644 --- a/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/visualizer/rpc-client.ts +++ b/workspaces/ballerina/ballerina-rpc-client/src/rpc-clients/visualizer/rpc-client.ts @@ -21,6 +21,8 @@ import { AddToUndoStackRequest, ColorThemeKind, HistoryEntry, + JoinProjectPathRequest, + JoinProjectPathResponse, OpenViewRequest, ProjectStructureArtifactResponse, UndoRedoStateResponse, @@ -90,8 +92,8 @@ export class VisualizerRpcClient implements VisualizerAPI { return this._messenger.sendRequest(undoRedoState, HOST_EXTENSION); } - joinProjectPath(segments: string | string[]): Promise { - return this._messenger.sendRequest(joinProjectPath, HOST_EXTENSION, segments); + joinProjectPath(params: JoinProjectPathRequest): Promise { + return this._messenger.sendRequest(joinProjectPath, HOST_EXTENSION, params); } getThemeKind(): Promise { diff --git a/workspaces/ballerina/ballerina-side-panel/package.json b/workspaces/ballerina/ballerina-side-panel/package.json index 8fcaa618b85..04324c9a4dd 100644 --- a/workspaces/ballerina/ballerina-side-panel/package.json +++ b/workspaces/ballerina/ballerina-side-panel/package.json @@ -28,7 +28,11 @@ "lodash": "~4.17.21", "react-hook-form": "7.56.4", "react-markdown": "~10.1.0", - "@github/markdown-toolbar-element": "^2.2.3" + "@github/markdown-toolbar-element": "^2.2.3", + "@codemirror/commands": "~6.10.0", + "@codemirror/state": "~6.5.2", + "@codemirror/view": "~6.38.6", + "@codemirror/autocomplete": "~6.19.1" }, "devDependencies": { "@storybook/react": "^6.5.16", diff --git a/workspaces/ballerina/ballerina-side-panel/src/components/Form/index.tsx b/workspaces/ballerina/ballerina-side-panel/src/components/Form/index.tsx index 0ac8b2f5895..ee7921bf142 100644 --- a/workspaces/ballerina/ballerina-side-panel/src/components/Form/index.tsx +++ b/workspaces/ballerina/ballerina-side-panel/src/components/Form/index.tsx @@ -48,6 +48,7 @@ import { Type, VisualizableField, NodeProperties, + VisualizerLocation, } from "@wso2/ballerina-core"; import { FormContext, Provider } from "../../context"; import { @@ -323,7 +324,7 @@ export interface FormProps { onFormValidation?: (data: FormValues, dirtyFields?: any) => Promise; isSaving?: boolean; openRecordEditor?: (isOpen: boolean, fields: FormValues, editingField?: FormField, newType?: string | NodeProperties) => void; - openView?: (filePath: string, position: NodePosition) => void; + openView?: (location: VisualizerLocation) => void; openSubPanel?: (subPanel: SubPanel) => void; subPanelView?: SubPanelView; onCancelForm?: () => void; @@ -620,7 +621,9 @@ export const Form = forwardRef((props: FormProps) => { }; // Find the first editable field - const firstEditableFieldIndex = formFields.findIndex((field) => field.editable !== false); + const firstEditableFieldIndex = formFields.findIndex( + (field) => field.editable !== false && (field.value == null || field.value === '') + ); const isValid = useMemo(() => { let hasDiagnostics: boolean = false; diff --git a/workspaces/ballerina/ballerina-side-panel/src/components/Form/types.ts b/workspaces/ballerina/ballerina-side-panel/src/components/Form/types.ts index d7101a4a3b7..0c387c23ce5 100644 --- a/workspaces/ballerina/ballerina-side-panel/src/components/Form/types.ts +++ b/workspaces/ballerina/ballerina-side-panel/src/components/Form/types.ts @@ -218,6 +218,7 @@ type FormExpressionEditorBaseProps = { onSave?: (value: string) => void | Promise; onRemove?: () => void; onSaveConfigurables?: (values: any) => void; + onOpenRecordConfigPage?: (fieldKey: string, currentValue: string, recordTypeField: any, onChange: (value: string) => void) => void; } type ExpressionEditorRPCManager = { diff --git a/workspaces/ballerina/ballerina-side-panel/src/components/ModeSwitcher/index.tsx b/workspaces/ballerina/ballerina-side-panel/src/components/ModeSwitcher/index.tsx index 74374c69005..4cd26249f0d 100644 --- a/workspaces/ballerina/ballerina-side-panel/src/components/ModeSwitcher/index.tsx +++ b/workspaces/ballerina/ballerina-side-panel/src/components/ModeSwitcher/index.tsx @@ -23,16 +23,17 @@ import { getDefaultExpressionMode } from '../editors/MultiModeExpressionEditor/C interface ModeSwitcherProps { value: InputMode; + isRecordTypeField: boolean; onChange: (value: InputMode) => void; valueTypeConstraint: string | string[]; } -const ModeSwitcher: React.FC = ({ value, onChange, valueTypeConstraint }) => { +const ModeSwitcher: React.FC = ({ value, isRecordTypeField, onChange, valueTypeConstraint }) => { const isChecked = value === InputMode.EXP; const defaultMode = useMemo( - () => getDefaultExpressionMode(valueTypeConstraint), - [valueTypeConstraint] + () => isRecordTypeField ? InputMode.RECORD : getDefaultExpressionMode(valueTypeConstraint), + [valueTypeConstraint, isRecordTypeField] ); const handlePrimaryModeClick = () => { diff --git a/workspaces/ballerina/ballerina-side-panel/src/components/ModeSwitcher/styles.tsx b/workspaces/ballerina/ballerina-side-panel/src/components/ModeSwitcher/styles.tsx index 2697d4dc233..ba06bcb2910 100644 --- a/workspaces/ballerina/ballerina-side-panel/src/components/ModeSwitcher/styles.tsx +++ b/workspaces/ballerina/ballerina-side-panel/src/components/ModeSwitcher/styles.tsx @@ -34,15 +34,19 @@ export const Label = styled.span` top: 50%; transform: translateY(-50%); cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + white-space: nowrap; &:first-of-type { left: 0; - width: 30%; + width: 40%; } &:last-of-type { - left: 30%; - width: 70%; + left: 40%; + width: 60%; } `; @@ -67,8 +71,8 @@ export const Slider = styled.div<{ checked: boolean }>` content: ""; position: absolute; height: calc(100% - 4px); - width: ${props => props.checked ? 'calc(70% - 6px)' : 'calc(30% - 2px)'}; - left: ${props => props.checked ? 'calc(30% + 4px)' : '2px'}; + width: ${props => props.checked ? 'calc(60% - 4px)' : 'calc(40% - 2px)'}; + left: ${props => props.checked ? 'calc(40% + 2px)' : '2px'}; border-radius: 1px; background: ${ThemeColors.SURFACE_DIM}; transition: all 0.25s cubic-bezier(0.4, 0.0, 0.2, 1); @@ -90,7 +94,7 @@ export const SwitchWrapper = styled.div` position: relative; display: inline-flex; align-items: center; - width: 110px; + width: 112px; height: 24px; margin-top: 2px; `; diff --git a/workspaces/ballerina/ballerina-side-panel/src/components/editors/ArrayEditor.tsx b/workspaces/ballerina/ballerina-side-panel/src/components/editors/ArrayEditor.tsx index 016c6c3c25f..e5067b449e4 100644 --- a/workspaces/ballerina/ballerina-side-panel/src/components/editors/ArrayEditor.tsx +++ b/workspaces/ballerina/ballerina-side-panel/src/components/editors/ArrayEditor.tsx @@ -16,7 +16,7 @@ * under the License. */ -import React, { useEffect, useState } from "react"; +import React, { useEffect, useRef, useState } from "react"; import { Button, Codicon, ThemeColors } from "@wso2/ui-toolkit"; import styled from "@emotion/styled"; @@ -102,18 +102,31 @@ export function ArrayEditor(props: ArrayEditorProps) { const value = watch(`${field.key}-${index}`); let updatedValue = value; + if (updatedValue === undefined) { // Use the initial array value if available updatedValue = Array.isArray(field.value) ? field.value[index] : ""; setValue(`${field.key}-${index}`, updatedValue ?? ""); } + // HACK: When using expression editor and if the user deleted whole text then the value becomes + // an empty value. + if (updatedValue === "") { + setValue(`${field.key}-${index}`, " "); + } return updatedValue; }) - .filter(Boolean); // Update the main field.value array whenever individual fields change + const previousValuesRef = useRef(); useEffect(() => { + const serializedValues = JSON.stringify(values); + if (previousValuesRef.current === serializedValues) { + return; + } + + // Prevent redundant form updates which would otherwise trigger endless rerenders. + previousValuesRef.current = serializedValues; setValue(field.key, values); }, [values, field.key, setValue]); diff --git a/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/ExpandedEditor.tsx b/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/ExpandedEditor.tsx index 85330799795..838868b3bdd 100644 --- a/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/ExpandedEditor.tsx +++ b/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/ExpandedEditor.tsx @@ -19,12 +19,14 @@ import React, { useState, useEffect } from "react"; import { createPortal } from "react-dom"; import styled from "@emotion/styled"; -import { ThemeColors, Divider, Typography } from "@wso2/ui-toolkit"; -import { FormField } from "../../Form/types"; +import { ThemeColors, Divider, Typography, CompletionItem, FnSignatureDocumentation, HelperPaneHeight } from "@wso2/ui-toolkit"; +import { FormField, HelperpaneOnChangeOptions } from "../../Form/types"; import { EditorMode } from "./modes/types"; import { TextMode } from "./modes/TextMode"; import { PromptMode } from "./modes/PromptMode"; -import { CompressButton } from "../MultiModeExpressionEditor/ChipExpressionEditor/components/FloatingButtonIcons"; +import { ExpressionMode } from "./modes/ExpressionMode"; +import { MinimizeIcon } from "../MultiModeExpressionEditor/ChipExpressionEditor/components/FloatingButtonIcons"; +import { LineRange } from "@wso2/ballerina-core/lib/interfaces/common"; interface ExpandedPromptEditorProps { isOpen: boolean; @@ -32,6 +34,24 @@ interface ExpandedPromptEditorProps { value: string; onClose: () => void; onSave: (value: string) => void; + onChange: (updatedValue: string, updatedCursorPosition: number) => void; + // Optional mode override (if not provided, will be auto-detected) + mode?: EditorMode; + // Expression mode specific props + completions?: CompletionItem[]; + fileName?: string; + targetLineRange?: LineRange; + extractArgsFromFunction?: (value: string, cursorPosition: number) => Promise<{ + label: string; + args: string[]; + currentArgIndex: number; + documentation?: FnSignatureDocumentation; + }>; + getHelperPane?: ( + value: string, + onChange: (value: string, options?: HelperpaneOnChangeOptions) => void, + helperPaneHeight: HelperPaneHeight + ) => React.ReactNode; } const ModalContainer = styled.div` @@ -40,7 +60,7 @@ const ModalContainer = styled.div` left: 0; width: 100%; height: 100%; - z-index: 30000; + z-index: 2001; display: flex; justify-content: center; align-items: center; @@ -63,7 +83,7 @@ const ModalBox = styled.div` border-radius: 3px; background-color: ${ThemeColors.SURFACE_DIM}; box-shadow: 0 3px 8px rgb(0 0 0 / 0.2); - z-index: 30001; + z-index: 2001; resize: both; `; @@ -78,18 +98,48 @@ const ModalHeaderSection = styled.header` const ModalContent = styled.div` flex: 1; overflow-y: auto; - padding: 18px 16px; + padding: 8px 18px 16px; display: flex; flex-direction: column; `; +const MinimizeButton = styled.div` + cursor: pointer; + width: 20px; + height: 20px; + display: flex; + align-items: center; + justify-content: center; + opacity: 0.7; + transition: opacity 0.2s ease, background-color 0.2s ease; + border-radius: 2px; + + &:hover { + opacity: 1; + background-color: var(--vscode-editor-inactiveSelectionBackground); + } + + svg { + width: 16px; + height: auto; + } +`; + +const TitleWrapper = styled.div` + margin: 12px 0; + + h3 { + margin: 0; + } +`; /** * Map of mode components - add new modes here */ const MODE_COMPONENTS: Record> = { text: TextMode, - prompt: PromptMode + prompt: PromptMode, + expression: ExpressionMode }; export const ExpandedEditor: React.FC = ({ @@ -97,19 +147,26 @@ export const ExpandedEditor: React.FC = ({ field, value, onClose, + onChange, onSave, + mode: propMode, + completions, + fileName, + targetLineRange, + extractArgsFromFunction, + getHelperPane }) => { - const [editedValue, setEditedValue] = useState(value); const promptFields = ["query", "instructions", "role"]; - const defaultMode: EditorMode = promptFields.includes(field.key) ? "prompt" : "text"; + + // Determine mode - use prop if provided, otherwise auto-detect + const defaultMode: EditorMode = propMode ?? ( + promptFields.includes(field.key) ? "prompt" : "text" + ); + const [mode] = useState(defaultMode); const [showPreview, setShowPreview] = useState(false); const [mouseDownTarget, setMouseDownTarget] = useState(null); - useEffect(() => { - setEditedValue(value); - }, [value, isOpen]); - useEffect(() => { if (mode === "text") { setShowPreview(false); @@ -117,7 +174,6 @@ export const ExpandedEditor: React.FC = ({ }, [mode]); const handleMinimize = () => { - onSave(editedValue); onClose(); }; @@ -140,24 +196,36 @@ export const ExpandedEditor: React.FC = ({ // Prepare props for the mode component const modeProps = { - value: editedValue, - onChange: setEditedValue, + value: value, + onChange: onChange, field, // Props for modes with preview support ...(mode === "prompt" && { isPreviewMode: showPreview, onTogglePreview: () => setShowPreview(!showPreview) + }), + // Props for expression mode + ...(mode === "expression" && { + completions, + fileName, + targetLineRange, + extractArgsFromFunction, + getHelperPane }) }; + // HACK: Must find a proper central way to manager popups + const targetEl = document.getElementById("visualizer-container"); - return createPortal( + return targetEl ? createPortal( e.stopPropagation()}> - {field.label} -
- -
+ + {field.label} + + + +
@@ -167,6 +235,6 @@ export const ExpandedEditor: React.FC = ({ , - document.body - ); + targetEl + ) : null; }; diff --git a/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/index.ts b/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/index.ts index 662f369f6ae..12d5a822011 100644 --- a/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/index.ts +++ b/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/index.ts @@ -17,4 +17,4 @@ */ export { ExpandedEditor } from "./ExpandedEditor"; -export type { EditorMode, EditorModeProps, EditorModeWithPreviewProps } from "./modes/types"; +export type { EditorMode, EditorModeProps, EditorModeWithPreviewProps, EditorModeExpressionProps } from "./modes/types"; diff --git a/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/modes/ExpressionMode.tsx b/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/modes/ExpressionMode.tsx new file mode 100644 index 00000000000..8a980f79aa3 --- /dev/null +++ b/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/modes/ExpressionMode.tsx @@ -0,0 +1,64 @@ +/** + * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com) All Rights Reserved. + * + * WSO2 LLC. licenses this file to you 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. + */ + +import React from "react"; +import styled from "@emotion/styled"; +import { EditorModeExpressionProps } from "./types"; +import { ChipExpressionEditorComponent } from "../../MultiModeExpressionEditor/ChipExpressionEditor/components/ChipExpressionEditor"; + +const ExpressionContainer = styled.div` + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + box-sizing: border-box; +`; + +/** + * Expression mode editor - uses ChipExpressionBaseComponent in expanded mode + */ +export const ExpressionMode: React.FC = ({ + value, + onChange, + completions = [], + fileName, + targetLineRange, + extractArgsFromFunction, + getHelperPane +}) => { + // Convert onChange signature from (value: string) => void to (value: string, cursorPosition: number) => void + const handleChange = (updatedValue: string, updatedCursorPosition: number) => { + onChange(updatedValue, updatedCursorPosition); + }; + + return ( + + + + ); +}; diff --git a/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/modes/PromptMode.tsx b/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/modes/PromptMode.tsx index 6e0244bff2c..2bc061a6dda 100644 --- a/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/modes/PromptMode.tsx +++ b/workspaces/ballerina/ballerina-side-panel/src/components/editors/ExpandedEditor/modes/PromptMode.tsx @@ -77,7 +77,7 @@ export const PromptMode: React.FC = ({ if (!content.trim()) { e.preventDefault(); const newValue = textBeforeCursor.substring(0, lastNewlineIndex + 1) + '\n' + textAfterCursor; - onChange(newValue); + onChange(newValue, cursorPosition); // Set cursor position after both newlines queueMicrotask(() => { textarea.selectionStart = textarea.selectionEnd = lastNewlineIndex + 2; @@ -88,7 +88,7 @@ export const PromptMode: React.FC = ({ // Continue the list e.preventDefault(); const newValue = textBeforeCursor + '\n' + indent + marker + ' ' + textAfterCursor; - onChange(newValue); + onChange(newValue, cursorPosition); // Set cursor position after the list marker queueMicrotask(() => { const newCursorPos = cursorPosition + indent.length + marker.length + 2; @@ -106,7 +106,7 @@ export const PromptMode: React.FC = ({ if (!content.trim()) { e.preventDefault(); const newValue = textBeforeCursor.substring(0, lastNewlineIndex + 1) + '\n' + textAfterCursor; - onChange(newValue); + onChange(newValue, cursorPosition); // Set cursor position after both newlines queueMicrotask(() => { textarea.selectionStart = textarea.selectionEnd = lastNewlineIndex + 2; @@ -118,7 +118,7 @@ export const PromptMode: React.FC = ({ e.preventDefault(); const nextNumber = parseInt(number, 10) + 1; const newValue = textBeforeCursor + '\n' + indent + nextNumber + '. ' + textAfterCursor; - onChange(newValue); + onChange(newValue, cursorPosition); // Set cursor position after the list marker queueMicrotask(() => { const newCursorPos = cursorPosition + indent.length + nextNumber.toString().length + 3; @@ -136,7 +136,7 @@ export const PromptMode: React.FC = ({ if (!content.trim()) { e.preventDefault(); const newValue = textBeforeCursor.substring(0, lastNewlineIndex + 1) + '\n' + textAfterCursor; - onChange(newValue); + onChange(newValue, cursorPosition); // Set cursor position after both newlines queueMicrotask(() => { textarea.selectionStart = textarea.selectionEnd = lastNewlineIndex + 2; @@ -147,7 +147,7 @@ export const PromptMode: React.FC = ({ // Continue the task list with unchecked box e.preventDefault(); const newValue = textBeforeCursor + '\n' + indent + marker + ' [ ] ' + textAfterCursor; - onChange(newValue); + onChange(newValue, cursorPosition); // Set cursor position after the task marker queueMicrotask(() => { const newCursorPos = cursorPosition + indent.length + marker.length + 6; @@ -174,7 +174,7 @@ export const PromptMode: React.FC = ({