@griddo/cx 10.4.9 → 10.4.11
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/create-build-data.js +2 -2
- package/build/index.js +28 -28
- package/exporter/adapters/gatsby/index.ts +1 -1
- package/exporter/cx.config.d.ts +24 -0
- package/exporter/cx.config.js +40 -0
- package/exporter/services/robots.ts +1 -1
- package/exporter/utils/folders.ts +1 -2
- package/exporter/utils/instance.ts +1 -2
- package/exporter/utils/pages.ts +11 -0
- package/exporter/utils/sites.ts +2 -2
- package/exporter/utils/store.ts +1 -1
- package/exporter/utils/temp-utils.ts +4 -16
- package/gatsby-browser.tsx +1 -1
- package/gatsby-node.ts +2 -2
- package/gatsby-ssr.tsx +1 -1
- package/package.json +2 -2
- package/src/components/Head.tsx +1 -1
- package/src/components/template.tsx +1 -1
|
@@ -24,7 +24,7 @@ GFS4: `),console.error(t)});W[se]||(xu=global[se]||[],Eu(W,xu),W.close=function(
|
|
|
24
24
|
\u2502 Access credentials failure \u2502
|
|
25
25
|
\u2502 Check that the login details are correct in your .env file \u2502
|
|
26
26
|
\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F
|
|
27
|
-
`)),process.exit(1)}}},xt=new _i;var Uf=G(mi()),Xf=G(Xr()),Hf=G(St());var xl=G(require("node:crypto")),ut=G(require("node:fs")),Bi=G(require("node:path")),Ui=G(Ft()),un=Bi.default.resolve(__dirname,"./../apiCache"),Sl=`${un}/siteHash.json`;function El(){ut.default.existsSync(un)||ut.default.mkdirSync(un),console.info("Cache initialized")}function Cl(t){let e=xl.default.createHash("sha256");return e.update(JSON.stringify(t)),`${un}/${e.digest("hex")}`}function Pl(t,e){let r=typeof e=="string"?e:JSON.stringify(e),n=Cl(t),i=Bi.default.dirname(n);ut.default.existsSync(i)||ut.default.mkdirSync(i,{recursive:!0}),ut.default.writeFileSync(n,r,"utf8")}function Dl(t){try{let e=Cl(t);return Ui.default.readJSONSync(e,{encoding:"utf-8"})}catch{return null}}function ug(){try{return Ui.default.readJSONSync(Sl,{encoding:"utf-8"})||{}}catch{return{}}}function Ol(t,e){let r=ug(),n=r[t],i=e||n||new Date().valueOf();return i!==n&&(r[t]=i,ut.default.writeFileSync(Sl,JSON.stringify(r),{encoding:"utf-8"})),i.toString()}var zg=G(Xr()),Nf=G(St()),Ue=G(Ft()),Wg=G(gf()),ls=G(qf());var Tf="10.4.
|
|
27
|
+
`)),process.exit(1)}}},xt=new _i;var Uf=G(mi()),Xf=G(Xr()),Hf=G(St());var xl=G(require("node:crypto")),ut=G(require("node:fs")),Bi=G(require("node:path")),Ui=G(Ft()),un=Bi.default.resolve(__dirname,"./../apiCache"),Sl=`${un}/siteHash.json`;function El(){ut.default.existsSync(un)||ut.default.mkdirSync(un),console.info("Cache initialized")}function Cl(t){let e=xl.default.createHash("sha256");return e.update(JSON.stringify(t)),`${un}/${e.digest("hex")}`}function Pl(t,e){let r=typeof e=="string"?e:JSON.stringify(e),n=Cl(t),i=Bi.default.dirname(n);ut.default.existsSync(i)||ut.default.mkdirSync(i,{recursive:!0}),ut.default.writeFileSync(n,r,"utf8")}function Dl(t){try{let e=Cl(t);return Ui.default.readJSONSync(e,{encoding:"utf-8"})}catch{return null}}function ug(){try{return Ui.default.readJSONSync(Sl,{encoding:"utf-8"})||{}}catch{return{}}}function Ol(t,e){let r=ug(),n=r[t],i=e||n||new Date().valueOf();return i!==n&&(r[t]=i,ut.default.writeFileSync(Sl,JSON.stringify(r),{encoding:"utf-8"})),i.toString()}var zg=G(Xr()),Nf=G(St()),Ue=G(Ft()),Wg=G(gf()),ls=G(qf());var Tf="10.4.11";Nf.default.config();var d2=!!process.env.GRIDDO_DEBUG_LOGS&&!!JSON.parse(process.env.GRIDDO_DEBUG_LOGS),Jg=!!process.env.GRIDDO_BUILD_LOGS&&!!JSON.parse(process.env.GRIDDO_BUILD_LOGS)||!!process.env.LOGS&&!!JSON.parse(process.env.LOGS),h2=ls.default.sync(__dirname),p2=ls.default.sync();function jf(t){let e=[];return Ue.default.readdirSync(t).forEach(n=>{let i=`${t}/${n}`;e.push(i)}),e}function ur(t,e="",r=1,n=1){let i=t.split(`
|
|
28
28
|
`).map(b=>b.trim()),s=e?` ${e} `:"",o=e?s.length:0,a=Math.max(...i.map(b=>b.length))+r*2,u=Math.max(a,o),h=`\u2502${" ".repeat(u)}\u2502
|
|
29
29
|
`.repeat(n),c=u,p=`\u256D${s}${"\u2500".repeat(c-o)}\u256E
|
|
30
30
|
`,g=`\u2570${"\u2500".repeat(c)}\u256F`,m=i.map(b=>{let x=" ".repeat(u-b.length-r);return`\u2502${" ".repeat(r)}${b}${x}\u2502
|
|
@@ -52,7 +52,7 @@ ${p}
|
|
|
52
52
|
${g}
|
|
53
53
|
|
|
54
54
|
=============
|
|
55
|
-
`))}var Yg=process.env.API_URL,Qg={GET_ALL:`${Yg}/domains`},bn=class{static async getAll(){let{GET_ALL:e}=Qg;return await Ae({endpoint:e})}};async function Gf(){await xt.login();let t=await bn.getAll();return Zg(t)}function Zg(t){let e=t.filter(({slug:r})=>!!r).map(({slug:r})=>r.replace("/",""));return[...new Set(e)]}var io=G(require("node:path"));var Ye=G(require("node:fs")),zf=G(require("node:fs/promises")),Oe=G(require("node:path")),gs=G(Ft());var ey=G(Ft());async function*ry(t){let e=Oe.default.resolve(t),r=jf(e).filter(n=>Oe.default.extname(n)===".json");for(let n of r)try{let i=await zf.default.stat(n),s=await gs.default.readJSON(n,{encoding:"utf-8"});s.size=i.size/1024,s.path&&(yield s)}catch(i){console.error(`Error: The file ${n} doesn't exist`,i)}}function Wf(t){Ye.default.existsSync(t)||(Ye.default.mkdirSync(t),Ye.default.mkdirSync(Oe.default.resolve(t,"metadata"))),console.info("Store initialized")}function Jf(t,e){Ye.default.writeFileSync(Oe.default.resolve(t,"metadata","render-info.json"),JSON.stringify(e))}function ny(t,e){return iy(t).filter(i=>e.includes(i))}function iy(t){return Ye.default.readdirSync(t).filter(r=>{let n=`${t}/${r}`,i=Ye.default.statSync(n);if(i&&i.isDirectory()||Oe.default.extname(r)!==".json")return!1;let s=Oe.default.basename(r,Oe.default.extname(r));return!isNaN(parseInt(s))}).map(r=>{let n=Oe.default.basename(r,Oe.default.extname(r));return parseInt(n)})}function Vf(t,e){e.forEach(r=>{hs(r,["editorID","parentEditorID"]);let n=`${r.context.page.id}.json`,i=Oe.default.resolve(t,n);gs.default.writeJSONSync(i,r)})}function Kf(t,e){e.length!==0&&e.forEach(r=>{let n=Oe.default.resolve(t,`${r}.json`);try{Ye.default.unlinkSync(n)}catch(i){console.log(`Error removing file ${r}`,i.message)}})}async function Yf(t,e){let{changedPages:r,pages:n,validPagesIds:i,sitesToPublish:s}=e,o=ny(t,n),a=i.filter(m=>!o.includes(m)),u=a.concat(r),h=o.filter(m=>!i.includes(m)),c=Array.from(new Set(u)).filter(m=>!h.includes(m)),p=ry(Oe.default.resolve(__dirname,"../store")),g=[];for await(let m of p){let b=m.context.page.site,x=m.context.page.id;s.map(S=>S.id).includes(b)||g.push(x)}return{pagesInStore:o,pagesMissingInStore:a,pagesToDeleteFromStore:[...h,...g],pagesToWriteToStore:c}}var Nd=G(St()),jd=G(ss());var Qf=G(St());Qf.default.config();var ys=process.env.API_URL,Qe=`${ys}/site/`,Xe={GET_ALL:`${ys}/sites/all`,GET_PAGE:[`${ys}/page/`,""],INFO:[`${Qe}`,"/all"],LANGUAGES:[`${Qe}`,"/languages"],BUILD_START:[`${Qe}`,"/build/start"],BUILD_END:[`${Qe}`,"/build/end"],GET_DISTRIBUTOR_DATA:[`${Qe}`,"/distributor"],GET_SITEMAP:[`${Qe}`,"/sitemap"],SOCIALS:[`${Qe}`,"/socials"],GET_PAGES:[`${Qe}`,"/pages?pagination=false"]},ye=class{static async getAll(){let{GET_ALL:e}=Xe;return await Ae({endpoint:e})}static async getPage(e,r){let{GET_PAGE:[n,i]}=Xe;return await Ae({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getInfo(e,r=""){let{INFO:[n,i]}=Xe;return await Ae({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getLanguages(e,r=""){let{LANGUAGES:[n,i]}=Xe;return await Ae({endpoint:`${n}${e}${i}`,cacheKey:r})}static async startSiteRender(e){let{BUILD_START:[r,n]}=Xe;return await Ae({endpoint:`${r}${e}${n}`})}static async endSiteRender(e,r){let{BUILD_END:[n,i]}=Xe;return await cr({endpoint:`${n}${e}${i}`,body:r})}static async getDistributorData(e,r,n,i,s){let{GET_DISTRIBUTOR_DATA:[o,a]}=Xe,u=i||e.site,h=s||e.language;return await cr({endpoint:`${o}${u}${a}`,body:r,headers:{lang:h},cacheKey:n})}static async getSitemap(e){let{GET_SITEMAP:[r,n]}=Xe;return await Ae({endpoint:`${r}${e}${n}`})}static async getSocials(e,r=""){let{SOCIALS:[n,i]}=Xe;return await Ae({endpoint:`${n}${e}${i}`,cacheKey:r})}};var wn=class{static getBody(e,r){let{order:n,sources:i,quantity:s,mode:o,fixed:a,fullRelations:u=!1,allLanguages:h=!1,preferenceLanguage:c=!1,referenceId:p}=e;return o==="auto"?{mode:o,order:n,sources:i,quantity:s,fullRelations:u,allLanguages:h,preferenceLanguage:c}:o==="manual"?{mode:o,fixed:a,fullRelations:u}:o==="navigation"?{mode:o,order:n,quantity:s,fullRelations:u,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 ur(`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 ur(`Warning: Page with id: ${r.id} has a ReferenceField with empty \`data.sources\``,"Empty data.sources in ReferenceField"),[];let{site:s,lang:o}=n,a=this.getBody(n,r);return await ye.getDistributorData(r,a,i,s,o)}static async getDistributorData({page:e,cacheKey:r=""}){try{let{template:n}=e,i=async(a,u=1)=>{if(!(!a||typeof a!="object")&&JSON.stringify(a).includes('"hasDistributorData":true'))for(let h in a){if(h==="queriedItems")continue;let p=a[h];!p||typeof p!="object"||(p.hasDistributorData&&(p.queriedItems=await this.fetchContentTypeData({page:e,cacheKey:r,component:p})),await i(p,u+1))}};return await(async a=>(await i([a]),a))(n)}catch(n){console.error(`Error en get distributor ${n}`),process.exit(1)}}};var _n=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:u}}=e,h=b=>{let x=b.find(S=>typeof S=="number");return typeof x=="number"?x:null},c=h([r,u?.[s]?.defaultHeader,o]),p=h([n,u?.[s]?.defaultFooter,a]),g=c?this.getPageHeader(c,i):c===0?null:this._defaultHeaders[i],m=p?this.getPageFooter(p,i):p===0?null:this._defaultFooters[i];return{header:g,footer:m}}};var vs=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 Ae({endpoint:e});this.settings=r}async resetRender(){let{resetRender:e}=this.ENDPOINTS;await cr({endpoint:e})}},bs=new vs;var td=G(St());function ws(t,e,r,n="jpg"){let i=typeof t=="string"?t:t?.url;return i?i.split("/")[2].includes("cloudinary.com")?oy(i,`c_fill,w_${e},h_${r}`):sy(i,`f/${n}/w/${e}/h/${r}`):null}function sy(t,e){let r=t.split("/"),n=r.slice(0,-1).join("/"),i=r.slice(-1)[0];return`${n}/${e}/${i}`}function oy(t,e){let r=t.replace("https://",""),n=r.split("/").slice(0,4).join("/"),i=r.replace(n,"");return`https://${n}/${e}${i}`}td.default.config();var ay=JSON.parse(process.env.GRIDDO_EXPORT_STRIP_DOMAIN_FROM_PATH||"false"),uy=25;function cy({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 ly(t){let{title:e,metaTitle:r,metaDescription:n,canonicalURL:i,locale:s,url:o,isIndexed:a,follow:u,metasAdvanced:h,pageLanguages:c,fullUrl:p,metaKeywords:g}=t,m=h?.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:u?"follow":"nofollow",translate:m.includes("notranslate")?"notranslate":"",metasAdvanced:m.filter(b=>b!=="notranslate").join(),pageLanguages:c,metaKeywords:g?.filter(Boolean).map(b=>b.replace(/"/g,"'")).join(", ")}}async function xs(t,e){let{id:r,title:n,fullPath:i,language:s,breadcrumb:o,socialDescription:a,socialImage:u,socialTitle:h}=t,{baseUrl:c,cloudinaryName:p,griddoVersion:g,siteLangs:m,siteMetadata:b,siteOptions:x,siteScript:S,siteSlug:F,socials:N,theme:U,navigations:{header:$,footer:K}}=e;t.breadcrumb=o,t.siteSlug=F,t.apiUrl=c,t.publicApiUrl=e.publicBaseUrl,t.instance=e.instance;let Ie=m.find(({id:I})=>I===t?.language)?.locale.replace(/_/g,"-"),Q=ly(t),D=cy({socialDescription:a,socialImage:u,socialTitle:h}),q=ay?i.compose:`${i.domain}${i.compose}`,k=new Date().toString();return{path:q,size:void 0,context:{id:r,title:n,fullPath:i,locale:Ie,languageId:s,theme:U,siteMetadata:b,pageMetadata:Q,openGraph:D,socials:N,siteLangs:m,cloudinaryName:p,siteOptions:x,griddoVersion:g,renderDate:k,siteScript:S,header:$,footer:K,page:t}}}async function rd(t,e){return await xs(t,e)}async function nd({page:t,pages:e,isRoot:r=!1,defaultLang:n,template:i,totalQueriedItems:s},o){let a=e.map(async(u,h)=>{let c=h===0,p=h+1,{domainUrl:g,compose:m}=t.fullPath,b={...t,fullPath:{...t.fullPath,compose:_s(m,p,{addEndingSlash:!0})},fullUrl:_s(t.fullUrl,p,{addEndingSlash:!0}),slug:_s(t.slug,p),title:ed(t.title,p),metaTitle:ed(t.metaTitle||"",p),disableHrefLangs:p>1,template:{...i,isFirstPage:c,pageNumber:p,totalPages:e.length,baseLink:`${g}${m}`,queriedItems:u,totalQueriedItems:s?.length},isRoot:r,defaultLang:n};return await xs(b,o)});return Promise.all(a)}function id(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 u=JSON.parse(JSON.stringify(n)),{sectionSlug:h="/",title:c="",metaTitle:p="",metaDescription:g=""}=o,m=typeof c=="string"?c:c.content,b=u.fullPath.compose||"",x=u.fullUrl.endsWith("/")?u.fullUrl.slice(0,-1):u.fullUrl,S=h?.replace(/\//g,""),N=h==="/"?S:S+"/",U=b.endsWith("/")?"":"/",$=`${b}${U}${N}`;return m.trim()&&(u.title=m),g.trim()&&(u.metaDescription=g),u.id=parseInt("-"+u.id+a),u.fullUrl=`${x}/${N}`,u.fullPath.compose=$,u.slug=$,u.template.activeSectionSlug=h,u.template.activeSectionBase=x,u.metaTitle=p.trim()||m.trim()||u.metaTitle,await xs(u,e)});return Promise.all(s)}function sd(t){return new Promise(r=>{let n=(i,s=0)=>{if(!(!i||typeof i!="object")){for(let o in i){let a=i[o],u=a||typeof a=="object",h=JSON.stringify(a).includes('"hasGriddoMultiPage":true');if(!u||!h)continue;let{component:c,hasGriddoMultiPage:p,elements:g}=a;c&&p&&r(g||[]),n(a,s+1)}s||r(null)}};n([t])})}function fy(t,e,r){return e?.slice(t*(r-1),t*r)}function dy(t,e){let r=Math.ceil(e.length/t)||1;return Array.from({length:r},(i,s)=>s+1)?.map(i=>fy(t,e,i))}function od(t){let e=t.queriedItems||[],r=t?.itemsPerPage||uy;return dy(r,e)}function Zf(t){return t.replace(/\/+$/,"/")}function _s(t,e,r){let n=t.endsWith("/")?"":"/",i=r?.addEndingSlash?"/":"";return e<=1?Zf(`${t}${i}`):Zf(`${t}${n}${e}${i}`)}function ed(t,e){return!t||e<=1?t:`${t} - ${e}`}var iv=G(Ft()),sv=G(Ad());var ov=process.env.API_URL,av=!!process.env.GRIDDO_RENDER_ALL_SITES||!!process.env.updateAllSites,$t=process.env.GRIDDO_RENDER_SITE&&parseInt(process.env.GRIDDO_RENDER_SITE)||process.env.testSite&&parseInt(process.env.testSite),Rd=(process.env.GRIDDO_RENDER_PAGES||process.env.testPage||"").split(",").map(t=>parseInt(t)).filter(Boolean),y5=JSON.parse(process.env.GRIDDO_EXPORT_STRIP_DOMAIN_FROM_PATH||"false");async function kd(t){console.info(`API URL ${ov}`),await xt.login();let e=await ye.getAll(),r=av?e.filter(s=>!$t||s.id===$t):e.filter(s=>$t?s.id===$t:!!s.shouldBeUpdated);if(r.length)for(let s of r){let{items:o}=await ye.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=>$t?s.id===$t:!!s.isPublished&&s.domains.length>0),i=r.filter(s=>!s.isPublished&&s.shouldBeUpdated);return{sitesToPublish:n,sitesToUnpublish:i}}async function Md(t){for(let e of t){let r=await ye.startSiteRender(e.id),{siteHash:n}=r,i={siteHash:n,publishHashes:[],unpublishHashes:[]};await ye.endSiteRender(e.id,i)}}async function qd(t){let e=await ye.startSiteRender(t),r=await ye.getInfo(t),n=await ye.getLanguages(t),i=await ye.getSocials(t),s=n.items,o=s.find(b=>b.isDefault),{siteHash:a,unpublishHashes:u,publishIds:h}=e,{headers:c,footers:p}=r,g=Rd.length?Rd.filter(b=>h.includes(b)):h;return{siteInfo:r,validPagesIds:g,siteHash:a,unpublishHashes:u,siteLangs:s,defaultLang:o,headers:c,footers:p,socials:i}}Nd.default.config();var uv=process.env.API_URL,cv=process.env.GRIDDO_REACT_APP_INSTANCE||process.env.REACT_APP_INSTANCE,Td=parseInt(process.env.GRIDDO_API_CONCURRENCY_COUNT||"10"),lv=process.env.PUBLIC_API_URL,fv=new Date().valueOf().toString();async function Ld(t,e){console.info(`API calls with ${Td} threads`);try{let r=[],n={},{sitesToPublish:i,sitesToUnpublish:s}=await kd(e);await bs.getAll(),i.length||s.length||(console.warn("There are no sites to update"),process.exit(0)),console.info(`Sites to publish: ${ps(i)}`),console.info(`Sites to unpublish: ${ps(s)}`),await Md(s);for(let o of i){let{id:a,slug:u,theme:h,favicon:c,changedPages:p=[],pages:g=[]}=o,{siteInfo:m,validPagesIds:b,siteHash:x,unpublishHashes:S,siteLangs:F,defaultLang:N,headers:U,footers:$,socials:K}=await qd(a),{cloudinaryName:ve,useMetaTitle:Ie,useMetaKeywords:Q,showBasicMetaRobots:D,avoidHrefLangsOnCanonicals:q,avoidSelfReferenceCanonicals:k,avoidHrefLangXDefault:H,avoidDebugMetas:I}=bs.settings;n[a]={siteHash:x,unpublishHashes:S,publishHashes:[]};let B=new _n;B.navigations={headers:U,footers:$},o.languages=F;let O=Ol(a,x),L=m.siteScript,M={siteUrl:m.slug,title:m.name,favicon:c},P={baseUrl:uv,publicBaseUrl:lv,instance:cv,siteSlug:u,theme:h,siteMetadata:M,socials:K,siteLangs:F,cloudinaryName:ve,griddoVersion:Tf,siteOptions:{useMetaTitle:Ie,useMetaKeywords:Q,showBasicMetaRobots:D,avoidHrefLangsOnCanonicals:q,avoidSelfReferenceCanonicals:k,avoidHrefLangXDefault:H,avoidDebugMetas:I},siteScript:L};Nt(`${o.name} site`);let A=async d=>{let f=[],v=await ye.getPage(d,O);if(!v)return;r.push(d);let _=JSON.parse(JSON.stringify(P));_.navigations=B.getPageNavigations(v);let w=await wn.getDistributorData({page:v,cacheKey:fv}),T=await sd(w),j=v?.mode==="list",z=!j&&T,we=!z&&!j;if(j){let ue={page:v,pages:od(w),isRoot:!1,defaultLang:N,template:w,totalQueriedItems:w.queriedItems};f=await nd(ue,_)}if(z){let ue=v;ue.template=w,ue.multiPageElements=T,ue.defaultLang=N,f=await id(ue,_)}if(we){let ue=v;ue.template=w,ue.defaultLang=N,f=[await rd(ue,_)]}v.hash!==null&&n[a].publishHashes.push(v.hash),Vf(t,f)},{pagesInStore:ke,pagesMissingInStore:Le,pagesToDeleteFromStore:Z,pagesToWriteToStore:ae}=await Yf(t,{sitesToPublish:i,pages:g,validPagesIds:b,changedPages:p});Kf(t,Z);let dt=`Store: ${ke.length} -> ${ke}
|
|
55
|
+
`))}var Yg=process.env.API_URL,Qg={GET_ALL:`${Yg}/domains`},bn=class{static async getAll(){let{GET_ALL:e}=Qg;return await Ae({endpoint:e})}};async function Gf(){await xt.login();let t=await bn.getAll();return Zg(t)}function Zg(t){let e=t.filter(({slug:r})=>!!r).map(({slug:r})=>r.replace("/",""));return[...new Set(e)]}var io=G(require("node:path"));var Ye=G(require("node:fs")),zf=G(require("node:fs/promises")),Oe=G(require("node:path")),gs=G(Ft());var ey=G(Ft());async function*ry(t){let e=Oe.default.resolve(t),r=jf(e).filter(n=>Oe.default.extname(n)===".json");for(let n of r)try{let i=await zf.default.stat(n),s=await gs.default.readJSON(n,{encoding:"utf-8"});s.size=i.size/1024,s.path&&(yield s)}catch(i){console.error(`Error: The file ${n} doesn't exist`,i)}}function Wf(t){Ye.default.existsSync(t)||(Ye.default.mkdirSync(t),Ye.default.mkdirSync(Oe.default.resolve(t,"metadata"))),console.info("Store initialized")}function Jf(t,e){Ye.default.writeFileSync(Oe.default.resolve(t,"metadata","render-info.json"),JSON.stringify(e))}function ny(t,e){return iy(t).filter(i=>e.includes(i))}function iy(t){return Ye.default.readdirSync(t).filter(r=>{let n=`${t}/${r}`,i=Ye.default.statSync(n);if(i&&i.isDirectory()||Oe.default.extname(r)!==".json")return!1;let s=Oe.default.basename(r,Oe.default.extname(r));return!isNaN(parseInt(s))}).map(r=>{let n=Oe.default.basename(r,Oe.default.extname(r));return parseInt(n)})}function Vf(t,e){e.forEach(r=>{hs(r,["editorID","parentEditorID"]);let n=`${r.context.page.id}.json`,i=Oe.default.resolve(t,n);gs.default.writeJSONSync(i,r)})}function Kf(t,e){e.length!==0&&e.forEach(r=>{let n=Oe.default.resolve(t,`${r}.json`);try{Ye.default.unlinkSync(n)}catch(i){console.log(`Error removing file ${r}`,i.message)}})}async function Yf(t,e){let{changedPages:r,pages:n,validPagesIds:i,sitesToPublish:s}=e,o=ny(t,n),a=i.filter(m=>!o.includes(m)),u=a.concat(r),h=o.filter(m=>!i.includes(m)),c=Array.from(new Set(u)).filter(m=>!h.includes(m)),p=ry(Oe.default.resolve(__dirname,"../store")),g=[];for await(let m of p){let b=m.context.page.site,x=m.context.page.id;s.map(S=>S.id).includes(b)||g.push(x)}return{pagesInStore:o,pagesMissingInStore:a,pagesToDeleteFromStore:[...h,...g],pagesToWriteToStore:c}}var Nd=G(St()),jd=G(ss());var Qf=G(St());Qf.default.config();var ys=process.env.API_URL,Qe=`${ys}/site/`,Xe={GET_ALL:`${ys}/sites/all`,GET_PAGE:[`${ys}/page/`,""],INFO:[`${Qe}`,"/all"],LANGUAGES:[`${Qe}`,"/languages"],BUILD_START:[`${Qe}`,"/build/start"],BUILD_END:[`${Qe}`,"/build/end"],GET_DISTRIBUTOR_DATA:[`${Qe}`,"/distributor"],GET_SITEMAP:[`${Qe}`,"/sitemap"],SOCIALS:[`${Qe}`,"/socials"],GET_PAGES:[`${Qe}`,"/pages?pagination=false"]},ye=class{static async getAll(){let{GET_ALL:e}=Xe;return await Ae({endpoint:e})}static async getPage(e,r){let{GET_PAGE:[n,i]}=Xe;return await Ae({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getInfo(e,r=""){let{INFO:[n,i]}=Xe;return await Ae({endpoint:`${n}${e}${i}`,cacheKey:r})}static async getLanguages(e,r=""){let{LANGUAGES:[n,i]}=Xe;return await Ae({endpoint:`${n}${e}${i}`,cacheKey:r})}static async startSiteRender(e){let{BUILD_START:[r,n]}=Xe;return await Ae({endpoint:`${r}${e}${n}`})}static async endSiteRender(e,r){let{BUILD_END:[n,i]}=Xe;return await cr({endpoint:`${n}${e}${i}`,body:r})}static async getDistributorData(e,r,n,i,s){let{GET_DISTRIBUTOR_DATA:[o,a]}=Xe,u=i||e.site,h=s||e.language;return await cr({endpoint:`${o}${u}${a}`,body:r,headers:{lang:h},cacheKey:n})}static async getSitemap(e){let{GET_SITEMAP:[r,n]}=Xe;return await Ae({endpoint:`${r}${e}${n}`})}static async getSocials(e,r=""){let{SOCIALS:[n,i]}=Xe;return await Ae({endpoint:`${n}${e}${i}`,cacheKey:r})}};var wn=class{static getBody(e,r){let{order:n,sources:i,quantity:s,mode:o,fixed:a,fullRelations:u=!1,allLanguages:h=!1,preferenceLanguage:c=!1,referenceId:p}=e;return o==="auto"?{mode:o,order:n,sources:i,quantity:s,fullRelations:u,allLanguages:h,preferenceLanguage:c}:o==="manual"?{mode:o,fixed:a,fullRelations:u}:o==="navigation"?{mode:o,order:n,quantity:s,fullRelations:u,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 ur(`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 ur(`Warning: Page with id: ${r.id} has a ReferenceField with empty \`data.sources\``,"Empty data.sources in ReferenceField"),[];let{site:s,lang:o}=n,a=this.getBody(n,r);return await ye.getDistributorData(r,a,i,s,o)}static async getDistributorData({page:e,cacheKey:r=""}){try{let{template:n}=e,i=async(a,u=1)=>{if(!(!a||typeof a!="object")&&JSON.stringify(a).includes('"hasDistributorData":true'))for(let h in a){if(h==="queriedItems")continue;let p=a[h];!p||typeof p!="object"||(p.hasDistributorData&&(p.queriedItems=await this.fetchContentTypeData({page:e,cacheKey:r,component:p})),await i(p,u+1))}};return await(async a=>(await i([a]),a))(n)}catch(n){console.error(`Error en get distributor ${n}`),process.exit(1)}}};var _n=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:u}}=e,h=b=>{let x=b.find(S=>typeof S=="number");return typeof x=="number"?x:null},c=h([r,u?.[s]?.defaultHeader,o]),p=h([n,u?.[s]?.defaultFooter,a]),g=c?this.getPageHeader(c,i):c===0?null:this._defaultHeaders[i],m=p?this.getPageFooter(p,i):p===0?null:this._defaultFooters[i];return{header:g,footer:m}}};var vs=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 Ae({endpoint:e});this.settings=r}async resetRender(){let{resetRender:e}=this.ENDPOINTS;await cr({endpoint:e})}},bs=new vs;var td=G(St());function ws(t,e,r,n="jpg"){let i=typeof t=="string"?t:t?.url;return i?i.split("/")[2].includes("cloudinary.com")?oy(i,`c_fill,w_${e},h_${r}`):sy(i,`f/${n}/w/${e}/h/${r}`):null}function sy(t,e){let r=t.split("/"),n=r.slice(0,-1).join("/"),i=r.slice(-1)[0];return`${n}/${e}/${i}`}function oy(t,e){let r=t.replace("https://",""),n=r.split("/").slice(0,4).join("/"),i=r.replace(n,"");return`https://${n}/${e}${i}`}td.default.config();var ay=JSON.parse(process.env.GRIDDO_EXPORT_STRIP_DOMAIN_FROM_PATH||"false"),uy=25;function cy({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 ly(t){let{title:e,metaTitle:r,metaDescription:n,canonicalURL:i,locale:s,url:o,isIndexed:a,follow:u,metasAdvanced:h,pageLanguages:c,fullUrl:p,metaKeywords:g}=t,m=h?.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:u?"follow":"nofollow",translate:m.includes("notranslate")?"notranslate":"",metasAdvanced:m.filter(b=>b!=="notranslate").join(),pageLanguages:c,metaKeywords:g?.filter(Boolean).map(b=>b.replace(/"/g,"'")).join(", ")}}async function xs(t,e){let{id:r,title:n,fullPath:i,language:s,breadcrumb:o,socialDescription:a,socialImage:u,socialTitle:h}=t,{baseUrl:c,cloudinaryName:p,griddoVersion:g,siteLangs:m,siteMetadata:b,siteOptions:x,siteScript:S,siteSlug:F,socials:N,theme:U,navigations:{header:$,footer:K}}=e;t.breadcrumb=o,t.siteSlug=F,t.apiUrl=c,t.publicApiUrl=e.publicBaseUrl,t.instance=e.instance;let Ie=m.find(({id:I})=>I===t?.language)?.locale.replace(/_/g,"-"),Q=ly(t),D=cy({socialDescription:a,socialImage:u,socialTitle:h}),q=ay?i.compose:`${i.domain}${i.compose}`,k=new Date().toString();return{path:q,size:void 0,context:{id:r,title:n,fullPath:i,locale:Ie,languageId:s,theme:U,siteMetadata:b,pageMetadata:Q,openGraph:D,socials:N,siteLangs:m,cloudinaryName:p,siteOptions:x,griddoVersion:g,renderDate:k,siteScript:S,header:$,footer:K,page:t}}}async function rd(t,e){return await xs(t,e)}async function nd({page:t,pages:e,isRoot:r=!1,defaultLang:n,template:i,totalQueriedItems:s},o){let a=e.map(async(u,h)=>{let c=h===0,p=h+1,{domainUrl:g,compose:m}=t.fullPath,b={...t,id:parseInt("-"+t.id+h),fullPath:{...t.fullPath,compose:_s(m,p,{addEndingSlash:!0})},fullUrl:_s(t.fullUrl,p,{addEndingSlash:!0}),slug:_s(t.slug,p),title:ed(t.title,p),metaTitle:ed(t.metaTitle||"",p),disableHrefLangs:p>1,template:{...i,isFirstPage:c,pageNumber:p,totalPages:e.length,baseLink:`${g}${m}`,queriedItems:u,totalQueriedItems:s?.length},isRoot:r,defaultLang:n};return await xs(b,o)});return Promise.all(a)}function id(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 u=JSON.parse(JSON.stringify(n)),{sectionSlug:h="/",title:c="",metaTitle:p="",metaDescription:g=""}=o,m=typeof c=="string"?c:c.content,b=u.fullPath.compose||"",x=u.fullUrl.endsWith("/")?u.fullUrl.slice(0,-1):u.fullUrl,S=h?.replace(/\//g,""),N=h==="/"?S:S+"/",U=b.endsWith("/")?"":"/",$=`${b}${U}${N}`;return m.trim()&&(u.title=m),g.trim()&&(u.metaDescription=g),u.id=parseInt("-"+u.id+a),u.fullUrl=`${x}/${N}`,u.fullPath.compose=$,u.slug=$,u.template.activeSectionSlug=h,u.template.activeSectionBase=x,u.metaTitle=p.trim()||m.trim()||u.metaTitle,await xs(u,e)});return Promise.all(s)}function sd(t){return new Promise(r=>{let n=(i,s=0)=>{if(!(!i||typeof i!="object")){for(let o in i){let a=i[o],u=a||typeof a=="object",h=JSON.stringify(a).includes('"hasGriddoMultiPage":true');if(!u||!h)continue;let{component:c,hasGriddoMultiPage:p,elements:g}=a;c&&p&&r(g||[]),n(a,s+1)}s||r(null)}};n([t])})}function fy(t,e,r){return e?.slice(t*(r-1),t*r)}function dy(t,e){let r=Math.ceil(e.length/t)||1;return Array.from({length:r},(i,s)=>s+1)?.map(i=>fy(t,e,i))}function od(t){let e=t.queriedItems||[],r=t?.itemsPerPage||uy;return dy(r,e)}function Zf(t){return t.replace(/\/+$/,"/")}function _s(t,e,r){let n=t.endsWith("/")?"":"/",i=r?.addEndingSlash?"/":"";return e<=1?Zf(`${t}${i}`):Zf(`${t}${n}${e}${i}`)}function ed(t,e){return!t||e<=1?t:`${t} - ${e}`}var iv=G(Ft()),sv=G(Ad());var ov=process.env.API_URL,av=!!process.env.GRIDDO_RENDER_ALL_SITES||!!process.env.updateAllSites,$t=process.env.GRIDDO_RENDER_SITE&&parseInt(process.env.GRIDDO_RENDER_SITE)||process.env.testSite&&parseInt(process.env.testSite),Rd=(process.env.GRIDDO_RENDER_PAGES||process.env.testPage||"").split(",").map(t=>parseInt(t)).filter(Boolean),y5=JSON.parse(process.env.GRIDDO_EXPORT_STRIP_DOMAIN_FROM_PATH||"false");async function kd(t){console.info(`API URL ${ov}`),await xt.login();let e=await ye.getAll(),r=av?e.filter(s=>!$t||s.id===$t):e.filter(s=>$t?s.id===$t:!!s.shouldBeUpdated);if(r.length)for(let s of r){let{items:o}=await ye.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=>$t?s.id===$t:!!s.isPublished&&s.domains.length>0),i=r.filter(s=>!s.isPublished&&s.shouldBeUpdated);return{sitesToPublish:n,sitesToUnpublish:i}}async function Md(t){for(let e of t){let r=await ye.startSiteRender(e.id),{siteHash:n}=r,i={siteHash:n,publishHashes:[],unpublishHashes:[]};await ye.endSiteRender(e.id,i)}}async function qd(t){let e=await ye.startSiteRender(t),r=await ye.getInfo(t),n=await ye.getLanguages(t),i=await ye.getSocials(t),s=n.items,o=s.find(b=>b.isDefault),{siteHash:a,unpublishHashes:u,publishIds:h}=e,{headers:c,footers:p}=r,g=Rd.length?Rd.filter(b=>h.includes(b)):h;return{siteInfo:r,validPagesIds:g,siteHash:a,unpublishHashes:u,siteLangs:s,defaultLang:o,headers:c,footers:p,socials:i}}Nd.default.config();var uv=process.env.API_URL,cv=process.env.GRIDDO_REACT_APP_INSTANCE||process.env.REACT_APP_INSTANCE,Td=parseInt(process.env.GRIDDO_API_CONCURRENCY_COUNT||"10"),lv=process.env.PUBLIC_API_URL,fv=new Date().valueOf().toString();async function Ld(t,e){console.info(`API calls with ${Td} threads`);try{let r=[],n={},{sitesToPublish:i,sitesToUnpublish:s}=await kd(e);await bs.getAll(),i.length||s.length||(console.warn("There are no sites to update"),process.exit(0)),console.info(`Sites to publish: ${ps(i)}`),console.info(`Sites to unpublish: ${ps(s)}`),await Md(s);for(let o of i){let{id:a,slug:u,theme:h,favicon:c,changedPages:p=[],pages:g=[]}=o,{siteInfo:m,validPagesIds:b,siteHash:x,unpublishHashes:S,siteLangs:F,defaultLang:N,headers:U,footers:$,socials:K}=await qd(a),{cloudinaryName:ve,useMetaTitle:Ie,useMetaKeywords:Q,showBasicMetaRobots:D,avoidHrefLangsOnCanonicals:q,avoidSelfReferenceCanonicals:k,avoidHrefLangXDefault:H,avoidDebugMetas:I}=bs.settings;n[a]={siteHash:x,unpublishHashes:S,publishHashes:[]};let B=new _n;B.navigations={headers:U,footers:$},o.languages=F;let O=Ol(a,x),L=m.siteScript,M={siteUrl:m.slug,title:m.name,favicon:c},P={baseUrl:uv,publicBaseUrl:lv,instance:cv,siteSlug:u,theme:h,siteMetadata:M,socials:K,siteLangs:F,cloudinaryName:ve,griddoVersion:Tf,siteOptions:{useMetaTitle:Ie,useMetaKeywords:Q,showBasicMetaRobots:D,avoidHrefLangsOnCanonicals:q,avoidSelfReferenceCanonicals:k,avoidHrefLangXDefault:H,avoidDebugMetas:I},siteScript:L};Nt(`${o.name} site`);let A=async d=>{let f=[],v=await ye.getPage(d,O);if(!v)return;r.push(d);let _=JSON.parse(JSON.stringify(P));_.navigations=B.getPageNavigations(v);let w=await wn.getDistributorData({page:v,cacheKey:fv}),T=await sd(w),j=v?.mode==="list",z=!j&&T,we=!z&&!j;if(j){let ue={page:v,pages:od(w),isRoot:!1,defaultLang:N,template:w,totalQueriedItems:w.queriedItems};f=await nd(ue,_)}if(z){let ue=v;ue.template=w,ue.multiPageElements=T,ue.defaultLang=N,f=await id(ue,_)}if(we){let ue=v;ue.template=w,ue.defaultLang=N,f=[await rd(ue,_)]}v.hash!==null&&n[a].publishHashes.push(v.hash),Vf(t,f)},{pagesInStore:ke,pagesMissingInStore:Le,pagesToDeleteFromStore:Z,pagesToWriteToStore:ae}=await Yf(t,{sitesToPublish:i,pages:g,validPagesIds:b,changedPages:p});Kf(t,Z);let dt=`Store: ${ke.length} -> ${ke}
|
|
56
56
|
ValidPages: ${b.length} -> ${b}
|
|
57
57
|
Changed: ${p.length} -> ${p}
|
|
58
58
|
Deleted/Unpublished: ${Z.length} -> ${Z}
|