]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
workflow: move private packages to separate directory
authorEvan You <evan@vuejs.org>
Mon, 12 Aug 2024 00:02:03 +0000 (08:02 +0800)
committerEvan You <evan@vuejs.org>
Thu, 15 Aug 2024 07:45:57 +0000 (15:45 +0800)
79 files changed:
.github/contributing.md
.github/renovate.json5
eslint.config.js
package.json
packages-private/dts-built-test/README.md [moved from packages/dts-built-test/README.md with 65% similarity]
packages-private/dts-built-test/package.json [moved from packages/dts-built-test/package.json with 85% similarity]
packages-private/dts-built-test/src/index.ts [moved from packages/dts-built-test/src/index.ts with 100% similarity]
packages-private/dts-built-test/tsconfig.json [moved from packages/dts-built-test/tsconfig.json with 100% similarity]
packages-private/dts-test/README.md [moved from packages/dts-test/README.md with 52% similarity]
packages-private/dts-test/appDirective.test-d.ts [moved from packages/dts-test/appDirective.test-d.ts with 100% similarity]
packages-private/dts-test/appUse.test-d.ts [moved from packages/dts-test/appUse.test-d.ts with 100% similarity]
packages-private/dts-test/built.test-d.ts [moved from packages/dts-test/built.test-d.ts with 82% similarity]
packages-private/dts-test/compiler.test-d.ts [moved from packages/dts-test/compiler.test-d.ts with 100% similarity]
packages-private/dts-test/component.test-d.ts [moved from packages/dts-test/component.test-d.ts with 100% similarity]
packages-private/dts-test/componentInstance.test-d.tsx [moved from packages/dts-test/componentInstance.test-d.tsx with 100% similarity]
packages-private/dts-test/componentTypeExtensions.test-d.tsx [moved from packages/dts-test/componentTypeExtensions.test-d.tsx with 100% similarity]
packages-private/dts-test/defineComponent.test-d.tsx [moved from packages/dts-test/defineComponent.test-d.tsx with 100% similarity]
packages-private/dts-test/defineCustomElement.test-d.ts [moved from packages/dts-test/defineCustomElement.test-d.ts with 100% similarity]
packages-private/dts-test/extractProps.test-d.ts [moved from packages/dts-test/extractProps.test-d.ts with 100% similarity]
packages-private/dts-test/functionalComponent.test-d.tsx [moved from packages/dts-test/functionalComponent.test-d.tsx with 100% similarity]
packages-private/dts-test/h.test-d.ts [moved from packages/dts-test/h.test-d.ts with 100% similarity]
packages-private/dts-test/inject.test-d.ts [moved from packages/dts-test/inject.test-d.ts with 100% similarity]
packages-private/dts-test/package.json [moved from packages/dts-test/package.json with 74% similarity]
packages-private/dts-test/reactivity.test-d.ts [moved from packages/dts-test/reactivity.test-d.ts with 100% similarity]
packages-private/dts-test/ref.test-d.ts [moved from packages/dts-test/ref.test-d.ts with 100% similarity]
packages-private/dts-test/setupHelpers.test-d.ts [moved from packages/dts-test/setupHelpers.test-d.ts with 100% similarity]
packages-private/dts-test/tsconfig.test.json [moved from packages/dts-test/tsconfig.test.json with 100% similarity]
packages-private/dts-test/tsx.test-d.tsx [moved from packages/dts-test/tsx.test-d.tsx with 100% similarity]
packages-private/dts-test/utils.d.ts [moved from packages/dts-test/utils.d.ts with 100% similarity]
packages-private/dts-test/watch.test-d.ts [moved from packages/dts-test/watch.test-d.ts with 100% similarity]
packages-private/sfc-playground/README.md [moved from packages/sfc-playground/README.md with 100% similarity]
packages-private/sfc-playground/index.html [moved from packages/sfc-playground/index.html with 100% similarity]
packages-private/sfc-playground/package.json [moved from packages/sfc-playground/package.json with 90% similarity]
packages-private/sfc-playground/public/logo.svg [moved from packages/sfc-playground/public/logo.svg with 100% similarity]
packages-private/sfc-playground/src/App.vue [moved from packages/sfc-playground/src/App.vue with 100% similarity]
packages-private/sfc-playground/src/Header.vue [moved from packages/sfc-playground/src/Header.vue with 98% similarity]
packages-private/sfc-playground/src/VersionSelect.vue [moved from packages/sfc-playground/src/VersionSelect.vue with 100% similarity]
packages-private/sfc-playground/src/download/download.ts [moved from packages/sfc-playground/src/download/download.ts with 100% similarity]
packages-private/sfc-playground/src/download/template/README.md [moved from packages/sfc-playground/src/download/template/README.md with 100% similarity]
packages-private/sfc-playground/src/download/template/index.html [moved from packages/sfc-playground/src/download/template/index.html with 100% similarity]
packages-private/sfc-playground/src/download/template/main.js [moved from packages/sfc-playground/src/download/template/main.js with 100% similarity]
packages-private/sfc-playground/src/download/template/package.json [moved from packages/sfc-playground/src/download/template/package.json with 100% similarity]
packages-private/sfc-playground/src/download/template/vite.config.js [moved from packages/sfc-playground/src/download/template/vite.config.js with 100% similarity]
packages-private/sfc-playground/src/icons/Copy.vue [moved from packages/sfc-playground/src/icons/Copy.vue with 100% similarity]
packages-private/sfc-playground/src/icons/Download.vue [moved from packages/sfc-playground/src/icons/Download.vue with 100% similarity]
packages-private/sfc-playground/src/icons/GitHub.vue [moved from packages/sfc-playground/src/icons/GitHub.vue with 100% similarity]
packages-private/sfc-playground/src/icons/Moon.vue [moved from packages/sfc-playground/src/icons/Moon.vue with 100% similarity]
packages-private/sfc-playground/src/icons/Reload.vue [moved from packages/sfc-playground/src/icons/Reload.vue with 100% similarity]
packages-private/sfc-playground/src/icons/Share.vue [moved from packages/sfc-playground/src/icons/Share.vue with 100% similarity]
packages-private/sfc-playground/src/icons/Sun.vue [moved from packages/sfc-playground/src/icons/Sun.vue with 100% similarity]
packages-private/sfc-playground/src/main.ts [moved from packages/sfc-playground/src/main.ts with 100% similarity]
packages-private/sfc-playground/src/vue-dev-proxy-prod.ts [moved from packages/sfc-playground/src/vue-dev-proxy-prod.ts with 100% similarity]
packages-private/sfc-playground/src/vue-dev-proxy.ts [moved from packages/sfc-playground/src/vue-dev-proxy.ts with 100% similarity]
packages-private/sfc-playground/src/vue-server-renderer-dev-proxy.ts [moved from packages/sfc-playground/src/vue-server-renderer-dev-proxy.ts with 100% similarity]
packages-private/sfc-playground/vercel.json [moved from packages/sfc-playground/vercel.json with 100% similarity]
packages-private/sfc-playground/vite.config.ts [moved from packages/sfc-playground/vite.config.ts with 77% similarity]
packages-private/template-explorer/README.md [moved from packages/template-explorer/README.md with 100% similarity]
packages-private/template-explorer/_redirects [moved from packages/template-explorer/_redirects with 100% similarity]
packages-private/template-explorer/index.html [moved from packages/template-explorer/index.html with 100% similarity]
packages-private/template-explorer/local.html [moved from packages/template-explorer/local.html with 100% similarity]
packages-private/template-explorer/package.json [moved from packages/template-explorer/package.json with 100% similarity]
packages-private/template-explorer/src/index.ts [moved from packages/template-explorer/src/index.ts with 100% similarity]
packages-private/template-explorer/src/options.ts [moved from packages/template-explorer/src/options.ts with 100% similarity]
packages-private/template-explorer/src/theme.ts [moved from packages/template-explorer/src/theme.ts with 100% similarity]
packages-private/template-explorer/style.css [moved from packages/template-explorer/style.css with 100% similarity]
packages-private/vite-debug/App.vue [new file with mode: 0644]
packages-private/vite-debug/README.md [new file with mode: 0644]
packages-private/vite-debug/index.html [new file with mode: 0644]
packages-private/vite-debug/main.ts [new file with mode: 0644]
packages-private/vite-debug/package.json [new file with mode: 0644]
packages-private/vite-debug/tsconfig.json [new file with mode: 0644]
packages-private/vite-debug/vite.config.ts [new file with mode: 0644]
pnpm-lock.yaml
pnpm-workspace.yaml
rollup.config.js
scripts/build.js
scripts/utils.js
tsconfig.json
vitest.config.ts

index 6439f12398240815c5b78e24ced32840ce81e7a6..2554582b887f753e1e57f8d6f7b077138674ae8f 100644 (file)
@@ -236,7 +236,7 @@ Tests that test against source code are grouped under `nr test-unit`, while test
 
 ### `nr test-dts`
 
-Runs `nr build-dts` first, then verify the type tests in `packages/dts-test` are working correctly against the actual built type declarations.
+Runs `nr build-dts` first, then verify the type tests in `packages-private/dts-test` are working correctly against the actual built type declarations.
 
 ## Project Structure
 
@@ -335,7 +335,7 @@ Test coverage is continuously deployed at https://coverage.vuejs.org. PRs that i
 
 ### Testing Type Definition Correctness
 
-Type tests are located in the `packages/dts-test` directory. To run the dts tests, run `nr test-dts`. Note that the type test requires all relevant `*.d.ts` files to be built first (and the script does it for you). Once the `d.ts` files are built and up-to-date, the tests can be re-run by running `nr test-dts-only`.
+Type tests are located in the `packages-private/dts-test` directory. To run the dts tests, run `nr test-dts`. Note that the type test requires all relevant `*.d.ts` files to be built first (and the script does it for you). Once the `d.ts` files are built and up-to-date, the tests can be re-run by running `nr test-dts-only`.
 
 ## Financial Contribution
 
index e9724bb5aa68e500e5a9dbb25d5a3cf840bbf93d..6acc5da248e7dd3f97027212fd6a982da8495de8 100644 (file)
@@ -17,8 +17,8 @@
     {
       groupName: 'playground',
       matchFileNames: [
-        'packages/sfc-playground/package.json',
-        'packages/template-explorer/package.json',
+        'packages-private/sfc-playground/package.json',
+        'packages-private/template-explorer/package.json',
       ],
     },
     {
index 334787fd9886a367ff9b6ef2a7d7e19b19a30f69..2e752e19107d607ecc2a4daf3fc9530eb19f03de 100644 (file)
@@ -76,7 +76,11 @@ export default tseslint.config(
 
   // tests, no restrictions (runs in Node / Vitest with jsdom)
   {
-    files: ['**/__tests__/**', 'packages/dts-test/**'],
+    files: [
+      '**/__tests__/**',
+      'packages-private/dts-test/**',
+      'packages-private/dts-build-test/**',
+    ],
     plugins: { vitest },
     languageOptions: {
       globals: {
@@ -119,7 +123,10 @@ export default tseslint.config(
 
   // Private package, browser only + no syntax restrictions
   {
-    files: ['packages/template-explorer/**', 'packages/sfc-playground/**'],
+    files: [
+      'packages-private/template-explorer/**',
+      'packages-private/sfc-playground/**',
+    ],
     rules: {
       'no-restricted-globals': ['error', ...NodeGlobals],
       'no-restricted-syntax': ['error', banConstEnum],
index 7f5b3f5988b6bb3821215a1853b6c018834d58db..82055fbd478109fa5cc936900a2951cf9dea185b 100644 (file)
@@ -20,7 +20,7 @@
     "test-unit": "vitest -c vitest.unit.config.ts",
     "test-e2e": "node scripts/build.js vue -f global -d && vitest -c vitest.e2e.config.ts",
     "test-dts": "run-s build-dts test-dts-only",
-    "test-dts-only": "tsc -p packages/dts-built-test/tsconfig.json && tsc -p ./packages/dts-test/tsconfig.test.json",
+    "test-dts-only": "tsc -p packages-private/dts-built-test/tsconfig.json && tsc -p ./packages-private/dts-test/tsconfig.test.json",
     "test-coverage": "vitest -c vitest.unit.config.ts --coverage",
     "test-bench": "vitest bench",
     "release": "node scripts/release.js",
@@ -29,7 +29,7 @@
     "dev-compiler": "run-p \"dev template-explorer\" serve",
     "dev-sfc": "run-s dev-sfc-prepare dev-sfc-run",
     "dev-sfc-prepare": "node scripts/pre-dev-sfc.js || npm run build-all-cjs",
-    "dev-sfc-serve": "vite packages/sfc-playground --host",
+    "dev-sfc-serve": "vite packages-private/sfc-playground --host",
     "dev-sfc-run": "run-p \"dev compiler-sfc -f esm-browser\" \"dev vue -if esm-bundler-runtime\" \"dev vue -ipf esm-browser-runtime\" \"dev server-renderer -if esm-bundler\" dev-sfc-serve",
     "serve": "serve",
     "open": "open http://localhost:3000/packages/template-explorer/local.html",
@@ -38,7 +38,7 @@
     "build-runtime-esm": "node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler-runtime && node scripts/build.js vue -f esm-browser-runtime",
     "build-browser-esm": "node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler && node scripts/build.js vue -f esm-browser",
     "build-ssr-esm": "node scripts/build.js compiler-sfc server-renderer -f esm-browser",
-    "build-sfc-playground-self": "cd packages/sfc-playground && npm run build",
+    "build-sfc-playground-self": "cd packages-private/sfc-playground && npm run build",
     "preinstall": "npx only-allow pnpm",
     "postinstall": "simple-git-hooks"
   },
similarity index 65%
rename from packages/dts-built-test/README.md
rename to packages-private/dts-built-test/README.md
index 8191d66e32e87c24539d9e077434a1e23349ff1f..5c14f2190cc613528af3d457d7f97b21b761a0e3 100644 (file)
@@ -2,4 +2,4 @@
 
 This package is private and for testing only. It is used to verify edge cases for external libraries that build their types using Vue core types - e.g. Vuetify as in [#8376](https://github.com/vuejs/core/issues/8376).
 
-When running the `build-dts` task, this package's types are built alongside other packages. Then, during `test-dts-only` it is imported and used in [`packages/dts-test/built.test-d.ts`](https://github.com/vuejs/core/blob/main/packages/dts-test/built.test-d.ts) to verify that the built types work correctly.
+When running the `build-dts` task, this package's types are built alongside other packages. Then, during `test-dts-only` it is imported and used in [`packages-private/dts-test/built.test-d.ts`](https://github.com/vuejs/core/blob/main/packages-private/dts-test/built.test-d.ts) to verify that the built types work correctly.
similarity index 85%
rename from packages/dts-built-test/package.json
rename to packages-private/dts-built-test/package.json
index dd81cab68d608d909ba4014eea995e005a75ac5c..ffcaa4a676a4b21a6f476f329faaabb0f2f5a1e1 100644 (file)
@@ -1,5 +1,5 @@
 {
-  "name": "@vue/dts-built-test",
+  "name": "dts-built-test",
   "private": true,
   "version": "0.0.0",
   "types": "dist/index.d.ts",
similarity index 52%
rename from packages/dts-test/README.md
rename to packages-private/dts-test/README.md
index 6f1b1da1d0e50d9a297ca32fc997e393a37035c4..075fc3431cdfafdbeb8908df5fbefc5653a730bf 100644 (file)
@@ -4,4 +4,4 @@ Tests TypeScript types to ensure the types remain as expected.
 
 - This directory is included in the root `tsconfig.json`, where package imports are aliased to `src` directories, so in IDEs and the `pnpm check` script the types are validated against source code.
 
-- When running `tsc` with `packages/dts-test/tsconfig.test.json`, packages are resolved using normal `node` resolution, so the types are validated against actual **built** types. This requires the types to be built first via `pnpm build-types`.
+- When running `tsc` with `packages-private/dts-test/tsconfig.test.json`, packages are resolved using normal `node` resolution, so the types are validated against actual **built** types. This requires the types to be built first via `pnpm build-dts`.
similarity index 82%
rename from packages/dts-test/built.test-d.ts
rename to packages-private/dts-test/built.test-d.ts
index ebff2955cfb62b13862f0857ca140d3425e85b27..c2b4fb6d8395cd9f4583df149ef5543e7b703e85 100644 (file)
@@ -1,4 +1,4 @@
-import { CustomPropsNotErased } from '@vue/dts-built-test'
+import { CustomPropsNotErased } from 'dts-built-test/src/index'
 import { describe, expectType } from './utils'
 
 declare module 'vue' {
similarity index 74%
rename from packages/dts-test/package.json
rename to packages-private/dts-test/package.json
index a6ea96bfa86934800cc79fae979641b20631f6c7..72b1b6ea6302c1b65bbbf8130a296255984f6a94 100644 (file)
@@ -4,6 +4,6 @@
   "version": "0.0.0",
   "dependencies": {
     "vue": "workspace:*",
-    "@vue/dts-built-test": "workspace:*"
+    "dts-built-test": "workspace:*"
   }
 }
similarity index 90%
rename from packages/sfc-playground/package.json
rename to packages-private/sfc-playground/package.json
index 9d38811c7694308ece58140ee30056489827c38d..b43247e9cb98ebc3f58b7204e83e3c341c4f16ba 100644 (file)
@@ -9,7 +9,7 @@
     "serve": "vite preview"
   },
   "devDependencies": {
-    "@vitejs/plugin-vue": "^5.1.2",
+    "@vitejs/plugin-vue": "catalog:",
     "vite": "catalog:"
   },
   "dependencies": {
similarity index 98%
rename from packages/sfc-playground/src/Header.vue
rename to packages-private/sfc-playground/src/Header.vue
index 8e810d89441c4557860365dc58781de021240969..922a2b111aca029245e26b4ace1910fab867a811 100644 (file)
@@ -125,7 +125,7 @@ function toggleDark() {
         <Download />
       </button>
       <a
-        href="https://github.com/vuejs/core/tree/main/packages/sfc-playground"
+        href="https://github.com/vuejs/core/tree/main/packages-private/sfc-playground"
         target="_blank"
         title="View on GitHub"
         class="github"
similarity index 77%
rename from packages/sfc-playground/vite.config.ts
rename to packages-private/sfc-playground/vite.config.ts
index ee9bbd4abf46cadd5532cf5d02a4409ff72cfc75..2e77f1970a7f3ac891ba7dcd958ecc27f9f645bd 100644 (file)
@@ -34,7 +34,7 @@ function copyVuePlugin(): Plugin {
     name: 'copy-vue',
     generateBundle() {
       const copyFile = (file: string) => {
-        const filePath = path.resolve(__dirname, file)
+        const filePath = path.resolve(__dirname, '../../packages', file)
         const basename = path.basename(file)
         if (!fs.existsSync(filePath)) {
           throw new Error(
@@ -49,11 +49,11 @@ function copyVuePlugin(): Plugin {
         })
       }
 
-      copyFile(`../vue/dist/vue.esm-browser.js`)
-      copyFile(`../vue/dist/vue.esm-browser.prod.js`)
-      copyFile(`../vue/dist/vue.runtime.esm-browser.js`)
-      copyFile(`../vue/dist/vue.runtime.esm-browser.prod.js`)
-      copyFile(`../server-renderer/dist/server-renderer.esm-browser.js`)
+      copyFile(`vue/dist/vue.esm-browser.js`)
+      copyFile(`vue/dist/vue.esm-browser.prod.js`)
+      copyFile(`vue/dist/vue.runtime.esm-browser.js`)
+      copyFile(`vue/dist/vue.runtime.esm-browser.prod.js`)
+      copyFile(`server-renderer/dist/server-renderer.esm-browser.js`)
     },
   }
 }
diff --git a/packages-private/vite-debug/App.vue b/packages-private/vite-debug/App.vue
new file mode 100644 (file)
index 0000000..95b3be8
--- /dev/null
@@ -0,0 +1,15 @@
+<script setup>
+import { ref } from 'vue'
+
+const count = ref(0)
+</script>
+
+<template>
+  <button @click="count++">{{ count }}</button>
+</template>
+
+<style>
+button {
+  color: red;
+}
+</style>
diff --git a/packages-private/vite-debug/README.md b/packages-private/vite-debug/README.md
new file mode 100644 (file)
index 0000000..4f035ae
--- /dev/null
@@ -0,0 +1 @@
+This package is used for debugging issues that are related to `@vitejs/plugin-vue`, or can only be reproduced in a Vite-based setup. It aims to be as close to production as possible so Vue packages are resolved to the dist files instead of source.
diff --git a/packages-private/vite-debug/index.html b/packages-private/vite-debug/index.html
new file mode 100644 (file)
index 0000000..79052a0
--- /dev/null
@@ -0,0 +1,2 @@
+<script type="module" src="./main.ts"></script>
+<div id="app"></div>
diff --git a/packages-private/vite-debug/main.ts b/packages-private/vite-debug/main.ts
new file mode 100644 (file)
index 0000000..52668a0
--- /dev/null
@@ -0,0 +1,6 @@
+import { createApp } from 'vue'
+import App from './App.vue'
+
+const app = createApp(App)
+
+app.mount('#app')
diff --git a/packages-private/vite-debug/package.json b/packages-private/vite-debug/package.json
new file mode 100644 (file)
index 0000000..b0f2bad
--- /dev/null
@@ -0,0 +1,15 @@
+{
+  "name": "vite-debug",
+  "private": true,
+  "type": "module",
+  "scripts": {
+    "dev": "vite",
+    "build": "vite build",
+    "serve": "vite preview"
+  },
+  "devDependencies": {
+    "@vitejs/plugin-vue": "catalog:",
+    "vite": "catalog:",
+    "vue": "workspace:*"
+  }
+}
diff --git a/packages-private/vite-debug/tsconfig.json b/packages-private/vite-debug/tsconfig.json
new file mode 100644 (file)
index 0000000..ceecb1c
--- /dev/null
@@ -0,0 +1,7 @@
+{
+  "compilerOptions": {
+    "module": "esnext",
+    "moduleResolution": "bundler"
+  },
+  "include": ["./*"]
+}
diff --git a/packages-private/vite-debug/vite.config.ts b/packages-private/vite-debug/vite.config.ts
new file mode 100644 (file)
index 0000000..c40aa3c
--- /dev/null
@@ -0,0 +1,6 @@
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+
+export default defineConfig({
+  plugins: [vue()],
+})
index 5bd49010454cb0080875a46747b014102a20afe6..1d4b40652b4e62a85a34044dcbdb7051a1d59fd8 100644 (file)
@@ -12,18 +12,21 @@ catalogs:
     '@babel/types':
       specifier: ^7.24.7
       version: 7.24.7
+    '@vitejs/plugin-vue':
+      specifier: ^5.1.2
+      version: 5.1.2
     estree-walker:
       specifier: ^2.0.2
       version: 2.0.2
     magic-string:
       specifier: ^0.30.10
-      version: 0.30.10
+      version: 0.30.11
     source-map-js:
       specifier: ^1.2.0
       version: 1.2.0
     vite:
-      specifier: ^5.3.3
-      version: 5.3.3
+      specifier: ^5.4.0
+      version: 5.4.0
 
 importers:
 
@@ -169,11 +172,75 @@ importers:
         version: 8.0.0(eslint@9.8.0)(typescript@5.4.5)
       vite:
         specifier: 'catalog:'
-        version: 5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
+        version: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
       vitest:
         specifier: ^1.6.0
         version: 1.6.0(@types/node@20.14.14)(jsdom@24.1.1)(sass@1.77.8)(terser@5.31.1)
 
+  packages-private/dts-built-test:
+    dependencies:
+      '@vue/reactivity':
+        specifier: workspace:*
+        version: link:../../packages/reactivity
+      '@vue/shared':
+        specifier: workspace:*
+        version: link:../../packages/shared
+      vue:
+        specifier: workspace:*
+        version: link:../../packages/vue
+
+  packages-private/dts-test:
+    dependencies:
+      dts-built-test:
+        specifier: workspace:*
+        version: link:../dts-built-test
+      vue:
+        specifier: workspace:*
+        version: link:../../packages/vue
+
+  packages-private/sfc-playground:
+    dependencies:
+      '@vue/repl':
+        specifier: ^4.3.1
+        version: 4.3.1
+      file-saver:
+        specifier: ^2.0.5
+        version: 2.0.5
+      jszip:
+        specifier: ^3.10.1
+        version: 3.10.1
+      vue:
+        specifier: workspace:*
+        version: link:../../packages/vue
+    devDependencies:
+      '@vitejs/plugin-vue':
+        specifier: 'catalog:'
+        version: 5.1.2(vite@5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1))(vue@packages+vue)
+      vite:
+        specifier: 'catalog:'
+        version: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
+
+  packages-private/template-explorer:
+    dependencies:
+      monaco-editor:
+        specifier: ^0.50.0
+        version: 0.50.0
+      source-map-js:
+        specifier: ^1.2.0
+        version: 1.2.0
+
+  packages-private/vite-debug:
+    devDependencies:
+      '@vitejs/plugin-vue':
+        specifier: 'catalog:'
+        version: 5.1.2(vite@5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1))(vue@packages+vue)
+      vite:
+        specifier: 'catalog:'
+        version: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
+      vue:
+        specifier: workspace:*
+        version: link:../../packages/vue
+
   packages/compiler-core:
     dependencies:
       '@babel/parser':
@@ -227,7 +294,7 @@ importers:
         version: 2.0.2
       magic-string:
         specifier: 'catalog:'
-        version: 0.30.10
+        version: 0.30.11
       postcss:
         specifier: ^8.4.40
         version: 8.4.40
@@ -275,27 +342,6 @@ importers:
         specifier: workspace:*
         version: link:../shared
 
-  packages/dts-built-test:
-    dependencies:
-      '@vue/reactivity':
-        specifier: workspace:*
-        version: link:../reactivity
-      '@vue/shared':
-        specifier: workspace:*
-        version: link:../shared
-      vue:
-        specifier: workspace:*
-        version: link:../vue
-
-  packages/dts-test:
-    dependencies:
-      '@vue/dts-built-test':
-        specifier: workspace:*
-        version: link:../dts-built-test
-      vue:
-        specifier: workspace:*
-        version: link:../vue
-
   packages/reactivity:
     dependencies:
       '@vue/shared':
@@ -347,39 +393,8 @@ importers:
         specifier: workspace:*
         version: link:../vue
 
-  packages/sfc-playground:
-    dependencies:
-      '@vue/repl':
-        specifier: ^4.3.1
-        version: 4.3.1
-      file-saver:
-        specifier: ^2.0.5
-        version: 2.0.5
-      jszip:
-        specifier: ^3.10.1
-        version: 3.10.1
-      vue:
-        specifier: workspace:*
-        version: link:../vue
-    devDependencies:
-      '@vitejs/plugin-vue':
-        specifier: ^5.1.2
-        version: 5.1.2(vite@5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1))(vue@packages+vue)
-      vite:
-        specifier: 'catalog:'
-        version: 5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
-
   packages/shared: {}
 
-  packages/template-explorer:
-    dependencies:
-      monaco-editor:
-        specifier: ^0.50.0
-        version: 0.50.0
-      source-map-js:
-        specifier: ^1.2.0
-        version: 1.2.0
-
   packages/vue:
     dependencies:
       '@vue/compiler-dom':
@@ -964,161 +979,81 @@ packages:
       rollup:
         optional: true
 
-  '@rollup/rollup-android-arm-eabi@4.18.0':
-    resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==}
-    cpu: [arm]
-    os: [android]
-
   '@rollup/rollup-android-arm-eabi@4.20.0':
     resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==}
     cpu: [arm]
     os: [android]
 
-  '@rollup/rollup-android-arm64@4.18.0':
-    resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==}
-    cpu: [arm64]
-    os: [android]
-
   '@rollup/rollup-android-arm64@4.20.0':
     resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==}
     cpu: [arm64]
     os: [android]
 
-  '@rollup/rollup-darwin-arm64@4.18.0':
-    resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==}
-    cpu: [arm64]
-    os: [darwin]
-
   '@rollup/rollup-darwin-arm64@4.20.0':
     resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==}
     cpu: [arm64]
     os: [darwin]
 
-  '@rollup/rollup-darwin-x64@4.18.0':
-    resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==}
-    cpu: [x64]
-    os: [darwin]
-
   '@rollup/rollup-darwin-x64@4.20.0':
     resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==}
     cpu: [x64]
     os: [darwin]
 
-  '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
-    resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==}
-    cpu: [arm]
-    os: [linux]
-
   '@rollup/rollup-linux-arm-gnueabihf@4.20.0':
     resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==}
     cpu: [arm]
     os: [linux]
 
-  '@rollup/rollup-linux-arm-musleabihf@4.18.0':
-    resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==}
-    cpu: [arm]
-    os: [linux]
-
   '@rollup/rollup-linux-arm-musleabihf@4.20.0':
     resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==}
     cpu: [arm]
     os: [linux]
 
-  '@rollup/rollup-linux-arm64-gnu@4.18.0':
-    resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==}
-    cpu: [arm64]
-    os: [linux]
-
   '@rollup/rollup-linux-arm64-gnu@4.20.0':
     resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==}
     cpu: [arm64]
     os: [linux]
 
-  '@rollup/rollup-linux-arm64-musl@4.18.0':
-    resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==}
-    cpu: [arm64]
-    os: [linux]
-
   '@rollup/rollup-linux-arm64-musl@4.20.0':
     resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==}
     cpu: [arm64]
     os: [linux]
 
-  '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
-    resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==}
-    cpu: [ppc64]
-    os: [linux]
-
   '@rollup/rollup-linux-powerpc64le-gnu@4.20.0':
     resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==}
     cpu: [ppc64]
     os: [linux]
 
-  '@rollup/rollup-linux-riscv64-gnu@4.18.0':
-    resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==}
-    cpu: [riscv64]
-    os: [linux]
-
   '@rollup/rollup-linux-riscv64-gnu@4.20.0':
     resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==}
     cpu: [riscv64]
     os: [linux]
 
-  '@rollup/rollup-linux-s390x-gnu@4.18.0':
-    resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==}
-    cpu: [s390x]
-    os: [linux]
-
   '@rollup/rollup-linux-s390x-gnu@4.20.0':
     resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==}
     cpu: [s390x]
     os: [linux]
 
-  '@rollup/rollup-linux-x64-gnu@4.18.0':
-    resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==}
-    cpu: [x64]
-    os: [linux]
-
   '@rollup/rollup-linux-x64-gnu@4.20.0':
     resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==}
     cpu: [x64]
     os: [linux]
 
-  '@rollup/rollup-linux-x64-musl@4.18.0':
-    resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==}
-    cpu: [x64]
-    os: [linux]
-
   '@rollup/rollup-linux-x64-musl@4.20.0':
     resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==}
     cpu: [x64]
     os: [linux]
 
-  '@rollup/rollup-win32-arm64-msvc@4.18.0':
-    resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==}
-    cpu: [arm64]
-    os: [win32]
-
   '@rollup/rollup-win32-arm64-msvc@4.20.0':
     resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==}
     cpu: [arm64]
     os: [win32]
 
-  '@rollup/rollup-win32-ia32-msvc@4.18.0':
-    resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==}
-    cpu: [ia32]
-    os: [win32]
-
   '@rollup/rollup-win32-ia32-msvc@4.20.0':
     resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==}
     cpu: [ia32]
     os: [win32]
 
-  '@rollup/rollup-win32-x64-msvc@4.18.0':
-    resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==}
-    cpu: [x64]
-    os: [win32]
-
   '@rollup/rollup-win32-x64-msvc@4.20.0':
     resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==}
     cpu: [x64]
@@ -2582,9 +2517,6 @@ packages:
     resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
     engines: {node: '>=12'}
 
-  magic-string@0.30.10:
-    resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
-
   magic-string@0.30.11:
     resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
 
@@ -3103,11 +3035,6 @@ packages:
     peerDependencies:
       rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
 
-  rollup@4.18.0:
-    resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==}
-    engines: {node: '>=18.0.0', npm: '>=8.0.0'}
-    hasBin: true
-
   rollup@4.20.0:
     resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==}
     engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -3488,8 +3415,8 @@ packages:
     engines: {node: ^18.0.0 || >=20.0.0}
     hasBin: true
 
-  vite@5.3.3:
-    resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==}
+  vite@5.4.0:
+    resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==}
     engines: {node: ^18.0.0 || >=20.0.0}
     hasBin: true
     peerDependencies:
@@ -3497,6 +3424,7 @@ packages:
       less: '*'
       lightningcss: ^1.21.0
       sass: '*'
+      sass-embedded: '*'
       stylus: '*'
       sugarss: '*'
       terser: ^5.4.0
@@ -3509,6 +3437,8 @@ packages:
         optional: true
       sass:
         optional: true
+      sass-embedded:
+        optional: true
       stylus:
         optional: true
       sugarss:
@@ -4113,99 +4043,51 @@ snapshots:
     optionalDependencies:
       rollup: 4.20.0
 
-  '@rollup/rollup-android-arm-eabi@4.18.0':
-    optional: true
-
   '@rollup/rollup-android-arm-eabi@4.20.0':
     optional: true
 
-  '@rollup/rollup-android-arm64@4.18.0':
-    optional: true
-
   '@rollup/rollup-android-arm64@4.20.0':
     optional: true
 
-  '@rollup/rollup-darwin-arm64@4.18.0':
-    optional: true
-
   '@rollup/rollup-darwin-arm64@4.20.0':
     optional: true
 
-  '@rollup/rollup-darwin-x64@4.18.0':
-    optional: true
-
   '@rollup/rollup-darwin-x64@4.20.0':
     optional: true
 
-  '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
-    optional: true
-
   '@rollup/rollup-linux-arm-gnueabihf@4.20.0':
     optional: true
 
-  '@rollup/rollup-linux-arm-musleabihf@4.18.0':
-    optional: true
-
   '@rollup/rollup-linux-arm-musleabihf@4.20.0':
     optional: true
 
-  '@rollup/rollup-linux-arm64-gnu@4.18.0':
-    optional: true
-
   '@rollup/rollup-linux-arm64-gnu@4.20.0':
     optional: true
 
-  '@rollup/rollup-linux-arm64-musl@4.18.0':
-    optional: true
-
   '@rollup/rollup-linux-arm64-musl@4.20.0':
     optional: true
 
-  '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
-    optional: true
-
   '@rollup/rollup-linux-powerpc64le-gnu@4.20.0':
     optional: true
 
-  '@rollup/rollup-linux-riscv64-gnu@4.18.0':
-    optional: true
-
   '@rollup/rollup-linux-riscv64-gnu@4.20.0':
     optional: true
 
-  '@rollup/rollup-linux-s390x-gnu@4.18.0':
-    optional: true
-
   '@rollup/rollup-linux-s390x-gnu@4.20.0':
     optional: true
 
-  '@rollup/rollup-linux-x64-gnu@4.18.0':
-    optional: true
-
   '@rollup/rollup-linux-x64-gnu@4.20.0':
     optional: true
 
-  '@rollup/rollup-linux-x64-musl@4.18.0':
-    optional: true
-
   '@rollup/rollup-linux-x64-musl@4.20.0':
     optional: true
 
-  '@rollup/rollup-win32-arm64-msvc@4.18.0':
-    optional: true
-
   '@rollup/rollup-win32-arm64-msvc@4.20.0':
     optional: true
 
-  '@rollup/rollup-win32-ia32-msvc@4.18.0':
-    optional: true
-
   '@rollup/rollup-win32-ia32-msvc@4.20.0':
     optional: true
 
-  '@rollup/rollup-win32-x64-msvc@4.18.0':
-    optional: true
-
   '@rollup/rollup-win32-x64-msvc@4.20.0':
     optional: true
 
@@ -4441,9 +4323,9 @@ snapshots:
       '@typescript-eslint/types': 8.0.0
       eslint-visitor-keys: 3.4.3
 
-  '@vitejs/plugin-vue@5.1.2(vite@5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1))(vue@packages+vue)':
+  '@vitejs/plugin-vue@5.1.2(vite@5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1))(vue@packages+vue)':
     dependencies:
-      vite: 5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
+      vite: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
       vue: link:packages/vue
 
   '@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.14.14)(jsdom@24.1.1)(sass@1.77.8)(terser@5.31.1))':
@@ -5809,10 +5691,6 @@ snapshots:
 
   lru-cache@7.18.3: {}
 
-  magic-string@0.30.10:
-    dependencies:
-      '@jridgewell/sourcemap-codec': 1.4.15
-
   magic-string@0.30.11:
     dependencies:
       '@jridgewell/sourcemap-codec': 1.5.0
@@ -6365,28 +6243,6 @@ snapshots:
       '@rollup/plugin-inject': 5.0.5(rollup@4.20.0)
       rollup: 4.20.0
 
-  rollup@4.18.0:
-    dependencies:
-      '@types/estree': 1.0.5
-    optionalDependencies:
-      '@rollup/rollup-android-arm-eabi': 4.18.0
-      '@rollup/rollup-android-arm64': 4.18.0
-      '@rollup/rollup-darwin-arm64': 4.18.0
-      '@rollup/rollup-darwin-x64': 4.18.0
-      '@rollup/rollup-linux-arm-gnueabihf': 4.18.0
-      '@rollup/rollup-linux-arm-musleabihf': 4.18.0
-      '@rollup/rollup-linux-arm64-gnu': 4.18.0
-      '@rollup/rollup-linux-arm64-musl': 4.18.0
-      '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0
-      '@rollup/rollup-linux-riscv64-gnu': 4.18.0
-      '@rollup/rollup-linux-s390x-gnu': 4.18.0
-      '@rollup/rollup-linux-x64-gnu': 4.18.0
-      '@rollup/rollup-linux-x64-musl': 4.18.0
-      '@rollup/rollup-win32-arm64-msvc': 4.18.0
-      '@rollup/rollup-win32-ia32-msvc': 4.18.0
-      '@rollup/rollup-win32-x64-msvc': 4.18.0
-      fsevents: 2.3.3
-
   rollup@4.20.0:
     dependencies:
       '@types/estree': 1.0.5
@@ -6778,22 +6634,23 @@ snapshots:
       debug: 4.3.5
       pathe: 1.1.2
       picocolors: 1.0.1
-      vite: 5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
+      vite: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
     transitivePeerDependencies:
       - '@types/node'
       - less
       - lightningcss
       - sass
+      - sass-embedded
       - stylus
       - sugarss
       - supports-color
       - terser
 
-  vite@5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1):
+  vite@5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1):
     dependencies:
       esbuild: 0.21.5
       postcss: 8.4.40
-      rollup: 4.18.0
+      rollup: 4.20.0
     optionalDependencies:
       '@types/node': 20.14.14
       fsevents: 2.3.3
@@ -6819,7 +6676,7 @@ snapshots:
       strip-literal: 2.1.0
       tinybench: 2.8.0
       tinypool: 0.8.4
-      vite: 5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
+      vite: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
       vite-node: 1.6.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
       why-is-node-running: 2.2.2
     optionalDependencies:
@@ -6829,6 +6686,7 @@ snapshots:
       - less
       - lightningcss
       - sass
+      - sass-embedded
       - stylus
       - sugarss
       - supports-color
index fc5da1b9d7bb914119bf18cdb004364869406d67..10170d6ba21d27655ce0c6e3ba451e31b37c8d0f 100644 (file)
@@ -1,5 +1,6 @@
 packages:
   - 'packages/*'
+  - 'packages-private/*'
 
 catalog:
   '@babel/parser': ^7.24.7
@@ -7,4 +8,5 @@ catalog:
   'estree-walker': ^2.0.2
   'magic-string': ^0.30.10
   'source-map-js': ^1.2.0
-  'vite': ^5.3.3
+  'vite': ^5.4.0
+  '@vitejs/plugin-vue': ^5.1.2
index ff0da348826a53c71f51a261c5aa08670da0052f..8c29ad821ecd9d5a70ebd96b2b3f01cf3d62d126 100644 (file)
@@ -2,6 +2,7 @@
 import assert from 'node:assert/strict'
 import { createRequire } from 'node:module'
 import { fileURLToPath } from 'node:url'
+import fs from 'node:fs'
 import path from 'node:path'
 import replace from '@rollup/plugin-replace'
 import json from '@rollup/plugin-json'
@@ -33,7 +34,11 @@ const __dirname = fileURLToPath(new URL('.', import.meta.url))
 const masterVersion = require('./package.json').version
 const consolidatePkg = require('@vue/consolidate/package.json')
 
-const packagesDir = path.resolve(__dirname, 'packages')
+const privatePackages = fs.readdirSync('packages-private')
+const pkgBase = privatePackages.includes(process.env.TARGET)
+  ? `packages-private`
+  : `packages`
+const packagesDir = path.resolve(__dirname, pkgBase)
 const packageDir = path.resolve(packagesDir, process.env.TARGET)
 
 const resolve = (/** @type {string} */ p) => path.resolve(packageDir, p)
index ec111a0387e31facf7bc5edf5e8819283973cbd3..4a0aef645438ce227edfacf7bb05b177d01b0a63 100644 (file)
@@ -16,7 +16,7 @@ nr build core --formats cjs
 ```
 */
 
-import fs from 'node:fs/promises'
+import fs from 'node:fs'
 import { parseArgs } from 'node:util'
 import { existsSync, readFileSync } from 'node:fs'
 import path from 'node:path'
@@ -84,7 +84,7 @@ const sizeDir = path.resolve('temp/size')
 run()
 
 async function run() {
-  if (writeSize) await fs.mkdir(sizeDir, { recursive: true })
+  if (writeSize) fs.mkdirSync(sizeDir, { recursive: true })
   const removeCache = scanEnums()
   try {
     const resolvedTargets = targets.length
@@ -151,13 +151,18 @@ async function runParallel(maxConcurrency, source, iteratorFn) {
   return Promise.all(ret)
 }
 
+const privatePackages = fs.readdirSync('packages-private')
+
 /**
  * Builds the target.
  * @param {string} target - The target to build.
  * @returns {Promise<void>} - A promise representing the build process.
  */
 async function build(target) {
-  const pkgDir = path.resolve(`packages/${target}`)
+  const pkgBase = privatePackages.includes(target)
+    ? `packages-private`
+    : `packages`
+  const pkgDir = path.resolve(`${pkgBase}/${target}`)
   const pkg = JSON.parse(readFileSync(`${pkgDir}/package.json`, 'utf-8'))
 
   // if this is a full build (no specific targets), ignore private packages
@@ -167,7 +172,7 @@ async function build(target) {
 
   // if building a specific format, do not remove dist.
   if (!formats && existsSync(`${pkgDir}/dist`)) {
-    await fs.rm(`${pkgDir}/dist`, { recursive: true })
+    fs.rmSync(`${pkgDir}/dist`, { recursive: true })
   }
 
   const env =
@@ -232,7 +237,7 @@ async function checkFileSize(filePath) {
   if (!existsSync(filePath)) {
     return
   }
-  const file = await fs.readFile(filePath)
+  const file = fs.readFileSync(filePath)
   const fileName = path.basename(filePath)
 
   const gzipped = gzipSync(file)
@@ -247,7 +252,7 @@ async function checkFileSize(filePath) {
   )
 
   if (writeSize)
-    await fs.writeFile(
+    fs.writeFileSync(
       path.resolve(sizeDir, `${fileName}.json`),
       JSON.stringify({
         file: fileName,
index 056d95b7b09f45a7a5b5a35c8e7d5919eda22b49..3c92bf7bafb186809b1d4b4227c5a0cd94eba41d 100644 (file)
@@ -6,19 +6,22 @@ import { spawn } from 'node:child_process'
 
 const require = createRequire(import.meta.url)
 
-export const targets = fs.readdirSync('packages').filter(f => {
-  if (
-    !fs.statSync(`packages/${f}`).isDirectory() ||
-    !fs.existsSync(`packages/${f}/package.json`)
-  ) {
-    return false
-  }
-  const pkg = require(`../packages/${f}/package.json`)
-  if (pkg.private && !pkg.buildOptions) {
-    return false
-  }
-  return true
-})
+export const targets = fs
+  .readdirSync('packages')
+  .filter(f => {
+    if (
+      !fs.statSync(`packages/${f}`).isDirectory() ||
+      !fs.existsSync(`packages/${f}/package.json`)
+    ) {
+      return false
+    }
+    const pkg = require(`../packages/${f}/package.json`)
+    if (pkg.private && !pkg.buildOptions) {
+      return false
+    }
+    return true
+  })
+  .concat('template-explorer')
 
 /**
  *
index 5c0dac9906ec7689d5c89f56c9b193fcc337495e..7a6885e7ea40a9e04c15dc8d46b3c1f000a85c63 100644 (file)
   "include": [
     "packages/global.d.ts",
     "packages/*/src",
+    "packages-private/*/src",
     "packages/runtime-dom/types/jsx.d.ts",
     "packages/*/__tests__",
-    "packages/dts-test",
+    "packages-private/dts-test",
     "packages/vue/jsx-runtime",
     "scripts/*",
     "rollup.*.js"
   ],
-  "exclude": ["packages/sfc-playground/src/vue-dev-proxy*"]
+  "exclude": ["packages-private/sfc-playground/src/vue-dev-proxy*"]
 }
index f63328ab480bd0be3b8e46f65cbdfb0c446fbf32..598fe7596d578aa6bf4c1b28eb7d482e37ff49ba 100644 (file)
@@ -39,7 +39,7 @@ export default defineConfig({
         'packages/runtime-dom/src/components/Transition*',
         // mostly entries
         'packages/vue-compat/**',
-        'packages/sfc-playground/**',
+        'packages-private/**',
         'scripts/**',
       ],
     },