@nuxtjs/sitemap 7.0.1 → 7.2.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.
- package/LICENSE.md +9 -9
- package/README.md +78 -78
- package/dist/client/200.html +211 -210
- package/dist/client/404.html +211 -210
- package/dist/client/_nuxt/3kbuJQcV.js +1 -0
- package/dist/client/_nuxt/3xVqZejG.js +1 -0
- package/dist/client/_nuxt/{CrOfvjVs.js → 5LuOXUq_.js} +1 -1
- package/dist/client/_nuxt/727ZlQH0.js +1 -0
- package/dist/client/_nuxt/7O62HKoU.js +1 -0
- package/dist/client/_nuxt/9C6ErRqt.js +1 -0
- package/dist/client/_nuxt/B-DoSBHF.js +1 -0
- package/dist/client/_nuxt/B-k3dvlD.js +1 -0
- package/dist/client/_nuxt/B0XVJmRM.js +1 -0
- package/dist/client/_nuxt/B14Poo8t.js +1 -0
- package/dist/client/_nuxt/B1SYOhNW.js +1 -0
- package/dist/client/_nuxt/B1bQXN8T.js +1 -0
- package/dist/client/_nuxt/B2vK47Ag.js +1 -0
- package/dist/client/_nuxt/B3ZDOciz.js +1 -0
- package/dist/client/_nuxt/B430Bg39.js +1 -0
- package/dist/client/_nuxt/B48N-Iqd.js +1 -0
- package/dist/client/_nuxt/B5auBHZD.js +1 -0
- package/dist/client/_nuxt/B5lbUyaz.js +1 -0
- package/dist/client/_nuxt/B6W0miNI.js +1 -0
- package/dist/client/_nuxt/B9wLZaAG.js +1 -0
- package/dist/client/_nuxt/BAng5TT0.js +1 -0
- package/dist/client/_nuxt/{BzaEo2Du.js → BC5c_5Pe.js} +1 -1
- package/dist/client/_nuxt/BE9QQhgF.js +1 -0
- package/dist/client/_nuxt/BEhvmC7f.js +1 -0
- package/dist/client/_nuxt/{C8pgRvQH.js → BFOHcciG.js} +1 -1
- package/dist/client/_nuxt/BHOwM8T6.js +1 -0
- package/dist/client/_nuxt/BIEUsx6d.js +1 -0
- package/dist/client/_nuxt/BILxekzW.js +1 -0
- package/dist/client/_nuxt/BJ4Li9vH.js +1 -0
- package/dist/client/_nuxt/BJGe-b2p.js +1 -0
- package/dist/client/_nuxt/{C0hdQUNN.js → BMR_PYu6.js} +1 -1
- package/dist/client/_nuxt/{dwbxrGt_.js → BMYPR7BL.js} +1 -1
- package/dist/client/_nuxt/BMj5Y0dO.js +1 -0
- package/dist/client/_nuxt/{BTbGKmhu.js → BNHBcdi1.js} +1 -1
- package/dist/client/_nuxt/BNioltXt.js +1 -0
- package/dist/client/_nuxt/BPT9niGB.js +1 -0
- package/dist/client/_nuxt/BPhBrDlE.js +1 -0
- package/dist/client/_nuxt/{DWmkr0yC.js → BQoSv7ci.js} +1 -1
- package/dist/client/_nuxt/BQwtg7Y-.js +1 -0
- package/dist/client/_nuxt/BUEGK8hf.js +1 -0
- package/dist/client/_nuxt/BVUVsWT6.js +1 -0
- package/dist/client/_nuxt/BVr_1_27.js +1 -0
- package/dist/client/_nuxt/{D44NvAEk.js → BVz_zdnA.js} +1 -1
- package/dist/client/_nuxt/{CMz7PuSU.js → BX77sIaO.js} +1 -1
- package/dist/client/_nuxt/BXW1EomU.js +1 -0
- package/dist/client/_nuxt/BY-TUvya.js +1 -0
- package/dist/client/_nuxt/B_49xXYf.js +1 -0
- package/dist/client/_nuxt/BbSNqyBO.js +1 -0
- package/dist/client/_nuxt/BdxkyMLR.js +1 -0
- package/dist/client/_nuxt/Be6lgOlo.js +1 -0
- package/dist/client/_nuxt/BeQkCIfX.js +1 -0
- package/dist/client/_nuxt/BfCpw3nA.js +1 -0
- package/dist/client/_nuxt/{CpRrwcwt.js → BfivnA6A.js} +1 -1
- package/dist/client/_nuxt/Bg-kzb6g.js +1 -0
- package/dist/client/_nuxt/BgYniUM_.js +1 -0
- package/dist/client/_nuxt/{i5HCB2tm.js → BiFfXF7O.js} +1 -1
- package/dist/client/_nuxt/Bid6LQhH.js +1 -0
- package/dist/client/_nuxt/BjQB5zDj.js +1 -0
- package/dist/client/_nuxt/{D-RymO5g.js → BknIz3MU.js} +1 -1
- package/dist/client/_nuxt/{eACALr6E.js → Bl1h29GH.js} +1 -1
- package/dist/client/_nuxt/{Bohx6pHs.js → BlxRB_8X.js} +1 -1
- package/dist/client/_nuxt/BoXegm-a.js +1 -0
- package/dist/client/_nuxt/BpWG_bgh.js +1 -0
- package/dist/client/_nuxt/BsOYHjMa.js +1 -0
- package/dist/client/_nuxt/Bu5BbsvL.js +1 -0
- package/dist/client/_nuxt/{DNDvMORL.js → Bvotw-X0.js} +1 -1
- package/dist/client/_nuxt/Bw0wYZmb.js +1 -0
- package/dist/client/_nuxt/{DDUKAZWS.js → BwXTMy5W.js} +1 -1
- package/dist/client/_nuxt/C-nORZOA.js +1 -0
- package/dist/client/_nuxt/C-wny61x.js +1 -0
- package/dist/client/_nuxt/C0nbwVuJ.js +1 -0
- package/dist/client/_nuxt/C1XDQQGZ.js +1 -0
- package/dist/client/_nuxt/C1tVc3UG.js +1 -0
- package/dist/client/_nuxt/{DymQr0nX.js → C1w2a3ep.js} +1 -1
- package/dist/client/_nuxt/C30yJ1fx.js +1 -0
- package/dist/client/_nuxt/C39BiMTA.js +1 -0
- package/dist/client/_nuxt/C3FkfJm5.js +1 -0
- package/dist/client/_nuxt/C3t2pwGQ.js +1 -0
- package/dist/client/_nuxt/C5Y8tDhP.js +1 -0
- package/dist/client/_nuxt/C5wWYbrZ.js +1 -0
- package/dist/client/_nuxt/{sH2JAGjN.js → C6j12Q_x.js} +1 -1
- package/dist/client/_nuxt/C7L56vO4.js +1 -0
- package/dist/client/_nuxt/C7gG9l05.js +1 -0
- package/dist/client/_nuxt/CAQ2eGtk.js +1 -0
- package/dist/client/_nuxt/{CSoQzgif.js → CB0Krxn9.js} +1 -1
- package/dist/client/_nuxt/{Dwo6uFCY.js → CB2ApiWb.js} +1 -1
- package/dist/client/_nuxt/{CyEc264g.js → CGVVOGHx.js} +1 -1
- package/dist/client/_nuxt/CJaU5se_.js +1 -0
- package/dist/client/_nuxt/CKg9tqCS.js +1 -0
- package/dist/client/_nuxt/{CmWLV2bY.js → CM8KxXT1.js} +1 -1
- package/dist/client/_nuxt/CMt9yHYq.js +1 -0
- package/dist/client/_nuxt/COJ4H7py.js +1 -0
- package/dist/client/_nuxt/COK4E0Yg.js +1 -0
- package/dist/client/_nuxt/{CbUnruJU.js → COyJrUc7.js} +1 -1
- package/dist/client/_nuxt/CQ0soPOq.js +1 -0
- package/dist/client/_nuxt/CSHBycmS.js +1 -0
- package/dist/client/_nuxt/{CEvzwb0I.js → CSp6iqVD.js} +1 -1
- package/dist/client/_nuxt/CUnW07Te.js +1 -0
- package/dist/client/_nuxt/{CIiI48o2.js → CVw76BM1.js} +1 -1
- package/dist/client/_nuxt/CYFUjXW1.js +1 -0
- package/dist/client/_nuxt/CZe0XNBd.js +1 -0
- package/dist/client/_nuxt/Cc5clBb7.js +1 -0
- package/dist/client/_nuxt/CcHjYXgz.js +1 -0
- package/dist/client/_nuxt/{Bv-mwDEg.js → CdO5JTpU.js} +1 -1
- package/dist/client/_nuxt/{j_FrBdja.js → Cf8iN4DR.js} +1 -1
- package/dist/client/_nuxt/{zchoCBdH.js → CfQXZHmo.js} +1 -1
- package/dist/client/_nuxt/Ci6OQyBP.js +1 -0
- package/dist/client/_nuxt/{RXHOmnpW.js → CkXjmgJE.js} +1 -1
- package/dist/client/_nuxt/{yA8e6OR-.js → ClGRhx96.js} +1 -1
- package/dist/client/_nuxt/CsSk9TLD.js +1 -0
- package/dist/client/_nuxt/{Cqv5JV-q.js → CwjWoCRV.js} +1 -1
- package/dist/client/_nuxt/{s1PdnzAn.js → CyIGOvEh.js} +1 -1
- package/dist/client/_nuxt/{CodIOJDM.js → Cz8P-rqG.js} +1 -1
- package/dist/client/_nuxt/Cza_XSSt.js +1 -0
- package/dist/client/_nuxt/CzouJOBO.js +1 -0
- package/dist/client/_nuxt/{ZJvK9Z2N.js → D4Tzg5kh.js} +1 -1
- package/dist/client/_nuxt/D5pd2Owo.js +1 -0
- package/dist/client/_nuxt/D8mZ0lfy.js +1 -0
- package/dist/client/_nuxt/D9-PGadD.js +1 -0
- package/dist/client/_nuxt/D9R-vmeu.js +1 -0
- package/dist/client/_nuxt/DB_GagMm.js +1 -0
- package/dist/client/_nuxt/DCE3LsBG.js +1 -0
- package/dist/client/_nuxt/DDtJtuOZ.js +1 -0
- package/dist/client/_nuxt/DHo0CJ0O.js +1 -0
- package/dist/client/_nuxt/{Bh0AkrcA.js → DIH-cllJ.js} +1 -1
- package/dist/client/_nuxt/{Dzwn3p-3.js → DJlmqQ1C.js} +1 -1
- package/dist/client/_nuxt/DKOGybHv.js +1 -0
- package/dist/client/_nuxt/DKXYxT9g.js +1 -0
- package/dist/client/_nuxt/DKykz6zU.js +1 -0
- package/dist/client/_nuxt/DLVR-baX.js +1 -0
- package/dist/client/_nuxt/{CEjiMJLT.js → DNquZEk8.js} +1 -1
- package/dist/client/_nuxt/DPvbFsQx.js +1 -0
- package/dist/client/_nuxt/{NUI3YrRW.js → DQ1-QYvQ.js} +1 -1
- package/dist/client/_nuxt/{NKd-Y1zG.js → DREVFZK8.js} +1 -1
- package/dist/client/_nuxt/{IqKf4WGj.js → DRNBmV_Q.js} +1 -1
- package/dist/client/_nuxt/{DxokFBIi.js → DRhBOlRY.js} +1 -1
- package/dist/client/_nuxt/{DoiKbUTj.js → DWJ3fJO_.js} +1 -1
- package/dist/client/_nuxt/{2aygx1xg.js → DWedfzmr.js} +1 -1
- package/dist/client/_nuxt/DYoNaHQp.js +1 -0
- package/dist/client/_nuxt/DYvnoCeB.js +1 -0
- package/dist/client/_nuxt/D_z4Izcz.js +1 -0
- package/dist/client/_nuxt/{CNRQ974Q.js → Dayu4EKP.js} +1 -1
- package/dist/client/_nuxt/Dbxjm_CC.js +1 -0
- package/dist/client/_nuxt/{B6NdQBKR.js → Deuh7S70.js} +1 -1
- package/dist/client/_nuxt/DfxzS6Rs.js +1 -0
- package/dist/client/_nuxt/DhUJRlN_.js +1 -0
- package/dist/client/_nuxt/Dhn9LcZ4.js +1 -0
- package/dist/client/_nuxt/Dj6nwHGl.js +1 -0
- package/dist/client/_nuxt/{ClV7KpCc.js → DjHMNizO.js} +1 -1
- package/dist/client/_nuxt/{XgMqM674.js → Djzw0wLt.js} +1 -1
- package/dist/client/_nuxt/DkBy-JyN.js +1 -0
- package/dist/client/_nuxt/DkLiglaE.js +1 -0
- package/dist/client/_nuxt/Dmy2k9nq.js +1 -0
- package/dist/client/_nuxt/Drsz93k2.js +1 -0
- package/dist/client/_nuxt/DsBKuouk.js +1 -0
- package/dist/client/_nuxt/{DFW6HATB.js → DsWjAdsX.js} +1 -1
- package/dist/client/_nuxt/{BCzYJAay.js → Dsg_Bt_b.js} +1 -1
- package/dist/client/_nuxt/DtFQj3wx.js +1 -0
- package/dist/client/_nuxt/Du268qiB.js +1 -0
- package/dist/client/_nuxt/Du5NY7AG.js +1 -0
- package/dist/client/_nuxt/DxSadP1t.js +1 -0
- package/dist/client/_nuxt/HNqc6WRo.js +1 -0
- package/dist/client/_nuxt/HnGAYVZD.js +1 -0
- package/dist/client/_nuxt/HzYwdGDm.js +1 -0
- package/dist/client/_nuxt/{Dtn98rcr.js → IuBKFhSY.js} +1 -1
- package/dist/client/_nuxt/{DlYXzDlu.js → P4WzXJd0.js} +1 -1
- package/dist/client/_nuxt/{BGct0Hx7.js → QhoSD0DR.js} +1 -1
- package/dist/client/_nuxt/R900dpIa.js +1 -0
- package/dist/client/_nuxt/{BSHf-0eb.js → SKMF96pI.js} +1 -1
- package/dist/client/_nuxt/SPD3sf1n.js +1 -0
- package/dist/client/_nuxt/{D9Bn7OQI.js → T-Tgc4AT.js} +1 -1
- package/dist/client/_nuxt/{B8E-_56i.js → TU54ms6u.js} +1 -1
- package/dist/client/_nuxt/Tz6hzZYG.js +1 -0
- package/dist/client/_nuxt/UIAJJxZW.js +1 -0
- package/dist/client/_nuxt/{iL6rllz4.js → UL5zprDm.js} +1 -1
- package/dist/client/_nuxt/XBlWyCtg.js +1 -0
- package/dist/client/_nuxt/{L9-HYnaW.js → YJb9dmdj.js} +1 -1
- package/dist/client/_nuxt/{D2TqM893.js → Ye_uPAM8.js} +1 -1
- package/dist/client/_nuxt/{Bnbw1zOw.js → ahYVQIuB.js} +1 -1
- package/dist/client/_nuxt/{DJEtsjbi.js → ajMbGru0.js} +1 -1
- package/dist/client/_nuxt/atvbtKCR.js +1 -0
- package/dist/client/_nuxt/{dZn0vQkf.js → bCA53EVm.js} +1 -1
- package/dist/client/_nuxt/builds/latest.json +1 -1
- package/dist/client/_nuxt/builds/meta/cbd506e7-b089-42a0-8062-dff717a0d923.json +1 -0
- package/dist/client/_nuxt/{CkqQx3Va.js → cPjAOO0u.js} +1 -1
- package/dist/client/_nuxt/din0uRiO.js +1 -0
- package/dist/client/_nuxt/{FMvz1E70.js → e4jU7D2d.js} +1 -1
- package/dist/client/_nuxt/{BINKOAKH.js → eg146-Ew.js} +1 -1
- package/dist/client/_nuxt/{entry.DQICz65s.css → entry.WCUheyaE.css} +1 -1
- package/dist/client/_nuxt/error-404.DWO74KKP.css +1 -0
- package/dist/client/_nuxt/error-500.DVC0lzO_.css +1 -0
- package/dist/client/_nuxt/fje9CFhw.js +1 -0
- package/dist/client/_nuxt/ifBTmRxC.js +1 -0
- package/dist/client/_nuxt/{DfpIq38s.js → m2LEI-9-.js} +1 -1
- package/dist/client/_nuxt/m4gc_qpA.js +1 -0
- package/dist/client/_nuxt/m4uW47V2.js +1 -0
- package/dist/client/_nuxt/mebxcVVE.js +1 -0
- package/dist/client/_nuxt/nyqBNV6O.js +1 -0
- package/dist/client/_nuxt/qmhIZ77x.js +1 -0
- package/dist/client/_nuxt/{CY2R9RuK.js → qpfuy3xp.js} +1 -1
- package/dist/client/_nuxt/sSZQ7D2b.js +32 -0
- package/dist/client/_nuxt/sacFqUAJ.js +1 -0
- package/dist/client/_nuxt/{Bcw97oti.js → sdHcTMYB.js} +1 -1
- package/dist/client/_nuxt/shcSOmrb.js +1 -0
- package/dist/client/_nuxt/{CQzXS8_C.js → w-ucz2PV.js} +1 -1
- package/dist/client/_nuxt/{BDjtpMT8.js → w8dY5SsB.js} +1 -1
- package/dist/client/_nuxt/wI6OXr6j.js +1 -0
- package/dist/client/_nuxt/xI-RfyKK.js +1 -0
- package/dist/client/_nuxt/{CpWBKVjh.js → xW4inM5L.js} +1 -1
- package/dist/client/_nuxt/ySlJ1b_l.js +1 -0
- package/dist/client/_nuxt/{hdsyEllQ.js → zocC4JxJ.js} +1 -1
- package/dist/client/index.html +211 -210
- package/dist/module.d.mts +4 -1
- package/dist/module.d.ts +4 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +204 -52
- package/dist/runtime/server/plugins/{nuxt-content.js → nuxt-content-v2.js} +2 -10
- package/dist/runtime/server/routes/__sitemap__/debug.d.ts +1 -1
- package/dist/runtime/server/routes/__sitemap__/nuxt-content-urls-v3.d.ts +2 -0
- package/dist/runtime/server/routes/__sitemap__/nuxt-content-urls-v3.js +17 -0
- package/dist/runtime/server/routes/sitemap/[sitemap].xml.js +1 -1
- package/dist/runtime/server/routes/sitemap_index.xml.js +2 -2
- package/dist/runtime/server/sitemap/builder/sitemap-index.d.ts +2 -1
- package/dist/runtime/server/sitemap/builder/sitemap-index.js +8 -3
- package/dist/runtime/server/sitemap/builder/sitemap.d.ts +4 -3
- package/dist/runtime/server/sitemap/builder/sitemap.js +12 -7
- package/dist/runtime/server/sitemap/nitro.js +6 -2
- package/dist/runtime/server/sitemap/urlset/sources.js +16 -7
- package/dist/runtime/server/sitemap/utils/extractSitemapXML.d.ts +2 -0
- package/dist/runtime/server/sitemap/utils/extractSitemapXML.js +75 -0
- package/dist/runtime/server/tsconfig.json +3 -3
- package/dist/runtime/types.d.ts +5 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.d.ts +1 -1
- package/package.json +18 -18
- package/virtual.d.ts +11 -11
- package/dist/client/_nuxt/-ALZ4IvE.js +0 -1
- package/dist/client/_nuxt/6RUVFG9U.js +0 -1
- package/dist/client/_nuxt/8Uu6eIa-.js +0 -1
- package/dist/client/_nuxt/B1rsb5QC.js +0 -1
- package/dist/client/_nuxt/B2bjgU-v.js +0 -1
- package/dist/client/_nuxt/B2uSYIFn.js +0 -1
- package/dist/client/_nuxt/B3Z_eaxm.js +0 -1
- package/dist/client/_nuxt/B4_rEpOs.js +0 -1
- package/dist/client/_nuxt/B5L7zzq-.js +0 -1
- package/dist/client/_nuxt/B9Vj0mJK.js +0 -1
- package/dist/client/_nuxt/BA1ndEPy.js +0 -1
- package/dist/client/_nuxt/BCawSwWi.js +0 -1
- package/dist/client/_nuxt/BJNXdUBN.js +0 -1
- package/dist/client/_nuxt/BKbjiiqg.js +0 -1
- package/dist/client/_nuxt/BMwgFBEQ.js +0 -1
- package/dist/client/_nuxt/BN40hmum.js +0 -1
- package/dist/client/_nuxt/BNxDCkIA.js +0 -1
- package/dist/client/_nuxt/BSPpinrx.js +0 -1
- package/dist/client/_nuxt/BVlVXSjx.js +0 -1
- package/dist/client/_nuxt/BWkuYGGO.js +0 -1
- package/dist/client/_nuxt/BWslPs4p.js +0 -1
- package/dist/client/_nuxt/BYqZ7etr.js +0 -1
- package/dist/client/_nuxt/BZ3P6AVf.js +0 -1
- package/dist/client/_nuxt/BZRbnyjI.js +0 -1
- package/dist/client/_nuxt/B_R80ZlN.js +0 -1
- package/dist/client/_nuxt/BaLI2h1d.js +0 -1
- package/dist/client/_nuxt/BbalPOsb.js +0 -1
- package/dist/client/_nuxt/BbccZ3y2.js +0 -1
- package/dist/client/_nuxt/Bdprqoiu.js +0 -1
- package/dist/client/_nuxt/BgqZeg96.js +0 -1
- package/dist/client/_nuxt/BhC5s0V7.js +0 -1
- package/dist/client/_nuxt/BhsLqr-4.js +0 -1
- package/dist/client/_nuxt/BjXeLqNd.js +0 -1
- package/dist/client/_nuxt/Bjs2cL5p.js +0 -1
- package/dist/client/_nuxt/BkG9CdHo.js +0 -1
- package/dist/client/_nuxt/Bmb0A568.js +0 -1
- package/dist/client/_nuxt/BnfnAR_u.js +0 -1
- package/dist/client/_nuxt/BoZcIFWd.js +0 -1
- package/dist/client/_nuxt/BqtQrzRp.js +0 -1
- package/dist/client/_nuxt/BrbOHqWv.js +0 -1
- package/dist/client/_nuxt/Bv_sPlCv.js +0 -1
- package/dist/client/_nuxt/BwpQXVS2.js +0 -1
- package/dist/client/_nuxt/ByY1Guvr.js +0 -1
- package/dist/client/_nuxt/BzAMEn9Z.js +0 -1
- package/dist/client/_nuxt/BzwtH5UL.js +0 -1
- package/dist/client/_nuxt/C30t_gpS.js +0 -1
- package/dist/client/_nuxt/C4Ro8ZjH.js +0 -1
- package/dist/client/_nuxt/C5-9kuJc.js +0 -1
- package/dist/client/_nuxt/CGXjegLJ.js +0 -1
- package/dist/client/_nuxt/CI15r38m.js +0 -1
- package/dist/client/_nuxt/CIxipgmy.js +0 -1
- package/dist/client/_nuxt/CJxt7p29.js +0 -1
- package/dist/client/_nuxt/CK56Z9cH.js +0 -1
- package/dist/client/_nuxt/CK7S-5jS.js +0 -1
- package/dist/client/_nuxt/CLmbwNS9.js +0 -1
- package/dist/client/_nuxt/CM4fc1WH.js +0 -1
- package/dist/client/_nuxt/CMOi41r9.js +0 -1
- package/dist/client/_nuxt/CMnybHwx.js +0 -1
- package/dist/client/_nuxt/CNXuF1yM.js +0 -1
- package/dist/client/_nuxt/CQO4gZEw.js +0 -1
- package/dist/client/_nuxt/CVESyXxo.js +0 -1
- package/dist/client/_nuxt/CXmV_HiI.js +0 -1
- package/dist/client/_nuxt/CZzQMiei.js +0 -1
- package/dist/client/_nuxt/CcPoRNJz.js +0 -1
- package/dist/client/_nuxt/CcSEeikT.js +0 -1
- package/dist/client/_nuxt/CeZwWGti.js +0 -1
- package/dist/client/_nuxt/ChDww4um.js +0 -1
- package/dist/client/_nuxt/Ci-La1BS.js +0 -1
- package/dist/client/_nuxt/CuIYtGag.js +0 -1
- package/dist/client/_nuxt/Cv3cJnDV.js +0 -1
- package/dist/client/_nuxt/CwIbMU3B.js +0 -1
- package/dist/client/_nuxt/D0UgJbcu.js +0 -1
- package/dist/client/_nuxt/D2O4HAMr.js +0 -1
- package/dist/client/_nuxt/D7v6OrNy.js +0 -1
- package/dist/client/_nuxt/D8nBeWSR.js +0 -1
- package/dist/client/_nuxt/DA0ESIWO.js +0 -1
- package/dist/client/_nuxt/DCcCncrU.js +0 -1
- package/dist/client/_nuxt/DES0gjzB.js +0 -1
- package/dist/client/_nuxt/DFQ4Xr-4.js +0 -1
- package/dist/client/_nuxt/DH4N8IuU.js +0 -1
- package/dist/client/_nuxt/DIt9OTko.js +0 -1
- package/dist/client/_nuxt/DL4Dju3v.js +0 -1
- package/dist/client/_nuxt/DMcMdqhj.js +0 -1
- package/dist/client/_nuxt/DNgb01dh.js +0 -1
- package/dist/client/_nuxt/DOAn35dn.js +0 -1
- package/dist/client/_nuxt/DPTZissz.js +0 -1
- package/dist/client/_nuxt/DQxx3LPD.js +0 -1
- package/dist/client/_nuxt/DRhUEtVu.js +0 -1
- package/dist/client/_nuxt/DUdzsfxe.js +0 -1
- package/dist/client/_nuxt/DVWcdiGS.js +0 -1
- package/dist/client/_nuxt/DWMP3yrW.js +0 -1
- package/dist/client/_nuxt/DZ4hUExO.js +0 -1
- package/dist/client/_nuxt/Db-JQHi3.js +0 -1
- package/dist/client/_nuxt/DdAYiE08.js +0 -1
- package/dist/client/_nuxt/DepYB8Ml.js +0 -1
- package/dist/client/_nuxt/DhRVplvY.js +0 -1
- package/dist/client/_nuxt/DhqJCFIX.js +0 -1
- package/dist/client/_nuxt/Dk1rBueR.js +0 -1
- package/dist/client/_nuxt/DkpUthgY.js +0 -1
- package/dist/client/_nuxt/DmF4-xLG.js +0 -1
- package/dist/client/_nuxt/DmZ-uG0V.js +0 -1
- package/dist/client/_nuxt/Dnfm4U7b.js +0 -1
- package/dist/client/_nuxt/DnyWjya5.js +0 -1
- package/dist/client/_nuxt/DoBRWXs5.js +0 -1
- package/dist/client/_nuxt/DqpEK-75.js +0 -1
- package/dist/client/_nuxt/DsCg8CPl.js +0 -1
- package/dist/client/_nuxt/DvA-6Bhw.js +0 -1
- package/dist/client/_nuxt/DvQyZZSe.js +0 -1
- package/dist/client/_nuxt/DwU8c_yx.js +0 -1
- package/dist/client/_nuxt/DzaHHFTY.js +0 -1
- package/dist/client/_nuxt/EZUUsui8.js +0 -1
- package/dist/client/_nuxt/F89DG-fP.js +0 -1
- package/dist/client/_nuxt/HNM5thJl.js +0 -1
- package/dist/client/_nuxt/IBB5Tl9j.js +0 -1
- package/dist/client/_nuxt/KUYRHWK4.js +0 -1
- package/dist/client/_nuxt/Kxp7UmFj.js +0 -1
- package/dist/client/_nuxt/Lp17StYA.js +0 -1
- package/dist/client/_nuxt/NgWrSVUg.js +0 -1
- package/dist/client/_nuxt/W2lx4xae.js +0 -1
- package/dist/client/_nuxt/XF954dHc.js +0 -1
- package/dist/client/_nuxt/YurBl9Qv.js +0 -1
- package/dist/client/_nuxt/ZougXV9E.js +0 -32
- package/dist/client/_nuxt/_Zu0RE-q.js +0 -1
- package/dist/client/_nuxt/aeT0-ak7.js +0 -1
- package/dist/client/_nuxt/bGS5FTDY.js +0 -1
- package/dist/client/_nuxt/builds/meta/4797452c-6112-46da-ad1e-fed2be5af2d7.json +0 -1
- package/dist/client/_nuxt/error-404.DgVXsaJX.css +0 -1
- package/dist/client/_nuxt/error-500.B7UWmd7c.css +0 -1
- package/dist/client/_nuxt/gOa3Yz9U.js +0 -1
- package/dist/client/_nuxt/i22b9gbM.js +0 -1
- package/dist/client/_nuxt/mLcCfA0-.js +0 -1
- package/dist/client/_nuxt/plSVBvJQ.js +0 -1
- package/dist/client/_nuxt/rf8nNrOk.js +0 -1
- package/dist/client/_nuxt/u4bm_LMz.js +0 -1
- package/dist/client/_nuxt/vocl-2a6.js +0 -1
- package/dist/client/_nuxt/xfgw03QH.js +0 -1
- package/dist/client/_nuxt/yLioyJ2E.js +0 -1
- /package/dist/runtime/server/plugins/{nuxt-content.d.ts → nuxt-content-v2.d.ts} +0 -0
- /package/dist/runtime/server/routes/__sitemap__/{nuxt-content-urls.d.ts → nuxt-content-urls-v2.d.ts} +0 -0
- /package/dist/runtime/server/routes/__sitemap__/{nuxt-content-urls.js → nuxt-content-urls-v2.js} +0 -0
package/dist/module.d.mts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
2
|
import { ModuleOptions as ModuleOptions$1 } from '../dist/runtime/types.js';
|
|
3
3
|
|
|
4
|
+
declare function asSitemapCollection(collection: any): any;
|
|
5
|
+
|
|
4
6
|
interface ModuleOptions extends ModuleOptions$1 {
|
|
5
7
|
}
|
|
8
|
+
|
|
6
9
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
7
10
|
|
|
8
|
-
export { type ModuleOptions, _default as default };
|
|
11
|
+
export { type ModuleOptions, asSitemapCollection, _default as default };
|
package/dist/module.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
2
|
import { ModuleOptions as ModuleOptions$1 } from '../dist/runtime/types.js';
|
|
3
3
|
|
|
4
|
+
declare function asSitemapCollection(collection: any): any;
|
|
5
|
+
|
|
4
6
|
interface ModuleOptions extends ModuleOptions$1 {
|
|
5
7
|
}
|
|
8
|
+
|
|
6
9
|
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
7
10
|
|
|
8
|
-
export { type ModuleOptions, _default as default };
|
|
11
|
+
export { type ModuleOptions, asSitemapCollection, _default as default };
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { useNuxt, loadNuxtModuleInstance, createResolver, addTemplate, extendPages, tryUseNuxt, defineNuxtModule, useLogger, hasNuxtModule, getNuxtModuleVersion, hasNuxtModuleCompatibility, addServerImports, addServerPlugin, addServerHandler, addPrerenderRoutes } from '@nuxt/kit';
|
|
2
|
-
import { withHttps, withBase, parseURL, joinURL, withoutLeadingSlash,
|
|
1
|
+
import { useNuxt, loadNuxtModuleInstance, createResolver, addTemplate, extendPages, tryUseNuxt, defineNuxtModule, useLogger, hasNuxtModule, getNuxtModuleVersion, hasNuxtModuleCompatibility, addServerImports, addServerPlugin, resolveModule, addServerHandler, addPrerenderRoutes } from '@nuxt/kit';
|
|
2
|
+
import { withHttps, withBase, parseURL, joinURL, withoutLeadingSlash, withLeadingSlash, withoutTrailingSlash } from 'ufo';
|
|
3
3
|
import { withSiteUrl, installNuxtSiteConfig } from 'nuxt-site-config/kit';
|
|
4
4
|
import { defu } from 'defu';
|
|
5
5
|
import { readPackageJSON } from 'pkg-types';
|
|
6
|
-
import { statSync, existsSync } from 'node:fs';
|
|
7
6
|
import { extname, relative, dirname } from 'pathe';
|
|
7
|
+
import { statSync, existsSync } from 'node:fs';
|
|
8
8
|
import { createPathFilter, splitForLocales, mergeOnKey } from '../dist/runtime/utils-pure.js';
|
|
9
9
|
import { provider, env } from 'std-env';
|
|
10
10
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
@@ -12,6 +12,7 @@ import { join } from 'node:path';
|
|
|
12
12
|
import chalk from 'chalk';
|
|
13
13
|
import { build } from 'nitropack';
|
|
14
14
|
import { normaliseDate } from '../dist/runtime/server/sitemap/urlset/normalise.js';
|
|
15
|
+
import { z } from '@nuxt/content';
|
|
15
16
|
|
|
16
17
|
async function resolveUrls(urls, ctx) {
|
|
17
18
|
if (typeof urls === "function")
|
|
@@ -264,6 +265,22 @@ function resolveNitroPreset(nitroConfig) {
|
|
|
264
265
|
return preset.replace("_", "-");
|
|
265
266
|
}
|
|
266
267
|
|
|
268
|
+
const videoRegex = /<video[^>]*>([\s\S]*?)<\/video>/g;
|
|
269
|
+
const videoSrcRegex = /<video[^>]*\ssrc="([^"]+)"/;
|
|
270
|
+
const videoPosterRegex = /<video[^>]*\sposter="([^"]+)"/;
|
|
271
|
+
const videoTitleRegex = /<video[^>]*\sdata-title="([^"]+)"/;
|
|
272
|
+
const videoDescriptionRegex = /<video[^>]*\sdata-description="([^"]+)"/;
|
|
273
|
+
const videoPlayerLocRegex = /<video[^>]*\sdata-player-loc="([^"]+)"/;
|
|
274
|
+
const videoDurationRegex = /<video[^>]*\sdata-duration="([^"]+)"/;
|
|
275
|
+
const videoExpirationDateRegex = /<video[^>]*\sdata-expiration-date="([^"]+)"/;
|
|
276
|
+
const videoRatingRegex = /<video[^>]*\sdata-rating="([^"]+)"/;
|
|
277
|
+
const videoViewCountRegex = /<video[^>]*\sdata-view-count="([^"]+)"/;
|
|
278
|
+
const videoPublicationDateRegex = /<video[^>]*\sdata-publication-date="([^"]+)"/;
|
|
279
|
+
const videoFamilyFriendlyRegex = /<video[^>]*\sdata-family-friendly="([^"]+)"/;
|
|
280
|
+
const videoRequiresSubscriptionRegex = /<video[^>]*\sdata-requires-subscription="([^"]+)"/;
|
|
281
|
+
const videoLiveRegex = /<video[^>]*\sdata-live="([^"]+)"/;
|
|
282
|
+
const videoTagRegex = /<video[^>]*\sdata-tag="([^"]+)"/;
|
|
283
|
+
const sourceRegex = /<source[^>]*\ssrc="([^"]+)"/g;
|
|
267
284
|
function extractSitemapMetaFromHtml(html, options) {
|
|
268
285
|
options = options || { images: true, videos: true, lastmod: true, alternatives: true };
|
|
269
286
|
const payload = {};
|
|
@@ -291,54 +308,74 @@ function extractSitemapMetaFromHtml(html, options) {
|
|
|
291
308
|
const mainRegex = /<main[^>]*>([\s\S]*?)<\/main>/;
|
|
292
309
|
const mainMatch = mainRegex.exec(html);
|
|
293
310
|
if (mainMatch?.[1] && mainMatch[1].includes("<video")) {
|
|
294
|
-
const videoRegex = /<video[^>]*>([\s\S]*?)<\/video>/g;
|
|
295
|
-
const videoAttrRegex = /<video[^>]*\ssrc="([^"]+)"(?:[^>]*\sposter="([^"]+)")?/;
|
|
296
|
-
const videoPosterRegex = /<video[^>]*\sposter="([^"]+)"/;
|
|
297
|
-
const videoTitleRegex = /<video[^>]*\sdata-title="([^"]+)"/;
|
|
298
|
-
const videoDescriptionRegex = /<video[^>]*\sdata-description="([^"]+)"/;
|
|
299
|
-
const sourceRegex = /<source[^>]*\ssrc="([^"]+)"/g;
|
|
300
311
|
let videoMatch;
|
|
301
312
|
while ((videoMatch = videoRegex.exec(mainMatch[1])) !== null) {
|
|
302
313
|
const videoContent = videoMatch[1];
|
|
303
314
|
const videoTag = videoMatch[0];
|
|
304
|
-
const
|
|
305
|
-
const
|
|
306
|
-
const poster = (videoPosterRegex.exec(videoTag) || [])[1] || "";
|
|
315
|
+
const content_loc = (videoSrcRegex.exec(videoTag) || [])[1] || "";
|
|
316
|
+
const thumbnail_loc = (videoPosterRegex.exec(videoTag) || [])[1] || "";
|
|
307
317
|
const title = (videoTitleRegex.exec(videoTag) || [])[1] || "";
|
|
308
318
|
const description = (videoDescriptionRegex.exec(videoTag) || [])[1] || "";
|
|
319
|
+
const videoObj = {
|
|
320
|
+
content_loc,
|
|
321
|
+
thumbnail_loc,
|
|
322
|
+
title,
|
|
323
|
+
description
|
|
324
|
+
};
|
|
325
|
+
const player_loc = (videoPlayerLocRegex.exec(videoTag) || [])[1];
|
|
326
|
+
if (player_loc)
|
|
327
|
+
videoObj.player_loc = player_loc;
|
|
328
|
+
const duration = (videoDurationRegex.exec(videoTag) || [])[1];
|
|
329
|
+
if (duration)
|
|
330
|
+
videoObj.duration = Number.parseInt(duration, 10);
|
|
331
|
+
const expiration_date = (videoExpirationDateRegex.exec(videoTag) || [])[1];
|
|
332
|
+
if (expiration_date)
|
|
333
|
+
videoObj.expiration_date = expiration_date;
|
|
334
|
+
const rating = (videoRatingRegex.exec(videoTag) || [])[1];
|
|
335
|
+
if (rating)
|
|
336
|
+
videoObj.rating = Number.parseFloat(rating);
|
|
337
|
+
const view_count = (videoViewCountRegex.exec(videoTag) || [])[1];
|
|
338
|
+
if (view_count)
|
|
339
|
+
videoObj.view_count = Number.parseInt(view_count, 10);
|
|
340
|
+
const publication_date = (videoPublicationDateRegex.exec(videoTag) || [])[1];
|
|
341
|
+
if (publication_date)
|
|
342
|
+
videoObj.publication_date = publication_date;
|
|
343
|
+
const family_friendly = (videoFamilyFriendlyRegex.exec(videoTag) || [])[1];
|
|
344
|
+
if (family_friendly)
|
|
345
|
+
videoObj.family_friendly = family_friendly;
|
|
346
|
+
const requires_subscription = (videoRequiresSubscriptionRegex.exec(videoTag) || [])[1];
|
|
347
|
+
if (requires_subscription)
|
|
348
|
+
videoObj.requires_subscription = requires_subscription;
|
|
349
|
+
const live = (videoLiveRegex.exec(videoTag) || [])[1];
|
|
350
|
+
if (live)
|
|
351
|
+
videoObj.live = live;
|
|
352
|
+
const tag = (videoTagRegex.exec(videoTag) || [])[1];
|
|
353
|
+
if (tag)
|
|
354
|
+
videoObj.tag = tag;
|
|
309
355
|
const sources = [];
|
|
310
356
|
let sourceMatch;
|
|
311
357
|
while ((sourceMatch = sourceRegex.exec(videoContent)) !== null) {
|
|
312
|
-
sources.push(
|
|
313
|
-
src: sourceMatch[1],
|
|
314
|
-
poster,
|
|
315
|
-
title,
|
|
316
|
-
description
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
if (videoSrc) {
|
|
320
|
-
videos.push({
|
|
321
|
-
src: videoSrc,
|
|
322
|
-
poster,
|
|
323
|
-
title,
|
|
324
|
-
description,
|
|
325
|
-
sources: []
|
|
326
|
-
});
|
|
358
|
+
sources.push(sourceMatch[1]);
|
|
327
359
|
}
|
|
328
360
|
if (sources.length > 0) {
|
|
329
|
-
videos.push(...sources)
|
|
361
|
+
videos.push(...sources.map((source) => {
|
|
362
|
+
if (source.startsWith("/"))
|
|
363
|
+
source = tryUseNuxt() ? withSiteUrl(source) : source;
|
|
364
|
+
return {
|
|
365
|
+
...videoObj,
|
|
366
|
+
content_loc: source
|
|
367
|
+
};
|
|
368
|
+
}));
|
|
369
|
+
} else {
|
|
370
|
+
videos.push(videoObj);
|
|
330
371
|
}
|
|
331
372
|
}
|
|
332
373
|
}
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
title: video.title,
|
|
339
|
-
description: video.description
|
|
340
|
-
})
|
|
341
|
-
);
|
|
374
|
+
const validVideos = videos.filter((v) => {
|
|
375
|
+
return v.content_loc && v.thumbnail_loc && v.title && v.description;
|
|
376
|
+
});
|
|
377
|
+
if (validVideos.length > 0) {
|
|
378
|
+
payload.videos = validVideos;
|
|
342
379
|
}
|
|
343
380
|
}
|
|
344
381
|
if (options?.lastmod) {
|
|
@@ -572,6 +609,55 @@ function normalizeFilters(filters) {
|
|
|
572
609
|
}).filter(Boolean);
|
|
573
610
|
}
|
|
574
611
|
|
|
612
|
+
const sitemap = z.object({
|
|
613
|
+
loc: z.string().optional(),
|
|
614
|
+
lastmod: z.date().optional(),
|
|
615
|
+
changefreq: z.union([z.literal("always"), z.literal("hourly"), z.literal("daily"), z.literal("weekly"), z.literal("monthly"), z.literal("yearly"), z.literal("never")]).optional(),
|
|
616
|
+
priority: z.number().optional(),
|
|
617
|
+
images: z.array(z.object({
|
|
618
|
+
loc: z.string(),
|
|
619
|
+
caption: z.string().optional(),
|
|
620
|
+
geo_location: z.string().optional(),
|
|
621
|
+
title: z.string().optional(),
|
|
622
|
+
license: z.string().optional()
|
|
623
|
+
})).optional(),
|
|
624
|
+
videos: z.array(z.object({
|
|
625
|
+
content_loc: z.string(),
|
|
626
|
+
player_loc: z.string().optional(),
|
|
627
|
+
duration: z.string().optional(),
|
|
628
|
+
expiration_date: z.date().optional(),
|
|
629
|
+
rating: z.number().optional(),
|
|
630
|
+
view_count: z.number().optional(),
|
|
631
|
+
publication_date: z.date().optional(),
|
|
632
|
+
family_friendly: z.boolean().optional(),
|
|
633
|
+
tag: z.string().optional(),
|
|
634
|
+
category: z.string().optional(),
|
|
635
|
+
restriction: z.object({
|
|
636
|
+
relationship: z.literal("allow").optional(),
|
|
637
|
+
value: z.string().optional()
|
|
638
|
+
}).optional(),
|
|
639
|
+
gallery_loc: z.string().optional(),
|
|
640
|
+
price: z.string().optional(),
|
|
641
|
+
requires_subscription: z.boolean().optional(),
|
|
642
|
+
uploader: z.string().optional()
|
|
643
|
+
})).optional()
|
|
644
|
+
}).optional();
|
|
645
|
+
function asSitemapCollection(collection) {
|
|
646
|
+
if (collection.type !== "page") {
|
|
647
|
+
return;
|
|
648
|
+
}
|
|
649
|
+
if (!collection.schema) {
|
|
650
|
+
collection.schema = z.object({
|
|
651
|
+
sitemap
|
|
652
|
+
});
|
|
653
|
+
} else {
|
|
654
|
+
collection.schema = collection.schema.extend({
|
|
655
|
+
sitemap
|
|
656
|
+
});
|
|
657
|
+
}
|
|
658
|
+
return collection;
|
|
659
|
+
}
|
|
660
|
+
|
|
575
661
|
const module = defineNuxtModule({
|
|
576
662
|
meta: {
|
|
577
663
|
name: "@nuxtjs/sitemap",
|
|
@@ -788,6 +874,7 @@ declare module 'nitropack' {
|
|
|
788
874
|
}
|
|
789
875
|
interface NitroRuntimeHooks {
|
|
790
876
|
'sitemap:index-resolved': (ctx: import('${typesPath}').SitemapIndexRenderCtx) => void | Promise<void>
|
|
877
|
+
'sitemap:input': (ctx: import('${typesPath}').SitemapInputCtx) => void | Promise<void>
|
|
791
878
|
'sitemap:resolved': (ctx: import('${typesPath}').SitemapRenderCtx) => void | Promise<void>
|
|
792
879
|
'sitemap:output': (ctx: import('${typesPath}').SitemapOutputHookCtx) => void | Promise<void>
|
|
793
880
|
}
|
|
@@ -832,7 +919,7 @@ declare module 'vue-router' {
|
|
|
832
919
|
nuxt.options.nitro.routeRules["/sitemap_index.xml"] = routeRules;
|
|
833
920
|
if (typeof config.sitemaps === "object") {
|
|
834
921
|
for (const k in config.sitemaps) {
|
|
835
|
-
nuxt.options.nitro.routeRules[joinURL(config.sitemapsPathPrefix, `/${k}.xml`)] = routeRules;
|
|
922
|
+
nuxt.options.nitro.routeRules[joinURL(config.sitemapsPathPrefix || "", `/${k}.xml`)] = routeRules;
|
|
836
923
|
}
|
|
837
924
|
} else {
|
|
838
925
|
nuxt.options.nitro.routeRules[`/${config.sitemapName}`] = routeRules;
|
|
@@ -845,11 +932,65 @@ declare module 'vue-router' {
|
|
|
845
932
|
if (config.experimentalCompression)
|
|
846
933
|
addServerPlugin(resolve("./runtime/server/plugins/compression"));
|
|
847
934
|
const isNuxtContentDocumentDriven = !!nuxt.options.content?.documentDriven || config.strictNuxtContentPaths;
|
|
848
|
-
|
|
849
|
-
|
|
935
|
+
const usingNuxtContent = hasNuxtModule("@nuxt/content");
|
|
936
|
+
const isNuxtContentV3 = usingNuxtContent && await hasNuxtModuleCompatibility("@nuxt/content", "^3");
|
|
937
|
+
const nuxtV3Collections = /* @__PURE__ */ new Set();
|
|
938
|
+
const isNuxtContentV2 = usingNuxtContent && await hasNuxtModuleCompatibility("@nuxt/content", "^2");
|
|
939
|
+
if (isNuxtContentV3) {
|
|
940
|
+
nuxt.options.alias["#sitemap/content-v3-nitro-path"] = resolve(dirname(resolveModule("@nuxt/content")), "runtime/nitro");
|
|
941
|
+
nuxt.hooks.hook("content:file:afterParse", (ctx) => {
|
|
942
|
+
const content = ctx.content;
|
|
943
|
+
nuxtV3Collections.add(ctx.collection.name);
|
|
944
|
+
if (!("sitemap" in ctx.collection.fields)) {
|
|
945
|
+
return;
|
|
946
|
+
}
|
|
947
|
+
const images = [];
|
|
948
|
+
if (config.discoverImages) {
|
|
949
|
+
images.push(
|
|
950
|
+
...content.body.value?.filter(
|
|
951
|
+
(c) => ["image", "img", "nuxtimg", "nuxt-img"].includes(c[0])
|
|
952
|
+
).filter((c) => c[1]?.src).map((c) => ({ loc: c[1].src })) || []
|
|
953
|
+
);
|
|
954
|
+
}
|
|
955
|
+
const sitemapConfig = typeof content.sitemap === "object" ? content.sitemap : {};
|
|
956
|
+
const lastmod = content.seo?.articleModifiedTime || content.updatedAt;
|
|
957
|
+
const defaults = {
|
|
958
|
+
loc: content.path
|
|
959
|
+
};
|
|
960
|
+
if (images.length > 0)
|
|
961
|
+
defaults.images = images;
|
|
962
|
+
if (lastmod)
|
|
963
|
+
defaults.lastmod = lastmod;
|
|
964
|
+
const definition = defu(sitemapConfig, defaults);
|
|
965
|
+
if (!definition.loc) {
|
|
966
|
+
if (content.path && content.path && content.path.startsWith("/"))
|
|
967
|
+
definition.loc = content.path;
|
|
968
|
+
}
|
|
969
|
+
content.sitemap = definition;
|
|
970
|
+
if (!definition.loc)
|
|
971
|
+
delete content.sitemap;
|
|
972
|
+
ctx.content = content;
|
|
973
|
+
});
|
|
974
|
+
addServerHandler({
|
|
975
|
+
route: "/__sitemap__/nuxt-content-urls.json",
|
|
976
|
+
handler: resolve("./runtime/server/routes/__sitemap__/nuxt-content-urls-v3")
|
|
977
|
+
});
|
|
978
|
+
if (config.strictNuxtContentPaths) {
|
|
979
|
+
logger.warn("You have set `strictNuxtContentPaths: true` but are using @nuxt/content v3. This is not required, please remove it.");
|
|
980
|
+
}
|
|
981
|
+
appGlobalSources.push({
|
|
982
|
+
context: {
|
|
983
|
+
name: "@nuxt/content@v3:urls",
|
|
984
|
+
description: "Generated from your markdown files.",
|
|
985
|
+
tips: [`Parsing the following collections: ${Array.from(nuxtV3Collections).join(", ")}`]
|
|
986
|
+
},
|
|
987
|
+
fetch: "/__sitemap__/nuxt-content-urls.json"
|
|
988
|
+
});
|
|
989
|
+
} else if (isNuxtContentV2) {
|
|
990
|
+
addServerPlugin(resolve("./runtime/server/plugins/nuxt-content-v2"));
|
|
850
991
|
addServerHandler({
|
|
851
992
|
route: "/__sitemap__/nuxt-content-urls.json",
|
|
852
|
-
handler: resolve("./runtime/server/routes/__sitemap__/nuxt-content-urls")
|
|
993
|
+
handler: resolve("./runtime/server/routes/__sitemap__/nuxt-content-urls-v2")
|
|
853
994
|
});
|
|
854
995
|
const tips = [];
|
|
855
996
|
if (nuxt.options.content?.documentDriven)
|
|
@@ -860,7 +1001,7 @@ declare module 'vue-router' {
|
|
|
860
1001
|
tips.push("You can provide a `sitemap` key in your markdown frontmatter to configure specific URLs. Make sure you include a `loc`.");
|
|
861
1002
|
appGlobalSources.push({
|
|
862
1003
|
context: {
|
|
863
|
-
name: "@nuxt/content:urls",
|
|
1004
|
+
name: "@nuxt/content@v2:urls",
|
|
864
1005
|
description: "Generated from your markdown files.",
|
|
865
1006
|
tips
|
|
866
1007
|
},
|
|
@@ -875,12 +1016,23 @@ declare module 'vue-router' {
|
|
|
875
1016
|
lazy: true,
|
|
876
1017
|
middleware: false
|
|
877
1018
|
});
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
1019
|
+
if (config.sitemapsPathPrefix && config.sitemapsPathPrefix !== "/") {
|
|
1020
|
+
addServerHandler({
|
|
1021
|
+
route: joinURL(config.sitemapsPathPrefix, `/**:sitemap`),
|
|
1022
|
+
handler: resolve("./runtime/server/routes/sitemap/[sitemap].xml"),
|
|
1023
|
+
lazy: true,
|
|
1024
|
+
middleware: false
|
|
1025
|
+
});
|
|
1026
|
+
} else {
|
|
1027
|
+
for (const sitemapName of Object.keys(config.sitemaps || {})) {
|
|
1028
|
+
addServerHandler({
|
|
1029
|
+
route: withLeadingSlash(`${sitemapName}.xml`),
|
|
1030
|
+
handler: resolve("./runtime/server/routes/sitemap/[sitemap].xml"),
|
|
1031
|
+
lazy: true,
|
|
1032
|
+
middleware: false
|
|
1033
|
+
});
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
884
1036
|
sitemaps.index = {
|
|
885
1037
|
sitemapName: "index",
|
|
886
1038
|
_route: withBase("sitemap_index.xml", nuxt.options.app.baseURL || "/"),
|
|
@@ -895,7 +1047,7 @@ declare module 'vue-router' {
|
|
|
895
1047
|
sitemaps[sitemapName] = defu(
|
|
896
1048
|
{
|
|
897
1049
|
sitemapName,
|
|
898
|
-
_route: withBase(joinURL(config.sitemapsPathPrefix, `${sitemapName}.xml`), nuxt.options.app.baseURL || "/"),
|
|
1050
|
+
_route: withBase(joinURL(config.sitemapsPathPrefix || "", `${sitemapName}.xml`), nuxt.options.app.baseURL || "/"),
|
|
899
1051
|
_hasSourceChunk: typeof definition.urls !== "undefined" || definition.sources?.length
|
|
900
1052
|
},
|
|
901
1053
|
{ ...definition, urls: void 0, sources: void 0 },
|
|
@@ -1026,9 +1178,9 @@ declare module 'vue-router' {
|
|
|
1026
1178
|
...((await nitroPromise)._prerenderedRoutes || []).filter((r) => {
|
|
1027
1179
|
const lastSegment = r.route.split("/").pop();
|
|
1028
1180
|
const isExplicitFile = !!lastSegment?.match(/\.[0-9a-z]+$/i)?.[0];
|
|
1029
|
-
if (r.error || ["/200.html", "/404.html", "/index.html"].includes(r.route))
|
|
1181
|
+
if (isExplicitFile || r.error || ["/200.html", "/404.html", "/index.html"].includes(r.route))
|
|
1030
1182
|
return false;
|
|
1031
|
-
return r.contentType?.includes("text/html")
|
|
1183
|
+
return r.contentType?.includes("text/html");
|
|
1032
1184
|
}).map((r) => r._sitemap)
|
|
1033
1185
|
];
|
|
1034
1186
|
const pageSource = convertNuxtPagesToSitemapEntries(await pagesPromise, {
|
|
@@ -1159,4 +1311,4 @@ declare module 'vue-router' {
|
|
|
1159
1311
|
}
|
|
1160
1312
|
});
|
|
1161
1313
|
|
|
1162
|
-
export { module as default };
|
|
1314
|
+
export { asSitemapCollection, module as default };
|
|
@@ -2,7 +2,7 @@ import { defu } from "defu";
|
|
|
2
2
|
import { useSimpleSitemapRuntimeConfig } from "../utils.js";
|
|
3
3
|
import { defineNitroPlugin } from "#imports";
|
|
4
4
|
export default defineNitroPlugin((nitroApp) => {
|
|
5
|
-
const { discoverImages,
|
|
5
|
+
const { discoverImages, isNuxtContentDocumentDriven } = useSimpleSitemapRuntimeConfig();
|
|
6
6
|
nitroApp.hooks.hook("content:file:afterParse", async (content) => {
|
|
7
7
|
const validExtensions = ["md", "mdx"];
|
|
8
8
|
if (content.sitemap === false || content._draft || !validExtensions.includes(content._extension) || content._partial || content.robots === false)
|
|
@@ -13,12 +13,6 @@ export default defineNitroPlugin((nitroApp) => {
|
|
|
13
13
|
(c) => c.tag && c.props?.src && ["image", "img", "nuxtimg", "nuxt-img"].includes(c.tag.toLowerCase())
|
|
14
14
|
).map((i) => ({ loc: i.props.src })) || [];
|
|
15
15
|
}
|
|
16
|
-
let videos = [];
|
|
17
|
-
if (discoverVideos) {
|
|
18
|
-
videos = content.body?.children?.filter(
|
|
19
|
-
(c) => c.tag && c.props?.src && ["video"].includes(c.tag.toLowerCase())
|
|
20
|
-
).map((i) => ({ content_loc: i.props.src })) || [];
|
|
21
|
-
}
|
|
22
16
|
const sitemapConfig = typeof content.sitemap === "object" ? content.sitemap : {};
|
|
23
17
|
const lastmod = content.modifiedAt || content.updatedAt;
|
|
24
18
|
const defaults = {};
|
|
@@ -26,10 +20,8 @@ export default defineNitroPlugin((nitroApp) => {
|
|
|
26
20
|
defaults.loc = content._path;
|
|
27
21
|
if (content.path)
|
|
28
22
|
defaults.loc = content.path;
|
|
29
|
-
if (images
|
|
23
|
+
if (images?.length)
|
|
30
24
|
defaults.images = images;
|
|
31
|
-
if (videos.length > 0)
|
|
32
|
-
defaults.videos = videos;
|
|
33
25
|
if (lastmod)
|
|
34
26
|
defaults.lastmod = lastmod;
|
|
35
27
|
const definition = defu(sitemapConfig, defaults);
|
|
@@ -15,7 +15,7 @@ declare const _default: import("h3").EventHandler<import("h3").EventHandlerReque
|
|
|
15
15
|
autoI18n?: import("../../../types").AutoI18nConfig;
|
|
16
16
|
isMultiSitemap: boolean;
|
|
17
17
|
isI18nMapped: boolean;
|
|
18
|
-
sitemapsPathPrefix: string;
|
|
18
|
+
sitemapsPathPrefix: string | false;
|
|
19
19
|
cacheMaxAgeSeconds: number | false;
|
|
20
20
|
sitemapName: string;
|
|
21
21
|
excludeAppSources: true | (import("../../../types").AppSourceContext[]);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { defineEventHandler } from "h3";
|
|
2
|
+
import { queryCollectionWithEvent } from "#sitemap/content-v3-nitro-path";
|
|
3
|
+
import manifest from "#content/manifest";
|
|
4
|
+
export default defineEventHandler(async (e) => {
|
|
5
|
+
const collections = [];
|
|
6
|
+
for (const collection in manifest) {
|
|
7
|
+
if (manifest[collection].fields.sitemap) {
|
|
8
|
+
collections.push(collection);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
const contentList = [];
|
|
12
|
+
for (const collection of collections) {
|
|
13
|
+
contentList.push(queryCollectionWithEvent(e, collection).select("sitemap").where("sitemap", "IS NOT NULL").all());
|
|
14
|
+
}
|
|
15
|
+
const results = await Promise.all(contentList);
|
|
16
|
+
return results.flat().map((c) => c.sitemap).filter(Boolean);
|
|
17
|
+
});
|
|
@@ -5,7 +5,7 @@ import { createSitemap } from "../../sitemap/nitro.js";
|
|
|
5
5
|
export default defineEventHandler(async (e) => {
|
|
6
6
|
const runtimeConfig = useSimpleSitemapRuntimeConfig(e);
|
|
7
7
|
const { sitemaps } = runtimeConfig;
|
|
8
|
-
const sitemapName = withoutLeadingSlash(withoutTrailingSlash((getRouterParam(e, "sitemap") || e.path)?.replace(".xml", "").replace(runtimeConfig.sitemapsPathPrefix, "")));
|
|
8
|
+
const sitemapName = withoutLeadingSlash(withoutTrailingSlash((getRouterParam(e, "sitemap") || e.path)?.replace(".xml", "").replace(runtimeConfig.sitemapsPathPrefix || "", "")));
|
|
9
9
|
const isChunking = typeof sitemaps.chunks !== "undefined" && !Number.isNaN(Number(sitemapName));
|
|
10
10
|
if (!sitemapName || !(sitemapName in sitemaps) && !isChunking) {
|
|
11
11
|
return createError({
|
|
@@ -8,12 +8,12 @@ export default defineEventHandler(async (e) => {
|
|
|
8
8
|
const runtimeConfig = useSimpleSitemapRuntimeConfig();
|
|
9
9
|
const nitro = useNitroApp();
|
|
10
10
|
const resolvers = useNitroUrlResolvers(e);
|
|
11
|
-
const sitemaps = await buildSitemapIndex(resolvers, runtimeConfig);
|
|
11
|
+
const sitemaps = await buildSitemapIndex(resolvers, runtimeConfig, nitro);
|
|
12
12
|
if (import.meta.prerender) {
|
|
13
13
|
appendHeader(
|
|
14
14
|
e,
|
|
15
15
|
"x-nitro-prerender",
|
|
16
|
-
sitemaps.filter((entry) => !!entry._sitemapName).map((entry) => encodeURIComponent(joinURL(runtimeConfig.sitemapsPathPrefix, `/${entry._sitemapName}.xml`))).join(", ")
|
|
16
|
+
sitemaps.filter((entry) => !!entry._sitemapName).map((entry) => encodeURIComponent(joinURL(runtimeConfig.sitemapsPathPrefix || "", `/${entry._sitemapName}.xml`))).join(", ")
|
|
17
17
|
);
|
|
18
18
|
}
|
|
19
19
|
const indexResolvedCtx = { sitemaps };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { NitroApp } from 'nitropack/types';
|
|
1
2
|
import type { ModuleRuntimeConfig, NitroUrlResolvers, SitemapIndexEntry } from '../../../types.js';
|
|
2
|
-
export declare function buildSitemapIndex(resolvers: NitroUrlResolvers, runtimeConfig: ModuleRuntimeConfig): Promise<SitemapIndexEntry[]>;
|
|
3
|
+
export declare function buildSitemapIndex(resolvers: NitroUrlResolvers, runtimeConfig: ModuleRuntimeConfig, nitro?: NitroApp): Promise<SitemapIndexEntry[]>;
|
|
3
4
|
export declare function urlsToIndexXml(sitemaps: SitemapIndexEntry[], resolvers: NitroUrlResolvers, { version, xsl, credits, minify }: Pick<ModuleRuntimeConfig, 'version' | 'xsl' | 'credits' | 'minify'>): string;
|
|
@@ -5,7 +5,7 @@ import { globalSitemapSources, resolveSitemapSources } from "../urlset/sources.j
|
|
|
5
5
|
import { sortSitemapUrls } from "../urlset/sort.js";
|
|
6
6
|
import { escapeValueForXml, wrapSitemapXml } from "./xml.js";
|
|
7
7
|
import { resolveSitemapEntries } from "./sitemap.js";
|
|
8
|
-
export async function buildSitemapIndex(resolvers, runtimeConfig) {
|
|
8
|
+
export async function buildSitemapIndex(resolvers, runtimeConfig, nitro) {
|
|
9
9
|
const {
|
|
10
10
|
sitemaps,
|
|
11
11
|
// enhancing
|
|
@@ -27,7 +27,12 @@ export async function buildSitemapIndex(resolvers, runtimeConfig) {
|
|
|
27
27
|
if (isChunking) {
|
|
28
28
|
const sitemap = sitemaps.chunks;
|
|
29
29
|
const sources = await resolveSitemapSources(await globalSitemapSources());
|
|
30
|
-
const
|
|
30
|
+
const resolvedCtx = {
|
|
31
|
+
urls: sources.flatMap((s) => s.urls),
|
|
32
|
+
sitemapName: sitemap.sitemapName
|
|
33
|
+
};
|
|
34
|
+
await nitro?.hooks.callHook("sitemap:input", resolvedCtx);
|
|
35
|
+
const normalisedUrls = resolveSitemapEntries(sitemap, resolvedCtx.urls, { autoI18n, isI18nMapped }, resolvers);
|
|
31
36
|
const enhancedUrls = normalisedUrls.map((e) => defu(e, sitemap.defaults));
|
|
32
37
|
const sortedUrls = maybeSort(enhancedUrls);
|
|
33
38
|
sortedUrls.forEach((url, i) => {
|
|
@@ -47,7 +52,7 @@ export async function buildSitemapIndex(resolvers, runtimeConfig) {
|
|
|
47
52
|
const sitemap = chunks[name];
|
|
48
53
|
const entry = {
|
|
49
54
|
_sitemapName: name,
|
|
50
|
-
sitemap: resolvers.canonicalUrlResolver(joinURL(sitemapsPathPrefix, `/${name}.xml`))
|
|
55
|
+
sitemap: resolvers.canonicalUrlResolver(joinURL(sitemapsPathPrefix || "", `/${name}.xml`))
|
|
51
56
|
};
|
|
52
57
|
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];
|
|
53
58
|
if (!lastmod && autoLastmod)
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { NitroApp } from 'nitropack/types';
|
|
2
|
+
import type { AutoI18nConfig, ModuleRuntimeConfig, NitroUrlResolvers, ResolvedSitemapUrl, SitemapDefinition, SitemapUrlInput } from '../../../types.js';
|
|
2
3
|
export interface NormalizedI18n extends ResolvedSitemapUrl {
|
|
3
4
|
_pathWithoutPrefix: string;
|
|
4
5
|
_locale: AutoI18nConfig['locales'][number];
|
|
5
6
|
_index?: number;
|
|
6
7
|
}
|
|
7
|
-
export declare function resolveSitemapEntries(sitemap: SitemapDefinition,
|
|
8
|
-
export declare function buildSitemapUrls(sitemap: SitemapDefinition, resolvers: NitroUrlResolvers, runtimeConfig: ModuleRuntimeConfig): Promise<ResolvedSitemapUrl[]>;
|
|
8
|
+
export declare function resolveSitemapEntries(sitemap: SitemapDefinition, urls: SitemapUrlInput[], runtimeConfig: Pick<ModuleRuntimeConfig, 'autoI18n' | 'isI18nMapped'>, resolvers?: NitroUrlResolvers): ResolvedSitemapUrl[];
|
|
9
|
+
export declare function buildSitemapUrls(sitemap: SitemapDefinition, resolvers: NitroUrlResolvers, runtimeConfig: ModuleRuntimeConfig, nitro?: NitroApp): Promise<ResolvedSitemapUrl[]>;
|
|
9
10
|
export declare function urlsToXml(urls: ResolvedSitemapUrl[], resolvers: NitroUrlResolvers, { version, xsl, credits, minify }: Pick<ModuleRuntimeConfig, 'version' | 'xsl' | 'credits' | 'minify'>): string;
|
|
@@ -5,7 +5,7 @@ import { childSitemapSources, globalSitemapSources, resolveSitemapSources } from
|
|
|
5
5
|
import { sortSitemapUrls } from "../urlset/sort.js";
|
|
6
6
|
import { createPathFilter, logger, splitForLocales } from "../../../utils-pure.js";
|
|
7
7
|
import { handleEntry, wrapSitemapXml } from "./xml.js";
|
|
8
|
-
export function resolveSitemapEntries(sitemap,
|
|
8
|
+
export function resolveSitemapEntries(sitemap, urls, runtimeConfig, resolvers) {
|
|
9
9
|
const {
|
|
10
10
|
autoI18n,
|
|
11
11
|
isI18nMapped
|
|
@@ -14,7 +14,7 @@ export function resolveSitemapEntries(sitemap, sources, runtimeConfig, resolvers
|
|
|
14
14
|
include: sitemap.include,
|
|
15
15
|
exclude: sitemap.exclude
|
|
16
16
|
});
|
|
17
|
-
const _urls =
|
|
17
|
+
const _urls = urls.map((_e) => {
|
|
18
18
|
const e = preNormalizeEntry(_e, resolvers);
|
|
19
19
|
if (!e.loc || !filterPath(e.loc))
|
|
20
20
|
return false;
|
|
@@ -139,7 +139,7 @@ export function resolveSitemapEntries(sitemap, sources, runtimeConfig, resolvers
|
|
|
139
139
|
}
|
|
140
140
|
return _urls;
|
|
141
141
|
}
|
|
142
|
-
export async function buildSitemapUrls(sitemap, resolvers, runtimeConfig) {
|
|
142
|
+
export async function buildSitemapUrls(sitemap, resolvers, runtimeConfig, nitro) {
|
|
143
143
|
const {
|
|
144
144
|
sitemaps,
|
|
145
145
|
// enhancing
|
|
@@ -175,10 +175,15 @@ export async function buildSitemapUrls(sitemap, resolvers, runtimeConfig) {
|
|
|
175
175
|
});
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
const
|
|
181
|
-
const
|
|
178
|
+
const sourcesInput = sitemap.includeAppSources ? await globalSitemapSources() : [];
|
|
179
|
+
sourcesInput.push(...await childSitemapSources(sitemap));
|
|
180
|
+
const sources = await resolveSitemapSources(sourcesInput, resolvers.event);
|
|
181
|
+
const resolvedCtx = {
|
|
182
|
+
urls: sources.flatMap((s) => s.urls),
|
|
183
|
+
sitemapName: sitemap.sitemapName
|
|
184
|
+
};
|
|
185
|
+
await nitro?.hooks.callHook("sitemap:input", resolvedCtx);
|
|
186
|
+
const enhancedUrls = resolveSitemapEntries(sitemap, resolvedCtx.urls, { autoI18n, isI18nMapped }, resolvers);
|
|
182
187
|
const filteredUrls = enhancedUrls.filter((e) => {
|
|
183
188
|
if (isMultiSitemap && e._sitemap && sitemap.sitemapName)
|
|
184
189
|
return e._sitemap === sitemap.sitemapName;
|
|
@@ -4,7 +4,7 @@ import { defu } from "defu";
|
|
|
4
4
|
import { logger, mergeOnKey, splitForLocales } from "../../utils-pure.js";
|
|
5
5
|
import { createNitroRouteRuleMatcher } from "../kit.js";
|
|
6
6
|
import { buildSitemapUrls, urlsToXml } from "./builder/sitemap.js";
|
|
7
|
-
import { normaliseEntry } from "./urlset/normalise.js";
|
|
7
|
+
import { normaliseEntry, preNormalizeEntry } from "./urlset/normalise.js";
|
|
8
8
|
import { sortSitemapUrls } from "./urlset/sort.js";
|
|
9
9
|
import { useNitroApp, createSitePathResolver, getPathRobotConfig, useSiteConfig } from "#imports";
|
|
10
10
|
export function useNitroUrlResolvers(e) {
|
|
@@ -39,7 +39,7 @@ export async function createSitemap(event, definition, runtimeConfig) {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
const resolvers = useNitroUrlResolvers(event);
|
|
42
|
-
let sitemapUrls = await buildSitemapUrls(definition, resolvers, runtimeConfig);
|
|
42
|
+
let sitemapUrls = await buildSitemapUrls(definition, resolvers, runtimeConfig, nitro);
|
|
43
43
|
const routeRuleMatcher = createNitroRouteRuleMatcher();
|
|
44
44
|
const { autoI18n } = runtimeConfig;
|
|
45
45
|
sitemapUrls = sitemapUrls.map((u) => {
|
|
@@ -63,11 +63,15 @@ export async function createSitemap(event, definition, runtimeConfig) {
|
|
|
63
63
|
return false;
|
|
64
64
|
return routeRules.sitemap ? defu(u, routeRules.sitemap) : u;
|
|
65
65
|
}).filter(Boolean);
|
|
66
|
+
const locSize = sitemapUrls.length;
|
|
66
67
|
const resolvedCtx = {
|
|
67
68
|
urls: sitemapUrls,
|
|
68
69
|
sitemapName
|
|
69
70
|
};
|
|
70
71
|
await nitro.hooks.callHook("sitemap:resolved", resolvedCtx);
|
|
72
|
+
if (resolvedCtx.urls.length !== locSize) {
|
|
73
|
+
resolvedCtx.urls = resolvedCtx.urls.map((e) => preNormalizeEntry(e, resolvers));
|
|
74
|
+
}
|
|
71
75
|
const maybeSort = (urls2) => runtimeConfig.sortEntries ? sortSitemapUrls(urls2) : urls2;
|
|
72
76
|
const normalizedPreDedupe = resolvedCtx.urls.map((e) => normaliseEntry(e, definition.defaults, resolvers));
|
|
73
77
|
const urls = maybeSort(mergeOnKey(normalizedPreDedupe, "_key").map((e) => normaliseEntry(e, definition.defaults, resolvers)));
|