Merge branch 'main' into patch-21

This commit is contained in:
Michael Brevard 2024-03-26 16:19:44 +02:00 committed by GitHub
commit 0caf8153ea
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 150 additions and 114 deletions

View File

@ -71,7 +71,7 @@
"happy-dom": "14.3.6",
"jiti": "1.21.0",
"markdownlint-cli": "0.39.0",
"nitropack": "2.9.4",
"nitropack": "2.9.5",
"nuxi": "3.11.1",
"nuxt": "workspace:*",
"nuxt-content-twoslash": "0.0.10",

View File

@ -50,7 +50,7 @@
"@types/lodash-es": "4.17.12",
"@types/semver": "7.5.8",
"lodash-es": "4.17.21",
"nitropack": "2.9.4",
"nitropack": "2.9.5",
"unbuild": "latest",
"vite": "5.2.6",
"vitest": "1.4.0",

View File

@ -89,7 +89,7 @@
"knitwork": "^1.0.0",
"magic-string": "^0.30.8",
"mlly": "^1.6.1",
"nitropack": "^2.9.4",
"nitropack": "^2.9.5",
"nuxi": "^3.11.1",
"nypm": "^0.3.8",
"ofetch": "^1.3.4",
@ -97,7 +97,7 @@
"pathe": "^1.1.2",
"perfect-debounce": "^1.0.0",
"pkg-types": "^1.0.3",
"radix3": "^1.1.1",
"radix3": "^1.1.2",
"scule": "^1.3.0",
"std-env": "^3.7.0",
"strip-literal": "^2.0.0",

View File

@ -109,15 +109,15 @@ export default defineComponent({
components: {}
}
if (nuxtApp.isHydrating) {
if (instance.vnode.el) {
payloads.slots = toRaw(nuxtApp.payload.data[`${props.name}_${hashId.value}`])?.slots ?? {}
payloads.components = toRaw(nuxtApp.payload.data[`${props.name}_${hashId.value}`])?.components ?? {}
}
const ssrHTML = ref<string>('')
if (import.meta.client && nuxtApp.isHydrating) {
ssrHTML.value = getFragmentHTML(instance.vnode?.el ?? null, true)?.join('') || ''
if (import.meta.client && instance.vnode?.el) {
ssrHTML.value = getFragmentHTML(instance.vnode.el, true)?.join('') || ''
const key = `${props.name}_${hashId.value}`
nuxtApp.payload.data[key] ||= {}
nuxtApp.payload.data[key].html = ssrHTML.value
@ -250,7 +250,7 @@ export default defineComponent({
// this is used to force trigger Teleport when vue makes the diff between old and new node
const isKeyOdd = teleportKey.value === 0 || !!(teleportKey.value && !(teleportKey.value % 2))
if (uid.value && html.value && (import.meta.server || props.lazy ? canTeleport : mounted.value || nuxtApp.isHydrating)) {
if (uid.value && html.value && (import.meta.server || props.lazy ? canTeleport : (mounted.value || instance.vnode?.el))) {
for (const slot in slots) {
if (availableSlots.value.includes(slot)) {
teleports.push(createVNode(Teleport,

View File

@ -14,11 +14,15 @@ export default defineNuxtPlugin((nuxtApp) => {
const currentManifest = await getAppManifest()
if (timeout) { clearTimeout(timeout) }
timeout = setTimeout(getLatestManifest, 1000 * 60 * 60)
try {
const meta = await $fetch<NuxtAppManifestMeta>(buildAssetsURL('builds/latest.json') + `?${Date.now()}`)
if (meta.id !== currentManifest.id) {
// There is a newer build which we will let the user handle
nuxtApp.hooks.callHook('app:manifest:update', meta)
}
} catch {
// fail gracefully on network issue
}
}
onNuxtReady(() => { timeout = setTimeout(getLatestManifest, 1000 * 60 * 60) })

View File

@ -108,13 +108,20 @@ export const islandsTransform = createUnplugin((options: ServerOnlyComponentTran
s.appendRight(startingIndex + loc[1].end, '</NuxtTeleportSsrSlot>')
} else if (options.selectiveClient && ('nuxt-client' in node.attributes || ':nuxt-client' in node.attributes)) {
hasNuxtClient = true
const attributeValue = node.attributes[':nuxt-client'] || node.attributes['nuxt-client'] || 'true'
const { loc, attributes } = node
const attributeValue = attributes[':nuxt-client'] || attributes['nuxt-client'] || 'true'
if (isVite) {
// handle granular interactivity
const htmlCode = code.slice(startingIndex + node.loc[0].start, startingIndex + node.loc[1].end)
const uid = hash(id + node.loc[0].start + node.loc[0].end)
const wrapperAttributes = extractAttributes(attributes, ['v-if', 'v-else-if', 'v-else'])
s.overwrite(startingIndex + node.loc[0].start, startingIndex + node.loc[1].end, `<NuxtTeleportIslandComponent to="${node.name}-${uid}" ${rootDir && isDev ? `root-dir="${rootDir}"` : ''} :nuxt-client="${attributeValue}">${htmlCode.replaceAll(NUXTCLIENT_ATTR_RE, '')}</NuxtTeleportIslandComponent>`)
let startTag = code.slice(startingIndex + loc[0].start, startingIndex + loc[0].end).replace(NUXTCLIENT_ATTR_RE, '')
if (wrapperAttributes) {
startTag = startTag.replaceAll(EXTRACTED_ATTRS_RE, '')
}
s.appendLeft(startingIndex + loc[0].start, `<NuxtTeleportIslandComponent${attributeToString(wrapperAttributes)} to="${node.name}-${uid}" ${rootDir && isDev ? `root-dir="${rootDir}"` : ''} :nuxt-client="${attributeValue}">`)
s.overwrite(startingIndex + loc[0].start, startingIndex + loc[0].end, startTag)
s.appendRight(startingIndex + loc[1].end, '</NuxtTeleportIslandComponent>')
}
}
}

View File

@ -380,6 +380,31 @@ describe('islandTransform - server and island components', () => {
`)
expect(result).toContain('import NuxtTeleportIslandComponent from \'#app/components/nuxt-teleport-island-component\'')
})
it('should move v-if to the wrapper component', async () => {
const result = await viteTransform(`<template>
<div>
<HelloWorld v-if="false" nuxt-client />
<HelloWorld v-else-if="true" nuxt-client />
<HelloWorld v-else nuxt-client />
</div>
</template>
`, 'hello.server.vue', false, true)
expect(result).toMatchInlineSnapshot(`
"<script setup>
import { vforToArray as __vforToArray } from '#app/components/utils'
import NuxtTeleportIslandComponent from '#app/components/nuxt-teleport-island-component'
import NuxtTeleportSsrSlot from '#app/components/nuxt-teleport-island-slot'</script><template>
<div>
<NuxtTeleportIslandComponent v-if="false" to="HelloWorld-D9uaHyzL7X" :nuxt-client="true"><HelloWorld /></NuxtTeleportIslandComponent>
<NuxtTeleportIslandComponent v-else-if="true" to="HelloWorld-o4RZMtArnE" :nuxt-client="true"><HelloWorld /></NuxtTeleportIslandComponent>
<NuxtTeleportIslandComponent v-else to="HelloWorld-m1IbXHdd8O" :nuxt-client="true"><HelloWorld /></NuxtTeleportIslandComponent>
</div>
</template>
"
`)
})
})
describe('webpack', () => {

View File

@ -47,7 +47,7 @@
"esbuild-loader": "4.1.0",
"h3": "1.11.1",
"ignore": "5.3.1",
"nitropack": "2.9.4",
"nitropack": "2.9.5",
"ofetch": "1.3.4",
"unbuild": "latest",
"unctx": "2.3.1",

View File

@ -39,7 +39,7 @@
"autoprefixer": "^10.4.19",
"clear": "^0.1.0",
"consola": "^3.2.3",
"cssnano": "^6.1.1",
"cssnano": "^6.1.2",
"defu": "^6.1.4",
"esbuild": "^0.20.2",
"escape-string-regexp": "^5.0.0",

View File

@ -30,7 +30,7 @@
"autoprefixer": "^10.4.19",
"css-loader": "^6.10.0",
"css-minimizer-webpack-plugin": "^6.0.0",
"cssnano": "^6.1.1",
"cssnano": "^6.1.2",
"defu": "^6.1.4",
"esbuild-loader": "^4.1.0",
"escape-string-regexp": "^5.0.0",

View File

@ -101,8 +101,8 @@ importers:
specifier: 0.39.0
version: 0.39.0
nitropack:
specifier: 2.9.4
version: 2.9.4
specifier: 2.9.5
version: 2.9.5
nuxi:
specifier: 3.11.1
version: 3.11.1
@ -222,8 +222,8 @@ importers:
specifier: 4.17.21
version: 4.17.21
nitropack:
specifier: 2.9.4
version: 2.9.4
specifier: 2.9.5
version: 2.9.5
unbuild:
specifier: latest
version: 2.0.0(typescript@5.4.3)
@ -333,8 +333,8 @@ importers:
specifier: ^1.6.1
version: 1.6.1
nitropack:
specifier: ^2.9.4
version: 2.9.4
specifier: ^2.9.5
version: 2.9.5
nuxi:
specifier: ^3.11.1
version: 3.11.1
@ -357,8 +357,8 @@ importers:
specifier: ^1.0.3
version: 1.0.3
radix3:
specifier: ^1.1.1
version: 1.1.1
specifier: ^1.1.2
version: 1.1.2
scule:
specifier: ^1.3.0
version: 1.3.0
@ -509,8 +509,8 @@ importers:
specifier: 5.3.1
version: 5.3.1
nitropack:
specifier: 2.9.4
version: 2.9.4
specifier: 2.9.5
version: 2.9.5
ofetch:
specifier: 1.3.4
version: 1.3.4
@ -569,8 +569,8 @@ importers:
specifier: ^3.2.3
version: 3.2.3
cssnano:
specifier: ^6.1.1
version: 6.1.1(postcss@8.4.38)
specifier: ^6.1.2
version: 6.1.2(postcss@8.4.38)
defu:
specifier: ^6.1.4
version: 6.1.4
@ -687,8 +687,8 @@ importers:
specifier: ^6.0.0
version: 6.0.0(webpack@5.91.0)
cssnano:
specifier: ^6.1.1
version: 6.1.1(postcss@8.4.38)
specifier: ^6.1.2
version: 6.1.2(postcss@8.4.38)
defu:
specifier: ^6.1.4
version: 6.1.4
@ -948,15 +948,15 @@ packages:
resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==}
engines: {node: '>=6.9.0'}
/@babel/core@7.24.3:
resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==}
/@babel/core@7.24.1:
resolution: {integrity: sha512-F82udohVyIgGAY2VVj/g34TpFUG606rumIHjTfVbssPg2zTR7PuuEpZcX8JA6sgBfIYmJrFtWgPvHQuJamVqZQ==}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.24.2
'@babel/generator': 7.24.1
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
'@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.1)
'@babel/helpers': 7.24.1
'@babel/parser': 7.24.1
'@babel/template': 7.24.0
@ -995,19 +995,19 @@ packages:
lru-cache: 5.1.1
semver: 6.3.1
/@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3):
/@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.1):
resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/helper-annotate-as-pure': 7.22.5
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-function-name': 7.23.0
'@babel/helper-member-expression-to-functions': 7.23.0
'@babel/helper-optimise-call-expression': 7.22.5
'@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
'@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.1)
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
semver: 6.3.1
@ -1041,13 +1041,13 @@ packages:
dependencies:
'@babel/types': 7.24.0
/@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3):
/@babel/helper-module-transforms@7.23.3(@babel/core@7.24.1):
resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-module-imports': 7.22.15
'@babel/helper-simple-access': 7.22.5
@ -1064,13 +1064,13 @@ packages:
resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==}
engines: {node: '>=6.9.0'}
/@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3):
/@babel/helper-replace-supers@7.24.1(@babel/core@7.24.1):
resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-member-expression-to-functions': 7.23.0
'@babel/helper-optimise-call-expression': 7.22.5
@ -1132,103 +1132,103 @@ packages:
dependencies:
'@babel/types': 7.24.0
/@babel/plugin-proposal-decorators@7.23.2(@babel/core@7.24.3):
/@babel/plugin-proposal-decorators@7.23.2(@babel/core@7.24.1):
resolution: {integrity: sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.3
'@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
'@babel/core': 7.24.1
'@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.1)
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3)
'@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.1)
'@babel/helper-split-export-declaration': 7.22.6
'@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.24.3)
'@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.24.1)
dev: false
/@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.24.3):
/@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.24.1):
resolution: {integrity: sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/helper-plugin-utils': 7.24.0
dev: false
/@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.24.3):
/@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.24.1):
resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/helper-plugin-utils': 7.24.0
dev: false
/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3):
/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.1):
resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/helper-plugin-utils': 7.24.0
dev: false
/@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3):
/@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.1):
resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/helper-plugin-utils': 7.24.0
/@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3):
/@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.1):
resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/helper-plugin-utils': 7.24.0
/@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3):
resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==}
/@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.1):
resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.3
'@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3)
'@babel/core': 7.24.1
'@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.1)
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-simple-access': 7.22.5
dev: false
/@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3):
/@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.1):
resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/helper-annotate-as-pure': 7.22.5
'@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3)
'@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.1)
'@babel/helper-plugin-utils': 7.24.0
'@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3)
'@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.1)
/@babel/preset-typescript@7.24.1(@babel/core@7.24.3):
resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==}
/@babel/preset-typescript@7.23.3(@babel/core@7.24.1):
resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/helper-plugin-utils': 7.24.0
'@babel/helper-validator-option': 7.23.5
'@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3)
'@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3)
'@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
'@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.1)
'@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.1)
'@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.1)
dev: false
/@babel/runtime@7.23.9:
@ -2384,12 +2384,12 @@ packages:
happy-dom: 14.3.6
local-pkg: 0.5.0
magic-string: 0.30.8
node-fetch-native: 1.6.3
node-fetch-native: 1.6.4
ofetch: 1.3.4
pathe: 1.1.2
perfect-debounce: 1.0.0
playwright-core: 1.42.1
radix3: 1.1.1
radix3: 1.1.2
scule: 1.3.0
std-env: 3.7.0
ufo: 1.5.3
@ -3537,9 +3537,9 @@ packages:
/@unocss/transformer-attributify-jsx-babel@0.58.6:
resolution: {integrity: sha512-IVU/ZozKTFhP9z1I9ZgSKiEx3WfDFDNXbTYTqwNW2SHPmAj5Qf99kn6o7br7Kd1dnxSjKFXOmNfNGkW9AMDraA==}
dependencies:
'@babel/core': 7.24.3
'@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3)
'@babel/preset-typescript': 7.24.1(@babel/core@7.24.3)
'@babel/core': 7.24.1
'@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.1)
'@babel/preset-typescript': 7.23.3(@babel/core@7.24.1)
'@unocss/core': 0.58.6
transitivePeerDependencies:
- supports-color
@ -3619,9 +3619,9 @@ packages:
vite: 5.2.6
vue: 3.4.21
dependencies:
'@babel/core': 7.24.3
'@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
'@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.3)
'@babel/core': 7.24.1
'@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.1)
'@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.1)
vite: 5.2.6(@types/node@20.11.30)
vue: 3.4.21(typescript@5.4.3)
transitivePeerDependencies:
@ -3789,14 +3789,14 @@ packages:
/@vue/babel-helper-vue-transform-on@1.1.5:
resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==}
/@vue/babel-plugin-jsx@1.1.5(@babel/core@7.24.3):
/@vue/babel-plugin-jsx@1.1.5(@babel/core@7.24.1):
resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/helper-module-imports': 7.22.15
'@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3)
'@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.1)
'@babel/template': 7.24.0
'@babel/traverse': 7.24.1
'@babel/types': 7.24.0
@ -4814,7 +4814,7 @@ packages:
convert-gitmoji: 0.1.3
execa: 8.0.1
mri: 1.2.0
node-fetch-native: 1.6.3
node-fetch-native: 1.6.4
ofetch: 1.3.4
open: 9.1.0
pathe: 1.1.2
@ -5124,8 +5124,8 @@ packages:
uWebSockets.js:
optional: true
/css-declaration-sorter@7.1.1(postcss@8.4.38):
resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==}
/css-declaration-sorter@7.2.0(postcss@8.4.38):
resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==}
engines: {node: ^14 || ^16 || >=18}
peerDependencies:
postcss: ^8.0.9
@ -5182,7 +5182,7 @@ packages:
optional: true
dependencies:
'@jridgewell/trace-mapping': 0.3.25
cssnano: 6.1.1(postcss@8.4.38)
cssnano: 6.1.2(postcss@8.4.38)
jest-worker: 29.7.0
postcss: 8.4.38
schema-utils: 4.2.0
@ -5226,14 +5226,14 @@ packages:
engines: {node: '>=4'}
hasBin: true
/cssnano-preset-default@6.1.1(postcss@8.4.38):
resolution: {integrity: sha512-XW/dYN2p8Jdkp1lovFd0UVRh6RB0iMyXJbAE9Qm+taR3p2LGu492AW34lVaukUrXoK9IxK5aK3CUmFpUorU4oA==}
/cssnano-preset-default@6.1.2(postcss@8.4.38):
resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==}
engines: {node: ^14 || ^16 || >=18.0}
peerDependencies:
postcss: ^8.4.31
dependencies:
browserslist: 4.23.0
css-declaration-sorter: 7.1.1(postcss@8.4.38)
css-declaration-sorter: 7.2.0(postcss@8.4.38)
cssnano-utils: 4.0.2(postcss@8.4.38)
postcss: 8.4.38
postcss-calc: 9.0.1(postcss@8.4.38)
@ -5274,13 +5274,13 @@ packages:
postcss: 8.4.38
dev: false
/cssnano@6.1.1(postcss@8.4.38):
resolution: {integrity: sha512-paTFZuiVohpaXJuau8l7buFt9+FTmfjwEO70EKitzYOQw3frib/It4sb6cQ+gJyDEyY+myDSni6IbBvKZ0N8Lw==}
/cssnano@6.1.2(postcss@8.4.38):
resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==}
engines: {node: ^14 || ^16 || >=18.0}
peerDependencies:
postcss: ^8.4.31
dependencies:
cssnano-preset-default: 6.1.1(postcss@8.4.38)
cssnano-preset-default: 6.1.2(postcss@8.4.38)
lilconfig: 3.1.1
postcss: 8.4.38
dev: false
@ -6597,7 +6597,7 @@ packages:
citty: 0.1.6
consola: 3.2.3
defu: 6.1.4
node-fetch-native: 1.6.3
node-fetch-native: 1.6.4
nypm: 0.3.8
ohash: 1.1.3
pathe: 1.1.2
@ -6759,7 +6759,7 @@ packages:
destr: 2.0.3
iron-webcrypto: 1.0.0
ohash: 1.1.3
radix3: 1.1.1
radix3: 1.1.2
ufo: 1.5.3
uncrypto: 0.1.3
unenv: 1.9.0
@ -8571,8 +8571,8 @@ packages:
/neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
/nitropack@2.9.4:
resolution: {integrity: sha512-i/cbDW5qfZS6pQR4DrlQOFlNoNvQVBuiy7EEvMlrqkmMGXiIJY1WW7L7D4/6m9dF1cwitOu7k0lJWVn74gxfvw==}
/nitropack@2.9.5:
resolution: {integrity: sha512-ClanSILi9O6HX95QNIC+TwxojpRpOSn9n3e3wmHExAHhLN5HdnHGmHN4LwtJdE2p91nse3kDULOTR7k1xRVJ/g==}
engines: {node: ^16.11.0 || >=17.0.0}
hasBin: true
peerDependencies:
@ -8625,7 +8625,7 @@ packages:
mime: 4.0.1
mlly: 1.6.1
mri: 1.2.0
node-fetch-native: 1.6.3
node-fetch-native: 1.6.4
ofetch: 1.3.4
ohash: 1.1.3
openapi-typescript: 6.7.5
@ -8633,7 +8633,7 @@ packages:
perfect-debounce: 1.0.0
pkg-types: 1.0.3
pretty-bytes: 6.1.1
radix3: 1.1.1
radix3: 1.1.2
rollup: 4.13.0
rollup-plugin-visualizer: 5.12.0(rollup@4.13.0)
scule: 1.3.0
@ -8685,8 +8685,8 @@ packages:
skin-tone: 2.0.0
dev: true
/node-fetch-native@1.6.3:
resolution: {integrity: sha512-5kvcZPQYJBlUPgHxG0L8RJ52wiu2Sn5RAXBJlU6xPv8X+4MbeOxJ8Do9NFzD1RaWDDc1OF2VtBTgo+OKzg01uA==}
/node-fetch-native@1.6.4:
resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
/node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
@ -8973,7 +8973,7 @@ packages:
resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==}
dependencies:
destr: 2.0.3
node-fetch-native: 1.6.3
node-fetch-native: 1.6.4
ufo: 1.5.3
/ohash@1.1.3:
@ -9866,8 +9866,8 @@ packages:
/queue-tick@1.0.1:
resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
/radix3@1.1.1:
resolution: {integrity: sha512-yUUd5VTiFtcMEx0qFUxGAv5gbMc1un4RvEO1JZdP7ZUl/RHygZK6PknIKntmQRZxnMY3ZXD2ISaw1ij8GYW1yg==}
/radix3@1.1.2:
resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==}
/randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
@ -11186,7 +11186,7 @@ packages:
consola: 3.2.3
defu: 6.1.4
mime: 3.0.0
node-fetch-native: 1.6.3
node-fetch-native: 1.6.4
pathe: 1.1.2
/unhead@1.9.1:
@ -11422,7 +11422,7 @@ packages:
listhen: 1.7.2
lru-cache: 10.2.0
mri: 1.2.0
node-fetch-native: 1.6.3
node-fetch-native: 1.6.4
ofetch: 1.3.4
ufo: 1.5.3
transitivePeerDependencies:
@ -11445,7 +11445,7 @@ packages:
resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==}
hasBin: true
dependencies:
'@babel/core': 7.24.3
'@babel/core': 7.24.1
'@babel/standalone': 7.23.9
'@babel/types': 7.24.0
defu: 6.1.4
@ -11682,12 +11682,12 @@ packages:
peerDependencies:
vite: 5.2.6
dependencies:
'@babel/core': 7.24.3
'@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.24.3)
'@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.24.3)
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.3)
'@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3)
'@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.3)
'@babel/core': 7.24.1
'@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.24.1)
'@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.24.1)
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.1)
'@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.1)
'@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.1)
'@vue/compiler-dom': 3.4.21
kolorist: 1.8.0
magic-string: 0.30.8

View File

@ -32,7 +32,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM
const serverDir = join(rootDir, '.output/server')
const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir)
expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"207k"')
expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"208k"')
const modules = await analyzeSizes('node_modules/**/*', serverDir)
expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"1335k"')