nuxt-seo-utils 8.2.1 → 8.3.0

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.
Files changed (49) hide show
  1. package/dist/cli.mjs +1 -1
  2. package/dist/devtools/lib/seo-utils/rpc.ts +3 -0
  3. package/dist/devtools/lib/seo-utils/state.ts +35 -0
  4. package/dist/devtools/lib/seo-utils/tools.ts +98 -0
  5. package/dist/devtools/nuxt.config.ts +3 -0
  6. package/dist/devtools/pages/seo-utils/debug.vue +50 -0
  7. package/dist/devtools/pages/seo-utils/docs.vue +3 -0
  8. package/dist/devtools/pages/seo-utils/identity.vue +1168 -0
  9. package/dist/devtools/pages/seo-utils/index.vue +609 -0
  10. package/dist/devtools/pages/seo-utils/social.vue +515 -0
  11. package/dist/devtools/pages/seo-utils.vue +64 -0
  12. package/dist/module.json +1 -1
  13. package/dist/runtime/app/composables/polyfills.js +1 -1
  14. package/dist/runtime/app/composables/useBreadcrumbItems.js +3 -3
  15. package/dist/runtime/app/composables/useFallbackTitle.js +1 -1
  16. package/dist/runtime/app/composables/useShareLinks.js +2 -2
  17. package/dist/runtime/app/logic/applyDefaults.js +2 -2
  18. package/dist/runtime/app/plugins/1.absoluteImageUrls.server.js +1 -1
  19. package/dist/runtime/app/plugins/siteConfig.js +1 -1
  20. package/dist/runtime/server/middleware/redirectCanonical.js +1 -1
  21. package/dist/runtime/server/middleware/resolveImagesInPagesDir.js +1 -1
  22. package/dist/runtime/server/routes/__nuxt-seo-utils/debug.js +1 -1
  23. package/package.json +32 -31
  24. package/dist/devtools/200.html +0 -1
  25. package/dist/devtools/404.html +0 -1
  26. package/dist/devtools/_nuxt/-x-fxsZ8.js +0 -33
  27. package/dist/devtools/_nuxt/9bFguHRm.js +0 -1
  28. package/dist/devtools/_nuxt/BFlHJz6O.js +0 -1
  29. package/dist/devtools/_nuxt/BgGLJ6MY.js +0 -14
  30. package/dist/devtools/_nuxt/BrktcVIY.js +0 -1
  31. package/dist/devtools/_nuxt/BvTRrGaN.js +0 -1
  32. package/dist/devtools/_nuxt/CwH3HOIZ.js +0 -1
  33. package/dist/devtools/_nuxt/DevtoolsMetric.DabK8i8g.css +0 -1
  34. package/dist/devtools/_nuxt/Drh0Ii4X.js +0 -1
  35. package/dist/devtools/_nuxt/builds/latest.json +0 -1
  36. package/dist/devtools/_nuxt/builds/meta/30a898c6-4010-4ba2-813b-88c7b3e82138.json +0 -1
  37. package/dist/devtools/_nuxt/debug.B9T5jmI-.css +0 -1
  38. package/dist/devtools/_nuxt/entry.aDw8hoj_.css +0 -1
  39. package/dist/devtools/_nuxt/fira-code.Bc8wnsZt.woff2 +0 -0
  40. package/dist/devtools/_nuxt/hubot-sans.DLGyhQVu.woff2 +0 -0
  41. package/dist/devtools/_nuxt/identity.Dl98KbLG.css +0 -1
  42. package/dist/devtools/_nuxt/index.BrQ8jYVK.css +0 -1
  43. package/dist/devtools/_nuxt/social.DrJTEVxX.css +0 -1
  44. package/dist/devtools/_nuxt/tools.DM91U8p4.css +0 -1
  45. package/dist/devtools/debug/index.html +0 -1
  46. package/dist/devtools/docs/index.html +0 -1
  47. package/dist/devtools/identity/index.html +0 -1
  48. package/dist/devtools/index.html +0 -1
  49. package/dist/devtools/social/index.html +0 -1
@@ -1,7 +1,7 @@
1
1
  import fs from "node:fs";
2
- import { fileMapping } from "#seo-utils-virtual/pageDirImages";
3
2
  import { defineEventHandler, setHeader } from "h3";
4
3
  import { parseURL } from "ufo";
4
+ import { fileMapping } from "#seo-utils-virtual/pageDirImages";
5
5
  export default defineEventHandler(async (e) => {
6
6
  const path = parseURL(e.path).pathname;
7
7
  if (fileMapping[path]) {
@@ -1,6 +1,6 @@
1
- import { getSiteConfig } from "#site-config/server/composables";
2
1
  import { defineEventHandler, getQuery } from "h3";
3
2
  import { useRuntimeConfig } from "nitropack/runtime";
3
+ import { getSiteConfig } from "#site-config/server/composables";
4
4
  export default defineEventHandler((e) => {
5
5
  const siteConfig = getSiteConfig(e);
6
6
  const runtimeConfig = useRuntimeConfig(e);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-seo-utils",
3
3
  "type": "module",
4
- "version": "8.2.1",
4
+ "version": "8.3.0",
5
5
  "description": "SEO utilities to improve your Nuxt sites discoverability and shareability",
6
6
  "license": "MIT",
7
7
  "funding": "https://github.com/sponsors/harlan-zw",
@@ -63,63 +63,64 @@
63
63
  }
64
64
  },
65
65
  "dependencies": {
66
- "@nuxt/kit": "^4.4.2",
66
+ "@nuxt/kit": "^4.4.8",
67
67
  "@unhead/bundler": "^3.1.3",
68
68
  "citty": "^0.2.2",
69
+ "consola": "^3.4.2",
69
70
  "defu": "^6.1.7",
70
71
  "escape-string-regexp": "^5.0.0",
71
72
  "exsolve": "^1.0.8",
72
73
  "image-size": "^2.0.2",
73
74
  "nuxt-site-config": "^4.0.8",
74
- "nuxtseo-shared": "^5.1.4",
75
+ "nuxtseo-layer-devtools": "^5.2.3",
76
+ "nuxtseo-shared": "^5.2.3",
75
77
  "pathe": "^2.0.3",
76
- "pkg-types": "^2.3.0",
78
+ "pkg-types": "^2.3.1",
77
79
  "scule": "^1.3.0",
78
- "tinyglobby": "^0.2.16",
79
- "ufo": "^1.6.3"
80
+ "tinyglobby": "^0.2.17",
81
+ "ufo": "^1.6.4"
80
82
  },
81
83
  "optionalDependencies": {
82
- "sharp": "^0.34.5"
84
+ "sharp": "^0.35.0"
83
85
  },
84
86
  "devDependencies": {
85
- "@antfu/eslint-config": "^8.2.0",
86
- "@nuxt/devtools-kit": "4.0.0-alpha.3",
87
+ "@antfu/eslint-config": "^9.0.0",
88
+ "@nuxt/devtools-kit": "4.0.0-alpha.7",
87
89
  "@nuxt/module-builder": "^1.0.2",
88
- "@nuxt/schema": "^4.4.2",
89
- "@nuxt/test-utils": "^4.0.2",
90
- "@nuxt/ui": "^4.6.1",
91
- "@nuxtjs/i18n": "^10.2.4",
92
- "@types/node": "^25.6.0",
90
+ "@nuxt/schema": "^4.4.8",
91
+ "@nuxt/test-utils": "^4.0.3",
92
+ "@nuxt/ui": "^4.8.2",
93
+ "@nuxtjs/i18n": "^10.4.0",
94
+ "@types/node": "^25.9.3",
93
95
  "@unhead/vue": "^3.1.3",
94
- "@vue/test-utils": "^2.4.6",
95
- "bumpp": "^11.0.1",
96
+ "@vue/test-utils": "^2.4.11",
97
+ "bumpp": "^11.1.0",
96
98
  "case-police": "^2.2.1",
97
99
  "cheerio": "^1.2.0",
98
- "eslint": "^10.2.1",
99
- "eslint-plugin-harlanzw": "^0.12.1",
100
- "happy-dom": "^20.9.0",
101
- "lint-staged": "^16.4.0",
100
+ "eslint": "^10.4.1",
101
+ "eslint-plugin-harlanzw": "^0.17.0",
102
+ "happy-dom": "^20.10.2",
103
+ "lint-staged": "^17.0.7",
102
104
  "markdownlint-cli": "^0.48.0",
103
- "nuxt": "^4.4.2",
104
- "nuxt-security": "^2.5.1",
105
- "nuxtseo-layer-devtools": "^5.1.3",
106
- "playwright-core": "^1.59.1",
107
- "sass": "^1.99.0",
108
- "semver": "^7.7.4",
105
+ "nuxt": "^4.4.8",
106
+ "nuxt-security": "^2.6.0",
107
+ "playwright-core": "^1.60.0",
108
+ "sass": "^1.100.0",
109
+ "semver": "^7.8.4",
109
110
  "sirv": "^3.0.2",
110
111
  "typescript": "^6.0.3",
111
112
  "ultrahtml": "^1.6.0",
112
113
  "unbuild": "^3.6.1",
113
114
  "unhead": "^3.1.3",
114
- "vitest": "^4.1.5",
115
- "vue-tsc": "^3.2.7"
115
+ "vitest": "^4.1.8",
116
+ "vue": "^3.5.35",
117
+ "vue-tsc": "^3.3.4"
116
118
  },
117
119
  "scripts": {
118
- "client:build": "nuxt generate devtools",
120
+ "client:build": "node -e \"require('fs').cpSync('devtools','dist/devtools',{recursive:true})\"",
119
121
  "build": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxt-module-build build && npm run client:build",
120
122
  "dev": "nuxt dev playground",
121
- "devtools": "nuxt dev devtools --port 3030",
122
- "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxt prepare playground && pnpm prepare:fixtures",
123
+ "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxt prepare playground && pnpm prepare:fixtures && pnpm run client:build",
123
124
  "stub": "nuxt-module-build build --stub && nuxt-module-build prepare",
124
125
  "lint": "eslint .",
125
126
  "lint:fix": "eslint . --fix",
@@ -1 +0,0 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.aDw8hoj_.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/-x-fxsZ8.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/-x-fxsZ8.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT_SITE_CONFIG__={_priority:{env:-15},env:"production"}</script><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"30a898c6-4010-4ba2-813b-88c7b3e82138",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1780941724877,false]</script></body></html>
@@ -1 +0,0 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/__nuxt-seo-utils/_nuxt/entry.aDw8hoj_.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-seo-utils/_nuxt/-x-fxsZ8.js"><script type="module" src="/__nuxt-seo-utils/_nuxt/-x-fxsZ8.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT_SITE_CONFIG__={_priority:{env:-15},env:"production"}</script><script>window.__NUXT__={};window.__NUXT__.config={public:{i18n:{baseUrl:"",defaultLocale:"",rootRedirect:"",redirectStatusCode:302,skipSettingLocaleOnNavigate:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",typedPages:true,typedOptionsAndMessages:false,alternateLinkCanonicalQueries:true,devCache:false,cacheLifetime:"",stripMessagesPayload:false,preload:false,strictSeo:false,nitroContextDetection:true,httpCacheDuration:10},domainLocales:{}}},app:{baseURL:"/__nuxt-seo-utils",buildId:"30a898c6-4010-4ba2-813b-88c7b3e82138",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1780941724877,false]</script></body></html>