meno-core 1.0.50 → 1.0.52
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/build-static.ts +8 -1
- package/dist/bin/cli.js +1 -1
- package/dist/build-static.js +3 -3
- package/dist/chunks/{chunk-PQ2HRXDR.js → chunk-2MHDV5BF.js} +11 -1
- package/dist/chunks/chunk-2MHDV5BF.js.map +7 -0
- package/dist/chunks/{chunk-YWJJD5D6.js → chunk-A725KYFK.js} +36 -17
- package/dist/chunks/{chunk-YWJJD5D6.js.map → chunk-A725KYFK.js.map} +3 -3
- package/dist/chunks/{chunk-CVLFID6V.js → chunk-CXCBV2M7.js} +65 -14
- package/dist/chunks/chunk-CXCBV2M7.js.map +7 -0
- package/dist/chunks/{chunk-4OFZP5NQ.js → chunk-HNLUO36W.js} +15 -4
- package/dist/chunks/chunk-HNLUO36W.js.map +7 -0
- package/dist/chunks/{chunk-56EUSC6D.js → chunk-LHLHPYSP.js} +4 -4
- package/dist/chunks/{chunk-56EUSC6D.js.map → chunk-LHLHPYSP.js.map} +2 -2
- package/dist/chunks/{configService-VOY2MY2K.js → configService-R3OGU2UD.js} +2 -2
- package/dist/entries/server-router.js +3 -3
- package/dist/lib/server/index.js +5 -5
- package/lib/server/routes/pages.ts +37 -2
- package/lib/server/services/cmsService.ts +21 -0
- package/lib/server/services/configService.ts +20 -0
- package/lib/server/ssr/buildErrorOverlay.ts +22 -4
- package/lib/server/ssr/errorOverlay.ts +11 -3
- package/lib/server/ssr/htmlGenerator.nonce.test.ts +165 -0
- package/lib/server/ssr/htmlGenerator.ts +25 -6
- package/lib/server/ssr/liveReloadIntegration.test.ts +3 -1
- package/lib/server/ssr/metaTagGenerator.ts +54 -6
- package/lib/server/ssr/ssrRenderer.ts +1 -0
- package/lib/server/ssrRenderer.test.ts +157 -2
- package/package.json +1 -1
- package/dist/chunks/chunk-4OFZP5NQ.js.map +0 -7
- package/dist/chunks/chunk-CVLFID6V.js.map +0 -7
- package/dist/chunks/chunk-PQ2HRXDR.js.map +0 -7
- /package/dist/chunks/{configService-VOY2MY2K.js.map → configService-R3OGU2UD.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
configService
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2MHDV5BF.js";
|
|
4
4
|
import {
|
|
5
5
|
projectPaths,
|
|
6
6
|
resolveProjectPath,
|
|
@@ -1070,6 +1070,25 @@ var CMSService = class {
|
|
|
1070
1070
|
await this.provider.saveDraft(collection, item);
|
|
1071
1071
|
this.itemsCache.delete(collection);
|
|
1072
1072
|
}
|
|
1073
|
+
/**
|
|
1074
|
+
* Save a published item. Wraps the provider so the items cache is invalidated
|
|
1075
|
+
* immediately — without this, the editor's post-save refetch could hit a
|
|
1076
|
+
* stale snapshot inside the 5s TTL window and overwrite an optimistic preview.
|
|
1077
|
+
*/
|
|
1078
|
+
async saveItem(collection, item) {
|
|
1079
|
+
if (!this.provider) throw new Error("CMS provider not configured");
|
|
1080
|
+
await this.provider.saveItem(collection, item);
|
|
1081
|
+
this.itemsCache.delete(collection);
|
|
1082
|
+
}
|
|
1083
|
+
/**
|
|
1084
|
+
* Delete an item (and its draft sibling). Cache invalidation, same rationale
|
|
1085
|
+
* as `saveItem`.
|
|
1086
|
+
*/
|
|
1087
|
+
async deleteItem(collection, filename) {
|
|
1088
|
+
if (!this.provider) throw new Error("CMS provider not configured");
|
|
1089
|
+
await this.provider.deleteItem(collection, filename);
|
|
1090
|
+
this.itemsCache.delete(collection);
|
|
1091
|
+
}
|
|
1073
1092
|
async discardDraft(collection, filename) {
|
|
1074
1093
|
if (!this.provider) throw new Error("CMS provider not configured");
|
|
1075
1094
|
await this.provider.discardDraft(collection, filename);
|
|
@@ -1622,7 +1641,18 @@ function extractPageMeta(pageData) {
|
|
|
1622
1641
|
}
|
|
1623
1642
|
return meta;
|
|
1624
1643
|
}
|
|
1625
|
-
function
|
|
1644
|
+
function normalizeOgImageUrl(value, baseUrl) {
|
|
1645
|
+
if (!value) return value;
|
|
1646
|
+
let out = value;
|
|
1647
|
+
if (/^\/images\/[^?#]+\.(webp|avif)(\?|#|$)/i.test(out)) {
|
|
1648
|
+
out = out.replace(/\.(webp|avif)(?=\?|#|$)/i, ".jpg");
|
|
1649
|
+
}
|
|
1650
|
+
if (baseUrl && out.startsWith("/")) {
|
|
1651
|
+
out = `${baseUrl.replace(/\/$/, "")}${out}`;
|
|
1652
|
+
}
|
|
1653
|
+
return out;
|
|
1654
|
+
}
|
|
1655
|
+
function generateMetaTags(meta, url = "", locale = "en", config = DEFAULT_I18N_CONFIG, options) {
|
|
1626
1656
|
const tags = [];
|
|
1627
1657
|
const resolve = (value) => {
|
|
1628
1658
|
const resolved = resolveI18nValue(value, locale, config);
|
|
@@ -1651,7 +1681,8 @@ function generateMetaTags(meta, url = "", locale = "en", config = DEFAULT_I18N_C
|
|
|
1651
1681
|
tags.push(`<meta property="og:description" content="${escapeHtml(ogDescription)}" />`);
|
|
1652
1682
|
}
|
|
1653
1683
|
if (ogImage) {
|
|
1654
|
-
|
|
1684
|
+
const normalizedOgImage = normalizeOgImageUrl(ogImage, options?.baseUrl);
|
|
1685
|
+
tags.push(`<meta property="og:image" content="${escapeHtml(normalizedOgImage)}" />`);
|
|
1655
1686
|
}
|
|
1656
1687
|
if (ogType) {
|
|
1657
1688
|
tags.push(`<meta property="og:type" content="${escapeHtml(ogType)}" />`);
|
|
@@ -1659,11 +1690,28 @@ function generateMetaTags(meta, url = "", locale = "en", config = DEFAULT_I18N_C
|
|
|
1659
1690
|
if (url) {
|
|
1660
1691
|
tags.push(`<meta property="og:url" content="${escapeHtml(url)}" />`);
|
|
1661
1692
|
}
|
|
1693
|
+
const hasAnyMeta = title || description || ogImage || ogTitle || ogDescription;
|
|
1694
|
+
if (hasAnyMeta) {
|
|
1695
|
+
const cardType = ogImage ? "summary_large_image" : "summary";
|
|
1696
|
+
tags.push(`<meta name="twitter:card" content="${cardType}" />`);
|
|
1697
|
+
}
|
|
1698
|
+
if (ogTitle) {
|
|
1699
|
+
tags.push(`<meta name="twitter:title" content="${escapeHtml(ogTitle)}" />`);
|
|
1700
|
+
}
|
|
1701
|
+
if (ogDescription) {
|
|
1702
|
+
tags.push(`<meta name="twitter:description" content="${escapeHtml(ogDescription)}" />`);
|
|
1703
|
+
}
|
|
1704
|
+
const rawHandle = options?.social?.twitterHandle?.trim();
|
|
1705
|
+
if (rawHandle) {
|
|
1706
|
+
const handle = rawHandle.startsWith("@") ? rawHandle : `@${rawHandle}`;
|
|
1707
|
+
tags.push(`<meta name="twitter:site" content="${escapeHtml(handle)}" />`);
|
|
1708
|
+
tags.push(`<meta name="twitter:creator" content="${escapeHtml(handle)}" />`);
|
|
1709
|
+
}
|
|
1662
1710
|
if (url) {
|
|
1663
1711
|
tags.push(`<link rel="canonical" href="${escapeHtml(url)}" />`);
|
|
1664
1712
|
}
|
|
1665
|
-
if (
|
|
1666
|
-
const { slugMappings, pagePath = "/", baseUrl = "" } =
|
|
1713
|
+
if (options?.slugMappings && options.slugMappings.length > 0 && config.locales.length > 1) {
|
|
1714
|
+
const { slugMappings, pagePath = "/", baseUrl = "" } = options;
|
|
1667
1715
|
const slugIndex = buildSlugIndex(slugMappings);
|
|
1668
1716
|
const localeLinks = getLocaleLinks(pagePath, locale, config, slugIndex);
|
|
1669
1717
|
for (const link of localeLinks) {
|
|
@@ -3118,7 +3166,8 @@ async function renderPageSSR(pageData, globalComponents = {}, pagePath = "/", ba
|
|
|
3118
3166
|
const metaTags = generateMetaTags(meta, fullUrl, effectiveLocale, config, {
|
|
3119
3167
|
slugMappings,
|
|
3120
3168
|
pagePath,
|
|
3121
|
-
baseUrl
|
|
3169
|
+
baseUrl,
|
|
3170
|
+
social: configService.getSocial()
|
|
3122
3171
|
});
|
|
3123
3172
|
const resolvedTitle = resolveI18nValue(meta.title, effectiveLocale, config);
|
|
3124
3173
|
return {
|
|
@@ -3475,8 +3524,10 @@ async function generateSSRHTML(pageDataOrOptions, globalComponents = {}, pagePat
|
|
|
3475
3524
|
injectEditorAttrs = false,
|
|
3476
3525
|
isEditor = false,
|
|
3477
3526
|
isProductionBuild = false,
|
|
3478
|
-
serverPort
|
|
3527
|
+
serverPort,
|
|
3528
|
+
cspNonce
|
|
3479
3529
|
} = options;
|
|
3530
|
+
const nonceAttr = cspNonce ? ` nonce="${cspNonce}"` : "";
|
|
3480
3531
|
const rendered = await renderPageSSR(pageData, components, path2, base, loc, void 0, slugs, cms, cmsServ, isProductionBuild, injectEditorAttrs);
|
|
3481
3532
|
let finalClientDataCollections = clientDataCollections;
|
|
3482
3533
|
if (rendered.neededCollections.size > 0 && cmsServ) {
|
|
@@ -3507,7 +3558,7 @@ async function generateSSRHTML(pageDataOrOptions, globalComponents = {}, pagePat
|
|
|
3507
3558
|
await configService.load();
|
|
3508
3559
|
const globalLibraries = configService.getLibraries() || { js: [], css: [] };
|
|
3509
3560
|
const globalCustomCode = configService.getCustomCode();
|
|
3510
|
-
const menoBadgeHtml = configService.getShowMenoBadge() ? `<
|
|
3561
|
+
const menoBadgeHtml = configService.getShowMenoBadge() ? `<style>.meno-badge{position:fixed;bottom:12px;left:12px;z-index:9999;background:#000;color:#fff;padding:4px 10px;border-radius:6px;font-size:12px;font-family:system-ui,sans-serif;text-decoration:none;opacity:0.8;transition:opacity 0.2s}.meno-badge:hover,.meno-badge:focus{opacity:1}</style><a class="meno-badge" href="https://meno.so" target="_blank" rel="noopener">Made in Meno</a>` : "";
|
|
3511
3562
|
const mergedCustomCode = {
|
|
3512
3563
|
head: [globalCustomCode.head, pageCustomCode?.head].filter(Boolean).join("\n"),
|
|
3513
3564
|
bodyStart: [globalCustomCode.bodyStart, pageCustomCode?.bodyStart].filter(Boolean).join("\n"),
|
|
@@ -3576,7 +3627,7 @@ async function generateSSRHTML(pageDataOrOptions, globalComponents = {}, pagePat
|
|
|
3576
3627
|
} else {
|
|
3577
3628
|
const escapedJavaScript = allJavaScript.replace(/<\/script>/gi, "<\\/script>");
|
|
3578
3629
|
componentScript = `
|
|
3579
|
-
<script>
|
|
3630
|
+
<script${nonceAttr}>
|
|
3580
3631
|
${escapedJavaScript}
|
|
3581
3632
|
</script>`;
|
|
3582
3633
|
}
|
|
@@ -3643,14 +3694,14 @@ picture {
|
|
|
3643
3694
|
const prefetchConfig = await loadPrefetchConfig();
|
|
3644
3695
|
const menoConfig = prefetchConfig.enabled ? { prefetch: prefetchConfig } : {};
|
|
3645
3696
|
const hasConfig = Object.keys(menoConfig).length > 0;
|
|
3646
|
-
const configInlineScript = hasConfig && !extScriptPath && !returnSeparateJS ? `<script>window.__MENO_CONFIG__=${JSON.stringify(menoConfig)}</script>
|
|
3697
|
+
const configInlineScript = hasConfig && !extScriptPath && !returnSeparateJS ? `<script${nonceAttr}>window.__MENO_CONFIG__=${JSON.stringify(menoConfig)}</script>
|
|
3647
3698
|
` : "";
|
|
3648
3699
|
if (hasConfig && externalJavaScript !== null) {
|
|
3649
3700
|
externalJavaScript = `window.__MENO_CONFIG__=${JSON.stringify(menoConfig)};
|
|
3650
3701
|
|
|
3651
3702
|
` + externalJavaScript;
|
|
3652
3703
|
}
|
|
3653
|
-
const cmsInlineScript = cmsTemplatePath && cms && (!useBundled || injectLiveReload) ? `<script>window.__MENO_CMS__=${JSON.stringify({ item: cms.cms, templatePath: cmsTemplatePath })}</script>
|
|
3704
|
+
const cmsInlineScript = cmsTemplatePath && cms && (!useBundled || injectLiveReload) ? `<script${nonceAttr}>window.__MENO_CMS__=${JSON.stringify({ item: cms.cms, templatePath: cmsTemplatePath })}</script>
|
|
3654
3705
|
` : "";
|
|
3655
3706
|
const clientDataScripts = finalClientDataCollections && finalClientDataCollections.size > 0 ? generateAllInlineDataScripts(finalClientDataCollections) + "\n " : "";
|
|
3656
3707
|
const hasDarkFavicon = !!(iconsConfig.favicon && iconsConfig.faviconDark);
|
|
@@ -3661,8 +3712,8 @@ picture {
|
|
|
3661
3712
|
const scriptPreloadTag = extScriptPath ? `<link rel="preload" href="${extScriptPath}" as="script">` : "";
|
|
3662
3713
|
const imagePreloadTags = generateImagePreloadTags(rendered.preloadImages);
|
|
3663
3714
|
const wsUrl = serverPort ? `'ws://localhost:${serverPort}/hmr'` : `location.origin.replace('http','ws')+'/hmr'`;
|
|
3664
|
-
const liveReloadScript = injectLiveReload ? `<script>(function(){var ws,timer,gen=0,lastSrvRoot=null;function strip(s){return s?s.replace(/[?&]_r=\\d+/,''):''}function classList(el){return (el.getAttribute('class')||'').split(/\\s+/).filter(Boolean)}function syncEl(cur,srv,old){var cc=classList(cur),sc=classList(srv),oc=old?new Set(classList(old)):new Set();var rt=cc.filter(function(c){return !oc.has(c)});var seen=new Set(),fin=[];sc.concat(rt).forEach(function(c){if(!seen.has(c)){seen.add(c);fin.push(c)}});var fs=fin.join(' ');if((cur.getAttribute('class')||'')!==fs){if(fs)cur.setAttribute('class',fs);else cur.removeAttribute('class')}for(var i=0;i<srv.attributes.length;i++){var a=srv.attributes[i];if(a.name==='class')continue;if(cur.getAttribute(a.name)!==a.value)cur.setAttribute(a.name,a.value)}if(old){for(var i=0;i<old.attributes.length;i++){var a=old.attributes[i];if(a.name==='class')continue;if(!srv.hasAttribute(a.name)&&cur.hasAttribute(a.name))cur.removeAttribute(a.name)}}}function syncText(cur,srv){var cc=cur.childNodes,sc=srv.childNodes;for(var i=0;i<sc.length;i++){var s=sc[i],c=cc[i];if(s.nodeType===3&&c&&c.nodeType===3){if(c.textContent!==s.textContent)c.textContent=s.textContent}}}function smartUpdate(curR,srvR,oldR){var ce=curR.querySelectorAll('[data-element-path]'),se=srvR.querySelectorAll('[data-element-path]');if(ce.length!==se.length){if(curR.innerHTML!==srvR.innerHTML)curR.innerHTML=srvR.innerHTML;return}var sbp={};for(var i=0;i<se.length;i++)sbp[se[i].getAttribute('data-element-path')]=se[i];var obp={};if(oldR){var oe=oldR.querySelectorAll('[data-element-path]');for(var i=0;i<oe.length;i++)obp[oe[i].getAttribute('data-element-path')]=oe[i]}for(var i=0;i<ce.length;i++){var c=ce[i],p=c.getAttribute('data-element-path'),s=sbp[p];if(!s){if(curR.innerHTML!==srvR.innerHTML)curR.innerHTML=srvR.innerHTML;return}syncEl(c,s,obp[p]);syncText(c,s)}syncText(curR,srvR)}function connect(){ws=new WebSocket(${wsUrl});ws.onmessage=function(e){var d=JSON.parse(e.data);if(d.type==='hmr:libraries-update'){location.reload()}else if(d.type==='hmr:update'||d.type==='hmr:cms-update'||d.type==='hmr:colors-update'||d.type==='hmr:variables-update')hotReload()};ws.onclose=function(){clearTimeout(timer);timer=setTimeout(connect,1000)}}function hotReload(){var g=++gen;var sx=window.scrollX,sy=window.scrollY;fetch(location.href,{cache:'no-store'}).then(function(r){return r.text()}).then(function(html){if(g!==gen)return;var p=new DOMParser();var d=p.parseFromString(html,'text/html');var or=document.getElementById('root'),nr=d.getElementById('root');if(or&&nr)smartUpdate(or,nr,lastSrvRoot);if(nr)lastSrvRoot=nr.cloneNode(true);var os=document.getElementById('meno-styles'),ns=d.getElementById('meno-styles');if(os&&ns&&os.textContent!==ns.textContent)os.parentNode.replaceChild(ns.cloneNode(true),os);var nh=d.documentElement;if(nh){var nl=nh.getAttribute('lang')||'en',nt=nh.getAttribute('theme')||'light';if(document.documentElement.getAttribute('lang')!==nl)document.documentElement.setAttribute('lang',nl);if(document.documentElement.getAttribute('theme')!==nt)document.documentElement.setAttribute('theme',nt)}var ocms=document.querySelectorAll('script[id^="meno-cms-"]'),ncms=d.querySelectorAll('script[id^="meno-cms-"]');var ock=JSON.stringify(Array.prototype.map.call(ocms,function(s){return [s.id,s.textContent]}));var nck=JSON.stringify(Array.prototype.map.call(ncms,function(s){return [s.id,s.textContent]}));if(ock!==nck){ocms.forEach(function(s){s.remove()});ncms.forEach(function(s){var c=document.createElement('script');c.type=s.type;c.id=s.id;c.textContent=s.textContent;document.head.appendChild(c)})}window.__menoHotReload=true;var olib=document.querySelectorAll('body > script[src^="/libraries/"]'),nlib=d.querySelectorAll('body > script[src^="/libraries/"]');var olk=JSON.stringify(Array.prototype.map.call(olib,function(s){return strip(s.getAttribute('src'))}).sort());var nlk=JSON.stringify(Array.prototype.map.call(nlib,function(s){return strip(s.getAttribute('src'))}).sort());if(olk!==nlk){olib.forEach(function(o){o.remove()});nlib.forEach(function(n){var src=n.getAttribute('src');var ls=document.createElement('script');ls.src=src+(src.indexOf('?')>-1?'&':'?')+'_r='+Date.now();document.body.appendChild(ls)})}var oscr=document.querySelector('script[src^="/_scripts/"]'),nscr=d.querySelector('script[src^="/_scripts/"]');var oss=oscr?strip(oscr.getAttribute('src')):'',nss=nscr?strip(nscr.getAttribute('src')):'';if(oss===nss){window.scrollTo(sx,sy)}else{if(oscr)oscr.remove();if(nscr){var src=nscr.getAttribute('src');var s=document.createElement('script');s.src=src+(src.indexOf('?')>-1?'&':'?')+'_r='+Date.now();s.onload=function(){document.dispatchEvent(new Event('DOMContentLoaded'));window.scrollTo(sx,sy)};s.onerror=function(){window.scrollTo(sx,sy)};document.body.appendChild(s)}else{document.dispatchEvent(new Event('DOMContentLoaded'));window.scrollTo(sx,sy)}}}).catch(function(){location.reload()})}var iR=document.getElementById('root');if(iR)lastSrvRoot=iR.cloneNode(true);connect()})()</script>` : "";
|
|
3665
|
-
const scrollHandlerScript = injectLiveReload ? `<script>(function(){window.addEventListener('message',function(e){if(e.data.type==='GET_SCROLL_POSITION'){window.parent.postMessage({type:'SCROLL_POSITION_RESPONSE',scrollX:window.scrollX,scrollY:window.scrollY},'*')}else if(e.data.type==='SET_SCROLL_POSITION'){window.scrollTo(e.data.scrollX,e.data.scrollY)}})})()</script>` : "";
|
|
3715
|
+
const liveReloadScript = injectLiveReload ? `<script${nonceAttr}>(function(){var ws,timer,gen=0,lastSrvRoot=null;function strip(s){return s?s.replace(/[?&]_r=\\d+/,''):''}function classList(el){return (el.getAttribute('class')||'').split(/\\s+/).filter(Boolean)}function syncEl(cur,srv,old){var cc=classList(cur),sc=classList(srv),oc=old?new Set(classList(old)):new Set();var rt=cc.filter(function(c){return !oc.has(c)});var seen=new Set(),fin=[];sc.concat(rt).forEach(function(c){if(!seen.has(c)){seen.add(c);fin.push(c)}});var fs=fin.join(' ');if((cur.getAttribute('class')||'')!==fs){if(fs)cur.setAttribute('class',fs);else cur.removeAttribute('class')}for(var i=0;i<srv.attributes.length;i++){var a=srv.attributes[i];if(a.name==='class')continue;if(cur.getAttribute(a.name)!==a.value)cur.setAttribute(a.name,a.value)}if(old){for(var i=0;i<old.attributes.length;i++){var a=old.attributes[i];if(a.name==='class')continue;if(!srv.hasAttribute(a.name)&&cur.hasAttribute(a.name))cur.removeAttribute(a.name)}}}function syncText(cur,srv){var cc=cur.childNodes,sc=srv.childNodes;for(var i=0;i<sc.length;i++){var s=sc[i],c=cc[i];if(s.nodeType===3&&c&&c.nodeType===3){if(c.textContent!==s.textContent)c.textContent=s.textContent}}}function smartUpdate(curR,srvR,oldR){var ce=curR.querySelectorAll('[data-element-path]'),se=srvR.querySelectorAll('[data-element-path]');if(ce.length!==se.length){if(curR.innerHTML!==srvR.innerHTML)curR.innerHTML=srvR.innerHTML;return}var sbp={};for(var i=0;i<se.length;i++)sbp[se[i].getAttribute('data-element-path')]=se[i];var obp={};if(oldR){var oe=oldR.querySelectorAll('[data-element-path]');for(var i=0;i<oe.length;i++)obp[oe[i].getAttribute('data-element-path')]=oe[i]}for(var i=0;i<ce.length;i++){var c=ce[i],p=c.getAttribute('data-element-path'),s=sbp[p];if(!s){if(curR.innerHTML!==srvR.innerHTML)curR.innerHTML=srvR.innerHTML;return}syncEl(c,s,obp[p]);syncText(c,s)}syncText(curR,srvR)}function connect(){ws=new WebSocket(${wsUrl});ws.onmessage=function(e){var d=JSON.parse(e.data);if(d.type==='hmr:libraries-update'){location.reload()}else if(d.type==='hmr:update'||d.type==='hmr:cms-update'||d.type==='hmr:colors-update'||d.type==='hmr:variables-update')hotReload()};ws.onclose=function(){clearTimeout(timer);timer=setTimeout(connect,1000)}}function hotReload(){var g=++gen;var sx=window.scrollX,sy=window.scrollY;fetch(location.href,{cache:'no-store'}).then(function(r){return r.text()}).then(function(html){if(g!==gen)return;var p=new DOMParser();var d=p.parseFromString(html,'text/html');var or=document.getElementById('root'),nr=d.getElementById('root');if(or&&nr)smartUpdate(or,nr,lastSrvRoot);if(nr)lastSrvRoot=nr.cloneNode(true);var os=document.getElementById('meno-styles'),ns=d.getElementById('meno-styles');if(os&&ns&&os.textContent!==ns.textContent)os.parentNode.replaceChild(ns.cloneNode(true),os);var nh=d.documentElement;if(nh){var nl=nh.getAttribute('lang')||'en',nt=nh.getAttribute('theme')||'light';if(document.documentElement.getAttribute('lang')!==nl)document.documentElement.setAttribute('lang',nl);if(document.documentElement.getAttribute('theme')!==nt)document.documentElement.setAttribute('theme',nt)}var ocms=document.querySelectorAll('script[id^="meno-cms-"]'),ncms=d.querySelectorAll('script[id^="meno-cms-"]');var ock=JSON.stringify(Array.prototype.map.call(ocms,function(s){return [s.id,s.textContent]}));var nck=JSON.stringify(Array.prototype.map.call(ncms,function(s){return [s.id,s.textContent]}));if(ock!==nck){ocms.forEach(function(s){s.remove()});ncms.forEach(function(s){var c=document.createElement('script');c.type=s.type;c.id=s.id;c.textContent=s.textContent;document.head.appendChild(c)})}window.__menoHotReload=true;var olib=document.querySelectorAll('body > script[src^="/libraries/"]'),nlib=d.querySelectorAll('body > script[src^="/libraries/"]');var olk=JSON.stringify(Array.prototype.map.call(olib,function(s){return strip(s.getAttribute('src'))}).sort());var nlk=JSON.stringify(Array.prototype.map.call(nlib,function(s){return strip(s.getAttribute('src'))}).sort());if(olk!==nlk){olib.forEach(function(o){o.remove()});nlib.forEach(function(n){var src=n.getAttribute('src');var ls=document.createElement('script');ls.src=src+(src.indexOf('?')>-1?'&':'?')+'_r='+Date.now();document.body.appendChild(ls)})}var oscr=document.querySelector('script[src^="/_scripts/"]'),nscr=d.querySelector('script[src^="/_scripts/"]');var oss=oscr?strip(oscr.getAttribute('src')):'',nss=nscr?strip(nscr.getAttribute('src')):'';if(oss===nss){window.scrollTo(sx,sy)}else{if(oscr)oscr.remove();if(nscr){var src=nscr.getAttribute('src');var s=document.createElement('script');s.src=src+(src.indexOf('?')>-1?'&':'?')+'_r='+Date.now();s.onload=function(){document.dispatchEvent(new Event('DOMContentLoaded'));window.scrollTo(sx,sy)};s.onerror=function(){window.scrollTo(sx,sy)};document.body.appendChild(s)}else{document.dispatchEvent(new Event('DOMContentLoaded'));window.scrollTo(sx,sy)}}}).catch(function(){location.reload()})}var iR=document.getElementById('root');if(iR)lastSrvRoot=iR.cloneNode(true);connect()})()</script>` : "";
|
|
3716
|
+
const scrollHandlerScript = injectLiveReload ? `<script${nonceAttr}>(function(){window.addEventListener('message',function(e){if(e.data.type==='GET_SCROLL_POSITION'){window.parent.postMessage({type:'SCROLL_POSITION_RESPONSE',scrollX:window.scrollX,scrollY:window.scrollY},'*')}else if(e.data.type==='SET_SCROLL_POSITION'){window.scrollTo(e.data.scrollX,e.data.scrollY)}})})()</script>` : "";
|
|
3666
3717
|
const styleContent = useBundled ? finalCSS : `
|
|
3667
3718
|
${combinedCSS.split("\n").join("\n ")}
|
|
3668
3719
|
`;
|
|
@@ -6332,4 +6383,4 @@ export {
|
|
|
6332
6383
|
FileSystemCMSProvider,
|
|
6333
6384
|
migrateTemplatesDirectory
|
|
6334
6385
|
};
|
|
6335
|
-
//# sourceMappingURL=chunk-
|
|
6386
|
+
//# sourceMappingURL=chunk-CXCBV2M7.js.map
|