@dargmuesli/nuxt-vio 21.0.0-beta.9 → 21.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/app.config.ts +5 -0
- package/app/components/OgImage/{Nuxt.satori.vue → Nuxt.takumi.vue} +1 -1
- package/app/components/scn/sonner/Sonner.vue +1 -1
- package/app/composables/head.ts +23 -12
- package/node/server/node.mjs +5 -4
- package/node/server/static.mjs +7 -1
- package/nuxt.config.ts +3 -3
- package/package.json +27 -28
package/app/app.config.ts
CHANGED
|
@@ -81,7 +81,7 @@ const titleComputedLineClamp = lineClampStyle(titleComputed, 2)
|
|
|
81
81
|
</defs>
|
|
82
82
|
</svg>
|
|
83
83
|
|
|
84
|
-
<div class="max-w-175 pl-6 lg:pl-25">
|
|
84
|
+
<div class="flex max-w-175 flex-col pl-6 lg:pl-25">
|
|
85
85
|
<p
|
|
86
86
|
v-if="headline"
|
|
87
87
|
class="mb-4 text-[24px] font-bold text-[#00DC82] uppercase"
|
package/app/composables/head.ts
CHANGED
|
@@ -1,24 +1,19 @@
|
|
|
1
|
+
import type { OgImageComponents } from '#og-image/components'
|
|
2
|
+
|
|
1
3
|
export const useAppLayout = () => {
|
|
2
4
|
const appConfig = useAppConfig()
|
|
3
5
|
const colorMode = useColorMode()
|
|
4
6
|
const siteConfig = useSiteConfig()
|
|
5
7
|
|
|
6
8
|
if (import.meta.server) {
|
|
7
|
-
// style
|
|
8
9
|
useHeadSafe({
|
|
10
|
+
// style
|
|
9
11
|
bodyAttrs: {
|
|
10
12
|
class:
|
|
11
13
|
'bg-background-bright dark:bg-background-dark text-text-dark dark:text-text-bright',
|
|
12
14
|
},
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// favicon (https://vite-pwa-org.netlify.app/assets-generator/)
|
|
16
|
-
useHeadSafe({
|
|
15
|
+
// favicon (https://vite-pwa-org.netlify.app/assets-generator/)
|
|
17
16
|
link: [
|
|
18
|
-
{
|
|
19
|
-
href: `/site.webmanifest?v=${CACHE_VERSION}`,
|
|
20
|
-
rel: 'manifest',
|
|
21
|
-
},
|
|
22
17
|
{
|
|
23
18
|
href: `/favicon.ico?v=${CACHE_VERSION}`,
|
|
24
19
|
rel: 'icon',
|
|
@@ -39,6 +34,16 @@ export const useAppLayout = () => {
|
|
|
39
34
|
|
|
40
35
|
// i18n
|
|
41
36
|
useHeadSafe(useLocaleHead().value)
|
|
37
|
+
|
|
38
|
+
// pwa
|
|
39
|
+
useHead({
|
|
40
|
+
link: [
|
|
41
|
+
{
|
|
42
|
+
href: `/site.webmanifest?v=${CACHE_VERSION}`,
|
|
43
|
+
rel: 'manifest',
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
})
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
if (import.meta.client) {
|
|
@@ -62,9 +67,13 @@ export const useAppLayout = () => {
|
|
|
62
67
|
})
|
|
63
68
|
}
|
|
64
69
|
|
|
65
|
-
export const useHeadDefault = (
|
|
70
|
+
export const useHeadDefault = (
|
|
71
|
+
input: Parameters<typeof useSeoMeta>[0],
|
|
72
|
+
ogImageProps?: Parameters<typeof defineOgImage>[1],
|
|
73
|
+
) => {
|
|
66
74
|
const { t } = useI18n({ useScope: 'global' })
|
|
67
75
|
const siteConfig = useSiteConfig()
|
|
76
|
+
const appConfig = useAppConfig()
|
|
68
77
|
|
|
69
78
|
const description =
|
|
70
79
|
toValue(input.description) || (siteConfig.description as string)
|
|
@@ -85,10 +94,12 @@ export const useHeadDefault = (input: Parameters<typeof useSeoMeta>[0]) => {
|
|
|
85
94
|
...input,
|
|
86
95
|
})
|
|
87
96
|
defineOgImage(
|
|
88
|
-
|
|
97
|
+
(appConfig.vio.seo?.ogImage?.defaultComponent as keyof OgImageComponents) ||
|
|
98
|
+
'Nuxt.takumi',
|
|
89
99
|
{
|
|
90
100
|
description,
|
|
91
|
-
title:
|
|
101
|
+
title: title.split(' · ')[0],
|
|
102
|
+
...ogImageProps,
|
|
92
103
|
},
|
|
93
104
|
{
|
|
94
105
|
alt: t('globalSeoOgImageAlt'),
|
package/node/server/node.mjs
CHANGED
|
@@ -7,10 +7,11 @@ const certSuffix = process.env.CI ? '-ci' : '-dev'
|
|
|
7
7
|
const certPath = path.join(root, `.config/certificates/ssl${certSuffix}.crt`)
|
|
8
8
|
const keyPath = path.join(root, `.config/certificates/ssl${certSuffix}.key`)
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
process.env.NITRO_SSL_CERT = fs.readFileSync(certPath, 'utf8')
|
|
13
|
-
process.env.NITRO_SSL_KEY = fs.readFileSync(keyPath, 'utf8')
|
|
10
|
+
if (fs.existsSync(certPath) && fs.existsSync(keyPath)) {
|
|
11
|
+
console.log('Using SSL certificate:', certPath)
|
|
12
|
+
process.env.NITRO_SSL_CERT = fs.readFileSync(certPath, 'utf8')
|
|
13
|
+
process.env.NITRO_SSL_KEY = fs.readFileSync(keyPath, 'utf8')
|
|
14
|
+
}
|
|
14
15
|
|
|
15
16
|
// await import(path.join(root, '.output/server/sentry.server.config.mjs'))
|
|
16
17
|
await import(path.join(root, 'playground/.output/server/index.mjs'))
|
package/node/server/static.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process'
|
|
2
|
+
import fs from 'node:fs'
|
|
2
3
|
import path from 'node:path'
|
|
3
4
|
|
|
4
5
|
const root = process.argv[2] || process.cwd()
|
|
@@ -9,7 +10,12 @@ const keyPath = path.join(root, `.config/certificates/ssl${certSuffix}.key`)
|
|
|
9
10
|
|
|
10
11
|
const serveProcess = spawn(
|
|
11
12
|
'serve',
|
|
12
|
-
[
|
|
13
|
+
[
|
|
14
|
+
'playground/.output/public',
|
|
15
|
+
...(fs.existsSync(certPath) && fs.existsSync(keyPath)
|
|
16
|
+
? ['--ssl-cert', certPath, '--ssl-key', keyPath]
|
|
17
|
+
: []),
|
|
18
|
+
],
|
|
13
19
|
{
|
|
14
20
|
stdio: 'inherit',
|
|
15
21
|
cwd: root,
|
package/nuxt.config.ts
CHANGED
|
@@ -250,9 +250,6 @@ export default defineNuxtConfig(
|
|
|
250
250
|
linkChecker: {
|
|
251
251
|
failOnError: true,
|
|
252
252
|
},
|
|
253
|
-
ogImage: {
|
|
254
|
-
tailwindCss: resolve('./app/assets/css/vio.css'),
|
|
255
|
-
},
|
|
256
253
|
robots: {
|
|
257
254
|
credits: false,
|
|
258
255
|
},
|
|
@@ -291,6 +288,9 @@ export default defineNuxtConfig(
|
|
|
291
288
|
},
|
|
292
289
|
strict: true,
|
|
293
290
|
},
|
|
291
|
+
seo: {
|
|
292
|
+
minify: false, // TODO: enable (https://github.com/harlan-zw/nuxt-seo-utils/issues/103)
|
|
293
|
+
},
|
|
294
294
|
shadcn: {
|
|
295
295
|
prefix: '',
|
|
296
296
|
componentDir: resolve('./app/components/scn'),
|
package/package.json
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
-
"@dargmuesli/nuxt-cookie-control": "9.1.
|
|
4
|
-
"@eslint/compat": "2.0.
|
|
3
|
+
"@dargmuesli/nuxt-cookie-control": "9.1.19",
|
|
4
|
+
"@eslint/compat": "2.0.3",
|
|
5
5
|
"@heroicons/vue": "2.2.0",
|
|
6
6
|
"@http-util/status-i18n": "0.9.0",
|
|
7
|
-
"@intlify/eslint-plugin-vue-i18n": "4.
|
|
8
|
-
"@
|
|
7
|
+
"@intlify/eslint-plugin-vue-i18n": "4.3.0",
|
|
8
|
+
"@lucide/vue": "1.7.0",
|
|
9
|
+
"@nuxt/devtools": "3.2.4",
|
|
9
10
|
"@nuxt/eslint": "1.15.2",
|
|
10
11
|
"@nuxt/image": "2.0.0",
|
|
11
12
|
"@nuxtjs/color-mode": "4.0.0",
|
|
12
13
|
"@nuxtjs/html-validator": "2.1.0",
|
|
13
|
-
"@nuxtjs/i18n": "10.2.
|
|
14
|
-
"@nuxtjs/seo": "
|
|
15
|
-
"@nuxtjs/turnstile": "1.1.
|
|
14
|
+
"@nuxtjs/i18n": "10.2.4",
|
|
15
|
+
"@nuxtjs/seo": "5.1.0",
|
|
16
|
+
"@nuxtjs/turnstile": "1.1.2",
|
|
16
17
|
"@pinia/nuxt": "0.11.3",
|
|
17
|
-
"@resvg/resvg-js": "2.6.2",
|
|
18
18
|
"@tailwindcss/forms": "0.5.11",
|
|
19
19
|
"@tailwindcss/typography": "0.5.19",
|
|
20
|
-
"@tailwindcss/vite": "4.2.
|
|
20
|
+
"@tailwindcss/vite": "4.2.2",
|
|
21
|
+
"@takumi-rs/core": "0.73.1",
|
|
21
22
|
"@types/lodash-es": "4.17.12",
|
|
22
23
|
"@types/nodemailer": "7.0.11",
|
|
23
24
|
"@urql/core": "6.0.1",
|
|
@@ -27,48 +28,46 @@
|
|
|
27
28
|
"@vueuse/core": "14.2.1",
|
|
28
29
|
"class-variance-authority": "0.7.1",
|
|
29
30
|
"clsx": "2.1.1",
|
|
30
|
-
"eslint": "10.0
|
|
31
|
+
"eslint": "10.1.0",
|
|
31
32
|
"eslint-config-prettier": "10.1.8",
|
|
32
|
-
"eslint-plugin-compat": "7.0.
|
|
33
|
+
"eslint-plugin-compat": "7.0.1",
|
|
33
34
|
"eslint-plugin-prettier": "5.5.5",
|
|
34
|
-
"eslint-plugin-yml": "3.3.
|
|
35
|
-
"globals": "17.
|
|
35
|
+
"eslint-plugin-yml": "3.3.1",
|
|
36
|
+
"globals": "17.4.0",
|
|
36
37
|
"jiti": "2.6.1",
|
|
37
|
-
"jose": "6.
|
|
38
|
-
"
|
|
39
|
-
"nodemailer": "8.0.1",
|
|
38
|
+
"jose": "6.2.2",
|
|
39
|
+
"nodemailer": "8.0.4",
|
|
40
40
|
"nuxt-gtag": "4.1.0",
|
|
41
41
|
"nuxt-security": "2.5.1",
|
|
42
|
-
"reka-ui": "2.
|
|
43
|
-
"satori": "0.19.1",
|
|
42
|
+
"reka-ui": "2.9.2",
|
|
44
43
|
"shadcn-nuxt": "2.4.3",
|
|
45
44
|
"tailwind-merge": "3.5.0",
|
|
46
45
|
"tw-animate-css": "1.4.0",
|
|
47
46
|
"vue-sonner": "2.0.9",
|
|
48
|
-
"vue-tsc": "3.2.
|
|
47
|
+
"vue-tsc": "3.2.6"
|
|
49
48
|
},
|
|
50
49
|
"devDependencies": {
|
|
51
|
-
"@types/node": "24.
|
|
50
|
+
"@types/node": "24.12.0",
|
|
52
51
|
"@urql/devtools": "2.0.3",
|
|
53
52
|
"@urql/exchange-graphcache": "9.0.0",
|
|
54
53
|
"@vueuse/core": "14.2.1",
|
|
55
54
|
"consola": "3.4.2",
|
|
56
55
|
"defu": "6.1.4",
|
|
57
|
-
"h3": "1.15.
|
|
56
|
+
"h3": "1.15.10",
|
|
58
57
|
"lodash-es": "4.17.23",
|
|
59
|
-
"nuxt": "4.
|
|
58
|
+
"nuxt": "4.4.2",
|
|
60
59
|
"pinia": "3.0.4",
|
|
61
60
|
"prettier": "3.8.1",
|
|
62
61
|
"prettier-plugin-tailwindcss": "0.7.2",
|
|
63
|
-
"serve": "14.2.
|
|
62
|
+
"serve": "14.2.6",
|
|
64
63
|
"sharp": "0.34.5",
|
|
65
|
-
"stylelint": "17.
|
|
64
|
+
"stylelint": "17.6.0",
|
|
66
65
|
"stylelint-config-recommended-vue": "1.6.1",
|
|
67
66
|
"stylelint-config-standard": "40.0.0",
|
|
68
67
|
"stylelint-no-unsupported-browser-features": "8.1.1",
|
|
69
|
-
"tailwindcss": "4.2.
|
|
70
|
-
"vue": "3.5.
|
|
71
|
-
"vue-router": "5.0.
|
|
68
|
+
"tailwindcss": "4.2.2",
|
|
69
|
+
"vue": "3.5.31",
|
|
70
|
+
"vue-router": "5.0.4"
|
|
72
71
|
},
|
|
73
72
|
"engines": {
|
|
74
73
|
"node": "24"
|
|
@@ -119,5 +118,5 @@
|
|
|
119
118
|
"start:static": "node node/server/static.mjs"
|
|
120
119
|
},
|
|
121
120
|
"type": "module",
|
|
122
|
-
"version": "21.0.
|
|
121
|
+
"version": "21.0.1"
|
|
123
122
|
}
|