+++ /dev/null
-import { createVaporApp } from 'vue/vapor'
-import App from './App.vue'
-
-createVaporApp(App as any).mount('#app')
files: [
'packages-private/template-explorer/**',
'packages-private/sfc-playground/**',
- 'playground/**',
+ 'packages-private/local-playground/**',
],
rules: {
'no-restricted-globals': ['error', ...NodeGlobals],
'eslint.config.js',
'rollup*.config.js',
'scripts/**',
- 'benchmark/*',
'./*.{js,ts}',
'packages/*/*.js',
'packages/vue/*/*.js',
+ 'packages-private/benchmark/*',
],
rules: {
'no-restricted-globals': 'off',
-<script setup lang="ts" vapor>
+<script setup lang="ts">
import {
shallowRef,
triggerRef,
type ShallowRef,
- createSelector,
-} from 'vue/vapor'
+ // createSelector,
+} from 'vue'
import { buildData } from './data'
import { defer, wrap } from './profiling'
}
}
-const isSelected = createSelector(selected)
+// const isSelected = createSelector(selected)
const globalThis = window
</script>
<tr
v-for="row of rows"
:key="row.id"
- :class="{ danger: isSelected(row.id) }"
+ :class="{ danger: selected === row.id }"
>
<td>{{ row.id }}</td>
<td>
--- /dev/null
+<script setup vapor lang="ts">
+import {
+ shallowRef,
+ triggerRef,
+ type ShallowRef,
+ // createSelector,
+} from 'vue'
+import { buildData } from './data'
+import { defer, wrap } from './profiling'
+
+const isVapor = !!import.meta.env.IS_VAPOR
+
+const selected = shallowRef<number>()
+const rows = shallowRef<
+ {
+ id: number
+ label: ShallowRef<string>
+ }[]
+>([])
+
+// Bench Add: https://jsbench.me/45lzxprzmu/1
+const add = wrap('add', () => {
+ rows.value.push(...buildData(1000))
+ triggerRef(rows)
+})
+
+const remove = wrap('remove', (id: number) => {
+ rows.value.splice(
+ rows.value.findIndex(d => d.id === id),
+ 1,
+ )
+ triggerRef(rows)
+})
+
+const select = wrap('select', (id: number) => {
+ selected.value = id
+})
+
+const run = wrap('run', () => {
+ rows.value = buildData()
+ selected.value = undefined
+})
+
+const update = wrap('update', () => {
+ const _rows = rows.value
+ for (let i = 0, len = _rows.length; i < len; i += 10) {
+ _rows[i].label.value += ' !!!'
+ }
+})
+
+const runLots = wrap('runLots', () => {
+ rows.value = buildData(10000)
+ selected.value = undefined
+})
+
+const clear = wrap('clear', () => {
+ rows.value = []
+ selected.value = undefined
+})
+
+const swapRows = wrap('swap', () => {
+ const _rows = rows.value
+ if (_rows.length > 998) {
+ const d1 = _rows[1]
+ const d998 = _rows[998]
+ _rows[1] = d998
+ _rows[998] = d1
+ triggerRef(rows)
+ }
+})
+
+async function bench() {
+ for (let i = 0; i < 30; i++) {
+ rows.value = []
+ await runLots()
+ await defer()
+ }
+}
+
+// const isSelected = createSelector(selected)
+
+const globalThis = window
+</script>
+
+<template>
+ <h1>Vue.js ({{ isVapor ? 'Vapor' : 'Virtual DOM' }}) Benchmark</h1>
+
+ <div style="display: flex; gap: 4px; margin-bottom: 4px">
+ <label>
+ <input
+ type="checkbox"
+ :value="globalThis.doProfile"
+ @change="globalThis.doProfile = $event.target.checked"
+ />
+ Profiling
+ </label>
+ <label>
+ <input
+ type="checkbox"
+ :value="globalThis.reactivity"
+ @change="globalThis.reactivity = $event.target.checked"
+ />
+ Reactivity Cost
+ </label>
+ </div>
+
+ <div
+ id="control"
+ style="display: flex; flex-direction: column; width: fit-content; gap: 6px"
+ >
+ <button @click="bench">Benchmark mounting</button>
+ <button id="run" @click="run">Create 1,000 rows</button>
+ <button id="runLots" @click="runLots">Create 10,000 rows</button>
+ <button id="add" @click="add">Append 1,000 rows</button>
+ <button id="update" @click="update">Update every 10th row</button>
+ <button id="clear" @click="clear">Clear</button>
+ <button id="swaprows" @click="swapRows">Swap Rows</button>
+ </div>
+ <div id="time"></div>
+ <table>
+ <tbody>
+ <tr
+ v-for="row of rows"
+ :key="row.id"
+ :class="{ danger: selected === row.id }"
+ >
+ <td>{{ row.id }}</td>
+ <td>
+ <a @click="select(row.id)">{{ row.label.value }}</a>
+ </td>
+ <td>
+ <button @click="remove(row.id)">x</button>
+ </td>
+ <td class="col-md-6"></td>
+ </tr>
+ </tbody>
+ </table>
+</template>
+
+<style>
+.danger {
+ background-color: red;
+}
+</style>
-import { shallowRef } from 'vue/vapor'
+import { shallowRef } from 'vue'
let ID = 1
/* eslint-disable no-restricted-syntax */
/* eslint-disable no-restricted-globals */
-import { nextTick } from 'vue/vapor'
+import { nextTick } from 'vue'
-declare namespace globalThis {
- let doProfile: boolean
- let reactivity: boolean
- let recordTime: boolean
- let times: Record<string, number[]>
+declare global {
+ var doProfile: boolean
+ var reactivity: boolean
+ var recordTime: boolean
+ var times: Record<string, number[]>
}
globalThis.recordTime = true
--- /dev/null
+import { createVaporApp } from 'vue'
+import App from './AppVapor.vue'
+
+createVaporApp(App as any).mount('#app')
import sirv from 'sirv'
import { launch } from 'puppeteer'
import colors from 'picocolors'
-import { exec, getSha } from '../scripts/utils.js'
+import { exec, getSha } from '../../scripts/utils.js'
import process from 'node:process'
import readline from 'node:readline'
/** @type {import('node:child_process').SpawnOptions} */
const options = {
- cwd: path.resolve(import.meta.dirname, '..'),
+ cwd: path.resolve(import.meta.dirname, '../..'),
stdio: 'inherit',
env: { ...process.env, BENCHMARK: 'true' },
}
const buildOptions = devBuild ? '-df' : '-pf'
- const [{ ok }, { ok: ok2 }, { ok: ok3 }, { ok: ok4 }] = await Promise.all([
+ const [{ ok }, { ok: ok2 }, { ok: ok3 }] = await Promise.all([
exec(
'pnpm',
- `run --silent build shared compiler-core compiler-dom compiler-vapor ${buildOptions} cjs`.split(
+ `run --silent build shared compiler-core compiler-dom ${buildOptions} cjs`.split(
' ',
),
options,
),
exec(
'pnpm',
- 'run --silent build compiler-sfc compiler-ssr -f cjs'.split(' '),
- options,
- ),
- exec(
- 'pnpm',
- `run --silent build vue-vapor ${buildOptions} esm-browser`.split(' '),
+ 'run --silent build compiler-sfc compiler-ssr compiler-vapor -f cjs'.split(
+ ' ',
+ ),
options,
),
exec(
'pnpm',
- `run --silent build vue ${buildOptions} esm-browser-runtime`.split(' '),
+ `run --silent build vue ${buildOptions} vapor`.split(' '),
options,
),
])
- if (!ok || !ok2 || !ok3 || !ok4) {
+ if (!ok || !ok2 || !ok3) {
console.error('Failed to build')
process.exit(1)
}
if (!devBuild) process.env.NODE_ENV = 'production'
const CompilerSFC = await import(
- '../packages/compiler-sfc/dist/compiler-sfc.cjs.js'
+ '../../packages/compiler-sfc/dist/compiler-sfc.cjs.js'
)
const prodSuffix = devBuild ? '.js' : '.prod.js'
- /** @type {any} */
- const TemplateCompiler = await import(
- (isVapor
- ? '../packages/compiler-vapor/dist/compiler-vapor.cjs'
- : '../packages/compiler-dom/dist/compiler-dom.cjs') + prodSuffix
- )
const runtimePath = path.resolve(
import.meta.dirname,
(isVapor
- ? '../packages/vue-vapor/dist/vue-vapor.esm-browser'
- : '../packages/vue/dist/vue.runtime.esm-browser') + prodSuffix,
+ ? '../../packages/vue/dist/vue.runtime-with-vapor.esm-browser'
+ : '../../packages/vue/dist/vue.runtime.esm-browser') + prodSuffix,
)
const mode = isVapor ? 'vapor' : 'vdom'
},
resolve: {
alias: {
- 'vue/vapor': runtimePath,
vue: runtimePath,
},
},
plugins: [
Vue({
compiler: CompilerSFC,
- template: { compiler: TemplateCompiler },
}),
],
})
"start": "node index.js"
},
"dependencies": {
- "@vitejs/plugin-vue": "https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5",
+ "@vitejs/plugin-vue": "https://pkg.pr.new/@vitejs/plugin-vue@c156992",
"connect": "^3.7.0",
"sirv": "^2.0.4",
"vite": "catalog:"
"skipLibCheck": true,
"noEmit": true,
"paths": {
- "vue": ["../packages/vue/src"],
+ "vue": ["../packages/vue/src/runtime-with-vapor.ts"],
"@vue/*": ["../packages/*/src"]
}
},
import path from 'node:path'
const resolve = (/** @type {string} */ p) =>
- path.resolve(import.meta.dirname, '../../packages', p)
+ path.resolve(import.meta.dirname, '../../../packages', p)
/**
* @param {Object} [env]
--- /dev/null
+<script setup lang="ts">
+import { ref } from 'vue'
+import VaporComp from './VaporComp.vue'
+
+const msg = ref('hello')
+const passSlot = ref(true)
+</script>
+
+<template>
+ <input v-model="msg" />
+ <button @click="passSlot = !passSlot">toggle #test slot</button>
+ <VaporComp :msg="msg">
+ <template #default="{ foo }">
+ <div>slot props: {{ foo }}</div>
+ <div>component prop: {{ msg }}</div>
+ </template>
+
+ <template #test v-if="passSlot"> A test slot </template>
+ </VaporComp>
+</template>
--- /dev/null
+import './_entry'
+++ /dev/null
-<script setup lang="ts" vapor>
-import Comp from './Comp.vue'
-</script>
-
-<template>
- <h1>Vapor</h1>
- <Comp />
-</template>
+++ /dev/null
-// import './_entry'
-import './interop'
specifier: ^7.25.2
version: 7.26.0
'@vitejs/plugin-vue':
- specifier: ^5.1.2
- version: 5.1.5
+ specifier: ^5.2.1
+ version: 5.2.1
estree-walker:
specifier: ^2.0.2
version: 2.0.2
specifier: ^1.2.0
version: 1.2.1
vite:
- specifier: ^5.4.0
- version: 5.4.8
+ specifier: ^6.1.0
+ version: 6.1.0
importers:
version: 8.20.0(eslint@9.18.0)(typescript@5.6.2)
vite:
specifier: 'catalog:'
- version: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
+ version: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
vitest:
specifier: ^3.0.2
- version: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)
+ version: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
- benchmark:
+ packages-private/benchmark:
dependencies:
'@vitejs/plugin-vue':
- specifier: https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5
- version: https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@3.5.13(typescript@5.6.2))
+ specifier: https://pkg.pr.new/@vitejs/plugin-vue@c156992
+ version: https://pkg.pr.new/@vitejs/plugin-vue@c156992(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.2))
connect:
specifier: ^3.7.0
version: 3.7.0
version: 2.0.4
vite:
specifier: 'catalog:'
- version: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
+ version: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
devDependencies:
'@types/connect':
specifier: ^3.4.38
specifier: workspace:*
version: link:../../packages/vue
+ packages-private/local-playground:
+ dependencies:
+ '@vueuse/core':
+ specifier: ^11.1.0
+ version: 11.1.0(vue@packages+vue)
+ vue:
+ specifier: workspace:*
+ version: link:../../packages/vue
+ devDependencies:
+ '@vitejs/plugin-vue':
+ specifier: https://pkg.pr.new/@vitejs/plugin-vue@c156992
+ version: https://pkg.pr.new/@vitejs/plugin-vue@c156992(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1))(vue@packages+vue)
+ '@vue/compiler-sfc':
+ specifier: workspace:*
+ version: link:../../packages/compiler-sfc
+ vite:
+ specifier: 'catalog:'
+ version: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
+ vite-hyper-config:
+ specifier: ^0.4.0
+ version: 0.4.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1))
+ vite-plugin-inspect:
+ specifier: ^0.8.7
+ version: 0.8.7(rollup@4.31.0)(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1))
+
packages-private/sfc-playground:
dependencies:
'@vue/repl':
devDependencies:
'@vitejs/plugin-vue':
specifier: 'catalog:'
- version: 5.1.5(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@packages+vue)
+ version: 5.2.1(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1))(vue@packages+vue)
vite:
specifier: 'catalog:'
- version: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
+ version: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
packages-private/template-explorer:
dependencies:
devDependencies:
'@vitejs/plugin-vue':
specifier: 'catalog:'
- version: 5.1.5(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@packages+vue)
+ version: 5.2.1(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1))(vue@packages+vue)
vite:
specifier: 'catalog:'
- version: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
+ version: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
vue:
specifier: workspace:*
version: link:../../packages/vue
specifier: workspace:*
version: link:../vue
- playground:
- dependencies:
- '@vueuse/core':
- specifier: ^11.1.0
- version: 11.1.0(vue@packages+vue)
- vue:
- specifier: workspace:*
- version: link:../packages/vue
- devDependencies:
- '@vitejs/plugin-vue':
- specifier: https://pkg.pr.new/@vitejs/plugin-vue@c156992
- version: https://pkg.pr.new/@vitejs/plugin-vue@c156992(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@packages+vue)
- '@vue/compiler-sfc':
- specifier: workspace:*
- version: link:../packages/compiler-sfc
- vite:
- specifier: 'catalog:'
- version: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
- vite-hyper-config:
- specifier: ^0.4.0
- version: 0.4.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))
- vite-plugin-inspect:
- specifier: ^0.8.7
- version: 0.8.7(rollup@4.31.0)(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))
-
packages:
'@ampproject/remapping@2.3.0':
resolution: {integrity: sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@vitejs/plugin-vue@5.1.5':
- resolution: {integrity: sha512-dlnib73G05CDBAUR/YpuZcQQ47fpjihnnNouAAqN62z+oqSsWJ+kh52GRzIxpkgFG3q11eXK7Di7RMmoCwISZA==}
+ '@vitejs/plugin-vue@5.2.1':
+ resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
- vite: ^5.0.0
+ vite: ^5.0.0 || ^6.0.0
vue: ^3.2.25
'@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@c156992':
vite: ^5.0.0 || ^6.0.0
vue: ^3.2.25
- '@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5':
- resolution: {tarball: https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5}
- version: 5.1.4
- engines: {node: ^18.0.0 || >=20.0.0}
- peerDependencies:
- vite: ^5.0.0
- vue: ^3.2.25
-
'@vitest/coverage-v8@3.0.2':
resolution: {integrity: sha512-U+hZYb0FtgNDb6B3E9piAHzXXIuxuBw2cd6Lvepc9sYYY4KjgiwCBmo3Sird9ZRu3ggLpLBTfw1ZRr77ipiSfw==}
peerDependencies:
supports-color:
optional: true
- debug@4.3.7:
- resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
debug@4.4.0:
resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
engines: {node: '>=6.0'}
perfect-debounce@1.0.0:
resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
- picocolors@1.1.0:
- resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
-
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
terser:
optional: true
+ vite@6.1.0:
+ resolution: {integrity: sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ jiti: '>=1.21.0'
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
vitest@3.0.2:
resolution: {integrity: sha512-5bzaHakQ0hmVVKLhfh/jXf6oETDBtgPo8tQCHYB+wftNgFJ+Hah67IsWc8ivx4vFL025Ow8UiuTf4W57z4izvQ==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
'@typescript-eslint/types': 8.20.0
eslint-visitor-keys: 4.2.0
- '@vitejs/plugin-vue@5.1.5(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@packages+vue)':
+ '@vitejs/plugin-vue@5.2.1(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1))(vue@packages+vue)':
dependencies:
- vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
+ vite: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
vue: link:packages/vue
- '@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@c156992(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@packages+vue)':
+ '@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@c156992(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.2))':
dependencies:
- vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
- vue: link:packages/vue
+ vite: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
+ vue: 3.5.13(typescript@5.6.2)
- '@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@3.5.13(typescript@5.6.2))':
+ '@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@c156992(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1))(vue@packages+vue)':
dependencies:
- vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
- vue: 3.5.13(typescript@5.6.2)
+ vite: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
+ vue: link:packages/vue
'@vitest/coverage-v8@3.0.2(vitest@3.0.2)':
dependencies:
std-env: 3.8.0
test-exclude: 7.0.1
tinyrainbow: 2.0.0
- vitest: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)
+ vitest: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
transitivePeerDependencies:
- supports-color
eslint: 9.18.0
optionalDependencies:
typescript: 5.6.2
- vitest: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)
+ vitest: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
'@vitest/expect@3.0.2':
dependencies:
chai: 5.1.2
tinyrainbow: 2.0.0
- '@vitest/mocker@3.0.2(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))':
+ '@vitest/mocker@3.0.2(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1))':
dependencies:
'@vitest/spy': 3.0.2
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
- vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
+ vite: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
'@vitest/pretty-format@3.0.2':
dependencies:
sirv: 3.0.0
tinyglobby: 0.2.10
tinyrainbow: 2.0.0
- vitest: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)
+ vitest: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
'@vitest/utils@3.0.2':
dependencies:
dependencies:
ms: 2.1.2
- debug@4.3.7:
- dependencies:
- ms: 2.1.3
-
debug@4.4.0:
dependencies:
ms: 2.1.3
perfect-debounce@1.0.0: {}
- picocolors@1.1.0: {}
-
picocolors@1.1.1: {}
picomatch@2.3.1: {}
vary@1.1.2: {}
- vite-hyper-config@0.4.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)):
+ vite-hyper-config@0.4.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)):
dependencies:
cac: 6.7.14
- picocolors: 1.1.0
- vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
+ picocolors: 1.1.1
+ vite: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
vite-node: 2.1.1(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
transitivePeerDependencies:
- '@types/node'
vite-node@2.1.1(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0):
dependencies:
cac: 6.7.14
- debug: 4.3.6
+ debug: 4.4.0
pathe: 1.1.2
vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
transitivePeerDependencies:
- supports-color
- terser
- vite-node@3.0.2(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0):
+ vite-node@3.0.2(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1):
dependencies:
cac: 6.7.14
debug: 4.4.0
es-module-lexer: 1.6.0
pathe: 2.0.2
- vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
+ vite: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
transitivePeerDependencies:
- '@types/node'
+ - jiti
- less
- lightningcss
- sass
- sugarss
- supports-color
- terser
+ - tsx
+ - yaml
- vite-plugin-inspect@0.8.7(rollup@4.31.0)(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)):
+ vite-plugin-inspect@0.8.7(rollup@4.31.0)(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.0(rollup@4.31.0)
- debug: 4.3.7
+ debug: 4.4.0
error-stack-parser-es: 0.1.5
fs-extra: 11.2.0
open: 10.1.0
perfect-debounce: 1.0.0
- picocolors: 1.1.0
+ picocolors: 1.1.1
sirv: 2.0.4
- vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
+ vite: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
transitivePeerDependencies:
- rollup
- supports-color
sass: 1.83.4
terser: 5.33.0
- vitest@3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0):
+ vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1):
+ dependencies:
+ esbuild: 0.24.2
+ postcss: 8.5.1
+ rollup: 4.31.0
+ optionalDependencies:
+ '@types/node': 22.10.7
+ fsevents: 2.3.3
+ sass: 1.83.4
+ terser: 5.33.0
+ yaml: 2.6.1
+
+ vitest@3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1):
dependencies:
'@vitest/expect': 3.0.2
- '@vitest/mocker': 3.0.2(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))
+ '@vitest/mocker': 3.0.2(vite@6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1))
'@vitest/pretty-format': 3.0.2
'@vitest/runner': 3.0.2
'@vitest/snapshot': 3.0.2
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
- vite-node: 3.0.2(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
+ vite: 6.1.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
+ vite-node: 3.0.2(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(yaml@2.6.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.10.7
'@vitest/ui': 3.0.4(vitest@3.0.2)
jsdom: 26.0.0
transitivePeerDependencies:
+ - jiti
- less
- lightningcss
- msw
- sugarss
- supports-color
- terser
+ - tsx
+ - yaml
void-elements@3.1.0: {}
packages:
- 'packages/*'
- 'packages-private/*'
- - playground
- - benchmark
catalog:
'@babel/parser': ^7.25.3
'estree-walker': ^2.0.2
'magic-string': ^0.30.11
'source-map-js': ^1.2.0
- 'vite': ^5.4.0
- '@vitejs/plugin-vue': ^5.1.2
+ 'vite': ^6.1.0
+ '@vitejs/plugin-vue': ^5.2.1