@sonordev/site-kit 5.8.3 → 6.0.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/README.md +11 -11
- package/agent-manifest.json +17 -11
- package/dist/{AnalyticsProvider-IGOD64MY.mjs → AnalyticsProvider-6QVM2B6O.mjs} +6 -6
- package/dist/{AnalyticsProvider-IGOD64MY.mjs.map → AnalyticsProvider-6QVM2B6O.mjs.map} +1 -1
- package/dist/{AnalyticsProvider-DPXR6FSV.js → AnalyticsProvider-AZQXLRWN.js} +10 -10
- package/dist/{AnalyticsProvider-DPXR6FSV.js.map → AnalyticsProvider-AZQXLRWN.js.map} +1 -1
- package/dist/ArticleFaqSection-3KZ24MFS.js +13 -0
- package/dist/ArticleFaqSection-3KZ24MFS.js.map +1 -0
- package/dist/ArticleFaqSection-XZPXJVH4.mjs +11 -0
- package/dist/ArticleFaqSection-XZPXJVH4.mjs.map +1 -0
- package/dist/{BlogViewTracker-Q7Y4MN4B.mjs → ArticleViewTracker-AEWJMXQQ.mjs} +13 -13
- package/dist/ArticleViewTracker-AEWJMXQQ.mjs.map +1 -0
- package/dist/{BlogViewTracker-S3CSRBIZ.js → ArticleViewTracker-CFBTQ46B.js} +16 -16
- package/dist/ArticleViewTracker-CFBTQ46B.js.map +1 -0
- package/dist/ChatWidget-6626OPXO.mjs +15 -0
- package/dist/{ChatWidget-G3KOUDX5.mjs.map → ChatWidget-6626OPXO.mjs.map} +1 -1
- package/dist/ChatWidget-U24AYLXF.js +24 -0
- package/dist/{ChatWidget-76R7NOWD.js.map → ChatWidget-U24AYLXF.js.map} +1 -1
- package/dist/EngageWidget-TR47W2ZI.mjs +12 -0
- package/dist/{EngageWidget-UJ47PQFG.mjs.map → EngageWidget-TR47W2ZI.mjs.map} +1 -1
- package/dist/EngageWidget-XUTDFRF3.js +21 -0
- package/dist/{EngageWidget-HD4F2ZVE.js.map → EngageWidget-XUTDFRF3.js.map} +1 -1
- package/dist/{FileField-WNMEA3PK.mjs → FileField-DNNC5IPS.mjs} +5 -5
- package/dist/{FileField-WNMEA3PK.mjs.map → FileField-DNNC5IPS.mjs.map} +1 -1
- package/dist/{FileField-FV6WSZMX.js → FileField-R4RQG77G.js} +6 -6
- package/dist/{FileField-FV6WSZMX.js.map → FileField-R4RQG77G.js.map} +1 -1
- package/dist/{FormSpotlight-2VRQXEFI.js → FormSpotlight-7ILRAD3W.js} +9 -9
- package/dist/{FormSpotlight-2VRQXEFI.js.map → FormSpotlight-7ILRAD3W.js.map} +1 -1
- package/dist/{FormSpotlight-NGWEPGI4.mjs → FormSpotlight-MXY4I46H.mjs} +3 -3
- package/dist/{FormSpotlight-NGWEPGI4.mjs.map → FormSpotlight-MXY4I46H.mjs.map} +1 -1
- package/dist/{FormStage-Q3KQVFVW.js → FormStage-CVD3I3SE.js} +9 -9
- package/dist/{FormStage-Q3KQVFVW.js.map → FormStage-CVD3I3SE.js.map} +1 -1
- package/dist/{FormStage-7L4BBOLC.mjs → FormStage-FDJGRGEU.mjs} +3 -3
- package/dist/{FormStage-7L4BBOLC.mjs.map → FormStage-FDJGRGEU.mjs.map} +1 -1
- package/dist/ManagedForm-5675CLWS.mjs +16 -0
- package/dist/{ManagedForm-Z7QE4KYI.mjs.map → ManagedForm-5675CLWS.mjs.map} +1 -1
- package/dist/ManagedForm-KYIK54SL.js +25 -0
- package/dist/{ManagedForm-4ZGU4R3G.js.map → ManagedForm-KYIK54SL.js.map} +1 -1
- package/dist/{ManagedNewsletterForm-4TVO2VL4.mjs → ManagedNewsletterForm-DFLDGNQU.mjs} +11 -11
- package/dist/ManagedNewsletterForm-DFLDGNQU.mjs.map +1 -0
- package/dist/{ManagedNewsletterForm-22EPZB7Z.js → ManagedNewsletterForm-IH3MRJOD.js} +13 -13
- package/dist/ManagedNewsletterForm-IH3MRJOD.js.map +1 -0
- package/dist/{SignalCore-2N7UZGF3.js → SignalCore-6LYIZFXK.js} +11 -11
- package/dist/{SignalCore-2N7UZGF3.js.map → SignalCore-6LYIZFXK.js.map} +1 -1
- package/dist/{SignalCore-57OK3DHA.mjs → SignalCore-ZH3R6XD3.mjs} +5 -5
- package/dist/{SignalCore-57OK3DHA.mjs.map → SignalCore-ZH3R6XD3.mjs.map} +1 -1
- package/dist/SitemapSync-PKBXWVI6.mjs +9 -0
- package/dist/{SitemapSync-WIUEYOBS.mjs.map → SitemapSync-PKBXWVI6.mjs.map} +1 -1
- package/dist/SitemapSync-PZ76V5MX.js +18 -0
- package/dist/{SitemapSync-GF4OKN4Z.js.map → SitemapSync-PZ76V5MX.js.map} +1 -1
- package/dist/analytics/index.js +9 -9
- package/dist/analytics/index.mjs +4 -4
- package/dist/{blog-styles-7AKRUMV7.mjs → article-styles-DACUAOVT.mjs} +124 -124
- package/dist/article-styles-DACUAOVT.mjs.map +1 -0
- package/dist/{blog-styles-6EY3BS5Y.js → article-styles-JHHTNHOK.js} +125 -125
- package/dist/article-styles-JHHTNHOK.js.map +1 -0
- package/dist/article-tables-EWXG4LNP.js +17 -0
- package/dist/article-tables-EWXG4LNP.js.map +1 -0
- package/dist/article-tables-OGE52LNT.mjs +4 -0
- package/dist/article-tables-OGE52LNT.mjs.map +1 -0
- package/dist/{blog/BlogPost.d.ts → articles/Article.d.ts} +18 -16
- package/dist/articles/Article.d.ts.map +1 -0
- package/dist/{blog/BlogFAQ.d.ts → articles/ArticleFAQ.d.ts} +6 -6
- package/dist/articles/ArticleFAQ.d.ts.map +1 -0
- package/dist/articles/ArticleFaqSection.d.ts +3 -0
- package/dist/articles/ArticleFaqSection.d.ts.map +1 -0
- package/dist/{blog/BlogList.d.ts → articles/ArticleList.d.ts} +16 -16
- package/dist/articles/ArticleList.d.ts.map +1 -0
- package/dist/{blog/BlogViewTracker.d.ts → articles/ArticleViewTracker.d.ts} +4 -4
- package/dist/articles/ArticleViewTracker.d.ts.map +1 -0
- package/dist/{blog → articles}/AuthorCard.d.ts +3 -3
- package/dist/articles/AuthorCard.d.ts.map +1 -0
- package/dist/{blog → articles}/AuthorPage.d.ts +1 -1
- package/dist/articles/AuthorPage.d.ts.map +1 -0
- package/dist/{blog → articles}/ClusterLandingPage.d.ts +6 -6
- package/dist/articles/ClusterLandingPage.d.ts.map +1 -0
- package/dist/{blog → articles}/ClusterNavigation.d.ts +5 -5
- package/dist/articles/ClusterNavigation.d.ts.map +1 -0
- package/dist/{blog → articles}/ManagedNewsletterForm.d.ts +1 -1
- package/dist/articles/ManagedNewsletterForm.d.ts.map +1 -0
- package/dist/{blog → articles}/NewsletterShell.d.ts +1 -1
- package/dist/articles/NewsletterShell.d.ts.map +1 -0
- package/dist/{blog → articles}/NewsletterWidget.d.ts +4 -4
- package/dist/articles/NewsletterWidget.d.ts.map +1 -0
- package/dist/{blog/BlogLayout.d.ts → articles/PublicationLayout.d.ts} +18 -18
- package/dist/articles/PublicationLayout.d.ts.map +1 -0
- package/dist/{blog/BlogSidebar.d.ts → articles/PublicationSidebar.d.ts} +8 -8
- package/dist/articles/PublicationSidebar.d.ts.map +1 -0
- package/dist/{blog → articles}/RelatedPosts.d.ts +6 -6
- package/dist/articles/RelatedPosts.d.ts.map +1 -0
- package/dist/{blog → articles}/ServiceCallout.d.ts +4 -4
- package/dist/articles/ServiceCallout.d.ts.map +1 -0
- package/dist/{blog → articles}/TableOfContents.d.ts +1 -1
- package/dist/articles/TableOfContents.d.ts.map +1 -0
- package/dist/{blog/blog-styles.d.ts → articles/article-styles.d.ts} +5 -5
- package/dist/articles/article-styles.d.ts.map +1 -0
- package/dist/{blog/blog-tables.d.ts → articles/article-tables.d.ts} +4 -4
- package/dist/articles/article-tables.d.ts.map +1 -0
- package/dist/articles/artwork.d.ts +14 -0
- package/dist/articles/artwork.d.ts.map +1 -0
- package/dist/{blog → articles}/author-schema.d.ts +6 -5
- package/dist/articles/author-schema.d.ts.map +1 -0
- package/dist/{blog → articles}/author-social.d.ts +2 -2
- package/dist/articles/author-social.d.ts.map +1 -0
- package/dist/{blog → articles}/excerpt.d.ts +2 -2
- package/dist/articles/excerpt.d.ts.map +1 -0
- package/dist/{blog → articles}/index.d.ts +26 -31
- package/dist/articles/index.d.ts.map +1 -0
- package/dist/{blog → articles}/index.js +39 -73
- package/dist/articles/index.js.map +1 -0
- package/dist/{blog → articles}/index.mjs +16 -17
- package/dist/articles/index.mjs.map +1 -0
- package/dist/articles/news-sitemap.d.ts +47 -0
- package/dist/articles/news-sitemap.d.ts.map +1 -0
- package/dist/{blog/processBlogHtml.d.ts → articles/processArticleHtml.d.ts} +4 -4
- package/dist/articles/processArticleHtml.d.ts.map +1 -0
- package/dist/articles/public-reads.d.ts +27 -0
- package/dist/articles/public-reads.d.ts.map +1 -0
- package/dist/{blog → articles}/reading-time.d.ts +2 -2
- package/dist/articles/reading-time.d.ts.map +1 -0
- package/dist/{blog → articles}/routes.d.ts +16 -12
- package/dist/articles/routes.d.ts.map +1 -0
- package/dist/{blog → articles}/server-core.d.ts +94 -81
- package/dist/articles/server-core.d.ts.map +1 -0
- package/dist/articles/server-ui.d.ts +29 -0
- package/dist/articles/server-ui.d.ts.map +1 -0
- package/dist/{chunk-W2U5SLMY.js → articles/server-ui.js} +378 -499
- package/dist/articles/server-ui.js.map +1 -0
- package/dist/{chunk-MWKI6ZIS.mjs → articles/server-ui.mjs} +328 -474
- package/dist/articles/server-ui.mjs.map +1 -0
- package/dist/{blog → articles}/server.d.ts +94 -81
- package/dist/articles/server.d.ts.map +1 -0
- package/dist/articles/server.js +236 -0
- package/dist/articles/server.mjs +11 -0
- package/dist/{blog → articles}/types.d.ts +34 -34
- package/dist/articles/types.d.ts.map +1 -0
- package/dist/articles/widget-styles.d.ts +9 -0
- package/dist/articles/widget-styles.d.ts.map +1 -0
- package/dist/brand/extract-brand-profile.d.ts +1 -1
- package/dist/{chunk-PIEHBSCN.js → chunk-254IW4FC.js} +9 -9
- package/dist/{chunk-PIEHBSCN.js.map → chunk-254IW4FC.js.map} +1 -1
- package/dist/chunk-2KRAY5NC.mjs +6 -0
- package/dist/{chunk-5FETEH3Y.mjs.map → chunk-2KRAY5NC.mjs.map} +1 -1
- package/dist/{chunk-MQS6AF5K.mjs → chunk-2WEBUZNP.mjs} +3 -3
- package/dist/{chunk-MQS6AF5K.mjs.map → chunk-2WEBUZNP.mjs.map} +1 -1
- package/dist/{chunk-4C5CZJIN.mjs → chunk-2YSB4FIC.mjs} +4 -4
- package/dist/{chunk-4C5CZJIN.mjs.map → chunk-2YSB4FIC.mjs.map} +1 -1
- package/dist/{chunk-I7HOMMIK.js → chunk-3GHPFLEH.js} +15 -15
- package/dist/{chunk-I7HOMMIK.js.map → chunk-3GHPFLEH.js.map} +1 -1
- package/dist/{chunk-CY2RFEW6.js → chunk-3LCJJ6Y6.js} +3 -3
- package/dist/{chunk-CY2RFEW6.js.map → chunk-3LCJJ6Y6.js.map} +1 -1
- package/dist/{chunk-QOOLMSBY.mjs → chunk-3OCXVTN5.mjs} +3 -3
- package/dist/{chunk-QOOLMSBY.mjs.map → chunk-3OCXVTN5.mjs.map} +1 -1
- package/dist/{chunk-AJBOEV4I.mjs → chunk-3T2CVHFO.mjs} +3 -3
- package/dist/chunk-3T2CVHFO.mjs.map +1 -0
- package/dist/{chunk-NR7YZQRR.js → chunk-3U5SVB4W.js} +4 -4
- package/dist/{chunk-NR7YZQRR.js.map → chunk-3U5SVB4W.js.map} +1 -1
- package/dist/{chunk-I3ND4XYW.js → chunk-4BEGKFMN.js} +8 -8
- package/dist/{chunk-I3ND4XYW.js.map → chunk-4BEGKFMN.js.map} +1 -1
- package/dist/{chunk-YFX3Q56O.mjs → chunk-4KAMU5HD.mjs} +3 -3
- package/dist/chunk-4KAMU5HD.mjs.map +1 -0
- package/dist/{chunk-ZPLN537Q.mjs → chunk-4WCA2HM6.mjs} +2 -2
- package/dist/chunk-4WCA2HM6.mjs.map +1 -0
- package/dist/{chunk-6CCS2EGF.js → chunk-5DSUPTBU.js} +13 -13
- package/dist/{chunk-6CCS2EGF.js.map → chunk-5DSUPTBU.js.map} +1 -1
- package/dist/{chunk-GHECYDSZ.mjs → chunk-5F2FIM5A.mjs} +16 -15
- package/dist/chunk-5F2FIM5A.mjs.map +1 -0
- package/dist/{chunk-Y5QZPUL3.mjs → chunk-5YVQWLSQ.mjs} +5 -5
- package/dist/chunk-5YVQWLSQ.mjs.map +1 -0
- package/dist/chunk-6DCAMW62.mjs +55 -0
- package/dist/chunk-6DCAMW62.mjs.map +1 -0
- package/dist/{chunk-Q2NBD54V.js → chunk-7THQ4UW3.js} +2 -2
- package/dist/chunk-7THQ4UW3.js.map +1 -0
- package/dist/{chunk-LGOQ65JQ.mjs → chunk-7TKSRUQU.mjs} +7 -7
- package/dist/{chunk-LGOQ65JQ.mjs.map → chunk-7TKSRUQU.mjs.map} +1 -1
- package/dist/{chunk-4TLFZ6NR.mjs → chunk-AS2HUIDW.mjs} +3 -3
- package/dist/chunk-AS2HUIDW.mjs.map +1 -0
- package/dist/{chunk-YN7QHLWF.js → chunk-BBBJHYPH.js} +5 -5
- package/dist/chunk-BBBJHYPH.js.map +1 -0
- package/dist/{chunk-2TS4ALOA.js → chunk-BZG34WHF.js} +14 -14
- package/dist/{chunk-2TS4ALOA.js.map → chunk-BZG34WHF.js.map} +1 -1
- package/dist/{chunk-4LYW6PMU.mjs → chunk-C2CTLLIO.mjs} +3 -3
- package/dist/chunk-C2CTLLIO.mjs.map +1 -0
- package/dist/{chunk-O237KKCX.mjs → chunk-C5VITBN7.mjs} +5 -5
- package/dist/chunk-C5VITBN7.mjs.map +1 -0
- package/dist/{chunk-75A4KY4X.mjs → chunk-CFRJ2MK5.mjs} +2 -2
- package/dist/chunk-CFRJ2MK5.mjs.map +1 -0
- package/dist/{chunk-G2WC3CXW.js → chunk-CLO3K7PF.js} +2 -2
- package/dist/chunk-CLO3K7PF.js.map +1 -0
- package/dist/{chunk-SFC3OWSE.mjs → chunk-CSSNZGTU.mjs} +4 -4
- package/dist/{chunk-SFC3OWSE.mjs.map → chunk-CSSNZGTU.mjs.map} +1 -1
- package/dist/{chunk-7VZYP4K5.js → chunk-CZGGUPPQ.js} +15 -15
- package/dist/{chunk-7VZYP4K5.js.map → chunk-CZGGUPPQ.js.map} +1 -1
- package/dist/{chunk-FTB5LAD3.js → chunk-D47W5DE4.js} +4 -4
- package/dist/{chunk-FTB5LAD3.js.map → chunk-D47W5DE4.js.map} +1 -1
- package/dist/{chunk-AK6JZ3OE.mjs → chunk-EDLNMGQC.mjs} +3 -3
- package/dist/{chunk-DO6ATNLN.js.map → chunk-EDLNMGQC.mjs.map} +1 -1
- package/dist/chunk-EL74YDNX.js +8 -0
- package/dist/{chunk-7R6H3GQ4.js.map → chunk-EL74YDNX.js.map} +1 -1
- package/dist/{chunk-HX6ZG3PP.js → chunk-EMHSHAVW.js} +3 -3
- package/dist/chunk-EMHSHAVW.js.map +1 -0
- package/dist/{chunk-7TC3GRXQ.js → chunk-G6KQ3C3W.js} +25 -23
- package/dist/chunk-G6KQ3C3W.js.map +1 -0
- package/dist/{chunk-HEOLGDUX.mjs → chunk-GQ3SDRL6.mjs} +4 -4
- package/dist/{chunk-HEOLGDUX.mjs.map → chunk-GQ3SDRL6.mjs.map} +1 -1
- package/dist/{chunk-IIHIRHSW.js → chunk-HFCQGSD2.js} +18 -18
- package/dist/{chunk-IIHIRHSW.js.map → chunk-HFCQGSD2.js.map} +1 -1
- package/dist/{chunk-XZO5I4RS.mjs → chunk-HIZJD7TU.mjs} +3 -3
- package/dist/{chunk-XZO5I4RS.mjs.map → chunk-HIZJD7TU.mjs.map} +1 -1
- package/dist/{chunk-UQY5KC64.mjs → chunk-HOOVYWTO.mjs} +4 -4
- package/dist/{chunk-UQY5KC64.mjs.map → chunk-HOOVYWTO.mjs.map} +1 -1
- package/dist/{chunk-NBT4L2D7.js → chunk-HX5JPNMN.js} +8 -8
- package/dist/{chunk-NBT4L2D7.js.map → chunk-HX5JPNMN.js.map} +1 -1
- package/dist/chunk-HXHRS3PX.mjs +349 -0
- package/dist/chunk-HXHRS3PX.mjs.map +1 -0
- package/dist/{chunk-XBX2K3GA.js → chunk-IBJOGXQI.js} +4 -4
- package/dist/{chunk-XBX2K3GA.js.map → chunk-IBJOGXQI.js.map} +1 -1
- package/dist/{chunk-3OO5EDKD.mjs → chunk-JMNBU2RG.mjs} +9 -9
- package/dist/{chunk-3OO5EDKD.mjs.map → chunk-JMNBU2RG.mjs.map} +1 -1
- package/dist/{chunk-R7GHP3FY.js → chunk-JONWE26J.js} +3 -3
- package/dist/chunk-JONWE26J.js.map +1 -0
- package/dist/{chunk-PQYQHZWV.mjs → chunk-JSXLTZUP.mjs} +6 -6
- package/dist/{chunk-PQYQHZWV.mjs.map → chunk-JSXLTZUP.mjs.map} +1 -1
- package/dist/{chunk-FD72QL42.mjs → chunk-JXCMCASE.mjs} +3 -3
- package/dist/{chunk-FD72QL42.mjs.map → chunk-JXCMCASE.mjs.map} +1 -1
- package/dist/{chunk-TR3F3CLV.js → chunk-KA4NNWOK.js} +10 -10
- package/dist/{chunk-TR3F3CLV.js.map → chunk-KA4NNWOK.js.map} +1 -1
- package/dist/{chunk-K4TCEAUX.js → chunk-KR7ATPAN.js} +5 -5
- package/dist/chunk-KR7ATPAN.js.map +1 -0
- package/dist/{chunk-JLVCWC6A.mjs → chunk-KZVSB5WE.mjs} +2 -2
- package/dist/chunk-KZVSB5WE.mjs.map +1 -0
- package/dist/chunk-LWCAZDY2.js +355 -0
- package/dist/chunk-LWCAZDY2.js.map +1 -0
- package/dist/{chunk-5HFD36AN.js → chunk-MCG4BSRW.js} +5 -5
- package/dist/{chunk-5HFD36AN.js.map → chunk-MCG4BSRW.js.map} +1 -1
- package/dist/{chunk-S2Y7LVQ2.js → chunk-MIYGP34I.js} +14 -14
- package/dist/{chunk-S2Y7LVQ2.js.map → chunk-MIYGP34I.js.map} +1 -1
- package/dist/{chunk-PI3FHABB.js → chunk-MS2EE6LT.js} +10 -10
- package/dist/{chunk-PI3FHABB.js.map → chunk-MS2EE6LT.js.map} +1 -1
- package/dist/{chunk-QQQAW6WY.js → chunk-N6CB7MK7.js} +6 -6
- package/dist/{chunk-QQQAW6WY.js.map → chunk-N6CB7MK7.js.map} +1 -1
- package/dist/{chunk-LMEUYRRR.js → chunk-NAA5J2JM.js} +233 -120
- package/dist/chunk-NAA5J2JM.js.map +1 -0
- package/dist/{chunk-OE7CTIOU.mjs → chunk-NE6QGHFT.mjs} +4 -4
- package/dist/{chunk-OE7CTIOU.mjs.map → chunk-NE6QGHFT.mjs.map} +1 -1
- package/dist/{chunk-NCDF2RK4.mjs → chunk-NR52QHOD.mjs} +3 -3
- package/dist/{chunk-NCDF2RK4.mjs.map → chunk-NR52QHOD.mjs.map} +1 -1
- package/dist/{chunk-GQF6QAQS.js → chunk-OGNX6JT4.js} +5 -5
- package/dist/chunk-OGNX6JT4.js.map +1 -0
- package/dist/{chunk-FVW6FT6L.js → chunk-OSU4QA5M.js} +8 -8
- package/dist/{chunk-FVW6FT6L.js.map → chunk-OSU4QA5M.js.map} +1 -1
- package/dist/{chunk-UEUWC3PH.mjs → chunk-PJYTYM5G.mjs} +3 -3
- package/dist/{chunk-UEUWC3PH.mjs.map → chunk-PJYTYM5G.mjs.map} +1 -1
- package/dist/{chunk-DO6ATNLN.js → chunk-PRAHDLKT.js} +5 -5
- package/dist/chunk-PRAHDLKT.js.map +1 -0
- package/dist/{chunk-RFAAY3BW.mjs → chunk-QEM2F2DC.mjs} +3 -3
- package/dist/{chunk-RFAAY3BW.mjs.map → chunk-QEM2F2DC.mjs.map} +1 -1
- package/dist/{chunk-F3KA6V2Y.js → chunk-QOCLSJIU.js} +3 -3
- package/dist/{chunk-F3KA6V2Y.js.map → chunk-QOCLSJIU.js.map} +1 -1
- package/dist/{chunk-R5IPDAMM.mjs → chunk-QVBAAPNT.mjs} +3 -3
- package/dist/{chunk-R5IPDAMM.mjs.map → chunk-QVBAAPNT.mjs.map} +1 -1
- package/dist/{chunk-POJZA67T.mjs → chunk-RC4L4DV2.mjs} +4 -4
- package/dist/{chunk-POJZA67T.mjs.map → chunk-RC4L4DV2.mjs.map} +1 -1
- package/dist/{chunk-ZVI7MBVF.mjs → chunk-RDPI27TS.mjs} +12 -10
- package/dist/chunk-RDPI27TS.mjs.map +1 -0
- package/dist/{chunk-OEW2LFOV.js → chunk-RLUNEEGM.js} +4 -4
- package/dist/{chunk-OEW2LFOV.js.map → chunk-RLUNEEGM.js.map} +1 -1
- package/dist/{chunk-HBHS5VRN.mjs → chunk-RPCODOWG.mjs} +3 -3
- package/dist/{chunk-HBHS5VRN.mjs.map → chunk-RPCODOWG.mjs.map} +1 -1
- package/dist/{chunk-ROSYCNXG.mjs → chunk-RZGVNDO6.mjs} +4 -4
- package/dist/{chunk-ROSYCNXG.mjs.map → chunk-RZGVNDO6.mjs.map} +1 -1
- package/dist/{chunk-MYMZRHTC.js → chunk-SCRB5DZM.js} +8 -8
- package/dist/{chunk-MYMZRHTC.js.map → chunk-SCRB5DZM.js.map} +1 -1
- package/dist/{chunk-YQTE32QK.js → chunk-SG7CWD2R.js} +17 -16
- package/dist/chunk-SG7CWD2R.js.map +1 -0
- package/dist/{chunk-XEB77DQS.js → chunk-TBXWJJGT.js} +3 -3
- package/dist/chunk-TBXWJJGT.js.map +1 -0
- package/dist/{chunk-QXMWNIKL.mjs → chunk-TCCGP3FT.mjs} +3 -3
- package/dist/{chunk-QXMWNIKL.mjs.map → chunk-TCCGP3FT.mjs.map} +1 -1
- package/dist/{chunk-CZEIHFLW.js → chunk-TCZHRSWY.js} +4 -4
- package/dist/{chunk-CZEIHFLW.js.map → chunk-TCZHRSWY.js.map} +1 -1
- package/dist/{chunk-LB44BNJ2.js → chunk-TST2IKYO.js} +14 -14
- package/dist/{chunk-LB44BNJ2.js.map → chunk-TST2IKYO.js.map} +1 -1
- package/dist/{chunk-U2V542EO.mjs → chunk-UHYRVALN.mjs} +2 -2
- package/dist/{chunk-U2V542EO.mjs.map → chunk-UHYRVALN.mjs.map} +1 -1
- package/dist/{chunk-4L7OHRWB.mjs → chunk-UO6KTHBQ.mjs} +4 -4
- package/dist/{chunk-4L7OHRWB.mjs.map → chunk-UO6KTHBQ.mjs.map} +1 -1
- package/dist/{chunk-H5NBFNND.js → chunk-UZKXOZHR.js} +2 -2
- package/dist/chunk-UZKXOZHR.js.map +1 -0
- package/dist/{chunk-NMM27UOF.js → chunk-VINLIMAX.js} +3 -3
- package/dist/{chunk-NMM27UOF.js.map → chunk-VINLIMAX.js.map} +1 -1
- package/dist/{chunk-UHM3CCCC.js → chunk-WDEGGHTB.js} +12 -12
- package/dist/{chunk-UHM3CCCC.js.map → chunk-WDEGGHTB.js.map} +1 -1
- package/dist/{chunk-PIPERXI7.mjs → chunk-WV5YQL3W.mjs} +3 -3
- package/dist/{chunk-PIPERXI7.mjs.map → chunk-WV5YQL3W.mjs.map} +1 -1
- package/dist/{chunk-3EY5E35M.mjs → chunk-X3MY4PL7.mjs} +210 -107
- package/dist/chunk-X3MY4PL7.mjs.map +1 -0
- package/dist/{chunk-4NVMAYMQ.mjs → chunk-XKXZ4OW4.mjs} +4 -4
- package/dist/{chunk-4NVMAYMQ.mjs.map → chunk-XKXZ4OW4.mjs.map} +1 -1
- package/dist/{chunk-WINDP776.mjs → chunk-XSBKR3VF.mjs} +5 -5
- package/dist/{chunk-WINDP776.mjs.map → chunk-XSBKR3VF.mjs.map} +1 -1
- package/dist/{chunk-SEP5D4MI.js → chunk-Y2CP5J6Q.js} +2 -2
- package/dist/{chunk-SEP5D4MI.js.map → chunk-Y2CP5J6Q.js.map} +1 -1
- package/dist/{chunk-VVBMWV4O.js → chunk-YGDQVZEL.js} +7 -7
- package/dist/{chunk-VVBMWV4O.js.map → chunk-YGDQVZEL.js.map} +1 -1
- package/dist/{chunk-KV7XXLJV.mjs → chunk-YPGUV6BT.mjs} +3 -3
- package/dist/{chunk-KV7XXLJV.mjs.map → chunk-YPGUV6BT.mjs.map} +1 -1
- package/dist/chunk-YRCR7WY3.js +65 -0
- package/dist/chunk-YRCR7WY3.js.map +1 -0
- package/dist/{chunk-F2KW4OJF.mjs → chunk-YWLBQ3L5.mjs} +4 -4
- package/dist/{chunk-F2KW4OJF.mjs.map → chunk-YWLBQ3L5.mjs.map} +1 -1
- package/dist/{chunk-CNTDV7HM.js → chunk-YYEBFQGS.js} +4 -4
- package/dist/{chunk-CNTDV7HM.js.map → chunk-YYEBFQGS.js.map} +1 -1
- package/dist/chunk-ZL35JCDA.mjs +61 -0
- package/dist/chunk-ZL35JCDA.mjs.map +1 -0
- package/dist/chunk-ZR43XFUM.js +60 -0
- package/dist/chunk-ZR43XFUM.js.map +1 -0
- package/dist/{chunk-25F2EXOC.mjs → chunk-ZR4TYCQW.mjs} +3 -3
- package/dist/{chunk-25F2EXOC.mjs.map → chunk-ZR4TYCQW.mjs.map} +1 -1
- package/dist/cli/commands/setup.d.ts +2 -2
- package/dist/cli/commands/sync.d.ts +2 -2
- package/dist/cli/commands/sync.d.ts.map +1 -1
- package/dist/cli/index.js +76 -76
- package/dist/cli/index.mjs +29 -29
- package/dist/client/index.js +5 -5
- package/dist/client/index.mjs +4 -4
- package/dist/commerce/index.js +57 -57
- package/dist/commerce/index.mjs +5 -5
- package/dist/discover-LPN55L5B.js +21 -0
- package/dist/{discover-NGEPXZOD.js.map → discover-LPN55L5B.js.map} +1 -1
- package/dist/discover-QGA6QFSR.mjs +4 -0
- package/dist/{discover-CYXYKHZ2.mjs.map → discover-QGA6QFSR.mjs.map} +1 -1
- package/dist/engage/index.js +13 -13
- package/dist/engage/index.mjs +7 -7
- package/dist/fleet/contract.d.ts +1 -1
- package/dist/fleet/contract.js +12 -12
- package/dist/fleet/contract.mjs +1 -1
- package/dist/fleet/index.js +20 -20
- package/dist/fleet/index.mjs +5 -5
- package/dist/forms/index.js +16 -16
- package/dist/forms/index.mjs +9 -9
- package/dist/forms/server.js +10 -10
- package/dist/forms/server.mjs +8 -8
- package/dist/forms/static.js +7 -7
- package/dist/forms/static.mjs +6 -6
- package/dist/images/index.js +11 -11
- package/dist/images/index.mjs +4 -4
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -70
- package/dist/index.mjs +12 -12
- package/dist/layout/client.js +10 -10
- package/dist/layout/client.mjs +9 -9
- package/dist/layout/index.js +12 -12
- package/dist/layout/index.mjs +10 -10
- package/dist/llms/SpeakableSchema.d.ts +1 -1
- package/dist/llms/SpeakableSchema.d.ts.map +1 -1
- package/dist/llms/client.js +15 -15
- package/dist/llms/client.mjs +1 -1
- package/dist/llms/generateLLMsTxt.d.ts.map +1 -1
- package/dist/llms/index.js +32 -31
- package/dist/llms/index.js.map +1 -1
- package/dist/llms/index.mjs +8 -7
- package/dist/llms/index.mjs.map +1 -1
- package/dist/llms/types.d.ts +7 -0
- package/dist/llms/types.d.ts.map +1 -1
- package/dist/maps/index.js +5 -5
- package/dist/maps/index.mjs +3 -3
- package/dist/og/index.js +7 -7
- package/dist/og/index.mjs +2 -2
- package/dist/og/route.d.ts +6 -6
- package/dist/og/route.js.map +1 -1
- package/dist/og/route.mjs.map +1 -1
- package/dist/og/wiring.d.ts +4 -4
- package/dist/og/wiring.d.ts.map +1 -1
- package/dist/proxy/index.js +5 -5
- package/dist/proxy/index.mjs +3 -3
- package/dist/redirects/index.js +10 -10
- package/dist/redirects/index.mjs +3 -3
- package/dist/redirects/not-found.js +7 -7
- package/dist/redirects/not-found.mjs +3 -3
- package/dist/robots/indexnow.d.ts +17 -0
- package/dist/robots/indexnow.d.ts.map +1 -0
- package/dist/robots/indexnow.js +39 -0
- package/dist/robots/indexnow.js.map +1 -0
- package/dist/robots/indexnow.mjs +34 -0
- package/dist/robots/indexnow.mjs.map +1 -0
- package/dist/search/contract.d.ts +1 -1
- package/dist/search/contract.js +3 -3
- package/dist/search/contract.mjs +1 -1
- package/dist/search/index.js +7 -7
- package/dist/search/index.mjs +5 -5
- package/dist/seo/client.js +6 -6
- package/dist/seo/client.mjs +5 -5
- package/dist/seo/index.js +47 -47
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/index.mjs +12 -12
- package/dist/seo/index.mjs.map +1 -1
- package/dist/seo/register-sitemap-cli.js +12 -12
- package/dist/seo/register-sitemap-cli.mjs +5 -5
- package/dist/seo/server.js +21 -21
- package/dist/seo/server.mjs +5 -5
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +2 -2
- package/dist/{server-api-A2EFCTZX.mjs → server-api-7F5P6CSH.mjs} +6 -6
- package/dist/{server-api-A2EFCTZX.mjs.map → server-api-7F5P6CSH.mjs.map} +1 -1
- package/dist/{server-api-IWTZ7C3O.js → server-api-OC5JNK6R.js} +24 -24
- package/dist/{server-api-IWTZ7C3O.js.map → server-api-OC5JNK6R.js.map} +1 -1
- package/dist/shared/build-entries.d.ts +9 -7
- package/dist/shared/build-entries.d.ts.map +1 -1
- package/dist/shared/version.d.ts +1 -1
- package/dist/signal/index.js +11 -11
- package/dist/signal/index.mjs +2 -2
- package/dist/sitemap/discover.d.ts +1 -1
- package/dist/sitemap/index.d.ts +7 -1
- package/dist/sitemap/index.d.ts.map +1 -1
- package/dist/sitemap/index.js +47 -30
- package/dist/sitemap/index.js.map +1 -1
- package/dist/sitemap/index.mjs +26 -9
- package/dist/sitemap/index.mjs.map +1 -1
- package/dist/sitemap/shared.d.ts +1 -1
- package/dist/sitemap/shared.d.ts.map +1 -1
- package/dist/sites/site-param.d.ts +2 -2
- package/dist/sync/index.js +17 -17
- package/dist/sync/index.mjs +4 -4
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/writeLLMsTxt-ATADOUVZ.js +20 -0
- package/dist/writeLLMsTxt-QJFXBHZF.mjs +11 -0
- package/package.json +20 -14
- package/dist/BlogPostFaqSection-P3GXVQPA.mjs +0 -11
- package/dist/BlogPostFaqSection-P3GXVQPA.mjs.map +0 -1
- package/dist/BlogPostFaqSection-YG5J4B4U.js +0 -13
- package/dist/BlogPostFaqSection-YG5J4B4U.js.map +0 -1
- package/dist/BlogViewTracker-Q7Y4MN4B.mjs.map +0 -1
- package/dist/BlogViewTracker-S3CSRBIZ.js.map +0 -1
- package/dist/ChatWidget-76R7NOWD.js +0 -24
- package/dist/ChatWidget-G3KOUDX5.mjs +0 -15
- package/dist/EngageWidget-HD4F2ZVE.js +0 -21
- package/dist/EngageWidget-UJ47PQFG.mjs +0 -12
- package/dist/ManagedForm-4ZGU4R3G.js +0 -25
- package/dist/ManagedForm-Z7QE4KYI.mjs +0 -16
- package/dist/ManagedNewsletterForm-22EPZB7Z.js.map +0 -1
- package/dist/ManagedNewsletterForm-4TVO2VL4.mjs.map +0 -1
- package/dist/SitemapSync-GF4OKN4Z.js +0 -18
- package/dist/SitemapSync-WIUEYOBS.mjs +0 -9
- package/dist/blog/AuthorCard.d.ts.map +0 -1
- package/dist/blog/AuthorPage.d.ts.map +0 -1
- package/dist/blog/BlogFAQ.d.ts.map +0 -1
- package/dist/blog/BlogLayout.d.ts.map +0 -1
- package/dist/blog/BlogList.d.ts.map +0 -1
- package/dist/blog/BlogPost.d.ts.map +0 -1
- package/dist/blog/BlogPostFaqSection.d.ts +0 -3
- package/dist/blog/BlogPostFaqSection.d.ts.map +0 -1
- package/dist/blog/BlogSidebar.d.ts.map +0 -1
- package/dist/blog/BlogViewTracker.d.ts.map +0 -1
- package/dist/blog/ClusterLandingPage.d.ts.map +0 -1
- package/dist/blog/ClusterNavigation.d.ts.map +0 -1
- package/dist/blog/ManagedNewsletterForm.d.ts.map +0 -1
- package/dist/blog/NewsletterShell.d.ts.map +0 -1
- package/dist/blog/NewsletterWidget.d.ts.map +0 -1
- package/dist/blog/RelatedPosts.d.ts.map +0 -1
- package/dist/blog/ServiceCallout.d.ts.map +0 -1
- package/dist/blog/TableOfContents.d.ts.map +0 -1
- package/dist/blog/artwork.d.ts +0 -14
- package/dist/blog/artwork.d.ts.map +0 -1
- package/dist/blog/author-schema.d.ts.map +0 -1
- package/dist/blog/author-social.d.ts.map +0 -1
- package/dist/blog/blog-styles.d.ts.map +0 -1
- package/dist/blog/blog-tables.d.ts.map +0 -1
- package/dist/blog/excerpt.d.ts.map +0 -1
- package/dist/blog/index.d.ts.map +0 -1
- package/dist/blog/index.js.map +0 -1
- package/dist/blog/index.mjs.map +0 -1
- package/dist/blog/processBlogHtml.d.ts.map +0 -1
- package/dist/blog/public-reads.d.ts +0 -27
- package/dist/blog/public-reads.d.ts.map +0 -1
- package/dist/blog/reading-time.d.ts.map +0 -1
- package/dist/blog/routes.d.ts.map +0 -1
- package/dist/blog/server-core.d.ts.map +0 -1
- package/dist/blog/server-ui.d.ts +0 -29
- package/dist/blog/server-ui.d.ts.map +0 -1
- package/dist/blog/server-ui.js +0 -267
- package/dist/blog/server-ui.js.map +0 -1
- package/dist/blog/server-ui.mjs +0 -203
- package/dist/blog/server-ui.mjs.map +0 -1
- package/dist/blog/server.d.ts.map +0 -1
- package/dist/blog/server.js +0 -207
- package/dist/blog/server.mjs +0 -10
- package/dist/blog/types.d.ts.map +0 -1
- package/dist/blog/widget-styles.d.ts +0 -9
- package/dist/blog/widget-styles.d.ts.map +0 -1
- package/dist/blog-styles-6EY3BS5Y.js.map +0 -1
- package/dist/blog-styles-7AKRUMV7.mjs.map +0 -1
- package/dist/blog-tables-DWDEWA3S.js +0 -17
- package/dist/blog-tables-DWDEWA3S.js.map +0 -1
- package/dist/blog-tables-QGIHOESZ.mjs +0 -4
- package/dist/blog-tables-QGIHOESZ.mjs.map +0 -1
- package/dist/chunk-3EY5E35M.mjs.map +0 -1
- package/dist/chunk-4LYW6PMU.mjs.map +0 -1
- package/dist/chunk-4TLFZ6NR.mjs.map +0 -1
- package/dist/chunk-5B4J3IBX.mjs +0 -164
- package/dist/chunk-5B4J3IBX.mjs.map +0 -1
- package/dist/chunk-5FETEH3Y.mjs +0 -6
- package/dist/chunk-75A4KY4X.mjs.map +0 -1
- package/dist/chunk-7R6H3GQ4.js +0 -8
- package/dist/chunk-7TC3GRXQ.js.map +0 -1
- package/dist/chunk-AJBOEV4I.mjs.map +0 -1
- package/dist/chunk-AK6JZ3OE.mjs.map +0 -1
- package/dist/chunk-FHPW7XVH.js +0 -175
- package/dist/chunk-FHPW7XVH.js.map +0 -1
- package/dist/chunk-G2WC3CXW.js.map +0 -1
- package/dist/chunk-GHECYDSZ.mjs.map +0 -1
- package/dist/chunk-GQF6QAQS.js.map +0 -1
- package/dist/chunk-H5NBFNND.js.map +0 -1
- package/dist/chunk-HX6ZG3PP.js.map +0 -1
- package/dist/chunk-JLVCWC6A.mjs.map +0 -1
- package/dist/chunk-K4TCEAUX.js.map +0 -1
- package/dist/chunk-LMEUYRRR.js.map +0 -1
- package/dist/chunk-MWKI6ZIS.mjs.map +0 -1
- package/dist/chunk-O237KKCX.mjs.map +0 -1
- package/dist/chunk-Q2NBD54V.js.map +0 -1
- package/dist/chunk-R7GHP3FY.js.map +0 -1
- package/dist/chunk-W2U5SLMY.js.map +0 -1
- package/dist/chunk-XEB77DQS.js.map +0 -1
- package/dist/chunk-Y5QZPUL3.mjs.map +0 -1
- package/dist/chunk-YFX3Q56O.mjs.map +0 -1
- package/dist/chunk-YN7QHLWF.js.map +0 -1
- package/dist/chunk-YQTE32QK.js.map +0 -1
- package/dist/chunk-ZPLN537Q.mjs.map +0 -1
- package/dist/chunk-ZVI7MBVF.mjs.map +0 -1
- package/dist/discover-CYXYKHZ2.mjs +0 -4
- package/dist/discover-NGEPXZOD.js +0 -21
- package/dist/writeLLMsTxt-CQ7A4AAL.js +0 -19
- package/dist/writeLLMsTxt-NX5MSPYX.mjs +0 -10
- /package/dist/{blog → articles}/server.js.map +0 -0
- /package/dist/{blog → articles}/server.mjs.map +0 -0
|
@@ -1,11 +1,64 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkYRCR7WY3_js = require('./chunk-YRCR7WY3.js');
|
|
4
|
+
var chunkZR43XFUM_js = require('./chunk-ZR43XFUM.js');
|
|
5
|
+
var chunkBBBJHYPH_js = require('./chunk-BBBJHYPH.js');
|
|
5
6
|
var chunkO5GHP7UO_js = require('./chunk-O5GHP7UO.js');
|
|
6
7
|
var navigation = require('next/navigation');
|
|
7
8
|
|
|
8
|
-
// src/
|
|
9
|
+
// src/articles/public-reads.ts
|
|
10
|
+
async function fetchArticleBySlug({ apiUrl, apiKey, site }, slug) {
|
|
11
|
+
try {
|
|
12
|
+
const response = await fetch(chunkBBBJHYPH_js.withSiteParam(`${apiUrl}/public/articles/posts/${slug}`, site), {
|
|
13
|
+
headers: { "x-api-key": apiKey },
|
|
14
|
+
next: { revalidate: 60 }
|
|
15
|
+
});
|
|
16
|
+
if (!response.ok) {
|
|
17
|
+
if (response.status !== 404) console.error("[Articles] Failed to fetch post:", response.statusText);
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const data = await response.json();
|
|
21
|
+
return data.post || null;
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.error("[Articles] Error fetching post:", error);
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async function fetchArticleCategories({ apiUrl, apiKey, site }) {
|
|
28
|
+
try {
|
|
29
|
+
const response = await fetch(chunkBBBJHYPH_js.withSiteParam(`${apiUrl}/public/articles/categories`, site), {
|
|
30
|
+
headers: { "x-api-key": apiKey },
|
|
31
|
+
next: { revalidate: 300 }
|
|
32
|
+
});
|
|
33
|
+
if (!response.ok) return [];
|
|
34
|
+
const data = await response.json();
|
|
35
|
+
return data.categories || [];
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.error("[Articles] Error fetching categories:", error);
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async function fetchRelatedArticles({ apiUrl, apiKey, site }, currentPostId, limit, cache = {}) {
|
|
42
|
+
try {
|
|
43
|
+
const response = await fetch(`${apiUrl}/public/articles/related`, {
|
|
44
|
+
method: "POST",
|
|
45
|
+
headers: { "Content-Type": "application/json", "x-api-key": apiKey },
|
|
46
|
+
body: JSON.stringify(chunkBBBJHYPH_js.withSiteBody({ current_post_id: currentPostId, limit }, site)),
|
|
47
|
+
...cache.revalidate !== void 0 ? { next: { revalidate: cache.revalidate } } : {}
|
|
48
|
+
});
|
|
49
|
+
if (!response.ok) {
|
|
50
|
+
console.error("[Articles] Failed to fetch related posts:", response.statusText);
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
const data = await response.json();
|
|
54
|
+
return data.posts || [];
|
|
55
|
+
} catch (error) {
|
|
56
|
+
console.error("[Articles] Error fetching related posts:", error);
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// src/articles/excerpt.ts
|
|
9
62
|
function sanitizeExcerpt(raw, maxLength = 160) {
|
|
10
63
|
if (!raw) return "";
|
|
11
64
|
let text = String(raw).trim();
|
|
@@ -37,7 +90,45 @@ function sanitizeExcerpt(raw, maxLength = 160) {
|
|
|
37
90
|
return `${(lastSpace > maxLength * 0.6 ? cut.slice(0, lastSpace) : cut).replace(/[\s,;:—–-]+$/, "")}\u2026`;
|
|
38
91
|
}
|
|
39
92
|
|
|
40
|
-
// src/
|
|
93
|
+
// src/articles/news-sitemap.ts
|
|
94
|
+
var NEWS_SITEMAP_WINDOW_MS = 2 * 24 * 60 * 60 * 1e3;
|
|
95
|
+
var NEWS_SITEMAP_MAX_URLS = 1e3;
|
|
96
|
+
var FEED_DEFAULT_ITEMS = 20;
|
|
97
|
+
function escapeXml(text) {
|
|
98
|
+
return text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
99
|
+
}
|
|
100
|
+
function cdata(html) {
|
|
101
|
+
return `<![CDATA[${html.replace(/]]>/g, "]]]]><![CDATA[>")}]]>`;
|
|
102
|
+
}
|
|
103
|
+
function recentNewsPosts(posts, now = /* @__PURE__ */ new Date()) {
|
|
104
|
+
const cutoff = now.getTime() - NEWS_SITEMAP_WINDOW_MS;
|
|
105
|
+
return posts.filter((post) => {
|
|
106
|
+
const published = post.published_at ? Date.parse(post.published_at) : NaN;
|
|
107
|
+
return Number.isFinite(published) && published >= cutoff && published <= now.getTime();
|
|
108
|
+
}).sort((a, b) => Date.parse(b.published_at) - Date.parse(a.published_at)).slice(0, NEWS_SITEMAP_MAX_URLS);
|
|
109
|
+
}
|
|
110
|
+
function buildNewsSitemapXml(posts, options, now = /* @__PURE__ */ new Date()) {
|
|
111
|
+
const language = options.language || "en";
|
|
112
|
+
const items = recentNewsPosts(posts, now).map((post) => {
|
|
113
|
+
const url = chunkZR43XFUM_js.resolveArticleUrl(post, { ...options, siteUrl: options.siteUrl });
|
|
114
|
+
return ` <url>
|
|
115
|
+
<loc>${escapeXml(url)}</loc>
|
|
116
|
+
<news:news>
|
|
117
|
+
<news:publication>
|
|
118
|
+
<news:name>${escapeXml(options.publicationName)}</news:name>
|
|
119
|
+
<news:language>${escapeXml(language)}</news:language>
|
|
120
|
+
</news:publication>
|
|
121
|
+
<news:publication_date>${new Date(post.published_at).toISOString()}</news:publication_date>
|
|
122
|
+
<news:title>${escapeXml(post.title)}</news:title>
|
|
123
|
+
</news:news>
|
|
124
|
+
</url>`;
|
|
125
|
+
});
|
|
126
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
127
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
|
|
128
|
+
${items.join("\n")}${items.length ? "\n" : ""}</urlset>`;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// src/articles/server-core.ts
|
|
41
132
|
var SEO_LIMITS = {
|
|
42
133
|
title: { min: 30, max: 60, recommended: 55 },
|
|
43
134
|
metaDescription: { min: 120, max: 160, recommended: 155 },
|
|
@@ -81,7 +172,7 @@ function validateMetaDescription(description, focusKeyphrase) {
|
|
|
81
172
|
}
|
|
82
173
|
return { field: "meta_description", value: description, length, limit: SEO_LIMITS.metaDescription, status, message };
|
|
83
174
|
}
|
|
84
|
-
function
|
|
175
|
+
function validateArticleSeo(post) {
|
|
85
176
|
const results = [];
|
|
86
177
|
const focusKeyphrase = post.focus_keyphrase;
|
|
87
178
|
if (post.meta_title || post.title) {
|
|
@@ -127,28 +218,28 @@ function validateBlogPostSeo(post) {
|
|
|
127
218
|
}
|
|
128
219
|
return results;
|
|
129
220
|
}
|
|
130
|
-
async function
|
|
221
|
+
async function getArticle(slug, options) {
|
|
131
222
|
const config = chunkO5GHP7UO_js.resolveServerApiConfig();
|
|
132
223
|
if (!config) {
|
|
133
|
-
console.warn("[
|
|
224
|
+
console.warn("[Articles] No API key configured");
|
|
134
225
|
return null;
|
|
135
226
|
}
|
|
136
|
-
return
|
|
227
|
+
return fetchArticleBySlug({ ...config, site: options?.site }, slug);
|
|
137
228
|
}
|
|
138
|
-
async function
|
|
139
|
-
const post = await
|
|
229
|
+
async function requireArticle(slug, options) {
|
|
230
|
+
const post = await getArticle(slug, options);
|
|
140
231
|
if (!post) navigation.notFound();
|
|
141
232
|
return post;
|
|
142
233
|
}
|
|
143
|
-
async function
|
|
234
|
+
async function getAllArticleSlugs() {
|
|
144
235
|
const config = chunkO5GHP7UO_js.resolveServerApiConfig();
|
|
145
236
|
if (!config) {
|
|
146
|
-
console.warn("[
|
|
237
|
+
console.warn("[Articles] No API key configured");
|
|
147
238
|
return [];
|
|
148
239
|
}
|
|
149
240
|
const { apiUrl, apiKey } = config;
|
|
150
241
|
try {
|
|
151
|
-
const response = await fetch(
|
|
242
|
+
const response = await fetch(chunkBBBJHYPH_js.withSiteParam(`${apiUrl}/public/articles/slugs`), {
|
|
152
243
|
headers: { "x-api-key": apiKey },
|
|
153
244
|
next: { revalidate: 300 }
|
|
154
245
|
});
|
|
@@ -156,30 +247,30 @@ async function getAllBlogSlugs() {
|
|
|
156
247
|
const data = await response.json();
|
|
157
248
|
return data.slugs || [];
|
|
158
249
|
} catch (error) {
|
|
159
|
-
console.error("[
|
|
250
|
+
console.error("[Articles] Error fetching slugs:", error);
|
|
160
251
|
return [];
|
|
161
252
|
}
|
|
162
253
|
}
|
|
163
|
-
async function
|
|
254
|
+
async function getArticleCategories(options) {
|
|
164
255
|
const config = chunkO5GHP7UO_js.resolveServerApiConfig();
|
|
165
256
|
if (!config) return [];
|
|
166
|
-
return await
|
|
257
|
+
return await fetchArticleCategories({ ...config, site: options?.site });
|
|
167
258
|
}
|
|
168
|
-
async function
|
|
169
|
-
const post = await
|
|
259
|
+
async function generateArticleMetadata(slug, options = {}) {
|
|
260
|
+
const post = await getArticle(slug);
|
|
170
261
|
const { siteName, siteUrl = "", defaultImage, twitterHandle } = options;
|
|
171
262
|
if (!post) {
|
|
172
263
|
if (options.notFound !== false) navigation.notFound();
|
|
173
264
|
return {
|
|
174
265
|
title: "Post Not Found",
|
|
175
|
-
description: "The requested
|
|
266
|
+
description: "The requested article could not be found.",
|
|
176
267
|
robots: { index: false, follow: true }
|
|
177
268
|
};
|
|
178
269
|
}
|
|
179
270
|
const title = post.meta_title || post.title;
|
|
180
271
|
const description = sanitizeExcerpt(post.meta_description || post.excerpt);
|
|
181
272
|
const image = options.images === false ? void 0 : post.featured_image || defaultImage;
|
|
182
|
-
const url =
|
|
273
|
+
const url = chunkZR43XFUM_js.resolveArticleUrl(post, options);
|
|
183
274
|
return {
|
|
184
275
|
title,
|
|
185
276
|
description,
|
|
@@ -218,7 +309,7 @@ async function generateBlogPostMetadata(slug, options = {}) {
|
|
|
218
309
|
}
|
|
219
310
|
};
|
|
220
311
|
}
|
|
221
|
-
function
|
|
312
|
+
function generatePublicationMetadata(options) {
|
|
222
313
|
const {
|
|
223
314
|
title = "Blog",
|
|
224
315
|
description = "Read our latest articles and insights.",
|
|
@@ -227,14 +318,14 @@ function generateBlogIndexMetadata(options) {
|
|
|
227
318
|
defaultImage,
|
|
228
319
|
twitterHandle
|
|
229
320
|
} = options;
|
|
230
|
-
const base =
|
|
321
|
+
const base = chunkZR43XFUM_js.createPublicationRoutes(options).index;
|
|
231
322
|
return {
|
|
232
323
|
title,
|
|
233
324
|
description,
|
|
234
325
|
openGraph: {
|
|
235
326
|
title,
|
|
236
327
|
description,
|
|
237
|
-
url:
|
|
328
|
+
url: chunkZR43XFUM_js.resolvePublicationUrl(base, siteUrl),
|
|
238
329
|
siteName,
|
|
239
330
|
type: "website",
|
|
240
331
|
...defaultImage && { images: [{ url: defaultImage }] }
|
|
@@ -248,9 +339,9 @@ function generateBlogIndexMetadata(options) {
|
|
|
248
339
|
}
|
|
249
340
|
};
|
|
250
341
|
}
|
|
251
|
-
function
|
|
342
|
+
function generateArticleCategoryMetadata(categoryName, options = {}) {
|
|
252
343
|
const { siteName, siteUrl = "", defaultImage } = options;
|
|
253
|
-
const title = `${categoryName} -
|
|
344
|
+
const title = `${categoryName} - Articles`;
|
|
254
345
|
const description = `Browse all posts in ${categoryName}.`;
|
|
255
346
|
const slug = options.categorySlug ?? categoryName.toLowerCase().trim().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
256
347
|
return {
|
|
@@ -259,7 +350,7 @@ function generateBlogCategoryMetadata(categoryName, options = {}) {
|
|
|
259
350
|
openGraph: {
|
|
260
351
|
title,
|
|
261
352
|
description,
|
|
262
|
-
url:
|
|
353
|
+
url: chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).category(slug), siteUrl),
|
|
263
354
|
siteName,
|
|
264
355
|
type: "website",
|
|
265
356
|
...defaultImage && { images: [{ url: defaultImage }] }
|
|
@@ -269,69 +360,84 @@ function generateBlogCategoryMetadata(categoryName, options = {}) {
|
|
|
269
360
|
function isNextStaticParamsProps(value) {
|
|
270
361
|
return "params" in value;
|
|
271
362
|
}
|
|
272
|
-
async function
|
|
363
|
+
async function generateArticleStaticParams(arg = {}) {
|
|
273
364
|
const options = isNextStaticParamsProps(arg) ? {} : arg;
|
|
274
|
-
const posts = await
|
|
365
|
+
const posts = await getArticleRouteEntries(options);
|
|
275
366
|
return posts.map((post) => {
|
|
276
|
-
const category =
|
|
367
|
+
const category = chunkZR43XFUM_js.articleCategorySlug(post.category || options.category);
|
|
277
368
|
return { slug: post.slug, ...options.includeCategoryInPath && category ? { category } : {} };
|
|
278
369
|
});
|
|
279
370
|
}
|
|
280
371
|
async function generateCategoryStaticParams() {
|
|
281
|
-
const categories = await
|
|
372
|
+
const categories = await getArticleCategories();
|
|
282
373
|
return categories.map((c) => ({ category: c.slug }));
|
|
283
374
|
}
|
|
284
|
-
|
|
375
|
+
function absoluteImage(image, siteUrl) {
|
|
376
|
+
const value = image?.trim();
|
|
377
|
+
if (!value) return null;
|
|
378
|
+
try {
|
|
379
|
+
return new URL(value, siteUrl.endsWith("/") ? siteUrl : `${siteUrl}/`).toString();
|
|
380
|
+
} catch {
|
|
381
|
+
return null;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
async function getArticleRouteEntries(options, withCanonicals = false) {
|
|
285
385
|
if (withCanonicals || options.includeCategoryInPath || options.postPath) {
|
|
286
|
-
return (await
|
|
386
|
+
return (await getAllArticles({ maxPosts: Infinity })).map((post) => ({ ...post, last_modified: post.updated_at }));
|
|
287
387
|
}
|
|
288
|
-
return
|
|
388
|
+
return getAllArticleSlugs();
|
|
289
389
|
}
|
|
290
|
-
async function
|
|
291
|
-
const slugs = await
|
|
292
|
-
const categories = options.includeCategories === false ? [] : await
|
|
390
|
+
async function generateArticleSitemap(siteUrl, options = {}) {
|
|
391
|
+
const slugs = await getArticleRouteEntries(options, true);
|
|
392
|
+
const categories = options.includeCategories === false ? [] : await getArticleCategories();
|
|
293
393
|
const clusters = options.includeClusters === false ? [] : await getTopicClusters();
|
|
294
394
|
const entries = [
|
|
295
|
-
//
|
|
395
|
+
// Publication index
|
|
296
396
|
{
|
|
297
|
-
url:
|
|
397
|
+
url: chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).index, siteUrl),
|
|
298
398
|
changeFrequency: "daily",
|
|
299
399
|
priority: 0.8
|
|
300
400
|
}
|
|
301
401
|
];
|
|
302
402
|
clusters.forEach((cluster) => {
|
|
303
403
|
entries.push({
|
|
304
|
-
url:
|
|
404
|
+
url: chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).cluster(cluster.cluster_slug), siteUrl),
|
|
305
405
|
changeFrequency: "weekly",
|
|
306
406
|
priority: 0.8
|
|
307
407
|
});
|
|
308
408
|
});
|
|
309
409
|
categories.forEach((cat) => {
|
|
310
410
|
entries.push({
|
|
311
|
-
url:
|
|
411
|
+
url: chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).category(cat.slug), siteUrl),
|
|
312
412
|
changeFrequency: "weekly",
|
|
313
413
|
priority: 0.6
|
|
314
414
|
});
|
|
315
415
|
});
|
|
316
416
|
slugs.forEach((post) => {
|
|
317
417
|
const isPillar = post.article_type === "pillar";
|
|
418
|
+
const image = absoluteImage(post.featured_image, siteUrl);
|
|
318
419
|
entries.push({
|
|
319
|
-
url:
|
|
420
|
+
url: chunkZR43XFUM_js.resolveArticleUrl(post, { ...options, siteUrl }),
|
|
320
421
|
lastModified: post.last_modified ? new Date(post.last_modified) : void 0,
|
|
321
422
|
changeFrequency: isPillar ? "weekly" : "monthly",
|
|
322
|
-
priority: isPillar ? 0.9 : 0.7
|
|
423
|
+
priority: isPillar ? 0.9 : 0.7,
|
|
424
|
+
...image ? { images: [image] } : {}
|
|
323
425
|
});
|
|
324
426
|
});
|
|
325
427
|
return entries;
|
|
326
428
|
}
|
|
327
|
-
function
|
|
429
|
+
async function generateNewsSitemap(options) {
|
|
430
|
+
const posts = await getAllArticles({ maxPosts: 50, site: options.site });
|
|
431
|
+
return buildNewsSitemapXml(posts, options);
|
|
432
|
+
}
|
|
433
|
+
function generateArticleSchema(post, options = {}) {
|
|
328
434
|
const { siteUrl = "", siteName, logoUrl } = options;
|
|
329
435
|
const schema = {
|
|
330
436
|
"@context": "https://schema.org",
|
|
331
437
|
"@type": "BlogPosting",
|
|
332
438
|
headline: post.title,
|
|
333
439
|
description: sanitizeExcerpt(post.excerpt || post.meta_description),
|
|
334
|
-
url:
|
|
440
|
+
url: chunkZR43XFUM_js.resolveArticleUrl(post, { ...options, siteUrl }),
|
|
335
441
|
datePublished: post.published_at,
|
|
336
442
|
dateModified: post.updated_at,
|
|
337
443
|
author: {
|
|
@@ -339,7 +445,7 @@ function generateBlogPostSchema(post, options = {}) {
|
|
|
339
445
|
name: typeof post.author === "string" ? post.author : post.author?.name
|
|
340
446
|
}
|
|
341
447
|
};
|
|
342
|
-
const articleImage =
|
|
448
|
+
const articleImage = chunkYRCR7WY3_js.resolveArticleArtwork(post, "article").src;
|
|
343
449
|
if (articleImage) schema.image = articleImage;
|
|
344
450
|
if (siteName || logoUrl) {
|
|
345
451
|
schema.publisher = {
|
|
@@ -366,14 +472,14 @@ function generateBlogPostSchema(post, options = {}) {
|
|
|
366
472
|
}
|
|
367
473
|
return schema;
|
|
368
474
|
}
|
|
369
|
-
function
|
|
475
|
+
function generateArticleListSchema(options = {}) {
|
|
370
476
|
const { siteUrl = "", siteName, description } = options;
|
|
371
477
|
return {
|
|
372
478
|
"@context": "https://schema.org",
|
|
373
479
|
"@type": "Blog",
|
|
374
480
|
name: siteName ? `${siteName} Blog` : "Blog",
|
|
375
481
|
description: description || "Our latest articles and insights.",
|
|
376
|
-
url:
|
|
482
|
+
url: chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).index, siteUrl)
|
|
377
483
|
};
|
|
378
484
|
}
|
|
379
485
|
function generateFaqSchema(faqItems) {
|
|
@@ -398,7 +504,7 @@ function generateHowToSchema(post, steps, options = {}) {
|
|
|
398
504
|
"@type": "HowTo",
|
|
399
505
|
name: post.title,
|
|
400
506
|
description: sanitizeExcerpt(post.excerpt || post.meta_description),
|
|
401
|
-
image:
|
|
507
|
+
image: chunkYRCR7WY3_js.resolveArticleArtwork(post, "article").src,
|
|
402
508
|
totalTime: post.reading_time ? `PT${post.reading_time}M` : void 0,
|
|
403
509
|
step: steps.map((step, index) => ({
|
|
404
510
|
"@type": "HowToStep",
|
|
@@ -406,17 +512,17 @@ function generateHowToSchema(post, steps, options = {}) {
|
|
|
406
512
|
name: step.name,
|
|
407
513
|
text: step.text,
|
|
408
514
|
image: step.image,
|
|
409
|
-
url: step.url || `${
|
|
515
|
+
url: step.url || `${chunkZR43XFUM_js.resolveArticleUrl(post, { ...options, siteUrl }).split("#")[0]}#step-${index + 1}`
|
|
410
516
|
}))
|
|
411
517
|
};
|
|
412
518
|
}
|
|
413
519
|
var FEED_MAX_POSTS = 100;
|
|
414
|
-
async function
|
|
520
|
+
async function getAllArticles(options = {}) {
|
|
415
521
|
const maxPosts = options.maxPosts ?? FEED_MAX_POSTS;
|
|
416
522
|
if (!(maxPosts > 0)) return [];
|
|
417
523
|
const config = chunkO5GHP7UO_js.resolveServerApiConfig();
|
|
418
524
|
if (!config) {
|
|
419
|
-
console.warn("[
|
|
525
|
+
console.warn("[Articles] No API key configured");
|
|
420
526
|
return [];
|
|
421
527
|
}
|
|
422
528
|
const { apiUrl, apiKey } = config;
|
|
@@ -425,7 +531,7 @@ async function getAllBlogPosts(options = {}) {
|
|
|
425
531
|
try {
|
|
426
532
|
while (posts.length < maxPosts) {
|
|
427
533
|
const response = await fetch(
|
|
428
|
-
|
|
534
|
+
chunkBBBJHYPH_js.withSiteParam(`${apiUrl}/public/articles/posts?per_page=50&page=${page}`, options.site),
|
|
429
535
|
{
|
|
430
536
|
headers: { "x-api-key": apiKey },
|
|
431
537
|
next: { revalidate: 300 }
|
|
@@ -439,13 +545,10 @@ async function getAllBlogPosts(options = {}) {
|
|
|
439
545
|
page += 1;
|
|
440
546
|
}
|
|
441
547
|
} catch (error) {
|
|
442
|
-
console.error("[
|
|
548
|
+
console.error("[Articles] Error fetching posts for RSS:", error);
|
|
443
549
|
}
|
|
444
550
|
return posts.slice(0, maxPosts);
|
|
445
551
|
}
|
|
446
|
-
function escapeXml(text) {
|
|
447
|
-
return text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
448
|
-
}
|
|
449
552
|
function stripHtml(html) {
|
|
450
553
|
return html.replace(/<[^>]*>/g, "").trim();
|
|
451
554
|
}
|
|
@@ -453,7 +556,7 @@ async function generateRssFeed(options) {
|
|
|
453
556
|
const {
|
|
454
557
|
siteUrl,
|
|
455
558
|
siteName,
|
|
456
|
-
description = "Latest
|
|
559
|
+
description = "Latest articles and insights",
|
|
457
560
|
language = "en-us",
|
|
458
561
|
copyright,
|
|
459
562
|
managingEditor,
|
|
@@ -461,7 +564,7 @@ async function generateRssFeed(options) {
|
|
|
461
564
|
ttl = 60,
|
|
462
565
|
imageUrl
|
|
463
566
|
} = options;
|
|
464
|
-
const posts = await
|
|
567
|
+
const posts = await getAllArticles({ maxPosts: options.maxItems ?? FEED_DEFAULT_ITEMS });
|
|
465
568
|
const now = (/* @__PURE__ */ new Date()).toUTCString();
|
|
466
569
|
let rss = `<?xml version="1.0" encoding="UTF-8"?>
|
|
467
570
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
|
@@ -473,7 +576,7 @@ async function generateRssFeed(options) {
|
|
|
473
576
|
<lastBuildDate>${now}</lastBuildDate>
|
|
474
577
|
<pubDate>${now}</pubDate>
|
|
475
578
|
<ttl>${ttl}</ttl>
|
|
476
|
-
<atom:link href="${escapeXml(
|
|
579
|
+
<atom:link href="${escapeXml(chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).rss, siteUrl))}" rel="self" type="application/rss+xml"/>
|
|
477
580
|
`;
|
|
478
581
|
if (copyright) {
|
|
479
582
|
rss += ` <copyright>${escapeXml(copyright)}</copyright>
|
|
@@ -496,7 +599,7 @@ async function generateRssFeed(options) {
|
|
|
496
599
|
`;
|
|
497
600
|
}
|
|
498
601
|
for (const post of posts) {
|
|
499
|
-
const postUrl =
|
|
602
|
+
const postUrl = chunkZR43XFUM_js.resolveArticleUrl(post, { ...options, siteUrl });
|
|
500
603
|
const pubDate = post.published_at ? new Date(post.published_at).toUTCString() : now;
|
|
501
604
|
const author = typeof post.author === "string" ? post.author : post.author?.name || "Unknown";
|
|
502
605
|
const fullContent = post.content_html || post.content || "";
|
|
@@ -506,7 +609,7 @@ async function generateRssFeed(options) {
|
|
|
506
609
|
<link>${escapeXml(postUrl)}</link>
|
|
507
610
|
<guid isPermaLink="true">${escapeXml(postUrl)}</guid>
|
|
508
611
|
<description>${escapeXml(description2)}</description>
|
|
509
|
-
<content:encoded
|
|
612
|
+
<content:encoded>${cdata(fullContent)}</content:encoded>
|
|
510
613
|
<pubDate>${pubDate}</pubDate>
|
|
511
614
|
<author>${escapeXml(author)}</author>
|
|
512
615
|
`;
|
|
@@ -537,18 +640,18 @@ async function generateAtomFeed(options) {
|
|
|
537
640
|
const {
|
|
538
641
|
siteUrl,
|
|
539
642
|
siteName,
|
|
540
|
-
description = "Latest
|
|
643
|
+
description = "Latest articles and insights",
|
|
541
644
|
managingEditor
|
|
542
645
|
} = options;
|
|
543
|
-
const posts = await
|
|
646
|
+
const posts = await getAllArticles({ maxPosts: options.maxItems ?? FEED_DEFAULT_ITEMS });
|
|
544
647
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
545
648
|
let atom = `<?xml version="1.0" encoding="UTF-8"?>
|
|
546
649
|
<feed xmlns="http://www.w3.org/2005/Atom">
|
|
547
650
|
<title>${escapeXml(siteName)}</title>
|
|
548
651
|
<subtitle>${escapeXml(description)}</subtitle>
|
|
549
|
-
<link href="${escapeXml(
|
|
652
|
+
<link href="${escapeXml(chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).atom, siteUrl))}" rel="self"/>
|
|
550
653
|
<link href="${siteUrl}"/>
|
|
551
|
-
<id>${escapeXml(
|
|
654
|
+
<id>${escapeXml(chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).index, siteUrl))}</id>
|
|
552
655
|
<updated>${now}</updated>
|
|
553
656
|
`;
|
|
554
657
|
if (managingEditor) {
|
|
@@ -558,7 +661,7 @@ async function generateAtomFeed(options) {
|
|
|
558
661
|
`;
|
|
559
662
|
}
|
|
560
663
|
for (const post of posts) {
|
|
561
|
-
const postUrl =
|
|
664
|
+
const postUrl = chunkZR43XFUM_js.resolveArticleUrl(post, { ...options, siteUrl });
|
|
562
665
|
const updated = post.updated_at || post.published_at || now;
|
|
563
666
|
const published = post.published_at || now;
|
|
564
667
|
const author = typeof post.author === "string" ? post.author : post.author?.name || "Unknown";
|
|
@@ -573,7 +676,7 @@ async function generateAtomFeed(options) {
|
|
|
573
676
|
<name>${escapeXml(author)}</name>
|
|
574
677
|
</author>
|
|
575
678
|
<summary>${escapeXml(sanitizeExcerpt(post.excerpt, 300) || stripHtml(fullContent).substring(0, 300))}</summary>
|
|
576
|
-
<content type="html"
|
|
679
|
+
<content type="html">${cdata(fullContent)}</content>
|
|
577
680
|
</entry>
|
|
578
681
|
`;
|
|
579
682
|
}
|
|
@@ -585,7 +688,7 @@ async function getTopicClusters(options) {
|
|
|
585
688
|
if (!config) return [];
|
|
586
689
|
const { apiUrl, apiKey } = config;
|
|
587
690
|
try {
|
|
588
|
-
const response = await fetch(
|
|
691
|
+
const response = await fetch(chunkBBBJHYPH_js.withSiteParam(`${apiUrl}/public/articles/clusters`, options?.site), {
|
|
589
692
|
headers: { "x-api-key": apiKey },
|
|
590
693
|
next: { revalidate: 300 }
|
|
591
694
|
});
|
|
@@ -609,7 +712,7 @@ async function getTopicClusters(options) {
|
|
|
609
712
|
interlink_map: []
|
|
610
713
|
}));
|
|
611
714
|
} catch (error) {
|
|
612
|
-
console.error("[
|
|
715
|
+
console.error("[Articles] Error fetching topic clusters:", error);
|
|
613
716
|
return [];
|
|
614
717
|
}
|
|
615
718
|
}
|
|
@@ -618,7 +721,7 @@ async function getTopicCluster(slug, options) {
|
|
|
618
721
|
if (!config) return null;
|
|
619
722
|
const { apiUrl, apiKey } = config;
|
|
620
723
|
try {
|
|
621
|
-
const response = await fetch(
|
|
724
|
+
const response = await fetch(chunkBBBJHYPH_js.withSiteParam(`${apiUrl}/public/articles/clusters/${slug}`, options?.site), {
|
|
622
725
|
headers: { "x-api-key": apiKey },
|
|
623
726
|
next: { revalidate: 300 }
|
|
624
727
|
});
|
|
@@ -644,7 +747,7 @@ async function getTopicCluster(slug, options) {
|
|
|
644
747
|
interlink_map: data.interlink_map || []
|
|
645
748
|
};
|
|
646
749
|
} catch (error) {
|
|
647
|
-
console.error("[
|
|
750
|
+
console.error("[Articles] Error fetching topic cluster:", error);
|
|
648
751
|
return null;
|
|
649
752
|
}
|
|
650
753
|
}
|
|
@@ -665,7 +768,7 @@ function getClusterNavigation(post) {
|
|
|
665
768
|
}
|
|
666
769
|
async function identifyTopicClusters(categorySlug) {
|
|
667
770
|
console.warn(
|
|
668
|
-
"[
|
|
771
|
+
"[Articles] identifyTopicClusters() is deprecated. Use getTopicCluster(slug) for real cluster data managed in the Sonor dashboard."
|
|
669
772
|
);
|
|
670
773
|
const posts = await getPostsByCategory(categorySlug);
|
|
671
774
|
if (posts.length < 3) return null;
|
|
@@ -684,7 +787,7 @@ async function getPostsByCategory(categorySlug, options) {
|
|
|
684
787
|
if (!config) return [];
|
|
685
788
|
const { apiUrl, apiKey } = config;
|
|
686
789
|
try {
|
|
687
|
-
const response = await fetch(
|
|
790
|
+
const response = await fetch(chunkBBBJHYPH_js.withSiteParam(`${apiUrl}/public/articles/posts?category=${encodeURIComponent(categorySlug)}&per_page=50`, options?.site), {
|
|
688
791
|
headers: { "x-api-key": apiKey },
|
|
689
792
|
next: { revalidate: 300 }
|
|
690
793
|
});
|
|
@@ -692,7 +795,7 @@ async function getPostsByCategory(categorySlug, options) {
|
|
|
692
795
|
const data = await response.json();
|
|
693
796
|
return data.posts || [];
|
|
694
797
|
} catch (error) {
|
|
695
|
-
console.error("[
|
|
798
|
+
console.error("[Articles] Error fetching category posts:", error);
|
|
696
799
|
return [];
|
|
697
800
|
}
|
|
698
801
|
}
|
|
@@ -708,7 +811,7 @@ function generateClusterItemListSchema(cluster, options = {}) {
|
|
|
708
811
|
"@type": "ListItem",
|
|
709
812
|
position: i + 1,
|
|
710
813
|
name: post.title,
|
|
711
|
-
url:
|
|
814
|
+
url: chunkZR43XFUM_js.resolveArticleUrl(post, { ...options, siteUrl })
|
|
712
815
|
}))
|
|
713
816
|
};
|
|
714
817
|
}
|
|
@@ -720,7 +823,7 @@ function generateClusterArticleSchema(post, cluster, options = {}) {
|
|
|
720
823
|
"@type": "Article",
|
|
721
824
|
headline: post.title,
|
|
722
825
|
description: sanitizeExcerpt(post.excerpt || post.meta_description),
|
|
723
|
-
url:
|
|
826
|
+
url: chunkZR43XFUM_js.resolveArticleUrl(post, { ...options, siteUrl }),
|
|
724
827
|
datePublished: post.published_at,
|
|
725
828
|
dateModified: post.updated_at,
|
|
726
829
|
author: {
|
|
@@ -729,7 +832,7 @@ function generateClusterArticleSchema(post, cluster, options = {}) {
|
|
|
729
832
|
},
|
|
730
833
|
keywords: post.focus_keyphrase || post.keywords
|
|
731
834
|
};
|
|
732
|
-
const articleImage =
|
|
835
|
+
const articleImage = chunkYRCR7WY3_js.resolveArticleArtwork(post, "article").src;
|
|
733
836
|
if (articleImage) schema.image = articleImage;
|
|
734
837
|
if (siteName || logoUrl) {
|
|
735
838
|
schema.publisher = {
|
|
@@ -742,13 +845,13 @@ function generateClusterArticleSchema(post, cluster, options = {}) {
|
|
|
742
845
|
schema.hasPart = cluster.supports.map((s) => ({
|
|
743
846
|
"@type": "Article",
|
|
744
847
|
headline: s.title,
|
|
745
|
-
url:
|
|
848
|
+
url: chunkZR43XFUM_js.resolveArticleUrl(s, { ...options, siteUrl })
|
|
746
849
|
}));
|
|
747
850
|
} else if (!isPillar && cluster.pillar) {
|
|
748
851
|
schema.isPartOf = {
|
|
749
852
|
"@type": "Article",
|
|
750
853
|
headline: cluster.pillar.title,
|
|
751
|
-
url:
|
|
854
|
+
url: chunkZR43XFUM_js.resolveArticleUrl(cluster.pillar, { ...options, siteUrl })
|
|
752
855
|
};
|
|
753
856
|
}
|
|
754
857
|
if (cluster.geo_target) {
|
|
@@ -763,18 +866,18 @@ function generateClusterBreadcrumbSchema(post, cluster, options = {}) {
|
|
|
763
866
|
const { siteUrl = "", siteName = "Home" } = options;
|
|
764
867
|
const items = [
|
|
765
868
|
{ "@type": "ListItem", position: 1, name: siteName, item: siteUrl },
|
|
766
|
-
{ "@type": "ListItem", position: 2, name: "Blog", item:
|
|
869
|
+
{ "@type": "ListItem", position: 2, name: "Blog", item: chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).index, siteUrl) },
|
|
767
870
|
{
|
|
768
871
|
"@type": "ListItem",
|
|
769
872
|
position: 3,
|
|
770
873
|
name: cluster.cluster_name,
|
|
771
|
-
item:
|
|
874
|
+
item: chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).cluster(cluster.cluster_slug), siteUrl)
|
|
772
875
|
},
|
|
773
876
|
{
|
|
774
877
|
"@type": "ListItem",
|
|
775
878
|
position: 4,
|
|
776
879
|
name: post.title,
|
|
777
|
-
item:
|
|
880
|
+
item: chunkZR43XFUM_js.resolveArticleUrl(post, { ...options, siteUrl })
|
|
778
881
|
}
|
|
779
882
|
];
|
|
780
883
|
return {
|
|
@@ -790,19 +893,19 @@ function generateClusterLandingSchema(cluster, options = {}) {
|
|
|
790
893
|
"@type": "CollectionPage",
|
|
791
894
|
name: cluster.cluster_name,
|
|
792
895
|
description: `Comprehensive guide to ${cluster.core_topic}`,
|
|
793
|
-
url:
|
|
896
|
+
url: chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).cluster(cluster.cluster_slug), siteUrl),
|
|
794
897
|
...siteName && {
|
|
795
898
|
isPartOf: { "@type": "WebSite", name: siteName, url: siteUrl }
|
|
796
899
|
},
|
|
797
900
|
mainEntity: cluster.pillar ? {
|
|
798
901
|
"@type": "Article",
|
|
799
902
|
headline: cluster.pillar.title,
|
|
800
|
-
url:
|
|
903
|
+
url: chunkZR43XFUM_js.resolveArticleUrl(cluster.pillar, { ...options, siteUrl })
|
|
801
904
|
} : void 0,
|
|
802
905
|
hasPart: cluster.supports.map((s) => ({
|
|
803
906
|
"@type": "Article",
|
|
804
907
|
headline: s.title,
|
|
805
|
-
url:
|
|
908
|
+
url: chunkZR43XFUM_js.resolveArticleUrl(s, { ...options, siteUrl })
|
|
806
909
|
}))
|
|
807
910
|
};
|
|
808
911
|
}
|
|
@@ -818,7 +921,7 @@ async function generateClusterPageMetadata(clusterSlug, options = {}) {
|
|
|
818
921
|
openGraph: {
|
|
819
922
|
title,
|
|
820
923
|
description,
|
|
821
|
-
url:
|
|
924
|
+
url: chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).cluster(cluster.cluster_slug), siteUrl),
|
|
822
925
|
type: "website"
|
|
823
926
|
}
|
|
824
927
|
};
|
|
@@ -827,9 +930,9 @@ async function getRelatedInsights(currentSlug, options = {}) {
|
|
|
827
930
|
const config = chunkO5GHP7UO_js.resolveServerApiConfig();
|
|
828
931
|
if (!config) return [];
|
|
829
932
|
const { limit = 3, site } = options;
|
|
830
|
-
const current = await
|
|
933
|
+
const current = await getArticle(currentSlug, { site });
|
|
831
934
|
if (!current?.id) return [];
|
|
832
|
-
return
|
|
935
|
+
return fetchRelatedArticles({ ...config, site }, current.id, limit, { revalidate: 300 });
|
|
833
936
|
}
|
|
834
937
|
function generateBreadcrumbSchema(post, options = {}) {
|
|
835
938
|
const { siteUrl = "", siteName = "Home" } = options;
|
|
@@ -844,7 +947,7 @@ function generateBreadcrumbSchema(post, options = {}) {
|
|
|
844
947
|
"@type": "ListItem",
|
|
845
948
|
position: 2,
|
|
846
949
|
name: "Blog",
|
|
847
|
-
item:
|
|
950
|
+
item: chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).index, siteUrl)
|
|
848
951
|
}
|
|
849
952
|
];
|
|
850
953
|
if (post.category) {
|
|
@@ -854,20 +957,20 @@ function generateBreadcrumbSchema(post, options = {}) {
|
|
|
854
957
|
"@type": "ListItem",
|
|
855
958
|
position: 3,
|
|
856
959
|
name: categoryName,
|
|
857
|
-
item:
|
|
960
|
+
item: chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).category(categorySlug), siteUrl)
|
|
858
961
|
});
|
|
859
962
|
items.push({
|
|
860
963
|
"@type": "ListItem",
|
|
861
964
|
position: 4,
|
|
862
965
|
name: post.title,
|
|
863
|
-
item:
|
|
966
|
+
item: chunkZR43XFUM_js.resolveArticleUrl(post, { ...options, siteUrl })
|
|
864
967
|
});
|
|
865
968
|
} else {
|
|
866
969
|
items.push({
|
|
867
970
|
"@type": "ListItem",
|
|
868
971
|
position: 3,
|
|
869
972
|
name: post.title,
|
|
870
|
-
item:
|
|
973
|
+
item: chunkZR43XFUM_js.resolveArticleUrl(post, { ...options, siteUrl })
|
|
871
974
|
});
|
|
872
975
|
}
|
|
873
976
|
return {
|
|
@@ -876,14 +979,14 @@ function generateBreadcrumbSchema(post, options = {}) {
|
|
|
876
979
|
itemListElement: items
|
|
877
980
|
};
|
|
878
981
|
}
|
|
879
|
-
function
|
|
982
|
+
function generateAllArticleSchemas(post, options = {}) {
|
|
880
983
|
const schemas = [];
|
|
881
984
|
const eeatSchema = post.schema ?? post.schema_json;
|
|
882
985
|
if (eeatSchema) {
|
|
883
986
|
const arr = Array.isArray(eeatSchema) ? eeatSchema : [eeatSchema];
|
|
884
987
|
schemas.push(...arr);
|
|
885
988
|
} else {
|
|
886
|
-
schemas.push(
|
|
989
|
+
schemas.push(generateArticleSchema(post, options));
|
|
887
990
|
const faqItems = post.faq_items ?? post.faqItems;
|
|
888
991
|
if (faqItems && faqItems.length > 0) {
|
|
889
992
|
const faqSchema = generateFaqSchema(faqItems);
|
|
@@ -896,12 +999,12 @@ function generateAllBlogSchemas(post, options = {}) {
|
|
|
896
999
|
async function getAuthorBySlug(slug, options) {
|
|
897
1000
|
const config = chunkO5GHP7UO_js.resolveServerApiConfig();
|
|
898
1001
|
if (!config) {
|
|
899
|
-
console.warn("[
|
|
1002
|
+
console.warn("[Articles] No API key configured");
|
|
900
1003
|
return null;
|
|
901
1004
|
}
|
|
902
1005
|
const { apiUrl, apiKey } = config;
|
|
903
1006
|
try {
|
|
904
|
-
const response = await fetch(
|
|
1007
|
+
const response = await fetch(chunkBBBJHYPH_js.withSiteParam(`${apiUrl}/public/articles/authors/${slug}`, options?.site), {
|
|
905
1008
|
headers: { "x-api-key": apiKey },
|
|
906
1009
|
next: { revalidate: 60 }
|
|
907
1010
|
});
|
|
@@ -909,20 +1012,20 @@ async function getAuthorBySlug(slug, options) {
|
|
|
909
1012
|
const data = await response.json();
|
|
910
1013
|
return data.author || null;
|
|
911
1014
|
} catch (error) {
|
|
912
|
-
console.error("[
|
|
1015
|
+
console.error("[Articles] Error fetching author:", error);
|
|
913
1016
|
return null;
|
|
914
1017
|
}
|
|
915
1018
|
}
|
|
916
1019
|
async function getAuthorPosts(slug, limit = 20, offset = 0, options) {
|
|
917
1020
|
const config = chunkO5GHP7UO_js.resolveServerApiConfig();
|
|
918
1021
|
if (!config) {
|
|
919
|
-
console.warn("[
|
|
1022
|
+
console.warn("[Articles] No API key configured");
|
|
920
1023
|
return { author: null, posts: [], total: 0 };
|
|
921
1024
|
}
|
|
922
1025
|
const { apiUrl, apiKey } = config;
|
|
923
1026
|
try {
|
|
924
1027
|
const response = await fetch(
|
|
925
|
-
|
|
1028
|
+
chunkBBBJHYPH_js.withSiteParam(`${apiUrl}/public/articles/authors/${slug}/posts?limit=${limit}&offset=${offset}`, options?.site),
|
|
926
1029
|
{
|
|
927
1030
|
headers: { "x-api-key": apiKey },
|
|
928
1031
|
next: { revalidate: 60 }
|
|
@@ -944,19 +1047,19 @@ async function getAuthorPosts(slug, limit = 20, offset = 0, options) {
|
|
|
944
1047
|
total: data.total || 0
|
|
945
1048
|
};
|
|
946
1049
|
} catch (error) {
|
|
947
|
-
console.error("[
|
|
1050
|
+
console.error("[Articles] Error fetching author posts:", error);
|
|
948
1051
|
return { author: null, posts: [], total: 0 };
|
|
949
1052
|
}
|
|
950
1053
|
}
|
|
951
1054
|
async function getAllAuthorSlugs() {
|
|
952
1055
|
const config = chunkO5GHP7UO_js.resolveServerApiConfig();
|
|
953
1056
|
if (!config) {
|
|
954
|
-
console.warn("[
|
|
1057
|
+
console.warn("[Articles] No API key configured");
|
|
955
1058
|
return [];
|
|
956
1059
|
}
|
|
957
1060
|
const { apiUrl, apiKey } = config;
|
|
958
1061
|
try {
|
|
959
|
-
const response = await fetch(
|
|
1062
|
+
const response = await fetch(chunkBBBJHYPH_js.withSiteParam(`${apiUrl}/public/articles/authors`), {
|
|
960
1063
|
headers: { "x-api-key": apiKey },
|
|
961
1064
|
next: { revalidate: 300 }
|
|
962
1065
|
});
|
|
@@ -965,7 +1068,7 @@ async function getAllAuthorSlugs() {
|
|
|
965
1068
|
const authors = data.authors || [];
|
|
966
1069
|
return authors.map((a) => ({ slug: a.slug }));
|
|
967
1070
|
} catch (error) {
|
|
968
|
-
console.error("[
|
|
1071
|
+
console.error("[Articles] Error fetching author slugs:", error);
|
|
969
1072
|
return [];
|
|
970
1073
|
}
|
|
971
1074
|
}
|
|
@@ -976,7 +1079,7 @@ function generateAuthorPageMetadata(author, options = {}) {
|
|
|
976
1079
|
const { siteUrl = "", siteName } = options;
|
|
977
1080
|
const title = `${author.name}${author.title ? ` - ${author.title}` : ""}`;
|
|
978
1081
|
const description = author.short_bio || author.bio || `Articles by ${author.name}`;
|
|
979
|
-
const url =
|
|
1082
|
+
const url = chunkZR43XFUM_js.resolvePublicationUrl(chunkZR43XFUM_js.createPublicationRoutes(options).author(author.slug), siteUrl);
|
|
980
1083
|
return {
|
|
981
1084
|
title,
|
|
982
1085
|
description,
|
|
@@ -1000,18 +1103,25 @@ function generateAuthorPageMetadata(author, options = {}) {
|
|
|
1000
1103
|
};
|
|
1001
1104
|
}
|
|
1002
1105
|
|
|
1106
|
+
exports.FEED_DEFAULT_ITEMS = FEED_DEFAULT_ITEMS;
|
|
1107
|
+
exports.NEWS_SITEMAP_MAX_URLS = NEWS_SITEMAP_MAX_URLS;
|
|
1108
|
+
exports.NEWS_SITEMAP_WINDOW_MS = NEWS_SITEMAP_WINDOW_MS;
|
|
1003
1109
|
exports.SEO_LIMITS = SEO_LIMITS;
|
|
1004
|
-
exports.
|
|
1110
|
+
exports.buildNewsSitemapXml = buildNewsSitemapXml;
|
|
1111
|
+
exports.cdata = cdata;
|
|
1112
|
+
exports.fetchArticleBySlug = fetchArticleBySlug;
|
|
1113
|
+
exports.fetchArticleCategories = fetchArticleCategories;
|
|
1114
|
+
exports.fetchRelatedArticles = fetchRelatedArticles;
|
|
1115
|
+
exports.generateAllArticleSchemas = generateAllArticleSchemas;
|
|
1116
|
+
exports.generateArticleCategoryMetadata = generateArticleCategoryMetadata;
|
|
1117
|
+
exports.generateArticleListSchema = generateArticleListSchema;
|
|
1118
|
+
exports.generateArticleMetadata = generateArticleMetadata;
|
|
1119
|
+
exports.generateArticleSchema = generateArticleSchema;
|
|
1120
|
+
exports.generateArticleSitemap = generateArticleSitemap;
|
|
1121
|
+
exports.generateArticleStaticParams = generateArticleStaticParams;
|
|
1005
1122
|
exports.generateAtomFeed = generateAtomFeed;
|
|
1006
1123
|
exports.generateAuthorPageMetadata = generateAuthorPageMetadata;
|
|
1007
1124
|
exports.generateAuthorStaticParams = generateAuthorStaticParams;
|
|
1008
|
-
exports.generateBlogCategoryMetadata = generateBlogCategoryMetadata;
|
|
1009
|
-
exports.generateBlogIndexMetadata = generateBlogIndexMetadata;
|
|
1010
|
-
exports.generateBlogListSchema = generateBlogListSchema;
|
|
1011
|
-
exports.generateBlogPostMetadata = generateBlogPostMetadata;
|
|
1012
|
-
exports.generateBlogPostSchema = generateBlogPostSchema;
|
|
1013
|
-
exports.generateBlogSitemap = generateBlogSitemap;
|
|
1014
|
-
exports.generateBlogStaticParams = generateBlogStaticParams;
|
|
1015
1125
|
exports.generateBreadcrumbSchema = generateBreadcrumbSchema;
|
|
1016
1126
|
exports.generateCategoryStaticParams = generateCategoryStaticParams;
|
|
1017
1127
|
exports.generateClusterArticleSchema = generateClusterArticleSchema;
|
|
@@ -1021,24 +1131,27 @@ exports.generateClusterLandingSchema = generateClusterLandingSchema;
|
|
|
1021
1131
|
exports.generateClusterPageMetadata = generateClusterPageMetadata;
|
|
1022
1132
|
exports.generateFaqSchema = generateFaqSchema;
|
|
1023
1133
|
exports.generateHowToSchema = generateHowToSchema;
|
|
1134
|
+
exports.generateNewsSitemap = generateNewsSitemap;
|
|
1135
|
+
exports.generatePublicationMetadata = generatePublicationMetadata;
|
|
1024
1136
|
exports.generateRssFeed = generateRssFeed;
|
|
1137
|
+
exports.getAllArticleSlugs = getAllArticleSlugs;
|
|
1138
|
+
exports.getAllArticles = getAllArticles;
|
|
1025
1139
|
exports.getAllAuthorSlugs = getAllAuthorSlugs;
|
|
1026
|
-
exports.
|
|
1027
|
-
exports.
|
|
1140
|
+
exports.getArticle = getArticle;
|
|
1141
|
+
exports.getArticleCategories = getArticleCategories;
|
|
1028
1142
|
exports.getAuthorBySlug = getAuthorBySlug;
|
|
1029
1143
|
exports.getAuthorPosts = getAuthorPosts;
|
|
1030
|
-
exports.getBlogCategories = getBlogCategories;
|
|
1031
|
-
exports.getBlogPost = getBlogPost;
|
|
1032
1144
|
exports.getClusterNavigation = getClusterNavigation;
|
|
1033
1145
|
exports.getPostsByCategory = getPostsByCategory;
|
|
1034
1146
|
exports.getRelatedInsights = getRelatedInsights;
|
|
1035
1147
|
exports.getTopicCluster = getTopicCluster;
|
|
1036
1148
|
exports.getTopicClusters = getTopicClusters;
|
|
1037
1149
|
exports.identifyTopicClusters = identifyTopicClusters;
|
|
1038
|
-
exports.
|
|
1150
|
+
exports.recentNewsPosts = recentNewsPosts;
|
|
1151
|
+
exports.requireArticle = requireArticle;
|
|
1039
1152
|
exports.sanitizeExcerpt = sanitizeExcerpt;
|
|
1040
|
-
exports.
|
|
1153
|
+
exports.validateArticleSeo = validateArticleSeo;
|
|
1041
1154
|
exports.validateMetaDescription = validateMetaDescription;
|
|
1042
1155
|
exports.validateSeoTitle = validateSeoTitle;
|
|
1043
|
-
//# sourceMappingURL=chunk-
|
|
1044
|
-
//# sourceMappingURL=chunk-
|
|
1156
|
+
//# sourceMappingURL=chunk-NAA5J2JM.js.map
|
|
1157
|
+
//# sourceMappingURL=chunk-NAA5J2JM.js.map
|