From 19b9f3a5ca4e926090f4883fd3993e65c9ffef70 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 12 Sep 2024 21:11:06 +0100 Subject: [PATCH] feat: use new og-image zero-runtime feature (#1444) --- app/app.vue | 6 +- modules/og-tweaks.ts | 44 ---- nuxt.config.ts | 11 +- package.json | 6 +- pnpm-lock.yaml | 376 +++++++++++++++++++---------------- server/routes/rss.xml.get.ts | 4 +- test/unit/bundle.spec.ts | 9 +- 7 files changed, 222 insertions(+), 234 deletions(-) delete mode 100644 modules/og-tweaks.ts diff --git a/app/app.vue b/app/app.vue index bb05fdd6f..a3d047577 100644 --- a/app/app.vue +++ b/app/app.vue @@ -24,7 +24,7 @@ defineOgImageComponent('DefaultImage', { }) if (import.meta.server) { - prerenderRoutes(joinURL('/__og-image__/image', route.path, 'og.png')) + prerenderRoutes(joinURL('/__og-image__/static', route.path, 'og.png')) } // TODO: interactive components within server components @@ -61,11 +61,11 @@ if (import.meta.server) { { property: 'og:url', content: url }, { property: 'og:image', - content: `https://roe.dev/og/og.jpg`, + content: `https://roe.dev/__og-image__/static/og.png`, key: 'og:image', }, { property: 'og:image:width', content: '1200' }, - { property: 'og:image:height', content: '630' }, + { property: 'og:image:height', content: '600' }, { property: 'og:title', content: (route.meta.title as string) || 'Daniel Roe', diff --git a/modules/og-tweaks.ts b/modules/og-tweaks.ts deleted file mode 100644 index cf777682a..000000000 --- a/modules/og-tweaks.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { defineNuxtModule, useNuxt } from 'nuxt/kit' -import type { InputPluginOption } from 'rollup' - -export default defineNuxtModule({ - meta: { - name: 'og-tweaks', - }, - setup () { - const nuxt = useNuxt() - - nuxt.hook('modules:done', () => { - nuxt.hook('components:dirs', dirs => { - const ogCommunityTemplates = dirs.findIndex(i => typeof i !== 'string' && i.path.includes('components/Templates/Community')) - if (ogCommunityTemplates !== -1) - dirs.splice(ogCommunityTemplates, 1) - }) - }) - - if (nuxt.options.dev) return - - // Prevent installing runtime nitro plugin to handle content hooks + SPA site config - nuxt.hook('modules:done', () => { - nuxt.options.nitro.plugins = nuxt.options.nitro.plugins?.filter(p => p && !p.includes('runtime/nitro/plugins/nuxt-content') && !p.includes('runtime/nitro/plugins/injectState')) || [] - }) - - // Purge OG image endpoints for runtime (as they are fully prerendered) - nuxt.hook('nitro:config', config => { - (config.rollupConfig!.plugins as InputPluginOption[]).push({ - name: 'purge-the-handler', - transform (code, id) { - if (id.includes('runtime/nitro/routes/image') || (code.includes('defineEventHandler') && id.includes('nuxt-site-config'))) { - return 'import { defineEventHandler } from "h3"; export default defineEventHandler(() => {})' - } - }, - }) - }) - - nuxt.hook('nitro:init', nitro => { - nitro.options._config.rollupConfig!.plugins = ( - nitro.options._config.rollupConfig!.plugins as InputPluginOption[] - ).filter(p => !p || !('name' in p) || p.name !== 'purge-the-handler') - }) - }, -}) diff --git a/nuxt.config.ts b/nuxt.config.ts index 884fc639f..36a4bf6f1 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -226,16 +226,7 @@ export default defineNuxtConfig({ }, ogImage: { - compatibility: { - runtime: { - 'css-inline': false, - 'chromium': false, - 'resvg': false, - 'satori': false, - 'sharp': false, - }, - prerender: {}, - }, + zeroRuntime: true, fonts: [ 'Barlow:400', 'Barlow:600', diff --git a/package.json b/package.json index c5c82d1cb..cc0ac04ca 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@iconify-json/svg-spinners": "^1.2.0", "@iconify-json/tabler": "^1.2.0", "@nuxt/content": "2.13.2", - "@nuxt/eslint": "0.5.5", + "@nuxt/eslint": "0.5.7", "@nuxt/fonts": "0.7.2", "@nuxt/image": "1.8.0", "@nuxtjs/color-mode": "3.4.4", @@ -52,7 +52,7 @@ "masto": "^6.8.0", "mlly": "^1.7.1", "nuxt": "^3.13.1", - "nuxt-og-image": "3.0.0-rc.66", + "nuxt-og-image": "3.0.1", "nuxt-security": "2.0.0-rc.9", "nuxt-time": "^0.1.3", "partykit": "0.0.110", @@ -73,7 +73,7 @@ "devDependencies": { "@commitlint/cli": "19.4.1", "@commitlint/config-conventional": "19.4.1", - "@nuxt/test-utils": "3.14.1", + "@nuxt/test-utils": "3.14.2", "@playwright/test": "1.46.1", "@vue/test-utils": "2.4.6", "eslint": "9.9.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 50898e461..9a16afc05 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,8 +34,8 @@ importers: specifier: 2.13.2 version: 2.13.2(ioredis@5.4.1)(magicast@0.3.4)(nuxt@3.13.1(@parcel/watcher@2.4.1)(@types/node@20.14.2)(encoding@0.1.13)(eslint@9.9.1(jiti@1.21.6))(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.21.2)(sass@1.77.1)(stylelint@16.9.0(typescript@5.5.4))(terser@5.31.6)(typescript@5.5.4)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vue-tsc@2.1.4(typescript@5.5.4))(webpack-sources@3.2.3))(rollup@4.21.2)(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) '@nuxt/eslint': - specifier: 0.5.5 - version: 0.5.5(eslint@9.9.1(jiti@1.21.6))(magicast@0.3.4)(rollup@4.21.2)(typescript@5.5.4)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3) + specifier: 0.5.7 + version: 0.5.7(eslint@9.9.1(jiti@1.21.6))(magicast@0.3.4)(rollup@4.21.2)(typescript@5.5.4)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3) '@nuxt/fonts': specifier: 0.7.2 version: 0.7.2(encoding@0.1.13)(ioredis@5.4.1)(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3) @@ -103,8 +103,8 @@ importers: specifier: ^3.13.1 version: 3.13.1(@parcel/watcher@2.4.1)(@types/node@20.14.2)(encoding@0.1.13)(eslint@9.9.1(jiti@1.21.6))(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.21.2)(sass@1.77.1)(stylelint@16.9.0(typescript@5.5.4))(terser@5.31.6)(typescript@5.5.4)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vue-tsc@2.1.4(typescript@5.5.4))(webpack-sources@3.2.3) nuxt-og-image: - specifier: 3.0.0-rc.66 - version: 3.0.0-rc.66(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) + specifier: 3.0.1 + version: 3.0.1(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) nuxt-security: specifier: 2.0.0-rc.9 version: 2.0.0-rc.9(magicast@0.3.4)(rollup@4.21.2)(webpack-sources@3.2.3) @@ -146,7 +146,7 @@ importers: version: 0.62.3(@unocss/webpack@0.62.3(rollup@4.21.2)(webpack@5.91.0(esbuild@0.23.1)))(postcss@8.4.45)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6)) unplugin: specifier: ^1.13.1 - version: 1.13.1(webpack-sources@3.2.3) + version: 1.14.1(webpack-sources@3.2.3) vue: specifier: ^3.5.1 version: 3.5.2(typescript@5.5.4) @@ -161,8 +161,8 @@ importers: specifier: 19.4.1 version: 19.4.1 '@nuxt/test-utils': - specifier: 3.14.1 - version: 3.14.1(@playwright/test@1.46.1)(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@15.7.3)(magicast@0.3.4)(nitropack@2.9.7(patch_hash=tzpjrxclgsyn34npzeuwlfq4t4)(encoding@0.1.13)(magicast@0.3.4)(webpack-sources@3.2.3))(playwright-core@1.46.1)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vitest@2.0.5(@types/node@20.14.2)(happy-dom@15.7.3)(sass@1.77.1)(terser@5.31.6))(vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) + specifier: 3.14.2 + version: 3.14.2(@playwright/test@1.46.1)(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@15.7.3)(magicast@0.3.4)(nitropack@2.9.7(patch_hash=tzpjrxclgsyn34npzeuwlfq4t4)(encoding@0.1.13)(magicast@0.3.4)(webpack-sources@3.2.3))(playwright-core@1.46.1)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vitest@2.0.5(@types/node@20.14.2)(happy-dom@15.7.3)(sass@1.77.1)(terser@5.31.6))(vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) '@playwright/test': specifier: 1.46.1 version: 1.46.1 @@ -1026,6 +1026,10 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.10.0': + resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.9.1': resolution: {integrity: sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1160,6 +1164,11 @@ packages: peerDependencies: vite: '*' + '@nuxt/devtools-kit@1.4.2': + resolution: {integrity: sha512-8a5PhVnC7E94318/sHbNSe9mI2MlsQ8+pJLGs2Hh1OJyidB9SWe6hoFc8q4K9VOtXak9uCFVb5V2JGXS1q+1aA==} + peerDependencies: + vite: '*' + '@nuxt/devtools-wizard@1.4.1': resolution: {integrity: sha512-X9uTh5rgt0pw3UjXcHyl8ZFYmCgw8ITRe9Nr2VLCtNROfKz9yol/ESEhYMwTFiFlqSyfJP6/qtogJBjUt6dzTw==} hasBin: true @@ -1170,18 +1179,18 @@ packages: peerDependencies: vite: '*' - '@nuxt/eslint-config@0.5.5': - resolution: {integrity: sha512-g99Q6VEGUTg8VKklNE5AaDyHFCcJTepTS6f2ea5yQRlAsJe8VUUUSnwqYw68saU3Mq6R/QOip2ic6A5SxZOy0w==} + '@nuxt/eslint-config@0.5.7': + resolution: {integrity: sha512-B+snO9NS9+v2657Z84tMbW3hLxjauIUkk2m4vnYjb9xfAFdoQwK07q6aaf7LzvagmVFmQiclT9LbJMvlRqzmsA==} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@nuxt/eslint-plugin@0.5.5': - resolution: {integrity: sha512-Qwz+sz4HWa+QTTAYveryq25a2wXB0FgR0WvVGKYPhD1nBxJGkE6nwM8CILrsdICL6fKp2nfWLBzUr/UlGPqHkw==} + '@nuxt/eslint-plugin@0.5.7': + resolution: {integrity: sha512-vYQYs/L87g2pBIoTmkk2mgYBqePTQDnhk87nGqsosKbfQ80xj9kkN3dsVb6BDQFk0zik4THWpXmnfjkvsjm/eg==} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@nuxt/eslint@0.5.5': - resolution: {integrity: sha512-QfSPHNyZdRNKmjMcvSNK/kP7lZvW+u4sCazCbcsHRm+FD+LFcAeawZAS0qOwMoPxuaQMP/HR2xzxOZN+u1XFhA==} + '@nuxt/eslint@0.5.7': + resolution: {integrity: sha512-t2GoH8BIfDVysZ5Y9kPBTnT9rcUSJcXTeY5Fa93//qmHJba3kIpoETy3qJe/v75R1giGgIPO+Iydt6uXZ2jjJQ==} peerDependencies: eslint: ^8.57.0 || ^9.0.0 eslint-webpack-plugin: ^4.1.0 @@ -1211,19 +1220,19 @@ packages: resolution: {integrity: sha512-KH6wxzsNys69daSO0xUv0LEBAfhwwjK1M+0Cdi1/vxmifCslMIY7lN11B4eywSfscbyVPAYJvANyc7XiVPImBQ==} hasBin: true - '@nuxt/test-utils@3.14.1': - resolution: {integrity: sha512-D8F18hnOHQSarKnzsLORRXzFPlI9Y5fcQFRKwJgGhnejlIRX6sFvVnyl2SDgCvoV+F2x2czQsdGkwg51iWAshA==} + '@nuxt/test-utils@3.14.2': + resolution: {integrity: sha512-n5soEpHom9aL9sMwrBiD3xGR+oXbx+O8zL2NF9aelWOTSzPPNN+Qo3cBEECMc6NYQi1a4LbCKkPjQfbtPvaqkg==} engines: {node: '>=18.20.4'} peerDependencies: - '@cucumber/cucumber': ^10.3.1 + '@cucumber/cucumber': ^10.3.1 || ^11.0.0 '@jest/globals': ^29.5.0 '@playwright/test': ^1.43.1 '@testing-library/vue': ^7.0.0 || ^8.0.1 '@vitest/ui': ^0.34.6 || ^1.0.0 || ^2.0.0 '@vue/test-utils': ^2.4.2 h3: '*' - happy-dom: ^9.10.9 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 - jsdom: ^22.0.0 || ^23.0.0 || ^24.0.0 + happy-dom: ^9.10.9 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 + jsdom: ^22.0.0 || ^23.0.0 || ^24.0.0 || ^25.0.0 nitropack: '*' playwright-core: ^1.43.1 vite: '*' @@ -1645,8 +1654,8 @@ packages: '@socket.io/component-emitter@3.1.2': resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - '@stylistic/eslint-plugin@2.7.2': - resolution: {integrity: sha512-3DVLU5HEuk2pQoBmXJlzvrxbKNpu2mJ0SRqz5O/CJjyNCr12ZiPcYMEtuArTyPOk5i7bsAU44nywh1rGfe3gKQ==} + '@stylistic/eslint-plugin@2.8.0': + resolution: {integrity: sha512-Ufvk7hP+bf+pD35R/QfunF793XlSRIC7USr3/EdgduK9j13i2JjmsM0LUz3/foS+jDYp2fzyWZA9N44CPur0Ow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' @@ -1709,8 +1718,8 @@ packages: '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - '@typescript-eslint/eslint-plugin@8.4.0': - resolution: {integrity: sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==} + '@typescript-eslint/eslint-plugin@8.5.0': + resolution: {integrity: sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -1720,8 +1729,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.4.0': - resolution: {integrity: sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==} + '@typescript-eslint/parser@8.5.0': + resolution: {integrity: sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1730,12 +1739,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.4.0': - resolution: {integrity: sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==} + '@typescript-eslint/scope-manager@8.5.0': + resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.4.0': - resolution: {integrity: sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==} + '@typescript-eslint/type-utils@8.5.0': + resolution: {integrity: sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1743,12 +1752,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.4.0': - resolution: {integrity: sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==} + '@typescript-eslint/types@8.5.0': + resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.4.0': - resolution: {integrity: sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==} + '@typescript-eslint/typescript-estree@8.5.0': + resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1756,14 +1765,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.4.0': - resolution: {integrity: sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==} + '@typescript-eslint/utils@8.5.0': + resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.4.0': - resolution: {integrity: sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==} + '@typescript-eslint/visitor-keys@8.5.0': + resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': @@ -3011,17 +3020,19 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-config-flat-gitignore@0.2.0: - resolution: {integrity: sha512-s4lsQLYX+76FCt3PZPwdLwWlqssa5SLufl2gopFmCo3PETOLY3OW5IrD3/l2R0FfYEJvd9BRJ19yJ+yfc5oW3g==} + eslint-config-flat-gitignore@0.3.0: + resolution: {integrity: sha512-0Ndxo4qGhcewjTzw52TK06Mc00aDtHNTdeeW2JfONgDcLkRO/n/BteMRzNVpLQYxdCC/dFEilfM9fjjpGIJ9Og==} + peerDependencies: + eslint: ^9.5.0 - eslint-flat-config-utils@0.3.1: - resolution: {integrity: sha512-eFT3EaoJN1hlN97xw4FIEX//h0TiFUobgl2l5uLkIwhVN9ahGq95Pbs+i1/B5UACA78LO3rco3JzuvxLdTUOPA==} + eslint-flat-config-utils@0.4.0: + resolution: {integrity: sha512-kfd5kQZC+BMO0YwTol6zxjKX1zAsk8JfSAopbKjKqmENTJcew+yBejuvccAg37cvOrN0Mh+DVbeyznuNWEjt4A==} eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-plugin-import-x@4.1.1: - resolution: {integrity: sha512-dBEM8fACIFNt4H7GoOaRmnH6evJW6JSTJTYYgmRd3vI4geBTjgDM/JyUDKUwIw0HDSyI+u7Vs3vFRXUo/BOAtA==} + eslint-plugin-import-x@4.2.1: + resolution: {integrity: sha512-WWi2GedccIJa0zXxx3WDnTgouGQTtdYK1nhXMwywbqqAgB0Ov+p1pYBsWh3VaB0bvBOwLse6OfVII7jZD9xo5Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3044,8 +3055,8 @@ packages: peerDependencies: eslint: '>=8.56.0' - eslint-plugin-vue@9.27.0: - resolution: {integrity: sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==} + eslint-plugin-vue@9.28.0: + resolution: {integrity: sha512-ShrihdjIhOTxs+MfWun6oJWuk+g/LAhN+CiuOl/jjkG3l0F2AuK5NMTaWqyvBgkFtpYmyks6P4603mLmhNJW8g==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -3062,8 +3073,8 @@ packages: resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-typegen@0.3.1: - resolution: {integrity: sha512-D1hMMOuQw+WmN1uMk5lDfc9XCgOZMRlvOWwQfME6dyAgJqxGJ/STEyN7YBmt3zMqKkN7XJJ+4mjB82JcR4s/UA==} + eslint-typegen@0.3.2: + resolution: {integrity: sha512-YD/flDDDYoBszomo6wVAJ01HcEWTLfOb04+Mwir8/oR66t2bnajw+qUI6JfBoBQO3HbebcCmEtgjKgWVB67ggQ==} peerDependencies: eslint: ^8.45.0 || ^9.0.0 @@ -4060,9 +4071,8 @@ packages: lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -4486,18 +4496,18 @@ packages: nuxt-csurf@1.6.2: resolution: {integrity: sha512-GksV+0DrnEYzQGAPb/BzLgulITqQNi3p5LUOW+zIf2GqdshW7MKoS/EBeVLDBfeT0P0a0OvewzaEGt1/OGVtAQ==} - nuxt-og-image@3.0.0-rc.66: - resolution: {integrity: sha512-NCogUcfIHGRlXKZ4LTVF4LI25oT0pk1Xl7LF1FmF1iT7dVF8WJUVrUHoHBCzJjSGNFrZFoiRHCOpjFTloNj6sg==} + nuxt-og-image@3.0.1: + resolution: {integrity: sha512-UXm/+CDUpfbpGZFoLMTSYJ4w9I0P0g2ToTEexPnbu2wii6q6RaGYn7wL9KHwd0FTRPa3zDqZ4MmGicAWxVY45w==} engines: {node: '>=18.0.0'} nuxt-security@2.0.0-rc.9: resolution: {integrity: sha512-kymOhnPcwhKj8g20GXgrFC6h7Oub7+53yqD0byovCDb50a3hlSRdSLlSBoP2/ca4dtnbu8FWJd5/KuUHBGHWXw==} - nuxt-site-config-kit@2.2.16: - resolution: {integrity: sha512-a20pWLbyw8yIOoikCi7O2QGnynQqTS/SnGCY9Z0mxujif/KyLsq+GkNVlb5S5G7yHJN8SeBfPPuRisdhRSx4oA==} + nuxt-site-config-kit@2.2.17: + resolution: {integrity: sha512-YsRrapua+q13Y/SJJgTN3L4kFD/aGxI7Urq86PHxARseC6+Xyf0KcyBCy7I+v2m30rPqDdw+68Eol7UdCcTgow==} - nuxt-site-config@2.2.16: - resolution: {integrity: sha512-hMRIMPxdYcXXO8MQsSJrwwseYJfoKMUZxCVYFl+j2o98erbzULYdptupcQRSEPZ6Sor/5nIj1RsYq1rppeyODg==} + nuxt-site-config@2.2.17: + resolution: {integrity: sha512-Aq94UHcb9+BD++416ExwFINgzOBqJV0GDTHPEG34xBd1enhmg3CIGQZbrpuVAhDKzzHad79MIuOaoiKNuUzSNg==} nuxt-time@0.1.3: resolution: {integrity: sha512-Ie9KA4DfaebqDaTy+u49VVI8lHHjTlllEqdFgeQuvQItrkDaojXWKLwHfW7ju7tDJlpVIV9K6KpRXWPAWUq7Bw==} @@ -4722,6 +4732,11 @@ packages: engines: {node: '>=18'} hasBin: true + playwright-core@1.47.0: + resolution: {integrity: sha512-1DyHT8OqkcfCkYUD9zzUTfg7EfTd+6a8MkD/NWOvjo0u/SCNd5YmY/lJwFvUZOxJbWNds+ei7ic2+R/cRz/PDg==} + engines: {node: '>=18'} + hasBin: true + playwright@1.46.1: resolution: {integrity: sha512-oPcr1yqoXLCkgKtD5eNUPLiN40rYEM39odNpIb6VE6S7/15gJmA1NzVv6zJYusV0e7tzvkU/utBFNa/Kpxmwng==} engines: {node: '>=18'} @@ -5297,8 +5312,8 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - site-config-stack@2.2.16: - resolution: {integrity: sha512-XO75wTVnbaMvu2B2WOu2RcEyPHbODICWxDA3qEllbK+92VDHzYw/83TBnCvpVpFaYEQKySSrLZ7rzkhOxrshDA==} + site-config-stack@2.2.17: + resolution: {integrity: sha512-Es/jcull+V8yqVPkkgaKDv8n6YjX+SzV6cE8IEj6LKFn++pGAWqgL0JbblWz9XD84oAOU2rsUoE8h3tIUfgJdg==} peerDependencies: vue: ^3 @@ -5640,6 +5655,9 @@ packages: tinyexec@0.2.0: resolution: {integrity: sha512-au8dwv4xKSDR+Fw52csDo3wcDztPdne2oM1o/7LFro4h6bdFmvyUAeAfX40pwDtzHgRFqz1XWaUqgKS2G83/ig==} + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + tinyglobby@0.2.5: resolution: {integrity: sha512-Dlqgt6h0QkoHttG53/WGADNh9QhcjCAIZMTERAVhdpmIBEejSuLI9ZmGKWzB7tweBjlk30+s/ofi4SLmBeTYhw==} engines: {node: '>=12.0.0'} @@ -5837,8 +5855,8 @@ packages: vue-router: optional: true - unplugin@1.13.1: - resolution: {integrity: sha512-6Kq1iSSwg7KyjcThRUks9LuqDAKvtnioxbL9iEtB9ctTyBA5OmrB8gZd/d225VJu1w3UpUsKV7eGrvf59J7+VA==} + unplugin@1.14.1: + resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} engines: {node: '>=14.0.0'} peerDependencies: webpack-sources: ^3 @@ -5846,22 +5864,22 @@ packages: webpack-sources: optional: true - unstorage@1.10.2: - resolution: {integrity: sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ==} + unstorage@1.12.0: + resolution: {integrity: sha512-ARZYTXiC+e8z3lRM7/qY9oyaOkaozCeNd2xoz7sYK9fv7OLGhVsf+BZbmASqiK/HTZ7T6eAlnVq9JynZppyk3w==} peerDependencies: - '@azure/app-configuration': ^1.5.0 - '@azure/cosmos': ^4.0.0 + '@azure/app-configuration': ^1.7.0 + '@azure/cosmos': ^4.1.1 '@azure/data-tables': ^13.2.2 - '@azure/identity': ^4.0.1 + '@azure/identity': ^4.4.1 '@azure/keyvault-secrets': ^4.8.0 - '@azure/storage-blob': ^12.17.0 - '@capacitor/preferences': ^5.0.7 + '@azure/storage-blob': ^12.24.0 + '@capacitor/preferences': ^6.0.2 '@netlify/blobs': ^6.5.0 || ^7.0.0 - '@planetscale/database': ^1.16.0 - '@upstash/redis': ^1.28.4 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.0 '@vercel/kv': ^1.0.1 idb-keyval: ^6.2.1 - ioredis: ^5.3.2 + ioredis: ^5.4.1 peerDependenciesMeta: '@azure/app-configuration': optional: true @@ -6027,8 +6045,8 @@ packages: terser: optional: true - vitest-environment-nuxt@1.0.0: - resolution: {integrity: sha512-AWMO9h4HdbaFdPWZw34gALFI8gbBiOpvfbyeZwHIPfh4kWg/TwElYHvYMQ61WPUlCGaS5LebfHkaI0WPyb//Iw==} + vitest-environment-nuxt@1.0.1: + resolution: {integrity: sha512-eBCwtIQriXW5/M49FjqNKfnlJYlG2LWMSNFsRVKomc8CaMqmhQPBS5LZ9DlgYL9T8xIVsiA6RZn2lk7vxov3Ow==} vitest@2.0.5: resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} @@ -7054,6 +7072,8 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/js@9.10.0': {} + '@eslint/js@9.9.1': {} '@eslint/object-schema@2.1.4': {} @@ -7222,7 +7242,7 @@ snapshots: socket.io-client: 4.7.5 ufo: 1.5.4 unist-util-stringify-position: 4.0.0 - unstorage: 1.10.2(ioredis@5.4.1) + unstorage: 1.12.0(ioredis@5.4.1) ws: 8.18.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -7263,6 +7283,18 @@ snapshots: - supports-color - webpack-sources + '@nuxt/devtools-kit@1.4.2(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3)': + dependencies: + '@nuxt/kit': 3.13.1(magicast@0.3.4)(rollup@4.21.2)(webpack-sources@3.2.3) + '@nuxt/schema': 3.13.1(rollup@4.21.2)(webpack-sources@3.2.3) + execa: 7.2.0 + vite: 5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6) + transitivePeerDependencies: + - magicast + - rollup + - supports-color + - webpack-sources + '@nuxt/devtools-wizard@1.4.1': dependencies: consola: 3.2.3 @@ -7323,21 +7355,21 @@ snapshots: - utf-8-validate - webpack-sources - '@nuxt/eslint-config@0.5.5(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@nuxt/eslint-config@0.5.7(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@eslint/js': 9.9.1 - '@nuxt/eslint-plugin': 0.5.5(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@stylistic/eslint-plugin': 2.7.2(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/parser': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@eslint/js': 9.10.0 + '@nuxt/eslint-plugin': 0.5.7(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@stylistic/eslint-plugin': 2.8.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/parser': 8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) eslint: 9.9.1(jiti@1.21.6) - eslint-config-flat-gitignore: 0.2.0 - eslint-flat-config-utils: 0.3.1 - eslint-plugin-import-x: 4.1.1(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + eslint-config-flat-gitignore: 0.3.0(eslint@9.9.1(jiti@1.21.6)) + eslint-flat-config-utils: 0.4.0 + eslint-plugin-import-x: 4.2.1(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) eslint-plugin-jsdoc: 50.2.2(eslint@9.9.1(jiti@1.21.6)) eslint-plugin-regexp: 2.6.0(eslint@9.9.1(jiti@1.21.6)) eslint-plugin-unicorn: 55.0.0(eslint@9.9.1(jiti@1.21.6)) - eslint-plugin-vue: 9.27.0(eslint@9.9.1(jiti@1.21.6)) + eslint-plugin-vue: 9.28.0(eslint@9.9.1(jiti@1.21.6)) globals: 15.9.0 local-pkg: 0.5.0 pathe: 1.1.2 @@ -7346,26 +7378,26 @@ snapshots: - supports-color - typescript - '@nuxt/eslint-plugin@0.5.5(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@nuxt/eslint-plugin@0.5.7(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/utils': 8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) eslint: 9.9.1(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript - '@nuxt/eslint@0.5.5(eslint@9.9.1(jiti@1.21.6))(magicast@0.3.4)(rollup@4.21.2)(typescript@5.5.4)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3)': + '@nuxt/eslint@0.5.7(eslint@9.9.1(jiti@1.21.6))(magicast@0.3.4)(rollup@4.21.2)(typescript@5.5.4)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3)': dependencies: '@eslint/config-inspector': 0.5.4(eslint@9.9.1(jiti@1.21.6)) - '@nuxt/devtools-kit': 1.4.1(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3) - '@nuxt/eslint-config': 0.5.5(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@nuxt/eslint-plugin': 0.5.5(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@nuxt/devtools-kit': 1.4.2(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3) + '@nuxt/eslint-config': 0.5.7(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@nuxt/eslint-plugin': 0.5.7(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) '@nuxt/kit': 3.13.1(magicast@0.3.4)(rollup@4.21.2)(webpack-sources@3.2.3) chokidar: 3.6.0 eslint: 9.9.1(jiti@1.21.6) - eslint-flat-config-utils: 0.3.1 - eslint-typegen: 0.3.1(eslint@9.9.1(jiti@1.21.6)) + eslint-flat-config-utils: 0.4.0 + eslint-typegen: 0.3.2(eslint@9.9.1(jiti@1.21.6)) find-up: 7.0.0 get-port-please: 3.1.2 mlly: 1.7.1 @@ -7384,7 +7416,7 @@ snapshots: '@nuxt/fonts@0.7.2(encoding@0.1.13)(ioredis@5.4.1)(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3)': dependencies: - '@nuxt/devtools-kit': 1.4.1(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3) + '@nuxt/devtools-kit': 1.4.2(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3) '@nuxt/kit': 3.13.1(magicast@0.3.4)(rollup@4.21.2)(webpack-sources@3.2.3) chalk: 5.3.0 css-tree: 2.3.1 @@ -7401,8 +7433,8 @@ snapshots: sirv: 2.0.4 tinyglobby: 0.2.5 ufo: 1.5.4 - unplugin: 1.13.1(webpack-sources@3.2.3) - unstorage: 1.10.2(ioredis@5.4.1) + unplugin: 1.14.1(webpack-sources@3.2.3) + unstorage: 1.12.0(ioredis@5.4.1) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -7531,7 +7563,7 @@ snapshots: - supports-color - webpack-sources - '@nuxt/test-utils@3.14.1(@playwright/test@1.46.1)(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@15.7.3)(magicast@0.3.4)(nitropack@2.9.7(patch_hash=tzpjrxclgsyn34npzeuwlfq4t4)(encoding@0.1.13)(magicast@0.3.4)(webpack-sources@3.2.3))(playwright-core@1.46.1)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vitest@2.0.5(@types/node@20.14.2)(happy-dom@15.7.3)(sass@1.77.1)(terser@5.31.6))(vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3)': + '@nuxt/test-utils@3.14.2(@playwright/test@1.46.1)(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@15.7.3)(magicast@0.3.4)(nitropack@2.9.7(patch_hash=tzpjrxclgsyn34npzeuwlfq4t4)(encoding@0.1.13)(magicast@0.3.4)(webpack-sources@3.2.3))(playwright-core@1.46.1)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vitest@2.0.5(@types/node@20.14.2)(happy-dom@15.7.3)(sass@1.77.1)(terser@5.31.6))(vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3)': dependencies: '@nuxt/kit': 3.13.1(magicast@0.3.4)(rollup@4.21.2)(webpack-sources@3.2.3) '@nuxt/schema': 3.13.1(rollup@4.21.2)(webpack-sources@3.2.3) @@ -7540,7 +7572,6 @@ snapshots: defu: 6.1.4 destr: 2.0.3 estree-walker: 3.0.3 - execa: 8.0.1 fake-indexeddb: 6.0.0 get-port-please: 3.1.2 h3: 1.12.0 @@ -7554,11 +7585,12 @@ snapshots: radix3: 1.1.2 scule: 1.3.0 std-env: 3.7.0 + tinyexec: 0.3.0 ufo: 1.5.4 unenv: 1.10.0 - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) vite: 5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6) - vitest-environment-nuxt: 1.0.0(@playwright/test@1.46.1)(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@15.7.3)(magicast@0.3.4)(nitropack@2.9.7(patch_hash=tzpjrxclgsyn34npzeuwlfq4t4)(encoding@0.1.13)(magicast@0.3.4)(webpack-sources@3.2.3))(playwright-core@1.46.1)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vitest@2.0.5(@types/node@20.14.2)(happy-dom@15.7.3)(sass@1.77.1)(terser@5.31.6))(vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) + vitest-environment-nuxt: 1.0.1(@playwright/test@1.46.1)(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@15.7.3)(magicast@0.3.4)(nitropack@2.9.7(patch_hash=tzpjrxclgsyn34npzeuwlfq4t4)(encoding@0.1.13)(magicast@0.3.4)(webpack-sources@3.2.3))(playwright-core@1.46.1)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vitest@2.0.5(@types/node@20.14.2)(happy-dom@15.7.3)(sass@1.77.1)(terser@5.31.6))(vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) vue: 3.5.2(typescript@5.5.4) vue-router: 4.4.3(vue@3.5.2(typescript@5.5.4)) optionalDependencies: @@ -7603,7 +7635,7 @@ snapshots: strip-literal: 2.1.0 ufo: 1.5.4 unenv: 1.10.0 - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) vite: 5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6) vite-node: 2.0.5(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6) vite-plugin-checker: 0.7.2(eslint@9.9.1(jiti@1.21.6))(optionator@0.9.4)(stylelint@16.9.0(typescript@5.5.4))(typescript@5.5.4)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vue-tsc@2.1.4(typescript@5.5.4)) @@ -8005,10 +8037,9 @@ snapshots: '@socket.io/component-emitter@3.1.2': {} - '@stylistic/eslint-plugin@2.7.2(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@stylistic/eslint-plugin@2.8.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@types/eslint': 9.6.1 - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) eslint: 9.9.1(jiti@1.21.6) eslint-visitor-keys: 4.0.0 espree: 10.1.0 @@ -8079,14 +8110,14 @@ snapshots: '@types/web-bluetooth@0.0.20': {} - '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/type-utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.4.0 + '@typescript-eslint/parser': 8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/type-utils': 8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.5.0 eslint: 9.9.1(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 @@ -8097,12 +8128,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/parser@8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.4.0 + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.5.0 debug: 4.3.6 eslint: 9.9.1(jiti@1.21.6) optionalDependencies: @@ -8110,15 +8141,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.4.0': + '@typescript-eslint/scope-manager@8.5.0': dependencies: - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/visitor-keys': 8.4.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/visitor-keys': 8.5.0 - '@typescript-eslint/type-utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) debug: 4.3.6 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -8127,12 +8158,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.4.0': {} + '@typescript-eslint/types@8.5.0': {} - '@typescript-eslint/typescript-estree@8.4.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.5.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/visitor-keys': 8.4.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/visitor-keys': 8.5.0 debug: 4.3.6 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -8144,20 +8175,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': + '@typescript-eslint/utils@8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) eslint: 9.9.1(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.4.0': + '@typescript-eslint/visitor-keys@8.5.0': dependencies: - '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/types': 8.5.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} @@ -8383,7 +8414,7 @@ snapshots: chokidar: 3.6.0 magic-string: 0.30.11 tinyglobby: 0.2.5 - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) webpack: 5.91.0(esbuild@0.23.1) webpack-sources: 3.2.3 transitivePeerDependencies: @@ -9706,14 +9737,14 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-flat-gitignore@0.2.0: + eslint-config-flat-gitignore@0.3.0(eslint@9.9.1(jiti@1.21.6)): dependencies: '@eslint/compat': 1.1.1 + eslint: 9.9.1(jiti@1.21.6) find-up-simple: 1.0.0 - eslint-flat-config-utils@0.3.1: + eslint-flat-config-utils@0.4.0: dependencies: - '@types/eslint': 9.6.1 pathe: 1.1.2 eslint-import-resolver-node@0.3.9: @@ -9724,10 +9755,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import-x@4.1.1(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4): + eslint-plugin-import-x@4.2.1(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4): dependencies: - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) + '@typescript-eslint/utils': 8.5.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.4) debug: 4.3.6 doctrine: 3.0.0 eslint: 9.9.1(jiti@1.21.6) @@ -9790,7 +9820,7 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-vue@9.27.0(eslint@9.9.1(jiti@1.21.6)): + eslint-plugin-vue@9.28.0(eslint@9.9.1(jiti@1.21.6)): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.6)) eslint: 9.9.1(jiti@1.21.6) @@ -9819,9 +9849,8 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-typegen@0.3.1(eslint@9.9.1(jiti@1.21.6)): + eslint-typegen@0.3.2(eslint@9.9.1(jiti@1.21.6)): dependencies: - '@types/eslint': 9.6.1 eslint: 9.9.1(jiti@1.21.6) json-schema-to-typescript-lite: 14.1.0 ohash: 1.1.3 @@ -10070,7 +10099,7 @@ snapshots: magic-string: 0.30.11 pathe: 1.1.2 ufo: 1.5.4 - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) transitivePeerDependencies: - encoding - webpack-sources @@ -10520,7 +10549,7 @@ snapshots: mlly: 1.7.1 pathe: 1.1.2 unenv: 1.10.0 - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) transitivePeerDependencies: - rollup - webpack-sources @@ -10570,7 +10599,7 @@ snapshots: sharp: 0.32.6 svgo: 3.3.2 ufo: 1.5.4 - unstorage: 1.10.2(ioredis@5.4.1) + unstorage: 1.12.0(ioredis@5.4.1) xss: 1.0.15 transitivePeerDependencies: - '@azure/app-configuration' @@ -10942,7 +10971,7 @@ snapshots: dependencies: tslib: 2.6.3 - lru-cache@10.2.2: {} + lru-cache@10.4.3: {} lru-cache@5.1.1: dependencies: @@ -10956,7 +10985,7 @@ snapshots: regexp-tree: 0.1.27 type-level-regexp: 0.1.17 ufo: 1.5.4 - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) transitivePeerDependencies: - webpack-sources @@ -11504,7 +11533,7 @@ snapshots: unctx: 2.3.1(webpack-sources@3.2.3) unenv: 1.10.0 unimport: 3.11.1(rollup@4.21.2)(webpack-sources@3.2.3) - unstorage: 1.10.2(ioredis@5.4.1) + unstorage: 1.12.0(ioredis@5.4.1) unwasm: 0.3.9(webpack-sources@3.2.3) transitivePeerDependencies: - '@azure/app-configuration' @@ -11617,9 +11646,9 @@ snapshots: - supports-color - webpack-sources - nuxt-og-image@3.0.0-rc.66(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3): + nuxt-og-image@3.0.1(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3): dependencies: - '@nuxt/devtools-kit': 1.4.1(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3) + '@nuxt/devtools-kit': 1.4.2(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3) '@nuxt/kit': 3.13.1(magicast@0.3.4)(rollup@4.21.2)(webpack-sources@3.2.3) '@resvg/resvg-js': 2.6.2 '@resvg/resvg-wasm': 2.6.2 @@ -11629,20 +11658,23 @@ snapshots: defu: 6.1.4 execa: 9.3.1 image-size: 1.1.1 - nuxt-site-config: 2.2.16(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) - nuxt-site-config-kit: 2.2.16(magicast@0.3.4)(rollup@4.21.2)(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) + magic-string: 0.30.11 + nuxt-site-config: 2.2.17(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) + nuxt-site-config-kit: 2.2.17(magicast@0.3.4)(rollup@4.21.2)(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) nypm: 0.3.11 ofetch: 1.3.4 ohash: 1.1.3 pathe: 1.1.2 pkg-types: 1.2.0 - playwright-core: 1.46.1 + playwright-core: 1.47.0 radix3: 1.1.2 satori: 0.10.14 satori-html: 0.3.2 sirv: 2.0.4 std-env: 3.7.0 + strip-literal: 2.1.0 ufo: 1.5.4 + unplugin: 1.14.1(webpack-sources@3.2.3) unwasm: 0.3.9(webpack-sources@3.2.3) yoga-wasm-web: 0.3.3 transitivePeerDependencies: @@ -11668,12 +11700,12 @@ snapshots: - supports-color - webpack-sources - nuxt-site-config-kit@2.2.16(magicast@0.3.4)(rollup@4.21.2)(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3): + nuxt-site-config-kit@2.2.17(magicast@0.3.4)(rollup@4.21.2)(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3): dependencies: '@nuxt/kit': 3.13.1(magicast@0.3.4)(rollup@4.21.2)(webpack-sources@3.2.3) '@nuxt/schema': 3.13.1(rollup@4.21.2)(webpack-sources@3.2.3) pkg-types: 1.2.0 - site-config-stack: 2.2.16(vue@3.5.2(typescript@5.5.4)) + site-config-stack: 2.2.17(vue@3.5.2(typescript@5.5.4)) std-env: 3.7.0 ufo: 1.5.4 transitivePeerDependencies: @@ -11683,16 +11715,16 @@ snapshots: - vue - webpack-sources - nuxt-site-config@2.2.16(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3): + nuxt-site-config@2.2.17(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3): dependencies: - '@nuxt/devtools-kit': 1.4.1(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3) + '@nuxt/devtools-kit': 1.4.2(magicast@0.3.4)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(webpack-sources@3.2.3) '@nuxt/kit': 3.13.1(magicast@0.3.4)(rollup@4.21.2)(webpack-sources@3.2.3) '@nuxt/schema': 3.13.1(rollup@4.21.2)(webpack-sources@3.2.3) - nuxt-site-config-kit: 2.2.16(magicast@0.3.4)(rollup@4.21.2)(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) + nuxt-site-config-kit: 2.2.17(magicast@0.3.4)(rollup@4.21.2)(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) pathe: 1.1.2 pkg-types: 1.2.0 sirv: 2.0.4 - site-config-stack: 2.2.16(vue@3.5.2(typescript@5.5.4)) + site-config-stack: 2.2.17(vue@3.5.2(typescript@5.5.4)) ufo: 1.5.4 transitivePeerDependencies: - magicast @@ -11769,9 +11801,9 @@ snapshots: unctx: 2.3.1(webpack-sources@3.2.3) unenv: 1.10.0 unimport: 3.11.1(rollup@4.21.2)(webpack-sources@3.2.3) - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) unplugin-vue-router: 0.10.7(rollup@4.21.2)(vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) - unstorage: 1.10.2(ioredis@5.4.1) + unstorage: 1.12.0(ioredis@5.4.1) untyped: 1.4.2 vue: 3.5.2(typescript@5.5.4) vue-bundle-renderer: 2.1.0 @@ -12022,7 +12054,7 @@ snapshots: path-scurry@1.11.1: dependencies: - lru-cache: 10.2.2 + lru-cache: 10.4.3 minipass: 7.1.1 path-type@4.0.0: {} @@ -12051,6 +12083,8 @@ snapshots: playwright-core@1.46.1: {} + playwright-core@1.47.0: {} + playwright@1.46.1: dependencies: playwright-core: 1.46.1 @@ -12756,7 +12790,7 @@ snapshots: sisteransi@1.0.5: {} - site-config-stack@2.2.16(vue@3.5.2(typescript@5.5.4)): + site-config-stack@2.2.17(vue@3.5.2(typescript@5.5.4)): dependencies: ufo: 1.5.4 vue: 3.5.2(typescript@5.5.4) @@ -13147,6 +13181,8 @@ snapshots: tinyexec@0.2.0: {} + tinyexec@0.3.0: {} + tinyglobby@0.2.5: dependencies: fdir: 6.2.0(picomatch@4.0.2) @@ -13239,7 +13275,7 @@ snapshots: acorn: 8.12.1 estree-walker: 3.0.3 magic-string: 0.30.11 - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) transitivePeerDependencies: - webpack-sources @@ -13302,7 +13338,7 @@ snapshots: pkg-types: 1.2.0 scule: 1.3.0 strip-literal: 2.1.0 - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) transitivePeerDependencies: - rollup - webpack-sources @@ -13374,7 +13410,7 @@ snapshots: '@babel/traverse': 7.25.3 '@rollup/pluginutils': 5.1.0(rollup@4.21.2) magic-string: 0.30.11 - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) transitivePeerDependencies: - rollup - supports-color @@ -13394,7 +13430,7 @@ snapshots: mlly: 1.7.1 pathe: 1.1.2 scule: 1.3.0 - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) yaml: 2.5.0 optionalDependencies: vue-router: 4.4.3(vue@3.5.2(typescript@5.5.4)) @@ -13403,21 +13439,21 @@ snapshots: - vue - webpack-sources - unplugin@1.13.1(webpack-sources@3.2.3): + unplugin@1.14.1(webpack-sources@3.2.3): dependencies: acorn: 8.12.1 webpack-virtual-modules: 0.6.2 optionalDependencies: webpack-sources: 3.2.3 - unstorage@1.10.2(ioredis@5.4.1): + unstorage@1.12.0(ioredis@5.4.1): dependencies: anymatch: 3.1.3 chokidar: 3.6.0 destr: 2.0.3 h3: 1.12.0 listhen: 1.7.2 - lru-cache: 10.2.2 + lru-cache: 10.4.3 mri: 1.2.0 node-fetch-native: 1.6.4 ofetch: 1.3.4 @@ -13452,7 +13488,7 @@ snapshots: mlly: 1.7.1 pathe: 1.1.2 pkg-types: 1.2.0 - unplugin: 1.13.1(webpack-sources@3.2.3) + unplugin: 1.14.1(webpack-sources@3.2.3) transitivePeerDependencies: - webpack-sources @@ -13591,9 +13627,9 @@ snapshots: sass: 1.77.1 terser: 5.31.6 - vitest-environment-nuxt@1.0.0(@playwright/test@1.46.1)(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@15.7.3)(magicast@0.3.4)(nitropack@2.9.7(patch_hash=tzpjrxclgsyn34npzeuwlfq4t4)(encoding@0.1.13)(magicast@0.3.4)(webpack-sources@3.2.3))(playwright-core@1.46.1)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vitest@2.0.5(@types/node@20.14.2)(happy-dom@15.7.3)(sass@1.77.1)(terser@5.31.6))(vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3): + vitest-environment-nuxt@1.0.1(@playwright/test@1.46.1)(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@15.7.3)(magicast@0.3.4)(nitropack@2.9.7(patch_hash=tzpjrxclgsyn34npzeuwlfq4t4)(encoding@0.1.13)(magicast@0.3.4)(webpack-sources@3.2.3))(playwright-core@1.46.1)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vitest@2.0.5(@types/node@20.14.2)(happy-dom@15.7.3)(sass@1.77.1)(terser@5.31.6))(vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3): dependencies: - '@nuxt/test-utils': 3.14.1(@playwright/test@1.46.1)(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@15.7.3)(magicast@0.3.4)(nitropack@2.9.7(patch_hash=tzpjrxclgsyn34npzeuwlfq4t4)(encoding@0.1.13)(magicast@0.3.4)(webpack-sources@3.2.3))(playwright-core@1.46.1)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vitest@2.0.5(@types/node@20.14.2)(happy-dom@15.7.3)(sass@1.77.1)(terser@5.31.6))(vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) + '@nuxt/test-utils': 3.14.2(@playwright/test@1.46.1)(@vue/test-utils@2.4.6)(h3@1.12.0)(happy-dom@15.7.3)(magicast@0.3.4)(nitropack@2.9.7(patch_hash=tzpjrxclgsyn34npzeuwlfq4t4)(encoding@0.1.13)(magicast@0.3.4)(webpack-sources@3.2.3))(playwright-core@1.46.1)(rollup@4.21.2)(vite@5.4.3(@types/node@20.14.2)(sass@1.77.1)(terser@5.31.6))(vitest@2.0.5(@types/node@20.14.2)(happy-dom@15.7.3)(sass@1.77.1)(terser@5.31.6))(vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)))(vue@3.5.2(typescript@5.5.4))(webpack-sources@3.2.3) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' diff --git a/server/routes/rss.xml.get.ts b/server/routes/rss.xml.get.ts index ff26cee1b..bc9307a26 100644 --- a/server/routes/rss.xml.get.ts +++ b/server/routes/rss.xml.get.ts @@ -13,7 +13,7 @@ export default defineEventHandler(async () => { id: 'https://roe.dev/', link: 'https://roe.dev/blog', language: 'en', - image: 'https://roe.dev/og/og.jpg', + image: 'https://roe.dev/__og-image__/static/og.png', favicon: 'https://roe.dev/favicon.svg', copyright: `© 2019-${new Date().getFullYear()} Daniel Roe. All rights reserved.`, feedLinks: { @@ -43,7 +43,7 @@ export default defineEventHandler(async () => { }, ], date: new Date(blog.date), - image: `https://roe.dev/og/${slug}.jpg`, + image: `https://roe.dev/__og-image__/static/blog/${slug}/og.png`, }) } diff --git a/test/unit/bundle.spec.ts b/test/unit/bundle.spec.ts index 41d7cd341..ef3bf745a 100644 --- a/test/unit/bundle.spec.ts +++ b/test/unit/bundle.spec.ts @@ -79,12 +79,12 @@ describe('project sizes', () => { stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) expect .soft(roundToKilobytes(stats.server.totalBytes)) - .toMatchInlineSnapshot(`"621k"`) + .toMatchInlineSnapshot(`"418k"`) const modules = await analyzeSizes('node_modules/**/*', serverDir) expect .soft(roundToKilobytes(modules.totalBytes)) - .toMatchInlineSnapshot(`"7505k"`) + .toMatchInlineSnapshot(`"7574k"`) const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -102,6 +102,9 @@ describe('project sizes', () => { "@shikijs/transformers", "@sindresorhus/is", "@ungap/structured-clone", + "@unhead/dom", + "@unhead/shared", + "@unhead/ssr", "@vue/compiler-core", "@vue/compiler-dom", "@vue/reactivity", @@ -142,6 +145,7 @@ describe('project sizes', () => { "hast-util-to-parse5", "hast-util-to-string", "hastscript", + "hookable", "html-void-elements", "image-meta", "is-absolute-url", @@ -220,6 +224,7 @@ describe('project sizes', () => { "trough", "ts-custom-error", "uint8arrays", + "unhead", "unicode-emoji-modifier-base", "unified", "unist-util-is",