@dargmuesli/nuxt-vio 1.11.7 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
package/app.config.ts CHANGED
@@ -1,19 +1,15 @@
1
1
  import { useSeoMeta } from '@unhead/vue'
2
2
 
3
- import { SITE_NAME } from './utils/constants'
4
-
5
3
  export default defineAppConfig({
6
4
  seoMeta: {
7
5
  twitterSite: '@dargmuesli',
8
6
  },
9
- siteName: SITE_NAME,
10
7
  themeColor: '#202020',
11
8
  })
12
9
 
13
10
  declare module '@nuxt/schema' {
14
11
  interface AppConfigInput {
15
12
  seoMeta?: Parameters<typeof useSeoMeta>[0]
16
- siteName: string
17
13
  themeColor?: string
18
14
  }
19
15
  }
@@ -3,8 +3,6 @@
3
3
  <NuxtLayout>
4
4
  <!-- `NuxtLayout` can't have mulitple child nodes (https://github.com/nuxt/nuxt/issues/21759) -->
5
5
  <div>
6
- <SeoKit :site-description="siteDescription" :language="locale" />
7
- <OgImageStatic :alt="ogImageAlt" component="OgImage" />
8
6
  <NuxtPage />
9
7
  <CookieControl :locale="locale" />
10
8
  </div>
@@ -17,7 +15,7 @@ export interface Props {
17
15
  siteDescription: string
18
16
  ogImageAlt: string
19
17
  }
20
- withDefaults(defineProps<Props>(), {})
18
+ const props = withDefaults(defineProps<Props>(), {})
21
19
 
22
20
  const { locale } = useI18n()
23
21
  const cookieControl = useCookieControl()
@@ -41,7 +39,15 @@ watch(
41
39
  },
42
40
  { deep: true },
43
41
  )
42
+
44
43
  // initialization
44
+ updateSiteConfig({
45
+ description: props.siteDescription,
46
+ })
47
+ defineOgImage({
48
+ alt: props.ogImageAlt,
49
+ description: props.siteDescription,
50
+ })
45
51
  useAppLayout()
46
52
  useFavicons()
47
53
  </script>
@@ -1,17 +1,26 @@
1
1
  <template>
2
- <h1>{{ statusCode ? `${statusCode} - ` : '' }}{{ statusReason }}</h1>
2
+ <h1>{{ `${statusCode} - ${statusReason}` }}</h1>
3
+ <div>
4
+ {{ description }}
5
+ </div>
6
+ <div v-if="stack && !runtimeConfig.public.isInProduction" v-html="stack" />
3
7
  </template>
4
8
 
5
9
  <script setup lang="ts">
6
10
  import { status } from '@http-util/status-i18n'
7
11
 
8
12
  export interface Props {
9
- statusCode?: number
13
+ statusCode: number
14
+ statusMessage?: string
15
+ description: string
16
+ stack?: string
10
17
  }
11
18
  const props = withDefaults(defineProps<Props>(), {
12
- statusCode: undefined,
19
+ statusMessage: undefined,
20
+ stack: undefined,
13
21
  })
14
22
 
23
+ const runtimeConfig = useRuntimeConfig()
15
24
  const { locale, t } = useI18n()
16
25
 
17
26
  // computations
package/error.vue CHANGED
@@ -1,21 +1,23 @@
1
1
  <template>
2
2
  <NuxtLayout>
3
3
  <VioError
4
- :status-code="error?.statusCode ? +error?.statusCode : undefined"
4
+ :status-code="error.statusCode"
5
+ :status-message="error.statusMessage"
6
+ :description="error.message"
7
+ :stack="error.stack"
5
8
  />
6
9
  </NuxtLayout>
7
10
  </template>
8
11
 
9
12
  <script setup lang="ts">
10
- export type Error = { statusCode: string }
13
+ import { NuxtError } from 'nuxt/app'
14
+
11
15
  export interface Props {
12
- error?: Error
16
+ error: NuxtError
13
17
  }
14
- const props = withDefaults(defineProps<Props>(), {
15
- error: undefined,
16
- })
18
+ const props = withDefaults(defineProps<Props>(), {})
17
19
 
18
20
  useHead({
19
- title: props.error?.statusCode?.toString(),
21
+ title: `${props.error.statusCode} - ${props.error.message}`,
20
22
  })
21
23
  </script>
package/nuxt.config.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { dirname, join } from 'node:path'
2
2
  import { fileURLToPath } from 'node:url'
3
3
 
4
- import { LOCALES, SITE_NAME } from './utils/constants'
4
+ import { SITE_NAME } from './utils/constants'
5
5
 
6
6
  const currentDir = dirname(fileURLToPath(import.meta.url))
7
7
 
@@ -28,12 +28,12 @@ export default defineNuxtConfig({
28
28
  title: SITE_NAME, // fallback data to prevent invalid html at generation
29
29
  },
30
30
  },
31
- extends: ['nuxt-seo-kit'],
32
31
  modules: [
33
32
  '@dargmuesli/nuxt-cookie-control',
34
33
  '@nuxtjs/html-validator',
35
34
  '@nuxtjs/i18n',
36
35
  '@nuxtjs/tailwindcss',
36
+ 'nuxt-seo-kit-module',
37
37
  ],
38
38
  nitro: {
39
39
  compressPublicAssets: true,
@@ -41,11 +41,8 @@ export default defineNuxtConfig({
41
41
  runtimeConfig: {
42
42
  public: {
43
43
  googleAnalyticsId: '', // set via environment variable `NUXT_PUBLIC_GOOGLE_ANALYTICS_ID` only
44
+ isInProduction: process.env.NODE_ENV === 'production',
44
45
  isTesting: false,
45
- ...{
46
- siteName: SITE_NAME,
47
- siteUrl: BASE_URL,
48
- },
49
46
  },
50
47
  },
51
48
  typescript: {
@@ -110,7 +107,20 @@ export default defineNuxtConfig({
110
107
  detectBrowserLanguage: false, // Enabling browser language detection does not generate (!) other languages than the default one.
111
108
  langDir: 'locales',
112
109
  lazy: true,
113
- locales: LOCALES,
110
+ locales: [
111
+ {
112
+ code: 'en',
113
+ file: 'en.json',
114
+ name: 'English',
115
+ iso: 'en', // Will be used as catchall locale by default.
116
+ },
117
+ {
118
+ code: 'de',
119
+ file: 'de.json',
120
+ name: 'Deutsch',
121
+ iso: 'de',
122
+ },
123
+ ],
114
124
  vueI18n: {
115
125
  fallbackWarn: false, // TODO: don't show incorrect warnings (https://github.com/intlify/vue-i18n-next/issues/776)
116
126
  },
@@ -118,9 +128,14 @@ export default defineNuxtConfig({
118
128
  linkChecker: {
119
129
  failOn404: false, // TODO: enable (https://github.com/harlan-zw/nuxt-seo-kit/issues/4#issuecomment-1434522124)
120
130
  },
121
- site: {
131
+ seoKit: {
122
132
  splash: false,
123
133
  },
134
+ site: {
135
+ debug: process.env.NODE_ENV === 'development',
136
+ name: SITE_NAME,
137
+ url: BASE_URL,
138
+ },
124
139
  tailwindcss: {
125
140
  cssPath: join(currentDir, './assets/css/tailwind.css'),
126
141
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dargmuesli/nuxt-vio",
3
- "version": "1.11.7",
3
+ "version": "1.13.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -44,14 +44,14 @@
44
44
  "@nuxtjs/i18n": "8.0.0-beta.10",
45
45
  "@nuxtjs/tailwindcss": "6.8.0",
46
46
  "@tailwindcss/typography": "0.5.9",
47
- "nuxt-seo-kit": "1.3.9",
47
+ "nuxt-seo-kit-module": "2.0.0-beta.5",
48
48
  "sweetalert2": "11.7.20",
49
49
  "vue-gtag": "2.0.1"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@commitlint/cli": "17.6.7",
53
53
  "@commitlint/config-conventional": "17.6.7",
54
- "@intlify/eslint-plugin-vue-i18n": "3.0.0-next.2",
54
+ "@intlify/eslint-plugin-vue-i18n": "3.0.0-next.3",
55
55
  "@nuxtjs/eslint-config-typescript": "12.0.0",
56
56
  "eslint": "8.45.0",
57
57
  "eslint-config-prettier": "8.8.0",
@@ -67,6 +67,11 @@
67
67
  "stylelint-config-standard": "34.0.0",
68
68
  "stylelint-no-unsupported-browser-features": "7.0.0",
69
69
  "typescript": "5.1.6",
70
- "vue-tsc": "1.8.6"
70
+ "vue-tsc": "1.8.8"
71
+ },
72
+ "pnpm": {
73
+ "overrides": {
74
+ "nuxt-og-image": "2.0.11"
75
+ }
71
76
  }
72
77
  }
@@ -1,18 +1 @@
1
- import { LocaleObject } from '@nuxtjs/i18n/dist/runtime/composables'
2
-
3
- export const CYPRESS_BASE_URL = 'http://localhost:3000'
4
- export const LOCALES: LocaleObject[] = [
5
- {
6
- code: 'en',
7
- file: 'en.json',
8
- name: 'English',
9
- iso: 'en', // Will be used as catchall locale by default.
10
- },
11
- {
12
- code: 'de',
13
- file: 'de.json',
14
- name: 'Deutsch',
15
- iso: 'de',
16
- },
17
- ]
18
1
  export const SITE_NAME = 'Vio'