From 90ae85317c758cd95dd0d50ae6bfea7b5c28ae47 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 12:33:23 +0800 Subject: [PATCH 01/39] chore: engines node --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index af2b49b6c..43531f182 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "vue-tsc": "catalog:" }, "engines": { - "node": ">=20.19.0", + "node": "^20.19.0 || ^22.13.0 || ^24.0.0", "pnpm": ">=10.0.0" }, "packageManager": "pnpm@10.32.1" From 1f0cda8aee5604586c63e4adb9a0474dc2e7628d Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 12:35:42 +0800 Subject: [PATCH 02/39] chore: update deps --- pnpm-lock.yaml | 73 +++++++++++++++++++++++++-------------------- pnpm-workspace.yaml | 4 +-- 2 files changed, 42 insertions(+), 35 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4854ae19e..a0670725e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -145,8 +145,8 @@ catalogs: specifier: ^4.2.6 version: 4.2.6 antdv-next: - specifier: ^1.1.3 - version: 1.1.3 + specifier: ^1.1.4 + version: 1.1.4 archiver: specifier: ^7.0.1 version: 7.0.1 @@ -379,8 +379,8 @@ catalogs: specifier: ^40.0.0 version: 40.0.0 stylelint-order: - specifier: ^8.1.0 - version: 8.1.0 + specifier: ^8.1.1 + version: 8.1.1 stylelint-scss: specifier: ^7.0.0 version: 7.0.0 @@ -729,7 +729,7 @@ importers: version: 14.2.1(vue@3.5.30(typescript@5.9.3)) antdv-next: specifier: 'catalog:' - version: 1.1.3(date-fns@4.1.0)(vue@3.5.30(typescript@5.9.3)) + version: 1.1.4(date-fns@4.1.0)(vue@3.5.30(typescript@5.9.3)) dayjs: specifier: 'catalog:' version: 1.11.20 @@ -1089,7 +1089,7 @@ importers: version: 5.0.1(stylelint@17.4.0(typescript@5.9.3)) stylelint-config-recess-order: specifier: 'catalog:' - version: 7.6.1(stylelint-order@8.1.0(stylelint@17.4.0(typescript@5.9.3)))(stylelint@17.4.0(typescript@5.9.3)) + version: 7.6.1(stylelint-order@8.1.1(stylelint@17.4.0(typescript@5.9.3)))(stylelint@17.4.0(typescript@5.9.3)) stylelint-scss: specifier: 'catalog:' version: 7.0.0(stylelint@17.4.0(typescript@5.9.3)) @@ -1120,7 +1120,7 @@ importers: version: 40.0.0(stylelint@17.4.0(typescript@5.9.3)) stylelint-order: specifier: 'catalog:' - version: 8.1.0(stylelint@17.4.0(typescript@5.9.3)) + version: 8.1.1(stylelint@17.4.0(typescript@5.9.3)) internal/node-utils: dependencies: @@ -3140,8 +3140,13 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.1.0': - resolution: {integrity: sha512-H4tuz2nhWgNKLt1inYpoVCfbJbMwX/lQKp3g69rrrIMIYlFD9+zTykOKhNR8uGrAmbS/kT9n6hTFkmDkxLgeTA==} + '@csstools/css-syntax-patches-for-csstree@1.1.1': + resolution: {integrity: sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==} + peerDependencies: + css-tree: ^3.2.1 + peerDependenciesMeta: + css-tree: + optional: true '@csstools/css-tokenizer@4.0.0': resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} @@ -5868,8 +5873,8 @@ packages: peerDependencies: vue: ^3.5.30 - antdv-next@1.1.3: - resolution: {integrity: sha512-ziS77lHL/EdiF6klFzo63WXWWF9SOMFwh1ZJWXpBvhY9RIpNFOau+BZKw+/HUHXF103bHSC0t7LWueMzm5BrIg==} + antdv-next@1.1.4: + resolution: {integrity: sha512-05I8Iha+r2rZ12JwDBIi3XkeDv6r97LOgU0Num0Xbefsb5l0nZUsizJ/SZRFwT1pcAWa9K59aCy6HeirB2sNJg==} anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} @@ -6051,8 +6056,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.7: - resolution: {integrity: sha512-1ghYO3HnxGec0TCGBXiDLVns4eCSx4zJpxnHrlqFQajmhfKMQBzUGDdkMK7fUW7PTHTeLf+j87aTuKuuwWzMGw==} + baseline-browser-mapping@2.10.8: + resolution: {integrity: sha512-PCLz/LXGBsNTErbtB6i5u4eLpHeMfi93aUv5duMmj6caNu6IphS4q6UevDnL36sZQv9lrP11dbPKGMaXPwMKfQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -6172,8 +6177,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001778: - resolution: {integrity: sha512-PN7uxFL+ExFJO61aVmP1aIEG4i9whQd4eoSCebav62UwDyp5OHh06zN4jqKSMePVgxHifCw1QJxdRkA1Pisekg==} + caniuse-lite@1.0.30001779: + resolution: {integrity: sha512-U5og2PN7V4DMgF50YPNtnZJGWVLFjjsN3zb6uMT5VGYIewieDj1upwfuVNXf4Kor+89c3iCRJnSzMD5LmTvsfA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -10254,8 +10259,8 @@ packages: peerDependencies: stylelint: ^17.0.0 - stylelint-order@8.1.0: - resolution: {integrity: sha512-ao2+VzToCqbAVGaEYEeSR2zNurvQx+86Kw1d0//kZDx3zlyjvb24dE4J0e4HQgOTruOwZpfaHHRtK58+lrsTAQ==} + stylelint-order@8.1.1: + resolution: {integrity: sha512-LqsEB6VggJuu5v10RtkrQsBObcdwBE7GuAOlwfc/LR3VL/w8UqKX2BOLIjhyGt0Gne/njo7gRNGiJAKhfmPMNw==} engines: {node: '>=20.19.0'} peerDependencies: stylelint: ^16.18.0 || ^17.0.0 @@ -10585,8 +10590,8 @@ packages: undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - undici@7.24.2: - resolution: {integrity: sha512-P9J1HWYV/ajFr8uCqk5QixwiRKmB1wOamgS0e+o2Z4A44Ej2+thFVRLG/eA7qprx88XXhnV5Bl8LHXTURpzB3Q==} + undici@7.24.3: + resolution: {integrity: sha512-eJdUmK/Wrx2d+mnWWmwwLRyA7OQCkLap60sk3dOK4ViZR7DKwwptwuIvFBg2HaiP9ESaEdhtpSymQPvytpmkCA==} engines: {node: '>=20.18.1'} unenv@2.0.0-rc.24: @@ -12828,7 +12833,9 @@ snapshots: dependencies: '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.1.0': {} + '@csstools/css-syntax-patches-for-csstree@1.1.1(css-tree@3.2.1)': + optionalDependencies: + css-tree: 3.2.1 '@csstools/css-tokenizer@4.0.0': {} @@ -15326,7 +15333,7 @@ snapshots: vue-types: 3.0.2(vue@3.5.30(typescript@5.9.3)) warning: 4.0.3 - antdv-next@1.1.3(date-fns@4.1.0)(vue@3.5.30(typescript@5.9.3)): + antdv-next@1.1.4(date-fns@4.1.0)(vue@3.5.30(typescript@5.9.3)): dependencies: '@ant-design/colors': 7.2.1 '@ant-design/fast-color': 3.0.1 @@ -15481,7 +15488,7 @@ snapshots: autoprefixer@10.4.27(postcss@8.5.8): dependencies: browserslist: 4.28.1 - caniuse-lite: 1.0.30001778 + caniuse-lite: 1.0.30001779 fraction.js: 5.3.4 picocolors: 1.1.1 postcss: 8.5.8 @@ -15570,7 +15577,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.10.7: {} + baseline-browser-mapping@2.10.8: {} better-path-resolve@1.0.0: dependencies: @@ -15616,8 +15623,8 @@ snapshots: browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.10.7 - caniuse-lite: 1.0.30001778 + baseline-browser-mapping: 2.10.8 + caniuse-lite: 1.0.30001779 electron-to-chromium: 1.5.313 node-releases: 2.0.36 update-browserslist-db: 1.2.3(browserslist@4.28.1) @@ -15715,11 +15722,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.28.1 - caniuse-lite: 1.0.30001778 + caniuse-lite: 1.0.30001779 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001778: {} + caniuse-lite@1.0.30001779: {} ccount@2.0.1: {} @@ -15764,7 +15771,7 @@ snapshots: parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 parse5-parser-stream: 7.1.2 - undici: 7.24.2 + undici: 7.24.3 whatwg-mimetype: 4.0.0 chokidar@4.0.3: @@ -20092,10 +20099,10 @@ snapshots: postcss-html: 1.8.1 stylelint: 17.4.0(typescript@5.9.3) - stylelint-config-recess-order@7.6.1(stylelint-order@8.1.0(stylelint@17.4.0(typescript@5.9.3)))(stylelint@17.4.0(typescript@5.9.3)): + stylelint-config-recess-order@7.6.1(stylelint-order@8.1.1(stylelint@17.4.0(typescript@5.9.3)))(stylelint@17.4.0(typescript@5.9.3)): dependencies: stylelint: 17.4.0(typescript@5.9.3) - stylelint-order: 8.1.0(stylelint@17.4.0(typescript@5.9.3)) + stylelint-order: 8.1.1(stylelint@17.4.0(typescript@5.9.3)) stylelint-config-recommended-scss@17.0.0(postcss@8.5.8)(stylelint@17.4.0(typescript@5.9.3)): dependencies: @@ -20123,7 +20130,7 @@ snapshots: stylelint: 17.4.0(typescript@5.9.3) stylelint-config-recommended: 18.0.0(stylelint@17.4.0(typescript@5.9.3)) - stylelint-order@8.1.0(stylelint@17.4.0(typescript@5.9.3)): + stylelint-order@8.1.1(stylelint@17.4.0(typescript@5.9.3)): dependencies: postcss: 8.5.8 postcss-sorting: 10.0.0(postcss@8.5.8) @@ -20145,7 +20152,7 @@ snapshots: dependencies: '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-syntax-patches-for-csstree': 1.1.0 + '@csstools/css-syntax-patches-for-csstree': 1.1.1(css-tree@3.2.1) '@csstools/css-tokenizer': 4.0.0 '@csstools/media-query-list-parser': 5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/selector-resolve-nested': 4.0.0(postcss-selector-parser@7.1.1) @@ -20530,7 +20537,7 @@ snapshots: undici-types@7.18.2: {} - undici@7.24.2: {} + undici@7.24.3: {} unenv@2.0.0-rc.24: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1bd46bf6e..542e8533f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -68,7 +68,7 @@ catalog: '@vueuse/integrations': ^14.2.1 '@vueuse/motion': ^3.0.3 ant-design-vue: ^4.2.6 - antdv-next: ^1.1.3 + antdv-next: ^1.1.4 archiver: ^7.0.1 axios: ^1.13.6 axios-mock-adapter: ^2.1.0 @@ -148,7 +148,7 @@ catalog: stylelint-config-recommended-scss: ^17.0.0 stylelint-config-recommended-vue: ^1.6.1 stylelint-config-standard: ^40.0.0 - stylelint-order: ^8.1.0 + stylelint-order: ^8.1.1 stylelint-scss: ^7.0.0 tailwind-merge: ^3.5.0 tailwindcss: ^4.2.1 From 9ddb899a1a26a4f299dc471fd2ce2f0ab65c8e0d Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 16:23:18 +0800 Subject: [PATCH 03/39] fix: oxlint --- oxlint.config.ts | 6 ++++-- pnpm-lock.yaml | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/oxlint.config.ts b/oxlint.config.ts index 0b64163bc..230ddd98b 100644 --- a/oxlint.config.ts +++ b/oxlint.config.ts @@ -1,3 +1,5 @@ -import { defineConfig } from '@vben/oxlint-config'; +import { oxlintConfig } from '@vben/oxlint-config'; -export default defineConfig(); +import { defineConfig } from 'oxlint'; + +export default defineConfig(oxlintConfig); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a0670725e..f1fb19442 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3771,8 +3771,8 @@ packages: '@iconify-json/octicon@1.2.21': resolution: {integrity: sha512-iMW8IT7suHRKVcHnci9wHKY79LU9mQ4rCAcVgKQQsI5SHoBi0r6z0leOXrI/oRCGJDiJDy9cLqweF3C5wSnm0A==} - '@iconify-json/simple-icons@1.2.73': - resolution: {integrity: sha512-nQZTwul4c2zBqH/aLP4zMOiElj93T6HawbrP+sFQKpxmBdS5x1duCK3cAnkj6dntHz84EYkzaQRM83V2pj4qxA==} + '@iconify-json/simple-icons@1.2.74': + resolution: {integrity: sha512-yqaohfY6jnYjTVpuTkaBQHrWbdUrQyWXhau0r/0EZiNWYXPX/P8WWwl1DoLH5CbvDjjcWQw5J0zADhgCUklOqA==} '@iconify-json/vscode-icons@1.2.45': resolution: {integrity: sha512-ow+ueibMIq79ueM1kv6cOWgHx8jfh1XJQi2RrqMHb4HLbvIBlxpy5PCMvOJXlA68R6fBAHpWQeh6uWx7VKEVsA==} @@ -13231,7 +13231,7 @@ snapshots: dependencies: '@iconify/types': 2.0.0 - '@iconify-json/simple-icons@1.2.73': + '@iconify-json/simple-icons@1.2.74': dependencies: '@iconify/types': 2.0.0 @@ -20898,7 +20898,7 @@ snapshots: dependencies: '@docsearch/css': 3.8.2 '@docsearch/js': 3.8.2(@algolia/client-search@5.49.2)(search-insights@2.17.3) - '@iconify-json/simple-icons': 1.2.73 + '@iconify-json/simple-icons': 1.2.74 '@shikijs/core': 2.5.0 '@shikijs/transformers': 2.5.0 '@shikijs/types': 2.5.0 From ab3e6bb37cbfd6db99ae5e520991b8be376ae3da Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 16:35:34 +0800 Subject: [PATCH 04/39] chore: fix lint issues --- docs/src/_env/adapter/form.ts | 1 - docs/src/demos/vben-vxe-table/form/index.vue | 2 +- eslint.config.mjs | 2 -- internal/vite-config/src/plugins/extra-app-config.ts | 2 -- internal/vite-config/src/plugins/importmap.ts | 2 -- .../ui-kit/layout-ui/src/components/layout-content.vue | 2 +- .../shadcn-ui/src/components/full-screen/full-screen.vue | 6 +++--- .../ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue | 4 ++-- .../components/captcha/slider-translate-captcha/index.vue | 1 - .../effects/common-ui/src/components/json-viewer/index.vue | 2 +- .../layouts/src/widgets/global-search/global-search.vue | 1 - .../layouts/src/widgets/theme-toggle/theme-button.vue | 2 +- scripts/vsh/src/publint/index.ts | 1 - 13 files changed, 9 insertions(+), 19 deletions(-) diff --git a/docs/src/_env/adapter/form.ts b/docs/src/_env/adapter/form.ts index 30ced04e8..7ebd4acac 100644 --- a/docs/src/_env/adapter/form.ts +++ b/docs/src/_env/adapter/form.ts @@ -10,7 +10,6 @@ import { $t } from '@vben/locales'; import { initComponentAdapter } from './component'; -// oxlint-disable-next-line typescript/no-floating-promises initComponentAdapter(); setupVbenForm({ diff --git a/docs/src/demos/vben-vxe-table/form/index.vue b/docs/src/demos/vben-vxe-table/form/index.vue index bcf3f5a5d..c17679eb3 100644 --- a/docs/src/demos/vben-vxe-table/form/index.vue +++ b/docs/src/demos/vben-vxe-table/form/index.vue @@ -112,7 +112,7 @@ const gridOptions: VxeGridProps = { }, toolbarConfig: { // 是否显示搜索表单控制按钮 - // @ts-ignore 正式环境时有完整的类型声明 + // @ts-ignore - 正式环境时有完整的类型声明 search: true, }, }; diff --git a/eslint.config.mjs b/eslint.config.mjs index b29b567fa..63bd9adc3 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,5 +1,3 @@ -// @ts-check - import { defineConfig } from '@vben/eslint-config'; export default defineConfig(); diff --git a/internal/vite-config/src/plugins/extra-app-config.ts b/internal/vite-config/src/plugins/extra-app-config.ts index d763bbd65..813819bbd 100644 --- a/internal/vite-config/src/plugins/extra-app-config.ts +++ b/internal/vite-config/src/plugins/extra-app-config.ts @@ -49,10 +49,8 @@ async function viteExtraAppConfigPlugin({ console.log(colors.cyan(`✨configuration file is build successfully!`)); } catch (error) { - // oxlint-disable-next-line no-console console.log( colors.red( - // oxlint-disable-next-line typescript/restrict-template-expressions `configuration file configuration file failed to package:\n${error}`, ), ); diff --git a/internal/vite-config/src/plugins/importmap.ts b/internal/vite-config/src/plugins/importmap.ts index 29b65fce6..0ccda99f8 100644 --- a/internal/vite-config/src/plugins/importmap.ts +++ b/internal/vite-config/src/plugins/importmap.ts @@ -68,7 +68,6 @@ async function viteImportMapPlugin( }); if (options?.debug) { - // oxlint-disable-next-line typescript/no-floating-promises (async () => { for await (const { message, type } of generator.logStream()) { console.log(`${type}: ${message}`); @@ -139,7 +138,6 @@ async function viteImportMapPlugin( buildEnd() { // 未生成importmap时,抛出错误,防止被turbo缓存 if (!installed && !isSSR) { - // oxlint-disable-next-line no-unused-expressions installError && console.error(installError); throw new Error('Importmap installation failed.'); } diff --git a/packages/@core/ui-kit/layout-ui/src/components/layout-content.vue b/packages/@core/ui-kit/layout-ui/src/components/layout-content.vue index b5abccb48..26fbfd399 100644 --- a/packages/@core/ui-kit/layout-ui/src/components/layout-content.vue +++ b/packages/@core/ui-kit/layout-ui/src/components/layout-content.vue @@ -26,7 +26,7 @@ interface Props { const props = withDefaults(defineProps(), {}); -// @ts-expect-error unused +// @ts-expect-error - unused const { contentElement, overlayStyle } = useLayoutContentStyle(); const style = computed((): CSSProperties => { diff --git a/packages/@core/ui-kit/shadcn-ui/src/components/full-screen/full-screen.vue b/packages/@core/ui-kit/shadcn-ui/src/components/full-screen/full-screen.vue index 970e713c9..1dcfbbbb2 100644 --- a/packages/@core/ui-kit/shadcn-ui/src/components/full-screen/full-screen.vue +++ b/packages/@core/ui-kit/shadcn-ui/src/components/full-screen/full-screen.vue @@ -12,11 +12,11 @@ const { isFullscreen, toggle } = useFullscreen(); // 重新检查全屏状态 isFullscreen.value = !!( document.fullscreenElement || - // @ts-expect-error: vendor fullscreen APIs are not included in the standard DOM typings + // @ts-expect-error - vendor fullscreen APIs are not included in the standard DOM typings document.webkitFullscreenElement || - // @ts-expect-error: vendor fullscreen APIs are not included in the standard DOM typings + // @ts-expect-error - vendor fullscreen APIs are not included in the standard DOM typings document.mozFullScreenElement || - // @ts-expect-error: vendor fullscreen APIs are not included in the standard DOM typings + // @ts-expect-error - vendor fullscreen APIs are not included in the standard DOM typings document.msFullscreenElement ); diff --git a/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue b/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue index 9c7eb15d0..615d12efd 100644 --- a/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue +++ b/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue @@ -28,9 +28,9 @@ const emit = defineEmits<{ }>(); const active = defineModel('active'); -// @ts-expect-error unused +// @ts-expect-error - unused const contentRef = ref(); -// @ts-expect-error unused +// @ts-expect-error - unused const tabRef = ref(); const style = computed(() => { diff --git a/packages/effects/common-ui/src/components/captcha/slider-translate-captcha/index.vue b/packages/effects/common-ui/src/components/captcha/slider-translate-captcha/index.vue index 02f81ae05..90c2df8b8 100644 --- a/packages/effects/common-ui/src/components/captcha/slider-translate-captcha/index.vue +++ b/packages/effects/common-ui/src/components/captcha/slider-translate-captcha/index.vue @@ -233,7 +233,6 @@ function drawPiece( ctx.fillStyle = 'rgba(255, 255, 255, 0.7)'; ctx.strokeStyle = 'rgba(255, 255, 255, 0.7)'; ctx.stroke(); - // oxlint-disable-next-line no-unused-expressions opr === canvasOpr.clip ? ctx.clip() : ctx.fill(); ctx.globalCompositeOperation = 'destination-over'; } diff --git a/packages/effects/common-ui/src/components/json-viewer/index.vue b/packages/effects/common-ui/src/components/json-viewer/index.vue index a8121de03..415e0c798 100644 --- a/packages/effects/common-ui/src/components/json-viewer/index.vue +++ b/packages/effects/common-ui/src/components/json-viewer/index.vue @@ -11,7 +11,7 @@ import type { } from './types'; import { computed, useAttrs } from 'vue'; -// @ts-expect-error: vue-json-viewer does not expose compatible typings for this import path +// @ts-expect-error - vue-json-viewer does not expose compatible typings for this import path import VueJsonViewer from 'vue-json-viewer'; import { $t } from '@vben/locales'; diff --git a/packages/effects/layouts/src/widgets/global-search/global-search.vue b/packages/effects/layouts/src/widgets/global-search/global-search.vue index 16757e7da..3268fae9d 100644 --- a/packages/effects/layouts/src/widgets/global-search/global-search.vue +++ b/packages/effects/layouts/src/widgets/global-search/global-search.vue @@ -82,7 +82,6 @@ const toggleKeydownListener = () => { }; const toggleOpen = () => { - // oxlint-disable-next-line no-unused-expressions open.value ? modalApi.close() : modalApi.open(); }; diff --git a/packages/effects/layouts/src/widgets/theme-toggle/theme-button.vue b/packages/effects/layouts/src/widgets/theme-toggle/theme-button.vue index ce5809502..8543d36c8 100644 --- a/packages/effects/layouts/src/widgets/theme-toggle/theme-button.vue +++ b/packages/effects/layouts/src/widgets/theme-toggle/theme-button.vue @@ -41,7 +41,7 @@ const bindProps = computed(() => { function toggleTheme(event: MouseEvent) { const isAppearanceTransition = - // @ts-expect-error: startViewTransition is not available in the current DOM lib target + // @ts-expect-error - startViewTransition is not available in the current DOM lib target document.startViewTransition && !window.matchMedia('(prefers-reduced-motion: reduce)').matches; if (!isAppearanceTransition || !event) { diff --git a/scripts/vsh/src/publint/index.ts b/scripts/vsh/src/publint/index.ts index ee8da3b4b..d0786737d 100644 --- a/scripts/vsh/src/publint/index.ts +++ b/scripts/vsh/src/publint/index.ts @@ -168,7 +168,6 @@ function printResult( `${UNICODE.FAILURE} ${totalCount} problem (${errorCount} errors, ${warningCount} warnings, ${suggestionsCount} suggestions)`, ), ); - // oxlint-disable-next-line no-unused-expressions !check && process.exit(1); } else { consola.log(colors.green(`${UNICODE.SUCCESS} No problem`)); From ae6a75e91354b4a558c5e474e356fbb75db1ffda Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 18:13:49 +0800 Subject: [PATCH 05/39] build: migrate core ts packages to tsdown --- cspell.json | 1 + .../eslint-config/src/configs/node.ts | 1 + package.json | 1 + packages/@core/base/icons/build.config.ts | 7 - packages/@core/base/icons/package.json | 4 +- packages/@core/base/icons/tsdown.config.ts | 8 + packages/@core/base/shared/build.config.ts | 14 -- packages/@core/base/shared/package.json | 16 +- packages/@core/base/shared/tsdown.config.ts | 15 ++ packages/@core/base/typings/build.config.ts | 7 - packages/@core/base/typings/package.json | 9 +- packages/@core/base/typings/tsdown.config.ts | 8 + packages/@core/base/typings/vue-router.d.ts | 2 +- packages/@core/composables/build.config.ts | 7 - packages/@core/composables/package.json | 4 +- packages/@core/composables/tsdown.config.ts | 8 + packages/@core/preferences/build.config.ts | 7 - packages/@core/preferences/package.json | 2 +- packages/@core/preferences/tsdown.config.ts | 8 + pnpm-lock.yaml | 226 ++++++++++++++++++ pnpm-workspace.yaml | 1 + scripts/vsh/src/check-dep/index.ts | 1 + 22 files changed, 297 insertions(+), 60 deletions(-) delete mode 100644 packages/@core/base/icons/build.config.ts create mode 100644 packages/@core/base/icons/tsdown.config.ts delete mode 100644 packages/@core/base/shared/build.config.ts create mode 100644 packages/@core/base/shared/tsdown.config.ts delete mode 100644 packages/@core/base/typings/build.config.ts create mode 100644 packages/@core/base/typings/tsdown.config.ts delete mode 100644 packages/@core/composables/build.config.ts create mode 100644 packages/@core/composables/tsdown.config.ts delete mode 100644 packages/@core/preferences/build.config.ts create mode 100644 packages/@core/preferences/tsdown.config.ts diff --git a/cspell.json b/cspell.json index f1071a848..c53d1cc51 100644 --- a/cspell.json +++ b/cspell.json @@ -60,6 +60,7 @@ "tabler", "taze", "tdesign", + "tsdown", "tsgolint", "turborepo", "ui-kit", diff --git a/internal/lint-configs/eslint-config/src/configs/node.ts b/internal/lint-configs/eslint-config/src/configs/node.ts index 65f81fd53..f94f2d43e 100644 --- a/internal/lint-configs/eslint-config/src/configs/node.ts +++ b/internal/lint-configs/eslint-config/src/configs/node.ts @@ -17,6 +17,7 @@ export async function node(): Promise { 'error', { allowModules: [ + 'tsdown', 'unbuild', '@vben/vite-config', 'vitest', diff --git a/package.json b/package.json index 43531f182..f36d5f66e 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,7 @@ "playwright": "catalog:", "rimraf": "catalog:", "tailwindcss": "catalog:", + "tsdown": "catalog:", "turbo": "catalog:", "typescript": "catalog:", "unbuild": "catalog:", diff --git a/packages/@core/base/icons/build.config.ts b/packages/@core/base/icons/build.config.ts deleted file mode 100644 index 97e572c56..000000000 --- a/packages/@core/base/icons/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: ['src/index'], -}); diff --git a/packages/@core/base/icons/package.json b/packages/@core/base/icons/package.json index 0161ed482..499fee711 100644 --- a/packages/@core/base/icons/package.json +++ b/packages/@core/base/icons/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild" + "build": "tsdown" }, "files": [ "dist" @@ -28,7 +28,7 @@ "publishConfig": { "exports": { ".": { - "types": "./dist/index.d.ts", + "types": "./dist/index.d.mts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/base/icons/tsdown.config.ts b/packages/@core/base/icons/tsdown.config.ts new file mode 100644 index 000000000..ad91feebb --- /dev/null +++ b/packages/@core/base/icons/tsdown.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + dts: true, + entry: ['src/index.ts'], + format: ['esm'], +}); diff --git a/packages/@core/base/shared/build.config.ts b/packages/@core/base/shared/build.config.ts deleted file mode 100644 index 98e2209fe..000000000 --- a/packages/@core/base/shared/build.config.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: [ - 'src/store', - 'src/constants/index', - 'src/utils/index', - 'src/color/index', - 'src/cache/index', - 'src/global-state', - ], -}); diff --git a/packages/@core/base/shared/package.json b/packages/@core/base/shared/package.json index e48de9a27..d58ff5d3c 100644 --- a/packages/@core/base/shared/package.json +++ b/packages/@core/base/shared/package.json @@ -11,8 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", - "stub": "pnpm unbuild --stub" + "build": "tsdown", + "stub": "tsdown" }, "files": [ "dist" @@ -53,27 +53,27 @@ "publishConfig": { "exports": { "./constants": { - "types": "./dist/constants/index.d.ts", + "types": "./dist/constants/index.d.mts", "default": "./dist/constants/index.mjs" }, "./utils": { - "types": "./dist/utils/index.d.ts", + "types": "./dist/utils/index.d.mts", "default": "./dist/utils/index.mjs" }, "./color": { - "types": "./dist/color/index.d.ts", + "types": "./dist/color/index.d.mts", "default": "./dist/color/index.mjs" }, "./cache": { - "types": "./dist/cache/index.d.ts", + "types": "./dist/cache/index.d.mts", "default": "./dist/cache/index.mjs" }, "./store": { - "types": "./dist/store.d.ts", + "types": "./dist/store.d.mts", "default": "./dist/store.mjs" }, "./global-state": { - "types": "./dist/global-state.d.ts", + "types": "./dist/global-state.d.mts", "default": "./dist/global-state.mjs" } } diff --git a/packages/@core/base/shared/tsdown.config.ts b/packages/@core/base/shared/tsdown.config.ts new file mode 100644 index 000000000..5226ddae6 --- /dev/null +++ b/packages/@core/base/shared/tsdown.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + dts: true, + entry: { + 'cache/index': 'src/cache/index.ts', + 'color/index': 'src/color/index.ts', + 'constants/index': 'src/constants/index.ts', + 'global-state': 'src/global-state.ts', + 'store': 'src/store.ts', + 'utils/index': 'src/utils/index.ts', + }, + format: ['esm'], +}); diff --git a/packages/@core/base/typings/build.config.ts b/packages/@core/base/typings/build.config.ts deleted file mode 100644 index 97e572c56..000000000 --- a/packages/@core/base/typings/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: ['src/index'], -}); diff --git a/packages/@core/base/typings/package.json b/packages/@core/base/typings/package.json index 73b346385..591bbaae4 100644 --- a/packages/@core/base/typings/package.json +++ b/packages/@core/base/typings/package.json @@ -11,14 +11,15 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild" + "build": "tsdown" }, "files": [ - "dist" + "dist", + "vue-router.d.ts" ], "main": "./dist/index.mjs", "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", + "types": "./dist/index.d.mts", "exports": { ".": { "types": "./src/index.ts", @@ -32,7 +33,7 @@ "publishConfig": { "exports": { ".": { - "types": "./dist/index.d.ts", + "types": "./dist/index.d.mts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/base/typings/tsdown.config.ts b/packages/@core/base/typings/tsdown.config.ts new file mode 100644 index 000000000..ad91feebb --- /dev/null +++ b/packages/@core/base/typings/tsdown.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + dts: true, + entry: ['src/index.ts'], + format: ['esm'], +}); diff --git a/packages/@core/base/typings/vue-router.d.ts b/packages/@core/base/typings/vue-router.d.ts index 4874bcd75..8ea588602 100644 --- a/packages/@core/base/typings/vue-router.d.ts +++ b/packages/@core/base/typings/vue-router.d.ts @@ -1,5 +1,5 @@ /* eslint-disable no-restricted-imports */ -import type { RouteMeta as IRouteMeta } from '@vben-core/typings'; +import type { RouteMeta as IRouteMeta } from './dist/index.d.mts'; import 'vue-router'; diff --git a/packages/@core/composables/build.config.ts b/packages/@core/composables/build.config.ts deleted file mode 100644 index 97e572c56..000000000 --- a/packages/@core/composables/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: ['src/index'], -}); diff --git a/packages/@core/composables/package.json b/packages/@core/composables/package.json index a541a6bea..ba8cda3ee 100644 --- a/packages/@core/composables/package.json +++ b/packages/@core/composables/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild" + "build": "tsdown" }, "files": [ "dist" @@ -29,7 +29,7 @@ "publishConfig": { "exports": { ".": { - "types": "./dist/index.d.ts", + "types": "./dist/index.d.mts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/composables/tsdown.config.ts b/packages/@core/composables/tsdown.config.ts new file mode 100644 index 000000000..ad91feebb --- /dev/null +++ b/packages/@core/composables/tsdown.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + dts: true, + entry: ['src/index.ts'], + format: ['esm'], +}); diff --git a/packages/@core/preferences/build.config.ts b/packages/@core/preferences/build.config.ts deleted file mode 100644 index 97e572c56..000000000 --- a/packages/@core/preferences/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: ['src/index'], -}); diff --git a/packages/@core/preferences/package.json b/packages/@core/preferences/package.json index fd859bee9..620e89edd 100644 --- a/packages/@core/preferences/package.json +++ b/packages/@core/preferences/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "#build": "pnpm unbuild" + "build": "tsdown" }, "files": [ "dist", diff --git a/packages/@core/preferences/tsdown.config.ts b/packages/@core/preferences/tsdown.config.ts new file mode 100644 index 000000000..ad91feebb --- /dev/null +++ b/packages/@core/preferences/tsdown.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + dts: true, + entry: ['src/index.ts'], + format: ['esm'], +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f1fb19442..4f8ccb35e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -399,6 +399,9 @@ catalogs: tippy.js: specifier: ^6.3.7 version: 6.3.7 + tsdown: + specifier: ^0.21.2 + version: 0.21.2 turbo: specifier: ^2.8.17 version: 2.8.17 @@ -576,6 +579,9 @@ importers: tailwindcss: specifier: 'catalog:' version: 4.2.1 + tsdown: + specifier: 'catalog:' + version: 0.21.2(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) turbo: specifier: 'catalog:' version: 2.8.17 @@ -2202,6 +2208,10 @@ packages: resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} + '@babel/generator@8.0.0-rc.2': + resolution: {integrity: sha512-oCQ1IKPwkzCeJzAPb7Fv8rQ9k5+1sG8mf2uoHiMInPYvkRfrDJxbTIbH51U+jstlkghus0vAi3EBvkfvEsYNLQ==} + engines: {node: ^20.19.0 || >=22.12.0} + '@babel/helper-annotate-as-pure@7.27.3': resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} @@ -2273,10 +2283,18 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@8.0.0-rc.2': + resolution: {integrity: sha512-noLx87RwlBEMrTzncWd/FvTxoJ9+ycHNg0n8yyYydIoDsLZuxknKgWRJUqcrVkNrJ74uGyhWQzQaS3q8xfGAhQ==} + engines: {node: ^20.19.0 || >=22.12.0} + '@babel/helper-validator-identifier@7.28.5': resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@8.0.0-rc.2': + resolution: {integrity: sha512-xExUBkuXWJjVuIbO7z6q7/BA9bgfJDEhVL0ggrggLMbg0IzCUWGT1hZGE8qUH7Il7/RD/a6cZ3AAFrrlp1LF/A==} + engines: {node: ^20.19.0 || >=22.12.0} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -2294,6 +2312,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@8.0.0-rc.2': + resolution: {integrity: sha512-29AhEtcq4x8Dp3T72qvUMZHx0OMXCj4Jy/TEReQa+KWLln524Cj1fWb3QFi0l/xSpptQBR6y9RNEXuxpFvwiUQ==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} engines: {node: '>=6.9.0'} @@ -2722,6 +2745,10 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} + '@babel/types@8.0.0-rc.2': + resolution: {integrity: sha512-91gAaWRznDwSX4E2tZ1YjBuIfnQVOFDCQ2r0Toby0gu4XEbyF623kXLMA8d4ZbCu+fINcrudkmEcwSUHgDDkNw==} + engines: {node: ^20.19.0 || >=22.12.0} + '@bufbuild/protobuf@2.11.0': resolution: {integrity: sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==} @@ -4441,6 +4468,9 @@ packages: resolution: {integrity: sha512-HDVTWq3H0uTXiU0eeSQntcVUTPP3GamzeXI41+x7uU9J65JgWQh3qWZHblR1i0npXfFtF+mxBiU2nJH8znxWnQ==} engines: {node: '>=18'} + '@quansync/fs@1.0.0': + resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} + '@rolldown/binding-android-arm64@1.0.0-rc.9': resolution: {integrity: sha512-lcJL0bN5hpgJfSIz/8PIf02irmyL43P+j1pTCfbD1DbLkmGRuFIA4DD3B3ZOvGqG0XiVvRznbKtN0COQVaKUTg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -5071,6 +5101,9 @@ packages: '@types/html-minifier-terser@7.0.2': resolution: {integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA==} + '@types/jsesc@2.5.1': + resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} + '@types/json-bigint@1.0.4': resolution: {integrity: sha512-ydHooXLbOmxBbubnA7Eh+RpBzuaIiQjh8WGJYQB50JFGFrdxW7JzVlyEV7fAXw0T2sqJ1ysTneJbiyNLqZRAag==} @@ -5935,6 +5968,10 @@ packages: resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==} engines: {node: '>=20.19.0'} + ast-kit@3.0.0-beta.1: + resolution: {integrity: sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==} + engines: {node: '>=20.19.0'} + ast-walker-scope@0.8.3: resolution: {integrity: sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg==} engines: {node: '>=20.19.0'} @@ -6074,6 +6111,9 @@ packages: birpc@2.9.0: resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} + birpc@4.0.0: + resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -6850,6 +6890,15 @@ packages: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} engines: {node: '>=10'} + dts-resolver@2.1.3: + resolution: {integrity: sha512-bihc7jPC90VrosXNzK0LTE2cuLP6jr0Ro8jk+kMugHReJVLIpHz/xadeq3MhuwyO4TD4OA3L1Q8pBBFRc08Tsw==} + engines: {node: '>=20.19.0'} + peerDependencies: + oxc-resolver: '>=11.0.0' + peerDependenciesMeta: + oxc-resolver: + optional: true + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -7657,6 +7706,9 @@ packages: hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + hookable@6.1.0: + resolution: {integrity: sha512-ZoKZSJgu8voGK2geJS+6YtYjvIzu9AOM/KZXsBxr83uhLL++e9pEv/dlgwgy3dvHg06kTz6JOh1hk3C8Ceiymw==} + hookified@1.15.1: resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} @@ -7751,6 +7803,10 @@ packages: import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + import-without-cache@0.2.5: + resolution: {integrity: sha512-B6Lc2s6yApwnD2/pMzFh/d5AVjdsDXjgkeJ766FmFuJELIGHNycKRj+l3A39yZPM4CchqNCB4RITEAYB1KUM6A==} + engines: {node: '>=20.19.0'} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -9491,6 +9547,9 @@ packages: quansync@0.2.11: resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + quansync@1.0.0: + resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -9668,6 +9727,25 @@ packages: engines: {node: 20 || >=22} hasBin: true + rolldown-plugin-dts@0.22.5: + resolution: {integrity: sha512-M/HXfM4cboo+jONx9Z0X+CUf3B5tCi7ni+kR5fUW50Fp9AlZk0oVLesibGWgCXDKFp5lpgQ9yhKoImUFjl3VZw==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@ts-macro/tsc': ^0.3.6 + '@typescript/native-preview': '>=7.0.0-dev.20250601.1' + rolldown: ^1.0.0-rc.3 + typescript: ^5.0.0 || ^6.0.0-beta + vue-tsc: ~3.2.0 + peerDependenciesMeta: + '@ts-macro/tsc': + optional: true + '@typescript/native-preview': + optional: true + typescript: + optional: true + vue-tsc: + optional: true + rolldown-string@0.2.1: resolution: {integrity: sha512-7H8oH5A8+L96pbBTPCt/rZrwayEhZY5/ejhdk9nRODH32H1v7+bfkaCr+kS15DcGQ7VC1HcWdQVNABFYgrMOzg==} engines: {node: '>=20.19.0'} @@ -10449,6 +10527,10 @@ packages: tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + treemate@0.3.11: resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==} @@ -10474,6 +10556,34 @@ packages: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} + tsdown@0.21.2: + resolution: {integrity: sha512-pP8eAcd1XAWjl5gjosuJs0BAuVoheUe3V8VDHx31QK7YOgXjcCMsBSyFWO3CMh/CSUkjRUzR96JtGH3WJFTExQ==} + engines: {node: '>=20.19.0'} + hasBin: true + peerDependencies: + '@arethetypeswrong/core': ^0.18.1 + '@tsdown/css': 0.21.2 + '@tsdown/exe': 0.21.2 + '@vitejs/devtools': '*' + publint: ^0.3.0 + typescript: ^5.0.0 + unplugin-unused: ^0.5.0 + peerDependenciesMeta: + '@arethetypeswrong/core': + optional: true + '@tsdown/css': + optional: true + '@tsdown/exe': + optional: true + '@vitejs/devtools': + optional: true + publint: + optional: true + typescript: + optional: true + unplugin-unused: + optional: true + tslib@2.3.0: resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} @@ -10581,6 +10691,9 @@ packages: typescript: optional: true + unconfig-core@7.5.0: + resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} + uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} @@ -10676,6 +10789,16 @@ packages: resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} engines: {node: ^20.19.0 || >=22.12.0} + unrun@0.2.32: + resolution: {integrity: sha512-opd3z6791rf281JdByf0RdRQrpcc7WyzqittqIXodM/5meNWdTwrVxeyzbaCp4/Rgls/um14oUaif1gomO8YGg==} + engines: {node: '>=20.19.0'} + hasBin: true + peerDependencies: + synckit: ^0.11.11 + peerDependenciesMeta: + synckit: + optional: true + unstorage@1.17.4: resolution: {integrity: sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw==} peerDependencies: @@ -11620,6 +11743,15 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 + '@babel/generator@8.0.0-rc.2': + dependencies: + '@babel/parser': 8.0.0-rc.2 + '@babel/types': 8.0.0-rc.2 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@types/jsesc': 2.5.1 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.27.3': dependencies: '@babel/types': 7.29.0 @@ -11721,8 +11853,12 @@ snapshots: '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@8.0.0-rc.2': {} + '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@8.0.0-rc.2': {} + '@babel/helper-validator-option@7.27.1': {} '@babel/helper-wrap-function@7.28.6': @@ -11742,6 +11878,10 @@ snapshots: dependencies: '@babel/types': 7.29.0 + '@babel/parser@8.0.0-rc.2': + dependencies: + '@babel/types': 8.0.0-rc.2 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 @@ -12289,6 +12429,11 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@babel/types@8.0.0-rc.2': + dependencies: + '@babel/helper-string-parser': 8.0.0-rc.2 + '@babel/helper-validator-identifier': 8.0.0-rc.2 + '@bufbuild/protobuf@2.11.0': {} '@cacheable/memory@2.0.8': @@ -13863,6 +14008,10 @@ snapshots: '@publint/pack@0.1.4': {} + '@quansync/fs@1.0.0': + dependencies: + quansync: 1.0.0 + '@rolldown/binding-android-arm64@1.0.0-rc.9': optional: true @@ -14379,6 +14528,8 @@ snapshots: '@types/html-minifier-terser@7.0.2': {} + '@types/jsesc@2.5.1': {} + '@types/json-bigint@1.0.4': {} '@types/json-schema@7.0.15': {} @@ -15461,6 +15612,12 @@ snapshots: '@babel/parser': 7.29.0 pathe: 2.0.3 + ast-kit@3.0.0-beta.1: + dependencies: + '@babel/parser': 8.0.0-rc.2 + estree-walker: 3.0.3 + pathe: 2.0.3 + ast-walker-scope@0.8.3: dependencies: '@babel/parser': 7.29.0 @@ -15591,6 +15748,8 @@ snapshots: birpc@2.9.0: {} + birpc@4.0.0: {} + boolbase@1.0.0: {} boxen@8.0.1: @@ -16436,6 +16595,8 @@ snapshots: dotenv@8.6.0: {} + dts-resolver@2.1.3: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -17489,6 +17650,8 @@ snapshots: hookable@5.5.3: {} + hookable@6.1.0: {} + hookified@1.15.1: {} html-minifier-terser@6.1.0: @@ -17584,6 +17747,8 @@ snapshots: import-meta-resolve@4.2.0: {} + import-without-cache@0.2.5: {} + imurmurhash@0.1.4: {} indent-string@5.0.0: {} @@ -19295,6 +19460,8 @@ snapshots: quansync@0.2.11: {} + quansync@1.0.0: {} + queue-microtask@1.2.3: {} radix3@1.1.2: {} @@ -19494,6 +19661,24 @@ snapshots: glob: 13.0.6 package-json-from-dist: 1.0.1 + rolldown-plugin-dts@0.22.5(rolldown@1.0.0-rc.9)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)): + dependencies: + '@babel/generator': 8.0.0-rc.2 + '@babel/helper-validator-identifier': 8.0.0-rc.2 + '@babel/parser': 8.0.0-rc.2 + '@babel/types': 8.0.0-rc.2 + ast-kit: 3.0.0-beta.1 + birpc: 4.0.0 + dts-resolver: 2.1.3 + get-tsconfig: 4.13.6 + obug: 2.1.1 + rolldown: 1.0.0-rc.9 + optionalDependencies: + typescript: 5.9.3 + vue-tsc: 3.2.5(typescript@5.9.3) + transitivePeerDependencies: + - oxc-resolver + rolldown-string@0.2.1: dependencies: magic-string: 0.30.21 @@ -20371,6 +20556,8 @@ snapshots: dependencies: punycode: 2.3.1 + tree-kill@1.2.2: {} + treemate@0.3.11: {} trim-lines@3.0.1: {} @@ -20397,6 +20584,34 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 + tsdown@0.21.2(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)): + dependencies: + ansis: 4.2.0 + cac: 7.0.0 + defu: 6.1.4 + empathic: 2.0.0 + hookable: 6.1.0 + import-without-cache: 0.2.5 + obug: 2.1.1 + picomatch: 4.0.3 + rolldown: 1.0.0-rc.9 + rolldown-plugin-dts: 0.22.5(rolldown@1.0.0-rc.9)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) + semver: 7.7.4 + tinyexec: 1.0.4 + tinyglobby: 0.2.15 + tree-kill: 1.2.2 + unconfig-core: 7.5.0 + unrun: 0.2.32(synckit@0.11.12) + optionalDependencies: + publint: 0.3.18 + typescript: 5.9.3 + transitivePeerDependencies: + - '@ts-macro/tsc' + - '@typescript/native-preview' + - oxc-resolver + - synckit + - vue-tsc + tslib@2.3.0: {} tslib@2.4.0: {} @@ -20526,6 +20741,11 @@ snapshots: - vue-sfc-transformer - vue-tsc + unconfig-core@7.5.0: + dependencies: + '@quansync/fs': 1.0.0 + quansync: 1.0.0 + uncrypto@0.1.3: {} unctx@2.5.0: @@ -20642,6 +20862,12 @@ snapshots: picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 + unrun@0.2.32(synckit@0.11.12): + dependencies: + rolldown: 1.0.0-rc.9 + optionalDependencies: + synckit: 0.11.12 + unstorage@1.17.4(db0@0.3.4)(ioredis@5.10.0): dependencies: anymatch: 3.1.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 542e8533f..605f56163 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -155,6 +155,7 @@ catalog: tdesign-vue-next: ^1.18.5 theme-colors: ^0.1.0 tippy.js: ^6.3.7 + tsdown: ^0.21.2 turbo: ^2.8.17 tw-animate-css: ^1.4.0 typescript: ^5.9.3 diff --git a/scripts/vsh/src/check-dep/index.ts b/scripts/vsh/src/check-dep/index.ts index ba8ed4c3f..15b2d35c9 100644 --- a/scripts/vsh/src/check-dep/index.ts +++ b/scripts/vsh/src/check-dep/index.ts @@ -10,6 +10,7 @@ const DEFAULT_CONFIG = { ignoreMatches: [ 'vite', 'vitest', + 'tsdown', 'unbuild', '@vben/tsconfig', '@vben/vite-config', From db9b9df8f78b231704835d34eb16526b6d8dc284 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:39:43 +0800 Subject: [PATCH 06/39] chore(eslint-config): migrate build to tsdown --- .../lint-configs/eslint-config/build.config.ts | 7 ------- internal/lint-configs/eslint-config/package.json | 7 +++---- .../lint-configs/eslint-config/tsdown.config.ts | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 11 deletions(-) delete mode 100644 internal/lint-configs/eslint-config/build.config.ts create mode 100644 internal/lint-configs/eslint-config/tsdown.config.ts diff --git a/internal/lint-configs/eslint-config/build.config.ts b/internal/lint-configs/eslint-config/build.config.ts deleted file mode 100644 index 97e572c56..000000000 --- a/internal/lint-configs/eslint-config/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: ['src/index'], -}); diff --git a/internal/lint-configs/eslint-config/package.json b/internal/lint-configs/eslint-config/package.json index db7f699ac..5235e2b16 100644 --- a/internal/lint-configs/eslint-config/package.json +++ b/internal/lint-configs/eslint-config/package.json @@ -12,7 +12,8 @@ "license": "MIT", "type": "module", "scripts": { - "stub": "pnpm unbuild --stub" + "build": "pnpm exec tsdown", + "stub": "pnpm exec tsdown" }, "files": [ "dist" @@ -27,12 +28,10 @@ } }, "dependencies": { - "@vben/oxlint-config": "workspace:*" - }, - "devDependencies": { "@eslint/js": "catalog:", "@typescript-eslint/eslint-plugin": "catalog:", "@typescript-eslint/parser": "catalog:", + "@vben/oxlint-config": "workspace:*", "eslint": "catalog:", "eslint-plugin-jsonc": "catalog:", "eslint-plugin-n": "catalog:", diff --git a/internal/lint-configs/eslint-config/tsdown.config.ts b/internal/lint-configs/eslint-config/tsdown.config.ts new file mode 100644 index 000000000..a7a8ce27f --- /dev/null +++ b/internal/lint-configs/eslint-config/tsdown.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + deps: { + skipNodeModulesBundle: true, + }, + dts: { + resolver: 'tsc', + }, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + }), +}); From 30b5610a73b6e8bc7719b0dc93ca7e7162da14e3 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:39:51 +0800 Subject: [PATCH 07/39] chore(oxfmt-config): migrate build to tsdown --- internal/lint-configs/oxfmt-config/build.config.ts | 7 ------- internal/lint-configs/oxfmt-config/package.json | 3 ++- internal/lint-configs/oxfmt-config/src/index.ts | 4 ++-- internal/lint-configs/oxfmt-config/tsdown.config.ts | 11 +++++++++++ 4 files changed, 15 insertions(+), 10 deletions(-) delete mode 100644 internal/lint-configs/oxfmt-config/build.config.ts create mode 100644 internal/lint-configs/oxfmt-config/tsdown.config.ts diff --git a/internal/lint-configs/oxfmt-config/build.config.ts b/internal/lint-configs/oxfmt-config/build.config.ts deleted file mode 100644 index 97e572c56..000000000 --- a/internal/lint-configs/oxfmt-config/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: ['src/index'], -}); diff --git a/internal/lint-configs/oxfmt-config/package.json b/internal/lint-configs/oxfmt-config/package.json index 3e016797e..2355a9de5 100644 --- a/internal/lint-configs/oxfmt-config/package.json +++ b/internal/lint-configs/oxfmt-config/package.json @@ -12,7 +12,8 @@ "license": "MIT", "type": "module", "scripts": { - "stub": "pnpm unbuild --stub" + "build": "pnpm exec tsdown", + "stub": "pnpm exec tsdown" }, "files": [ "dist" diff --git a/internal/lint-configs/oxfmt-config/src/index.ts b/internal/lint-configs/oxfmt-config/src/index.ts index 5f88c1809..edce2504a 100644 --- a/internal/lint-configs/oxfmt-config/src/index.ts +++ b/internal/lint-configs/oxfmt-config/src/index.ts @@ -2,7 +2,7 @@ import { defineConfig as defineOxfmtConfig } from 'oxfmt'; type OxfmtConfig = Parameters[0]; -const oxfmtConfig = defineOxfmtConfig({ +const oxfmtConfig: OxfmtConfig = defineOxfmtConfig({ printWidth: 80, proseWrap: 'never', semi: true, @@ -28,7 +28,7 @@ const oxfmtConfig = defineOxfmtConfig({ ], }); -function defineConfig(config: OxfmtConfig = {}) { +function defineConfig(config: OxfmtConfig = {}): OxfmtConfig { return defineOxfmtConfig({ ...oxfmtConfig, ...config, diff --git a/internal/lint-configs/oxfmt-config/tsdown.config.ts b/internal/lint-configs/oxfmt-config/tsdown.config.ts new file mode 100644 index 000000000..c4f51c5ee --- /dev/null +++ b/internal/lint-configs/oxfmt-config/tsdown.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + dts: true, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + }), +}); From c1b1fe90fdc25a7ff7c35e1a97f5f59e1db2cb64 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:39:59 +0800 Subject: [PATCH 08/39] chore(oxlint-config): migrate build to tsdown --- internal/lint-configs/oxlint-config/build.config.ts | 7 ------- internal/lint-configs/oxlint-config/package.json | 3 ++- internal/lint-configs/oxlint-config/tsdown.config.ts | 11 +++++++++++ 3 files changed, 13 insertions(+), 8 deletions(-) delete mode 100644 internal/lint-configs/oxlint-config/build.config.ts create mode 100644 internal/lint-configs/oxlint-config/tsdown.config.ts diff --git a/internal/lint-configs/oxlint-config/build.config.ts b/internal/lint-configs/oxlint-config/build.config.ts deleted file mode 100644 index 97e572c56..000000000 --- a/internal/lint-configs/oxlint-config/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: ['src/index'], -}); diff --git a/internal/lint-configs/oxlint-config/package.json b/internal/lint-configs/oxlint-config/package.json index 05d3bedfe..be40ad6c8 100644 --- a/internal/lint-configs/oxlint-config/package.json +++ b/internal/lint-configs/oxlint-config/package.json @@ -12,7 +12,8 @@ "license": "MIT", "type": "module", "scripts": { - "stub": "pnpm unbuild --stub" + "build": "pnpm exec tsdown", + "stub": "pnpm exec tsdown" }, "files": [ "dist" diff --git a/internal/lint-configs/oxlint-config/tsdown.config.ts b/internal/lint-configs/oxlint-config/tsdown.config.ts new file mode 100644 index 000000000..c4f51c5ee --- /dev/null +++ b/internal/lint-configs/oxlint-config/tsdown.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + dts: true, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + }), +}); From a1ca296fc013f874682a388277eaba75794bd8ff Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:40:09 +0800 Subject: [PATCH 09/39] chore(node-utils): migrate build to tsdown --- internal/node-utils/build.config.ts | 7 ----- internal/node-utils/package.json | 5 ++-- internal/node-utils/scripts/build.mjs | 37 +++++++++++++++++++++++++ internal/node-utils/src/date.ts | 4 +-- internal/node-utils/src/monorepo.ts | 15 ++++++---- internal/node-utils/tsconfig.build.json | 8 ++++++ internal/node-utils/tsdown.config.ts | 10 +++++++ 7 files changed, 69 insertions(+), 17 deletions(-) delete mode 100644 internal/node-utils/build.config.ts create mode 100644 internal/node-utils/scripts/build.mjs create mode 100644 internal/node-utils/tsconfig.build.json create mode 100644 internal/node-utils/tsdown.config.ts diff --git a/internal/node-utils/build.config.ts b/internal/node-utils/build.config.ts deleted file mode 100644 index 97e572c56..000000000 --- a/internal/node-utils/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: ['src/index'], -}); diff --git a/internal/node-utils/package.json b/internal/node-utils/package.json index 40a017f14..bd0e1f258 100644 --- a/internal/node-utils/package.json +++ b/internal/node-utils/package.json @@ -12,7 +12,8 @@ "license": "MIT", "type": "module", "scripts": { - "stub": "pnpm unbuild --stub" + "build": "node ./scripts/build.mjs", + "stub": "node ./scripts/build.mjs" }, "files": [ "dist" @@ -22,7 +23,7 @@ "types": "./dist/index.d.ts", "exports": { ".": { - "types": "./src/index.ts", + "types": "./dist/index.d.ts", "import": "./dist/index.mjs", "default": "./dist/index.mjs" } diff --git a/internal/node-utils/scripts/build.mjs b/internal/node-utils/scripts/build.mjs new file mode 100644 index 000000000..0b13a14ca --- /dev/null +++ b/internal/node-utils/scripts/build.mjs @@ -0,0 +1,37 @@ +import { spawnSync } from 'node:child_process'; + +const pnpmCommand = + process.env.npm_execpath && + process.env.npm_execpath.endsWith('.cjs') + ? [process.execPath, process.env.npm_execpath] + : [process.platform === 'win32' ? 'pnpm.cmd' : 'pnpm']; + +const steps = [ + ['exec', 'tsdown', '--no-dts'], + [ + 'exec', + 'tsc', + '-p', + 'tsconfig.build.json', + '--emitDeclarationOnly', + '--declaration', + '--outDir', + 'dist', + ], +]; + +for (const args of steps) { + const [command, ...commandArgs] = pnpmCommand; + const result = spawnSync(command, [...commandArgs, ...args], { + shell: false, + stdio: 'inherit', + }); + + if (result.error) { + throw result.error; + } + + if (result.status !== 0) { + process.exit(result.status ?? 1); + } +} diff --git a/internal/node-utils/src/date.ts b/internal/node-utils/src/date.ts index d36572d97..7b11583f3 100644 --- a/internal/node-utils/src/date.ts +++ b/internal/node-utils/src/date.ts @@ -1,6 +1,6 @@ import dayjs from 'dayjs'; -import timezone from 'dayjs/plugin/timezone'; -import utc from 'dayjs/plugin/utc'; +import timezone from 'dayjs/plugin/timezone.js'; +import utc from 'dayjs/plugin/utc.js'; dayjs.extend(utc); dayjs.extend(timezone); diff --git a/internal/node-utils/src/monorepo.ts b/internal/node-utils/src/monorepo.ts index b6373e78b..d0c384f50 100644 --- a/internal/node-utils/src/monorepo.ts +++ b/internal/node-utils/src/monorepo.ts @@ -1,10 +1,13 @@ +import type { Package } from '@manypkg/get-packages'; + import { dirname } from 'node:path'; -import { - getPackages as getPackagesFunc, - getPackagesSync as getPackagesSyncFunc, -} from '@manypkg/get-packages'; -import { findUpSync } from 'find-up'; +import * as manypkg from '@manypkg/get-packages'; +import * as findUp from 'find-up'; + +const { getPackages: getPackagesFunc, getPackagesSync: getPackagesSyncFunc } = + manypkg; +const { findUpSync } = findUp; /** * 查找大仓的根目录 @@ -40,7 +43,7 @@ async function getPackages() { */ async function getPackage(pkgName: string) { const { packages } = await getPackages(); - return packages.find((pkg) => pkg.packageJson.name === pkgName); + return packages.find((pkg: Package) => pkg.packageJson.name === pkgName); } export { findMonorepoRoot, getPackage, getPackages, getPackagesSync }; diff --git a/internal/node-utils/tsconfig.build.json b/internal/node-utils/tsconfig.build.json new file mode 100644 index 000000000..b62e0ab6b --- /dev/null +++ b/internal/node-utils/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false + }, + "exclude": ["node_modules", "src/__tests__"] +} diff --git a/internal/node-utils/tsdown.config.ts b/internal/node-utils/tsdown.config.ts new file mode 100644 index 000000000..4a607e00c --- /dev/null +++ b/internal/node-utils/tsdown.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: false, + deps: { + skipNodeModulesBundle: true, + }, + entry: ['src/index.ts'], + format: ['esm'], +}); From 675d8b0179159925c8f9e48399e65d3d8f5cb51c Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:40:17 +0800 Subject: [PATCH 10/39] chore(core-icons): migrate build to tsdown --- packages/@core/base/icons/package.json | 4 ++-- packages/@core/base/icons/tsdown.config.ts | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/@core/base/icons/package.json b/packages/@core/base/icons/package.json index 499fee711..a26d8b618 100644 --- a/packages/@core/base/icons/package.json +++ b/packages/@core/base/icons/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "tsdown" + "build": "pnpm exec tsdown" }, "files": [ "dist" @@ -28,7 +28,7 @@ "publishConfig": { "exports": { ".": { - "types": "./dist/index.d.mts", + "types": "./dist/index.d.ts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/base/icons/tsdown.config.ts b/packages/@core/base/icons/tsdown.config.ts index ad91feebb..c4f51c5ee 100644 --- a/packages/@core/base/icons/tsdown.config.ts +++ b/packages/@core/base/icons/tsdown.config.ts @@ -5,4 +5,7 @@ export default defineConfig({ dts: true, entry: ['src/index.ts'], format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + }), }); From 59912a00bc957dc9b7ef7939310f415c8f0d7e42 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:40:29 +0800 Subject: [PATCH 11/39] chore(core-shared): migrate build to tsdown --- packages/@core/base/shared/package.json | 16 ++++++++-------- .../base/shared/src/utils/__tests__/date.test.ts | 4 ++-- packages/@core/base/shared/src/utils/date.ts | 4 ++-- packages/@core/base/shared/tsdown.config.ts | 3 +++ 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/packages/@core/base/shared/package.json b/packages/@core/base/shared/package.json index d58ff5d3c..94ad567f8 100644 --- a/packages/@core/base/shared/package.json +++ b/packages/@core/base/shared/package.json @@ -11,8 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "tsdown", - "stub": "tsdown" + "build": "pnpm exec tsdown", + "stub": "pnpm exec tsdown" }, "files": [ "dist" @@ -53,27 +53,27 @@ "publishConfig": { "exports": { "./constants": { - "types": "./dist/constants/index.d.mts", + "types": "./dist/constants/index.d.ts", "default": "./dist/constants/index.mjs" }, "./utils": { - "types": "./dist/utils/index.d.mts", + "types": "./dist/utils/index.d.ts", "default": "./dist/utils/index.mjs" }, "./color": { - "types": "./dist/color/index.d.mts", + "types": "./dist/color/index.d.ts", "default": "./dist/color/index.mjs" }, "./cache": { - "types": "./dist/cache/index.d.mts", + "types": "./dist/cache/index.d.ts", "default": "./dist/cache/index.mjs" }, "./store": { - "types": "./dist/store.d.mts", + "types": "./dist/store.d.ts", "default": "./dist/store.mjs" }, "./global-state": { - "types": "./dist/global-state.d.mts", + "types": "./dist/global-state.d.ts", "default": "./dist/global-state.mjs" } } diff --git a/packages/@core/base/shared/src/utils/__tests__/date.test.ts b/packages/@core/base/shared/src/utils/__tests__/date.test.ts index 46a27c588..dc8a9e88d 100644 --- a/packages/@core/base/shared/src/utils/__tests__/date.test.ts +++ b/packages/@core/base/shared/src/utils/__tests__/date.test.ts @@ -1,6 +1,6 @@ import dayjs from 'dayjs'; -import timezone from 'dayjs/plugin/timezone'; -import utc from 'dayjs/plugin/utc'; +import timezone from 'dayjs/plugin/timezone.js'; +import utc from 'dayjs/plugin/utc.js'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { diff --git a/packages/@core/base/shared/src/utils/date.ts b/packages/@core/base/shared/src/utils/date.ts index 926050d11..c68c33850 100644 --- a/packages/@core/base/shared/src/utils/date.ts +++ b/packages/@core/base/shared/src/utils/date.ts @@ -1,6 +1,6 @@ import dayjs from 'dayjs'; -import timezone from 'dayjs/plugin/timezone'; -import utc from 'dayjs/plugin/utc'; +import timezone from 'dayjs/plugin/timezone.js'; +import utc from 'dayjs/plugin/utc.js'; dayjs.extend(utc); dayjs.extend(timezone); diff --git a/packages/@core/base/shared/tsdown.config.ts b/packages/@core/base/shared/tsdown.config.ts index 5226ddae6..d83605cad 100644 --- a/packages/@core/base/shared/tsdown.config.ts +++ b/packages/@core/base/shared/tsdown.config.ts @@ -12,4 +12,7 @@ export default defineConfig({ 'utils/index': 'src/utils/index.ts', }, format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + }), }); From ed3cd2fe3b7e235d284eb2b8d765ef3bc3ee6183 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:40:36 +0800 Subject: [PATCH 12/39] chore(core-typings): migrate build to tsdown --- packages/@core/base/typings/package.json | 6 +++--- packages/@core/base/typings/tsdown.config.ts | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/@core/base/typings/package.json b/packages/@core/base/typings/package.json index 591bbaae4..393a7acc6 100644 --- a/packages/@core/base/typings/package.json +++ b/packages/@core/base/typings/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "tsdown" + "build": "pnpm exec tsdown" }, "files": [ "dist", @@ -19,7 +19,7 @@ ], "main": "./dist/index.mjs", "module": "./dist/index.mjs", - "types": "./dist/index.d.mts", + "types": "./dist/index.d.ts", "exports": { ".": { "types": "./src/index.ts", @@ -33,7 +33,7 @@ "publishConfig": { "exports": { ".": { - "types": "./dist/index.d.mts", + "types": "./dist/index.d.ts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/base/typings/tsdown.config.ts b/packages/@core/base/typings/tsdown.config.ts index ad91feebb..c4f51c5ee 100644 --- a/packages/@core/base/typings/tsdown.config.ts +++ b/packages/@core/base/typings/tsdown.config.ts @@ -5,4 +5,7 @@ export default defineConfig({ dts: true, entry: ['src/index.ts'], format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + }), }); From f154d53be991b95a8204bb089245c8fa005bd798 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:40:42 +0800 Subject: [PATCH 13/39] chore(core-composables): migrate build to tsdown --- packages/@core/composables/package.json | 4 ++-- packages/@core/composables/tsdown.config.ts | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/@core/composables/package.json b/packages/@core/composables/package.json index ba8cda3ee..b33c33fef 100644 --- a/packages/@core/composables/package.json +++ b/packages/@core/composables/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "tsdown" + "build": "pnpm exec tsdown" }, "files": [ "dist" @@ -29,7 +29,7 @@ "publishConfig": { "exports": { ".": { - "types": "./dist/index.d.mts", + "types": "./dist/index.d.ts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/composables/tsdown.config.ts b/packages/@core/composables/tsdown.config.ts index ad91feebb..c4f51c5ee 100644 --- a/packages/@core/composables/tsdown.config.ts +++ b/packages/@core/composables/tsdown.config.ts @@ -5,4 +5,7 @@ export default defineConfig({ dts: true, entry: ['src/index.ts'], format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + }), }); From 0babdfbc44ed8e457a2c658e4ae65d4d9d4e6e6c Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:40:48 +0800 Subject: [PATCH 14/39] chore(core-preferences): migrate build to tsdown --- packages/@core/preferences/package.json | 2 +- packages/@core/preferences/tsdown.config.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/@core/preferences/package.json b/packages/@core/preferences/package.json index 620e89edd..53f331854 100644 --- a/packages/@core/preferences/package.json +++ b/packages/@core/preferences/package.json @@ -11,7 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "tsdown" + "build": "pnpm exec tsdown" }, "files": [ "dist", diff --git a/packages/@core/preferences/tsdown.config.ts b/packages/@core/preferences/tsdown.config.ts index ad91feebb..c4f51c5ee 100644 --- a/packages/@core/preferences/tsdown.config.ts +++ b/packages/@core/preferences/tsdown.config.ts @@ -5,4 +5,7 @@ export default defineConfig({ dts: true, entry: ['src/index.ts'], format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + }), }); From af09d652a3aaca52ae393894d6da113f2cb084eb Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:40:54 +0800 Subject: [PATCH 15/39] chore(turbo-run): migrate build to tsdown --- scripts/turbo-run/build.config.ts | 7 ------- scripts/turbo-run/package.json | 3 ++- scripts/turbo-run/tsdown.config.ts | 11 +++++++++++ 3 files changed, 13 insertions(+), 8 deletions(-) delete mode 100644 scripts/turbo-run/build.config.ts create mode 100644 scripts/turbo-run/tsdown.config.ts diff --git a/scripts/turbo-run/build.config.ts b/scripts/turbo-run/build.config.ts deleted file mode 100644 index 97e572c56..000000000 --- a/scripts/turbo-run/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: ['src/index'], -}); diff --git a/scripts/turbo-run/package.json b/scripts/turbo-run/package.json index b2acd458f..57b1dca05 100644 --- a/scripts/turbo-run/package.json +++ b/scripts/turbo-run/package.json @@ -5,7 +5,8 @@ "license": "MIT", "type": "module", "scripts": { - "stub": "pnpm unbuild --stub" + "build": "pnpm exec tsdown", + "stub": "pnpm exec tsdown" }, "files": [ "dist" diff --git a/scripts/turbo-run/tsdown.config.ts b/scripts/turbo-run/tsdown.config.ts new file mode 100644 index 000000000..c4f51c5ee --- /dev/null +++ b/scripts/turbo-run/tsdown.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + dts: true, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + }), +}); From dba774e1c76683f45f5b57a5df95062ee24b615f Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:41:00 +0800 Subject: [PATCH 16/39] chore(vsh): migrate build to tsdown --- scripts/vsh/build.config.ts | 7 ------- scripts/vsh/package.json | 3 ++- scripts/vsh/tsdown.config.ts | 11 +++++++++++ 3 files changed, 13 insertions(+), 8 deletions(-) delete mode 100644 scripts/vsh/build.config.ts create mode 100644 scripts/vsh/tsdown.config.ts diff --git a/scripts/vsh/build.config.ts b/scripts/vsh/build.config.ts deleted file mode 100644 index 97e572c56..000000000 --- a/scripts/vsh/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: ['src/index'], -}); diff --git a/scripts/vsh/package.json b/scripts/vsh/package.json index 441dbb756..8bea4f025 100644 --- a/scripts/vsh/package.json +++ b/scripts/vsh/package.json @@ -5,7 +5,8 @@ "license": "MIT", "type": "module", "scripts": { - "stub": "pnpm unbuild --stub" + "build": "pnpm exec tsdown", + "stub": "pnpm exec tsdown" }, "files": [ "dist" diff --git a/scripts/vsh/tsdown.config.ts b/scripts/vsh/tsdown.config.ts new file mode 100644 index 000000000..c4f51c5ee --- /dev/null +++ b/scripts/vsh/tsdown.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + dts: true, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + }), +}); From 913f77fd2f603d7e1df40c5811be1cd433a4d2f7 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 19:41:17 +0800 Subject: [PATCH 17/39] chore(pnpm): sync lockfile for tsdown migration --- pnpm-lock.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4f8ccb35e..cec9fa055 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1017,10 +1017,6 @@ importers: internal/lint-configs/eslint-config: dependencies: - '@vben/oxlint-config': - specifier: workspace:* - version: link:../oxlint-config - devDependencies: '@eslint/js': specifier: 'catalog:' version: 10.0.1(eslint@10.0.3(jiti@2.6.1)) @@ -1030,6 +1026,9 @@ importers: '@typescript-eslint/parser': specifier: 'catalog:' version: 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) + '@vben/oxlint-config': + specifier: workspace:* + version: link:../oxlint-config eslint: specifier: 'catalog:' version: 10.0.3(jiti@2.6.1) From 26e9aa244b1c655377cdd49e12a5d5ce753a88f2 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 20:27:01 +0800 Subject: [PATCH 18/39] fix(vite): adapt rolldown workspace resolution --- internal/vite-config/package.json | 3 +- internal/vite-config/src/plugins/index.ts | 5 +- internal/vite-config/src/typing.ts | 2 +- packages/@core/base/design/package.json | 2 + packages/@core/base/icons/package.json | 1 + packages/@core/base/shared/package.json | 6 + packages/@core/base/typings/package.json | 1 + packages/@core/composables/package.json | 1 + packages/@core/ui-kit/form-ui/package.json | 1 + packages/@core/ui-kit/layout-ui/package.json | 1 + packages/@core/ui-kit/menu-ui/package.json | 1 + packages/@core/ui-kit/popup-ui/package.json | 1 + packages/@core/ui-kit/tabs-ui/package.json | 1 + pnpm-lock.yaml | 347 +++---------------- pnpm-workspace.yaml | 3 +- 15 files changed, 77 insertions(+), 299 deletions(-) diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index d8e87d11b..129113704 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -48,13 +48,12 @@ "@vitejs/plugin-vue-jsx": "catalog:", "dayjs": "catalog:", "dotenv": "catalog:", - "rollup": "catalog:", "rollup-plugin-visualizer": "catalog:", "sass": "catalog:", "sass-embedded": "catalog:", + "unplugin-dts": "catalog:", "vite": "catalog:", "vite-plugin-compression": "catalog:", - "vite-plugin-dts": "catalog:", "vite-plugin-html": "catalog:", "vite-plugin-lazy-import": "catalog:" } diff --git a/internal/vite-config/src/plugins/index.ts b/internal/vite-config/src/plugins/index.ts index 114d4d837..9d3ba3f1c 100644 --- a/internal/vite-config/src/plugins/index.ts +++ b/internal/vite-config/src/plugins/index.ts @@ -12,8 +12,8 @@ import tailwindcss from '@tailwindcss/vite'; import viteVue from '@vitejs/plugin-vue'; import viteVueJsx from '@vitejs/plugin-vue-jsx'; import { visualizer as viteVisualizerPlugin } from 'rollup-plugin-visualizer'; +import viteDtsPlugin from 'unplugin-dts/vite'; import viteCompressPlugin from 'vite-plugin-compression'; -import viteDtsPlugin from 'vite-plugin-dts'; import { createHtmlPlugin as viteHtmlPlugin } from 'vite-plugin-html'; import { VitePWA } from 'vite-plugin-pwa'; import viteVueDevTools from 'vite-plugin-vue-devtools'; @@ -231,12 +231,13 @@ async function loadLibraryPlugins( // 单独取,否则commonOptions拿不到 const isBuild = options.isBuild; const { dts, ...commonOptions } = options; + const dtsOptions = typeof dts === 'object' ? dts : undefined; const commonPlugins = await loadCommonPlugins(commonOptions); return await loadConditionPlugins([ ...commonPlugins, { condition: isBuild && !!dts, - plugins: () => [viteDtsPlugin({ logLevel: 'error' })], + plugins: () => [viteDtsPlugin(dtsOptions)], }, ]); } diff --git a/internal/vite-config/src/typing.ts b/internal/vite-config/src/typing.ts index 2dd048306..376b47b8a 100644 --- a/internal/vite-config/src/typing.ts +++ b/internal/vite-config/src/typing.ts @@ -1,11 +1,11 @@ import type { PluginVisualizerOptions } from 'rollup-plugin-visualizer'; +import type { PluginOptions } from 'unplugin-dts'; import type { ConfigEnv, PluginOption, UserConfig, UserConfigFnPromise, } from 'vite'; -import type { PluginOptions } from 'vite-plugin-dts'; import type { Options as PwaPluginOptions } from 'vite-plugin-pwa'; /** diff --git a/packages/@core/base/design/package.json b/packages/@core/base/design/package.json index 071049c80..e5a6d6e83 100644 --- a/packages/@core/base/design/package.json +++ b/packages/@core/base/design/package.json @@ -23,6 +23,7 @@ "exports": { "./bem": { "development": "./src/scss-bem/bem.scss", + "production": "./src/scss-bem/bem.scss", "default": "./dist/bem.scss" }, "./theme": { @@ -31,6 +32,7 @@ ".": { "types": "./src/index.ts", "development": "./src/index.ts", + "production": "./src/index.ts", "default": "./dist/design.css" } }, diff --git a/packages/@core/base/icons/package.json b/packages/@core/base/icons/package.json index a26d8b618..558a5b7ca 100644 --- a/packages/@core/base/icons/package.json +++ b/packages/@core/base/icons/package.json @@ -22,6 +22,7 @@ ".": { "types": "./src/index.ts", "development": "./src/index.ts", + "production": "./src/index.ts", "default": "./dist/index.mjs" } }, diff --git a/packages/@core/base/shared/package.json b/packages/@core/base/shared/package.json index 94ad567f8..f6405b92a 100644 --- a/packages/@core/base/shared/package.json +++ b/packages/@core/base/shared/package.json @@ -22,31 +22,37 @@ "./constants": { "types": "./src/constants/index.ts", "development": "./src/constants/index.ts", + "production": "./src/constants/index.ts", "default": "./dist/constants/index.mjs" }, "./utils": { "types": "./src/utils/index.ts", "development": "./src/utils/index.ts", + "production": "./src/utils/index.ts", "default": "./dist/utils/index.mjs" }, "./color": { "types": "./src/color/index.ts", "development": "./src/color/index.ts", + "production": "./src/color/index.ts", "default": "./dist/color/index.mjs" }, "./cache": { "types": "./src/cache/index.ts", "development": "./src/cache/index.ts", + "production": "./src/cache/index.ts", "default": "./dist/cache/index.mjs" }, "./store": { "types": "./src/store.ts", "development": "./src/store.ts", + "production": "./src/store.ts", "default": "./dist/store.mjs" }, "./global-state": { "types": "./src/global-state.ts", "development": "./src/global-state.ts", + "production": "./src/global-state.ts", "default": "./dist/global-state.mjs" } }, diff --git a/packages/@core/base/typings/package.json b/packages/@core/base/typings/package.json index 393a7acc6..b90f3df25 100644 --- a/packages/@core/base/typings/package.json +++ b/packages/@core/base/typings/package.json @@ -24,6 +24,7 @@ ".": { "types": "./src/index.ts", "development": "./src/index.ts", + "production": "./src/index.ts", "default": "./dist/index.mjs" }, "./vue-router": { diff --git a/packages/@core/composables/package.json b/packages/@core/composables/package.json index b33c33fef..de58e59ff 100644 --- a/packages/@core/composables/package.json +++ b/packages/@core/composables/package.json @@ -23,6 +23,7 @@ ".": { "types": "./src/index.ts", "development": "./src/index.ts", + "production": "./src/index.ts", "default": "./dist/index.mjs" } }, diff --git a/packages/@core/ui-kit/form-ui/package.json b/packages/@core/ui-kit/form-ui/package.json index 7ea3b3ace..c9db6eca2 100644 --- a/packages/@core/ui-kit/form-ui/package.json +++ b/packages/@core/ui-kit/form-ui/package.json @@ -26,6 +26,7 @@ ".": { "types": "./src/index.ts", "development": "./src/index.ts", + "production": "./src/index.ts", "default": "./dist/index.mjs" } }, diff --git a/packages/@core/ui-kit/layout-ui/package.json b/packages/@core/ui-kit/layout-ui/package.json index 9554b4bac..f1a01bbeb 100644 --- a/packages/@core/ui-kit/layout-ui/package.json +++ b/packages/@core/ui-kit/layout-ui/package.json @@ -26,6 +26,7 @@ ".": { "types": "./src/index.ts", "development": "./src/index.ts", + "production": "./src/index.ts", "default": "./dist/index.mjs" } }, diff --git a/packages/@core/ui-kit/menu-ui/package.json b/packages/@core/ui-kit/menu-ui/package.json index dfb3fabe1..fa3a4015b 100644 --- a/packages/@core/ui-kit/menu-ui/package.json +++ b/packages/@core/ui-kit/menu-ui/package.json @@ -26,6 +26,7 @@ ".": { "types": "./src/index.ts", "development": "./src/index.ts", + "production": "./src/index.ts", "default": "./dist/index.mjs" } }, diff --git a/packages/@core/ui-kit/popup-ui/package.json b/packages/@core/ui-kit/popup-ui/package.json index fb885d3a5..0d4d2c42c 100644 --- a/packages/@core/ui-kit/popup-ui/package.json +++ b/packages/@core/ui-kit/popup-ui/package.json @@ -26,6 +26,7 @@ ".": { "types": "./src/index.ts", "development": "./src/index.ts", + "production": "./src/index.ts", "default": "./dist/index.mjs" } }, diff --git a/packages/@core/ui-kit/tabs-ui/package.json b/packages/@core/ui-kit/tabs-ui/package.json index c436122a9..f329c04bc 100644 --- a/packages/@core/ui-kit/tabs-ui/package.json +++ b/packages/@core/ui-kit/tabs-ui/package.json @@ -26,6 +26,7 @@ ".": { "types": "./src/index.ts", "development": "./src/index.ts", + "production": "./src/index.ts", "default": "./dist/index.mjs" } }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cec9fa055..f6cc29406 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -342,9 +342,6 @@ catalogs: rimraf: specifier: ^6.1.3 version: 6.1.3 - rollup: - specifier: ^4.59.0 - version: 4.59.0 rollup-plugin-visualizer: specifier: ^7.0.1 version: 7.0.1 @@ -414,6 +411,9 @@ catalogs: unbuild: specifier: ^3.6.1 version: 3.6.1 + unplugin-dts: + specifier: ^1.0.0-beta.6 + version: 1.0.0-beta.6 unplugin-element-plus: specifier: ^0.11.2 version: 0.11.2 @@ -426,9 +426,6 @@ catalogs: vite-plugin-compression: specifier: ^0.5.1 version: 0.5.1 - vite-plugin-dts: - specifier: ^4.5.4 - version: 4.5.4 vite-plugin-html: specifier: ^3.2.2 version: 3.2.2 @@ -1229,9 +1226,6 @@ importers: dotenv: specifier: 'catalog:' version: 17.3.1 - rollup: - specifier: 'catalog:' - version: 4.59.0 rollup-plugin-visualizer: specifier: 'catalog:' version: 7.0.1(rolldown@1.0.0-rc.9)(rollup@4.59.0) @@ -1241,15 +1235,15 @@ importers: sass-embedded: specifier: 'catalog:' version: 1.98.0 + unplugin-dts: + specifier: 'catalog:' + version: 1.0.0-beta.6(esbuild@0.27.4)(rolldown@1.0.0-rc.9)(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) vite: specifier: 'catalog:' version: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) vite-plugin-compression: specifier: 'catalog:' version: 0.5.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) - vite-plugin-dts: - specifier: 'catalog:' - version: 4.5.4(@types/node@25.5.0)(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) vite-plugin-html: specifier: 'catalog:' version: 3.2.2(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) @@ -3974,19 +3968,6 @@ packages: engines: {node: '>=18'} hasBin: true - '@microsoft/api-extractor-model@7.33.4': - resolution: {integrity: sha512-u1LTaNTikZAQ9uK6KG1Ms7nvNedsnODnspq/gH2dcyETWvH4hVNGNDvRAEutH66kAmxA4/necElqGNs1FggC8w==} - - '@microsoft/api-extractor@7.57.7': - resolution: {integrity: sha512-kmnmVs32MFWbV5X6BInC1/TfCs7y1ugwxv1xHsAIj/DyUfoe7vtO0alRUgbQa57+yRGHBBjlNcEk33SCAt5/dA==} - hasBin: true - - '@microsoft/tsdoc-config@0.18.1': - resolution: {integrity: sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg==} - - '@microsoft/tsdoc@0.16.0': - resolution: {integrity: sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==} - '@napi-rs/wasm-runtime@1.1.1': resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} @@ -4834,36 +4815,6 @@ packages: cpu: [x64] os: [win32] - '@rushstack/node-core-library@5.20.3': - resolution: {integrity: sha512-95JgEPq2k7tHxhF9/OJnnyHDXfC9cLhhta0An/6MlkDsX2A6dTzDrTUG18vx4vjc280V0fi0xDH9iQczpSuWsw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/problem-matcher@0.2.1': - resolution: {integrity: sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/rig-package@0.7.2': - resolution: {integrity: sha512-9XbFWuqMYcHUso4mnETfhGVUSaADBRj6HUAAEYk50nMPn8WRICmBuCphycQGNB3duIR6EEZX3Xj3SYc2XiP+9A==} - - '@rushstack/terminal@0.22.3': - resolution: {integrity: sha512-gHC9pIMrUPzAbBiI4VZMU7Q+rsCzb8hJl36lFIulIzoceKotyKL3Rd76AZ2CryCTKEg+0bnTj406HE5YY5OQvw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/ts-command-line@5.3.3': - resolution: {integrity: sha512-c+ltdcvC7ym+10lhwR/vWiOhsrm/bP3By2VsFcs5qTKv+6tTmxgbVrtJ5NdNjANiV5TcmOZgUN+5KYQ4llsvEw==} - '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -5076,9 +5027,6 @@ packages: '@types/archiver@7.0.0': resolution: {integrity: sha512-/3vwGwx9n+mCQdYZ2IKGGHEFL30I96UgBlk8EtRDDFQ9uxM1l4O5Ci6r00EMAkiDaTqD9DQ6nVrWRICnBPtzzg==} - '@types/argparse@1.0.38': - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -5608,9 +5556,6 @@ packages: '@vue/compiler-ssr@3.5.30': resolution: {integrity: sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA==} - '@vue/compiler-vue2@2.7.16': - resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} - '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} @@ -5637,14 +5582,6 @@ packages: '@vue/devtools-shared@8.1.0': resolution: {integrity: sha512-h8uCb4Qs8UT8VdTT5yjY6tOJ//qH7EpxToixR0xqejR55t5OdISIg7AJ7eBkhBs8iu1qG5gY3QQNN1DF1EelAA==} - '@vue/language-core@2.2.0': - resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@vue/language-core@3.2.5': resolution: {integrity: sha512-d3OIxN/+KRedeM5wQ6H6NIpwS3P5gC9nmyaHgBk+rO6dIsjY+tOh4UlPpiZbAh3YtLdCGEX4M16RmsBqPmJV+g==} @@ -5836,22 +5773,6 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} @@ -5862,9 +5783,6 @@ packages: resolution: {integrity: sha512-1K0wtDaRONwfhL4h8bbJ9qTjmY6rhGgRvvagXkMBsAOMNr+3Q2SffHECh9DIuNVrMA1JwA0zCwhyepgBZVakng==} engines: {node: '>= 14.0.0'} - alien-signals@0.4.14: - resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} - alien-signals@3.1.2: resolution: {integrity: sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==} @@ -6712,9 +6630,6 @@ packages: sqlite3: optional: true - de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -6815,10 +6730,6 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@8.0.3: - resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} - engines: {node: '>=0.3.1'} - dijkstrajs@1.0.3: resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} @@ -7437,10 +7348,6 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.3.4: - resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} - engines: {node: '>=14.14'} - fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -7795,10 +7702,6 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} @@ -8594,10 +8497,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - lucide-vue-next@0.577.0: resolution: {integrity: sha512-py05bAfv9SHVJqscbiOnjcnLlEmOffA58a+7XhZuFxrs6txe1E8VoR1ngWGTYO+9aVKABAz8l3ee3PqiQN9QPA==} peerDependencies: @@ -8720,10 +8619,6 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} - minimatch@10.2.3: - resolution: {integrity: sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==} - engines: {node: 18 || 20 || >=22} - minimatch@10.2.4: resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} engines: {node: 18 || 20 || >=22} @@ -9995,11 +9890,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.4: resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} @@ -10180,10 +10070,6 @@ packages: streamx@2.23.0: resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -10269,10 +10155,6 @@ packages: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - strip-literal@3.1.0: resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} @@ -10661,11 +10543,6 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript@5.8.2: - resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -10772,6 +10649,36 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unplugin-dts@1.0.0-beta.6: + resolution: {integrity: sha512-+xbFv5aVFtLZFNBAKI4+kXmd2h+T42/AaP8Bsp0YP/je/uOTN94Ame2Xt3e9isZS+Z7/hrLCLbsVJh+saqFMfQ==} + peerDependencies: + '@microsoft/api-extractor': '>=7' + '@rspack/core': ^1 + '@vue/language-core': ~3.0.1 + esbuild: '*' + rolldown: '*' + rollup: '>=3' + typescript: '>=4' + vite: '>=3' + webpack: ^4 || ^5 + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@rspack/core': + optional: true + '@vue/language-core': + optional: true + esbuild: + optional: true + rolldown: + optional: true + rollup: + optional: true + vite: + optional: true + webpack: + optional: true + unplugin-element-plus@0.11.2: resolution: {integrity: sha512-jr88ePpv43h8cCmVW0SqM73sTD+g1n9Rmy4uMbTh+pSmceH9ZdKteWX9f+twC4aDlP3svdZuKMqLoUNBT2V6Tg==} engines: {node: '>=20.19.0'} @@ -10940,15 +10847,6 @@ packages: peerDependencies: vite: '>=2.0.0' - vite-plugin-dts@4.5.4: - resolution: {integrity: sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==} - peerDependencies: - typescript: '*' - vite: '*' - peerDependenciesMeta: - vite: - optional: true - vite-plugin-html@3.2.2: resolution: {integrity: sha512-vb9C9kcdzcIo/Oc3CLZVS03dL5pDlOFuhGlZYDCJ840BhWl/0nGeZWf3Qy7NlOayscY4Cm/QRgULCQkEZige5Q==} peerDependencies: @@ -13613,42 +13511,6 @@ snapshots: - encoding - supports-color - '@microsoft/api-extractor-model@7.33.4(@types/node@25.5.0)': - dependencies: - '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.1 - '@rushstack/node-core-library': 5.20.3(@types/node@25.5.0) - transitivePeerDependencies: - - '@types/node' - - '@microsoft/api-extractor@7.57.7(@types/node@25.5.0)': - dependencies: - '@microsoft/api-extractor-model': 7.33.4(@types/node@25.5.0) - '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.1 - '@rushstack/node-core-library': 5.20.3(@types/node@25.5.0) - '@rushstack/rig-package': 0.7.2 - '@rushstack/terminal': 0.22.3(@types/node@25.5.0) - '@rushstack/ts-command-line': 5.3.3(@types/node@25.5.0) - diff: 8.0.3 - lodash: 4.17.23 - minimatch: 10.2.3 - resolve: 1.22.11 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.8.2 - transitivePeerDependencies: - - '@types/node' - - '@microsoft/tsdoc-config@0.18.1': - dependencies: - '@microsoft/tsdoc': 0.16.0 - ajv: 8.18.0 - jju: 1.4.0 - resolve: 1.22.11 - - '@microsoft/tsdoc@0.16.0': {} - '@napi-rs/wasm-runtime@1.1.1': dependencies: '@emnapi/core': 1.9.0 @@ -14269,45 +14131,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.59.0': optional: true - '@rushstack/node-core-library@5.20.3(@types/node@25.5.0)': - dependencies: - ajv: 8.18.0 - ajv-draft-04: 1.0.0(ajv@8.18.0) - ajv-formats: 3.0.1(ajv@8.18.0) - fs-extra: 11.3.4 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.11 - semver: 7.5.4 - optionalDependencies: - '@types/node': 25.5.0 - - '@rushstack/problem-matcher@0.2.1(@types/node@25.5.0)': - optionalDependencies: - '@types/node': 25.5.0 - - '@rushstack/rig-package@0.7.2': - dependencies: - resolve: 1.22.11 - strip-json-comments: 3.1.1 - - '@rushstack/terminal@0.22.3(@types/node@25.5.0)': - dependencies: - '@rushstack/node-core-library': 5.20.3(@types/node@25.5.0) - '@rushstack/problem-matcher': 0.2.1(@types/node@25.5.0) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 25.5.0 - - '@rushstack/ts-command-line@5.3.3(@types/node@25.5.0)': - dependencies: - '@rushstack/terminal': 0.22.3(@types/node@25.5.0) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - '@sec-ant/readable-stream@0.4.1': {} '@shikijs/core@2.5.0': @@ -14506,8 +14329,6 @@ snapshots: dependencies: '@types/readdir-glob': 1.1.5 - '@types/argparse@1.0.38': {} - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -15166,11 +14987,6 @@ snapshots: '@vue/compiler-dom': 3.5.30 '@vue/shared': 3.5.30 - '@vue/compiler-vue2@2.7.16': - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - '@vue/devtools-api@6.6.4': {} '@vue/devtools-api@7.7.9': @@ -15210,19 +15026,6 @@ snapshots: '@vue/devtools-shared@8.1.0': {} - '@vue/language-core@2.2.0(typescript@5.9.3)': - dependencies: - '@volar/language-core': 2.4.28 - '@vue/compiler-dom': 3.5.30 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.30 - alien-signals: 0.4.14 - minimatch: 9.0.9 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 5.9.3 - '@vue/language-core@3.2.5': dependencies: '@volar/language-core': 2.4.28 @@ -15392,14 +15195,6 @@ snapshots: agent-base@7.1.4: {} - ajv-draft-04@1.0.0(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 - - ajv-formats@3.0.1(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 - ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 @@ -15431,8 +15226,6 @@ snapshots: '@algolia/requester-fetch': 5.49.2 '@algolia/requester-node-http': 5.49.2 - alien-signals@0.4.14: {} - alien-signals@3.1.2: {} ansi-align@3.0.1: @@ -16428,8 +16221,6 @@ snapshots: db0@0.3.4: {} - de-indent@1.0.2: {} - debug@4.4.3: dependencies: ms: 2.1.3 @@ -16521,8 +16312,6 @@ snapshots: diff-sequences@29.6.3: {} - diff@8.0.3: {} - dijkstrajs@1.0.3: {} dir-glob@3.0.1: @@ -17324,12 +17113,6 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 - fs-extra@11.3.4: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.2.0 - universalify: 2.0.1 - fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -17742,8 +17525,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-lazy@4.0.0: {} - import-meta-resolve@4.2.0: {} import-without-cache@0.2.5: {} @@ -18433,10 +18214,6 @@ snapshots: dependencies: yallist: 3.1.1 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - lucide-vue-next@0.577.0(vue@3.5.30(typescript@5.9.3)): dependencies: vue: 3.5.30(typescript@5.9.3) @@ -18546,10 +18323,6 @@ snapshots: mimic-function@5.0.1: {} - minimatch@10.2.3: - dependencies: - brace-expansion: 5.0.4 - minimatch@10.2.4: dependencies: brace-expansion: 5.0.4 @@ -19938,10 +19711,6 @@ snapshots: semver@6.3.1: {} - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 - semver@7.7.4: {} send@1.2.1: @@ -20146,8 +19915,6 @@ snapshots: - bare-abort-controller - react-native-b4a - string-argv@0.3.2: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -20253,8 +20020,6 @@ snapshots: strip-json-comments@2.0.1: {} - strip-json-comments@3.1.1: {} - strip-literal@3.1.0: dependencies: js-tokens: 9.0.1 @@ -20691,8 +20456,6 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript@5.8.2: {} - typescript@5.9.3: {} ufo@1.6.3: {} @@ -20833,6 +20596,25 @@ snapshots: universalify@2.0.1: {} + unplugin-dts@1.0.0-beta.6(esbuild@0.27.4)(rolldown@1.0.0-rc.9)(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.59.0) + '@volar/typescript': 2.4.28 + compare-versions: 6.1.1 + debug: 4.4.3 + kolorist: 1.8.0 + local-pkg: 1.1.2 + magic-string: 0.30.21 + typescript: 5.9.3 + unplugin: 2.3.11 + optionalDependencies: + esbuild: 0.27.4 + rolldown: 1.0.0-rc.9 + rollup: 4.59.0 + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + transitivePeerDependencies: + - supports-color + unplugin-element-plus@0.11.2(magicast@0.5.2): dependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) @@ -20981,25 +20763,6 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-dts@4.5.4(@types/node@25.5.0)(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): - dependencies: - '@microsoft/api-extractor': 7.57.7(@types/node@25.5.0) - '@rollup/pluginutils': 5.3.0(rollup@4.59.0) - '@volar/typescript': 2.4.28 - '@vue/language-core': 2.2.0(typescript@5.9.3) - compare-versions: 6.1.1 - debug: 4.4.3 - kolorist: 1.8.0 - local-pkg: 1.1.2 - magic-string: 0.30.21 - typescript: 5.9.3 - optionalDependencies: - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - vite-plugin-html@3.2.2(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): dependencies: '@rollup/pluginutils': 4.2.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 605f56163..9668bdb12 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -136,7 +136,6 @@ catalog: reka-ui: ^2.9.2 resolve.exports: ^2.0.3 rimraf: ^6.1.3 - rollup: ^4.59.0 rollup-plugin-visualizer: ^7.0.1 sass: ^1.98.0 sass-embedded: ^1.98.0 @@ -160,11 +159,11 @@ catalog: tw-animate-css: ^1.4.0 typescript: ^5.9.3 unbuild: ^3.6.1 + unplugin-dts: ^1.0.0-beta.6 unplugin-element-plus: ^0.11.2 vee-validate: ^4.15.1 vite: ^8.0.0 vite-plugin-compression: ^0.5.1 - vite-plugin-dts: ^4.5.4 vite-plugin-html: ^3.2.2 vite-plugin-lazy-import: ^1.0.7 vite-plugin-pwa: ^1.2.0 From 70dad0f6004d14bfa96f76908c56f6bba7bd9f16 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 20:50:07 +0800 Subject: [PATCH 19/39] fix(node-utils): avoid find-up sync API in monorepo root lookup --- internal/node-utils/src/monorepo.ts | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/internal/node-utils/src/monorepo.ts b/internal/node-utils/src/monorepo.ts index d0c384f50..33246c683 100644 --- a/internal/node-utils/src/monorepo.ts +++ b/internal/node-utils/src/monorepo.ts @@ -1,24 +1,31 @@ import type { Package } from '@manypkg/get-packages'; -import { dirname } from 'node:path'; +import { existsSync } from 'node:fs'; +import { dirname, join, resolve } from 'node:path'; import * as manypkg from '@manypkg/get-packages'; -import * as findUp from 'find-up'; - const { getPackages: getPackagesFunc, getPackagesSync: getPackagesSyncFunc } = manypkg; -const { findUpSync } = findUp; /** * 查找大仓的根目录 * @param cwd */ function findMonorepoRoot(cwd: string = process.cwd()) { - const lockFile = findUpSync('pnpm-lock.yaml', { - cwd, - type: 'file', - }); - return dirname(lockFile || ''); + let currentDir = resolve(cwd); + + while (true) { + if (existsSync(join(currentDir, 'pnpm-lock.yaml'))) { + return currentDir; + } + + const parentDir = dirname(currentDir); + if (parentDir === currentDir) { + return ''; + } + + currentDir = parentDir; + } } /** From bdc65cc250eec6f4cfb482715a88545b8ba24d92 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 21:03:41 +0800 Subject: [PATCH 20/39] chore: update deps --- pnpm-lock.yaml | 16 ++++++++-------- pnpm-workspace.yaml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f6cc29406..66d45749d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -397,8 +397,8 @@ catalogs: specifier: ^6.3.7 version: 6.3.7 tsdown: - specifier: ^0.21.2 - version: 0.21.2 + specifier: ^0.21.3 + version: 0.21.3 turbo: specifier: ^2.8.17 version: 2.8.17 @@ -578,7 +578,7 @@ importers: version: 4.2.1 tsdown: specifier: 'catalog:' - version: 0.21.2(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) + version: 0.21.3(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) turbo: specifier: 'catalog:' version: 2.8.17 @@ -10437,14 +10437,14 @@ packages: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} - tsdown@0.21.2: - resolution: {integrity: sha512-pP8eAcd1XAWjl5gjosuJs0BAuVoheUe3V8VDHx31QK7YOgXjcCMsBSyFWO3CMh/CSUkjRUzR96JtGH3WJFTExQ==} + tsdown@0.21.3: + resolution: {integrity: sha512-oKKeMC8+IgNsB+81hvF5VBsqhqL/nr0g9vse+ujbK40vv0i3ReFI6gUts7hQH7J53ylQNjMgf2Vu6n0+P/uddA==} engines: {node: '>=20.19.0'} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.21.2 - '@tsdown/exe': 0.21.2 + '@tsdown/css': 0.21.3 + '@tsdown/exe': 0.21.3 '@vitejs/devtools': '*' publint: ^0.3.0 typescript: ^5.0.0 @@ -20348,7 +20348,7 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tsdown@0.21.2(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)): + tsdown@0.21.3(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)): dependencies: ansis: 4.2.0 cac: 7.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 9668bdb12..d78b227bd 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -154,7 +154,7 @@ catalog: tdesign-vue-next: ^1.18.5 theme-colors: ^0.1.0 tippy.js: ^6.3.7 - tsdown: ^0.21.2 + tsdown: ^0.21.3 turbo: ^2.8.17 tw-animate-css: ^1.4.0 typescript: ^5.9.3 From 11fc367845f3a50cf16f52a3ab84e6cd64262efe Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 21:04:12 +0800 Subject: [PATCH 21/39] chore: migrate vite build to tsdown --- internal/vite-config/build.config.ts | 7 --- internal/vite-config/package.json | 3 +- internal/vite-config/tsdown.config.ts | 40 +++++++++++++++ scripts/vsh/src/check-circular/index.ts | 67 +++++++++++++++++++++---- 4 files changed, 99 insertions(+), 18 deletions(-) delete mode 100644 internal/vite-config/build.config.ts create mode 100644 internal/vite-config/tsdown.config.ts diff --git a/internal/vite-config/build.config.ts b/internal/vite-config/build.config.ts deleted file mode 100644 index 97e572c56..000000000 --- a/internal/vite-config/build.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: ['src/index'], -}); diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index 129113704..f83d85b50 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -12,7 +12,8 @@ "license": "MIT", "type": "module", "scripts": { - "stub": "pnpm unbuild --stub" + "build": "pnpm exec tsdown", + "stub": "pnpm exec tsdown" }, "files": [ "dist" diff --git a/internal/vite-config/tsdown.config.ts b/internal/vite-config/tsdown.config.ts new file mode 100644 index 000000000..88b76bebc --- /dev/null +++ b/internal/vite-config/tsdown.config.ts @@ -0,0 +1,40 @@ +import { cp, mkdir } from 'node:fs/promises'; +import { dirname, join } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import { defineConfig } from 'tsdown'; + +const rootDir = dirname(fileURLToPath(import.meta.url)); +const loadingAssets = ['default-loading-antd.html', 'default-loading.html']; + +export default defineConfig({ + clean: true, + deps: { + skipNodeModulesBundle: true, + }, + dts: { + resolver: 'tsc', + }, + entry: ['src/index.ts'], + format: ['esm'], + hooks: { + 'build:done': async (context) => { + const outDir = context.options.outDir; + if (!outDir) { + return; + } + + await mkdir(outDir, { recursive: true }); + + for (const file of loadingAssets) { + await cp( + join(rootDir, 'src/plugins/inject-app-loading', file), + join(outDir, file), + ); + } + }, + }, + outExtensions: () => ({ + dts: '.d.ts', + }), +}); diff --git a/scripts/vsh/src/check-circular/index.ts b/scripts/vsh/src/check-circular/index.ts index 064250613..999f7f249 100644 --- a/scripts/vsh/src/check-circular/index.ts +++ b/scripts/vsh/src/check-circular/index.ts @@ -1,10 +1,15 @@ import type { CAC } from 'cac'; -import { extname } from 'node:path'; +import { access, mkdtemp, readFile, rm } from 'node:fs/promises'; +import { createRequire } from 'node:module'; +import { tmpdir } from 'node:os'; +import { extname, join } from 'node:path'; -import { getStagedFiles } from '@vben/node-utils'; +import { execa, getStagedFiles } from '@vben/node-utils'; -import { circularDepsDetect } from 'circular-dependency-scanner'; +const require = createRequire(import.meta.url); +const circularScannerCli = + require.resolve('circular-dependency-scanner/dist/cli.js'); // 默认配置 const DEFAULT_CONFIG = { @@ -41,6 +46,44 @@ interface CommandOptions { // 缓存机制 const cache = new Map(); +async function detectCircularDependencies({ + cwd, + ignorePattern, + staged, +}: { + cwd: string; + ignorePattern: string; + staged: boolean; +}): Promise { + const tempDir = await mkdtemp(join(tmpdir(), 'vsh-check-circular-')); + const outputFile = join(tempDir, 'circles.json'); + + try { + const args = [circularScannerCli, cwd, '--output', outputFile]; + + if (staged) { + args.push('--absolute'); + } + + args.push('--ignore', ignorePattern); + + await execa(process.execPath, args, { + cwd, + }); + + await access(outputFile); + const output = await readFile(outputFile, 'utf8'); + return JSON.parse(output) as CircularDependencyResult[]; + } catch (error) { + if ((error as NodeJS.ErrnoException)?.code === 'ENOENT') { + return []; + } + throw error; + } finally { + await rm(tempDir, { force: true, recursive: true }); + } +} + /** * 格式化循环依赖的输出 * @param circles - 循环依赖结果 @@ -85,17 +128,17 @@ async function checkCircular({ const cacheKey = `${staged}-${process.cwd()}-${ignorePattern}`; if (cache.has(cacheKey)) { const cachedResults = cache.get(cacheKey); - if (cachedResults) { - verbose && formatCircles(cachedResults); + if (cachedResults && verbose) { + formatCircles(cachedResults); } return; } // 检测循环依赖 - const results = await circularDepsDetect({ - absolute: staged, + const results = await detectCircularDependencies({ cwd: process.cwd(), - ignore: [ignorePattern], + ignorePattern, + staged, }); if (staged) { @@ -118,11 +161,15 @@ async function checkCircular({ // 更新缓存 cache.set(cacheKey, circularFiles); - verbose && formatCircles(circularFiles); + if (verbose) { + formatCircles(circularFiles); + } } else { // 更新缓存 cache.set(cacheKey, results); - verbose && formatCircles(results); + if (verbose) { + formatCircles(results); + } } // 如果发现循环依赖,只输出警告信息 From 3946253d6e0d365f9bed75dd4b2b4dc702e0571d Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 21:17:41 +0800 Subject: [PATCH 22/39] chore(tsdown): align stub scripts and package exports --- .../lint-configs/eslint-config/package.json | 2 +- .../lint-configs/oxfmt-config/package.json | 2 +- internal/node-utils/package.json | 2 +- internal/vite-config/package.json | 2 +- packages/@core/base/icons/package.json | 3 ++- packages/@core/base/shared/package.json | 2 +- packages/@core/base/typings/package.json | 3 ++- packages/@core/composables/package.json | 3 ++- packages/@core/preferences/package.json | 18 +++++++++++++++--- scripts/turbo-run/package.json | 2 +- scripts/vsh/package.json | 2 +- 11 files changed, 28 insertions(+), 13 deletions(-) diff --git a/internal/lint-configs/eslint-config/package.json b/internal/lint-configs/eslint-config/package.json index 5235e2b16..ae64af4cd 100644 --- a/internal/lint-configs/eslint-config/package.json +++ b/internal/lint-configs/eslint-config/package.json @@ -13,7 +13,7 @@ "type": "module", "scripts": { "build": "pnpm exec tsdown", - "stub": "pnpm exec tsdown" + "stub": "pnpm run build" }, "files": [ "dist" diff --git a/internal/lint-configs/oxfmt-config/package.json b/internal/lint-configs/oxfmt-config/package.json index 2355a9de5..72bf4b9b7 100644 --- a/internal/lint-configs/oxfmt-config/package.json +++ b/internal/lint-configs/oxfmt-config/package.json @@ -13,7 +13,7 @@ "type": "module", "scripts": { "build": "pnpm exec tsdown", - "stub": "pnpm exec tsdown" + "stub": "pnpm run build" }, "files": [ "dist" diff --git a/internal/node-utils/package.json b/internal/node-utils/package.json index bd0e1f258..dd868eb8e 100644 --- a/internal/node-utils/package.json +++ b/internal/node-utils/package.json @@ -13,7 +13,7 @@ "type": "module", "scripts": { "build": "node ./scripts/build.mjs", - "stub": "node ./scripts/build.mjs" + "stub": "pnpm run build" }, "files": [ "dist" diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index f83d85b50..7523d3ee5 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -13,7 +13,7 @@ "type": "module", "scripts": { "build": "pnpm exec tsdown", - "stub": "pnpm exec tsdown" + "stub": "pnpm run build" }, "files": [ "dist" diff --git a/packages/@core/base/icons/package.json b/packages/@core/base/icons/package.json index 558a5b7ca..efa702b1e 100644 --- a/packages/@core/base/icons/package.json +++ b/packages/@core/base/icons/package.json @@ -11,7 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown" + "build": "pnpm exec tsdown", + "stub": "pnpm run build" }, "files": [ "dist" diff --git a/packages/@core/base/shared/package.json b/packages/@core/base/shared/package.json index f6405b92a..61fa032d0 100644 --- a/packages/@core/base/shared/package.json +++ b/packages/@core/base/shared/package.json @@ -12,7 +12,7 @@ "type": "module", "scripts": { "build": "pnpm exec tsdown", - "stub": "pnpm exec tsdown" + "stub": "pnpm run build" }, "files": [ "dist" diff --git a/packages/@core/base/typings/package.json b/packages/@core/base/typings/package.json index b90f3df25..19c4cd54a 100644 --- a/packages/@core/base/typings/package.json +++ b/packages/@core/base/typings/package.json @@ -11,7 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown" + "build": "pnpm exec tsdown", + "stub": "pnpm run build" }, "files": [ "dist", diff --git a/packages/@core/composables/package.json b/packages/@core/composables/package.json index de58e59ff..2bb19c0af 100644 --- a/packages/@core/composables/package.json +++ b/packages/@core/composables/package.json @@ -11,7 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown" + "build": "pnpm exec tsdown", + "stub": "pnpm run build" }, "files": [ "dist" diff --git a/packages/@core/preferences/package.json b/packages/@core/preferences/package.json index 53f331854..6f147844d 100644 --- a/packages/@core/preferences/package.json +++ b/packages/@core/preferences/package.json @@ -11,7 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown" + "build": "pnpm exec tsdown", + "stub": "pnpm run build" }, "files": [ "dist", @@ -20,12 +21,23 @@ "sideEffects": [ "**/*.css" ], + "main": "./dist/index.mjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", "exports": { ".": { "types": "./src/index.ts", "development": "./src/index.ts", - "default": "./src/index.ts", - "#default": "./dist/index.mjs" + "production": "./src/index.ts", + "default": "./dist/index.mjs" + } + }, + "publishConfig": { + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.mjs" + } } }, "dependencies": { diff --git a/scripts/turbo-run/package.json b/scripts/turbo-run/package.json index 57b1dca05..11943746a 100644 --- a/scripts/turbo-run/package.json +++ b/scripts/turbo-run/package.json @@ -6,7 +6,7 @@ "type": "module", "scripts": { "build": "pnpm exec tsdown", - "stub": "pnpm exec tsdown" + "stub": "pnpm run build" }, "files": [ "dist" diff --git a/scripts/vsh/package.json b/scripts/vsh/package.json index 8bea4f025..dfe64b055 100644 --- a/scripts/vsh/package.json +++ b/scripts/vsh/package.json @@ -6,7 +6,7 @@ "type": "module", "scripts": { "build": "pnpm exec tsdown", - "stub": "pnpm exec tsdown" + "stub": "pnpm run build" }, "files": [ "dist" From b300011d07ba8f83946814bfdce625a9e584dd57 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 21:30:13 +0800 Subject: [PATCH 23/39] refactor(tsdown): migrate ui-kit vue packages --- package.json | 1 + packages/@core/ui-kit/form-ui/build.config.ts | 21 ------------ packages/@core/ui-kit/form-ui/package.json | 5 ++- .../@core/ui-kit/form-ui/tsdown.config.ts | 22 +++++++++++++ .../@core/ui-kit/layout-ui/build.config.ts | 21 ------------ packages/@core/ui-kit/layout-ui/package.json | 5 ++- .../@core/ui-kit/layout-ui/tsdown.config.ts | 22 +++++++++++++ .../@core/ui-kit/popup-ui/build.config.ts | 21 ------------ packages/@core/ui-kit/popup-ui/package.json | 5 ++- .../@core/ui-kit/popup-ui/tsdown.config.ts | 22 +++++++++++++ pnpm-lock.yaml | 32 +++++++++++++++++++ pnpm-workspace.yaml | 1 + 12 files changed, 112 insertions(+), 66 deletions(-) delete mode 100644 packages/@core/ui-kit/form-ui/build.config.ts create mode 100644 packages/@core/ui-kit/form-ui/tsdown.config.ts delete mode 100644 packages/@core/ui-kit/layout-ui/build.config.ts create mode 100644 packages/@core/ui-kit/layout-ui/tsdown.config.ts delete mode 100644 packages/@core/ui-kit/popup-ui/build.config.ts create mode 100644 packages/@core/ui-kit/popup-ui/tsdown.config.ts diff --git a/package.json b/package.json index f36d5f66e..aedb872d6 100644 --- a/package.json +++ b/package.json @@ -96,6 +96,7 @@ "turbo": "catalog:", "typescript": "catalog:", "unbuild": "catalog:", + "unplugin-vue": "catalog:", "vite": "catalog:", "vitest": "catalog:", "vue": "catalog:", diff --git a/packages/@core/ui-kit/form-ui/build.config.ts b/packages/@core/ui-kit/form-ui/build.config.ts deleted file mode 100644 index 18eaa604c..000000000 --- a/packages/@core/ui-kit/form-ui/build.config.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: [ - { - builder: 'mkdist', - input: './src', - loaders: ['vue'], - pattern: ['**/*.vue'], - }, - { - builder: 'mkdist', - format: 'esm', - input: './src', - loaders: ['js'], - pattern: ['**/*.ts'], - }, - ], -}); diff --git a/packages/@core/ui-kit/form-ui/package.json b/packages/@core/ui-kit/form-ui/package.json index c9db6eca2..476bc38ab 100644 --- a/packages/@core/ui-kit/form-ui/package.json +++ b/packages/@core/ui-kit/form-ui/package.json @@ -11,7 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm exec tsdown", + "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ @@ -22,6 +23,7 @@ ], "main": "./dist/index.mjs", "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", "exports": { ".": { "types": "./src/index.ts", @@ -33,6 +35,7 @@ "publishConfig": { "exports": { ".": { + "types": "./dist/index.d.ts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/ui-kit/form-ui/tsdown.config.ts b/packages/@core/ui-kit/form-ui/tsdown.config.ts new file mode 100644 index 000000000..b5bde2fdd --- /dev/null +++ b/packages/@core/ui-kit/form-ui/tsdown.config.ts @@ -0,0 +1,22 @@ +import Vue from 'unplugin-vue/rolldown'; + +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + deps: { + skipNodeModulesBundle: true, + }, + dts: { + vue: true, + }, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + js: '.mjs', + }), + platform: 'neutral', + plugins: [Vue({ isProduction: true })], + unbundle: true, +}); diff --git a/packages/@core/ui-kit/layout-ui/build.config.ts b/packages/@core/ui-kit/layout-ui/build.config.ts deleted file mode 100644 index 18eaa604c..000000000 --- a/packages/@core/ui-kit/layout-ui/build.config.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: [ - { - builder: 'mkdist', - input: './src', - loaders: ['vue'], - pattern: ['**/*.vue'], - }, - { - builder: 'mkdist', - format: 'esm', - input: './src', - loaders: ['js'], - pattern: ['**/*.ts'], - }, - ], -}); diff --git a/packages/@core/ui-kit/layout-ui/package.json b/packages/@core/ui-kit/layout-ui/package.json index f1a01bbeb..5b09e282b 100644 --- a/packages/@core/ui-kit/layout-ui/package.json +++ b/packages/@core/ui-kit/layout-ui/package.json @@ -11,7 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm exec tsdown", + "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ @@ -22,6 +23,7 @@ ], "main": "./dist/index.mjs", "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", "exports": { ".": { "types": "./src/index.ts", @@ -33,6 +35,7 @@ "publishConfig": { "exports": { ".": { + "types": "./dist/index.d.ts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/ui-kit/layout-ui/tsdown.config.ts b/packages/@core/ui-kit/layout-ui/tsdown.config.ts new file mode 100644 index 000000000..b5bde2fdd --- /dev/null +++ b/packages/@core/ui-kit/layout-ui/tsdown.config.ts @@ -0,0 +1,22 @@ +import Vue from 'unplugin-vue/rolldown'; + +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + deps: { + skipNodeModulesBundle: true, + }, + dts: { + vue: true, + }, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + js: '.mjs', + }), + platform: 'neutral', + plugins: [Vue({ isProduction: true })], + unbundle: true, +}); diff --git a/packages/@core/ui-kit/popup-ui/build.config.ts b/packages/@core/ui-kit/popup-ui/build.config.ts deleted file mode 100644 index 18eaa604c..000000000 --- a/packages/@core/ui-kit/popup-ui/build.config.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: [ - { - builder: 'mkdist', - input: './src', - loaders: ['vue'], - pattern: ['**/*.vue'], - }, - { - builder: 'mkdist', - format: 'esm', - input: './src', - loaders: ['js'], - pattern: ['**/*.ts'], - }, - ], -}); diff --git a/packages/@core/ui-kit/popup-ui/package.json b/packages/@core/ui-kit/popup-ui/package.json index 0d4d2c42c..951869861 100644 --- a/packages/@core/ui-kit/popup-ui/package.json +++ b/packages/@core/ui-kit/popup-ui/package.json @@ -11,7 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm exec tsdown", + "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ @@ -22,6 +23,7 @@ ], "main": "./dist/index.mjs", "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", "exports": { ".": { "types": "./src/index.ts", @@ -33,6 +35,7 @@ "publishConfig": { "exports": { ".": { + "types": "./dist/index.d.ts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/ui-kit/popup-ui/tsdown.config.ts b/packages/@core/ui-kit/popup-ui/tsdown.config.ts new file mode 100644 index 000000000..3bbe38d1d --- /dev/null +++ b/packages/@core/ui-kit/popup-ui/tsdown.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from 'tsdown'; +// eslint-disable-next-line n/no-extraneous-import +import Vue from 'unplugin-vue/rolldown'; + +export default defineConfig({ + clean: true, + deps: { + skipNodeModulesBundle: true, + }, + dts: { + vue: true, + }, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + js: '.mjs', + }), + platform: 'neutral', + plugins: [Vue({ isProduction: true })], + unbundle: true, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 66d45749d..66bea98c6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -588,6 +588,9 @@ importers: unbuild: specifier: 'catalog:' version: 3.6.1(sass@1.98.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) + unplugin-vue: + specifier: ^7.1.1 + version: 7.1.1(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(vue@3.5.30(typescript@5.9.3))(yaml@2.8.2) vite: specifier: 'catalog:' version: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) @@ -10687,6 +10690,12 @@ packages: resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} engines: {node: '>=20.19.0'} + unplugin-vue@7.1.1: + resolution: {integrity: sha512-0171rToKyJtoz+faE9CSGtAhCF7//t8sJueyyfZujf4RcKtoHLU/wqcsnuH5aq3tDB+I/Tg6IXiWgPvI+TK/zw==} + engines: {node: '>=20.19.0'} + peerDependencies: + vue: ^3.5.30 + unplugin@2.3.11: resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} engines: {node: '>=18.12.0'} @@ -20630,6 +20639,29 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.3 + unplugin-vue@7.1.1(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(vue@3.5.30(typescript@5.9.3))(yaml@2.8.2): + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@vue/reactivity': 3.5.30 + obug: 2.1.1 + unplugin: 3.0.0 + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vue: 3.5.30(typescript@5.9.3) + transitivePeerDependencies: + - '@types/node' + - '@vitejs/devtools' + - esbuild + - jiti + - less + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + unplugin@2.3.11: dependencies: '@jridgewell/remapping': 2.3.5 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d78b227bd..b49343790 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -161,6 +161,7 @@ catalog: unbuild: ^3.6.1 unplugin-dts: ^1.0.0-beta.6 unplugin-element-plus: ^0.11.2 + unplugin-vue: ^7.1.1 vee-validate: ^4.15.1 vite: ^8.0.0 vite-plugin-compression: ^0.5.1 From d72f872369de4d5056482d4061b3bf1d76da39f5 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 21:42:44 +0800 Subject: [PATCH 24/39] refactor(tsdown): migrate styled ui-kit packages --- packages/@core/ui-kit/menu-ui/build.config.ts | 26 ------- packages/@core/ui-kit/menu-ui/package.json | 5 +- .../@core/ui-kit/menu-ui/tsdown.config.ts | 22 ++++++ packages/@core/ui-kit/tabs-ui/build.config.ts | 21 ------ packages/@core/ui-kit/tabs-ui/package.json | 5 +- .../@core/ui-kit/tabs-ui/tsdown.config.ts | 22 ++++++ pnpm-lock.yaml | 73 ++++++++++++++++++- 7 files changed, 122 insertions(+), 52 deletions(-) delete mode 100644 packages/@core/ui-kit/menu-ui/build.config.ts create mode 100644 packages/@core/ui-kit/menu-ui/tsdown.config.ts delete mode 100644 packages/@core/ui-kit/tabs-ui/build.config.ts create mode 100644 packages/@core/ui-kit/tabs-ui/tsdown.config.ts diff --git a/packages/@core/ui-kit/menu-ui/build.config.ts b/packages/@core/ui-kit/menu-ui/build.config.ts deleted file mode 100644 index 1ff78fabb..000000000 --- a/packages/@core/ui-kit/menu-ui/build.config.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: [ - { - builder: 'mkdist', - input: './src', - pattern: ['**/*'], - }, - { - builder: 'mkdist', - input: './src', - loaders: ['vue'], - pattern: ['**/*.vue'], - }, - { - builder: 'mkdist', - format: 'esm', - input: './src', - loaders: ['js'], - pattern: ['**/*.ts'], - }, - ], -}); diff --git a/packages/@core/ui-kit/menu-ui/package.json b/packages/@core/ui-kit/menu-ui/package.json index fa3a4015b..5e2d5dd86 100644 --- a/packages/@core/ui-kit/menu-ui/package.json +++ b/packages/@core/ui-kit/menu-ui/package.json @@ -11,7 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm exec tsdown", + "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ @@ -22,6 +23,7 @@ ], "main": "./dist/index.mjs", "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", "exports": { ".": { "types": "./src/index.ts", @@ -33,6 +35,7 @@ "publishConfig": { "exports": { ".": { + "types": "./dist/index.d.ts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/ui-kit/menu-ui/tsdown.config.ts b/packages/@core/ui-kit/menu-ui/tsdown.config.ts new file mode 100644 index 000000000..b5bde2fdd --- /dev/null +++ b/packages/@core/ui-kit/menu-ui/tsdown.config.ts @@ -0,0 +1,22 @@ +import Vue from 'unplugin-vue/rolldown'; + +import { defineConfig } from 'tsdown'; + +export default defineConfig({ + clean: true, + deps: { + skipNodeModulesBundle: true, + }, + dts: { + vue: true, + }, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + js: '.mjs', + }), + platform: 'neutral', + plugins: [Vue({ isProduction: true })], + unbundle: true, +}); diff --git a/packages/@core/ui-kit/tabs-ui/build.config.ts b/packages/@core/ui-kit/tabs-ui/build.config.ts deleted file mode 100644 index 18eaa604c..000000000 --- a/packages/@core/ui-kit/tabs-ui/build.config.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: [ - { - builder: 'mkdist', - input: './src', - loaders: ['vue'], - pattern: ['**/*.vue'], - }, - { - builder: 'mkdist', - format: 'esm', - input: './src', - loaders: ['js'], - pattern: ['**/*.ts'], - }, - ], -}); diff --git a/packages/@core/ui-kit/tabs-ui/package.json b/packages/@core/ui-kit/tabs-ui/package.json index f329c04bc..260d14d6b 100644 --- a/packages/@core/ui-kit/tabs-ui/package.json +++ b/packages/@core/ui-kit/tabs-ui/package.json @@ -11,7 +11,8 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm unbuild", + "build": "pnpm exec tsdown", + "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ @@ -22,6 +23,7 @@ ], "main": "./dist/index.mjs", "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", "exports": { ".": { "types": "./src/index.ts", @@ -33,6 +35,7 @@ "publishConfig": { "exports": { ".": { + "types": "./dist/index.d.ts", "default": "./dist/index.mjs" } } diff --git a/packages/@core/ui-kit/tabs-ui/tsdown.config.ts b/packages/@core/ui-kit/tabs-ui/tsdown.config.ts new file mode 100644 index 000000000..3bbe38d1d --- /dev/null +++ b/packages/@core/ui-kit/tabs-ui/tsdown.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from 'tsdown'; +// eslint-disable-next-line n/no-extraneous-import +import Vue from 'unplugin-vue/rolldown'; + +export default defineConfig({ + clean: true, + deps: { + skipNodeModulesBundle: true, + }, + dts: { + vue: true, + }, + entry: ['src/index.ts'], + format: ['esm'], + outExtensions: () => ({ + dts: '.d.ts', + js: '.mjs', + }), + platform: 'neutral', + plugins: [Vue({ isProduction: true })], + unbundle: true, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 66bea98c6..4d857518d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -417,6 +417,9 @@ catalogs: unplugin-element-plus: specifier: ^0.11.2 version: 0.11.2 + unplugin-vue: + specifier: ^7.1.1 + version: 7.1.1 vee-validate: specifier: ^4.15.1 version: 4.15.1 @@ -504,6 +507,9 @@ importers: '@playwright/test': specifier: 'catalog:' version: 1.58.2 + '@tsdown/css': + specifier: ^0.21.3 + version: 0.21.3(jiti@2.6.1)(postcss@8.5.8)(sass-embedded@1.98.0)(sass@1.98.0)(tsdown@0.21.3)(yaml@2.8.2) '@types/node': specifier: 'catalog:' version: 25.5.0 @@ -578,7 +584,7 @@ importers: version: 4.2.1 tsdown: specifier: 'catalog:' - version: 0.21.3(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) + version: 0.21.3(@tsdown/css@0.21.3)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) turbo: specifier: 'catalog:' version: 2.8.17 @@ -589,7 +595,7 @@ importers: specifier: 'catalog:' version: 3.6.1(sass@1.98.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) unplugin-vue: - specifier: ^7.1.1 + specifier: 'catalog:' version: 7.1.1(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(vue@3.5.30(typescript@5.9.3))(yaml@2.8.2) vite: specifier: 'catalog:' @@ -5024,6 +5030,25 @@ packages: peerDependencies: vue: ^3.5.30 + '@tsdown/css@0.21.3': + resolution: {integrity: sha512-ggFsEbtl3T75KM8Y84Tz7PrpzLqj7njWjEcm5ZUkrmL+xIJtzJx7RupPocIsf6mMPf3IVSnyNbZxwDlbKg5mTw==} + engines: {node: '>=20.19.0'} + peerDependencies: + postcss: ^8.4.0 + postcss-import: ^16.0.0 + sass: '*' + sass-embedded: '*' + tsdown: 0.21.3 + peerDependenciesMeta: + postcss: + optional: true + postcss-import: + optional: true + sass: + optional: true + sass-embedded: + optional: true + '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} @@ -9194,6 +9219,24 @@ packages: resolution: {integrity: sha512-OLF6P7qctfAWayOhLpcVnTGqVeJzu2W3WpIYelfz2+JV5oGxfkcEvweN9U4XpeqE0P98dcD9ssusGwlF0TK0uQ==} engines: {node: ^12 || >=14} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} @@ -14329,6 +14372,21 @@ snapshots: '@tanstack/virtual-core': 3.13.22 vue: 3.5.30(typescript@5.9.3) + '@tsdown/css@0.21.3(jiti@2.6.1)(postcss@8.5.8)(sass-embedded@1.98.0)(sass@1.98.0)(tsdown@0.21.3)(yaml@2.8.2)': + dependencies: + lightningcss: 1.32.0 + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.2) + rolldown: 1.0.0-rc.9 + tsdown: 0.21.3(@tsdown/css@0.21.3)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) + optionalDependencies: + postcss: 8.5.8 + sass: 1.98.0 + sass-embedded: 1.98.0 + transitivePeerDependencies: + - jiti + - tsx + - yaml + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 @@ -19026,6 +19084,14 @@ snapshots: postcss: 8.5.8 postcss-safe-parser: 6.0.0(postcss@8.5.8) + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.2): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 2.6.1 + postcss: 8.5.8 + yaml: 2.8.2 + postcss-media-query-parser@0.2.3: {} postcss-merge-longhand@7.0.5(postcss@8.5.8): @@ -20357,7 +20423,7 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tsdown@0.21.3(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)): + tsdown@0.21.3(@tsdown/css@0.21.3)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)): dependencies: ansis: 4.2.0 cac: 7.0.0 @@ -20376,6 +20442,7 @@ snapshots: unconfig-core: 7.5.0 unrun: 0.2.32(synckit@0.11.12) optionalDependencies: + '@tsdown/css': 0.21.3(jiti@2.6.1)(postcss@8.5.8)(sass-embedded@1.98.0)(sass@1.98.0)(tsdown@0.21.3)(yaml@2.8.2) publint: 0.3.18 typescript: 5.9.3 transitivePeerDependencies: From c9f715452412ad52f87a4d7baefe507330b0f786 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 22:04:48 +0800 Subject: [PATCH 25/39] chore(tsdown): remove unbuild leftovers --- .../eslint-config/src/configs/node.ts | 1 - package.json | 2 +- .../@core/ui-kit/shadcn-ui/build.config.ts | 27 - packages/@core/ui-kit/shadcn-ui/package.json | 15 +- pnpm-lock.yaml | 748 ++---------------- pnpm-workspace.yaml | 2 +- scripts/vsh/src/check-dep/index.ts | 1 - 7 files changed, 81 insertions(+), 715 deletions(-) delete mode 100644 packages/@core/ui-kit/shadcn-ui/build.config.ts diff --git a/internal/lint-configs/eslint-config/src/configs/node.ts b/internal/lint-configs/eslint-config/src/configs/node.ts index f94f2d43e..721bd5a0a 100644 --- a/internal/lint-configs/eslint-config/src/configs/node.ts +++ b/internal/lint-configs/eslint-config/src/configs/node.ts @@ -18,7 +18,6 @@ export async function node(): Promise { { allowModules: [ 'tsdown', - 'unbuild', '@vben/vite-config', 'vitest', 'vite', diff --git a/package.json b/package.json index aedb872d6..e80894d31 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "@changesets/changelog-github": "catalog:", "@changesets/cli": "catalog:", "@playwright/test": "catalog:", + "@tsdown/css": "catalog:", "@types/node": "catalog:", "@vben/commitlint-config": "workspace:*", "@vben/eslint-config": "workspace:*", @@ -95,7 +96,6 @@ "tsdown": "catalog:", "turbo": "catalog:", "typescript": "catalog:", - "unbuild": "catalog:", "unplugin-vue": "catalog:", "vite": "catalog:", "vitest": "catalog:", diff --git a/packages/@core/ui-kit/shadcn-ui/build.config.ts b/packages/@core/ui-kit/shadcn-ui/build.config.ts deleted file mode 100644 index aec93408a..000000000 --- a/packages/@core/ui-kit/shadcn-ui/build.config.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { defineBuildConfig } from 'unbuild'; - -export default defineBuildConfig({ - clean: true, - declaration: true, - entries: [ - { - builder: 'mkdist', - input: './src', - - pattern: ['**/*'], - }, - { - builder: 'mkdist', - input: './src', - loaders: ['vue'], - pattern: ['**/*.vue'], - }, - { - builder: 'mkdist', - format: 'esm', - input: './src', - loaders: ['js'], - pattern: ['**/*.ts'], - }, - ], -}); diff --git a/packages/@core/ui-kit/shadcn-ui/package.json b/packages/@core/ui-kit/shadcn-ui/package.json index f4f0136a1..b49b7ab5c 100644 --- a/packages/@core/ui-kit/shadcn-ui/package.json +++ b/packages/@core/ui-kit/shadcn-ui/package.json @@ -1,8 +1,6 @@ { "name": "@vben-core/shadcn-ui", "version": "5.7.0", - "#main": "./dist/index.mjs", - "#module": "./dist/index.mjs", "homepage": "https://github.com/vbenjs/vue-vben-admin", "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", "repository": { @@ -12,29 +10,28 @@ }, "license": "MIT", "type": "module", - "scripts": { - "#build": "pnpm unbuild", - "#prepublishOnly": "npm run build" - }, "files": [ - "dist" + "components.json", + "src" ], "sideEffects": [ "**/*.css" ], "main": "./src/index.ts", "module": "./src/index.ts", + "types": "./src/index.ts", "exports": { ".": { "types": "./src/index.ts", "development": "./src/index.ts", - "default": "./src/index.ts", - "//default": "./dist/index.mjs" + "default": "./src/index.ts" } }, "publishConfig": { "exports": { ".": { + "types": "./src/index.ts", + "development": "./src/index.ts", "default": "./src/index.ts" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d857518d..a7ed8cf43 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,10 +20,10 @@ catalogs: version: 1.1.0 '@commitlint/cli': specifier: ^20.4.4 - version: 20.4.4 + version: 20.5.0 '@commitlint/config-conventional': specifier: ^20.4.4 - version: 20.4.4 + version: 20.5.0 '@eslint-community/eslint-plugin-eslint-comments': specifier: ^4.7.1 version: 4.7.1 @@ -78,6 +78,9 @@ catalogs: '@tanstack/vue-store': specifier: ^0.9.2 version: 0.9.2 + '@tsdown/css': + specifier: ^0.21.3 + version: 0.21.3 '@types/archiver': specifier: ^7.0.0 version: 7.0.0 @@ -408,9 +411,6 @@ catalogs: typescript: specifier: ^5.9.3 version: 5.9.3 - unbuild: - specifier: ^3.6.1 - version: 3.6.1 unplugin-dts: specifier: ^1.0.0-beta.6 version: 1.0.0-beta.6 @@ -508,7 +508,7 @@ importers: specifier: 'catalog:' version: 1.58.2 '@tsdown/css': - specifier: ^0.21.3 + specifier: 'catalog:' version: 0.21.3(jiti@2.6.1)(postcss@8.5.8)(sass-embedded@1.98.0)(sass@1.98.0)(tsdown@0.21.3)(yaml@2.8.2) '@types/node': specifier: 'catalog:' @@ -591,9 +591,6 @@ importers: typescript: specifier: 'catalog:' version: 5.9.3 - unbuild: - specifier: 'catalog:' - version: 3.6.1(sass@1.98.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) unplugin-vue: specifier: 'catalog:' version: 7.1.1(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(vue@3.5.30(typescript@5.9.3))(yaml@2.8.2) @@ -1004,16 +1001,16 @@ importers: dependencies: '@commitlint/cli': specifier: 'catalog:' - version: 20.4.4(@types/node@25.5.0)(conventional-commits-parser@6.3.0)(typescript@5.9.3) + version: 20.5.0(@types/node@25.5.0)(conventional-commits-parser@6.3.0)(typescript@5.9.3) '@commitlint/config-conventional': specifier: 'catalog:' - version: 20.4.4 + version: 20.5.0 '@vben/node-utils': specifier: workspace:* version: link:../../node-utils commitlint-plugin-function-rules: specifier: 'catalog:' - version: 4.3.2(@commitlint/lint@20.4.4) + version: 4.3.2(@commitlint/lint@20.5.0) cz-git: specifier: 'catalog:' version: 1.12.0 @@ -2831,61 +2828,61 @@ packages: resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} engines: {node: '>=18.0.0'} - '@commitlint/cli@20.4.4': - resolution: {integrity: sha512-GLMNQHYGcn0ohL2HMlAnXcD1PS2vqBBGbYKlhrRPOYsWiRoLWtrewsR3uKRb9v/IdS+qOS0vqJQ64n1g8VPKFw==} + '@commitlint/cli@20.5.0': + resolution: {integrity: sha512-yNkyN/tuKTJS3wdVfsZ2tXDM4G4Gi7z+jW54Cki8N8tZqwKBltbIvUUrSbT4hz1bhW/h0CdR+5sCSpXD+wMKaQ==} engines: {node: '>=v18'} hasBin: true - '@commitlint/config-conventional@20.4.4': - resolution: {integrity: sha512-Usg+XXbPNG2GtFWTgRURNWCge1iH1y6jQIvvklOdAbyn2t8ajfVwZCnf5t5X4gUsy17BOiY+myszGsSMIvhOVA==} + '@commitlint/config-conventional@20.5.0': + resolution: {integrity: sha512-t3Ni88rFw1XMa4nZHgOKJ8fIAT9M2j5TnKyTqJzsxea7FUetlNdYFus9dz+MhIRZmc16P0PPyEfh6X2d/qw8SA==} engines: {node: '>=v18'} - '@commitlint/config-validator@20.4.4': - resolution: {integrity: sha512-K8hMS9PTLl7EYe5vWtSFQ/sgsV2PHUOtEnosg8k3ZQxCyfKD34I4C7FxWEfRTR54rFKeUYmM3pmRQqBNQeLdlw==} + '@commitlint/config-validator@20.5.0': + resolution: {integrity: sha512-T/Uh6iJUzyx7j35GmHWdIiGRQB+ouZDk0pwAaYq4SXgB54KZhFdJ0vYmxiW6AMYICTIWuyMxDBl1jK74oFp/Gw==} engines: {node: '>=v18'} - '@commitlint/ensure@20.4.4': - resolution: {integrity: sha512-QivV0M1MGL867XCaF+jJkbVXEPKBALhUUXdjae66hes95aY1p3vBJdrcl3x8jDv2pdKWvIYIz+7DFRV/v0dRkA==} + '@commitlint/ensure@20.5.0': + resolution: {integrity: sha512-IpHqAUesBeW1EDDdjzJeaOxU9tnogLAyXLRBn03SHlj1SGENn2JGZqSWGkFvBJkJzfXAuCNtsoYzax+ZPS+puw==} engines: {node: '>=v18'} '@commitlint/execute-rule@20.0.0': resolution: {integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==} engines: {node: '>=v18'} - '@commitlint/format@20.4.4': - resolution: {integrity: sha512-jLi/JBA4GEQxc5135VYCnkShcm1/rarbXMn2Tlt3Si7DHiiNKHm4TaiJCLnGbZ1r8UfwDRk+qrzZ80kwh08Aow==} + '@commitlint/format@20.5.0': + resolution: {integrity: sha512-TI9EwFU/qZWSK7a5qyXMpKPPv3qta7FO4tKW+Wt2al7sgMbLWTsAcDpX1cU8k16TRdsiiet9aOw0zpvRXNJu7Q==} engines: {node: '>=v18'} - '@commitlint/is-ignored@20.4.4': - resolution: {integrity: sha512-y76rT8yq02x+pMDBI2vY4y/ByAwmJTkta/pASbgo8tldBiKLduX8/2NCRTSCjb3SumE5FBeopERKx3oMIm8RTQ==} + '@commitlint/is-ignored@20.5.0': + resolution: {integrity: sha512-JWLarAsurHJhPozbuAH6GbP4p/hdOCoqS9zJMfqwswne+/GPs5V0+rrsfOkP68Y8PSLphwtFXV0EzJ+GTXTTGg==} engines: {node: '>=v18'} - '@commitlint/lint@20.4.4': - resolution: {integrity: sha512-svOEW+RptcNpXKE7UllcAsV0HDIdOck9reC2TP1QA6K5Fo0xxQV+QPjV8Zqx9g6X/hQBkF2S9ZQZ78Xrv1Eiog==} + '@commitlint/lint@20.5.0': + resolution: {integrity: sha512-jiM3hNUdu04jFBf1VgPdjtIPvbuVfDTBAc6L98AWcoLjF5sYqkulBHBzlVWll4rMF1T5zeQFB6r//a+s+BBKlA==} engines: {node: '>=v18'} - '@commitlint/load@20.4.4': - resolution: {integrity: sha512-kvFrzvoIACa/fMjXEP0LNEJB1joaH3q3oeMJsLajXE5IXjYrNGVcW1ZFojXUruVJ7odTZbC3LdE/6+ONW4f2Dg==} + '@commitlint/load@20.5.0': + resolution: {integrity: sha512-sLhhYTL/KxeOTZjjabKDhwidGZan84XKK1+XFkwDYL/4883kIajcz/dZFAhBJmZPtL8+nBx6bnkzA95YxPeDPw==} engines: {node: '>=v18'} '@commitlint/message@20.4.3': resolution: {integrity: sha512-6akwCYrzcrFcTYz9GyUaWlhisY4lmQ3KvrnabmhoeAV8nRH4dXJAh4+EUQ3uArtxxKQkvxJS78hNX2EU3USgxQ==} engines: {node: '>=v18'} - '@commitlint/parse@20.4.4': - resolution: {integrity: sha512-AjfgOgrjEozeQNzhFu1KL5N0nDx4JZmswVJKNfOTLTUGp6xODhZHCHqb//QUHKOzx36If5DQ7tci2o7szYxu1A==} + '@commitlint/parse@20.5.0': + resolution: {integrity: sha512-SeKWHBMk7YOTnnEWUhx+d1a9vHsjjuo6Uo1xRfPNfeY4bdYFasCH1dDpAv13Lyn+dDPOels+jP6D2GRZqzc5fA==} engines: {node: '>=v18'} - '@commitlint/read@20.4.4': - resolution: {integrity: sha512-jvgdAQDdEY6L8kCxOo21IWoiAyNFzvrZb121wU2eBxI1DzWAUZgAq+a8LlJRbT0Qsj9INhIPVWgdaBbEzlF0dQ==} + '@commitlint/read@20.5.0': + resolution: {integrity: sha512-JDEIJ2+GnWpK8QqwfmW7O42h0aycJEWNqcdkJnyzLD11nf9dW2dWLTVEa8Wtlo4IZFGLPATjR5neA5QlOvIH1w==} engines: {node: '>=v18'} - '@commitlint/resolve-extends@20.4.4': - resolution: {integrity: sha512-pyOf+yX3c3m/IWAn2Jop+7s0YGKPQ8YvQaxt9IQxnLIM3yZAlBdkKiQCT14TnrmZTkVGTXiLtckcnFTXYwlY0A==} + '@commitlint/resolve-extends@20.5.0': + resolution: {integrity: sha512-3SHPWUW2v0tyspCTcfSsYml0gses92l6TlogwzvM2cbxDgmhSRc+fldDjvGkCXJrjSM87BBaWYTPWwwyASZRrg==} engines: {node: '>=v18'} - '@commitlint/rules@20.4.4': - resolution: {integrity: sha512-PmUp8QPLICn9w05dAx5r1rdOYoTk7SkfusJJh5tP3TqHwo2mlQ9jsOm8F0HSXU9kuLfgTEGNrunAx/dlK/RyPQ==} + '@commitlint/rules@20.5.0': + resolution: {integrity: sha512-5NdQXQEdnDPT5pK8O39ZA7HohzPRHEsDGU23cyVCNPQy4WegAbAwrQk3nIu7p2sl3dutPk8RZd91yKTrMTnRkQ==} engines: {node: '>=v18'} '@commitlint/to-lines@20.0.0': @@ -2896,8 +2893,8 @@ packages: resolution: {integrity: sha512-qD9xfP6dFg5jQ3NMrOhG0/w5y3bBUsVGyJvXxdWEwBm8hyx4WOk3kKXw28T5czBYvyeCVJgJJ6aoJZUWDpaacQ==} engines: {node: '>=v18'} - '@commitlint/types@20.4.4': - resolution: {integrity: sha512-dwTGzyAblFXHJNBOgrTuO5Ee48ioXpS5XPRLLatxhQu149DFAHUcB3f0Q5eea3RM4USSsP1+WVT2dBtLVod4fg==} + '@commitlint/types@20.5.0': + resolution: {integrity: sha512-ZJoS8oSq2CAZEpc/YI9SulLrdiIyXeHb/OGqGrkUP6Q7YV+0ouNAa7GjqRdXeQPncHQIDz/jbCTlHScvYvO/gA==} engines: {node: '>=v18'} '@conventional-changelog/git-client@2.6.0': @@ -4561,15 +4558,6 @@ packages: '@rolldown/pluginutils@1.0.0-rc.9': resolution: {integrity: sha512-w6oiRWgEBl04QkFZgmW+jnU1EC9b57Oihi2ot3HNWIQRqgHp5PnYDia5iZ5FF7rpa4EQdiqMDXjlqKGXBhsoXw==} - '@rollup/plugin-alias@5.1.1': - resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/plugin-alias@6.0.0': resolution: {integrity: sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==} engines: {node: '>=20.19.0'} @@ -4590,15 +4578,6 @@ packages: '@types/babel__core': optional: true - '@rollup/plugin-commonjs@28.0.9': - resolution: {integrity: sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/plugin-commonjs@29.0.2': resolution: {integrity: sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg==} engines: {node: '>=16.0.0 || 14 >= 14.17'} @@ -5948,13 +5927,6 @@ packages: atomically@2.1.1: resolution: {integrity: sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==} - autoprefixer@10.4.27: - resolution: {integrity: sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -6159,9 +6131,6 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001779: resolution: {integrity: sha512-U5og2PN7V4DMgF50YPNtnZJGWVLFjjsN3zb6uMT5VGYIewieDj1upwfuVNXf4Kor+89c3iCRJnSzMD5LmTvsfA==} @@ -6532,12 +6501,6 @@ packages: engines: {node: '>=20.18'} hasBin: true - css-declaration-sorter@7.3.1: - resolution: {integrity: sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.0.9 - css-functions-list@3.3.3: resolution: {integrity: sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==} engines: {node: '>=12'} @@ -6568,24 +6531,6 @@ packages: engines: {node: '>=4'} hasBin: true - cssnano-preset-default@7.0.11: - resolution: {integrity: sha512-waWlAMuCakP7//UCY+JPrQS1z0OSLeOXk2sKWJximKWGupVxre50bzPlvpbUwZIDylhf/ptf0Pk+Yf7C+hoa3g==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - cssnano-utils@5.0.1: - resolution: {integrity: sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - cssnano@7.1.3: - resolution: {integrity: sha512-mLFHQAzyapMVFLiJIn7Ef4C2UCEvtlTlbyILR6B5ZsUAV3D/Pa761R5uC1YPhyBkRd3eqaDm2ncaNrD7R4mTRg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -7317,9 +7262,6 @@ packages: resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} engines: {node: '>= 10.13.0'} - fix-dts-default-cjs-exports@1.0.1: - resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -7362,9 +7304,6 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} - fraction.js@5.3.4: - resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - framesync@6.1.2: resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==} @@ -8036,10 +7975,6 @@ packages: engines: {node: '>=10'} hasBin: true - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} - hasBin: true - jiti@2.6.1: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true @@ -8467,9 +8402,6 @@ packages: lodash.kebabcase@4.1.1: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -8491,9 +8423,6 @@ packages: lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - lodash.upperfirst@4.3.1: resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} @@ -8699,27 +8628,6 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - mkdist@2.4.1: - resolution: {integrity: sha512-Ezk0gi04GJBkqMfsksICU5Rjoemc4biIekwgrONWVPor2EO/N9nBgN6MZXAf7Yw4mDDhrNyKbdETaHNevfumKg==} - hasBin: true - peerDependencies: - sass: ^1.92.1 - typescript: '>=5.9.2' - vue: ^3.5.30 - vue-sfc-transformer: ^0.1.1 - vue-tsc: ^1.8.27 || ^2.0.21 || ^3.0.0 - peerDependenciesMeta: - sass: - optional: true - typescript: - optional: true - vue: - optional: true - vue-sfc-transformer: - optional: true - vue-tsc: - optional: true - mlly@1.8.1: resolution: {integrity: sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ==} @@ -9173,48 +9081,6 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss-calc@10.1.1: - resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} - engines: {node: ^18.12 || ^20.9 || >=22.0} - peerDependencies: - postcss: ^8.4.38 - - postcss-colormin@7.0.6: - resolution: {integrity: sha512-oXM2mdx6IBTRm39797QguYzVEWzbdlFiMNfq88fCCN1Wepw3CYmJ/1/Ifa/KjWo+j5ZURDl2NTldLJIw51IeNQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-convert-values@7.0.9: - resolution: {integrity: sha512-l6uATQATZaCa0bckHV+r6dLXfWtUBKXxO3jK+AtxxJJtgMPD+VhhPCCx51I4/5w8U5uHV67g3w7PXj+V3wlMlg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-discard-comments@7.0.6: - resolution: {integrity: sha512-Sq+Fzj1Eg5/CPf1ERb0wS1Im5cvE2gDXCE+si4HCn1sf+jpQZxDI4DXEp8t77B/ImzDceWE2ebJQFXdqZ6GRJw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-discard-duplicates@7.0.2: - resolution: {integrity: sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-discard-empty@7.0.1: - resolution: {integrity: sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-discard-overridden@7.0.1: - resolution: {integrity: sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - postcss-html@1.8.1: resolution: {integrity: sha512-OLF6P7qctfAWayOhLpcVnTGqVeJzu2W3WpIYelfz2+JV5oGxfkcEvweN9U4XpeqE0P98dcD9ssusGwlF0TK0uQ==} engines: {node: ^12 || >=14} @@ -9240,120 +9106,6 @@ packages: postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} - postcss-merge-longhand@7.0.5: - resolution: {integrity: sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-merge-rules@7.0.8: - resolution: {integrity: sha512-BOR1iAM8jnr7zoQSlpeBmCsWV5Uudi/+5j7k05D0O/WP3+OFMPD86c1j/20xiuRtyt45bhxw/7hnhZNhW2mNFA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-minify-font-values@7.0.1: - resolution: {integrity: sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-minify-gradients@7.0.1: - resolution: {integrity: sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-minify-params@7.0.6: - resolution: {integrity: sha512-YOn02gC68JijlaXVuKvFSCvQOhTpblkcfDre2hb/Aaa58r2BIaK4AtE/cyZf2wV7YKAG+UlP9DT+By0ry1E4VQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-minify-selectors@7.0.6: - resolution: {integrity: sha512-lIbC0jy3AAwDxEgciZlBullDiMBeBCT+fz5G8RcA9MWqh/hfUkpOI3vNDUNEZHgokaoiv0juB9Y8fGcON7rU/A==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-nested@7.0.2: - resolution: {integrity: sha512-5osppouFc0VR9/VYzYxO03VaDa3e8F23Kfd6/9qcZTUI8P58GIYlArOET2Wq0ywSl2o2PjELhYOFI4W7l5QHKw==} - engines: {node: '>=18.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-normalize-charset@7.0.1: - resolution: {integrity: sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-display-values@7.0.1: - resolution: {integrity: sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-positions@7.0.1: - resolution: {integrity: sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-repeat-style@7.0.1: - resolution: {integrity: sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-string@7.0.1: - resolution: {integrity: sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-timing-functions@7.0.1: - resolution: {integrity: sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-unicode@7.0.6: - resolution: {integrity: sha512-z6bwTV84YW6ZvvNoaNLuzRW4/uWxDKYI1iIDrzk6D2YTL7hICApy+Q1LP6vBEsljX8FM7YSuV9qI79XESd4ddQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-url@7.0.1: - resolution: {integrity: sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-whitespace@7.0.1: - resolution: {integrity: sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-ordered-values@7.0.2: - resolution: {integrity: sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-reduce-initial@7.0.6: - resolution: {integrity: sha512-G6ZyK68AmrPdMB6wyeA37ejnnRG2S8xinJrZJnOv+IaRKf6koPAVbQsiC7MfkmXaGmF1UO+QCijb27wfpxuRNg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-reduce-transforms@7.0.1: - resolution: {integrity: sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - postcss-resolve-nested-selector@0.1.6: resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} @@ -9388,18 +9140,6 @@ packages: peerDependencies: postcss: ^8.4.20 - postcss-svgo@7.1.1: - resolution: {integrity: sha512-zU9H9oEDrUFKa0JB7w+IYL7Qs9ey1mZyjhbf0KLxwJDdDRtoPvCmaEfknzqfHj44QS9VD6c5sJnBAVYTLRg/Sg==} - engines: {node: ^18.12.0 || ^20.9.0 || >= 18} - peerDependencies: - postcss: ^8.4.32 - - postcss-unique-selectors@7.0.5: - resolution: {integrity: sha512-3QoYmEt4qg/rUWDn6Tc8+ZVPmbp4G1hXDtCNWDx0st8SjtCbRcxRXDDM1QrEiXGG3A45zscSJFb4QH90LViyxg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -9695,13 +9435,6 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rollup-plugin-dts@6.4.0: - resolution: {integrity: sha512-2i00A5UoPCoDecLEs13Eu105QegSGfrbp1sDeUj/54LKGmv6XFHDxWKC6Wsb4BobGUWYVCWWjmjAc8bXXbXH/Q==} - engines: {node: '>=16'} - peerDependencies: - rollup: ^3.29.4 || ^4 - typescript: ^4.5 || ^5.0 || ^6.0 - rollup-plugin-visualizer@6.0.11: resolution: {integrity: sha512-TBwVHVY7buHjIKVLqr9scTVFwqZqMXINcCphPwIWKPDCOBIa+jCQfafvbjRJDZgXdq/A996Dy6yGJ/+/NtAXDQ==} engines: {node: '>=18'} @@ -10216,12 +9949,6 @@ packages: style-value-types@5.1.2: resolution: {integrity: sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==} - stylehacks@7.0.8: - resolution: {integrity: sha512-I3f053GBLIiS5Fg6OMFhq/c+yW+5Hc2+1fgq7gElDMMSqwlRb3tBf2ef6ucLStYRpId4q//bQO1FjcyNyy4yDQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - stylelint-config-html@1.1.0: resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} engines: {node: ^12 || >=14} @@ -10604,15 +10331,6 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - unbuild@3.6.1: - resolution: {integrity: sha512-+U5CdtrdjfWkZhuO4N9l5UhyiccoeMEXIc2Lbs30Haxb+tRwB3VwB8AoZRxlAzORXunenSo+j6lh45jx+xkKgg==} - hasBin: true - peerDependencies: - typescript: ^5.9.2 - peerDependenciesMeta: - typescript: - optional: true - unconfig-core@7.5.0: resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} @@ -12566,13 +12284,13 @@ snapshots: '@cloudflare/kv-asset-handler@0.4.2': {} - '@commitlint/cli@20.4.4(@types/node@25.5.0)(conventional-commits-parser@6.3.0)(typescript@5.9.3)': + '@commitlint/cli@20.5.0(@types/node@25.5.0)(conventional-commits-parser@6.3.0)(typescript@5.9.3)': dependencies: - '@commitlint/format': 20.4.4 - '@commitlint/lint': 20.4.4 - '@commitlint/load': 20.4.4(@types/node@25.5.0)(typescript@5.9.3) - '@commitlint/read': 20.4.4(conventional-commits-parser@6.3.0) - '@commitlint/types': 20.4.4 + '@commitlint/format': 20.5.0 + '@commitlint/lint': 20.5.0 + '@commitlint/load': 20.5.0(@types/node@25.5.0)(typescript@5.9.3) + '@commitlint/read': 20.5.0(conventional-commits-parser@6.3.0) + '@commitlint/types': 20.5.0 tinyexec: 1.0.4 yargs: 17.7.2 transitivePeerDependencies: @@ -12581,19 +12299,19 @@ snapshots: - conventional-commits-parser - typescript - '@commitlint/config-conventional@20.4.4': + '@commitlint/config-conventional@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 conventional-changelog-conventionalcommits: 9.3.0 - '@commitlint/config-validator@20.4.4': + '@commitlint/config-validator@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 ajv: 8.18.0 - '@commitlint/ensure@20.4.4': + '@commitlint/ensure@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 @@ -12602,29 +12320,29 @@ snapshots: '@commitlint/execute-rule@20.0.0': {} - '@commitlint/format@20.4.4': + '@commitlint/format@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 picocolors: 1.1.1 - '@commitlint/is-ignored@20.4.4': + '@commitlint/is-ignored@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 semver: 7.7.4 - '@commitlint/lint@20.4.4': + '@commitlint/lint@20.5.0': dependencies: - '@commitlint/is-ignored': 20.4.4 - '@commitlint/parse': 20.4.4 - '@commitlint/rules': 20.4.4 - '@commitlint/types': 20.4.4 + '@commitlint/is-ignored': 20.5.0 + '@commitlint/parse': 20.5.0 + '@commitlint/rules': 20.5.0 + '@commitlint/types': 20.5.0 - '@commitlint/load@20.4.4(@types/node@25.5.0)(typescript@5.9.3)': + '@commitlint/load@20.5.0(@types/node@25.5.0)(typescript@5.9.3)': dependencies: - '@commitlint/config-validator': 20.4.4 + '@commitlint/config-validator': 20.5.0 '@commitlint/execute-rule': 20.0.0 - '@commitlint/resolve-extends': 20.4.4 - '@commitlint/types': 20.4.4 + '@commitlint/resolve-extends': 20.5.0 + '@commitlint/types': 20.5.0 cosmiconfig: 9.0.1(typescript@5.9.3) cosmiconfig-typescript-loader: 6.2.0(@types/node@25.5.0)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3) is-plain-obj: 4.1.0 @@ -12636,16 +12354,16 @@ snapshots: '@commitlint/message@20.4.3': {} - '@commitlint/parse@20.4.4': + '@commitlint/parse@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 conventional-changelog-angular: 8.3.0 conventional-commits-parser: 6.3.0 - '@commitlint/read@20.4.4(conventional-commits-parser@6.3.0)': + '@commitlint/read@20.5.0(conventional-commits-parser@6.3.0)': dependencies: '@commitlint/top-level': 20.4.3 - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 git-raw-commits: 5.0.1(conventional-commits-parser@6.3.0) minimist: 1.2.8 tinyexec: 1.0.4 @@ -12653,21 +12371,21 @@ snapshots: - conventional-commits-filter - conventional-commits-parser - '@commitlint/resolve-extends@20.4.4': + '@commitlint/resolve-extends@20.5.0': dependencies: - '@commitlint/config-validator': 20.4.4 - '@commitlint/types': 20.4.4 + '@commitlint/config-validator': 20.5.0 + '@commitlint/types': 20.5.0 global-directory: 4.0.1 import-meta-resolve: 4.2.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 - '@commitlint/rules@20.4.4': + '@commitlint/rules@20.5.0': dependencies: - '@commitlint/ensure': 20.4.4 + '@commitlint/ensure': 20.5.0 '@commitlint/message': 20.4.3 '@commitlint/to-lines': 20.0.0 - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 '@commitlint/to-lines@20.0.0': {} @@ -12675,7 +12393,7 @@ snapshots: dependencies: escalade: 3.2.0 - '@commitlint/types@20.4.4': + '@commitlint/types@20.5.0': dependencies: conventional-commits-parser: 6.3.0 picocolors: 1.1.1 @@ -13976,10 +13694,6 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.9': {} - '@rollup/plugin-alias@5.1.1(rollup@4.59.0)': - optionalDependencies: - rollup: 4.59.0 - '@rollup/plugin-alias@6.0.0(rollup@4.59.0)': optionalDependencies: rollup: 4.59.0 @@ -13993,18 +13707,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@28.0.9(rollup@4.59.0)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.59.0) - commondir: 1.0.1 - estree-walker: 2.0.2 - fdir: 6.5.0(picomatch@4.0.3) - is-reference: 1.2.1 - magic-string: 0.30.21 - picomatch: 4.0.3 - optionalDependencies: - rollup: 4.59.0 - '@rollup/plugin-commonjs@29.0.2(rollup@4.59.0)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.59.0) @@ -15501,15 +15203,6 @@ snapshots: stubborn-fs: 2.0.0 when-exit: 2.1.5 - autoprefixer@10.4.27(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001779 - fraction.js: 5.3.4 - picocolors: 1.1.1 - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 @@ -15737,13 +15430,6 @@ snapshots: camelcase@8.0.0: {} - caniuse-api@3.0.0: - dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001779 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001779: {} ccount@2.0.1: {} @@ -15928,9 +15614,9 @@ snapshots: comment-parser@1.4.5: {} - commitlint-plugin-function-rules@4.3.2(@commitlint/lint@20.4.4): + commitlint-plugin-function-rules@4.3.2(@commitlint/lint@20.5.0): dependencies: - '@commitlint/lint': 20.4.4 + '@commitlint/lint': 20.5.0 common-tags@1.8.2: {} @@ -16159,10 +15845,6 @@ snapshots: semver: 7.7.4 tinyglobby: 0.2.15 - css-declaration-sorter@7.3.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - css-functions-list@3.3.3: {} css-render@0.15.14: @@ -16200,50 +15882,6 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.11(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - css-declaration-sorter: 7.3.1(postcss@8.5.8) - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 - postcss-calc: 10.1.1(postcss@8.5.8) - postcss-colormin: 7.0.6(postcss@8.5.8) - postcss-convert-values: 7.0.9(postcss@8.5.8) - postcss-discard-comments: 7.0.6(postcss@8.5.8) - postcss-discard-duplicates: 7.0.2(postcss@8.5.8) - postcss-discard-empty: 7.0.1(postcss@8.5.8) - postcss-discard-overridden: 7.0.1(postcss@8.5.8) - postcss-merge-longhand: 7.0.5(postcss@8.5.8) - postcss-merge-rules: 7.0.8(postcss@8.5.8) - postcss-minify-font-values: 7.0.1(postcss@8.5.8) - postcss-minify-gradients: 7.0.1(postcss@8.5.8) - postcss-minify-params: 7.0.6(postcss@8.5.8) - postcss-minify-selectors: 7.0.6(postcss@8.5.8) - postcss-normalize-charset: 7.0.1(postcss@8.5.8) - postcss-normalize-display-values: 7.0.1(postcss@8.5.8) - postcss-normalize-positions: 7.0.1(postcss@8.5.8) - postcss-normalize-repeat-style: 7.0.1(postcss@8.5.8) - postcss-normalize-string: 7.0.1(postcss@8.5.8) - postcss-normalize-timing-functions: 7.0.1(postcss@8.5.8) - postcss-normalize-unicode: 7.0.6(postcss@8.5.8) - postcss-normalize-url: 7.0.1(postcss@8.5.8) - postcss-normalize-whitespace: 7.0.1(postcss@8.5.8) - postcss-ordered-values: 7.0.2(postcss@8.5.8) - postcss-reduce-initial: 7.0.6(postcss@8.5.8) - postcss-reduce-transforms: 7.0.1(postcss@8.5.8) - postcss-svgo: 7.1.1(postcss@8.5.8) - postcss-unique-selectors: 7.0.5(postcss@8.5.8) - - cssnano-utils@5.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - cssnano@7.1.3(postcss@8.5.8): - dependencies: - cssnano-preset-default: 7.0.11(postcss@8.5.8) - lilconfig: 3.1.3 - postcss: 8.5.8 - csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -17118,12 +16756,6 @@ snapshots: micromatch: 4.0.8 resolve-dir: 1.0.1 - fix-dts-default-cjs-exports@1.0.1: - dependencies: - magic-string: 0.30.21 - mlly: 1.8.1 - rollup: 4.59.0 - flat-cache@4.0.1: dependencies: flatted: 3.4.1 @@ -17166,8 +16798,6 @@ snapshots: dependencies: fetch-blob: 3.2.0 - fraction.js@5.3.4: {} - framesync@6.1.2: dependencies: tslib: 2.4.0 @@ -17853,8 +17483,6 @@ snapshots: filelist: 1.0.6 picocolors: 1.1.1 - jiti@1.21.7: {} - jiti@2.6.1: {} jju@1.4.0: {} @@ -18230,8 +17858,6 @@ snapshots: lodash.kebabcase@4.1.1: {} - lodash.memoize@4.1.2: {} - lodash.merge@4.6.2: {} lodash.mergewith@4.6.2: {} @@ -18246,8 +17872,6 @@ snapshots: lodash.truncate@4.4.2: {} - lodash.uniq@4.5.0: {} - lodash.upperfirst@4.3.1: {} lodash@4.17.23: {} @@ -18438,27 +18062,6 @@ snapshots: mitt@3.0.1: {} - mkdist@2.4.1(sass@1.98.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)): - dependencies: - autoprefixer: 10.4.27(postcss@8.5.8) - citty: 0.1.6 - cssnano: 7.1.3(postcss@8.5.8) - defu: 6.1.4 - esbuild: 0.25.12 - jiti: 1.21.7 - mlly: 1.8.1 - pathe: 2.0.3 - pkg-types: 2.3.0 - postcss: 8.5.8 - postcss-nested: 7.0.2(postcss@8.5.8) - semver: 7.7.4 - tinyglobby: 0.2.15 - optionalDependencies: - sass: 1.98.0 - typescript: 5.9.3 - vue: 3.5.30(typescript@5.9.3) - vue-tsc: 3.2.5(typescript@5.9.3) - mlly@1.8.1: dependencies: acorn: 8.16.0 @@ -19040,43 +18643,6 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-calc@10.1.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - postcss-value-parser: 4.2.0 - - postcss-colormin@7.0.6(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-convert-values@7.0.9(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-discard-comments@7.0.6(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - - postcss-discard-duplicates@7.0.2(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - postcss-discard-empty@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - postcss-discard-overridden@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-html@1.8.1: dependencies: htmlparser2: 8.0.2 @@ -19094,112 +18660,6 @@ snapshots: postcss-media-query-parser@0.2.3: {} - postcss-merge-longhand@7.0.5(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - stylehacks: 7.0.8(postcss@8.5.8) - - postcss-merge-rules@7.0.8(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - - postcss-minify-font-values@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-minify-gradients@7.0.1(postcss@8.5.8): - dependencies: - colord: 2.9.3 - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-minify-params@7.0.6(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-minify-selectors@7.0.6(postcss@8.5.8): - dependencies: - cssesc: 3.0.0 - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - - postcss-nested@7.0.2(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - - postcss-normalize-charset@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - postcss-normalize-display-values@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-positions@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-repeat-style@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-string@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-timing-functions@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-unicode@7.0.6(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-url@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-whitespace@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-ordered-values@7.0.2(postcss@8.5.8): - dependencies: - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-reduce-initial@7.0.6(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - postcss: 8.5.8 - - postcss-reduce-transforms@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - postcss-resolve-nested-selector@0.1.6: {} postcss-safe-parser@6.0.0(postcss@8.5.8): @@ -19228,17 +18688,6 @@ snapshots: dependencies: postcss: 8.5.8 - postcss-svgo@7.1.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - svgo: 4.0.1 - - postcss-unique-selectors@7.0.5(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - postcss-value-parser@4.2.0: {} postcss@8.5.8: @@ -19551,17 +19000,6 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.9 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.9 - rollup-plugin-dts@6.4.0(rollup@4.59.0)(typescript@5.9.3): - dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 - convert-source-map: 2.0.0 - magic-string: 0.30.21 - rollup: 4.59.0 - typescript: 5.9.3 - optionalDependencies: - '@babel/code-frame': 7.29.0 - rollup-plugin-visualizer@6.0.11(rolldown@1.0.0-rc.9)(rollup@4.59.0): dependencies: open: 8.4.2 @@ -20112,12 +19550,6 @@ snapshots: hey-listen: 1.0.8 tslib: 2.4.0 - stylehacks@7.0.8(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - stylelint-config-html@1.1.0(postcss-html@1.8.1)(stylelint@17.4.0(typescript@5.9.3)): dependencies: postcss-html: 1.8.1 @@ -20545,40 +19977,6 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - unbuild@3.6.1(sass@1.98.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)): - dependencies: - '@rollup/plugin-alias': 5.1.1(rollup@4.59.0) - '@rollup/plugin-commonjs': 28.0.9(rollup@4.59.0) - '@rollup/plugin-json': 6.1.0(rollup@4.59.0) - '@rollup/plugin-node-resolve': 16.0.3(rollup@4.59.0) - '@rollup/plugin-replace': 6.0.3(rollup@4.59.0) - '@rollup/pluginutils': 5.3.0(rollup@4.59.0) - citty: 0.1.6 - consola: 3.4.2 - defu: 6.1.4 - esbuild: 0.25.12 - fix-dts-default-cjs-exports: 1.0.1 - hookable: 5.5.3 - jiti: 2.6.1 - magic-string: 0.30.21 - mkdist: 2.4.1(sass@1.98.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) - mlly: 1.8.1 - pathe: 2.0.3 - pkg-types: 2.3.0 - pretty-bytes: 7.1.0 - rollup: 4.59.0 - rollup-plugin-dts: 6.4.0(rollup@4.59.0)(typescript@5.9.3) - scule: 1.3.0 - tinyglobby: 0.2.15 - untyped: 2.0.0 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - sass - - vue - - vue-sfc-transformer - - vue-tsc - unconfig-core@7.5.0: dependencies: '@quansync/fs': 1.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b49343790..94cada2e5 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -46,6 +46,7 @@ catalog: '@tailwindcss/vite': ^4.2.1 '@tanstack/vue-query': ^5.92.9 '@tanstack/vue-store': ^0.9.2 + '@tsdown/css': ^0.21.3 '@types/archiver': ^7.0.0 '@types/html-minifier-terser': ^7.0.2 '@types/json-bigint': ^1.0.4 @@ -158,7 +159,6 @@ catalog: turbo: ^2.8.17 tw-animate-css: ^1.4.0 typescript: ^5.9.3 - unbuild: ^3.6.1 unplugin-dts: ^1.0.0-beta.6 unplugin-element-plus: ^0.11.2 unplugin-vue: ^7.1.1 diff --git a/scripts/vsh/src/check-dep/index.ts b/scripts/vsh/src/check-dep/index.ts index 15b2d35c9..bbda58280 100644 --- a/scripts/vsh/src/check-dep/index.ts +++ b/scripts/vsh/src/check-dep/index.ts @@ -11,7 +11,6 @@ const DEFAULT_CONFIG = { 'vite', 'vitest', 'tsdown', - 'unbuild', '@vben/tsconfig', '@vben/vite-config', '@types/*', From 86b636ae5487558fb9a345308ab7fe70f02235c6 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 22:47:28 +0800 Subject: [PATCH 26/39] fix(@vben/vite-config): externalize node utils dependency --- internal/vite-config/package.json | 2 +- internal/vite-config/tsdown.config.ts | 1 + pnpm-lock.yaml | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index 7523d3ee5..1e8ab00d6 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -31,6 +31,7 @@ "@intlify/unplugin-vue-i18n": "catalog:", "@jspm/generator": "catalog:", "@tailwindcss/vite": "catalog:", + "@vben/node-utils": "workspace:*", "archiver": "catalog:", "cheerio": "catalog:", "get-port": "catalog:", @@ -44,7 +45,6 @@ "@pnpm/workspace.read-manifest": "catalog:", "@types/archiver": "catalog:", "@types/html-minifier-terser": "catalog:", - "@vben/node-utils": "workspace:*", "@vitejs/plugin-vue": "catalog:", "@vitejs/plugin-vue-jsx": "catalog:", "dayjs": "catalog:", diff --git a/internal/vite-config/tsdown.config.ts b/internal/vite-config/tsdown.config.ts index 88b76bebc..de7727b06 100644 --- a/internal/vite-config/tsdown.config.ts +++ b/internal/vite-config/tsdown.config.ts @@ -10,6 +10,7 @@ const loadingAssets = ['default-loading-antd.html', 'default-loading.html']; export default defineConfig({ clean: true, deps: { + neverBundle: ['@vben/node-utils'], skipNodeModulesBundle: true, }, dts: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a7ed8cf43..9f051ca96 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1183,6 +1183,9 @@ importers: '@tailwindcss/vite': specifier: 'catalog:' version: 4.2.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) + '@vben/node-utils': + specifier: workspace:* + version: link:../node-utils archiver: specifier: 'catalog:' version: 7.0.1 @@ -1217,9 +1220,6 @@ importers: '@types/html-minifier-terser': specifier: 'catalog:' version: 7.0.2 - '@vben/node-utils': - specifier: workspace:* - version: link:../node-utils '@vitejs/plugin-vue': specifier: 'catalog:' version: 6.0.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)) From 5558249cd335c2aa21562daa7f0c6daf734eac45 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 23:11:41 +0800 Subject: [PATCH 27/39] chore: unbuild --- internal/lint-configs/eslint-config/package.json | 3 +-- internal/lint-configs/oxfmt-config/package.json | 3 +-- internal/lint-configs/oxlint-config/package.json | 1 - internal/node-utils/package.json | 3 +-- internal/vite-config/package.json | 3 +-- packages/@core/base/icons/package.json | 3 +-- packages/@core/base/typings/package.json | 3 +-- packages/@core/composables/package.json | 3 +-- packages/@core/preferences/package.json | 3 +-- packages/@core/ui-kit/form-ui/package.json | 1 - packages/@core/ui-kit/layout-ui/package.json | 1 - packages/@core/ui-kit/menu-ui/package.json | 1 - packages/@core/ui-kit/popup-ui/package.json | 1 - packages/@core/ui-kit/tabs-ui/package.json | 1 - scripts/turbo-run/package.json | 3 +-- scripts/vsh/package.json | 3 +-- 16 files changed, 10 insertions(+), 26 deletions(-) diff --git a/internal/lint-configs/eslint-config/package.json b/internal/lint-configs/eslint-config/package.json index ae64af4cd..c0ce7615f 100644 --- a/internal/lint-configs/eslint-config/package.json +++ b/internal/lint-configs/eslint-config/package.json @@ -12,8 +12,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown", - "stub": "pnpm run build" + "stub": "pnpm exec tsdown" }, "files": [ "dist" diff --git a/internal/lint-configs/oxfmt-config/package.json b/internal/lint-configs/oxfmt-config/package.json index 72bf4b9b7..c239c026b 100644 --- a/internal/lint-configs/oxfmt-config/package.json +++ b/internal/lint-configs/oxfmt-config/package.json @@ -12,8 +12,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown", - "stub": "pnpm run build" + "stub": "pnpm exec tsdown" }, "files": [ "dist" diff --git a/internal/lint-configs/oxlint-config/package.json b/internal/lint-configs/oxlint-config/package.json index be40ad6c8..bc20762fe 100644 --- a/internal/lint-configs/oxlint-config/package.json +++ b/internal/lint-configs/oxlint-config/package.json @@ -12,7 +12,6 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown", "stub": "pnpm exec tsdown" }, "files": [ diff --git a/internal/node-utils/package.json b/internal/node-utils/package.json index dd868eb8e..35892a118 100644 --- a/internal/node-utils/package.json +++ b/internal/node-utils/package.json @@ -12,8 +12,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "node ./scripts/build.mjs", - "stub": "pnpm run build" + "stub": "node ./scripts/build.mjs" }, "files": [ "dist" diff --git a/internal/vite-config/package.json b/internal/vite-config/package.json index 1e8ab00d6..b420f14fa 100644 --- a/internal/vite-config/package.json +++ b/internal/vite-config/package.json @@ -12,8 +12,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown", - "stub": "pnpm run build" + "stub": "pnpm exec tsdown" }, "files": [ "dist" diff --git a/packages/@core/base/icons/package.json b/packages/@core/base/icons/package.json index efa702b1e..558a5b7ca 100644 --- a/packages/@core/base/icons/package.json +++ b/packages/@core/base/icons/package.json @@ -11,8 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown", - "stub": "pnpm run build" + "build": "pnpm exec tsdown" }, "files": [ "dist" diff --git a/packages/@core/base/typings/package.json b/packages/@core/base/typings/package.json index 19c4cd54a..b90f3df25 100644 --- a/packages/@core/base/typings/package.json +++ b/packages/@core/base/typings/package.json @@ -11,8 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown", - "stub": "pnpm run build" + "build": "pnpm exec tsdown" }, "files": [ "dist", diff --git a/packages/@core/composables/package.json b/packages/@core/composables/package.json index 2bb19c0af..de58e59ff 100644 --- a/packages/@core/composables/package.json +++ b/packages/@core/composables/package.json @@ -11,8 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown", - "stub": "pnpm run build" + "build": "pnpm exec tsdown" }, "files": [ "dist" diff --git a/packages/@core/preferences/package.json b/packages/@core/preferences/package.json index 6f147844d..3a92f9264 100644 --- a/packages/@core/preferences/package.json +++ b/packages/@core/preferences/package.json @@ -11,8 +11,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown", - "stub": "pnpm run build" + "#build": "pnpm exec tsdown" }, "files": [ "dist", diff --git a/packages/@core/ui-kit/form-ui/package.json b/packages/@core/ui-kit/form-ui/package.json index 476bc38ab..f79c2a169 100644 --- a/packages/@core/ui-kit/form-ui/package.json +++ b/packages/@core/ui-kit/form-ui/package.json @@ -12,7 +12,6 @@ "type": "module", "scripts": { "build": "pnpm exec tsdown", - "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ diff --git a/packages/@core/ui-kit/layout-ui/package.json b/packages/@core/ui-kit/layout-ui/package.json index 5b09e282b..efeba2269 100644 --- a/packages/@core/ui-kit/layout-ui/package.json +++ b/packages/@core/ui-kit/layout-ui/package.json @@ -12,7 +12,6 @@ "type": "module", "scripts": { "build": "pnpm exec tsdown", - "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ diff --git a/packages/@core/ui-kit/menu-ui/package.json b/packages/@core/ui-kit/menu-ui/package.json index 5e2d5dd86..a1dbc1b2a 100644 --- a/packages/@core/ui-kit/menu-ui/package.json +++ b/packages/@core/ui-kit/menu-ui/package.json @@ -12,7 +12,6 @@ "type": "module", "scripts": { "build": "pnpm exec tsdown", - "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ diff --git a/packages/@core/ui-kit/popup-ui/package.json b/packages/@core/ui-kit/popup-ui/package.json index 951869861..0e384cbf3 100644 --- a/packages/@core/ui-kit/popup-ui/package.json +++ b/packages/@core/ui-kit/popup-ui/package.json @@ -12,7 +12,6 @@ "type": "module", "scripts": { "build": "pnpm exec tsdown", - "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ diff --git a/packages/@core/ui-kit/tabs-ui/package.json b/packages/@core/ui-kit/tabs-ui/package.json index 260d14d6b..23e37f0a4 100644 --- a/packages/@core/ui-kit/tabs-ui/package.json +++ b/packages/@core/ui-kit/tabs-ui/package.json @@ -12,7 +12,6 @@ "type": "module", "scripts": { "build": "pnpm exec tsdown", - "stub": "pnpm run build", "prepublishOnly": "npm run build" }, "files": [ diff --git a/scripts/turbo-run/package.json b/scripts/turbo-run/package.json index 11943746a..0ab451fdc 100644 --- a/scripts/turbo-run/package.json +++ b/scripts/turbo-run/package.json @@ -5,8 +5,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown", - "stub": "pnpm run build" + "stub": "pnpm exec tsdown" }, "files": [ "dist" diff --git a/scripts/vsh/package.json b/scripts/vsh/package.json index dfe64b055..a973bd5ae 100644 --- a/scripts/vsh/package.json +++ b/scripts/vsh/package.json @@ -5,8 +5,7 @@ "license": "MIT", "type": "module", "scripts": { - "build": "pnpm exec tsdown", - "stub": "pnpm run build" + "stub": "pnpm exec tsdown" }, "files": [ "dist" From 32db4cbd113897eff36824a1402e50c828824eca Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Sun, 15 Mar 2026 23:11:59 +0800 Subject: [PATCH 28/39] fix: build warn --- packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue b/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue index f4f7ffa47..9dc784334 100644 --- a/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue +++ b/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue @@ -448,8 +448,9 @@ defineExpose({ } .item { - @apply h-7.5 w-full box-border; - + box-sizing: border-box; + width: 100%; + height: 30px; background-color: #f3f3f3; border: 1px solid #666; } From 4b3205fee8d136b139f7aceb1cdf3b4fe5b95d23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=89=E8=BF=9C?= Date: Mon, 16 Mar 2026 15:01:43 +0800 Subject: [PATCH 29/39] =?UTF-8?q?feat:=20antd=20Upload=20=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E7=BB=84=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=8B=96=E6=8B=BD=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/adapter/component/index.ts | 587 +++++++++++-------- playground/src/adapter/component/index.ts | 587 +++++++++++-------- playground/src/views/examples/form/basic.vue | 6 +- 3 files changed, 671 insertions(+), 509 deletions(-) diff --git a/apps/web-antd/src/adapter/component/index.ts b/apps/web-antd/src/adapter/component/index.ts index 80d990b76..61760514a 100644 --- a/apps/web-antd/src/adapter/component/index.ts +++ b/apps/web-antd/src/adapter/component/index.ts @@ -14,6 +14,7 @@ import type { import type { Component, Ref } from 'vue'; import type { BaseFormComponentType } from '@vben/common-ui'; +import type { Sortable } from '@vben/hooks'; import type { Recordable } from '@vben/types'; import { @@ -21,6 +22,9 @@ import { defineAsyncComponent, defineComponent, h, + nextTick, + onMounted, + onUnmounted, ref, render, unref, @@ -33,6 +37,7 @@ import { IconPicker, VCropper, } from '@vben/common-ui'; +import { useSortable } from '@vben/hooks'; import { IconifyIcon } from '@vben/icons'; import { $t } from '@vben/locales'; import { isEmpty } from '@vben/utils'; @@ -126,260 +131,261 @@ const withDefaultPlaceholder = ( }); }; -const withPreviewUpload = () => { - // 检查是否为图片文件的辅助函数 - const isImageFile = (file: UploadFile): boolean => { - const imageExtensions = new Set([ - 'bmp', - 'gif', - 'jpeg', - 'jpg', - 'png', - 'svg', - 'webp', - ]); - if (file.url) { - try { - const pathname = new URL(file.url, 'http://localhost').pathname; - const ext = pathname.split('.').pop()?.toLowerCase(); - return ext ? imageExtensions.has(ext) : false; - } catch { - const ext = file.url?.split('.').pop()?.toLowerCase(); - return ext ? imageExtensions.has(ext) : false; - } - } - if (!file.type) { - const ext = file.name?.split('.').pop()?.toLowerCase(); - return ext ? imageExtensions.has(ext) : false; +const IMAGE_EXTENSIONS = new Set([ + 'bmp', + 'gif', + 'jpeg', + 'jpg', + 'png', + 'svg', + 'webp', +]); + +/** + * 检查是否为图片文件 + */ +function isImageFile(file: UploadFile): boolean { + if (file.url) { + try { + const pathname = new URL(file.url, 'http://localhost').pathname; + const ext = pathname.split('.').pop()?.toLowerCase(); + return ext ? IMAGE_EXTENSIONS.has(ext) : false; + } catch { + const ext = file.url?.split('.').pop()?.toLowerCase(); + return ext ? IMAGE_EXTENSIONS.has(ext) : false; } - return file.type.startsWith('image/'); + } + if (!file.type) { + const ext = file.name?.split('.').pop()?.toLowerCase(); + return ext ? IMAGE_EXTENSIONS.has(ext) : false; + } + return file.type.startsWith('image/'); +} + +/** + * 创建默认的上传按钮插槽 + */ +function createDefaultUploadSlots(listType: string, placeholder: string) { + if (listType === 'picture-card') { + return { default: () => placeholder }; + } + return { + default: () => + h( + Button, + { + icon: h(IconifyIcon, { + icon: 'ant-design:upload-outlined', + class: 'mb-1 size-4', + }), + }, + () => placeholder, + ), }; - // 创建默认的上传按钮插槽 - const createDefaultSlotsWithUpload = ( - listType: string, - placeholder: string, - ) => { - switch (listType) { - case 'picture-card': { - return { - default: () => placeholder, - }; - } - default: { - return { - default: () => - h( - Button, - { - icon: h(IconifyIcon, { - icon: 'ant-design:upload-outlined', - class: 'mb-1 size-4', - }), +} + +/** + * 获取文件的 Base64 + */ +function getBase64(file: File): Promise { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.readAsDataURL(file); + reader.addEventListener('load', () => resolve(reader.result as string)); + reader.addEventListener('error', reject); + }); +} + +/** + * 预览图片 + */ +async function previewImage( + file: UploadFile, + visible: Ref, + fileList: Ref, +) { + // 非图片文件直接打开链接 + if (!isImageFile(file)) { + const url = file.url || file.preview; + if (url) { + window.open(url, '_blank'); + } else { + message.error($t('ui.formRules.previewWarning')); + } + return; + } + + const [ImageComponent, PreviewGroupComponent] = await Promise.all([ + Image, + PreviewGroup, + ]); + + // 过滤图片文件并生成预览 + const imageFiles = (unref(fileList) || []).filter((f) => isImageFile(f)); + + for (const imgFile of imageFiles) { + if (!imgFile.url && !imgFile.preview && imgFile.originFileObj) { + imgFile.preview = await getBase64(imgFile.originFileObj); + } + } + + const container = document.createElement('div'); + document.body.append(container); + let isUnmounted = false; + + const currentIndex = imageFiles.findIndex((f) => f.uid === file.uid); + + const PreviewWrapper = { + setup() { + return () => { + if (isUnmounted) return null; + return h( + PreviewGroupComponent, + { + class: 'hidden', + preview: { + visible: visible.value, + current: currentIndex, + onVisibleChange: (value: boolean) => { + visible.value = value; + if (!value) { + setTimeout(() => { + if (!isUnmounted && container) { + isUnmounted = true; + render(null, container); + container.remove(); + } + }, 300); + } }, - () => placeholder, + }, + }, + () => + imageFiles.map((imgFile) => + h(ImageComponent, { + key: imgFile.uid, + src: imgFile.url || imgFile.preview, + }), ), - }; - } - } + ); + }; + }, }; - // 构建预览图片组 - const previewImage = async ( - file: UploadFile, - visible: Ref, - fileList: Ref, - ) => { - // 如果当前文件不是图片,直接打开 - if (!isImageFile(file)) { - if (file.url) { - window.open(file.url, '_blank'); - } else if (file.preview) { - window.open(file.preview, '_blank'); - } else { - message.error($t('ui.formRules.previewWarning')); - } - return; - } - // 对于图片文件,继续使用预览组 - const [ImageComponent, PreviewGroupComponent] = await Promise.all([ - Image, - PreviewGroup, - ]); - - const getBase64 = (file: File) => { - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.readAsDataURL(file); - reader.addEventListener('load', () => resolve(reader.result)); - reader.addEventListener('error', (error) => reject(error)); - }); - }; - // 从fileList中过滤出所有图片文件 - const imageFiles = (unref(fileList) || []).filter((element) => - isImageFile(element), - ); - - // 为所有没有预览地址的图片生成预览 - for (const imgFile of imageFiles) { - if (!imgFile.url && !imgFile.preview && imgFile.originFileObj) { - imgFile.preview = (await getBase64(imgFile.originFileObj)) as string; - } - } - const container: HTMLElement | null = document.createElement('div'); + render(h(PreviewWrapper), container); +} + +/** + * 图片裁剪操作 + */ +function cropImage(file: File, aspectRatio: string | undefined) { + return new Promise((resolve, reject) => { + const container = document.createElement('div'); document.body.append(container); - // 用于追踪组件是否已卸载 let isUnmounted = false; + let objectUrl: null | string = null; + + const open = ref(true); + const cropperRef = ref | null>(null); + + const closeModal = () => { + open.value = false; + setTimeout(() => { + if (!isUnmounted && container) { + if (objectUrl) { + URL.revokeObjectURL(objectUrl); + } + isUnmounted = true; + render(null, container); + container.remove(); + } + }, 300); + }; - const PreviewWrapper = { + const CropperWrapper = { setup() { return () => { if (isUnmounted) return null; + if (!objectUrl) { + objectUrl = URL.createObjectURL(file); + } return h( - PreviewGroupComponent, + Modal, { - class: 'hidden', - preview: { - visible: visible.value, - // 设置初始显示的图片索引 - current: imageFiles.findIndex((f) => f.uid === file.uid), - onVisibleChange: (value: boolean) => { - visible.value = value; - if (!value) { - // 延迟清理,确保动画完成 - setTimeout(() => { - if (!isUnmounted && container) { - isUnmounted = true; - render(null, container); - container.remove(); - } - }, 300); + open: open.value, + title: h('div', {}, [ + $t('ui.crop.title'), + h( + 'span', + { + class: `${aspectRatio ? '' : 'hidden'} ml-2 text-sm text-gray-400 font-normal`, + }, + $t('ui.crop.titleTip', [aspectRatio]), + ), + ]), + centered: true, + width: 548, + keyboard: false, + maskClosable: false, + closable: false, + cancelText: $t('common.cancel'), + okText: $t('ui.crop.confirm'), + destroyOnClose: true, + onOk: async () => { + const cropper = cropperRef.value; + if (!cropper) { + reject(new Error('Cropper not found')); + closeModal(); + return; + } + try { + const dataUrl = await cropper.getCropImage(); + if (dataUrl) { + resolve(dataUrl); + } else { + reject(new Error($t('ui.crop.errorTip'))); } - }, + } catch { + reject(new Error($t('ui.crop.errorTip'))); + } finally { + closeModal(); + } + }, + onCancel() { + resolve(''); + closeModal(); }, }, () => - // 渲染所有图片文件 - imageFiles.map((imgFile) => - h(ImageComponent, { - key: imgFile.uid, - src: imgFile.url || imgFile.preview, - }), - ), + h(VCropper, { + ref: (ref: any) => (cropperRef.value = ref), + img: objectUrl as string, + aspectRatio, + }), ); }; }, }; - render(h(PreviewWrapper), container); - }; - - // 图片裁剪操作 - const cropImage = (file: File, aspectRatio: string | undefined) => { - return new Promise((resolve, reject) => { - const container: HTMLElement | null = document.createElement('div'); - document.body.append(container); - - // 用于追踪组件是否已卸载 - let isUnmounted = false; - let objectUrl: null | string = null; - - const open = ref(true); - const cropperRef = ref | null>(null); - - const closeModal = () => { - open.value = false; - // 延迟清理,确保动画完成 - setTimeout(() => { - if (!isUnmounted && container) { - if (objectUrl) { - URL.revokeObjectURL(objectUrl); - } - isUnmounted = true; - render(null, container); - container.remove(); - } - }, 300); - }; - - const CropperWrapper = { - setup() { - return () => { - if (isUnmounted) return null; - if (!objectUrl) { - objectUrl = URL.createObjectURL(file); - } - return h( - Modal, - { - open: open.value, - title: h('div', {}, [ - $t('ui.crop.title'), - h( - 'span', - { - class: `${aspectRatio ? '' : 'hidden'} ml-2 text-sm text-gray-400 font-normal`, - }, - $t('ui.crop.titleTip', [aspectRatio]), - ), - ]), - centered: true, - width: 548, - keyboard: false, - maskClosable: false, - closable: false, - cancelText: $t('common.cancel'), - okText: $t('ui.crop.confirm'), - destroyOnClose: true, - onOk: async () => { - const cropper = cropperRef.value; - if (!cropper) { - reject(new Error('Cropper not found')); - closeModal(); - return; - } - try { - const dataUrl = await cropper.getCropImage(); - resolve(dataUrl); - } catch { - reject(new Error($t('ui.crop.errorTip'))); - } finally { - closeModal(); - } - }, - onCancel() { - resolve(''); - closeModal(); - }, - }, - () => - h(VCropper, { - ref: (ref: any) => (cropperRef.value = ref), - img: objectUrl as string, - aspectRatio, - }), - ); - }; - }, - }; - - render(h(CropperWrapper), container); - }); - }; + render(h(CropperWrapper), container); + }); +} +/** + * 带预览功能的上传组件 + */ +const withPreviewUpload = () => { return defineComponent({ name: Upload.name, emits: ['update:modelValue'], - setup: ( + setup( props: any, { attrs, slots, emit }: { attrs: any; emit: any; slots: any }, - ) => { + ) { const previewVisible = ref(false); - - const placeholder = attrs?.placeholder || $t(`ui.placeholder.upload`); - + const placeholder = attrs?.placeholder || $t('ui.placeholder.upload'); const listType = attrs?.listType || attrs?.['list-type'] || 'text'; - const fileList = ref( attrs?.fileList || attrs?.['file-list'] || [], ); @@ -393,12 +399,14 @@ const withPreviewUpload = () => { file: UploadFile, originFileList: Array, ) => { + // 文件大小限制 if (maxSize.value && (file.size || 0) / 1024 / 1024 > maxSize.value) { message.error($t('ui.formRules.sizeLimit', [maxSize.value])); file.status = 'removed'; return false; } - // 多选或者非图片不唤起裁剪框 + + // 图片裁剪处理 if ( attrs.crop && !attrs.multiple && @@ -406,14 +414,11 @@ const withPreviewUpload = () => { isImageFile(file) ) { file.status = 'removed'; - // antd Upload组件问题 file参数获取的是UploadFile类型对象无法取到File类型 所以通过originFileList[0]获取 const blob = await cropImage(originFileList[0], aspectRatio.value); - return new Promise((resolve, reject) => { - if (!blob) { - return reject(new Error($t('ui.crop.errorTip'))); - } - resolve(blob); - }); + if (!blob) { + throw new Error($t('ui.crop.errorTip')); + } + return blob; } return attrs.beforeUpload?.(file) ?? true; @@ -421,12 +426,9 @@ const withPreviewUpload = () => { const handleChange = (event: UploadChangeParam) => { try { - // 行内写法 handleChange: (event) => {} attrs.handleChange?.(event); - // template写法 @handle-change="(event) => {}" attrs.onHandleChange?.(event); } catch (error) { - // Avoid breaking internal v-model sync on user handler errors console.error(error); } fileList.value = event.fileList.filter( @@ -443,21 +445,88 @@ const withPreviewUpload = () => { await previewImage(file, previewVisible, fileList); }; - const renderUploadButton = (): any => { - const isDisabled = attrs.disabled; - - // 如果禁用,不渲染上传按钮 - if (isDisabled) { - return null; - } - - // 否则渲染默认上传按钮 + const renderUploadButton = () => { + if (attrs.disabled) return null; return isEmpty(slots) - ? createDefaultSlotsWithUpload(listType, placeholder) + ? createDefaultUploadSlots(listType, placeholder) : slots; }; - // 可以监听到表单API设置的值 + // 拖拽排序 + const draggable = computed( + () => (attrs.draggable ?? false) && !attrs.disabled, + ); + const uploadId = `upload-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`; + const sortableInstance = ref(null); + + const styleId = `upload-drag-style-${uploadId}`; + + function injectDragStyle() { + if (!document.querySelector(`[id="${styleId}"]`)) { + const style = document.createElement('style'); + style.id = styleId; + style.textContent = ` + [data-upload-id="${uploadId}"] .ant-upload-list-item { cursor: move; } + [data-upload-id="${uploadId}"] .ant-upload-list-item:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.15); } + `; + document.head.append(style); + } + } + + function removeDragStyle() { + document.querySelector(`[id="${styleId}"]`)?.remove(); + } + + async function initSortable(retryCount = 0) { + if (!draggable.value) return; + + injectDragStyle(); + await nextTick(); + await new Promise((resolve) => setTimeout(resolve, 100)); + + const container = document.querySelector( + `[data-upload-id="${uploadId}"] .ant-upload-list`, + ) as HTMLElement; + + if (!container) { + if (retryCount < 5) { + setTimeout(() => initSortable(retryCount + 1), 200); + } + return; + } + + const { initializeSortable } = useSortable(container, { + animation: 300, + delay: 400, + delayOnTouchOnly: true, + filter: + '.ant-upload-select, .ant-upload-list-item-error, .ant-upload-list-item-uploading', + onEnd: (evt) => { + const { oldIndex, newIndex } = evt; + if ( + oldIndex === undefined || + newIndex === undefined || + oldIndex === newIndex + ) { + return; + } + + const list = [...(fileList.value || [])]; + const [movedItem] = list.splice(oldIndex, 1); + if (movedItem) { + list.splice(newIndex, 0, movedItem); + fileList.value = list; + } + + attrs.onDragSort?.(oldIndex, newIndex); + emit('update:modelValue', fileList.value); + }, + }); + + sortableInstance.value = await initializeSortable(); + } + + // 监听表单值变化 watch( () => attrs.modelValue, (res) => { @@ -465,18 +534,28 @@ const withPreviewUpload = () => { }, ); + onMounted(initSortable); + onUnmounted(() => { + sortableInstance.value?.destroy(); + removeDragStyle(); + }); + return () => h( - Upload, - { - ...props, - ...attrs, - fileList: fileList.value, - beforeUpload: handleBeforeUpload, - onChange: handleChange, - onPreview: handlePreview, - }, - renderUploadButton(), + 'div', + { 'data-upload-id': uploadId, class: 'w-full' }, + h( + Upload, + { + ...props, + ...attrs, + fileList: fileList.value, + beforeUpload: handleBeforeUpload, + onChange: handleChange, + onPreview: handlePreview, + }, + renderUploadButton() as any, + ), ); }, }); diff --git a/playground/src/adapter/component/index.ts b/playground/src/adapter/component/index.ts index 80d990b76..61760514a 100644 --- a/playground/src/adapter/component/index.ts +++ b/playground/src/adapter/component/index.ts @@ -14,6 +14,7 @@ import type { import type { Component, Ref } from 'vue'; import type { BaseFormComponentType } from '@vben/common-ui'; +import type { Sortable } from '@vben/hooks'; import type { Recordable } from '@vben/types'; import { @@ -21,6 +22,9 @@ import { defineAsyncComponent, defineComponent, h, + nextTick, + onMounted, + onUnmounted, ref, render, unref, @@ -33,6 +37,7 @@ import { IconPicker, VCropper, } from '@vben/common-ui'; +import { useSortable } from '@vben/hooks'; import { IconifyIcon } from '@vben/icons'; import { $t } from '@vben/locales'; import { isEmpty } from '@vben/utils'; @@ -126,260 +131,261 @@ const withDefaultPlaceholder = ( }); }; -const withPreviewUpload = () => { - // 检查是否为图片文件的辅助函数 - const isImageFile = (file: UploadFile): boolean => { - const imageExtensions = new Set([ - 'bmp', - 'gif', - 'jpeg', - 'jpg', - 'png', - 'svg', - 'webp', - ]); - if (file.url) { - try { - const pathname = new URL(file.url, 'http://localhost').pathname; - const ext = pathname.split('.').pop()?.toLowerCase(); - return ext ? imageExtensions.has(ext) : false; - } catch { - const ext = file.url?.split('.').pop()?.toLowerCase(); - return ext ? imageExtensions.has(ext) : false; - } - } - if (!file.type) { - const ext = file.name?.split('.').pop()?.toLowerCase(); - return ext ? imageExtensions.has(ext) : false; +const IMAGE_EXTENSIONS = new Set([ + 'bmp', + 'gif', + 'jpeg', + 'jpg', + 'png', + 'svg', + 'webp', +]); + +/** + * 检查是否为图片文件 + */ +function isImageFile(file: UploadFile): boolean { + if (file.url) { + try { + const pathname = new URL(file.url, 'http://localhost').pathname; + const ext = pathname.split('.').pop()?.toLowerCase(); + return ext ? IMAGE_EXTENSIONS.has(ext) : false; + } catch { + const ext = file.url?.split('.').pop()?.toLowerCase(); + return ext ? IMAGE_EXTENSIONS.has(ext) : false; } - return file.type.startsWith('image/'); + } + if (!file.type) { + const ext = file.name?.split('.').pop()?.toLowerCase(); + return ext ? IMAGE_EXTENSIONS.has(ext) : false; + } + return file.type.startsWith('image/'); +} + +/** + * 创建默认的上传按钮插槽 + */ +function createDefaultUploadSlots(listType: string, placeholder: string) { + if (listType === 'picture-card') { + return { default: () => placeholder }; + } + return { + default: () => + h( + Button, + { + icon: h(IconifyIcon, { + icon: 'ant-design:upload-outlined', + class: 'mb-1 size-4', + }), + }, + () => placeholder, + ), }; - // 创建默认的上传按钮插槽 - const createDefaultSlotsWithUpload = ( - listType: string, - placeholder: string, - ) => { - switch (listType) { - case 'picture-card': { - return { - default: () => placeholder, - }; - } - default: { - return { - default: () => - h( - Button, - { - icon: h(IconifyIcon, { - icon: 'ant-design:upload-outlined', - class: 'mb-1 size-4', - }), +} + +/** + * 获取文件的 Base64 + */ +function getBase64(file: File): Promise { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.readAsDataURL(file); + reader.addEventListener('load', () => resolve(reader.result as string)); + reader.addEventListener('error', reject); + }); +} + +/** + * 预览图片 + */ +async function previewImage( + file: UploadFile, + visible: Ref, + fileList: Ref, +) { + // 非图片文件直接打开链接 + if (!isImageFile(file)) { + const url = file.url || file.preview; + if (url) { + window.open(url, '_blank'); + } else { + message.error($t('ui.formRules.previewWarning')); + } + return; + } + + const [ImageComponent, PreviewGroupComponent] = await Promise.all([ + Image, + PreviewGroup, + ]); + + // 过滤图片文件并生成预览 + const imageFiles = (unref(fileList) || []).filter((f) => isImageFile(f)); + + for (const imgFile of imageFiles) { + if (!imgFile.url && !imgFile.preview && imgFile.originFileObj) { + imgFile.preview = await getBase64(imgFile.originFileObj); + } + } + + const container = document.createElement('div'); + document.body.append(container); + let isUnmounted = false; + + const currentIndex = imageFiles.findIndex((f) => f.uid === file.uid); + + const PreviewWrapper = { + setup() { + return () => { + if (isUnmounted) return null; + return h( + PreviewGroupComponent, + { + class: 'hidden', + preview: { + visible: visible.value, + current: currentIndex, + onVisibleChange: (value: boolean) => { + visible.value = value; + if (!value) { + setTimeout(() => { + if (!isUnmounted && container) { + isUnmounted = true; + render(null, container); + container.remove(); + } + }, 300); + } }, - () => placeholder, + }, + }, + () => + imageFiles.map((imgFile) => + h(ImageComponent, { + key: imgFile.uid, + src: imgFile.url || imgFile.preview, + }), ), - }; - } - } + ); + }; + }, }; - // 构建预览图片组 - const previewImage = async ( - file: UploadFile, - visible: Ref, - fileList: Ref, - ) => { - // 如果当前文件不是图片,直接打开 - if (!isImageFile(file)) { - if (file.url) { - window.open(file.url, '_blank'); - } else if (file.preview) { - window.open(file.preview, '_blank'); - } else { - message.error($t('ui.formRules.previewWarning')); - } - return; - } - // 对于图片文件,继续使用预览组 - const [ImageComponent, PreviewGroupComponent] = await Promise.all([ - Image, - PreviewGroup, - ]); - - const getBase64 = (file: File) => { - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.readAsDataURL(file); - reader.addEventListener('load', () => resolve(reader.result)); - reader.addEventListener('error', (error) => reject(error)); - }); - }; - // 从fileList中过滤出所有图片文件 - const imageFiles = (unref(fileList) || []).filter((element) => - isImageFile(element), - ); - - // 为所有没有预览地址的图片生成预览 - for (const imgFile of imageFiles) { - if (!imgFile.url && !imgFile.preview && imgFile.originFileObj) { - imgFile.preview = (await getBase64(imgFile.originFileObj)) as string; - } - } - const container: HTMLElement | null = document.createElement('div'); + render(h(PreviewWrapper), container); +} + +/** + * 图片裁剪操作 + */ +function cropImage(file: File, aspectRatio: string | undefined) { + return new Promise((resolve, reject) => { + const container = document.createElement('div'); document.body.append(container); - // 用于追踪组件是否已卸载 let isUnmounted = false; + let objectUrl: null | string = null; + + const open = ref(true); + const cropperRef = ref | null>(null); + + const closeModal = () => { + open.value = false; + setTimeout(() => { + if (!isUnmounted && container) { + if (objectUrl) { + URL.revokeObjectURL(objectUrl); + } + isUnmounted = true; + render(null, container); + container.remove(); + } + }, 300); + }; - const PreviewWrapper = { + const CropperWrapper = { setup() { return () => { if (isUnmounted) return null; + if (!objectUrl) { + objectUrl = URL.createObjectURL(file); + } return h( - PreviewGroupComponent, + Modal, { - class: 'hidden', - preview: { - visible: visible.value, - // 设置初始显示的图片索引 - current: imageFiles.findIndex((f) => f.uid === file.uid), - onVisibleChange: (value: boolean) => { - visible.value = value; - if (!value) { - // 延迟清理,确保动画完成 - setTimeout(() => { - if (!isUnmounted && container) { - isUnmounted = true; - render(null, container); - container.remove(); - } - }, 300); + open: open.value, + title: h('div', {}, [ + $t('ui.crop.title'), + h( + 'span', + { + class: `${aspectRatio ? '' : 'hidden'} ml-2 text-sm text-gray-400 font-normal`, + }, + $t('ui.crop.titleTip', [aspectRatio]), + ), + ]), + centered: true, + width: 548, + keyboard: false, + maskClosable: false, + closable: false, + cancelText: $t('common.cancel'), + okText: $t('ui.crop.confirm'), + destroyOnClose: true, + onOk: async () => { + const cropper = cropperRef.value; + if (!cropper) { + reject(new Error('Cropper not found')); + closeModal(); + return; + } + try { + const dataUrl = await cropper.getCropImage(); + if (dataUrl) { + resolve(dataUrl); + } else { + reject(new Error($t('ui.crop.errorTip'))); } - }, + } catch { + reject(new Error($t('ui.crop.errorTip'))); + } finally { + closeModal(); + } + }, + onCancel() { + resolve(''); + closeModal(); }, }, () => - // 渲染所有图片文件 - imageFiles.map((imgFile) => - h(ImageComponent, { - key: imgFile.uid, - src: imgFile.url || imgFile.preview, - }), - ), + h(VCropper, { + ref: (ref: any) => (cropperRef.value = ref), + img: objectUrl as string, + aspectRatio, + }), ); }; }, }; - render(h(PreviewWrapper), container); - }; - - // 图片裁剪操作 - const cropImage = (file: File, aspectRatio: string | undefined) => { - return new Promise((resolve, reject) => { - const container: HTMLElement | null = document.createElement('div'); - document.body.append(container); - - // 用于追踪组件是否已卸载 - let isUnmounted = false; - let objectUrl: null | string = null; - - const open = ref(true); - const cropperRef = ref | null>(null); - - const closeModal = () => { - open.value = false; - // 延迟清理,确保动画完成 - setTimeout(() => { - if (!isUnmounted && container) { - if (objectUrl) { - URL.revokeObjectURL(objectUrl); - } - isUnmounted = true; - render(null, container); - container.remove(); - } - }, 300); - }; - - const CropperWrapper = { - setup() { - return () => { - if (isUnmounted) return null; - if (!objectUrl) { - objectUrl = URL.createObjectURL(file); - } - return h( - Modal, - { - open: open.value, - title: h('div', {}, [ - $t('ui.crop.title'), - h( - 'span', - { - class: `${aspectRatio ? '' : 'hidden'} ml-2 text-sm text-gray-400 font-normal`, - }, - $t('ui.crop.titleTip', [aspectRatio]), - ), - ]), - centered: true, - width: 548, - keyboard: false, - maskClosable: false, - closable: false, - cancelText: $t('common.cancel'), - okText: $t('ui.crop.confirm'), - destroyOnClose: true, - onOk: async () => { - const cropper = cropperRef.value; - if (!cropper) { - reject(new Error('Cropper not found')); - closeModal(); - return; - } - try { - const dataUrl = await cropper.getCropImage(); - resolve(dataUrl); - } catch { - reject(new Error($t('ui.crop.errorTip'))); - } finally { - closeModal(); - } - }, - onCancel() { - resolve(''); - closeModal(); - }, - }, - () => - h(VCropper, { - ref: (ref: any) => (cropperRef.value = ref), - img: objectUrl as string, - aspectRatio, - }), - ); - }; - }, - }; - - render(h(CropperWrapper), container); - }); - }; + render(h(CropperWrapper), container); + }); +} +/** + * 带预览功能的上传组件 + */ +const withPreviewUpload = () => { return defineComponent({ name: Upload.name, emits: ['update:modelValue'], - setup: ( + setup( props: any, { attrs, slots, emit }: { attrs: any; emit: any; slots: any }, - ) => { + ) { const previewVisible = ref(false); - - const placeholder = attrs?.placeholder || $t(`ui.placeholder.upload`); - + const placeholder = attrs?.placeholder || $t('ui.placeholder.upload'); const listType = attrs?.listType || attrs?.['list-type'] || 'text'; - const fileList = ref( attrs?.fileList || attrs?.['file-list'] || [], ); @@ -393,12 +399,14 @@ const withPreviewUpload = () => { file: UploadFile, originFileList: Array, ) => { + // 文件大小限制 if (maxSize.value && (file.size || 0) / 1024 / 1024 > maxSize.value) { message.error($t('ui.formRules.sizeLimit', [maxSize.value])); file.status = 'removed'; return false; } - // 多选或者非图片不唤起裁剪框 + + // 图片裁剪处理 if ( attrs.crop && !attrs.multiple && @@ -406,14 +414,11 @@ const withPreviewUpload = () => { isImageFile(file) ) { file.status = 'removed'; - // antd Upload组件问题 file参数获取的是UploadFile类型对象无法取到File类型 所以通过originFileList[0]获取 const blob = await cropImage(originFileList[0], aspectRatio.value); - return new Promise((resolve, reject) => { - if (!blob) { - return reject(new Error($t('ui.crop.errorTip'))); - } - resolve(blob); - }); + if (!blob) { + throw new Error($t('ui.crop.errorTip')); + } + return blob; } return attrs.beforeUpload?.(file) ?? true; @@ -421,12 +426,9 @@ const withPreviewUpload = () => { const handleChange = (event: UploadChangeParam) => { try { - // 行内写法 handleChange: (event) => {} attrs.handleChange?.(event); - // template写法 @handle-change="(event) => {}" attrs.onHandleChange?.(event); } catch (error) { - // Avoid breaking internal v-model sync on user handler errors console.error(error); } fileList.value = event.fileList.filter( @@ -443,21 +445,88 @@ const withPreviewUpload = () => { await previewImage(file, previewVisible, fileList); }; - const renderUploadButton = (): any => { - const isDisabled = attrs.disabled; - - // 如果禁用,不渲染上传按钮 - if (isDisabled) { - return null; - } - - // 否则渲染默认上传按钮 + const renderUploadButton = () => { + if (attrs.disabled) return null; return isEmpty(slots) - ? createDefaultSlotsWithUpload(listType, placeholder) + ? createDefaultUploadSlots(listType, placeholder) : slots; }; - // 可以监听到表单API设置的值 + // 拖拽排序 + const draggable = computed( + () => (attrs.draggable ?? false) && !attrs.disabled, + ); + const uploadId = `upload-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`; + const sortableInstance = ref(null); + + const styleId = `upload-drag-style-${uploadId}`; + + function injectDragStyle() { + if (!document.querySelector(`[id="${styleId}"]`)) { + const style = document.createElement('style'); + style.id = styleId; + style.textContent = ` + [data-upload-id="${uploadId}"] .ant-upload-list-item { cursor: move; } + [data-upload-id="${uploadId}"] .ant-upload-list-item:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.15); } + `; + document.head.append(style); + } + } + + function removeDragStyle() { + document.querySelector(`[id="${styleId}"]`)?.remove(); + } + + async function initSortable(retryCount = 0) { + if (!draggable.value) return; + + injectDragStyle(); + await nextTick(); + await new Promise((resolve) => setTimeout(resolve, 100)); + + const container = document.querySelector( + `[data-upload-id="${uploadId}"] .ant-upload-list`, + ) as HTMLElement; + + if (!container) { + if (retryCount < 5) { + setTimeout(() => initSortable(retryCount + 1), 200); + } + return; + } + + const { initializeSortable } = useSortable(container, { + animation: 300, + delay: 400, + delayOnTouchOnly: true, + filter: + '.ant-upload-select, .ant-upload-list-item-error, .ant-upload-list-item-uploading', + onEnd: (evt) => { + const { oldIndex, newIndex } = evt; + if ( + oldIndex === undefined || + newIndex === undefined || + oldIndex === newIndex + ) { + return; + } + + const list = [...(fileList.value || [])]; + const [movedItem] = list.splice(oldIndex, 1); + if (movedItem) { + list.splice(newIndex, 0, movedItem); + fileList.value = list; + } + + attrs.onDragSort?.(oldIndex, newIndex); + emit('update:modelValue', fileList.value); + }, + }); + + sortableInstance.value = await initializeSortable(); + } + + // 监听表单值变化 watch( () => attrs.modelValue, (res) => { @@ -465,18 +534,28 @@ const withPreviewUpload = () => { }, ); + onMounted(initSortable); + onUnmounted(() => { + sortableInstance.value?.destroy(); + removeDragStyle(); + }); + return () => h( - Upload, - { - ...props, - ...attrs, - fileList: fileList.value, - beforeUpload: handleBeforeUpload, - onChange: handleChange, - onPreview: handlePreview, - }, - renderUploadButton(), + 'div', + { 'data-upload-id': uploadId, class: 'w-full' }, + h( + Upload, + { + ...props, + ...attrs, + fileList: fileList.value, + beforeUpload: handleBeforeUpload, + onChange: handleChange, + onPreview: handlePreview, + }, + renderUploadButton() as any, + ), ); }, }); diff --git a/playground/src/views/examples/form/basic.vue b/playground/src/views/examples/form/basic.vue index 05be1f3ae..439c3ae84 100644 --- a/playground/src/views/examples/form/basic.vue +++ b/playground/src/views/examples/form/basic.vue @@ -348,13 +348,14 @@ const [BaseForm, baseFormApi] = useVbenForm({ // 自动携带认证信息 customRequest: upload_file, disabled: false, - maxCount: 1, + maxCount: 3, // 单位:MB maxSize: 2, multiple: false, showUploadList: true, // 上传列表的内建样式,支持四种基本样式 text, picture, picture-card 和 picture-circle listType: 'picture-card', + draggable: true, // 启用拖拽排序 // onChange事件已被重写,如需自定义请在此基础上扩展 handleChange: ({ file }: { file: UploadFile }) => { const { name, status } = file; @@ -364,6 +365,9 @@ const [BaseForm, baseFormApi] = useVbenForm({ message.error(`${name} ${$t('examples.form.upload-fail')}`); } }, + onDragSort: (oldIndex: number, newIndex: number) => { + console.info(`图片从 ${oldIndex} 移动到 ${newIndex}`); + }, }, fieldName: 'files', label: $t('examples.form.file'), From 186914bcacd90bdee20eaad1c6ed44bdc7c34f54 Mon Sep 17 00:00:00 2001 From: xingyu Date: Mon, 16 Mar 2026 18:24:28 +0800 Subject: [PATCH 30/39] fix: vxe i18n (#7675) * chore: engines node * chore: update deps * fix: oxlint * chore: fix lint issues * chore: update deps * fix: vxe i18n --- .../effects/plugins/src/vxe-table/init.ts | 14 +- pnpm-lock.yaml | 370 +++++++++--------- pnpm-workspace.yaml | 12 +- 3 files changed, 203 insertions(+), 193 deletions(-) diff --git a/packages/effects/plugins/src/vxe-table/init.ts b/packages/effects/plugins/src/vxe-table/init.ts index e28a1de15..2e04dfca3 100644 --- a/packages/effects/plugins/src/vxe-table/init.ts +++ b/packages/effects/plugins/src/vxe-table/init.ts @@ -52,6 +52,16 @@ let isInit = false; let tableFormFactory: typeof useVbenForm | undefined; +function normalizeVxeLocale>(localeModule: T) { + return ( + localeModule && + typeof localeModule === 'object' && + 'default' in localeModule + ? localeModule.default + : localeModule + ) as T; +} + export const useTableForm: typeof useVbenForm = ((...args) => { if (!tableFormFactory) { throw new Error('useTableForm is not initialized'); @@ -116,8 +126,8 @@ export function setupVbenVxeTable(setupOptions: SetupVxeTable) { const { isDark, locale } = usePreferences(); const localMap = { - 'zh-CN': zhCN, - 'en-US': enUS, + 'zh-CN': normalizeVxeLocale(zhCN), + 'en-US': normalizeVxeLocale(enUS), }; watch( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f1fb19442..1b2a0b760 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,11 +19,11 @@ catalogs: specifier: ^1.1.0 version: 1.1.0 '@commitlint/cli': - specifier: ^20.4.4 - version: 20.4.4 + specifier: ^20.5.0 + version: 20.5.0 '@commitlint/config-conventional': - specifier: ^20.4.4 - version: 20.4.4 + specifier: ^20.5.0 + version: 20.5.0 '@eslint-community/eslint-plugin-eslint-comments': specifier: ^4.7.1 version: 4.7.1 @@ -304,8 +304,8 @@ catalogs: specifier: ^1.55.0 version: 1.55.0 oxlint-tsgolint: - specifier: ^0.16.0 - version: 0.16.0 + specifier: ^0.17.0 + version: 0.17.0 pinia-plugin-persistedstate: specifier: ^4.7.1 version: 4.7.1 @@ -466,11 +466,11 @@ catalogs: specifier: ^3.2.5 version: 3.2.5 vxe-pc-ui: - specifier: ^4.13.6 - version: 4.13.6 + specifier: ^4.13.8 + version: 4.13.8 vxe-table: - specifier: ^4.18.2 - version: 4.18.2 + specifier: ^4.18.4 + version: 4.18.4 watermark-js-plus: specifier: ^1.6.3 version: 1.6.3 @@ -485,7 +485,7 @@ catalogs: version: 0.1.3 overrides: - '@ast-grep/napi': ^0.41.1 + '@ast-grep/napi': ^0.42.0 '@ctrl/tinycolor': ^4.2.0 clsx: ^2.1.1 pinia: ^3.0.4 @@ -563,10 +563,10 @@ importers: version: 0.40.0 oxlint: specifier: 'catalog:' - version: 1.55.0(oxlint-tsgolint@0.16.0) + version: 1.55.0(oxlint-tsgolint@0.17.0) oxlint-tsgolint: specifier: 'catalog:' - version: 0.16.0 + version: 0.17.0 playwright: specifier: 'catalog:' version: 1.58.2 @@ -992,16 +992,16 @@ importers: dependencies: '@commitlint/cli': specifier: 'catalog:' - version: 20.4.4(@types/node@25.5.0)(conventional-commits-parser@6.3.0)(typescript@5.9.3) + version: 20.5.0(@types/node@25.5.0)(conventional-commits-parser@6.3.0)(typescript@5.9.3) '@commitlint/config-conventional': specifier: 'catalog:' - version: 20.4.4 + version: 20.5.0 '@vben/node-utils': specifier: workspace:* version: link:../../node-utils commitlint-plugin-function-rules: specifier: 'catalog:' - version: 4.3.2(@commitlint/lint@20.4.4) + version: 4.3.2(@commitlint/lint@20.5.0) cz-git: specifier: 'catalog:' version: 1.12.0 @@ -1074,13 +1074,13 @@ importers: version: 4.7.1(eslint@10.0.3(jiti@2.6.1)) eslint-plugin-better-tailwindcss: specifier: 'catalog:' - version: 4.3.2(eslint@10.0.3(jiti@2.6.1))(oxlint@1.55.0(oxlint-tsgolint@0.16.0))(tailwindcss@4.2.1)(typescript@5.9.3) + version: 4.3.2(eslint@10.0.3(jiti@2.6.1))(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(tailwindcss@4.2.1)(typescript@5.9.3) eslint-plugin-command: specifier: 'catalog:' version: 3.5.2(@typescript-eslint/rule-tester@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.57.0(typescript@5.9.3))(@typescript-eslint/utils@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1)) oxlint: specifier: 'catalog:' - version: 1.55.0(oxlint-tsgolint@0.16.0) + version: 1.55.0(oxlint-tsgolint@0.17.0) internal/lint-configs/stylelint-config: dependencies: @@ -1779,10 +1779,10 @@ importers: version: 3.5.30(typescript@5.9.3) vxe-pc-ui: specifier: 'catalog:' - version: 4.13.6(vue@3.5.30(typescript@5.9.3)) + version: 4.13.8(vue@3.5.30(typescript@5.9.3)) vxe-table: specifier: 'catalog:' - version: 4.18.2(vue@3.5.30(typescript@5.9.3)) + version: 4.18.4(vue@3.5.30(typescript@5.9.3)) packages/effects/request: dependencies: @@ -2124,66 +2124,66 @@ packages: peerDependencies: ajv: '>=8' - '@ast-grep/napi-darwin-arm64@0.41.1': - resolution: {integrity: sha512-sZHwg/oD6YB2y4VD8ZMeMHBq/ONil+mx+bB61YAiGQB+8UCMSFxJupvtNICB/BnIFqcPCVz/jCaSdbASLrbXQQ==} + '@ast-grep/napi-darwin-arm64@0.42.0': + resolution: {integrity: sha512-HOPvjsrsASvfkRJGCd/++KZvfDCtBx6v8DKTEzzlc6fQJlhiRMPKe8T4d5I2T2rgV5pHsyJLSBLqEK7m346NTw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@ast-grep/napi-darwin-x64@0.41.1': - resolution: {integrity: sha512-SL9hGB8sKvPnLUcigiDQrhohL7N4ujy1+t885kGcBkMXR73JT05OpPmvw0AWmg8l2iH1e5uNK/ZjnV/lSkynxQ==} + '@ast-grep/napi-darwin-x64@0.42.0': + resolution: {integrity: sha512-q3jt+a6kDbXgbCSuIqaxjgLbTCDYGE2yb1o6metpsGbW+xVZR4ATYMJ8izyYhn2sQungTfUNn2/vo/2Bhbvpxg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@ast-grep/napi-linux-arm64-gnu@0.41.1': - resolution: {integrity: sha512-mkNQpkm1jvnIdeRMnEWZ4Q0gNGApoNTMAoJRVmY11CkA4C/vIdNIjxj7UB61xV42Ng/A7Fw8mQUQuFos0lAKPQ==} + '@ast-grep/napi-linux-arm64-gnu@0.42.0': + resolution: {integrity: sha512-+e2ThyRiBZATlcdgfrD7uYy9oWVS6/AdUTnC3xOwR+lCz80lr87kmcmeK6XN6hBwaqncBBkKV3ECMA8ibZPUZA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@ast-grep/napi-linux-arm64-musl@0.41.1': - resolution: {integrity: sha512-0G3cHyc+8A945aLie55bLZ+oaEBer0EFlyP/GlwRAx4nn5vGBct1hVTxSexWJ6AxnnRNPlN0mvswVwXiE7H7gA==} + '@ast-grep/napi-linux-arm64-musl@0.42.0': + resolution: {integrity: sha512-f/oW3KaHuOMuBkCcvI6R71xM9SvkdUVKHhbJEtBFo5D1j6CjY9ipWdjlk9mOJ2KLLM6uYdjjvkJkBPlPuFTukg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@ast-grep/napi-linux-x64-gnu@0.41.1': - resolution: {integrity: sha512-+aNiCik3iTMtUrMp1k2yIMjby1U64EydTH1qotlx+fh8YvwrwwxZWct7NlurY3MILgT/WONSxhHKmL5NsbB4dw==} + '@ast-grep/napi-linux-x64-gnu@0.42.0': + resolution: {integrity: sha512-y9T/Tm6V6zkmcAJlWXUO0ACYLSlk5o5NVU+AYun7NzDWIM86Y3lnoDF5WxeZKonVoaGAnkCXVlNH8Tsr/NTQWw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@ast-grep/napi-linux-x64-musl@0.41.1': - resolution: {integrity: sha512-rBrZSx5za3OliYcJcUrbLct+1+8oxh8ZEjYPiLCybe4FhspNKGM952g8a4sjgRuwbKS9BstYO9Fz+wthFnaFUQ==} + '@ast-grep/napi-linux-x64-musl@0.42.0': + resolution: {integrity: sha512-t1PwL6YweDL63QDK3TC9QTKROcVgN4XoMxlp/zN2NYvCUM90mSvqh/Py/ouchzluHaqCzEeEp9089WFEDWwQOA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@ast-grep/napi-win32-arm64-msvc@0.41.1': - resolution: {integrity: sha512-uNRHM3a1qFN0SECJDCEDVy1b0N75JNhJE2O/2BhDkDo0qM8kEewf9jRtG1fwpgZbMK2KoKvMHU/KQ73fWN44Zw==} + '@ast-grep/napi-win32-arm64-msvc@0.42.0': + resolution: {integrity: sha512-bxKLXF1JmU33BoJKrbWcGsG7Xmk2zCQaUjmeHrxhgBhg2w2zo3CSf5S6DOyOp13hefgLXBLn6oXNzXgqpX/+lA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@ast-grep/napi-win32-ia32-msvc@0.41.1': - resolution: {integrity: sha512-uNPQwGUBGIbCX+WhEIfYJf/VrS7o5+vJvT4MVEHI8aVJnpjcFsLrFI0hIv044OXxnleOo2HUvEmjOrub//at/Q==} + '@ast-grep/napi-win32-ia32-msvc@0.42.0': + resolution: {integrity: sha512-+/XbHDN+558rXwB2BylWPHj/cczRGDKivToHS2120TGQePmUetspu93wltqzAD7SVJnBILc2sEK1T1/jutZEvw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@ast-grep/napi-win32-x64-msvc@0.41.1': - resolution: {integrity: sha512-xFp68OCUEmWYcqoreZFaf2xwMhm/22Qf6bR2Qyn8WNVY9RF4m4+k5K+7Wn+n9xy0vHUPhtFd1So/SvuaqLHEoA==} + '@ast-grep/napi-win32-x64-msvc@0.42.0': + resolution: {integrity: sha512-/5PTpk7EFuqwdJyKleX2gPztL5j73Nq/cdkEJQq1Fbx+ze+UM75JniW3D7J7WZygN58+EN9DAxpc2QOlK32urQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@ast-grep/napi@0.41.1': - resolution: {integrity: sha512-OYQVWBbb43af2lTSCayMS7wsZ20nl+fw6LGVl/5zSuHTZRNfANknKLk3wMA4y7RIaAiIwrldAmI6GNZeIDRTkQ==} + '@ast-grep/napi@0.42.0': + resolution: {integrity: sha512-f3DAjeC657EqbWN2In+girgbpvnKMV77bONyhuezXK4XQtvbGCB55u3CnNvQv6EP0caIBTtDHqO5CVyO6qY4LQ==} engines: {node: '>= 10'} '@babel/code-frame@7.29.0': @@ -2802,61 +2802,61 @@ packages: resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} engines: {node: '>=18.0.0'} - '@commitlint/cli@20.4.4': - resolution: {integrity: sha512-GLMNQHYGcn0ohL2HMlAnXcD1PS2vqBBGbYKlhrRPOYsWiRoLWtrewsR3uKRb9v/IdS+qOS0vqJQ64n1g8VPKFw==} + '@commitlint/cli@20.5.0': + resolution: {integrity: sha512-yNkyN/tuKTJS3wdVfsZ2tXDM4G4Gi7z+jW54Cki8N8tZqwKBltbIvUUrSbT4hz1bhW/h0CdR+5sCSpXD+wMKaQ==} engines: {node: '>=v18'} hasBin: true - '@commitlint/config-conventional@20.4.4': - resolution: {integrity: sha512-Usg+XXbPNG2GtFWTgRURNWCge1iH1y6jQIvvklOdAbyn2t8ajfVwZCnf5t5X4gUsy17BOiY+myszGsSMIvhOVA==} + '@commitlint/config-conventional@20.5.0': + resolution: {integrity: sha512-t3Ni88rFw1XMa4nZHgOKJ8fIAT9M2j5TnKyTqJzsxea7FUetlNdYFus9dz+MhIRZmc16P0PPyEfh6X2d/qw8SA==} engines: {node: '>=v18'} - '@commitlint/config-validator@20.4.4': - resolution: {integrity: sha512-K8hMS9PTLl7EYe5vWtSFQ/sgsV2PHUOtEnosg8k3ZQxCyfKD34I4C7FxWEfRTR54rFKeUYmM3pmRQqBNQeLdlw==} + '@commitlint/config-validator@20.5.0': + resolution: {integrity: sha512-T/Uh6iJUzyx7j35GmHWdIiGRQB+ouZDk0pwAaYq4SXgB54KZhFdJ0vYmxiW6AMYICTIWuyMxDBl1jK74oFp/Gw==} engines: {node: '>=v18'} - '@commitlint/ensure@20.4.4': - resolution: {integrity: sha512-QivV0M1MGL867XCaF+jJkbVXEPKBALhUUXdjae66hes95aY1p3vBJdrcl3x8jDv2pdKWvIYIz+7DFRV/v0dRkA==} + '@commitlint/ensure@20.5.0': + resolution: {integrity: sha512-IpHqAUesBeW1EDDdjzJeaOxU9tnogLAyXLRBn03SHlj1SGENn2JGZqSWGkFvBJkJzfXAuCNtsoYzax+ZPS+puw==} engines: {node: '>=v18'} '@commitlint/execute-rule@20.0.0': resolution: {integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==} engines: {node: '>=v18'} - '@commitlint/format@20.4.4': - resolution: {integrity: sha512-jLi/JBA4GEQxc5135VYCnkShcm1/rarbXMn2Tlt3Si7DHiiNKHm4TaiJCLnGbZ1r8UfwDRk+qrzZ80kwh08Aow==} + '@commitlint/format@20.5.0': + resolution: {integrity: sha512-TI9EwFU/qZWSK7a5qyXMpKPPv3qta7FO4tKW+Wt2al7sgMbLWTsAcDpX1cU8k16TRdsiiet9aOw0zpvRXNJu7Q==} engines: {node: '>=v18'} - '@commitlint/is-ignored@20.4.4': - resolution: {integrity: sha512-y76rT8yq02x+pMDBI2vY4y/ByAwmJTkta/pASbgo8tldBiKLduX8/2NCRTSCjb3SumE5FBeopERKx3oMIm8RTQ==} + '@commitlint/is-ignored@20.5.0': + resolution: {integrity: sha512-JWLarAsurHJhPozbuAH6GbP4p/hdOCoqS9zJMfqwswne+/GPs5V0+rrsfOkP68Y8PSLphwtFXV0EzJ+GTXTTGg==} engines: {node: '>=v18'} - '@commitlint/lint@20.4.4': - resolution: {integrity: sha512-svOEW+RptcNpXKE7UllcAsV0HDIdOck9reC2TP1QA6K5Fo0xxQV+QPjV8Zqx9g6X/hQBkF2S9ZQZ78Xrv1Eiog==} + '@commitlint/lint@20.5.0': + resolution: {integrity: sha512-jiM3hNUdu04jFBf1VgPdjtIPvbuVfDTBAc6L98AWcoLjF5sYqkulBHBzlVWll4rMF1T5zeQFB6r//a+s+BBKlA==} engines: {node: '>=v18'} - '@commitlint/load@20.4.4': - resolution: {integrity: sha512-kvFrzvoIACa/fMjXEP0LNEJB1joaH3q3oeMJsLajXE5IXjYrNGVcW1ZFojXUruVJ7odTZbC3LdE/6+ONW4f2Dg==} + '@commitlint/load@20.5.0': + resolution: {integrity: sha512-sLhhYTL/KxeOTZjjabKDhwidGZan84XKK1+XFkwDYL/4883kIajcz/dZFAhBJmZPtL8+nBx6bnkzA95YxPeDPw==} engines: {node: '>=v18'} '@commitlint/message@20.4.3': resolution: {integrity: sha512-6akwCYrzcrFcTYz9GyUaWlhisY4lmQ3KvrnabmhoeAV8nRH4dXJAh4+EUQ3uArtxxKQkvxJS78hNX2EU3USgxQ==} engines: {node: '>=v18'} - '@commitlint/parse@20.4.4': - resolution: {integrity: sha512-AjfgOgrjEozeQNzhFu1KL5N0nDx4JZmswVJKNfOTLTUGp6xODhZHCHqb//QUHKOzx36If5DQ7tci2o7szYxu1A==} + '@commitlint/parse@20.5.0': + resolution: {integrity: sha512-SeKWHBMk7YOTnnEWUhx+d1a9vHsjjuo6Uo1xRfPNfeY4bdYFasCH1dDpAv13Lyn+dDPOels+jP6D2GRZqzc5fA==} engines: {node: '>=v18'} - '@commitlint/read@20.4.4': - resolution: {integrity: sha512-jvgdAQDdEY6L8kCxOo21IWoiAyNFzvrZb121wU2eBxI1DzWAUZgAq+a8LlJRbT0Qsj9INhIPVWgdaBbEzlF0dQ==} + '@commitlint/read@20.5.0': + resolution: {integrity: sha512-JDEIJ2+GnWpK8QqwfmW7O42h0aycJEWNqcdkJnyzLD11nf9dW2dWLTVEa8Wtlo4IZFGLPATjR5neA5QlOvIH1w==} engines: {node: '>=v18'} - '@commitlint/resolve-extends@20.4.4': - resolution: {integrity: sha512-pyOf+yX3c3m/IWAn2Jop+7s0YGKPQ8YvQaxt9IQxnLIM3yZAlBdkKiQCT14TnrmZTkVGTXiLtckcnFTXYwlY0A==} + '@commitlint/resolve-extends@20.5.0': + resolution: {integrity: sha512-3SHPWUW2v0tyspCTcfSsYml0gses92l6TlogwzvM2cbxDgmhSRc+fldDjvGkCXJrjSM87BBaWYTPWwwyASZRrg==} engines: {node: '>=v18'} - '@commitlint/rules@20.4.4': - resolution: {integrity: sha512-PmUp8QPLICn9w05dAx5r1rdOYoTk7SkfusJJh5tP3TqHwo2mlQ9jsOm8F0HSXU9kuLfgTEGNrunAx/dlK/RyPQ==} + '@commitlint/rules@20.5.0': + resolution: {integrity: sha512-5NdQXQEdnDPT5pK8O39ZA7HohzPRHEsDGU23cyVCNPQy4WegAbAwrQk3nIu7p2sl3dutPk8RZd91yKTrMTnRkQ==} engines: {node: '>=v18'} '@commitlint/to-lines@20.0.0': @@ -2867,8 +2867,8 @@ packages: resolution: {integrity: sha512-qD9xfP6dFg5jQ3NMrOhG0/w5y3bBUsVGyJvXxdWEwBm8hyx4WOk3kKXw28T5czBYvyeCVJgJJ6aoJZUWDpaacQ==} engines: {node: '>=v18'} - '@commitlint/types@20.4.4': - resolution: {integrity: sha512-dwTGzyAblFXHJNBOgrTuO5Ee48ioXpS5XPRLLatxhQu149DFAHUcB3f0Q5eea3RM4USSsP1+WVT2dBtLVod4fg==} + '@commitlint/types@20.5.0': + resolution: {integrity: sha512-ZJoS8oSq2CAZEpc/YI9SulLrdiIyXeHb/OGqGrkUP6Q7YV+0ouNAa7GjqRdXeQPncHQIDz/jbCTlHScvYvO/gA==} engines: {node: '>=v18'} '@conventional-changelog/git-client@2.6.0': @@ -3910,8 +3910,8 @@ packages: '@jspm/generator@2.11.0': resolution: {integrity: sha512-9Asdskq7SjjFdM2oEhu1i1QiBRElAKFYaJMIP7GQoQ9jEPyYUJNZjp9oj9UJm44AJ9+wuiWg9JbgplhHgDom9w==} - '@jspm/import-map@1.3.0': - resolution: {integrity: sha512-fnQBtZ9zlOwSHfUNGXCw02bC6nvHXIjg0kBdLngeRfeQ5uXvvTvkP/HRZnmxae4ZU9+p1VUGUcmP98rVynh82g==} + '@jspm/import-map@1.4.0': + resolution: {integrity: sha512-HpzAnq/n/eExscsHnPtWrqMi/RXFXlAzIweajmcteyIEWjWK6X64yzzy0VMpBRKO3hFh1xwFIOdIItiMlNISOg==} '@juggle/resize-observer@3.4.0': resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} @@ -4135,33 +4135,33 @@ packages: cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.16.0': - resolution: {integrity: sha512-WQt5lGwRPJBw7q2KNR0mSPDAaMmZmVvDlEEti96xLO7ONhyomQc6fBZxxwZ4qTFedjJnrHX94sFelZ4OKzS7UQ==} + '@oxlint-tsgolint/darwin-arm64@0.17.0': + resolution: {integrity: sha512-z3XwCDuOAKgk7bO4y5tyH8Zogwr51G56R0XGKC3tlAbrAq8DecoxAd3qhRZqWBMG2Gzl5bWU3Ghu7lrxuLPzYw==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.16.0': - resolution: {integrity: sha512-VJo29XOzdkalvCTiE2v6FU3qZlgHaM8x8hUEVJGPU2i5W+FlocPpmn00+Ld2n7Q0pqIjyD5EyvZ5UmoIEJMfqg==} + '@oxlint-tsgolint/darwin-x64@0.17.0': + resolution: {integrity: sha512-TZgVXy0MtI8nt0MYiceuZhHPwHcwlIZ/YwzFTAKrgdHiTvVzFbqHVdXi5wbZfT/o1nHGw9fbGWPlb6qKZ4uZ9Q==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.16.0': - resolution: {integrity: sha512-MPfqRt1+XRHv9oHomcBMQ3KpTE+CSkZz14wUxDQoqTNdUlV0HWdzwIE9q65I3D9YyxEnqpM7j4qtDQ3apqVvbQ==} + '@oxlint-tsgolint/linux-arm64@0.17.0': + resolution: {integrity: sha512-IDfhFl/Y8bjidCvAP6QAxVyBsl78TmfCHlfjtEv2XtJXgYmIwzv6muO18XMp74SZ2qAyD4y2n2dUedrmghGHeA==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.16.0': - resolution: {integrity: sha512-XQSwVUsnwLokMhe1TD6IjgvW5WMTPzOGGkdFDtXWQmlN2YeTw94s/NN0KgDrn2agM1WIgAenEkvnm0u7NgwEyw==} + '@oxlint-tsgolint/linux-x64@0.17.0': + resolution: {integrity: sha512-Bgdgqx/m8EnfjmmlRLEeYy9Yhdt1GdFrMr5mTu/NyLRGkB1C9VLAikdxB7U9QambAGTAmjMbHNFDFk8Vx69Huw==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.16.0': - resolution: {integrity: sha512-EWdlspQiiFGsP2AiCYdhg5dTYyAlj6y1nRyNI2dQWq4Q/LITFHiSRVPe+7m7K7lcsZCEz2icN/bCeSkZaORqIg==} + '@oxlint-tsgolint/win32-arm64@0.17.0': + resolution: {integrity: sha512-dO6wyKMDqFWh1vwr+zNZS7/ovlfGgl4S3P1LDy4CKjP6V6NGtdmEwWkWax8j/I8RzGZdfXKnoUfb/qhVg5bx0w==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.16.0': - resolution: {integrity: sha512-1ufk8cgktXJuJZHKF63zCHAkaLMwZrEXnZ89H2y6NO85PtOXqu4zbdNl0VBpPP3fCUuUBu9RvNqMFiv0VsbXWA==} + '@oxlint-tsgolint/win32-x64@0.17.0': + resolution: {integrity: sha512-lPGYFp3yX2nh6hLTpIuMnJbZnt3Df42VkoA/fSkMYi2a/LXdDytQGpgZOrb5j47TICARd34RauKm0P3OA4Oxbw==} cpu: [x64] os: [win32] @@ -5015,8 +5015,8 @@ packages: '@tanstack/store@0.9.2': resolution: {integrity: sha512-K013lUJEFJK2ofFQ/hZKJUmCnpcV00ebLyOyFOWQvyQHUOZp/iYO84BM6aOGiV81JzwbX0APTVmW8YI7yiG5oA==} - '@tanstack/virtual-core@3.13.22': - resolution: {integrity: sha512-isuUGKsc5TAPDoHSbWTbl1SCil54zOS2MiWz/9GCWHPUQOvNTQx8qJEWC7UWR0lShhbK0Lmkcf0SZYxvch7G3g==} + '@tanstack/virtual-core@3.13.23': + resolution: {integrity: sha512-zSz2Z2HNyLjCplANTDyl3BcdQJc2k1+yyFoKhNRmCr7V7dY8o8q5m8uFTI1/Pg1kL+Hgrz6u3Xo6eFUB7l66cg==} '@tanstack/vue-query@5.92.9': resolution: {integrity: sha512-jjAZcqKveyX0C4w/6zUqbnqk/XzuxNWaFsWjGTJWULVFizUNeLGME2gf9vVSDclIyiBhR13oZJPPs6fJgfpIJQ==} @@ -5036,8 +5036,8 @@ packages: '@vue/composition-api': optional: true - '@tanstack/vue-virtual@3.13.22': - resolution: {integrity: sha512-GiUwGKJADlCoTD7PaEfgSTAnQ9JW7KAmV98d5yFQf+vT2bSs52BPC22ZTXnNhe8PViTVqqRERNRKaWlut7tMPQ==} + '@tanstack/vue-virtual@3.13.23': + resolution: {integrity: sha512-b5jPluAR6U3eOq6GWAYSpj3ugnAIZgGR0e6aGAgyRse0Yu6MVQQ0ZWm9SArSXWtageogn6bkVD8D//c4IjW3xQ==} peerDependencies: vue: ^3.5.30 @@ -5360,8 +5360,8 @@ packages: peerDependencies: vue: ^3.5.30 - '@v-c/select@1.0.19': - resolution: {integrity: sha512-Um6zBWHUS4H2camwaPriaVN4Hz7Z2h0YXAPlIbjubixQjxGmKJ99HoAa/xuZju63bxK06Nual3NT/cyS0g+RiA==} + '@v-c/select@1.0.20': + resolution: {integrity: sha512-gmG5U7r8YgXIjGQZ5qjHM3felSlYAep7pBjJRzA8ALgHhx0CKRk6RTadVDXzWh7LwOFvlgTn7OLUMTU6RACoaQ==} peerDependencies: vue: ^3.5.30 @@ -8958,8 +8958,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - oxlint-tsgolint@0.16.0: - resolution: {integrity: sha512-4RuJK2jP08XwqtUu+5yhCbxEauCm6tv2MFHKEMsjbosK2+vy5us82oI3VLuHwbNyZG7ekZA26U2LLHnGR4frIA==} + oxlint-tsgolint@0.17.0: + resolution: {integrity: sha512-TdrKhDZCgEYqONFo/j+KvGan7/k3tP5Ouz88wCqpOvJtI2QmcLfGsm1fcMvDnTik48Jj6z83IJBqlkmK9DnY1A==} hasBin: true oxlint@1.55.0: @@ -10590,8 +10590,8 @@ packages: undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - undici@7.24.3: - resolution: {integrity: sha512-eJdUmK/Wrx2d+mnWWmwwLRyA7OQCkLap60sk3dOK4ViZR7DKwwptwuIvFBg2HaiP9ESaEdhtpSymQPvytpmkCA==} + undici@7.24.4: + resolution: {integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==} engines: {node: '>=20.18.1'} unenv@2.0.0-rc.24: @@ -11084,11 +11084,11 @@ packages: peerDependencies: vue: ^3.5.30 - vxe-pc-ui@4.13.6: - resolution: {integrity: sha512-iwbJiMiB6eLOb0Jy4h64vQvy6xENjUSXSHoyJZIpVz14uNikNwJDwCsyBmqqcbSJ83XK6iVCkvHg9NfMN61JTA==} + vxe-pc-ui@4.13.8: + resolution: {integrity: sha512-T+kVjfgnodXhn3JMJLpQG0vuEkr2ed0y4CQvQJMb6LOIIVHJDg5CNuh9wYVbzZB58jnHHuLyiserOOOxjoNqig==} - vxe-table@4.18.2: - resolution: {integrity: sha512-0PW2V0VHrG3IaxBoTrNQPuxq38nhM1ZIHu0mjK7AxqUkls6I5ncy0GYNiP2E1R3qVVxqPQnWRnoKNE8c+tIuVg==} + vxe-table@4.18.4: + resolution: {integrity: sha512-aj1gbXSkigYfxDhEvFVq7fTZh2qO11uF1hYGMF3bLND9xRnZk3WFRPA/IL5h54QftPw5sTI9JyyfeINhccJ2yA==} warning@4.0.3: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} @@ -11545,44 +11545,44 @@ snapshots: jsonpointer: 5.0.1 leven: 3.1.0 - '@ast-grep/napi-darwin-arm64@0.41.1': + '@ast-grep/napi-darwin-arm64@0.42.0': optional: true - '@ast-grep/napi-darwin-x64@0.41.1': + '@ast-grep/napi-darwin-x64@0.42.0': optional: true - '@ast-grep/napi-linux-arm64-gnu@0.41.1': + '@ast-grep/napi-linux-arm64-gnu@0.42.0': optional: true - '@ast-grep/napi-linux-arm64-musl@0.41.1': + '@ast-grep/napi-linux-arm64-musl@0.42.0': optional: true - '@ast-grep/napi-linux-x64-gnu@0.41.1': + '@ast-grep/napi-linux-x64-gnu@0.42.0': optional: true - '@ast-grep/napi-linux-x64-musl@0.41.1': + '@ast-grep/napi-linux-x64-musl@0.42.0': optional: true - '@ast-grep/napi-win32-arm64-msvc@0.41.1': + '@ast-grep/napi-win32-arm64-msvc@0.42.0': optional: true - '@ast-grep/napi-win32-ia32-msvc@0.41.1': + '@ast-grep/napi-win32-ia32-msvc@0.42.0': optional: true - '@ast-grep/napi-win32-x64-msvc@0.41.1': + '@ast-grep/napi-win32-x64-msvc@0.42.0': optional: true - '@ast-grep/napi@0.41.1': + '@ast-grep/napi@0.42.0': optionalDependencies: - '@ast-grep/napi-darwin-arm64': 0.41.1 - '@ast-grep/napi-darwin-x64': 0.41.1 - '@ast-grep/napi-linux-arm64-gnu': 0.41.1 - '@ast-grep/napi-linux-arm64-musl': 0.41.1 - '@ast-grep/napi-linux-x64-gnu': 0.41.1 - '@ast-grep/napi-linux-x64-musl': 0.41.1 - '@ast-grep/napi-win32-arm64-msvc': 0.41.1 - '@ast-grep/napi-win32-ia32-msvc': 0.41.1 - '@ast-grep/napi-win32-x64-msvc': 0.41.1 + '@ast-grep/napi-darwin-arm64': 0.42.0 + '@ast-grep/napi-darwin-x64': 0.42.0 + '@ast-grep/napi-linux-arm64-gnu': 0.42.0 + '@ast-grep/napi-linux-arm64-musl': 0.42.0 + '@ast-grep/napi-linux-x64-gnu': 0.42.0 + '@ast-grep/napi-linux-x64-musl': 0.42.0 + '@ast-grep/napi-win32-arm64-msvc': 0.42.0 + '@ast-grep/napi-win32-ia32-msvc': 0.42.0 + '@ast-grep/napi-win32-x64-msvc': 0.42.0 '@babel/code-frame@7.29.0': dependencies: @@ -12472,13 +12472,13 @@ snapshots: '@cloudflare/kv-asset-handler@0.4.2': {} - '@commitlint/cli@20.4.4(@types/node@25.5.0)(conventional-commits-parser@6.3.0)(typescript@5.9.3)': + '@commitlint/cli@20.5.0(@types/node@25.5.0)(conventional-commits-parser@6.3.0)(typescript@5.9.3)': dependencies: - '@commitlint/format': 20.4.4 - '@commitlint/lint': 20.4.4 - '@commitlint/load': 20.4.4(@types/node@25.5.0)(typescript@5.9.3) - '@commitlint/read': 20.4.4(conventional-commits-parser@6.3.0) - '@commitlint/types': 20.4.4 + '@commitlint/format': 20.5.0 + '@commitlint/lint': 20.5.0 + '@commitlint/load': 20.5.0(@types/node@25.5.0)(typescript@5.9.3) + '@commitlint/read': 20.5.0(conventional-commits-parser@6.3.0) + '@commitlint/types': 20.5.0 tinyexec: 1.0.4 yargs: 17.7.2 transitivePeerDependencies: @@ -12487,19 +12487,19 @@ snapshots: - conventional-commits-parser - typescript - '@commitlint/config-conventional@20.4.4': + '@commitlint/config-conventional@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 conventional-changelog-conventionalcommits: 9.3.0 - '@commitlint/config-validator@20.4.4': + '@commitlint/config-validator@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 ajv: 8.18.0 - '@commitlint/ensure@20.4.4': + '@commitlint/ensure@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 @@ -12508,29 +12508,29 @@ snapshots: '@commitlint/execute-rule@20.0.0': {} - '@commitlint/format@20.4.4': + '@commitlint/format@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 picocolors: 1.1.1 - '@commitlint/is-ignored@20.4.4': + '@commitlint/is-ignored@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 semver: 7.7.4 - '@commitlint/lint@20.4.4': + '@commitlint/lint@20.5.0': dependencies: - '@commitlint/is-ignored': 20.4.4 - '@commitlint/parse': 20.4.4 - '@commitlint/rules': 20.4.4 - '@commitlint/types': 20.4.4 + '@commitlint/is-ignored': 20.5.0 + '@commitlint/parse': 20.5.0 + '@commitlint/rules': 20.5.0 + '@commitlint/types': 20.5.0 - '@commitlint/load@20.4.4(@types/node@25.5.0)(typescript@5.9.3)': + '@commitlint/load@20.5.0(@types/node@25.5.0)(typescript@5.9.3)': dependencies: - '@commitlint/config-validator': 20.4.4 + '@commitlint/config-validator': 20.5.0 '@commitlint/execute-rule': 20.0.0 - '@commitlint/resolve-extends': 20.4.4 - '@commitlint/types': 20.4.4 + '@commitlint/resolve-extends': 20.5.0 + '@commitlint/types': 20.5.0 cosmiconfig: 9.0.1(typescript@5.9.3) cosmiconfig-typescript-loader: 6.2.0(@types/node@25.5.0)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3) is-plain-obj: 4.1.0 @@ -12542,16 +12542,16 @@ snapshots: '@commitlint/message@20.4.3': {} - '@commitlint/parse@20.4.4': + '@commitlint/parse@20.5.0': dependencies: - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 conventional-changelog-angular: 8.3.0 conventional-commits-parser: 6.3.0 - '@commitlint/read@20.4.4(conventional-commits-parser@6.3.0)': + '@commitlint/read@20.5.0(conventional-commits-parser@6.3.0)': dependencies: '@commitlint/top-level': 20.4.3 - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 git-raw-commits: 5.0.1(conventional-commits-parser@6.3.0) minimist: 1.2.8 tinyexec: 1.0.4 @@ -12559,21 +12559,21 @@ snapshots: - conventional-commits-filter - conventional-commits-parser - '@commitlint/resolve-extends@20.4.4': + '@commitlint/resolve-extends@20.5.0': dependencies: - '@commitlint/config-validator': 20.4.4 - '@commitlint/types': 20.4.4 + '@commitlint/config-validator': 20.5.0 + '@commitlint/types': 20.5.0 global-directory: 4.0.1 import-meta-resolve: 4.2.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 - '@commitlint/rules@20.4.4': + '@commitlint/rules@20.5.0': dependencies: - '@commitlint/ensure': 20.4.4 + '@commitlint/ensure': 20.5.0 '@commitlint/message': 20.4.3 '@commitlint/to-lines': 20.0.0 - '@commitlint/types': 20.4.4 + '@commitlint/types': 20.5.0 '@commitlint/to-lines@20.0.0': {} @@ -12581,7 +12581,7 @@ snapshots: dependencies: escalade: 3.2.0 - '@commitlint/types@20.4.4': + '@commitlint/types@20.5.0': dependencies: conventional-commits-parser: 6.3.0 picocolors: 1.1.1 @@ -13400,7 +13400,7 @@ snapshots: '@babel/core': 7.29.0 '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) - '@jspm/import-map': 1.3.0 + '@jspm/import-map': 1.4.0 es-module-lexer: 1.7.0 minimatch: 10.2.4 node-fetch-cache: 5.1.0 @@ -13413,7 +13413,7 @@ snapshots: - react-native-b4a - supports-color - '@jspm/import-map@1.3.0': {} + '@jspm/import-map@1.4.0': {} '@juggle/resize-observer@3.4.0': {} @@ -13669,22 +13669,22 @@ snapshots: '@oxfmt/binding-win32-x64-msvc@0.40.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.16.0': + '@oxlint-tsgolint/darwin-arm64@0.17.0': optional: true - '@oxlint-tsgolint/darwin-x64@0.16.0': + '@oxlint-tsgolint/darwin-x64@0.17.0': optional: true - '@oxlint-tsgolint/linux-arm64@0.16.0': + '@oxlint-tsgolint/linux-arm64@0.17.0': optional: true - '@oxlint-tsgolint/linux-x64@0.16.0': + '@oxlint-tsgolint/linux-x64@0.17.0': optional: true - '@oxlint-tsgolint/win32-arm64@0.16.0': + '@oxlint-tsgolint/win32-arm64@0.17.0': optional: true - '@oxlint-tsgolint/win32-x64@0.16.0': + '@oxlint-tsgolint/win32-x64@0.17.0': optional: true '@oxlint/binding-android-arm-eabi@1.55.0': @@ -14328,7 +14328,7 @@ snapshots: '@tanstack/store@0.9.2': {} - '@tanstack/virtual-core@3.13.22': {} + '@tanstack/virtual-core@3.13.23': {} '@tanstack/vue-query@5.92.9(vue@3.5.30(typescript@5.9.3))': dependencies: @@ -14344,9 +14344,9 @@ snapshots: vue: 3.5.30(typescript@5.9.3) vue-demi: 0.14.10(vue@3.5.30(typescript@5.9.3)) - '@tanstack/vue-virtual@3.13.22(vue@3.5.30(typescript@5.9.3))': + '@tanstack/vue-virtual@3.13.23(vue@3.5.30(typescript@5.9.3))': dependencies: - '@tanstack/virtual-core': 3.13.22 + '@tanstack/virtual-core': 3.13.23 vue: 3.5.30(typescript@5.9.3) '@tybys/wasm-util@0.10.1': @@ -14568,7 +14568,7 @@ snapshots: '@v-c/cascader@1.0.2(vue@3.5.30(typescript@5.9.3))': dependencies: - '@v-c/select': 1.0.19(vue@3.5.30(typescript@5.9.3)) + '@v-c/select': 1.0.20(vue@3.5.30(typescript@5.9.3)) '@v-c/tree': 1.0.5(vue@3.5.30(typescript@5.9.3)) '@v-c/util': 1.0.18(vue@3.5.30(typescript@5.9.3)) vue: 3.5.30(typescript@5.9.3) @@ -14707,7 +14707,7 @@ snapshots: '@v-c/util': 1.0.18(vue@3.5.30(typescript@5.9.3)) vue: 3.5.30(typescript@5.9.3) - '@v-c/select@1.0.19(vue@3.5.30(typescript@5.9.3))': + '@v-c/select@1.0.20(vue@3.5.30(typescript@5.9.3))': dependencies: '@v-c/overflow': 1.0.4(vue@3.5.30(typescript@5.9.3)) '@v-c/trigger': 1.0.13(vue@3.5.30(typescript@5.9.3)) @@ -14774,7 +14774,7 @@ snapshots: '@v-c/tree-select@1.0.3(vue@3.5.30(typescript@5.9.3))': dependencies: - '@v-c/select': 1.0.19(vue@3.5.30(typescript@5.9.3)) + '@v-c/select': 1.0.20(vue@3.5.30(typescript@5.9.3)) '@v-c/tree': 1.0.5(vue@3.5.30(typescript@5.9.3)) '@v-c/util': 1.0.18(vue@3.5.30(typescript@5.9.3)) vue: 3.5.30(typescript@5.9.3) @@ -15361,7 +15361,7 @@ snapshots: '@v-c/rate': 1.0.1(vue@3.5.30(typescript@5.9.3)) '@v-c/resize-observer': 1.0.8(vue@3.5.30(typescript@5.9.3)) '@v-c/segmented': 1.0.1(vue@3.5.30(typescript@5.9.3)) - '@v-c/select': 1.0.19(vue@3.5.30(typescript@5.9.3)) + '@v-c/select': 1.0.20(vue@3.5.30(typescript@5.9.3)) '@v-c/slick': 1.0.2(vue@3.5.30(typescript@5.9.3)) '@v-c/slider': 1.0.10(vue@3.5.30(typescript@5.9.3)) '@v-c/steps': 1.0.0(vue@3.5.30(typescript@5.9.3)) @@ -15771,7 +15771,7 @@ snapshots: parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 parse5-parser-stream: 7.1.2 - undici: 7.24.3 + undici: 7.24.4 whatwg-mimetype: 4.0.0 chokidar@4.0.3: @@ -15788,7 +15788,7 @@ snapshots: circular-dependency-scanner@3.0.1: dependencies: - '@ast-grep/napi': 0.41.1 + '@ast-grep/napi': 0.42.0 '@vue/compiler-sfc': 3.5.30 commander: 14.0.3 get-tsconfig: 4.13.6 @@ -15910,9 +15910,9 @@ snapshots: comment-parser@1.4.5: {} - commitlint-plugin-function-rules@4.3.2(@commitlint/lint@20.4.4): + commitlint-plugin-function-rules@4.3.2(@commitlint/lint@20.5.0): dependencies: - '@commitlint/lint': 20.4.4 + '@commitlint/lint': 20.5.0 common-tags@1.8.2: {} @@ -16745,7 +16745,7 @@ snapshots: esquery: 1.7.0 jsonc-eslint-parser: 3.1.0 - eslint-plugin-better-tailwindcss@4.3.2(eslint@10.0.3(jiti@2.6.1))(oxlint@1.55.0(oxlint-tsgolint@0.16.0))(tailwindcss@4.2.1)(typescript@5.9.3): + eslint-plugin-better-tailwindcss@4.3.2(eslint@10.0.3(jiti@2.6.1))(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(tailwindcss@4.2.1)(typescript@5.9.3): dependencies: '@eslint/css-tree': 3.6.9 '@valibot/to-json-schema': 1.5.0(valibot@1.2.0(typescript@5.9.3)) @@ -16758,7 +16758,7 @@ snapshots: valibot: 1.2.0(typescript@5.9.3) optionalDependencies: eslint: 10.0.3(jiti@2.6.1) - oxlint: 1.55.0(oxlint-tsgolint@0.16.0) + oxlint: 1.55.0(oxlint-tsgolint@0.17.0) transitivePeerDependencies: - typescript @@ -18810,16 +18810,16 @@ snapshots: '@oxfmt/binding-win32-ia32-msvc': 0.40.0 '@oxfmt/binding-win32-x64-msvc': 0.40.0 - oxlint-tsgolint@0.16.0: + oxlint-tsgolint@0.17.0: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.16.0 - '@oxlint-tsgolint/darwin-x64': 0.16.0 - '@oxlint-tsgolint/linux-arm64': 0.16.0 - '@oxlint-tsgolint/linux-x64': 0.16.0 - '@oxlint-tsgolint/win32-arm64': 0.16.0 - '@oxlint-tsgolint/win32-x64': 0.16.0 - - oxlint@1.55.0(oxlint-tsgolint@0.16.0): + '@oxlint-tsgolint/darwin-arm64': 0.17.0 + '@oxlint-tsgolint/darwin-x64': 0.17.0 + '@oxlint-tsgolint/linux-arm64': 0.17.0 + '@oxlint-tsgolint/linux-x64': 0.17.0 + '@oxlint-tsgolint/win32-arm64': 0.17.0 + '@oxlint-tsgolint/win32-x64': 0.17.0 + + oxlint@1.55.0(oxlint-tsgolint@0.17.0): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.55.0 '@oxlint/binding-android-arm64': 1.55.0 @@ -18840,7 +18840,7 @@ snapshots: '@oxlint/binding-win32-arm64-msvc': 1.55.0 '@oxlint/binding-win32-ia32-msvc': 1.55.0 '@oxlint/binding-win32-x64-msvc': 1.55.0 - oxlint-tsgolint: 0.16.0 + oxlint-tsgolint: 0.17.0 p-filter@2.1.0: dependencies: @@ -19437,7 +19437,7 @@ snapshots: '@floating-ui/vue': 1.1.11(vue@3.5.30(typescript@5.9.3)) '@internationalized/date': 3.12.0 '@internationalized/number': 3.6.5 - '@tanstack/vue-virtual': 3.13.22(vue@3.5.30(typescript@5.9.3)) + '@tanstack/vue-virtual': 3.13.23(vue@3.5.30(typescript@5.9.3)) '@vueuse/core': 14.2.1(vue@3.5.30(typescript@5.9.3)) '@vueuse/shared': 14.2.1(vue@3.5.30(typescript@5.9.3)) aria-hidden: 1.2.6 @@ -20537,7 +20537,7 @@ snapshots: undici-types@7.18.2: {} - undici@7.24.3: {} + undici@7.24.4: {} unenv@2.0.0-rc.24: dependencies: @@ -21072,15 +21072,15 @@ snapshots: vooks: 0.2.12(vue@3.5.30(typescript@5.9.3)) vue: 3.5.30(typescript@5.9.3) - vxe-pc-ui@4.13.6(vue@3.5.30(typescript@5.9.3)): + vxe-pc-ui@4.13.8(vue@3.5.30(typescript@5.9.3)): dependencies: '@vxe-ui/core': 4.4.3(vue@3.5.30(typescript@5.9.3)) transitivePeerDependencies: - vue - vxe-table@4.18.2(vue@3.5.30(typescript@5.9.3)): + vxe-table@4.18.4(vue@3.5.30(typescript@5.9.3)): dependencies: - vxe-pc-ui: 4.13.6(vue@3.5.30(typescript@5.9.3)) + vxe-pc-ui: 4.13.8(vue@3.5.30(typescript@5.9.3)) transitivePeerDependencies: - vue diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 542e8533f..8834fc621 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -20,13 +20,13 @@ overrides: pinia: 'catalog:' vue: 'catalog:' catalog: - '@ast-grep/napi': ^0.41.1 + '@ast-grep/napi': ^0.42.0 '@changesets/changelog-github': ^0.6.0 '@changesets/cli': ^2.30.0 '@changesets/git': ^3.0.4 '@clack/prompts': ^1.1.0 - '@commitlint/cli': ^20.4.4 - '@commitlint/config-conventional': ^20.4.4 + '@commitlint/cli': ^20.5.0 + '@commitlint/config-conventional': ^20.5.0 '@ctrl/tinycolor': ^4.2.0 '@eslint-community/eslint-plugin-eslint-comments': ^4.7.1 '@eslint/js': ^10.0.1 @@ -122,7 +122,7 @@ catalog: ora: ^9.3.0 oxfmt: ^0.40.0 oxlint: ^1.55.0 - oxlint-tsgolint: ^0.16.0 + oxlint-tsgolint: ^0.17.0 pinia: ^3.0.4 pinia-plugin-persistedstate: ^4.7.1 pkg-types: ^2.3.0 @@ -178,8 +178,8 @@ catalog: vue-router: ^5.0.3 vue-tippy: ^6.7.1 vue-tsc: ^3.2.5 - vxe-pc-ui: ^4.13.6 - vxe-table: ^4.18.2 + vxe-pc-ui: ^4.13.8 + vxe-table: ^4.18.4 watermark-js-plus: ^1.6.3 yaml-eslint-parser: ^2.0.0 zod: ^3.25.76 From 3dcfd23036c0e09e387c2fe9d2cfbcfc3649f65c Mon Sep 17 00:00:00 2001 From: JyQAQ <45193678+jyqwq@users.noreply.github.com> Date: Mon, 16 Mar 2026 18:25:04 +0800 Subject: [PATCH 31/39] =?UTF-8?q?perf:=20=E8=A3=81=E5=89=AA=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E9=BB=98=E8=AE=A4=E8=BE=93=E5=87=BA=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E8=B0=83=E6=95=B4=20(#7673)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 吉远 --- packages/effects/common-ui/src/components/cropper/cropper.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/effects/common-ui/src/components/cropper/cropper.vue b/packages/effects/common-ui/src/components/cropper/cropper.vue index 2ce2a2be4..332e6bd71 100644 --- a/packages/effects/common-ui/src/components/cropper/cropper.vue +++ b/packages/effects/common-ui/src/components/cropper/cropper.vue @@ -528,7 +528,7 @@ const handleImageLoad = () => { * @param {number} targetHeight - 目标高度(可选,不传则为原始裁剪高度) */ const getCropImage = async ( - format: 'image/jpeg' | 'image/png' = 'image/jpeg', + format: 'image/jpeg' | 'image/png' = 'image/png', quality: number = 0.92, outputType: 'base64' | 'blob' = 'blob', targetWidth?: number, From 5b5ea6d2d82065acf9479ff9780d03346d3b86e3 Mon Sep 17 00:00:00 2001 From: Sun Date: Mon, 16 Mar 2026 18:26:42 +0800 Subject: [PATCH 32/39] chore: Configure the ESLint auto-repair feature (#7670) --- .vscode/settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5640c7928..a35e6f0c7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -43,6 +43,7 @@ "oxc.fmt.configPath": "oxfmt.config.ts", "eslint.useFlatConfig": true, "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", "source.fixAll.oxc": "explicit", "source.fixAll.stylelint": "explicit", "source.organizeImports": "never" From 9fe875355a2e6f6ec67abd1f615ba38569c5bc9e Mon Sep 17 00:00:00 2001 From: Jin Mao Date: Mon, 16 Mar 2026 20:30:27 +0800 Subject: [PATCH 33/39] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E8=84=9A=E6=9C=AC=E4=B8=AD=E7=9A=84=E8=BF=9B=E7=A8=8B?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除平台特定的 pnpm 命令路径检测逻辑 - 统一使用 'pnpm' 命令执行 - 启用 shell 模式以正确处理命令执行 - 确保子进程继承正确的标准输入输出流 --- internal/node-utils/scripts/build.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/node-utils/scripts/build.mjs b/internal/node-utils/scripts/build.mjs index 0b13a14ca..c38b4914c 100644 --- a/internal/node-utils/scripts/build.mjs +++ b/internal/node-utils/scripts/build.mjs @@ -4,7 +4,7 @@ const pnpmCommand = process.env.npm_execpath && process.env.npm_execpath.endsWith('.cjs') ? [process.execPath, process.env.npm_execpath] - : [process.platform === 'win32' ? 'pnpm.cmd' : 'pnpm']; + : ['pnpm']; const steps = [ ['exec', 'tsdown', '--no-dts'], @@ -23,7 +23,7 @@ const steps = [ for (const args of steps) { const [command, ...commandArgs] = pnpmCommand; const result = spawnSync(command, [...commandArgs, ...args], { - shell: false, + shell: true, stdio: 'inherit', }); From 340baf4f0b36154652afd3a8993db866e004042f Mon Sep 17 00:00:00 2001 From: Jin Mao Date: Mon, 16 Mar 2026 20:50:01 +0800 Subject: [PATCH 34/39] =?UTF-8?q?chore:=20=E5=A4=84=E7=90=86=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E7=9A=84=E4=B8=80=E4=BA=9B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/@core/base/shared/tsdown.config.ts | 2 +- packages/@core/base/typings/vue-router.d.ts | 1 - .../@core/ui-kit/form-ui/tsdown.config.ts | 3 +- .../@core/ui-kit/layout-ui/tsdown.config.ts | 3 +- .../@core/ui-kit/menu-ui/tsdown.config.ts | 3 +- .../@core/ui-kit/popup-ui/tsdown.config.ts | 1 - .../@core/ui-kit/tabs-ui/tsdown.config.ts | 1 - pnpm-lock.yaml | 1621 ++++++----------- 8 files changed, 557 insertions(+), 1078 deletions(-) diff --git a/packages/@core/base/shared/tsdown.config.ts b/packages/@core/base/shared/tsdown.config.ts index d83605cad..62be7793d 100644 --- a/packages/@core/base/shared/tsdown.config.ts +++ b/packages/@core/base/shared/tsdown.config.ts @@ -8,7 +8,7 @@ export default defineConfig({ 'color/index': 'src/color/index.ts', 'constants/index': 'src/constants/index.ts', 'global-state': 'src/global-state.ts', - 'store': 'src/store.ts', + store: 'src/store.ts', 'utils/index': 'src/utils/index.ts', }, format: ['esm'], diff --git a/packages/@core/base/typings/vue-router.d.ts b/packages/@core/base/typings/vue-router.d.ts index 8ea588602..a01e596b1 100644 --- a/packages/@core/base/typings/vue-router.d.ts +++ b/packages/@core/base/typings/vue-router.d.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-restricted-imports */ import type { RouteMeta as IRouteMeta } from './dist/index.d.mts'; import 'vue-router'; diff --git a/packages/@core/ui-kit/form-ui/tsdown.config.ts b/packages/@core/ui-kit/form-ui/tsdown.config.ts index b5bde2fdd..43e8cf1c5 100644 --- a/packages/@core/ui-kit/form-ui/tsdown.config.ts +++ b/packages/@core/ui-kit/form-ui/tsdown.config.ts @@ -1,6 +1,5 @@ -import Vue from 'unplugin-vue/rolldown'; - import { defineConfig } from 'tsdown'; +import Vue from 'unplugin-vue/rolldown'; export default defineConfig({ clean: true, diff --git a/packages/@core/ui-kit/layout-ui/tsdown.config.ts b/packages/@core/ui-kit/layout-ui/tsdown.config.ts index b5bde2fdd..43e8cf1c5 100644 --- a/packages/@core/ui-kit/layout-ui/tsdown.config.ts +++ b/packages/@core/ui-kit/layout-ui/tsdown.config.ts @@ -1,6 +1,5 @@ -import Vue from 'unplugin-vue/rolldown'; - import { defineConfig } from 'tsdown'; +import Vue from 'unplugin-vue/rolldown'; export default defineConfig({ clean: true, diff --git a/packages/@core/ui-kit/menu-ui/tsdown.config.ts b/packages/@core/ui-kit/menu-ui/tsdown.config.ts index b5bde2fdd..43e8cf1c5 100644 --- a/packages/@core/ui-kit/menu-ui/tsdown.config.ts +++ b/packages/@core/ui-kit/menu-ui/tsdown.config.ts @@ -1,6 +1,5 @@ -import Vue from 'unplugin-vue/rolldown'; - import { defineConfig } from 'tsdown'; +import Vue from 'unplugin-vue/rolldown'; export default defineConfig({ clean: true, diff --git a/packages/@core/ui-kit/popup-ui/tsdown.config.ts b/packages/@core/ui-kit/popup-ui/tsdown.config.ts index 3bbe38d1d..43e8cf1c5 100644 --- a/packages/@core/ui-kit/popup-ui/tsdown.config.ts +++ b/packages/@core/ui-kit/popup-ui/tsdown.config.ts @@ -1,5 +1,4 @@ import { defineConfig } from 'tsdown'; -// eslint-disable-next-line n/no-extraneous-import import Vue from 'unplugin-vue/rolldown'; export default defineConfig({ diff --git a/packages/@core/ui-kit/tabs-ui/tsdown.config.ts b/packages/@core/ui-kit/tabs-ui/tsdown.config.ts index 3bbe38d1d..43e8cf1c5 100644 --- a/packages/@core/ui-kit/tabs-ui/tsdown.config.ts +++ b/packages/@core/ui-kit/tabs-ui/tsdown.config.ts @@ -1,5 +1,4 @@ import { defineConfig } from 'tsdown'; -// eslint-disable-next-line n/no-extraneous-import import Vue from 'unplugin-vue/rolldown'; export default defineConfig({ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b2a0b760..1b613bcf6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,7 +35,7 @@ catalogs: version: 10.3.0 '@iconify/json': specifier: ^2.2.449 - version: 2.2.449 + version: 2.2.450 '@iconify/tailwind4': specifier: ^1.2.3 version: 1.2.3 @@ -78,6 +78,9 @@ catalogs: '@tanstack/vue-store': specifier: ^0.9.2 version: 0.9.2 + '@tsdown/css': + specifier: ^0.21.3 + version: 0.21.3 '@types/archiver': specifier: ^7.0.0 version: 7.0.0 @@ -302,7 +305,7 @@ catalogs: version: 0.40.0 oxlint: specifier: ^1.55.0 - version: 1.55.0 + version: 1.56.0 oxlint-tsgolint: specifier: ^0.17.0 version: 0.17.0 @@ -342,9 +345,6 @@ catalogs: rimraf: specifier: ^6.1.3 version: 6.1.3 - rollup: - specifier: ^4.59.0 - version: 4.59.0 rollup-plugin-visualizer: specifier: ^7.0.1 version: 7.0.1 @@ -399,6 +399,9 @@ catalogs: tippy.js: specifier: ^6.3.7 version: 6.3.7 + tsdown: + specifier: ^0.21.3 + version: 0.21.3 turbo: specifier: ^2.8.17 version: 2.8.17 @@ -408,12 +411,15 @@ catalogs: typescript: specifier: ^5.9.3 version: 5.9.3 - unbuild: - specifier: ^3.6.1 - version: 3.6.1 + unplugin-dts: + specifier: ^1.0.0-beta.6 + version: 1.0.0-beta.6 unplugin-element-plus: specifier: ^0.11.2 version: 0.11.2 + unplugin-vue: + specifier: ^7.1.1 + version: 7.1.1 vee-validate: specifier: ^4.15.1 version: 4.15.1 @@ -423,9 +429,6 @@ catalogs: vite-plugin-compression: specifier: ^0.5.1 version: 0.5.1 - vite-plugin-dts: - specifier: ^4.5.4 - version: 4.5.4 vite-plugin-html: specifier: ^3.2.2 version: 3.2.2 @@ -504,6 +507,9 @@ importers: '@playwright/test': specifier: 'catalog:' version: 1.58.2 + '@tsdown/css': + specifier: 'catalog:' + version: 0.21.3(jiti@2.6.1)(postcss@8.5.8)(sass-embedded@1.98.0)(sass@1.98.0)(tsdown@0.21.3)(yaml@2.8.2) '@types/node': specifier: 'catalog:' version: 25.5.0 @@ -536,10 +542,10 @@ importers: version: link:scripts/vsh '@vitejs/plugin-vue': specifier: 'catalog:' - version: 6.0.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)) + version: 6.0.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)) '@vitejs/plugin-vue-jsx': specifier: 'catalog:' - version: 5.1.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)) + version: 5.1.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)) '@vue/test-utils': specifier: 'catalog:' version: 2.4.6 @@ -563,7 +569,7 @@ importers: version: 0.40.0 oxlint: specifier: 'catalog:' - version: 1.55.0(oxlint-tsgolint@0.17.0) + version: 1.56.0(oxlint-tsgolint@0.17.0) oxlint-tsgolint: specifier: 'catalog:' version: 0.17.0 @@ -576,21 +582,24 @@ importers: tailwindcss: specifier: 'catalog:' version: 4.2.1 + tsdown: + specifier: 'catalog:' + version: 0.21.3(@tsdown/css@0.21.3)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) turbo: specifier: 'catalog:' version: 2.8.17 typescript: specifier: 'catalog:' version: 5.9.3 - unbuild: + unplugin-vue: specifier: 'catalog:' - version: 3.6.1(sass@1.98.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) + version: 7.1.1(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(vue@3.5.30(typescript@5.9.3))(yaml@2.8.2) vite: specifier: 'catalog:' - version: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + version: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) vitest: specifier: 'catalog:' - version: 4.1.0(@types/node@25.5.0)(happy-dom@20.8.4)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.1.0(@types/node@25.5.0)(happy-dom@20.8.4)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) vue: specifier: ^3.5.30 version: 3.5.30(typescript@5.9.3) @@ -967,23 +976,23 @@ importers: version: 2.9.2(vue@3.5.30(typescript@5.9.3)) vitepress-plugin-group-icons: specifier: 'catalog:' - version: 1.7.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) + version: 1.7.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) devDependencies: '@nolebase/vitepress-plugin-git-changelog': specifier: 'catalog:' - version: 2.18.2(vitepress@1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.0)(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) + version: 2.18.2(vitepress@1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.1)(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) '@tailwindcss/vite': specifier: 'catalog:' - version: 4.2.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.2.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) '@vben/vite-config': specifier: workspace:* version: link:../internal/vite-config '@vite-pwa/vitepress': specifier: 'catalog:' - version: 1.1.0(vite-plugin-pwa@1.2.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0)) + version: 1.1.0(vite-plugin-pwa@1.2.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0)) vitepress: specifier: 'catalog:' - version: 1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.0)(typescript@5.9.3) + version: 1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.1)(typescript@5.9.3) vue: specifier: ^3.5.30 version: 3.5.30(typescript@5.9.3) @@ -1011,10 +1020,6 @@ importers: internal/lint-configs/eslint-config: dependencies: - '@vben/oxlint-config': - specifier: workspace:* - version: link:../oxlint-config - devDependencies: '@eslint/js': specifier: 'catalog:' version: 10.0.1(eslint@10.0.3(jiti@2.6.1)) @@ -1024,6 +1029,9 @@ importers: '@typescript-eslint/parser': specifier: 'catalog:' version: 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3) + '@vben/oxlint-config': + specifier: workspace:* + version: link:../oxlint-config eslint: specifier: 'catalog:' version: 10.0.3(jiti@2.6.1) @@ -1074,13 +1082,13 @@ importers: version: 4.7.1(eslint@10.0.3(jiti@2.6.1)) eslint-plugin-better-tailwindcss: specifier: 'catalog:' - version: 4.3.2(eslint@10.0.3(jiti@2.6.1))(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(tailwindcss@4.2.1)(typescript@5.9.3) + version: 4.3.2(eslint@10.0.3(jiti@2.6.1))(oxlint@1.56.0(oxlint-tsgolint@0.17.0))(tailwindcss@4.2.1)(typescript@5.9.3) eslint-plugin-command: specifier: 'catalog:' version: 3.5.2(@typescript-eslint/rule-tester@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.57.0(typescript@5.9.3))(@typescript-eslint/utils@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1)) oxlint: specifier: 'catalog:' - version: 1.55.0(oxlint-tsgolint@0.17.0) + version: 1.56.0(oxlint-tsgolint@0.17.0) internal/lint-configs/stylelint-config: dependencies: @@ -1162,7 +1170,7 @@ importers: version: link:../../packages/types vite: specifier: 'catalog:' - version: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + version: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) internal/vite-config: dependencies: @@ -1174,7 +1182,10 @@ importers: version: 2.11.0 '@tailwindcss/vite': specifier: 'catalog:' - version: 4.2.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) + version: 4.2.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) + '@vben/node-utils': + specifier: workspace:* + version: link:../node-utils archiver: specifier: 'catalog:' version: 7.0.1 @@ -1195,10 +1206,10 @@ importers: version: 2.0.3 vite-plugin-pwa: specifier: 'catalog:' - version: 1.2.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0) + version: 1.2.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0) vite-plugin-vue-devtools: specifier: 'catalog:' - version: 8.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)) + version: 8.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)) devDependencies: '@pnpm/workspace.read-manifest': specifier: 'catalog:' @@ -1209,24 +1220,18 @@ importers: '@types/html-minifier-terser': specifier: 'catalog:' version: 7.0.2 - '@vben/node-utils': - specifier: workspace:* - version: link:../node-utils '@vitejs/plugin-vue': specifier: 'catalog:' - version: 6.0.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)) + version: 6.0.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)) '@vitejs/plugin-vue-jsx': specifier: 'catalog:' - version: 5.1.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)) + version: 5.1.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)) dayjs: specifier: 'catalog:' version: 1.11.20 dotenv: specifier: 'catalog:' version: 17.3.1 - rollup: - specifier: 'catalog:' - version: 4.59.0 rollup-plugin-visualizer: specifier: 'catalog:' version: 7.0.1(rolldown@1.0.0-rc.9)(rollup@4.59.0) @@ -1236,18 +1241,18 @@ importers: sass-embedded: specifier: 'catalog:' version: 1.98.0 + unplugin-dts: + specifier: 'catalog:' + version: 1.0.0-beta.6(esbuild@0.27.4)(rolldown@1.0.0-rc.9)(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) vite: specifier: 'catalog:' - version: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + version: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) vite-plugin-compression: specifier: 'catalog:' - version: 0.5.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) - vite-plugin-dts: - specifier: 'catalog:' - version: 4.5.4(@types/node@25.5.0)(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) + version: 0.5.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) vite-plugin-html: specifier: 'catalog:' - version: 3.2.2(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) + version: 3.2.2(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) vite-plugin-lazy-import: specifier: 'catalog:' version: 1.0.7 @@ -1256,7 +1261,7 @@ importers: dependencies: '@iconify/json': specifier: 'catalog:' - version: 2.2.449 + version: 2.2.450 '@iconify/tailwind4': specifier: 'catalog:' version: 1.2.3(tailwindcss@4.2.1) @@ -2202,6 +2207,10 @@ packages: resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} + '@babel/generator@8.0.0-rc.2': + resolution: {integrity: sha512-oCQ1IKPwkzCeJzAPb7Fv8rQ9k5+1sG8mf2uoHiMInPYvkRfrDJxbTIbH51U+jstlkghus0vAi3EBvkfvEsYNLQ==} + engines: {node: ^20.19.0 || >=22.12.0} + '@babel/helper-annotate-as-pure@7.27.3': resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} @@ -2273,10 +2282,18 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@8.0.0-rc.2': + resolution: {integrity: sha512-noLx87RwlBEMrTzncWd/FvTxoJ9+ycHNg0n8yyYydIoDsLZuxknKgWRJUqcrVkNrJ74uGyhWQzQaS3q8xfGAhQ==} + engines: {node: ^20.19.0 || >=22.12.0} + '@babel/helper-validator-identifier@7.28.5': resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@8.0.0-rc.2': + resolution: {integrity: sha512-xExUBkuXWJjVuIbO7z6q7/BA9bgfJDEhVL0ggrggLMbg0IzCUWGT1hZGE8qUH7Il7/RD/a6cZ3AAFrrlp1LF/A==} + engines: {node: ^20.19.0 || >=22.12.0} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -2294,6 +2311,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@8.0.0-rc.2': + resolution: {integrity: sha512-29AhEtcq4x8Dp3T72qvUMZHx0OMXCj4Jy/TEReQa+KWLln524Cj1fWb3QFi0l/xSpptQBR6y9RNEXuxpFvwiUQ==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} engines: {node: '>=6.9.0'} @@ -2722,6 +2744,10 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} + '@babel/types@8.0.0-rc.2': + resolution: {integrity: sha512-91gAaWRznDwSX4E2tZ1YjBuIfnQVOFDCQ2r0Toby0gu4XEbyF623kXLMA8d4ZbCu+fINcrudkmEcwSUHgDDkNw==} + engines: {node: ^20.19.0 || >=22.12.0} + '@bufbuild/protobuf@2.11.0': resolution: {integrity: sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==} @@ -3777,8 +3803,8 @@ packages: '@iconify-json/vscode-icons@1.2.45': resolution: {integrity: sha512-ow+ueibMIq79ueM1kv6cOWgHx8jfh1XJQi2RrqMHb4HLbvIBlxpy5PCMvOJXlA68R6fBAHpWQeh6uWx7VKEVsA==} - '@iconify/json@2.2.449': - resolution: {integrity: sha512-23uDJsjBeUXqK66dchHDN/YulLeXxUDvAKLwYVKzL0UDT7A9UyHtHPwcOUNf0rbA452ZQMVqk8jsyDtg+xcheg==} + '@iconify/json@2.2.450': + resolution: {integrity: sha512-dltwhGrVC1guhfqIiFJ+jH21aO1C9RRvIOsAYdmsqKOr3vfMkKnwji4pYpxPEEEg3YQCvVDFpyKCKbfI8Gl/ow==} '@iconify/tailwind4@1.2.3': resolution: {integrity: sha512-z8SKiMHRASJKF/IY//87MF88lcB7ulxh8vlhQXXLWsBkNtOh6ese9R41MyGpQeqXdRvQVt+/fX2glQtHFjQ+MA==} @@ -3948,19 +3974,6 @@ packages: engines: {node: '>=18'} hasBin: true - '@microsoft/api-extractor-model@7.33.4': - resolution: {integrity: sha512-u1LTaNTikZAQ9uK6KG1Ms7nvNedsnODnspq/gH2dcyETWvH4hVNGNDvRAEutH66kAmxA4/necElqGNs1FggC8w==} - - '@microsoft/api-extractor@7.57.7': - resolution: {integrity: sha512-kmnmVs32MFWbV5X6BInC1/TfCs7y1ugwxv1xHsAIj/DyUfoe7vtO0alRUgbQa57+yRGHBBjlNcEk33SCAt5/dA==} - hasBin: true - - '@microsoft/tsdoc-config@0.18.1': - resolution: {integrity: sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg==} - - '@microsoft/tsdoc@0.16.0': - resolution: {integrity: sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==} - '@napi-rs/wasm-runtime@1.1.1': resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} @@ -4165,124 +4178,124 @@ packages: cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.55.0': - resolution: {integrity: sha512-NhvgAhncTSOhRahQSCnkK/4YIGPjTmhPurQQ2dwt2IvwCMTvZRW5vF2K10UBOxFve4GZDMw6LtXZdC2qeuYIVQ==} + '@oxlint/binding-android-arm-eabi@1.56.0': + resolution: {integrity: sha512-IyfYPthZyiSKwAv/dLjeO18SaK8MxLI9Yss2JrRDyweQAkuL3LhEy7pwIwI7uA3KQc1Vdn20kdmj3q0oUIQL6A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.55.0': - resolution: {integrity: sha512-P9iWRh+Ugqhg+D7rkc7boHX8o3H2h7YPcZHQIgvVBgnua5tk4LR2L+IBlreZs58/95cd2x3/004p5VsQM9z4SA==} + '@oxlint/binding-android-arm64@1.56.0': + resolution: {integrity: sha512-Ga5zYrzH6vc/VFxhn6MmyUnYEfy9vRpwTIks99mY3j6Nz30yYpIkWryI0QKPCgvGUtDSXVLEaMum5nA+WrNOSg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.55.0': - resolution: {integrity: sha512-esakkJIt7WFAhT30P/Qzn96ehFpzdZ1mNuzpOb8SCW7lI4oB8VsyQnkSHREM671jfpuBb/o2ppzBCx5l0jpgMA==} + '@oxlint/binding-darwin-arm64@1.56.0': + resolution: {integrity: sha512-ogmbdJysnw/D4bDcpf1sPLpFThZ48lYp4aKYm10Z/6Nh1SON6NtnNhTNOlhEY296tDFItsZUz+2tgcSYqh8Eyw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.55.0': - resolution: {integrity: sha512-xDMFRCCAEK9fOH6As2z8ELsC+VDGSFRHwIKVSilw+xhgLwTDFu37rtmRbmUlx8rRGS6cWKQPTc47AVxAZEVVPQ==} + '@oxlint/binding-darwin-x64@1.56.0': + resolution: {integrity: sha512-x8QE1h+RAtQ2g+3KPsP6Fk/tdz6zJQUv5c7fTrJxXV3GHOo+Ry5p/PsogU4U+iUZg0rj6hS+E4xi+mnwwlDCWQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.55.0': - resolution: {integrity: sha512-mYZqnwUD7ALCRxGenyLd1uuG+rHCL+OTT6S8FcAbVm/ZT2AZMGjvibp3F6k1SKOb2aeqFATmwRykrE41Q0GWVw==} + '@oxlint/binding-freebsd-x64@1.56.0': + resolution: {integrity: sha512-6G+WMZvwJpMvY7my+/SHEjb7BTk/PFbePqLpmVmUJRIsJMy/UlyYqjpuh0RCgYYkPLcnXm1rUM04kbTk8yS1Yg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.55.0': - resolution: {integrity: sha512-LcX6RYcF9vL9ESGwJW3yyIZ/d/ouzdOKXxCdey1q0XJOW1asrHsIg5MmyKdEBR4plQx+shvYeQne7AzW5f3T1w==} + '@oxlint/binding-linux-arm-gnueabihf@1.56.0': + resolution: {integrity: sha512-YYHBsk/sl7fYwQOok+6W5lBPeUEvisznV/HZD2IfZmF3Bns6cPC3Z0vCtSEOaAWTjYWN3jVsdu55jMxKlsdlhg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.55.0': - resolution: {integrity: sha512-C+8GS1rPtK+dI7mJFkqoRBkDuqbrNihnyYQsJPS9ez+8zF9JzfvU19lawqt4l/Y23o5uQswE/DORa8aiXUih3w==} + '@oxlint/binding-linux-arm-musleabihf@1.56.0': + resolution: {integrity: sha512-+AZK8rOUr78y8WT6XkDb04IbMRqauNV+vgT6f8ZLOH8wnpQ9i7Nol0XLxAu+Cq7Sb+J9wC0j6Km5hG8rj47/yQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.55.0': - resolution: {integrity: sha512-ErLE4XbmcCopA4/CIDiH6J1IAaDOMnf/KSx/aFObs4/OjAAM3sFKWGZ57pNOMxhhyBdcmcXwYymph9GwcpcqgQ==} + '@oxlint/binding-linux-arm64-gnu@1.56.0': + resolution: {integrity: sha512-urse2SnugwJRojUkGSSeH2LPMaje5Q50yQtvtL9HFckiyeqXzoFwOAZqD5TR29R2lq7UHidfFDM9EGcchcbb8A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.55.0': - resolution: {integrity: sha512-/kp65avi6zZfqEng56TTuhiy3P/3pgklKIdf38yvYeJ9/PgEeRA2A2AqKAKbZBNAqUzrzHhz9jF6j/PZvhJzTQ==} + '@oxlint/binding-linux-arm64-musl@1.56.0': + resolution: {integrity: sha512-rkTZkBfJ4TYLjansjSzL6mgZOdN5IvUnSq3oNJSLwBcNvy3dlgQtpHPrRxrCEbbcp7oQ6If0tkNaqfOsphYZ9g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.55.0': - resolution: {integrity: sha512-A6pTdXwcEEwL/nmz0eUJ6WxmxcoIS+97GbH96gikAyre3s5deC7sts38ZVVowjS2QQFuSWkpA4ZmQC0jZSNvJQ==} + '@oxlint/binding-linux-ppc64-gnu@1.56.0': + resolution: {integrity: sha512-uqL1kMH3u69/e1CH2EJhP3CP28jw2ExLsku4o8RVAZ7fySo9zOyI2fy9pVlTAp4voBLVgzndXi3SgtdyCTa2aA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.55.0': - resolution: {integrity: sha512-clj0lnIN+V52G9tdtZl0LbdTSurnZ1NZj92Je5X4lC7gP5jiCSW+Y/oiDiSauBAD4wrHt2S7nN3pA0zfKYK/6Q==} + '@oxlint/binding-linux-riscv64-gnu@1.56.0': + resolution: {integrity: sha512-j0CcMBOgV6KsRaBdsebIeiy7hCjEvq2KdEsiULf2LZqAq0v1M1lWjelhCV57LxsqaIGChXFuFJ0RiFrSRHPhSg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.55.0': - resolution: {integrity: sha512-NNu08pllN5x/O94/sgR3DA8lbrGBnTHsINZZR0hcav1sj79ksTiKKm1mRzvZvacwQ0hUnGinFo+JO75ok2PxYg==} + '@oxlint/binding-linux-riscv64-musl@1.56.0': + resolution: {integrity: sha512-7VDOiL8cDG3DQ/CY3yKjbV1c4YPvc4vH8qW09Vv+5ukq3l/Kcyr6XGCd5NvxUmxqDb2vjMpM+eW/4JrEEsUetA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.55.0': - resolution: {integrity: sha512-BvfQz3PRlWZRoEZ17dZCqgQsMRdpzGZomJkVATwCIGhHVVeHJMQdmdXPSjcT1DCNUrOjXnVyj1RGDj5+/Je2+Q==} + '@oxlint/binding-linux-s390x-gnu@1.56.0': + resolution: {integrity: sha512-JGRpX0M+ikD3WpwJ7vKcHKV6Kg0dT52BW2Eu2BupXotYeqGXBrbY+QPkAyKO6MNgKozyTNaRh3r7g+VWgyAQYQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.55.0': - resolution: {integrity: sha512-ngSOoFCSBMKVQd24H8zkbcBNc7EHhjnF1sv3mC9NNXQ/4rRjI/4Dj9+9XoDZeFEkF1SX1COSBXF1b2Pr9rqdEw==} + '@oxlint/binding-linux-x64-gnu@1.56.0': + resolution: {integrity: sha512-dNaICPvtmuxFP/VbqdofrLqdS3bM/AKJN3LMJD52si44ea7Be1cBk6NpfIahaysG9Uo+L98QKddU9CD5L8UHnQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.55.0': - resolution: {integrity: sha512-BDpP7W8GlaG7BR6QjGZAleYzxoyKc/D24spZIF2mB3XsfALQJJT/OBmP8YpeTb1rveFSBHzl8T7l0aqwkWNdGA==} + '@oxlint/binding-linux-x64-musl@1.56.0': + resolution: {integrity: sha512-pF1vOtM+GuXmbklM1hV8WMsn6tCNPvkUzklj/Ej98JhlanbmA2RB1BILgOpwSuCTRTIYx2MXssmEyQQ90QF5aA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.55.0': - resolution: {integrity: sha512-PS6GFvmde/pc3fCA2Srt51glr8Lcxhpf6WIBFfLphndjRrD34NEcses4TSxQrEcxYo6qVywGfylM0ZhSCF2gGA==} + '@oxlint/binding-openharmony-arm64@1.56.0': + resolution: {integrity: sha512-bp8NQ4RE6fDIFLa4bdBiOA+TAvkNkg+rslR+AvvjlLTYXLy9/uKAYLQudaQouWihLD/hgkrXIKKzXi5IXOewwg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.55.0': - resolution: {integrity: sha512-P6JcLJGs/q1UOvDLzN8otd9JsH4tsuuPDv+p7aHqHM3PrKmYdmUvkNj4K327PTd35AYcznOCN+l4ZOaq76QzSw==} + '@oxlint/binding-win32-arm64-msvc@1.56.0': + resolution: {integrity: sha512-PxT4OJDfMOQBzo3OlzFb9gkoSD+n8qSBxyVq2wQSZIHFQYGEqIRTo9M0ZStvZm5fdhMqaVYpOnJvH2hUMEDk/g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.55.0': - resolution: {integrity: sha512-gzkk4zE2zsE+WmRxFOiAZHpCpUNDFytEakqNXoNHW+PnYEOTPKDdW6nrzgSeTbGKVPXNAKQnRnMgrh7+n3Xueg==} + '@oxlint/binding-win32-ia32-msvc@1.56.0': + resolution: {integrity: sha512-PTRy6sIEPqy2x8PTP1baBNReN/BNEFmde0L+mYeHmjXE1Vlcc9+I5nsqENsB2yAm5wLkzPoTNCMY/7AnabT4/A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.55.0': - resolution: {integrity: sha512-ZFALNow2/og75gvYzNP7qe+rREQ5xunktwA+lgykoozHZ6hw9bqg4fn5j2UvG4gIn1FXqrZHkOAXuPf5+GOYTQ==} + '@oxlint/binding-win32-x64-msvc@1.56.0': + resolution: {integrity: sha512-ZHa0clocjLmIDr+1LwoWtxRcoYniAvERotvwKUYKhH41NVfl0Y4LNbyQkwMZzwDvKklKGvGZ5+DAG58/Ik47tQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -4441,6 +4454,9 @@ packages: resolution: {integrity: sha512-HDVTWq3H0uTXiU0eeSQntcVUTPP3GamzeXI41+x7uU9J65JgWQh3qWZHblR1i0npXfFtF+mxBiU2nJH8znxWnQ==} engines: {node: '>=18'} + '@quansync/fs@1.0.0': + resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} + '@rolldown/binding-android-arm64@1.0.0-rc.9': resolution: {integrity: sha512-lcJL0bN5hpgJfSIz/8PIf02irmyL43P+j1pTCfbD1DbLkmGRuFIA4DD3B3ZOvGqG0XiVvRznbKtN0COQVaKUTg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4542,15 +4558,6 @@ packages: '@rolldown/pluginutils@1.0.0-rc.9': resolution: {integrity: sha512-w6oiRWgEBl04QkFZgmW+jnU1EC9b57Oihi2ot3HNWIQRqgHp5PnYDia5iZ5FF7rpa4EQdiqMDXjlqKGXBhsoXw==} - '@rollup/plugin-alias@5.1.1': - resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/plugin-alias@6.0.0': resolution: {integrity: sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==} engines: {node: '>=20.19.0'} @@ -4571,15 +4578,6 @@ packages: '@types/babel__core': optional: true - '@rollup/plugin-commonjs@28.0.9': - resolution: {integrity: sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/plugin-commonjs@29.0.2': resolution: {integrity: sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg==} engines: {node: '>=16.0.0 || 14 >= 14.17'} @@ -4805,36 +4803,6 @@ packages: cpu: [x64] os: [win32] - '@rushstack/node-core-library@5.20.3': - resolution: {integrity: sha512-95JgEPq2k7tHxhF9/OJnnyHDXfC9cLhhta0An/6MlkDsX2A6dTzDrTUG18vx4vjc280V0fi0xDH9iQczpSuWsw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/problem-matcher@0.2.1': - resolution: {integrity: sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/rig-package@0.7.2': - resolution: {integrity: sha512-9XbFWuqMYcHUso4mnETfhGVUSaADBRj6HUAAEYk50nMPn8WRICmBuCphycQGNB3duIR6EEZX3Xj3SYc2XiP+9A==} - - '@rushstack/terminal@0.22.3': - resolution: {integrity: sha512-gHC9pIMrUPzAbBiI4VZMU7Q+rsCzb8hJl36lFIulIzoceKotyKL3Rd76AZ2CryCTKEg+0bnTj406HE5YY5OQvw==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/ts-command-line@5.3.3': - resolution: {integrity: sha512-c+ltdcvC7ym+10lhwR/vWiOhsrm/bP3By2VsFcs5qTKv+6tTmxgbVrtJ5NdNjANiV5TcmOZgUN+5KYQ4llsvEw==} - '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -5041,15 +5009,31 @@ packages: peerDependencies: vue: ^3.5.30 + '@tsdown/css@0.21.3': + resolution: {integrity: sha512-ggFsEbtl3T75KM8Y84Tz7PrpzLqj7njWjEcm5ZUkrmL+xIJtzJx7RupPocIsf6mMPf3IVSnyNbZxwDlbKg5mTw==} + engines: {node: '>=20.19.0'} + peerDependencies: + postcss: ^8.4.0 + postcss-import: ^16.0.0 + sass: '*' + sass-embedded: '*' + tsdown: 0.21.3 + peerDependenciesMeta: + postcss: + optional: true + postcss-import: + optional: true + sass: + optional: true + sass-embedded: + optional: true + '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} '@types/archiver@7.0.0': resolution: {integrity: sha512-/3vwGwx9n+mCQdYZ2IKGGHEFL30I96UgBlk8EtRDDFQ9uxM1l4O5Ci6r00EMAkiDaTqD9DQ6nVrWRICnBPtzzg==} - '@types/argparse@1.0.38': - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -5071,6 +5055,9 @@ packages: '@types/html-minifier-terser@7.0.2': resolution: {integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA==} + '@types/jsesc@2.5.1': + resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} + '@types/json-bigint@1.0.4': resolution: {integrity: sha512-ydHooXLbOmxBbubnA7Eh+RpBzuaIiQjh8WGJYQB50JFGFrdxW7JzVlyEV7fAXw0T2sqJ1ysTneJbiyNLqZRAag==} @@ -5576,9 +5563,6 @@ packages: '@vue/compiler-ssr@3.5.30': resolution: {integrity: sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA==} - '@vue/compiler-vue2@2.7.16': - resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} - '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} @@ -5605,14 +5589,6 @@ packages: '@vue/devtools-shared@8.1.0': resolution: {integrity: sha512-h8uCb4Qs8UT8VdTT5yjY6tOJ//qH7EpxToixR0xqejR55t5OdISIg7AJ7eBkhBs8iu1qG5gY3QQNN1DF1EelAA==} - '@vue/language-core@2.2.0': - resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@vue/language-core@3.2.5': resolution: {integrity: sha512-d3OIxN/+KRedeM5wQ6H6NIpwS3P5gC9nmyaHgBk+rO6dIsjY+tOh4UlPpiZbAh3YtLdCGEX4M16RmsBqPmJV+g==} @@ -5804,22 +5780,6 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} @@ -5830,9 +5790,6 @@ packages: resolution: {integrity: sha512-1K0wtDaRONwfhL4h8bbJ9qTjmY6rhGgRvvagXkMBsAOMNr+3Q2SffHECh9DIuNVrMA1JwA0zCwhyepgBZVakng==} engines: {node: '>= 14.0.0'} - alien-signals@0.4.14: - resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} - alien-signals@3.1.2: resolution: {integrity: sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==} @@ -5935,6 +5892,10 @@ packages: resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==} engines: {node: '>=20.19.0'} + ast-kit@3.0.0-beta.1: + resolution: {integrity: sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==} + engines: {node: '>=20.19.0'} + ast-walker-scope@0.8.3: resolution: {integrity: sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg==} engines: {node: '>=20.19.0'} @@ -5966,13 +5927,6 @@ packages: atomically@2.1.1: resolution: {integrity: sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==} - autoprefixer@10.4.27: - resolution: {integrity: sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -6074,6 +6028,9 @@ packages: birpc@2.9.0: resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} + birpc@4.0.0: + resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -6174,9 +6131,6 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001779: resolution: {integrity: sha512-U5og2PN7V4DMgF50YPNtnZJGWVLFjjsN3zb6uMT5VGYIewieDj1upwfuVNXf4Kor+89c3iCRJnSzMD5LmTvsfA==} @@ -6547,12 +6501,6 @@ packages: engines: {node: '>=20.18'} hasBin: true - css-declaration-sorter@7.3.1: - resolution: {integrity: sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.0.9 - css-functions-list@3.3.3: resolution: {integrity: sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==} engines: {node: '>=12'} @@ -6583,24 +6531,6 @@ packages: engines: {node: '>=4'} hasBin: true - cssnano-preset-default@7.0.11: - resolution: {integrity: sha512-waWlAMuCakP7//UCY+JPrQS1z0OSLeOXk2sKWJximKWGupVxre50bzPlvpbUwZIDylhf/ptf0Pk+Yf7C+hoa3g==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - cssnano-utils@5.0.1: - resolution: {integrity: sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - cssnano@7.1.3: - resolution: {integrity: sha512-mLFHQAzyapMVFLiJIn7Ef4C2UCEvtlTlbyILR6B5ZsUAV3D/Pa761R5uC1YPhyBkRd3eqaDm2ncaNrD7R4mTRg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -6673,9 +6603,6 @@ packages: sqlite3: optional: true - de-indent@1.0.2: - resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -6776,10 +6703,6 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@8.0.3: - resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} - engines: {node: '>=0.3.1'} - dijkstrajs@1.0.3: resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} @@ -6850,6 +6773,15 @@ packages: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} engines: {node: '>=10'} + dts-resolver@2.1.3: + resolution: {integrity: sha512-bihc7jPC90VrosXNzK0LTE2cuLP6jr0Ro8jk+kMugHReJVLIpHz/xadeq3MhuwyO4TD4OA3L1Q8pBBFRc08Tsw==} + engines: {node: '>=20.19.0'} + peerDependencies: + oxc-resolver: '>=11.0.0' + peerDependenciesMeta: + oxc-resolver: + optional: true + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -7330,9 +7262,6 @@ packages: resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} engines: {node: '>= 10.13.0'} - fix-dts-default-cjs-exports@1.0.1: - resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -7375,9 +7304,6 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} - fraction.js@5.3.4: - resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - framesync@6.1.2: resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==} @@ -7389,10 +7315,6 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.3.4: - resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} - engines: {node: '>=14.14'} - fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -7657,6 +7579,9 @@ packages: hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + hookable@6.1.0: + resolution: {integrity: sha512-ZoKZSJgu8voGK2geJS+6YtYjvIzu9AOM/KZXsBxr83uhLL++e9pEv/dlgwgy3dvHg06kTz6JOh1hk3C8Ceiymw==} + hookified@1.15.1: resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} @@ -7744,13 +7669,13 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + import-without-cache@0.2.5: + resolution: {integrity: sha512-B6Lc2s6yApwnD2/pMzFh/d5AVjdsDXjgkeJ766FmFuJELIGHNycKRj+l3A39yZPM4CchqNCB4RITEAYB1KUM6A==} + engines: {node: '>=20.19.0'} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -8050,10 +7975,6 @@ packages: engines: {node: '>=10'} hasBin: true - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} - hasBin: true - jiti@2.6.1: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true @@ -8481,9 +8402,6 @@ packages: lodash.kebabcase@4.1.1: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -8505,9 +8423,6 @@ packages: lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - lodash.upperfirst@4.3.1: resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} @@ -8539,10 +8454,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - lucide-vue-next@0.577.0: resolution: {integrity: sha512-py05bAfv9SHVJqscbiOnjcnLlEmOffA58a+7XhZuFxrs6txe1E8VoR1ngWGTYO+9aVKABAz8l3ee3PqiQN9QPA==} peerDependencies: @@ -8665,10 +8576,6 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} - minimatch@10.2.3: - resolution: {integrity: sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==} - engines: {node: 18 || 20 || >=22} - minimatch@10.2.4: resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} engines: {node: 18 || 20 || >=22} @@ -8721,27 +8628,6 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - mkdist@2.4.1: - resolution: {integrity: sha512-Ezk0gi04GJBkqMfsksICU5Rjoemc4biIekwgrONWVPor2EO/N9nBgN6MZXAf7Yw4mDDhrNyKbdETaHNevfumKg==} - hasBin: true - peerDependencies: - sass: ^1.92.1 - typescript: '>=5.9.2' - vue: ^3.5.30 - vue-sfc-transformer: ^0.1.1 - vue-tsc: ^1.8.27 || ^2.0.21 || ^3.0.0 - peerDependenciesMeta: - sass: - optional: true - typescript: - optional: true - vue: - optional: true - vue-sfc-transformer: - optional: true - vue-tsc: - optional: true - mlly@1.8.1: resolution: {integrity: sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ==} @@ -8962,8 +8848,8 @@ packages: resolution: {integrity: sha512-TdrKhDZCgEYqONFo/j+KvGan7/k3tP5Ouz88wCqpOvJtI2QmcLfGsm1fcMvDnTik48Jj6z83IJBqlkmK9DnY1A==} hasBin: true - oxlint@1.55.0: - resolution: {integrity: sha512-T+FjepiyWpaZMhekqRpH8Z3I4vNM610p6w+Vjfqgj5TZUxHXl7N8N5IPvmOU8U4XdTRxqtNNTh9Y4hLtr7yvFg==} + oxlint@1.56.0: + resolution: {integrity: sha512-Q+5Mj5PVaH/R6/fhMMFzw4dT+KPB+kQW4kaL8FOIq7tfhlnEVp6+3lcWqFruuTNlUo9srZUW3qH7Id4pskeR6g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -9195,168 +9081,30 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss-calc@10.1.1: - resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} - engines: {node: ^18.12 || ^20.9 || >=22.0} - peerDependencies: - postcss: ^8.4.38 - - postcss-colormin@7.0.6: - resolution: {integrity: sha512-oXM2mdx6IBTRm39797QguYzVEWzbdlFiMNfq88fCCN1Wepw3CYmJ/1/Ifa/KjWo+j5ZURDl2NTldLJIw51IeNQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-convert-values@7.0.9: - resolution: {integrity: sha512-l6uATQATZaCa0bckHV+r6dLXfWtUBKXxO3jK+AtxxJJtgMPD+VhhPCCx51I4/5w8U5uHV67g3w7PXj+V3wlMlg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-discard-comments@7.0.6: - resolution: {integrity: sha512-Sq+Fzj1Eg5/CPf1ERb0wS1Im5cvE2gDXCE+si4HCn1sf+jpQZxDI4DXEp8t77B/ImzDceWE2ebJQFXdqZ6GRJw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-discard-duplicates@7.0.2: - resolution: {integrity: sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-discard-empty@7.0.1: - resolution: {integrity: sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-discard-overridden@7.0.1: - resolution: {integrity: sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - postcss-html@1.8.1: resolution: {integrity: sha512-OLF6P7qctfAWayOhLpcVnTGqVeJzu2W3WpIYelfz2+JV5oGxfkcEvweN9U4XpeqE0P98dcD9ssusGwlF0TK0uQ==} engines: {node: ^12 || >=14} - postcss-media-query-parser@0.2.3: - resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} - - postcss-merge-longhand@7.0.5: - resolution: {integrity: sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-merge-rules@7.0.8: - resolution: {integrity: sha512-BOR1iAM8jnr7zoQSlpeBmCsWV5Uudi/+5j7k05D0O/WP3+OFMPD86c1j/20xiuRtyt45bhxw/7hnhZNhW2mNFA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-minify-font-values@7.0.1: - resolution: {integrity: sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-minify-gradients@7.0.1: - resolution: {integrity: sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-minify-params@7.0.6: - resolution: {integrity: sha512-YOn02gC68JijlaXVuKvFSCvQOhTpblkcfDre2hb/Aaa58r2BIaK4AtE/cyZf2wV7YKAG+UlP9DT+By0ry1E4VQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-minify-selectors@7.0.6: - resolution: {integrity: sha512-lIbC0jy3AAwDxEgciZlBullDiMBeBCT+fz5G8RcA9MWqh/hfUkpOI3vNDUNEZHgokaoiv0juB9Y8fGcON7rU/A==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-nested@7.0.2: - resolution: {integrity: sha512-5osppouFc0VR9/VYzYxO03VaDa3e8F23Kfd6/9qcZTUI8P58GIYlArOET2Wq0ywSl2o2PjELhYOFI4W7l5QHKw==} - engines: {node: '>=18.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-normalize-charset@7.0.1: - resolution: {integrity: sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-display-values@7.0.1: - resolution: {integrity: sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-positions@7.0.1: - resolution: {integrity: sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-repeat-style@7.0.1: - resolution: {integrity: sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-string@7.0.1: - resolution: {integrity: sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-timing-functions@7.0.1: - resolution: {integrity: sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-unicode@7.0.6: - resolution: {integrity: sha512-z6bwTV84YW6ZvvNoaNLuzRW4/uWxDKYI1iIDrzk6D2YTL7hICApy+Q1LP6vBEsljX8FM7YSuV9qI79XESd4ddQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-url@7.0.1: - resolution: {integrity: sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-normalize-whitespace@7.0.1: - resolution: {integrity: sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-ordered-values@7.0.2: - resolution: {integrity: sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - - postcss-reduce-initial@7.0.6: - resolution: {integrity: sha512-G6ZyK68AmrPdMB6wyeA37ejnnRG2S8xinJrZJnOv+IaRKf6koPAVbQsiC7MfkmXaGmF1UO+QCijb27wfpxuRNg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} peerDependencies: - postcss: ^8.4.32 + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true - postcss-reduce-transforms@7.0.1: - resolution: {integrity: sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 + postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} postcss-resolve-nested-selector@0.1.6: resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} @@ -9392,18 +9140,6 @@ packages: peerDependencies: postcss: ^8.4.20 - postcss-svgo@7.1.1: - resolution: {integrity: sha512-zU9H9oEDrUFKa0JB7w+IYL7Qs9ey1mZyjhbf0KLxwJDdDRtoPvCmaEfknzqfHj44QS9VD6c5sJnBAVYTLRg/Sg==} - engines: {node: ^18.12.0 || ^20.9.0 || >= 18} - peerDependencies: - postcss: ^8.4.32 - - postcss-unique-selectors@7.0.5: - resolution: {integrity: sha512-3QoYmEt4qg/rUWDn6Tc8+ZVPmbp4G1hXDtCNWDx0st8SjtCbRcxRXDDM1QrEiXGG3A45zscSJFb4QH90LViyxg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -9491,6 +9227,9 @@ packages: quansync@0.2.11: resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + quansync@1.0.0: + resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -9668,6 +9407,25 @@ packages: engines: {node: 20 || >=22} hasBin: true + rolldown-plugin-dts@0.22.5: + resolution: {integrity: sha512-M/HXfM4cboo+jONx9Z0X+CUf3B5tCi7ni+kR5fUW50Fp9AlZk0oVLesibGWgCXDKFp5lpgQ9yhKoImUFjl3VZw==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@ts-macro/tsc': ^0.3.6 + '@typescript/native-preview': '>=7.0.0-dev.20250601.1' + rolldown: ^1.0.0-rc.3 + typescript: ^5.0.0 || ^6.0.0-beta + vue-tsc: ~3.2.0 + peerDependenciesMeta: + '@ts-macro/tsc': + optional: true + '@typescript/native-preview': + optional: true + typescript: + optional: true + vue-tsc: + optional: true + rolldown-string@0.2.1: resolution: {integrity: sha512-7H8oH5A8+L96pbBTPCt/rZrwayEhZY5/ejhdk9nRODH32H1v7+bfkaCr+kS15DcGQ7VC1HcWdQVNABFYgrMOzg==} engines: {node: '>=20.19.0'} @@ -9677,13 +9435,6 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rollup-plugin-dts@6.4.0: - resolution: {integrity: sha512-2i00A5UoPCoDecLEs13Eu105QegSGfrbp1sDeUj/54LKGmv6XFHDxWKC6Wsb4BobGUWYVCWWjmjAc8bXXbXH/Q==} - engines: {node: '>=16'} - peerDependencies: - rollup: ^3.29.4 || ^4 - typescript: ^4.5 || ^5.0 || ^6.0 - rollup-plugin-visualizer@6.0.11: resolution: {integrity: sha512-TBwVHVY7buHjIKVLqr9scTVFwqZqMXINcCphPwIWKPDCOBIa+jCQfafvbjRJDZgXdq/A996Dy6yGJ/+/NtAXDQ==} engines: {node: '>=18'} @@ -9918,11 +9669,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.4: resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} @@ -10103,10 +9849,6 @@ packages: streamx@2.23.0: resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -10192,10 +9934,6 @@ packages: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - strip-literal@3.1.0: resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} @@ -10211,12 +9949,6 @@ packages: style-value-types@5.1.2: resolution: {integrity: sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==} - stylehacks@7.0.8: - resolution: {integrity: sha512-I3f053GBLIiS5Fg6OMFhq/c+yW+5Hc2+1fgq7gElDMMSqwlRb3tBf2ef6ucLStYRpId4q//bQO1FjcyNyy4yDQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.32 - stylelint-config-html@1.1.0: resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} engines: {node: ^12 || >=14} @@ -10388,8 +10120,8 @@ packages: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} - terser@5.46.0: - resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} + terser@5.46.1: + resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==} engines: {node: '>=10'} hasBin: true @@ -10449,6 +10181,10 @@ packages: tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + treemate@0.3.11: resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==} @@ -10474,12 +10210,40 @@ packages: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} - tslib@2.3.0: - resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} - - tslib@2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - + tsdown@0.21.3: + resolution: {integrity: sha512-oKKeMC8+IgNsB+81hvF5VBsqhqL/nr0g9vse+ujbK40vv0i3ReFI6gUts7hQH7J53ylQNjMgf2Vu6n0+P/uddA==} + engines: {node: '>=20.19.0'} + hasBin: true + peerDependencies: + '@arethetypeswrong/core': ^0.18.1 + '@tsdown/css': 0.21.3 + '@tsdown/exe': 0.21.3 + '@vitejs/devtools': '*' + publint: ^0.3.0 + typescript: ^5.0.0 + unplugin-unused: ^0.5.0 + peerDependenciesMeta: + '@arethetypeswrong/core': + optional: true + '@tsdown/css': + optional: true + '@tsdown/exe': + optional: true + '@vitejs/devtools': + optional: true + publint: + optional: true + typescript: + optional: true + unplugin-unused: + optional: true + + tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + + tslib@2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -10552,11 +10316,6 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript@5.8.2: - resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -10572,14 +10331,8 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - unbuild@3.6.1: - resolution: {integrity: sha512-+U5CdtrdjfWkZhuO4N9l5UhyiccoeMEXIc2Lbs30Haxb+tRwB3VwB8AoZRxlAzORXunenSo+j6lh45jx+xkKgg==} - hasBin: true - peerDependencies: - typescript: ^5.9.2 - peerDependenciesMeta: - typescript: - optional: true + unconfig-core@7.5.0: + resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} @@ -10660,6 +10413,36 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unplugin-dts@1.0.0-beta.6: + resolution: {integrity: sha512-+xbFv5aVFtLZFNBAKI4+kXmd2h+T42/AaP8Bsp0YP/je/uOTN94Ame2Xt3e9isZS+Z7/hrLCLbsVJh+saqFMfQ==} + peerDependencies: + '@microsoft/api-extractor': '>=7' + '@rspack/core': ^1 + '@vue/language-core': ~3.0.1 + esbuild: '*' + rolldown: '*' + rollup: '>=3' + typescript: '>=4' + vite: '>=3' + webpack: ^4 || ^5 + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@rspack/core': + optional: true + '@vue/language-core': + optional: true + esbuild: + optional: true + rolldown: + optional: true + rollup: + optional: true + vite: + optional: true + webpack: + optional: true + unplugin-element-plus@0.11.2: resolution: {integrity: sha512-jr88ePpv43h8cCmVW0SqM73sTD+g1n9Rmy4uMbTh+pSmceH9ZdKteWX9f+twC4aDlP3svdZuKMqLoUNBT2V6Tg==} engines: {node: '>=20.19.0'} @@ -10668,6 +10451,12 @@ packages: resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} engines: {node: '>=20.19.0'} + unplugin-vue@7.1.1: + resolution: {integrity: sha512-0171rToKyJtoz+faE9CSGtAhCF7//t8sJueyyfZujf4RcKtoHLU/wqcsnuH5aq3tDB+I/Tg6IXiWgPvI+TK/zw==} + engines: {node: '>=20.19.0'} + peerDependencies: + vue: ^3.5.30 + unplugin@2.3.11: resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} engines: {node: '>=18.12.0'} @@ -10676,6 +10465,16 @@ packages: resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} engines: {node: ^20.19.0 || >=22.12.0} + unrun@0.2.32: + resolution: {integrity: sha512-opd3z6791rf281JdByf0RdRQrpcc7WyzqittqIXodM/5meNWdTwrVxeyzbaCp4/Rgls/um14oUaif1gomO8YGg==} + engines: {node: '>=20.19.0'} + hasBin: true + peerDependencies: + synckit: ^0.11.11 + peerDependenciesMeta: + synckit: + optional: true + unstorage@1.17.4: resolution: {integrity: sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw==} peerDependencies: @@ -10818,15 +10617,6 @@ packages: peerDependencies: vite: '>=2.0.0' - vite-plugin-dts@4.5.4: - resolution: {integrity: sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==} - peerDependencies: - typescript: '*' - vite: '*' - peerDependenciesMeta: - vite: - optional: true - vite-plugin-html@3.2.2: resolution: {integrity: sha512-vb9C9kcdzcIo/Oc3CLZVS03dL5pDlOFuhGlZYDCJ840BhWl/0nGeZWf3Qy7NlOayscY4Cm/QRgULCQkEZige5Q==} peerDependencies: @@ -11620,6 +11410,15 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 + '@babel/generator@8.0.0-rc.2': + dependencies: + '@babel/parser': 8.0.0-rc.2 + '@babel/types': 8.0.0-rc.2 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@types/jsesc': 2.5.1 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.27.3': dependencies: '@babel/types': 7.29.0 @@ -11721,8 +11520,12 @@ snapshots: '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@8.0.0-rc.2': {} + '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@8.0.0-rc.2': {} + '@babel/helper-validator-option@7.27.1': {} '@babel/helper-wrap-function@7.28.6': @@ -11742,6 +11545,10 @@ snapshots: dependencies: '@babel/types': 7.29.0 + '@babel/parser@8.0.0-rc.2': + dependencies: + '@babel/types': 8.0.0-rc.2 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 @@ -12289,6 +12096,11 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@babel/types@8.0.0-rc.2': + dependencies: + '@babel/helper-string-parser': 8.0.0-rc.2 + '@babel/helper-validator-identifier': 8.0.0-rc.2 + '@bufbuild/protobuf@2.11.0': {} '@cacheable/memory@2.0.8': @@ -13239,7 +13051,7 @@ snapshots: dependencies: '@iconify/types': 2.0.0 - '@iconify/json@2.2.449': + '@iconify/json@2.2.450': dependencies: '@iconify/types': 2.0.0 pathe: 2.0.3 @@ -13469,42 +13281,6 @@ snapshots: - encoding - supports-color - '@microsoft/api-extractor-model@7.33.4(@types/node@25.5.0)': - dependencies: - '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.1 - '@rushstack/node-core-library': 5.20.3(@types/node@25.5.0) - transitivePeerDependencies: - - '@types/node' - - '@microsoft/api-extractor@7.57.7(@types/node@25.5.0)': - dependencies: - '@microsoft/api-extractor-model': 7.33.4(@types/node@25.5.0) - '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.1 - '@rushstack/node-core-library': 5.20.3(@types/node@25.5.0) - '@rushstack/rig-package': 0.7.2 - '@rushstack/terminal': 0.22.3(@types/node@25.5.0) - '@rushstack/ts-command-line': 5.3.3(@types/node@25.5.0) - diff: 8.0.3 - lodash: 4.17.23 - minimatch: 10.2.3 - resolve: 1.22.11 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.8.2 - transitivePeerDependencies: - - '@types/node' - - '@microsoft/tsdoc-config@0.18.1': - dependencies: - '@microsoft/tsdoc': 0.16.0 - ajv: 8.18.0 - jju: 1.4.0 - resolve: 1.22.11 - - '@microsoft/tsdoc@0.16.0': {} - '@napi-rs/wasm-runtime@1.1.1': dependencies: '@emnapi/core': 1.9.0 @@ -13524,17 +13300,17 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@nolebase/ui@2.18.2(vitepress@1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.0)(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3))': + '@nolebase/ui@2.18.2(vitepress@1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.1)(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3))': dependencies: '@iconify-json/octicon': 1.2.21 less: 4.6.4 - vitepress: 1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.0)(typescript@5.9.3) + vitepress: 1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.1)(typescript@5.9.3) vue: 3.5.30(typescript@5.9.3) - '@nolebase/vitepress-plugin-git-changelog@2.18.2(vitepress@1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.0)(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3))': + '@nolebase/vitepress-plugin-git-changelog@2.18.2(vitepress@1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.1)(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3))': dependencies: '@iconify-json/octicon': 1.2.21 - '@nolebase/ui': 2.18.2(vitepress@1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.0)(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) + '@nolebase/ui': 2.18.2(vitepress@1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.1)(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) colorette: 2.0.20 date-fns: 4.1.0 defu: 6.1.4 @@ -13544,7 +13320,7 @@ snapshots: gray-matter: 4.0.3 less: 4.6.4 uncrypto: 0.1.3 - vitepress: 1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.0)(typescript@5.9.3) + vitepress: 1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.1)(typescript@5.9.3) transitivePeerDependencies: - vue @@ -13687,61 +13463,61 @@ snapshots: '@oxlint-tsgolint/win32-x64@0.17.0': optional: true - '@oxlint/binding-android-arm-eabi@1.55.0': + '@oxlint/binding-android-arm-eabi@1.56.0': optional: true - '@oxlint/binding-android-arm64@1.55.0': + '@oxlint/binding-android-arm64@1.56.0': optional: true - '@oxlint/binding-darwin-arm64@1.55.0': + '@oxlint/binding-darwin-arm64@1.56.0': optional: true - '@oxlint/binding-darwin-x64@1.55.0': + '@oxlint/binding-darwin-x64@1.56.0': optional: true - '@oxlint/binding-freebsd-x64@1.55.0': + '@oxlint/binding-freebsd-x64@1.56.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.55.0': + '@oxlint/binding-linux-arm-gnueabihf@1.56.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.55.0': + '@oxlint/binding-linux-arm-musleabihf@1.56.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.55.0': + '@oxlint/binding-linux-arm64-gnu@1.56.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.55.0': + '@oxlint/binding-linux-arm64-musl@1.56.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.55.0': + '@oxlint/binding-linux-ppc64-gnu@1.56.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.55.0': + '@oxlint/binding-linux-riscv64-gnu@1.56.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.55.0': + '@oxlint/binding-linux-riscv64-musl@1.56.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.55.0': + '@oxlint/binding-linux-s390x-gnu@1.56.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.55.0': + '@oxlint/binding-linux-x64-gnu@1.56.0': optional: true - '@oxlint/binding-linux-x64-musl@1.55.0': + '@oxlint/binding-linux-x64-musl@1.56.0': optional: true - '@oxlint/binding-openharmony-arm64@1.55.0': + '@oxlint/binding-openharmony-arm64@1.56.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.55.0': + '@oxlint/binding-win32-arm64-msvc@1.56.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.55.0': + '@oxlint/binding-win32-ia32-msvc@1.56.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.55.0': + '@oxlint/binding-win32-x64-msvc@1.56.0': optional: true '@parcel/watcher-android-arm64@2.5.6': @@ -13863,6 +13639,10 @@ snapshots: '@publint/pack@0.1.4': {} + '@quansync/fs@1.0.0': + dependencies: + quansync: 1.0.0 + '@rolldown/binding-android-arm64@1.0.0-rc.9': optional: true @@ -13914,10 +13694,6 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.9': {} - '@rollup/plugin-alias@5.1.1(rollup@4.59.0)': - optionalDependencies: - rollup: 4.59.0 - '@rollup/plugin-alias@6.0.0(rollup@4.59.0)': optionalDependencies: rollup: 4.59.0 @@ -13931,18 +13707,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@28.0.9(rollup@4.59.0)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.59.0) - commondir: 1.0.1 - estree-walker: 2.0.2 - fdir: 6.5.0(picomatch@4.0.3) - is-reference: 1.2.1 - magic-string: 0.30.21 - picomatch: 4.0.3 - optionalDependencies: - rollup: 4.59.0 - '@rollup/plugin-commonjs@29.0.2(rollup@4.59.0)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.59.0) @@ -14006,7 +13770,7 @@ snapshots: dependencies: serialize-javascript: 6.0.2 smob: 1.6.1 - terser: 5.46.0 + terser: 5.46.1 optionalDependencies: rollup: 2.80.0 @@ -14014,7 +13778,7 @@ snapshots: dependencies: serialize-javascript: 6.0.2 smob: 1.6.1 - terser: 5.46.0 + terser: 5.46.1 optionalDependencies: rollup: 4.59.0 @@ -14121,45 +13885,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.59.0': optional: true - '@rushstack/node-core-library@5.20.3(@types/node@25.5.0)': - dependencies: - ajv: 8.18.0 - ajv-draft-04: 1.0.0(ajv@8.18.0) - ajv-formats: 3.0.1(ajv@8.18.0) - fs-extra: 11.3.4 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.11 - semver: 7.5.4 - optionalDependencies: - '@types/node': 25.5.0 - - '@rushstack/problem-matcher@0.2.1(@types/node@25.5.0)': - optionalDependencies: - '@types/node': 25.5.0 - - '@rushstack/rig-package@0.7.2': - dependencies: - resolve: 1.22.11 - strip-json-comments: 3.1.1 - - '@rushstack/terminal@0.22.3(@types/node@25.5.0)': - dependencies: - '@rushstack/node-core-library': 5.20.3(@types/node@25.5.0) - '@rushstack/problem-matcher': 0.2.1(@types/node@25.5.0) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 25.5.0 - - '@rushstack/ts-command-line@5.3.3(@types/node@25.5.0)': - dependencies: - '@rushstack/terminal': 0.22.3(@types/node@25.5.0) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - '@sec-ant/readable-stream@0.4.1': {} '@shikijs/core@2.5.0': @@ -14313,12 +14038,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.2.1 - '@tailwindcss/vite@4.2.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))': + '@tailwindcss/vite@4.2.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))': dependencies: '@tailwindcss/node': 4.2.1 '@tailwindcss/oxide': 4.2.1 tailwindcss: 4.2.1 - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) '@tanstack/match-sorter-utils@8.19.4': dependencies: @@ -14349,6 +14074,21 @@ snapshots: '@tanstack/virtual-core': 3.13.23 vue: 3.5.30(typescript@5.9.3) + '@tsdown/css@0.21.3(jiti@2.6.1)(postcss@8.5.8)(sass-embedded@1.98.0)(sass@1.98.0)(tsdown@0.21.3)(yaml@2.8.2)': + dependencies: + lightningcss: 1.32.0 + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.2) + rolldown: 1.0.0-rc.9 + tsdown: 0.21.3(@tsdown/css@0.21.3)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) + optionalDependencies: + postcss: 8.5.8 + sass: 1.98.0 + sass-embedded: 1.98.0 + transitivePeerDependencies: + - jiti + - tsx + - yaml + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 @@ -14358,8 +14098,6 @@ snapshots: dependencies: '@types/readdir-glob': 1.1.5 - '@types/argparse@1.0.38': {} - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -14379,6 +14117,8 @@ snapshots: '@types/html-minifier-terser@7.0.2': {} + '@types/jsesc@2.5.1': {} + '@types/json-bigint@1.0.4': {} '@types/json-schema@7.0.15': {} @@ -14838,31 +14578,31 @@ snapshots: - rollup - supports-color - '@vite-pwa/vitepress@1.1.0(vite-plugin-pwa@1.2.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0))': + '@vite-pwa/vitepress@1.1.0(vite-plugin-pwa@1.2.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0))': dependencies: - vite-plugin-pwa: 1.2.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0) + vite-plugin-pwa: 1.2.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0) - '@vitejs/plugin-vue-jsx@5.1.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) '@rolldown/pluginutils': 1.0.0-rc.9 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) vue: 3.5.30(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@25.5.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0))(vue@3.5.30(typescript@5.9.3))': + '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@25.5.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1))(vue@3.5.30(typescript@5.9.3))': dependencies: - vite: 5.4.21(@types/node@25.5.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0) + vite: 5.4.21(@types/node@25.5.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1) vue: 3.5.30(typescript@5.9.3) - '@vitejs/plugin-vue@6.0.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.5(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) vue: 3.5.30(typescript@5.9.3) '@vitest/expect@4.1.0': @@ -14874,13 +14614,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))': + '@vitest/mocker@4.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.1.0 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) '@vitest/pretty-format@4.1.0': dependencies: @@ -15016,11 +14756,6 @@ snapshots: '@vue/compiler-dom': 3.5.30 '@vue/shared': 3.5.30 - '@vue/compiler-vue2@2.7.16': - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - '@vue/devtools-api@6.6.4': {} '@vue/devtools-api@7.7.9': @@ -15060,19 +14795,6 @@ snapshots: '@vue/devtools-shared@8.1.0': {} - '@vue/language-core@2.2.0(typescript@5.9.3)': - dependencies: - '@volar/language-core': 2.4.28 - '@vue/compiler-dom': 3.5.30 - '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.30 - alien-signals: 0.4.14 - minimatch: 9.0.9 - muggle-string: 0.4.1 - path-browserify: 1.0.1 - optionalDependencies: - typescript: 5.9.3 - '@vue/language-core@3.2.5': dependencies: '@volar/language-core': 2.4.28 @@ -15242,14 +14964,6 @@ snapshots: agent-base@7.1.4: {} - ajv-draft-04@1.0.0(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 - - ajv-formats@3.0.1(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 - ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 @@ -15281,8 +14995,6 @@ snapshots: '@algolia/requester-fetch': 5.49.2 '@algolia/requester-node-http': 5.49.2 - alien-signals@0.4.14: {} - alien-signals@3.1.2: {} ansi-align@3.0.1: @@ -15461,6 +15173,12 @@ snapshots: '@babel/parser': 7.29.0 pathe: 2.0.3 + ast-kit@3.0.0-beta.1: + dependencies: + '@babel/parser': 8.0.0-rc.2 + estree-walker: 3.0.3 + pathe: 2.0.3 + ast-walker-scope@0.8.3: dependencies: '@babel/parser': 7.29.0 @@ -15485,15 +15203,6 @@ snapshots: stubborn-fs: 2.0.0 when-exit: 2.1.5 - autoprefixer@10.4.27(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001779 - fraction.js: 5.3.4 - picocolors: 1.1.1 - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 @@ -15591,6 +15300,8 @@ snapshots: birpc@2.9.0: {} + birpc@4.0.0: {} + boolbase@1.0.0: {} boxen@8.0.1: @@ -15719,13 +15430,6 @@ snapshots: camelcase@8.0.0: {} - caniuse-api@3.0.0: - dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001779 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001779: {} ccount@2.0.1: {} @@ -16141,10 +15845,6 @@ snapshots: semver: 7.7.4 tinyglobby: 0.2.15 - css-declaration-sorter@7.3.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - css-functions-list@3.3.3: {} css-render@0.15.14: @@ -16182,50 +15882,6 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.11(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - css-declaration-sorter: 7.3.1(postcss@8.5.8) - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 - postcss-calc: 10.1.1(postcss@8.5.8) - postcss-colormin: 7.0.6(postcss@8.5.8) - postcss-convert-values: 7.0.9(postcss@8.5.8) - postcss-discard-comments: 7.0.6(postcss@8.5.8) - postcss-discard-duplicates: 7.0.2(postcss@8.5.8) - postcss-discard-empty: 7.0.1(postcss@8.5.8) - postcss-discard-overridden: 7.0.1(postcss@8.5.8) - postcss-merge-longhand: 7.0.5(postcss@8.5.8) - postcss-merge-rules: 7.0.8(postcss@8.5.8) - postcss-minify-font-values: 7.0.1(postcss@8.5.8) - postcss-minify-gradients: 7.0.1(postcss@8.5.8) - postcss-minify-params: 7.0.6(postcss@8.5.8) - postcss-minify-selectors: 7.0.6(postcss@8.5.8) - postcss-normalize-charset: 7.0.1(postcss@8.5.8) - postcss-normalize-display-values: 7.0.1(postcss@8.5.8) - postcss-normalize-positions: 7.0.1(postcss@8.5.8) - postcss-normalize-repeat-style: 7.0.1(postcss@8.5.8) - postcss-normalize-string: 7.0.1(postcss@8.5.8) - postcss-normalize-timing-functions: 7.0.1(postcss@8.5.8) - postcss-normalize-unicode: 7.0.6(postcss@8.5.8) - postcss-normalize-url: 7.0.1(postcss@8.5.8) - postcss-normalize-whitespace: 7.0.1(postcss@8.5.8) - postcss-ordered-values: 7.0.2(postcss@8.5.8) - postcss-reduce-initial: 7.0.6(postcss@8.5.8) - postcss-reduce-transforms: 7.0.1(postcss@8.5.8) - postcss-svgo: 7.1.1(postcss@8.5.8) - postcss-unique-selectors: 7.0.5(postcss@8.5.8) - - cssnano-utils@5.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - cssnano@7.1.3(postcss@8.5.8): - dependencies: - cssnano-preset-default: 7.0.11(postcss@8.5.8) - lilconfig: 3.1.3 - postcss: 8.5.8 - csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -16270,8 +15926,6 @@ snapshots: db0@0.3.4: {} - de-indent@1.0.2: {} - debug@4.4.3: dependencies: ms: 2.1.3 @@ -16363,8 +16017,6 @@ snapshots: diff-sequences@29.6.3: {} - diff@8.0.3: {} - dijkstrajs@1.0.3: {} dir-glob@3.0.1: @@ -16436,6 +16088,8 @@ snapshots: dotenv@8.6.0: {} + dts-resolver@2.1.3: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -16745,7 +16399,7 @@ snapshots: esquery: 1.7.0 jsonc-eslint-parser: 3.1.0 - eslint-plugin-better-tailwindcss@4.3.2(eslint@10.0.3(jiti@2.6.1))(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(tailwindcss@4.2.1)(typescript@5.9.3): + eslint-plugin-better-tailwindcss@4.3.2(eslint@10.0.3(jiti@2.6.1))(oxlint@1.56.0(oxlint-tsgolint@0.17.0))(tailwindcss@4.2.1)(typescript@5.9.3): dependencies: '@eslint/css-tree': 3.6.9 '@valibot/to-json-schema': 1.5.0(valibot@1.2.0(typescript@5.9.3)) @@ -16758,7 +16412,7 @@ snapshots: valibot: 1.2.0(typescript@5.9.3) optionalDependencies: eslint: 10.0.3(jiti@2.6.1) - oxlint: 1.55.0(oxlint-tsgolint@0.17.0) + oxlint: 1.56.0(oxlint-tsgolint@0.17.0) transitivePeerDependencies: - typescript @@ -17102,12 +16756,6 @@ snapshots: micromatch: 4.0.8 resolve-dir: 1.0.1 - fix-dts-default-cjs-exports@1.0.1: - dependencies: - magic-string: 0.30.21 - mlly: 1.8.1 - rollup: 4.59.0 - flat-cache@4.0.1: dependencies: flatted: 3.4.1 @@ -17150,8 +16798,6 @@ snapshots: dependencies: fetch-blob: 3.2.0 - fraction.js@5.3.4: {} - framesync@6.1.2: dependencies: tslib: 2.4.0 @@ -17164,12 +16810,6 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 - fs-extra@11.3.4: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.2.0 - universalify: 2.0.1 - fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -17489,6 +17129,8 @@ snapshots: hookable@5.5.3: {} + hookable@6.1.0: {} + hookified@1.15.1: {} html-minifier-terser@6.1.0: @@ -17499,7 +17141,7 @@ snapshots: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.46.0 + terser: 5.46.1 html-minifier-terser@7.2.0: dependencies: @@ -17509,7 +17151,7 @@ snapshots: entities: 4.5.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.46.0 + terser: 5.46.1 html-tags@5.1.0: {} @@ -17580,10 +17222,10 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-lazy@4.0.0: {} - import-meta-resolve@4.2.0: {} + import-without-cache@0.2.5: {} + imurmurhash@0.1.4: {} indent-string@5.0.0: {} @@ -17841,8 +17483,6 @@ snapshots: filelist: 1.0.6 picocolors: 1.1.1 - jiti@1.21.7: {} - jiti@2.6.1: {} jju@1.4.0: {} @@ -18218,8 +17858,6 @@ snapshots: lodash.kebabcase@4.1.1: {} - lodash.memoize@4.1.2: {} - lodash.merge@4.6.2: {} lodash.mergewith@4.6.2: {} @@ -18234,8 +17872,6 @@ snapshots: lodash.truncate@4.4.2: {} - lodash.uniq@4.5.0: {} - lodash.upperfirst@4.3.1: {} lodash@4.17.23: {} @@ -18269,10 +17905,6 @@ snapshots: dependencies: yallist: 3.1.1 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - lucide-vue-next@0.577.0(vue@3.5.30(typescript@5.9.3)): dependencies: vue: 3.5.30(typescript@5.9.3) @@ -18382,10 +18014,6 @@ snapshots: mimic-function@5.0.1: {} - minimatch@10.2.3: - dependencies: - brace-expansion: 5.0.4 - minimatch@10.2.4: dependencies: brace-expansion: 5.0.4 @@ -18434,27 +18062,6 @@ snapshots: mitt@3.0.1: {} - mkdist@2.4.1(sass@1.98.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)): - dependencies: - autoprefixer: 10.4.27(postcss@8.5.8) - citty: 0.1.6 - cssnano: 7.1.3(postcss@8.5.8) - defu: 6.1.4 - esbuild: 0.25.12 - jiti: 1.21.7 - mlly: 1.8.1 - pathe: 2.0.3 - pkg-types: 2.3.0 - postcss: 8.5.8 - postcss-nested: 7.0.2(postcss@8.5.8) - semver: 7.7.4 - tinyglobby: 0.2.15 - optionalDependencies: - sass: 1.98.0 - typescript: 5.9.3 - vue: 3.5.30(typescript@5.9.3) - vue-tsc: 3.2.5(typescript@5.9.3) - mlly@1.8.1: dependencies: acorn: 8.16.0 @@ -18819,27 +18426,27 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 0.17.0 '@oxlint-tsgolint/win32-x64': 0.17.0 - oxlint@1.55.0(oxlint-tsgolint@0.17.0): + oxlint@1.56.0(oxlint-tsgolint@0.17.0): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.55.0 - '@oxlint/binding-android-arm64': 1.55.0 - '@oxlint/binding-darwin-arm64': 1.55.0 - '@oxlint/binding-darwin-x64': 1.55.0 - '@oxlint/binding-freebsd-x64': 1.55.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.55.0 - '@oxlint/binding-linux-arm-musleabihf': 1.55.0 - '@oxlint/binding-linux-arm64-gnu': 1.55.0 - '@oxlint/binding-linux-arm64-musl': 1.55.0 - '@oxlint/binding-linux-ppc64-gnu': 1.55.0 - '@oxlint/binding-linux-riscv64-gnu': 1.55.0 - '@oxlint/binding-linux-riscv64-musl': 1.55.0 - '@oxlint/binding-linux-s390x-gnu': 1.55.0 - '@oxlint/binding-linux-x64-gnu': 1.55.0 - '@oxlint/binding-linux-x64-musl': 1.55.0 - '@oxlint/binding-openharmony-arm64': 1.55.0 - '@oxlint/binding-win32-arm64-msvc': 1.55.0 - '@oxlint/binding-win32-ia32-msvc': 1.55.0 - '@oxlint/binding-win32-x64-msvc': 1.55.0 + '@oxlint/binding-android-arm-eabi': 1.56.0 + '@oxlint/binding-android-arm64': 1.56.0 + '@oxlint/binding-darwin-arm64': 1.56.0 + '@oxlint/binding-darwin-x64': 1.56.0 + '@oxlint/binding-freebsd-x64': 1.56.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.56.0 + '@oxlint/binding-linux-arm-musleabihf': 1.56.0 + '@oxlint/binding-linux-arm64-gnu': 1.56.0 + '@oxlint/binding-linux-arm64-musl': 1.56.0 + '@oxlint/binding-linux-ppc64-gnu': 1.56.0 + '@oxlint/binding-linux-riscv64-gnu': 1.56.0 + '@oxlint/binding-linux-riscv64-musl': 1.56.0 + '@oxlint/binding-linux-s390x-gnu': 1.56.0 + '@oxlint/binding-linux-x64-gnu': 1.56.0 + '@oxlint/binding-linux-x64-musl': 1.56.0 + '@oxlint/binding-openharmony-arm64': 1.56.0 + '@oxlint/binding-win32-arm64-msvc': 1.56.0 + '@oxlint/binding-win32-ia32-msvc': 1.56.0 + '@oxlint/binding-win32-x64-msvc': 1.56.0 oxlint-tsgolint: 0.17.0 p-filter@2.1.0: @@ -19036,43 +18643,6 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-calc@10.1.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - postcss-value-parser: 4.2.0 - - postcss-colormin@7.0.6(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-convert-values@7.0.9(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-discard-comments@7.0.6(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - - postcss-discard-duplicates@7.0.2(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - postcss-discard-empty@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - postcss-discard-overridden@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-html@1.8.1: dependencies: htmlparser2: 8.0.2 @@ -19080,113 +18650,15 @@ snapshots: postcss: 8.5.8 postcss-safe-parser: 6.0.0(postcss@8.5.8) - postcss-media-query-parser@0.2.3: {} - - postcss-merge-longhand@7.0.5(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - stylehacks: 7.0.8(postcss@8.5.8) - - postcss-merge-rules@7.0.8(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - - postcss-minify-font-values@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-minify-gradients@7.0.1(postcss@8.5.8): - dependencies: - colord: 2.9.3 - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-minify-params@7.0.6(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-minify-selectors@7.0.6(postcss@8.5.8): - dependencies: - cssesc: 3.0.0 - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - - postcss-nested@7.0.2(postcss@8.5.8): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.2): dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 2.6.1 postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - - postcss-normalize-charset@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - postcss-normalize-display-values@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-positions@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-repeat-style@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-string@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-timing-functions@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-unicode@7.0.6(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-url@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-normalize-whitespace@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-ordered-values@7.0.2(postcss@8.5.8): - dependencies: - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - - postcss-reduce-initial@7.0.6(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - postcss: 8.5.8 + yaml: 2.8.2 - postcss-reduce-transforms@7.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 + postcss-media-query-parser@0.2.3: {} postcss-resolve-nested-selector@0.1.6: {} @@ -19216,17 +18688,6 @@ snapshots: dependencies: postcss: 8.5.8 - postcss-svgo@7.1.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-value-parser: 4.2.0 - svgo: 4.0.1 - - postcss-unique-selectors@7.0.5(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - postcss-value-parser@4.2.0: {} postcss@8.5.8: @@ -19295,6 +18756,8 @@ snapshots: quansync@0.2.11: {} + quansync@1.0.0: {} + queue-microtask@1.2.3: {} radix3@1.1.2: {} @@ -19494,6 +18957,24 @@ snapshots: glob: 13.0.6 package-json-from-dist: 1.0.1 + rolldown-plugin-dts@0.22.5(rolldown@1.0.0-rc.9)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)): + dependencies: + '@babel/generator': 8.0.0-rc.2 + '@babel/helper-validator-identifier': 8.0.0-rc.2 + '@babel/parser': 8.0.0-rc.2 + '@babel/types': 8.0.0-rc.2 + ast-kit: 3.0.0-beta.1 + birpc: 4.0.0 + dts-resolver: 2.1.3 + get-tsconfig: 4.13.6 + obug: 2.1.1 + rolldown: 1.0.0-rc.9 + optionalDependencies: + typescript: 5.9.3 + vue-tsc: 3.2.5(typescript@5.9.3) + transitivePeerDependencies: + - oxc-resolver + rolldown-string@0.2.1: dependencies: magic-string: 0.30.21 @@ -19519,17 +19000,6 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.9 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.9 - rollup-plugin-dts@6.4.0(rollup@4.59.0)(typescript@5.9.3): - dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 - convert-source-map: 2.0.0 - magic-string: 0.30.21 - rollup: 4.59.0 - typescript: 5.9.3 - optionalDependencies: - '@babel/code-frame': 7.29.0 - rollup-plugin-visualizer@6.0.11(rolldown@1.0.0-rc.9)(rollup@4.59.0): dependencies: open: 8.4.2 @@ -19754,10 +19224,6 @@ snapshots: semver@6.3.1: {} - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 - semver@7.7.4: {} send@1.2.1: @@ -19962,8 +19428,6 @@ snapshots: - bare-abort-controller - react-native-b4a - string-argv@0.3.2: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -20069,8 +19533,6 @@ snapshots: strip-json-comments@2.0.1: {} - strip-json-comments@3.1.1: {} - strip-literal@3.1.0: dependencies: js-tokens: 9.0.1 @@ -20088,12 +19550,6 @@ snapshots: hey-listen: 1.0.8 tslib: 2.4.0 - stylehacks@7.0.8(postcss@8.5.8): - dependencies: - browserslist: 4.28.1 - postcss: 8.5.8 - postcss-selector-parser: 7.1.1 - stylelint-config-html@1.1.0(postcss-html@1.8.1)(stylelint@17.4.0(typescript@5.9.3)): dependencies: postcss-html: 1.8.1 @@ -20319,7 +19775,7 @@ snapshots: term-size@2.2.1: {} - terser@5.46.0: + terser@5.46.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.16.0 @@ -20371,6 +19827,8 @@ snapshots: dependencies: punycode: 2.3.1 + tree-kill@1.2.2: {} + treemate@0.3.11: {} trim-lines@3.0.1: {} @@ -20397,6 +19855,35 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 + tsdown@0.21.3(@tsdown/css@0.21.3)(publint@0.3.18)(synckit@0.11.12)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)): + dependencies: + ansis: 4.2.0 + cac: 7.0.0 + defu: 6.1.4 + empathic: 2.0.0 + hookable: 6.1.0 + import-without-cache: 0.2.5 + obug: 2.1.1 + picomatch: 4.0.3 + rolldown: 1.0.0-rc.9 + rolldown-plugin-dts: 0.22.5(rolldown@1.0.0-rc.9)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3)) + semver: 7.7.4 + tinyexec: 1.0.4 + tinyglobby: 0.2.15 + tree-kill: 1.2.2 + unconfig-core: 7.5.0 + unrun: 0.2.32(synckit@0.11.12) + optionalDependencies: + '@tsdown/css': 0.21.3(jiti@2.6.1)(postcss@8.5.8)(sass-embedded@1.98.0)(sass@1.98.0)(tsdown@0.21.3)(yaml@2.8.2) + publint: 0.3.18 + typescript: 5.9.3 + transitivePeerDependencies: + - '@ts-macro/tsc' + - '@typescript/native-preview' + - oxc-resolver + - synckit + - vue-tsc + tslib@2.3.0: {} tslib@2.4.0: {} @@ -20477,8 +19964,6 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript@5.8.2: {} - typescript@5.9.3: {} ufo@1.6.3: {} @@ -20492,39 +19977,10 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - unbuild@3.6.1(sass@1.98.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)): + unconfig-core@7.5.0: dependencies: - '@rollup/plugin-alias': 5.1.1(rollup@4.59.0) - '@rollup/plugin-commonjs': 28.0.9(rollup@4.59.0) - '@rollup/plugin-json': 6.1.0(rollup@4.59.0) - '@rollup/plugin-node-resolve': 16.0.3(rollup@4.59.0) - '@rollup/plugin-replace': 6.0.3(rollup@4.59.0) - '@rollup/pluginutils': 5.3.0(rollup@4.59.0) - citty: 0.1.6 - consola: 3.4.2 - defu: 6.1.4 - esbuild: 0.25.12 - fix-dts-default-cjs-exports: 1.0.1 - hookable: 5.5.3 - jiti: 2.6.1 - magic-string: 0.30.21 - mkdist: 2.4.1(sass@1.98.0)(typescript@5.9.3)(vue-tsc@3.2.5(typescript@5.9.3))(vue@3.5.30(typescript@5.9.3)) - mlly: 1.8.1 - pathe: 2.0.3 - pkg-types: 2.3.0 - pretty-bytes: 7.1.0 - rollup: 4.59.0 - rollup-plugin-dts: 6.4.0(rollup@4.59.0)(typescript@5.9.3) - scule: 1.3.0 - tinyglobby: 0.2.15 - untyped: 2.0.0 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - sass - - vue - - vue-sfc-transformer - - vue-tsc + '@quansync/fs': 1.0.0 + quansync: 1.0.0 uncrypto@0.1.3: {} @@ -20614,6 +20070,25 @@ snapshots: universalify@2.0.1: {} + unplugin-dts@1.0.0-beta.6(esbuild@0.27.4)(rolldown@1.0.0-rc.9)(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)): + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.59.0) + '@volar/typescript': 2.4.28 + compare-versions: 6.1.1 + debug: 4.4.3 + kolorist: 1.8.0 + local-pkg: 1.1.2 + magic-string: 0.30.21 + typescript: 5.9.3 + unplugin: 2.3.11 + optionalDependencies: + esbuild: 0.27.4 + rolldown: 1.0.0-rc.9 + rollup: 4.59.0 + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) + transitivePeerDependencies: + - supports-color + unplugin-element-plus@0.11.2(magicast@0.5.2): dependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) @@ -20629,6 +20104,29 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.3 + unplugin-vue@7.1.1(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(vue@3.5.30(typescript@5.9.3))(yaml@2.8.2): + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@vue/reactivity': 3.5.30 + obug: 2.1.1 + unplugin: 3.0.0 + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) + vue: 3.5.30(typescript@5.9.3) + transitivePeerDependencies: + - '@types/node' + - '@vitejs/devtools' + - esbuild + - jiti + - less + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + unplugin@2.3.11: dependencies: '@jridgewell/remapping': 2.3.5 @@ -20642,6 +20140,12 @@ snapshots: picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 + unrun@0.2.32(synckit@0.11.12): + dependencies: + rolldown: 1.0.0-rc.9 + optionalDependencies: + synckit: 0.11.12 + unstorage@1.17.4(db0@0.3.4)(ioredis@5.10.0): dependencies: anymatch: 3.1.3 @@ -20737,45 +20241,26 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-dev-rpc@1.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): + vite-dev-rpc@1.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)): dependencies: birpc: 2.9.0 - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) - vite-hot-client: 2.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) + vite-hot-client: 2.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) - vite-hot-client@2.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): + vite-hot-client@2.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)): dependencies: - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) - vite-plugin-compression@0.5.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-compression@0.5.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)): dependencies: chalk: 4.1.2 debug: 4.4.3 fs-extra: 10.1.0 - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) transitivePeerDependencies: - supports-color - vite-plugin-dts@4.5.4(@types/node@25.5.0)(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): - dependencies: - '@microsoft/api-extractor': 7.57.7(@types/node@25.5.0) - '@rollup/pluginutils': 5.3.0(rollup@4.59.0) - '@volar/typescript': 2.4.28 - '@vue/language-core': 2.2.0(typescript@5.9.3) - compare-versions: 6.1.1 - debug: 4.4.3 - kolorist: 1.8.0 - local-pkg: 1.1.2 - magic-string: 0.30.21 - typescript: 5.9.3 - optionalDependencies: - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - - vite-plugin-html@3.2.2(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-html@3.2.2(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)): dependencies: '@rollup/pluginutils': 4.2.1 colorette: 2.0.20 @@ -20789,9 +20274,9 @@ snapshots: html-minifier-terser: 6.1.0 node-html-parser: 5.4.2 pathe: 0.2.0 - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) - vite-plugin-inspect@11.3.3(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-inspect@11.3.3(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)): dependencies: ansis: 4.2.0 debug: 4.4.3 @@ -20801,8 +20286,8 @@ snapshots: perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) - vite-dev-rpc: 1.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) + vite-dev-rpc: 1.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) transitivePeerDependencies: - supports-color @@ -20813,32 +20298,32 @@ snapshots: rollup: 4.59.0 xe-utils: 3.9.1 - vite-plugin-pwa@1.2.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0): + vite-plugin-pwa@1.2.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0): dependencies: debug: 4.4.3 pretty-bytes: 6.1.1 tinyglobby: 0.2.15 - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) workbox-build: 7.4.0 workbox-window: 7.4.0 transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@8.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)): + vite-plugin-vue-devtools@8.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3)): dependencies: '@vue/devtools-core': 8.1.0(vue@3.5.30(typescript@5.9.3)) '@vue/devtools-kit': 8.1.0 '@vue/devtools-shared': 8.1.0 sirv: 3.0.2 - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-inspect: 11.3.3(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) - vite-plugin-vue-inspector: 5.4.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) + vite-plugin-inspect: 11.3.3(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) + vite-plugin-vue-inspector: 5.4.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) transitivePeerDependencies: - '@nuxt/kit' - supports-color - vue - vite-plugin-vue-inspector@5.4.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-vue-inspector@5.4.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)): dependencies: '@babel/core': 7.29.0 '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) @@ -20849,11 +20334,11 @@ snapshots: '@vue/compiler-dom': 3.5.30 kolorist: 1.8.0 magic-string: 0.30.21 - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) transitivePeerDependencies: - supports-color - vite@5.4.21(@types/node@25.5.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0): + vite@5.4.21(@types/node@25.5.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1): dependencies: esbuild: 0.21.5 postcss: 8.5.8 @@ -20865,9 +20350,9 @@ snapshots: lightningcss: 1.32.0 sass: 1.98.0 sass-embedded: 1.98.0 - terser: 5.46.0 + terser: 5.46.1 - vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2): + vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2): dependencies: '@oxc-project/runtime': 0.115.0 lightningcss: 1.32.0 @@ -20883,18 +20368,18 @@ snapshots: less: 4.6.4 sass: 1.98.0 sass-embedded: 1.98.0 - terser: 5.46.0 + terser: 5.46.1 yaml: 2.8.2 - vitepress-plugin-group-icons@1.7.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): + vitepress-plugin-group-icons@1.7.1(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)): dependencies: '@iconify-json/logos': 1.2.10 '@iconify-json/vscode-icons': 1.2.45 '@iconify/utils': 3.1.0 optionalDependencies: - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) - vitepress@1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.0)(typescript@5.9.3): + vitepress@1.6.4(@algolia/client-search@5.49.2)(@types/node@25.5.0)(async-validator@4.2.5)(axios@1.13.6)(change-case@5.4.4)(less@4.6.4)(lightningcss@1.32.0)(nprogress@0.2.0)(postcss@8.5.8)(qrcode@1.5.4)(sass-embedded@1.98.0)(sass@1.98.0)(search-insights@2.17.3)(sortablejs@1.15.7)(terser@5.46.1)(typescript@5.9.3): dependencies: '@docsearch/css': 3.8.2 '@docsearch/js': 3.8.2(@algolia/client-search@5.49.2)(search-insights@2.17.3) @@ -20903,7 +20388,7 @@ snapshots: '@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.21(@types/node@25.5.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0))(vue@3.5.30(typescript@5.9.3)) + '@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@25.5.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1))(vue@3.5.30(typescript@5.9.3)) '@vue/devtools-api': 7.7.9 '@vue/shared': 3.5.30 '@vueuse/core': 12.8.2(typescript@5.9.3) @@ -20912,7 +20397,7 @@ snapshots: mark.js: 8.11.1 minisearch: 7.2.0 shiki: 2.5.0 - vite: 5.4.21(@types/node@25.5.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0) + vite: 5.4.21(@types/node@25.5.0)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1) vue: 3.5.30(typescript@5.9.3) optionalDependencies: postcss: 8.5.8 @@ -20943,10 +20428,10 @@ snapshots: - typescript - universal-cookie - vitest@4.1.0(@types/node@25.5.0)(happy-dom@20.8.4)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)): + vitest@4.1.0(@types/node@25.5.0)(happy-dom@20.8.4)(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)): dependencies: '@vitest/expect': 4.1.0 - '@vitest/mocker': 4.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2)) + '@vitest/mocker': 4.1.0(vite@8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2)) '@vitest/pretty-format': 4.1.0 '@vitest/runner': 4.1.0 '@vitest/snapshot': 4.1.0 @@ -20963,7 +20448,7 @@ snapshots: tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.0(@types/node@25.5.0)(esbuild@0.27.4)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.46.1)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 25.5.0 From 885a0a9a00b2e5df0557648f44862bca49d1b659 Mon Sep 17 00:00:00 2001 From: Noah Lan <6995syu@163.com> Date: Tue, 17 Mar 2026 18:59:35 +0800 Subject: [PATCH 35/39] fix: build.mjs commands could not be executed correctly. (#7682) * fix: Fix issue where commands could not be executed correctly when they contained spaces * chore: oxfmt --- internal/node-utils/scripts/build.mjs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/node-utils/scripts/build.mjs b/internal/node-utils/scripts/build.mjs index c38b4914c..65a64e9c4 100644 --- a/internal/node-utils/scripts/build.mjs +++ b/internal/node-utils/scripts/build.mjs @@ -1,8 +1,7 @@ import { spawnSync } from 'node:child_process'; const pnpmCommand = - process.env.npm_execpath && - process.env.npm_execpath.endsWith('.cjs') + process.env.npm_execpath && process.env.npm_execpath.endsWith('.cjs') ? [process.execPath, process.env.npm_execpath] : ['pnpm']; @@ -22,7 +21,11 @@ const steps = [ for (const args of steps) { const [command, ...commandArgs] = pnpmCommand; - const result = spawnSync(command, [...commandArgs, ...args], { + let cmd = command; + if (cmd.includes(' ')) { + cmd = `"${command}"`; + } + const result = spawnSync(cmd, [...commandArgs, ...args], { shell: true, stdio: 'inherit', }); From b908076846a4021eedd6e824c6e30425932a20e2 Mon Sep 17 00:00:00 2001 From: afe1 <2279948211@qq.com> Date: Wed, 18 Mar 2026 20:18:25 +0800 Subject: [PATCH 36/39] =?UTF-8?q?fix:=20sass-embedded@1.98.0=20=E5=9C=A8?= =?UTF-8?q?=20macOS=2013=20=E4=BC=9A=E7=9B=B4=E6=8E=A5=E5=B4=A9=20(#7692)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: catelog * fix: system --- docs/src/en/guide/project/dir.md | 4 +- docs/src/en/guide/project/standard.md | 4 +- docs/src/guide/project/dir.md | 4 +- docs/src/guide/project/standard.md | 4 +- .../vite-config/src/config/application.ts | 45 +++++---- oxfmt.config.ts => oxfmt.config.mjs | 0 oxlint.config.ts => oxlint.config.mjs | 0 vben-admin.code-workspace | 92 +++++++++---------- 8 files changed, 75 insertions(+), 78 deletions(-) rename oxfmt.config.ts => oxfmt.config.mjs (100%) rename oxlint.config.ts => oxlint.config.mjs (100%) diff --git a/docs/src/en/guide/project/dir.md b/docs/src/en/guide/project/dir.md index 47b92cb2e..ededcff5f 100644 --- a/docs/src/en/guide/project/dir.md +++ b/docs/src/en/guide/project/dir.md @@ -26,8 +26,8 @@ The repository uses Monorepo management, and the project structure is as follows │ ├── node-utils # Node.js tools │ ├── tsconfig # Common tsconfig settings │ └── vite-config # Common Vite configuration -├── oxfmt.config.ts # Oxfmt config entry -├── oxlint.config.ts # Oxlint configuration file +├── oxfmt.config.mjs # Oxfmt config entry +├── oxlint.config.mjs # Oxlint configuration file ├── package.json # Project dependency configuration ├── packages # Project packages directory │ ├── @core # Core package diff --git a/docs/src/en/guide/project/standard.md b/docs/src/en/guide/project/standard.md index 1fa620091..4c8ace02a 100644 --- a/docs/src/en/guide/project/standard.md +++ b/docs/src/en/guide/project/standard.md @@ -49,7 +49,7 @@ pnpm oxfmt --check ### Configuration -The root Oxfmt entry file is `oxfmt.config.ts`, and its core configuration is located in `internal/lint-configs/oxfmt-config`. +The root Oxfmt entry file is `oxfmt.config.mjs`, and its core configuration is located in `internal/lint-configs/oxfmt-config`. ## Oxlint @@ -64,7 +64,7 @@ pnpm oxlint --fix ### Configuration -The core Oxlint configuration is located in `internal/lint-configs/oxlint-config`, and the root entry file is `oxlint.config.ts`. +The core Oxlint configuration is located in `internal/lint-configs/oxlint-config`, and the root entry file is `oxlint.config.mjs`. ## ESLint diff --git a/docs/src/guide/project/dir.md b/docs/src/guide/project/dir.md index 124e2e460..c8b3ea769 100644 --- a/docs/src/guide/project/dir.md +++ b/docs/src/guide/project/dir.md @@ -26,8 +26,8 @@ │ ├── node-utils # Node.js 工具 │ ├── tsconfig # 通用 tsconfig 配置 │ └── vite-config # 通用 Vite 配置 -├── oxfmt.config.ts # Oxfmt 配置入口 -├── oxlint.config.ts # Oxlint 配置文件 +├── oxfmt.config.mjs # Oxfmt 配置入口 +├── oxlint.config.mjs # Oxlint 配置文件 ├── package.json # 项目依赖配置 ├── packages # 项目包目录 │ ├── @core # 核心包 diff --git a/docs/src/guide/project/standard.md b/docs/src/guide/project/standard.md index 038d43d9c..0cb1d24fc 100644 --- a/docs/src/guide/project/standard.md +++ b/docs/src/guide/project/standard.md @@ -49,7 +49,7 @@ pnpm oxfmt --check ### 配置 -Oxfmt 的根目录入口文件为 `oxfmt.config.ts`,其核心配置位于 `internal/lint-configs/oxfmt-config` 目录下,可以根据项目需求进行修改。 +Oxfmt 的根目录入口文件为 `oxfmt.config.mjs`,其核心配置位于 `internal/lint-configs/oxfmt-config` 目录下,可以根据项目需求进行修改。 ## Oxlint @@ -64,7 +64,7 @@ pnpm oxlint --fix ### 配置 -Oxlint 的核心配置位于 `internal/lint-configs/oxlint-config` 目录下,根目录入口文件为 `oxlint.config.ts`。 +Oxlint 的核心配置位于 `internal/lint-configs/oxlint-config` 目录下,根目录入口文件为 `oxlint.config.mjs`。 ## ESLint diff --git a/internal/vite-config/src/config/application.ts b/internal/vite-config/src/config/application.ts index f8c226462..f7f2d87ba 100644 --- a/internal/vite-config/src/config/application.ts +++ b/internal/vite-config/src/config/application.ts @@ -1,18 +1,18 @@ -import type { CSSOptions, UserConfig } from 'vite'; +import type { CSSOptions, UserConfig } from "vite"; -import type { DefineApplicationOptions } from '../typing'; +import type { DefineApplicationOptions } from "../typing"; -import path, { relative } from 'node:path'; +import path, { relative } from "node:path"; -import { findMonorepoRoot } from '@vben/node-utils'; +import { findMonorepoRoot } from "@vben/node-utils"; -import { NodePackageImporter } from 'sass-embedded'; -import { defineConfig, loadEnv, mergeConfig } from 'vite'; +import { NodePackageImporter } from "sass"; +import { defineConfig, loadEnv, mergeConfig } from "vite"; -import { defaultImportmapOptions, getDefaultPwaOptions } from '../options'; -import { loadApplicationPlugins } from '../plugins'; -import { loadAndConvertEnv } from '../utils/env'; -import { getCommonConfig } from './common'; +import { defaultImportmapOptions, getDefaultPwaOptions } from "../options"; +import { loadApplicationPlugins } from "../plugins"; +import { loadAndConvertEnv } from "../utils/env"; +import { getCommonConfig } from "./common"; function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { return defineConfig(async (config) => { @@ -21,14 +21,14 @@ function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { const { command, mode } = config; const { application = {}, vite = {} } = options || {}; const root = process.cwd(); - const isBuild = command === 'build'; + const isBuild = command === "build"; const env = loadEnv(mode, root); const plugins = await loadApplicationPlugins({ archiver: true, archiverPluginOptions: {}, compress: false, - compressTypes: ['brotli', 'gzip'], + compressTypes: ["brotli", "gzip"], devtools: true, env, extraAppConfig: true, @@ -44,7 +44,7 @@ function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { nitroMockOptions: {}, print: !isBuild, printInfoMap: { - 'Vben Admin Docs': 'https://doc.vben.pro', + "Vben Admin Docs": "https://doc.vben.pro", }, pwa: true, pwaOptions: getDefaultPwaOptions(appTitle), @@ -60,9 +60,9 @@ function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { build: { rolldownOptions: { output: { - assetFileNames: '[ext]/[name]-[hash].[ext]', - chunkFileNames: 'js/[name]-[hash].js', - entryFileNames: 'jse/index-[name]-[hash].js', + assetFileNames: "[ext]/[name]-[hash].[ext]", + chunkFileNames: "js/[name]-[hash].js", + entryFileNames: "jse/index-[name]-[hash].js", minify: isBuild ? { compress: { @@ -72,7 +72,7 @@ function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { : false, }, }, - target: 'es2015', + target: "es2015", }, css: createCssOptions(injectGlobalScss), plugins, @@ -82,18 +82,15 @@ function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { warmup: { // 预热文件 clientFiles: [ - './index.html', - './src/bootstrap.ts', - './src/{views,layouts,router,store,api,adapter}/*', + "./index.html", + "./src/bootstrap.ts", + "./src/{views,layouts,router,store,api,adapter}/*", ], }, }, }; - const mergedCommonConfig = mergeConfig( - await getCommonConfig(), - applicationConfig, - ); + const mergedCommonConfig = mergeConfig(await getCommonConfig(), applicationConfig); return mergeConfig(mergedCommonConfig, vite); }); } diff --git a/oxfmt.config.ts b/oxfmt.config.mjs similarity index 100% rename from oxfmt.config.ts rename to oxfmt.config.mjs diff --git a/oxlint.config.ts b/oxlint.config.mjs similarity index 100% rename from oxlint.config.ts rename to oxlint.config.mjs diff --git a/vben-admin.code-workspace b/vben-admin.code-workspace index 419681056..e60de2e96 100644 --- a/vben-admin.code-workspace +++ b/vben-admin.code-workspace @@ -2,179 +2,179 @@ "folders": [ { "name": "@vben/backend-mock", - "path": "apps/backend-mock" + "path": "apps/backend-mock", }, { "name": "@vben/web-antd", - "path": "apps/web-antd" + "path": "apps/web-antd", }, { "name": "@vben/web-antdv-next", - "path": "apps/web-antdv-next" + "path": "apps/web-antdv-next", }, { "name": "@vben/web-ele", - "path": "apps/web-ele" + "path": "apps/web-ele", }, { "name": "@vben/web-naive", - "path": "apps/web-naive" + "path": "apps/web-naive", }, { "name": "@vben/web-tdesign", - "path": "apps/web-tdesign" + "path": "apps/web-tdesign", }, { "name": "@vben/docs", - "path": "docs" + "path": "docs", }, { "name": "@vben/commitlint-config", - "path": "internal/lint-configs/commitlint-config" + "path": "internal/lint-configs/commitlint-config", }, { "name": "@vben/eslint-config", - "path": "internal/lint-configs/eslint-config" + "path": "internal/lint-configs/eslint-config", }, { "name": "@vben/oxfmt-config", - "path": "internal/lint-configs/oxfmt-config" + "path": "internal/lint-configs/oxfmt-config", }, { "name": "@vben/oxlint-config", - "path": "internal/lint-configs/oxlint-config" + "path": "internal/lint-configs/oxlint-config", }, { "name": "@vben/stylelint-config", - "path": "internal/lint-configs/stylelint-config" + "path": "internal/lint-configs/stylelint-config", }, { "name": "@vben/node-utils", - "path": "internal/node-utils" + "path": "internal/node-utils", }, { "name": "@vben/tsconfig", - "path": "internal/tsconfig" + "path": "internal/tsconfig", }, { "name": "@vben/vite-config", - "path": "internal/vite-config" + "path": "internal/vite-config", }, { "name": "@vben-core/design", - "path": "packages/@core/base/design" + "path": "packages/@core/base/design", }, { "name": "@vben-core/icons", - "path": "packages/@core/base/icons" + "path": "packages/@core/base/icons", }, { "name": "@vben-core/shared", - "path": "packages/@core/base/shared" + "path": "packages/@core/base/shared", }, { "name": "@vben-core/typings", - "path": "packages/@core/base/typings" + "path": "packages/@core/base/typings", }, { "name": "@vben-core/composables", - "path": "packages/@core/composables" + "path": "packages/@core/composables", }, { "name": "@vben-core/preferences", - "path": "packages/@core/preferences" + "path": "packages/@core/preferences", }, { "name": "@vben-core/form-ui", - "path": "packages/@core/ui-kit/form-ui" + "path": "packages/@core/ui-kit/form-ui", }, { "name": "@vben-core/layout-ui", - "path": "packages/@core/ui-kit/layout-ui" + "path": "packages/@core/ui-kit/layout-ui", }, { "name": "@vben-core/menu-ui", - "path": "packages/@core/ui-kit/menu-ui" + "path": "packages/@core/ui-kit/menu-ui", }, { "name": "@vben-core/popup-ui", - "path": "packages/@core/ui-kit/popup-ui" + "path": "packages/@core/ui-kit/popup-ui", }, { "name": "@vben-core/shadcn-ui", - "path": "packages/@core/ui-kit/shadcn-ui" + "path": "packages/@core/ui-kit/shadcn-ui", }, { "name": "@vben-core/tabs-ui", - "path": "packages/@core/ui-kit/tabs-ui" + "path": "packages/@core/ui-kit/tabs-ui", }, { "name": "@vben/constants", - "path": "packages/constants" + "path": "packages/constants", }, { "name": "@vben/access", - "path": "packages/effects/access" + "path": "packages/effects/access", }, { "name": "@vben/common-ui", - "path": "packages/effects/common-ui" + "path": "packages/effects/common-ui", }, { "name": "@vben/hooks", - "path": "packages/effects/hooks" + "path": "packages/effects/hooks", }, { "name": "@vben/layouts", - "path": "packages/effects/layouts" + "path": "packages/effects/layouts", }, { "name": "@vben/plugins", - "path": "packages/effects/plugins" + "path": "packages/effects/plugins", }, { "name": "@vben/request", - "path": "packages/effects/request" + "path": "packages/effects/request", }, { "name": "@vben/icons", - "path": "packages/icons" + "path": "packages/icons", }, { "name": "@vben/locales", - "path": "packages/locales" + "path": "packages/locales", }, { "name": "@vben/preferences", - "path": "packages/preferences" + "path": "packages/preferences", }, { "name": "@vben/stores", - "path": "packages/stores" + "path": "packages/stores", }, { "name": "@vben/styles", - "path": "packages/styles" + "path": "packages/styles", }, { "name": "@vben/types", - "path": "packages/types" + "path": "packages/types", }, { "name": "@vben/utils", - "path": "packages/utils" + "path": "packages/utils", }, { "name": "@vben/playground", - "path": "playground" + "path": "playground", }, { "name": "@vben/turbo-run", - "path": "scripts/turbo-run" + "path": "scripts/turbo-run", }, { "name": "@vben/vsh", - "path": "scripts/vsh" - } - ] + "path": "scripts/vsh", + }, + ], } From bed97a84d8232b72739e491454275e729c17854a Mon Sep 17 00:00:00 2001 From: Jin Mao Date: Thu, 19 Mar 2026 09:02:11 +0800 Subject: [PATCH 37/39] =?UTF-8?q?revert:=20"fix:=20sass-embedded@1.98.0=20?= =?UTF-8?q?=E5=9C=A8=20macOS=2013=20=E4=BC=9A=E7=9B=B4=E6=8E=A5=E5=B4=A9?= =?UTF-8?q?=20(#7692)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/en/guide/project/dir.md | 4 +- docs/src/en/guide/project/standard.md | 4 +- docs/src/guide/project/dir.md | 4 +- docs/src/guide/project/standard.md | 4 +- .../vite-config/src/config/application.ts | 45 ++++----- oxfmt.config.mjs => oxfmt.config.ts | 0 oxlint.config.mjs => oxlint.config.ts | 0 vben-admin.code-workspace | 92 +++++++++---------- 8 files changed, 78 insertions(+), 75 deletions(-) rename oxfmt.config.mjs => oxfmt.config.ts (100%) rename oxlint.config.mjs => oxlint.config.ts (100%) diff --git a/docs/src/en/guide/project/dir.md b/docs/src/en/guide/project/dir.md index ededcff5f..47b92cb2e 100644 --- a/docs/src/en/guide/project/dir.md +++ b/docs/src/en/guide/project/dir.md @@ -26,8 +26,8 @@ The repository uses Monorepo management, and the project structure is as follows │ ├── node-utils # Node.js tools │ ├── tsconfig # Common tsconfig settings │ └── vite-config # Common Vite configuration -├── oxfmt.config.mjs # Oxfmt config entry -├── oxlint.config.mjs # Oxlint configuration file +├── oxfmt.config.ts # Oxfmt config entry +├── oxlint.config.ts # Oxlint configuration file ├── package.json # Project dependency configuration ├── packages # Project packages directory │ ├── @core # Core package diff --git a/docs/src/en/guide/project/standard.md b/docs/src/en/guide/project/standard.md index 4c8ace02a..1fa620091 100644 --- a/docs/src/en/guide/project/standard.md +++ b/docs/src/en/guide/project/standard.md @@ -49,7 +49,7 @@ pnpm oxfmt --check ### Configuration -The root Oxfmt entry file is `oxfmt.config.mjs`, and its core configuration is located in `internal/lint-configs/oxfmt-config`. +The root Oxfmt entry file is `oxfmt.config.ts`, and its core configuration is located in `internal/lint-configs/oxfmt-config`. ## Oxlint @@ -64,7 +64,7 @@ pnpm oxlint --fix ### Configuration -The core Oxlint configuration is located in `internal/lint-configs/oxlint-config`, and the root entry file is `oxlint.config.mjs`. +The core Oxlint configuration is located in `internal/lint-configs/oxlint-config`, and the root entry file is `oxlint.config.ts`. ## ESLint diff --git a/docs/src/guide/project/dir.md b/docs/src/guide/project/dir.md index c8b3ea769..124e2e460 100644 --- a/docs/src/guide/project/dir.md +++ b/docs/src/guide/project/dir.md @@ -26,8 +26,8 @@ │ ├── node-utils # Node.js 工具 │ ├── tsconfig # 通用 tsconfig 配置 │ └── vite-config # 通用 Vite 配置 -├── oxfmt.config.mjs # Oxfmt 配置入口 -├── oxlint.config.mjs # Oxlint 配置文件 +├── oxfmt.config.ts # Oxfmt 配置入口 +├── oxlint.config.ts # Oxlint 配置文件 ├── package.json # 项目依赖配置 ├── packages # 项目包目录 │ ├── @core # 核心包 diff --git a/docs/src/guide/project/standard.md b/docs/src/guide/project/standard.md index 0cb1d24fc..038d43d9c 100644 --- a/docs/src/guide/project/standard.md +++ b/docs/src/guide/project/standard.md @@ -49,7 +49,7 @@ pnpm oxfmt --check ### 配置 -Oxfmt 的根目录入口文件为 `oxfmt.config.mjs`,其核心配置位于 `internal/lint-configs/oxfmt-config` 目录下,可以根据项目需求进行修改。 +Oxfmt 的根目录入口文件为 `oxfmt.config.ts`,其核心配置位于 `internal/lint-configs/oxfmt-config` 目录下,可以根据项目需求进行修改。 ## Oxlint @@ -64,7 +64,7 @@ pnpm oxlint --fix ### 配置 -Oxlint 的核心配置位于 `internal/lint-configs/oxlint-config` 目录下,根目录入口文件为 `oxlint.config.mjs`。 +Oxlint 的核心配置位于 `internal/lint-configs/oxlint-config` 目录下,根目录入口文件为 `oxlint.config.ts`。 ## ESLint diff --git a/internal/vite-config/src/config/application.ts b/internal/vite-config/src/config/application.ts index f7f2d87ba..f8c226462 100644 --- a/internal/vite-config/src/config/application.ts +++ b/internal/vite-config/src/config/application.ts @@ -1,18 +1,18 @@ -import type { CSSOptions, UserConfig } from "vite"; +import type { CSSOptions, UserConfig } from 'vite'; -import type { DefineApplicationOptions } from "../typing"; +import type { DefineApplicationOptions } from '../typing'; -import path, { relative } from "node:path"; +import path, { relative } from 'node:path'; -import { findMonorepoRoot } from "@vben/node-utils"; +import { findMonorepoRoot } from '@vben/node-utils'; -import { NodePackageImporter } from "sass"; -import { defineConfig, loadEnv, mergeConfig } from "vite"; +import { NodePackageImporter } from 'sass-embedded'; +import { defineConfig, loadEnv, mergeConfig } from 'vite'; -import { defaultImportmapOptions, getDefaultPwaOptions } from "../options"; -import { loadApplicationPlugins } from "../plugins"; -import { loadAndConvertEnv } from "../utils/env"; -import { getCommonConfig } from "./common"; +import { defaultImportmapOptions, getDefaultPwaOptions } from '../options'; +import { loadApplicationPlugins } from '../plugins'; +import { loadAndConvertEnv } from '../utils/env'; +import { getCommonConfig } from './common'; function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { return defineConfig(async (config) => { @@ -21,14 +21,14 @@ function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { const { command, mode } = config; const { application = {}, vite = {} } = options || {}; const root = process.cwd(); - const isBuild = command === "build"; + const isBuild = command === 'build'; const env = loadEnv(mode, root); const plugins = await loadApplicationPlugins({ archiver: true, archiverPluginOptions: {}, compress: false, - compressTypes: ["brotli", "gzip"], + compressTypes: ['brotli', 'gzip'], devtools: true, env, extraAppConfig: true, @@ -44,7 +44,7 @@ function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { nitroMockOptions: {}, print: !isBuild, printInfoMap: { - "Vben Admin Docs": "https://doc.vben.pro", + 'Vben Admin Docs': 'https://doc.vben.pro', }, pwa: true, pwaOptions: getDefaultPwaOptions(appTitle), @@ -60,9 +60,9 @@ function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { build: { rolldownOptions: { output: { - assetFileNames: "[ext]/[name]-[hash].[ext]", - chunkFileNames: "js/[name]-[hash].js", - entryFileNames: "jse/index-[name]-[hash].js", + assetFileNames: '[ext]/[name]-[hash].[ext]', + chunkFileNames: 'js/[name]-[hash].js', + entryFileNames: 'jse/index-[name]-[hash].js', minify: isBuild ? { compress: { @@ -72,7 +72,7 @@ function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { : false, }, }, - target: "es2015", + target: 'es2015', }, css: createCssOptions(injectGlobalScss), plugins, @@ -82,15 +82,18 @@ function defineApplicationConfig(userConfigPromise?: DefineApplicationOptions) { warmup: { // 预热文件 clientFiles: [ - "./index.html", - "./src/bootstrap.ts", - "./src/{views,layouts,router,store,api,adapter}/*", + './index.html', + './src/bootstrap.ts', + './src/{views,layouts,router,store,api,adapter}/*', ], }, }, }; - const mergedCommonConfig = mergeConfig(await getCommonConfig(), applicationConfig); + const mergedCommonConfig = mergeConfig( + await getCommonConfig(), + applicationConfig, + ); return mergeConfig(mergedCommonConfig, vite); }); } diff --git a/oxfmt.config.mjs b/oxfmt.config.ts similarity index 100% rename from oxfmt.config.mjs rename to oxfmt.config.ts diff --git a/oxlint.config.mjs b/oxlint.config.ts similarity index 100% rename from oxlint.config.mjs rename to oxlint.config.ts diff --git a/vben-admin.code-workspace b/vben-admin.code-workspace index e60de2e96..419681056 100644 --- a/vben-admin.code-workspace +++ b/vben-admin.code-workspace @@ -2,179 +2,179 @@ "folders": [ { "name": "@vben/backend-mock", - "path": "apps/backend-mock", + "path": "apps/backend-mock" }, { "name": "@vben/web-antd", - "path": "apps/web-antd", + "path": "apps/web-antd" }, { "name": "@vben/web-antdv-next", - "path": "apps/web-antdv-next", + "path": "apps/web-antdv-next" }, { "name": "@vben/web-ele", - "path": "apps/web-ele", + "path": "apps/web-ele" }, { "name": "@vben/web-naive", - "path": "apps/web-naive", + "path": "apps/web-naive" }, { "name": "@vben/web-tdesign", - "path": "apps/web-tdesign", + "path": "apps/web-tdesign" }, { "name": "@vben/docs", - "path": "docs", + "path": "docs" }, { "name": "@vben/commitlint-config", - "path": "internal/lint-configs/commitlint-config", + "path": "internal/lint-configs/commitlint-config" }, { "name": "@vben/eslint-config", - "path": "internal/lint-configs/eslint-config", + "path": "internal/lint-configs/eslint-config" }, { "name": "@vben/oxfmt-config", - "path": "internal/lint-configs/oxfmt-config", + "path": "internal/lint-configs/oxfmt-config" }, { "name": "@vben/oxlint-config", - "path": "internal/lint-configs/oxlint-config", + "path": "internal/lint-configs/oxlint-config" }, { "name": "@vben/stylelint-config", - "path": "internal/lint-configs/stylelint-config", + "path": "internal/lint-configs/stylelint-config" }, { "name": "@vben/node-utils", - "path": "internal/node-utils", + "path": "internal/node-utils" }, { "name": "@vben/tsconfig", - "path": "internal/tsconfig", + "path": "internal/tsconfig" }, { "name": "@vben/vite-config", - "path": "internal/vite-config", + "path": "internal/vite-config" }, { "name": "@vben-core/design", - "path": "packages/@core/base/design", + "path": "packages/@core/base/design" }, { "name": "@vben-core/icons", - "path": "packages/@core/base/icons", + "path": "packages/@core/base/icons" }, { "name": "@vben-core/shared", - "path": "packages/@core/base/shared", + "path": "packages/@core/base/shared" }, { "name": "@vben-core/typings", - "path": "packages/@core/base/typings", + "path": "packages/@core/base/typings" }, { "name": "@vben-core/composables", - "path": "packages/@core/composables", + "path": "packages/@core/composables" }, { "name": "@vben-core/preferences", - "path": "packages/@core/preferences", + "path": "packages/@core/preferences" }, { "name": "@vben-core/form-ui", - "path": "packages/@core/ui-kit/form-ui", + "path": "packages/@core/ui-kit/form-ui" }, { "name": "@vben-core/layout-ui", - "path": "packages/@core/ui-kit/layout-ui", + "path": "packages/@core/ui-kit/layout-ui" }, { "name": "@vben-core/menu-ui", - "path": "packages/@core/ui-kit/menu-ui", + "path": "packages/@core/ui-kit/menu-ui" }, { "name": "@vben-core/popup-ui", - "path": "packages/@core/ui-kit/popup-ui", + "path": "packages/@core/ui-kit/popup-ui" }, { "name": "@vben-core/shadcn-ui", - "path": "packages/@core/ui-kit/shadcn-ui", + "path": "packages/@core/ui-kit/shadcn-ui" }, { "name": "@vben-core/tabs-ui", - "path": "packages/@core/ui-kit/tabs-ui", + "path": "packages/@core/ui-kit/tabs-ui" }, { "name": "@vben/constants", - "path": "packages/constants", + "path": "packages/constants" }, { "name": "@vben/access", - "path": "packages/effects/access", + "path": "packages/effects/access" }, { "name": "@vben/common-ui", - "path": "packages/effects/common-ui", + "path": "packages/effects/common-ui" }, { "name": "@vben/hooks", - "path": "packages/effects/hooks", + "path": "packages/effects/hooks" }, { "name": "@vben/layouts", - "path": "packages/effects/layouts", + "path": "packages/effects/layouts" }, { "name": "@vben/plugins", - "path": "packages/effects/plugins", + "path": "packages/effects/plugins" }, { "name": "@vben/request", - "path": "packages/effects/request", + "path": "packages/effects/request" }, { "name": "@vben/icons", - "path": "packages/icons", + "path": "packages/icons" }, { "name": "@vben/locales", - "path": "packages/locales", + "path": "packages/locales" }, { "name": "@vben/preferences", - "path": "packages/preferences", + "path": "packages/preferences" }, { "name": "@vben/stores", - "path": "packages/stores", + "path": "packages/stores" }, { "name": "@vben/styles", - "path": "packages/styles", + "path": "packages/styles" }, { "name": "@vben/types", - "path": "packages/types", + "path": "packages/types" }, { "name": "@vben/utils", - "path": "packages/utils", + "path": "packages/utils" }, { "name": "@vben/playground", - "path": "playground", + "path": "playground" }, { "name": "@vben/turbo-run", - "path": "scripts/turbo-run", + "path": "scripts/turbo-run" }, { "name": "@vben/vsh", - "path": "scripts/vsh", - }, - ], + "path": "scripts/vsh" + } + ] } From d43a3729c32e7c002529488c8466a642d3c47b9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <126167116+caodachen@users.noreply.github.com> Date: Thu, 19 Mar 2026 09:03:40 +0800 Subject: [PATCH 38/39] fix: playground(drawer) comment (#7695) --- playground/src/views/examples/drawer/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playground/src/views/examples/drawer/index.vue b/playground/src/views/examples/drawer/index.vue index 9804b19f1..4aaa7798a 100644 --- a/playground/src/views/examples/drawer/index.vue +++ b/playground/src/views/examples/drawer/index.vue @@ -60,7 +60,7 @@ function openInContentDrawer(placement: DrawerPlacement = 'right') { } function openMaxContentDrawer() { - // 这里只是用来演示方便。实际上自己使用的时候可以直接将这些配置卸载Drawer的属性里 + // 这里只是用来演示方便。实际上自己使用的时候可以直接将这些配置写在Drawer的属性里 inContentDrawerApi.setState({ class: 'w-full', placement: 'right' }).open(); } From 0c300d040ce5a585577bfeaf5c2fc9323aa1a21a Mon Sep 17 00:00:00 2001 From: xingyu Date: Thu, 19 Mar 2026 15:51:09 +0800 Subject: [PATCH 39/39] fix: tailwindcss config (#7693) * chore: update deps * fix: tailwindcss config * fix: lint * fix: lint * chore: update deps --- .vscode/settings.json | 2 +- docs/package.json | 1 + docs/src/en/guide/project/tailwindcss.md | 6 +- docs/src/guide/project/tailwindcss.md | 6 +- .../eslint-config/src/configs/node.ts | 1 + .../oxlint-config/src/configs/tailwindcss.ts | 2 +- internal/tailwind-config/package.json | 38 + internal/tailwind-config/src/index.ts | 1 + internal/tailwind-config/src/theme.css | 569 +++++++ .../src/plugins/tailwind-reference.ts | 2 +- package.json | 3 +- packages/@core/base/design/package.json | 5 +- packages/@core/base/design/src/css/global.css | 570 +------ .../@core/base/design/src/css/nprogress.css | 2 +- .../components/normal-menu/normal-menu.vue | 2 +- .../ui-kit/shadcn-ui/src/assets/index.css | 1 + .../breadcrumb/breadcrumb-background.vue | 2 +- .../src/components/tabs-chrome/tabs.vue | 2 +- .../src/components/cropper/cropper.vue | 2 +- .../src/widgets/theme-toggle/theme-button.vue | 2 +- .../effects/plugins/src/vxe-table/style.css | 2 +- playground/src/views/examples/form/basic.vue | 2 +- pnpm-lock.yaml | 1313 ++++++++--------- pnpm-workspace.yaml | 38 +- scripts/vsh/src/check-dep/index.ts | 1 + vben-admin.code-workspace | 4 + 26 files changed, 1258 insertions(+), 1321 deletions(-) create mode 100644 internal/tailwind-config/package.json create mode 100644 internal/tailwind-config/src/index.ts create mode 100644 internal/tailwind-config/src/theme.css create mode 100644 packages/@core/ui-kit/shadcn-ui/src/assets/index.css diff --git a/.vscode/settings.json b/.vscode/settings.json index a35e6f0c7..44a3a8ddc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,5 @@ { - "tailwindCSS.experimental.configFile": "packages/@core/base/design/src/css/global.css", + "tailwindCSS.experimental.configFile": "internal/tailwind-config/src/theme.css", "tailwindCSS.lint.suggestCanonicalClasses": "ignore", // workbench "workbench.list.smoothScrolling": true, diff --git a/docs/package.json b/docs/package.json index bee65c99a..c418d797f 100644 --- a/docs/package.json +++ b/docs/package.json @@ -28,6 +28,7 @@ "devDependencies": { "@nolebase/vitepress-plugin-git-changelog": "catalog:", "@tailwindcss/vite": "catalog:", + "@vben/tailwind-config": "workspace:*", "@vben/vite-config": "workspace:*", "@vite-pwa/vitepress": "catalog:", "vitepress": "catalog:", diff --git a/docs/src/en/guide/project/tailwindcss.md b/docs/src/en/guide/project/tailwindcss.md index 98e27ba7c..131fdcbb7 100644 --- a/docs/src/en/guide/project/tailwindcss.md +++ b/docs/src/en/guide/project/tailwindcss.md @@ -6,7 +6,7 @@ The project no longer maintains Tailwind through `tailwind.config.*` files. Theme definitions and scan scope are now managed through CSS and the shared Vite configuration. -- Theme entry: `packages/@core/base/design/src/css/global.css` +- Theme entry: `internal/tailwind-config/src/theme.css` - Vite integration: `internal/vite-config` In `global.css`, you will see the Tailwind CSS v4 directives currently used by the project, such as: @@ -21,7 +21,7 @@ In `global.css`, you will see the Tailwind CSS v4 directives currently used by t The project does not decide whether Tailwind CSS is enabled based on whether a package contains `tailwind.config.mjs`. -Apps and packages share `@vben/vite-config`, which integrates `@tailwindcss/vite`. The Tailwind scan scope is managed centrally in `packages/@core/base/design/src/css/global.css`. +Apps and packages share `@vben/vite-config`, which integrates `@tailwindcss/vite`. The Tailwind scan scope is managed centrally in `@vben/tailwind-config`, backed by `internal/tailwind-config/src/theme.css`. ::: tip Notes on using Tailwind CSS in packages @@ -35,4 +35,4 @@ The project applies a shared handling layer for `@apply` inside Vue single-file - `internal/vite-config/src/plugins/tailwind-reference.ts` -When component styles use `@apply`, the required `@reference` is injected automatically in most cases. +When component styles use `@apply`, `@reference "@vben/tailwind-config/theme"` is injected automatically in most cases. diff --git a/docs/src/guide/project/tailwindcss.md b/docs/src/guide/project/tailwindcss.md index c0f6e7edd..c51bd75a5 100644 --- a/docs/src/guide/project/tailwindcss.md +++ b/docs/src/guide/project/tailwindcss.md @@ -6,7 +6,7 @@ 项目当前不再通过 `tailwind.config.*` 文件维护 Tailwind 配置,主题与扫描范围都统一放在 CSS 与共享 Vite 配置中。 -- 主题入口:`packages/@core/base/design/src/css/global.css` +- 主题入口:`internal/tailwind-config/src/theme.css` - Vite 集成:`internal/vite-config` 在 `global.css` 中你会看到当前项目使用的 Tailwind CSS v4 指令,例如: @@ -21,7 +21,7 @@ 当前项目不会根据某个包下是否存在 `tailwind.config.mjs` 来决定是否启用 Tailwind CSS。 -应用和包统一复用 `@vben/vite-config`,并由该配置接入 `@tailwindcss/vite`。Tailwind 的扫描范围则统一在 `packages/@core/base/design/src/css/global.css` 中维护。 +应用和包统一复用 `@vben/vite-config`,并由该配置接入 `@tailwindcss/vite`。Tailwind 的扫描范围则统一在 `@vben/tailwind-config` 对应的 `internal/tailwind-config/src/theme.css` 中维护。 ::: tip 包使用 Tailwind CSS 的说明 @@ -35,4 +35,4 @@ - `internal/vite-config/src/plugins/tailwind-reference.ts` -当组件样式中使用 `@apply` 时,会自动注入对应的 `@reference`,一般不需要手动补充。 +当组件样式中使用 `@apply` 时,会自动注入 `@reference "@vben/tailwind-config/theme"`,一般不需要手动补充。 diff --git a/internal/lint-configs/eslint-config/src/configs/node.ts b/internal/lint-configs/eslint-config/src/configs/node.ts index 721bd5a0a..95d998673 100644 --- a/internal/lint-configs/eslint-config/src/configs/node.ts +++ b/internal/lint-configs/eslint-config/src/configs/node.ts @@ -18,6 +18,7 @@ export async function node(): Promise { { allowModules: [ 'tsdown', + 'unplugin-vue', '@vben/vite-config', 'vitest', 'vite', diff --git a/internal/lint-configs/oxlint-config/src/configs/tailwindcss.ts b/internal/lint-configs/oxlint-config/src/configs/tailwindcss.ts index c24e5c865..5e7bff5ab 100644 --- a/internal/lint-configs/oxlint-config/src/configs/tailwindcss.ts +++ b/internal/lint-configs/oxlint-config/src/configs/tailwindcss.ts @@ -14,7 +14,7 @@ const selectors = [ ]; const settings = { - entryPoint: 'packages/@core/base/design/src/css/global.css', + entryPoint: 'internal/tailwind-config/src/theme.css', selectors, }; diff --git a/internal/tailwind-config/package.json b/internal/tailwind-config/package.json new file mode 100644 index 000000000..6701907c7 --- /dev/null +++ b/internal/tailwind-config/package.json @@ -0,0 +1,38 @@ +{ + "name": "@vben/tailwind-config", + "version": "5.7.0", + "private": true, + "homepage": "https://github.com/vbenjs/vue-vben-admin", + "bugs": "https://github.com/vbenjs/vue-vben-admin/issues", + "repository": { + "type": "git", + "url": "git+https://github.com/vbenjs/vue-vben-admin.git", + "directory": "internal/tailwind-config" + }, + "license": "MIT", + "type": "module", + "files": [ + "src" + ], + "sideEffects": [ + "**/*.css" + ], + "main": "./src/index.ts", + "module": "./src/index.ts", + "types": "./src/index.ts", + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./src/index.ts" + }, + "./theme": { + "default": "./src/theme.css" + } + }, + "dependencies": { + "@iconify/tailwind4": "catalog:", + "@tailwindcss/typography": "catalog:", + "tailwindcss": "catalog:", + "tw-animate-css": "catalog:" + } +} diff --git a/internal/tailwind-config/src/index.ts b/internal/tailwind-config/src/index.ts new file mode 100644 index 000000000..5b1d5b4cf --- /dev/null +++ b/internal/tailwind-config/src/index.ts @@ -0,0 +1 @@ +import './theme.css'; diff --git a/internal/tailwind-config/src/theme.css b/internal/tailwind-config/src/theme.css new file mode 100644 index 000000000..c212dc66e --- /dev/null +++ b/internal/tailwind-config/src/theme.css @@ -0,0 +1,569 @@ +@import 'tailwindcss'; +@import 'tw-animate-css'; + +@plugin '@tailwindcss/typography'; +@plugin '@iconify/tailwind4'; + +/* Monorepo source detection: scan all packages and apps for utility classes */ +@source '../../../packages/'; +@source '../../../apps/'; +@source '../../../docs/'; +@source '../../../playground/'; + +/* Dark mode uses .dark class selector, not prefers-color-scheme */ +@custom-variant dark (&:is(.dark *)); + +/* Explicitly pin Tailwind v4 dynamic spacing for classes like w-150/h-55. */ +@theme { + --spacing: 0.25rem; +} + +@theme inline { + /* Font */ + --font-sans: var(--font-family); + + /* Border Radius */ + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + + /* Box Shadow */ + --shadow-float: + 0 6px 16px 0 rgb(0 0 0 / 8%), 0 3px 6px -4px rgb(0 0 0 / 12%), + 0 9px 28px 8px rgb(0 0 0 / 5%); + + /* Animations */ + --animate-accordion-down: accordion-down 0.2s ease-out; + --animate-accordion-up: accordion-up 0.2s ease-out; + --animate-collapsible-down: collapsible-down 0.2s ease-in-out; + --animate-collapsible-up: collapsible-up 0.2s ease-in-out; + --animate-float: float 5s linear 0ms infinite; + + /* ===== Semantic Colors (shadcn-ui) ===== */ + + --color-background: hsl(var(--background)); + --color-background-deep: hsl(var(--background-deep)); + --color-foreground: hsl(var(--foreground)); + --color-card: hsl(var(--card)); + --color-card-foreground: hsl(var(--card-foreground)); + --color-popover: hsl(var(--popover)); + --color-popover-foreground: hsl(var(--popover-foreground)); + --color-muted: hsl(var(--muted)); + --color-muted-foreground: hsl(var(--muted-foreground)); + --color-accent: hsl(var(--accent)); + --color-accent-foreground: hsl(var(--accent-foreground)); + --color-accent-hover: hsl(var(--accent-hover)); + --color-accent-lighter: hsl(var(--accent-lighter)); + --color-border: hsl(var(--border)); + --color-input: hsl(var(--input)); + --color-input-background: hsl(var(--input-background)); + --color-ring: hsl(var(--ring)); + --color-secondary: hsl(var(--secondary)); + --color-secondary-desc: hsl(var(--secondary-desc)); + --color-secondary-foreground: hsl(var(--secondary-foreground)); + + /* ===== Custom Semantic Colors ===== */ + + --color-header: hsl(var(--header)); + --color-heavy: hsl(var(--heavy)); + --color-heavy-foreground: hsl(var(--heavy-foreground)); + --color-main: hsl(var(--main)); + --color-overlay: hsl(var(--overlay)); + --color-overlay-content: hsl(var(--overlay-content)); + --color-sidebar: hsl(var(--sidebar)); + --color-sidebar-deep: hsl(var(--sidebar-deep)); + + /* ===== Primary Palette ===== */ + + --color-primary: hsl(var(--primary)); + --color-primary-foreground: hsl(var(--primary-foreground)); + --color-primary-50: hsl(var(--primary-50)); + --color-primary-100: hsl(var(--primary-100)); + --color-primary-200: hsl(var(--primary-200)); + --color-primary-300: hsl(var(--primary-300)); + --color-primary-400: hsl(var(--primary-400)); + --color-primary-500: hsl(var(--primary-500)); + --color-primary-600: hsl(var(--primary-600)); + --color-primary-700: hsl(var(--primary-700)); + --color-primary-active: hsl(var(--primary-700)); + --color-primary-background-light: hsl(var(--primary-200)); + --color-primary-background-lighter: hsl(var(--primary-100)); + --color-primary-background-lightest: hsl(var(--primary-50)); + --color-primary-border: hsl(var(--primary-400)); + --color-primary-border-light: hsl(var(--primary-300)); + --color-primary-hover: hsl(var(--primary-600)); + --color-primary-text: hsl(var(--primary-500)); + --color-primary-text-active: hsl(var(--primary-700)); + --color-primary-text-hover: hsl(var(--primary-600)); + + /* ===== Destructive Palette ===== */ + + --color-destructive: hsl(var(--destructive)); + --color-destructive-foreground: hsl(var(--destructive-foreground)); + --color-destructive-50: hsl(var(--destructive-50)); + --color-destructive-100: hsl(var(--destructive-100)); + --color-destructive-200: hsl(var(--destructive-200)); + --color-destructive-300: hsl(var(--destructive-300)); + --color-destructive-400: hsl(var(--destructive-400)); + --color-destructive-500: hsl(var(--destructive-500)); + --color-destructive-600: hsl(var(--destructive-600)); + --color-destructive-700: hsl(var(--destructive-700)); + --color-destructive-active: hsl(var(--destructive-700)); + --color-destructive-background-light: hsl(var(--destructive-200)); + --color-destructive-background-lighter: hsl(var(--destructive-100)); + --color-destructive-background-lightest: hsl(var(--destructive-50)); + --color-destructive-border: hsl(var(--destructive-400)); + --color-destructive-border-light: hsl(var(--destructive-300)); + --color-destructive-hover: hsl(var(--destructive-600)); + --color-destructive-text: hsl(var(--destructive-500)); + --color-destructive-text-active: hsl(var(--destructive-700)); + --color-destructive-text-hover: hsl(var(--destructive-600)); + + /* ===== Success Palette ===== */ + + --color-success: hsl(var(--success)); + --color-success-foreground: hsl(var(--success-foreground)); + --color-success-50: hsl(var(--success-50)); + --color-success-100: hsl(var(--success-100)); + --color-success-200: hsl(var(--success-200)); + --color-success-300: hsl(var(--success-300)); + --color-success-400: hsl(var(--success-400)); + --color-success-500: hsl(var(--success-500)); + --color-success-600: hsl(var(--success-600)); + --color-success-700: hsl(var(--success-700)); + --color-success-active: hsl(var(--success-700)); + --color-success-background-light: hsl(var(--success-200)); + --color-success-background-lighter: hsl(var(--success-100)); + --color-success-background-lightest: hsl(var(--success-50)); + --color-success-border: hsl(var(--success-400)); + --color-success-border-light: hsl(var(--success-300)); + --color-success-hover: hsl(var(--success-600)); + --color-success-text: hsl(var(--success-500)); + --color-success-text-active: hsl(var(--success-700)); + --color-success-text-hover: hsl(var(--success-600)); + + /* ===== Warning Palette ===== */ + + --color-warning: hsl(var(--warning)); + --color-warning-foreground: hsl(var(--warning-foreground)); + --color-warning-50: hsl(var(--warning-50)); + --color-warning-100: hsl(var(--warning-100)); + --color-warning-200: hsl(var(--warning-200)); + --color-warning-300: hsl(var(--warning-300)); + --color-warning-400: hsl(var(--warning-400)); + --color-warning-500: hsl(var(--warning-500)); + --color-warning-600: hsl(var(--warning-600)); + --color-warning-700: hsl(var(--warning-700)); + --color-warning-active: hsl(var(--warning-700)); + --color-warning-background-light: hsl(var(--warning-200)); + --color-warning-background-lighter: hsl(var(--warning-100)); + --color-warning-background-lightest: hsl(var(--warning-50)); + --color-warning-border: hsl(var(--warning-400)); + --color-warning-border-light: hsl(var(--warning-300)); + --color-warning-hover: hsl(var(--warning-600)); + --color-warning-text: hsl(var(--warning-500)); + --color-warning-text-active: hsl(var(--warning-700)); + --color-warning-text-hover: hsl(var(--warning-600)); + + /* ===== Green Palette (alias for success shades) ===== */ + + --color-green-50: hsl(var(--green-50)); + --color-green-100: hsl(var(--green-100)); + --color-green-200: hsl(var(--green-200)); + --color-green-300: hsl(var(--green-300)); + --color-green-400: hsl(var(--green-400)); + --color-green-500: hsl(var(--green-500)); + --color-green-600: hsl(var(--green-600)); + --color-green-700: hsl(var(--green-700)); + --color-green-active: hsl(var(--green-700)); + --color-green-background-light: hsl(var(--green-200)); + --color-green-background-lighter: hsl(var(--green-100)); + --color-green-background-lightest: hsl(var(--green-50)); + --color-green-border: hsl(var(--green-400)); + --color-green-border-light: hsl(var(--green-300)); + --color-green-foreground: hsl(var(--success-foreground)); + --color-green-hover: hsl(var(--green-600)); + --color-green-text: hsl(var(--green-500)); + --color-green-text-active: hsl(var(--green-700)); + --color-green-text-hover: hsl(var(--green-600)); + + /* ===== Red Palette (alias for destructive shades) ===== */ + + --color-red-50: hsl(var(--red-50)); + --color-red-100: hsl(var(--red-100)); + --color-red-200: hsl(var(--red-200)); + --color-red-300: hsl(var(--red-300)); + --color-red-400: hsl(var(--red-400)); + --color-red-500: hsl(var(--red-500)); + --color-red-600: hsl(var(--red-600)); + --color-red-700: hsl(var(--red-700)); + --color-red-active: hsl(var(--red-700)); + --color-red-background-light: hsl(var(--red-200)); + --color-red-background-lighter: hsl(var(--red-100)); + --color-red-background-lightest: hsl(var(--red-50)); + --color-red-border: hsl(var(--red-400)); + --color-red-border-light: hsl(var(--red-300)); + --color-red-foreground: hsl(var(--destructive-foreground)); + --color-red-hover: hsl(var(--red-600)); + --color-red-text: hsl(var(--red-500)); + --color-red-text-active: hsl(var(--red-700)); + --color-red-text-hover: hsl(var(--red-600)); + + /* ===== Yellow Palette (alias for warning shades) ===== */ + + --color-yellow-50: hsl(var(--yellow-50)); + --color-yellow-100: hsl(var(--yellow-100)); + --color-yellow-200: hsl(var(--yellow-200)); + --color-yellow-300: hsl(var(--yellow-300)); + --color-yellow-400: hsl(var(--yellow-400)); + --color-yellow-500: hsl(var(--yellow-500)); + --color-yellow-600: hsl(var(--yellow-600)); + --color-yellow-700: hsl(var(--yellow-700)); + --color-yellow-active: hsl(var(--yellow-700)); + --color-yellow-background-light: hsl(var(--yellow-200)); + --color-yellow-background-lighter: hsl(var(--yellow-100)); + --color-yellow-background-lightest: hsl(var(--yellow-50)); + --color-yellow-border: hsl(var(--yellow-400)); + --color-yellow-border-light: hsl(var(--yellow-300)); + --color-yellow-foreground: hsl(var(--warning-foreground)); + --color-yellow-hover: hsl(var(--yellow-600)); + --color-yellow-text: hsl(var(--yellow-500)); + --color-yellow-text-active: hsl(var(--yellow-700)); + --color-yellow-text-hover: hsl(var(--yellow-600)); +} + +/* Keyframes */ +@keyframes accordion-down { + from { + height: 0; + } + + to { + height: var(--reka-accordion-content-height); + } +} + +@keyframes accordion-up { + from { + height: var(--reka-accordion-content-height); + } + + to { + height: 0; + } +} + +@keyframes collapsible-down { + from { + height: 0; + } + + to { + height: var(--reka-collapsible-content-height); + } +} + +@keyframes collapsible-up { + from { + height: var(--reka-collapsible-content-height); + } + + to { + height: 0; + } +} + +@keyframes float { + 0% { + transform: translateY(0); + } + + 50% { + transform: translateY(-20px); + } + + 100% { + transform: translateY(0); + } +} + +/* Base styles */ +@layer base { + *, + ::after, + ::before { + @apply border-border outline-ring/50; + + box-sizing: border-box; + border-style: solid; + border-width: 0; + } + + html { + @apply text-foreground bg-background font-sans; + + scroll-behavior: smooth; + font-size: var(--font-size-base, 16px); + font-variation-settings: normal; + font-synthesis-weight: none; + line-height: 1.15; + text-rendering: optimizelegibility; + text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; + } + + #app, + body, + html { + @apply size-full; + } + + body { + min-height: 100vh; + } + + a, + a:active, + a:hover, + a:link, + a:visited { + @apply no-underline; + } + + ::view-transition-new(root), + ::view-transition-old(root) { + @apply animate-none mix-blend-normal; + } + + ::view-transition-old(root) { + @apply z-1; + } + + ::view-transition-new(root) { + @apply z-2147483646; + } + + html.dark::view-transition-old(root) { + @apply z-2147483646; + } + + html.dark::view-transition-new(root) { + @apply z-1; + } + + input::placeholder, + textarea::placeholder { + @apply opacity-100; + } + + input[type='number']::-webkit-inner-spin-button, + input[type='number']::-webkit-outer-spin-button { + @apply m-0 appearance-none; + } + + /* Only adjust scrollbar for non-macOS */ + html:not([data-platform='macOs']) { + ::-webkit-scrollbar { + @apply h-2.5 w-2.5; + } + + ::-webkit-scrollbar-thumb { + @apply bg-border rounded-sm border-none; + } + + ::-webkit-scrollbar-track { + @apply rounded-sm border-none bg-transparent shadow-none; + } + + ::-webkit-scrollbar-button { + @apply hidden; + } + } +} + +/* Custom utilities (v4 @utility syntax) */ +@utility flex-center { + display: flex; + align-items: center; + justify-content: center; +} + +@utility flex-col-center { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +/* Component styles (complex selectors, not convertible to @utility) */ +.outline-box { + @apply outline-border relative cursor-pointer rounded-md p-1 outline-1; +} + +.outline-box::after { + @apply absolute top-1/2 left-1/2 z-20 h-0 w-px rounded-sm opacity-0 outline-2 outline-transparent transition-all duration-300 content-[""]; +} + +.outline-box.outline-box-active { + @apply outline-primary outline-2; +} + +.outline-box.outline-box-active::after { + display: none; +} + +.outline-box:not(.outline-box-active):hover::after { + @apply outline-primary top-0 left-0 h-full w-full p-1 opacity-100; +} + +.vben-link { + @apply text-primary hover:text-primary-hover active:text-primary-active cursor-pointer; +} + +.card-box { + @apply bg-card text-card-foreground border-border rounded-xl border; +} + +/* Enter animations (converted from enterAnimationPlugin) */ +@keyframes enter-x-animation { + to { + opacity: 1; + transform: translateX(0); + } +} + +@keyframes enter-y-animation { + to { + opacity: 1; + transform: translateY(0); + } +} + +.enter-x:nth-child(1) { + opacity: 0; + transform: translateX(50px); + animation: enter-x-animation 0.3s ease-in-out 0.1s forwards; +} + +.enter-x:nth-child(2) { + opacity: 0; + transform: translateX(50px); + animation: enter-x-animation 0.3s ease-in-out 0.2s forwards; +} + +.enter-x:nth-child(3) { + opacity: 0; + transform: translateX(50px); + animation: enter-x-animation 0.3s ease-in-out 0.3s forwards; +} + +.enter-x:nth-child(4) { + opacity: 0; + transform: translateX(50px); + animation: enter-x-animation 0.3s ease-in-out 0.4s forwards; +} + +.enter-x:nth-child(5) { + opacity: 0; + transform: translateX(50px); + animation: enter-x-animation 0.3s ease-in-out 0.5s forwards; +} + +.enter-y:nth-child(1) { + opacity: 0; + transform: translateY(50px); + animation: enter-y-animation 0.3s ease-in-out 0.1s forwards; +} + +.enter-y:nth-child(2) { + opacity: 0; + transform: translateY(50px); + animation: enter-y-animation 0.3s ease-in-out 0.2s forwards; +} + +.enter-y:nth-child(3) { + opacity: 0; + transform: translateY(50px); + animation: enter-y-animation 0.3s ease-in-out 0.3s forwards; +} + +.enter-y:nth-child(4) { + opacity: 0; + transform: translateY(50px); + animation: enter-y-animation 0.3s ease-in-out 0.4s forwards; +} + +.enter-y:nth-child(5) { + opacity: 0; + transform: translateY(50px); + animation: enter-y-animation 0.3s ease-in-out 0.5s forwards; +} + +.-enter-x:nth-child(1) { + opacity: 0; + transform: translateX(-50px); + animation: enter-x-animation 0.3s ease-in-out 0.1s forwards; +} + +.-enter-x:nth-child(2) { + opacity: 0; + transform: translateX(-50px); + animation: enter-x-animation 0.3s ease-in-out 0.2s forwards; +} + +.-enter-x:nth-child(3) { + opacity: 0; + transform: translateX(-50px); + animation: enter-x-animation 0.3s ease-in-out 0.3s forwards; +} + +.-enter-x:nth-child(4) { + opacity: 0; + transform: translateX(-50px); + animation: enter-x-animation 0.3s ease-in-out 0.4s forwards; +} + +.-enter-x:nth-child(5) { + opacity: 0; + transform: translateX(-50px); + animation: enter-x-animation 0.3s ease-in-out 0.5s forwards; +} + +.-enter-y:nth-child(1) { + opacity: 0; + transform: translateY(-50px); + animation: enter-y-animation 0.3s ease-in-out 0.1s forwards; +} + +.-enter-y:nth-child(2) { + opacity: 0; + transform: translateY(-50px); + animation: enter-y-animation 0.3s ease-in-out 0.2s forwards; +} + +.-enter-y:nth-child(3) { + opacity: 0; + transform: translateY(-50px); + animation: enter-y-animation 0.3s ease-in-out 0.3s forwards; +} + +.-enter-y:nth-child(4) { + opacity: 0; + transform: translateY(-50px); + animation: enter-y-animation 0.3s ease-in-out 0.4s forwards; +} + +.-enter-y:nth-child(5) { + opacity: 0; + transform: translateY(-50px); + animation: enter-y-animation 0.3s ease-in-out 0.5s forwards; +} + +html.invert-mode { + @apply invert; +} + +html.grayscale-mode { + @apply grayscale; +} diff --git a/internal/vite-config/src/plugins/tailwind-reference.ts b/internal/vite-config/src/plugins/tailwind-reference.ts index 8c3185125..86460494c 100644 --- a/internal/vite-config/src/plugins/tailwind-reference.ts +++ b/internal/vite-config/src/plugins/tailwind-reference.ts @@ -1,6 +1,6 @@ import type { Plugin } from 'vite'; -const REFERENCE_LINE = '@reference "@vben-core/design/theme";\n'; +const REFERENCE_LINE = '@reference "@vben/tailwind-config/theme";\n'; /** * Auto-inject @reference into Vue SFC