From 3dc2d96514527900a1cf05c6bb5d16b489cdf265 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 21 Oct 2025 10:49:15 +0800 Subject: [PATCH 01/24] =?UTF-8?q?feat=EF=BC=9A=E3=80=90mall=20=E5=95=86?= =?UTF-8?q?=E5=9F=8E=E3=80=91=E5=95=86=E5=93=81=E5=B1=9E=E6=80=A7=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E7=BB=84=E4=BB=B6=E3=80=90antd=E3=80=91100%:=20?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/mall/product/spu/modules/index.ts | 66 + .../spu/modules/product-attributes.vue | 210 ++ pnpm-lock.yaml | 1739 +++++++++-------- 3 files changed, 1146 insertions(+), 869 deletions(-) create mode 100644 apps/web-antd/src/views/mall/product/spu/modules/index.ts create mode 100644 apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue diff --git a/apps/web-antd/src/views/mall/product/spu/modules/index.ts b/apps/web-antd/src/views/mall/product/spu/modules/index.ts new file mode 100644 index 000000000..f52caee99 --- /dev/null +++ b/apps/web-antd/src/views/mall/product/spu/modules/index.ts @@ -0,0 +1,66 @@ +import type { MallSpuApi } from '#/api/mall/product/spu'; + +export interface PropertyAndValues { + id: number; + name: string; + values?: PropertyAndValues[]; +} + +export interface RuleConfig { + // 需要校验的字段 + // 例:name: 'name' 则表示校验 sku.name 的值 + // 例:name: 'productConfig.stock' 则表示校验 sku.productConfig.name 的值,此处 productConfig 表示我在 Sku 上扩展的属性 + name: string; + // 校验规格为一个毁掉函数,其中 arg 为需要校验的字段的值。 + // 例:需要校验价格必须大于0.01 + // { + // name:'price', + // rule:(arg: number) => arg > 0.01 + // } + rule: (arg: any) => boolean; + // 校验不通过时的消息提示 + message: string; +} + +/** + * 获得商品的规格列表 - 商品相关的公共函数 + * + * @param spu + * @return PropertyAndValues 规格列表 + */ +const getPropertyList = (spu: MallSpuApi.Spu): PropertyAndValues[] => { + // 直接拿返回的 skus 属性逆向生成出 propertyList + const properties: PropertyAndValues[] = []; + // 只有是多规格才处理 + if (spu.specType) { + spu.skus?.forEach((sku) => { + sku.properties?.forEach( + ({ propertyId, propertyName, valueId, valueName }) => { + // 添加属性 + if (!properties?.some((item) => item.id === propertyId)) { + properties.push({ + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + id: propertyId!, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + name: propertyName!, + values: [], + }); + } + // 添加属性值 + const index = properties?.findIndex((item) => item.id === propertyId); + if ( + !properties[index]?.values?.some((value) => value.id === valueId) + ) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + properties[index]?.values?.push({ id: valueId!, name: valueName! }); + } + }, + ); + }); + } + return properties; +}; + +export { getPropertyList }; + +// export { default as SkuList } from './sku-list.vue'; diff --git a/apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue b/apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue new file mode 100644 index 000000000..1731497c6 --- /dev/null +++ b/apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue @@ -0,0 +1,210 @@ + + + + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2cc3953a1..d74811fa4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,7 +26,7 @@ catalogs: version: 19.8.1 '@eslint/js': specifier: ^9.30.1 - version: 9.37.0 + version: 9.38.0 '@faker-js/faker': specifier: ^9.9.0 version: 9.9.0 @@ -44,7 +44,7 @@ catalogs: version: 3.2.31 '@iconify/json': specifier: ^2.2.354 - version: 2.2.395 + version: 2.2.398 '@iconify/tailwind': specifier: ^1.2.0 version: 1.2.0 @@ -59,7 +59,7 @@ catalogs: version: 6.0.8 '@jspm/generator': specifier: ^2.6.2 - version: 2.7.3 + version: 2.7.4 '@manypkg/get-packages': specifier: ^3.0.0 version: 3.1.0 @@ -71,7 +71,7 @@ catalogs: version: 2.18.2 '@playwright/test': specifier: ^1.53.2 - version: 1.56.0 + version: 1.56.1 '@pnpm/workspace.read-manifest': specifier: ^1000.2.0 version: 1000.2.4 @@ -86,13 +86,13 @@ catalogs: version: 0.5.19 '@tanstack/vue-query': specifier: ^5.81.5 - version: 5.90.2 + version: 5.90.5 '@tanstack/vue-store': specifier: ^0.7.1 version: 0.7.7 '@tinyflow-ai/vue': specifier: ^1.1.1 - version: 1.1.5 + version: 1.1.7 '@tinymce/tinymce-vue': specifier: ^6.1.0 version: 6.3.0 @@ -134,7 +134,7 @@ catalogs: version: 14.1.2 '@types/node': specifier: ^22.16.0 - version: 22.18.10 + version: 22.18.11 '@types/nprogress': specifier: ^0.2.3 version: 0.2.3 @@ -152,16 +152,16 @@ catalogs: version: 1.15.8 '@typescript-eslint/eslint-plugin': specifier: ^8.35.1 - version: 8.46.0 + version: 8.46.1 '@typescript-eslint/parser': specifier: ^8.35.1 - version: 8.46.0 + version: 8.46.1 '@vee-validate/zod': specifier: ^4.15.1 version: 4.15.1 '@vite-pwa/vitepress': specifier: ^1.0.0 - version: 1.0.0 + version: 1.0.1 '@vitejs/plugin-vue': specifier: ^6.0.1 version: 6.0.1 @@ -275,10 +275,10 @@ catalogs: version: 5.6.0 element-plus: specifier: ^2.10.2 - version: 2.11.4 + version: 2.11.5 eslint: specifier: ^9.30.1 - version: 9.37.0 + version: 9.38.0 eslint-config-turbo: specifier: ^2.5.4 version: 2.5.8 @@ -317,13 +317,13 @@ catalogs: version: 59.0.1 eslint-plugin-unused-imports: specifier: ^4.1.4 - version: 4.2.0 + version: 4.3.0 eslint-plugin-vitest: specifier: ^0.5.4 version: 0.5.4 eslint-plugin-vue: specifier: ^10.2.0 - version: 10.5.0 + version: 10.5.1 execa: specifier: ^9.6.0 version: 9.6.0 @@ -422,7 +422,7 @@ catalogs: version: 2.3.0 playwright: specifier: ^1.53.2 - version: 1.56.0 + version: 1.56.1 postcss: specifier: ^8.5.6 version: 8.5.6 @@ -449,7 +449,7 @@ catalogs: version: 0.6.14 publint: specifier: ^0.3.12 - version: 0.3.14 + version: 0.3.15 qrcode: specifier: ^1.5.4 version: 1.5.4 @@ -467,7 +467,7 @@ catalogs: version: 6.0.1 rollup: specifier: ^4.44.1 - version: 4.52.4 + version: 4.52.5 rollup-plugin-visualizer: specifier: ^5.14.0 version: 5.14.0 @@ -545,7 +545,7 @@ catalogs: version: 4.15.1 vite: specifier: ^7.1.2 - version: 7.1.9 + version: 7.1.11 vite-plugin-compression: specifier: ^0.5.1 version: 0.5.1 @@ -560,7 +560,7 @@ catalogs: version: 1.0.7 vite-plugin-pwa: specifier: ^1.0.1 - version: 1.0.3 + version: 1.1.0 vite-plugin-vue-devtools: specifier: ^7.7.7 version: 7.7.7 @@ -569,7 +569,7 @@ catalogs: version: 1.6.4 vitepress-plugin-group-icons: specifier: ^1.6.1 - version: 1.6.3 + version: 1.6.4 vitest: specifier: ^3.2.4 version: 3.2.4 @@ -587,7 +587,7 @@ catalogs: version: 3.0.4 vue-router: specifier: ^4.5.1 - version: 4.5.1 + version: 4.6.3 vue-tippy: specifier: ^6.7.1 version: 6.7.1 @@ -602,10 +602,10 @@ catalogs: version: 4.1.0 vxe-pc-ui: specifier: ^4.9.29 - version: 4.9.42 + version: 4.10.2 vxe-table: specifier: ^4.16.11 - version: 4.16.21 + version: 4.17.0 watermark-js-plus: specifier: ^1.6.2 version: 1.6.3 @@ -633,13 +633,13 @@ importers: version: 0.5.1 '@changesets/cli': specifier: 'catalog:' - version: 2.29.7(@types/node@22.18.10) + version: 2.29.7(@types/node@22.18.11) '@playwright/test': specifier: 'catalog:' - version: 1.56.0 + version: 1.56.1 '@types/node': specifier: 'catalog:' - version: 22.18.10 + version: 22.18.11 '@vben/commitlint-config': specifier: workspace:* version: link:internal/lint-configs/commitlint-config @@ -669,10 +669,10 @@ importers: version: link:scripts/vsh '@vitejs/plugin-vue': specifier: 'catalog:' - version: 6.0.1(vite@7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) + version: 6.0.1(vite@7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vitejs/plugin-vue-jsx': specifier: 'catalog:' - version: 5.1.1(vite@7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) + version: 5.1.1(vite@7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vue/test-utils': specifier: 'catalog:' version: 2.4.6 @@ -696,7 +696,7 @@ importers: version: 1.13.6 playwright: specifier: 'catalog:' - version: 1.56.0 + version: 1.56.1 rimraf: specifier: 'catalog:' version: 6.0.1 @@ -714,10 +714,10 @@ importers: version: 3.6.1(sass@1.93.2)(typescript@5.9.3)(vue-tsc@2.2.10(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3)) vite: specifier: 'catalog:' - version: 7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + version: 7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) vitest: specifier: 'catalog:' - version: 3.2.4(@types/node@22.18.10)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + version: 3.2.4(@types/node@22.18.11)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) vue: specifier: ^3.5.17 version: 3.5.22(typescript@5.9.3) @@ -850,7 +850,7 @@ importers: version: 5.3.0(vue@3.5.22(typescript@5.9.3)) vue-router: specifier: 'catalog:' - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) vue3-signature: specifier: 'catalog:' version: 0.2.4(vue@3.5.22(typescript@5.9.3)) @@ -922,7 +922,7 @@ importers: version: 1.11.18 element-plus: specifier: 'catalog:' - version: 2.11.4(vue@3.5.22(typescript@5.9.3)) + version: 2.11.5(vue@3.5.22(typescript@5.9.3)) highlight.js: specifier: 'catalog:' version: 11.11.1 @@ -940,7 +940,7 @@ importers: version: 5.3.0(vue@3.5.22(typescript@5.9.3)) vue-router: specifier: 'catalog:' - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) vuedraggable: specifier: 'catalog:' version: 4.1.0(vue@3.5.22(typescript@5.9.3)) @@ -1010,7 +1010,7 @@ importers: version: 3.5.22(typescript@5.9.3) vue-router: specifier: 'catalog:' - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) docs: dependencies: @@ -1043,20 +1043,20 @@ importers: version: 1.9.17(vue@3.5.22(typescript@5.9.3)) vitepress-plugin-group-icons: specifier: 'catalog:' - version: 1.6.3(markdown-it@14.1.0)(vite@5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)) + version: 1.6.4(markdown-it@14.1.0)(vite@5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)) devDependencies: '@nolebase/vitepress-plugin-git-changelog': specifier: 'catalog:' - version: 2.18.2(vitepress@1.6.4(@algolia/client-search@5.40.0)(@types/node@24.7.2)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3)) + version: 2.18.2(vitepress@1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3)) '@vben/vite-config': specifier: workspace:* version: link:../internal/vite-config '@vite-pwa/vitepress': specifier: 'catalog:' - version: 1.0.0(vite-plugin-pwa@1.0.3(vite@5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(workbox-build@7.3.0)(workbox-window@7.3.0)) + version: 1.0.1(vite-plugin-pwa@1.1.0(vite@5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(workbox-build@7.3.0)(workbox-window@7.3.0)) vitepress: specifier: 'catalog:' - version: 1.6.4(@algolia/client-search@5.40.0)(@types/node@24.7.2)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3) + version: 1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3) vue: specifier: ^3.5.17 version: 3.5.22(typescript@5.9.3) @@ -1065,7 +1065,7 @@ importers: dependencies: '@commitlint/cli': specifier: 'catalog:' - version: 19.8.1(@types/node@24.7.2)(typescript@5.9.3) + version: 19.8.1(@types/node@24.8.1)(typescript@5.9.3) '@commitlint/config-conventional': specifier: 'catalog:' version: 19.8.1 @@ -1086,65 +1086,65 @@ importers: dependencies: eslint-config-turbo: specifier: 'catalog:' - version: 2.5.8(eslint@9.37.0(jiti@2.6.1))(turbo@2.5.8) + version: 2.5.8(eslint@9.38.0(jiti@2.6.1))(turbo@2.5.8) eslint-plugin-command: specifier: 'catalog:' - version: 3.3.1(eslint@9.37.0(jiti@2.6.1)) + version: 3.3.1(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-import-x: specifier: 'catalog:' - version: 4.16.1(@typescript-eslint/utils@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1)) + version: 4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)) devDependencies: '@eslint/js': specifier: 'catalog:' - version: 9.37.0 + version: 9.38.0 '@types/eslint': specifier: 'catalog:' version: 9.6.1 '@typescript-eslint/eslint-plugin': specifier: 'catalog:' - version: 8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + version: 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: 'catalog:' - version: 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + version: 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) eslint: specifier: 'catalog:' - version: 9.37.0(jiti@2.6.1) + version: 9.38.0(jiti@2.6.1) eslint-plugin-eslint-comments: specifier: 'catalog:' - version: 3.2.0(eslint@9.37.0(jiti@2.6.1)) + version: 3.2.0(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-jsdoc: specifier: 'catalog:' - version: 50.8.0(eslint@9.37.0(jiti@2.6.1)) + version: 50.8.0(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-jsonc: specifier: 'catalog:' - version: 2.21.0(eslint@9.37.0(jiti@2.6.1)) + version: 2.21.0(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-n: specifier: 'catalog:' - version: 17.23.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + version: 17.23.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-no-only-tests: specifier: 'catalog:' version: 3.3.0 eslint-plugin-perfectionist: specifier: 'catalog:' - version: 4.15.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + version: 4.15.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) eslint-plugin-prettier: specifier: 'catalog:' - version: 5.5.4(@types/eslint@9.6.1)(eslint@9.37.0(jiti@2.6.1))(prettier@3.6.2) + version: 5.5.4(@types/eslint@9.6.1)(eslint@9.38.0(jiti@2.6.1))(prettier@3.6.2) eslint-plugin-regexp: specifier: 'catalog:' - version: 2.10.0(eslint@9.37.0(jiti@2.6.1)) + version: 2.10.0(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-unicorn: specifier: 'catalog:' - version: 59.0.1(eslint@9.37.0(jiti@2.6.1)) + version: 59.0.1(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-unused-imports: specifier: 'catalog:' - version: 4.2.0(@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1)) + version: 4.3.0(@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)) eslint-plugin-vitest: specifier: 'catalog:' - version: 0.5.4(@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/node@24.7.2)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) + version: 0.5.4(@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/node@24.8.1)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) eslint-plugin-vue: specifier: 'catalog:' - version: 10.5.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.37.0(jiti@2.6.1))) + version: 10.5.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.38.0(jiti@2.6.1))) globals: specifier: 'catalog:' version: 16.4.0 @@ -1153,7 +1153,7 @@ importers: version: 2.4.1 vue-eslint-parser: specifier: 'catalog:' - version: 10.2.0(eslint@9.37.0(jiti@2.6.1)) + version: 10.2.0(eslint@9.38.0(jiti@2.6.1)) internal/lint-configs/prettier-config: dependencies: @@ -1250,7 +1250,7 @@ importers: dependencies: '@iconify/json': specifier: 'catalog:' - version: 2.2.395 + version: 2.2.398 '@iconify/tailwind': specifier: 'catalog:' version: 1.2.0 @@ -1299,16 +1299,16 @@ importers: version: link:../../packages/types vite: specifier: 'catalog:' - version: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + version: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) internal/vite-config: dependencies: '@intlify/unplugin-vue-i18n': specifier: 'catalog:' - version: 6.0.8(@vue/compiler-dom@3.5.22)(eslint@9.37.0(jiti@2.6.1))(rollup@4.52.4)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) + version: 6.0.8(@vue/compiler-dom@3.5.22)(eslint@9.38.0(jiti@2.6.1))(rollup@4.52.5)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) '@jspm/generator': specifier: 'catalog:' - version: 2.7.3 + version: 2.7.4 archiver: specifier: 'catalog:' version: 7.0.1 @@ -1329,10 +1329,10 @@ importers: version: 2.0.3 vite-plugin-pwa: specifier: 'catalog:' - version: 1.0.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0) + version: 1.1.0(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0) vite-plugin-vue-devtools: specifier: 'catalog:' - version: 7.7.7(rollup@4.52.4)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) + version: 7.7.7(rollup@4.52.5)(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) devDependencies: '@pnpm/workspace.read-manifest': specifier: 'catalog:' @@ -1348,10 +1348,10 @@ importers: version: link:../node-utils '@vitejs/plugin-vue': specifier: 'catalog:' - version: 6.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) + version: 6.0.1(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vitejs/plugin-vue-jsx': specifier: 'catalog:' - version: 5.1.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) + version: 5.1.1(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) dayjs: specifier: 'catalog:' version: 1.11.18 @@ -1360,25 +1360,25 @@ importers: version: 16.6.1 rollup: specifier: 'catalog:' - version: 4.52.4 + version: 4.52.5 rollup-plugin-visualizer: specifier: 'catalog:' - version: 5.14.0(rollup@4.52.4) + version: 5.14.0(rollup@4.52.5) sass: specifier: 'catalog:' version: 1.93.2 vite: specifier: 'catalog:' - version: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + version: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) vite-plugin-compression: specifier: 'catalog:' - version: 0.5.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) + version: 0.5.1(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) vite-plugin-dts: specifier: 'catalog:' - version: 4.5.4(@types/node@24.7.2)(rollup@4.52.4)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) + version: 4.5.4(@types/node@24.8.1)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) vite-plugin-html: specifier: 'catalog:' - version: 3.2.2(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) + version: 3.2.2(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) vite-plugin-lazy-import: specifier: 'catalog:' version: 1.0.7 @@ -1471,7 +1471,7 @@ importers: version: 3.5.22(typescript@5.9.3) vue-router: specifier: 'catalog:' - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) packages/@core/composables: dependencies: @@ -1751,7 +1751,7 @@ importers: version: 3.0.4(vue@3.5.22(typescript@5.9.3)) vue-router: specifier: 'catalog:' - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) vue-tippy: specifier: 'catalog:' version: 6.7.1(vue@3.5.22(typescript@5.9.3)) @@ -1785,7 +1785,7 @@ importers: version: 3.5.22(typescript@5.9.3) vue-router: specifier: 'catalog:' - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) watermark-js-plus: specifier: 'catalog:' version: 1.6.3 @@ -1848,13 +1848,13 @@ importers: version: 3.5.22(typescript@5.9.3) vue-router: specifier: 'catalog:' - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) packages/effects/plugins: dependencies: '@tinyflow-ai/vue': specifier: 'catalog:' - version: 1.1.5(svelte@5.39.11)(vue@3.5.22(typescript@5.9.3)) + version: 1.1.7(svelte@5.41.1)(vue@3.5.22(typescript@5.9.3)) '@vben-core/form-ui': specifier: workspace:* version: link:../../@core/ui-kit/form-ui @@ -1914,10 +1914,10 @@ importers: version: 3.5.22(typescript@5.9.3) vxe-pc-ui: specifier: 'catalog:' - version: 4.9.42(vue@3.5.22(typescript@5.9.3)) + version: 4.10.2(vue@3.5.22(typescript@5.9.3)) vxe-table: specifier: 'catalog:' - version: 4.16.21(vue@3.5.22(typescript@5.9.3)) + version: 4.17.0(vue@3.5.22(typescript@5.9.3)) devDependencies: '@types/codemirror': specifier: 'catalog:' @@ -2006,7 +2006,7 @@ importers: version: 3.5.22(typescript@5.9.3) vue-router: specifier: 'catalog:' - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) packages/styles: dependencies: @@ -2024,7 +2024,7 @@ importers: version: 3.5.22(typescript@5.9.3) vue-router: specifier: 'catalog:' - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) packages/utils: dependencies: @@ -2036,13 +2036,13 @@ importers: version: link:../@core/base/typings vue-router: specifier: 'catalog:' - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) playground: dependencies: '@tanstack/vue-query': specifier: 'catalog:' - version: 5.90.2(vue@3.5.22(typescript@5.9.3)) + version: 5.90.5(vue@3.5.22(typescript@5.9.3)) '@vben-core/menu-ui': specifier: workspace:* version: link:../packages/@core/ui-kit/menu-ui @@ -2108,7 +2108,7 @@ importers: version: 3.5.22(typescript@5.9.3) vue-router: specifier: 'catalog:' - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.3(vue@3.5.22(typescript@5.9.3)) devDependencies: '@types/json-bigint': specifier: 'catalog:' @@ -2142,12 +2142,12 @@ importers: version: 1.4.7 publint: specifier: 'catalog:' - version: 0.3.14 + version: 0.3.15 packages: - '@algolia/abtesting@1.6.0': - resolution: {integrity: sha512-c4M/Z/KWkEG+RHpZsWKDTTlApXu3fe4vlABNcpankWBhdMe4oPZ/r4JxEr2zKUP6K+BT66tnp8UbHmgOd/vvqQ==} + '@algolia/abtesting@1.6.1': + resolution: {integrity: sha512-wV/gNRkzb7sI9vs1OneG129hwe3Q5zPj7zigz3Ps7M5Lpo2hSorrOnXNodHEOV+yXE/ks4Pd+G3CDFIjFTWhMQ==} engines: {node: '>= 14.0.0'} '@algolia/autocomplete-core@1.17.7': @@ -2170,56 +2170,56 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/client-abtesting@5.40.0': - resolution: {integrity: sha512-qegVlgHtmiS8m9nEsuKUVhlw1FHsIshtt5nhNnA6EYz3g+tm9+xkVZZMzkrMLPP7kpoheHJZAwz2MYnHtwFa9A==} + '@algolia/client-abtesting@5.40.1': + resolution: {integrity: sha512-cxKNATPY5t+Mv8XAVTI57altkaPH+DZi4uMrnexPxPHODMljhGYY+GDZyHwv9a+8CbZHcY372OkxXrDMZA4Lnw==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.40.0': - resolution: {integrity: sha512-Dw2c+6KGkw7mucnnxPyyMsIGEY8+hqv6oB+viYB612OMM3l8aNaWToBZMnNvXsyP+fArwq7XGR+k3boPZyV53A==} + '@algolia/client-analytics@5.40.1': + resolution: {integrity: sha512-XP008aMffJCRGAY8/70t+hyEyvqqV7YKm502VPu0+Ji30oefrTn2al7LXkITz7CK6I4eYXWRhN6NaIUi65F1OA==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.40.0': - resolution: {integrity: sha512-dbE4+MJIDsTghG3hUYWBq7THhaAmqNqvW9g2vzwPf5edU4IRmuYpKtY3MMotes8/wdTasWG07XoaVhplJBlvdg==} + '@algolia/client-common@5.40.1': + resolution: {integrity: sha512-gWfQuQUBtzUboJv/apVGZMoxSaB0M4Imwl1c9Ap+HpCW7V0KhjBddqF2QQt5tJZCOFsfNIgBbZDGsEPaeKUosw==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.40.0': - resolution: {integrity: sha512-SH6zlROyGUCDDWg71DlCnbbZ/zEHYPZC8k901EAaBVhvY43Ju8Wa6LAcMPC4tahcDBgkG2poBy8nJZXvwEWAlQ==} + '@algolia/client-insights@5.40.1': + resolution: {integrity: sha512-RTLjST/t+lsLMouQ4zeLJq2Ss+UNkLGyNVu+yWHanx6kQ3LT5jv8UvPwyht9s7R6jCPnlSI77WnL80J32ZuyJg==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.40.0': - resolution: {integrity: sha512-EgHjJEEf7CbUL9gJHI1ULmAtAFeym2cFNSAi1uwHelWgLPcnLjYW2opruPxigOV7NcetkGu+t2pcWOWmZFuvKQ==} + '@algolia/client-personalization@5.40.1': + resolution: {integrity: sha512-2FEK6bUomBzEYkTKzD0iRs7Ljtjb45rKK/VSkyHqeJnG+77qx557IeSO0qVFE3SfzapNcoytTofnZum0BQ6r3Q==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.40.0': - resolution: {integrity: sha512-HvE1jtCag95DR41tDh7cGwrMk4X0aQXPOBIhZRmsBPolMeqRJz0kvfVw8VCKvA1uuoAkjFfTG0X0IZED+rKXoA==} + '@algolia/client-query-suggestions@5.40.1': + resolution: {integrity: sha512-Nju4NtxAvXjrV2hHZNLKVJLXjOlW6jAXHef/CwNzk1b2qIrCWDO589ELi5ZHH1uiWYoYyBXDQTtHmhaOVVoyXg==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.40.0': - resolution: {integrity: sha512-nlr/MMgoLNUHcfWC5Ns2ENrzKx9x51orPc6wJ8Ignv1DsrUmKm0LUih+Tj3J+kxYofzqQIQRU495d4xn3ozMbg==} + '@algolia/client-search@5.40.1': + resolution: {integrity: sha512-Mw6pAUF121MfngQtcUb5quZVqMC68pSYYjCRZkSITC085S3zdk+h/g7i6FxnVdbSU6OztxikSDMh1r7Z+4iPlA==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.40.0': - resolution: {integrity: sha512-OfHnhE+P0f+p3i90Kmshf9Epgesw5oPV1IEUOY4Mq1HV7cQk16gvklVN1EaY/T9sVavl+Vc3g4ojlfpIwZFA4g==} + '@algolia/ingestion@1.40.1': + resolution: {integrity: sha512-z+BPlhs45VURKJIxsR99NNBWpUEEqIgwt10v/fATlNxc4UlXvALdOsWzaFfe89/lbP5Bu4+mbO59nqBC87ZM/g==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.40.0': - resolution: {integrity: sha512-SWANV32PTKhBYvwKozeWP9HOnVabOixAuPdFFGoqtysTkkwutrtGI/rrh80tvG+BnQAmZX0vUmD/RqFZVfr/Yg==} + '@algolia/monitoring@1.40.1': + resolution: {integrity: sha512-VJMUMbO0wD8Rd2VVV/nlFtLJsOAQvjnVNGkMkspFiFhpBA7s/xJOb+fJvvqwKFUjbKTUA7DjiSi1ljSMYBasXg==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.40.0': - resolution: {integrity: sha512-1Qxy9I5bSb3mrhPk809DllMa561zl5hLsMR6YhIqNkqQ0OyXXQokvJ2zApSxvd39veRZZnhN+oGe+XNoNwLgkw==} + '@algolia/recommend@5.40.1': + resolution: {integrity: sha512-ehvJLadKVwTp9Scg9NfzVSlBKH34KoWOQNTaN8i1Ac64AnO6iH2apJVSP6GOxssaghZ/s8mFQsDH3QIZoluFHA==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.40.0': - resolution: {integrity: sha512-MGt94rdHfkrVjfN/KwUfWcnaeohYbWGINrPs96f5J7ZyRYpVLF+VtPQ2FmcddFvK4gnKXSu8BAi81hiIhUpm3w==} + '@algolia/requester-browser-xhr@5.40.1': + resolution: {integrity: sha512-PbidVsPurUSQIr6X9/7s34mgOMdJnn0i6p+N6Ab+lsNhY5eiu+S33kZEpZwkITYBCIbhzDLOvb7xZD3gDi+USA==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.40.0': - resolution: {integrity: sha512-wXQ05JZZ10Dr642QVAkAZ4ZZlU+lh5r6dIBGmm9WElz+1EaQ6BNYtEOTV6pkXuFYsZpeJA89JpDOiwBOP9j24w==} + '@algolia/requester-fetch@5.40.1': + resolution: {integrity: sha512-ThZ5j6uOZCF11fMw9IBkhigjOYdXGXQpj6h4k+T9UkZrF2RlKcPynFzDeRgaLdpYk8Yn3/MnFbwUmib7yxj5Lw==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.40.0': - resolution: {integrity: sha512-5qCRoySnzpbQVg2IPLGFCm4LF75pToxI5tdjOYgUMNL/um91aJ4dH3SVdBEuFlVsalxl8mh3bWPgkUmv6NpJiQ==} + '@algolia/requester-node-http@5.40.1': + resolution: {integrity: sha512-H1gYPojO6krWHnUXu/T44DrEun/Wl95PJzMXRcM/szstNQczSbwq6wIFJPI9nyE95tarZfUNU3rgorT+wZ6iCQ==} engines: {node: '>= 14.0.0'} '@alloc/quick-lru@5.2.0': @@ -2980,8 +2980,8 @@ packages: '@codemirror/state@6.5.2': resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} - '@codemirror/view@6.38.5': - resolution: {integrity: sha512-SFVsNAgsAoou+BjRewMqN+m9jaztB9wCWN9RSRgePqUbq8UVlvJfku5zB2KVhLPgH/h0RLk38tvd4tGeAhygnw==} + '@codemirror/view@6.38.6': + resolution: {integrity: sha512-qiS0z1bKs5WOvHIAC0Cybmv4AJSkAXgX5aD6Mqd2epSLlVJsQl8NG23jCVouIgkh4All/mrbdsf2UOLFnJw0tw==} '@commitlint/cli@19.8.1': resolution: {integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==} @@ -3088,8 +3088,8 @@ packages: '@cspell/dict-bash@4.2.1': resolution: {integrity: sha512-SBnzfAyEAZLI9KFS7DUG6Xc1vDFuLllY3jz0WHvmxe8/4xV3ufFE3fGxalTikc1VVeZgZmxYiABw4iGxVldYEg==} - '@cspell/dict-companies@3.2.5': - resolution: {integrity: sha512-H51R0w7c6RwJJPqH7Gs65tzP6ouZsYDEHmmol6MIIk0kQaOIBuFP2B3vIxHLUr2EPRVFZsMW8Ni7NmVyaQlwsg==} + '@cspell/dict-companies@3.2.6': + resolution: {integrity: sha512-cVWBk4DSUOthCsgOsoB+5L5F1Wk8lWGHnw5de75YCKSjOEV8/6kskwwDrPTIHkoGVzpIzIIQ/OdXhYwa2G+16A==} '@cspell/dict-cpp@6.0.12': resolution: {integrity: sha512-N4NsCTttVpMqQEYbf0VQwCj6np+pJESov0WieCN7R/0aByz4+MXEiDieWWisaiVi8LbKzs1mEj4ZTw5K/6O2UQ==} @@ -3106,8 +3106,8 @@ packages: '@cspell/dict-dart@2.3.1': resolution: {integrity: sha512-xoiGnULEcWdodXI6EwVyqpZmpOoh8RA2Xk9BNdR7DLamV/QMvEYn8KJ7NlRiTSauJKPNkHHQ5EVHRM6sTS7jdg==} - '@cspell/dict-data-science@2.0.9': - resolution: {integrity: sha512-wTOFMlxv06veIwKdXUwdGxrQcK44Zqs426m6JGgHIB/GqvieZQC5n0UI+tUm5OCxuNyo4OV6mylT4cRMjtKtWQ==} + '@cspell/dict-data-science@2.0.10': + resolution: {integrity: sha512-vZSsz7845ugW6mY65966Ki2bMS/ZnAZoTVvpuXQ07a2rYxJhUC+6WuBMD80hFLlKwjC5T/5Llv4F/VlB00swpw==} '@cspell/dict-django@4.1.5': resolution: {integrity: sha512-AvTWu99doU3T8ifoMYOMLW2CXKvyKLukPh1auOPwFGHzueWYvBBN+OxF8wF7XwjTBMMeRleVdLh3aWCDEX/ZWg==} @@ -3127,11 +3127,11 @@ packages: '@cspell/dict-en-gb@1.1.33': resolution: {integrity: sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==} - '@cspell/dict-en_us@4.4.19': - resolution: {integrity: sha512-JYYgzhGqSGuIMNY1cTlmq3zrNpehrExMHqLmLnSM2jEGFeHydlL+KLBwBYxMy4e73w+p1+o/rmAiGsMj9g3MCw==} + '@cspell/dict-en_us@4.4.20': + resolution: {integrity: sha512-acAlX967bkrLwRhSJ8KGBCBUITMOe8+smwsShjei431vTB6tU5ZID6XDxR9hH/kDxfdiRTXAE8vkT3WJAHnc1Q==} - '@cspell/dict-filetypes@3.0.13': - resolution: {integrity: sha512-g6rnytIpQlMNKGJT1JKzWkC+b3xCliDKpQ3ANFSq++MnR4GaLiifaC4JkVON11Oh/UTplYOR1nY3BR4X30bswA==} + '@cspell/dict-filetypes@3.0.14': + resolution: {integrity: sha512-KSXaSMYYNMLLdHEnju1DyRRH3eQWPRYRnOXpuHUdOh2jC44VgQoxyMU7oB3NAhDhZKBPCihabzECsAGFbdKfEA==} '@cspell/dict-flutter@1.1.1': resolution: {integrity: sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==} @@ -3204,8 +3204,8 @@ packages: '@cspell/dict-node@5.0.8': resolution: {integrity: sha512-AirZcN2i84ynev3p2/1NCPEhnNsHKMz9zciTngGoqpdItUb2bDt1nJBjwlsrFI78GZRph/VaqTVFwYikmncpXg==} - '@cspell/dict-npm@5.2.17': - resolution: {integrity: sha512-0yp7lBXtN3CtxBrpvTu/yAuPdOHR2ucKzPxdppc3VKO068waZNpKikn1NZCzBS3dIAFGVITzUPtuTXxt9cxnSg==} + '@cspell/dict-npm@5.2.18': + resolution: {integrity: sha512-uJV1T7y9ifFysO22XmxjU7y95c+02lfCZHNsTYHw2KOL6tLjc3XK/i0xt9iGLkPpcxwNJSCdu13UpjXZGqce/Q==} '@cspell/dict-php@4.0.15': resolution: {integrity: sha512-iepGB2gtToMWSTvybesn4/lUp4LwXcEm0s8vasJLP76WWVkq1zYjmeS+WAIzNgsuURyZ/9mGqhS0CWMuo74ODw==} @@ -3216,8 +3216,8 @@ packages: '@cspell/dict-public-licenses@2.0.15': resolution: {integrity: sha512-cJEOs901H13Pfy0fl4dCD1U+xpWIMaEPq8MeYU83FfDZvellAuSo4GqWCripfIqlhns/L6+UZEIJSOZnjgy7Wg==} - '@cspell/dict-python@4.2.19': - resolution: {integrity: sha512-9S2gTlgILp1eb6OJcVZeC8/Od83N8EqBSg5WHVpx97eMMJhifOzePkE0kDYjyHMtAFznCQTUu0iQEJohNQ5B0A==} + '@cspell/dict-python@4.2.20': + resolution: {integrity: sha512-c1wbfb3MDMSY4UTNdGnA18NkrcX6cMlYER0HSpGYh2jLK43gS1QL3j2B49qgnRYfcLUp4xgeA05vzCQsjGbwuQ==} '@cspell/dict-r@2.1.1': resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} @@ -3234,8 +3234,8 @@ packages: '@cspell/dict-shell@1.1.1': resolution: {integrity: sha512-T37oYxE7OV1x/1D4/13Y8JZGa1QgDCXV7AVt3HLXjn0Fe3TaNDvf5sU0fGnXKmBPqFFrHdpD3uutAQb1dlp15g==} - '@cspell/dict-software-terms@5.1.8': - resolution: {integrity: sha512-iwCHLP11OmVHEX2MzE8EPxpPw7BelvldxWe5cJ3xXIDL8TjF2dBTs2noGcrqnZi15SLYIlO8897BIOa33WHHZA==} + '@cspell/dict-software-terms@5.1.9': + resolution: {integrity: sha512-lpiSpS1iTF2n8barqVkPmhe5qXs5291IqcDUPr5ttFRxPMZ7pgrMUdvcdNUdkajymjDOyWfUNhdYXW7JndThZw==} '@cspell/dict-sql@2.2.1': resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} @@ -3781,12 +3781,12 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.21.0': - resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.4.0': - resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==} + '@eslint/config-helpers@0.4.1': + resolution: {integrity: sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/core@0.13.0': @@ -3801,12 +3801,12 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.37.0': - resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} + '@eslint/js@9.38.0': + resolution: {integrity: sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/plugin-kit@0.2.8': @@ -3922,14 +3922,14 @@ packages: '@iconify-json/octicon@1.2.16': resolution: {integrity: sha512-lVf3SbtRK0kNLAK7PxBoiyNGRZVdKpi+9y2/DXv8nWeFgBhU/ctK8D1s4wd0FNp1ZMyrh7K2MXmbnENcDOIUhA==} - '@iconify-json/simple-icons@1.2.54': - resolution: {integrity: sha512-OQQYl8yC5j3QklZOYnK31QYe5h47IhyCoxSLd53f0e0nA4dgi8VOZS30SgSAbsecQ+S0xlGJMjXIHTIqZ+ML3w==} + '@iconify-json/simple-icons@1.2.55': + resolution: {integrity: sha512-9vc04pmup/zcef8hDypWU8nMwMaFVkWuUzWkxyL++DVp5AA8baoJHK6RyKN1v+cvfR2agxkUb053XVggzFFkTA==} '@iconify-json/vscode-icons@1.2.32': resolution: {integrity: sha512-UzZmL6hF02YGu/qEbpskEVnstlNJG+c+0PNzNYTIBf/dXylWHLUVufhOXqAzuGRjkUZ2q7rPpOEwLUPkhkFHUA==} - '@iconify/json@2.2.395': - resolution: {integrity: sha512-XSYOnlGqiZhJkFFBUiVK4C5VIiv4rxyKtCmkQ9nS4zfMpS4xT0BF9+qWUKOHYgeCzCLghyWfrm6Eti3Sv5kfqQ==} + '@iconify/json@2.2.398': + resolution: {integrity: sha512-SEUDjkyAenAKMd5hDfzNzeObZw+KgQdIHaOuWA4yv89qSf2s0dJ7L1iXhRjtEZxFnuXQ2D67uFiHmE+90jvDGQ==} '@iconify/tailwind@1.2.0': resolution: {integrity: sha512-KgpIHWOTcRYw1XcoUqyNSrmYyfLLqZYu3AmP8zdfLk0F5TqRO8YerhlvlQmGfn7rJXgPeZN569xPAJnJ53zZxA==} @@ -4053,8 +4053,8 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@jspm/generator@2.7.3': - resolution: {integrity: sha512-tRPIygsFlFsTZUgsWDyLxrkyO4HIzdMCKRhBj4W+3qANqW5z4uuPSk537U3w9rdTOq6E5DRknw1D1npRKCGnoA==} + '@jspm/generator@2.7.4': + resolution: {integrity: sha512-DmAERvcXD0suJ4EXuoX7jCj1Tig02FnUrt280bwMs/A1ir1Dwm0Q6WRNtwh5Bw/gdVKoP3mjuonLAEYZXqwh7A==} '@jspm/import-map@1.2.2': resolution: {integrity: sha512-QrM7+lkgVE8t9NZSm9fDSzheguEOVCOxueKxSwgoOt7yUWesWKDFmmL9bQFURl4IqMcpPz7VV2Tvw9s9emaJzQ==} @@ -4062,24 +4062,26 @@ packages: '@juggle/resize-observer@3.4.0': resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} - '@keyv/bigmap@1.0.3': - resolution: {integrity: sha512-jUEkNlnE9tYzX2AIBeoSe1gVUvSOfIOQ5EFPL5Un8cFHGvjD9L/fxpxlS1tEivRLHgapO2RZJ3D93HYAa049pg==} + '@keyv/bigmap@1.1.0': + resolution: {integrity: sha512-MX7XIUNwVRK+hjZcAbNJ0Z8DREo+Weu9vinBOjGU1thEi9F6vPhICzBbk4CCf3eEefKRz7n6TfZXwUFZTSgj8Q==} engines: {node: '>= 18'} + peerDependencies: + keyv: ^5.5.3 '@keyv/serialize@1.1.1': resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} - '@lezer/common@1.2.3': - resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} + '@lezer/common@1.3.0': + resolution: {integrity: sha512-L9X8uHCYU310o99L3/MpJKYxPzXPOS7S0NmBaM7UO/x2Kb2WbmMLSkfvdr1KxRIFYOpbY0Jhn7CfLSUDzL8arQ==} - '@lezer/highlight@1.2.1': - resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} + '@lezer/highlight@1.2.2': + resolution: {integrity: sha512-z8TQwaBXXQIvG6i2g3e9cgMwUUXu9Ib7jo2qRRggdhwKpM56Dw3PM3wmexn+EGaaOZ7az0K7sjc3/gcGW7sz7A==} '@lezer/lr@1.4.2': resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} - '@lezer/markdown@1.4.3': - resolution: {integrity: sha512-kfw+2uMrQ/wy/+ONfrH83OkdFNM0ye5Xq96cLlaCy7h5UT9FO54DU4oRoIc0CSBh5NWmWuiIJA7NGLMJbQ+Oxg==} + '@lezer/markdown@1.5.1': + resolution: {integrity: sha512-F3ZFnIfNAOy/jPSk6Q0e3bs7e9grfK/n5zerkKoc5COH6Guy3Zb0vrJwXzdck79K16goBhYBRAvhf+ksqe0cMg==} '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -4262,8 +4264,8 @@ packages: resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.56.0': - resolution: {integrity: sha512-Tzh95Twig7hUwwNe381/K3PggZBZblKUe2wv25oIpzWLr6Z0m4KgV1ZVIjnR6GM9ANEqjZD7XsZEa6JL/7YEgg==} + '@playwright/test@1.56.1': + resolution: {integrity: sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==} engines: {node: '>=18'} hasBin: true @@ -4317,8 +4319,8 @@ packages: '@rolldown/pluginutils@1.0.0-beta.29': resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} - '@rolldown/pluginutils@1.0.0-beta.43': - resolution: {integrity: sha512-5Uxg7fQUCmfhax7FJke2+8B6cqgeUJUD9o2uXIKXhD+mG0mL6NObmVoi9wXEU1tY89mZKgAYA6fTbftx3q2ZPQ==} + '@rolldown/pluginutils@1.0.0-beta.44': + resolution: {integrity: sha512-g6eW7Zwnr2c5RADIoqziHoVs6b3W5QTQ4+qbpfjbkMJ9x+8Og211VW/oot2dj9dVwaK/UyC6Yo+02gV+wWQVNg==} '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} @@ -4340,8 +4342,8 @@ packages: '@types/babel__core': optional: true - '@rollup/plugin-commonjs@28.0.6': - resolution: {integrity: sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==} + '@rollup/plugin-commonjs@28.0.8': + resolution: {integrity: sha512-o1Ug9PxYsF61R7/NXO/GgMZZproLd/WH2XA53Tp9ppf6bU1lMlTtC/gUM6zM3mesi2E0rypk+PNtVrELREyWEQ==} engines: {node: '>=16.0.0 || 14 >= 14.17'} peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 @@ -4427,124 +4429,124 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.52.4': - resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==} + '@rollup/rollup-android-arm-eabi@4.52.5': + resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.52.4': - resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==} + '@rollup/rollup-android-arm64@4.52.5': + resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.52.4': - resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==} + '@rollup/rollup-darwin-arm64@4.52.5': + resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.52.4': - resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==} + '@rollup/rollup-darwin-x64@4.52.5': + resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.52.4': - resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==} + '@rollup/rollup-freebsd-arm64@4.52.5': + resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.52.4': - resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==} + '@rollup/rollup-freebsd-x64@4.52.5': + resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.52.4': - resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': + resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.52.4': - resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==} + '@rollup/rollup-linux-arm-musleabihf@4.52.5': + resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.52.4': - resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==} + '@rollup/rollup-linux-arm64-gnu@4.52.5': + resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.52.4': - resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==} + '@rollup/rollup-linux-arm64-musl@4.52.5': + resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.52.4': - resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==} + '@rollup/rollup-linux-loong64-gnu@4.52.5': + resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-gnu@4.52.4': - resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==} + '@rollup/rollup-linux-ppc64-gnu@4.52.5': + resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-gnu@4.52.4': - resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==} + '@rollup/rollup-linux-riscv64-gnu@4.52.5': + resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.52.4': - resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==} + '@rollup/rollup-linux-riscv64-musl@4.52.5': + resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.52.4': - resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==} + '@rollup/rollup-linux-s390x-gnu@4.52.5': + resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.52.4': - resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==} + '@rollup/rollup-linux-x64-gnu@4.52.5': + resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.52.4': - resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==} + '@rollup/rollup-linux-x64-musl@4.52.5': + resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openharmony-arm64@4.52.4': - resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==} + '@rollup/rollup-openharmony-arm64@4.52.5': + resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.52.4': - resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==} + '@rollup/rollup-win32-arm64-msvc@4.52.5': + resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.52.4': - resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==} + '@rollup/rollup-win32-ia32-msvc@4.52.5': + resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.52.4': - resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==} + '@rollup/rollup-win32-x64-gnu@4.52.5': + resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.52.4': - resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==} + '@rollup/rollup-win32-x64-msvc@4.52.5': + resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} cpu: [x64] os: [win32] @@ -4662,8 +4664,8 @@ packages: resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} - '@tanstack/query-core@5.90.2': - resolution: {integrity: sha512-k/TcR3YalnzibscALLwxeiLUub6jN5EDLwKDiO7q5f4ICEoptJ+n9+7vcEFy5/x/i6Q+Lb/tXrsKCggf5uQJXQ==} + '@tanstack/query-core@5.90.5': + resolution: {integrity: sha512-wLamYp7FaDq6ZnNehypKI5fNvxHPfTYylE0m/ZpuuzJfJqhR5Pxg9gvGBHZx4n7J+V5Rg5mZxHHTlv25Zt5u+w==} '@tanstack/store@0.7.7': resolution: {integrity: sha512-xa6pTan1bcaqYDS9BDpSiS63qa6EoDkPN9RsRaxHuDdVDNntzq3xNwR5YKTU/V3SkSyC9T4YVOPh2zRQN0nhIQ==} @@ -4671,8 +4673,8 @@ packages: '@tanstack/virtual-core@3.13.12': resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==} - '@tanstack/vue-query@5.90.2': - resolution: {integrity: sha512-DLLY/B5QCbpi6AM2aaCowukQx2rXsQ4mH8RuDd8wQz0/L2bZ9Z/GgXlV310ouo47pJBmeibMVTmuoWsleT8llg==} + '@tanstack/vue-query@5.90.5': + resolution: {integrity: sha512-bTEmgIb6o5BqkoJPNV7ZKKsDHjiVnNydORw1n6S/x0dppb3lTT5KFOotQ5PqZG3OQY+9AwA6RJJN3pEx+9j1Pg==} peerDependencies: '@vue/composition-api': ^1.1.2 vue: ^3.5.17 @@ -4694,11 +4696,11 @@ packages: peerDependencies: vue: ^3.5.17 - '@tinyflow-ai/ui@1.1.5': - resolution: {integrity: sha512-RoWnoDBde6/h0YRDmMkfgRJHWPhptC4MWASVYwstAYWy55KX/3fdn8YdsG7YnB+zeCZ4W7Na7vOdnTK9NsFxLA==} + '@tinyflow-ai/ui@1.1.7': + resolution: {integrity: sha512-aFI5dvYoKyp7sOBh0PXtta2wzzSwnfiMjPDEIGqRyR5nH1op8PLrD1Uw1OxAjV0iXoP+uvVWKZEtP8SVFJyXbw==} - '@tinyflow-ai/vue@1.1.5': - resolution: {integrity: sha512-e7mqIY3v/B9RapTotE/mPSJNJxt254uTclqSxo0YvI1EDlFIKVF077Fr2bXgf8yk6OoQ2Iu81OLQzlwlhhTGfA==} + '@tinyflow-ai/vue@1.1.7': + resolution: {integrity: sha512-zRuMlUU3mz6wIxsCmzk42PGBTH2g5OYBlEB00GJ2Z4AalhKIIWotTZE8h6ixNUEVRMog+XZ+fIIhjjgicjSLVA==} peerDependencies: vue: ^3.5.17 @@ -4900,11 +4902,11 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@22.18.10': - resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} + '@types/node@22.18.11': + resolution: {integrity: sha512-Gd33J2XIrXurb+eT2ktze3rJAfAp9ZNjlBdh4SVgyrKEOADwCbdUDaK7QgJno8Ue4kcajscsKqu6n8OBG3hhCQ==} - '@types/node@24.7.2': - resolution: {integrity: sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==} + '@types/node@24.8.1': + resolution: {integrity: sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q==} '@types/nprogress@0.2.3': resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} @@ -4948,23 +4950,23 @@ packages: '@types/web-bluetooth@0.0.21': resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} - '@typescript-eslint/eslint-plugin@8.46.0': - resolution: {integrity: sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==} + '@typescript-eslint/eslint-plugin@8.46.1': + resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.46.0 + '@typescript-eslint/parser': ^8.46.1 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.46.0': - resolution: {integrity: sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==} + '@typescript-eslint/parser@8.46.1': + resolution: {integrity: sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.46.0': - resolution: {integrity: sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==} + '@typescript-eslint/project-service@8.46.1': + resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -4973,18 +4975,18 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.46.0': - resolution: {integrity: sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==} + '@typescript-eslint/scope-manager@8.46.1': + resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.46.0': - resolution: {integrity: sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==} + '@typescript-eslint/tsconfig-utils@8.46.1': + resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.46.0': - resolution: {integrity: sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==} + '@typescript-eslint/type-utils@8.46.1': + resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -4994,8 +4996,8 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.46.0': - resolution: {integrity: sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==} + '@typescript-eslint/types@8.46.1': + resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.18.0': @@ -5007,8 +5009,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.46.0': - resolution: {integrity: sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==} + '@typescript-eslint/typescript-estree@8.46.1': + resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -5019,8 +5021,8 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.46.0': - resolution: {integrity: sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==} + '@typescript-eslint/utils@8.46.1': + resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -5030,8 +5032,8 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.46.0': - resolution: {integrity: sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==} + '@typescript-eslint/visitor-keys@8.46.1': + resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -5145,16 +5147,16 @@ packages: peerDependencies: zod: ^3.24.0 - '@vercel/nft@0.30.2': - resolution: {integrity: sha512-pquXF3XZFg/T3TBor08rUhIGgOhdSilbn7WQLVP/aVSSO+25Rs4H/m3nxNDQ2x3znX7Z3yYjryN8xaLwypcwQg==} + '@vercel/nft@0.30.3': + resolution: {integrity: sha512-UEq+eF0ocEf9WQCV1gktxKhha36KDs7jln5qii6UpPf5clMqDc0p3E7d9l2Smx0i9Pm1qpq4S4lLfNl97bbv6w==} engines: {node: '>=18'} hasBin: true - '@vite-pwa/vitepress@1.0.0': - resolution: {integrity: sha512-i5RFah4urA6tZycYlGyBslVx8cVzbZBcARJLDg5rWMfAkRmyLtpRU6usGfVOwyN9kjJ2Bkm+gBHXF1hhr7HptQ==} + '@vite-pwa/vitepress@1.0.1': + resolution: {integrity: sha512-INBxiNLZpef349KSmQ6zHWB4uqIgZgvJnwzH3bedW/7d/Ej0lK5HP95fiBdIc2wHUtmR3Znnegmt3zLESVWrpA==} peerDependencies: '@vite-pwa/assets-generator': ^1.0.0 - vite-plugin-pwa: ^1.0.0 + vite-plugin-pwa: ^1.1.0 peerDependenciesMeta: '@vite-pwa/assets-generator': optional: true @@ -5435,13 +5437,13 @@ packages: peerDependencies: vue: ^3.5.17 - '@xyflow/svelte@1.3.1': - resolution: {integrity: sha512-aLr2v0/nr+zER5+dCzEmR5qCu9l7FCKZwYiRvCX15U2FVIdO2M522pyPEr7Siwq6EEx0QjECACeN+rLZCDSzeA==} + '@xyflow/svelte@1.4.0': + resolution: {integrity: sha512-LXokbj1nEP8FROE/y9/xU11G4dM2+mGBiMmPU714Mmk+bGnyot+nZmyR8Y7OFBUahY1mnMNfeclLPJKGy3r7tA==} peerDependencies: svelte: ^5.25.0 - '@xyflow/system@0.0.70': - resolution: {integrity: sha512-PpC//u9zxdjj0tfTSmZrg3+sRbTz6kop/Amky44U2Dl51sxzDTIUfXMwETOYpmr2dqICWXBIJwXL2a9QWtX2XA==} + '@xyflow/system@0.0.71': + resolution: {integrity: sha512-O2xIK84Uv1hH8qzeY94SKsj0R1n2jXHLsX6RZnM4x1Uc4oWiVbXDFucnkbFwhnQm3IIdAxkbgd2rEDp5oTRhhQ==} JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -5506,8 +5508,8 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - algoliasearch@5.40.0: - resolution: {integrity: sha512-a9aIL2E3Z7uYUPMCmjMFFd5MWhn+ccTubEvnMy7rOTZCB62dXBJtz0R5BZ/TPuX3R9ocBsgWuAbGWQ+Ph4Fmlg==} + algoliasearch@5.40.1: + resolution: {integrity: sha512-iUNxcXUNg9085TJx0HJLjqtDE0r1RZ0GOGrt8KNQqQT5ugu8lZsHuMUYW/e0lHhq6xBvmktU9Bw4CXP9VQeKrg==} engines: {node: '>= 14.0.0'} alien-signals@0.4.14: @@ -5715,8 +5717,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.8.16: - resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} + baseline-browser-mapping@2.8.18: + resolution: {integrity: sha512-UYmTpOBwgPScZpS4A+YbapwWuBwasxvO/2IOHArSsAhL/+ZdmATBXTex3t+l2hXwLVYK382ibr/nKoY9GKe86w==} hasBin: true better-path-resolve@1.0.0: @@ -5800,8 +5802,8 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - c12@3.3.0: - resolution: {integrity: sha512-K9ZkuyeJQeqLEyqldbYLG3wjqwpw4BVaAqvmxq3GYKK0b1A/yYQdIcJxkzAOWcNVWhJpRXAPfZFueekiY/L8Dw==} + c12@3.3.1: + resolution: {integrity: sha512-LcWQ01LT9tkoUINHgpIOv3mMs+Abv7oVCrtpMRi1PaapVEpWoMga5WuT7/DqFTu7URP9ftbOmimNw1KNIGh9DQ==} peerDependencies: magicast: ^0.3.5 peerDependenciesMeta: @@ -5816,8 +5818,8 @@ packages: resolution: {integrity: sha512-+7LYcYGBYoNqTp1Rv7Ny1YjUo5E0/ftkQtraH3vkfAGgVHc+ouWdC8okAwQgQR7EVIdW6JTzTmhKFwzb+4okAQ==} engines: {node: ^20.17.0 || >=22.9.0} - cacheable@2.1.0: - resolution: {integrity: sha512-zzL1BxdnqwD69JRT0dihnawAcLkBMwAH+hZSKjUzeBbPedVhk3qYPjRw9VOMYWwt5xRih5xd8S+3kEdGohZm/g==} + cacheable@2.1.1: + resolution: {integrity: sha512-LmF4AXiSNdiRbI2UjH8pAp9NIXxeQsTotpEaegPiDcnN0YPygDJDV3l/Urc0mL72JWdATEorKqIHEx55nDlONg==} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} @@ -5870,8 +5872,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001750: - resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==} + caniuse-lite@1.0.30001751: + resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -6742,8 +6744,8 @@ packages: resolution: {integrity: sha512-rmvrrmWQPD/X1A/nPBfIVg4r05792QdG9Z4Prk6oQG0F9zBMDkr0GKAdds1wjb2dq1rTz/ywc4ZxpZbgz0tttg==} engines: {node: '>=18'} - dompurify@3.2.7: - resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} + dompurify@3.3.0: + resolution: {integrity: sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==} domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} @@ -6815,19 +6817,19 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.234: - resolution: {integrity: sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==} + electron-to-chromium@1.5.237: + resolution: {integrity: sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==} - element-plus@2.11.4: - resolution: {integrity: sha512-sLq+Ypd0cIVilv8wGGMEGvzRVBBsRpJjnAS5PsI/1JU1COZXqzH3N1UYMUc/HCdvdjf6dfrBy80Sj7KcACsT7w==} + element-plus@2.11.5: + resolution: {integrity: sha512-O+bIVHQCjUDm4GiIznDXRoS8ar2TpWLwfOGnN/Aam0VXf5kbuc4SxdKKJdovWNxmxeqbcwjsSZPKgtXNcqys4A==} peerDependencies: vue: ^3.5.17 emoji-regex-xs@1.0.0: resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} - emoji-regex@10.5.0: - resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -7080,8 +7082,8 @@ packages: peerDependencies: eslint: '>=9.22.0' - eslint-plugin-unused-imports@4.2.0: - resolution: {integrity: sha512-hLbJ2/wnjKq4kGA9AUaExVFIbNzyxYdVo49QZmKCnhk5pc9wcYRbfgLHvWJ8tnsdcseGhoUAddm9gn/lt+d74w==} + eslint-plugin-unused-imports@4.3.0: + resolution: {integrity: sha512-ZFBmXMGBYfHttdRtOG9nFFpmUvMtbHSjsKrS20vdWdbfiVYsO3yA2SGYy9i9XmZJDfMGBflZGBCm70SEnFQtOA==} peerDependencies: '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 eslint: ^9.0.0 || ^8.0.0 @@ -7102,8 +7104,8 @@ packages: vitest: optional: true - eslint-plugin-vue@10.5.0: - resolution: {integrity: sha512-7BZHsG3kC2vei8F2W8hnfDi9RK+cv5eKPMvzBdrl8Vuc0hR5odGQRli8VVzUkrmUHkxFEm4Iio1r5HOKslO0Aw==} + eslint-plugin-vue@10.5.1: + resolution: {integrity: sha512-SbR9ZBUFKgvWAbq3RrdCtWaW0IKm6wwUiApxf3BVTNfqUIo4IQQmreMg2iHFJJ6C/0wss3LXURBJ1OwS/MhFcQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -7128,8 +7130,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.37.0: - resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} + eslint@9.38.0: + resolution: {integrity: sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -7667,8 +7669,8 @@ packages: hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - hookified@1.12.1: - resolution: {integrity: sha512-xnKGl+iMIlhrZmGHB729MqlmPoWBznctSQTYCpFKqNsCgimJQmithcW0xSQMMFzYnV2iKUh25alswn6epgxS0Q==} + hookified@1.12.2: + resolution: {integrity: sha512-aokUX1VdTpI0DUsndvW+OiwmBpKCu/NgRsSSkuSY0zq8PY6Q6a+lmOfAFDXAAOtBqJELvcWY9L1EVtzjbQcMdg==} htm@3.1.1: resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==} @@ -7753,8 +7755,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - immutable@5.1.3: - resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} + immutable@5.1.4: + resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} @@ -8226,8 +8228,8 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - ky@1.11.0: - resolution: {integrity: sha512-NEyo0ICpS0cqSuyoJFMCnHOZJILqXsKhIZlHJGDYaH8OB5IFrGzuBpEwyoMZG6gUKMPrazH30Ax5XKaujvD8ag==} + ky@1.12.0: + resolution: {integrity: sha512-YRLmSUHCwOJRBMArtqMRLOmO7fewn3yOoui6aB8ERkRVXupa0UiaQaKbIXteMt4jUElhbdqTMsLFHs8APxxUoQ==} engines: {node: '>=18'} latest-version@9.0.0: @@ -8836,8 +8838,8 @@ packages: node-mock-http@1.0.3: resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} - node-releases@2.0.23: - resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==} + node-releases@2.0.25: + resolution: {integrity: sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA==} nopt@7.2.1: resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} @@ -9005,8 +9007,8 @@ packages: package-manager-detector@0.2.11: resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} - package-manager-detector@1.4.0: - resolution: {integrity: sha512-rRZ+pR1Usc+ND9M2NkmCvE/LYJS+8ORVV9X0KuNSY/gFsp7RBHJM/ADh9LYq4Vvfq6QkKrW6/weuh8SMEtN5gw==} + package-manager-detector@1.5.0: + resolution: {integrity: sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==} pako@2.1.0: resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} @@ -9180,13 +9182,13 @@ packages: pkg-types@2.3.0: resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} - playwright-core@1.56.0: - resolution: {integrity: sha512-1SXl7pMfemAMSDn5rkPeZljxOCYAmQnYLBTExuh6E8USHXGSX3dx6lYZN/xPpTz1vimXmPA9CDnILvmJaB8aSQ==} + playwright-core@1.56.1: + resolution: {integrity: sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==} engines: {node: '>=18'} hasBin: true - playwright@1.56.0: - resolution: {integrity: sha512-X5Q1b8lOdWIE4KAoHpW3SE8HvUB+ZZsUoN64ZhjnN8dOb1UpujxBtENGiZFE+9F/yhzJwYa+ca3u43FeLbboHA==} + playwright@1.56.1: + resolution: {integrity: sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==} engines: {node: '>=18'} hasBin: true @@ -9760,8 +9762,8 @@ packages: prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - publint@0.3.14: - resolution: {integrity: sha512-14/VNBvWsrBeqWNDw8c/DK5ERcZBUwL1rnkVx18cQnF3zadr3GfoYtvD8mxi1dhkWpaPHp8kfi92MDbjMeW3qw==} + publint@0.3.15: + resolution: {integrity: sha512-xPbRAPW+vqdiaKy5sVVY0uFAu3LaviaPO3pZ9FaRx59l9+U/RKR1OEbLhkug87cwiVKxPXyB4txsv5cad67u+A==} engines: {node: '>=18'} hasBin: true @@ -9777,8 +9779,8 @@ packages: resolution: {integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==} engines: {node: '>=12.20'} - qified@0.5.0: - resolution: {integrity: sha512-Zj6Q/Vc/SQ+Fzc87N90jJUzBzxD7MVQ2ZvGyMmYtnl2u1a07CejAhvtk4ZwASos+SiHKCAIylyGHJKIek75QBw==} + qified@0.5.1: + resolution: {integrity: sha512-+BtFN3dCP+IaFA6IYNOu/f/uK1B8xD2QWyOeCse0rjtAebBmkzgd2d1OAXi3ikAzJMIBSdzZDNZ3wZKEUDQs5w==} engines: {node: '>=20'} qrcode@1.5.4: @@ -10012,8 +10014,8 @@ packages: rollup: optional: true - rollup-plugin-visualizer@6.0.4: - resolution: {integrity: sha512-q8Q7J/6YofkmaGW1sH/fPRAz37x/+pd7VBuaUU7lwvOS/YikuiiEU9jeb9PH8XHiq50XFrUsBbOxeAMYQ7KZkg==} + rollup-plugin-visualizer@6.0.5: + resolution: {integrity: sha512-9+HlNgKCVbJDs8tVtjQ43US12eqaiHyyiLMdBwQ7vSZPiHMysGNo2E88TAp1si5wx8NAoYriI2A5kuKfIakmJg==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -10030,8 +10032,8 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - rollup@4.52.4: - resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==} + rollup@4.52.5: + resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -10320,8 +10322,8 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} - std-env@3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} stdin-discarder@0.2.2: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} @@ -10436,8 +10438,8 @@ packages: stubborn-fs@1.2.5: resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} - style-mod@4.1.2: - resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + style-mod@4.1.3: + resolution: {integrity: sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==} style-search@0.1.0: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} @@ -10559,8 +10561,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte@5.39.11: - resolution: {integrity: sha512-8MxWVm2+3YwrFbPaxOlT1bbMi6OTenrAgks6soZfiaS8Fptk4EVyRIFhJc3RpO264EeSNwgjWAdki0ufg4zkGw==} + svelte@5.41.1: + resolution: {integrity: sha512-0a/huwc8e2es+7KFi70esqsReRfRbrT8h1cJSY/+z1lF0yKM6TT+//HYu28Yxstr50H7ifaqZRDGd0KuKDxP7w==} engines: {node: '>=18'} sver@1.8.4: @@ -10794,8 +10796,8 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - type-fest@5.0.1: - resolution: {integrity: sha512-9MpwAI52m8H6ssA542UxSLnSiSD2dsC3/L85g6hVubLSXd82wdI80eZwTWhdOfN67NlA+D+oipAs1MlcTcu3KA==} + type-fest@5.1.0: + resolution: {integrity: sha512-wQ531tuWvB6oK+pchHIu5lHe5f5wpSCqB8Kf4dWQRbOYc9HTge7JL0G4Qd44bh6QuJCccIzL3bugb8GI0MwHrg==} engines: {node: '>=20'} typed-array-buffer@1.0.3: @@ -10889,8 +10891,8 @@ packages: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} - unimport@5.4.1: - resolution: {integrity: sha512-wMZ2JKUCleCK2zfRHeWcbrUHKXOC3SVBYkyn/wTGzh0THX6sT4hSjuKXxKANN4/WMbT6ZPM4JzcDcnhD2x9Bpg==} + unimport@5.5.0: + resolution: {integrity: sha512-/JpWMG9s1nBSlXJAQ8EREFTFy3oy6USFd8T6AoBaw1q2GGcF4R9yp3ofg32UODZlYEO5VD0EWE1RpI9XDWyPYg==} engines: {node: '>=18.12.0'} unique-filename@4.0.0: @@ -10905,8 +10907,8 @@ packages: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} @@ -10914,8 +10916,8 @@ packages: unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} @@ -11105,8 +11107,8 @@ packages: vite-plugin-lazy-import@1.0.7: resolution: {integrity: sha512-mE6oAObOb4wqso4AoUGi9cLjdR+4vay1RCaKJvziBuFPlziZl7J0aw2hsqRTokLVRx3bli0a0VyjMOwsNDv58A==} - vite-plugin-pwa@1.0.3: - resolution: {integrity: sha512-/OpqIpUldALGxcsEnv/ekQiQ5xHkQ53wcoN5ewX4jiIDNGs3W+eNcI1WYZeyOLmzoEjg09D7aX0O89YGjen1aw==} + vite-plugin-pwa@1.1.0: + resolution: {integrity: sha512-VsSpdubPzXhHWVINcSx6uHRMpOHVHQcHsef1QgkOlEoaIDAlssFEW88LBq1a59BuokAhsh2kUDJbaX1bZv4Bjw==} engines: {node: '>=16.0.0'} peerDependencies: '@vite-pwa/assets-generator': ^1.0.0 @@ -11128,8 +11130,8 @@ packages: peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 - vite@5.4.20: - resolution: {integrity: sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==} + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -11159,8 +11161,8 @@ packages: terser: optional: true - vite@7.1.9: - resolution: {integrity: sha512-4nVGliEpxmhCL8DslSAUdxlB6+SMrhB0a1v5ijlh1xB1nEPuy1mxaHxysVucLHuWryAxLWg6a5ei+U4TLn/rFg==} + vite@7.1.11: + resolution: {integrity: sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -11199,8 +11201,8 @@ packages: yaml: optional: true - vitepress-plugin-group-icons@1.6.3: - resolution: {integrity: sha512-bvPD4lhraLJw3rPtLhUIVsOvNfnHnF+F1LH7BKHekEzeZ4uqdTdqnwEyaT580AoKjjT6/F8En6hVJj7takPKDA==} + vitepress-plugin-group-icons@1.6.4: + resolution: {integrity: sha512-YCFH0G2zTX/me51wooWy4SvaaA6VKjIxLoWDU9ON4rFx9907Yf9ZpCpa4JpwloVuvm5+82fqLXSuZ98EJ92UUQ==} peerDependencies: markdown-it: '>=14' vite: '>=3' @@ -11292,8 +11294,8 @@ packages: peerDependencies: vue: ^3.5.17 - vue-router@4.5.1: - resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==} + vue-router@4.6.3: + resolution: {integrity: sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==} peerDependencies: vue: ^3.5.17 @@ -11337,11 +11339,11 @@ packages: peerDependencies: vue: ^3.5.17 - vxe-pc-ui@4.9.42: - resolution: {integrity: sha512-bNlkWZmeucWi3EvYsmqsajZshgRf3PMATntvWfvDCdNPQuPadMczn51V8jWAagkw7tgJ7uhNZycBBarwhIzR4w==} + vxe-pc-ui@4.10.2: + resolution: {integrity: sha512-qEU9h/DLLdFDAXQEKmRRO4Eo1Sh7n66pHJGUflzkGFB85PYxDxzqDLtx4iiS+q0pxVz1bGWG3phLgi20Dx48Zg==} - vxe-table@4.16.21: - resolution: {integrity: sha512-+oCMaFKOnuvz9t6Qxk9iXKXYJrXxzQ3adgsFgGJY72FGjRopjYJ7qDgq64izcF8XDUJvFIFfSD1JZdwSPNwHMw==} + vxe-table@4.17.0: + resolution: {integrity: sha512-IpyY5uzgMt4NEgTl0brAFe/xSyrBK8U0763uCG8LUe8TbGVuWMD5bCP9DYqkjK7cBmJjXtzwxlQ6I3auzCGd3Q==} w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} @@ -11617,124 +11619,124 @@ packages: zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - zx@8.8.4: - resolution: {integrity: sha512-44GcD+ZlM/v1OQtbwnSxLPcoE1ZEUICmR+RSbJZLAqfIixNLuMjLyh0DcS75OyfJ/sWYAwCWDmDvJ4hdnANAPQ==} + zx@8.8.5: + resolution: {integrity: sha512-SNgDF5L0gfN7FwVOdEFguY3orU5AkfFZm9B5YSHog/UDHv+lvmd82ZAsOenOkQixigwH2+yyH198AwNdKhj+RA==} engines: {node: '>= 12.17.0'} hasBin: true snapshots: - '@algolia/abtesting@1.6.0': + '@algolia/abtesting@1.6.1': dependencies: - '@algolia/client-common': 5.40.0 - '@algolia/requester-browser-xhr': 5.40.0 - '@algolia/requester-fetch': 5.40.0 - '@algolia/requester-node-http': 5.40.0 + '@algolia/client-common': 5.40.1 + '@algolia/requester-browser-xhr': 5.40.1 + '@algolia/requester-fetch': 5.40.1 + '@algolia/requester-node-http': 5.40.1 - '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)': + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3) - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.40.0)(algoliasearch@5.40.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.40.0)(algoliasearch@5.40.0) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1) search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)': + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.40.0)(algoliasearch@5.40.0) - '@algolia/client-search': 5.40.0 - algoliasearch: 5.40.0 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1) + '@algolia/client-search': 5.40.1 + algoliasearch: 5.40.1 - '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)': + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)': dependencies: - '@algolia/client-search': 5.40.0 - algoliasearch: 5.40.0 + '@algolia/client-search': 5.40.1 + algoliasearch: 5.40.1 - '@algolia/client-abtesting@5.40.0': + '@algolia/client-abtesting@5.40.1': dependencies: - '@algolia/client-common': 5.40.0 - '@algolia/requester-browser-xhr': 5.40.0 - '@algolia/requester-fetch': 5.40.0 - '@algolia/requester-node-http': 5.40.0 + '@algolia/client-common': 5.40.1 + '@algolia/requester-browser-xhr': 5.40.1 + '@algolia/requester-fetch': 5.40.1 + '@algolia/requester-node-http': 5.40.1 - '@algolia/client-analytics@5.40.0': + '@algolia/client-analytics@5.40.1': dependencies: - '@algolia/client-common': 5.40.0 - '@algolia/requester-browser-xhr': 5.40.0 - '@algolia/requester-fetch': 5.40.0 - '@algolia/requester-node-http': 5.40.0 + '@algolia/client-common': 5.40.1 + '@algolia/requester-browser-xhr': 5.40.1 + '@algolia/requester-fetch': 5.40.1 + '@algolia/requester-node-http': 5.40.1 - '@algolia/client-common@5.40.0': {} + '@algolia/client-common@5.40.1': {} - '@algolia/client-insights@5.40.0': + '@algolia/client-insights@5.40.1': dependencies: - '@algolia/client-common': 5.40.0 - '@algolia/requester-browser-xhr': 5.40.0 - '@algolia/requester-fetch': 5.40.0 - '@algolia/requester-node-http': 5.40.0 + '@algolia/client-common': 5.40.1 + '@algolia/requester-browser-xhr': 5.40.1 + '@algolia/requester-fetch': 5.40.1 + '@algolia/requester-node-http': 5.40.1 - '@algolia/client-personalization@5.40.0': + '@algolia/client-personalization@5.40.1': dependencies: - '@algolia/client-common': 5.40.0 - '@algolia/requester-browser-xhr': 5.40.0 - '@algolia/requester-fetch': 5.40.0 - '@algolia/requester-node-http': 5.40.0 + '@algolia/client-common': 5.40.1 + '@algolia/requester-browser-xhr': 5.40.1 + '@algolia/requester-fetch': 5.40.1 + '@algolia/requester-node-http': 5.40.1 - '@algolia/client-query-suggestions@5.40.0': + '@algolia/client-query-suggestions@5.40.1': dependencies: - '@algolia/client-common': 5.40.0 - '@algolia/requester-browser-xhr': 5.40.0 - '@algolia/requester-fetch': 5.40.0 - '@algolia/requester-node-http': 5.40.0 + '@algolia/client-common': 5.40.1 + '@algolia/requester-browser-xhr': 5.40.1 + '@algolia/requester-fetch': 5.40.1 + '@algolia/requester-node-http': 5.40.1 - '@algolia/client-search@5.40.0': + '@algolia/client-search@5.40.1': dependencies: - '@algolia/client-common': 5.40.0 - '@algolia/requester-browser-xhr': 5.40.0 - '@algolia/requester-fetch': 5.40.0 - '@algolia/requester-node-http': 5.40.0 + '@algolia/client-common': 5.40.1 + '@algolia/requester-browser-xhr': 5.40.1 + '@algolia/requester-fetch': 5.40.1 + '@algolia/requester-node-http': 5.40.1 - '@algolia/ingestion@1.40.0': + '@algolia/ingestion@1.40.1': dependencies: - '@algolia/client-common': 5.40.0 - '@algolia/requester-browser-xhr': 5.40.0 - '@algolia/requester-fetch': 5.40.0 - '@algolia/requester-node-http': 5.40.0 + '@algolia/client-common': 5.40.1 + '@algolia/requester-browser-xhr': 5.40.1 + '@algolia/requester-fetch': 5.40.1 + '@algolia/requester-node-http': 5.40.1 - '@algolia/monitoring@1.40.0': + '@algolia/monitoring@1.40.1': dependencies: - '@algolia/client-common': 5.40.0 - '@algolia/requester-browser-xhr': 5.40.0 - '@algolia/requester-fetch': 5.40.0 - '@algolia/requester-node-http': 5.40.0 + '@algolia/client-common': 5.40.1 + '@algolia/requester-browser-xhr': 5.40.1 + '@algolia/requester-fetch': 5.40.1 + '@algolia/requester-node-http': 5.40.1 - '@algolia/recommend@5.40.0': + '@algolia/recommend@5.40.1': dependencies: - '@algolia/client-common': 5.40.0 - '@algolia/requester-browser-xhr': 5.40.0 - '@algolia/requester-fetch': 5.40.0 - '@algolia/requester-node-http': 5.40.0 + '@algolia/client-common': 5.40.1 + '@algolia/requester-browser-xhr': 5.40.1 + '@algolia/requester-fetch': 5.40.1 + '@algolia/requester-node-http': 5.40.1 - '@algolia/requester-browser-xhr@5.40.0': + '@algolia/requester-browser-xhr@5.40.1': dependencies: - '@algolia/client-common': 5.40.0 + '@algolia/client-common': 5.40.1 - '@algolia/requester-fetch@5.40.0': + '@algolia/requester-fetch@5.40.1': dependencies: - '@algolia/client-common': 5.40.0 + '@algolia/client-common': 5.40.1 - '@algolia/requester-node-http@5.40.0': + '@algolia/requester-node-http@5.40.1': dependencies: - '@algolia/client-common': 5.40.0 + '@algolia/client-common': 5.40.1 '@alloc/quick-lru@5.2.0': {} @@ -11752,7 +11754,7 @@ snapshots: '@antfu/install-pkg@1.1.0': dependencies: - package-manager-detector: 1.4.0 + package-manager-detector: 1.5.0 tinyexec: 1.0.1 '@antfu/utils@0.7.10': {} @@ -12517,8 +12519,8 @@ snapshots: '@bpmn-io/cm-theme@0.1.0-alpha.2': dependencies: '@codemirror/language': 6.11.3 - '@codemirror/view': 6.38.5 - '@lezer/highlight': 1.2.1 + '@codemirror/view': 6.38.6 + '@lezer/highlight': 1.2.2 '@bpmn-io/diagram-js-ui@0.2.3': dependencies: @@ -12539,8 +12541,8 @@ snapshots: '@codemirror/language': 6.11.3 '@codemirror/lint': 6.9.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.5 - '@lezer/highlight': 1.2.1 + '@codemirror/view': 6.38.6 + '@lezer/highlight': 1.2.2 min-dom: 4.2.1 '@bpmn-io/feel-lint@1.4.0': @@ -12558,18 +12560,18 @@ snapshots: '@bpmn-io/lezer-feel': 1.9.0 '@codemirror/autocomplete': 6.19.0 '@codemirror/language': 6.11.3 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@bpmn-io/lezer-feel@1.9.0': dependencies: - '@lezer/highlight': 1.2.1 + '@lezer/highlight': 1.2.2 '@lezer/lr': 1.4.2 min-dash: 4.2.3 '@bpmn-io/properties-panel@3.33.0': dependencies: '@bpmn-io/feel-editor': 1.12.0 - '@codemirror/view': 6.38.5 + '@codemirror/view': 6.38.6 classnames: 2.5.1 feelers: 1.4.0 focus-trap: 7.6.5 @@ -12584,8 +12586,8 @@ snapshots: dependencies: '@cacheable/memoize': 2.0.3 '@cacheable/utils': 2.1.0 - '@keyv/bigmap': 1.0.3 - hookified: 1.12.1 + '@keyv/bigmap': 1.1.0(keyv@5.5.3) + hookified: 1.12.2 keyv: 5.5.3 '@cacheable/utils@2.1.0': @@ -12631,7 +12633,7 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/cli@2.29.7(@types/node@22.18.10)': + '@changesets/cli@2.29.7(@types/node@22.18.11)': dependencies: '@changesets/apply-release-plan': 7.0.13 '@changesets/assemble-release-plan': 6.0.9 @@ -12647,7 +12649,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.2(@types/node@22.18.10) + '@inquirer/external-editor': 1.0.2(@types/node@22.18.11) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 ci-info: 3.9.0 @@ -12772,47 +12774,47 @@ snapshots: dependencies: '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.5 - '@lezer/common': 1.2.3 + '@codemirror/view': 6.38.6 + '@lezer/common': 1.3.0 '@codemirror/commands@6.9.0': dependencies: '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.5 - '@lezer/common': 1.2.3 + '@codemirror/view': 6.38.6 + '@lezer/common': 1.3.0 '@codemirror/language@6.11.3': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.5 - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 + '@codemirror/view': 6.38.6 + '@lezer/common': 1.3.0 + '@lezer/highlight': 1.2.2 '@lezer/lr': 1.4.2 - style-mod: 4.1.2 + style-mod: 4.1.3 '@codemirror/lint@6.9.0': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.5 + '@codemirror/view': 6.38.6 crelt: 1.0.6 '@codemirror/state@6.5.2': dependencies: '@marijn/find-cluster-break': 1.0.2 - '@codemirror/view@6.38.5': + '@codemirror/view@6.38.6': dependencies: '@codemirror/state': 6.5.2 crelt: 1.0.6 - style-mod: 4.1.2 + style-mod: 4.1.3 w3c-keyname: 2.2.8 - '@commitlint/cli@19.8.1(@types/node@24.7.2)(typescript@5.9.3)': + '@commitlint/cli@19.8.1(@types/node@24.8.1)(typescript@5.9.3)': dependencies: '@commitlint/format': 19.8.1 '@commitlint/lint': 19.8.1 - '@commitlint/load': 19.8.1(@types/node@24.7.2)(typescript@5.9.3) + '@commitlint/load': 19.8.1(@types/node@24.8.1)(typescript@5.9.3) '@commitlint/read': 19.8.1 '@commitlint/types': 19.8.1 tinyexec: 1.0.1 @@ -12859,7 +12861,7 @@ snapshots: '@commitlint/rules': 19.8.1 '@commitlint/types': 19.8.1 - '@commitlint/load@19.8.1(@types/node@24.7.2)(typescript@5.9.3)': + '@commitlint/load@19.8.1(@types/node@24.8.1)(typescript@5.9.3)': dependencies: '@commitlint/config-validator': 19.8.1 '@commitlint/execute-rule': 19.8.1 @@ -12867,7 +12869,7 @@ snapshots: '@commitlint/types': 19.8.1 chalk: 5.6.2 cosmiconfig: 9.0.0(typescript@5.9.3) - cosmiconfig-typescript-loader: 6.2.0(@types/node@24.7.2)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.2.0(@types/node@24.8.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -12924,21 +12926,21 @@ snapshots: '@cspell/dict-al': 1.1.1 '@cspell/dict-aws': 4.0.15 '@cspell/dict-bash': 4.2.1 - '@cspell/dict-companies': 3.2.5 + '@cspell/dict-companies': 3.2.6 '@cspell/dict-cpp': 6.0.12 '@cspell/dict-cryptocurrencies': 5.0.5 '@cspell/dict-csharp': 4.0.7 '@cspell/dict-css': 4.0.18 '@cspell/dict-dart': 2.3.1 - '@cspell/dict-data-science': 2.0.9 + '@cspell/dict-data-science': 2.0.10 '@cspell/dict-django': 4.1.5 '@cspell/dict-docker': 1.1.16 '@cspell/dict-dotnet': 5.0.10 '@cspell/dict-elixir': 4.0.8 '@cspell/dict-en-common-misspellings': 2.1.6 '@cspell/dict-en-gb': 1.1.33 - '@cspell/dict-en_us': 4.4.19 - '@cspell/dict-filetypes': 3.0.13 + '@cspell/dict-en_us': 4.4.20 + '@cspell/dict-filetypes': 3.0.14 '@cspell/dict-flutter': 1.1.1 '@cspell/dict-fonts': 4.0.5 '@cspell/dict-fsharp': 1.1.1 @@ -12961,17 +12963,17 @@ snapshots: '@cspell/dict-markdown': 2.0.12(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.12)(@cspell/dict-typescript@3.2.3) '@cspell/dict-monkeyc': 1.0.11 '@cspell/dict-node': 5.0.8 - '@cspell/dict-npm': 5.2.17 + '@cspell/dict-npm': 5.2.18 '@cspell/dict-php': 4.0.15 '@cspell/dict-powershell': 5.0.15 '@cspell/dict-public-licenses': 2.0.15 - '@cspell/dict-python': 4.2.19 + '@cspell/dict-python': 4.2.20 '@cspell/dict-r': 2.1.1 '@cspell/dict-ruby': 5.0.9 '@cspell/dict-rust': 4.0.12 '@cspell/dict-scala': 5.0.8 '@cspell/dict-shell': 1.1.1 - '@cspell/dict-software-terms': 5.1.8 + '@cspell/dict-software-terms': 5.1.9 '@cspell/dict-sql': 2.2.1 '@cspell/dict-svelte': 1.0.7 '@cspell/dict-swift': 2.0.6 @@ -13003,7 +13005,7 @@ snapshots: dependencies: '@cspell/dict-shell': 1.1.1 - '@cspell/dict-companies@3.2.5': {} + '@cspell/dict-companies@3.2.6': {} '@cspell/dict-cpp@6.0.12': {} @@ -13015,7 +13017,7 @@ snapshots: '@cspell/dict-dart@2.3.1': {} - '@cspell/dict-data-science@2.0.9': {} + '@cspell/dict-data-science@2.0.10': {} '@cspell/dict-django@4.1.5': {} @@ -13029,9 +13031,9 @@ snapshots: '@cspell/dict-en-gb@1.1.33': {} - '@cspell/dict-en_us@4.4.19': {} + '@cspell/dict-en_us@4.4.20': {} - '@cspell/dict-filetypes@3.0.13': {} + '@cspell/dict-filetypes@3.0.14': {} '@cspell/dict-flutter@1.1.1': {} @@ -13082,7 +13084,7 @@ snapshots: '@cspell/dict-node@5.0.8': {} - '@cspell/dict-npm@5.2.17': {} + '@cspell/dict-npm@5.2.18': {} '@cspell/dict-php@4.0.15': {} @@ -13090,9 +13092,9 @@ snapshots: '@cspell/dict-public-licenses@2.0.15': {} - '@cspell/dict-python@4.2.19': + '@cspell/dict-python@4.2.20': dependencies: - '@cspell/dict-data-science': 2.0.9 + '@cspell/dict-data-science': 2.0.10 '@cspell/dict-r@2.1.1': {} @@ -13104,7 +13106,7 @@ snapshots: '@cspell/dict-shell@1.1.1': {} - '@cspell/dict-software-terms@5.1.8': {} + '@cspell/dict-software-terms@5.1.9': {} '@cspell/dict-sql@2.2.1': {} @@ -13434,9 +13436,9 @@ snapshots: '@docsearch/css@3.8.2': {} - '@docsearch/js@3.8.2(@algolia/client-search@5.40.0)(search-insights@2.17.3)': + '@docsearch/js@3.8.2(@algolia/client-search@5.40.1)(search-insights@2.17.3)': dependencies: - '@docsearch/react': 3.8.2(@algolia/client-search@5.40.0)(search-insights@2.17.3) + '@docsearch/react': 3.8.2(@algolia/client-search@5.40.1)(search-insights@2.17.3) preact: 10.27.2 transitivePeerDependencies: - '@algolia/client-search' @@ -13445,12 +13447,12 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.8.2(@algolia/client-search@5.40.0)(search-insights@2.17.3)': + '@docsearch/react@3.8.2(@algolia/client-search@5.40.1)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.40.0)(algoliasearch@5.40.0)(search-insights@2.17.3) - '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.40.0)(algoliasearch@5.40.0) + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1) '@docsearch/css': 3.8.2 - algoliasearch: 5.40.0 + algoliasearch: 5.40.1 optionalDependencies: search-insights: 2.17.3 transitivePeerDependencies: @@ -13487,7 +13489,7 @@ snapshots: '@es-joy/jsdoccomment@0.50.2': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/types': 8.46.1 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 @@ -13567,22 +13569,22 @@ snapshots: '@esbuild/win32-x64@0.25.3': optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.38.0(jiti@2.6.1))': dependencies: - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.21.0': + '@eslint/config-array@0.21.1': dependencies: - '@eslint/object-schema': 2.1.6 + '@eslint/object-schema': 2.1.7 debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.4.0': + '@eslint/config-helpers@0.4.1': dependencies: '@eslint/core': 0.16.0 @@ -13608,9 +13610,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.37.0': {} + '@eslint/js@9.38.0': {} - '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@2.1.7': {} '@eslint/plugin-kit@0.2.8': dependencies: @@ -13723,7 +13725,7 @@ snapshots: '@form-create/element-ui': 3.2.31(vue@3.5.22(typescript@5.9.3)) '@form-create/utils': 3.2.31 codemirror: 6.65.7 - element-plus: 2.11.4(vue@3.5.22(typescript@5.9.3)) + element-plus: 2.11.5(vue@3.5.22(typescript@5.9.3)) js-beautify: 1.15.4 signature_pad: 5.1.1 vue: 3.5.22(typescript@5.9.3) @@ -13770,7 +13772,7 @@ snapshots: dependencies: '@iconify/types': 2.0.0 - '@iconify-json/simple-icons@1.2.54': + '@iconify-json/simple-icons@1.2.55': dependencies: '@iconify/types': 2.0.0 @@ -13778,7 +13780,7 @@ snapshots: dependencies: '@iconify/types': 2.0.0 - '@iconify/json@2.2.395': + '@iconify/json@2.2.398': dependencies: '@iconify/types': 2.0.0 pathe: 2.0.3 @@ -13807,12 +13809,12 @@ snapshots: '@iconify/types': 2.0.0 vue: 3.5.22(typescript@5.9.3) - '@inquirer/external-editor@1.0.2(@types/node@22.18.10)': + '@inquirer/external-editor@1.0.2(@types/node@22.18.11)': dependencies: chardet: 2.1.0 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 22.18.10 + '@types/node': 22.18.11 '@internationalized/date@3.10.0': dependencies: @@ -13848,15 +13850,15 @@ snapshots: '@intlify/shared@11.1.12': {} - '@intlify/unplugin-vue-i18n@6.0.8(@vue/compiler-dom@3.5.22)(eslint@9.37.0(jiti@2.6.1))(rollup@4.52.4)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))': + '@intlify/unplugin-vue-i18n@6.0.8(@vue/compiler-dom@3.5.22)(eslint@9.38.0(jiti@2.6.1))(rollup@4.52.5)(typescript@5.9.3)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) '@intlify/bundle-utils': 10.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3))) '@intlify/shared': 11.1.12 '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.12)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) - '@rollup/pluginutils': 5.3.0(rollup@4.52.4) - '@typescript-eslint/scope-manager': 8.46.0 - '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) debug: 4.4.3 fast-glob: 3.3.3 js-yaml: 4.1.0 @@ -13929,7 +13931,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@jspm/generator@2.7.3': + '@jspm/generator@2.7.4': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4) @@ -13950,26 +13952,27 @@ snapshots: '@juggle/resize-observer@3.4.0': {} - '@keyv/bigmap@1.0.3': + '@keyv/bigmap@1.1.0(keyv@5.5.3)': dependencies: - hookified: 1.12.1 + hookified: 1.12.2 + keyv: 5.5.3 '@keyv/serialize@1.1.1': {} - '@lezer/common@1.2.3': {} + '@lezer/common@1.3.0': {} - '@lezer/highlight@1.2.1': + '@lezer/highlight@1.2.2': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/lr@1.4.2': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 - '@lezer/markdown@1.4.3': + '@lezer/markdown@1.5.1': dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 + '@lezer/common': 1.3.0 + '@lezer/highlight': 1.2.2 '@manypkg/find-root@1.1.0': dependencies: @@ -14017,23 +14020,23 @@ snapshots: '@marijn/find-cluster-break@1.0.2': {} - '@microsoft/api-extractor-model@7.31.1(@types/node@24.7.2)': + '@microsoft/api-extractor-model@7.31.1(@types/node@24.8.1)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.17.0(@types/node@24.7.2) + '@rushstack/node-core-library': 5.17.0(@types/node@24.8.1) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.53.1(@types/node@24.7.2)': + '@microsoft/api-extractor@7.53.1(@types/node@24.8.1)': dependencies: - '@microsoft/api-extractor-model': 7.31.1(@types/node@24.7.2) + '@microsoft/api-extractor-model': 7.31.1(@types/node@24.8.1) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.17.0(@types/node@24.7.2) + '@rushstack/node-core-library': 5.17.0(@types/node@24.8.1) '@rushstack/rig-package': 0.6.0 - '@rushstack/terminal': 0.19.1(@types/node@24.7.2) - '@rushstack/ts-command-line': 5.1.1(@types/node@24.7.2) + '@rushstack/terminal': 0.19.1(@types/node@24.8.1) + '@rushstack/ts-command-line': 5.1.1(@types/node@24.8.1) lodash: 4.17.21 minimatch: 10.0.3 resolve: 1.22.10 @@ -14073,17 +14076,17 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@nolebase/ui@2.18.2(vitepress@1.6.4(@algolia/client-search@5.40.0)(@types/node@24.7.2)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))': + '@nolebase/ui@2.18.2(vitepress@1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))': dependencies: '@iconify-json/octicon': 1.2.16 less: 4.4.2 - vitepress: 1.6.4(@algolia/client-search@5.40.0)(@types/node@24.7.2)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3) + vitepress: 1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3) vue: 3.5.22(typescript@5.9.3) - '@nolebase/vitepress-plugin-git-changelog@2.18.2(vitepress@1.6.4(@algolia/client-search@5.40.0)(@types/node@24.7.2)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))': + '@nolebase/vitepress-plugin-git-changelog@2.18.2(vitepress@1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))': dependencies: '@iconify-json/octicon': 1.2.16 - '@nolebase/ui': 2.18.2(vitepress@1.6.4(@algolia/client-search@5.40.0)(@types/node@24.7.2)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3)) + '@nolebase/ui': 2.18.2(vitepress@1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3)) colorette: 2.0.20 date-fns: 4.1.0 defu: 6.1.4 @@ -14093,7 +14096,7 @@ snapshots: gray-matter: 4.0.3 less: 4.4.2 uncrypto: 0.1.3 - vitepress: 1.6.4(@algolia/client-search@5.40.0)(@types/node@24.7.2)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3) + vitepress: 1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3) transitivePeerDependencies: - vue @@ -14103,7 +14106,7 @@ snapshots: '@nuxt/kit@3.19.3(magicast@0.3.5)': dependencies: - c12: 3.3.0(magicast@0.3.5) + c12: 3.3.1(magicast@0.3.5) consola: 3.4.2 defu: 6.1.4 destr: 2.0.5 @@ -14120,11 +14123,11 @@ snapshots: rc9: 2.1.2 scule: 1.3.0 semver: 7.7.3 - std-env: 3.9.0 + std-env: 3.10.0 tinyglobby: 0.2.15 ufo: 1.6.1 unctx: 2.4.1 - unimport: 5.4.1 + unimport: 5.5.0 untyped: 2.0.0 transitivePeerDependencies: - magicast @@ -14202,9 +14205,9 @@ snapshots: '@pkgr/core@0.2.9': {} - '@playwright/test@1.56.0': + '@playwright/test@1.56.1': dependencies: - playwright: 1.56.0 + playwright: 1.56.1 '@pnpm/config.env-replace@1.1.0': {} @@ -14253,11 +14256,11 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.29': {} - '@rolldown/pluginutils@1.0.0-beta.43': {} + '@rolldown/pluginutils@1.0.0-beta.44': {} - '@rollup/plugin-alias@5.1.1(rollup@4.52.4)': + '@rollup/plugin-alias@5.1.1(rollup@4.52.5)': optionalDependencies: - rollup: 4.52.4 + rollup: 4.52.5 '@rollup/plugin-babel@5.3.1(@babel/core@7.28.4)(rollup@2.79.2)': dependencies: @@ -14268,9 +14271,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@28.0.6(rollup@4.52.4)': + '@rollup/plugin-commonjs@28.0.8(rollup@4.52.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.52.4) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.5.0(picomatch@4.0.3) @@ -14278,21 +14281,21 @@ snapshots: magic-string: 0.30.19 picomatch: 4.0.3 optionalDependencies: - rollup: 4.52.4 + rollup: 4.52.5 - '@rollup/plugin-inject@5.0.5(rollup@4.52.4)': + '@rollup/plugin-inject@5.0.5(rollup@4.52.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.52.4) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) estree-walker: 2.0.2 magic-string: 0.30.19 optionalDependencies: - rollup: 4.52.4 + rollup: 4.52.5 - '@rollup/plugin-json@6.1.0(rollup@4.52.4)': + '@rollup/plugin-json@6.1.0(rollup@4.52.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.52.4) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) optionalDependencies: - rollup: 4.52.4 + rollup: 4.52.5 '@rollup/plugin-node-resolve@15.3.1(rollup@2.79.2)': dependencies: @@ -14304,15 +14307,15 @@ snapshots: optionalDependencies: rollup: 2.79.2 - '@rollup/plugin-node-resolve@16.0.3(rollup@4.52.4)': + '@rollup/plugin-node-resolve@16.0.3(rollup@4.52.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.52.4) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.10 optionalDependencies: - rollup: 4.52.4 + rollup: 4.52.5 '@rollup/plugin-replace@2.4.2(rollup@2.79.2)': dependencies: @@ -14320,12 +14323,12 @@ snapshots: magic-string: 0.25.9 rollup: 2.79.2 - '@rollup/plugin-replace@6.0.2(rollup@4.52.4)': + '@rollup/plugin-replace@6.0.2(rollup@4.52.5)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.52.4) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) magic-string: 0.30.19 optionalDependencies: - rollup: 4.52.4 + rollup: 4.52.5 '@rollup/plugin-terser@0.4.4(rollup@2.79.2)': dependencies: @@ -14335,13 +14338,13 @@ snapshots: optionalDependencies: rollup: 2.79.2 - '@rollup/plugin-terser@0.4.4(rollup@4.52.4)': + '@rollup/plugin-terser@0.4.4(rollup@4.52.5)': dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 terser: 5.44.0 optionalDependencies: - rollup: 4.52.4 + rollup: 4.52.5 '@rollup/pluginutils@3.1.0(rollup@2.79.2)': dependencies: @@ -14363,81 +14366,81 @@ snapshots: optionalDependencies: rollup: 2.79.2 - '@rollup/pluginutils@5.3.0(rollup@4.52.4)': + '@rollup/pluginutils@5.3.0(rollup@4.52.5)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.52.4 + rollup: 4.52.5 - '@rollup/rollup-android-arm-eabi@4.52.4': + '@rollup/rollup-android-arm-eabi@4.52.5': optional: true - '@rollup/rollup-android-arm64@4.52.4': + '@rollup/rollup-android-arm64@4.52.5': optional: true - '@rollup/rollup-darwin-arm64@4.52.4': + '@rollup/rollup-darwin-arm64@4.52.5': optional: true - '@rollup/rollup-darwin-x64@4.52.4': + '@rollup/rollup-darwin-x64@4.52.5': optional: true - '@rollup/rollup-freebsd-arm64@4.52.4': + '@rollup/rollup-freebsd-arm64@4.52.5': optional: true - '@rollup/rollup-freebsd-x64@4.52.4': + '@rollup/rollup-freebsd-x64@4.52.5': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.52.4': + '@rollup/rollup-linux-arm-gnueabihf@4.52.5': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.52.4': + '@rollup/rollup-linux-arm-musleabihf@4.52.5': optional: true - '@rollup/rollup-linux-arm64-gnu@4.52.4': + '@rollup/rollup-linux-arm64-gnu@4.52.5': optional: true - '@rollup/rollup-linux-arm64-musl@4.52.4': + '@rollup/rollup-linux-arm64-musl@4.52.5': optional: true - '@rollup/rollup-linux-loong64-gnu@4.52.4': + '@rollup/rollup-linux-loong64-gnu@4.52.5': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.52.4': + '@rollup/rollup-linux-ppc64-gnu@4.52.5': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.52.4': + '@rollup/rollup-linux-riscv64-gnu@4.52.5': optional: true - '@rollup/rollup-linux-riscv64-musl@4.52.4': + '@rollup/rollup-linux-riscv64-musl@4.52.5': optional: true - '@rollup/rollup-linux-s390x-gnu@4.52.4': + '@rollup/rollup-linux-s390x-gnu@4.52.5': optional: true - '@rollup/rollup-linux-x64-gnu@4.52.4': + '@rollup/rollup-linux-x64-gnu@4.52.5': optional: true - '@rollup/rollup-linux-x64-musl@4.52.4': + '@rollup/rollup-linux-x64-musl@4.52.5': optional: true - '@rollup/rollup-openharmony-arm64@4.52.4': + '@rollup/rollup-openharmony-arm64@4.52.5': optional: true - '@rollup/rollup-win32-arm64-msvc@4.52.4': + '@rollup/rollup-win32-arm64-msvc@4.52.5': optional: true - '@rollup/rollup-win32-ia32-msvc@4.52.4': + '@rollup/rollup-win32-ia32-msvc@4.52.5': optional: true - '@rollup/rollup-win32-x64-gnu@4.52.4': + '@rollup/rollup-win32-x64-gnu@4.52.5': optional: true - '@rollup/rollup-win32-x64-msvc@4.52.4': + '@rollup/rollup-win32-x64-msvc@4.52.5': optional: true - '@rushstack/node-core-library@5.17.0(@types/node@24.7.2)': + '@rushstack/node-core-library@5.17.0(@types/node@24.8.1)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -14448,28 +14451,28 @@ snapshots: resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.1 - '@rushstack/problem-matcher@0.1.1(@types/node@24.7.2)': + '@rushstack/problem-matcher@0.1.1(@types/node@24.8.1)': optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.1 '@rushstack/rig-package@0.6.0': dependencies: resolve: 1.22.10 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.19.1(@types/node@24.7.2)': + '@rushstack/terminal@0.19.1(@types/node@24.8.1)': dependencies: - '@rushstack/node-core-library': 5.17.0(@types/node@24.7.2) - '@rushstack/problem-matcher': 0.1.1(@types/node@24.7.2) + '@rushstack/node-core-library': 5.17.0(@types/node@24.8.1) + '@rushstack/problem-matcher': 0.1.1(@types/node@24.8.1) supports-color: 8.1.1 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.1 - '@rushstack/ts-command-line@5.1.1(@types/node@24.7.2)': + '@rushstack/ts-command-line@5.1.1(@types/node@24.8.1)': dependencies: - '@rushstack/terminal': 0.19.1(@types/node@24.7.2) + '@rushstack/terminal': 0.19.1(@types/node@24.8.1) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -14550,9 +14553,9 @@ snapshots: magic-string: 0.25.9 string.prototype.matchall: 4.0.12 - '@svelte-put/shortcut@4.1.0(svelte@5.39.11)': + '@svelte-put/shortcut@4.1.0(svelte@5.41.1)': dependencies: - svelte: 5.39.11 + svelte: 5.41.1 '@sveltejs/acorn-typescript@1.0.6(acorn@8.15.0)': dependencies: @@ -14578,16 +14581,16 @@ snapshots: dependencies: remove-accents: 0.5.0 - '@tanstack/query-core@5.90.2': {} + '@tanstack/query-core@5.90.5': {} '@tanstack/store@0.7.7': {} '@tanstack/virtual-core@3.13.12': {} - '@tanstack/vue-query@5.90.2(vue@3.5.22(typescript@5.9.3))': + '@tanstack/vue-query@5.90.5(vue@3.5.22(typescript@5.9.3))': dependencies: '@tanstack/match-sorter-utils': 8.19.4 - '@tanstack/query-core': 5.90.2 + '@tanstack/query-core': 5.90.5 '@vue/devtools-api': 6.6.4 vue: 3.5.22(typescript@5.9.3) vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) @@ -14603,16 +14606,16 @@ snapshots: '@tanstack/virtual-core': 3.13.12 vue: 3.5.22(typescript@5.9.3) - '@tinyflow-ai/ui@1.1.5(svelte@5.39.11)': + '@tinyflow-ai/ui@1.1.7(svelte@5.41.1)': dependencies: '@floating-ui/dom': 1.7.4 - '@xyflow/svelte': 1.3.1(svelte@5.39.11) + '@xyflow/svelte': 1.4.0(svelte@5.41.1) transitivePeerDependencies: - svelte - '@tinyflow-ai/vue@1.1.5(svelte@5.39.11)(vue@3.5.22(typescript@5.9.3))': + '@tinyflow-ai/vue@1.1.7(svelte@5.41.1)(vue@3.5.22(typescript@5.9.3))': dependencies: - '@tinyflow-ai/ui': 1.1.5(svelte@5.39.11) + '@tinyflow-ai/ui': 1.1.7(svelte@5.41.1) vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - svelte @@ -14646,7 +14649,7 @@ snapshots: '@types/conventional-commits-parser@5.0.1': dependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.1 '@types/crypto-js@4.2.2': {} @@ -14793,7 +14796,7 @@ snapshots: '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 2.1.0 - '@types/node': 24.7.2 + '@types/node': 24.8.1 '@types/katex@0.16.7': {} @@ -14838,11 +14841,11 @@ snapshots: '@types/node@12.20.55': {} - '@types/node@22.18.10': + '@types/node@22.18.11': dependencies: undici-types: 6.21.0 - '@types/node@24.7.2': + '@types/node@24.8.1': dependencies: undici-types: 7.14.0 @@ -14856,13 +14859,13 @@ snapshots: '@types/qrcode@1.5.5': dependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.1 '@types/qs@6.14.0': {} '@types/readdir-glob@1.1.5': dependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.1 '@types/resolve@1.20.2': {} @@ -14882,15 +14885,15 @@ snapshots: '@types/web-bluetooth@0.0.21': {} - '@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.46.0 - '@typescript-eslint/type-utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.0 - eslint: 9.37.0(jiti@2.6.1) + '@typescript-eslint/parser': 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/type-utils': 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.1 + eslint: 9.38.0(jiti@2.6.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -14899,22 +14902,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.46.0 - '@typescript-eslint/types': 8.46.0 - '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.0 + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.1 debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.46.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.46.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3) - '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) + '@typescript-eslint/types': 8.46.1 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: @@ -14925,22 +14928,22 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.46.0': + '@typescript-eslint/scope-manager@8.46.1': dependencies: - '@typescript-eslint/types': 8.46.0 - '@typescript-eslint/visitor-keys': 8.46.0 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/visitor-keys': 8.46.1 - '@typescript-eslint/tsconfig-utils@8.46.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.46.0 - '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -14948,7 +14951,7 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.46.0': {} + '@typescript-eslint/types@8.46.1': {} '@typescript-eslint/typescript-estree@7.18.0(typescript@5.9.3)': dependencies: @@ -14965,12 +14968,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.46.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.46.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3) - '@typescript-eslint/types': 8.46.0 - '@typescript-eslint/visitor-keys': 8.46.0 + '@typescript-eslint/project-service': 8.46.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/visitor-keys': 8.46.1 debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -14981,24 +14984,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@7.18.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.46.0 - '@typescript-eslint/types': 8.46.0 - '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) - eslint: 9.37.0(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + eslint: 9.38.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -15008,9 +15011,9 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.46.0': + '@typescript-eslint/visitor-keys@8.46.1': dependencies: - '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/types': 8.46.1 eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} @@ -15082,10 +15085,10 @@ snapshots: transitivePeerDependencies: - vue - '@vercel/nft@0.30.2(rollup@4.52.4)': + '@vercel/nft@0.30.3(rollup@4.52.5)': dependencies: '@mapbox/node-pre-gyp': 2.0.0 - '@rollup/pluginutils': 5.3.0(rollup@4.52.4) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) async-sema: 3.1.1 @@ -15101,49 +15104,49 @@ snapshots: - rollup - supports-color - '@vite-pwa/vitepress@1.0.0(vite-plugin-pwa@1.0.3(vite@5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(workbox-build@7.3.0)(workbox-window@7.3.0))': + '@vite-pwa/vitepress@1.0.1(vite-plugin-pwa@1.1.0(vite@5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(workbox-build@7.3.0)(workbox-window@7.3.0))': dependencies: - vite-plugin-pwa: 1.0.3(vite@5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(workbox-build@7.3.0)(workbox-window@7.3.0) + vite-plugin-pwa: 1.1.0(vite@5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(workbox-build@7.3.0)(workbox-window@7.3.0) - '@vitejs/plugin-vue-jsx@5.1.1(vite@7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.1(vite@7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4) - '@rolldown/pluginutils': 1.0.0-beta.43 + '@rolldown/pluginutils': 1.0.0-beta.44 '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.4) - vite: 7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@5.1.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.1(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4) - '@rolldown/pluginutils': 1.0.0-beta.43 + '@rolldown/pluginutils': 1.0.0-beta.44 '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.4) - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22(typescript@5.9.3))': + '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22(typescript@5.9.3))': dependencies: - vite: 5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0) + vite: 5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0) vue: 3.5.22(typescript@5.9.3) - '@vitejs/plugin-vue@6.0.1(vite@7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.1(vite@7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.29 - vite: 7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) vue: 3.5.22(typescript@5.9.3) - '@vitejs/plugin-vue@6.0.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.1(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.29 - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) vue: 3.5.22(typescript@5.9.3) '@vitest/expect@3.2.4': @@ -15154,13 +15157,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.19 optionalDependencies: - vite: 7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -15270,14 +15273,14 @@ snapshots: dependencies: '@vue/devtools-kit': 7.7.7 - '@vue/devtools-core@7.7.7(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@vue/devtools-core@7.7.7(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 mitt: 3.0.1 nanoid: 5.1.6 pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) + vite-hot-client: 2.1.0(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - vite @@ -15467,13 +15470,13 @@ snapshots: vue: 3.5.22(typescript@5.9.3) xe-utils: 3.7.9 - '@xyflow/svelte@1.3.1(svelte@5.39.11)': + '@xyflow/svelte@1.4.0(svelte@5.41.1)': dependencies: - '@svelte-put/shortcut': 4.1.0(svelte@5.39.11) - '@xyflow/system': 0.0.70 - svelte: 5.39.11 + '@svelte-put/shortcut': 4.1.0(svelte@5.41.1) + '@xyflow/system': 0.0.71 + svelte: 5.41.1 - '@xyflow/system@0.0.70': + '@xyflow/system@0.0.71': dependencies: '@types/d3-drag': 3.0.7 '@types/d3-interpolate': 3.0.4 @@ -15546,22 +15549,22 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - algoliasearch@5.40.0: + algoliasearch@5.40.1: dependencies: - '@algolia/abtesting': 1.6.0 - '@algolia/client-abtesting': 5.40.0 - '@algolia/client-analytics': 5.40.0 - '@algolia/client-common': 5.40.0 - '@algolia/client-insights': 5.40.0 - '@algolia/client-personalization': 5.40.0 - '@algolia/client-query-suggestions': 5.40.0 - '@algolia/client-search': 5.40.0 - '@algolia/ingestion': 1.40.0 - '@algolia/monitoring': 1.40.0 - '@algolia/recommend': 5.40.0 - '@algolia/requester-browser-xhr': 5.40.0 - '@algolia/requester-fetch': 5.40.0 - '@algolia/requester-node-http': 5.40.0 + '@algolia/abtesting': 1.6.1 + '@algolia/client-abtesting': 5.40.1 + '@algolia/client-analytics': 5.40.1 + '@algolia/client-common': 5.40.1 + '@algolia/client-insights': 5.40.1 + '@algolia/client-personalization': 5.40.1 + '@algolia/client-query-suggestions': 5.40.1 + '@algolia/client-search': 5.40.1 + '@algolia/ingestion': 1.40.1 + '@algolia/monitoring': 1.40.1 + '@algolia/recommend': 5.40.1 + '@algolia/requester-browser-xhr': 5.40.1 + '@algolia/requester-fetch': 5.40.1 + '@algolia/requester-node-http': 5.40.1 alien-signals@0.4.14: {} @@ -15716,7 +15719,7 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: browserslist: 4.26.3 - caniuse-lite: 1.0.30001750 + caniuse-lite: 1.0.30001751 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -15777,7 +15780,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.8.16: {} + baseline-browser-mapping@2.8.18: {} better-path-resolve@1.0.0: dependencies: @@ -15859,10 +15862,10 @@ snapshots: browserslist@4.26.3: dependencies: - baseline-browser-mapping: 2.8.16 - caniuse-lite: 1.0.30001750 - electron-to-chromium: 1.5.234 - node-releases: 2.0.23 + baseline-browser-mapping: 2.8.18 + caniuse-lite: 1.0.30001751 + electron-to-chromium: 1.5.237 + node-releases: 2.0.25 update-browserslist-db: 1.1.3(browserslist@4.26.3) buffer-crc32@1.0.0: {} @@ -15882,7 +15885,7 @@ snapshots: dependencies: run-applescript: 7.1.0 - c12@3.3.0(magicast@0.3.5): + c12@3.3.1(magicast@0.3.5): dependencies: chokidar: 4.0.3 confbox: 0.2.2 @@ -15915,14 +15918,14 @@ snapshots: ssri: 12.0.0 unique-filename: 4.0.0 - cacheable@2.1.0: + cacheable@2.1.1: dependencies: '@cacheable/memoize': 2.0.3 '@cacheable/memory': 2.0.3 '@cacheable/utils': 2.1.0 - hookified: 1.12.1 + hookified: 1.12.2 keyv: 5.5.3 - qified: 0.5.0 + qified: 0.5.1 call-bind-apply-helpers@1.0.2: dependencies: @@ -15971,11 +15974,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.26.3 - caniuse-lite: 1.0.30001750 + caniuse-lite: 1.0.30001751 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001750: {} + caniuse-lite@1.0.30001751: {} ccount@2.0.1: {} @@ -16073,7 +16076,7 @@ snapshots: node-cleanup: 2.1.2 typescript: 5.9.3 update-notifier: 7.3.1 - zx: 8.8.4 + zx: 8.8.5 citty@0.1.6: dependencies: @@ -16283,9 +16286,9 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig-typescript-loader@6.2.0(@types/node@24.7.2)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): + cosmiconfig-typescript-loader@6.2.0(@types/node@24.8.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): dependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.1 cosmiconfig: 9.0.0(typescript@5.9.3) jiti: 2.6.1 typescript: 5.9.3 @@ -16916,7 +16919,7 @@ snapshots: domify@2.0.0: {} - dompurify@3.2.7: + dompurify@3.3.0: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -16939,7 +16942,7 @@ snapshots: dot-prop@10.1.0: dependencies: - type-fest: 5.0.1 + type-fest: 5.1.0 dot-prop@5.3.0: dependencies: @@ -16991,9 +16994,9 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.234: {} + electron-to-chromium@1.5.237: {} - element-plus@2.11.4(vue@3.5.22(typescript@5.9.3)): + element-plus@2.11.5(vue@3.5.22(typescript@5.9.3)): dependencies: '@ctrl/tinycolor': 4.2.0 '@element-plus/icons-vue': 2.3.2(vue@3.5.22(typescript@5.9.3)) @@ -17004,7 +17007,6 @@ snapshots: '@vueuse/core': 9.13.0(vue@3.5.22(typescript@5.9.3)) async-validator: 4.2.5 dayjs: 1.11.18 - escape-html: 1.0.3 lodash: 4.17.21 lodash-es: 4.17.21 lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) @@ -17016,7 +17018,7 @@ snapshots: emoji-regex-xs@1.0.0: {} - emoji-regex@10.5.0: {} + emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} @@ -17197,20 +17199,20 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@9.37.0(jiti@2.6.1)): + eslint-compat-utils@0.5.1(eslint@9.38.0(jiti@2.6.1)): dependencies: - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) semver: 7.7.3 - eslint-compat-utils@0.6.5(eslint@9.37.0(jiti@2.6.1)): + eslint-compat-utils@0.6.5(eslint@9.38.0(jiti@2.6.1)): dependencies: - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) semver: 7.7.3 - eslint-config-turbo@2.5.8(eslint@9.37.0(jiti@2.6.1))(turbo@2.5.8): + eslint-config-turbo@2.5.8(eslint@9.38.0(jiti@2.6.1))(turbo@2.5.8): dependencies: - eslint: 9.37.0(jiti@2.6.1) - eslint-plugin-turbo: 2.5.8(eslint@9.37.0(jiti@2.6.1))(turbo@2.5.8) + eslint: 9.38.0(jiti@2.6.1) + eslint-plugin-turbo: 2.5.8(eslint@9.38.0(jiti@2.6.1))(turbo@2.5.8) turbo: 2.5.8 eslint-import-context@0.1.9(unrs-resolver@1.11.1): @@ -17220,36 +17222,36 @@ snapshots: optionalDependencies: unrs-resolver: 1.11.1 - eslint-json-compat-utils@0.2.1(eslint@9.37.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.1): + eslint-json-compat-utils@0.2.1(eslint@9.38.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.1): dependencies: - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) esquery: 1.6.0 jsonc-eslint-parser: 2.4.1 - eslint-plugin-command@3.3.1(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-command@3.3.1(eslint@9.38.0(jiti@2.6.1)): dependencies: '@es-joy/jsdoccomment': 0.50.2 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) - eslint-plugin-es-x@7.8.0(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-es-x@7.8.0(eslint@9.38.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.37.0(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@9.37.0(jiti@2.6.1)) + eslint: 9.38.0(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-eslint-comments@3.2.0(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-eslint-comments@3.2.0(eslint@9.38.0(jiti@2.6.1)): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) ignore: 5.3.2 - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)): dependencies: - '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/types': 8.46.1 comment-parser: 1.4.1 debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 minimatch: 10.0.3 @@ -17257,18 +17259,18 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - supports-color - eslint-plugin-jsdoc@50.8.0(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-jsdoc@50.8.0(eslint@9.38.0(jiti@2.6.1)): dependencies: '@es-joy/jsdoccomment': 0.50.2 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) espree: 10.4.0 esquery: 1.6.0 parse-imports-exports: 0.2.4 @@ -17277,13 +17279,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.21.0(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-jsonc@2.21.0(eslint@9.38.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) diff-sequences: 27.5.1 - eslint: 9.37.0(jiti@2.6.1) - eslint-compat-utils: 0.6.5(eslint@9.37.0(jiti@2.6.1)) - eslint-json-compat-utils: 0.2.1(eslint@9.37.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.1) + eslint: 9.38.0(jiti@2.6.1) + eslint-compat-utils: 0.6.5(eslint@9.38.0(jiti@2.6.1)) + eslint-json-compat-utils: 0.2.1(eslint@9.38.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.1) espree: 10.4.0 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.1 @@ -17292,12 +17294,12 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-n@17.23.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-n@17.23.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) enhanced-resolve: 5.18.3 - eslint: 9.37.0(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@9.37.0(jiti@2.6.1)) + eslint: 9.38.0(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@9.38.0(jiti@2.6.1)) get-tsconfig: 4.12.0 globals: 15.15.0 globrex: 0.1.2 @@ -17309,51 +17311,51 @@ snapshots: eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-perfectionist@4.15.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-perfectionist@4.15.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/types': 8.46.0 - '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.37.0(jiti@2.6.1) + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.38.0(jiti@2.6.1) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint@9.37.0(jiti@2.6.1))(prettier@3.6.2): + eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint@9.38.0(jiti@2.6.1))(prettier@3.6.2): dependencies: - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) prettier: 3.6.2 prettier-linter-helpers: 1.0.0 synckit: 0.11.11 optionalDependencies: '@types/eslint': 9.6.1 - eslint-plugin-regexp@2.10.0(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-regexp@2.10.0(eslint@9.38.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 comment-parser: 1.4.1 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) jsdoc-type-pratt-parser: 4.8.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-turbo@2.5.8(eslint@9.37.0(jiti@2.6.1))(turbo@2.5.8): + eslint-plugin-turbo@2.5.8(eslint@9.38.0(jiti@2.6.1))(turbo@2.5.8): dependencies: dotenv: 16.0.3 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) turbo: 2.5.8 - eslint-plugin-unicorn@59.0.1(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-unicorn@59.0.1(eslint@9.38.0(jiti@2.6.1)): dependencies: '@babel/helper-validator-identifier': 7.27.1 - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) '@eslint/plugin-kit': 0.2.8 ci-info: 4.3.1 clean-regexp: 1.0.0 core-js-compat: 3.46.0 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) esquery: 1.6.0 find-up-simple: 1.0.1 globals: 16.4.0 @@ -17366,35 +17368,35 @@ snapshots: semver: 7.7.3 strip-indent: 4.1.1 - eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)): dependencies: - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/node@24.7.2)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/node@24.8.1)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.37.0(jiti@2.6.1) + '@typescript-eslint/utils': 7.18.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.38.0(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - vitest: 3.2.4(@types/node@24.7.2)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) + vitest: 3.2.4(@types/node@24.8.1)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-vue@10.5.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.37.0(jiti@2.6.1))): + eslint-plugin-vue@10.5.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.38.0(jiti@2.6.1))): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) - eslint: 9.37.0(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) + eslint: 9.38.0(jiti@2.6.1) natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.7.3 - vue-eslint-parser: 10.2.0(eslint@9.37.0(jiti@2.6.1)) + vue-eslint-parser: 10.2.0(eslint@9.38.0(jiti@2.6.1)) xml-name-validator: 4.0.0 optionalDependencies: - '@typescript-eslint/parser': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) eslint-scope@8.4.0: dependencies: @@ -17405,21 +17407,20 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.37.0(jiti@2.6.1): + eslint@9.38.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.0 - '@eslint/config-helpers': 0.4.0 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.1 '@eslint/core': 0.16.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.37.0 + '@eslint/js': 9.38.0 '@eslint/plugin-kit': 0.4.0 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 @@ -17591,11 +17592,11 @@ snapshots: '@codemirror/language': 6.11.3 '@codemirror/lint': 6.9.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.5 - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 + '@codemirror/view': 6.38.6 + '@lezer/common': 1.3.0 + '@lezer/highlight': 1.2.2 '@lezer/lr': 1.4.2 - '@lezer/markdown': 1.4.3 + '@lezer/markdown': 1.5.1 feelin: 3.2.0 lezer-feel: 1.9.0 min-dom: 5.1.1 @@ -17666,7 +17667,7 @@ snapshots: dependencies: magic-string: 0.30.19 mlly: 1.8.0 - rollup: 4.52.4 + rollup: 4.52.5 flat-cache@4.0.1: dependencies: @@ -17680,9 +17681,9 @@ snapshots: flat-cache@6.1.18: dependencies: - cacheable: 2.1.0 + cacheable: 2.1.1 flatted: 3.3.3 - hookified: 1.12.1 + hookified: 1.12.2 flatted@3.3.3: {} @@ -18050,7 +18051,7 @@ snapshots: hookable@5.5.3: {} - hookified@1.12.1: {} + hookified@1.12.2: {} htm@3.1.1: {} @@ -18138,7 +18139,7 @@ snapshots: image-size@0.5.5: optional: true - immutable@5.1.3: {} + immutable@5.1.4: {} import-fresh@3.3.1: dependencies: @@ -18553,7 +18554,7 @@ snapshots: kolorist@1.8.0: {} - ky@1.11.0: {} + ky@1.12.0: {} latest-version@9.0.0: dependencies: @@ -18629,7 +18630,7 @@ snapshots: lezer-feel@1.9.0: dependencies: - '@lezer/highlight': 1.2.1 + '@lezer/highlight': 1.2.2 '@lezer/lr': 1.4.2 min-dash: 4.2.3 @@ -18657,7 +18658,7 @@ snapshots: mlly: 1.8.0 node-forge: 1.3.1 pathe: 1.1.2 - std-env: 3.9.0 + std-env: 3.10.0 ufo: 1.6.1 untun: 0.1.3 uqr: 0.1.2 @@ -19117,16 +19118,16 @@ snapshots: nitropack@2.12.7: dependencies: '@cloudflare/kv-asset-handler': 0.4.0 - '@rollup/plugin-alias': 5.1.1(rollup@4.52.4) - '@rollup/plugin-commonjs': 28.0.6(rollup@4.52.4) - '@rollup/plugin-inject': 5.0.5(rollup@4.52.4) - '@rollup/plugin-json': 6.1.0(rollup@4.52.4) - '@rollup/plugin-node-resolve': 16.0.3(rollup@4.52.4) - '@rollup/plugin-replace': 6.0.2(rollup@4.52.4) - '@rollup/plugin-terser': 0.4.4(rollup@4.52.4) - '@vercel/nft': 0.30.2(rollup@4.52.4) + '@rollup/plugin-alias': 5.1.1(rollup@4.52.5) + '@rollup/plugin-commonjs': 28.0.8(rollup@4.52.5) + '@rollup/plugin-inject': 5.0.5(rollup@4.52.5) + '@rollup/plugin-json': 6.1.0(rollup@4.52.5) + '@rollup/plugin-node-resolve': 16.0.3(rollup@4.52.5) + '@rollup/plugin-replace': 6.0.2(rollup@4.52.5) + '@rollup/plugin-terser': 0.4.4(rollup@4.52.5) + '@vercel/nft': 0.30.3(rollup@4.52.5) archiver: 7.0.1 - c12: 3.3.0(magicast@0.3.5) + c12: 3.3.1(magicast@0.3.5) chokidar: 4.0.3 citty: 0.1.6 compatx: 0.2.0 @@ -19166,20 +19167,20 @@ snapshots: pkg-types: 2.3.0 pretty-bytes: 7.1.0 radix3: 1.1.2 - rollup: 4.52.4 - rollup-plugin-visualizer: 6.0.4(rollup@4.52.4) + rollup: 4.52.5 + rollup-plugin-visualizer: 6.0.5(rollup@4.52.5) scule: 1.3.0 semver: 7.7.3 serve-placeholder: 2.0.2 serve-static: 2.2.0 source-map: 0.7.6 - std-env: 3.9.0 + std-env: 3.10.0 ufo: 1.6.1 ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.4.1 unenv: 2.0.0-rc.21 - unimport: 5.4.1 + unimport: 5.5.0 unplugin-utils: 0.3.1 unstorage: 1.17.1(db0@0.3.4)(ioredis@5.8.1) untyped: 2.0.0 @@ -19257,7 +19258,7 @@ snapshots: node-mock-http@1.0.3: {} - node-releases@2.0.23: {} + node-releases@2.0.25: {} nopt@7.2.1: dependencies: @@ -19429,7 +19430,7 @@ snapshots: package-json@10.0.1: dependencies: - ky: 1.11.0 + ky: 1.12.0 registry-auth-token: 5.1.0 registry-url: 6.0.1 semver: 7.7.3 @@ -19438,7 +19439,7 @@ snapshots: dependencies: quansync: 0.2.11 - package-manager-detector@1.4.0: {} + package-manager-detector@1.5.0: {} pako@2.1.0: {} @@ -19578,11 +19579,11 @@ snapshots: exsolve: 1.0.7 pathe: 2.0.3 - playwright-core@1.56.0: {} + playwright-core@1.56.1: {} - playwright@1.56.0: + playwright@1.56.1: dependencies: - playwright-core: 1.56.0 + playwright-core: 1.56.1 optionalDependencies: fsevents: 2.3.2 @@ -20109,10 +20110,10 @@ snapshots: prr@1.0.1: optional: true - publint@0.3.14: + publint@0.3.15: dependencies: '@publint/pack': 0.1.2 - package-manager-detector: 1.4.0 + package-manager-detector: 1.5.0 picocolors: 1.1.1 sade: 1.8.1 @@ -20124,9 +20125,9 @@ snapshots: dependencies: escape-goat: 4.0.0 - qified@0.5.0: + qified@0.5.1: dependencies: - hookified: 1.12.1 + hookified: 1.12.2 qrcode@1.5.4: dependencies: @@ -20361,62 +20362,62 @@ snapshots: robust-predicates@3.0.2: {} - rollup-plugin-dts@6.2.3(rollup@4.52.4)(typescript@5.9.3): + rollup-plugin-dts@6.2.3(rollup@4.52.5)(typescript@5.9.3): dependencies: magic-string: 0.30.19 - rollup: 4.52.4 + rollup: 4.52.5 typescript: 5.9.3 optionalDependencies: '@babel/code-frame': 7.27.1 - rollup-plugin-visualizer@5.14.0(rollup@4.52.4): + rollup-plugin-visualizer@5.14.0(rollup@4.52.5): dependencies: open: 8.4.2 picomatch: 4.0.3 source-map: 0.7.6 yargs: 17.7.2 optionalDependencies: - rollup: 4.52.4 + rollup: 4.52.5 - rollup-plugin-visualizer@6.0.4(rollup@4.52.4): + rollup-plugin-visualizer@6.0.5(rollup@4.52.5): dependencies: open: 8.4.2 picomatch: 4.0.3 source-map: 0.7.6 yargs: 17.7.2 optionalDependencies: - rollup: 4.52.4 + rollup: 4.52.5 rollup@2.79.2: optionalDependencies: fsevents: 2.3.3 - rollup@4.52.4: + rollup@4.52.5: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.52.4 - '@rollup/rollup-android-arm64': 4.52.4 - '@rollup/rollup-darwin-arm64': 4.52.4 - '@rollup/rollup-darwin-x64': 4.52.4 - '@rollup/rollup-freebsd-arm64': 4.52.4 - '@rollup/rollup-freebsd-x64': 4.52.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.52.4 - '@rollup/rollup-linux-arm-musleabihf': 4.52.4 - '@rollup/rollup-linux-arm64-gnu': 4.52.4 - '@rollup/rollup-linux-arm64-musl': 4.52.4 - '@rollup/rollup-linux-loong64-gnu': 4.52.4 - '@rollup/rollup-linux-ppc64-gnu': 4.52.4 - '@rollup/rollup-linux-riscv64-gnu': 4.52.4 - '@rollup/rollup-linux-riscv64-musl': 4.52.4 - '@rollup/rollup-linux-s390x-gnu': 4.52.4 - '@rollup/rollup-linux-x64-gnu': 4.52.4 - '@rollup/rollup-linux-x64-musl': 4.52.4 - '@rollup/rollup-openharmony-arm64': 4.52.4 - '@rollup/rollup-win32-arm64-msvc': 4.52.4 - '@rollup/rollup-win32-ia32-msvc': 4.52.4 - '@rollup/rollup-win32-x64-gnu': 4.52.4 - '@rollup/rollup-win32-x64-msvc': 4.52.4 + '@rollup/rollup-android-arm-eabi': 4.52.5 + '@rollup/rollup-android-arm64': 4.52.5 + '@rollup/rollup-darwin-arm64': 4.52.5 + '@rollup/rollup-darwin-x64': 4.52.5 + '@rollup/rollup-freebsd-arm64': 4.52.5 + '@rollup/rollup-freebsd-x64': 4.52.5 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 + '@rollup/rollup-linux-arm-musleabihf': 4.52.5 + '@rollup/rollup-linux-arm64-gnu': 4.52.5 + '@rollup/rollup-linux-arm64-musl': 4.52.5 + '@rollup/rollup-linux-loong64-gnu': 4.52.5 + '@rollup/rollup-linux-ppc64-gnu': 4.52.5 + '@rollup/rollup-linux-riscv64-gnu': 4.52.5 + '@rollup/rollup-linux-riscv64-musl': 4.52.5 + '@rollup/rollup-linux-s390x-gnu': 4.52.5 + '@rollup/rollup-linux-x64-gnu': 4.52.5 + '@rollup/rollup-linux-x64-musl': 4.52.5 + '@rollup/rollup-openharmony-arm64': 4.52.5 + '@rollup/rollup-win32-arm64-msvc': 4.52.5 + '@rollup/rollup-win32-ia32-msvc': 4.52.5 + '@rollup/rollup-win32-x64-gnu': 4.52.5 + '@rollup/rollup-win32-x64-msvc': 4.52.5 fsevents: 2.3.3 rotated-array-set@3.0.0: {} @@ -20461,7 +20462,7 @@ snapshots: sass@1.93.2: dependencies: chokidar: 4.0.3 - immutable: 5.1.3 + immutable: 5.1.4 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 @@ -20717,7 +20718,7 @@ snapshots: statuses@2.0.2: {} - std-env@3.9.0: {} + std-env@3.10.0: {} stdin-discarder@0.2.2: {} @@ -20753,7 +20754,7 @@ snapshots: string-width@7.2.0: dependencies: - emoji-regex: 10.5.0 + emoji-regex: 10.6.0 get-east-asian-width: 1.4.0 strip-ansi: 7.1.2 @@ -20849,7 +20850,7 @@ snapshots: stubborn-fs@1.2.5: {} - style-mod@4.1.2: {} + style-mod@4.1.3: {} style-search@0.1.0: {} @@ -21011,7 +21012,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte@5.39.11: + svelte@5.41.1: dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -21256,7 +21257,7 @@ snapshots: type-fest@4.41.0: {} - type-fest@5.0.1: + type-fest@5.1.0: dependencies: tagged-tag: 1.0.0 @@ -21312,12 +21313,12 @@ snapshots: unbuild@3.6.1(sass@1.93.2)(typescript@5.9.3)(vue-tsc@2.2.10(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3)): dependencies: - '@rollup/plugin-alias': 5.1.1(rollup@4.52.4) - '@rollup/plugin-commonjs': 28.0.6(rollup@4.52.4) - '@rollup/plugin-json': 6.1.0(rollup@4.52.4) - '@rollup/plugin-node-resolve': 16.0.3(rollup@4.52.4) - '@rollup/plugin-replace': 6.0.2(rollup@4.52.4) - '@rollup/pluginutils': 5.3.0(rollup@4.52.4) + '@rollup/plugin-alias': 5.1.1(rollup@4.52.5) + '@rollup/plugin-commonjs': 28.0.8(rollup@4.52.5) + '@rollup/plugin-json': 6.1.0(rollup@4.52.5) + '@rollup/plugin-node-resolve': 16.0.3(rollup@4.52.5) + '@rollup/plugin-replace': 6.0.2(rollup@4.52.5) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) citty: 0.1.6 consola: 3.4.2 defu: 6.1.4 @@ -21331,8 +21332,8 @@ snapshots: pathe: 2.0.3 pkg-types: 2.3.0 pretty-bytes: 7.1.0 - rollup: 4.52.4 - rollup-plugin-dts: 6.2.3(rollup@4.52.4)(typescript@5.9.3) + rollup: 4.52.5 + rollup-plugin-dts: 6.2.3(rollup@4.52.5)(typescript@5.9.3) scule: 1.3.0 tinyglobby: 0.2.15 untyped: 2.0.0 @@ -21382,7 +21383,7 @@ snapshots: unicorn-magic@0.3.0: {} - unimport@5.4.1: + unimport@5.5.0: dependencies: acorn: 8.15.0 escape-string-regexp: 5.0.0 @@ -21411,7 +21412,7 @@ snapshots: dependencies: crypto-random-string: 2.0.0 - unist-util-is@6.0.0: + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -21423,16 +21424,16 @@ snapshots: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@6.0.1: + unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 universalify@0.1.2: {} @@ -21578,17 +21579,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-hot-client@2.1.0(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): + vite-hot-client@2.1.0(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) - vite-node@3.2.4(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): + vite-node@3.2.4(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -21603,13 +21604,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -21625,19 +21626,19 @@ snapshots: - yaml optional: true - vite-plugin-compression@0.5.1(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): + vite-plugin-compression@0.5.1(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: chalk: 4.1.2 debug: 4.4.3 fs-extra: 10.1.0 - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color - vite-plugin-dts@4.5.4(@types/node@24.7.2)(rollup@4.52.4)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): + vite-plugin-dts@4.5.4(@types/node@24.8.1)(rollup@4.52.5)(typescript@5.9.3)(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: - '@microsoft/api-extractor': 7.53.1(@types/node@24.7.2) - '@rollup/pluginutils': 5.3.0(rollup@4.52.4) + '@microsoft/api-extractor': 7.53.1(@types/node@24.8.1) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) '@volar/typescript': 2.4.23 '@vue/language-core': 2.2.0(typescript@5.9.3) compare-versions: 6.1.1 @@ -21647,13 +21648,13 @@ snapshots: magic-string: 0.30.19 typescript: 5.9.3 optionalDependencies: - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-html@3.2.2(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): + vite-plugin-html@3.2.2(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: '@rollup/pluginutils': 4.2.1 colorette: 2.0.20 @@ -21667,12 +21668,12 @@ snapshots: html-minifier-terser: 6.1.0 node-html-parser: 5.4.2 pathe: 0.2.0 - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) - vite-plugin-inspect@0.8.9(rollup@4.52.4)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): + vite-plugin-inspect@0.8.9(rollup@4.52.5)(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.3.0(rollup@4.52.4) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) debug: 4.4.3 error-stack-parser-es: 0.1.5 fs-extra: 11.3.2 @@ -21680,57 +21681,57 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.1.1 sirv: 3.0.2 - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - rollup - supports-color vite-plugin-lazy-import@1.0.7: dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.52.4) + '@rollup/pluginutils': 5.3.0(rollup@4.52.5) es-module-lexer: 1.7.0 - rollup: 4.52.4 + rollup: 4.52.5 xe-utils: 3.7.9 - vite-plugin-pwa@1.0.3(vite@5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(workbox-build@7.3.0)(workbox-window@7.3.0): + vite-plugin-pwa@1.1.0(vite@5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(workbox-build@7.3.0)(workbox-window@7.3.0): dependencies: debug: 4.4.3 pretty-bytes: 6.1.1 tinyglobby: 0.2.15 - vite: 5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0) + vite: 5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0) workbox-build: 7.3.0 workbox-window: 7.3.0 transitivePeerDependencies: - supports-color - vite-plugin-pwa@1.0.3(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0): + vite-plugin-pwa@1.1.0(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(workbox-build@7.3.0)(workbox-window@7.3.0): dependencies: debug: 4.4.3 pretty-bytes: 6.1.1 tinyglobby: 0.2.15 - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) workbox-build: 7.3.0 workbox-window: 7.3.0 transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@7.7.7(rollup@4.52.4)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)): + vite-plugin-vue-devtools@7.7.7(rollup@4.52.5)(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)): dependencies: - '@vue/devtools-core': 7.7.7(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) + '@vue/devtools-core': 7.7.7(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 execa: 9.6.0 sirv: 3.0.2 - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) - vite-plugin-inspect: 0.8.9(rollup@4.52.4)(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) - vite-plugin-vue-inspector: 5.3.2(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite-plugin-inspect: 0.8.9(rollup@4.52.5)(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) + vite-plugin-vue-inspector: 5.3.2(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) transitivePeerDependencies: - '@nuxt/kit' - rollup - supports-color - vue - vite-plugin-vue-inspector@5.3.2(vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): + vite-plugin-vue-inspector@5.3.2(vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)): dependencies: '@babel/core': 7.28.4 '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.4) @@ -21741,32 +21742,32 @@ snapshots: '@vue/compiler-dom': 3.5.22 kolorist: 1.8.0 magic-string: 0.30.19 - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color - vite@5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0): + vite@5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0): dependencies: esbuild: 0.25.3 postcss: 8.5.6 - rollup: 4.52.4 + rollup: 4.52.5 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.1 fsevents: 2.3.3 less: 4.4.2 sass: 1.93.2 terser: 5.44.0 - vite@7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): + vite@7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): dependencies: esbuild: 0.25.3 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.52.4 + rollup: 4.52.5 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.18.10 + '@types/node': 22.18.11 fsevents: 2.3.3 jiti: 2.6.1 less: 4.4.2 @@ -21774,16 +21775,16 @@ snapshots: terser: 5.44.0 yaml: 2.8.1 - vite@7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): + vite@7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): dependencies: esbuild: 0.25.3 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.52.4 + rollup: 4.52.5 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.1 fsevents: 2.3.3 jiti: 2.6.1 less: 4.4.2 @@ -21791,26 +21792,26 @@ snapshots: terser: 5.44.0 yaml: 2.8.1 - vitepress-plugin-group-icons@1.6.3(markdown-it@14.1.0)(vite@5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)): + vitepress-plugin-group-icons@1.6.4(markdown-it@14.1.0)(vite@5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)): dependencies: '@iconify-json/logos': 1.2.9 '@iconify-json/vscode-icons': 1.2.32 '@iconify/utils': 3.0.2 markdown-it: 14.1.0 - vite: 5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0) + vite: 5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0) transitivePeerDependencies: - supports-color - vitepress@1.6.4(@algolia/client-search@5.40.0)(@types/node@24.7.2)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3): + vitepress@1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(async-validator@4.2.5)(axios@1.12.2)(less@4.4.2)(nprogress@0.2.0)(postcss@8.5.6)(qrcode@1.5.4)(sass@1.93.2)(search-insights@2.17.3)(sortablejs@1.15.6)(terser@5.44.0)(typescript@5.9.3): dependencies: '@docsearch/css': 3.8.2 - '@docsearch/js': 3.8.2(@algolia/client-search@5.40.0)(search-insights@2.17.3) - '@iconify-json/simple-icons': 1.2.54 + '@docsearch/js': 3.8.2(@algolia/client-search@5.40.1)(search-insights@2.17.3) + '@iconify-json/simple-icons': 1.2.55 '@shikijs/core': 2.5.0 '@shikijs/transformers': 2.5.0 '@shikijs/types': 2.5.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.2.4(vite@5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22(typescript@5.9.3)) + '@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0))(vue@3.5.22(typescript@5.9.3)) '@vue/devtools-api': 7.7.7 '@vue/shared': 3.5.22 '@vueuse/core': 12.8.2(typescript@5.9.3) @@ -21819,7 +21820,7 @@ snapshots: mark.js: 8.11.1 minisearch: 7.2.0 shiki: 2.5.0 - vite: 5.4.20(@types/node@24.7.2)(less@4.4.2)(sass@1.93.2)(terser@5.44.0) + vite: 5.4.21(@types/node@24.8.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0) vue: 3.5.22(typescript@5.9.3) optionalDependencies: postcss: 8.5.6 @@ -21850,11 +21851,11 @@ snapshots: - typescript - universal-cookie - vitest@3.2.4(@types/node@22.18.10)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): + vitest@3.2.4(@types/node@22.18.11)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -21866,17 +21867,17 @@ snapshots: magic-string: 0.30.19 pathe: 2.0.3 picomatch: 4.0.3 - std-env: 3.9.0 + std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.18.10 + '@types/node': 22.18.11 happy-dom: 17.6.3 transitivePeerDependencies: - jiti @@ -21892,11 +21893,11 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/node@24.7.2)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.8.1)(happy-dom@17.6.3)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.9(@types/node@22.18.10)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.11(@types/node@22.18.11)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -21908,17 +21909,17 @@ snapshots: magic-string: 0.30.19 pathe: 2.0.3 picomatch: 4.0.3 - std-env: 3.9.0 + std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.9(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.7.2)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.11(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.8.1)(jiti@2.6.1)(less@4.4.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.8.1 happy-dom: 17.6.3 transitivePeerDependencies: - jiti @@ -21952,13 +21953,13 @@ snapshots: vue-dompurify-html@5.3.0(vue@3.5.22(typescript@5.9.3)): dependencies: - dompurify: 3.2.7 + dompurify: 3.3.0 vue: 3.5.22(typescript@5.9.3) - vue-eslint-parser@10.2.0(eslint@9.37.0(jiti@2.6.1)): + vue-eslint-parser@10.2.0(eslint@9.38.0(jiti@2.6.1)): dependencies: debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.38.0(jiti@2.6.1) eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -21979,7 +21980,7 @@ snapshots: clipboard: 2.0.11 vue: 3.5.22(typescript@5.9.3) - vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)): + vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)): dependencies: '@vue/devtools-api': 6.6.4 vue: 3.5.22(typescript@5.9.3) @@ -22032,15 +22033,15 @@ snapshots: vooks: 0.2.12(vue@3.5.22(typescript@5.9.3)) vue: 3.5.22(typescript@5.9.3) - vxe-pc-ui@4.9.42(vue@3.5.22(typescript@5.9.3)): + vxe-pc-ui@4.10.2(vue@3.5.22(typescript@5.9.3)): dependencies: '@vxe-ui/core': 4.2.12(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - vue - vxe-table@4.16.21(vue@3.5.22(typescript@5.9.3)): + vxe-table@4.17.0(vue@3.5.22(typescript@5.9.3)): dependencies: - vxe-pc-ui: 4.9.42(vue@3.5.22(typescript@5.9.3)) + vxe-pc-ui: 4.10.2(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - vue @@ -22408,4 +22409,4 @@ snapshots: zwitch@2.0.4: {} - zx@8.8.4: {} + zx@8.8.5: {} From 1ad4f2681e2ffbce6f1ac9fb470681b5dac2fa5b Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 21 Oct 2025 11:00:33 +0800 Subject: [PATCH 02/24] =?UTF-8?q?feat=EF=BC=9A=E3=80=90mall=20=E5=95=86?= =?UTF-8?q?=E5=9F=8E=E3=80=91=E5=95=86=E5=93=81=E5=8F=91=E5=B8=83=20-=20?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=BB=B7=E6=A0=BC=20-=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E3=80=90antd=E3=80=91100%:=20=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spu/modules/product-property-add-form.vue | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 apps/web-antd/src/views/mall/product/spu/modules/product-property-add-form.vue diff --git a/apps/web-antd/src/views/mall/product/spu/modules/product-property-add-form.vue b/apps/web-antd/src/views/mall/product/spu/modules/product-property-add-form.vue new file mode 100644 index 000000000..149eea575 --- /dev/null +++ b/apps/web-antd/src/views/mall/product/spu/modules/product-property-add-form.vue @@ -0,0 +1,144 @@ + + + + From 14093bec071d7495db6a73cc989ea9b4e89b243b Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 21 Oct 2025 13:42:52 +0800 Subject: [PATCH 03/24] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=20desc=20?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=9A=84=E6=98=BE=E7=A4=BA=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/description/description.vue | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/web-antd/src/components/description/description.vue b/apps/web-antd/src/components/description/description.vue index 897ba4412..0953d53ee 100644 --- a/apps/web-antd/src/components/description/description.vue +++ b/apps/web-antd/src/components/description/description.vue @@ -7,10 +7,9 @@ import type { DescriptionItemSchema, DescriptionProps } from './typing'; import { computed, defineComponent, ref, toRefs, unref, useAttrs } from 'vue'; -import { ContentWrap } from '@vben/common-ui'; import { get, isFunction } from '@vben/utils'; -import { Descriptions } from 'ant-design-vue'; +import { Card, Descriptions } from 'ant-design-vue'; const props = { bordered: { default: true, type: Boolean }, @@ -171,20 +170,21 @@ export default defineComponent({ const extraSlot = getSlot(slots, 'extra'); return ( - {{ default: () => content, - title: () => ( -
-
{title}
- {extraSlot &&
{extraSlot}
} -
- ), + extra: () => extraSlot &&
{extraSlot}
, }} -
+ ); } From 7f7f7cda2b52c7df819543803e12e82da288a189 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 21 Oct 2025 13:47:52 +0800 Subject: [PATCH 04/24] fix: color: 'auto' => color: 'inherit' --- apps/web-antd/src/views/infra/redis/modules/memory.vue | 2 +- apps/web-ele/src/views/infra/redis/modules/memory.vue | 2 +- apps/web-naive/src/views/infra/redis/modules/memory.vue | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/web-antd/src/views/infra/redis/modules/memory.vue b/apps/web-antd/src/views/infra/redis/modules/memory.vue index 6eeda8958..5220c4631 100644 --- a/apps/web-antd/src/views/infra/redis/modules/memory.vue +++ b/apps/web-antd/src/views/infra/redis/modules/memory.vue @@ -94,7 +94,7 @@ function renderMemoryChart() { detail: { show: true, offsetCenter: [0, '50%'], - color: 'auto', + color: 'inherit', fontSize: 30, formatter: usedMemory, }, diff --git a/apps/web-ele/src/views/infra/redis/modules/memory.vue b/apps/web-ele/src/views/infra/redis/modules/memory.vue index 6eeda8958..5220c4631 100644 --- a/apps/web-ele/src/views/infra/redis/modules/memory.vue +++ b/apps/web-ele/src/views/infra/redis/modules/memory.vue @@ -94,7 +94,7 @@ function renderMemoryChart() { detail: { show: true, offsetCenter: [0, '50%'], - color: 'auto', + color: 'inherit', fontSize: 30, formatter: usedMemory, }, diff --git a/apps/web-naive/src/views/infra/redis/modules/memory.vue b/apps/web-naive/src/views/infra/redis/modules/memory.vue index 6eeda8958..5220c4631 100644 --- a/apps/web-naive/src/views/infra/redis/modules/memory.vue +++ b/apps/web-naive/src/views/infra/redis/modules/memory.vue @@ -94,7 +94,7 @@ function renderMemoryChart() { detail: { show: true, offsetCenter: [0, '50%'], - color: 'auto', + color: 'inherit', fontSize: 30, formatter: usedMemory, }, From e5d69952cbf3d1a928d0f78490cf546df09fb0e3 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 21 Oct 2025 14:34:05 +0800 Subject: [PATCH 05/24] =?UTF-8?q?fix:=20=E7=BB=9F=E4=B8=80=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/@core/base/shared/src/utils/util.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/@core/base/shared/src/utils/util.ts b/packages/@core/base/shared/src/utils/util.ts index ea7ddbedd..47992e2ea 100644 --- a/packages/@core/base/shared/src/utils/util.ts +++ b/packages/@core/base/shared/src/utils/util.ts @@ -48,23 +48,23 @@ export function getNestedValue(obj: T, path: string): any { * @param key 参数键名 * @param urlStr 链接地址,默认为当前浏览器的地址 */ -export const getUrlNumberValue = ( +export function getUrlNumberValue( key: string, urlStr: string = location.href, -): number => { +): number { return Number(getUrlValue(key, urlStr)); -}; +} /** * 获取链接的参数值 * @param key 参数键名 * @param urlStr 链接地址,默认为当前浏览器的地址 */ -export const getUrlValue = ( +export function getUrlValue( key: string, urlStr: string = location.href, -): string => { +): string { if (!urlStr || !key) return ''; const url = new URL(decodeURIComponent(urlStr)); return url.searchParams.get(key) ?? ''; -}; +} From cc4a99c47db9886032f9ab749a9da590d9648d31 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 21 Oct 2025 14:40:20 +0800 Subject: [PATCH 06/24] =?UTF-8?q?feat:=20desc=20=E6=94=AF=E6=8C=81=20?= =?UTF-8?q?=E5=B5=8C=E5=A5=97=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/description/description.vue | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/apps/web-antd/src/components/description/description.vue b/apps/web-antd/src/components/description/description.vue index 0953d53ee..057f9db03 100644 --- a/apps/web-antd/src/components/description/description.vue +++ b/apps/web-antd/src/components/description/description.vue @@ -5,9 +5,9 @@ import type { CSSProperties, PropType, Slots } from 'vue'; import type { DescriptionItemSchema, DescriptionProps } from './typing'; -import { computed, defineComponent, ref, toRefs, unref, useAttrs } from 'vue'; +import { computed, defineComponent, ref, unref, useAttrs } from 'vue'; -import { get, isFunction } from '@vben/utils'; +import { get, getNestedValue, isFunction } from '@vben/utils'; import { Card, Descriptions } from 'ant-design-vue'; @@ -110,15 +110,17 @@ export default defineComponent({ if (!_data) { return null; } - const getField = get(_data, field); - if ( - getField && - !Object.prototype.hasOwnProperty.call(toRefs(_data), field) - ) { - return isFunction(render) ? render!('', _data) : ''; - } + const getField = field.includes('.') + ? (getNestedValue(_data, field) ?? get(_data, field)) + : get(_data, field); + // if ( + // getField && + // !Object.prototype.hasOwnProperty.call(toRefs(_data), field) + // ) { + // return isFunction(render) ? render('', _data) : (getField ?? ''); + // } return isFunction(render) - ? render!(getField, _data) + ? render(getField, _data) : (getField ?? ''); } From 94628d0c563f5ac36a4a0a1ee349ed3599b31708 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 21 Oct 2025 14:41:25 +0800 Subject: [PATCH 07/24] feat: use desc comp --- .../src/views/infra/redis/modules/info.vue | 112 ++++++++++-------- 1 file changed, 63 insertions(+), 49 deletions(-) diff --git a/apps/web-antd/src/views/infra/redis/modules/info.vue b/apps/web-antd/src/views/infra/redis/modules/info.vue index f04907978..c832f1b04 100644 --- a/apps/web-antd/src/views/infra/redis/modules/info.vue +++ b/apps/web-antd/src/views/infra/redis/modules/info.vue @@ -1,60 +1,74 @@ From 18ef9031cab4cdc58d1907f88beebacdc59f4c63 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 21 Oct 2025 15:16:32 +0800 Subject: [PATCH 08/24] refactor: refactor ele desc comp --- .../components/description/description.vue | 219 +++++++++++++----- .../src/components/description/typing.ts | 56 +++-- .../components/description/use-description.ts | 80 ++----- 3 files changed, 211 insertions(+), 144 deletions(-) diff --git a/apps/web-ele/src/components/description/description.vue b/apps/web-ele/src/components/description/description.vue index 0c5a49b36..f4e5c8187 100644 --- a/apps/web-ele/src/components/description/description.vue +++ b/apps/web-ele/src/components/description/description.vue @@ -1,79 +1,170 @@ diff --git a/apps/web-ele/src/components/description/typing.ts b/apps/web-ele/src/components/description/typing.ts index 5a6e64751..9cb6b8b71 100644 --- a/apps/web-ele/src/components/description/typing.ts +++ b/apps/web-ele/src/components/description/typing.ts @@ -1,27 +1,43 @@ -import type { DescriptionProps } from 'element-plus'; +import type { DescriptionProps as ElDescriptionProps } from 'element-plus'; +import type { JSX } from 'vue/jsx-runtime'; import type { CSSProperties, VNode } from 'vue'; -// TODO @puhui999:【content】这个纠结下;1)vben2.0 是 render;https://doc.vvbin.cn/components/desc.html#usage 2) -// TODO @puhui999:vben2.0 还有 sapn【done】、labelMinWidth、contentMinWidth -// TODO @puhui999:【hidden】这个纠结下;1)vben2.0 是 show; +import type { Recordable } from '@vben/types'; + export interface DescriptionItemSchema { - label: string | VNode; // 内容的描述 - field?: string; // 对应 data 中的字段名 - content?: ((data: any) => string | VNode) | string | VNode; // 自定义需要展示的内容,比如说 dict-tag - span?: number; // 包含列的数量 - labelStyle?: CSSProperties; // 自定义标签样式 - contentStyle?: CSSProperties; // 自定义内容样式 - hidden?: ((data: any) => boolean) | boolean; // 是否显示 + labelMinWidth?: number; + contentMinWidth?: number; + // 自定义标签样式 + labelStyle?: CSSProperties; + // 对应 data 中的字段名 + field: string; + // 内容的描述 + label: JSX.Element | string | VNode; + // 包含列的数量 + span?: number; + // 是否显示 + show?: (...arg: any) => boolean; + // 插槽名称 + slot?: string; + // 自定义需要展示的内容 + render?: ( + val: any, + data?: Recordable, + ) => Element | JSX.Element | number | string | undefined | VNode; } -// TODO @puhui999:vben2.0 还有 title【done】、bordered【done】d、useCollapse、collapseOptions -// TODO @puhui999:from 5.0:bordered 默认为 true -// TODO @puhui999:from 5.0:column 默认为 lg: 3, md: 3, sm: 2, xl: 3, xs: 1, xxl: 4 -// TODO @puhui999:from 5.0:size 默认为 small;有 'default', 'middle', 'small', undefined -// TODO @puhui999:from 5.0:useCollapse 默认为 true -export interface DescriptionsOptions { - data?: Record; // 数据 - schema?: DescriptionItemSchema[]; // 描述项配置 - componentProps?: DescriptionProps; // antd Descriptions 组件参数 +export interface DescriptionProps extends ElDescriptionProps { + // 是否包含卡片组件 + useCard?: boolean; + // 描述项配置 + schema: DescriptionItemSchema[]; + // 数据 + data: Recordable; + // 是否包含边框 + bordered?: boolean; +} + +export interface DescInstance { + setDescProps(descProps: Partial): void; } diff --git a/apps/web-ele/src/components/description/use-description.ts b/apps/web-ele/src/components/description/use-description.ts index c131be26a..fd24920f0 100644 --- a/apps/web-ele/src/components/description/use-description.ts +++ b/apps/web-ele/src/components/description/use-description.ts @@ -1,71 +1,31 @@ -import type { DescriptionsOptions } from './typing'; +import type { Component } from 'vue'; -import { defineComponent, h, isReactive, reactive, watch } from 'vue'; +import type { DescInstance, DescriptionProps } from './typing'; + +import { h, reactive } from 'vue'; import Description from './description.vue'; -/** 描述列表 api 定义 */ -class DescriptionApi { - private state = reactive>({}); +export function useDescription(options?: Partial) { + const propsState = reactive>(options || {}); - constructor(options: DescriptionsOptions) { - this.state = { ...options }; - } + const api: DescInstance = { + setDescProps: (descProps: Partial): void => { + Object.assign(propsState, descProps); + }, + }; - getState(): DescriptionsOptions { - return this.state as DescriptionsOptions; - } - - // TODO @puhui999:【setState】纠结下:1)vben2.0 是 data https://doc.vvbin.cn/components/desc.html#usage; - setState(newState: Partial) { - this.state = { ...this.state, ...newState }; - } -} - -export type ExtendedDescriptionApi = DescriptionApi; - -export function useDescription(options: DescriptionsOptions) { - const IS_REACTIVE = isReactive(options); - const api = new DescriptionApi(options); - // 扩展API - const extendedApi: ExtendedDescriptionApi = api as never; - const Desc = defineComponent({ + // 创建一个包装组件,将 propsState 合并到 props 中 + const DescriptionWrapper: Component = { name: 'UseDescription', inheritAttrs: false, - setup(_, { attrs, slots }) { - // 合并props和attrs到state - api.setState({ ...attrs }); - - return () => - h( - Description, - { - ...api.getState(), - ...attrs, - }, - slots, - ); + setup(_props, { attrs, slots }) { + return () => { + // @ts-ignore - 避免类型实例化过深 + return h(Description, { ...propsState, ...attrs }, slots); + }; }, - }); + }; - // 响应式支持 - if (IS_REACTIVE) { - watch( - () => options.schema, - (newSchema) => { - api.setState({ schema: newSchema }); - }, - { immediate: true, deep: true }, - ); - - watch( - () => options.data, - (newData) => { - api.setState({ data: newData }); - }, - { immediate: true, deep: true }, - ); - } - - return [Desc, extendedApi] as const; + return [DescriptionWrapper, api] as const; } From 6ea2082e4b491eaef5f978842e1f4cd528b6bac1 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 21 Oct 2025 15:18:04 +0800 Subject: [PATCH 09/24] =?UTF-8?q?feat=EF=BC=9A=E3=80=90mall=20=E5=95=86?= =?UTF-8?q?=E5=9F=8E=E3=80=91=E5=95=86=E5=93=81=E5=8F=91=E5=B8=83=20-=20?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=BB=B7=E6=A0=BC=E3=80=90antd=E3=80=9130%:?= =?UTF-8?q?=20=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/product/spu/modules/form-data.ts | 70 +- .../views/mall/product/spu/modules/form.vue | 190 +++++- .../views/mall/product/spu/modules/index.ts | 3 +- .../spu/modules/product-property-add-form.vue | 8 + .../mall/product/spu/modules/sku-list.vue | 618 ++++++++++++++++++ 5 files changed, 858 insertions(+), 31 deletions(-) create mode 100644 apps/web-antd/src/views/mall/product/spu/modules/sku-list.vue diff --git a/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts b/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts index ad5cf83e5..905b47f36 100644 --- a/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts +++ b/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts @@ -1,5 +1,7 @@ import type { VbenFormSchema } from '#/adapter/form'; +import { h } from 'vue'; + import { DeliveryTypeEnum, DICT_TYPE } from '@vben/constants'; import { getDictOptions } from '@vben/hooks'; import { handleTree } from '@vben/utils'; @@ -9,6 +11,8 @@ import { getSimpleBrandList } from '#/api/mall/product/brand'; import { getCategoryList } from '#/api/mall/product/category'; import { getSimpleTemplateList } from '#/api/mall/trade/delivery/expressTemplate'; +import SkuList from './sku-list.vue'; + /** 基础设置的表单 */ export function useInfoFormSchema(): VbenFormSchema[] { return [ @@ -104,7 +108,11 @@ export function useInfoFormSchema(): VbenFormSchema[] { } /** 价格库存的表单 */ -export function useSkuFormSchema(): VbenFormSchema[] { +export function useSkuFormSchema( + propertyList: any[] = [], + ruleConfig: any[] = [], + isDetail: boolean = false, +): VbenFormSchema[] { return [ { fieldName: 'id', @@ -152,7 +160,65 @@ export function useSkuFormSchema(): VbenFormSchema[] { }, rules: 'required', }, - // TODO @xingyu:待补充商品属性 + // 单规格时显示的 SkuList + { + fieldName: 'singleSkuList', + label: '', + component: h(SkuList), + componentProps: { + propertyList, + ruleConfig, + }, + dependencies: { + triggerFields: ['specType'], + // 当 specType 为 false(单规格)时显示 + show: (values) => values.specType === false, + }, + }, + // 多规格时显示的商品属性(占位,实际通过插槽渲染) + { + fieldName: 'productAttributes', + label: '商品属性', + component: 'Input', + componentProps: {}, + dependencies: { + triggerFields: ['specType'], + // 当 specType 为 true(多规格)时显示 + show: (values) => values.specType === true, + }, + }, + // 多规格 - 批量设置 + { + fieldName: 'batchSkuList', + label: '批量设置', + component: h(SkuList), + componentProps: { + isBatch: true, + propertyList, + }, + dependencies: { + triggerFields: ['specType'], + // 当 specType 为 true(多规格)且 propertyList 有数据时显示,且非详情模式 + show: (values) => + values.specType === true && propertyList.length > 0 && !isDetail, + }, + }, + // 多规格 - 规格列表 + { + fieldName: 'multiSkuList', + label: '规格列表', + component: h(SkuList), + componentProps: { + propertyList, + ruleConfig, + isDetail, + }, + dependencies: { + triggerFields: ['specType'], + // 当 specType 为 true(多规格)且 propertyList 有数据时显示 + show: (values) => values.specType === true && propertyList.length > 0, + }, + }, ]; } diff --git a/apps/web-antd/src/views/mall/product/spu/modules/form.vue b/apps/web-antd/src/views/mall/product/spu/modules/form.vue index 3cfb43dab..8a395feac 100644 --- a/apps/web-antd/src/views/mall/product/spu/modules/form.vue +++ b/apps/web-antd/src/views/mall/product/spu/modules/form.vue @@ -1,11 +1,13 @@ diff --git a/apps/web-ele/src/views/pay/order/data.ts b/apps/web-ele/src/views/pay/order/data.ts index 259137ef4..ff55e09f6 100644 --- a/apps/web-ele/src/views/pay/order/data.ts +++ b/apps/web-ele/src/views/pay/order/data.ts @@ -1,6 +1,5 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { PayOrderApi } from '#/api/pay/order'; import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; @@ -184,53 +183,46 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'status', label: '支付状态', - content: (data: any) => + render: (val) => h(DictTag, { type: DICT_TYPE.PAY_ORDER_STATUS, - value: data?.status, + value: val, }), }, { field: 'price', label: '支付金额', - content: (data: PayOrderApi.Order) => - `¥${erpPriceInputFormatter(data?.price)}`, + render: (val) => `¥${erpPriceInputFormatter(val)}`, }, { field: 'channelFeePrice', label: '手续费', - content: (data: PayOrderApi.Order) => - `¥${erpPriceInputFormatter(data?.channelFeePrice)}`, + render: (val) => `¥${erpPriceInputFormatter(val)}`, }, { field: 'channelFeeRate', label: '手续费比例', - content: (data: PayOrderApi.Order) => - `${erpPriceInputFormatter(data?.channelFeeRate)}%`, + render: (val) => `${erpPriceInputFormatter(val)}%`, }, { field: 'successTime', label: '支付时间', - content: (data: PayOrderApi.Order) => - formatDateTime(data?.successTime) as string, + render: (val) => formatDateTime(val) as string, }, { field: 'expireTime', label: '失效时间', - content: (data: PayOrderApi.Order) => - formatDateTime(data?.expireTime) as string, + render: (val) => formatDateTime(val) as string, }, { field: 'createTime', label: '创建时间', - content: (data: PayOrderApi.Order) => - formatDateTime(data?.createTime) as string, + render: (val) => formatDateTime(val) as string, }, { field: 'updateTime', label: '更新时间', - content: (data: PayOrderApi.Order) => - formatDateTime(data?.updateTime) as string, + render: (val) => formatDateTime(val) as string, }, { field: 'subject', @@ -243,10 +235,10 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'channelCode', label: '支付渠道', - content: (data: PayOrderApi.Order) => + render: (val) => h(DictTag, { type: DICT_TYPE.PAY_CHANNEL_CODE, - value: data?.channelCode, + value: val, }), }, { @@ -256,10 +248,7 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'channelOrderNo', label: '渠道单号', - content: (data: PayOrderApi.Order) => - data?.channelOrderNo - ? h(ElTag, { color: 'green' }, () => data.channelOrderNo) - : '', + render: (val) => (val ? h(ElTag, { color: 'green' }, () => val) : ''), }, { field: 'channelUserId', @@ -268,8 +257,7 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'refundPrice', label: '退款金额', - content: (data: PayOrderApi.Order) => - `¥${erpPriceInputFormatter(data?.refundPrice)}`, + render: (val) => `¥${erpPriceInputFormatter(val)}`, }, { field: 'notifyUrl', diff --git a/apps/web-ele/src/views/pay/order/modules/detail.vue b/apps/web-ele/src/views/pay/order/modules/detail.vue index 7f52112ee..4072e4e45 100644 --- a/apps/web-ele/src/views/pay/order/modules/detail.vue +++ b/apps/web-ele/src/views/pay/order/modules/detail.vue @@ -13,14 +13,8 @@ import { useDetailSchema } from '../data'; const formData = ref(); const [Descriptions] = useDescription({ - componentProps: { - border: true, - column: 2, - direction: 'horizontal', - labelWidth: 140, - title: '', - extra: '', - }, + column: 2, + labelWidth: 140, schema: useDetailSchema(), }); diff --git a/apps/web-ele/src/views/pay/refund/data.ts b/apps/web-ele/src/views/pay/refund/data.ts index db140679f..8e1afd615 100644 --- a/apps/web-ele/src/views/pay/refund/data.ts +++ b/apps/web-ele/src/views/pay/refund/data.ts @@ -1,6 +1,5 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { PayRefundApi } from '#/api/pay/refund'; import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; @@ -173,26 +172,22 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'merchantRefundId', label: '商户退款单号', - content: (data: PayRefundApi.Refund) => - h(ElTag, {}, () => data?.merchantRefundId || '-'), + render: (val) => h(ElTag, {}, () => val || '-'), }, { field: 'channelRefundNo', label: '渠道退款单号', - content: (data: PayRefundApi.Refund) => - h(ElTag, { type: 'success' }, () => data?.channelRefundNo || '-'), + render: (val) => h(ElTag, { type: 'success' }, () => val || '-'), }, { field: 'merchantOrderId', label: '商户支付单号', - content: (data: PayRefundApi.Refund) => - h(ElTag, {}, () => data?.merchantOrderId || '-'), + render: (val) => h(ElTag, {}, () => val || '-'), }, { field: 'channelOrderNo', label: '渠道支付单号', - content: (data: PayRefundApi.Refund) => - h(ElTag, { type: 'success' }, () => data?.channelOrderNo || '-'), + render: (val) => h(ElTag, { type: 'success' }, () => val || '-'), }, { field: 'appId', @@ -205,58 +200,55 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'payPrice', label: '支付金额', - content: (data: PayRefundApi.Refund) => + render: (val) => h( ElTag, { type: 'success' }, - () => `¥${erpPriceInputFormatter(data?.payPrice || 0)}`, + () => `¥${erpPriceInputFormatter(val || 0)}`, ), }, { field: 'refundPrice', label: '退款金额', - content: (data: PayRefundApi.Refund) => + render: (val) => h( ElTag, { type: 'danger' }, - () => `¥${erpPriceInputFormatter(data?.refundPrice || 0)}`, + () => `¥${erpPriceInputFormatter(val || 0)}`, ), }, { field: 'status', label: '退款状态', - content: (data: any) => + render: (val) => h(DictTag, { type: DICT_TYPE.PAY_REFUND_STATUS, - value: data?.status, + value: val, }), }, { field: 'successTime', label: '退款时间', - content: (data: PayRefundApi.Refund) => - formatDateTime(data?.successTime) as string, + render: (val) => formatDateTime(val) as string, }, { field: 'createTime', label: '创建时间', - content: (data: PayRefundApi.Refund) => - formatDateTime(data?.createTime) as string, + render: (val) => formatDateTime(val) as string, }, { field: 'updateTime', label: '更新时间', - content: (data: PayRefundApi.Refund) => - formatDateTime(data?.updateTime) as string, + render: (val) => formatDateTime(val) as string, }, // 渠道信息部分 { field: 'channelCode', label: '退款渠道', - content: (data: PayRefundApi.Refund) => + render: (val) => h(DictTag, { type: DICT_TYPE.PAY_CHANNEL_CODE, - value: data?.channelCode, + value: val, }), }, { diff --git a/apps/web-ele/src/views/pay/refund/modules/detail.vue b/apps/web-ele/src/views/pay/refund/modules/detail.vue index 1f3e380cb..7b02d9889 100644 --- a/apps/web-ele/src/views/pay/refund/modules/detail.vue +++ b/apps/web-ele/src/views/pay/refund/modules/detail.vue @@ -13,14 +13,8 @@ import { useDetailSchema } from '../data'; const formData = ref(); const [Descriptions] = useDescription({ - componentProps: { - border: true, - column: 2, - direction: 'horizontal', - labelWidth: 140, - title: '', - extra: '', - }, + column: 2, + labelWidth: 140, schema: useDetailSchema(), }); diff --git a/apps/web-ele/src/views/pay/transfer/data.ts b/apps/web-ele/src/views/pay/transfer/data.ts index 3ddbb0ea4..0e3b1a04c 100644 --- a/apps/web-ele/src/views/pay/transfer/data.ts +++ b/apps/web-ele/src/views/pay/transfer/data.ts @@ -1,6 +1,5 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { PayTransferApi } from '#/api/pay/transfer'; import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; @@ -191,14 +190,12 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'merchantTransferId', label: '商户单号', - content: (data: PayTransferApi.Transfer) => - h(ElTag, {}, () => data?.merchantTransferId), + render: (val) => h(ElTag, {}, () => val), }, { field: 'no', label: '转账单号', - content: (data: PayTransferApi.Transfer) => - h(ElTag, { color: 'orange' }, () => data?.no), + render: (val) => h(ElTag, { color: 'orange' }, () => val), }, { field: 'appId', @@ -207,33 +204,31 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'status', label: '转账状态', - content: (data: any) => + render: (val) => h(DictTag, { type: DICT_TYPE.PAY_TRANSFER_STATUS, - value: data?.status, + value: val, }), }, { field: 'price', label: '转账金额', - content: (data: PayTransferApi.Transfer) => + render: (val) => h( ElTag, { color: 'success' }, - () => `¥${erpPriceInputFormatter(data?.price || 0)}`, + () => `¥${erpPriceInputFormatter(val || 0)}`, ), }, { field: 'successTime', label: '转账时间', - content: (data: PayTransferApi.Transfer) => - formatDateTime(data?.successTime) as string, + render: (val) => formatDateTime(val) as string, }, { field: 'createTime', label: '创建时间', - content: (data: PayTransferApi.Transfer) => - formatDateTime(data?.createTime) as string, + render: (val) => formatDateTime(val) as string, }, { field: 'userName', @@ -246,10 +241,10 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'channelCode', label: '支付渠道', - content: (data: PayTransferApi.Transfer) => + render: (val) => h(DictTag, { type: DICT_TYPE.PAY_CHANNEL_CODE, - value: data?.channelCode, + value: val, }), }, { @@ -259,10 +254,7 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'channelTransferNo', label: '渠道单号', - content: (data: PayTransferApi.Transfer) => - data?.channelTransferNo - ? h(ElTag, { color: 'success' }, () => data.channelTransferNo) - : '', + render: (val) => (val ? h(ElTag, { color: 'success' }, () => val) : ''), }, { field: 'notifyUrl', diff --git a/apps/web-ele/src/views/pay/transfer/modules/detail.vue b/apps/web-ele/src/views/pay/transfer/modules/detail.vue index 301f7aea1..deb23fabf 100644 --- a/apps/web-ele/src/views/pay/transfer/modules/detail.vue +++ b/apps/web-ele/src/views/pay/transfer/modules/detail.vue @@ -13,14 +13,8 @@ import { useDetailSchema } from '../data'; const formData = ref(); const [Descriptions] = useDescription({ - componentProps: { - border: true, - column: 2, - direction: 'horizontal', - labelWidth: 140, - title: '', - extra: '', - }, + column: 2, + labelWidth: 140, schema: useDetailSchema(), }); diff --git a/apps/web-ele/src/views/system/loginlog/data.ts b/apps/web-ele/src/views/system/loginlog/data.ts index e30d26076..2be5cdf1c 100644 --- a/apps/web-ele/src/views/system/loginlog/data.ts +++ b/apps/web-ele/src/views/system/loginlog/data.ts @@ -1,6 +1,5 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { SystemLoginLogApi } from '#/api/system/login-log'; import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; @@ -110,10 +109,10 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'logType', label: '操作类型', - content: (data: SystemLoginLogApi.LoginLog) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.SYSTEM_LOGIN_TYPE, - value: data?.logType, + value: val, }); }, }, @@ -132,19 +131,17 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'result', label: '登录结果', - content: (data: SystemLoginLogApi.LoginLog) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.SYSTEM_LOGIN_RESULT, - value: data?.result, + value: val, }); }, }, { field: 'createTime', label: '登录日期', - content: (data: SystemLoginLogApi.LoginLog) => { - return formatDateTime(data?.createTime || '') as string; - }, + render: (val) => formatDateTime(val) as string, }, ]; } diff --git a/apps/web-ele/src/views/system/loginlog/modules/detail.vue b/apps/web-ele/src/views/system/loginlog/modules/detail.vue index 17b0a2f61..773069b9f 100644 --- a/apps/web-ele/src/views/system/loginlog/modules/detail.vue +++ b/apps/web-ele/src/views/system/loginlog/modules/detail.vue @@ -12,14 +12,8 @@ import { useDetailSchema } from '../data'; const formData = ref(); const [Descriptions] = useDescription({ - componentProps: { - border: true, - column: 1, - direction: 'horizontal', - labelWidth: 110, - title: '', - extra: '', - }, + column: 1, + labelWidth: 110, schema: useDetailSchema(), }); diff --git a/apps/web-ele/src/views/system/mail/log/data.ts b/apps/web-ele/src/views/system/mail/log/data.ts index 660760750..0eefc0087 100644 --- a/apps/web-ele/src/views/system/mail/log/data.ts +++ b/apps/web-ele/src/views/system/mail/log/data.ts @@ -1,6 +1,5 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { SystemMailLogApi } from '#/api/system/mail/log'; import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; @@ -164,9 +163,7 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'createTime', label: '创建时间', - content: (data: SystemMailLogApi.MailLog) => { - return formatDateTime(data?.createTime || '') as string; - }, + render: (val) => formatDateTime(val) as string, }, { field: 'fromMail', @@ -175,14 +172,14 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'userId', label: '接收用户', - content: (data: SystemMailLogApi.MailLog) => { - if (data?.userType && data?.userId) { + render: (val, data) => { + if (data?.userType && val) { return h('div', [ h(DictTag, { type: DICT_TYPE.USER_TYPE, value: data.userType, }), - ` (${data.userId})`, + ` (${val})`, ]); } return '无'; @@ -191,10 +188,10 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'toMails', label: '接收信息', - content: (data: SystemMailLogApi.MailLog) => { + render: (val, data) => { const lines: string[] = []; - if (data?.toMails && data.toMails.length > 0) { - lines.push(`收件:${data.toMails.join('、')}`); + if (val && val.length > 0) { + lines.push(`收件:${val.join('、')}`); } if (data?.ccMails && data.ccMails.length > 0) { lines.push(`抄送:${data.ccMails.join('、')}`); @@ -227,28 +224,26 @@ export function useDetailSchema(): DescriptionItemSchema[] { field: 'templateContent', label: '邮件内容', span: 2, - content: (data: SystemMailLogApi.MailLog) => { + render: (val) => { return h('div', { - innerHTML: data?.templateContent || '', + innerHTML: val || '', }); }, }, { field: 'sendStatus', label: '发送状态', - content: (data: SystemMailLogApi.MailLog) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.SYSTEM_MAIL_SEND_STATUS, - value: data?.sendStatus, + value: val, }); }, }, { field: 'sendTime', label: '发送时间', - content: (data: SystemMailLogApi.MailLog) => { - return formatDateTime(data?.sendTime || '') as string; - }, + render: (val) => formatDateTime(val) as string, }, { field: 'sendMessageId', diff --git a/apps/web-ele/src/views/system/mail/log/modules/detail.vue b/apps/web-ele/src/views/system/mail/log/modules/detail.vue index c177f4adf..e70243d8b 100644 --- a/apps/web-ele/src/views/system/mail/log/modules/detail.vue +++ b/apps/web-ele/src/views/system/mail/log/modules/detail.vue @@ -12,14 +12,8 @@ import { useDetailSchema } from '../data'; const formData = ref(); const [Descriptions] = useDescription({ - componentProps: { - border: true, - column: 2, - direction: 'horizontal', - labelWidth: 140, - title: '', - extra: '', - }, + column: 2, + labelWidth: 140, schema: useDetailSchema(), }); diff --git a/apps/web-ele/src/views/system/notify/message/data.ts b/apps/web-ele/src/views/system/notify/message/data.ts index 5954d8989..c786ee144 100644 --- a/apps/web-ele/src/views/system/notify/message/data.ts +++ b/apps/web-ele/src/views/system/notify/message/data.ts @@ -1,6 +1,5 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { SystemNotifyMessageApi } from '#/api/system/notify/message'; import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; @@ -166,10 +165,10 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'userType', label: '用户类型', - content: (data: SystemNotifyMessageApi.NotifyMessage) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.USER_TYPE, - value: data?.userType, + value: val, }); }, }, @@ -196,9 +195,9 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'templateParams', label: '模版参数', - content: (data: SystemNotifyMessageApi.NotifyMessage) => { + render: (val) => { try { - return JSON.stringify(data?.templateParams); + return JSON.stringify(val); } catch { return ''; } @@ -207,36 +206,32 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'templateType', label: '模版类型', - content: (data: SystemNotifyMessageApi.NotifyMessage) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.SYSTEM_NOTIFY_TEMPLATE_TYPE, - value: data?.templateType, + value: val, }); }, }, { field: 'readStatus', label: '是否已读', - content: (data: SystemNotifyMessageApi.NotifyMessage) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.INFRA_BOOLEAN_STRING, - value: data?.readStatus, + value: val, }); }, }, { field: 'readTime', label: '阅读时间', - content: (data: SystemNotifyMessageApi.NotifyMessage) => { - return formatDateTime(data?.readTime || '') as string; - }, + render: (val) => formatDateTime(val) as string, }, { field: 'createTime', label: '创建时间', - content: (data: SystemNotifyMessageApi.NotifyMessage) => { - return formatDateTime(data?.createTime || '') as string; - }, + render: (val) => formatDateTime(val) as string, }, ]; } diff --git a/apps/web-ele/src/views/system/notify/message/modules/detail.vue b/apps/web-ele/src/views/system/notify/message/modules/detail.vue index dda2cdffd..8d9385ab9 100644 --- a/apps/web-ele/src/views/system/notify/message/modules/detail.vue +++ b/apps/web-ele/src/views/system/notify/message/modules/detail.vue @@ -12,14 +12,8 @@ import { useDetailSchema } from '../data'; const formData = ref(); const [Descriptions] = useDescription({ - componentProps: { - border: true, - column: 1, - direction: 'horizontal', - labelWidth: 140, - title: '', - extra: '', - }, + column: 1, + labelWidth: 140, schema: useDetailSchema(), }); diff --git a/apps/web-ele/src/views/system/notify/my/data.ts b/apps/web-ele/src/views/system/notify/my/data.ts index f57aa9294..21f051d6d 100644 --- a/apps/web-ele/src/views/system/notify/my/data.ts +++ b/apps/web-ele/src/views/system/notify/my/data.ts @@ -1,6 +1,5 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { SystemNotifyMessageApi } from '#/api/system/notify/message'; import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; @@ -103,36 +102,32 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'createTime', label: '发送时间', - content: (data: SystemNotifyMessageApi.NotifyMessage) => { - return formatDateTime(data?.createTime || '') as string; - }, + render: (val) => formatDateTime(val) as string, }, { field: 'templateType', label: '消息类型', - content: (data: SystemNotifyMessageApi.NotifyMessage) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.SYSTEM_NOTIFY_TEMPLATE_TYPE, - value: data?.templateType, + value: val, }); }, }, { field: 'readStatus', label: '是否已读', - content: (data: SystemNotifyMessageApi.NotifyMessage) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.INFRA_BOOLEAN_STRING, - value: data?.readStatus, + value: val, }); }, }, { field: 'readTime', label: '阅读时间', - content: (data: SystemNotifyMessageApi.NotifyMessage) => { - return formatDateTime(data?.readTime || '') as string; - }, + render: (val) => formatDateTime(val) as string, }, { field: 'templateContent', diff --git a/apps/web-ele/src/views/system/notify/my/modules/detail.vue b/apps/web-ele/src/views/system/notify/my/modules/detail.vue index dda2cdffd..8d9385ab9 100644 --- a/apps/web-ele/src/views/system/notify/my/modules/detail.vue +++ b/apps/web-ele/src/views/system/notify/my/modules/detail.vue @@ -12,14 +12,8 @@ import { useDetailSchema } from '../data'; const formData = ref(); const [Descriptions] = useDescription({ - componentProps: { - border: true, - column: 1, - direction: 'horizontal', - labelWidth: 140, - title: '', - extra: '', - }, + column: 1, + labelWidth: 140, schema: useDetailSchema(), }); diff --git a/apps/web-ele/src/views/system/operatelog/data.ts b/apps/web-ele/src/views/system/operatelog/data.ts index 93d054b98..731f79a5b 100644 --- a/apps/web-ele/src/views/system/operatelog/data.ts +++ b/apps/web-ele/src/views/system/operatelog/data.ts @@ -1,6 +1,5 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { SystemOperateLogApi } from '#/api/system/operate-log'; import type { DescriptionItemSchema } from '#/components/description'; import { formatDateTime } from '@vben/utils'; @@ -134,7 +133,7 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'traceId', label: '链路追踪', - hidden: (data: SystemOperateLogApi.OperateLog) => !data?.traceId, + show: (val) => !val, }, { field: 'userId', @@ -167,13 +166,14 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'extra', label: '操作拓展参数', - hidden: (data: SystemOperateLogApi.OperateLog) => !data?.extra, + show: (val) => !val, }, { label: '请求 URL', - content: (data: SystemOperateLogApi.OperateLog) => { - if (data?.requestMethod && data?.requestUrl) { - return `${data.requestMethod} ${data.requestUrl}`; + field: 'requestUrl', + render: (val, data) => { + if (data?.requestMethod && val) { + return `${data.requestMethod} ${val}`; } return ''; }, @@ -181,9 +181,7 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'createTime', label: '操作时间', - content: (data: SystemOperateLogApi.OperateLog) => { - return formatDateTime(data?.createTime || '') as string; - }, + render: (val) => formatDateTime(val) as string, }, { field: 'bizId', diff --git a/apps/web-ele/src/views/system/operatelog/modules/detail.vue b/apps/web-ele/src/views/system/operatelog/modules/detail.vue index 890674b3c..cf892c0f1 100644 --- a/apps/web-ele/src/views/system/operatelog/modules/detail.vue +++ b/apps/web-ele/src/views/system/operatelog/modules/detail.vue @@ -12,14 +12,9 @@ import { useDetailSchema } from '../data'; const formData = ref(); const [Descriptions] = useDescription({ - componentProps: { - border: true, - column: 1, - direction: 'horizontal', - labelWidth: 110, - title: '', - extra: '', - }, + column: 1, + direction: 'horizontal', + labelWidth: 110, schema: useDetailSchema(), }); diff --git a/apps/web-ele/src/views/system/sms/log/data.ts b/apps/web-ele/src/views/system/sms/log/data.ts index 77c606d5f..3657516b6 100644 --- a/apps/web-ele/src/views/system/sms/log/data.ts +++ b/apps/web-ele/src/views/system/sms/log/data.ts @@ -1,6 +1,5 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { SystemSmsLogApi } from '#/api/system/sms/log'; import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; @@ -179,9 +178,7 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'createTime', label: '创建时间', - content: (data: SystemSmsLogApi.SmsLog) => { - return formatDateTime(data?.createTime || '') as string; - }, + render: (val) => formatDateTime(val) as string, }, { field: 'mobile', @@ -198,10 +195,10 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'templateType', label: '模板类型', - content: (data: SystemSmsLogApi.SmsLog) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.SYSTEM_SMS_TEMPLATE_TYPE, - value: data?.templateType, + value: val, }); }, }, @@ -212,19 +209,17 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'sendStatus', label: '发送状态', - content: (data: SystemSmsLogApi.SmsLog) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.SYSTEM_SMS_SEND_STATUS, - value: data?.sendStatus, + value: val, }); }, }, { field: 'sendTime', label: '发送时间', - content: (data: SystemSmsLogApi.SmsLog) => { - return formatDateTime(data?.sendTime || '') as string; - }, + render: (val) => formatDateTime(val) as string, }, { field: 'apiSendCode', @@ -237,19 +232,17 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'receiveStatus', label: '接收状态', - content: (data: SystemSmsLogApi.SmsLog) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.SYSTEM_SMS_RECEIVE_STATUS, - value: data?.receiveStatus, + value: val, }); }, }, { field: 'receiveTime', label: '接收时间', - content: (data: SystemSmsLogApi.SmsLog) => { - return formatDateTime(data?.receiveTime || '') as string; - }, + render: (val) => formatDateTime(val) as string, }, { field: 'apiReceiveCode', diff --git a/apps/web-ele/src/views/system/sms/log/modules/detail.vue b/apps/web-ele/src/views/system/sms/log/modules/detail.vue index 622efdb8f..4fcd48df9 100644 --- a/apps/web-ele/src/views/system/sms/log/modules/detail.vue +++ b/apps/web-ele/src/views/system/sms/log/modules/detail.vue @@ -12,14 +12,9 @@ import { useDetailSchema } from '../data'; const formData = ref(); const [Descriptions] = useDescription({ - componentProps: { - border: true, - column: 2, - direction: 'horizontal', - labelWidth: 140, - title: '', - extra: '', - }, + column: 2, + direction: 'horizontal', + labelWidth: 140, schema: useDetailSchema(), }); diff --git a/apps/web-ele/src/views/system/social/user/data.ts b/apps/web-ele/src/views/system/social/user/data.ts index b3db14baf..77847d0a0 100644 --- a/apps/web-ele/src/views/system/social/user/data.ts +++ b/apps/web-ele/src/views/system/social/user/data.ts @@ -1,6 +1,5 @@ import type { VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { SystemSocialUserApi } from '#/api/system/social/user'; import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; @@ -8,6 +7,8 @@ import { h } from 'vue'; import { DICT_TYPE } from '@vben/constants'; import { getDictOptions } from '@vben/hooks'; +import { ElImage } from 'element-plus'; + import { DictTag } from '#/components/dict-tag'; import { getRangePickerDefaultProps } from '#/utils'; @@ -111,10 +112,10 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'type', label: '社交平台', - content: (data: SystemSocialUserApi.SocialUser) => { + render: (val) => { return h(DictTag, { type: DICT_TYPE.SYSTEM_SOCIAL_TYPE, - value: data?.type, + value: val, }); }, }, @@ -125,16 +126,13 @@ export function useDetailSchema(): DescriptionItemSchema[] { { field: 'avatar', label: '用户头像', - // TODO @芋艿:使用 antd 的 Image 组件 - content: (data: SystemSocialUserApi.SocialUser) => { - if (data?.avatar) { - return h('img', { - src: data.avatar, - style: 'width: 30px; height: 30px; cursor: pointer;', - onClick: () => { - // 可以添加图片预览功能 - window.open(data.avatar, '_blank'); - }, + render: (val) => { + if (val) { + return h(ElImage, { + src: val, + previewSrcList: [val], + class: 'w-10 h-10 cursor-pointer', + previewTeleported: true, }); } return '无'; diff --git a/apps/web-ele/src/views/system/social/user/modules/detail.vue b/apps/web-ele/src/views/system/social/user/modules/detail.vue index aa9caec0a..ffae89ce5 100644 --- a/apps/web-ele/src/views/system/social/user/modules/detail.vue +++ b/apps/web-ele/src/views/system/social/user/modules/detail.vue @@ -14,14 +14,8 @@ import { useDetailSchema } from '../data'; const formData = ref(); const [Descriptions] = useDescription({ - componentProps: { - border: true, - column: 1, - direction: 'horizontal', - title: '', - extra: '', - labelWidth: 185, - }, + column: 1, + labelWidth: 185, schema: useDetailSchema(), }); From 93149876e533155739f3ce8029caa66861b56a2c Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 21 Oct 2025 16:10:49 +0800 Subject: [PATCH 11/24] =?UTF-8?q?feat=EF=BC=9A=E3=80=90mall=20=E5=95=86?= =?UTF-8?q?=E5=9F=8E=E3=80=91=E5=95=86=E5=93=81=E5=8F=91=E5=B8=83=20-=20?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=BB=B7=E6=A0=BC=E3=80=90antd=E3=80=9180%:?= =?UTF-8?q?=20=E5=AE=8C=E5=96=84=20sku=20form=20=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/product/spu/modules/form-data.ts | 27 +---- .../views/mall/product/spu/modules/form.vue | 109 ++++++++++++++---- .../spu/modules/product-property-add-form.vue | 7 +- .../mall/product/spu/modules/sku-list.vue | 7 +- 4 files changed, 97 insertions(+), 53 deletions(-) diff --git a/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts b/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts index 905b47f36..d845be3e5 100644 --- a/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts +++ b/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts @@ -1,7 +1,5 @@ import type { VbenFormSchema } from '#/adapter/form'; -import { h } from 'vue'; - import { DeliveryTypeEnum, DICT_TYPE } from '@vben/constants'; import { getDictOptions } from '@vben/hooks'; import { handleTree } from '@vben/utils'; @@ -11,8 +9,6 @@ import { getSimpleBrandList } from '#/api/mall/product/brand'; import { getCategoryList } from '#/api/mall/product/category'; import { getSimpleTemplateList } from '#/api/mall/trade/delivery/expressTemplate'; -import SkuList from './sku-list.vue'; - /** 基础设置的表单 */ export function useInfoFormSchema(): VbenFormSchema[] { return [ @@ -110,7 +106,6 @@ export function useInfoFormSchema(): VbenFormSchema[] { /** 价格库存的表单 */ export function useSkuFormSchema( propertyList: any[] = [], - ruleConfig: any[] = [], isDetail: boolean = false, ): VbenFormSchema[] { return [ @@ -164,11 +159,8 @@ export function useSkuFormSchema( { fieldName: 'singleSkuList', label: '', - component: h(SkuList), - componentProps: { - propertyList, - ruleConfig, - }, + component: 'Input', + componentProps: {}, dependencies: { triggerFields: ['specType'], // 当 specType 为 false(单规格)时显示 @@ -191,11 +183,8 @@ export function useSkuFormSchema( { fieldName: 'batchSkuList', label: '批量设置', - component: h(SkuList), - componentProps: { - isBatch: true, - propertyList, - }, + component: 'Input', + componentProps: {}, dependencies: { triggerFields: ['specType'], // 当 specType 为 true(多规格)且 propertyList 有数据时显示,且非详情模式 @@ -207,12 +196,8 @@ export function useSkuFormSchema( { fieldName: 'multiSkuList', label: '规格列表', - component: h(SkuList), - componentProps: { - propertyList, - ruleConfig, - isDetail, - }, + component: 'Input', + componentProps: {}, dependencies: { triggerFields: ['specType'], // 当 specType 为 true(多规格)且 propertyList 有数据时显示 diff --git a/apps/web-antd/src/views/mall/product/spu/modules/form.vue b/apps/web-antd/src/views/mall/product/spu/modules/form.vue index 8a395feac..59713104f 100644 --- a/apps/web-antd/src/views/mall/product/spu/modules/form.vue +++ b/apps/web-antd/src/views/mall/product/spu/modules/form.vue @@ -3,7 +3,7 @@ import type { PropertyAndValues, RuleConfig } from './index'; import type { MallSpuApi } from '#/api/mall/product/spu'; -import { computed, onMounted, ref, watch } from 'vue'; +import { onMounted, ref, watch } from 'vue'; import { useRoute } from 'vue-router'; import { ContentWrap, Page, useVbenModal } from '@vben/common-ui'; @@ -24,6 +24,7 @@ import { import { getPropertyList } from './index'; import ProductAttributes from './product-attributes.vue'; import ProductPropertyAddForm from './product-property-add-form.vue'; +import SkuList from './sku-list.vue'; const spuId = ref(); const { params, name } = useRoute(); @@ -63,6 +64,7 @@ const formData = ref({ const propertyList = ref([]); // 商品属性列表 const formLoading = ref(false); // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 const isDetail = ref(false); // 是否查看详情 +const skuListRef = ref(); // 商品属性列表 Ref // sku 相关属性校验规则 const ruleConfig: RuleConfig[] = [ @@ -88,15 +90,6 @@ const ruleConfig: RuleConfig[] = [ }, ]; -// 动态生成 sku form schema -const skuFormSchema = computed(() => { - return useSkuFormSchema( - propertyList.value, - ruleConfig, - isDetail.value || false, - ); -}); - const [InfoForm, infoFormApi] = useVbenForm({ commonConfig: { componentProps: { @@ -119,8 +112,18 @@ const [SkuForm, skuFormApi] = useVbenForm({ labelWidth: 120, }, layout: 'horizontal', - schema: skuFormSchema.value, + schema: useSkuFormSchema(propertyList.value, isDetail.value), showDefaultActions: false, + handleValuesChange: (values, fieldsChanged) => { + if (fieldsChanged.includes('subCommissionType')) { + formData.value.subCommissionType = values.subCommissionType; + changeSubCommissionType(); + } + if (fieldsChanged.includes('specType')) { + formData.value.specType = values.specType; + onChangeSpec(); + } + }, }); const [ProductPropertyAddFormModal, productPropertyAddFormApi] = useVbenModal({ @@ -227,11 +230,8 @@ const getDetail = async () => { } }); formData.value = res; - // 将 SKU 的属性,整理成 PropertyAndValues 数组 - propertyList.value = getPropertyList(res); // 初始化各表单值(异步) infoFormApi.setValues(res); - // 特殊处理 SpuSkuFormData skuFormApi.setValues(res); deliveryFormApi.setValues(res); descriptionFormApi.setValues(res); @@ -240,18 +240,58 @@ const getDetail = async () => { formLoading.value = false; } } + // 将 SKU 的属性,整理成 PropertyAndValues 数组 + propertyList.value = getPropertyList(formData.value); }; +// =========== sku form 逻辑 =========== + +function openPropertyAddForm() { + productPropertyAddFormApi.open(); +} + /** 调用 SkuList generateTableData 方法*/ const generateSkus = (propertyList: any[]) => { - // skuListRef.value.generateTableData(propertyList) + skuListRef.value.generateTableData(propertyList); +}; + +/** 分销类型 */ +const changeSubCommissionType = () => { + // 默认为零,类型切换后也要重置为零 + for (const item of formData.value.skus!) { + item.firstBrokeragePrice = 0; + item.secondBrokeragePrice = 0; + } +}; + +/** 选择规格 */ +const onChangeSpec = () => { + // 重置商品属性列表 + propertyList.value = []; + // 重置sku列表 + formData.value.skus = [ + { + price: 0, + marketPrice: 0, + costPrice: 0, + barCode: '', + picUrl: '', + stock: 0, + weight: 0, + volume: 0, + firstBrokeragePrice: 0, + secondBrokeragePrice: 0, + }, + ]; }; // 监听 sku form schema 变化,更新表单 watch( - skuFormSchema, - (newSchema) => { - skuFormApi.updateSchema(newSchema); + propertyList, + () => { + skuFormApi.updateSchema( + useSkuFormSchema(propertyList.value, isDetail.value), + ); }, { deep: true }, ); @@ -266,7 +306,7 @@ onMounted(async () => { @@ -563,8 +553,7 @@ defineExpose({ generateTableData, validateSku, getSkuTableRef }); diff --git a/packages/@core/base/shared/src/utils/util.ts b/packages/@core/base/shared/src/utils/util.ts index ea7ddbedd..fd202ed50 100644 --- a/packages/@core/base/shared/src/utils/util.ts +++ b/packages/@core/base/shared/src/utils/util.ts @@ -68,3 +68,22 @@ export const getUrlValue = ( const url = new URL(decodeURIComponent(urlStr)); return url.searchParams.get(key) ?? ''; }; + +/** + * 将值复制到目标对象,且以目标对象属性为准,例:target: {a:1} source:{a:2,b:3} 结果为:{a:2} + * @param target 目标对象 + * @param source 源对象 + */ +export const copyValueToTarget = (target: any, source: any) => { + const newObj = Object.assign({}, target, source); + // 删除多余属性 + Object.keys(newObj).forEach((key) => { + // 如果不是target中的属性则删除 + if (!Object.keys(target).includes(key)) { + // eslint-disable-next-line @typescript-eslint/no-dynamic-delete + delete newObj[key]; + } + }); + // 更新目标对象值 + Object.assign(target, newObj); +}; From 38d345115cc0fed66f34f08579a81b03c8b1fc98 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 21 Oct 2025 16:49:31 +0800 Subject: [PATCH 17/24] =?UTF-8?q?feat=EF=BC=9A=E3=80=90mall=20=E5=95=86?= =?UTF-8?q?=E5=9F=8E=E3=80=91=E5=95=86=E5=93=81=E5=8F=91=E5=B8=83=20-=20?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=BB=B7=E6=A0=BC=E3=80=90antd=E3=80=91100%:?= =?UTF-8?q?=20=E8=BF=81=E7=A7=BB=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/mall/product/spu/modules/form.vue | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/web-antd/src/views/mall/product/spu/modules/form.vue b/apps/web-antd/src/views/mall/product/spu/modules/form.vue index 59713104f..e3b5e05de 100644 --- a/apps/web-antd/src/views/mall/product/spu/modules/form.vue +++ b/apps/web-antd/src/views/mall/product/spu/modules/form.vue @@ -9,7 +9,7 @@ import { useRoute } from 'vue-router'; import { ContentWrap, Page, useVbenModal } from '@vben/common-ui'; import { convertToInteger, floatToFixed2, formatToFraction } from '@vben/utils'; -import { Button, Tabs } from 'ant-design-vue'; +import { Button, message, Tabs } from 'ant-design-vue'; import { useVbenForm } from '#/adapter/form'; import { createSpu, getSpu, updateSpu } from '#/api/mall/product/spu'; @@ -177,8 +177,15 @@ async function onSubmit() { .merge(descriptionFormApi) .merge(otherFormApi) .submitAllForm(true); - + values.skus = formData.value.skus; if (values.skus) { + try { + // 校验 sku + skuListRef.value.validateSku(); + } catch { + message.error('【库存价格】不完善,请填写相关信息'); + return; + } values.skus.forEach((item) => { // sku相关价格元转分 item.price = convertToInteger(item.price); From 65e9aeed7f6182ba2efca140d88851d434c73da1 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 21 Oct 2025 17:18:06 +0800 Subject: [PATCH 18/24] =?UTF-8?q?feat=EF=BC=9A=E3=80=90mall=20=E5=95=86?= =?UTF-8?q?=E5=9F=8E=E3=80=91SKU=20=E9=80=89=E6=8B=A9=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E3=80=90antd=E3=80=91100%:=20=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spu/modules/product-property-add-form.vue | 2 +- .../product/spu/modules/sku-table-select.vue | 146 ++++++++++++++++++ 2 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 apps/web-antd/src/views/mall/product/spu/modules/sku-table-select.vue diff --git a/apps/web-antd/src/views/mall/product/spu/modules/product-property-add-form.vue b/apps/web-antd/src/views/mall/product/spu/modules/product-property-add-form.vue index f98f0d4ef..c0e5db0f2 100644 --- a/apps/web-antd/src/views/mall/product/spu/modules/product-property-add-form.vue +++ b/apps/web-antd/src/views/mall/product/spu/modules/product-property-add-form.vue @@ -87,7 +87,7 @@ const [Form, formApi] = useVbenForm({ // 初始化弹窗 const [Modal, modalApi] = useVbenModal({ - destroyOnClose: true, // 关键:关闭时销毁弹窗,确保每次打开都是全新状态 + destroyOnClose: true, async onConfirm() { const { valid } = await formApi.validate(); if (!valid) return; diff --git a/apps/web-antd/src/views/mall/product/spu/modules/sku-table-select.vue b/apps/web-antd/src/views/mall/product/spu/modules/sku-table-select.vue new file mode 100644 index 000000000..cb66cf28c --- /dev/null +++ b/apps/web-antd/src/views/mall/product/spu/modules/sku-table-select.vue @@ -0,0 +1,146 @@ + + + + From 5203b991de13e0825b014d05a11dffe2dd1619d5 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 21 Oct 2025 17:42:02 +0800 Subject: [PATCH 19/24] feat: add i18n --- .../components/conversation/ConversationList.vue | 3 ++- .../detail/modules/operation-button.vue | 13 +++++++------ .../iot/device/device/modules/DeviceImportForm.vue | 5 +++-- .../src/views/mall/product/comment/index.vue | 2 +- apps/web-antd/src/views/mall/product/spu/index.vue | 2 +- .../mall/product/spu/modules/product-attributes.vue | 6 +++--- .../views/mall/promotion/seckill/config/index.vue | 2 +- .../mall/statistics/trade/modules/trend-card.vue | 2 +- .../src/views/mall/product/comment/index.vue | 2 +- apps/web-ele/src/views/mall/product/spu/index.vue | 2 +- .../views/mall/promotion/seckill/config/index.vue | 2 +- .../statistics/product/modules/summary-card.vue | 2 +- .../mall/statistics/trade/modules/trend-card.vue | 9 ++++++--- 13 files changed, 29 insertions(+), 23 deletions(-) diff --git a/apps/web-antd/src/views/ai/chat/index/components/conversation/ConversationList.vue b/apps/web-antd/src/views/ai/chat/index/components/conversation/ConversationList.vue index 08348f79c..c0f79bebb 100644 --- a/apps/web-antd/src/views/ai/chat/index/components/conversation/ConversationList.vue +++ b/apps/web-antd/src/views/ai/chat/index/components/conversation/ConversationList.vue @@ -17,6 +17,7 @@ import { getChatConversationMyList, updateChatConversationMy, } from '#/api/ai/chat/conversation'; +import { $t } from '#/locales'; import RoleRepository from '../role/RoleRepository.vue'; @@ -249,7 +250,7 @@ async function handleClearConversation() { try { await confirm('确认后对话会全部清空,置顶的对话除外。'); await deleteChatConversationMyByUnpinned(); - message.success('操作成功!'); + message.success($t('ui.actionMessage.operationSuccess')); // 清空 对话 和 对话内容 activeConversationId.value = null; // 获取 对话列表 diff --git a/apps/web-antd/src/views/bpm/processInstance/detail/modules/operation-button.vue b/apps/web-antd/src/views/bpm/processInstance/detail/modules/operation-button.vue index 11205ce7e..4a3b704e6 100644 --- a/apps/web-antd/src/views/bpm/processInstance/detail/modules/operation-button.vue +++ b/apps/web-antd/src/views/bpm/processInstance/detail/modules/operation-button.vue @@ -44,6 +44,7 @@ import { import * as TaskApi from '#/api/bpm/task'; import * as UserApi from '#/api/system/user'; import { setConfAndFields2 } from '#/components/form-create'; +import { $t } from '#/locales'; import Signature from './signature.vue'; import ProcessInstanceTimeline from './time-line.vue'; @@ -426,7 +427,7 @@ async function handleCopy() { await TaskApi.copyTask(data); copyFormRef.value.resetFields(); popOverVisible.value.copy = false; - message.success('操作成功'); + message.success($t('ui.actionMessage.operationSuccess')); } finally { formLoading.value = false; } @@ -448,7 +449,7 @@ async function handleTransfer() { await TaskApi.transferTask(data); transferFormRef.value.resetFields(); popOverVisible.value.transfer = false; - message.success('操作成功'); + message.success($t('ui.actionMessage.operationSuccess')); // 2. 加载最新数据 reload(); } finally { @@ -473,7 +474,7 @@ async function handleDelegate() { await TaskApi.delegateTask(data); popOverVisible.value.delegate = false; delegateFormRef.value.resetFields(); - message.success('操作成功'); + message.success($t('ui.actionMessage.operationSuccess')); // 2. 加载最新数据 reload(); } finally { @@ -496,7 +497,7 @@ async function handlerAddSign(type: string) { userIds: addSignForm.addSignUserIds, }; await TaskApi.signCreateTask(data); - message.success('操作成功'); + message.success($t('ui.actionMessage.operationSuccess')); addSignFormRef.value.resetFields(); popOverVisible.value.addSign = false; // 2 加载最新数据 @@ -523,7 +524,7 @@ async function handleReturn() { await TaskApi.returnTask(data); popOverVisible.value.return = false; returnFormRef.value.resetFields(); - message.success('操作成功'); + message.success($t('ui.actionMessage.operationSuccess')); // 2 重新加载数据 reload(); } finally { @@ -544,7 +545,7 @@ async function handleCancel() { cancelForm.cancelReason, ); popOverVisible.value.return = false; - message.success('操作成功'); + message.success($t('ui.actionMessage.operationSuccess')); cancelFormRef.value.resetFields(); // 2 重新加载数据 reload(); diff --git a/apps/web-antd/src/views/iot/device/device/modules/DeviceImportForm.vue b/apps/web-antd/src/views/iot/device/device/modules/DeviceImportForm.vue index 04d674a5e..c891708a5 100644 --- a/apps/web-antd/src/views/iot/device/device/modules/DeviceImportForm.vue +++ b/apps/web-antd/src/views/iot/device/device/modules/DeviceImportForm.vue @@ -7,6 +7,7 @@ import { downloadFileFromBlobPart } from '@vben/utils'; import { message } from 'ant-design-vue'; import { importDeviceTemplate } from '#/api/iot/device/device'; +import { $t } from '#/locales'; import { useImportFormSchema } from '../data'; @@ -64,7 +65,7 @@ const [Modal, modalApi] = useVbenModal({ const result = await response.json(); if (result.code !== 0) { - message.error(result.msg || '导入失败'); + message.error(result.msg || $t('ui.actionMessage.operationFailed')); return; } @@ -94,7 +95,7 @@ const [Modal, modalApi] = useVbenModal({ await modalApi.close(); emit('success'); } catch (error: any) { - message.error(error.message || '导入失败'); + message.error(error.message || $t('ui.actionMessage.operationFailed')); } finally { modalApi.unlock(); } diff --git a/apps/web-antd/src/views/mall/product/comment/index.vue b/apps/web-antd/src/views/mall/product/comment/index.vue index cbae411d4..c9311af7d 100644 --- a/apps/web-antd/src/views/mall/product/comment/index.vue +++ b/apps/web-antd/src/views/mall/product/comment/index.vue @@ -79,7 +79,7 @@ async function handleStatusChange( message.success(`${text}成功`); resolve(true); } else { - reject(new Error('操作失败')); + reject(new Error($t('ui.actionMessage.operationFailed'))); } }) .catch(() => { diff --git a/apps/web-antd/src/views/mall/product/spu/index.vue b/apps/web-antd/src/views/mall/product/spu/index.vue index 2d24ef471..0fb793718 100644 --- a/apps/web-antd/src/views/mall/product/spu/index.vue +++ b/apps/web-antd/src/views/mall/product/spu/index.vue @@ -155,7 +155,7 @@ async function handleStatusChange( message.success(`${text}成功`); resolve(true); } else { - reject(new Error('操作失败')); + reject(new Error($t('ui.actionMessage.operationFailed'))); } }) .catch(() => { diff --git a/apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue b/apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue index f54bf3c51..89786800f 100644 --- a/apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue +++ b/apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue @@ -97,7 +97,7 @@ const showInput = async (index: number) => { const handleInputConfirm = async (index: number, propertyId: number) => { // 从数组中取最后一个输入的值(tags 模式下 inputValue 是数组) const currentValue = inputValue.value?.[inputValue.value.length - 1]?.trim(); - + if (currentValue) { // 1. 重复添加校验 if ( @@ -136,10 +136,10 @@ const handleInputConfirm = async (index: number, propertyId: number) => { id, name: currentValue, }); - message.success($t('common.createSuccess')); + message.success($t('ui.actionMessage.operationSuccess')); emit('success', attributeList.value); } catch { - message.error('添加失败,请重试'); + message.error($t('ui.actionMessage.operationFailed')); } } attributeIndex.value = null; diff --git a/apps/web-antd/src/views/mall/promotion/seckill/config/index.vue b/apps/web-antd/src/views/mall/promotion/seckill/config/index.vue index c598fdcff..185162a8a 100644 --- a/apps/web-antd/src/views/mall/promotion/seckill/config/index.vue +++ b/apps/web-antd/src/views/mall/promotion/seckill/config/index.vue @@ -73,7 +73,7 @@ async function handleStatusChange( message.success(`${text}成功`); resolve(true); } else { - reject(new Error('操作失败')); + reject(new Error($t('ui.actionMessage.operationFailed'))); } }) .catch(() => { diff --git a/apps/web-antd/src/views/mall/statistics/trade/modules/trend-card.vue b/apps/web-antd/src/views/mall/statistics/trade/modules/trend-card.vue index 47c5afc1a..78117cde7 100644 --- a/apps/web-antd/src/views/mall/statistics/trade/modules/trend-card.vue +++ b/apps/web-antd/src/views/mall/statistics/trade/modules/trend-card.vue @@ -125,7 +125,7 @@ async function handleExport() { - 导出 + {{ $t('page.action.export') }} diff --git a/apps/web-ele/src/views/mall/product/comment/index.vue b/apps/web-ele/src/views/mall/product/comment/index.vue index 7d37b78e9..3297dd47a 100644 --- a/apps/web-ele/src/views/mall/product/comment/index.vue +++ b/apps/web-ele/src/views/mall/product/comment/index.vue @@ -80,7 +80,7 @@ async function handleStatusChange( ElMessage.success(`${text}成功`); resolve(true); } else { - reject(new Error('操作失败')); + reject(new Error($t('ui.actionMessage.operationFailed'))); } }) .catch(() => { diff --git a/apps/web-ele/src/views/mall/product/spu/index.vue b/apps/web-ele/src/views/mall/product/spu/index.vue index 6ed935273..101fb3b2a 100644 --- a/apps/web-ele/src/views/mall/product/spu/index.vue +++ b/apps/web-ele/src/views/mall/product/spu/index.vue @@ -145,7 +145,7 @@ async function handleStatusChange( ElMessage.success(`${text}成功`); resolve(true); } else { - reject(new Error('操作失败')); + reject(new Error($t('ui.actionMessage.operationFailed'))); } }) .catch(() => { diff --git a/apps/web-ele/src/views/mall/promotion/seckill/config/index.vue b/apps/web-ele/src/views/mall/promotion/seckill/config/index.vue index de69c864e..3cd551129 100644 --- a/apps/web-ele/src/views/mall/promotion/seckill/config/index.vue +++ b/apps/web-ele/src/views/mall/promotion/seckill/config/index.vue @@ -70,7 +70,7 @@ async function handleStatusChange( ElMessage.success(`${text}成功`); resolve(true); } else { - reject(new Error('操作失败')); + reject(new Error($t('ui.actionMessage.operationFailed'))); } }) .catch(() => { diff --git a/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue b/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue index 5cdfac208..38b174e81 100644 --- a/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue +++ b/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue @@ -133,7 +133,7 @@ async function handleExport() { - 导出 + {{ $t('page.action.export') }} diff --git a/apps/web-ele/src/views/mall/statistics/trade/modules/trend-card.vue b/apps/web-ele/src/views/mall/statistics/trade/modules/trend-card.vue index 1c6090858..0e5df93a5 100644 --- a/apps/web-ele/src/views/mall/statistics/trade/modules/trend-card.vue +++ b/apps/web-ele/src/views/mall/statistics/trade/modules/trend-card.vue @@ -18,8 +18,8 @@ import { isSameDay, } from '@vben/utils'; -import { ElButton, ElCard, ElCol, ElRow } from 'element-plus'; import dayjs from 'dayjs'; +import { ElButton, ElCard, ElCol, ElRow } from 'element-plus'; import * as TradeStatisticsApi from '#/api/mall/statistics/trade'; import ShortcutDateRangePicker from '#/components/shortcut-date-range-picker/shortcut-date-range-picker.vue'; @@ -123,7 +123,11 @@ async function handleExport() {
- + @@ -279,4 +283,3 @@ async function handleExport() {
- From 80545f973acaa09dce3720896c113b9230d6c811 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 21 Oct 2025 17:45:43 +0800 Subject: [PATCH 20/24] fix: lint --- packages/@core/base/shared/src/utils/util.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@core/base/shared/src/utils/util.ts b/packages/@core/base/shared/src/utils/util.ts index 1bb980ef0..abb4242e0 100644 --- a/packages/@core/base/shared/src/utils/util.ts +++ b/packages/@core/base/shared/src/utils/util.ts @@ -67,7 +67,7 @@ export function getUrlValue( if (!urlStr || !key) return ''; const url = new URL(decodeURIComponent(urlStr)); return url.searchParams.get(key) ?? ''; -}; +} /** * 将值复制到目标对象,且以目标对象属性为准,例:target: {a:1} source:{a:2,b:3} 结果为:{a:2} From 9ab51a137cd2eb699c7699f6a9da0be44272824b Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Tue, 21 Oct 2025 17:55:23 +0800 Subject: [PATCH 21/24] fix: sku list --- .../mall/product/spu/modules/form-data.ts | 4 - .../views/mall/product/spu/modules/form.vue | 122 ++-- .../views/mall/product/spu/modules/index.ts | 4 +- .../spu/modules/product-attributes.vue | 24 +- .../spu/modules/product-property-add-form.vue | 2 +- .../mall/product/spu/modules/sku-list.vue | 606 +++++++++--------- .../product/spu/modules/sku-table-select.vue | 16 +- 7 files changed, 388 insertions(+), 390 deletions(-) diff --git a/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts b/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts index 3ad1cd4ff..8596a610d 100644 --- a/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts +++ b/apps/web-antd/src/views/mall/product/spu/modules/form-data.ts @@ -160,7 +160,6 @@ export function useSkuFormSchema( fieldName: 'singleSkuList', label: '', component: 'Input', - componentProps: {}, dependencies: { triggerFields: ['specType'], // 当 specType 为 false(单规格)时显示 @@ -172,7 +171,6 @@ export function useSkuFormSchema( fieldName: 'productAttributes', label: '商品属性', component: 'Input', - componentProps: {}, dependencies: { triggerFields: ['specType'], // 当 specType 为 true(多规格)时显示 @@ -184,7 +182,6 @@ export function useSkuFormSchema( fieldName: 'batchSkuList', label: '批量设置', component: 'Input', - componentProps: {}, dependencies: { triggerFields: ['specType'], // 当 specType 为 true(多规格)且 propertyList 有数据时显示,且非详情模式 @@ -197,7 +194,6 @@ export function useSkuFormSchema( fieldName: 'multiSkuList', label: '规格列表', component: 'Input', - componentProps: {}, dependencies: { triggerFields: ['specType'], // 当 specType 为 true(多规格)且 propertyList 有数据时显示 diff --git a/apps/web-antd/src/views/mall/product/spu/modules/form.vue b/apps/web-antd/src/views/mall/product/spu/modules/form.vue index e3b5e05de..9c24e85aa 100644 --- a/apps/web-antd/src/views/mall/product/spu/modules/form.vue +++ b/apps/web-antd/src/views/mall/product/spu/modules/form.vue @@ -313,67 +313,69 @@ onMounted(async () => { diff --git a/apps/web-antd/src/views/mall/product/spu/modules/index.ts b/apps/web-antd/src/views/mall/product/spu/modules/index.ts index a14d1838e..7c7c72d4d 100644 --- a/apps/web-antd/src/views/mall/product/spu/modules/index.ts +++ b/apps/web-antd/src/views/mall/product/spu/modules/index.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-non-null-assertion */ import type { MallSpuApi } from '#/api/mall/product/spu'; export interface PropertyAndValues { @@ -39,9 +40,7 @@ const getPropertyList = (spu: MallSpuApi.Spu): PropertyAndValues[] => { // 添加属性 if (!properties?.some((item) => item.id === propertyId)) { properties.push({ - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion id: propertyId!, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion name: propertyName!, values: [], }); @@ -51,7 +50,6 @@ const getPropertyList = (spu: MallSpuApi.Spu): PropertyAndValues[] => { if ( !properties[index]?.values?.some((value) => value.id === valueId) ) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion properties[index]?.values?.push({ id: valueId!, name: valueName! }); } }, diff --git a/apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue b/apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue index 89786800f..efa59431d 100644 --- a/apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue +++ b/apps/web-antd/src/views/mall/product/spu/modules/product-attributes.vue @@ -48,7 +48,7 @@ interface InputRefItem { const inputRef = ref([]); // 标签输入框Ref /** 解决 ref 在 v-for 中的获取问题*/ -const setInputRef = (el: any) => { +function setInputRef(el: any) { if (el === null || el === undefined) return; // 如果不存在 id 相同的元素才添加 if ( @@ -58,7 +58,7 @@ const setInputRef = (el: any) => { ) { inputRef.value.push(el); } -}; +} const attributeList = ref([]); // 商品属性列表 const attributeOptions = ref([]); // 商品属性值下拉框 @@ -75,26 +75,26 @@ watch( ); /** 删除属性值*/ -const handleCloseValue = (index: number, valueIndex: number) => { +function handleCloseValue(index: number, valueIndex: number) { attributeList.value?.[index]?.values?.splice(valueIndex, 1); -}; +} /** 删除属性*/ -const handleCloseProperty = (index: number) => { +function handleCloseProperty(index: number) { attributeList.value?.splice(index, 1); emit('success', attributeList.value); -}; +} /** 显示输入框并获取焦点 */ -const showInput = async (index: number) => { +async function showInput(index: number) { attributeIndex.value = index; inputRef.value?.[index]?.focus(); // 获取属性下拉选项 await getAttributeOptions(attributeList.value?.[index]?.id!); -}; +} // 定义 success 事件,用于操作成功后的回调 -const handleInputConfirm = async (index: number, propertyId: number) => { +async function handleInputConfirm(index: number, propertyId: number) { // 从数组中取最后一个输入的值(tags 模式下 inputValue 是数组) const currentValue = inputValue.value?.[inputValue.value.length - 1]?.trim(); @@ -144,12 +144,12 @@ const handleInputConfirm = async (index: number, propertyId: number) => { } attributeIndex.value = null; inputValue.value = []; -}; +} /** 获取商品属性下拉选项 */ -const getAttributeOptions = async (propertyId: number) => { +async function getAttributeOptions(propertyId: number) { attributeOptions.value = await getPropertyValueSimpleList(propertyId); -}; +}