]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
Merge remote-tracking branch 'upstream/minor'
author三咲智子 Kevin Deng <sxzz@sxzz.moe>
Wed, 29 Nov 2023 13:10:26 +0000 (21:10 +0800)
committer三咲智子 Kevin Deng <sxzz@sxzz.moe>
Wed, 29 Nov 2023 13:10:26 +0000 (21:10 +0800)
19 files changed:
1  2 
package.json
packages/compiler-core/package.json
packages/compiler-dom/package.json
packages/compiler-sfc/package.json
packages/compiler-sfc/src/compileScript.ts
packages/compiler-ssr/package.json
packages/reactivity/package.json
packages/runtime-core/package.json
packages/runtime-dom/package.json
packages/server-renderer/package.json
packages/shared/package.json
packages/vue-compat/package.json
packages/vue/package.json
pnpm-lock.yaml
rollup.config.js
scripts/dev.js
scripts/prepare-cjs.js
tsconfig.build.json
tsconfig.json

diff --cc package.json
index c3be99e2b13acd313bc25e408b6ea38a76b0422f,d4e6e7270544234844835b35c0e2faae9707e046..6675800e3aa45c4e4b4ddf7adb20f280d3a2f8cb
@@@ -1,10 -1,10 +1,10 @@@
  {
    "private": true,
 -  "version": "3.4.0-alpha.3",
 +  "version": "0.0.0-vapor",
-   "packageManager": "pnpm@8.10.5",
+   "packageManager": "pnpm@8.11.0",
    "type": "module",
    "scripts": {
 -    "dev": "node scripts/dev.js",
 +    "dev": "node scripts/dev.js vue vue-vapor",
      "build": "node scripts/build.js",
      "build-dts": "tsc -p tsconfig.build.json && rollup -c rollup.dts.config.js",
      "clean": "rimraf packages/*/dist temp .eslintcache",
index 1ade34a4e1e27f537bd87e6cd217f5d59e0c3269,0991102a7e745f884bdf4291508b03a520b2b09d..c0172c84d93116f31b1017bf9f9efc9877fd87b1
    "author": "Evan You",
    "license": "MIT",
    "bugs": {
 -    "url": "https://github.com/vuejs/core/issues"
 +    "url": "https://github.com/vuejs/core-vapor/issues"
    },
 -  "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-core#readme",
 +  "homepage": "https://github.com/vuejs/core-vapor/tree/main/packages/compiler-core#readme",
    "dependencies": {
-     "@babel/parser": "^7.23.3",
+     "@babel/parser": "^7.23.4",
      "@vue/shared": "workspace:*",
+     "entities": "^4.5.0",
      "estree-walker": "^2.0.2",
      "source-map-js": "^1.0.2"
    },
Simple merge
index 341ce64a73cc24cc73cb7f4ce7c7e964f2c506ff,d5d71a06c28d7892a51398123721aed950519936..ff6224c7cb4baf01f7739b5e96379f2e206e24a4
    "author": "Evan You",
    "license": "MIT",
    "bugs": {
 -    "url": "https://github.com/vuejs/core/issues"
 +    "url": "https://github.com/vuejs/core-vapor/issues"
    },
 -  "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme",
 +  "homepage": "https://github.com/vuejs/core-vapor/tree/main/packages/compiler-sfc#readme",
    "dependencies": {
-     "@babel/parser": "^7.23.3",
+     "@babel/parser": "^7.23.4",
      "@vue/compiler-core": "workspace:*",
      "@vue/compiler-dom": "workspace:*",
      "@vue/compiler-ssr": "workspace:*",
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index bdd2a039c4a88b910e73e204c4cc30352b02d08d,a6e2df5591dcb0932ce07ec02ef716a41bd37565..9d99717e2a6c619e77f897d8642f9ddd14800728
    "author": "Evan You",
    "license": "MIT",
    "bugs": {
 -    "url": "https://github.com/vuejs/core/issues"
 +    "url": "https://github.com/vuejs/core-vapor/issues"
    },
 -  "homepage": "https://github.com/vuejs/core/tree/main/packages/vue-compat#readme",
 +  "homepage": "https://github.com/vuejs/core-vapor/tree/main/packages/vue-compat#readme",
    "dependencies": {
-     "@babel/parser": "^7.23.3",
+     "@babel/parser": "^7.23.4",
      "estree-walker": "^2.0.2",
      "source-map-js": "^1.0.2"
    },
Simple merge
diff --cc pnpm-lock.yaml
index 5ced0741e9f1931269fd62e2e879cdcaa57a36e1,2435b03508534dce679423f209dc45931bc2b27a..bb028af7a49a9ed8676cf290614b544900cde081
@@@ -9,11 -9,11 +9,11 @@@ importers
    .:
      devDependencies:
        '@babel/parser':
-         specifier: ^7.23.3
-         version: 7.23.3
+         specifier: ^7.23.4
 -        version: 7.23.4
++        version: 7.23.5
        '@babel/types':
-         specifier: ^7.23.3
-         version: 7.23.3
+         specifier: ^7.23.4
 -        version: 7.23.4
++        version: 7.23.5
        '@rollup/plugin-alias':
          specifier: ^5.0.1
          version: 5.0.1(rollup@4.1.4)
        '@types/hash-sum':
          specifier: ^1.0.2
          version: 1.0.2
+       '@types/minimist':
+         specifier: ^1.2.5
+         version: 1.2.5
        '@types/node':
-         specifier: ^20.9.2
-         version: 20.9.4
+         specifier: ^20.10.0
+         version: 20.10.0
+       '@types/semver':
+         specifier: ^7.5.5
 -        version: 7.5.5
++        version: 7.5.6
        '@typescript-eslint/parser':
-         specifier: ^6.11.0
-         version: 6.11.0(eslint@8.54.0)(typescript@5.2.2)
+         specifier: ^6.13.0
 -        version: 6.13.0(eslint@8.54.0)(typescript@5.2.2)
++        version: 6.13.1(eslint@8.54.0)(typescript@5.2.2)
        '@vitest/coverage-istanbul':
          specifier: ^0.34.6
          version: 0.34.6(vitest@0.34.6)
          specifier: ^2.6.2
          version: 2.6.2
        tsx:
-         specifier: ^4.1.4
-         version: 4.4.0
+         specifier: ^4.5.0
 -        version: 4.5.0
++        version: 4.6.0
        typescript:
          specifier: ^5.2.2
          version: 5.2.2
    packages/compiler-core:
      dependencies:
        '@babel/parser':
-         specifier: ^7.23.3
-         version: 7.23.3
+         specifier: ^7.23.4
 -        version: 7.23.4
++        version: 7.23.5
        '@vue/shared':
          specifier: workspace:*
          version: link:../shared
          version: 1.0.2
      devDependencies:
        '@babel/types':
-         specifier: ^7.23.3
-         version: 7.23.3
+         specifier: ^7.23.4
 -        version: 7.23.4
++        version: 7.23.5
  
    packages/compiler-dom:
      dependencies:
    packages/compiler-sfc:
      dependencies:
        '@babel/parser':
-         specifier: ^7.23.3
-         version: 7.23.3
+         specifier: ^7.23.4
 -        version: 7.23.4
++        version: 7.23.5
        '@vue/compiler-core':
          specifier: workspace:*
          version: link:../compiler-core
          version: 1.0.2
      devDependencies:
        '@babel/types':
-         specifier: ^7.23.3
-         version: 7.23.3
+         specifier: ^7.23.4
 -        version: 7.23.4
++        version: 7.23.5
        '@vue/consolidate':
          specifier: ^0.17.3
          version: 0.17.3
    packages/vue-compat:
      dependencies:
        '@babel/parser':
-         specifier: ^7.23.3
-         version: 7.23.3
+         specifier: ^7.23.4
 -        version: 7.23.4
++        version: 7.23.5
        estree-walker:
          specifier: ^2.0.2
          version: 2.0.2
          specifier: workspace:*
          version: link:../vue
  
-         version: 5.0.2(@types/node@20.9.4)(terser@5.22.0)
 +  packages/vue-vapor:
 +    dependencies:
 +      '@vue/compiler-vapor':
 +        specifier: workspace:*
 +        version: link:../compiler-vapor
 +      '@vue/runtime-vapor':
 +        specifier: workspace:*
 +        version: link:../runtime-vapor
 +
 +  playground:
 +    dependencies:
 +      vue:
 +        specifier: workspace:*
 +        version: link:../packages/vue
 +    devDependencies:
 +      '@vitejs/plugin-vue':
 +        specifier: ^4.5.0
 +        version: 4.5.0(vite@5.0.2)(vue@packages+vue)
 +      vite:
 +        specifier: ^5.0.2
++        version: 5.0.2(@types/node@20.10.0)(terser@5.22.0)
 +      vite-plugin-inspect:
 +        specifier: ^0.7.42
 +        version: 0.7.42(rollup@4.1.4)(vite@5.0.2)
 +
  packages:
  
    /@aashutoshrathi/word-wrap@1.2.6:
        '@babel/helper-compilation-targets': 7.22.15
        '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3)
        '@babel/helpers': 7.23.2
-       '@babel/parser': 7.23.3
 -      '@babel/parser': 7.23.4
++      '@babel/parser': 7.23.5
        '@babel/template': 7.22.15
        '@babel/traverse': 7.23.3
-       '@babel/types': 7.23.3
 -      '@babel/types': 7.23.4
++      '@babel/types': 7.23.5
        convert-source-map: 2.0.0
        debug: 4.3.4
        gensync: 1.0.0-beta.2
      resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==}
      engines: {node: '>=6.9.0'}
      dependencies:
-       '@babel/types': 7.23.3
 -      '@babel/types': 7.23.4
++      '@babel/types': 7.23.5
        '@jridgewell/gen-mapping': 0.3.3
        '@jridgewell/trace-mapping': 0.3.20
        jsesc: 2.5.2
      engines: {node: '>=6.9.0'}
      dependencies:
        '@babel/template': 7.22.15
-       '@babel/types': 7.23.3
 -      '@babel/types': 7.23.4
++      '@babel/types': 7.23.5
      dev: true
  
    /@babel/helper-hoist-variables@7.22.5:
      resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
      engines: {node: '>=6.9.0'}
      dependencies:
-       '@babel/types': 7.23.3
 -      '@babel/types': 7.23.4
++      '@babel/types': 7.23.5
      dev: true
  
    /@babel/helper-module-imports@7.22.15:
      resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
      engines: {node: '>=6.9.0'}
      dependencies:
-       '@babel/types': 7.23.3
 -      '@babel/types': 7.23.4
++      '@babel/types': 7.23.5
      dev: true
  
    /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3):
      resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
      engines: {node: '>=6.9.0'}
      dependencies:
-       '@babel/types': 7.23.3
 -      '@babel/types': 7.23.4
++      '@babel/types': 7.23.5
      dev: true
  
    /@babel/helper-split-export-declaration@7.22.6:
      resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
      engines: {node: '>=6.9.0'}
      dependencies:
-       '@babel/types': 7.23.3
 -      '@babel/types': 7.23.4
++      '@babel/types': 7.23.5
      dev: true
  
-   /@babel/helper-string-parser@7.22.5:
-     resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
+   /@babel/helper-string-parser@7.23.4:
+     resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
      engines: {node: '>=6.9.0'}
  
    /@babel/helper-validator-identifier@7.22.20:
      dependencies:
        '@babel/template': 7.22.15
        '@babel/traverse': 7.23.3
-       '@babel/types': 7.23.3
 -      '@babel/types': 7.23.4
++      '@babel/types': 7.23.5
      transitivePeerDependencies:
        - supports-color
      dev: true
        js-tokens: 4.0.0
      dev: true
  
-   /@babel/parser@7.23.3:
-     resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==}
 -  /@babel/parser@7.23.4:
 -    resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==}
++  /@babel/parser@7.23.5:
++    resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==}
      engines: {node: '>=6.0.0'}
      hasBin: true
      dependencies:
-       '@babel/types': 7.23.3
 -      '@babel/types': 7.23.4
++      '@babel/types': 7.23.5
  
    /@babel/template@7.22.15:
      resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
      engines: {node: '>=6.9.0'}
      dependencies:
        '@babel/code-frame': 7.22.13
-       '@babel/parser': 7.23.3
-       '@babel/types': 7.23.3
 -      '@babel/parser': 7.23.4
 -      '@babel/types': 7.23.4
++      '@babel/parser': 7.23.5
++      '@babel/types': 7.23.5
      dev: true
  
    /@babel/traverse@7.23.3:
        '@babel/helper-function-name': 7.23.0
        '@babel/helper-hoist-variables': 7.22.5
        '@babel/helper-split-export-declaration': 7.22.6
-       '@babel/parser': 7.23.3
-       '@babel/types': 7.23.3
 -      '@babel/parser': 7.23.4
 -      '@babel/types': 7.23.4
++      '@babel/parser': 7.23.5
++      '@babel/types': 7.23.5
        debug: 4.3.4
        globals: 11.12.0
      transitivePeerDependencies:
        - supports-color
      dev: true
  
-   /@babel/types@7.23.3:
-     resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==}
 -  /@babel/types@7.23.4:
 -    resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==}
++  /@babel/types@7.23.5:
++    resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==}
      engines: {node: '>=6.9.0'}
      dependencies:
-       '@babel/helper-string-parser': 7.22.5
+       '@babel/helper-string-parser': 7.23.4
        '@babel/helper-validator-identifier': 7.22.20
        to-fast-properties: 2.0.0
  
      resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
      dev: true
  
-   /@types/semver@7.5.4:
-     resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==}
 -  /@types/semver@7.5.5:
 -    resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==}
++  /@types/semver@7.5.6:
++    resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
      dev: true
  
    /@types/yauzl@2.10.2:
      dev: true
      optional: true
  
-   /@typescript-eslint/parser@6.11.0(eslint@8.54.0)(typescript@5.2.2):
-     resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==}
 -  /@typescript-eslint/parser@6.13.0(eslint@8.54.0)(typescript@5.2.2):
 -    resolution: {integrity: sha512-VpG+M7GNhHLI/aTDctqAV0XbzB16vf+qDX9DXuMZSe/0bahzDA9AKZB15NDbd+D9M4cDsJvfkbGOA7qiZ/bWJw==}
++  /@typescript-eslint/parser@6.13.1(eslint@8.54.0)(typescript@5.2.2):
++    resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==}
      engines: {node: ^16.0.0 || >=18.0.0}
      peerDependencies:
        eslint: ^7.0.0 || ^8.0.0
        typescript:
          optional: true
      dependencies:
-       '@typescript-eslint/scope-manager': 6.11.0
-       '@typescript-eslint/types': 6.11.0
-       '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2)
-       '@typescript-eslint/visitor-keys': 6.11.0
 -      '@typescript-eslint/scope-manager': 6.13.0
 -      '@typescript-eslint/types': 6.13.0
 -      '@typescript-eslint/typescript-estree': 6.13.0(typescript@5.2.2)
 -      '@typescript-eslint/visitor-keys': 6.13.0
++      '@typescript-eslint/scope-manager': 6.13.1
++      '@typescript-eslint/types': 6.13.1
++      '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.2.2)
++      '@typescript-eslint/visitor-keys': 6.13.1
        debug: 4.3.4
        eslint: 8.54.0
        typescript: 5.2.2
        '@typescript-eslint/visitor-keys': 5.62.0
      dev: true
  
-   /@typescript-eslint/scope-manager@6.11.0:
-     resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==}
 -  /@typescript-eslint/scope-manager@6.13.0:
 -    resolution: {integrity: sha512-2x0K2/CujsokIv+LN2T0l5FVDMtsCjkUyYtlcY4xxnxLAW+x41LXr16duoicHpGtLhmtN7kqvuFJ3zbz00Ikhw==}
++  /@typescript-eslint/scope-manager@6.13.1:
++    resolution: {integrity: sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==}
      engines: {node: ^16.0.0 || >=18.0.0}
      dependencies:
-       '@typescript-eslint/types': 6.11.0
-       '@typescript-eslint/visitor-keys': 6.11.0
 -      '@typescript-eslint/types': 6.13.0
 -      '@typescript-eslint/visitor-keys': 6.13.0
++      '@typescript-eslint/types': 6.13.1
++      '@typescript-eslint/visitor-keys': 6.13.1
      dev: true
  
    /@typescript-eslint/types@5.62.0:
      engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
      dev: true
  
-   /@typescript-eslint/types@6.11.0:
-     resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==}
 -  /@typescript-eslint/types@6.13.0:
 -    resolution: {integrity: sha512-oXg7DFxx/GmTrKXKKLSoR2rwiutOC7jCQ5nDH5p5VS6cmHE1TcPTaYQ0VPSSUvj7BnNqCgQ/NXcTBxn59pfPTQ==}
++  /@typescript-eslint/types@6.13.1:
++    resolution: {integrity: sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==}
      engines: {node: ^16.0.0 || >=18.0.0}
      dev: true
  
        - supports-color
      dev: true
  
-   /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2):
-     resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==}
 -  /@typescript-eslint/typescript-estree@6.13.0(typescript@5.2.2):
 -    resolution: {integrity: sha512-IT4O/YKJDoiy/mPEDsfOfp+473A9GVqXlBKckfrAOuVbTqM8xbc0LuqyFCcgeFWpqu3WjQexolgqN2CuWBYbog==}
++  /@typescript-eslint/typescript-estree@6.13.1(typescript@5.2.2):
++    resolution: {integrity: sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==}
      engines: {node: ^16.0.0 || >=18.0.0}
      peerDependencies:
        typescript: '*'
        typescript:
          optional: true
      dependencies:
-       '@typescript-eslint/types': 6.11.0
-       '@typescript-eslint/visitor-keys': 6.11.0
 -      '@typescript-eslint/types': 6.13.0
 -      '@typescript-eslint/visitor-keys': 6.13.0
++      '@typescript-eslint/types': 6.13.1
++      '@typescript-eslint/visitor-keys': 6.13.1
        debug: 4.3.4
        globby: 11.1.0
        is-glob: 4.0.3
      dependencies:
        '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0)
        '@types/json-schema': 7.0.14
-       '@types/semver': 7.5.4
 -      '@types/semver': 7.5.5
++      '@types/semver': 7.5.6
        '@typescript-eslint/scope-manager': 5.62.0
        '@typescript-eslint/types': 5.62.0
        '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2)
        eslint-visitor-keys: 3.4.3
      dev: true
  
-   /@typescript-eslint/visitor-keys@6.11.0:
-     resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==}
 -  /@typescript-eslint/visitor-keys@6.13.0:
 -    resolution: {integrity: sha512-UQklteCEMCRoq/1UhKFZsHv5E4dN1wQSzJoxTfABasWk1HgJRdg1xNUve/Kv/Sdymt4x+iEzpESOqRFlQr/9Aw==}
++  /@typescript-eslint/visitor-keys@6.13.1:
++    resolution: {integrity: sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==}
      engines: {node: ^16.0.0 || >=18.0.0}
      dependencies:
-       '@typescript-eslint/types': 6.11.0
 -      '@typescript-eslint/types': 6.13.0
++      '@typescript-eslint/types': 6.13.1
        eslint-visitor-keys: 3.4.3
      dev: true
  
        vue: link:packages/vue
      dev: true
  
-       vite: 5.0.2(@types/node@20.9.4)(terser@5.22.0)
 +  /@vitejs/plugin-vue@4.5.0(vite@5.0.2)(vue@packages+vue):
 +    resolution: {integrity: sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ==}
 +    engines: {node: ^14.18.0 || >=16.0.0}
 +    peerDependencies:
 +      vite: ^4.0.0 || ^5.0.0
 +      vue: ^3.2.25
 +    dependencies:
++      vite: 5.0.2(@types/node@20.10.0)(terser@5.22.0)
 +      vue: link:packages/vue
 +    dev: true
 +
    /@vitest/coverage-istanbul@0.34.6(vitest@0.34.6):
      resolution: {integrity: sha512-5KaBNZPDSk2ybavC3rZ1pWGniw7sJ5usuwVGRUYzJwiBfWvnLpuUer7bjw7qUCRGdKJXrBgb/Dsgif9rkwMX/A==}
      peerDependencies:
        pretty-format: 29.7.0
      dev: true
  
-       '@babel/parser': 7.23.3
 +  /@vue/compiler-core@3.3.8:
 +    resolution: {integrity: sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==}
 +    dependencies:
++      '@babel/parser': 7.23.5
 +      '@vue/shared': 3.3.8
 +      estree-walker: 2.0.2
 +      source-map-js: 1.0.2
 +    dev: false
 +
 +  /@vue/compiler-dom@3.3.8:
 +    resolution: {integrity: sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==}
 +    dependencies:
 +      '@vue/compiler-core': 3.3.8
 +      '@vue/shared': 3.3.8
 +    dev: false
 +
    /@vue/consolidate@0.17.3:
      resolution: {integrity: sha512-nl0SWcTMzaaTnJ5G6V8VlMDA1CVVrNnaQKF1aBZU3kXtjgU9jtHMsEAsgjoRUx+T0EVJk9TgbmxGhK3pOk22zw==}
      engines: {node: '>= 0.12.0'}
      resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==}
      engines: {node: '>= 10.0.0'}
      dependencies:
-       '@babel/types': 7.23.3
 -      '@babel/types': 7.23.4
++      '@babel/types': 7.23.5
      dev: true
  
    /balanced-match@1.0.2:
    /constantinople@4.0.1:
      resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==}
      dependencies:
-       '@babel/parser': 7.23.3
-       '@babel/types': 7.23.3
 -      '@babel/parser': 7.23.4
 -      '@babel/types': 7.23.4
++      '@babel/parser': 7.23.5
++      '@babel/types': 7.23.5
      dev: true
  
    /content-disposition@0.5.2:
      engines: {node: '>=10'}
      dependencies:
        '@babel/core': 7.23.3
-       '@babel/parser': 7.23.3
 -      '@babel/parser': 7.23.4
++      '@babel/parser': 7.23.5
        '@istanbuljs/schema': 0.1.3
        istanbul-lib-coverage: 3.2.0
        semver: 7.5.4
        typescript: 5.2.2
      dev: true
  
-   /tsx@4.4.0:
-     resolution: {integrity: sha512-4fwcEjRUxW20ciSaMB8zkpGwCPxuRGnadDuj/pBk5S9uT29zvWz15PK36GrKJo45mSJomDxVejZ73c6lr3811Q==}
 -  /tsx@4.5.0:
 -    resolution: {integrity: sha512-hgxdziy9KLaHh9KE+a6tIZFP6kb0MLq/1D0sJVifbGP4QVEYhy6+2FNn7MyCm1pMc63p9CW/L1OzdqTNPxs6rg==}
++  /tsx@4.6.0:
++    resolution: {integrity: sha512-HLHaDQ78mly4Pd5co6tWQOiNVYoYYAPUcwSSZK4bcs3zSEsg+/67LS/ReHook0E7DKPfe1J5jc0ocIhUrnaR4w==}
      engines: {node: '>=18.0.0'}
      hasBin: true
      dependencies:
        mlly: 1.4.2
        pathe: 1.1.1
        picocolors: 1.0.0
-       vite: 5.0.2(@types/node@20.9.4)(terser@5.22.0)
 -      vite: 5.0.0(@types/node@20.10.0)(terser@5.22.0)
++      vite: 5.0.2(@types/node@20.10.0)(terser@5.22.0)
      transitivePeerDependencies:
        - '@types/node'
        - less
        - terser
      dev: true
  
-       vite: 5.0.2(@types/node@20.9.4)(terser@5.22.0)
 +  /vite-plugin-inspect@0.7.42(rollup@4.1.4)(vite@5.0.2):
 +    resolution: {integrity: sha512-JCyX86wr3siQc+p9Kd0t8VkFHAJag0RaQVIpdFGSv5FEaePEVB6+V/RGtz2dQkkGSXQzRWrPs4cU3dRKg32bXw==}
 +    engines: {node: '>=14'}
 +    peerDependencies:
 +      '@nuxt/kit': '*'
 +      vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0
 +    peerDependenciesMeta:
 +      '@nuxt/kit':
 +        optional: true
 +    dependencies:
 +      '@antfu/utils': 0.7.6
 +      '@rollup/pluginutils': 5.0.5(rollup@4.1.4)
 +      debug: 4.3.4
 +      error-stack-parser-es: 0.1.1
 +      fs-extra: 11.1.1
 +      open: 9.1.0
 +      picocolors: 1.0.0
 +      sirv: 2.0.3
-   /vite@5.0.0(@types/node@20.9.4)(terser@5.22.0):
++      vite: 5.0.2(@types/node@20.10.0)(terser@5.22.0)
 +    transitivePeerDependencies:
 +      - rollup
 +      - supports-color
 +    dev: true
 +
+   /vite@5.0.0(@types/node@20.10.0)(terser@5.22.0):
      resolution: {integrity: sha512-ESJVM59mdyGpsiNAeHQOR/0fqNoOyWPYesFto8FFZugfmhdHx8Fzd8sF3Q/xkVhZsyOxHfdM7ieiVAorI9RjFw==}
      engines: {node: ^18.0.0 || >=20.0.0}
      hasBin: true
        fsevents: 2.3.3
      dev: true
  
-   /vite@5.0.2(@types/node@20.9.4)(terser@5.22.0):
++  /vite@5.0.2(@types/node@20.10.0)(terser@5.22.0):
 +    resolution: {integrity: sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==}
 +    engines: {node: ^18.0.0 || >=20.0.0}
 +    hasBin: true
 +    peerDependencies:
 +      '@types/node': ^18.0.0 || >=20.0.0
 +      less: '*'
 +      lightningcss: ^1.21.0
 +      sass: '*'
 +      stylus: '*'
 +      sugarss: '*'
 +      terser: ^5.4.0
 +    peerDependenciesMeta:
 +      '@types/node':
 +        optional: true
 +      less:
 +        optional: true
 +      lightningcss:
 +        optional: true
 +      sass:
 +        optional: true
 +      stylus:
 +        optional: true
 +      sugarss:
 +        optional: true
 +      terser:
 +        optional: true
 +    dependencies:
-       '@types/node': 20.9.4
++      '@types/node': 20.10.0
 +      esbuild: 0.19.5
 +      postcss: 8.4.31
 +      rollup: 4.4.1
 +      terser: 5.22.0
 +    optionalDependencies:
 +      fsevents: 2.3.3
 +    dev: true
 +
    /vitest@0.34.6(jsdom@22.1.0)(terser@5.22.0):
      resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==}
      engines: {node: '>=v14.18.0'}
      resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==}
      engines: {node: '>= 10.0.0'}
      dependencies:
-       '@babel/parser': 7.23.3
-       '@babel/types': 7.23.3
 -      '@babel/parser': 7.23.4
 -      '@babel/types': 7.23.4
++      '@babel/parser': 7.23.5
++      '@babel/types': 7.23.5
        assert-never: 1.2.1
        babel-walk: 3.0.0-canary-5
      dev: true
index 63d62b7304ffa93bcfc223b11f4c4c1d0d607475,421fa9c37819bb0b9612cfea45b18caf3bb562d4..59e6924daf0e385f28138777973487438920460b
@@@ -33,18 -32,8 +33,18 @@@ const pkg = require(resolve(`package.js
  const packageOptions = pkg.buildOptions || {}
  const name = packageOptions.filename || path.basename(packageDir)
  
- const [enumPlugin, enumDefines] = constEnum()
+ const [enumPlugin, enumDefines] = inlineEnums()
  
 +/**
 + * @typedef { Omit<T, K> & Required<Pick<T, K>> } MarkRequired
 + * @template T
 + * @template {keyof T} K
 + */
 +
 +/** @typedef {import('rollup').ModuleFormat} Format */
 +/** @typedef {MarkRequired<import('rollup').OutputOptions, 'file'>} Output */
 +
 +/** @type {Record<string, Output>} */
  const outputConfigs = {
    'esm-bundler': {
      file: resolve(`dist/${name}.esm-bundler.js`),
diff --cc scripts/dev.js
index 33c1a84a70727eb8c98f1e3097f755f2a6003f1c,e31216ca4ef40b324333b771a07e4e5e99d675de..1b2cf0029c6b192f1486cc3fdd7c73bb0412b79b
@@@ -30,102 -31,100 +30,103 @@@ const postfix = format.endsWith('-runti
    ? `runtime.${format.replace(/-runtime$/, '')}`
    : format
  
 -const outfile = resolve(
 -  __dirname,
 -  `../packages/${target}/dist/${
 -    target === 'vue-compat' ? `vue` : target
 -  }.${postfix}.${prod ? `prod.` : ``}js`
 -)
 -const relativeOutfile = relative(process.cwd(), outfile)
 +for (const target of targets) {
 +  const pkg = require(`../packages/${target}/package.json`)
 +  const outfile = resolve(
 +    __dirname,
 +    `../packages/${target}/dist/${
 +      target === 'vue-compat' ? `vue` : target
 +    }.${postfix}.${prod ? `prod.` : ``}js`
 +  )
 +  const relativeOutfile = relative(process.cwd(), outfile)
  
 -// resolve externals
 -// TODO this logic is largely duplicated from rollup.config.js
 -/** @type {string[]} */
 -let external = []
 -if (!inlineDeps) {
 -  // cjs & esm-bundler: external all deps
 -  if (format === 'cjs' || format.includes('esm-bundler')) {
 -    external = [
 -      ...external,
 -      ...Object.keys(pkg.dependencies || {}),
 -      ...Object.keys(pkg.peerDependencies || {}),
 -      // for @vue/compiler-sfc / server-renderer
 -      'path',
 -      'url',
 -      'stream'
 -    ]
 -  }
 +  // resolve externals
 +  // TODO this logic is largely duplicated from rollup.config.js
++  /** @type {string[]} */
 +  let external = []
 +  if (!inlineDeps) {
 +    // cjs & esm-bundler: external all deps
 +    if (format === 'cjs' || format.includes('esm-bundler')) {
 +      external = [
 +        ...external,
 +        ...Object.keys(pkg.dependencies || {}),
 +        ...Object.keys(pkg.peerDependencies || {}),
 +        // for @vue/compiler-sfc / server-renderer
 +        'path',
 +        'url',
 +        'stream'
 +      ]
 +    }
  
 -  if (target === 'compiler-sfc') {
 -    const consolidatePkgPath = require.resolve(
 -      '@vue/consolidate/package.json',
 -      {
 -        paths: [resolve(__dirname, `../packages/${target}/`)]
 -      }
 -    )
 -    const consolidateDeps = Object.keys(
 -      require(consolidatePkgPath).devDependencies
 -    )
 -    external = [
 -      ...external,
 -      ...consolidateDeps,
 -      'fs',
 -      'vm',
 -      'crypto',
 -      'react-dom/server',
 -      'teacup/lib/express',
 -      'arc-templates/dist/es5',
 -      'then-pug',
 -      'then-jade'
 -    ]
 +    if (target === 'compiler-sfc') {
 +      const consolidatePkgPath = require.resolve(
 +        '@vue/consolidate/package.json',
 +        {
 +          paths: [resolve(__dirname, `../packages/${target}/`)]
 +        }
 +      )
 +      const consolidateDeps = Object.keys(
 +        require(consolidatePkgPath).devDependencies
 +      )
 +      external = [
 +        ...external,
 +        ...consolidateDeps,
 +        'fs',
 +        'vm',
 +        'crypto',
 +        'react-dom/server',
 +        'teacup/lib/express',
 +        'arc-templates/dist/es5',
 +        'then-pug',
 +        'then-jade'
 +      ]
 +    }
    }
 -}
 -/** @type {Array<import('esbuild').Plugin>} */
 -const plugins = [
 -  {
 -    name: 'log-rebuild',
 -    setup(build) {
 -      build.onEnd(() => {
 -        console.log(`built: ${relativeOutfile}`)
 -      })
++  /** @type {Array<import('esbuild').Plugin>} */
 +  const plugins = [
 +    {
 +      name: 'log-rebuild',
 +      setup(build) {
 +        build.onEnd(() => {
 +          console.log(`built: ${relativeOutfile}`)
 +        })
 +      }
      }
 +  ]
 +
 +  if (format !== 'cjs' && pkg.buildOptions?.enableNonBrowserBranches) {
 +    plugins.push(polyfillNode())
    }
 -]
  
 -if (format !== 'cjs' && pkg.buildOptions?.enableNonBrowserBranches) {
 -  plugins.push(polyfillNode())
 +  esbuild
 +    .context({
 +      entryPoints: [resolve(__dirname, `../packages/${target}/src/index.ts`)],
 +      outfile,
 +      bundle: true,
 +      external,
 +      sourcemap: true,
 +      format: outputFormat,
 +      globalName: pkg.buildOptions?.name,
 +      platform: format === 'cjs' ? 'node' : 'browser',
 +      plugins,
 +      define: {
 +        __COMMIT__: `"dev"`,
 +        __VERSION__: `"${pkg.version}"`,
 +        __DEV__: prod ? `false` : `true`,
 +        __TEST__: `false`,
 +        __BROWSER__: String(
 +          format !== 'cjs' && !pkg.buildOptions?.enableNonBrowserBranches
 +        ),
 +        __GLOBAL__: String(format === 'global'),
 +        __ESM_BUNDLER__: String(format.includes('esm-bundler')),
 +        __ESM_BROWSER__: String(format.includes('esm-browser')),
 +        __NODE_JS__: String(format === 'cjs'),
 +        __SSR__: String(format === 'cjs' || format.includes('esm-bundler')),
 +        __COMPAT__: String(target === 'vue-compat'),
 +        __FEATURE_SUSPENSE__: `true`,
 +        __FEATURE_OPTIONS_API__: `true`,
 +        __FEATURE_PROD_DEVTOOLS__: `false`
 +      }
 +    })
 +    .then(ctx => ctx.watch())
  }
 -
 -esbuild
 -  .context({
 -    entryPoints: [resolve(__dirname, `../packages/${target}/src/index.ts`)],
 -    outfile,
 -    bundle: true,
 -    external,
 -    sourcemap: true,
 -    format: outputFormat,
 -    globalName: pkg.buildOptions?.name,
 -    platform: format === 'cjs' ? 'node' : 'browser',
 -    plugins,
 -    define: {
 -      __COMMIT__: `"dev"`,
 -      __VERSION__: `"${pkg.version}"`,
 -      __DEV__: prod ? `false` : `true`,
 -      __TEST__: `false`,
 -      __BROWSER__: String(
 -        format !== 'cjs' && !pkg.buildOptions?.enableNonBrowserBranches
 -      ),
 -      __GLOBAL__: String(format === 'global'),
 -      __ESM_BUNDLER__: String(format.includes('esm-bundler')),
 -      __ESM_BROWSER__: String(format.includes('esm-browser')),
 -      __NODE_JS__: String(format === 'cjs'),
 -      __SSR__: String(format === 'cjs' || format.includes('esm-bundler')),
 -      __COMPAT__: String(target === 'vue-compat'),
 -      __FEATURE_SUSPENSE__: `true`,
 -      __FEATURE_OPTIONS_API__: `true`,
 -      __FEATURE_PROD_DEVTOOLS__: `false`
 -    }
 -  })
 -  .then(ctx => ctx.watch())
index 467875ea8db2bb39726adc11a2552ee8e6416cf8,deeb40918168a780aa54856da78ed0400334bfde..736bb8bed06b59d6c86130a16e24cf110ef90537
@@@ -6,8 -6,6 +6,7 @@@ const packagesToCheck = 
    'compiler-core',
    'compiler-dom',
    'compiler-ssr',
-   'reactivity-transform',
 +  'compiler-vapor',
    'shared'
  ]
  
index c3be791568814d1553436033dedd17dd74190a6c,28036b1bed91f7550a4ba7baf1f9ce0e337483cc..43161f91fd38000dfb493f21039ee307a156199f
@@@ -11,6 -11,7 +11,8 @@@
      "packages/template-explorer",
      "packages/sfc-playground",
      "packages/dts-test",
 -    "scripts/*"
+     "rollup.config.js",
++    "scripts/*",
 +    "playground"
    ]
  }
diff --cc tsconfig.json
index c1354dfa2868035878227b9986e939d27afbfa7d,0aad03ad6ce20593e341b9c70f6f767f8a7f6f79..931831bda6467864ae48b67a0e0f5c9de019a834
@@@ -35,7 -34,8 +35,8 @@@
      "packages/*/__tests__",
      "packages/dts-test",
      "packages/vue/jsx-runtime",
-     "scripts/setupVitest.ts",
 -    "scripts/*",
 -    "rollup.*.js"
++    "rollup.*.js",
 +    "playground"
-   ]
+   ],
 -  "exclude": ["rollup.config.js", "scripts/*"]
++  "exclude": ["rollup.config.js"]
  }