diff --git a/docs/plugins/api.md b/docs/plugins/api.md index 430e0c06a..b9b311853 100644 --- a/docs/plugins/api.md +++ b/docs/plugins/api.md @@ -50,6 +50,49 @@ addCustomTab({ }, category: 'advanced', }) + + +const SFC = /* vue */ ` + <script setup lang="ts"> + import { ref } from 'vue' + + const count = ref(0) + </script> + + <template> + <div class="h-full w-full flex flex-col items-center justify-center"> + <div> + count is {{ count }} + </div> + <button class="btn" @click="count++"> + increment + </button> + </div> + </template> + + <style scoped> + .btn { + background-color: #4c51bf; + color: #fff; + padding: 0.5rem 1rem; + border-radius: 0.25rem; + border: none; + cursor: pointer; + } + </style> +` + +addCustomTab({ + name: 'plugin-count', + title: 'Plugin Count', + icon: 'baseline-exposure-plus-1', + // SFC view + view: { + type: 'sfc', + sfc: SFC, + }, + category: 'app', +}) ``` ## `addCustomCommand` diff --git a/package.json b/package.json index fc0cbefd5..0f87f7291 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "play:multi-app": "turbo dev --filter=./packages/playground/multi-app", "play:webpack": "turbo dev --filter=./packages/playground/webpack", "play:options-api": "turbo dev --filter=./packages/playground/options-api", + "play:plugin-sfc": "turbo dev --filter=./packages/playground/plugin-sfc", "docs": "pnpm -C docs run docs:dev", "docs:build": "pnpm -C docs run docs:build", "zip": "tsx ./scripts/extension-zip.ts", diff --git a/packages/client/package.json b/packages/client/package.json index 2f737a2de..176a89f03 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -41,7 +41,8 @@ "vis-network": "^9.1.9", "vite-hot-client": "^0.2.4", "vue-router": "^4.5.0", - "vue-virtual-scroller": "2.0.0-beta.8" + "vue-virtual-scroller": "2.0.0-beta.8", + "vue3-sfc-loader": "^0.9.5" }, "devDependencies": { "@iconify/json": "^2.2.277", diff --git a/packages/client/src/components/CustomTabComponent.vue b/packages/client/src/components/CustomTabComponent.vue index 0aea1e9cd..0c6f34b63 100644 --- a/packages/client/src/components/CustomTabComponent.vue +++ b/packages/client/src/components/CustomTabComponent.vue @@ -39,6 +39,9 @@ watch(() => tabName.value, () => { <template v-else-if="tab?.view?.type === 'vnode'"> <Component :is="tab.view.vnode" /> </template> + <template v-else-if="tab?.view?.type === 'sfc'"> + <SFCView :sfc="tab.view.sfc" :name="tab.name" /> + </template> <template v-else> <div> <NCard flex="~ col" h-full items-center justify-center> diff --git a/packages/client/src/components/common/SFCView.vue b/packages/client/src/components/common/SFCView.vue new file mode 100644 index 000000000..5f6390d7e --- /dev/null +++ b/packages/client/src/components/common/SFCView.vue @@ -0,0 +1,29 @@ +<script setup lang="ts"> +import * as Vue from 'vue' +import { loadModule } from 'vue3-sfc-loader' + +const props = defineProps<{ + sfc: string + name: string +}>() + +const options = { + moduleCache: { + vue: Vue, + }, + getFile() { + return props?.sfc ?? '' + }, + addStyle(textContent: string) { + const style = Object.assign(document.createElement('style'), { textContent }) + const ref = document.head.getElementsByTagName('style')[0] || null + document.head.insertBefore(style, ref) + }, +} + +const RemoteSFC = defineAsyncComponent(() => loadModule(`${props.name}.vue`, options)) +</script> + +<template> + <RemoteSFC /> +</template> diff --git a/packages/devtools-kit/src/types/tab.ts b/packages/devtools-kit/src/types/tab.ts index ce07bff03..f2d8aa1ac 100644 --- a/packages/devtools-kit/src/types/tab.ts +++ b/packages/devtools-kit/src/types/tab.ts @@ -6,7 +6,7 @@ type TabCategory = | 'modules' | 'advanced' -export type ModuleView = ModuleIframeView | ModuleVNodeView +export type ModuleView = ModuleIframeView | ModuleVNodeView | ModuleSFCView export interface ModuleIframeView { /** @@ -36,6 +36,17 @@ export interface ModuleVNodeView { vnode: VNode } +export interface ModuleSFCView { + /** + * SFC view + */ + type: 'sfc' + /** + * SFC component + */ + sfc: string +} + export interface CustomTab { /** * The name of the tab, must be unique diff --git a/packages/playground/plugin-sfc/index.html b/packages/playground/plugin-sfc/index.html new file mode 100644 index 000000000..fcc12ba2e --- /dev/null +++ b/packages/playground/plugin-sfc/index.html @@ -0,0 +1,13 @@ +<!doctype html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <link rel="icon" type="image/svg+xml" href="/vite.svg" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Vue DevTools Plugin-SFC Playground</title> + </head> + <body> + <div id="app"></div> + <script type="module" src="/src/main.ts"></script> + </body> +</html> diff --git a/packages/playground/plugin-sfc/package.json b/packages/playground/plugin-sfc/package.json new file mode 100644 index 000000000..bcbc257d4 --- /dev/null +++ b/packages/playground/plugin-sfc/package.json @@ -0,0 +1,20 @@ +{ + "name": "playground-plugin-sfc", + "type": "module", + "version": "7.3.2", + "private": true, + "scripts": { + "dev": "vite" + }, + "dependencies": { + "vue": "^3.5.13" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.2.1", + "@vue/devtools": "workspace:^", + "typescript": "^5.7.2", + "vite": "^6.0.1", + "vite-plugin-inspect": "0.8.9", + "vite-plugin-vue-devtools": "workspace:*" + } +} diff --git a/packages/playground/plugin-sfc/public/vite.svg b/packages/playground/plugin-sfc/public/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/packages/playground/plugin-sfc/public/vite.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg> \ No newline at end of file diff --git a/packages/playground/plugin-sfc/src/App.vue b/packages/playground/plugin-sfc/src/App.vue new file mode 100644 index 000000000..4d5958f26 --- /dev/null +++ b/packages/playground/plugin-sfc/src/App.vue @@ -0,0 +1,7 @@ +<script setup lang="ts"> + +</script> + +<template> + <div class="flex flex-col justify-center" /> +</template> diff --git a/packages/playground/plugin-sfc/src/count.vue b/packages/playground/plugin-sfc/src/count.vue new file mode 100644 index 000000000..6cad588c2 --- /dev/null +++ b/packages/playground/plugin-sfc/src/count.vue @@ -0,0 +1,27 @@ +<script setup lang="ts"> +import { ref } from 'vue' + +const count = ref(0) +</script> + +<template> + <div class="h-full w-full flex flex-col items-center justify-center"> + <div> + count is {{ count }} + </div> + <button class="btn" @click="count++"> + increment + </button> + </div> +</template> + +<style scoped> +.btn { + background-color: #4c51bf; + color: #fff; + padding: 0.5rem 1rem; + border-radius: 0.25rem; + border: none; + cursor: pointer; +} +</style> diff --git a/packages/playground/plugin-sfc/src/main.ts b/packages/playground/plugin-sfc/src/main.ts new file mode 100644 index 000000000..c91c8c19a --- /dev/null +++ b/packages/playground/plugin-sfc/src/main.ts @@ -0,0 +1,20 @@ +import { addCustomTab } from '@vue/devtools-kit' +import { createApp } from 'vue' +import App from './App.vue' +import countSFC from './count.vue?raw' + +const app = createApp(App) +app.mount('#app') + +setTimeout(() => { + addCustomTab({ + name: 'plugin_count', + title: 'Plugin Count', + icon: 'baseline-exposure-plus-1', + view: { + type: 'sfc', + sfc: countSFC, + }, + category: 'app', + }) +}, 2000) diff --git a/packages/playground/plugin-sfc/vite.config.ts b/packages/playground/plugin-sfc/vite.config.ts new file mode 100644 index 000000000..17ff095fe --- /dev/null +++ b/packages/playground/plugin-sfc/vite.config.ts @@ -0,0 +1,15 @@ +import vue from '@vitejs/plugin-vue' +import { defineConfig } from 'vite' +import inspect from 'vite-plugin-inspect' +import VueDevTools from 'vite-plugin-vue-devtools' +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + VueDevTools(), + inspect(), + ], + server: { + port: 3000, + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef3db9fd0..8ef5ddc92 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -283,6 +283,9 @@ importers: vue-virtual-scroller: specifier: 2.0.0-beta.8 version: 2.0.0-beta.8(vue@3.5.13(typescript@5.7.2)) + vue3-sfc-loader: + specifier: ^0.9.5 + version: 0.9.5(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2)) devDependencies: '@iconify/json': specifier: ^2.2.277 @@ -705,6 +708,31 @@ importers: specifier: workspace:* version: link:../../vite + packages/playground/plugin-sfc: + dependencies: + vue: + specifier: ^3.5.13 + version: 3.5.13(typescript@5.7.2) + devDependencies: + '@vitejs/plugin-vue': + specifier: ^5.2.1 + version: 5.2.1(vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(sass-embedded@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.2)) + '@vue/devtools': + specifier: workspace:^ + version: link:../../devtools + typescript: + specifier: ^5.7.2 + version: 5.7.2 + vite: + specifier: ^6.0.1 + version: 6.0.7(@types/node@22.10.5)(jiti@2.4.2)(sass-embedded@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite-plugin-inspect: + specifier: 0.8.9 + version: 0.8.9(rollup@4.29.2)(vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(sass-embedded@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + vite-plugin-vue-devtools: + specifier: workspace:* + version: link:../../vite + packages/playground/ui: dependencies: '@unocss/reset': @@ -753,13 +781,13 @@ importers: version: 7.25.9(@babel/core@7.26.0)(eslint@9.17.0(jiti@2.4.2)) '@vue/cli-plugin-babel': specifier: ~5.0.8 - version: 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))(core-js@3.39.0)(esbuild@0.24.2)(vue@3.5.13(typescript@5.7.2)) + version: 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))(core-js@3.39.0)(esbuild@0.24.2)(vue@3.5.13(typescript@5.7.2)) '@vue/cli-plugin-eslint': specifier: ~5.0.8 - version: 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2)) + version: 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2)) '@vue/cli-service': specifier: ~5.0.8 - version: 5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3) + version: 5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3) '@vue/devtools': specifier: workspace:* version: link:../../devtools @@ -1192,6 +1220,27 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-dynamic-import@7.18.6': + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6': + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-proposal-optional-chaining@7.21.0': + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} @@ -1232,6 +1281,16 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.25.9': resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} engines: {node: '>=6.9.0'} @@ -2419,51 +2478,61 @@ packages: resolution: {integrity: sha512-h4VgxxmzmtXLLYNDaUcQevCmPYX6zSj4SwKuzY7SR5YlnCBYsmvfYORXgiU8axhkFCDtQF3RW5LIXT8B14Qykg==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.29.2': resolution: {integrity: sha512-EObwZ45eMmWZQ1w4N7qy4+G1lKHm6mcOwDa+P2+61qxWu1PtQJ/lz2CNJ7W3CkfgN0FQ7cBUy2tk6D5yR4KeXw==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.29.2': resolution: {integrity: sha512-Z7zXVHEXg1elbbYiP/29pPwlJtLeXzjrj4241/kCcECds8Zg9fDfURWbZHRIKrEriAPS8wnVtdl4ZJBvZr325w==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.29.2': resolution: {integrity: sha512-TF4kxkPq+SudS/r4zGPf0G08Bl7+NZcFrUSR3484WwsHgGgJyPQRLCNrQ/R5J6VzxfEeQR9XRpc8m2t7lD6SEQ==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.29.2': resolution: {integrity: sha512-kO9Fv5zZuyj2zB2af4KA29QF6t7YSxKrY7sxZXfw8koDQj9bx5Tk5RjH+kWKFKok0wLGTi4bG117h31N+TIBEg==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.29.2': resolution: {integrity: sha512-gIh776X7UCBaetVJGdjXPFurGsdWwHHinwRnC5JlLADU8Yk0EdS/Y+dMO264OjJFo7MXQ5PX4xVFbxrwK8zLqA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.29.2': resolution: {integrity: sha512-YgikssQ5UNq1GoFKZydMEkhKbjlUq7G3h8j6yWXLBF24KyoA5BcMtaOUAXq5sydPmOPEqB6kCyJpyifSpCfQ0w==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.29.2': resolution: {integrity: sha512-9ouIR2vFWCyL0Z50dfnon5nOrpDdkTG9lNDs7MRaienQKlTyHcDxplmk3IbhFlutpifBSBr2H4rVILwmMLcaMA==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.29.2': resolution: {integrity: sha512-ckBBNRN/F+NoSUDENDIJ2U9UWmIODgwDB/vEXCPOMcsco1niTkxTXa6D2Y/pvCnpzaidvY2qVxGzLilNs9BSzw==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.29.2': resolution: {integrity: sha512-jycl1wL4AgM2aBFJFlpll/kGvAjhK8GSbEmFT5v3KC3rP/b5xZ1KQmv0vQQ8Bzb2ieFQ0kZFPRMbre/l3Bu9JA==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.29.2': resolution: {integrity: sha512-S2V0LlcOiYkNGlRAWZwwUdNgdZBfvsDHW0wYosYFV3c7aKgEVcbonetZXsHv7jRTTX+oY5nDYT4W6B1oUpMNOg==} @@ -8013,6 +8082,9 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spark-md5@3.0.2: + resolution: {integrity: sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==} + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -8952,6 +9024,9 @@ packages: vue-style-loader@4.1.3: resolution: {integrity: sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==} + vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + vue-template-es2015-compiler@1.9.1: resolution: {integrity: sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==} @@ -8966,6 +9041,9 @@ packages: peerDependencies: vue: ^3.2.0 + vue3-sfc-loader@0.9.5: + resolution: {integrity: sha512-RuzFftbFjdYV81zKnL1/SsaOhq5DXtxuclU3auo8pyI3uprvyD9ssgvxNQ5otBYnqePGCD8P+qgDlVaRPyMvfg==} + vue@2.7.16: resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==} deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. @@ -9700,6 +9778,27 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0) + + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) + + '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -9734,6 +9833,16 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -11782,11 +11891,11 @@ snapshots: '@vue/cli-overlay@5.0.8': {} - '@vue/cli-plugin-babel@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))(core-js@3.39.0)(esbuild@0.24.2)(vue@3.5.13(typescript@5.7.2))': + '@vue/cli-plugin-babel@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))(core-js@3.39.0)(esbuild@0.24.2)(vue@3.5.13(typescript@5.7.2))': dependencies: '@babel/core': 7.26.0 '@vue/babel-preset-app': 5.0.8(@babel/core@7.26.0)(core-js@3.39.0)(vue@3.5.13(typescript@5.7.2)) - '@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3) + '@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3) '@vue/cli-shared-utils': 5.0.8 babel-loader: 8.4.1(@babel/core@7.26.0)(webpack@5.97.1(esbuild@0.24.2)) thread-loader: 3.0.4(webpack@5.97.1(esbuild@0.24.2)) @@ -11801,9 +11910,9 @@ snapshots: - vue - webpack-cli - '@vue/cli-plugin-eslint@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2))': + '@vue/cli-plugin-eslint@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2))': dependencies: - '@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3) + '@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3) '@vue/cli-shared-utils': 5.0.8 eslint: 9.17.0(jiti@2.4.2) eslint-webpack-plugin: 3.2.0(eslint@9.17.0(jiti@2.4.2))(webpack@5.97.1(esbuild@0.24.2)) @@ -11817,29 +11926,29 @@ snapshots: - uglify-js - webpack-cli - '@vue/cli-plugin-router@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))': + '@vue/cli-plugin-router@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))': dependencies: - '@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3) + '@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3) '@vue/cli-shared-utils': 5.0.8 transitivePeerDependencies: - encoding - '@vue/cli-plugin-vuex@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))': + '@vue/cli-plugin-vuex@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3))': dependencies: - '@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3) + '@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3) - '@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3)': + '@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3)': dependencies: '@babel/helper-compilation-targets': 7.25.9 '@soda/friendly-errors-webpack-plugin': 1.8.1(webpack@5.97.1(esbuild@0.24.2)) '@soda/get-current-script': 1.0.2 '@types/minimist': 1.2.5 '@vue/cli-overlay': 5.0.8 - '@vue/cli-plugin-router': 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3)) - '@vue/cli-plugin-vuex': 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3)) + '@vue/cli-plugin-router': 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3)) + '@vue/cli-plugin-vuex': 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.13)(esbuild@0.24.2)(lodash@4.17.21)(vue-template-compiler@2.7.16)(vue@3.5.13(typescript@5.7.2))(webpack-sources@3.2.3)) '@vue/cli-shared-utils': 5.0.8 '@vue/component-compiler-utils': 3.3.0(lodash@4.17.21) - '@vue/vue-loader-v15': vue-loader@15.11.1(@vue/compiler-sfc@3.5.13)(css-loader@6.11.0(webpack@5.97.1(esbuild@0.24.2)))(lodash@4.17.21)(webpack@5.97.1(esbuild@0.24.2)) + '@vue/vue-loader-v15': vue-loader@15.11.1(@vue/compiler-sfc@3.5.13)(css-loader@6.11.0(webpack@5.97.1(esbuild@0.24.2)))(lodash@4.17.21)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.24.2)) '@vue/web-component-wrapper': 1.3.0 acorn: 8.14.0 acorn-walk: 8.3.4 @@ -11886,6 +11995,7 @@ snapshots: webpack-virtual-modules: 0.4.6 whatwg-fetch: 3.6.20 optionalDependencies: + vue-template-compiler: 2.7.16 webpack-sources: 3.2.3 transitivePeerDependencies: - '@parcel/css' @@ -17378,6 +17488,8 @@ snapshots: space-separated-tokens@2.0.2: {} + spark-md5@3.0.2: {} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -18404,7 +18516,7 @@ snapshots: vue-hot-reload-api@2.3.4: {} - vue-loader@15.11.1(@vue/compiler-sfc@3.5.13)(css-loader@6.11.0(webpack@5.97.1(esbuild@0.24.2)))(lodash@4.17.21)(webpack@5.97.1(esbuild@0.24.2)): + vue-loader@15.11.1(@vue/compiler-sfc@3.5.13)(css-loader@6.11.0(webpack@5.97.1(esbuild@0.24.2)))(lodash@4.17.21)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.24.2)): dependencies: '@vue/component-compiler-utils': 3.3.0(lodash@4.17.21) css-loader: 6.11.0(webpack@5.97.1(esbuild@0.24.2)) @@ -18415,6 +18527,7 @@ snapshots: webpack: 5.97.1(esbuild@0.24.2) optionalDependencies: '@vue/compiler-sfc': 3.5.13 + vue-template-compiler: 2.7.16 transitivePeerDependencies: - arc-templates - atpl @@ -18498,6 +18611,11 @@ snapshots: hash-sum: 1.0.2 loader-utils: 1.4.2 + vue-template-compiler@2.7.16: + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + vue-template-es2015-compiler@1.9.1: {} vue-tsc@2.2.0(typescript@5.7.2): @@ -18513,6 +18631,84 @@ snapshots: vue-observe-visibility: 2.0.0-alpha.1(vue@3.5.13(typescript@5.7.2)) vue-resize: 2.0.0-alpha.1(vue@3.5.13(typescript@5.7.2)) + vue3-sfc-loader@0.9.5(lodash@4.17.21)(vue@3.5.13(typescript@5.7.2)): + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/core': 7.26.0 + '@babel/generator': 7.26.3 + '@babel/parser': 7.26.3 + '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.26.0) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.26.0) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.26.0) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) + '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) + '@vue/babel-preset-jsx': 1.4.0(@babel/core@7.26.0)(vue@3.5.13(typescript@5.7.2)) + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-sfc': 3.5.13 + '@vue/component-compiler-utils': 3.3.0(lodash@4.17.21) + '@vue/shared': 3.5.13 + spark-md5: 3.0.2 + vue-template-compiler: 2.7.16 + transitivePeerDependencies: + - arc-templates + - atpl + - babel-core + - bracket-template + - coffee-script + - dot + - dust + - dustjs-helpers + - dustjs-linkedin + - eco + - ect + - ejs + - haml-coffee + - hamlet + - hamljs + - handlebars + - hogan.js + - htmling + - jade + - jazz + - jqtpl + - just + - liquid-node + - liquor + - lodash + - marko + - mote + - mustache + - nunjucks + - plates + - pug + - qejs + - ractive + - razor-tmpl + - react + - react-dom + - slm + - squirrelly + - supports-color + - swig + - swig-templates + - teacup + - templayed + - then-jade + - then-pug + - tinyliquid + - toffee + - twig + - twing + - underscore + - vash + - velocityjs + - vue + - walrus + - whiskers + vue@2.7.16: dependencies: '@vue/compiler-sfc': 2.7.16