@griddo/cx 10.6.0 → 10.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js
CHANGED
|
@@ -69,4 +69,4 @@ ${g}
|
|
|
69
69
|
=============
|
|
70
70
|
`))}fh.default.config();var Fv=Y(),cs=class{robots;baseURL;settings;endpoint;constructor(){this.robots=[],this.baseURL=process.env.API_URL,this.settings={},this.endpoint=`${this.baseURL}/domains/robots`}async getRobots(){try{let e=await Oe({endpoint:this.endpoint});this.robots=e?.filter(r=>!!r.path).map(({path:r,content:n})=>({path:r,content:n||`User-agent: *
|
|
71
71
|
\r
|
|
72
|
-
\rAllow: /`}))||[]}catch(e){console.warn(`${this.constructor.name}: ${e.message}`)}}async writeFiles(e){let{__cx:r}=Fv.paths(e),n=as.default.join(r,"dist");await this.getRobots();let i=this.robots.find(({path:o})=>o===`/${e}`);if(!i){console.log(`Robots not found for ${e}`);return}if(ss.default.existsSync(n)){let o=as.default.join(n,"robots.txt");ss.default.writeFileSync(o,i?.content)}else console.log(`${n} not found`)}},dh=new cs;var np=F(require("node:path")),ip=F(it()),op=F(so());var hh=F(it());hh.default.config();var us=process.env.API_URL,pt=`${us}/site/`,nt={GET_ALL:`${us}/sites/all`,GET_PAGE:[`${us}/page/`,""],INFO:[`${pt}`,"/all"],LANGUAGES:[`${pt}`,"/languages"],BUILD_START:[`${pt}`,"/build/start"],BUILD_END:[`${pt}`,"/build/end"],GET_DISTRIBUTOR_DATA:[`${pt}`,"/distributor"],GET_SITEMAP:[`${pt}`,"/sitemap"],SOCIALS:[`${pt}`,"/socials"],GET_PAGES:[`${pt}`,"/pages?pagination=false"]},ge=class{static async getAll(){let{GET_ALL:e}=nt;return await Oe({endpoint:e})}static async getPage(e,r){let{GET_PAGE:[n,i]}=nt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getInfo(e,r=""){let{INFO:[n,i]}=nt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getLanguages(e,r=""){let{LANGUAGES:[n,i]}=nt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async startSiteRender(e){let{BUILD_START:[r,n]}=nt;return await Oe({endpoint:`${r}${e}${n}`})}static async endSiteRender(e,r){let{BUILD_END:[n,i]}=nt;return await Ir({endpoint:`${n}${e}${i}`,body:r})}static async getDistributorData(e,r,n,i,o){let{GET_DISTRIBUTOR_DATA:[s,a]}=nt,c=i||e.site,d=o||e.language;return await Ir({endpoint:`${s}${c}${a}`,body:r,headers:{lang:d},cacheKey:n})}static async getSitemap(e){let{GET_SITEMAP:[r,n]}=nt;return await Oe({endpoint:`${r}${e}${n}`})}static async getSocials(e,r=""){let{SOCIALS:[n,i]}=nt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}};var Kn=class{static getBody(e,r){let{order:n,sources:i,quantity:o,mode:s,fixed:a,fullRelations:c=!1,allLanguages:d=!1,preferenceLanguage:u=!1,referenceId:p}=e;return s==="auto"?{mode:s,order:n,sources:i,quantity:o,fullRelations:c,allLanguages:d,preferenceLanguage:u}:s==="manual"?{mode:s,fixed:a,fullRelations:c}:s==="navigation"?{mode:s,order:n,quantity:o,fullRelations:c,referenceId:p||r?.structuredDataContent?.id}:(console.log(`Error: Distribuidor mode: ${s} is not recognized on page ${r?.id}.`),e)}static async fetchContentTypeData(e){let{page:r,component:{data:n},cacheKey:i}=e;if(!n)return $e(`Error: Page ${r.id} has \`hasDistributorData: true\` but it doesn't have a \`data\` prop`,"No data in ReferenceField"),[];if(Array.isArray(n.sources)&&n.sources.length<1)return $e(`Warning: Page with id: ${r.id} has a ReferenceField with empty \`data.sources\``,"Empty data.sources in ReferenceField"),[];let{site:o,lang:s}=n;n.sources||$e(`Warning: Page with id: ${r.id} in the site ${o} has a ReferenceField with \`undefined\` \`data.sources\``,"Undefined data.sources in ReferenceField");let a=this.getBody(n,r);return await ge.getDistributorData(r,a,i,o,s)}static async getDistributorData({page:e,cacheKey:r=""}){try{let{template:n}=e,i=async(a,c=1)=>{if(!(!a||typeof a!="object")&&JSON.stringify(a).includes('"hasDistributorData":true'))for(let d in a){if(d==="queriedItems")continue;let p=a[d];!p||typeof p!="object"||(p.hasDistributorData&&(p.queriedItems=await this.fetchContentTypeData({page:e,cacheKey:r,component:p})),await i(p,c+1))}};return await(async a=>(await i([a]),a))(n)}catch(n){console.error(`Error en get distributor ${n}`),process.exit(1)}}};var Qn=class{_defaultHeaders;_defaultFooters;_navigations;constructor(){this._navigations={footers:[],headers:[]},this._defaultHeaders={},this._defaultFooters={}}set navigations(e){this._navigations=e,this._defaultFooters=this.getDefaultFooters(),this._defaultHeaders=this.getDefaultHeaders()}get navigations(){return this._navigations}getDefaultFooters(){return[...this.navigations.footers].filter(i=>!!i.setAsDefault).reduce((i,o)=>{let{language:s}=o;return{...i,[s]:o}},{})}getDefaultHeaders(){return[...this.navigations.headers].filter(i=>!!i.setAsDefault).reduce((i,o)=>{let{language:s}=o;return{...i,[s]:o}},{})}getRightLanguage(e,r,n){if(!e||!r)return null;let o=e.find(s=>s.language===n&&s.navigationLanguages?.find(a=>a.navigationId===r))||e.find(s=>s.id===r);return o?{...o}:null}getPageHeader(e,r){return this.getRightLanguage(this.navigations.headers,e,r)}getPageFooter(e,r){return this.getRightLanguage(this.navigations.footers,e,r)}getPageNavigations(e){let{header:r,footer:n,language:i,template:{templateType:o},templateConfig:{defaultHeader:s,defaultFooter:a,templates:c}}=e,d=b=>{let w=b.find(x=>typeof x=="number");return typeof w=="number"?w:null},u=d([r,c?.[o]?.defaultHeader,s]),p=d([n,c?.[o]?.defaultFooter,a]),g=u?this.getPageHeader(u,i):u===0?null:this._defaultHeaders[i],m=p?this.getPageFooter(p,i):p===0?null:this._defaultFooters[i];return{header:g,footer:m}}};var ls=class{baseURL;settings;ENDPOINTS;constructor(){this.baseURL=process.env.API_URL,this.settings={cloudinaryName:"",useMetaTitle:!1,useMetaKeywords:!1,showBasicMetaRobots:!1,avoidHrefLangsOnCanonicals:!1,avoidSelfReferenceCanonicals:!1,avoidHrefLangXDefault:!1,avoidDebugMetas:!1},this.ENDPOINTS={settings:`${this.baseURL}/settings`,resetRender:`${this.baseURL}/debug/reset-render`}}async getAll(){let{settings:e}=this.ENDPOINTS,r=await Oe({endpoint:e});this.settings=r}async resetRender(){let{resetRender:e}=this.ENDPOINTS;await Ir({endpoint:e})}},fs=new ls;var gh=F(it());gh.default.config();var Rv=25;function Tv({socialTitle:t,socialDescription:e,socialImage:r}){return{type:"website",title:t,description:e,image:r?Po(r,1280,768):"",twitterImage:r?Po(r,1280,768):""}}function kv(t){let{title:e,metaTitle:r,metaDescription:n,canonicalURL:i,locale:o,url:s,isIndexed:a,follow:c,metasAdvanced:d,pageLanguages:u,fullUrl:p,metaKeywords:g}=t,m=d?.split(",").filter(Boolean).map(b=>b.trim().toLowerCase())||[];return{title:(r||e||"").trim(),description:n,canonical:i&&i.trim()&&i!==p?i.trim():a?p:void 0,locale:o,url:s,index:a?"index":"noindex",follow:c?"follow":"nofollow",translate:m.includes("notranslate")?"notranslate":"",metasAdvanced:m.filter(b=>b!=="notranslate").join(),pageLanguages:u,metaKeywords:g?.filter(Boolean).map(b=>b.replace(/"/g,"'")).join(", ")}}async function hs(t,e){let{id:r,title:n,fullPath:i,language:o,breadcrumb:s,socialDescription:a,socialImage:c,socialTitle:d}=t,{baseUrl:u,cloudinaryName:p,griddoVersion:g,siteLangs:m,siteMetadata:b,siteOptions:w,siteScript:x,siteSlug:A,socials:j,theme:B,navigations:{header:$,footer:V}}=e;t.breadcrumb=s,t.siteSlug=A,t.apiUrl=u,t.publicApiUrl=e.publicBaseUrl,t.instance=e.instance;let Te=m.find(({id:I})=>I===t?.language)?.locale.replace(/_/g,"-"),ee=kv(t),D=Tv({socialDescription:a,socialImage:c,socialTitle:d}),q=i.compose,k=new Date().toString();return{path:q,size:void 0,context:{id:r,title:n,fullPath:i,locale:Te,languageId:o,theme:B,siteMetadata:b,pageMetadata:ee,openGraph:D,socials:j,siteLangs:m,cloudinaryName:p,siteOptions:w,griddoVersion:g,renderDate:k,siteScript:x,header:$,footer:V,page:t}}}async function yh(t,e){return await hs(t,e)}async function vh({page:t,pages:e,isRoot:r=!1,defaultLang:n,template:i,totalQueriedItems:o},s){let a=e.map(async(c,d)=>{let u=d===0,p=d+1,{domainUrl:g,compose:m}=t.fullPath,b={...t,id:parseInt("-"+t.id+d),fullPath:{...t.fullPath,compose:ds(m,p,{addEndingSlash:!0})},fullUrl:ds(t.fullUrl,p,{addEndingSlash:!0}),slug:ds(t.slug,p),title:mh(t.title,p),metaTitle:mh(t.metaTitle||"",p),disableHrefLangs:p>1,template:{...i,isFirstPage:u,pageNumber:p,totalPages:e.length,baseLink:`${g}${m}`,queriedItems:c,totalQueriedItems:o?.length},isRoot:r,defaultLang:n};return await hs(b,s)});return Promise.all(a)}function bh(t,e){let{multiPageElements:r,...n}=t,i=JSON.parse(JSON.stringify(r));i.find(({sectionSlug:s})=>s==="/")||i.push({});let o=i.map(async(s,a)=>{let c=JSON.parse(JSON.stringify(n)),{sectionSlug:d="/",title:u="",metaTitle:p="",metaDescription:g=""}=s,m=typeof u=="string"?u:u.content,b=c.fullPath.compose||"",w=c.fullUrl.endsWith("/")?c.fullUrl.slice(0,-1):c.fullUrl,x=d?.replace(/\//g,""),j=d==="/"?x:x+"/",B=b.endsWith("/")?"":"/",$=`${b}${B}${j}`;return m.trim()&&(c.title=m),g.trim()&&(c.metaDescription=g),c.id=parseInt("-"+c.id+a),c.fullUrl=`${w}/${j}`,c.fullPath.compose=$,c.slug=$,c.template.activeSectionSlug=d,c.template.activeSectionBase=w,c.metaTitle=p.trim()||m.trim()||c.metaTitle,await hs(c,e)});return Promise.all(o)}function _h(t){return new Promise(r=>{let n=(i,o=0)=>{if(!(!i||typeof i!="object")){for(let s in i){let a=i[s],c=a||typeof a=="object",d=JSON.stringify(a).includes('"hasGriddoMultiPage":true');if(!c||!d)continue;let{component:u,hasGriddoMultiPage:p,elements:g}=a;u&&p&&r(g||[]),n(a,o+1)}o||r(null)}};n([t])})}function Mv(t,e,r){return e?.slice(t*(r-1),t*r)}function qv(t,e){let r=Math.ceil(e.length/t)||1;return Array.from({length:r},(i,o)=>o+1)?.map(i=>Mv(t,e,i))}function wh(t){let e=t.queriedItems||[],r=t?.itemsPerPage||Rv;return qv(r,e)}function ph(t){return t.replace(/\/+$/,"/")}function ds(t,e,r){let n=t.endsWith("/")?"":"/",i=r?.addEndingSlash?"/":"";return e<=1?ph(`${t}${i}`):ph(`${t}${n}${e}${i}`)}function mh(t,e){return!t||e<=1?t:`${t} - ${e}`}var Ft=F(require("node:path")),$r=F(_t()),Vs=F(zh());var Ob=process.env.API_URL,Ib=!!process.env.GRIDDO_RENDER_ALL_SITES||!!process.env.updateAllSites,ir=process.env.GRIDDO_RENDER_SITE&&parseInt(process.env.GRIDDO_RENDER_SITE)||process.env.testSite&&parseInt(process.env.testSite),Wh=(process.env.GRIDDO_RENDER_PAGES||process.env.testPage||"").split(",").map(t=>parseInt(t)).filter(Boolean),Vh=Y();async function Yh(t){console.info(`API URL ${Ob}`),await rt.login();let e=await ge.getAll(),r=Ib?e.filter(o=>!ir||o.id===ir):e.filter(o=>ir?o.id===ir:!!o.shouldBeUpdated);if(r.length)for(let o of r){let{items:s}=await ge.getLanguages(o.id);o.domains=s.filter(a=>a.domain&&(a.domain.slug===t||a.domain.slug===`/${t}`)).map(a=>({[a.id]:`${a.domain.slug}${a.path}`}))}let n=r.filter(o=>ir?o.id===ir:!!o.isPublished&&o.domains.length>0),i=r.filter(o=>!o.isPublished&&o.shouldBeUpdated);return{sitesToPublish:n,sitesToUnpublish:i}}async function Kh(t){for(let e of t){let r=await ge.startSiteRender(e.id),{siteHash:n}=r,i={siteHash:n,publishHashes:[],unpublishHashes:[]};await ge.endSiteRender(e.id,i)}}async function Qh(t){let e=await ge.startSiteRender(t),r=await ge.getInfo(t),n=await ge.getLanguages(t),i=await ge.getSocials(t),o=n.items,s=o.find(b=>b.isDefault),{siteHash:a,unpublishHashes:c,publishIds:d}=e,{headers:u,footers:p}=r,g=Wh.length?Wh.filter(b=>d.includes(b)):d;return{siteInfo:r,validPagesIds:g,siteHash:a,unpublishHashes:c,siteLangs:o,defaultLang:s,headers:u,footers:p,socials:i}}async function Zh(){let{__cx:t}=Vh.paths(),{buildProcessData:e}=await ho(),r=await rt.login(),n=Object.keys(e).map(o=>({...e[o],siteId:parseInt(o)})),i={authControl:r,sites:n};$r.default.writeFileSync(Ft.default.join(t,"dist","__build-report__.json"),JSON.stringify(i)),et(`Build report saved for ${n.length} site(s)`)}async function ep(){let{sitesToPublish:t}=await ho(),{__cx:e}=Vh.paths(),r=Ft.default.join(e,"dist");for(let n of t){let{id:i,languages:o}=n;for(let s of o){rt.headers&&(rt.headers.lang=s.id.toString());let a=await ge.getSitemap(i);if(!a)continue;let{items:c,url:{home:d,domain:u}}=a;if(!d)continue;let p=n.domains.find(j=>Object.keys(j)[0]==s.id.toString());if(!p)continue;let g=Object.values(p)[0],m=[],b=Object.keys(c),w=Ft.default.join(r,g.replace(u,""));for(let j of b){let B=c[j];if(!B.length)continue;let $=(0,Vs.parse)("urlset",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation":"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"},url:B}),V=`/sitemap-${j.toLowerCase()}.xml`,ue=Ft.default.join(w,V);Jh(ue,$),m.push(`${d.endsWith("/")?d.slice(0,-1):d}${V}`)}if(!m.length)continue;let x=(0,Vs.parse)("sitemapindex",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9"},sitemap:m.map(j=>({loc:j}))}),A=Ft.default.join(w,"sitemap.xml");Jh(A,x)}}}function Jh(t,e){try{let r=Ft.default.dirname(t);$r.default.existsSync(r)||$r.default.mkdirSync(r,{recursive:!0}),$r.default.writeFileSync(t,e)}catch(r){console.error(`Error saving file: ${r}`)}}var tp=Y();ip.default.config();var Ab=process.env.API_URL,Fb=process.env.GRIDDO_REACT_APP_INSTANCE||process.env.REACT_APP_INSTANCE,rp=parseInt(process.env.GRIDDO_API_CONCURRENCY_COUNT||"10"),Rb=process.env.PUBLIC_API_URL,Tb=new Date().valueOf().toString();async function sp(t){Wl(),console.info(`API calls with ${rp} threads`);let{__cx:e}=tp.paths(),{griddoVersion:r}=tp,n=np.default.join(e,"store");try{let i=[],o={},{sitesToPublish:s,sitesToUnpublish:a}=await Yh(t);await fs.getAll(),s.length||a.length||(console.warn("There are no sites to update"),process.exit(0)),console.info(`Sites to publish: ${Eo(s)}`),console.info(`Sites to unpublish: ${Eo(a)}`),await Kh(a);for(let c of s){let{id:d,slug:u,theme:p,favicon:g,changedPages:m=[],pages:b=[]}=c,{siteInfo:w,validPagesIds:x,siteHash:A,unpublishHashes:j,siteLangs:B,defaultLang:$,headers:V,footers:ue,socials:Te}=await Qh(d),{cloudinaryName:ee,useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O}=fs.settings;o[d]={siteHash:A,unpublishHashes:j,publishHashes:[]};let U=new Qn;U.navigations={headers:V,footers:ue},c.languages=B;let M=ih(d,A),P=w.siteScript,R={siteUrl:w.slug,title:w.name,favicon:g},He={baseUrl:Ab,publicBaseUrl:Rb,instance:Fb,siteSlug:u,theme:p,siteMetadata:R,socials:Te,siteLangs:B,cloudinaryName:ee,griddoVersion:r,siteOptions:{useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O},siteScript:P};et(`${c.name} site`);let Ke=async h=>{let f=[],v=await ge.getPage(h,M);if(!v)return;i.push(h);let S=JSON.parse(JSON.stringify(He));S.navigations=U.getPageNavigations(v);let _=await Kn.getDistributorData({page:v,cacheKey:Tb}),N=await _h(_),X=v?.mode==="list",W=!X&&N,Ee=!W&&!X;if(X){let fe={page:v,pages:wh(_),isRoot:!1,defaultLang:$,template:_,totalQueriedItems:_.queriedItems};f=await vh(fe,S)}if(W){let fe=v;fe.template=_,fe.multiPageElements=N,fe.defaultLang=$,f=await bh(fe,S)}if(Ee){let fe=v;fe.template=_,fe.defaultLang=$,f=[await yh(fe,S)]}v.hash!==null&&o[d].publishHashes.push(v.hash),Vl(f)},{pagesMissingInStore:le,pagesToDeleteFromStore:ye,pagesToWriteToStore:yt}=await Yl(n,{sitesToPublish:s,pages:b,validPagesIds:x,changedPages:m});Dn(ye),L(`Store site: ${c.name}`),L(`${x.length} valid pages from API`),L(`changed ${m.length} pages from API`),L(`deleted ${ye.length} pages from store`),L(`missing ${le.length} pages in store`),L(`write ${yt.length} pages to store`);let xe=(0,op.default)(rp),l=yt.map(h=>xe(()=>Ke(h)));await Promise.all(l)}Jl(n,{buildProcessData:o,createdPages:i,sitesToPublish:s})}catch(i){console.error(i.message),process.exit(1)}}async function ap(t){eh(),await sp(t),yf()}var kb=process.env.API_URL,Mb={GET_ALL:`${kb}/domains`},gi=class{static async getAll(){let{GET_ALL:e}=Mb;return await Oe({endpoint:e})}};async function cp(){await rt.login();let t=await gi.getAll();return L(`Getting domains slugs (${t.length})`),qb(t)}function qb(t){let e=t.filter(({slug:r})=>!!r).map(({slug:r})=>r.replace("/",""));return[...new Set(e)]}var lp=Y(),{__cx:jb}=lp.paths(),up=or.default.join(jb,".render-sentinel");async function Ys(){gf("gatsby"),Br.default.writeFileSync(up,new Date().toISOString());let t=await cp();t.length||Oo(Ef);for(let e of t){let{__ssg:r,__exports:n,__caches:i,__cx:o,__components:s}=lp.paths(e);$e(`Initializing render for the domain ${e}`,"",1,0);let a=wf(e),c=!!a&&a!=="";await Be({name:"Clean",attempts:Je.clean,steps:[()=>xr(o,["store","apiCache","dist"]),()=>L("clean `store`, `apiCache` and `dist` directories from `__cx`"),()=>xr(r,["dist","public","static",".cache"]),()=>L("clean `dist`, `public`, `static` and `.cache` directories from `__ssg`"),()=>Ve("Clean LifeCycle")]}),await Be({name:"Prepare",attempts:Je.prepare,steps:[()=>On([n]),()=>L("create `exports/sites/<domain>` directory"),()=>On([i]),()=>L("create `caches/<domain>` directory"),()=>Ve("prepare LifeCycle")]}),await Be({name:"Restore",attempts:Je.restore,steps:[()=>In(s,r,["static"]),()=>L("copy `static` directory from `__components` to `__ssg`"),()=>In(n,o,["assets"]),()=>L("copy `assets` directory from `__exports` to `__cx`"),()=>In(n,r,["dist"]),()=>{Br.default.existsSync(or.default.join(r,"dist"))&&Br.default.renameSync(or.default.join(r,"dist"),or.default.join(r,"public"))},()=>L("rename `__ssg/dist` to `__ssg/public` directory."),()=>Jt(i,o,["apiCache","store"]),()=>L("move `apiCache` and `store` directories from `__caches` to `__cx`"),()=>Jt(i,r,[".cache"]),()=>L("move `.cache` directory from `__caches` to `__ssg`"),()=>Ve("Restore LifeCycle")]}),await Be({name:"Data",attempts:Je.data,steps:[()=>ap(e),()=>Ve("Data LifeCycle")]}),await Be({name:"SSG",attempts:Je.ssg,steps:[()=>Sf(a),()=>Ve("SSG LifeCycle")]}),await Be({name:"Relocation",attempts:Je.relocation,steps:[()=>xf(e,c),()=>L("create an `assets` directory from `public`"),()=>Ve("Relocation LifeCycle")]}),await Be({name:"Meta",attempts:Je.meta,steps:[()=>Zh(),()=>L("create build report from `store/metadata/render-info.json`"),()=>dh.writeFiles(e),()=>L("create Robots.txt"),()=>ep(),()=>L("generate sitemaps"),()=>Ve("Meta LifeCycle")]}),await Be({name:"Archive",attempts:Je.archive,steps:[()=>ef(),()=>L("remove virtual pages from store (multipage and static list)"),()=>go(or.default.join(o,"dist")),()=>L("remove empty site directories from `__cx/dist`"),()=>Jt(o,n,["dist","assets"],{withBackup:!0}),()=>L("move `dist` and `assets` directories from `__cx` to `__exports`"),()=>Jt(o,i,["apiCache","store"]),()=>L("move `apiCache` and `store` directories from `__cx` to `__caches`"),()=>Jt(r,i,[".cache"]),()=>L("move `.cache` directory from `__ssg` to `__caches`"),()=>Ve("Archive LifeCycle")]}),await Be({name:"Clean",attempts:Je.clean,steps:[()=>xr(r,["static","public","dist"]),()=>Ve("Clean LifeCycle")]}),await Be({name:"HealthCheck",attempts:1,steps:[()=>{Br.default.existsSync(up)||Oo(Cf)}]})}}async function fp(){try{let t=await Co(Ys);$e(`All domains rendered in ${t}s.`,"",1,0),process.exit(0)}catch(t){console.log(t),process.exit(1)}}wo();0&&(module.exports={IS_COMPONENT_LIBRARY,PROJECT_ALIASES,getBuildPagesFromCachedStore,getBuildPagesFromStore,getBuildPagesPath,getConfig,logInfo,logPageSize,resolveComponentsPath,startRender,verbose,walk});
|
|
72
|
+
\rAllow: /`}))||[]}catch(e){console.warn(`${this.constructor.name}: ${e.message}`)}}async writeFiles(e){let{__cx:r}=Fv.paths(e),n=as.default.join(r,"dist");await this.getRobots();let i=this.robots.find(({path:o})=>o===`/${e}`);if(!i){console.log(`Robots not found for ${e}`);return}if(ss.default.existsSync(n)){let o=as.default.join(n,"robots.txt");ss.default.writeFileSync(o,i?.content)}else console.log(`${n} not found`)}},dh=new cs;var np=F(require("node:path")),ip=F(it()),op=F(so());var hh=F(it());hh.default.config();var us=process.env.API_URL,pt=`${us}/site/`,nt={GET_ALL:`${us}/sites/all`,GET_PAGE:[`${us}/page/`,""],INFO:[`${pt}`,"/all"],LANGUAGES:[`${pt}`,"/languages"],BUILD_START:[`${pt}`,"/build/start"],BUILD_END:[`${pt}`,"/build/end"],GET_DISTRIBUTOR_DATA:[`${pt}`,"/distributor"],GET_SITEMAP:[`${pt}`,"/sitemap"],SOCIALS:[`${pt}`,"/socials"],GET_PAGES:[`${pt}`,"/pages?pagination=false"]},ge=class{static async getAll(){let{GET_ALL:e}=nt;return await Oe({endpoint:e})}static async getPage(e,r){let{GET_PAGE:[n,i]}=nt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getInfo(e,r=""){let{INFO:[n,i]}=nt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getLanguages(e,r=""){let{LANGUAGES:[n,i]}=nt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async startSiteRender(e){let{BUILD_START:[r,n]}=nt;return await Oe({endpoint:`${r}${e}${n}`})}static async endSiteRender(e,r){let{BUILD_END:[n,i]}=nt;return await Ir({endpoint:`${n}${e}${i}`,body:r})}static async getDistributorData(e,r,n,i,o){let{GET_DISTRIBUTOR_DATA:[s,a]}=nt,c=i||e.site,d=o||e.language;return await Ir({endpoint:`${s}${c}${a}`,body:r,headers:{lang:d},cacheKey:n})}static async getSitemap(e){let{GET_SITEMAP:[r,n]}=nt;return await Oe({endpoint:`${r}${e}${n}`})}static async getSocials(e,r=""){let{SOCIALS:[n,i]}=nt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}};var Kn=class{static getBody(e,r){let{order:n,sources:i,quantity:o,mode:s,fixed:a,fullRelations:c=!1,allLanguages:d=!1,preferenceLanguage:u=!1,referenceId:p}=e;return s==="auto"?{mode:s,order:n,sources:i,quantity:o,fullRelations:c,allLanguages:d,preferenceLanguage:u}:s==="manual"?{mode:s,fixed:a,fullRelations:c}:s==="navigation"?{mode:s,order:n,quantity:o,fullRelations:c,referenceId:p||r?.structuredDataContent?.id}:(console.log(`Error: Distribuidor mode: ${s} is not recognized on page ${r?.id}.`),e)}static async fetchContentTypeData(e){let{page:r,component:{data:n},cacheKey:i}=e;if(!n)return $e(`Error: Page ${r.id} has \`hasDistributorData: true\` but it doesn't have a \`data\` prop`,"No data in ReferenceField"),[];if(Array.isArray(n.sources)&&n.sources.length<1)return $e(`Warning: Page with id: ${r.id} has a ReferenceField with empty \`data.sources\``,"Empty data.sources in ReferenceField"),[];let{site:o,lang:s}=n;!n.sources&&n.mode==="auto"&&$e(`Warning: Page with id: ${r.id} has a ReferenceField with \`undefined\` \`data.sources\``,"undefined data.sources in ReferenceField");let a=this.getBody(n,r);return await ge.getDistributorData(r,a,i,o,s)}static async getDistributorData({page:e,cacheKey:r=""}){try{let{template:n}=e,i=async(a,c=1)=>{if(!(!a||typeof a!="object")&&JSON.stringify(a).includes('"hasDistributorData":true'))for(let d in a){if(d==="queriedItems")continue;let p=a[d];!p||typeof p!="object"||(p.hasDistributorData&&(p.queriedItems=await this.fetchContentTypeData({page:e,cacheKey:r,component:p})),await i(p,c+1))}};return await(async a=>(await i([a]),a))(n)}catch(n){console.error(`Error en get distributor ${n}`),process.exit(1)}}};var Qn=class{_defaultHeaders;_defaultFooters;_navigations;constructor(){this._navigations={footers:[],headers:[]},this._defaultHeaders={},this._defaultFooters={}}set navigations(e){this._navigations=e,this._defaultFooters=this.getDefaultFooters(),this._defaultHeaders=this.getDefaultHeaders()}get navigations(){return this._navigations}getDefaultFooters(){return[...this.navigations.footers].filter(i=>!!i.setAsDefault).reduce((i,o)=>{let{language:s}=o;return{...i,[s]:o}},{})}getDefaultHeaders(){return[...this.navigations.headers].filter(i=>!!i.setAsDefault).reduce((i,o)=>{let{language:s}=o;return{...i,[s]:o}},{})}getRightLanguage(e,r,n){if(!e||!r)return null;let o=e.find(s=>s.language===n&&s.navigationLanguages?.find(a=>a.navigationId===r))||e.find(s=>s.id===r);return o?{...o}:null}getPageHeader(e,r){return this.getRightLanguage(this.navigations.headers,e,r)}getPageFooter(e,r){return this.getRightLanguage(this.navigations.footers,e,r)}getPageNavigations(e){let{header:r,footer:n,language:i,template:{templateType:o},templateConfig:{defaultHeader:s,defaultFooter:a,templates:c}}=e,d=b=>{let w=b.find(x=>typeof x=="number");return typeof w=="number"?w:null},u=d([r,c?.[o]?.defaultHeader,s]),p=d([n,c?.[o]?.defaultFooter,a]),g=u?this.getPageHeader(u,i):u===0?null:this._defaultHeaders[i],m=p?this.getPageFooter(p,i):p===0?null:this._defaultFooters[i];return{header:g,footer:m}}};var ls=class{baseURL;settings;ENDPOINTS;constructor(){this.baseURL=process.env.API_URL,this.settings={cloudinaryName:"",useMetaTitle:!1,useMetaKeywords:!1,showBasicMetaRobots:!1,avoidHrefLangsOnCanonicals:!1,avoidSelfReferenceCanonicals:!1,avoidHrefLangXDefault:!1,avoidDebugMetas:!1},this.ENDPOINTS={settings:`${this.baseURL}/settings`,resetRender:`${this.baseURL}/debug/reset-render`}}async getAll(){let{settings:e}=this.ENDPOINTS,r=await Oe({endpoint:e});this.settings=r}async resetRender(){let{resetRender:e}=this.ENDPOINTS;await Ir({endpoint:e})}},fs=new ls;var gh=F(it());gh.default.config();var Rv=25;function Tv({socialTitle:t,socialDescription:e,socialImage:r}){return{type:"website",title:t,description:e,image:r?Po(r,1280,768):"",twitterImage:r?Po(r,1280,768):""}}function kv(t){let{title:e,metaTitle:r,metaDescription:n,canonicalURL:i,locale:o,url:s,isIndexed:a,follow:c,metasAdvanced:d,pageLanguages:u,fullUrl:p,metaKeywords:g}=t,m=d?.split(",").filter(Boolean).map(b=>b.trim().toLowerCase())||[];return{title:(r||e||"").trim(),description:n,canonical:i&&i.trim()&&i!==p?i.trim():a?p:void 0,locale:o,url:s,index:a?"index":"noindex",follow:c?"follow":"nofollow",translate:m.includes("notranslate")?"notranslate":"",metasAdvanced:m.filter(b=>b!=="notranslate").join(),pageLanguages:u,metaKeywords:g?.filter(Boolean).map(b=>b.replace(/"/g,"'")).join(", ")}}async function hs(t,e){let{id:r,title:n,fullPath:i,language:o,breadcrumb:s,socialDescription:a,socialImage:c,socialTitle:d}=t,{baseUrl:u,cloudinaryName:p,griddoVersion:g,siteLangs:m,siteMetadata:b,siteOptions:w,siteScript:x,siteSlug:A,socials:j,theme:B,navigations:{header:$,footer:V}}=e;t.breadcrumb=s,t.siteSlug=A,t.apiUrl=u,t.publicApiUrl=e.publicBaseUrl,t.instance=e.instance;let Te=m.find(({id:I})=>I===t?.language)?.locale.replace(/_/g,"-"),ee=kv(t),D=Tv({socialDescription:a,socialImage:c,socialTitle:d}),q=i.compose,k=new Date().toString();return{path:q,size:void 0,context:{id:r,title:n,fullPath:i,locale:Te,languageId:o,theme:B,siteMetadata:b,pageMetadata:ee,openGraph:D,socials:j,siteLangs:m,cloudinaryName:p,siteOptions:w,griddoVersion:g,renderDate:k,siteScript:x,header:$,footer:V,page:t}}}async function yh(t,e){return await hs(t,e)}async function vh({page:t,pages:e,isRoot:r=!1,defaultLang:n,template:i,totalQueriedItems:o},s){let a=e.map(async(c,d)=>{let u=d===0,p=d+1,{domainUrl:g,compose:m}=t.fullPath,b={...t,id:parseInt("-"+t.id+d),fullPath:{...t.fullPath,compose:ds(m,p,{addEndingSlash:!0})},fullUrl:ds(t.fullUrl,p,{addEndingSlash:!0}),slug:ds(t.slug,p),title:mh(t.title,p),metaTitle:mh(t.metaTitle||"",p),disableHrefLangs:p>1,template:{...i,isFirstPage:u,pageNumber:p,totalPages:e.length,baseLink:`${g}${m}`,queriedItems:c,totalQueriedItems:o?.length},isRoot:r,defaultLang:n};return await hs(b,s)});return Promise.all(a)}function bh(t,e){let{multiPageElements:r,...n}=t,i=JSON.parse(JSON.stringify(r));i.find(({sectionSlug:s})=>s==="/")||i.push({});let o=i.map(async(s,a)=>{let c=JSON.parse(JSON.stringify(n)),{sectionSlug:d="/",title:u="",metaTitle:p="",metaDescription:g=""}=s,m=typeof u=="string"?u:u.content,b=c.fullPath.compose||"",w=c.fullUrl.endsWith("/")?c.fullUrl.slice(0,-1):c.fullUrl,x=d?.replace(/\//g,""),j=d==="/"?x:x+"/",B=b.endsWith("/")?"":"/",$=`${b}${B}${j}`;return m.trim()&&(c.title=m),g.trim()&&(c.metaDescription=g),c.id=parseInt("-"+c.id+a),c.fullUrl=`${w}/${j}`,c.fullPath.compose=$,c.slug=$,c.template.activeSectionSlug=d,c.template.activeSectionBase=w,c.metaTitle=p.trim()||m.trim()||c.metaTitle,await hs(c,e)});return Promise.all(o)}function _h(t){return new Promise(r=>{let n=(i,o=0)=>{if(!(!i||typeof i!="object")){for(let s in i){let a=i[s],c=a||typeof a=="object",d=JSON.stringify(a).includes('"hasGriddoMultiPage":true');if(!c||!d)continue;let{component:u,hasGriddoMultiPage:p,elements:g}=a;u&&p&&r(g||[]),n(a,o+1)}o||r(null)}};n([t])})}function Mv(t,e,r){return e?.slice(t*(r-1),t*r)}function qv(t,e){let r=Math.ceil(e.length/t)||1;return Array.from({length:r},(i,o)=>o+1)?.map(i=>Mv(t,e,i))}function wh(t){let e=t.queriedItems||[],r=t?.itemsPerPage||Rv;return qv(r,e)}function ph(t){return t.replace(/\/+$/,"/")}function ds(t,e,r){let n=t.endsWith("/")?"":"/",i=r?.addEndingSlash?"/":"";return e<=1?ph(`${t}${i}`):ph(`${t}${n}${e}${i}`)}function mh(t,e){return!t||e<=1?t:`${t} - ${e}`}var Ft=F(require("node:path")),$r=F(_t()),Vs=F(zh());var Ob=process.env.API_URL,Ib=!!process.env.GRIDDO_RENDER_ALL_SITES||!!process.env.updateAllSites,ir=process.env.GRIDDO_RENDER_SITE&&parseInt(process.env.GRIDDO_RENDER_SITE)||process.env.testSite&&parseInt(process.env.testSite),Wh=(process.env.GRIDDO_RENDER_PAGES||process.env.testPage||"").split(",").map(t=>parseInt(t)).filter(Boolean),Vh=Y();async function Yh(t){console.info(`API URL ${Ob}`),await rt.login();let e=await ge.getAll(),r=Ib?e.filter(o=>!ir||o.id===ir):e.filter(o=>ir?o.id===ir:!!o.shouldBeUpdated);if(r.length)for(let o of r){let{items:s}=await ge.getLanguages(o.id);o.domains=s.filter(a=>a.domain&&(a.domain.slug===t||a.domain.slug===`/${t}`)).map(a=>({[a.id]:`${a.domain.slug}${a.path}`}))}let n=r.filter(o=>ir?o.id===ir:!!o.isPublished&&o.domains.length>0),i=r.filter(o=>!o.isPublished&&o.shouldBeUpdated);return{sitesToPublish:n,sitesToUnpublish:i}}async function Kh(t){for(let e of t){let r=await ge.startSiteRender(e.id),{siteHash:n}=r,i={siteHash:n,publishHashes:[],unpublishHashes:[]};await ge.endSiteRender(e.id,i)}}async function Qh(t){let e=await ge.startSiteRender(t),r=await ge.getInfo(t),n=await ge.getLanguages(t),i=await ge.getSocials(t),o=n.items,s=o.find(b=>b.isDefault),{siteHash:a,unpublishHashes:c,publishIds:d}=e,{headers:u,footers:p}=r,g=Wh.length?Wh.filter(b=>d.includes(b)):d;return{siteInfo:r,validPagesIds:g,siteHash:a,unpublishHashes:c,siteLangs:o,defaultLang:s,headers:u,footers:p,socials:i}}async function Zh(){let{__cx:t}=Vh.paths(),{buildProcessData:e}=await ho(),r=await rt.login(),n=Object.keys(e).map(o=>({...e[o],siteId:parseInt(o)})),i={authControl:r,sites:n};$r.default.writeFileSync(Ft.default.join(t,"dist","__build-report__.json"),JSON.stringify(i)),et(`Build report saved for ${n.length} site(s)`)}async function ep(){let{sitesToPublish:t}=await ho(),{__cx:e}=Vh.paths(),r=Ft.default.join(e,"dist");for(let n of t){let{id:i,languages:o}=n;for(let s of o){rt.headers&&(rt.headers.lang=s.id.toString());let a=await ge.getSitemap(i);if(!a)continue;let{items:c,url:{home:d,domain:u}}=a;if(!d)continue;let p=n.domains.find(j=>Object.keys(j)[0]==s.id.toString());if(!p)continue;let g=Object.values(p)[0],m=[],b=Object.keys(c),w=Ft.default.join(r,g.replace(u,""));for(let j of b){let B=c[j];if(!B.length)continue;let $=(0,Vs.parse)("urlset",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation":"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"},url:B}),V=`/sitemap-${j.toLowerCase()}.xml`,ue=Ft.default.join(w,V);Jh(ue,$),m.push(`${d.endsWith("/")?d.slice(0,-1):d}${V}`)}if(!m.length)continue;let x=(0,Vs.parse)("sitemapindex",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9"},sitemap:m.map(j=>({loc:j}))}),A=Ft.default.join(w,"sitemap.xml");Jh(A,x)}}}function Jh(t,e){try{let r=Ft.default.dirname(t);$r.default.existsSync(r)||$r.default.mkdirSync(r,{recursive:!0}),$r.default.writeFileSync(t,e)}catch(r){console.error(`Error saving file: ${r}`)}}var tp=Y();ip.default.config();var Ab=process.env.API_URL,Fb=process.env.GRIDDO_REACT_APP_INSTANCE||process.env.REACT_APP_INSTANCE,rp=parseInt(process.env.GRIDDO_API_CONCURRENCY_COUNT||"10"),Rb=process.env.PUBLIC_API_URL,Tb=new Date().valueOf().toString();async function sp(t){Wl(),console.info(`API calls with ${rp} threads`);let{__cx:e}=tp.paths(),{griddoVersion:r}=tp,n=np.default.join(e,"store");try{let i=[],o={},{sitesToPublish:s,sitesToUnpublish:a}=await Yh(t);await fs.getAll(),s.length||a.length||(console.warn("There are no sites to update"),process.exit(0)),console.info(`Sites to publish: ${Eo(s)}`),console.info(`Sites to unpublish: ${Eo(a)}`),await Kh(a);for(let c of s){let{id:d,slug:u,theme:p,favicon:g,changedPages:m=[],pages:b=[]}=c,{siteInfo:w,validPagesIds:x,siteHash:A,unpublishHashes:j,siteLangs:B,defaultLang:$,headers:V,footers:ue,socials:Te}=await Qh(d),{cloudinaryName:ee,useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O}=fs.settings;o[d]={siteHash:A,unpublishHashes:j,publishHashes:[]};let U=new Qn;U.navigations={headers:V,footers:ue},c.languages=B;let M=ih(d,A),P=w.siteScript,R={siteUrl:w.slug,title:w.name,favicon:g},He={baseUrl:Ab,publicBaseUrl:Rb,instance:Fb,siteSlug:u,theme:p,siteMetadata:R,socials:Te,siteLangs:B,cloudinaryName:ee,griddoVersion:r,siteOptions:{useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O},siteScript:P};et(`${c.name} site`);let Ke=async h=>{let f=[],v=await ge.getPage(h,M);if(!v)return;i.push(h);let S=JSON.parse(JSON.stringify(He));S.navigations=U.getPageNavigations(v);let _=await Kn.getDistributorData({page:v,cacheKey:Tb}),N=await _h(_),X=v?.mode==="list",W=!X&&N,Ee=!W&&!X;if(X){let fe={page:v,pages:wh(_),isRoot:!1,defaultLang:$,template:_,totalQueriedItems:_.queriedItems};f=await vh(fe,S)}if(W){let fe=v;fe.template=_,fe.multiPageElements=N,fe.defaultLang=$,f=await bh(fe,S)}if(Ee){let fe=v;fe.template=_,fe.defaultLang=$,f=[await yh(fe,S)]}v.hash!==null&&o[d].publishHashes.push(v.hash),Vl(f)},{pagesMissingInStore:le,pagesToDeleteFromStore:ye,pagesToWriteToStore:yt}=await Yl(n,{sitesToPublish:s,pages:b,validPagesIds:x,changedPages:m});Dn(ye),L(`Store site: ${c.name}`),L(`${x.length} valid pages from API`),L(`changed ${m.length} pages from API`),L(`deleted ${ye.length} pages from store`),L(`missing ${le.length} pages in store`),L(`write ${yt.length} pages to store`);let xe=(0,op.default)(rp),l=yt.map(h=>xe(()=>Ke(h)));await Promise.all(l)}Jl(n,{buildProcessData:o,createdPages:i,sitesToPublish:s})}catch(i){console.error(i.message),process.exit(1)}}async function ap(t){eh(),await sp(t),yf()}var kb=process.env.API_URL,Mb={GET_ALL:`${kb}/domains`},gi=class{static async getAll(){let{GET_ALL:e}=Mb;return await Oe({endpoint:e})}};async function cp(){await rt.login();let t=await gi.getAll();return L(`Getting domains slugs (${t.length})`),qb(t)}function qb(t){let e=t.filter(({slug:r})=>!!r).map(({slug:r})=>r.replace("/",""));return[...new Set(e)]}var lp=Y(),{__cx:jb}=lp.paths(),up=or.default.join(jb,".render-sentinel");async function Ys(){gf("gatsby"),Br.default.writeFileSync(up,new Date().toISOString());let t=await cp();t.length||Oo(Ef);for(let e of t){let{__ssg:r,__exports:n,__caches:i,__cx:o,__components:s}=lp.paths(e);$e(`Initializing render for the domain ${e}`,"",1,0);let a=wf(e),c=!!a&&a!=="";await Be({name:"Clean",attempts:Je.clean,steps:[()=>xr(o,["store","apiCache","dist"]),()=>L("clean `store`, `apiCache` and `dist` directories from `__cx`"),()=>xr(r,["dist","public","static",".cache"]),()=>L("clean `dist`, `public`, `static` and `.cache` directories from `__ssg`"),()=>Ve("Clean LifeCycle")]}),await Be({name:"Prepare",attempts:Je.prepare,steps:[()=>On([n]),()=>L("create `exports/sites/<domain>` directory"),()=>On([i]),()=>L("create `caches/<domain>` directory"),()=>Ve("prepare LifeCycle")]}),await Be({name:"Restore",attempts:Je.restore,steps:[()=>In(s,r,["static"]),()=>L("copy `static` directory from `__components` to `__ssg`"),()=>In(n,o,["assets"]),()=>L("copy `assets` directory from `__exports` to `__cx`"),()=>In(n,r,["dist"]),()=>{Br.default.existsSync(or.default.join(r,"dist"))&&Br.default.renameSync(or.default.join(r,"dist"),or.default.join(r,"public"))},()=>L("rename `__ssg/dist` to `__ssg/public` directory."),()=>Jt(i,o,["apiCache","store"]),()=>L("move `apiCache` and `store` directories from `__caches` to `__cx`"),()=>Jt(i,r,[".cache"]),()=>L("move `.cache` directory from `__caches` to `__ssg`"),()=>Ve("Restore LifeCycle")]}),await Be({name:"Data",attempts:Je.data,steps:[()=>ap(e),()=>Ve("Data LifeCycle")]}),await Be({name:"SSG",attempts:Je.ssg,steps:[()=>Sf(a),()=>Ve("SSG LifeCycle")]}),await Be({name:"Relocation",attempts:Je.relocation,steps:[()=>xf(e,c),()=>L("create an `assets` directory from `public`"),()=>Ve("Relocation LifeCycle")]}),await Be({name:"Meta",attempts:Je.meta,steps:[()=>Zh(),()=>L("create build report from `store/metadata/render-info.json`"),()=>dh.writeFiles(e),()=>L("create Robots.txt"),()=>ep(),()=>L("generate sitemaps"),()=>Ve("Meta LifeCycle")]}),await Be({name:"Archive",attempts:Je.archive,steps:[()=>ef(),()=>L("remove virtual pages from store (multipage and static list)"),()=>go(or.default.join(o,"dist")),()=>L("remove empty site directories from `__cx/dist`"),()=>Jt(o,n,["dist","assets"],{withBackup:!0}),()=>L("move `dist` and `assets` directories from `__cx` to `__exports`"),()=>Jt(o,i,["apiCache","store"]),()=>L("move `apiCache` and `store` directories from `__cx` to `__caches`"),()=>Jt(r,i,[".cache"]),()=>L("move `.cache` directory from `__ssg` to `__caches`"),()=>Ve("Archive LifeCycle")]}),await Be({name:"Clean",attempts:Je.clean,steps:[()=>xr(r,["static","public","dist"]),()=>Ve("Clean LifeCycle")]}),await Be({name:"HealthCheck",attempts:1,steps:[()=>{Br.default.existsSync(up)||Oo(Cf)}]})}}async function fp(){try{let t=await Co(Ys);$e(`All domains rendered in ${t}s.`,"",1,0),process.exit(0)}catch(t){console.log(t),process.exit(1)}}wo();0&&(module.exports={IS_COMPONENT_LIBRARY,PROJECT_ALIASES,getBuildPagesFromCachedStore,getBuildPagesFromStore,getBuildPagesPath,getConfig,logInfo,logPageSize,resolveComponentsPath,startRender,verbose,walk});
|
|
@@ -69,4 +69,4 @@ ${g}
|
|
|
69
69
|
=============
|
|
70
70
|
`))}nh.default.config();var Dv=te(),no=class{robots;baseURL;settings;endpoint;constructor(){this.robots=[],this.baseURL=process.env.API_URL,this.settings={},this.endpoint=`${this.baseURL}/domains/robots`}async getRobots(){try{let e=await Oe({endpoint:this.endpoint});this.robots=e?.filter(r=>!!r.path).map(({path:r,content:n})=>({path:r,content:n||`User-agent: *
|
|
71
71
|
\r
|
|
72
|
-
\rAllow: /`}))||[]}catch(e){console.warn(`${this.constructor.name}: ${e.message}`)}}async writeFiles(e){let{__cx:r}=Dv.paths(e),n=ro.default.join(r,"dist");await this.getRobots();let i=this.robots.find(({path:s})=>s===`/${e}`);if(!i){console.log(`Robots not found for ${e}`);return}if(to.default.existsSync(n)){let s=ro.default.join(n,"robots.txt");to.default.writeFileSync(s,i?.content)}else console.log(`${n} not found`)}},ih=new no;var Vh=A(require("node:path")),Yh=A(nt()),Kh=A(is());var sh=A(nt());sh.default.config();var io=process.env.API_URL,ft=`${io}/site/`,rt={GET_ALL:`${io}/sites/all`,GET_PAGE:[`${io}/page/`,""],INFO:[`${ft}`,"/all"],LANGUAGES:[`${ft}`,"/languages"],BUILD_START:[`${ft}`,"/build/start"],BUILD_END:[`${ft}`,"/build/end"],GET_DISTRIBUTOR_DATA:[`${ft}`,"/distributor"],GET_SITEMAP:[`${ft}`,"/sitemap"],SOCIALS:[`${ft}`,"/socials"],GET_PAGES:[`${ft}`,"/pages?pagination=false"]},me=class{static async getAll(){let{GET_ALL:e}=rt;return await Oe({endpoint:e})}static async getPage(e,r){let{GET_PAGE:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getInfo(e,r=""){let{INFO:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getLanguages(e,r=""){let{LANGUAGES:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async startSiteRender(e){let{BUILD_START:[r,n]}=rt;return await Oe({endpoint:`${r}${e}${n}`})}static async endSiteRender(e,r){let{BUILD_END:[n,i]}=rt;return await Or({endpoint:`${n}${e}${i}`,body:r})}static async getDistributorData(e,r,n,i,s){let{GET_DISTRIBUTOR_DATA:[o,a]}=rt,c=i||e.site,d=s||e.language;return await Or({endpoint:`${o}${c}${a}`,body:r,headers:{lang:d},cacheKey:n})}static async getSitemap(e){let{GET_SITEMAP:[r,n]}=rt;return await Oe({endpoint:`${r}${e}${n}`})}static async getSocials(e,r=""){let{SOCIALS:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}};var Vn=class{static getBody(e,r){let{order:n,sources:i,quantity:s,mode:o,fixed:a,fullRelations:c=!1,allLanguages:d=!1,preferenceLanguage:u=!1,referenceId:p}=e;return o==="auto"?{mode:o,order:n,sources:i,quantity:s,fullRelations:c,allLanguages:d,preferenceLanguage:u}:o==="manual"?{mode:o,fixed:a,fullRelations:c}:o==="navigation"?{mode:o,order:n,quantity:s,fullRelations:c,referenceId:p||r?.structuredDataContent?.id}:(console.log(`Error: Distribuidor mode: ${o} is not recognized on page ${r?.id}.`),e)}static async fetchContentTypeData(e){let{page:r,component:{data:n},cacheKey:i}=e;if(!n)return $e(`Error: Page ${r.id} has \`hasDistributorData: true\` but it doesn't have a \`data\` prop`,"No data in ReferenceField"),[];if(Array.isArray(n.sources)&&n.sources.length<1)return $e(`Warning: Page with id: ${r.id} has a ReferenceField with empty \`data.sources\``,"Empty data.sources in ReferenceField"),[];let{site:s,lang:o}=n;n.sources||$e(`Warning: Page with id: ${r.id} in the site ${s} has a ReferenceField with \`undefined\` \`data.sources\``,"Undefined data.sources in ReferenceField");let a=this.getBody(n,r);return await me.getDistributorData(r,a,i,s,o)}static async getDistributorData({page:e,cacheKey:r=""}){try{let{template:n}=e,i=async(a,c=1)=>{if(!(!a||typeof a!="object")&&JSON.stringify(a).includes('"hasDistributorData":true'))for(let d in a){if(d==="queriedItems")continue;let p=a[d];!p||typeof p!="object"||(p.hasDistributorData&&(p.queriedItems=await this.fetchContentTypeData({page:e,cacheKey:r,component:p})),await i(p,c+1))}};return await(async a=>(await i([a]),a))(n)}catch(n){console.error(`Error en get distributor ${n}`),process.exit(1)}}};var Yn=class{_defaultHeaders;_defaultFooters;_navigations;constructor(){this._navigations={footers:[],headers:[]},this._defaultHeaders={},this._defaultFooters={}}set navigations(e){this._navigations=e,this._defaultFooters=this.getDefaultFooters(),this._defaultHeaders=this.getDefaultHeaders()}get navigations(){return this._navigations}getDefaultFooters(){return[...this.navigations.footers].filter(i=>!!i.setAsDefault).reduce((i,s)=>{let{language:o}=s;return{...i,[o]:s}},{})}getDefaultHeaders(){return[...this.navigations.headers].filter(i=>!!i.setAsDefault).reduce((i,s)=>{let{language:o}=s;return{...i,[o]:s}},{})}getRightLanguage(e,r,n){if(!e||!r)return null;let s=e.find(o=>o.language===n&&o.navigationLanguages?.find(a=>a.navigationId===r))||e.find(o=>o.id===r);return s?{...s}:null}getPageHeader(e,r){return this.getRightLanguage(this.navigations.headers,e,r)}getPageFooter(e,r){return this.getRightLanguage(this.navigations.footers,e,r)}getPageNavigations(e){let{header:r,footer:n,language:i,template:{templateType:s},templateConfig:{defaultHeader:o,defaultFooter:a,templates:c}}=e,d=b=>{let w=b.find(x=>typeof x=="number");return typeof w=="number"?w:null},u=d([r,c?.[s]?.defaultHeader,o]),p=d([n,c?.[s]?.defaultFooter,a]),g=u?this.getPageHeader(u,i):u===0?null:this._defaultHeaders[i],m=p?this.getPageFooter(p,i):p===0?null:this._defaultFooters[i];return{header:g,footer:m}}};var so=class{baseURL;settings;ENDPOINTS;constructor(){this.baseURL=process.env.API_URL,this.settings={cloudinaryName:"",useMetaTitle:!1,useMetaKeywords:!1,showBasicMetaRobots:!1,avoidHrefLangsOnCanonicals:!1,avoidSelfReferenceCanonicals:!1,avoidHrefLangXDefault:!1,avoidDebugMetas:!1},this.ENDPOINTS={settings:`${this.baseURL}/settings`,resetRender:`${this.baseURL}/debug/reset-render`}}async getAll(){let{settings:e}=this.ENDPOINTS,r=await Oe({endpoint:e});this.settings=r}async resetRender(){let{resetRender:e}=this.ENDPOINTS;await Or({endpoint:e})}},oo=new so;var ch=A(nt());ch.default.config();var Ov=25;function Iv({socialTitle:t,socialDescription:e,socialImage:r}){return{type:"website",title:t,description:e,image:r?ws(r,1280,768):"",twitterImage:r?ws(r,1280,768):""}}function Fv(t){let{title:e,metaTitle:r,metaDescription:n,canonicalURL:i,locale:s,url:o,isIndexed:a,follow:c,metasAdvanced:d,pageLanguages:u,fullUrl:p,metaKeywords:g}=t,m=d?.split(",").filter(Boolean).map(b=>b.trim().toLowerCase())||[];return{title:(r||e||"").trim(),description:n,canonical:i&&i.trim()&&i!==p?i.trim():a?p:void 0,locale:s,url:o,index:a?"index":"noindex",follow:c?"follow":"nofollow",translate:m.includes("notranslate")?"notranslate":"",metasAdvanced:m.filter(b=>b!=="notranslate").join(),pageLanguages:u,metaKeywords:g?.filter(Boolean).map(b=>b.replace(/"/g,"'")).join(", ")}}async function co(t,e){let{id:r,title:n,fullPath:i,language:s,breadcrumb:o,socialDescription:a,socialImage:c,socialTitle:d}=t,{baseUrl:u,cloudinaryName:p,griddoVersion:g,siteLangs:m,siteMetadata:b,siteOptions:w,siteScript:x,siteSlug:F,socials:j,theme:B,navigations:{header:L,footer:V}}=e;t.breadcrumb=o,t.siteSlug=F,t.apiUrl=u,t.publicApiUrl=e.publicBaseUrl,t.instance=e.instance;let Te=m.find(({id:I})=>I===t?.language)?.locale.replace(/_/g,"-"),Z=Fv(t),D=Iv({socialDescription:a,socialImage:c,socialTitle:d}),q=i.compose,k=new Date().toString();return{path:q,size:void 0,context:{id:r,title:n,fullPath:i,locale:Te,languageId:s,theme:B,siteMetadata:b,pageMetadata:Z,openGraph:D,socials:j,siteLangs:m,cloudinaryName:p,siteOptions:w,griddoVersion:g,renderDate:k,siteScript:x,header:L,footer:V,page:t}}}async function uh(t,e){return await co(t,e)}async function lh({page:t,pages:e,isRoot:r=!1,defaultLang:n,template:i,totalQueriedItems:s},o){let a=e.map(async(c,d)=>{let u=d===0,p=d+1,{domainUrl:g,compose:m}=t.fullPath,b={...t,id:parseInt("-"+t.id+d),fullPath:{...t.fullPath,compose:ao(m,p,{addEndingSlash:!0})},fullUrl:ao(t.fullUrl,p,{addEndingSlash:!0}),slug:ao(t.slug,p),title:ah(t.title,p),metaTitle:ah(t.metaTitle||"",p),disableHrefLangs:p>1,template:{...i,isFirstPage:u,pageNumber:p,totalPages:e.length,baseLink:`${g}${m}`,queriedItems:c,totalQueriedItems:s?.length},isRoot:r,defaultLang:n};return await co(b,o)});return Promise.all(a)}function fh(t,e){let{multiPageElements:r,...n}=t,i=JSON.parse(JSON.stringify(r));i.find(({sectionSlug:o})=>o==="/")||i.push({});let s=i.map(async(o,a)=>{let c=JSON.parse(JSON.stringify(n)),{sectionSlug:d="/",title:u="",metaTitle:p="",metaDescription:g=""}=o,m=typeof u=="string"?u:u.content,b=c.fullPath.compose||"",w=c.fullUrl.endsWith("/")?c.fullUrl.slice(0,-1):c.fullUrl,x=d?.replace(/\//g,""),j=d==="/"?x:x+"/",B=b.endsWith("/")?"":"/",L=`${b}${B}${j}`;return m.trim()&&(c.title=m),g.trim()&&(c.metaDescription=g),c.id=parseInt("-"+c.id+a),c.fullUrl=`${w}/${j}`,c.fullPath.compose=L,c.slug=L,c.template.activeSectionSlug=d,c.template.activeSectionBase=w,c.metaTitle=p.trim()||m.trim()||c.metaTitle,await co(c,e)});return Promise.all(s)}function dh(t){return new Promise(r=>{let n=(i,s=0)=>{if(!(!i||typeof i!="object")){for(let o in i){let a=i[o],c=a||typeof a=="object",d=JSON.stringify(a).includes('"hasGriddoMultiPage":true');if(!c||!d)continue;let{component:u,hasGriddoMultiPage:p,elements:g}=a;u&&p&&r(g||[]),n(a,s+1)}s||r(null)}};n([t])})}function Av(t,e,r){return e?.slice(t*(r-1),t*r)}function Rv(t,e){let r=Math.ceil(e.length/t)||1;return Array.from({length:r},(i,s)=>s+1)?.map(i=>Av(t,e,i))}function hh(t){let e=t.queriedItems||[],r=t?.itemsPerPage||Ov;return Rv(r,e)}function oh(t){return t.replace(/\/+$/,"/")}function ao(t,e,r){let n=t.endsWith("/")?"":"/",i=r?.addEndingSlash?"/":"";return e<=1?oh(`${t}${i}`):oh(`${t}${n}${e}${i}`)}function ah(t,e){return!t||e<=1?t:`${t} - ${e}`}var It=A(require("node:path")),Lr=A(yt()),Ho=A(Nh());var Eb=process.env.API_URL,Cb=!!process.env.GRIDDO_RENDER_ALL_SITES||!!process.env.updateAllSites,ir=process.env.GRIDDO_RENDER_SITE&&parseInt(process.env.GRIDDO_RENDER_SITE)||process.env.testSite&&parseInt(process.env.testSite),Lh=(process.env.GRIDDO_RENDER_PAGES||process.env.testPage||"").split(",").map(t=>parseInt(t)).filter(Boolean),Bh=te();async function Uh(t){console.info(`API URL ${Eb}`),await tt.login();let e=await me.getAll(),r=Cb?e.filter(s=>!ir||s.id===ir):e.filter(s=>ir?s.id===ir:!!s.shouldBeUpdated);if(r.length)for(let s of r){let{items:o}=await me.getLanguages(s.id);s.domains=o.filter(a=>a.domain&&(a.domain.slug===t||a.domain.slug===`/${t}`)).map(a=>({[a.id]:`${a.domain.slug}${a.path}`}))}let n=r.filter(s=>ir?s.id===ir:!!s.isPublished&&s.domains.length>0),i=r.filter(s=>!s.isPublished&&s.shouldBeUpdated);return{sitesToPublish:n,sitesToUnpublish:i}}async function Xh(t){for(let e of t){let r=await me.startSiteRender(e.id),{siteHash:n}=r,i={siteHash:n,publishHashes:[],unpublishHashes:[]};await me.endSiteRender(e.id,i)}}async function Gh(t){let e=await me.startSiteRender(t),r=await me.getInfo(t),n=await me.getLanguages(t),i=await me.getSocials(t),s=n.items,o=s.find(b=>b.isDefault),{siteHash:a,unpublishHashes:c,publishIds:d}=e,{headers:u,footers:p}=r,g=Lh.length?Lh.filter(b=>d.includes(b)):d;return{siteInfo:r,validPagesIds:g,siteHash:a,unpublishHashes:c,siteLangs:s,defaultLang:o,headers:u,footers:p,socials:i}}async function Hh(){let{__cx:t}=Bh.paths(),{buildProcessData:e}=await ls(),r=await tt.login(),n=Object.keys(e).map(s=>({...e[s],siteId:parseInt(s)})),i={authControl:r,sites:n};Lr.default.writeFileSync(It.default.join(t,"dist","__build-report__.json"),JSON.stringify(i)),_t(`Build report saved for ${n.length} site(s)`)}async function zh(){let{sitesToPublish:t}=await ls(),{__cx:e}=Bh.paths(),r=It.default.join(e,"dist");for(let n of t){let{id:i,languages:s}=n;for(let o of s){tt.headers&&(tt.headers.lang=o.id.toString());let a=await me.getSitemap(i);if(!a)continue;let{items:c,url:{home:d,domain:u}}=a;if(!d)continue;let p=n.domains.find(j=>Object.keys(j)[0]==o.id.toString());if(!p)continue;let g=Object.values(p)[0],m=[],b=Object.keys(c),w=It.default.join(r,g.replace(u,""));for(let j of b){let B=c[j];if(!B.length)continue;let L=(0,Ho.parse)("urlset",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation":"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"},url:B}),V=`/sitemap-${j.toLowerCase()}.xml`,ce=It.default.join(w,V);$h(ce,L),m.push(`${d.endsWith("/")?d.slice(0,-1):d}${V}`)}if(!m.length)continue;let x=(0,Ho.parse)("sitemapindex",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9"},sitemap:m.map(j=>({loc:j}))}),F=It.default.join(w,"sitemap.xml");$h(F,x)}}}function $h(t,e){try{let r=It.default.dirname(t);Lr.default.existsSync(r)||Lr.default.mkdirSync(r,{recursive:!0}),Lr.default.writeFileSync(t,e)}catch(r){console.error(`Error saving file: ${r}`)}}var Wh=te();Yh.default.config();var Pb=process.env.API_URL,Db=process.env.GRIDDO_REACT_APP_INSTANCE||process.env.REACT_APP_INSTANCE,Jh=parseInt(process.env.GRIDDO_API_CONCURRENCY_COUNT||"10"),Ob=process.env.PUBLIC_API_URL,Ib=new Date().valueOf().toString();async function Qh(t){Ll(),console.info(`API calls with ${Jh} threads`);let{__cx:e}=Wh.paths(),{griddoVersion:r}=Wh,n=Vh.default.join(e,"store");try{let i=[],s={},{sitesToPublish:o,sitesToUnpublish:a}=await Uh(t);await oo.getAll(),o.length||a.length||(console.warn("There are no sites to update"),process.exit(0)),console.info(`Sites to publish: ${bs(o)}`),console.info(`Sites to unpublish: ${bs(a)}`),await Xh(a);for(let c of o){let{id:d,slug:u,theme:p,favicon:g,changedPages:m=[],pages:b=[]}=c,{siteInfo:w,validPagesIds:x,siteHash:F,unpublishHashes:j,siteLangs:B,defaultLang:L,headers:V,footers:ce,socials:Te}=await Gh(d),{cloudinaryName:Z,useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O}=oo.settings;s[d]={siteHash:F,unpublishHashes:j,publishHashes:[]};let U=new Yn;U.navigations={headers:V,footers:ce},c.languages=B;let M=Yd(d,F),P=w.siteScript,R={siteUrl:w.slug,title:w.name,favicon:g},He={baseUrl:Pb,publicBaseUrl:Ob,instance:Db,siteSlug:u,theme:p,siteMetadata:R,socials:Te,siteLangs:B,cloudinaryName:Z,griddoVersion:r,siteOptions:{useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O},siteScript:P};_t(`${c.name} site`);let Ke=async h=>{let f=[],v=await me.getPage(h,M);if(!v)return;i.push(h);let S=JSON.parse(JSON.stringify(He));S.navigations=U.getPageNavigations(v);let _=await Vn.getDistributorData({page:v,cacheKey:Ib}),N=await dh(_),X=v?.mode==="list",W=!X&&N,xe=!W&&!X;if(X){let le={page:v,pages:hh(_),isRoot:!1,defaultLang:L,template:_,totalQueriedItems:_.queriedItems};f=await lh(le,S)}if(W){let le=v;le.template=_,le.multiPageElements=N,le.defaultLang=L,f=await fh(le,S)}if(xe){let le=v;le.template=_,le.defaultLang=L,f=[await uh(le,S)]}v.hash!==null&&s[d].publishHashes.push(v.hash),Bl(f)},{pagesMissingInStore:ue,pagesToDeleteFromStore:ge,pagesToWriteToStore:pt}=await Ul(n,{sitesToPublish:o,pages:b,validPagesIds:x,changedPages:m});Cn(ge),$(`Store site: ${c.name}`),$(`${x.length} valid pages from API`),$(`changed ${m.length} pages from API`),$(`deleted ${ge.length} pages from store`),$(`missing ${ue.length} pages in store`),$(`write ${pt.length} pages to store`);let Se=(0,Kh.default)(Jh),l=pt.map(h=>Se(()=>Ke(h)));await Promise.all(l)}$l(n,{buildProcessData:s,createdPages:i,sitesToPublish:o})}catch(i){console.error(i.message),process.exit(1)}}async function Zh(t){zd(),await Qh(t),uf()}var Fb=process.env.API_URL,Ab={GET_ALL:`${Fb}/domains`},pi=class{static async getAll(){let{GET_ALL:e}=Ab;return await Oe({endpoint:e})}};async function ep(){await tt.login();let t=await pi.getAll();return $(`Getting domains slugs (${t.length})`),Rb(t)}function Rb(t){let e=t.filter(({slug:r})=>!!r).map(({slug:r})=>r.replace("/",""));return[...new Set(e)]}var rp=te(),{__cx:Tb}=rp.paths(),tp=sr.default.join(Tb,".render-sentinel");async function zo(){cf("gatsby"),$r.default.writeFileSync(tp,new Date().toISOString());let t=await ep();t.length||xs(gf);for(let e of t){let{__ssg:r,__exports:n,__caches:i,__cx:s,__components:o}=rp.paths(e);$e(`Initializing render for the domain ${e}`,"",1,0);let a=hf(e),c=!!a&&a!=="";await Be({name:"Clean",attempts:Je.clean,steps:[()=>Sr(s,["store","apiCache","dist"]),()=>$("clean `store`, `apiCache` and `dist` directories from `__cx`"),()=>Sr(r,["dist","public","static",".cache"]),()=>$("clean `dist`, `public`, `static` and `.cache` directories from `__ssg`"),()=>Ve("Clean LifeCycle")]}),await Be({name:"Prepare",attempts:Je.prepare,steps:[()=>Pn([n]),()=>$("create `exports/sites/<domain>` directory"),()=>Pn([i]),()=>$("create `caches/<domain>` directory"),()=>Ve("prepare LifeCycle")]}),await Be({name:"Restore",attempts:Je.restore,steps:[()=>Dn(o,r,["static"]),()=>$("copy `static` directory from `__components` to `__ssg`"),()=>Dn(n,s,["assets"]),()=>$("copy `assets` directory from `__exports` to `__cx`"),()=>Dn(n,r,["dist"]),()=>{$r.default.existsSync(sr.default.join(r,"dist"))&&$r.default.renameSync(sr.default.join(r,"dist"),sr.default.join(r,"public"))},()=>$("rename `__ssg/dist` to `__ssg/public` directory."),()=>Wt(i,s,["apiCache","store"]),()=>$("move `apiCache` and `store` directories from `__caches` to `__cx`"),()=>Wt(i,r,[".cache"]),()=>$("move `.cache` directory from `__caches` to `__ssg`"),()=>Ve("Restore LifeCycle")]}),await Be({name:"Data",attempts:Je.data,steps:[()=>Zh(e),()=>Ve("Data LifeCycle")]}),await Be({name:"SSG",attempts:Je.ssg,steps:[()=>pf(a),()=>Ve("SSG LifeCycle")]}),await Be({name:"Relocation",attempts:Je.relocation,steps:[()=>mf(e,c),()=>$("create an `assets` directory from `public`"),()=>Ve("Relocation LifeCycle")]}),await Be({name:"Meta",attempts:Je.meta,steps:[()=>Hh(),()=>$("create build report from `store/metadata/render-info.json`"),()=>ih.writeFiles(e),()=>$("create Robots.txt"),()=>zh(),()=>$("generate sitemaps"),()=>Ve("Meta LifeCycle")]}),await Be({name:"Archive",attempts:Je.archive,steps:[()=>Wl(),()=>$("remove virtual pages from store (multipage and static list)"),()=>hs(sr.default.join(s,"dist")),()=>$("remove empty site directories from `__cx/dist`"),()=>Wt(s,n,["dist","assets"],{withBackup:!0}),()=>$("move `dist` and `assets` directories from `__cx` to `__exports`"),()=>Wt(s,i,["apiCache","store"]),()=>$("move `apiCache` and `store` directories from `__cx` to `__caches`"),()=>Wt(r,i,[".cache"]),()=>$("move `.cache` directory from `__ssg` to `__caches`"),()=>Ve("Archive LifeCycle")]}),await Be({name:"Clean",attempts:Je.clean,steps:[()=>Sr(r,["static","public","dist"]),()=>Ve("Clean LifeCycle")]}),await Be({name:"HealthCheck",attempts:1,steps:[()=>{$r.default.existsSync(tp)||xs(yf)}]})}}async function np(){try{let t=await _s(zo);$e(`All domains rendered in ${t}s.`,"",1,0),process.exit(0)}catch(t){console.log(t),process.exit(1)}}np();
|
|
72
|
+
\rAllow: /`}))||[]}catch(e){console.warn(`${this.constructor.name}: ${e.message}`)}}async writeFiles(e){let{__cx:r}=Dv.paths(e),n=ro.default.join(r,"dist");await this.getRobots();let i=this.robots.find(({path:s})=>s===`/${e}`);if(!i){console.log(`Robots not found for ${e}`);return}if(to.default.existsSync(n)){let s=ro.default.join(n,"robots.txt");to.default.writeFileSync(s,i?.content)}else console.log(`${n} not found`)}},ih=new no;var Vh=A(require("node:path")),Yh=A(nt()),Kh=A(is());var sh=A(nt());sh.default.config();var io=process.env.API_URL,ft=`${io}/site/`,rt={GET_ALL:`${io}/sites/all`,GET_PAGE:[`${io}/page/`,""],INFO:[`${ft}`,"/all"],LANGUAGES:[`${ft}`,"/languages"],BUILD_START:[`${ft}`,"/build/start"],BUILD_END:[`${ft}`,"/build/end"],GET_DISTRIBUTOR_DATA:[`${ft}`,"/distributor"],GET_SITEMAP:[`${ft}`,"/sitemap"],SOCIALS:[`${ft}`,"/socials"],GET_PAGES:[`${ft}`,"/pages?pagination=false"]},me=class{static async getAll(){let{GET_ALL:e}=rt;return await Oe({endpoint:e})}static async getPage(e,r){let{GET_PAGE:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getInfo(e,r=""){let{INFO:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getLanguages(e,r=""){let{LANGUAGES:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async startSiteRender(e){let{BUILD_START:[r,n]}=rt;return await Oe({endpoint:`${r}${e}${n}`})}static async endSiteRender(e,r){let{BUILD_END:[n,i]}=rt;return await Or({endpoint:`${n}${e}${i}`,body:r})}static async getDistributorData(e,r,n,i,s){let{GET_DISTRIBUTOR_DATA:[o,a]}=rt,c=i||e.site,d=s||e.language;return await Or({endpoint:`${o}${c}${a}`,body:r,headers:{lang:d},cacheKey:n})}static async getSitemap(e){let{GET_SITEMAP:[r,n]}=rt;return await Oe({endpoint:`${r}${e}${n}`})}static async getSocials(e,r=""){let{SOCIALS:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}};var Vn=class{static getBody(e,r){let{order:n,sources:i,quantity:s,mode:o,fixed:a,fullRelations:c=!1,allLanguages:d=!1,preferenceLanguage:u=!1,referenceId:p}=e;return o==="auto"?{mode:o,order:n,sources:i,quantity:s,fullRelations:c,allLanguages:d,preferenceLanguage:u}:o==="manual"?{mode:o,fixed:a,fullRelations:c}:o==="navigation"?{mode:o,order:n,quantity:s,fullRelations:c,referenceId:p||r?.structuredDataContent?.id}:(console.log(`Error: Distribuidor mode: ${o} is not recognized on page ${r?.id}.`),e)}static async fetchContentTypeData(e){let{page:r,component:{data:n},cacheKey:i}=e;if(!n)return $e(`Error: Page ${r.id} has \`hasDistributorData: true\` but it doesn't have a \`data\` prop`,"No data in ReferenceField"),[];if(Array.isArray(n.sources)&&n.sources.length<1)return $e(`Warning: Page with id: ${r.id} has a ReferenceField with empty \`data.sources\``,"Empty data.sources in ReferenceField"),[];let{site:s,lang:o}=n;!n.sources&&n.mode==="auto"&&$e(`Warning: Page with id: ${r.id} has a ReferenceField with \`undefined\` \`data.sources\``,"undefined data.sources in ReferenceField");let a=this.getBody(n,r);return await me.getDistributorData(r,a,i,s,o)}static async getDistributorData({page:e,cacheKey:r=""}){try{let{template:n}=e,i=async(a,c=1)=>{if(!(!a||typeof a!="object")&&JSON.stringify(a).includes('"hasDistributorData":true'))for(let d in a){if(d==="queriedItems")continue;let p=a[d];!p||typeof p!="object"||(p.hasDistributorData&&(p.queriedItems=await this.fetchContentTypeData({page:e,cacheKey:r,component:p})),await i(p,c+1))}};return await(async a=>(await i([a]),a))(n)}catch(n){console.error(`Error en get distributor ${n}`),process.exit(1)}}};var Yn=class{_defaultHeaders;_defaultFooters;_navigations;constructor(){this._navigations={footers:[],headers:[]},this._defaultHeaders={},this._defaultFooters={}}set navigations(e){this._navigations=e,this._defaultFooters=this.getDefaultFooters(),this._defaultHeaders=this.getDefaultHeaders()}get navigations(){return this._navigations}getDefaultFooters(){return[...this.navigations.footers].filter(i=>!!i.setAsDefault).reduce((i,s)=>{let{language:o}=s;return{...i,[o]:s}},{})}getDefaultHeaders(){return[...this.navigations.headers].filter(i=>!!i.setAsDefault).reduce((i,s)=>{let{language:o}=s;return{...i,[o]:s}},{})}getRightLanguage(e,r,n){if(!e||!r)return null;let s=e.find(o=>o.language===n&&o.navigationLanguages?.find(a=>a.navigationId===r))||e.find(o=>o.id===r);return s?{...s}:null}getPageHeader(e,r){return this.getRightLanguage(this.navigations.headers,e,r)}getPageFooter(e,r){return this.getRightLanguage(this.navigations.footers,e,r)}getPageNavigations(e){let{header:r,footer:n,language:i,template:{templateType:s},templateConfig:{defaultHeader:o,defaultFooter:a,templates:c}}=e,d=b=>{let w=b.find(x=>typeof x=="number");return typeof w=="number"?w:null},u=d([r,c?.[s]?.defaultHeader,o]),p=d([n,c?.[s]?.defaultFooter,a]),g=u?this.getPageHeader(u,i):u===0?null:this._defaultHeaders[i],m=p?this.getPageFooter(p,i):p===0?null:this._defaultFooters[i];return{header:g,footer:m}}};var so=class{baseURL;settings;ENDPOINTS;constructor(){this.baseURL=process.env.API_URL,this.settings={cloudinaryName:"",useMetaTitle:!1,useMetaKeywords:!1,showBasicMetaRobots:!1,avoidHrefLangsOnCanonicals:!1,avoidSelfReferenceCanonicals:!1,avoidHrefLangXDefault:!1,avoidDebugMetas:!1},this.ENDPOINTS={settings:`${this.baseURL}/settings`,resetRender:`${this.baseURL}/debug/reset-render`}}async getAll(){let{settings:e}=this.ENDPOINTS,r=await Oe({endpoint:e});this.settings=r}async resetRender(){let{resetRender:e}=this.ENDPOINTS;await Or({endpoint:e})}},oo=new so;var ch=A(nt());ch.default.config();var Ov=25;function Iv({socialTitle:t,socialDescription:e,socialImage:r}){return{type:"website",title:t,description:e,image:r?ws(r,1280,768):"",twitterImage:r?ws(r,1280,768):""}}function Fv(t){let{title:e,metaTitle:r,metaDescription:n,canonicalURL:i,locale:s,url:o,isIndexed:a,follow:c,metasAdvanced:d,pageLanguages:u,fullUrl:p,metaKeywords:g}=t,m=d?.split(",").filter(Boolean).map(b=>b.trim().toLowerCase())||[];return{title:(r||e||"").trim(),description:n,canonical:i&&i.trim()&&i!==p?i.trim():a?p:void 0,locale:s,url:o,index:a?"index":"noindex",follow:c?"follow":"nofollow",translate:m.includes("notranslate")?"notranslate":"",metasAdvanced:m.filter(b=>b!=="notranslate").join(),pageLanguages:u,metaKeywords:g?.filter(Boolean).map(b=>b.replace(/"/g,"'")).join(", ")}}async function co(t,e){let{id:r,title:n,fullPath:i,language:s,breadcrumb:o,socialDescription:a,socialImage:c,socialTitle:d}=t,{baseUrl:u,cloudinaryName:p,griddoVersion:g,siteLangs:m,siteMetadata:b,siteOptions:w,siteScript:x,siteSlug:F,socials:j,theme:B,navigations:{header:L,footer:V}}=e;t.breadcrumb=o,t.siteSlug=F,t.apiUrl=u,t.publicApiUrl=e.publicBaseUrl,t.instance=e.instance;let Te=m.find(({id:I})=>I===t?.language)?.locale.replace(/_/g,"-"),Z=Fv(t),D=Iv({socialDescription:a,socialImage:c,socialTitle:d}),q=i.compose,k=new Date().toString();return{path:q,size:void 0,context:{id:r,title:n,fullPath:i,locale:Te,languageId:s,theme:B,siteMetadata:b,pageMetadata:Z,openGraph:D,socials:j,siteLangs:m,cloudinaryName:p,siteOptions:w,griddoVersion:g,renderDate:k,siteScript:x,header:L,footer:V,page:t}}}async function uh(t,e){return await co(t,e)}async function lh({page:t,pages:e,isRoot:r=!1,defaultLang:n,template:i,totalQueriedItems:s},o){let a=e.map(async(c,d)=>{let u=d===0,p=d+1,{domainUrl:g,compose:m}=t.fullPath,b={...t,id:parseInt("-"+t.id+d),fullPath:{...t.fullPath,compose:ao(m,p,{addEndingSlash:!0})},fullUrl:ao(t.fullUrl,p,{addEndingSlash:!0}),slug:ao(t.slug,p),title:ah(t.title,p),metaTitle:ah(t.metaTitle||"",p),disableHrefLangs:p>1,template:{...i,isFirstPage:u,pageNumber:p,totalPages:e.length,baseLink:`${g}${m}`,queriedItems:c,totalQueriedItems:s?.length},isRoot:r,defaultLang:n};return await co(b,o)});return Promise.all(a)}function fh(t,e){let{multiPageElements:r,...n}=t,i=JSON.parse(JSON.stringify(r));i.find(({sectionSlug:o})=>o==="/")||i.push({});let s=i.map(async(o,a)=>{let c=JSON.parse(JSON.stringify(n)),{sectionSlug:d="/",title:u="",metaTitle:p="",metaDescription:g=""}=o,m=typeof u=="string"?u:u.content,b=c.fullPath.compose||"",w=c.fullUrl.endsWith("/")?c.fullUrl.slice(0,-1):c.fullUrl,x=d?.replace(/\//g,""),j=d==="/"?x:x+"/",B=b.endsWith("/")?"":"/",L=`${b}${B}${j}`;return m.trim()&&(c.title=m),g.trim()&&(c.metaDescription=g),c.id=parseInt("-"+c.id+a),c.fullUrl=`${w}/${j}`,c.fullPath.compose=L,c.slug=L,c.template.activeSectionSlug=d,c.template.activeSectionBase=w,c.metaTitle=p.trim()||m.trim()||c.metaTitle,await co(c,e)});return Promise.all(s)}function dh(t){return new Promise(r=>{let n=(i,s=0)=>{if(!(!i||typeof i!="object")){for(let o in i){let a=i[o],c=a||typeof a=="object",d=JSON.stringify(a).includes('"hasGriddoMultiPage":true');if(!c||!d)continue;let{component:u,hasGriddoMultiPage:p,elements:g}=a;u&&p&&r(g||[]),n(a,s+1)}s||r(null)}};n([t])})}function Av(t,e,r){return e?.slice(t*(r-1),t*r)}function Rv(t,e){let r=Math.ceil(e.length/t)||1;return Array.from({length:r},(i,s)=>s+1)?.map(i=>Av(t,e,i))}function hh(t){let e=t.queriedItems||[],r=t?.itemsPerPage||Ov;return Rv(r,e)}function oh(t){return t.replace(/\/+$/,"/")}function ao(t,e,r){let n=t.endsWith("/")?"":"/",i=r?.addEndingSlash?"/":"";return e<=1?oh(`${t}${i}`):oh(`${t}${n}${e}${i}`)}function ah(t,e){return!t||e<=1?t:`${t} - ${e}`}var It=A(require("node:path")),Lr=A(yt()),Ho=A(Nh());var Eb=process.env.API_URL,Cb=!!process.env.GRIDDO_RENDER_ALL_SITES||!!process.env.updateAllSites,ir=process.env.GRIDDO_RENDER_SITE&&parseInt(process.env.GRIDDO_RENDER_SITE)||process.env.testSite&&parseInt(process.env.testSite),Lh=(process.env.GRIDDO_RENDER_PAGES||process.env.testPage||"").split(",").map(t=>parseInt(t)).filter(Boolean),Bh=te();async function Uh(t){console.info(`API URL ${Eb}`),await tt.login();let e=await me.getAll(),r=Cb?e.filter(s=>!ir||s.id===ir):e.filter(s=>ir?s.id===ir:!!s.shouldBeUpdated);if(r.length)for(let s of r){let{items:o}=await me.getLanguages(s.id);s.domains=o.filter(a=>a.domain&&(a.domain.slug===t||a.domain.slug===`/${t}`)).map(a=>({[a.id]:`${a.domain.slug}${a.path}`}))}let n=r.filter(s=>ir?s.id===ir:!!s.isPublished&&s.domains.length>0),i=r.filter(s=>!s.isPublished&&s.shouldBeUpdated);return{sitesToPublish:n,sitesToUnpublish:i}}async function Xh(t){for(let e of t){let r=await me.startSiteRender(e.id),{siteHash:n}=r,i={siteHash:n,publishHashes:[],unpublishHashes:[]};await me.endSiteRender(e.id,i)}}async function Gh(t){let e=await me.startSiteRender(t),r=await me.getInfo(t),n=await me.getLanguages(t),i=await me.getSocials(t),s=n.items,o=s.find(b=>b.isDefault),{siteHash:a,unpublishHashes:c,publishIds:d}=e,{headers:u,footers:p}=r,g=Lh.length?Lh.filter(b=>d.includes(b)):d;return{siteInfo:r,validPagesIds:g,siteHash:a,unpublishHashes:c,siteLangs:s,defaultLang:o,headers:u,footers:p,socials:i}}async function Hh(){let{__cx:t}=Bh.paths(),{buildProcessData:e}=await ls(),r=await tt.login(),n=Object.keys(e).map(s=>({...e[s],siteId:parseInt(s)})),i={authControl:r,sites:n};Lr.default.writeFileSync(It.default.join(t,"dist","__build-report__.json"),JSON.stringify(i)),_t(`Build report saved for ${n.length} site(s)`)}async function zh(){let{sitesToPublish:t}=await ls(),{__cx:e}=Bh.paths(),r=It.default.join(e,"dist");for(let n of t){let{id:i,languages:s}=n;for(let o of s){tt.headers&&(tt.headers.lang=o.id.toString());let a=await me.getSitemap(i);if(!a)continue;let{items:c,url:{home:d,domain:u}}=a;if(!d)continue;let p=n.domains.find(j=>Object.keys(j)[0]==o.id.toString());if(!p)continue;let g=Object.values(p)[0],m=[],b=Object.keys(c),w=It.default.join(r,g.replace(u,""));for(let j of b){let B=c[j];if(!B.length)continue;let L=(0,Ho.parse)("urlset",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation":"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"},url:B}),V=`/sitemap-${j.toLowerCase()}.xml`,ce=It.default.join(w,V);$h(ce,L),m.push(`${d.endsWith("/")?d.slice(0,-1):d}${V}`)}if(!m.length)continue;let x=(0,Ho.parse)("sitemapindex",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9"},sitemap:m.map(j=>({loc:j}))}),F=It.default.join(w,"sitemap.xml");$h(F,x)}}}function $h(t,e){try{let r=It.default.dirname(t);Lr.default.existsSync(r)||Lr.default.mkdirSync(r,{recursive:!0}),Lr.default.writeFileSync(t,e)}catch(r){console.error(`Error saving file: ${r}`)}}var Wh=te();Yh.default.config();var Pb=process.env.API_URL,Db=process.env.GRIDDO_REACT_APP_INSTANCE||process.env.REACT_APP_INSTANCE,Jh=parseInt(process.env.GRIDDO_API_CONCURRENCY_COUNT||"10"),Ob=process.env.PUBLIC_API_URL,Ib=new Date().valueOf().toString();async function Qh(t){Ll(),console.info(`API calls with ${Jh} threads`);let{__cx:e}=Wh.paths(),{griddoVersion:r}=Wh,n=Vh.default.join(e,"store");try{let i=[],s={},{sitesToPublish:o,sitesToUnpublish:a}=await Uh(t);await oo.getAll(),o.length||a.length||(console.warn("There are no sites to update"),process.exit(0)),console.info(`Sites to publish: ${bs(o)}`),console.info(`Sites to unpublish: ${bs(a)}`),await Xh(a);for(let c of o){let{id:d,slug:u,theme:p,favicon:g,changedPages:m=[],pages:b=[]}=c,{siteInfo:w,validPagesIds:x,siteHash:F,unpublishHashes:j,siteLangs:B,defaultLang:L,headers:V,footers:ce,socials:Te}=await Gh(d),{cloudinaryName:Z,useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O}=oo.settings;s[d]={siteHash:F,unpublishHashes:j,publishHashes:[]};let U=new Yn;U.navigations={headers:V,footers:ce},c.languages=B;let M=Yd(d,F),P=w.siteScript,R={siteUrl:w.slug,title:w.name,favicon:g},He={baseUrl:Pb,publicBaseUrl:Ob,instance:Db,siteSlug:u,theme:p,siteMetadata:R,socials:Te,siteLangs:B,cloudinaryName:Z,griddoVersion:r,siteOptions:{useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O},siteScript:P};_t(`${c.name} site`);let Ke=async h=>{let f=[],v=await me.getPage(h,M);if(!v)return;i.push(h);let S=JSON.parse(JSON.stringify(He));S.navigations=U.getPageNavigations(v);let _=await Vn.getDistributorData({page:v,cacheKey:Ib}),N=await dh(_),X=v?.mode==="list",W=!X&&N,xe=!W&&!X;if(X){let le={page:v,pages:hh(_),isRoot:!1,defaultLang:L,template:_,totalQueriedItems:_.queriedItems};f=await lh(le,S)}if(W){let le=v;le.template=_,le.multiPageElements=N,le.defaultLang=L,f=await fh(le,S)}if(xe){let le=v;le.template=_,le.defaultLang=L,f=[await uh(le,S)]}v.hash!==null&&s[d].publishHashes.push(v.hash),Bl(f)},{pagesMissingInStore:ue,pagesToDeleteFromStore:ge,pagesToWriteToStore:pt}=await Ul(n,{sitesToPublish:o,pages:b,validPagesIds:x,changedPages:m});Cn(ge),$(`Store site: ${c.name}`),$(`${x.length} valid pages from API`),$(`changed ${m.length} pages from API`),$(`deleted ${ge.length} pages from store`),$(`missing ${ue.length} pages in store`),$(`write ${pt.length} pages to store`);let Se=(0,Kh.default)(Jh),l=pt.map(h=>Se(()=>Ke(h)));await Promise.all(l)}$l(n,{buildProcessData:s,createdPages:i,sitesToPublish:o})}catch(i){console.error(i.message),process.exit(1)}}async function Zh(t){zd(),await Qh(t),uf()}var Fb=process.env.API_URL,Ab={GET_ALL:`${Fb}/domains`},pi=class{static async getAll(){let{GET_ALL:e}=Ab;return await Oe({endpoint:e})}};async function ep(){await tt.login();let t=await pi.getAll();return $(`Getting domains slugs (${t.length})`),Rb(t)}function Rb(t){let e=t.filter(({slug:r})=>!!r).map(({slug:r})=>r.replace("/",""));return[...new Set(e)]}var rp=te(),{__cx:Tb}=rp.paths(),tp=sr.default.join(Tb,".render-sentinel");async function zo(){cf("gatsby"),$r.default.writeFileSync(tp,new Date().toISOString());let t=await ep();t.length||xs(gf);for(let e of t){let{__ssg:r,__exports:n,__caches:i,__cx:s,__components:o}=rp.paths(e);$e(`Initializing render for the domain ${e}`,"",1,0);let a=hf(e),c=!!a&&a!=="";await Be({name:"Clean",attempts:Je.clean,steps:[()=>Sr(s,["store","apiCache","dist"]),()=>$("clean `store`, `apiCache` and `dist` directories from `__cx`"),()=>Sr(r,["dist","public","static",".cache"]),()=>$("clean `dist`, `public`, `static` and `.cache` directories from `__ssg`"),()=>Ve("Clean LifeCycle")]}),await Be({name:"Prepare",attempts:Je.prepare,steps:[()=>Pn([n]),()=>$("create `exports/sites/<domain>` directory"),()=>Pn([i]),()=>$("create `caches/<domain>` directory"),()=>Ve("prepare LifeCycle")]}),await Be({name:"Restore",attempts:Je.restore,steps:[()=>Dn(o,r,["static"]),()=>$("copy `static` directory from `__components` to `__ssg`"),()=>Dn(n,s,["assets"]),()=>$("copy `assets` directory from `__exports` to `__cx`"),()=>Dn(n,r,["dist"]),()=>{$r.default.existsSync(sr.default.join(r,"dist"))&&$r.default.renameSync(sr.default.join(r,"dist"),sr.default.join(r,"public"))},()=>$("rename `__ssg/dist` to `__ssg/public` directory."),()=>Wt(i,s,["apiCache","store"]),()=>$("move `apiCache` and `store` directories from `__caches` to `__cx`"),()=>Wt(i,r,[".cache"]),()=>$("move `.cache` directory from `__caches` to `__ssg`"),()=>Ve("Restore LifeCycle")]}),await Be({name:"Data",attempts:Je.data,steps:[()=>Zh(e),()=>Ve("Data LifeCycle")]}),await Be({name:"SSG",attempts:Je.ssg,steps:[()=>pf(a),()=>Ve("SSG LifeCycle")]}),await Be({name:"Relocation",attempts:Je.relocation,steps:[()=>mf(e,c),()=>$("create an `assets` directory from `public`"),()=>Ve("Relocation LifeCycle")]}),await Be({name:"Meta",attempts:Je.meta,steps:[()=>Hh(),()=>$("create build report from `store/metadata/render-info.json`"),()=>ih.writeFiles(e),()=>$("create Robots.txt"),()=>zh(),()=>$("generate sitemaps"),()=>Ve("Meta LifeCycle")]}),await Be({name:"Archive",attempts:Je.archive,steps:[()=>Wl(),()=>$("remove virtual pages from store (multipage and static list)"),()=>hs(sr.default.join(s,"dist")),()=>$("remove empty site directories from `__cx/dist`"),()=>Wt(s,n,["dist","assets"],{withBackup:!0}),()=>$("move `dist` and `assets` directories from `__cx` to `__exports`"),()=>Wt(s,i,["apiCache","store"]),()=>$("move `apiCache` and `store` directories from `__cx` to `__caches`"),()=>Wt(r,i,[".cache"]),()=>$("move `.cache` directory from `__ssg` to `__caches`"),()=>Ve("Archive LifeCycle")]}),await Be({name:"Clean",attempts:Je.clean,steps:[()=>Sr(r,["static","public","dist"]),()=>Ve("Clean LifeCycle")]}),await Be({name:"HealthCheck",attempts:1,steps:[()=>{$r.default.existsSync(tp)||xs(yf)}]})}}async function np(){try{let t=await _s(zo);$e(`All domains rendered in ${t}s.`,"",1,0),process.exit(0)}catch(t){console.log(t),process.exit(1)}}np();
|
package/build/start-render.js
CHANGED
|
@@ -70,4 +70,4 @@ ${g}
|
|
|
70
70
|
=============
|
|
71
71
|
`))}sh.default.config();var Pv=te(),no=class{robots;baseURL;settings;endpoint;constructor(){this.robots=[],this.baseURL=process.env.API_URL,this.settings={},this.endpoint=`${this.baseURL}/domains/robots`}async getRobots(){try{let e=await Oe({endpoint:this.endpoint});this.robots=e?.filter(r=>!!r.path).map(({path:r,content:n})=>({path:r,content:n||`User-agent: *
|
|
72
72
|
\r
|
|
73
|
-
\rAllow: /`}))||[]}catch(e){console.warn(`${this.constructor.name}: ${e.message}`)}}async writeFiles(e){let{__cx:r}=Pv.paths(e),n=ro.default.join(r,"dist");await this.getRobots();let i=this.robots.find(({path:s})=>s===`/${e}`);if(!i){console.log(`Robots not found for ${e}`);return}if(to.default.existsSync(n)){let s=ro.default.join(n,"robots.txt");to.default.writeFileSync(s,i?.content)}else console.log(`${n} not found`)}},oh=new no;var Kh=A(require("node:path")),Qh=A(nt()),Zh=A(is());var ah=A(nt());ah.default.config();var io=process.env.API_URL,ft=`${io}/site/`,rt={GET_ALL:`${io}/sites/all`,GET_PAGE:[`${io}/page/`,""],INFO:[`${ft}`,"/all"],LANGUAGES:[`${ft}`,"/languages"],BUILD_START:[`${ft}`,"/build/start"],BUILD_END:[`${ft}`,"/build/end"],GET_DISTRIBUTOR_DATA:[`${ft}`,"/distributor"],GET_SITEMAP:[`${ft}`,"/sitemap"],SOCIALS:[`${ft}`,"/socials"],GET_PAGES:[`${ft}`,"/pages?pagination=false"]},me=class{static async getAll(){let{GET_ALL:e}=rt;return await Oe({endpoint:e})}static async getPage(e,r){let{GET_PAGE:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getInfo(e,r=""){let{INFO:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getLanguages(e,r=""){let{LANGUAGES:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async startSiteRender(e){let{BUILD_START:[r,n]}=rt;return await Oe({endpoint:`${r}${e}${n}`})}static async endSiteRender(e,r){let{BUILD_END:[n,i]}=rt;return await Or({endpoint:`${n}${e}${i}`,body:r})}static async getDistributorData(e,r,n,i,s){let{GET_DISTRIBUTOR_DATA:[o,a]}=rt,c=i||e.site,d=s||e.language;return await Or({endpoint:`${o}${c}${a}`,body:r,headers:{lang:d},cacheKey:n})}static async getSitemap(e){let{GET_SITEMAP:[r,n]}=rt;return await Oe({endpoint:`${r}${e}${n}`})}static async getSocials(e,r=""){let{SOCIALS:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}};var Vn=class{static getBody(e,r){let{order:n,sources:i,quantity:s,mode:o,fixed:a,fullRelations:c=!1,allLanguages:d=!1,preferenceLanguage:u=!1,referenceId:p}=e;return o==="auto"?{mode:o,order:n,sources:i,quantity:s,fullRelations:c,allLanguages:d,preferenceLanguage:u}:o==="manual"?{mode:o,fixed:a,fullRelations:c}:o==="navigation"?{mode:o,order:n,quantity:s,fullRelations:c,referenceId:p||r?.structuredDataContent?.id}:(console.log(`Error: Distribuidor mode: ${o} is not recognized on page ${r?.id}.`),e)}static async fetchContentTypeData(e){let{page:r,component:{data:n},cacheKey:i}=e;if(!n)return $e(`Error: Page ${r.id} has \`hasDistributorData: true\` but it doesn't have a \`data\` prop`,"No data in ReferenceField"),[];if(Array.isArray(n.sources)&&n.sources.length<1)return $e(`Warning: Page with id: ${r.id} has a ReferenceField with empty \`data.sources\``,"Empty data.sources in ReferenceField"),[];let{site:s,lang:o}=n;n.sources||$e(`Warning: Page with id: ${r.id} in the site ${s} has a ReferenceField with \`undefined\` \`data.sources\``,"Undefined data.sources in ReferenceField");let a=this.getBody(n,r);return await me.getDistributorData(r,a,i,s,o)}static async getDistributorData({page:e,cacheKey:r=""}){try{let{template:n}=e,i=async(a,c=1)=>{if(!(!a||typeof a!="object")&&JSON.stringify(a).includes('"hasDistributorData":true'))for(let d in a){if(d==="queriedItems")continue;let p=a[d];!p||typeof p!="object"||(p.hasDistributorData&&(p.queriedItems=await this.fetchContentTypeData({page:e,cacheKey:r,component:p})),await i(p,c+1))}};return await(async a=>(await i([a]),a))(n)}catch(n){console.error(`Error en get distributor ${n}`),process.exit(1)}}};var Yn=class{_defaultHeaders;_defaultFooters;_navigations;constructor(){this._navigations={footers:[],headers:[]},this._defaultHeaders={},this._defaultFooters={}}set navigations(e){this._navigations=e,this._defaultFooters=this.getDefaultFooters(),this._defaultHeaders=this.getDefaultHeaders()}get navigations(){return this._navigations}getDefaultFooters(){return[...this.navigations.footers].filter(i=>!!i.setAsDefault).reduce((i,s)=>{let{language:o}=s;return{...i,[o]:s}},{})}getDefaultHeaders(){return[...this.navigations.headers].filter(i=>!!i.setAsDefault).reduce((i,s)=>{let{language:o}=s;return{...i,[o]:s}},{})}getRightLanguage(e,r,n){if(!e||!r)return null;let s=e.find(o=>o.language===n&&o.navigationLanguages?.find(a=>a.navigationId===r))||e.find(o=>o.id===r);return s?{...s}:null}getPageHeader(e,r){return this.getRightLanguage(this.navigations.headers,e,r)}getPageFooter(e,r){return this.getRightLanguage(this.navigations.footers,e,r)}getPageNavigations(e){let{header:r,footer:n,language:i,template:{templateType:s},templateConfig:{defaultHeader:o,defaultFooter:a,templates:c}}=e,d=b=>{let w=b.find(x=>typeof x=="number");return typeof w=="number"?w:null},u=d([r,c?.[s]?.defaultHeader,o]),p=d([n,c?.[s]?.defaultFooter,a]),g=u?this.getPageHeader(u,i):u===0?null:this._defaultHeaders[i],m=p?this.getPageFooter(p,i):p===0?null:this._defaultFooters[i];return{header:g,footer:m}}};var so=class{baseURL;settings;ENDPOINTS;constructor(){this.baseURL=process.env.API_URL,this.settings={cloudinaryName:"",useMetaTitle:!1,useMetaKeywords:!1,showBasicMetaRobots:!1,avoidHrefLangsOnCanonicals:!1,avoidSelfReferenceCanonicals:!1,avoidHrefLangXDefault:!1,avoidDebugMetas:!1},this.ENDPOINTS={settings:`${this.baseURL}/settings`,resetRender:`${this.baseURL}/debug/reset-render`}}async getAll(){let{settings:e}=this.ENDPOINTS,r=await Oe({endpoint:e});this.settings=r}async resetRender(){let{resetRender:e}=this.ENDPOINTS;await Or({endpoint:e})}},oo=new so;var lh=A(nt());lh.default.config();var Dv=25;function Ov({socialTitle:t,socialDescription:e,socialImage:r}){return{type:"website",title:t,description:e,image:r?ws(r,1280,768):"",twitterImage:r?ws(r,1280,768):""}}function Iv(t){let{title:e,metaTitle:r,metaDescription:n,canonicalURL:i,locale:s,url:o,isIndexed:a,follow:c,metasAdvanced:d,pageLanguages:u,fullUrl:p,metaKeywords:g}=t,m=d?.split(",").filter(Boolean).map(b=>b.trim().toLowerCase())||[];return{title:(r||e||"").trim(),description:n,canonical:i&&i.trim()&&i!==p?i.trim():a?p:void 0,locale:s,url:o,index:a?"index":"noindex",follow:c?"follow":"nofollow",translate:m.includes("notranslate")?"notranslate":"",metasAdvanced:m.filter(b=>b!=="notranslate").join(),pageLanguages:u,metaKeywords:g?.filter(Boolean).map(b=>b.replace(/"/g,"'")).join(", ")}}async function co(t,e){let{id:r,title:n,fullPath:i,language:s,breadcrumb:o,socialDescription:a,socialImage:c,socialTitle:d}=t,{baseUrl:u,cloudinaryName:p,griddoVersion:g,siteLangs:m,siteMetadata:b,siteOptions:w,siteScript:x,siteSlug:F,socials:j,theme:B,navigations:{header:L,footer:V}}=e;t.breadcrumb=o,t.siteSlug=F,t.apiUrl=u,t.publicApiUrl=e.publicBaseUrl,t.instance=e.instance;let Te=m.find(({id:I})=>I===t?.language)?.locale.replace(/_/g,"-"),Z=Iv(t),D=Ov({socialDescription:a,socialImage:c,socialTitle:d}),q=i.compose,k=new Date().toString();return{path:q,size:void 0,context:{id:r,title:n,fullPath:i,locale:Te,languageId:s,theme:B,siteMetadata:b,pageMetadata:Z,openGraph:D,socials:j,siteLangs:m,cloudinaryName:p,siteOptions:w,griddoVersion:g,renderDate:k,siteScript:x,header:L,footer:V,page:t}}}async function fh(t,e){return await co(t,e)}async function dh({page:t,pages:e,isRoot:r=!1,defaultLang:n,template:i,totalQueriedItems:s},o){let a=e.map(async(c,d)=>{let u=d===0,p=d+1,{domainUrl:g,compose:m}=t.fullPath,b={...t,id:parseInt("-"+t.id+d),fullPath:{...t.fullPath,compose:ao(m,p,{addEndingSlash:!0})},fullUrl:ao(t.fullUrl,p,{addEndingSlash:!0}),slug:ao(t.slug,p),title:uh(t.title,p),metaTitle:uh(t.metaTitle||"",p),disableHrefLangs:p>1,template:{...i,isFirstPage:u,pageNumber:p,totalPages:e.length,baseLink:`${g}${m}`,queriedItems:c,totalQueriedItems:s?.length},isRoot:r,defaultLang:n};return await co(b,o)});return Promise.all(a)}function hh(t,e){let{multiPageElements:r,...n}=t,i=JSON.parse(JSON.stringify(r));i.find(({sectionSlug:o})=>o==="/")||i.push({});let s=i.map(async(o,a)=>{let c=JSON.parse(JSON.stringify(n)),{sectionSlug:d="/",title:u="",metaTitle:p="",metaDescription:g=""}=o,m=typeof u=="string"?u:u.content,b=c.fullPath.compose||"",w=c.fullUrl.endsWith("/")?c.fullUrl.slice(0,-1):c.fullUrl,x=d?.replace(/\//g,""),j=d==="/"?x:x+"/",B=b.endsWith("/")?"":"/",L=`${b}${B}${j}`;return m.trim()&&(c.title=m),g.trim()&&(c.metaDescription=g),c.id=parseInt("-"+c.id+a),c.fullUrl=`${w}/${j}`,c.fullPath.compose=L,c.slug=L,c.template.activeSectionSlug=d,c.template.activeSectionBase=w,c.metaTitle=p.trim()||m.trim()||c.metaTitle,await co(c,e)});return Promise.all(s)}function ph(t){return new Promise(r=>{let n=(i,s=0)=>{if(!(!i||typeof i!="object")){for(let o in i){let a=i[o],c=a||typeof a=="object",d=JSON.stringify(a).includes('"hasGriddoMultiPage":true');if(!c||!d)continue;let{component:u,hasGriddoMultiPage:p,elements:g}=a;u&&p&&r(g||[]),n(a,s+1)}s||r(null)}};n([t])})}function Fv(t,e,r){return e?.slice(t*(r-1),t*r)}function Av(t,e){let r=Math.ceil(e.length/t)||1;return Array.from({length:r},(i,s)=>s+1)?.map(i=>Fv(t,e,i))}function mh(t){let e=t.queriedItems||[],r=t?.itemsPerPage||Dv;return Av(r,e)}function ch(t){return t.replace(/\/+$/,"/")}function ao(t,e,r){let n=t.endsWith("/")?"":"/",i=r?.addEndingSlash?"/":"";return e<=1?ch(`${t}${i}`):ch(`${t}${n}${e}${i}`)}function uh(t,e){return!t||e<=1?t:`${t} - ${e}`}var It=A(require("node:path")),Lr=A(yt()),Ho=A($h());var xb=process.env.API_URL,Eb=!!process.env.GRIDDO_RENDER_ALL_SITES||!!process.env.updateAllSites,ir=process.env.GRIDDO_RENDER_SITE&&parseInt(process.env.GRIDDO_RENDER_SITE)||process.env.testSite&&parseInt(process.env.testSite),Bh=(process.env.GRIDDO_RENDER_PAGES||process.env.testPage||"").split(",").map(t=>parseInt(t)).filter(Boolean),Xh=te();async function Gh(t){console.info(`API URL ${xb}`),await tt.login();let e=await me.getAll(),r=Eb?e.filter(s=>!ir||s.id===ir):e.filter(s=>ir?s.id===ir:!!s.shouldBeUpdated);if(r.length)for(let s of r){let{items:o}=await me.getLanguages(s.id);s.domains=o.filter(a=>a.domain&&(a.domain.slug===t||a.domain.slug===`/${t}`)).map(a=>({[a.id]:`${a.domain.slug}${a.path}`}))}let n=r.filter(s=>ir?s.id===ir:!!s.isPublished&&s.domains.length>0),i=r.filter(s=>!s.isPublished&&s.shouldBeUpdated);return{sitesToPublish:n,sitesToUnpublish:i}}async function Hh(t){for(let e of t){let r=await me.startSiteRender(e.id),{siteHash:n}=r,i={siteHash:n,publishHashes:[],unpublishHashes:[]};await me.endSiteRender(e.id,i)}}async function zh(t){let e=await me.startSiteRender(t),r=await me.getInfo(t),n=await me.getLanguages(t),i=await me.getSocials(t),s=n.items,o=s.find(b=>b.isDefault),{siteHash:a,unpublishHashes:c,publishIds:d}=e,{headers:u,footers:p}=r,g=Bh.length?Bh.filter(b=>d.includes(b)):d;return{siteInfo:r,validPagesIds:g,siteHash:a,unpublishHashes:c,siteLangs:s,defaultLang:o,headers:u,footers:p,socials:i}}async function Wh(){let{__cx:t}=Xh.paths(),{buildProcessData:e}=await ls(),r=await tt.login(),n=Object.keys(e).map(s=>({...e[s],siteId:parseInt(s)})),i={authControl:r,sites:n};Lr.default.writeFileSync(It.default.join(t,"dist","__build-report__.json"),JSON.stringify(i)),_t(`Build report saved for ${n.length} site(s)`)}async function Jh(){let{sitesToPublish:t}=await ls(),{__cx:e}=Xh.paths(),r=It.default.join(e,"dist");for(let n of t){let{id:i,languages:s}=n;for(let o of s){tt.headers&&(tt.headers.lang=o.id.toString());let a=await me.getSitemap(i);if(!a)continue;let{items:c,url:{home:d,domain:u}}=a;if(!d)continue;let p=n.domains.find(j=>Object.keys(j)[0]==o.id.toString());if(!p)continue;let g=Object.values(p)[0],m=[],b=Object.keys(c),w=It.default.join(r,g.replace(u,""));for(let j of b){let B=c[j];if(!B.length)continue;let L=(0,Ho.parse)("urlset",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation":"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"},url:B}),V=`/sitemap-${j.toLowerCase()}.xml`,ce=It.default.join(w,V);Uh(ce,L),m.push(`${d.endsWith("/")?d.slice(0,-1):d}${V}`)}if(!m.length)continue;let x=(0,Ho.parse)("sitemapindex",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9"},sitemap:m.map(j=>({loc:j}))}),F=It.default.join(w,"sitemap.xml");Uh(F,x)}}}function Uh(t,e){try{let r=It.default.dirname(t);Lr.default.existsSync(r)||Lr.default.mkdirSync(r,{recursive:!0}),Lr.default.writeFileSync(t,e)}catch(r){console.error(`Error saving file: ${r}`)}}var Vh=te();Qh.default.config();var Cb=process.env.API_URL,Pb=process.env.GRIDDO_REACT_APP_INSTANCE||process.env.REACT_APP_INSTANCE,Yh=parseInt(process.env.GRIDDO_API_CONCURRENCY_COUNT||"10"),Db=process.env.PUBLIC_API_URL,Ob=new Date().valueOf().toString();async function ep(t){Bl(),console.info(`API calls with ${Yh} threads`);let{__cx:e}=Vh.paths(),{griddoVersion:r}=Vh,n=Kh.default.join(e,"store");try{let i=[],s={},{sitesToPublish:o,sitesToUnpublish:a}=await Gh(t);await oo.getAll(),o.length||a.length||(console.warn("There are no sites to update"),process.exit(0)),console.info(`Sites to publish: ${bs(o)}`),console.info(`Sites to unpublish: ${bs(a)}`),await Hh(a);for(let c of o){let{id:d,slug:u,theme:p,favicon:g,changedPages:m=[],pages:b=[]}=c,{siteInfo:w,validPagesIds:x,siteHash:F,unpublishHashes:j,siteLangs:B,defaultLang:L,headers:V,footers:ce,socials:Te}=await zh(d),{cloudinaryName:Z,useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O}=oo.settings;s[d]={siteHash:F,unpublishHashes:j,publishHashes:[]};let U=new Yn;U.navigations={headers:V,footers:ce},c.languages=B;let M=Qd(d,F),P=w.siteScript,R={siteUrl:w.slug,title:w.name,favicon:g},He={baseUrl:Cb,publicBaseUrl:Db,instance:Pb,siteSlug:u,theme:p,siteMetadata:R,socials:Te,siteLangs:B,cloudinaryName:Z,griddoVersion:r,siteOptions:{useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O},siteScript:P};_t(`${c.name} site`);let Ke=async h=>{let f=[],v=await me.getPage(h,M);if(!v)return;i.push(h);let S=JSON.parse(JSON.stringify(He));S.navigations=U.getPageNavigations(v);let _=await Vn.getDistributorData({page:v,cacheKey:Ob}),N=await ph(_),X=v?.mode==="list",W=!X&&N,xe=!W&&!X;if(X){let le={page:v,pages:mh(_),isRoot:!1,defaultLang:L,template:_,totalQueriedItems:_.queriedItems};f=await dh(le,S)}if(W){let le=v;le.template=_,le.multiPageElements=N,le.defaultLang=L,f=await hh(le,S)}if(xe){let le=v;le.template=_,le.defaultLang=L,f=[await fh(le,S)]}v.hash!==null&&s[d].publishHashes.push(v.hash),Xl(f)},{pagesMissingInStore:ue,pagesToDeleteFromStore:ge,pagesToWriteToStore:pt}=await Gl(n,{sitesToPublish:o,pages:b,validPagesIds:x,changedPages:m});Cn(ge),$(`Store site: ${c.name}`),$(`${x.length} valid pages from API`),$(`changed ${m.length} pages from API`),$(`deleted ${ge.length} pages from store`),$(`missing ${ue.length} pages in store`),$(`write ${pt.length} pages to store`);let Se=(0,Zh.default)(Yh),l=pt.map(h=>Se(()=>Ke(h)));await Promise.all(l)}Ul(n,{buildProcessData:s,createdPages:i,sitesToPublish:o})}catch(i){console.error(i.message),process.exit(1)}}async function tp(t){Jd(),await ep(t),ff()}var Ib=process.env.API_URL,Fb={GET_ALL:`${Ib}/domains`},pi=class{static async getAll(){let{GET_ALL:e}=Fb;return await Oe({endpoint:e})}};async function rp(){await tt.login();let t=await pi.getAll();return $(`Getting domains slugs (${t.length})`),Ab(t)}function Ab(t){let e=t.filter(({slug:r})=>!!r).map(({slug:r})=>r.replace("/",""));return[...new Set(e)]}var ip=te(),{__cx:Rb}=ip.paths(),np=sr.default.join(Rb,".render-sentinel");async function zo(){lf("gatsby"),$r.default.writeFileSync(np,new Date().toISOString());let t=await rp();t.length||xs(vf);for(let e of t){let{__ssg:r,__exports:n,__caches:i,__cx:s,__components:o}=ip.paths(e);$e(`Initializing render for the domain ${e}`,"",1,0);let a=mf(e),c=!!a&&a!=="";await Be({name:"Clean",attempts:Je.clean,steps:[()=>Sr(s,["store","apiCache","dist"]),()=>$("clean `store`, `apiCache` and `dist` directories from `__cx`"),()=>Sr(r,["dist","public","static",".cache"]),()=>$("clean `dist`, `public`, `static` and `.cache` directories from `__ssg`"),()=>Ve("Clean LifeCycle")]}),await Be({name:"Prepare",attempts:Je.prepare,steps:[()=>Pn([n]),()=>$("create `exports/sites/<domain>` directory"),()=>Pn([i]),()=>$("create `caches/<domain>` directory"),()=>Ve("prepare LifeCycle")]}),await Be({name:"Restore",attempts:Je.restore,steps:[()=>Dn(o,r,["static"]),()=>$("copy `static` directory from `__components` to `__ssg`"),()=>Dn(n,s,["assets"]),()=>$("copy `assets` directory from `__exports` to `__cx`"),()=>Dn(n,r,["dist"]),()=>{$r.default.existsSync(sr.default.join(r,"dist"))&&$r.default.renameSync(sr.default.join(r,"dist"),sr.default.join(r,"public"))},()=>$("rename `__ssg/dist` to `__ssg/public` directory."),()=>Wt(i,s,["apiCache","store"]),()=>$("move `apiCache` and `store` directories from `__caches` to `__cx`"),()=>Wt(i,r,[".cache"]),()=>$("move `.cache` directory from `__caches` to `__ssg`"),()=>Ve("Restore LifeCycle")]}),await Be({name:"Data",attempts:Je.data,steps:[()=>tp(e),()=>Ve("Data LifeCycle")]}),await Be({name:"SSG",attempts:Je.ssg,steps:[()=>gf(a),()=>Ve("SSG LifeCycle")]}),await Be({name:"Relocation",attempts:Je.relocation,steps:[()=>yf(e,c),()=>$("create an `assets` directory from `public`"),()=>Ve("Relocation LifeCycle")]}),await Be({name:"Meta",attempts:Je.meta,steps:[()=>Wh(),()=>$("create build report from `store/metadata/render-info.json`"),()=>oh.writeFiles(e),()=>$("create Robots.txt"),()=>Jh(),()=>$("generate sitemaps"),()=>Ve("Meta LifeCycle")]}),await Be({name:"Archive",attempts:Je.archive,steps:[()=>Vl(),()=>$("remove virtual pages from store (multipage and static list)"),()=>hs(sr.default.join(s,"dist")),()=>$("remove empty site directories from `__cx/dist`"),()=>Wt(s,n,["dist","assets"],{withBackup:!0}),()=>$("move `dist` and `assets` directories from `__cx` to `__exports`"),()=>Wt(s,i,["apiCache","store"]),()=>$("move `apiCache` and `store` directories from `__cx` to `__caches`"),()=>Wt(r,i,[".cache"]),()=>$("move `.cache` directory from `__ssg` to `__caches`"),()=>Ve("Archive LifeCycle")]}),await Be({name:"Clean",attempts:Je.clean,steps:[()=>Sr(r,["static","public","dist"]),()=>Ve("Clean LifeCycle")]}),await Be({name:"HealthCheck",attempts:1,steps:[()=>{$r.default.existsSync(np)||xs(bf)}]})}}async function Tb(){try{let t=await _s(zo);$e(`All domains rendered in ${t}s.`,"",1,0),process.exit(0)}catch(t){console.log(t),process.exit(1)}}0&&(module.exports={startRender});
|
|
73
|
+
\rAllow: /`}))||[]}catch(e){console.warn(`${this.constructor.name}: ${e.message}`)}}async writeFiles(e){let{__cx:r}=Pv.paths(e),n=ro.default.join(r,"dist");await this.getRobots();let i=this.robots.find(({path:s})=>s===`/${e}`);if(!i){console.log(`Robots not found for ${e}`);return}if(to.default.existsSync(n)){let s=ro.default.join(n,"robots.txt");to.default.writeFileSync(s,i?.content)}else console.log(`${n} not found`)}},oh=new no;var Kh=A(require("node:path")),Qh=A(nt()),Zh=A(is());var ah=A(nt());ah.default.config();var io=process.env.API_URL,ft=`${io}/site/`,rt={GET_ALL:`${io}/sites/all`,GET_PAGE:[`${io}/page/`,""],INFO:[`${ft}`,"/all"],LANGUAGES:[`${ft}`,"/languages"],BUILD_START:[`${ft}`,"/build/start"],BUILD_END:[`${ft}`,"/build/end"],GET_DISTRIBUTOR_DATA:[`${ft}`,"/distributor"],GET_SITEMAP:[`${ft}`,"/sitemap"],SOCIALS:[`${ft}`,"/socials"],GET_PAGES:[`${ft}`,"/pages?pagination=false"]},me=class{static async getAll(){let{GET_ALL:e}=rt;return await Oe({endpoint:e})}static async getPage(e,r){let{GET_PAGE:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getInfo(e,r=""){let{INFO:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getLanguages(e,r=""){let{LANGUAGES:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}static async startSiteRender(e){let{BUILD_START:[r,n]}=rt;return await Oe({endpoint:`${r}${e}${n}`})}static async endSiteRender(e,r){let{BUILD_END:[n,i]}=rt;return await Or({endpoint:`${n}${e}${i}`,body:r})}static async getDistributorData(e,r,n,i,s){let{GET_DISTRIBUTOR_DATA:[o,a]}=rt,c=i||e.site,d=s||e.language;return await Or({endpoint:`${o}${c}${a}`,body:r,headers:{lang:d},cacheKey:n})}static async getSitemap(e){let{GET_SITEMAP:[r,n]}=rt;return await Oe({endpoint:`${r}${e}${n}`})}static async getSocials(e,r=""){let{SOCIALS:[n,i]}=rt;return await Oe({endpoint:`${n}${e}${i}`,cacheKey:r})}};var Vn=class{static getBody(e,r){let{order:n,sources:i,quantity:s,mode:o,fixed:a,fullRelations:c=!1,allLanguages:d=!1,preferenceLanguage:u=!1,referenceId:p}=e;return o==="auto"?{mode:o,order:n,sources:i,quantity:s,fullRelations:c,allLanguages:d,preferenceLanguage:u}:o==="manual"?{mode:o,fixed:a,fullRelations:c}:o==="navigation"?{mode:o,order:n,quantity:s,fullRelations:c,referenceId:p||r?.structuredDataContent?.id}:(console.log(`Error: Distribuidor mode: ${o} is not recognized on page ${r?.id}.`),e)}static async fetchContentTypeData(e){let{page:r,component:{data:n},cacheKey:i}=e;if(!n)return $e(`Error: Page ${r.id} has \`hasDistributorData: true\` but it doesn't have a \`data\` prop`,"No data in ReferenceField"),[];if(Array.isArray(n.sources)&&n.sources.length<1)return $e(`Warning: Page with id: ${r.id} has a ReferenceField with empty \`data.sources\``,"Empty data.sources in ReferenceField"),[];let{site:s,lang:o}=n;!n.sources&&n.mode==="auto"&&$e(`Warning: Page with id: ${r.id} has a ReferenceField with \`undefined\` \`data.sources\``,"undefined data.sources in ReferenceField");let a=this.getBody(n,r);return await me.getDistributorData(r,a,i,s,o)}static async getDistributorData({page:e,cacheKey:r=""}){try{let{template:n}=e,i=async(a,c=1)=>{if(!(!a||typeof a!="object")&&JSON.stringify(a).includes('"hasDistributorData":true'))for(let d in a){if(d==="queriedItems")continue;let p=a[d];!p||typeof p!="object"||(p.hasDistributorData&&(p.queriedItems=await this.fetchContentTypeData({page:e,cacheKey:r,component:p})),await i(p,c+1))}};return await(async a=>(await i([a]),a))(n)}catch(n){console.error(`Error en get distributor ${n}`),process.exit(1)}}};var Yn=class{_defaultHeaders;_defaultFooters;_navigations;constructor(){this._navigations={footers:[],headers:[]},this._defaultHeaders={},this._defaultFooters={}}set navigations(e){this._navigations=e,this._defaultFooters=this.getDefaultFooters(),this._defaultHeaders=this.getDefaultHeaders()}get navigations(){return this._navigations}getDefaultFooters(){return[...this.navigations.footers].filter(i=>!!i.setAsDefault).reduce((i,s)=>{let{language:o}=s;return{...i,[o]:s}},{})}getDefaultHeaders(){return[...this.navigations.headers].filter(i=>!!i.setAsDefault).reduce((i,s)=>{let{language:o}=s;return{...i,[o]:s}},{})}getRightLanguage(e,r,n){if(!e||!r)return null;let s=e.find(o=>o.language===n&&o.navigationLanguages?.find(a=>a.navigationId===r))||e.find(o=>o.id===r);return s?{...s}:null}getPageHeader(e,r){return this.getRightLanguage(this.navigations.headers,e,r)}getPageFooter(e,r){return this.getRightLanguage(this.navigations.footers,e,r)}getPageNavigations(e){let{header:r,footer:n,language:i,template:{templateType:s},templateConfig:{defaultHeader:o,defaultFooter:a,templates:c}}=e,d=b=>{let w=b.find(x=>typeof x=="number");return typeof w=="number"?w:null},u=d([r,c?.[s]?.defaultHeader,o]),p=d([n,c?.[s]?.defaultFooter,a]),g=u?this.getPageHeader(u,i):u===0?null:this._defaultHeaders[i],m=p?this.getPageFooter(p,i):p===0?null:this._defaultFooters[i];return{header:g,footer:m}}};var so=class{baseURL;settings;ENDPOINTS;constructor(){this.baseURL=process.env.API_URL,this.settings={cloudinaryName:"",useMetaTitle:!1,useMetaKeywords:!1,showBasicMetaRobots:!1,avoidHrefLangsOnCanonicals:!1,avoidSelfReferenceCanonicals:!1,avoidHrefLangXDefault:!1,avoidDebugMetas:!1},this.ENDPOINTS={settings:`${this.baseURL}/settings`,resetRender:`${this.baseURL}/debug/reset-render`}}async getAll(){let{settings:e}=this.ENDPOINTS,r=await Oe({endpoint:e});this.settings=r}async resetRender(){let{resetRender:e}=this.ENDPOINTS;await Or({endpoint:e})}},oo=new so;var lh=A(nt());lh.default.config();var Dv=25;function Ov({socialTitle:t,socialDescription:e,socialImage:r}){return{type:"website",title:t,description:e,image:r?ws(r,1280,768):"",twitterImage:r?ws(r,1280,768):""}}function Iv(t){let{title:e,metaTitle:r,metaDescription:n,canonicalURL:i,locale:s,url:o,isIndexed:a,follow:c,metasAdvanced:d,pageLanguages:u,fullUrl:p,metaKeywords:g}=t,m=d?.split(",").filter(Boolean).map(b=>b.trim().toLowerCase())||[];return{title:(r||e||"").trim(),description:n,canonical:i&&i.trim()&&i!==p?i.trim():a?p:void 0,locale:s,url:o,index:a?"index":"noindex",follow:c?"follow":"nofollow",translate:m.includes("notranslate")?"notranslate":"",metasAdvanced:m.filter(b=>b!=="notranslate").join(),pageLanguages:u,metaKeywords:g?.filter(Boolean).map(b=>b.replace(/"/g,"'")).join(", ")}}async function co(t,e){let{id:r,title:n,fullPath:i,language:s,breadcrumb:o,socialDescription:a,socialImage:c,socialTitle:d}=t,{baseUrl:u,cloudinaryName:p,griddoVersion:g,siteLangs:m,siteMetadata:b,siteOptions:w,siteScript:x,siteSlug:F,socials:j,theme:B,navigations:{header:L,footer:V}}=e;t.breadcrumb=o,t.siteSlug=F,t.apiUrl=u,t.publicApiUrl=e.publicBaseUrl,t.instance=e.instance;let Te=m.find(({id:I})=>I===t?.language)?.locale.replace(/_/g,"-"),Z=Iv(t),D=Ov({socialDescription:a,socialImage:c,socialTitle:d}),q=i.compose,k=new Date().toString();return{path:q,size:void 0,context:{id:r,title:n,fullPath:i,locale:Te,languageId:s,theme:B,siteMetadata:b,pageMetadata:Z,openGraph:D,socials:j,siteLangs:m,cloudinaryName:p,siteOptions:w,griddoVersion:g,renderDate:k,siteScript:x,header:L,footer:V,page:t}}}async function fh(t,e){return await co(t,e)}async function dh({page:t,pages:e,isRoot:r=!1,defaultLang:n,template:i,totalQueriedItems:s},o){let a=e.map(async(c,d)=>{let u=d===0,p=d+1,{domainUrl:g,compose:m}=t.fullPath,b={...t,id:parseInt("-"+t.id+d),fullPath:{...t.fullPath,compose:ao(m,p,{addEndingSlash:!0})},fullUrl:ao(t.fullUrl,p,{addEndingSlash:!0}),slug:ao(t.slug,p),title:uh(t.title,p),metaTitle:uh(t.metaTitle||"",p),disableHrefLangs:p>1,template:{...i,isFirstPage:u,pageNumber:p,totalPages:e.length,baseLink:`${g}${m}`,queriedItems:c,totalQueriedItems:s?.length},isRoot:r,defaultLang:n};return await co(b,o)});return Promise.all(a)}function hh(t,e){let{multiPageElements:r,...n}=t,i=JSON.parse(JSON.stringify(r));i.find(({sectionSlug:o})=>o==="/")||i.push({});let s=i.map(async(o,a)=>{let c=JSON.parse(JSON.stringify(n)),{sectionSlug:d="/",title:u="",metaTitle:p="",metaDescription:g=""}=o,m=typeof u=="string"?u:u.content,b=c.fullPath.compose||"",w=c.fullUrl.endsWith("/")?c.fullUrl.slice(0,-1):c.fullUrl,x=d?.replace(/\//g,""),j=d==="/"?x:x+"/",B=b.endsWith("/")?"":"/",L=`${b}${B}${j}`;return m.trim()&&(c.title=m),g.trim()&&(c.metaDescription=g),c.id=parseInt("-"+c.id+a),c.fullUrl=`${w}/${j}`,c.fullPath.compose=L,c.slug=L,c.template.activeSectionSlug=d,c.template.activeSectionBase=w,c.metaTitle=p.trim()||m.trim()||c.metaTitle,await co(c,e)});return Promise.all(s)}function ph(t){return new Promise(r=>{let n=(i,s=0)=>{if(!(!i||typeof i!="object")){for(let o in i){let a=i[o],c=a||typeof a=="object",d=JSON.stringify(a).includes('"hasGriddoMultiPage":true');if(!c||!d)continue;let{component:u,hasGriddoMultiPage:p,elements:g}=a;u&&p&&r(g||[]),n(a,s+1)}s||r(null)}};n([t])})}function Fv(t,e,r){return e?.slice(t*(r-1),t*r)}function Av(t,e){let r=Math.ceil(e.length/t)||1;return Array.from({length:r},(i,s)=>s+1)?.map(i=>Fv(t,e,i))}function mh(t){let e=t.queriedItems||[],r=t?.itemsPerPage||Dv;return Av(r,e)}function ch(t){return t.replace(/\/+$/,"/")}function ao(t,e,r){let n=t.endsWith("/")?"":"/",i=r?.addEndingSlash?"/":"";return e<=1?ch(`${t}${i}`):ch(`${t}${n}${e}${i}`)}function uh(t,e){return!t||e<=1?t:`${t} - ${e}`}var It=A(require("node:path")),Lr=A(yt()),Ho=A($h());var xb=process.env.API_URL,Eb=!!process.env.GRIDDO_RENDER_ALL_SITES||!!process.env.updateAllSites,ir=process.env.GRIDDO_RENDER_SITE&&parseInt(process.env.GRIDDO_RENDER_SITE)||process.env.testSite&&parseInt(process.env.testSite),Bh=(process.env.GRIDDO_RENDER_PAGES||process.env.testPage||"").split(",").map(t=>parseInt(t)).filter(Boolean),Xh=te();async function Gh(t){console.info(`API URL ${xb}`),await tt.login();let e=await me.getAll(),r=Eb?e.filter(s=>!ir||s.id===ir):e.filter(s=>ir?s.id===ir:!!s.shouldBeUpdated);if(r.length)for(let s of r){let{items:o}=await me.getLanguages(s.id);s.domains=o.filter(a=>a.domain&&(a.domain.slug===t||a.domain.slug===`/${t}`)).map(a=>({[a.id]:`${a.domain.slug}${a.path}`}))}let n=r.filter(s=>ir?s.id===ir:!!s.isPublished&&s.domains.length>0),i=r.filter(s=>!s.isPublished&&s.shouldBeUpdated);return{sitesToPublish:n,sitesToUnpublish:i}}async function Hh(t){for(let e of t){let r=await me.startSiteRender(e.id),{siteHash:n}=r,i={siteHash:n,publishHashes:[],unpublishHashes:[]};await me.endSiteRender(e.id,i)}}async function zh(t){let e=await me.startSiteRender(t),r=await me.getInfo(t),n=await me.getLanguages(t),i=await me.getSocials(t),s=n.items,o=s.find(b=>b.isDefault),{siteHash:a,unpublishHashes:c,publishIds:d}=e,{headers:u,footers:p}=r,g=Bh.length?Bh.filter(b=>d.includes(b)):d;return{siteInfo:r,validPagesIds:g,siteHash:a,unpublishHashes:c,siteLangs:s,defaultLang:o,headers:u,footers:p,socials:i}}async function Wh(){let{__cx:t}=Xh.paths(),{buildProcessData:e}=await ls(),r=await tt.login(),n=Object.keys(e).map(s=>({...e[s],siteId:parseInt(s)})),i={authControl:r,sites:n};Lr.default.writeFileSync(It.default.join(t,"dist","__build-report__.json"),JSON.stringify(i)),_t(`Build report saved for ${n.length} site(s)`)}async function Jh(){let{sitesToPublish:t}=await ls(),{__cx:e}=Xh.paths(),r=It.default.join(e,"dist");for(let n of t){let{id:i,languages:s}=n;for(let o of s){tt.headers&&(tt.headers.lang=o.id.toString());let a=await me.getSitemap(i);if(!a)continue;let{items:c,url:{home:d,domain:u}}=a;if(!d)continue;let p=n.domains.find(j=>Object.keys(j)[0]==o.id.toString());if(!p)continue;let g=Object.values(p)[0],m=[],b=Object.keys(c),w=It.default.join(r,g.replace(u,""));for(let j of b){let B=c[j];if(!B.length)continue;let L=(0,Ho.parse)("urlset",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9","xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation":"http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"},url:B}),V=`/sitemap-${j.toLowerCase()}.xml`,ce=It.default.join(w,V);Uh(ce,L),m.push(`${d.endsWith("/")?d.slice(0,-1):d}${V}`)}if(!m.length)continue;let x=(0,Ho.parse)("sitemapindex",{"@":{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9"},sitemap:m.map(j=>({loc:j}))}),F=It.default.join(w,"sitemap.xml");Uh(F,x)}}}function Uh(t,e){try{let r=It.default.dirname(t);Lr.default.existsSync(r)||Lr.default.mkdirSync(r,{recursive:!0}),Lr.default.writeFileSync(t,e)}catch(r){console.error(`Error saving file: ${r}`)}}var Vh=te();Qh.default.config();var Cb=process.env.API_URL,Pb=process.env.GRIDDO_REACT_APP_INSTANCE||process.env.REACT_APP_INSTANCE,Yh=parseInt(process.env.GRIDDO_API_CONCURRENCY_COUNT||"10"),Db=process.env.PUBLIC_API_URL,Ob=new Date().valueOf().toString();async function ep(t){Bl(),console.info(`API calls with ${Yh} threads`);let{__cx:e}=Vh.paths(),{griddoVersion:r}=Vh,n=Kh.default.join(e,"store");try{let i=[],s={},{sitesToPublish:o,sitesToUnpublish:a}=await Gh(t);await oo.getAll(),o.length||a.length||(console.warn("There are no sites to update"),process.exit(0)),console.info(`Sites to publish: ${bs(o)}`),console.info(`Sites to unpublish: ${bs(a)}`),await Hh(a);for(let c of o){let{id:d,slug:u,theme:p,favicon:g,changedPages:m=[],pages:b=[]}=c,{siteInfo:w,validPagesIds:x,siteHash:F,unpublishHashes:j,siteLangs:B,defaultLang:L,headers:V,footers:ce,socials:Te}=await zh(d),{cloudinaryName:Z,useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O}=oo.settings;s[d]={siteHash:F,unpublishHashes:j,publishHashes:[]};let U=new Yn;U.navigations={headers:V,footers:ce},c.languages=B;let M=Qd(d,F),P=w.siteScript,R={siteUrl:w.slug,title:w.name,favicon:g},He={baseUrl:Cb,publicBaseUrl:Db,instance:Pb,siteSlug:u,theme:p,siteMetadata:R,socials:Te,siteLangs:B,cloudinaryName:Z,griddoVersion:r,siteOptions:{useMetaTitle:D,useMetaKeywords:q,showBasicMetaRobots:k,avoidHrefLangsOnCanonicals:z,avoidSelfReferenceCanonicals:I,avoidHrefLangXDefault:G,avoidDebugMetas:O},siteScript:P};_t(`${c.name} site`);let Ke=async h=>{let f=[],v=await me.getPage(h,M);if(!v)return;i.push(h);let S=JSON.parse(JSON.stringify(He));S.navigations=U.getPageNavigations(v);let _=await Vn.getDistributorData({page:v,cacheKey:Ob}),N=await ph(_),X=v?.mode==="list",W=!X&&N,xe=!W&&!X;if(X){let le={page:v,pages:mh(_),isRoot:!1,defaultLang:L,template:_,totalQueriedItems:_.queriedItems};f=await dh(le,S)}if(W){let le=v;le.template=_,le.multiPageElements=N,le.defaultLang=L,f=await hh(le,S)}if(xe){let le=v;le.template=_,le.defaultLang=L,f=[await fh(le,S)]}v.hash!==null&&s[d].publishHashes.push(v.hash),Xl(f)},{pagesMissingInStore:ue,pagesToDeleteFromStore:ge,pagesToWriteToStore:pt}=await Gl(n,{sitesToPublish:o,pages:b,validPagesIds:x,changedPages:m});Cn(ge),$(`Store site: ${c.name}`),$(`${x.length} valid pages from API`),$(`changed ${m.length} pages from API`),$(`deleted ${ge.length} pages from store`),$(`missing ${ue.length} pages in store`),$(`write ${pt.length} pages to store`);let Se=(0,Zh.default)(Yh),l=pt.map(h=>Se(()=>Ke(h)));await Promise.all(l)}Ul(n,{buildProcessData:s,createdPages:i,sitesToPublish:o})}catch(i){console.error(i.message),process.exit(1)}}async function tp(t){Jd(),await ep(t),ff()}var Ib=process.env.API_URL,Fb={GET_ALL:`${Ib}/domains`},pi=class{static async getAll(){let{GET_ALL:e}=Fb;return await Oe({endpoint:e})}};async function rp(){await tt.login();let t=await pi.getAll();return $(`Getting domains slugs (${t.length})`),Ab(t)}function Ab(t){let e=t.filter(({slug:r})=>!!r).map(({slug:r})=>r.replace("/",""));return[...new Set(e)]}var ip=te(),{__cx:Rb}=ip.paths(),np=sr.default.join(Rb,".render-sentinel");async function zo(){lf("gatsby"),$r.default.writeFileSync(np,new Date().toISOString());let t=await rp();t.length||xs(vf);for(let e of t){let{__ssg:r,__exports:n,__caches:i,__cx:s,__components:o}=ip.paths(e);$e(`Initializing render for the domain ${e}`,"",1,0);let a=mf(e),c=!!a&&a!=="";await Be({name:"Clean",attempts:Je.clean,steps:[()=>Sr(s,["store","apiCache","dist"]),()=>$("clean `store`, `apiCache` and `dist` directories from `__cx`"),()=>Sr(r,["dist","public","static",".cache"]),()=>$("clean `dist`, `public`, `static` and `.cache` directories from `__ssg`"),()=>Ve("Clean LifeCycle")]}),await Be({name:"Prepare",attempts:Je.prepare,steps:[()=>Pn([n]),()=>$("create `exports/sites/<domain>` directory"),()=>Pn([i]),()=>$("create `caches/<domain>` directory"),()=>Ve("prepare LifeCycle")]}),await Be({name:"Restore",attempts:Je.restore,steps:[()=>Dn(o,r,["static"]),()=>$("copy `static` directory from `__components` to `__ssg`"),()=>Dn(n,s,["assets"]),()=>$("copy `assets` directory from `__exports` to `__cx`"),()=>Dn(n,r,["dist"]),()=>{$r.default.existsSync(sr.default.join(r,"dist"))&&$r.default.renameSync(sr.default.join(r,"dist"),sr.default.join(r,"public"))},()=>$("rename `__ssg/dist` to `__ssg/public` directory."),()=>Wt(i,s,["apiCache","store"]),()=>$("move `apiCache` and `store` directories from `__caches` to `__cx`"),()=>Wt(i,r,[".cache"]),()=>$("move `.cache` directory from `__caches` to `__ssg`"),()=>Ve("Restore LifeCycle")]}),await Be({name:"Data",attempts:Je.data,steps:[()=>tp(e),()=>Ve("Data LifeCycle")]}),await Be({name:"SSG",attempts:Je.ssg,steps:[()=>gf(a),()=>Ve("SSG LifeCycle")]}),await Be({name:"Relocation",attempts:Je.relocation,steps:[()=>yf(e,c),()=>$("create an `assets` directory from `public`"),()=>Ve("Relocation LifeCycle")]}),await Be({name:"Meta",attempts:Je.meta,steps:[()=>Wh(),()=>$("create build report from `store/metadata/render-info.json`"),()=>oh.writeFiles(e),()=>$("create Robots.txt"),()=>Jh(),()=>$("generate sitemaps"),()=>Ve("Meta LifeCycle")]}),await Be({name:"Archive",attempts:Je.archive,steps:[()=>Vl(),()=>$("remove virtual pages from store (multipage and static list)"),()=>hs(sr.default.join(s,"dist")),()=>$("remove empty site directories from `__cx/dist`"),()=>Wt(s,n,["dist","assets"],{withBackup:!0}),()=>$("move `dist` and `assets` directories from `__cx` to `__exports`"),()=>Wt(s,i,["apiCache","store"]),()=>$("move `apiCache` and `store` directories from `__cx` to `__caches`"),()=>Wt(r,i,[".cache"]),()=>$("move `.cache` directory from `__ssg` to `__caches`"),()=>Ve("Archive LifeCycle")]}),await Be({name:"Clean",attempts:Je.clean,steps:[()=>Sr(r,["static","public","dist"]),()=>Ve("Clean LifeCycle")]}),await Be({name:"HealthCheck",attempts:1,steps:[()=>{$r.default.existsSync(np)||xs(bf)}]})}}async function Tb(){try{let t=await _s(zo);$e(`All domains rendered in ${t}s.`,"",1,0),process.exit(0)}catch(t){console.log(t),process.exit(1)}}0&&(module.exports={startRender});
|
|
@@ -105,10 +105,10 @@ class DistributorService {
|
|
|
105
105
|
const { site, lang } = data;
|
|
106
106
|
|
|
107
107
|
// Infor that the distributor has not dat.sources
|
|
108
|
-
if (!data.sources) {
|
|
108
|
+
if (!data.sources && data.mode === "auto") {
|
|
109
109
|
logBox(
|
|
110
|
-
`Warning: Page with id: ${page.id}
|
|
111
|
-
"
|
|
110
|
+
`Warning: Page with id: ${page.id} has a ReferenceField with \`undefined\` \`data.sources\``,
|
|
111
|
+
"undefined data.sources in ReferenceField"
|
|
112
112
|
);
|
|
113
113
|
}
|
|
114
114
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@griddo/cx",
|
|
3
3
|
"description": "Griddo SSG based on Gatsby",
|
|
4
|
-
"version": "10.6.
|
|
4
|
+
"version": "10.6.1",
|
|
5
5
|
"authors": [
|
|
6
6
|
"Álvaro Sánchez' <alvaro.sanches@secuoyas.com>",
|
|
7
7
|
"Diego M. Béjar <diego.bejar@secuoyas.com>",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@babel/preset-env": "^7.14.5",
|
|
49
49
|
"@babel/preset-react": "^7.14.5",
|
|
50
50
|
"@babel/preset-typescript": "^7.16.5",
|
|
51
|
-
"@griddo/core": "10.6.
|
|
51
|
+
"@griddo/core": "10.6.1",
|
|
52
52
|
"@svgr/webpack": "^5.5.0",
|
|
53
53
|
"babel-loader": "^8.0.6",
|
|
54
54
|
"babel-plugin-transform-runtime": "^6.23.0",
|
|
@@ -119,5 +119,5 @@
|
|
|
119
119
|
"publishConfig": {
|
|
120
120
|
"access": "public"
|
|
121
121
|
},
|
|
122
|
-
"gitHead": "
|
|
122
|
+
"gitHead": "7c09ff5f84d88f828072c1e328345173f2cdf992"
|
|
123
123
|
}
|