From 76fcaa1ec760772b2520b480a945719c084f56e1 Mon Sep 17 00:00:00 2001 From: daiwei Date: Fri, 16 May 2025 17:37:04 +0800 Subject: [PATCH 1/2] feat: add support for viewing sourcemaps --- package.json | 7 +- pnpm-lock.yaml | 195 +++++++++++++++++++++++++++++++++--------- src/output/Output.vue | 20 +++++ src/sourcemap.ts | 119 ++++++++++++++++++++++++++ src/store.ts | 2 + src/transform.ts | 69 ++++++++++----- 6 files changed, 348 insertions(+), 64 deletions(-) create mode 100644 src/sourcemap.ts diff --git a/package.json b/package.json index ab1f9233..1a165679 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,10 @@ "vite": "^6.1.0", "vite-plugin-dts": "^4.5.0", "vscode-uri": "^3.1.0", - "vue": "^3.5.13", - "vue-tsc": "~2.2.2" + "vue": "https://pkg.pr.new/vue@5132463", + "vue-tsc": "~2.2.2", + "@jridgewell/gen-mapping": "^0.3.8", + "@jridgewell/trace-mapping": "^0.3.25", + "source-map-js": "^1.2.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8d25d3a8..fb988062 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,12 @@ importers: '@eslint/js': specifier: ^9.20.0 version: 9.20.0 + '@jridgewell/gen-mapping': + specifier: ^0.3.8 + version: 0.3.8 + '@jridgewell/trace-mapping': + specifier: ^0.3.25 + version: 0.3.25 '@rollup/plugin-replace': specifier: ^6.0.2 version: 6.0.2(rollup@4.34.8) @@ -37,7 +43,7 @@ importers: version: 22.13.4 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + version: 5.2.1(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(yaml@2.7.0))(vue@https://pkg.pr.new/vue@5132463(typescript@5.7.3)) '@volar/jsdelivr': specifier: ~2.4.11 version: 2.4.11 @@ -89,6 +95,9 @@ importers: simple-git-hooks: specifier: ^2.11.1 version: 2.11.1 + source-map-js: + specifier: ^1.2.1 + version: 1.2.1 sucrase: specifier: ^3.35.0 version: 3.35.0 @@ -108,8 +117,8 @@ importers: specifier: ^3.1.0 version: 3.1.0 vue: - specifier: ^3.5.13 - version: 3.5.13(typescript@5.7.3) + specifier: https://pkg.pr.new/vue@5132463 + version: https://pkg.pr.new/vue@5132463(typescript@5.7.3) vue-tsc: specifier: ~2.2.2 version: 2.2.2(typescript@5.7.3) @@ -158,10 +167,18 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} @@ -175,6 +192,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.27.2': + resolution: {integrity: sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-syntax-jsx@7.25.9': resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} @@ -197,6 +219,10 @@ packages: resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==} engines: {node: '>=6.9.0'} + '@babel/types@7.27.1': + resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} + engines: {node: '>=6.9.0'} + '@conventional-changelog/git-client@1.0.1': resolution: {integrity: sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==} engines: {node: '>=18'} @@ -548,51 +574,61 @@ packages: resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.34.8': resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.34.8': resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.34.8': resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.34.8': resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.34.8': resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.34.8': resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.34.8': resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.34.8': resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.34.8': resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==} @@ -758,6 +794,7 @@ packages: '@vitejs/plugin-vue@5.2.1': resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} + version: 5.2.1 engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 || ^6.0.0 @@ -806,15 +843,31 @@ packages: '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + '@vue/compiler-core@https://pkg.pr.new/vuejs/core/@vue/compiler-core@5132463': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-core@5132463} + version: 3.5.14 + '@vue/compiler-dom@3.5.13': resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + '@vue/compiler-dom@https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463} + version: 3.5.14 + '@vue/compiler-sfc@3.5.13': resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + '@vue/compiler-sfc@https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@5132463': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@5132463} + version: 3.5.14 + '@vue/compiler-ssr@3.5.13': resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + '@vue/compiler-ssr@https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@5132463': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@5132463} + version: 3.5.14 + '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -837,23 +890,31 @@ packages: '@vue/language-service@2.2.2': resolution: {integrity: sha512-TRCGRgJJ6v+qCtpHrwKkwol7VpcmyfjYDP5j5lRNWmyb8SRB3bKYqmshMYzDuL8YfT5tOxmSRVstDKYV7mucXA==} - '@vue/reactivity@3.5.13': - resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} + '@vue/reactivity@https://pkg.pr.new/vuejs/core/@vue/reactivity@5132463': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/reactivity@5132463} + version: 3.5.14 - '@vue/runtime-core@3.5.13': - resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} + '@vue/runtime-core@https://pkg.pr.new/vuejs/core/@vue/runtime-core@5132463': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-core@5132463} + version: 3.5.14 - '@vue/runtime-dom@3.5.13': - resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} + '@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@5132463': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-dom@5132463} + version: 3.5.14 - '@vue/server-renderer@3.5.13': - resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} + '@vue/server-renderer@https://pkg.pr.new/vuejs/core/@vue/server-renderer@5132463': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/server-renderer@5132463} + version: 3.5.14 peerDependencies: - vue: 3.5.13 + vue: 3.5.14 '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + '@vue/shared@https://pkg.pr.new/vuejs/core/@vue/shared@5132463': + resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/shared@5132463} + version: 3.5.14 + '@vue/typescript-plugin@2.2.2': resolution: {integrity: sha512-M/fNR/M4Rt+jm7Vmv21sPoHNM7MLYC7QjW5gqmP9y6HGmIlxOubqXYIqddeEnikmEsOc3linykEAxAIVxfIvbA==} @@ -1970,6 +2031,10 @@ packages: resolution: {integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -2473,8 +2538,9 @@ packages: peerDependencies: typescript: '>=5.0.0' - vue@3.5.13: - resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} + vue@https://pkg.pr.new/vue@5132463: + resolution: {tarball: https://pkg.pr.new/vue@5132463} + version: 3.5.14 peerDependencies: typescript: '*' peerDependenciesMeta: @@ -2554,10 +2620,10 @@ snapshots: '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.25.2) '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.3 + '@babel/parser': 7.27.2 '@babel/template': 7.25.9 '@babel/traverse': 7.26.4 - '@babel/types': 7.26.9 + '@babel/types': 7.27.1 convert-source-map: 2.0.0 debug: 4.4.0 gensync: 1.0.0-beta.2 @@ -2593,7 +2659,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.27.1 '@babel/traverse': 7.26.4 transitivePeerDependencies: - supports-color @@ -2602,19 +2668,27 @@ snapshots: '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-option@7.25.9': {} '@babel/helpers@7.26.0': dependencies: '@babel/template': 7.25.9 - '@babel/types': 7.26.9 + '@babel/types': 7.27.1 '@babel/parser@7.26.3': dependencies: '@babel/types': 7.26.9 + '@babel/parser@7.27.2': + dependencies: + '@babel/types': 7.27.1 + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -2645,6 +2719,11 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.27.1': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)': dependencies: '@types/semver': 7.5.8 @@ -3180,10 +3259,10 @@ snapshots: '@ungap/structured-clone@1.2.1': {} - '@vitejs/plugin-vue@5.2.1(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': + '@vitejs/plugin-vue@5.2.1(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(yaml@2.7.0))(vue@https://pkg.pr.new/vue@5132463(typescript@5.7.3))': dependencies: vite: 6.1.0(@types/node@22.13.4)(jiti@2.4.2)(yaml@2.7.0) - vue: 3.5.13(typescript@5.7.3) + vue: https://pkg.pr.new/vue@5132463(typescript@5.7.3) '@volar/jsdelivr@2.4.11': {} @@ -3262,11 +3341,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@https://pkg.pr.new/vuejs/core/@vue/compiler-core@5132463': + dependencies: + '@babel/parser': 7.27.2 + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.13': dependencies: '@vue/compiler-core': 3.5.13 '@vue/shared': 3.5.13 + '@vue/compiler-dom@https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463': + dependencies: + '@vue/compiler-core': https://pkg.pr.new/vuejs/core/@vue/compiler-core@5132463 + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + '@vue/compiler-sfc@3.5.13': dependencies: '@babel/parser': 7.26.3 @@ -3279,11 +3371,28 @@ snapshots: postcss: 8.5.2 source-map-js: 1.2.1 + '@vue/compiler-sfc@https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@5132463': + dependencies: + '@babel/parser': 7.27.2 + '@vue/compiler-core': https://pkg.pr.new/vuejs/core/@vue/compiler-core@5132463 + '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463 + '@vue/compiler-ssr': https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@5132463 + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.3 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.5.13': dependencies: '@vue/compiler-dom': 3.5.13 '@vue/shared': 3.5.13 + '@vue/compiler-ssr@https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@5132463': + dependencies: + '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463 + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + '@vue/compiler-vue2@2.7.16': dependencies: de-indent: 1.0.2 @@ -3340,30 +3449,32 @@ snapshots: transitivePeerDependencies: - typescript - '@vue/reactivity@3.5.13': + '@vue/reactivity@https://pkg.pr.new/vuejs/core/@vue/reactivity@5132463': dependencies: - '@vue/shared': 3.5.13 + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 - '@vue/runtime-core@3.5.13': + '@vue/runtime-core@https://pkg.pr.new/vuejs/core/@vue/runtime-core@5132463': dependencies: - '@vue/reactivity': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@5132463 + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 - '@vue/runtime-dom@3.5.13': + '@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@5132463': dependencies: - '@vue/reactivity': 3.5.13 - '@vue/runtime-core': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@5132463 + '@vue/runtime-core': https://pkg.pr.new/vuejs/core/@vue/runtime-core@5132463 + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 csstype: 3.1.3 - '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3))': + '@vue/server-renderer@https://pkg.pr.new/vuejs/core/@vue/server-renderer@5132463(vue@https://pkg.pr.new/vue@5132463(typescript@5.7.3))': dependencies: - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@5.7.3) + '@vue/compiler-ssr': https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@5132463 + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + vue: https://pkg.pr.new/vue@5132463(typescript@5.7.3) '@vue/shared@3.5.13': {} + '@vue/shared@https://pkg.pr.new/vuejs/core/@vue/shared@5132463': {} + '@vue/typescript-plugin@2.2.2(typescript@5.7.3)': dependencies: '@volar/typescript': 2.4.11 @@ -4537,6 +4648,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.3: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + prelude-ls@1.2.1: {} prettier@3.5.1: {} @@ -5068,13 +5185,13 @@ snapshots: '@vue/language-core': 2.2.2(typescript@5.7.3) typescript: 5.7.3 - vue@3.5.13(typescript@5.7.3): + vue@https://pkg.pr.new/vue@5132463(typescript@5.7.3): dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-sfc': 3.5.13 - '@vue/runtime-dom': 3.5.13 - '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.3)) - '@vue/shared': 3.5.13 + '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463 + '@vue/compiler-sfc': https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@5132463 + '@vue/runtime-dom': https://pkg.pr.new/vuejs/core/@vue/runtime-dom@5132463 + '@vue/server-renderer': https://pkg.pr.new/vuejs/core/@vue/server-renderer@5132463(vue@https://pkg.pr.new/vue@5132463(typescript@5.7.3)) + '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 optionalDependencies: typescript: 5.7.3 diff --git a/src/output/Output.vue b/src/output/Output.vue index 62085293..a9b3df41 100644 --- a/src/output/Output.vue +++ b/src/output/Output.vue @@ -33,6 +33,15 @@ const mode = computed({ }, }) +const showSourceMap = computed(() => { + return mode.value === 'js' || mode.value === 'ssr' +}) + +function openSourceMap() { + const { clientMap, ssrMap } = store.value.activeFile.compiled + window.open(mode.value === 'js' ? clientMap : ssrMap) +} + function reload() { previewRef.value?.reload() } @@ -62,6 +71,12 @@ defineExpose({ reload, previewRef }) :mode="mode" /> + +
+ +
diff --git a/src/sourcemap.ts b/src/sourcemap.ts new file mode 100644 index 00000000..40d50f98 --- /dev/null +++ b/src/sourcemap.ts @@ -0,0 +1,119 @@ +import type { RawSourceMap } from 'source-map-js' +import type { EncodedSourceMap as TraceEncodedSourceMap } from '@jridgewell/trace-mapping' +import { TraceMap, eachMapping } from '@jridgewell/trace-mapping' +import type { EncodedSourceMap as GenEncodedSourceMap } from '@jridgewell/gen-mapping' +import { addMapping, fromMap, toEncodedMap } from '@jridgewell/gen-mapping' + +// trim analyzed bindings comment +export function trimAnalyzedBindings(scriptCode: string) { + return scriptCode.replace(/\/\*[\s\S]*?\*\/\n/, '').trim() +} +/** + * The merge logic of sourcemap is consistent with the logic in vite-plugin-vue + */ +export function getSourceMap( + filename: string, + scriptCode: string, + scriptMap: any, + templateMap: any, +): RawSourceMap { + let resolvedMap: RawSourceMap | undefined = undefined + if (templateMap) { + // if the template is inlined into the main module (indicated by the presence + // of templateMap), we need to concatenate the two source maps. + const from = scriptMap ?? { + file: filename, + sourceRoot: '', + version: 3, + sources: [], + sourcesContent: [], + names: [], + mappings: '', + } + const gen = fromMap( + // version property of result.map is declared as string + // but actually it is `3` + from as Omit as TraceEncodedSourceMap, + ) + const tracer = new TraceMap( + // same above + templateMap as Omit as TraceEncodedSourceMap, + ) + const offset = + (trimAnalyzedBindings(scriptCode).match(/\r?\n/g)?.length ?? 0) + 1 + eachMapping(tracer, (m) => { + if (m.source == null) return + addMapping(gen, { + source: m.source, + original: { line: m.originalLine, column: m.originalColumn }, + generated: { + line: m.generatedLine + offset, + column: m.generatedColumn, + }, + }) + }) + + // same above + resolvedMap = toEncodedMap(gen) as Omit< + GenEncodedSourceMap, + 'version' + > as RawSourceMap + // if this is a template only update, we will be reusing a cached version + // of the main module compile result, which has outdated sourcesContent. + resolvedMap.sourcesContent = templateMap.sourcesContent + } else { + resolvedMap = scriptMap + } + + return resolvedMap! +} + +/* + * Slightly modified version of https://github.com/AriPerkkio/vite-plugin-source-map-visualizer/blob/main/src/generate-link.ts + */ +export function toVisualizer(code: string, sourceMap: RawSourceMap) { + const map = JSON.stringify(sourceMap) + const encoder = new TextEncoder() + + // Convert the strings to Uint8Array + const codeArray = encoder.encode(code) + const mapArray = encoder.encode(map) + + // Create Uint8Array for the lengths + const codeLengthArray = encoder.encode(codeArray.length.toString()) + const mapLengthArray = encoder.encode(mapArray.length.toString()) + + // Combine the lengths and the data + const combinedArray = new Uint8Array( + codeLengthArray.length + + 1 + + codeArray.length + + mapLengthArray.length + + 1 + + mapArray.length, + ) + + combinedArray.set(codeLengthArray) + combinedArray.set([0], codeLengthArray.length) + combinedArray.set(codeArray, codeLengthArray.length + 1) + combinedArray.set( + mapLengthArray, + codeLengthArray.length + 1 + codeArray.length, + ) + combinedArray.set( + [0], + codeLengthArray.length + 1 + codeArray.length + mapLengthArray.length, + ) + combinedArray.set( + mapArray, + codeLengthArray.length + 1 + codeArray.length + mapLengthArray.length + 1, + ) + + // Convert the Uint8Array to a binary string + let binary = '' + const len = combinedArray.byteLength + for (let i = 0; i < len; i++) binary += String.fromCharCode(combinedArray[i]) + + // Convert the binary string to a base64 string and return it + return `https://evanw.github.io/source-map-visualization#${btoa(binary)}` +} diff --git a/src/store.ts b/src/store.ts index 2508b679..52eb92d1 100644 --- a/src/store.ts +++ b/src/store.ts @@ -494,6 +494,8 @@ export class File { js: '', css: '', ssr: '', + clientMap: '', + ssrMap: '', } editorViewState: editor.ICodeEditorViewState | null = null diff --git a/src/transform.ts b/src/transform.ts index 91e2599b..d044d6c0 100644 --- a/src/transform.ts +++ b/src/transform.ts @@ -6,6 +6,7 @@ import type { } from 'vue/compiler-sfc' import { type Transform, transform } from 'sucrase' import hashId from 'hash-sum' +import { getSourceMap, toVisualizer, trimAnalyzedBindings } from './sourcemap' export const COMP_IDENTIFIER = `__sfc__` @@ -110,6 +111,11 @@ export async function compileFile( const hasScoped = descriptor.styles.some((s) => s.scoped) let clientCode = '' let ssrCode = '' + let ssrScript = '' + let clientScriptMap: any + let clientTemplateMap: any + let ssrScriptMap: any + let ssrTemplateMap: any const appendSharedCode = (code: string) => { clientCode += code @@ -119,14 +125,10 @@ export async function compileFile( let clientScript: string let bindings: BindingMetadata | undefined try { - ;[clientScript, bindings] = await doCompileScript( - store, - descriptor, - id, - false, - isTS, - isJSX, - ) + const res = await doCompileScript(store, descriptor, id, false, isTS, isJSX) + clientScript = res.code + bindings = res.bindings + clientScriptMap = res.map } catch (e: any) { return [e.stack.split('\n').slice(0, 12).join('\n')] } @@ -146,7 +148,9 @@ export async function compileFile( isTS, isJSX, ) - ssrCode += ssrScriptResult[0] + ssrScript = ssrScriptResult.code + ssrCode += ssrScript + ssrScriptMap = ssrScriptResult.map } catch (e) { ssrCode = `/* SSR compile error: ${e} */` } @@ -171,10 +175,11 @@ export async function compileFile( isTS, isJSX, ) - if (Array.isArray(clientTemplateResult)) { - return clientTemplateResult + if (clientTemplateResult.errors.length) { + return clientTemplateResult.errors } - clientCode += `;${clientTemplateResult}` + clientCode += `;${clientTemplateResult.code}` + clientTemplateMap = clientTemplateResult.map const ssrTemplateResult = await doCompileTemplate( store, @@ -185,11 +190,12 @@ export async function compileFile( isTS, isJSX, ) - if (typeof ssrTemplateResult === 'string') { + if (ssrTemplateResult.code) { // ssr compile failure is fine - ssrCode += `;${ssrTemplateResult}` + ssrCode += `;${ssrTemplateResult.code}` + ssrTemplateMap = ssrTemplateResult.map } else { - ssrCode = `/* SSR compile error: ${ssrTemplateResult[0]} */` + ssrCode = `/* SSR compile error: ${ssrTemplateResult.errors[0]} */` } } @@ -264,6 +270,19 @@ export async function compileFile( ) compiled.js = clientCode.trimStart() compiled.ssr = ssrCode.trimStart() + compiled.clientMap = toVisualizer( + trimAnalyzedBindings(compiled.js), + getSourceMap(filename, clientScript, clientScriptMap, clientTemplateMap), + ) + compiled.ssrMap = toVisualizer( + trimAnalyzedBindings(compiled.ssr), + getSourceMap( + filename, + ssrScript || clientScript, + ssrScriptMap, + ssrTemplateMap, + ), + ) } return [] @@ -276,7 +295,7 @@ async function doCompileScript( ssr: boolean, isTS: boolean, isJSX: boolean, -): Promise<[code: string, bindings: BindingMetadata | undefined]> { +): Promise<{ code: string; bindings: BindingMetadata | undefined; map?: any }> { if (descriptor.script || descriptor.scriptSetup) { const expressionPlugins: CompilerOptions['expressionPlugins'] = [] if (isTS) { @@ -285,7 +304,6 @@ async function doCompileScript( if (isJSX) { expressionPlugins.push('jsx') } - const compiledScript = store.compiler.compileScript(descriptor, { inlineTemplate: true, ...store.sfcOptions?.script, @@ -314,11 +332,15 @@ async function doCompileScript( )} */\n` + code } - return [code, compiledScript.bindings] + return { code, bindings: compiledScript.bindings, map: compiledScript.map } } else { // @ts-expect-error TODO remove when 3.6 is out - const vaporFlag = descriptor.vapor ? '__vapor: true' :'' - return [`\nconst ${COMP_IDENTIFIER} = { ${vaporFlag} }`, undefined] + const vaporFlag = descriptor.vapor ? '__vapor: true' : '' + return { + code: `\nconst ${COMP_IDENTIFIER} = { ${vaporFlag} }`, + bindings: {}, + map: undefined, + } } } @@ -339,7 +361,7 @@ async function doCompileTemplate( expressionPlugins.push('jsx') } - let { code, errors } = store.compiler.compileTemplate({ + const res = store.compiler.compileTemplate({ isProd: false, ...store.sfcOptions?.template, // @ts-expect-error TODO remove expect-error after 3.6 @@ -358,8 +380,9 @@ async function doCompileTemplate( expressionPlugins, }, }) + let { code, errors, map } = res if (errors.length) { - return errors + return { code, map, errors } } const fnName = ssr ? `ssrRender` : `render` @@ -373,5 +396,5 @@ async function doCompileTemplate( if (isTS) { code = await transformTS(code, isJSX) } - return code + return { code, map, errors: [] } } From 3cc5a7f311fbcf27622f0c1d3d99a424dcab9077 Mon Sep 17 00:00:00 2001 From: daiwei Date: Mon, 26 May 2025 21:47:17 +0800 Subject: [PATCH 2/2] chore: update vue to latest --- package.json | 2 +- pnpm-lock.yaml | 193 ++++++++++++++++++++++++++----------------------- 2 files changed, 104 insertions(+), 91 deletions(-) diff --git a/package.json b/package.json index 1a165679..b72411fe 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "vite": "^6.1.0", "vite-plugin-dts": "^4.5.0", "vscode-uri": "^3.1.0", - "vue": "https://pkg.pr.new/vue@5132463", + "vue": "^3.5.15", "vue-tsc": "~2.2.2", "@jridgewell/gen-mapping": "^0.3.8", "@jridgewell/trace-mapping": "^0.3.25", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fb988062..9e0abc4e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,7 +43,7 @@ importers: version: 22.13.4 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(yaml@2.7.0))(vue@https://pkg.pr.new/vue@5132463(typescript@5.7.3)) + version: 5.2.1(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(yaml@2.7.0))(vue@3.5.15(typescript@5.7.3)) '@volar/jsdelivr': specifier: ~2.4.11 version: 2.4.11 @@ -117,8 +117,8 @@ importers: specifier: ^3.1.0 version: 3.1.0 vue: - specifier: https://pkg.pr.new/vue@5132463 - version: https://pkg.pr.new/vue@5132463(typescript@5.7.3) + specifier: ^3.5.15 + version: 3.5.15(typescript@5.7.3) vue-tsc: specifier: ~2.2.2 version: 2.2.2(typescript@5.7.3) @@ -794,7 +794,6 @@ packages: '@vitejs/plugin-vue@5.2.1': resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} - version: 5.2.1 engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 || ^6.0.0 @@ -843,30 +842,32 @@ packages: '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - '@vue/compiler-core@https://pkg.pr.new/vuejs/core/@vue/compiler-core@5132463': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-core@5132463} - version: 3.5.14 + '@vue/compiler-core@3.5.14': + resolution: {integrity: sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==} + + '@vue/compiler-core@3.5.15': + resolution: {integrity: sha512-nGRc6YJg/kxNqbv/7Tg4juirPnjHvuVdhcmDvQWVZXlLHjouq7VsKmV1hIxM/8yKM0VUfwT/Uzc0lO510ltZqw==} '@vue/compiler-dom@3.5.13': resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - '@vue/compiler-dom@https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463} - version: 3.5.14 + '@vue/compiler-dom@3.5.14': + resolution: {integrity: sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==} + + '@vue/compiler-dom@3.5.15': + resolution: {integrity: sha512-ZelQd9n+O/UCBdL00rlwCrsArSak+YLZpBVuNDio1hN3+wrCshYZEDUO3khSLAzPbF1oQS2duEoMDUHScUlYjA==} - '@vue/compiler-sfc@3.5.13': - resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + '@vue/compiler-sfc@3.5.14': + resolution: {integrity: sha512-9T6m/9mMr81Lj58JpzsiSIjBgv2LiVoWjIVa7kuXHICUi8LiDSIotMpPRXYJsXKqyARrzjT24NAwttrMnMaCXA==} - '@vue/compiler-sfc@https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@5132463': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@5132463} - version: 3.5.14 + '@vue/compiler-sfc@3.5.15': + resolution: {integrity: sha512-3zndKbxMsOU6afQWer75Zot/aydjtxNj0T2KLg033rAFaQUn2PGuE32ZRe4iMhflbTcAxL0yEYsRWFxtPro8RQ==} - '@vue/compiler-ssr@3.5.13': - resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + '@vue/compiler-ssr@3.5.14': + resolution: {integrity: sha512-Y0G7PcBxr1yllnHuS/NxNCSPWnRGH4Ogrp0tsLA5QemDZuJLs99YjAKQ7KqkHE0vCg4QTKlQzXLKCMF7WPSl7Q==} - '@vue/compiler-ssr@https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@5132463': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@5132463} - version: 3.5.14 + '@vue/compiler-ssr@3.5.15': + resolution: {integrity: sha512-gShn8zRREZbrXqTtmLSCffgZXDWv8nHc/GhsW+mbwBfNZL5pI96e7IWcIq8XGQe1TLtVbu7EV9gFIVSmfyarPg==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -890,30 +891,28 @@ packages: '@vue/language-service@2.2.2': resolution: {integrity: sha512-TRCGRgJJ6v+qCtpHrwKkwol7VpcmyfjYDP5j5lRNWmyb8SRB3bKYqmshMYzDuL8YfT5tOxmSRVstDKYV7mucXA==} - '@vue/reactivity@https://pkg.pr.new/vuejs/core/@vue/reactivity@5132463': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/reactivity@5132463} - version: 3.5.14 + '@vue/reactivity@3.5.15': + resolution: {integrity: sha512-GaA5VUm30YWobCwpvcs9nvFKf27EdSLKDo2jA0IXzGS344oNpFNbEQ9z+Pp5ESDaxyS8FcH0vFN/XSe95BZtHQ==} - '@vue/runtime-core@https://pkg.pr.new/vuejs/core/@vue/runtime-core@5132463': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-core@5132463} - version: 3.5.14 + '@vue/runtime-core@3.5.15': + resolution: {integrity: sha512-CZAlIOQ93nj0OPpWWOx4+QDLCMzBNY85IQR4Voe6vIID149yF8g9WQaWnw042f/6JfvLttK7dnyWlC1EVCRK8Q==} - '@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@5132463': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/runtime-dom@5132463} - version: 3.5.14 + '@vue/runtime-dom@3.5.15': + resolution: {integrity: sha512-wFplHKzKO/v998up2iCW3RN9TNUeDMhdBcNYZgs5LOokHntrB48dyuZHspcahKZczKKh3v6i164gapMPxBTKNw==} - '@vue/server-renderer@https://pkg.pr.new/vuejs/core/@vue/server-renderer@5132463': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/server-renderer@5132463} - version: 3.5.14 + '@vue/server-renderer@3.5.15': + resolution: {integrity: sha512-Gehc693kVTYkLt6QSYEjGvqvdK2zZ/gf/D5zkgmvBdeB30dNnVZS8yY7+IlBmHRd1rR/zwaqeu06Ij04ZxBscg==} peerDependencies: - vue: 3.5.14 + vue: 3.5.15 '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - '@vue/shared@https://pkg.pr.new/vuejs/core/@vue/shared@5132463': - resolution: {tarball: https://pkg.pr.new/vuejs/core/@vue/shared@5132463} - version: 3.5.14 + '@vue/shared@3.5.14': + resolution: {integrity: sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==} + + '@vue/shared@3.5.15': + resolution: {integrity: sha512-bKvgFJJL1ZX9KxMCTQY6xD9Dhe3nusd1OhyOb1cJYGqvAr0Vg8FIjHPMOEVbJ9GDT9HG+Bjdn4oS8ohKP8EvoA==} '@vue/typescript-plugin@2.2.2': resolution: {integrity: sha512-M/fNR/M4Rt+jm7Vmv21sPoHNM7MLYC7QjW5gqmP9y6HGmIlxOubqXYIqddeEnikmEsOc3linykEAxAIVxfIvbA==} @@ -2538,9 +2537,8 @@ packages: peerDependencies: typescript: '>=5.0.0' - vue@https://pkg.pr.new/vue@5132463: - resolution: {tarball: https://pkg.pr.new/vue@5132463} - version: 3.5.14 + vue@3.5.15: + resolution: {integrity: sha512-aD9zK4rB43JAMK/5BmS4LdPiEp8Fdh8P1Ve/XNuMF5YRf78fCyPE6FUbQwcaWQ5oZ1R2CD9NKE0FFOVpMR7gEQ==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -3259,10 +3257,10 @@ snapshots: '@ungap/structured-clone@1.2.1': {} - '@vitejs/plugin-vue@5.2.1(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(yaml@2.7.0))(vue@https://pkg.pr.new/vue@5132463(typescript@5.7.3))': + '@vitejs/plugin-vue@5.2.1(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(yaml@2.7.0))(vue@3.5.15(typescript@5.7.3))': dependencies: vite: 6.1.0(@types/node@22.13.4)(jiti@2.4.2)(yaml@2.7.0) - vue: https://pkg.pr.new/vue@5132463(typescript@5.7.3) + vue: 3.5.15(typescript@5.7.3) '@volar/jsdelivr@2.4.11': {} @@ -3329,7 +3327,7 @@ snapshots: '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/parser': 7.26.3 - '@vue/compiler-sfc': 3.5.13 + '@vue/compiler-sfc': 3.5.14 transitivePeerDependencies: - supports-color @@ -3341,10 +3339,18 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-core@https://pkg.pr.new/vuejs/core/@vue/compiler-core@5132463': + '@vue/compiler-core@3.5.14': dependencies: '@babel/parser': 7.27.2 - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + '@vue/shared': 3.5.14 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-core@3.5.15': + dependencies: + '@babel/parser': 7.27.2 + '@vue/shared': 3.5.15 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 @@ -3354,44 +3360,49 @@ snapshots: '@vue/compiler-core': 3.5.13 '@vue/shared': 3.5.13 - '@vue/compiler-dom@https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463': + '@vue/compiler-dom@3.5.14': dependencies: - '@vue/compiler-core': https://pkg.pr.new/vuejs/core/@vue/compiler-core@5132463 - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + '@vue/compiler-core': 3.5.14 + '@vue/shared': 3.5.14 - '@vue/compiler-sfc@3.5.13': + '@vue/compiler-dom@3.5.15': dependencies: - '@babel/parser': 7.26.3 - '@vue/compiler-core': 3.5.13 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/compiler-core': 3.5.15 + '@vue/shared': 3.5.15 + + '@vue/compiler-sfc@3.5.14': + dependencies: + '@babel/parser': 7.27.2 + '@vue/compiler-core': 3.5.14 + '@vue/compiler-dom': 3.5.14 + '@vue/compiler-ssr': 3.5.14 + '@vue/shared': 3.5.14 estree-walker: 2.0.2 magic-string: 0.30.17 - postcss: 8.5.2 + postcss: 8.5.3 source-map-js: 1.2.1 - '@vue/compiler-sfc@https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@5132463': + '@vue/compiler-sfc@3.5.15': dependencies: '@babel/parser': 7.27.2 - '@vue/compiler-core': https://pkg.pr.new/vuejs/core/@vue/compiler-core@5132463 - '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463 - '@vue/compiler-ssr': https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@5132463 - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + '@vue/compiler-core': 3.5.15 + '@vue/compiler-dom': 3.5.15 + '@vue/compiler-ssr': 3.5.15 + '@vue/shared': 3.5.15 estree-walker: 2.0.2 magic-string: 0.30.17 postcss: 8.5.3 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.13': + '@vue/compiler-ssr@3.5.14': dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/compiler-dom': 3.5.14 + '@vue/shared': 3.5.14 - '@vue/compiler-ssr@https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@5132463': + '@vue/compiler-ssr@3.5.15': dependencies: - '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463 - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + '@vue/compiler-dom': 3.5.15 + '@vue/shared': 3.5.15 '@vue/compiler-vue2@2.7.16': dependencies: @@ -3401,9 +3412,9 @@ snapshots: '@vue/language-core@2.2.0(typescript@5.7.3)': dependencies: '@volar/language-core': 2.4.11 - '@vue/compiler-dom': 3.5.13 + '@vue/compiler-dom': 3.5.14 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.13 + '@vue/shared': 3.5.14 alien-signals: 0.4.12 minimatch: 9.0.5 muggle-string: 0.4.1 @@ -3414,9 +3425,9 @@ snapshots: '@vue/language-core@2.2.2(typescript@5.7.3)': dependencies: '@volar/language-core': 2.4.11 - '@vue/compiler-dom': 3.5.13 + '@vue/compiler-dom': 3.5.14 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.13 + '@vue/shared': 3.5.14 alien-signals: 1.0.3 minimatch: 9.0.5 muggle-string: 0.4.1 @@ -3449,37 +3460,39 @@ snapshots: transitivePeerDependencies: - typescript - '@vue/reactivity@https://pkg.pr.new/vuejs/core/@vue/reactivity@5132463': + '@vue/reactivity@3.5.15': dependencies: - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + '@vue/shared': 3.5.15 - '@vue/runtime-core@https://pkg.pr.new/vuejs/core/@vue/runtime-core@5132463': + '@vue/runtime-core@3.5.15': dependencies: - '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@5132463 - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + '@vue/reactivity': 3.5.15 + '@vue/shared': 3.5.15 - '@vue/runtime-dom@https://pkg.pr.new/vuejs/core/@vue/runtime-dom@5132463': + '@vue/runtime-dom@3.5.15': dependencies: - '@vue/reactivity': https://pkg.pr.new/vuejs/core/@vue/reactivity@5132463 - '@vue/runtime-core': https://pkg.pr.new/vuejs/core/@vue/runtime-core@5132463 - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + '@vue/reactivity': 3.5.15 + '@vue/runtime-core': 3.5.15 + '@vue/shared': 3.5.15 csstype: 3.1.3 - '@vue/server-renderer@https://pkg.pr.new/vuejs/core/@vue/server-renderer@5132463(vue@https://pkg.pr.new/vue@5132463(typescript@5.7.3))': + '@vue/server-renderer@3.5.15(vue@3.5.15(typescript@5.7.3))': dependencies: - '@vue/compiler-ssr': https://pkg.pr.new/vuejs/core/@vue/compiler-ssr@5132463 - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 - vue: https://pkg.pr.new/vue@5132463(typescript@5.7.3) + '@vue/compiler-ssr': 3.5.15 + '@vue/shared': 3.5.15 + vue: 3.5.15(typescript@5.7.3) '@vue/shared@3.5.13': {} - '@vue/shared@https://pkg.pr.new/vuejs/core/@vue/shared@5132463': {} + '@vue/shared@3.5.14': {} + + '@vue/shared@3.5.15': {} '@vue/typescript-plugin@2.2.2(typescript@5.7.3)': dependencies: '@volar/typescript': 2.4.11 '@vue/language-core': 2.2.2(typescript@5.7.3) - '@vue/shared': 3.5.13 + '@vue/shared': 3.5.14 transitivePeerDependencies: - typescript @@ -5185,13 +5198,13 @@ snapshots: '@vue/language-core': 2.2.2(typescript@5.7.3) typescript: 5.7.3 - vue@https://pkg.pr.new/vue@5132463(typescript@5.7.3): + vue@3.5.15(typescript@5.7.3): dependencies: - '@vue/compiler-dom': https://pkg.pr.new/vuejs/core/@vue/compiler-dom@5132463 - '@vue/compiler-sfc': https://pkg.pr.new/vuejs/core/@vue/compiler-sfc@5132463 - '@vue/runtime-dom': https://pkg.pr.new/vuejs/core/@vue/runtime-dom@5132463 - '@vue/server-renderer': https://pkg.pr.new/vuejs/core/@vue/server-renderer@5132463(vue@https://pkg.pr.new/vue@5132463(typescript@5.7.3)) - '@vue/shared': https://pkg.pr.new/vuejs/core/@vue/shared@5132463 + '@vue/compiler-dom': 3.5.15 + '@vue/compiler-sfc': 3.5.15 + '@vue/runtime-dom': 3.5.15 + '@vue/server-renderer': 3.5.15(vue@3.5.15(typescript@5.7.3)) + '@vue/shared': 3.5.15 optionalDependencies: typescript: 5.7.3