@nuxtjs/sitemap 8.0.12 → 8.0.14
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/dist/content.d.mts +3 -1
- package/dist/content.d.ts +3 -1
- package/dist/devtools/200.html +1 -1
- package/dist/devtools/404.html +1 -1
- package/dist/devtools/_nuxt/Bps53xiY.js +1 -0
- package/dist/devtools/_nuxt/C2pUG4va.js +1 -0
- package/dist/devtools/_nuxt/CDDzqGso.js +3 -0
- package/dist/devtools/_nuxt/CyvyCK6P.js +1 -0
- package/dist/devtools/_nuxt/D6bB4cSl.js +1 -0
- package/dist/devtools/_nuxt/DevtoolsEmptyState.0UhhkvNL.css +1 -0
- package/dist/devtools/_nuxt/DevtoolsSnippet.DFV_ZzPt.css +1 -0
- package/dist/devtools/_nuxt/Dh6ZicPT.js +181 -0
- package/dist/devtools/_nuxt/DmbPSlf_.js +1 -0
- package/dist/devtools/_nuxt/{Source.C8X9kLw1.css → Source.CqReLZgs.css} +1 -1
- package/dist/devtools/_nuxt/builds/latest.json +1 -1
- package/dist/devtools/_nuxt/builds/meta/fd52c715-00b6-4524-85bf-ca451c76ea4a.json +1 -0
- package/dist/devtools/_nuxt/entry.DU7QPSAx.css +2 -0
- package/dist/devtools/_nuxt/gMbbZ4Is.js +1 -0
- package/dist/devtools/_nuxt/pages.BJpQykfA.css +1 -0
- package/dist/devtools/_nuxt/{DVdDkikE.js → siXT-W_N.js} +1 -1
- package/dist/devtools/_nuxt/uUQkUixz.js +1 -0
- package/dist/devtools/app-sources/index.html +1 -1
- package/dist/devtools/debug/index.html +1 -1
- package/dist/devtools/docs/index.html +1 -1
- package/dist/devtools/index.html +1 -1
- package/dist/devtools/user-sources/index.html +1 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +24 -20
- package/dist/runtime/server/routes/__sitemap__/debug-production.js +1 -1
- package/dist/runtime/server/sitemap/builder/sitemap-index.js +1 -1
- package/dist/runtime/server/sitemap/builder/xml.js +12 -12
- package/dist/runtime/server/sitemap/nitro.js +1 -1
- package/dist/runtime/server/utils.d.ts +1 -1
- package/dist/runtime/server/utils.js +3 -1
- package/dist/utils.d.mts +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.mjs +7 -7
- package/package.json +21 -21
- package/dist/devtools/_nuxt/-aUy0TC4.js +0 -154
- package/dist/devtools/_nuxt/BFIcOmri.js +0 -1
- package/dist/devtools/_nuxt/BGX4BIlp.js +0 -1
- package/dist/devtools/_nuxt/Bi9TcosG.js +0 -23
- package/dist/devtools/_nuxt/CXQtxZOi.js +0 -1
- package/dist/devtools/_nuxt/Cax5AHW4.js +0 -1
- package/dist/devtools/_nuxt/D5_CWcJg.js +0 -1
- package/dist/devtools/_nuxt/DC1C2xmT.js +0 -3
- package/dist/devtools/_nuxt/DRr-E6D6.js +0 -1
- package/dist/devtools/_nuxt/DevtoolsAlert.Cc1j0rFh.css +0 -1
- package/dist/devtools/_nuxt/DevtoolsEmptyState.C_JszSPw.css +0 -1
- package/dist/devtools/_nuxt/DevtoolsSnippet.BMHEZhbx.css +0 -1
- package/dist/devtools/_nuxt/Dn-g3ZEt.js +0 -6
- package/dist/devtools/_nuxt/QPjoaMYX.js +0 -1
- package/dist/devtools/_nuxt/ZIb9ujn-.js +0 -1
- package/dist/devtools/_nuxt/builds/meta/61a2dc5e-e379-4bcd-a2a4-fe6a8a2bf7ae.json +0 -1
- package/dist/devtools/_nuxt/entry.W5GE0Meb.css +0 -2
- package/dist/devtools/_nuxt/pages.RvpSKGhd.css +0 -1
- package/dist/devtools/_nuxt/shiki.C9dc3IDa.css +0 -1
- package/dist/devtools/_nuxt/vh1cNZ6L.js +0 -1
- /package/dist/devtools/_nuxt/{CCTv7mmB.js → BwW5PI4u.js} +0 -0
- /package/dist/devtools/_nuxt/{CuJezOxb.js → Bx_VzvYa.js} +0 -0
- /package/dist/devtools/_nuxt/{O5eLyffU.js → CDUvHTjX.js} +0 -0
- /package/dist/devtools/_nuxt/{E8AZ6HoH.js → PnYIYlhI.js} +0 -0
- /package/dist/devtools/_nuxt/{CHHO6nw6.js → tBStlNYu.js} +0 -0
- /package/dist/devtools/_nuxt/{C5jzcy9i.js → z1-BJQbH.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-sitemap/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-sitemap/_nuxt/Dh6ZicPT.js"}}</script><link rel="stylesheet" href="/__nuxt-sitemap/_nuxt/entry.DU7QPSAx.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/Dh6ZicPT.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/tBStlNYu.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/CDDzqGso.js"><script type="module" src="/__nuxt-sitemap/_nuxt/Dh6ZicPT.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__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-sitemap",buildId:"fd52c715-00b6-4524-85bf-ca451c76ea4a",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1777128067725,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-sitemap/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-sitemap/_nuxt/Dh6ZicPT.js"}}</script><link rel="stylesheet" href="/__nuxt-sitemap/_nuxt/entry.DU7QPSAx.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/Dh6ZicPT.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/tBStlNYu.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/CDDzqGso.js"><script type="module" src="/__nuxt-sitemap/_nuxt/Dh6ZicPT.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__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-sitemap",buildId:"fd52c715-00b6-4524-85bf-ca451c76ea4a",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1777128067726,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-sitemap/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-sitemap/_nuxt/Dh6ZicPT.js"}}</script><link rel="stylesheet" href="/__nuxt-sitemap/_nuxt/entry.DU7QPSAx.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/Dh6ZicPT.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/tBStlNYu.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/CDDzqGso.js"><script type="module" src="/__nuxt-sitemap/_nuxt/Dh6ZicPT.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__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-sitemap",buildId:"fd52c715-00b6-4524-85bf-ca451c76ea4a",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1777128067726,false]</script></body></html>
|
package/dist/devtools/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-sitemap/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-sitemap/_nuxt/Dh6ZicPT.js"}}</script><link rel="stylesheet" href="/__nuxt-sitemap/_nuxt/entry.DU7QPSAx.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/Dh6ZicPT.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/tBStlNYu.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/CDDzqGso.js"><script type="module" src="/__nuxt-sitemap/_nuxt/Dh6ZicPT.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:{},app:{baseURL:"/__nuxt-sitemap",buildId:"fd52c715-00b6-4524-85bf-ca451c76ea4a",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1777128067726,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-sitemap/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-sitemap/_nuxt/Dh6ZicPT.js"}}</script><link rel="stylesheet" href="/__nuxt-sitemap/_nuxt/entry.DU7QPSAx.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/Dh6ZicPT.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/tBStlNYu.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-sitemap/_nuxt/CDDzqGso.js"><script type="module" src="/__nuxt-sitemap/_nuxt/Dh6ZicPT.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__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-sitemap",buildId:"fd52c715-00b6-4524-85bf-ca451c76ea4a",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1777128067726,false]</script></body></html>
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -750,30 +750,25 @@ const module$1 = defineNuxtModule({
|
|
|
750
750
|
"X-Sitemap-Prerendered": (/* @__PURE__ */ new Date()).toISOString()
|
|
751
751
|
};
|
|
752
752
|
}
|
|
753
|
-
|
|
754
|
-
nuxt.options.nitro.routeRules[config.xsl] = {
|
|
755
|
-
headers: {
|
|
756
|
-
"Content-Type": "application/xslt+xml"
|
|
757
|
-
}
|
|
758
|
-
};
|
|
759
|
-
}
|
|
753
|
+
const hasRouteRuleContent = Object.keys(routeRules).length > 0;
|
|
760
754
|
if (usingMultiSitemaps) {
|
|
761
755
|
nuxt.options.nitro.routeRules["/sitemap.xml"] = { redirect: withBase("/sitemap_index.xml", nuxt.options.app.baseURL) };
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
756
|
+
if (hasRouteRuleContent) {
|
|
757
|
+
nuxt.options.nitro.routeRules["/sitemap_index.xml"] = routeRules;
|
|
758
|
+
if (typeof config.sitemaps === "object") {
|
|
759
|
+
for (const k in config.sitemaps) {
|
|
760
|
+
if (k === "index")
|
|
761
|
+
continue;
|
|
762
|
+
nuxt.options.nitro.routeRules[joinURL(config.sitemapsPathPrefix || "", `/${k}.xml`)] = routeRules;
|
|
763
|
+
const sitemapConfig = config.sitemaps[k];
|
|
764
|
+
if (sitemapConfig.chunks)
|
|
765
|
+
nuxt.options.nitro.routeRules[joinURL(config.sitemapsPathPrefix || "", `/${k}-*.xml`)] = routeRules;
|
|
771
766
|
}
|
|
767
|
+
} else {
|
|
768
|
+
nuxt.options.nitro.routeRules[joinURL(config.sitemapsPathPrefix || "", `/[0-9]+.xml`)] = routeRules;
|
|
772
769
|
}
|
|
773
|
-
} else {
|
|
774
|
-
nuxt.options.nitro.routeRules[joinURL(config.sitemapsPathPrefix || "", `/[0-9]+.xml`)] = routeRules;
|
|
775
770
|
}
|
|
776
|
-
} else {
|
|
771
|
+
} else if (hasRouteRuleContent) {
|
|
777
772
|
nuxt.options.nitro.routeRules[`/${config.sitemapName}`] = routeRules;
|
|
778
773
|
}
|
|
779
774
|
if (config.zeroRuntime && (config.experimentalWarmUp || config.experimentalCompression))
|
|
@@ -1083,7 +1078,16 @@ ${onUrlEntries.join("\n")}`;
|
|
|
1083
1078
|
runtimeConfig.autoI18n = resolvedAutoI18n;
|
|
1084
1079
|
if (hasDisabledAutoI18n)
|
|
1085
1080
|
runtimeConfig.hasDisabledAutoI18n = true;
|
|
1086
|
-
|
|
1081
|
+
const dynamicRuntimeConfig = {
|
|
1082
|
+
cacheMaxAgeSeconds: runtimeConfig.cacheMaxAgeSeconds,
|
|
1083
|
+
debug: runtimeConfig.debug
|
|
1084
|
+
};
|
|
1085
|
+
const { cacheMaxAgeSeconds: _c, debug: _d, ...staticRuntimeConfig } = runtimeConfig;
|
|
1086
|
+
nuxt.options.runtimeConfig.sitemap = dynamicRuntimeConfig;
|
|
1087
|
+
nuxt.hook("nitro:config", (nitroConfig) => {
|
|
1088
|
+
nitroConfig.virtual = nitroConfig.virtual || {};
|
|
1089
|
+
nitroConfig.virtual["#sitemap-virtual/static-config.mjs"] = `export default ${JSON.stringify(staticRuntimeConfig)}`;
|
|
1090
|
+
});
|
|
1087
1091
|
if ((config.debug || nuxt.options.dev) && !(config.zeroRuntime && !nuxt.options.dev)) {
|
|
1088
1092
|
addServerHandler({
|
|
1089
1093
|
route: "/__sitemap__/debug.json",
|
|
@@ -32,7 +32,7 @@ export default defineEventHandler(async (e) => {
|
|
|
32
32
|
if (xml instanceof Error)
|
|
33
33
|
return { url: sitemapUrl, isIndex: false, sitemaps: [], warnings: [], error: `Failed to fetch sitemap: ${xml.message}` };
|
|
34
34
|
if (isSitemapIndex(xml)) {
|
|
35
|
-
const { entries, warnings } = parseSitemapIndex(xml);
|
|
35
|
+
const { entries, warnings } = await parseSitemapIndex(xml);
|
|
36
36
|
const sitemaps = await Promise.all(
|
|
37
37
|
entries.map(async (entry) => {
|
|
38
38
|
const childXml = await fetchXml(entry.loc).catch((err) => err);
|
|
@@ -190,7 +190,7 @@ export function urlsToIndexXml(sitemaps, resolvers, { version, xsl, credits, min
|
|
|
190
190
|
return minify ? xmlParts.join("").replace(/(?<!<[^>]*)\s(?![^<]*>)/g, "") : xmlParts.join("\n");
|
|
191
191
|
}
|
|
192
192
|
export async function buildSitemapIndex(resolvers, runtimeConfig, nitro) {
|
|
193
|
-
if (!import.meta.dev && typeof runtimeConfig.cacheMaxAgeSeconds === "number" && runtimeConfig.cacheMaxAgeSeconds > 0 && resolvers.event) {
|
|
193
|
+
if (!import.meta.dev && !import.meta.prerender && typeof runtimeConfig.cacheMaxAgeSeconds === "number" && runtimeConfig.cacheMaxAgeSeconds > 0 && resolvers.event) {
|
|
194
194
|
return buildSitemapIndexCached(resolvers.event, resolvers, runtimeConfig, nitro);
|
|
195
195
|
}
|
|
196
196
|
return buildSitemapIndexInternal(resolvers, runtimeConfig, nitro);
|
|
@@ -14,9 +14,9 @@ function buildUrlXml(url, NL, I1, I2, I3, I4) {
|
|
|
14
14
|
if (url.loc)
|
|
15
15
|
xml += `${I2}<loc>${xmlEscape(url.loc)}</loc>${NL}`;
|
|
16
16
|
if (url.lastmod)
|
|
17
|
-
xml += `${I2}<lastmod>${url.lastmod}</lastmod>${NL}`;
|
|
17
|
+
xml += `${I2}<lastmod>${xmlEscape(url.lastmod)}</lastmod>${NL}`;
|
|
18
18
|
if (url.changefreq)
|
|
19
|
-
xml += `${I2}<changefreq>${url.changefreq}</changefreq>${NL}`;
|
|
19
|
+
xml += `${I2}<changefreq>${xmlEscape(url.changefreq)}</changefreq>${NL}`;
|
|
20
20
|
if (url.priority !== void 0) {
|
|
21
21
|
const p = typeof url.priority === "number" ? url.priority : Number.parseFloat(url.priority);
|
|
22
22
|
xml += `${I2}<priority>${p.toFixed(1)}</priority>${NL}`;
|
|
@@ -53,27 +53,27 @@ function buildUrlXml(url, NL, I1, I2, I3, I4) {
|
|
|
53
53
|
if (video.player_loc)
|
|
54
54
|
xml += `${I3}<video:player_loc>${xmlEscape(video.player_loc)}</video:player_loc>${NL}`;
|
|
55
55
|
if (video.duration !== void 0)
|
|
56
|
-
xml += `${I3}<video:duration>${video.duration}</video:duration>${NL}`;
|
|
56
|
+
xml += `${I3}<video:duration>${escapeValueForXml(video.duration)}</video:duration>${NL}`;
|
|
57
57
|
if (video.expiration_date)
|
|
58
|
-
xml += `${I3}<video:expiration_date>${video.expiration_date}</video:expiration_date>${NL}`;
|
|
58
|
+
xml += `${I3}<video:expiration_date>${xmlEscape(video.expiration_date)}</video:expiration_date>${NL}`;
|
|
59
59
|
if (video.rating !== void 0)
|
|
60
|
-
xml += `${I3}<video:rating>${video.rating}</video:rating>${NL}`;
|
|
60
|
+
xml += `${I3}<video:rating>${escapeValueForXml(video.rating)}</video:rating>${NL}`;
|
|
61
61
|
if (video.view_count !== void 0)
|
|
62
|
-
xml += `${I3}<video:view_count>${video.view_count}</video:view_count>${NL}`;
|
|
62
|
+
xml += `${I3}<video:view_count>${escapeValueForXml(video.view_count)}</video:view_count>${NL}`;
|
|
63
63
|
if (video.publication_date)
|
|
64
|
-
xml += `${I3}<video:publication_date>${video.publication_date}</video:publication_date>${NL}`;
|
|
64
|
+
xml += `${I3}<video:publication_date>${xmlEscape(video.publication_date)}</video:publication_date>${NL}`;
|
|
65
65
|
if (video.family_friendly !== void 0)
|
|
66
66
|
xml += `${I3}<video:family_friendly>${yesNo(video.family_friendly)}</video:family_friendly>${NL}`;
|
|
67
67
|
if (video.restriction)
|
|
68
|
-
xml += `${I3}<video:restriction relationship="${video.restriction.relationship || "allow"}">${xmlEscape(video.restriction.restriction)}</video:restriction>${NL}`;
|
|
68
|
+
xml += `${I3}<video:restriction relationship="${xmlEscape(video.restriction.relationship || "allow")}">${xmlEscape(video.restriction.restriction)}</video:restriction>${NL}`;
|
|
69
69
|
if (video.platform)
|
|
70
|
-
xml += `${I3}<video:platform relationship="${video.platform.relationship || "allow"}">${xmlEscape(video.platform.platform)}</video:platform>${NL}`;
|
|
70
|
+
xml += `${I3}<video:platform relationship="${xmlEscape(video.platform.relationship || "allow")}">${xmlEscape(video.platform.platform)}</video:platform>${NL}`;
|
|
71
71
|
if (video.requires_subscription !== void 0)
|
|
72
72
|
xml += `${I3}<video:requires_subscription>${yesNo(video.requires_subscription)}</video:requires_subscription>${NL}`;
|
|
73
73
|
if (video.price) {
|
|
74
74
|
for (const price of video.price) {
|
|
75
|
-
const c = price.currency ? ` currency="${price.currency}"` : "";
|
|
76
|
-
const t = price.type ? ` type="${price.type}"` : "";
|
|
75
|
+
const c = price.currency ? ` currency="${xmlEscape(price.currency)}"` : "";
|
|
76
|
+
const t = price.type ? ` type="${xmlEscape(price.type)}"` : "";
|
|
77
77
|
xml += `${I3}<video:price${c}${t}>${xmlEscape(String(price.price ?? ""))}</video:price>${NL}`;
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -102,7 +102,7 @@ function buildUrlXml(url, NL, I1, I2, I3, I4) {
|
|
|
102
102
|
if (url.news.title)
|
|
103
103
|
xml += `${I3}<news:title>${xmlEscape(url.news.title)}</news:title>${NL}`;
|
|
104
104
|
if (url.news.publication_date)
|
|
105
|
-
xml += `${I3}<news:publication_date>${url.news.publication_date}</news:publication_date>${NL}`;
|
|
105
|
+
xml += `${I3}<news:publication_date>${xmlEscape(url.news.publication_date)}</news:publication_date>${NL}`;
|
|
106
106
|
xml += `${I2}</news:news>${NL}`;
|
|
107
107
|
}
|
|
108
108
|
if (import.meta.dev && url._warnings?.length) {
|
|
@@ -134,7 +134,7 @@ const buildSitemapXmlCached = defineCachedFunction(
|
|
|
134
134
|
);
|
|
135
135
|
export async function createSitemap(event, definition, runtimeConfig) {
|
|
136
136
|
const resolvers = useNitroUrlResolvers(event);
|
|
137
|
-
const shouldCache = !import.meta.dev && typeof runtimeConfig.cacheMaxAgeSeconds === "number" && runtimeConfig.cacheMaxAgeSeconds > 0;
|
|
137
|
+
const shouldCache = !import.meta.dev && !import.meta.prerender && typeof runtimeConfig.cacheMaxAgeSeconds === "number" && runtimeConfig.cacheMaxAgeSeconds > 0;
|
|
138
138
|
const xml = shouldCache ? await buildSitemapXmlCached(event, definition, resolvers, runtimeConfig) : await buildSitemapXml(event, definition, resolvers, runtimeConfig);
|
|
139
139
|
setHeader(event, "Content-Type", "text/xml; charset=UTF-8");
|
|
140
140
|
if (runtimeConfig.cacheMaxAgeSeconds) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { H3Event } from 'h3';
|
|
2
2
|
import type { ModuleRuntimeConfig } from '../types.js';
|
|
3
3
|
export * from '../utils-pure.js';
|
|
4
|
-
export declare function xmlEscape(str: string): string;
|
|
4
|
+
export declare function xmlEscape(str: string | number | boolean | Date): string;
|
|
5
5
|
export declare function useSitemapRuntimeConfig(e?: H3Event): ModuleRuntimeConfig;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import staticConfig from "#sitemap-virtual/static-config.mjs";
|
|
1
2
|
import { useRuntimeConfig } from "nitropack/runtime";
|
|
2
3
|
import { normalizeRuntimeFilters } from "../utils-pure.js";
|
|
3
4
|
export * from "../utils-pure.js";
|
|
@@ -5,12 +6,13 @@ export function xmlEscape(str) {
|
|
|
5
6
|
return String(str).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
6
7
|
}
|
|
7
8
|
export function useSitemapRuntimeConfig(e) {
|
|
8
|
-
const clone = JSON.parse(JSON.stringify(
|
|
9
|
+
const clone = JSON.parse(JSON.stringify(staticConfig));
|
|
9
10
|
for (const k in clone.sitemaps) {
|
|
10
11
|
const sitemap = clone.sitemaps[k];
|
|
11
12
|
sitemap.include = normalizeRuntimeFilters(sitemap.include);
|
|
12
13
|
sitemap.exclude = normalizeRuntimeFilters(sitemap.exclude);
|
|
13
14
|
clone.sitemaps[k] = sitemap;
|
|
14
15
|
}
|
|
16
|
+
Object.assign(clone, useRuntimeConfig(e).sitemap);
|
|
15
17
|
return Object.freeze(clone);
|
|
16
18
|
}
|
package/dist/utils.d.mts
CHANGED
|
@@ -32,7 +32,7 @@ interface SitemapIndexParseResult {
|
|
|
32
32
|
entries: SitemapIndexEntry[];
|
|
33
33
|
warnings: SitemapWarning[];
|
|
34
34
|
}
|
|
35
|
-
declare function parseSitemapIndex(xml: string): SitemapIndexParseResult
|
|
35
|
+
declare function parseSitemapIndex(xml: string): Promise<SitemapIndexParseResult>;
|
|
36
36
|
declare function isSitemapIndex(xml: string): boolean;
|
|
37
37
|
|
|
38
38
|
export { isSitemapIndex, parseHtmlExtractSitemapMeta, parseSitemapIndex, parseSitemapXml };
|
package/dist/utils.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ interface SitemapIndexParseResult {
|
|
|
32
32
|
entries: SitemapIndexEntry[];
|
|
33
33
|
warnings: SitemapWarning[];
|
|
34
34
|
}
|
|
35
|
-
declare function parseSitemapIndex(xml: string): SitemapIndexParseResult
|
|
35
|
+
declare function parseSitemapIndex(xml: string): Promise<SitemapIndexParseResult>;
|
|
36
36
|
declare function isSitemapIndex(xml: string): boolean;
|
|
37
37
|
|
|
38
38
|
export { isSitemapIndex, parseHtmlExtractSitemapMeta, parseSitemapIndex, parseSitemapXml };
|
package/dist/utils.mjs
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
export { p as parseHtmlExtractSitemapMeta } from './shared/sitemap.DJC-maKi.mjs';
|
|
2
|
-
import { XMLParser } from 'fast-xml-parser';
|
|
3
2
|
import 'ufo';
|
|
4
3
|
import 'ultrahtml';
|
|
5
4
|
|
|
6
|
-
const parser = new XMLParser({
|
|
7
|
-
isArray: (tagName) => tagName === "sitemap",
|
|
8
|
-
removeNSPrefix: true,
|
|
9
|
-
trimValues: true
|
|
10
|
-
});
|
|
11
5
|
function isValidUrl(value) {
|
|
12
6
|
return URL.canParse(value);
|
|
13
7
|
}
|
|
14
|
-
function parseSitemapIndex(xml) {
|
|
8
|
+
async function parseSitemapIndex(xml) {
|
|
15
9
|
if (!xml)
|
|
16
10
|
throw new Error("Empty XML input provided");
|
|
11
|
+
const { XMLParser } = await import('fast-xml-parser');
|
|
12
|
+
const parser = new XMLParser({
|
|
13
|
+
isArray: (tagName) => tagName === "sitemap",
|
|
14
|
+
removeNSPrefix: true,
|
|
15
|
+
trimValues: true
|
|
16
|
+
});
|
|
17
17
|
const parsed = parser.parse(xml);
|
|
18
18
|
if (parsed?.sitemapindex === void 0)
|
|
19
19
|
throw new Error("XML does not contain a valid sitemapindex element");
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuxtjs/sitemap",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "8.0.
|
|
4
|
+
"version": "8.0.14",
|
|
5
5
|
"description": "Powerfully flexible XML Sitemaps that integrate seamlessly, for Nuxt.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Harlan Wilton",
|
|
@@ -58,9 +58,9 @@
|
|
|
58
58
|
"@nuxt/kit": "^4.4.2",
|
|
59
59
|
"consola": "^3.4.2",
|
|
60
60
|
"defu": "^6.1.7",
|
|
61
|
-
"fast-xml-parser": "^5.
|
|
62
|
-
"nuxt-site-config": "^4.0.
|
|
63
|
-
"nuxtseo-shared": "^5.1.
|
|
61
|
+
"fast-xml-parser": "^5.7.2",
|
|
62
|
+
"nuxt-site-config": "^4.0.8",
|
|
63
|
+
"nuxtseo-shared": "^5.1.3",
|
|
64
64
|
"ofetch": "^1.5.1",
|
|
65
65
|
"pathe": "^2.0.3",
|
|
66
66
|
"pkg-types": "^2.3.0",
|
|
@@ -69,33 +69,33 @@
|
|
|
69
69
|
"ultrahtml": "^1.6.0"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@antfu/eslint-config": "^8.
|
|
72
|
+
"@antfu/eslint-config": "^8.2.0",
|
|
73
73
|
"@arethetypeswrong/cli": "^0.18.2",
|
|
74
|
-
"@nuxt/content": "^3.
|
|
74
|
+
"@nuxt/content": "^3.13.0",
|
|
75
75
|
"@nuxt/devtools-kit": "4.0.0-alpha.3",
|
|
76
76
|
"@nuxt/module-builder": "^1.0.2",
|
|
77
|
-
"@nuxt/test-utils": "^4.0.
|
|
78
|
-
"@nuxt/ui": "^4.
|
|
79
|
-
"@nuxtjs/i18n": "^10.
|
|
80
|
-
"@nuxtjs/robots": "^6.0.
|
|
81
|
-
"@vue/test-utils": "^2.4.
|
|
82
|
-
"better-sqlite3": "^12.
|
|
77
|
+
"@nuxt/test-utils": "^4.0.2",
|
|
78
|
+
"@nuxt/ui": "^4.7.0",
|
|
79
|
+
"@nuxtjs/i18n": "^10.3.0",
|
|
80
|
+
"@nuxtjs/robots": "^6.0.8",
|
|
81
|
+
"@vue/test-utils": "^2.4.8",
|
|
82
|
+
"better-sqlite3": "^12.9.0",
|
|
83
83
|
"bumpp": "^11.0.1",
|
|
84
|
-
"eslint": "^10.2.
|
|
85
|
-
"eslint-plugin-harlanzw": "^0.12.
|
|
84
|
+
"eslint": "^10.2.1",
|
|
85
|
+
"eslint-plugin-harlanzw": "^0.12.1",
|
|
86
86
|
"execa": "^9.6.1",
|
|
87
|
-
"happy-dom": "^20.
|
|
87
|
+
"happy-dom": "^20.9.0",
|
|
88
88
|
"nuxt": "^4.4.2",
|
|
89
89
|
"nuxt-i18n-micro": "^3.17.0",
|
|
90
|
-
"nuxtseo-layer-devtools": "^5.1.
|
|
90
|
+
"nuxtseo-layer-devtools": "^5.1.3",
|
|
91
91
|
"semver": "^7.7.4",
|
|
92
92
|
"sirv": "^3.0.2",
|
|
93
|
-
"std-env": "^4.
|
|
94
|
-
"typescript": "^6.0.
|
|
95
|
-
"vitest": "^4.1.
|
|
96
|
-
"vue-tsc": "^3.2.
|
|
93
|
+
"std-env": "^4.1.0",
|
|
94
|
+
"typescript": "^6.0.3",
|
|
95
|
+
"vitest": "^4.1.5",
|
|
96
|
+
"vue-tsc": "^3.2.7",
|
|
97
97
|
"zod": "^4.3.6",
|
|
98
|
-
"@nuxtjs/sitemap": "8.0.
|
|
98
|
+
"@nuxtjs/sitemap": "8.0.14"
|
|
99
99
|
},
|
|
100
100
|
"scripts": {
|
|
101
101
|
"lint": "eslint .",
|