@nuxtjs/sitemap 5.3.4 → 6.0.0-beta.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/dist/client/200.html +7 -8
- package/dist/client/404.html +7 -8
- package/dist/client/_nuxt/CY7GV1Ne.js +31 -0
- package/dist/client/_nuxt/{C-T9TBOb.js → D-VsDbcJ.js} +1 -1
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/8204446e-0708-4f8e-bc4a-e52330d54aba.json +1 -0
- package/dist/client/_nuxt/dsisXUEW.js +1 -0
- package/dist/client/_nuxt/error-404.D56ZPmHb.css +1 -0
- package/dist/client/_nuxt/error-500.BYEp4uQX.css +1 -0
- package/dist/client/index.html +7 -8
- package/dist/module.json +1 -1
- package/dist/module.mjs +58 -19
- package/dist/runtime/nitro/composables/getPathRobotConfigPolyfill.d.ts +2 -1
- package/dist/runtime/nitro/composables/getPathRobotConfigPolyfill.js +1 -1
- package/dist/runtime/nitro/routes/__sitemap__/debug.d.ts +1 -0
- package/dist/runtime/nitro/{middleware/[sitemap]-sitemap.xml.d.ts → routes/sitemap/[sitemap].xml.d.ts} +1 -1
- package/dist/runtime/nitro/routes/sitemap/[sitemap].xml.js +20 -0
- package/dist/runtime/nitro/routes/sitemap.xsl.js +2 -1
- package/dist/runtime/nitro/routes/sitemap_index.xml.js +19 -16
- package/dist/runtime/nitro/sitemap/builder/sitemap-index.d.ts +3 -2
- package/dist/runtime/nitro/sitemap/builder/sitemap-index.js +13 -27
- package/dist/runtime/nitro/sitemap/builder/sitemap.d.ts +9 -2
- package/dist/runtime/nitro/sitemap/builder/sitemap.js +153 -53
- package/dist/runtime/nitro/sitemap/nitro.d.ts +1 -1
- package/dist/runtime/nitro/sitemap/nitro.js +46 -11
- package/dist/runtime/nitro/sitemap/urlset/normalise.d.ts +3 -2
- package/dist/runtime/nitro/sitemap/urlset/normalise.js +64 -53
- package/dist/runtime/types.d.ts +26 -2
- package/dist/runtime/utils-pure.d.ts +2 -1
- package/dist/runtime/utils-pure.js +6 -0
- package/package.json +9 -15
- package/dist/client/_nuxt/CmvLKs5L.js +0 -6
- package/dist/client/_nuxt/Cngs0LGh.js +0 -31
- package/dist/client/_nuxt/DQDIR1cG.js +0 -1
- package/dist/client/_nuxt/builds/meta/fdd10f9a-5193-4fe3-8485-e82e62d50138.json +0 -1
- package/dist/client/_nuxt/error-404.CmJrMD59.css +0 -1
- package/dist/client/_nuxt/error-500.DdKhC0Mw.css +0 -1
- package/dist/runtime/nitro/middleware/[sitemap]-sitemap.xml.js +0 -23
- package/dist/runtime/nitro/sitemap/urlset/filter.d.ts +0 -5
- package/dist/runtime/nitro/sitemap/urlset/filter.js +0 -24
- package/dist/runtime/nitro/sitemap/urlset/i18n.d.ts +0 -6
- package/dist/runtime/nitro/sitemap/urlset/i18n.js +0 -142
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as a,u as o,o as s,c as i,a as e,t as r,p as u,f as
|
|
1
|
+
import{_ as a,u as o,o as s,c as i,a as e,t as r,p as u,f as c}from"./CY7GV1Ne.js";const l=t=>(u("data-v-cc10251c"),t=t(),c(),t),d={class:"font-sans antialiased bg-white dark:bg-black text-black dark:text-white grid min-h-screen place-content-center overflow-hidden"},p=l(()=>e("div",{class:"fixed -bottom-1/2 left-0 right-0 h-1/2 spotlight"},null,-1)),h={class:"max-w-520px text-center"},g=["textContent"],b=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:500},statusMessage:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const n=t;return o({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[],style:[{children:'*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--un-default-border-color, #e5e7eb)}:before,:after{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(m,x)=>(s(),i("div",d,[p,e("div",h,[e("h1",{class:"text-8xl sm:text-10xl font-medium mb-8",textContent:r(t.statusCode)},null,8,g),e("p",{class:"text-xl px-8 sm:px-0 sm:text-4xl font-light mb-16 leading-tight",textContent:r(t.description)},null,8,b)])]))}},k=a(f,[["__scopeId","data-v-cc10251c"]]);export{k as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"8204446e-0708-4f8e-bc4a-e52330d54aba","timestamp":1721966466492}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"8204446e-0708-4f8e-bc4a-e52330d54aba","timestamp":1721966466492,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as r,u as s,o as i,c as u,a as e,t as o,b as c,w as d,d as l,e as p,p as h,f}from"./CY7GV1Ne.js";const g=t=>(h("data-v-a73478d9"),t=t(),f(),t),b={class:"font-sans antialiased bg-white dark:bg-black text-black dark:text-white grid min-h-screen place-content-center overflow-hidden"},x=g(()=>e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),m={class:"max-w-520px text-center z-20"},y=["textContent"],_=["textContent"],k={class:"w-full flex items-center justify-center"},w={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:404},statusMessage:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return s({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[],style:[{children:'*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--un-default-border-color, #e5e7eb)}:before,:after{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(z,S)=>{const a=p;return i(),u("div",b,[x,e("div",m,[e("h1",{class:"text-8xl sm:text-10xl font-medium mb-8",textContent:o(t.statusCode)},null,8,y),e("p",{class:"text-xl px-8 sm:px-0 sm:text-4xl font-light mb-16 leading-tight",textContent:o(t.description)},null,8,_),e("div",k,[c(a,{to:"/",class:"gradient-border text-md sm:text-xl py-2 px-4 sm:py-3 sm:px-6 cursor-pointer"},{default:d(()=>[l(o(t.backHome),1)]),_:1})])])])}}},C=r(w,[["__scopeId","data-v-a73478d9"]]);export{C as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.spotlight[data-v-a73478d9]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-a73478d9]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-a73478d9]{background-color:#ffffff4d}.gradient-border[data-v-a73478d9]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-a73478d9]{background-color:#1414144d}.gradient-border[data-v-a73478d9]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-a73478d9]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-a73478d9]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-a73478d9]{position:fixed}.left-0[data-v-a73478d9]{left:0}.right-0[data-v-a73478d9]{right:0}.z-10[data-v-a73478d9]{z-index:10}.z-20[data-v-a73478d9]{z-index:20}.grid[data-v-a73478d9]{display:grid}.mb-16[data-v-a73478d9]{margin-bottom:4rem}.mb-8[data-v-a73478d9]{margin-bottom:2rem}.max-w-520px[data-v-a73478d9]{max-width:520px}.min-h-screen[data-v-a73478d9]{min-height:100vh}.w-full[data-v-a73478d9]{width:100%}.flex[data-v-a73478d9]{display:flex}.cursor-pointer[data-v-a73478d9]{cursor:pointer}.place-content-center[data-v-a73478d9]{place-content:center}.items-center[data-v-a73478d9]{align-items:center}.justify-center[data-v-a73478d9]{justify-content:center}.overflow-hidden[data-v-a73478d9]{overflow:hidden}.bg-white[data-v-a73478d9]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-a73478d9]{padding-left:1rem;padding-right:1rem}.px-8[data-v-a73478d9]{padding-left:2rem;padding-right:2rem}.py-2[data-v-a73478d9]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-a73478d9]{text-align:center}.text-8xl[data-v-a73478d9]{font-size:6rem;line-height:1}.text-xl[data-v-a73478d9]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-a73478d9]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-a73478d9]{font-weight:300}.font-medium[data-v-a73478d9]{font-weight:500}.leading-tight[data-v-a73478d9]{line-height:1.25}.font-sans[data-v-a73478d9]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-a73478d9]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-a73478d9]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-a73478d9]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-a73478d9]{padding-left:0;padding-right:0}.sm\:px-6[data-v-a73478d9]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-a73478d9]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-a73478d9]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-a73478d9]{font-size:1.25rem;line-height:1.75rem}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.spotlight[data-v-cc10251c]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-cc10251c]{position:fixed}.-bottom-1\/2[data-v-cc10251c]{bottom:-50%}.left-0[data-v-cc10251c]{left:0}.right-0[data-v-cc10251c]{right:0}.grid[data-v-cc10251c]{display:grid}.mb-16[data-v-cc10251c]{margin-bottom:4rem}.mb-8[data-v-cc10251c]{margin-bottom:2rem}.h-1\/2[data-v-cc10251c]{height:50%}.max-w-520px[data-v-cc10251c]{max-width:520px}.min-h-screen[data-v-cc10251c]{min-height:100vh}.place-content-center[data-v-cc10251c]{place-content:center}.overflow-hidden[data-v-cc10251c]{overflow:hidden}.bg-white[data-v-cc10251c]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-cc10251c]{padding-left:2rem;padding-right:2rem}.text-center[data-v-cc10251c]{text-align:center}.text-8xl[data-v-cc10251c]{font-size:6rem;line-height:1}.text-xl[data-v-cc10251c]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-cc10251c]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-cc10251c]{font-weight:300}.font-medium[data-v-cc10251c]{font-weight:500}.leading-tight[data-v-cc10251c]{line-height:1.25}.font-sans[data-v-cc10251c]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-cc10251c]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-cc10251c]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-cc10251c]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-cc10251c]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-cc10251c]{font-size:2.25rem;line-height:2.5rem}}
|
package/dist/client/index.html
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
<!DOCTYPE html><html data-capo=""><head><meta charset="utf-8">
|
|
2
2
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
3
3
|
<link rel="stylesheet" href="/__sitemap__/devtools/_nuxt/entry.CfxF9LiM.css">
|
|
4
|
-
<link rel="modulepreload" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/
|
|
5
|
-
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/CmvLKs5L.js">
|
|
4
|
+
<link rel="modulepreload" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/CY7GV1Ne.js">
|
|
6
5
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/DXFkqnOI.js">
|
|
7
6
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/BigF1UXR.js">
|
|
8
7
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/CowR2XfX.js">
|
|
@@ -258,9 +257,9 @@
|
|
|
258
257
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/B3g-KkBK.js">
|
|
259
258
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/Bxkoe-BC.js">
|
|
260
259
|
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/Br6ll-O0.js">
|
|
261
|
-
<link rel="prefetch" as="style" href="/__sitemap__/devtools/_nuxt/error-404.
|
|
262
|
-
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/
|
|
263
|
-
<link rel="prefetch" as="style" href="/__sitemap__/devtools/_nuxt/error-500.
|
|
264
|
-
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/
|
|
265
|
-
<script type="module" src="/__sitemap__/devtools/_nuxt/
|
|
266
|
-
<script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__sitemap__/devtools",buildId:"
|
|
260
|
+
<link rel="prefetch" as="style" href="/__sitemap__/devtools/_nuxt/error-404.D56ZPmHb.css">
|
|
261
|
+
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/dsisXUEW.js">
|
|
262
|
+
<link rel="prefetch" as="style" href="/__sitemap__/devtools/_nuxt/error-500.BYEp4uQX.css">
|
|
263
|
+
<link rel="prefetch" as="script" crossorigin href="/__sitemap__/devtools/_nuxt/D-VsDbcJ.js">
|
|
264
|
+
<script type="module" src="/__sitemap__/devtools/_nuxt/CY7GV1Ne.js" crossorigin></script></head><body><div id="__nuxt"></div><div id="teleports"></div><script type="application/json" id="__NUXT_DATA__" data-ssr="false">[{"serverRendered":1},false]</script>
|
|
265
|
+
<script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__sitemap__/devtools",buildId:"8204446e-0708-4f8e-bc4a-e52330d54aba",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script></body></html>
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useNuxt, loadNuxtModuleInstance, createResolver, addTemplate, extendPages, defineNuxtModule, useLogger, hasNuxtModule, getNuxtModuleVersion, hasNuxtModuleCompatibility, addServerImports, addServerPlugin, addServerHandler, findPath, addPrerenderRoutes } from '@nuxt/kit';
|
|
2
|
-
import { withHttps, withBase, parseURL, joinURL, withoutLeadingSlash } from 'ufo';
|
|
2
|
+
import { withHttps, withBase, parseURL, joinURL, withoutLeadingSlash, withoutTrailingSlash, withLeadingSlash } from 'ufo';
|
|
3
3
|
import { assertSiteConfig, installNuxtSiteConfig } from 'nuxt-site-config-kit';
|
|
4
4
|
import { defu } from 'defu';
|
|
5
5
|
import { readPackageJSON } from 'pkg-types';
|
|
@@ -237,7 +237,7 @@ function resolveNitroPreset(nitroConfig) {
|
|
|
237
237
|
if (nitroConfig && nitroConfig?.preset)
|
|
238
238
|
preset = nitroConfig.preset;
|
|
239
239
|
if (!preset)
|
|
240
|
-
preset = env.NITRO_PRESET || detectTarget() || "node-server";
|
|
240
|
+
preset = env.NITRO_PRESET || env.SERVER_PRESET || detectTarget() || "node-server";
|
|
241
241
|
return preset.replace("_", "-");
|
|
242
242
|
}
|
|
243
243
|
|
|
@@ -354,9 +354,14 @@ function isNuxtGenerate(nuxt = useNuxt()) {
|
|
|
354
354
|
"github-pages"
|
|
355
355
|
].includes(resolveNitroPreset());
|
|
356
356
|
}
|
|
357
|
-
function setupPrerenderHandler(
|
|
357
|
+
function setupPrerenderHandler(_options, nuxt = useNuxt()) {
|
|
358
|
+
const { runtimeConfig: options, logger } = _options;
|
|
358
359
|
const prerenderedRoutes = nuxt.options.nitro.prerender?.routes || [];
|
|
359
|
-
|
|
360
|
+
let prerenderSitemap = isNuxtGenerate() || includesSitemapRoot(options.sitemapName, prerenderedRoutes);
|
|
361
|
+
if (resolveNitroPreset() === "vercel-edge") {
|
|
362
|
+
logger.warn("Runtime sitemaps are not supported on Vercel Edge, falling back to prerendering sitemaps.");
|
|
363
|
+
prerenderSitemap = true;
|
|
364
|
+
}
|
|
360
365
|
if (nuxt.options.nitro.prerender?.routes)
|
|
361
366
|
nuxt.options.nitro.prerender.routes = nuxt.options.nitro.prerender.routes.filter((r) => r && !includesSitemapRoot(options.sitemapName, [r]));
|
|
362
367
|
nuxt.hooks.hook("nitro:init", async (nitro) => {
|
|
@@ -548,6 +553,7 @@ const module = defineNuxtModule({
|
|
|
548
553
|
dynamicUrlsApiEndpoint: "/api/_sitemap-urls",
|
|
549
554
|
urls: [],
|
|
550
555
|
sortEntries: true,
|
|
556
|
+
sitemapsPathPrefix: "/__sitemap__/",
|
|
551
557
|
xsl: "/__sitemap__/style.xsl",
|
|
552
558
|
xslTips: true,
|
|
553
559
|
strictNuxtContentPaths: false,
|
|
@@ -624,13 +630,14 @@ const module = defineNuxtModule({
|
|
|
624
630
|
let resolvedAutoI18n = typeof config.autoI18n === "boolean" ? false : config.autoI18n || false;
|
|
625
631
|
const hasDisabledAutoI18n = typeof config.autoI18n === "boolean" && !config.autoI18n;
|
|
626
632
|
let normalisedLocales = [];
|
|
633
|
+
let usingI18nPages = false;
|
|
627
634
|
if (hasNuxtModule("@nuxtjs/i18n")) {
|
|
628
635
|
const i18nVersion = await getNuxtModuleVersion("@nuxtjs/i18n");
|
|
629
636
|
if (!await hasNuxtModuleCompatibility("@nuxtjs/i18n", ">=8"))
|
|
630
637
|
logger.warn(`You are using @nuxtjs/i18n v${i18nVersion}. For the best compatibility, please upgrade to @nuxtjs/i18n v8.0.0 or higher.`);
|
|
631
638
|
nuxtI18nConfig = await getNuxtModuleOptions("@nuxtjs/i18n") || {};
|
|
632
639
|
normalisedLocales = mergeOnKey((nuxtI18nConfig.locales || []).map((locale) => typeof locale === "string" ? { code: locale } : locale), "code");
|
|
633
|
-
|
|
640
|
+
usingI18nPages = !!Object.keys(nuxtI18nConfig.pages || {}).length;
|
|
634
641
|
if (usingI18nPages && !hasDisabledAutoI18n) {
|
|
635
642
|
const i18nPagesSources = {
|
|
636
643
|
context: {
|
|
@@ -773,8 +780,10 @@ declare module 'vue-router' {
|
|
|
773
780
|
nuxt.options.nitro.routeRules["/sitemap.xml"] = { redirect: "/sitemap_index.xml" };
|
|
774
781
|
nuxt.options.nitro.routeRules["/sitemap_index.xml"] = routeRules;
|
|
775
782
|
if (typeof config.sitemaps === "object") {
|
|
776
|
-
for (const k in config.sitemaps)
|
|
777
|
-
nuxt.options.nitro.routeRules[`/${k}
|
|
783
|
+
for (const k in config.sitemaps) {
|
|
784
|
+
nuxt.options.nitro.routeRules[joinURL(config.sitemapsPathPrefix, `/${k}.xml`)] = routeRules;
|
|
785
|
+
nuxt.options.nitro.routeRules[`/${k}-sitemap.xml`] = { redirect: joinURL(config.sitemapsPathPrefix, `${k}.xml`) };
|
|
786
|
+
}
|
|
778
787
|
} else {
|
|
779
788
|
nuxt.options.nitro.routeRules[`/${config.sitemapName}`] = routeRules;
|
|
780
789
|
}
|
|
@@ -831,7 +840,15 @@ declare module 'vue-router' {
|
|
|
831
840
|
if (usingMultiSitemaps) {
|
|
832
841
|
addServerHandler({
|
|
833
842
|
route: "/sitemap_index.xml",
|
|
834
|
-
handler: resolve("./runtime/nitro/routes/sitemap_index.xml")
|
|
843
|
+
handler: resolve("./runtime/nitro/routes/sitemap_index.xml"),
|
|
844
|
+
lazy: true,
|
|
845
|
+
middleware: false
|
|
846
|
+
});
|
|
847
|
+
addServerHandler({
|
|
848
|
+
route: joinURL(config.sitemapsPathPrefix, `/**:sitemap`),
|
|
849
|
+
handler: resolve("./runtime/nitro/routes/sitemap/[sitemap].xml"),
|
|
850
|
+
lazy: true,
|
|
851
|
+
middleware: false
|
|
835
852
|
});
|
|
836
853
|
sitemaps.index = {
|
|
837
854
|
sitemapName: "index",
|
|
@@ -843,15 +860,11 @@ declare module 'vue-router' {
|
|
|
843
860
|
for (const sitemapName in config.sitemaps) {
|
|
844
861
|
if (sitemapName === "index")
|
|
845
862
|
continue;
|
|
846
|
-
addServerHandler({
|
|
847
|
-
route: `/${sitemapName}-sitemap.xml`,
|
|
848
|
-
handler: resolve("./runtime/nitro/middleware/[sitemap]-sitemap.xml")
|
|
849
|
-
});
|
|
850
863
|
const definition = config.sitemaps[sitemapName];
|
|
851
864
|
sitemaps[sitemapName] = defu(
|
|
852
865
|
{
|
|
853
866
|
sitemapName,
|
|
854
|
-
_route: withBase(
|
|
867
|
+
_route: withBase(`sitemap/${sitemapName}.xml`, nuxt.options.app.baseURL || "/"),
|
|
855
868
|
_hasSourceChunk: typeof definition.urls !== "undefined" || definition.sources?.length || !!definition.dynamicUrlsApiEndpoint
|
|
856
869
|
},
|
|
857
870
|
{ ...definition, urls: void 0, sources: void 0 },
|
|
@@ -859,9 +872,6 @@ declare module 'vue-router' {
|
|
|
859
872
|
);
|
|
860
873
|
}
|
|
861
874
|
} else {
|
|
862
|
-
addServerHandler({
|
|
863
|
-
handler: resolve("./runtime/nitro/middleware/[sitemap]-sitemap.xml")
|
|
864
|
-
});
|
|
865
875
|
sitemaps.chunks = {
|
|
866
876
|
sitemapName: "chunks",
|
|
867
877
|
defaults: config.defaults,
|
|
@@ -881,6 +891,31 @@ declare module 'vue-router' {
|
|
|
881
891
|
includeAppSources: true
|
|
882
892
|
};
|
|
883
893
|
}
|
|
894
|
+
if (resolvedAutoI18n && usingI18nPages && !hasDisabledAutoI18n) {
|
|
895
|
+
const pages = nuxtI18nConfig?.pages || {};
|
|
896
|
+
for (const sitemapName in sitemaps) {
|
|
897
|
+
let mapToI18nPages = function(path) {
|
|
898
|
+
if (typeof path !== "string")
|
|
899
|
+
return [path];
|
|
900
|
+
const withoutSlashes = withoutTrailingSlash(withoutLeadingSlash(path)).replace("/index", "");
|
|
901
|
+
if (withoutSlashes in pages) {
|
|
902
|
+
const pageLocales = pages[withoutSlashes];
|
|
903
|
+
return Object.keys(pageLocales).map((localeCode) => withLeadingSlash(generatePathForI18nPages({ localeCode, pageLocales: pageLocales[localeCode], nuxtI18nConfig, normalisedLocales })));
|
|
904
|
+
}
|
|
905
|
+
let match = [path];
|
|
906
|
+
Object.values(pages).forEach((pageLocales) => {
|
|
907
|
+
if (nuxtI18nConfig.defaultLocale in pageLocales && pageLocales[nuxtI18nConfig.defaultLocale] === path)
|
|
908
|
+
match = Object.keys(pageLocales).map((localeCode) => withLeadingSlash(generatePathForI18nPages({ localeCode, pageLocales: pageLocales[localeCode], nuxtI18nConfig, normalisedLocales })));
|
|
909
|
+
});
|
|
910
|
+
return match;
|
|
911
|
+
};
|
|
912
|
+
if (["index", "chunks"].includes(sitemapName))
|
|
913
|
+
continue;
|
|
914
|
+
const sitemap = sitemaps[sitemapName];
|
|
915
|
+
sitemap.include = (sitemap.include || []).flatMap((path) => mapToI18nPages(path));
|
|
916
|
+
sitemap.exclude = (sitemap.exclude || []).flatMap((path) => mapToI18nPages(path));
|
|
917
|
+
}
|
|
918
|
+
}
|
|
884
919
|
if (resolvedAutoI18n && resolvedAutoI18n.locales && resolvedAutoI18n.strategy !== "no_prefix") {
|
|
885
920
|
const i18n = resolvedAutoI18n;
|
|
886
921
|
for (const sitemapName in sitemaps) {
|
|
@@ -909,6 +944,7 @@ declare module 'vue-router' {
|
|
|
909
944
|
// needed for nuxt/content integration and prerendering
|
|
910
945
|
discoverImages: config.discoverImages,
|
|
911
946
|
discoverVideos: config.discoverVideos,
|
|
947
|
+
sitemapsPathPrefix: config.sitemapsPathPrefix,
|
|
912
948
|
/* @nuxt/content */
|
|
913
949
|
isNuxtContentDocumentDriven,
|
|
914
950
|
/* xsl styling */
|
|
@@ -951,8 +987,11 @@ declare module 'vue-router' {
|
|
|
951
987
|
const prerenderUrlsFinal = [
|
|
952
988
|
...prerenderUrls,
|
|
953
989
|
...((await nitroPromise)._prerenderedRoutes || []).filter((r) => {
|
|
954
|
-
const
|
|
955
|
-
|
|
990
|
+
const lastSegment = r.route.split("/").pop();
|
|
991
|
+
const isExplicitFile = !!lastSegment?.match(/\.[0-9a-z]+$/i)?.[0];
|
|
992
|
+
if (r.error || ["/200.html", "/404.html", "/index.html"].includes(r.route))
|
|
993
|
+
return false;
|
|
994
|
+
return r.contentType?.includes("text/html") || !isExplicitFile;
|
|
956
995
|
}).map((r) => r._sitemap)
|
|
957
996
|
];
|
|
958
997
|
const pageSource = convertNuxtPagesToSitemapEntries(await pagesPromise, {
|
|
@@ -1084,7 +1123,7 @@ declare module 'vue-router' {
|
|
|
1084
1123
|
route: `/${config.sitemapName}`,
|
|
1085
1124
|
handler: resolve("./runtime/nitro/routes/sitemap.xml")
|
|
1086
1125
|
});
|
|
1087
|
-
setupPrerenderHandler(runtimeConfig);
|
|
1126
|
+
setupPrerenderHandler({ runtimeConfig, logger });
|
|
1088
1127
|
}
|
|
1089
1128
|
});
|
|
1090
1129
|
|
|
@@ -15,6 +15,7 @@ declare const _default: import("h3").EventHandler<import("h3").EventHandlerReque
|
|
|
15
15
|
autoI18n?: import("../../../types").AutoI18nConfig | undefined;
|
|
16
16
|
isMultiSitemap: boolean;
|
|
17
17
|
isI18nMapped: boolean;
|
|
18
|
+
sitemapsPathPrefix: string;
|
|
18
19
|
cacheMaxAgeSeconds: number | false;
|
|
19
20
|
sitemapName: string;
|
|
20
21
|
excludeAppSources: true | import("../../../types").AppSourceContext[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<string | import("h3").H3Error<unknown
|
|
1
|
+
declare const _default: import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<string | import("h3").H3Error<unknown>>>;
|
|
2
2
|
export default _default;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createError, defineEventHandler, getRouterParam } from "h3";
|
|
2
|
+
import { withoutLeadingSlash, withoutTrailingSlash } from "ufo";
|
|
3
|
+
import { useSimpleSitemapRuntimeConfig } from "../../utils.js";
|
|
4
|
+
import { createSitemap } from "../../sitemap/nitro.js";
|
|
5
|
+
export default defineEventHandler(async (e) => {
|
|
6
|
+
const runtimeConfig = useSimpleSitemapRuntimeConfig(e);
|
|
7
|
+
const { sitemaps } = runtimeConfig;
|
|
8
|
+
const sitemapName = withoutLeadingSlash(withoutTrailingSlash((getRouterParam(e, "sitemap") || e.path)?.replace(".xml", "").replace(runtimeConfig.sitemapsPathPrefix, "")));
|
|
9
|
+
const isChunking = typeof sitemaps.chunks !== "undefined" && !Number.isNaN(Number(sitemapName));
|
|
10
|
+
if (!sitemapName || !(sitemapName in sitemaps) && !isChunking) {
|
|
11
|
+
return createError({
|
|
12
|
+
statusCode: 404,
|
|
13
|
+
message: `Sitemap "${sitemapName}" not found.`
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return createSitemap(e, isChunking ? {
|
|
17
|
+
...sitemaps.chunks,
|
|
18
|
+
sitemapName
|
|
19
|
+
} : sitemaps[sitemapName], runtimeConfig);
|
|
20
|
+
});
|
|
@@ -14,7 +14,8 @@ export default defineEventHandler(async (e) => {
|
|
|
14
14
|
const creditName = `<a href="https://github.com/nuxt-modules/sitemap" style="color: black; display: flex; align-items: center; font-weight: 500;" target="_blank" rel="noopener">${svgIcon} Nuxt Sitemap v${version}</a>`;
|
|
15
15
|
const { name: siteName, url: siteUrl } = useSiteConfig(e);
|
|
16
16
|
const referrer = getHeader(e, "Referer") || "/";
|
|
17
|
-
const
|
|
17
|
+
const referrerPath = parseURL(referrer).pathname;
|
|
18
|
+
const isNotIndexButHasIndex = referrerPath !== "/sitemap.xml" && referrerPath !== "/sitemap_index.xml" && referrerPath.endsWith(".xml");
|
|
18
19
|
const sitemapName = parseURL(referrer).pathname.split("/").pop()?.split("-sitemap")[0] || fallbackSitemapName;
|
|
19
20
|
const title = `${siteName}${sitemapName !== "sitemap.xml" ? ` - ${sitemapName === "sitemap_index.xml" ? "index" : sitemapName}` : ""}`.replace(/&/g, "&");
|
|
20
21
|
const canonicalQuery = getQuery(referrer).canonical;
|
|
@@ -1,27 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { appendHeader, defineEventHandler, setHeader } from "h3";
|
|
2
|
+
import { joinURL } from "ufo";
|
|
3
3
|
import { useSimpleSitemapRuntimeConfig } from "../utils.js";
|
|
4
|
-
import { buildSitemapIndex } from "../sitemap/builder/sitemap-index.js";
|
|
5
|
-
import {
|
|
4
|
+
import { buildSitemapIndex, urlsToIndexXml } from "../sitemap/builder/sitemap-index.js";
|
|
5
|
+
import { useNitroUrlResolvers } from "../sitemap/nitro.js";
|
|
6
|
+
import { useNitroApp } from "#imports";
|
|
6
7
|
export default defineEventHandler(async (e) => {
|
|
7
|
-
const canonicalQuery = getQuery(e).canonical;
|
|
8
|
-
const isShowingCanonical = typeof canonicalQuery !== "undefined" && canonicalQuery !== "false";
|
|
9
8
|
const runtimeConfig = useSimpleSitemapRuntimeConfig();
|
|
10
|
-
const siteConfig = useSiteConfig(e);
|
|
11
|
-
let sitemap = await buildSitemapIndex({
|
|
12
|
-
event: e,
|
|
13
|
-
canonicalUrlResolver: createSitePathResolver(e, { canonical: isShowingCanonical || !import.meta.dev, absolute: true, withBase: true }),
|
|
14
|
-
relativeBaseUrlResolver: createSitePathResolver(e, { absolute: false, withBase: true }),
|
|
15
|
-
fixSlashes: (path) => fixSlashes(siteConfig.trailingSlash, path)
|
|
16
|
-
}, runtimeConfig);
|
|
17
9
|
const nitro = useNitroApp();
|
|
18
|
-
const
|
|
10
|
+
const resolvers = useNitroUrlResolvers(e);
|
|
11
|
+
const sitemaps = await buildSitemapIndex(resolvers, runtimeConfig);
|
|
12
|
+
if (import.meta.prerender) {
|
|
13
|
+
appendHeader(
|
|
14
|
+
e,
|
|
15
|
+
"x-nitro-prerender",
|
|
16
|
+
sitemaps.filter((entry) => !!entry._sitemapName).map((entry) => encodeURIComponent(joinURL(runtimeConfig.sitemapsPathPrefix, `/${entry._sitemapName}.xml`))).join(", ")
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
const indexResolvedCtx = { sitemaps };
|
|
20
|
+
await nitro.hooks.callHook("sitemap:index-resolved", indexResolvedCtx);
|
|
21
|
+
const output = urlsToIndexXml(indexResolvedCtx.sitemaps, resolvers, runtimeConfig);
|
|
22
|
+
const ctx = { sitemap: output, sitemapName: "sitemap" };
|
|
19
23
|
await nitro.hooks.callHook("sitemap:output", ctx);
|
|
20
|
-
sitemap = ctx.sitemap;
|
|
21
24
|
setHeader(e, "Content-Type", "text/xml; charset=UTF-8");
|
|
22
25
|
if (runtimeConfig.cacheMaxAgeSeconds)
|
|
23
26
|
setHeader(e, "Cache-Control", `public, max-age=${runtimeConfig.cacheMaxAgeSeconds}, must-revalidate`);
|
|
24
27
|
else
|
|
25
28
|
setHeader(e, "Cache-Control", `no-cache, no-store`);
|
|
26
|
-
return sitemap;
|
|
29
|
+
return ctx.sitemap;
|
|
27
30
|
});
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import type { ModuleRuntimeConfig, NitroUrlResolvers } from '../../../types.js';
|
|
2
|
-
export declare function buildSitemapIndex(resolvers: NitroUrlResolvers, runtimeConfig: ModuleRuntimeConfig): Promise<
|
|
1
|
+
import type { ModuleRuntimeConfig, NitroUrlResolvers, SitemapIndexEntry } from '../../../types.js';
|
|
2
|
+
export declare function buildSitemapIndex(resolvers: NitroUrlResolvers, runtimeConfig: ModuleRuntimeConfig): Promise<SitemapIndexEntry[]>;
|
|
3
|
+
export declare function urlsToIndexXml(sitemaps: SitemapIndexEntry[], resolvers: NitroUrlResolvers, { version, xsl, credits }: Pick<ModuleRuntimeConfig, 'version' | 'xsl' | 'credits'>): string;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { defu } from "defu";
|
|
2
|
-
import {
|
|
3
|
-
import { normaliseDate
|
|
2
|
+
import { joinURL } from "ufo";
|
|
3
|
+
import { normaliseDate } from "../urlset/normalise.js";
|
|
4
4
|
import { globalSitemapSources, resolveSitemapSources } from "../urlset/sources.js";
|
|
5
|
-
import { applyI18nEnhancements } from "../urlset/i18n.js";
|
|
6
|
-
import { filterSitemapUrls } from "../urlset/filter.js";
|
|
7
5
|
import { sortSitemapUrls } from "../urlset/sort.js";
|
|
8
6
|
import { escapeValueForXml, wrapSitemapXml } from "./xml.js";
|
|
9
|
-
import {
|
|
7
|
+
import { resolveSitemapEntries } from "./sitemap.js";
|
|
10
8
|
export async function buildSitemapIndex(resolvers, runtimeConfig) {
|
|
11
9
|
const {
|
|
12
10
|
sitemaps,
|
|
@@ -17,10 +15,7 @@ export async function buildSitemapIndex(resolvers, runtimeConfig) {
|
|
|
17
15
|
autoI18n,
|
|
18
16
|
isI18nMapped,
|
|
19
17
|
sortEntries,
|
|
20
|
-
|
|
21
|
-
version,
|
|
22
|
-
xsl,
|
|
23
|
-
credits
|
|
18
|
+
sitemapsPathPrefix
|
|
24
19
|
} = runtimeConfig;
|
|
25
20
|
if (!sitemaps)
|
|
26
21
|
throw new Error("Attempting to build a sitemap index without required `sitemaps` configuration.");
|
|
@@ -32,12 +27,9 @@ export async function buildSitemapIndex(resolvers, runtimeConfig) {
|
|
|
32
27
|
if (isChunking) {
|
|
33
28
|
const sitemap = sitemaps.chunks;
|
|
34
29
|
const sources = await resolveSitemapSources(await globalSitemapSources());
|
|
35
|
-
const normalisedUrls =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
enhancedUrls = applyI18nEnhancements(enhancedUrls, { isI18nMapped, autoI18n, sitemapName: sitemap.sitemapName });
|
|
39
|
-
const filteredUrls = filterSitemapUrls(enhancedUrls, { ...sitemap, autoI18n, isMultiSitemap: true });
|
|
40
|
-
const sortedUrls = maybeSort(filteredUrls);
|
|
30
|
+
const normalisedUrls = resolveSitemapEntries(sitemap, sources, { autoI18n, isI18nMapped });
|
|
31
|
+
const enhancedUrls = normalisedUrls.map((e) => defu(e, sitemap.defaults));
|
|
32
|
+
const sortedUrls = maybeSort(enhancedUrls);
|
|
41
33
|
sortedUrls.forEach((url, i) => {
|
|
42
34
|
const chunkIndex = Math.floor(i / defaultSitemapsChunkSize);
|
|
43
35
|
chunks[chunkIndex] = chunks[chunkIndex] || { urls: [] };
|
|
@@ -50,18 +42,12 @@ export async function buildSitemapIndex(resolvers, runtimeConfig) {
|
|
|
50
42
|
}
|
|
51
43
|
}
|
|
52
44
|
}
|
|
53
|
-
if (import.meta.prerender) {
|
|
54
|
-
appendHeader(
|
|
55
|
-
resolvers.event,
|
|
56
|
-
"x-nitro-prerender",
|
|
57
|
-
Object.keys(chunks).map((name) => encodeURIComponent(`/${name}-sitemap.xml`)).join(", ")
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
45
|
const entries = [];
|
|
61
46
|
for (const name in chunks) {
|
|
62
47
|
const sitemap = chunks[name];
|
|
63
48
|
const entry = {
|
|
64
|
-
|
|
49
|
+
_sitemapName: name,
|
|
50
|
+
sitemap: resolvers.canonicalUrlResolver(joinURL(sitemapsPathPrefix, `/${name}.xml`))
|
|
65
51
|
};
|
|
66
52
|
let lastmod = sitemap.urls.filter((a) => !!a?.lastmod).map((a) => typeof a.lastmod === "string" ? new Date(a.lastmod) : a.lastmod).sort((a, b) => (b?.getTime() || 0) - (a?.getTime() || 0))?.[0];
|
|
67
53
|
if (!lastmod && autoLastmod)
|
|
@@ -75,10 +61,10 @@ export async function buildSitemapIndex(resolvers, runtimeConfig) {
|
|
|
75
61
|
return typeof entry === "string" ? { sitemap: entry } : entry;
|
|
76
62
|
}));
|
|
77
63
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const sitemapXml =
|
|
64
|
+
return entries;
|
|
65
|
+
}
|
|
66
|
+
export function urlsToIndexXml(sitemaps, resolvers, { version, xsl, credits }) {
|
|
67
|
+
const sitemapXml = sitemaps.map((e) => [
|
|
82
68
|
" <sitemap>",
|
|
83
69
|
` <loc>${escapeValueForXml(e.sitemap)}</loc>`,
|
|
84
70
|
// lastmod is optional
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
import type { ModuleRuntimeConfig, NitroUrlResolvers, SitemapDefinition } from '../../../types.js';
|
|
2
|
-
export
|
|
1
|
+
import type { AutoI18nConfig, ModuleRuntimeConfig, NitroUrlResolvers, ResolvedSitemapUrl, SitemapDefinition, SitemapSourceResolved } from '../../../types.js';
|
|
2
|
+
export interface NormalizedI18n extends ResolvedSitemapUrl {
|
|
3
|
+
_pathWithoutPrefix: string;
|
|
4
|
+
_locale: AutoI18nConfig['locales'][number];
|
|
5
|
+
_index?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function resolveSitemapEntries(sitemap: SitemapDefinition, sources: SitemapSourceResolved[], runtimeConfig: Pick<ModuleRuntimeConfig, 'autoI18n' | 'isI18nMapped'>): ResolvedSitemapUrl[];
|
|
8
|
+
export declare function buildSitemapUrls(sitemap: SitemapDefinition, resolvers: NitroUrlResolvers, runtimeConfig: ModuleRuntimeConfig): Promise<ResolvedSitemapUrl[]>;
|
|
9
|
+
export declare function urlsToXml(urls: ResolvedSitemapUrl[], resolvers: NitroUrlResolvers, { version, xsl, credits }: Pick<ModuleRuntimeConfig, 'version' | 'xsl' | 'credits'>): string;
|