chore(deps): update dependency nuxt to ^3.13.1 (#2946)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Roe <daniel@roe.dev>
This commit is contained in:
renovate[bot] 2024-09-11 15:37:59 +01:00 committed by GitHub
parent 344ec56da0
commit dd6fab86ee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 1489 additions and 1837 deletions

View file

@ -3,7 +3,6 @@
import { DynamicScroller } from 'vue-virtual-scroller' import { DynamicScroller } from 'vue-virtual-scroller'
import 'vue-virtual-scroller/dist/vue-virtual-scroller.css' import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'
import type { mastodon } from 'masto' import type { mastodon } from 'masto'
import type { UnwrapRef } from 'vue'
const { const {
paginator, paginator,
@ -33,7 +32,7 @@ defineSlots<{
newer: U // newer is undefined when index === 0 newer: U // newer is undefined when index === 0
}) => void }) => void
items: (props: { items: (props: {
items: UnwrapRef<U[]> items: U[]
}) => void }) => void
updater: (props: { updater: (props: {
number: number number: number
@ -74,7 +73,7 @@ defineExpose({ createEntry, removeEntry, updateEntry })
<template> <template>
<div> <div>
<slot v-if="prevItems.length" name="updater" v-bind="{ number: prevItems.length, update }" /> <slot v-if="prevItems.length" name="updater" v-bind="{ number: prevItems.length, update }" />
<slot name="items" :items="items"> <slot name="items" :items="items as U[]">
<template v-if="virtualScroller"> <template v-if="virtualScroller">
<DynamicScroller <DynamicScroller
v-slot="{ item, active, index }" v-slot="{ item, active, index }"

View file

@ -17,7 +17,7 @@ const modelValue = defineModel<boolean>({ required: true })
text-red-600 dark:text-red-400 text-red-600 dark:text-red-400
border="~ base rounded red-600 dark:red-400" border="~ base rounded red-600 dark:red-400"
> >
<head id="notification-failed" flex justify-between> <header id="notification-failed" flex justify-between>
<div flex items-center gap-x-2 font-bold> <div flex items-center gap-x-2 font-bold>
<div aria-hidden="true" i-ri:error-warning-fill /> <div aria-hidden="true" i-ri:error-warning-fill />
<p>{{ title ?? $t('settings.notifications.push_notifications.subscription_error.title') }}</p> <p>{{ title ?? $t('settings.notifications.push_notifications.subscription_error.title') }}</p>
@ -32,7 +32,7 @@ const modelValue = defineModel<boolean>({ required: true })
<span aria-hidden="true" w="1.75em" h="1.75em" i-ri:close-line /> <span aria-hidden="true" w="1.75em" h="1.75em" i-ri:close-line />
</button> </button>
</CommonTooltip> </CommonTooltip>
</head> </header>
<p>{{ message }}</p> <p>{{ message }}</p>
<p py-2> <p py-2>
<i18n-t keypath="settings.notifications.push_notifications.subscription_error.error_hint"> <i18n-t keypath="settings.notifications.push_notifications.subscription_error.error_hint">

View file

@ -13,6 +13,6 @@
}, },
"devDependencies": { "devDependencies": {
"@nuxt-themes/docus": "^1.15.0", "@nuxt-themes/docus": "^1.15.0",
"nuxt": "^3.13.0" "nuxt": "^3.13.1"
} }
} }

View file

@ -1,4 +1,4 @@
import fs from 'fs-extra' import { lstat } from 'node:fs'
import { createResolver, defineNuxtModule } from '@nuxt/kit' import { createResolver, defineNuxtModule } from '@nuxt/kit'
import { currentLocales } from '../config/i18n' import { currentLocales } from '../config/i18n'
@ -53,7 +53,7 @@ export default defineNuxtModule({
async function isFile(path: string) { async function isFile(path: string) {
return new Promise<boolean>((resolve) => { return new Promise<boolean>((resolve) => {
fs.lstat(path, (err, stats) => { lstat(path, (err, stats) => {
if (err) if (err)
resolve(false) resolve(false)
else else

View file

@ -1,5 +1,5 @@
import { Buffer } from 'node:buffer' import { Buffer } from 'node:buffer'
import { readFile } from 'fs-extra' import { readFile } from 'node:fs/promises'
import { createResolver } from '@nuxt/kit' import { createResolver } from '@nuxt/kit'
import type { ManifestOptions } from 'vite-plugin-pwa' import type { ManifestOptions } from 'vite-plugin-pwa'
import { getEnv } from '../../config/env' import { getEnv } from '../../config/env'

View file

@ -8,11 +8,12 @@ import { currentLocales } from './config/i18n'
const { resolve } = createResolver(import.meta.url) const { resolve } = createResolver(import.meta.url)
export default defineNuxtConfig({ export default defineNuxtConfig({
compatibilityDate: '2024-09-11',
typescript: { typescript: {
tsConfig: { tsConfig: {
exclude: ['../service-worker'], exclude: ['../service-worker'],
vueCompilerOptions: { vueCompilerOptions: {
target: 3.4, target: 3.5,
}, },
}, },
}, },

View file

@ -37,11 +37,11 @@
"@iconify-emoji/twemoji": "^1.0.2", "@iconify-emoji/twemoji": "^1.0.2",
"@iconify/json": "^2.2.170", "@iconify/json": "^2.2.170",
"@iconify/utils": "^2.1.22", "@iconify/utils": "^2.1.22",
"@nuxt/devtools": "^1.0.8", "@nuxt/devtools": "^1.4.2",
"@nuxt/test-utils": "^3.12.0", "@nuxt/test-utils": "^3.14.2",
"@nuxtjs/color-mode": "^3.3.4", "@nuxtjs/color-mode": "^3.4.4",
"@nuxtjs/i18n": "^8.4.0", "@nuxtjs/i18n": "^8.5.3",
"@pinia/nuxt": "^0.5.3", "@pinia/nuxt": "^0.5.4",
"@tiptap/core": "2.2.4", "@tiptap/core": "2.2.4",
"@tiptap/extension-bold": "2.2.4", "@tiptap/extension-bold": "2.2.4",
"@tiptap/extension-character-count": "2.2.4", "@tiptap/extension-character-count": "2.2.4",
@ -59,13 +59,13 @@
"@unocss/nuxt": "^0.62.3", "@unocss/nuxt": "^0.62.3",
"@upstash/redis": "^1.27.1", "@upstash/redis": "^1.27.1",
"@vercel/kv": "^2.0.0", "@vercel/kv": "^2.0.0",
"@vue-macros/nuxt": "^1.6.0", "@vue-macros/nuxt": "^1.11.12",
"@vueuse/core": "^11.0.0", "@vueuse/core": "^11.0.3",
"@vueuse/gesture": "^2.0.0", "@vueuse/gesture": "^2.0.0",
"@vueuse/integrations": "^11.0.0", "@vueuse/integrations": "^11.0.3",
"@vueuse/math": "^11.0.0", "@vueuse/math": "^11.0.3",
"@vueuse/motion": "2.2.5", "@vueuse/motion": "2.2.5",
"@vueuse/nuxt": "^11.0.0", "@vueuse/nuxt": "^11.0.3",
"blurhash": "^2.0.5", "blurhash": "^2.0.5",
"browser-fs-access": "^0.35.0", "browser-fs-access": "^0.35.0",
"cheerio": "^1.0.0", "cheerio": "^1.0.0",
@ -85,7 +85,7 @@
"lru-cache": "^11.0.0", "lru-cache": "^11.0.0",
"masto": "^6.7.5", "masto": "^6.7.5",
"node-emoji": "^2.1.3", "node-emoji": "^2.1.3",
"nuxt-security": "^1.0.0", "nuxt-security": "^1.4.3",
"page-lifecycle": "^0.1.2", "page-lifecycle": "^0.1.2",
"pinia": "^2.2.2", "pinia": "^2.2.2",
"postcss-nested": "^6.0.1", "postcss-nested": "^6.0.1",
@ -105,11 +105,11 @@
"ufo": "^1.5.3", "ufo": "^1.5.3",
"ultrahtml": "^1.5.3", "ultrahtml": "^1.5.3",
"unimport": "^3.10.0", "unimport": "^3.10.0",
"vite-plugin-pwa": "^0.20.0", "vite-plugin-pwa": "^0.20.5",
"vue-advanced-cropper": "^2.8.8", "vue-advanced-cropper": "^2.8.9",
"vue-virtual-scroller": "2.0.0-beta.8", "vue-virtual-scroller": "2.0.0-beta.8",
"workbox-build": "^7.0.0", "workbox-build": "^7.1.1",
"workbox-window": "^7.0.0", "workbox-window": "^7.1.0",
"ws": "^8.15.1" "ws": "^8.15.1"
}, },
"devDependencies": { "devDependencies": {
@ -132,7 +132,7 @@
"flat": "^6.0.1", "flat": "^6.0.1",
"fs-extra": "^11.2.0", "fs-extra": "^11.2.0",
"lint-staged": "^15.2.10", "lint-staged": "^15.2.10",
"nuxt": "^3.13.0", "nuxt": "^3.13.1",
"prettier": "^3.3.3", "prettier": "^3.3.3",
"sharp": "^0.33.5", "sharp": "^0.33.5",
"sharp-ico": "^0.1.5", "sharp-ico": "^0.1.5",
@ -140,21 +140,22 @@
"tsx": "^4.19.0", "tsx": "^4.19.0",
"typescript": "^5.4.4", "typescript": "^5.4.4",
"vitest": "2.0.5", "vitest": "2.0.5",
"vue-tsc": "^2.0.10" "vue-tsc": "^2.1.6"
}, },
"pnpm": { "pnpm": {
"patchedDependencies": { "patchedDependencies": {
"@vueuse/motion": "patches/@vueuse__motion.patch", "@vueuse/motion": "patches/@vueuse__motion.patch",
"pinceau": "patches/pinceau.patch", "pinceau": "patches/pinceau.patch",
"vue-i18n": "patches/vue-i18n.patch", "vue-i18n": "patches/vue-i18n.patch",
"nuxt-security": "patches/nuxt-security.patch" "nuxt-security": "patches/nuxt-security.patch",
"nuxt": "patches/nuxt.patch"
} }
}, },
"resolutions": { "resolutions": {
"nuxt-component-meta": "0.8.0", "nuxt-component-meta": "0.8.1",
"unstorage": "^1.12.0", "unstorage": "^1.12.0",
"vitest": "2.0.5", "vitest": "2.0.5",
"vue": "^3.4.21" "vue": "^3.5.4"
}, },
"simple-git-hooks": { "simple-git-hooks": {
"pre-commit": "pnpm lint-staged" "pre-commit": "pnpm lint-staged"

12
patches/nuxt.patch Normal file
View file

@ -0,0 +1,12 @@
diff --git a/dist/index.mjs b/dist/index.mjs
index a5c61adc0c21b5df5b1a3ffcf81d2469c7f96873..9241cf294b398b43a4a5555f39746a6c844d0b0f 100644
--- a/dist/index.mjs
+++ b/dist/index.mjs
@@ -2183,6 +2183,7 @@ function createTransformPlugin(nuxt, getComponents, mode) {
}
return createUnplugin(() => ({
name: "nuxt:components:imports",
+ enforce: "post",
transformInclude(id) {
id = normalize(id);
return id.startsWith("virtual:") || id.startsWith("\0virtual:") || id.startsWith(nuxt.options.buildDir) || !isIgnored(id);

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
import { Buffer } from 'node:buffer' import { writeFile } from 'node:fs/promises'
import { join, resolve } from 'pathe' import { join, resolve } from 'pathe'
import fs from 'fs-extra' import fs from 'fs-extra'
import { ofetch } from 'ofetch' import { ofetch } from 'ofetch'
@ -12,7 +12,7 @@ async function download(url: string, fileName: string) {
console.log('downloading', fileName) console.log('downloading', fileName)
try { try {
const image = await ofetch(url, { responseType: 'arrayBuffer' }) const image = await ofetch(url, { responseType: 'arrayBuffer' })
await fs.writeFile(fileName, Buffer.from(image)) await writeFile(fileName, new Uint8Array(image))
} }
catch (err) { catch (err) {
console.error(err) console.error(err)

View file

@ -1,7 +1,7 @@
import { Buffer } from 'node:buffer' import { Buffer } from 'node:buffer'
import { readFile, writeFile } from 'node:fs/promises'
import { flatten, unflatten } from 'flat' import { flatten, unflatten } from 'flat'
import { createResolver } from '@nuxt/kit' import { createResolver } from '@nuxt/kit'
import fs from 'fs-extra'
import { currentLocales } from '../config/i18n' import { currentLocales } from '../config/i18n'
const resolver = createResolver(import.meta.url) const resolver = createResolver(import.meta.url)
@ -27,7 +27,7 @@ const sourceTranslations: Record<string, string> = {}
for (const file of sourceFiles) { for (const file of sourceFiles) {
const data = JSON.parse(Buffer.from( const data = JSON.parse(Buffer.from(
await fs.readFile(resolver.resolve(`../locales/${file as string}`), 'utf-8'), await readFile(resolver.resolve(`../locales/${file as string}`), 'utf-8'),
).toString()) as Record<string, unknown> ).toString()) as Record<string, unknown>
merge(flatten(data), sourceTranslations) merge(flatten(data), sourceTranslations)
@ -41,7 +41,7 @@ async function removeOutdatedTranslations() {
const path = resolver.resolve(`../locales/${file}`) const path = resolver.resolve(`../locales/${file}`)
const data = JSON.parse(Buffer.from( const data = JSON.parse(Buffer.from(
await fs.readFile(path, 'utf-8'), await readFile(path, 'utf-8'),
).toString()) ).toString())
const targetTranslations: Record<string, string> = flatten(data) const targetTranslations: Record<string, string> = flatten(data)
@ -53,7 +53,7 @@ async function removeOutdatedTranslations() {
const unflattened = unflatten(targetTranslations) const unflattened = unflatten(targetTranslations)
await fs.writeFile( await writeFile(
path, path,
`${JSON.stringify(unflattened, null, 2)}\n`, `${JSON.stringify(unflattened, null, 2)}\n`,
{ encoding: 'utf-8' }, { encoding: 'utf-8' },

View file

@ -148,7 +148,7 @@ async function generatePWAIconForEnv(folder: string, icons: ResolvedIcons) {
const png = await sharp( const png = await sharp(
resolve(folder, icons.iconName('transparent', size).replace(/-temp\.png$/, '.png')), resolve(folder, icons.iconName('transparent', size).replace(/-temp\.png$/, '.png')),
).toFormat('png').toBuffer() ).toFormat('png').toBuffer()
await writeFile(resolve(folder, icoName(size)), ico.encode([png])) await writeFile(resolve(folder, icoName(size)), new Uint8Array(ico.encode([png])))
})) }))
} }
} }

View file

@ -1,7 +1,7 @@
import { Buffer } from 'node:buffer' import { Buffer } from 'node:buffer'
import { readFile, writeFile } from 'node:fs/promises'
import { flatten } from 'flat' import { flatten } from 'flat'
import { createResolver } from '@nuxt/kit' import { createResolver } from '@nuxt/kit'
import fs from 'fs-extra'
import { countryLocaleVariants, currentLocales } from '../config/i18n' import { countryLocaleVariants, currentLocales } from '../config/i18n'
import type { LocaleEntry } from '../docs/types' import type { LocaleEntry } from '../docs/types'
import type { ElkTranslationStatus } from '~/types/translation-status' import type { ElkTranslationStatus } from '~/types/translation-status'
@ -28,7 +28,7 @@ async function readI18nFile(file: string | string[]) {
if (Array.isArray(file)) { if (Array.isArray(file)) {
const files = await Promise.all(file.map(f => async () => { const files = await Promise.all(file.map(f => async () => {
return JSON.parse(Buffer.from( return JSON.parse(Buffer.from(
await fs.readFile(resolver.resolve(`../locales/${f}`), 'utf-8'), await readFile(resolver.resolve(`../locales/${f}`), 'utf-8'),
).toString()) ).toString())
})).then(f => f.map(f => f())) })).then(f => f.map(f => f()))
const data: Record<string, any> = files[0] const data: Record<string, any> = files[0]
@ -38,7 +38,7 @@ async function readI18nFile(file: string | string[]) {
} }
else { else {
return JSON.parse(Buffer.from( return JSON.parse(Buffer.from(
await fs.readFile(resolver.resolve(`../locales/${file}`), 'utf-8'), await readFile(resolver.resolve(`../locales/${file}`), 'utf-8'),
).toString()) ).toString())
} }
} }
@ -107,7 +107,7 @@ async function prepareTranslationStatus() {
const resolver = createResolver(import.meta.url) const resolver = createResolver(import.meta.url)
await fs.writeFile( await writeFile(
resolver.resolve('../docs/translation-status.json'), resolver.resolve('../docs/translation-status.json'),
JSON.stringify(sorted, null, 2), JSON.stringify(sorted, null, 2),
{ encoding: 'utf-8' }, { encoding: 'utf-8' },
@ -136,7 +136,7 @@ async function prepareTranslationStatus() {
} }
}) })
await fs.writeFile( await writeFile(
resolver.resolve('../elk-translation-status.json'), resolver.resolve('../elk-translation-status.json'),
JSON.stringify(translationStatus, null, 2), JSON.stringify(translationStatus, null, 2),
{ encoding: 'utf-8' }, { encoding: 'utf-8' },