diff --git a/package.json b/package.json index 063e023..9c78a94 100644 --- a/package.json +++ b/package.json @@ -32,9 +32,9 @@ "changeset:alpha": "changeset pre enter alpha", "changeset:beta": "changeset pre enter beta", "changeset:pre.exit": "changeset pre exit", - "changeset:version": "changeset version", + "changeset:version": "tsx scripts/version.ts", "build": "nr --filter=./packages/* build", - "release": "nr test:unit:coverage && nr build && changeset publish && nr --filter=alova-vscode-extension release" + "release": "nr coveralls && nr build && tsx scripts/release.ts" }, "devDependencies": { "@alova/wormhole": "workspace:*", @@ -42,6 +42,8 @@ "@antfu/ni": "catalog:dev", "@changesets/changelog-github": "catalog:dev", "@changesets/cli": "catalog:dev", + "@changesets/get-release-plan": "catalog:dev", + "@changesets/types": "catalog:types", "@commitlint/cli": "catalog:dev", "@commitlint/config-conventional": "catalog:dev", "@types/js-yaml": "catalog:types", diff --git a/packages/vscode-extension/src/typed-router.d.ts b/packages/vscode-extension/src/typed-router.d.ts index 507aa91..36b9af4 100644 --- a/packages/vscode-extension/src/typed-router.d.ts +++ b/packages/vscode-extension/src/typed-router.d.ts @@ -18,5 +18,10 @@ declare module 'vue-router/auto-routes' { * Route name map generated by unplugin-vue-router */ export interface RouteNamedMap { + '/': RouteRecordInfo<'/', '/', Record, Record>, + '/[...all]': RouteRecordInfo<'/[...all]', '/:all(.*)', { all: ParamValue }, { all: ParamValue }>, + '/api-detail': RouteRecordInfo<'/api-detail', '/api-detail', Record, Record>, + '/api-server': RouteRecordInfo<'/api-server', '/api-server', Record, Record>, + '/vscode': RouteRecordInfo<'/vscode', '/vscode', Record, Record>, } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dae2068..03822d2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -82,6 +82,9 @@ catalogs: '@changesets/cli': specifier: ^2.29.5 version: 2.29.7 + '@changesets/get-release-plan': + specifier: ^4.0.13 + version: 4.0.13 '@commitlint/cli': specifier: ^19.8.1 version: 19.8.1 @@ -285,6 +288,9 @@ catalogs: specifier: ^3.5.3 version: 3.5.3 types: + '@changesets/types': + specifier: ^6.1.0 + version: 6.1.0 '@types/chai': specifier: ^4.2.21 version: 4.3.20 @@ -352,6 +358,12 @@ importers: '@changesets/cli': specifier: catalog:dev version: 2.29.7(@types/node@24.7.1) + '@changesets/get-release-plan': + specifier: catalog:dev + version: 4.0.13 + '@changesets/types': + specifier: catalog:types + version: 6.1.0 '@commitlint/cli': specifier: catalog:dev version: 19.8.1(@types/node@24.7.1)(typescript@5.9.3) @@ -691,7 +703,7 @@ importers: version: link:../wormhole '@czhlin/vite-plugin-vscode': specifier: catalog:build - version: 4.3.0(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3)) + version: 4.3.0(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3)) '@iconify-json/carbon': specifier: catalog:dev version: 1.2.13 @@ -745,10 +757,10 @@ importers: version: 1.57.5 '@vitejs/plugin-vue': specifier: catalog:build - version: 6.0.1(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) + version: 6.0.1(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vitejs/plugin-vue-jsx': specifier: catalog:build - version: 5.1.1(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) + version: 5.1.1(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vscode/test-electron': specifier: catalog:dev version: 2.5.2 @@ -793,7 +805,7 @@ importers: version: 21.0.0 unocss: specifier: catalog:build - version: 66.5.2(postcss@8.5.6)(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) + version: 66.5.2(postcss@8.5.6)(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) unplugin-auto-import: specifier: catalog:build version: 19.3.0(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3))) @@ -802,25 +814,25 @@ importers: version: 28.8.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.3)) unplugin-vue-markdown: specifier: catalog:build - version: 29.2.0(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) + version: 29.2.0(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) unplugin-vue-router: specifier: catalog:build version: 0.14.0(@vue/compiler-sfc@3.5.22)(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) vite: specifier: npm:rolldown-vite@latest - version: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + version: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) vite-bundle-visualizer: specifier: catalog:build version: 1.2.1(rolldown@1.0.0-beta.42)(rollup@4.52.4) vite-plugin-inspect: specifier: ^11.3.0 - version: 11.3.3(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) + version: 11.3.3(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) vite-plugin-vue-devtools: specifier: catalog:build - version: 7.7.7(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) + version: 7.7.7(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) vite-plugin-vue-layouts: specifier: catalog:build - version: 0.11.0(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) + version: 0.11.0(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) vscode-ext-gen: specifier: catalog:build version: 1.3.0 @@ -1883,6 +1895,9 @@ packages: '@napi-rs/wasm-runtime@1.0.6': resolution: {integrity: sha512-DXj75ewm11LIWUk198QSKUTxjyRjsBwk09MuMk5DGK+GDUtyPhhEHOGP/Xwwj3DjQXXkivoBirmOnKrLfc0+9g==} + '@napi-rs/wasm-runtime@1.0.7': + resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} + '@node-rs/crc32-android-arm-eabi@1.10.6': resolution: {integrity: sha512-vZAMuJXm3TpWPOkkhxdrofWDv+Q+I2oO7ucLRbXyAPmXFNDhHtBxbO1rk9Qzz+M3eep8ieS4/+jCL1Q0zacNMQ==} engines: {node: '>= 10'} @@ -2002,9 +2017,16 @@ packages: resolution: {integrity: sha512-Z7x2dZOmznihvdvCvLKMl+nswtOSVxS2H2ocar+U9xx6iMfTp0VGIrX6a4xB1v80IwOPC7dT1LXIJrY70Xu3Jw==} engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-project/runtime@0.98.0': + resolution: {integrity: sha512-F0ldlBv2orG2YqNL0w77deq9yCaO4zEHbanGnW/jaJxGBR8ImekvZb8x42zAHvdzr8J76psibijvHtXfSjbEIQ==} + engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-project/types@0.94.0': resolution: {integrity: sha512-+UgQT/4o59cZfH6Cp7G0hwmqEQ0wE+AdIwhikdwnhWI9Dp8CgSY081+Q3O67/wq3VJu8mgUEB93J9EHHn70fOw==} + '@oxc-project/types@0.98.0': + resolution: {integrity: sha512-Vzmd6FsqVuz5HQVcRC/hrx7Ujo3WEVeQP7C2UNP5uy1hUY4SQvMB+93jxkI1KRHz9a/6cni3glPOtvteN+zpsw==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -2032,30 +2054,60 @@ packages: cpu: [arm64] os: [android] + '@rolldown/binding-android-arm64@1.0.0-beta.51': + resolution: {integrity: sha512-Ctn8FUXKWWQI9pWC61P1yumS9WjQtelNS9riHwV7oCkknPGaAry4o7eFx2KgoLMnI2BgFJYpW7Im8/zX3BuONg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@rolldown/binding-darwin-arm64@1.0.0-beta.42': resolution: {integrity: sha512-abw/wtgJA8OCgaTlL+xJxnN/Z01BwV1rfzIp5Hh9x+IIO6xOBfPsQ0nzi0+rWx3TyZ9FZXyC7bbC+5NpQ9EaXQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-arm64@1.0.0-beta.51': + resolution: {integrity: sha512-EL1aRW2Oq15ShUEkBPsDtLMO8GTqfb/ktM/dFaVzXKQiEE96Ss6nexMgfgQrg8dGnNpndFyffVDb5IdSibsu1g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-beta.42': resolution: {integrity: sha512-Y/UrZIRVr8CvXVEB88t6PeC46r1K9/QdPEo2ASE/b/KBEyXIx+QbM6kv9QfQVWU2Atly2+SVsQzxQsIvuk3lZQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-beta.51': + resolution: {integrity: sha512-uGtYKlFen9pMIPvkHPWZVDtmYhMQi5g5Ddsndg1gf3atScKYKYgs5aDP4DhHeTwGXQglhfBG7lEaOIZ4UAIWww==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@rolldown/binding-freebsd-x64@1.0.0-beta.42': resolution: {integrity: sha512-zRM0oOk7BZiy6DoWBvdV4hyEg+j6+WcBZIMHVirMEZRu8hd18kZdJkg+bjVMfCEhwpWeFUfBfZ1qcaZ5UdYzlQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] + '@rolldown/binding-freebsd-x64@1.0.0-beta.51': + resolution: {integrity: sha512-JRoVTQtHYbZj1P07JLiuTuXjiBtIa7ag7/qgKA6CIIXnAcdl4LrOf7nfDuHPJcuRKaP5dzecMgY99itvWfmUFQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.42': resolution: {integrity: sha512-6RjFaC52QNwo7ilU8C5H7swbGlgfTkG9pudXwzr3VYyT18s0C9gLg3mvc7OMPIGqNxnQ0M5lU8j6aQCk2DTRVg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.51': + resolution: {integrity: sha512-BKATVnpPZ0TYBW9XfDwyd4kPGgvf964HiotIwUgpMrFOFYWqpZ+9ONNzMV4UFAYC7Hb5C2qgYQk/qj2OnAd4RQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.42': resolution: {integrity: sha512-LMYHM5Sf6ROq+VUwHMDVX2IAuEsWTv4SnlFEedBnMGpvRuQ14lCmD4m5Q8sjyAQCgyha9oghdGoK8AEg1sXZKg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2063,6 +2115,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.51': + resolution: {integrity: sha512-xLd7da5jkfbVsBCm1buIRdWtuXY8+hU3+6ESXY/Tk5X5DPHaifrUblhYDgmA34dQt6WyNC2kfXGgrduPEvDI6Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.42': resolution: {integrity: sha512-/bNTYb9aKNhzdbPn3O4MK2aLv55AlrkUKPE4KNfBYjkoZUfDr4jWp7gsSlvTc5A/99V1RCm9axvt616ZzeXGyA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2070,6 +2129,13 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.51': + resolution: {integrity: sha512-EQFXTgHxxTzv3t5EmjUP/DfxzFYx9sMndfLsYaAY4DWF6KsK1fXGYsiupif6qPTViPC9eVmRm78q0pZU/kuIPg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.42': resolution: {integrity: sha512-n/SLa4h342oyeGykZdch7Y3GNCNliRPL4k5wkeZ/5eQZs+c6/ZG1SHCJQoy7bZcmxiMyaXs9HoFmv1PEKrZgWg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2077,6 +2143,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.51': + resolution: {integrity: sha512-p5P6Xpa68w3yFaAdSzIZJbj+AfuDnMDqNSeglBXM7UlJT14Q4zwK+rV+8Mhp9MiUb4XFISZtbI/seBprhkQbiQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-x64-musl@1.0.0-beta.42': resolution: {integrity: sha512-4PSd46sFzqpLHSGdaSViAb1mk55sCUMpJg+X8ittXaVocQsV3QLG/uydSH8RyL0ngHX5fy3D70LcCzlB15AgHw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2084,41 +2157,80 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-x64-musl@1.0.0-beta.51': + resolution: {integrity: sha512-sNVVyLa8HB8wkFipdfz1s6i0YWinwpbMWk5hO5S+XAYH2UH67YzUT13gs6wZTKg2x/3gtgXzYnHyF5wMIqoDAw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + '@rolldown/binding-openharmony-arm64@1.0.0-beta.42': resolution: {integrity: sha512-BmWoeJJyeZXmZBcfoxG6J9+rl2G7eO47qdTkAzEegj4n3aC6CBIHOuDcbE8BvhZaEjQR0nh0nJrtEDlt65Q7Sw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.0.0-beta.51': + resolution: {integrity: sha512-e/JMTz9Q8+T3g/deEi8DK44sFWZWGKr9AOCW5e8C8SCVWzAXqYXAG7FXBWBNzWEZK0Rcwo9TQHTQ9Q0gXgdCaA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-wasm32-wasi@1.0.0-beta.42': resolution: {integrity: sha512-2Ft32F7uiDTrGZUKws6CLNTlvTWHC33l4vpXrzUucf9rYtUThAdPCOt89Pmn13tNX6AulxjGEP2R0nZjTSW3eQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] + '@rolldown/binding-wasm32-wasi@1.0.0-beta.51': + resolution: {integrity: sha512-We3LWqSu6J9s5Y0MK+N7fUiiu37aBGPG3Pc347EoaROuAwkCS2u9xJ5dpIyLW4B49CIbS3KaPmn4kTgPb3EyPw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.42': resolution: {integrity: sha512-hC1kShXW/z221eG+WzQMN06KepvPbMBknF0iGR3VMYJLOe9gwnSTfGxFT5hf8XrPv7CEZqTWRd0GQpkSHRbGsw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.51': + resolution: {integrity: sha512-fj56buHRuMM+r/cb6ZYfNjNvO/0xeFybI6cTkTROJatdP4fvmQ1NS8D/Lm10FCSDEOkqIz8hK3TGpbAThbPHsA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.42': resolution: {integrity: sha512-AICBYromawouGjj+GS33369E8Vwhy6UwhQEhQ5evfS8jPCsyVvoICJatbDGDGH01dwtVGLD5eDFzPicUOVpe4g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.51': + resolution: {integrity: sha512-fkqEqaeEx8AySXiDm54b/RdINb3C0VovzJA3osMhZsbn6FoD73H0AOIiaVAtGr6x63hefruVKTX8irAm4Jkt2w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.42': resolution: {integrity: sha512-XpZ0M+tjoEiSc9c+uZR7FCnOI0uxDRNs1elGOMjeB0pUP1QmvVbZGYNsyLbLoP4u7e3VQN8rie1OQ8/mB6rcJg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.51': + resolution: {integrity: sha512-CWuLG/HMtrVcjKGa0C4GnuxONrku89g0+CsH8nT0SNhOtREXuzwgjIXNJImpE/A/DMf9JF+1Xkrq/YRr+F/rCg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/pluginutils@1.0.0-beta.29': resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} '@rolldown/pluginutils@1.0.0-beta.42': resolution: {integrity: sha512-N7pQzk9CyE7q0bBN/q0J8s6Db279r5kUZc6d7/wWRe9/zXqC52HQovVyu6iXPIDY4BEzzgbVLhVFXrOuGJ22ZQ==} + '@rolldown/pluginutils@1.0.0-beta.51': + resolution: {integrity: sha512-51/8cNXMrqWqX3o8DZidhwz1uYq0BhHDDSfVygAND1Skx5s1TDw3APSSxCMcFFedwgqGcx34gRouwY+m404BBQ==} + '@rollup/pluginutils@5.3.0': resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} engines: {node: '>=14.0.0'} @@ -6027,11 +6139,56 @@ packages: yaml: optional: true + rolldown-vite@7.2.7: + resolution: {integrity: sha512-N6a9KgNZ0xgCJ6/Ej2FQ7W8D3fOzDwFw7CLWZ2ubZknVrs9NdNkx25AFEuNbSwQO76VEHp4N7YatsZwp/ST1Gg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + esbuild: ^0.25.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + rolldown@1.0.0-beta.42: resolution: {integrity: sha512-xaPcckj+BbJhYLsv8gOqezc8EdMcKKe/gk8v47B0KPvgABDrQ0qmNPAiT/gh9n9Foe0bUkEv2qzj42uU5q1WRg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + rolldown@1.0.0-beta.51: + resolution: {integrity: sha512-ZRLgPlS91l4JztLYEZnmMcd3Umcla1hkXJgiEiR4HloRJBBoeaX8qogTu5Jfu36rRMVLndzqYv0h+M5gJAkUfg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rollup-plugin-visualizer@5.14.0: resolution: {integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==} engines: {node: '>=18'} @@ -7881,7 +8038,7 @@ snapshots: '@csstools/css-tokenizer@3.0.4': {} - '@czhlin/vite-plugin-vscode@4.3.0(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3))': + '@czhlin/vite-plugin-vscode@4.3.0(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3))': dependencies: '@tomjs/logger': 1.4.0 '@tomjs/node': 2.2.3 @@ -7892,7 +8049,7 @@ snapshots: lodash.merge: 4.6.2 node-html-parser: 6.1.13 tsdown: 0.12.9(typescript@5.9.3)(vue-tsc@3.1.1(typescript@5.9.3)) - vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - '@arethetypeswrong/core' - '@typescript/native-preview' @@ -8380,6 +8537,13 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true + '@napi-rs/wasm-runtime@1.0.7': + dependencies: + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.5.0 + '@tybys/wasm-util': 0.10.1 + optional: true + '@node-rs/crc32-android-arm-eabi@1.10.6': optional: true @@ -8466,8 +8630,12 @@ snapshots: '@oxc-project/runtime@0.92.0': {} + '@oxc-project/runtime@0.98.0': {} + '@oxc-project/types@0.94.0': {} + '@oxc-project/types@0.98.0': {} + '@pkgjs/parseargs@0.11.0': optional: true @@ -8486,51 +8654,97 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0-beta.42': optional: true + '@rolldown/binding-android-arm64@1.0.0-beta.51': + optional: true + '@rolldown/binding-darwin-arm64@1.0.0-beta.42': optional: true + '@rolldown/binding-darwin-arm64@1.0.0-beta.51': + optional: true + '@rolldown/binding-darwin-x64@1.0.0-beta.42': optional: true + '@rolldown/binding-darwin-x64@1.0.0-beta.51': + optional: true + '@rolldown/binding-freebsd-x64@1.0.0-beta.42': optional: true + '@rolldown/binding-freebsd-x64@1.0.0-beta.51': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.42': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.51': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.42': optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.51': + optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.42': optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.51': + optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.42': optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.51': + optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-beta.42': optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-beta.51': + optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-beta.42': optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-beta.51': + optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-beta.42': dependencies: '@napi-rs/wasm-runtime': 1.0.6 optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-beta.51': + dependencies: + '@napi-rs/wasm-runtime': 1.0.7 + optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.42': optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.51': + optional: true + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.42': optional: true + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.51': + optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.42': optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.51': + optional: true + '@rolldown/pluginutils@1.0.0-beta.29': {} '@rolldown/pluginutils@1.0.0-beta.42': {} + '@rolldown/pluginutils@1.0.0-beta.51': {} + '@rollup/pluginutils@5.3.0(rollup@4.52.4)': dependencies: '@types/estree': 1.0.8 @@ -9037,6 +9251,14 @@ snapshots: optionalDependencies: vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + '@unocss/astro@66.5.2(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))': + dependencies: + '@unocss/core': 66.5.2 + '@unocss/reset': 66.5.2 + '@unocss/vite': 66.5.2(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) + optionalDependencies: + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + '@unocss/cli@66.5.2': dependencies: '@jridgewell/remapping': 2.3.5 @@ -9199,24 +9421,37 @@ snapshots: unplugin-utils: 0.3.1 vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + '@unocss/vite@66.5.2(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))': + dependencies: + '@jridgewell/remapping': 2.3.5 + '@unocss/config': 66.5.2 + '@unocss/core': 66.5.2 + '@unocss/inspector': 66.5.2 + chokidar: 3.6.0 + magic-string: 0.30.19 + pathe: 2.0.3 + tinyglobby: 0.2.15 + unplugin-utils: 0.3.1 + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + '@vicons/ionicons5@0.13.0': {} - '@vitejs/plugin-vue-jsx@5.1.1(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.1(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4) '@rolldown/pluginutils': 1.0.0-beta.42 '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.4) - vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.1(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.1(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.29 - vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) vue: 3.5.22(typescript@5.9.3) '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(jsdom@26.1.0)(msw@2.11.5(@types/node@24.7.1)(typescript@5.9.3))(tsx@4.20.6)(yaml@2.8.1))': @@ -9464,14 +9699,14 @@ snapshots: dependencies: '@vue/devtools-kit': 7.7.7 - '@vue/devtools-core@7.7.7(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': + '@vue/devtools-core@7.7.7(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 mitt: 3.0.1 nanoid: 5.1.6 pathe: 2.0.3 - vite-hot-client: 2.1.0(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) + vite-hot-client: 2.1.0(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - vite @@ -12984,6 +13219,23 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 + rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1): + dependencies: + '@oxc-project/runtime': 0.98.0 + fdir: 6.5.0(picomatch@4.0.3) + lightningcss: 1.30.2 + picomatch: 4.0.3 + postcss: 8.5.6 + rolldown: 1.0.0-beta.51 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.7.1 + esbuild: 0.25.10 + fsevents: 2.3.3 + jiti: 2.6.1 + tsx: 4.20.6 + yaml: 2.8.1 + rolldown@1.0.0-beta.42: dependencies: '@oxc-project/types': 0.94.0 @@ -13005,6 +13257,26 @@ snapshots: '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.42 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.42 + rolldown@1.0.0-beta.51: + dependencies: + '@oxc-project/types': 0.98.0 + '@rolldown/pluginutils': 1.0.0-beta.51 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-beta.51 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.51 + '@rolldown/binding-darwin-x64': 1.0.0-beta.51 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.51 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.51 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.51 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.51 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.51 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.51 + '@rolldown/binding-openharmony-arm64': 1.0.0-beta.51 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.51 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.51 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.51 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.51 + rollup-plugin-visualizer@5.14.0(rolldown@1.0.0-beta.42)(rollup@4.52.4): dependencies: open: 8.4.2 @@ -13739,6 +14011,33 @@ snapshots: - postcss - supports-color + unocss@66.5.2(postcss@8.5.6)(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)): + dependencies: + '@unocss/astro': 66.5.2(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) + '@unocss/cli': 66.5.2 + '@unocss/core': 66.5.2 + '@unocss/postcss': 66.5.2(postcss@8.5.6) + '@unocss/preset-attributify': 66.5.2 + '@unocss/preset-icons': 66.5.2 + '@unocss/preset-mini': 66.5.2 + '@unocss/preset-tagify': 66.5.2 + '@unocss/preset-typography': 66.5.2 + '@unocss/preset-uno': 66.5.2 + '@unocss/preset-web-fonts': 66.5.2 + '@unocss/preset-wind': 66.5.2 + '@unocss/preset-wind3': 66.5.2 + '@unocss/preset-wind4': 66.5.2 + '@unocss/transformer-attributify-jsx': 66.5.2 + '@unocss/transformer-compile-class': 66.5.2 + '@unocss/transformer-directives': 66.5.2 + '@unocss/transformer-variant-group': 66.5.2 + '@unocss/vite': 66.5.2(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) + optionalDependencies: + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + transitivePeerDependencies: + - postcss + - supports-color + unplugin-auto-import@19.3.0(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3))): dependencies: local-pkg: 1.1.2 @@ -13776,7 +14075,7 @@ snapshots: transitivePeerDependencies: - supports-color - unplugin-vue-markdown@29.2.0(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)): + unplugin-vue-markdown@29.2.0(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)): dependencies: '@mdit-vue/plugin-component': 3.0.2 '@mdit-vue/plugin-frontmatter': 3.0.2 @@ -13786,7 +14085,7 @@ snapshots: markdown-it-async: 2.2.0 unplugin: 2.3.10 unplugin-utils: 0.3.1 - vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) unplugin-vue-router@0.14.0(@vue/compiler-sfc@3.5.22)(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)): dependencies: @@ -13881,15 +14180,15 @@ snapshots: - rollup - supports-color - vite-dev-rpc@1.1.0(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)): + vite-dev-rpc@1.1.0(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)): dependencies: birpc: 2.6.1 - vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) - vite-hot-client: 2.1.0(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + vite-hot-client: 2.1.0(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) - vite-hot-client@2.1.0(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)): + vite-hot-client@2.1.0(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)): dependencies: - vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) vite-node@3.2.4(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: @@ -13912,7 +14211,7 @@ snapshots: - tsx - yaml - vite-plugin-inspect@11.3.3(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)): + vite-plugin-inspect@11.3.3(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)): dependencies: ansis: 4.2.0 debug: 4.4.3(supports-color@8.1.1) @@ -13922,27 +14221,27 @@ snapshots: perfect-debounce: 2.0.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) - vite-dev-rpc: 1.1.0(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + vite-dev-rpc: 1.1.0(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@7.7.7(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)): + vite-plugin-vue-devtools@7.7.7(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)): dependencies: - '@vue/devtools-core': 7.7.7(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) + '@vue/devtools-core': 7.7.7(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 execa: 9.6.0 sirv: 3.0.2 - vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) - vite-plugin-inspect: 11.3.3(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) - vite-plugin-vue-inspector: 5.3.2(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + vite-plugin-inspect: 11.3.3(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) + vite-plugin-vue-inspector: 5.3.2(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)) transitivePeerDependencies: - '@nuxt/kit' - supports-color - vue - vite-plugin-vue-inspector@5.3.2(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)): + vite-plugin-vue-inspector@5.3.2(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1)): dependencies: '@babel/core': 7.28.4 '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.4) @@ -13953,15 +14252,15 @@ snapshots: '@vue/compiler-dom': 3.5.22 kolorist: 1.8.0 magic-string: 0.30.19 - vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) transitivePeerDependencies: - supports-color - vite-plugin-vue-layouts@0.11.0(rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)): + vite-plugin-vue-layouts@0.11.0(rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)): dependencies: debug: 4.4.3(supports-color@8.1.1) fast-glob: 3.3.3 - vite: rolldown-vite@7.1.16(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) + vite: rolldown-vite@7.2.7(@types/node@24.7.1)(esbuild@0.25.10)(jiti@2.6.1)(tsx@4.20.6)(yaml@2.8.1) vue: 3.5.22(typescript@5.9.3) vue-router: 4.5.1(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 91d89a7..80db574 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -34,6 +34,7 @@ catalogs: '@antfu/ni': ^25.0.0 '@changesets/changelog-github': ^0.5.1 '@changesets/cli': ^2.29.5 + '@changesets/get-release-plan': ^4.0.13 '@commitlint/cli': ^19.8.1 '@commitlint/config-conventional': ^19.8.1 '@iconify-json/carbon': ^1.2.10 @@ -103,6 +104,7 @@ catalogs: zod: ^3.25.68-alpha.11 zod-validation-error: ^3.5.3 types: + '@changesets/types': ^6.1.0 '@types/chai': ^4.2.21 '@types/chai-jest-snapshot': ^1.3.6 '@types/fs-extra': ^11.0.4 diff --git a/scripts/release.ts b/scripts/release.ts new file mode 100644 index 0000000..ef85c35 --- /dev/null +++ b/scripts/release.ts @@ -0,0 +1,65 @@ +import { execSync } from 'node:child_process' +import fs from 'node:fs' +import path from 'node:path' +import fg from 'fast-glob' +import { loadReleasePlan } from './utils/release-plan' + +function run(cmd: string) { + execSync(cmd, { stdio: 'inherit' }) +} + +function getWorkspacePackageInfo() { + const map = new Map() + fg.sync(['packages/*/package.json'], { cwd: process.cwd(), absolute: true }).forEach((file) => { + try { + const json = JSON.parse(fs.readFileSync(file, 'utf8')) as Record + const name = String(json.name ?? path.basename(path.dirname(file))) + map.set(name, { + private: Boolean(json.private), + hasReleaseScript: Boolean(json.scripts && json.scripts.release), + }) + } + catch (error) { + console.warn(`⚠ 读取包信息失败: ${file}\n${error}`) + } + }) + return map +} + +function main() { + const releasePlan = loadReleasePlan() + const infoMap = getWorkspacePackageInfo() + const names = Array.from(new Set(releasePlan.map(r => r.name))) + const pub: string[] = [] + const pri: string[] = [] + + for (const name of names) { + const info = infoMap.get(name) + if (!info) { + console.warn(`⚠ 未找到包: ${name}`) + continue + } + if (info.private) { + if (info.hasReleaseScript) { + pri.push(name) + } + else { + console.warn(`⚠ 私有包 ${name} 未定义 release 命令`) + } + } + else { + pub.push(name) + } + } + + if (pub.length) { + console.log(`🚀 changeset publish:${pub.join(', ')}`) + run('pnpm -w changeset publish') + } + for (const name of pri) { + console.log(`🚀 自定义发布:${name}(执行各自 release 命令)`) + run(`pnpm -w --filter "${name}" run release`) + } +} + +main() diff --git a/scripts/utils/release-plan.ts b/scripts/utils/release-plan.ts new file mode 100644 index 0000000..98a5fe7 --- /dev/null +++ b/scripts/utils/release-plan.ts @@ -0,0 +1,49 @@ +import type { VersionType } from '@changesets/types' +import fs from 'node:fs' +import path from 'node:path' + +const RELEASE_PLAN_FILE = path.join('node_modules', '.changeset-release-plan.json') + +export interface ReleasePlan { + name: string + version: string + type: VersionType +} +export function saveReleasePlan(plan: ReleasePlan[]) { + // 确保 node_modules 存在(某些 CI 情况可能不存在) + if (!fs.existsSync('node_modules')) { + fs.mkdirSync('node_modules') + } + + fs.writeFileSync( + RELEASE_PLAN_FILE, + JSON.stringify(plan, null, 2), + 'utf8', + ) + + console.log(`✔ Release plan saved to ${RELEASE_PLAN_FILE}`) +} + +export function loadReleasePlan() { + if (!fs.existsSync(RELEASE_PLAN_FILE)) { + throw new Error( + `❌ Release plan file not found: ${RELEASE_PLAN_FILE}\n` + + `请确认你已在 changeset version 前执行 saveReleasePlan。`, + ) + } + + const content = fs.readFileSync(RELEASE_PLAN_FILE, 'utf8').trim() + // 处理content非法的情况:1. content为空 2. content不是数组 3.JSON.parse 失败。 + // 统一返回空数组 + try { + return JSON.parse(content || '[]') as ReleasePlan[] + } + catch (error) { + console.error(`❌ Failed to parse release plan file: ${RELEASE_PLAN_FILE}\n${error}`) + return [] + } +} + +export function releasePlanPath() { + return RELEASE_PLAN_FILE +} diff --git a/scripts/version.ts b/scripts/version.ts new file mode 100644 index 0000000..cf89b41 --- /dev/null +++ b/scripts/version.ts @@ -0,0 +1,16 @@ +import { execSync } from 'node:child_process' +import getReleasePlan from '@changesets/get-release-plan' +import { saveReleasePlan } from './utils/release-plan' + +async function main() { + const releasePlan = await getReleasePlan(process.cwd()) + saveReleasePlan(releasePlan.releases.map(r => ({ + name: r.name, + version: r.newVersion, + type: r.type, + }))) + + execSync('changeset version', { stdio: 'inherit' }) +} + +main()