@dargmuesli/nuxt-vio 23.0.0 → 23.1.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.
@@ -5,7 +5,11 @@
5
5
  {{ description }}
6
6
  </div>
7
7
  <pre
8
- v-if="stack && !runtimeConfig.public.vio.isInProduction"
8
+ v-if="
9
+ stack &&
10
+ !runtimeConfig.public.vio.isInProduction &&
11
+ !runtimeConfig.public.vio.isTesting
12
+ "
9
13
  class="overflow-auto wrap-break-word whitespace-pre-wrap"
10
14
  >
11
15
  {{ stack }}
package/nuxt.config.ts CHANGED
@@ -21,6 +21,15 @@ import {
21
21
  } from './shared/utils/constants'
22
22
 
23
23
  const { resolve } = createResolver(import.meta.url)
24
+ // mirrors the suffix `mkcert.sh` and the node and static test servers use for the local certificates
25
+ const CERTIFICATE_SUFFIX = process.env.CI ? '-ci' : '-dev'
26
+ // `nuxt dev` serves local HTTPS for direct browser access, as in local development and the
27
+ // e2e test server. A stack deploy also runs `nuxt dev`, but behind traefik, which talks
28
+ // plain HTTP to the backend, so local HTTPS would break it. The stack and the e2e both set
29
+ // `NUXT_PUBLIC_I18N_BASE_URL` (making `IS_IN_STACK` true); only the e2e also sets the
30
+ // testing flag, so that is what separates the two.
31
+ const IS_IN_STACK_DEPLOY =
32
+ IS_IN_STACK && process.env.NUXT_PUBLIC_VIO_IS_TESTING !== 'true'
24
33
  const SHARED_TYPE_REFERENCES = [
25
34
  { path: resolve('shared/types/app-config.d.ts') },
26
35
  { path: resolve('shared/types/request-event-context.d.ts') },
@@ -40,14 +49,14 @@ export default defineNuxtConfig(
40
49
  },
41
50
  },
42
51
  compatibilityDate: '2024-04-03',
43
- ...(IS_IN_STACK
52
+ ...(IS_IN_STACK_DEPLOY
44
53
  ? {}
45
54
  : {
46
55
  devServer: {
47
56
  host: 'app.localhost',
48
57
  https: {
49
- key: './.config/certificates/ssl-dev.key',
50
- cert: './.config/certificates/ssl-dev.crt',
58
+ key: `./.config/certificates/ssl${CERTIFICATE_SUFFIX}.key`,
59
+ cert: `./.config/certificates/ssl${CERTIFICATE_SUFFIX}.crt`,
51
60
  },
52
61
  },
53
62
  }),
@@ -59,10 +68,12 @@ export default defineNuxtConfig(
59
68
  experimental: {
60
69
  early404: true,
61
70
  inlineErrorRendering: true,
71
+ prefetchPreloadTags: true,
62
72
  prerenderErrorPages: true,
63
73
  routeTypedFetch: true,
64
74
  strictRouteTypes: true,
65
75
  typedPages: true,
76
+ watcher: 'builder',
66
77
  },
67
78
  hooks: {
68
79
  // consumers' generated tsconfigs exclude `node_modules`, so this layer's type augmentations need explicit references
@@ -210,32 +221,7 @@ export default defineNuxtConfig(
210
221
  // },
211
222
  },
212
223
  vite: {
213
- plugins: [
214
- tailwindcss(),
215
- {
216
- // This plugin suppresses false-positive sourcemap warnings from Tailwind's Vite plugin
217
- // TODO: remove once tailwind generates sourcemaps for their transforms (https://github.com/tailwindlabs/tailwindcss/discussions/16119)
218
- apply: 'build',
219
- name: 'vite-plugin-ignore-sourcemap-warnings',
220
- configResolved(config) {
221
- const originalOnWarn = config.build.rollupOptions.onwarn
222
- config.build.rollupOptions.onwarn = (warning, warn) => {
223
- if (
224
- warning.code === 'SOURCEMAP_BROKEN' &&
225
- warning.plugin === '@tailwindcss/vite:generate:build'
226
- ) {
227
- return
228
- }
229
-
230
- if (originalOnWarn) {
231
- originalOnWarn(warning, warn)
232
- } else {
233
- warn(warning)
234
- }
235
- }
236
- },
237
- },
238
- ],
224
+ plugins: [tailwindcss()],
239
225
  },
240
226
 
241
227
  // modules
@@ -358,6 +344,11 @@ export default defineNuxtConfig(
358
344
  },
359
345
  strict: true,
360
346
  },
347
+ ogImage: {
348
+ // nuxt-og-image falls back to `seo.automaticTwitterTags` for this; keep it explicit,
349
+ // because `automaticTwitterTags` is disabled below to stop the conflicting inferred tag.
350
+ includeTwitter: true,
351
+ },
361
352
  sentry: {
362
353
  release: {
363
354
  name: process.env.RELEASE_NAME || undefined,
@@ -369,6 +360,10 @@ export default defineNuxtConfig(
369
360
  // `org`, `project` and `authToken` are read from the `SENTRY_ORG`, `SENTRY_PROJECT` and `SENTRY_AUTH_TOKEN` environment variables by the module itself.
370
361
  },
371
362
  seo: {
363
+ // nuxt-og-image already renders `twitter:card` (`summary_large_image`) per page; seo-utils'
364
+ // inferred `twitter:card` duplicates it and, with unhead >= 3.4.3, can resolve to `summary`
365
+ // after hydration, conflicting with the og-image tag.
366
+ automaticTwitterTags: false,
372
367
  minify: false, // TODO: enable (https://github.com/harlan-zw/nuxt-seo-utils/issues/103)
373
368
  validateAppHead: false, // `app.head.htmlAttrs.lang` is only a fallback for the routeless SPA pages, as i18n sets the correct language per locale everywhere else.
374
369
  },
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "dependencies": {
3
- "@dargmuesli/nuxt-cookie-control": "9.3.8",
3
+ "@dargmuesli/nuxt-cookie-control": "9.3.9",
4
4
  "@eslint/compat": "2.1.1",
5
5
  "@heroicons/vue": "2.2.0",
6
6
  "@http-util/status-i18n": "0.9.1",
7
7
  "@intlify/eslint-plugin-vue-i18n": "4.5.1",
8
- "@lucide/vue": "1.55.0",
9
- "@nuxt/devtools": "3.4.2",
8
+ "@lucide/vue": "1.59.0",
9
+ "@nuxt/devtools": "3.4.4",
10
10
  "@nuxt/eslint": "1.17.0",
11
11
  "@nuxt/image": "2.1.0",
12
12
  "@nuxtjs/color-mode": "4.0.1",
@@ -14,12 +14,12 @@
14
14
  "@nuxtjs/i18n": "10.6.0",
15
15
  "@nuxtjs/seo": "6.0.1",
16
16
  "@nuxtjs/turnstile": "1.1.3",
17
- "@pinia/nuxt": "1.0.2",
18
- "@sentry/nuxt": "10.71.0",
17
+ "@pinia/nuxt": "1.0.3",
18
+ "@sentry/nuxt": "10.76.2",
19
19
  "@tailwindcss/forms": "0.5.11",
20
20
  "@tailwindcss/typography": "0.5.20",
21
21
  "@tailwindcss/vite": "4.3.3",
22
- "@takumi-rs/core": "2.15.1",
22
+ "@takumi-rs/core": "2.16.3",
23
23
  "@types/lodash-es": "4.17.12",
24
24
  "@types/nodemailer": "8.0.2",
25
25
  "@urql/core": "6.0.3",
@@ -29,15 +29,15 @@
29
29
  "@vueuse/core": "15.0.0",
30
30
  "class-variance-authority": "0.7.1",
31
31
  "clsx": "2.1.1",
32
- "eslint": "10.12.0",
32
+ "eslint": "10.13.0",
33
33
  "eslint-config-prettier": "10.1.8",
34
34
  "eslint-plugin-compat": "7.0.2",
35
- "eslint-plugin-prettier": "5.5.6",
35
+ "eslint-plugin-prettier": "5.5.7",
36
36
  "eslint-plugin-yml": "3.9.0",
37
37
  "globals": "17.13.0",
38
38
  "jiti": "2.7.0",
39
39
  "jose": "6.2.12",
40
- "nodemailer": "10.1.0",
40
+ "nodemailer": "10.1.7",
41
41
  "nuxt-gtag": "5.0.0",
42
42
  "nuxt-security": "2.6.0",
43
43
  "reka-ui": "2.11.0",
@@ -56,9 +56,9 @@
56
56
  "consola": "3.4.2",
57
57
  "defu": "6.1.7",
58
58
  "lodash-es": "4.18.1",
59
- "nuxt": "4.6.1",
60
- "nuxtseo-devtools-host": "1.0.1",
61
- "pinia": "4.0.3",
59
+ "nuxt": "4.6.2",
60
+ "nuxtseo-devtools-host": "1.0.2",
61
+ "pinia": "4.1.0",
62
62
  "postcss-html": "2.0.0",
63
63
  "prettier": "3.9.10",
64
64
  "prettier-plugin-tailwindcss": "0.8.1",
@@ -71,7 +71,7 @@
71
71
  "stylelint-config-standard": "40.0.0",
72
72
  "stylelint-no-unsupported-browser-features": "8.1.2",
73
73
  "tailwindcss": "4.3.3",
74
- "vue": "3.5.43",
74
+ "vue": "3.5.44",
75
75
  "vue-router": "5.4.0"
76
76
  },
77
77
  "engines": {
@@ -104,7 +104,7 @@
104
104
  "url": "git+https://github.com/dargmuesli/vio.git"
105
105
  },
106
106
  "type": "module",
107
- "version": "23.0.0",
107
+ "version": "23.1.1",
108
108
  "scripts": {
109
109
  "build": "pnpm run build:node",
110
110
  "build:node": "NUXT_PUBLIC_I18N_BASE_URL=https://app.localhost:3001 nuxt build playground",