@griddo/cx 11.10.4-rc.3 → 11.10.5

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.
@@ -1,32 +1,32 @@
1
- "use strict";var Vo=Object.create;var yt=Object.defineProperty;var Ko=Object.getOwnPropertyDescriptor;var Yo=Object.getOwnPropertyNames;var zo=Object.getPrototypeOf,Xo=Object.prototype.hasOwnProperty;var Qo=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Yo(t))!Xo.call(e,i)&&i!==r&&yt(e,i,{get:()=>t[i],enumerable:!(o=Ko(t,i))||o.enumerable});return e};var h=(e,t,r)=>(r=e!=null?Vo(zo(e)):{},Qo(t||!e||!e.__esModule?yt(r,"default",{value:e,enumerable:!0}):r,e));var Jt=h(require("node:path"));var Zo="\x1B[0m",wt={black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",gray:"\x1B[90m",bold:"\x1B[1m",dim:"\x1B[2m"},w={};for(let e in wt){let t=e;w[t]=r=>`${wt[t]}${r}${Zo}`}var E={FROM_SCRATCH:"FROM_SCRATCH",INCREMENTAL:"INCREMENTAL",IDLE:"IDLE",ERROR:"ERROR",COMPLETED:"COMPLETED"};var Je=h(require("node:fs/promises")),Pe=h(require("node:path"));var Et=h(require("node:path"));var bt=h(require("node:fs"));var Z=h(require("node:path")),Rt=h(require("node:process")),St=require("node:url"),Dt=e=>e instanceof URL?(0,St.fileURLToPath)(e):e;function Pt(e,t={}){let{cwd:r=Rt.default.cwd(),type:o="file",stopAt:i}=t,n=Z.default.resolve(Dt(r)??""),{root:s}=Z.default.parse(n),a=i?Z.default.resolve(n,Dt(i)):s,d=Z.default.isAbsolute(e);for(;;){let p=d?e:Z.default.join(n,e);try{let f=bt.default.statSync(p,{throwIfNoEntry:!1});if(o==="file"&&f?.isFile()||o==="directory"&&f?.isDirectory())return p}catch{}if(n===a||n===s)break;n=Z.default.dirname(n)}}function _t(e){let{cwd:t}=e||{},r=Pt("package.json",{cwd:t});return r&&Et.default.dirname(r)}var{env:R}=process;function K(e){if(!e)return!1;switch(e.trim().toLowerCase()){case"1":case"true":case"yes":case"y":case"on":return!0;default:return!1}}var He=R.GRIDDO_API_URL||R.API_URL,xt=R.GRIDDO_PUBLIC_API_URL||R.PUBLIC_API_URL,It=R.botEmail||R.GRIDDO_BOT_USER,At=R.botPassword||R.GRIDDO_BOT_PASSWORD,Ue=Number.parseInt(R.GRIDDO_API_CONCURRENCY_COUNT||"10"),Mi=K(R.GRIDDO_SKIP_BUILD_CHECKS),ne=K(R.GRIDDO_BUILD_LOGS),Tt=Number.parseInt(R.GRIDDO_BUILD_LOGS_BUFFER_SIZE||"500"),$t=K(R.GRIDDO_SSG_VERBOSE_LOGS),ki=K(R.GRIDDO_SEARCH_FEATURE),We=R.GRIDDO_ASSET_PREFIX||R.ASSET_PREFIX,vt=R.GRIDDO_REACT_APP_INSTANCE||R.REACT_APP_INSTANCE,Hi=K(R.GRIDDO_AI_EMBEDDINGS),Ft=K(R.GRIDDO_VERBOSE_LOGS),Ui=K(R.GRIDDO_USE_DIST_BACKUP),Ot=K(R.GRIDDO_SSG_BUNDLE_ANALYZER);var c=class e{constructor(){}static verbose(...t){Ft&&console.log(w.yellow("verbose"),w.dim(t.join(" ")))}static build(...t){ne&&e.log(...t)}static info(...t){console.log(`${w.blue("info")} ${t.join(" ")}`)}static success(...t){console.log(`${w.green("success")} ${t.join(" ")}`)}static error(...t){console.error(`${w.red("error")} ${t.join(" ")}`)}static warn(...t){console.warn(`${w.yellow("warn")} ${t.join(" ")}`)}static log(...t){console.log(...t)}};var ei=_t({cwd:Pe.default.resolve(__dirname,"../../..")})||"",ti=Pe.default.join(ei,".griddo/cache"),Ct=Pe.default.join(ti,"db.json");async function b(e=""){let t=e||Ct;try{return JSON.parse(await Je.default.readFile(t,"utf-8"))}catch(r){throw c.error(`Failed to read DB file at ${t}:`,r),r}}async function C(e,t=""){let r=t||Ct;try{await Je.default.writeFile(r,JSON.stringify(e,null," "))}catch(o){throw c.error(`Failed to write DB file at ${r}:`,o),o}}var Ke=h(require("node:fs/promises")),Y=h(require("node:path"));var S=h(require("node:fs/promises")),W=h(require("node:path"));var se={error:"ArtifactError",message:"There was a problem with an artifact",expected:"An external process may have has modified or deleted one of the artifacts (files and directories).",hint:"Have there been any recent deployments? These can delete directories from the current render."};var jt=(e,t)=>({error:"LifecycleExecutionError",message:`Exceeded maximum retry attempts (${e}) for ${t} LifeCycle`}),Lt={error:"LoginError",message:"There was a problem logging in to the API",expected:"This happens if the API is currently not working or the credentials are incorrect."};var Gt={error:"RenderUUIDError",message:`Render sentinel file does not exist.
1
+ "use strict";var Jo=Object.create;var ht=Object.defineProperty;var qo=Object.getOwnPropertyDescriptor;var Vo=Object.getOwnPropertyNames;var Ko=Object.getPrototypeOf,zo=Object.prototype.hasOwnProperty;var Yo=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Vo(t))!zo.call(e,i)&&i!==r&&ht(e,i,{get:()=>t[i],enumerable:!(o=qo(t,i))||o.enumerable});return e};var h=(e,t,r)=>(r=e!=null?Jo(Ko(e)):{},Yo(t||!e||!e.__esModule?ht(r,"default",{value:e,enumerable:!0}):r,e));var Wt=h(require("node:path"));var Xo="\x1B[0m",yt={black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",gray:"\x1B[90m",bold:"\x1B[1m",dim:"\x1B[2m"},w={};for(let e in yt){let t=e;w[t]=r=>`${yt[t]}${r}${Xo}`}var E={FROM_SCRATCH:"FROM_SCRATCH",INCREMENTAL:"INCREMENTAL",IDLE:"IDLE",ERROR:"ERROR",COMPLETED:"COMPLETED"};var We=h(require("node:fs/promises")),Pe=h(require("node:path"));var Pt=h(require("node:path"));var Dt=h(require("node:fs"));var Z=h(require("node:path")),Rt=h(require("node:process")),St=require("node:url"),wt=e=>e instanceof URL?(0,St.fileURLToPath)(e):e;function bt(e,t={}){let{cwd:r=Rt.default.cwd(),type:o="file",stopAt:i}=t,n=Z.default.resolve(wt(r)??""),{root:s}=Z.default.parse(n),a=i?Z.default.resolve(n,wt(i)):s,d=Z.default.isAbsolute(e);for(;;){let p=d?e:Z.default.join(n,e);try{let f=Dt.default.statSync(p,{throwIfNoEntry:!1});if(o==="file"&&f?.isFile()||o==="directory"&&f?.isDirectory())return p}catch{}if(n===a||n===s)break;n=Z.default.dirname(n)}}function Et(e){let{cwd:t}=e||{},r=bt("package.json",{cwd:t});return r&&Pt.default.dirname(r)}var{env:S}=process;function K(e){if(!e)return!1;switch(e.trim().toLowerCase()){case"1":case"true":case"yes":case"y":case"on":return!0;default:return!1}}var ke=S.GRIDDO_API_URL||S.API_URL,_t=S.GRIDDO_PUBLIC_API_URL||S.PUBLIC_API_URL,It=S.botEmail||S.GRIDDO_BOT_USER,At=S.botPassword||S.GRIDDO_BOT_PASSWORD,He=Number.parseInt(S.GRIDDO_API_CONCURRENCY_COUNT||"10"),Gi=K(S.GRIDDO_SKIP_BUILD_CHECKS),ne=K(S.GRIDDO_BUILD_LOGS),xt=Number.parseInt(S.GRIDDO_BUILD_LOGS_BUFFER_SIZE||"500"),Tt=K(S.GRIDDO_SSG_VERBOSE_LOGS),Ni=K(S.GRIDDO_SEARCH_FEATURE),Ue=S.GRIDDO_ASSET_PREFIX||S.ASSET_PREFIX,$t=S.GRIDDO_REACT_APP_INSTANCE||S.REACT_APP_INSTANCE,Bi=K(S.GRIDDO_AI_EMBEDDINGS),vt=K(S.GRIDDO_VERBOSE_LOGS),Mi=K(S.GRIDDO_USE_DIST_BACKUP),Ft=K(S.GRIDDO_SSG_BUNDLE_ANALYZER);var c=class e{constructor(){}static verbose(...t){vt&&console.log(w.yellow("verbose"),w.dim(t.join(" ")))}static build(...t){ne&&e.log(...t)}static info(...t){console.log(`${w.blue("info")} ${t.join(" ")}`)}static success(...t){console.log(`${w.green("success")} ${t.join(" ")}`)}static error(...t){console.error(`${w.red("error")} ${t.join(" ")}`)}static warn(...t){console.warn(`${w.yellow("warn")} ${t.join(" ")}`)}static log(...t){console.log(...t)}};var Qo=Et({cwd:Pe.default.resolve(__dirname,"../../..")})||"",Zo=Pe.default.join(Qo,".griddo/cache"),Ot=Pe.default.join(Zo,"db.json");async function R(e=""){let t=e||Ot;try{return JSON.parse(await We.default.readFile(t,"utf-8"))}catch(r){throw c.error(`Failed to read DB file at ${t}:`,r),r}}async function C(e,t=""){let r=t||Ot;try{await We.default.writeFile(r,JSON.stringify(e,null," "))}catch(o){throw c.error(`Failed to write DB file at ${r}:`,o),o}}var Ve=h(require("node:fs/promises")),z=h(require("node:path"));var b=h(require("node:fs/promises")),W=h(require("node:path"));var se={error:"ArtifactError",message:"There was a problem with an artifact",expected:"An external process may have has modified or deleted one of the artifacts (files and directories).",hint:"Have there been any recent deployments? These can delete directories from the current render."};var Ct=(e,t)=>({error:"LifecycleExecutionError",message:`Exceeded maximum retry attempts (${e}) for ${t} LifeCycle`}),Lt={error:"LoginError",message:"There was a problem logging in to the API",expected:"This happens if the API is currently not working or the credentials are incorrect."};var jt={error:"RenderUUIDError",message:`Render sentinel file does not exist.
2
2
  The rendering UUID cannot be read safely.
3
3
  There was probably an instance deployment during the render, and files were deleted.
4
4
 
5
- The files generated in this render will not be published.`},Nt={error:"WriteToStoreError",message:"There was an error writing a file to the Store directory",hint:"There may be an issue such as lack of space or permissions preventing the file from being written."};async function qe(e){if(!await y(e))return;let t=(await S.default.readdir(e,{withFileTypes:!0})).filter(r=>r.isDirectory());for(let r of t){let o=W.default.join(e,r.name);await ri(o)&&await S.default.rm(o,{recursive:!0})}}async function Bt(e,t){for(let r of e)try{await y(r)||(await S.default.mkdir(r,{recursive:!0,...t}),c.verbose(`create directory: ${r}`))}catch(o){A(se,o)}}async function Mt(e,t,r,o={withBackup:!1}){let{withBackup:i}=o;for(let n of r){let s=W.default.join(e,n),a=W.default.join(t,n);if(!await y(s)){c.info(`(Maybe first render) Source directory does not exist: ${s}`);continue}i&&(await Ut(a),c.verbose(`create backup: ${a}`));try{await y(a)&&(await S.default.rm(a,{recursive:!0,force:!0}),c.verbose(`clean destination: ${a}`)),await S.default.cp(s,a,{recursive:!0,preserveTimestamps:!0}),c.verbose(`copy: ${s} to ${a}`),i&&(await Ht(a),c.verbose(`delete backup: ${a}`))}catch(d){i&&(await kt(a),c.verbose("Backup has been restored.")),A(se,d)}}}async function ee(e,t,r,o){let{override:i,withBackup:n}=o||{};for(let s of r){let a=W.default.join(e,s),d=W.default.join(t,s);if(await y(a)){n&&await Ut(d);try{i&&await y(d)&&await S.default.rm(d,{recursive:!0,force:!0}),await S.default.rename(a,d),c.verbose(`moved: ${a} to ${d}`),n&&await Ht(d)}catch(p){n&&(await kt(d),c.info("Backup has been restored.")),A(se,p)}}}}async function ae(e){for(let t of e)try{await S.default.rm(t,{recursive:!0,force:!0}),c.verbose(`artifact removed: ${t}`)}catch(r){A(se,r)}}async function kt(e,t="-BACKUP"){let r=e+t;try{await S.default.rename(r,e),c.info(`Backup ${r} has been restored`)}catch{throw new Error(`Error while delete ${r} backup`)}}async function Ht(e,t="-BACKUP"){let r=e+t;if(await y(r))try{await S.default.rm(r,{recursive:!0,force:!0}),c.verbose(`Backup ${r} has been deleted`)}catch{throw new Error(`Error while delete ${r} backup`)}}async function Ut(e,t="-BACKUP"){let r=e+t;if(await y(e)){if(await y(r)){c.warn(`Destination ${r} already exists`);return}try{await S.default.rename(e,r),c.verbose(`Backup of ${e} has been created in ${r}`)}catch(o){c.error(`Error while coping ${e} to ${r} backup`),A(se,o)}}}async function ri(e){let t=(await S.default.readdir(e,{withFileTypes:!0,recursive:!0})).filter(o=>o.isFile()&&!W.default.basename(o.name).startsWith(".")),r=t.filter(o=>o.name.endsWith(".xml"));if(t.length===r.length)return!0}async function Ve(e){try{if(!(await S.default.stat(e)).isDirectory())return;let r;try{r=await S.default.readdir(e)}catch(i){if(i.code==="ENOENT"){c.warn(`The directory "${e}" does not exist, skipping it.`);return}throw c.error(`Error al leer el directorio "${e}":`,i),i}for(let i of r){let n=W.default.join(e,i);await Ve(n)}if((await S.default.readdir(e)).length===0)try{await S.default.rmdir(e),c.verbose(`Remove empty directory: ${e}`)}catch(i){i.code==="ENOENT"?c.warn(`El directorio "${e}" ya no existe. Posiblemente fue borrado por otra operaci\xF3n.`):c.error(`Error al borrar el directorio "${e}":`,i)}}catch(t){if(t.code==="ENOENT")c.warn(`The directory "${e}" does not exist or has already been processed.`);else throw c.error(`General error general while processing "${e}":`,t),t}}async function y(e){try{return await S.default.access(e),!0}catch{return!1}}async function*pe(e,t){let r=await S.default.opendir(e);for await(let o of r){let i=W.default.join(e,o.name);o.isDirectory()?yield*pe(i,t):o.isFile()&&o.name.endsWith(t)&&(yield i)}}async function Wt(e){let t=await b(),{exportsDir:r,exportsDirBackup:o}=t.paths;c.info(`Cleaning exports dir for the domain ${e}`),c.verbose(`Deleting ${Y.default.join(r,e)}...`),await Ke.default.rm(Y.default.join(r,e),{recursive:!0,force:!0}),await y(Y.default.join(o,e))?(await Ke.default.cp(Y.default.join(o,e),Y.default.join(r,e),{recursive:!0}),c.info(`export-backup dir for the domain ${e} found. Restoring before exit...`),c.verbose(`Copying ${Y.default.join(o,e)} -> ${Y.default.join(r,e)}...`)):c.info("No export-backup found, skipping rollback. Next render will create a new exports dir from scratch...")}var ce=class extends Error{constructor(t){super(t instanceof Error?t.message:String(t)),this.name="InternalCXError",this.stack=t instanceof Error?t.stack:""}};function A(e,t){let{error:r,message:o,expected:i,hint:n}=e,s=c.log(w.red(`[ ${r} ]`)),a=[i,n].filter(Boolean).join(`
5
+ The files generated in this render will not be published.`},Gt={error:"WriteToStoreError",message:"There was an error writing a file to the Store directory",hint:"There may be an issue such as lack of space or permissions preventing the file from being written."};async function Je(e){if(!await y(e))return;let t=(await b.default.readdir(e,{withFileTypes:!0})).filter(r=>r.isDirectory());for(let r of t){let o=W.default.join(e,r.name);await ei(o)&&await b.default.rm(o,{recursive:!0})}}async function Nt(e,t){for(let r of e)try{await y(r)||(await b.default.mkdir(r,{recursive:!0,...t}),c.verbose(`create directory: ${r}`))}catch(o){x(se,o)}}async function Bt(e,t,r,o={withBackup:!1}){let{withBackup:i}=o;for(let n of r){let s=W.default.join(e,n),a=W.default.join(t,n);if(!await y(s)){c.info(`(Maybe first render) Source directory does not exist: ${s}`);continue}i&&(await Ht(a),c.verbose(`create backup: ${a}`));try{await y(a)&&(await b.default.rm(a,{recursive:!0,force:!0}),c.verbose(`clean destination: ${a}`)),await b.default.cp(s,a,{recursive:!0,preserveTimestamps:!0}),c.verbose(`copy: ${s} to ${a}`),i&&(await kt(a),c.verbose(`delete backup: ${a}`))}catch(d){i&&(await Mt(a),c.verbose("Backup has been restored.")),x(se,d)}}}async function ee(e,t,r,o){let{override:i,withBackup:n}=o||{};for(let s of r){let a=W.default.join(e,s),d=W.default.join(t,s);if(await y(a)){n&&await Ht(d);try{i&&await y(d)&&await b.default.rm(d,{recursive:!0,force:!0}),await b.default.rename(a,d),c.verbose(`moved: ${a} to ${d}`),n&&await kt(d)}catch(p){n&&(await Mt(d),c.info("Backup has been restored.")),x(se,p)}}}}async function ae(e){for(let t of e)try{await b.default.rm(t,{recursive:!0,force:!0}),c.verbose(`artifact removed: ${t}`)}catch(r){x(se,r)}}async function Mt(e,t="-BACKUP"){let r=e+t;try{await b.default.rename(r,e),c.info(`Backup ${r} has been restored`)}catch{throw new Error(`Error while delete ${r} backup`)}}async function kt(e,t="-BACKUP"){let r=e+t;if(await y(r))try{await b.default.rm(r,{recursive:!0,force:!0}),c.verbose(`Backup ${r} has been deleted`)}catch{throw new Error(`Error while delete ${r} backup`)}}async function Ht(e,t="-BACKUP"){let r=e+t;if(await y(e)){if(await y(r)){c.warn(`Destination ${r} already exists`);return}try{await b.default.rename(e,r),c.verbose(`Backup of ${e} has been created in ${r}`)}catch(o){c.error(`Error while coping ${e} to ${r} backup`),x(se,o)}}}async function ei(e){let t=(await b.default.readdir(e,{withFileTypes:!0,recursive:!0})).filter(o=>o.isFile()&&!W.default.basename(o.name).startsWith(".")),r=t.filter(o=>o.name.endsWith(".xml"));if(t.length===r.length)return!0}async function qe(e){try{if(!(await b.default.stat(e)).isDirectory())return;let r;try{r=await b.default.readdir(e)}catch(i){if(i.code==="ENOENT"){c.warn(`The directory "${e}" does not exist, skipping it.`);return}throw c.error(`Error al leer el directorio "${e}":`,i),i}for(let i of r){let n=W.default.join(e,i);await qe(n)}if((await b.default.readdir(e)).length===0)try{await b.default.rmdir(e),c.verbose(`Remove empty directory: ${e}`)}catch(i){i.code==="ENOENT"?c.warn(`El directorio "${e}" ya no existe. Posiblemente fue borrado por otra operaci\xF3n.`):c.error(`Error al borrar el directorio "${e}":`,i)}}catch(t){if(t.code==="ENOENT")c.warn(`The directory "${e}" does not exist or has already been processed.`);else throw c.error(`General error general while processing "${e}":`,t),t}}async function y(e){try{return await b.default.access(e),!0}catch{return!1}}async function*pe(e,t){let r=await b.default.opendir(e);for await(let o of r){let i=W.default.join(e,o.name);o.isDirectory()?yield*pe(i,t):o.isFile()&&o.name.endsWith(t)&&(yield i)}}async function Ut(e){let t=await R(),{exportsDir:r,exportsDirBackup:o}=t.paths;c.info(`Cleaning exports dir for the domain ${e}`),c.verbose(`Deleting ${z.default.join(r,e)}...`),await Ve.default.rm(z.default.join(r,e),{recursive:!0,force:!0}),await y(z.default.join(o,e))?(await Ve.default.cp(z.default.join(o,e),z.default.join(r,e),{recursive:!0}),c.info(`export-backup dir for the domain ${e} found. Restoring before exit...`),c.verbose(`Copying ${z.default.join(o,e)} -> ${z.default.join(r,e)}...`)):c.info("No export-backup found, skipping rollback. Next render will create a new exports dir from scratch...")}var ce=class extends Error{constructor(t){super(t instanceof Error?t.message:String(t)),this.name="InternalCXError",this.stack=t instanceof Error?t.stack:""}};function x(e,t){let{error:r,message:o,expected:i,hint:n}=e,s=c.log(w.red(`[ ${r} ]`)),a=[i,n].filter(Boolean).join(`
6
6
  `);throw c.log(`
7
7
  ${s}
8
8
  ${o}
9
9
  ${a}
10
10
 
11
11
  ${w.red("stack")}
12
- ${JSON.stringify(t,null,2)}`),new ce(t)}async function qt(e){try{await e()}catch(t){t instanceof ce?c.error("Internal Griddo RenderError"):t instanceof Error?c.error(t.message):c.error(`An unexpected error occurred ${t}`);try{let o=await b(),{root:i}=o.paths;o.needsRollbackOnError?(c.info("Cleaning exports dir..."),c.verbose(`Deleting ${Jt.default.join(i,"exports")}...`),await Wt(o.currentRenderingDomain)):c.info("No rollback needed, skipping...")}catch{c.info("Early render stage, no db.json created yet...")}let r=await b();throw r.domains[r.currentRenderingDomain].isRendering=!1,r.domains[r.currentRenderingDomain].renderMode=E.ERROR,await C(r),t}}var Vt=h(require("node:fs/promises")),Kt=h(require("node:path"));async function Yt(){let{version:e}=JSON.parse(await Vt.default.readFile(Kt.default.resolve(__dirname,"../..","package.json"),"utf-8")),t=`
12
+ ${JSON.stringify(t,null,2)}`),new ce(t)}async function Jt(e){try{await e()}catch(t){t instanceof ce?c.error("Internal Griddo RenderError"):t instanceof Error?c.error(t.message):c.error(`An unexpected error occurred ${t}`);try{let o=await R(),{root:i}=o.paths;o.needsRollbackOnError?(c.info("Cleaning exports dir..."),c.verbose(`Deleting ${Wt.default.join(i,"exports")}...`),await Ut(o.currentRenderingDomain)):c.info("No rollback needed, skipping...")}catch{c.info("Early render stage, no db.json created yet...")}let r=await R();throw r.domains[r.currentRenderingDomain].isRendering=!1,r.domains[r.currentRenderingDomain].renderMode=E.ERROR,await C(r),t}}var qt=h(require("node:fs/promises")),Vt=h(require("node:path"));async function Kt(){let{version:e}=JSON.parse(await qt.default.readFile(Vt.default.resolve(__dirname,"../..","package.json"),"utf-8")),t=`
13
13
  ${w.yellow(`Griddo Exporter ${e}`)}
14
14
  ${w.dim(`Node ${process.version.slice(1)}`)}
15
- `;c.log(t)}var k=process.env.GRIDDO_API_URL,oi=process.env.GRIDDO_PUBLIC_API_URL,hn=`${k}/ai/embeddings`,yn=`${oi}/alert`,wn=`${k}/domains`,zt=`${k}/sites/all`,Xt=`${k}/page`,Qt=`${k}/login_check`,Dn=`${k}/debug/reset-render`,Zt=`${k}/domains/robots`,bn=`${k}/search`,er=`${k}/settings`,te=`${k}/site/`,tr=[te,"/build/end"],rr=[te,"/build/start"],or=[te,"/distributor"],ir=[te,"/sitemap"],nr=[te,"/all"],sr=[te,"/languages"],ar=[te,"/socials"];var cr={name:"@griddo/cx",description:"Griddo SSG based on Gatsby",version:"11.10.4-rc.3",authors:["Hisco <francis.vega@griddo.io>"],license:"UNLICENSED",homepage:"https://griddo.io",repository:{type:"git",url:"https://github.com/griddo/griddo"},bin:{"griddo-render":"cli.mjs"},exports:{".":{import:"./build/index.js",require:"./build/index.js",types:"./build/index.d.ts"},"./react":{import:"./build/react/index.js",require:"./build/react/index.js",types:"./build/react/index.d.ts"}},scripts:{"// NPM":"",prepare:"yarn run build","// BUILD":"",build:"rm -rf build && sh ./exporter/build.sh","build:debug":"rm -rf build && sh ./exporter/build.sh --debug","// TESTS":"",test:"npm run test:compile && npm run test:create-render-fixtures && node --env-file=.env --test ./build/__tests__/* && npm run test:remove-render-fixtures","test-exporter":"npm run test:compile && node --env-file=.env --test ./build/__tests__exporter__/","test:create-render-fixtures":"node --env-file=.env ./build/__tests__/utils/create-fixtures","test:remove-render-fixtures":"node --env-file=.env ./build/__tests__/utils/remove-fixtures","test:compile":"tsgo --project tsconfig.tests.json","// INFRA SCRIPTS":"","prepare-domains-render":"node ./build/commands/prepare-domains-render","start-render":"node ./build/commands/start-render","end-render":"node ./build/commands/end-render","upload-search-content":"node ./build/commands/upload-search-content","reset-render":"node ./build/commands/reset-render","// ONLY LOCAL SCRIPTS":"","prepare-assets-directory":"node ./build/commands/prepare-assets-directory","create-rollback-copy":"rm -rf ../../exports-backup && cp -r ../../exports ../../exports-backup",render:"npm run build && node --env-file=.env cli.mjs render --root=../..","// LINTER & FORMATTER":"",lint:"biome check --write",format:"biome format --write",flint:"npm run lint && npm run format","ts-lint":"tsgo --noEmit","watch:ts-lint":"tsc --noEmit --watch"},dependencies:{gatsby:"5.15.0"},devDependencies:{"@biomejs/biome":"2.3.4","@types/node":"20.19.4","@typescript/native-preview":"latest",cheerio:"1.1.2",esbuild:"0.25.12","p-limit":"7.2.0",typescript:"5.9.3"},peerDependencies:{"@griddo/core":"11.9.16",react:">=18 <19","react-dom":">=18 <19"},engines:{node:">=20.19"},files:["build","exporter","src","gatsby-browser.tsx","gatsby-config.ts","gatsby-node.ts","gatsby-ssr.tsx","global.d.ts","tsconfig.commands.json","tsconfig.exporter.json","tsconfig.json","plugins","cli.mjs"],publishConfig:{access:"public"},gitHead:"bcd57d7f4aeeb8a1d939c464fd44ac26a5393103"};var Ee={"x-application-id":"griddo-cx","x-client-version":cr.version,"x-client-name":"CX"};var Ye=class{headers;async login(){try{let t=await fetch(Qt,{method:"POST",headers:Object.assign({},Ee,{"Content-Type":"application/json",Connection:"close"}),body:JSON.stringify({username:It,password:At})});if(!t.ok)throw new Error("Error while login in the API");let{token:r}=await t.json();return this.headers={Authorization:`bearer ${r}`,"Cache-Control":"no-store"},this.headers}catch(t){A(Lt,t)}}},J=new Ye;var Fo=h(require("node:path"));async function ni(e){let t=process.hrtime.bigint();await Promise.resolve(e());let r=process.hrtime.bigint();return Number((Number(r-t)/1e9).toFixed(3))}async function v(e,t,r){let{maxRetrys:o=3,skip:i}=r||{};if(i){c.info(`Skiping life-cycle ${e}. Reason: ${i}
16
- `);return}let n=0;for(;n<o;)try{c.info(`start ${e} life-cycle`);let s=await ni(t);c.success(`${e} - ${s}s
15
+ `;c.log(t)}var k=process.env.GRIDDO_API_URL,ti=process.env.GRIDDO_PUBLIC_API_URL,fn=`${k}/ai/embeddings`,un=`${ti}/alert`,gn=`${k}/domains`,zt=`${k}/sites/all`,Yt=`${k}/page`,Xt=`${k}/login_check`,hn=`${k}/debug/reset-render`,Qt=`${k}/domains/robots`,yn=`${k}/search`,Zt=`${k}/settings`,te=`${k}/site/`,er=[te,"/build/end"],tr=[te,"/build/start"];var rr=[te,"/distributor"],or=[te,"/sitemap"],ir=[te,"/all"],nr=[te,"/languages"],sr=[te,"/socials"];var Ke=class{headers;async login(){try{let t=await fetch(Xt,{method:"POST",headers:{"Content-Type":"application/json",Connection:"close"},body:JSON.stringify({username:It,password:At})});if(!t.ok)throw new Error("Error while login in the API");let{token:r}=await t.json();return this.headers={Authorization:`bearer ${r}`,"Cache-Control":"no-store"},this.headers}catch(t){x(Lt,t)}}},J=new Ke;var $o=h(require("node:path"));async function ri(e){let t=process.hrtime.bigint();await Promise.resolve(e());let r=process.hrtime.bigint();return Number((Number(r-t)/1e9).toFixed(3))}async function v(e,t,r){let{maxRetrys:o=3,skip:i}=r||{};if(i){c.info(`Skiping life-cycle ${e}. Reason: ${i}
16
+ `);return}let n=0;for(;n<o;)try{c.info(`start ${e} life-cycle`);let s=await ri(t);c.success(`${e} - ${s}s
17
17
  `);break}catch(s){let a=w.red(` Error in ${e} LifeCycle `),d=w.yellow(`Attempt (${n+1})`);c.log(`
18
18
  ${a} ${d}
19
- `),c.log(s),c.log(),n++}n===o&&A(jt(o,e))}var ue=h(require("node:fs/promises")),fe=h(require("node:path"));var de=[],_e=null,me=null,si=Tt,Xe="render-detail-log.txt",dr=!ne,ze=null;async function lr(){return ze||(ze=await b()),ze}async function pr(){if(dr)return;let e=await lr();_e=fe.default.join(e.paths.root,Xe),await ue.default.rm(_e,{force:!0})}function Qe(e){dr||(de.push(e.toString()),de.length>=si&&mr().catch(t=>{c.error("Background log flush failed:",t)}))}async function mr(){if(me&&await me,de.length===0||!_e)return;me=(async()=>{let t=[...de];de.length=0;try{await ue.default.appendFile(_e,`${t.join(`
19
+ `),c.log(s),c.log(),n++}n===o&&x(Ct(o,e))}var ue=h(require("node:fs/promises")),fe=h(require("node:path"));var de=[],Ee=null,me=null,oi=xt,Ye="render-detail-log.txt",ar=!ne,ze=null;async function cr(){return ze||(ze=await R()),ze}async function dr(){if(ar)return;let e=await cr();Ee=fe.default.join(e.paths.root,Ye),await ue.default.rm(Ee,{force:!0})}function Xe(e){ar||(de.push(e.toString()),de.length>=oi&&lr().catch(t=>{c.error("Background log flush failed:",t)}))}async function lr(){if(me&&await me,de.length===0||!Ee)return;me=(async()=>{let t=[...de];de.length=0;try{await ue.default.appendFile(Ee,`${t.join(`
20
20
  `)}
21
- `)}catch(r){de.unshift(...t),c.error("Error flushing logs:",r)}})();try{await me}finally{me=null}}async function fr(e){await mr();let t=await lr(),r=ai(),o=fe.default.join(t.paths.exportsDir,e,"logs");await ue.default.mkdir(o,{recursive:!0});let i=fe.default.join(t.paths.root,Xe),n=fe.default.join(o,`${r}-${Xe}`);try{await ue.default.cp(i,n)}catch(s){if(s instanceof Error&&"code"in s&&s.code!=="ENOENT")throw s}}function ai(){let e=new Date,t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),n=String(e.getMinutes()).padStart(2,"0"),s=String(e.getSeconds()).padStart(2,"0");return`${t}-${r}-${o}_${i}-${n}-${s}`}var yr=require("node:child_process"),ge=h(require("node:fs/promises")),H=h(require("node:path"));var xe=h(require("node:fs/promises")),z=h(require("node:path"));async function Ie(e){let t=await b(),{sitesToPublish:r,createdPages:o,buildProcessData:i}=t.domains[e].renderInfo||{};if(!r||!o||!i)throw new Error("Build metadata not found");return{buildProcessData:i,createdPages:o,sitesToPublish:r}}async function ur(e,t){let r=await b();r.domains[t]=r.domains[t]||{},r.domains[t].renderInfo=e,await C(r)}async function gr(e,t){let{__root:r}=await D();try{let o=new Set(["editorID","parentEditorID"]);for(let i of t){di(i,o);let n=`${i.context.page.id}.json`,s=z.default.join(r,"store",e,n);await ci(s,JSON.stringify(i))}}catch(o){A(Nt,o)}}async function hr(e,t){let{__root:r}=await D({domain:t}),o=z.default.join(r,"store");if(!await y(o))return;let i=await xe.default.readdir(o),n=e.map(({id:a})=>`${a}`),s=i.filter(a=>!n.includes(a));for(let a of s)await xe.default.rm(z.default.join(o,a),{recursive:!0,force:!0}),c.verbose(`Removed orphan site id: ${a}`)}async function ci(e,t){let r=z.default.dirname(e),o=z.default.extname(e),i=z.default.basename(e,o),n=e,s=1;for(;await y(n);){let a=`${i}-${s}${o}`;n=z.default.join(r,a),s++}await xe.default.writeFile(n,t)}function di(e,t){function r(o){if(!(!o||typeof o!="object"||Array.isArray(o))){for(let i in o)if(Object.hasOwn(o,i))if(t.has(i))delete o[i];else{let n=o[i];typeof n=="object"&&n!==null&&!Array.isArray(n)&&r(n)}}}r(e)}async function wr(e){let{domain:t}=e,r=await b();r.domains[t].isRendering=!0,await C(r);let{__ssg:o}=await D(),i=H.default.join(o,`.render-sentinel-${t}`);await ge.default.writeFile(i,new Date().toISOString())}async function Dr(e){let t=await b();t.domains[e].isRendering=!1,t.currentRenderingDomain=null,t.domains[e].renderMode=E.COMPLETED,await C(t);let{__ssg:r}=await D(),o=H.default.join(r,`.render-sentinel-${e}`);await ge.default.unlink(o)}async function br(e){let{__ssg:t}=await D(),r=H.default.join(t,`.render-sentinel-${e}`);await y(r)||A(Gt)}async function Rr(e){let{basePath:t}=e,r=(0,yr.execSync)("git rev-parse HEAD").toString().trim();await ge.default.writeFile(H.default.join(t,"commit"),r)}async function Sr(e){let t=await b();if(!t.domains[e])throw new Error(w.red(`[!] Error: Domain ${e} not found in DB`));if(!t.domains[e].renderMode)throw new Error(w.red(`[!] Error: Render mode not found for domain ${e}`));return{renderMode:t.domains[e].renderMode,reason:t.domains[e].renderModeReason}}async function D(e){let{domain:t,dbFilePath:r}=e||{},i=(await b(r)).paths;return{__root:i.root,__cache:H.default.join(i.cxCache,t||""),__components:i.components,__cx:i.cx,__sites:i.exportsDir,__exports:H.default.join(i.exportsDir,t||""),__exports_backup:H.default.join(i.exportsDirBackup,t||""),__ssg:i.ssg,__exports_dist:H.default.join(i.exportsDir,t||"","dist")}}async function Ze(){let e=await b();return{griddoVersion:e.griddoVersion,buildReportFileName:e.buildReportFileName}}async function Pr(e){let t=await J.login(),{__root:r}=await D(),{buildReportFileName:o}=await Ze(),{buildProcessData:i}=await Ie(e),n=Object.keys(i).map(d=>({...i[d],siteId:Number.parseInt(d)})),s={authControl:t,sites:n},a=H.default.join(r,"current-dist",o);await ge.default.writeFile(a,JSON.stringify(s)),c.verbose(`build report saved in ${a}`)}var F=h(require("node:path"));async function Er(e){let{__exports:t,__cache:r,__root:o,__ssg:i}=await D({domain:e});return{initials:[t,r,F.default.join(t,"logs"),F.default.join(o,"store"),F.default.join(o,"apiCache")],disposables:[F.default.join(o,"store"),F.default.join(o,"apiCache"),F.default.join(o,"dist"),F.default.join(o,"dist-restored"),F.default.join(o,"assets"),F.default.join(o,"render-detail-log.txt"),F.default.join(o,"current-dist"),F.default.join(i,"domains.json"),F.default.join(i,"render-metadata.json")],cacheables:[],archivables:["assets"],restaurable:["dist"]}}var Ae=class{domain;renderMode;pathsHydratedWithDomain;pagesToCreate=[];pagesToDelete=[];ssg;renderMetadata;renderArtifacts;constructor({domain:t,renderMode:r,ssg:o,pathsHydratedWithDomain:i,renderMetadata:n,renderArtifacts:s}){this.domain=t,this.renderMode=r,this.pathsHydratedWithDomain=i,this.renderMetadata=n,this.renderArtifacts=s,this.ssg=o}};var Te=h(require("node:fs/promises")),$e=h(require("node:path"));async function _r(e){let{renderArtifacts:t,ssg:{ssgArtifacts:r},pathsHydratedWithDomain:{__cache:o,__exports:i},renderMode:n}=e;n===E.FROM_SCRATCH&&(await Te.default.rm($e.default.join(o,".cache"),{recursive:!0,force:!0}),await Te.default.rm($e.default.join(i,"dist"),{recursive:!0,force:!0}),await Te.default.rm($e.default.join(i,"assets"),{recursive:!0,force:!0})),await ae(t.disposables),await ae(r.disposables)}async function xr(e){let{renderArtifacts:t,ssg:{ssgArtifacts:r},pathsHydratedWithDomain:{__cache:o}}=e;await ae(t.disposables),await ae(r.disposables),await Rr({basePath:o})}var Oe=h(require("node:fs/promises")),we=h(require("node:path"));var et=class{value;next;constructor(t){this.value=t}},he=class{#e;#t;#r;constructor(){this.clear()}enqueue(t){let r=new et(t);this.#e?(this.#t.next=r,this.#t=r):(this.#e=r,this.#t=r),this.#r++}dequeue(){let t=this.#e;if(t)return this.#e=this.#e.next,this.#r--,this.#e||(this.#t=void 0),t.value}peek(){if(this.#e)return this.#e.value}clear(){this.#e=void 0,this.#t=void 0,this.#r=0}get size(){return this.#r}*[Symbol.iterator](){let t=this.#e;for(;t;)yield t.value,t=t.next}*drain(){for(;this.#e;)yield this.dequeue()}};function ye(e){Ir(e);let t=new he,r=0,o=()=>{r<e&&t.size>0&&(r++,t.dequeue()())},i=()=>{r--,o()},n=async(d,p,f)=>{let l=(async()=>d(...f))();p(l);try{await l}catch{}i()},s=(d,p,f)=>{new Promise(l=>{t.enqueue(l)}).then(n.bind(void 0,d,p,f)),r<e&&o()},a=(d,...p)=>new Promise(f=>{s(d,f,p)});return Object.defineProperties(a,{activeCount:{get:()=>r},pendingCount:{get:()=>t.size},clearQueue:{value(){t.clear()}},concurrency:{get:()=>e,set(d){Ir(d),e=d,queueMicrotask(()=>{for(;r<e&&t.size>0;)o()})}},map:{async value(d,p){let f=Array.from(d,(l,m)=>this(p,l,m));return Promise.all(f)}}}),a}function Ir(e){if(!((Number.isInteger(e)||e===Number.POSITIVE_INFINITY)&&e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up")}var vr=h(require("node:crypto")),ve=h(require("node:fs/promises")),tt=h(require("node:path"));var{env:li}=process,{RETRY_WAIT_SECONDS:pi="4",RETRY_ATTEMPTS:Ar="4"}=li;async function rt(e,t,r=""){let{endpoint:o,body:i,cacheKey:n="",attempt:s=1,headers:a,useApiCacheDir:d=!0,logToFile:p=!0}=e,f={endpoint:o,body:i,headers:a,cacheKey:n};if(n&&d){let l=new Date,m=await gi(f);if(m){if(p){let u=Tr(m),g=u?`site: ${u}`:"",_=$r(Date.now()-l.getTime());Qe(`${t} (cache) ${g} ${o} - ${_}s ${r}`)}return m}}try{let l=new Date,m={method:t.toUpperCase(),headers:Object.assign({},Ee,a,J.headers)};t.toLowerCase()!=="get"&&i&&(m.body=JSON.stringify(i),m.headers||(m.headers={}),m.headers["Content-Type"]="application/json");let u=await fetch(o,m);if(!u.ok){if(u.status===404)return null;throw new Error(`HTTP ${u.status}: ${u.statusText}`)}let g=await u.json();if(p){let _=Tr(g),L=_?`site: ${_}`:"",x=$r(Date.now()-l.getTime());Qe(`${t} (fetch) ${L} ${o} - ${x}s ${r}`)}return d&&await ui(f,g),g}catch(l){let m=l;if(s>parseInt(Ar))throw c.log(`
22
- Max attempts ${Ar} reached
21
+ `)}catch(r){de.unshift(...t),c.error("Error flushing logs:",r)}})();try{await me}finally{me=null}}async function pr(e){await lr();let t=await cr(),r=ii(),o=fe.default.join(t.paths.exportsDir,e,"logs");await ue.default.mkdir(o,{recursive:!0});let i=fe.default.join(t.paths.root,Ye),n=fe.default.join(o,`${r}-${Ye}`);try{await ue.default.cp(i,n)}catch(s){if(s instanceof Error&&"code"in s&&s.code!=="ENOENT")throw s}}function ii(){let e=new Date,t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),n=String(e.getMinutes()).padStart(2,"0"),s=String(e.getSeconds()).padStart(2,"0");return`${t}-${r}-${o}_${i}-${n}-${s}`}var gr=require("node:child_process"),ge=h(require("node:fs/promises")),H=h(require("node:path"));var _e=h(require("node:fs/promises")),Y=h(require("node:path"));async function Ie(e){let t=await R(),{sitesToPublish:r,createdPages:o,buildProcessData:i}=t.domains[e].renderInfo||{};if(!r||!o||!i)throw new Error("Build metadata not found");return{buildProcessData:i,createdPages:o,sitesToPublish:r}}async function mr(e,t){let r=await R();r.domains[t]=r.domains[t]||{},r.domains[t].renderInfo=e,await C(r)}async function fr(e,t){let{__root:r}=await D();try{let o=new Set(["editorID","parentEditorID"]);for(let i of t){si(i,o);let n=`${i.context.page.id}.json`,s=Y.default.join(r,"store",e,n);await ni(s,JSON.stringify(i))}}catch(o){x(Gt,o)}}async function ur(e,t){let{__root:r}=await D({domain:t}),o=Y.default.join(r,"store");if(!await y(o))return;let i=await _e.default.readdir(o),n=e.map(({id:a})=>`${a}`),s=i.filter(a=>!n.includes(a));for(let a of s)await _e.default.rm(Y.default.join(o,a),{recursive:!0,force:!0}),c.verbose(`Removed orphan site id: ${a}`)}async function ni(e,t){let r=Y.default.dirname(e),o=Y.default.extname(e),i=Y.default.basename(e,o),n=e,s=1;for(;await y(n);){let a=`${i}-${s}${o}`;n=Y.default.join(r,a),s++}await _e.default.writeFile(n,t)}function si(e,t){function r(o){if(!(!o||typeof o!="object"||Array.isArray(o))){for(let i in o)if(Object.hasOwn(o,i))if(t.has(i))delete o[i];else{let n=o[i];typeof n=="object"&&n!==null&&!Array.isArray(n)&&r(n)}}}r(e)}async function hr(e){let{domain:t}=e,r=await R();r.domains[t].isRendering=!0,await C(r);let{__ssg:o}=await D(),i=H.default.join(o,`.render-sentinel-${t}`);await ge.default.writeFile(i,new Date().toISOString())}async function yr(e){let t=await R();t.domains[e].isRendering=!1,t.currentRenderingDomain=null,t.domains[e].renderMode=E.COMPLETED,await C(t);let{__ssg:r}=await D(),o=H.default.join(r,`.render-sentinel-${e}`);await ge.default.unlink(o)}async function wr(e){let{__ssg:t}=await D(),r=H.default.join(t,`.render-sentinel-${e}`);await y(r)||x(jt)}async function Dr(e){let{basePath:t}=e,r=(0,gr.execSync)("git rev-parse HEAD").toString().trim();await ge.default.writeFile(H.default.join(t,"commit"),r)}async function Rr(e){let t=await R();if(!t.domains[e])throw new Error(w.red(`[!] Error: Domain ${e} not found in DB`));if(!t.domains[e].renderMode)throw new Error(w.red(`[!] Error: Render mode not found for domain ${e}`));return{renderMode:t.domains[e].renderMode,reason:t.domains[e].renderModeReason}}async function D(e){let{domain:t,dbFilePath:r}=e||{},i=(await R(r)).paths;return{__root:i.root,__cache:H.default.join(i.cxCache,t||""),__components:i.components,__cx:i.cx,__sites:i.exportsDir,__exports:H.default.join(i.exportsDir,t||""),__exports_backup:H.default.join(i.exportsDirBackup,t||""),__ssg:i.ssg,__exports_dist:H.default.join(i.exportsDir,t||"","dist")}}async function Qe(){let e=await R();return{griddoVersion:e.griddoVersion,buildReportFileName:e.buildReportFileName}}async function Sr(e){let t=await J.login(),{__root:r}=await D(),{buildReportFileName:o}=await Qe(),{buildProcessData:i}=await Ie(e),n=Object.keys(i).map(d=>({...i[d],siteId:Number.parseInt(d)})),s={authControl:t,sites:n},a=H.default.join(r,"current-dist",o);await ge.default.writeFile(a,JSON.stringify(s)),c.verbose(`build report saved in ${a}`)}var F=h(require("node:path"));async function br(e){let{__exports:t,__cache:r,__root:o,__ssg:i}=await D({domain:e});return{initials:[t,r,F.default.join(t,"logs"),F.default.join(o,"store"),F.default.join(o,"apiCache")],disposables:[F.default.join(o,"store"),F.default.join(o,"apiCache"),F.default.join(o,"dist"),F.default.join(o,"dist-restored"),F.default.join(o,"assets"),F.default.join(o,"render-detail-log.txt"),F.default.join(o,"current-dist"),F.default.join(i,"domains.json"),F.default.join(i,"render-metadata.json")],cacheables:[],archivables:["assets"],restaurable:["dist"]}}var Ae=class{domain;renderMode;pathsHydratedWithDomain;pagesToCreate=[];pagesToDelete=[];ssg;renderMetadata;renderArtifacts;constructor({domain:t,renderMode:r,ssg:o,pathsHydratedWithDomain:i,renderMetadata:n,renderArtifacts:s}){this.domain=t,this.renderMode=r,this.pathsHydratedWithDomain=i,this.renderMetadata=n,this.renderArtifacts=s,this.ssg=o}};var xe=h(require("node:fs/promises")),Te=h(require("node:path"));async function Pr(e){let{renderArtifacts:t,ssg:{ssgArtifacts:r},pathsHydratedWithDomain:{__cache:o,__exports:i},renderMode:n}=e;n===E.FROM_SCRATCH&&(await xe.default.rm(Te.default.join(o,".cache"),{recursive:!0,force:!0}),await xe.default.rm(Te.default.join(i,"dist"),{recursive:!0,force:!0}),await xe.default.rm(Te.default.join(i,"assets"),{recursive:!0,force:!0})),await ae(t.disposables),await ae(r.disposables)}async function Er(e){let{renderArtifacts:t,ssg:{ssgArtifacts:r},pathsHydratedWithDomain:{__cache:o}}=e;await ae(t.disposables),await ae(r.disposables),await Dr({basePath:o})}var Fe=h(require("node:fs/promises")),we=h(require("node:path"));var Ze=class{value;next;constructor(t){this.value=t}},he=class{#e;#t;#r;constructor(){this.clear()}enqueue(t){let r=new Ze(t);this.#e?(this.#t.next=r,this.#t=r):(this.#e=r,this.#t=r),this.#r++}dequeue(){let t=this.#e;if(t)return this.#e=this.#e.next,this.#r--,this.#e||(this.#t=void 0),t.value}peek(){if(this.#e)return this.#e.value}clear(){this.#e=void 0,this.#t=void 0,this.#r=0}get size(){return this.#r}*[Symbol.iterator](){let t=this.#e;for(;t;)yield t.value,t=t.next}*drain(){for(;this.#e;)yield this.dequeue()}};function ye(e){_r(e);let t=new he,r=0,o=()=>{r<e&&t.size>0&&(r++,t.dequeue()())},i=()=>{r--,o()},n=async(d,p,f)=>{let l=(async()=>d(...f))();p(l);try{await l}catch{}i()},s=(d,p,f)=>{new Promise(l=>{t.enqueue(l)}).then(n.bind(void 0,d,p,f)),r<e&&o()},a=(d,...p)=>new Promise(f=>{s(d,f,p)});return Object.defineProperties(a,{activeCount:{get:()=>r},pendingCount:{get:()=>t.size},clearQueue:{value(){t.clear()}},concurrency:{get:()=>e,set(d){_r(d),e=d,queueMicrotask(()=>{for(;r<e&&t.size>0;)o()})}},map:{async value(d,p){let f=Array.from(d,(l,m)=>this(p,l,m));return Promise.all(f)}}}),a}function _r(e){if(!((Number.isInteger(e)||e===Number.POSITIVE_INFINITY)&&e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up")}var Tr=h(require("node:crypto")),$e=h(require("node:fs/promises")),et=h(require("node:path"));var{env:ai}=process,{RETRY_WAIT_SECONDS:ci="4",RETRY_ATTEMPTS:Ir="4"}=ai;async function tt(e,t,r=""){let{endpoint:o,body:i,cacheKey:n="",attempt:s=1,headers:a,useApiCacheDir:d=!0,logToFile:p=!0}=e,f={endpoint:o,body:i,headers:a,cacheKey:n};if(n&&d){let l=new Date,m=await mi(f);if(m){if(p){let u=Ar(m),g=u?`site: ${u}`:"",_=xr(Date.now()-l.getTime());Xe(`${t} (cache) ${g} ${o} - ${_}s ${r}`)}return m}}try{let l=new Date,m={method:t.toUpperCase(),headers:Object.assign({},a,J.headers)};t.toLowerCase()!=="get"&&i&&(m.body=JSON.stringify(i),m.headers||(m.headers={}),m.headers["Content-Type"]="application/json");let u=await fetch(o,m);if(!u.ok){if(u.status===404)return null;throw new Error(`HTTP ${u.status}: ${u.statusText}`)}let g=await u.json();if(p){let _=Ar(g),j=_?`site: ${_}`:"",I=xr(Date.now()-l.getTime());Xe(`${t} (fetch) ${j} ${o} - ${I}s ${r}`)}return d&&await pi(f,g),g}catch(l){let m=l;if(s>parseInt(Ir))throw c.log(`
22
+ Max attempts ${Ir} reached
23
23
  --------------------------------------
24
24
  - ${t.toUpperCase()} ${o}
25
25
  - BODY: ${JSON.stringify(i)}
26
26
  - HEADERS: ${JSON.stringify(a)}
27
27
  - ERROR: ${m.message}
28
28
  --------------------------------------
29
- `),new ce(m);return mi(m,{callInfo:{endpoint:o,body:i}}),c.warn(`Waiting for retry: ${t}`,o),await fi(parseInt(pi)*1e3),rt({endpoint:o,body:i,headers:a,cacheKey:n,attempt:s+1},t,r)}}async function j(e){return rt(e,"get")}async function ot(e){let{endpoint:t,body:r,headers:o}=e,i=t.endsWith("/distributor")&&`# ReferenceField body: ${JSON.stringify(r)} lang: ${JSON.stringify(o?.lang)}`;return rt(e,"post",i||"")}function mi(e,t){let{message:r,stack:o}=e,{callInfo:i}=t,n=[];for(let d of Object.keys(i))n.push(`${d}: ${typeof i[d]=="object"?JSON.stringify(i[d]):i[d]}`);let s=n.join(`
29
+ `),new ce(m);return di(m,{callInfo:{endpoint:o,body:i}}),c.warn(`Waiting for retry: ${t}`,o),await li(parseInt(ci)*1e3),tt({endpoint:o,body:i,headers:a,cacheKey:n,attempt:s+1},t,r)}}async function L(e){return tt(e,"get")}async function rt(e){let{endpoint:t,body:r,headers:o}=e,i=t.endsWith("/distributor")&&`# ReferenceField body: ${JSON.stringify(r)} lang: ${JSON.stringify(o?.lang)}`;return tt(e,"post",i||"")}function di(e,t){let{message:r,stack:o}=e,{callInfo:i}=t,n=[];for(let d of Object.keys(i))n.push(`${d}: ${typeof i[d]=="object"?JSON.stringify(i[d]):i[d]}`);let s=n.join(`
30
30
  `),a=`${r}
31
31
  ${o}`;c.warn(w.red(`
32
32
  =============
@@ -38,29 +38,29 @@ ${s}
38
38
  ${a}
39
39
 
40
40
  =============
41
- `))}function Tr(e){if(!(typeof e!="object"||e===null||Array.isArray(e)))return"site"in e&&e.site?e.site:void 0}function fi(e){return new Promise(t=>setTimeout(t,e))}function $r(e,t=3){return Number.parseFloat((e/1e3).toFixed(t))}async function Fr(e){let{__root:t}=await D(),r=tt.default.join(t,"apiCache"),o=vr.default.createHash("sha256");return o.update(JSON.stringify(e)),`${r}/${o.digest("hex")}`}async function ui(e,t){let r=typeof t=="string"?t:JSON.stringify(t),o=await Fr(e),i=tt.default.dirname(o);await y(i)||await ve.default.mkdir(i,{recursive:!0}),await ve.default.writeFile(o,r,"utf8")}async function gi(e){try{let t=await Fr(e),r=await ve.default.readFile(t,"utf8");return JSON.parse(r)}catch{return null}}var Mr=h(require("node:fs/promises")),kr=h(require("node:path"));async function Or(e){return j({endpoint:`${zt}?domainSlug=${e}`})}async function Cr(e,t){return j({endpoint:`${Xt}/${e}`,cacheKey:t})}async function jr(e,t=""){let[r,o]=nr;return j({endpoint:`${r}${e}${o}`,cacheKey:t})}async function it(e,t=""){let[r,o]=sr;return j({endpoint:`${r}${e}${o}`,cacheKey:t})}async function nt(e){let[t,r]=rr;return j({endpoint:`${t}${e}${r}`})}async function Lr(e,t){let[r,o]=tr;await ot({endpoint:`${r}${e}${o}`,body:t,useApiCacheDir:!1,logToFile:!1})}async function Gr(e,t,r,o,i){let[n,s]=or,a=o||e.site,d=i||e.language;return ot({endpoint:`${n}${a}${s}`,body:t,headers:{lang:d},cacheKey:r})}async function Nr(e){let{siteId:t,headers:r}=e,[o,i]=ir;return j({endpoint:`${o}${t}${i}`,headers:r})}async function Br(e,t=""){let[r,o]=ar;return j({endpoint:`${r}${e}${o}`,cacheKey:t})}async function Hr(e){let t=await Or(e);if(t.length)for(let i of t){let{items:n}=await it(i.id);i.domains=n.filter(s=>s.domain&&(s.domain.slug===e||s.domain.slug===`/${e}`)).map(s=>({[s.id]:`${s.domain.slug}${s.path}`}))}let r=t.filter(i=>!!i.isPublished),o=t.filter(i=>!i.isPublished&&i.shouldBeUpdated);return{sitesToPublish:r,sitesToUnpublish:o}}async function Ur(e){let{__root:t}=await D();for(let r of e){let o=await nt(r.id),{siteHash:i}=o,n={siteHash:i,publishHashes:[],unpublishHashes:[],publishPagesIds:[]};await Lr(r.id,n),await Mr.default.rm(kr.default.join(t,"store",r.id.toString()),{force:!0,recursive:!0})}}async function Wr(e){let t=await nt(e),r=await jr(e),o=await it(e),i=await Br(e),n=o.items,s=n.find(g=>g.isDefault),{siteHash:a,unpublishHashes:d,publishIds:p}=t,{headers:f,footers:l}=r;return{siteInfo:r,validPagesIds:p,siteHash:a,unpublishHashes:d,siteLangs:n,defaultLang:s,headers:f,footers:l,socials:i}}var Fe=class{_defaultHeaders;_defaultFooters;_navigations;constructor(){this._navigations={footers:[],headers:[]},this._defaultHeaders={},this._defaultFooters={}}set navigations(t){this._navigations=t,this._defaultFooters=this.getDefaultFooters(),this._defaultHeaders=this.getDefaultHeaders()}get navigations(){return this._navigations}getDefaultFooters(){let r=[...this.navigations.footers].filter(i=>i.setAsDefault),o={};for(let i of r)o[i.language]=i;return o}getDefaultHeaders(){let r=[...this.navigations.headers].filter(i=>i.setAsDefault),o={};for(let i of r)o[i.language]=i;return o}getRightLanguage(t,r,o){if(!t||!r)return null;let n=t.find(s=>s.language===o&&s.navigationLanguages?.find(a=>a.navigationId===r))||t.find(s=>s.id===r);return n?{...n}:null}getPageHeader(t,r){return this.getRightLanguage(this.navigations.headers,t,r)}getPageFooter(t,r){return this.getRightLanguage(this.navigations.footers,t,r)}getPageNavigations(t){let{header:r,footer:o,language:i,template:n,templateConfig:s}=t,{templateType:a}=n,{defaultHeader:d,defaultFooter:p,templates:f}=s,l=L=>{let x=L.find(O=>typeof O=="number");return typeof x=="number"?x:null},m=l([r,f?.[a]?.defaultHeader,d]),u=l([o,f?.[a]?.defaultFooter,p]),g=m?this.getPageHeader(m,i):m===0?null:this._defaultHeaders[i],_=u?this.getPageFooter(u,i):u===0?null:this._defaultFooters[i];return{header:g,footer:_}}};function st(e,t,r,o="jpg"){let i=typeof e=="string"?e:e?.url;return i?i.split("/")[2].includes("cloudinary.com")?yi(i,`c_fill,w_${t},h_${r}`):hi(i,`f/${o}/w/${t}/h/${r}`):null}function hi(e,t){let r=e.split("/"),o=r.slice(0,-1).join("/"),i=r.slice(-1)[0];return`${o}/${t}/${i}`}function yi(e,t){let r=e.replace("https://",""),o=r.split("/").slice(0,4).join("/"),i=r.replace(o,"");return`https://${o}/${t}${i}`}var wi=25;function Di({socialTitle:e,socialDescription:t,socialImage:r}){return{type:"website",title:e,description:t,image:r?st(r,1280,768):"",twitterImage:r?st(r,1280,768):""}}function bi(e){let{title:t,metaTitle:r,metaDescription:o,canonicalURL:i,locale:n,url:s,isIndexed:a,follow:d,metasAdvanced:p,pageLanguages:f,fullUrl:l,metaKeywords:m}=e,u=p?.split(",").filter(Boolean).map(g=>g.trim().toLowerCase())||[];return{title:(r||t||"").trim(),description:o,canonical:i?.trim()&&i!==l?i.trim():a?l:void 0,locale:n,url:s,index:a?"index":"noindex",follow:d?"follow":"nofollow",translate:u.includes("notranslate")?"notranslate":"",metasAdvanced:u.filter(g=>g!=="notranslate").join(),pageLanguages:f,metaKeywords:m?.filter(Boolean).map(g=>g.replace(/"/g,"'")).join(", ")}}async function ct(e,t){let{id:r,title:o,fullPath:i,language:n,breadcrumb:s,socialDescription:a,socialImage:d,socialTitle:p}=e,{baseUrl:f,cloudinaryName:l,griddoVersion:m,siteLangs:u,siteMetadata:g,siteOptions:_,siteScript:L,siteSlug:x,socials:O,theme:B,navigations:G}=t,{header:le,footer:Q}=G;e.breadcrumb=s,e.siteSlug=x,e.apiUrl=f,e.publicApiUrl=t.publicBaseUrl,e.instance=t.instance;let U=u.find(({id:Be})=>Be===e?.language)?.locale.replace(/_/g,"-"),q=bi(e),V=Di({socialDescription:a,socialImage:d,socialTitle:p}),oe=i.compose,Ne=new Date().toString();return{path:oe,size:void 0,context:{id:r,title:o,fullPath:i,locale:U,languageId:n,theme:B,siteMetadata:g,pageMetadata:q,openGraph:V,socials:O,siteLangs:u,cloudinaryName:l,siteOptions:_,griddoVersion:m,renderDate:Ne,siteScript:L,header:le,footer:Q,page:e}}}async function Vr(e,t){return ct(e,t)}async function Kr({page:e,pages:t,isRoot:r=!1,defaultLang:o,template:i,totalQueriedItems:n},s){let a=t.map(async(d,p)=>{let f=p===0,l=p+1,{domainUrl:m,compose:u}=e.fullPath,g={...e,fullPath:{...e.fullPath,compose:at(u,l,{addEndingSlash:!0})},fullUrl:at(e.fullUrl,l,{addEndingSlash:!0}),slug:at(e.slug,l),title:qr(e.title,l),metaTitle:qr(e.metaTitle||"",l),disableHrefLangs:l>1,template:{...i,isFirstPage:f,pageNumber:l,totalPages:t.length,baseLink:`${m}${u}`,queriedItems:d,totalQueriedItems:n?.length},isRoot:r,defaultLang:o};return ct(g,s)});return Promise.all(a)}function Yr(e,t){let{multiPageElements:r,...o}=e,i=JSON.parse(JSON.stringify(r));i.find(({sectionSlug:s})=>s==="/")||i.push({});let n=i.map(async s=>{let a=JSON.parse(JSON.stringify(o)),{sectionSlug:d="/",title:p="",metaTitle:f="",metaDescription:l=""}=s,m=typeof p=="string"?p:p.content,u=a.fullPath.compose||"",g=a.fullUrl.endsWith("/")?a.fullUrl.slice(0,-1):a.fullUrl,_=d?.replace(/\//g,""),x=d==="/"?_:`${_}/`,O=u.endsWith("/")?"":"/",B=`${u}${O}${x}`;return m.trim()&&(a.title=m),l.trim()&&(a.metaDescription=l),a.fullUrl=`${g}/${x}`,a.fullPath.compose=B,a.slug=B,a.template.activeSectionSlug=d,a.template.activeSectionBase=g,a.metaTitle=f.trim()||m.trim()||a.metaTitle,ct(a,t)});return Promise.all(n)}function zr(e){return new Promise(r=>{let o=(i,n=0)=>{if(!(!i||typeof i!="object")){for(let s in i){let a=i[s],d=a||typeof a=="object",p=JSON.stringify(a).includes('"hasGriddoMultiPage":true');if(!d||!p)continue;let{component:f,hasGriddoMultiPage:l,elements:m}=a;f&&l&&r(m||[]),o(a,n+1)}n||r(null)}};o([e])})}function Ri(e,t,r){return t?.slice(e*(r-1),e*r)}function Si(e,t){let r=Math.ceil(t.length/e)||1;return Array.from({length:r},(i,n)=>n+1)?.map(i=>Ri(e,t,i))}function Xr(e){let t=e.queriedItems||[],r=e?.itemsPerPage||wi;return Si(r,t)}function Jr(e){return e.replace(/\/+$/,"/")}function at(e,t,r){let o=e.endsWith("/")?"":"/",i=r?.addEndingSlash?"/":"";return t<=1?Jr(`${e}${i}`):Jr(`${e}${o}${t}${i}`)}function qr(e,t){return!e||t<=1?e:`${e} - ${t}`}function Pi(e,t){let{order:r,sources:o,quantity:i,mode:n,fixed:s,fullRelations:a=!1,allLanguages:d=!1,preferenceLanguage:p=!1,referenceId:f,fields:l}=e;return n==="auto"?{mode:n,order:r,sources:o,quantity:i,fullRelations:a,allLanguages:d,preferenceLanguage:p,fields:l}:n==="manual"?{mode:n,fixed:s,fullRelations:a,fields:l}:n==="navigation"?{mode:n,order:r,quantity:i,fullRelations:a,referenceId:f||t?.structuredDataContent?.id,fields:l}:(c.error(`ReferenceField mode: ${n} is not recognized on page ${t?.id}.`),e)}async function Ei(e){let{page:t,component:r,cacheKey:o}=e,{data:i}=r;if(!i)return c.info(`Error: Page ${t.id} has \`hasDistributorData: true\` or \`getStaticData: true\` but it doesn't have a \`data\` property.`),[];if(Array.isArray(i.sources)&&i.sources.length<1)return c.info(`Warning: Page with id: ${t.id} has a ReferenceField with empty \`data.sources\``),[];let{site:n,lang:s}=i;!i.sources&&i.mode==="auto"&&c.info(`Warning: Page with id: ${t.id} has a ReferenceField with \`undefined\` \`data.sources\``);let a=Pi(i,t);return await Gr(t,a,o,n,s)}async function Qr({page:e,cacheKey:t=""}){try{let{template:r}=e,o=async(s,a=1)=>{if(!(!s||typeof s!="object"||!(JSON.stringify(s).includes('"hasDistributorData":true')||JSON.stringify(s).includes('"getStaticData":true'))))for(let p in s){if(p==="queriedItems")continue;let l=s[p];if(!l||typeof l!="object")continue;(l.hasDistributorData||l.getStaticData)&&(l.queriedItems=await Ei({page:e,cacheKey:t,component:l})),await o(l,a+1)}};return await(async s=>(await o([s]),s))(r)}catch(r){throw c.error("Error in getReferenceFieldData:",r),r}}var _i=Date.now().toString();function xi(){return!1}function Zr(e,t){let r=Math.max(...t.map(n=>n.name.length+(n.shouldBeUpdated?1:0)+n.id.toString().length)),o=t.map(n=>{let s=n.shouldBeUpdated?"*":"",a=n.name.length+s.length+n.id.toString().length,d=" ".repeat(r-a);return`${w.bold(n.name)} ${w.dim(`(${n.id})`)} ${s} ${d}${w.dim("-")} ${w.dim(n.slug)}`}),i=o.length>0?`
41
+ `))}function Ar(e){if(!(typeof e!="object"||e===null||Array.isArray(e)))return"site"in e&&e.site?e.site:void 0}function li(e){return new Promise(t=>setTimeout(t,e))}function xr(e,t=3){return Number.parseFloat((e/1e3).toFixed(t))}async function $r(e){let{__root:t}=await D(),r=et.default.join(t,"apiCache"),o=Tr.default.createHash("sha256");return o.update(JSON.stringify(e)),`${r}/${o.digest("hex")}`}async function pi(e,t){let r=typeof t=="string"?t:JSON.stringify(t),o=await $r(e),i=et.default.dirname(o);await y(i)||await $e.default.mkdir(i,{recursive:!0}),await $e.default.writeFile(o,r,"utf8")}async function mi(e){try{let t=await $r(e),r=await $e.default.readFile(t,"utf8");return JSON.parse(r)}catch{return null}}var Nr=h(require("node:fs/promises")),Br=h(require("node:path"));async function vr(e){return L({endpoint:`${zt}?domainSlug=${e}`})}async function Fr(e,t){return L({endpoint:`${Yt}/${e}`,cacheKey:t})}async function Or(e,t=""){let[r,o]=ir;return L({endpoint:`${r}${e}${o}`,cacheKey:t})}async function ot(e,t=""){let[r,o]=nr;return L({endpoint:`${r}${e}${o}`,cacheKey:t})}async function it(e){let[t,r]=tr;return L({endpoint:`${t}${e}${r}`})}async function Cr(e,t){let[r,o]=er;await rt({endpoint:`${r}${e}${o}`,body:t,useApiCacheDir:!1,logToFile:!1})}async function Lr(e,t,r,o,i){let[n,s]=rr,a=o||e.site,d=i||e.language;return rt({endpoint:`${n}${a}${s}`,body:t,headers:{lang:d},cacheKey:r})}async function jr(e){let{siteId:t,headers:r}=e,[o,i]=or;return L({endpoint:`${o}${t}${i}`,headers:r})}async function Gr(e,t=""){let[r,o]=sr;return L({endpoint:`${r}${e}${o}`,cacheKey:t})}async function Mr(e){let t=await vr(e);if(t.length)for(let i of t){let{items:n}=await ot(i.id);i.domains=n.filter(s=>s.domain&&(s.domain.slug===e||s.domain.slug===`/${e}`)).map(s=>({[s.id]:`${s.domain.slug}${s.path}`}))}let r=t.filter(i=>!!i.isPublished),o=t.filter(i=>!i.isPublished&&i.shouldBeUpdated);return{sitesToPublish:r,sitesToUnpublish:o}}async function kr(e){let{__root:t}=await D();for(let r of e){let o=await it(r.id),{siteHash:i}=o,n={siteHash:i,publishHashes:[],unpublishHashes:[],publishPagesIds:[]};await Cr(r.id,n),await Nr.default.rm(Br.default.join(t,"store",r.id.toString()),{force:!0,recursive:!0})}}async function Hr(e){let t=await it(e),r=await Or(e),o=await ot(e),i=await Gr(e),n=o.items,s=n.find(g=>g.isDefault),{siteHash:a,unpublishHashes:d,publishIds:p}=t,{headers:f,footers:l}=r;return{siteInfo:r,validPagesIds:p,siteHash:a,unpublishHashes:d,siteLangs:n,defaultLang:s,headers:f,footers:l,socials:i}}var ve=class{_defaultHeaders;_defaultFooters;_navigations;constructor(){this._navigations={footers:[],headers:[]},this._defaultHeaders={},this._defaultFooters={}}set navigations(t){this._navigations=t,this._defaultFooters=this.getDefaultFooters(),this._defaultHeaders=this.getDefaultHeaders()}get navigations(){return this._navigations}getDefaultFooters(){let r=[...this.navigations.footers].filter(i=>i.setAsDefault),o={};for(let i of r)o[i.language]=i;return o}getDefaultHeaders(){let r=[...this.navigations.headers].filter(i=>i.setAsDefault),o={};for(let i of r)o[i.language]=i;return o}getRightLanguage(t,r,o){if(!t||!r)return null;let n=t.find(s=>s.language===o&&s.navigationLanguages?.find(a=>a.navigationId===r))||t.find(s=>s.id===r);return n?{...n}:null}getPageHeader(t,r){return this.getRightLanguage(this.navigations.headers,t,r)}getPageFooter(t,r){return this.getRightLanguage(this.navigations.footers,t,r)}getPageNavigations(t){let{header:r,footer:o,language:i,template:n,templateConfig:s}=t,{templateType:a}=n,{defaultHeader:d,defaultFooter:p,templates:f}=s,l=j=>{let I=j.find(O=>typeof O=="number");return typeof I=="number"?I:null},m=l([r,f?.[a]?.defaultHeader,d]),u=l([o,f?.[a]?.defaultFooter,p]),g=m?this.getPageHeader(m,i):m===0?null:this._defaultHeaders[i],_=u?this.getPageFooter(u,i):u===0?null:this._defaultFooters[i];return{header:g,footer:_}}};function nt(e,t,r,o="jpg"){let i=typeof e=="string"?e:e?.url;return i?i.split("/")[2].includes("cloudinary.com")?ui(i,`c_fill,w_${t},h_${r}`):fi(i,`f/${o}/w/${t}/h/${r}`):null}function fi(e,t){let r=e.split("/"),o=r.slice(0,-1).join("/"),i=r.slice(-1)[0];return`${o}/${t}/${i}`}function ui(e,t){let r=e.replace("https://",""),o=r.split("/").slice(0,4).join("/"),i=r.replace(o,"");return`https://${o}/${t}${i}`}var gi=25;function hi({socialTitle:e,socialDescription:t,socialImage:r}){return{type:"website",title:e,description:t,image:r?nt(r,1280,768):"",twitterImage:r?nt(r,1280,768):""}}function yi(e){let{title:t,metaTitle:r,metaDescription:o,canonicalURL:i,locale:n,url:s,isIndexed:a,follow:d,metasAdvanced:p,pageLanguages:f,fullUrl:l,metaKeywords:m}=e,u=p?.split(",").filter(Boolean).map(g=>g.trim().toLowerCase())||[];return{title:(r||t||"").trim(),description:o,canonical:i?.trim()&&i!==l?i.trim():a?l:void 0,locale:n,url:s,index:a?"index":"noindex",follow:d?"follow":"nofollow",translate:u.includes("notranslate")?"notranslate":"",metasAdvanced:u.filter(g=>g!=="notranslate").join(),pageLanguages:f,metaKeywords:m?.filter(Boolean).map(g=>g.replace(/"/g,"'")).join(", ")}}async function at(e,t){let{id:r,title:o,fullPath:i,language:n,breadcrumb:s,socialDescription:a,socialImage:d,socialTitle:p}=e,{baseUrl:f,cloudinaryName:l,griddoVersion:m,siteLangs:u,siteMetadata:g,siteOptions:_,siteScript:j,siteSlug:I,socials:O,theme:B,navigations:G}=t,{header:le,footer:Q}=G;e.breadcrumb=s,e.siteSlug=I,e.apiUrl=f,e.publicApiUrl=t.publicBaseUrl,e.instance=t.instance;let U=u.find(({id:Ne})=>Ne===e?.language)?.locale.replace(/_/g,"-"),q=yi(e),V=hi({socialDescription:a,socialImage:d,socialTitle:p}),oe=i.compose,Ge=new Date().toString();return{path:oe,size:void 0,context:{id:r,title:o,fullPath:i,locale:U,languageId:n,theme:B,siteMetadata:g,pageMetadata:q,openGraph:V,socials:O,siteLangs:u,cloudinaryName:l,siteOptions:_,griddoVersion:m,renderDate:Ge,siteScript:j,header:le,footer:Q,page:e}}}async function Jr(e,t){return at(e,t)}async function qr({page:e,pages:t,isRoot:r=!1,defaultLang:o,template:i,totalQueriedItems:n},s){let a=t.map(async(d,p)=>{let f=p===0,l=p+1,{domainUrl:m,compose:u}=e.fullPath,g={...e,fullPath:{...e.fullPath,compose:st(u,l,{addEndingSlash:!0})},fullUrl:st(e.fullUrl,l,{addEndingSlash:!0}),slug:st(e.slug,l),title:Wr(e.title,l),metaTitle:Wr(e.metaTitle||"",l),disableHrefLangs:l>1,template:{...i,isFirstPage:f,pageNumber:l,totalPages:t.length,baseLink:`${m}${u}`,queriedItems:d,totalQueriedItems:n?.length},isRoot:r,defaultLang:o};return at(g,s)});return Promise.all(a)}function Vr(e,t){let{multiPageElements:r,...o}=e,i=JSON.parse(JSON.stringify(r));i.find(({sectionSlug:s})=>s==="/")||i.push({});let n=i.map(async s=>{let a=JSON.parse(JSON.stringify(o)),{sectionSlug:d="/",title:p="",metaTitle:f="",metaDescription:l=""}=s,m=typeof p=="string"?p:p.content,u=a.fullPath.compose||"",g=a.fullUrl.endsWith("/")?a.fullUrl.slice(0,-1):a.fullUrl,_=d?.replace(/\//g,""),I=d==="/"?_:`${_}/`,O=u.endsWith("/")?"":"/",B=`${u}${O}${I}`;return m.trim()&&(a.title=m),l.trim()&&(a.metaDescription=l),a.fullUrl=`${g}/${I}`,a.fullPath.compose=B,a.slug=B,a.template.activeSectionSlug=d,a.template.activeSectionBase=g,a.metaTitle=f.trim()||m.trim()||a.metaTitle,at(a,t)});return Promise.all(n)}function Kr(e){return new Promise(r=>{let o=(i,n=0)=>{if(!(!i||typeof i!="object")){for(let s in i){let a=i[s],d=a||typeof a=="object",p=JSON.stringify(a).includes('"hasGriddoMultiPage":true');if(!d||!p)continue;let{component:f,hasGriddoMultiPage:l,elements:m}=a;f&&l&&r(m||[]),o(a,n+1)}n||r(null)}};o([e])})}function wi(e,t,r){return t?.slice(e*(r-1),e*r)}function Di(e,t){let r=Math.ceil(t.length/e)||1;return Array.from({length:r},(i,n)=>n+1)?.map(i=>wi(e,t,i))}function zr(e){let t=e.queriedItems||[],r=e?.itemsPerPage||gi;return Di(r,t)}function Ur(e){return e.replace(/\/+$/,"/")}function st(e,t,r){let o=e.endsWith("/")?"":"/",i=r?.addEndingSlash?"/":"";return t<=1?Ur(`${e}${i}`):Ur(`${e}${o}${t}${i}`)}function Wr(e,t){return!e||t<=1?e:`${e} - ${t}`}function Ri(e,t){let{order:r,sources:o,quantity:i,mode:n,fixed:s,fullRelations:a=!1,allLanguages:d=!1,preferenceLanguage:p=!1,referenceId:f,fields:l}=e;return n==="auto"?{mode:n,order:r,sources:o,quantity:i,fullRelations:a,allLanguages:d,preferenceLanguage:p,fields:l}:n==="manual"?{mode:n,fixed:s,fullRelations:a,fields:l}:n==="navigation"?{mode:n,order:r,quantity:i,fullRelations:a,referenceId:f||t?.structuredDataContent?.id,fields:l}:(c.error(`ReferenceField mode: ${n} is not recognized on page ${t?.id}.`),e)}async function Si(e){let{page:t,component:r,cacheKey:o}=e,{data:i}=r;if(!i)return c.info(`Error: Page ${t.id} has \`hasDistributorData: true\` or \`getStaticData: true\` but it doesn't have a \`data\` property.`),[];if(Array.isArray(i.sources)&&i.sources.length<1)return c.info(`Warning: Page with id: ${t.id} has a ReferenceField with empty \`data.sources\``),[];let{site:n,lang:s}=i;!i.sources&&i.mode==="auto"&&c.info(`Warning: Page with id: ${t.id} has a ReferenceField with \`undefined\` \`data.sources\``);let a=Ri(i,t);return await Lr(t,a,o,n,s)}async function Yr({page:e,cacheKey:t=""}){try{let{template:r}=e,o=async(s,a=1)=>{if(!(!s||typeof s!="object"||!(JSON.stringify(s).includes('"hasDistributorData":true')||JSON.stringify(s).includes('"getStaticData":true'))))for(let p in s){if(p==="queriedItems")continue;let l=s[p];if(!l||typeof l!="object")continue;(l.hasDistributorData||l.getStaticData)&&(l.queriedItems=await Si({page:e,cacheKey:t,component:l})),await o(l,a+1)}};return await(async s=>(await o([s]),s))(r)}catch(r){throw c.error("Error in getReferenceFieldData:",r),r}}var bi=Date.now().toString();function Pi(){return!1}function Xr(e,t){let r=Math.max(...t.map(n=>n.name.length+(n.shouldBeUpdated?1:0)+n.id.toString().length)),o=t.map(n=>{let s=n.shouldBeUpdated?"*":"",a=n.name.length+s.length+n.id.toString().length,d=" ".repeat(r-a);return`${w.bold(n.name)} ${w.dim(`(${n.id})`)} ${s} ${d}${w.dim("-")} ${w.dim(n.slug)}`}),i=o.length>0?`
42
42
 
43
43
  ${o.join(`
44
44
  `)}`:w.dim(`--none--
45
45
  `);c.log(`
46
- ${e} ${i}`)}async function eo(e){console.info(`API calls with ${Ue} threads`),console.info(`API URL ${He}`);let{renderMode:t,domain:r,griddoVersion:o,basePath:i}=e,n=t===E.FROM_SCRATCH,s=we.default.join(i,"store"),a=[],d={},{sitesToPublish:p,sitesToUnpublish:f}=await Hr(r);Zr("Sites to publish:",p),Zr("Sites to unpublish:",f),await Ur(f),await hr(p,r);let l=[];for(let m of f){let{pagesStatus:u}=m;l.push(...u.active,...u.offlinePending,...u.uploadPending,...u.deleted,...u.offline)}for(let m of p){let{id:u,slug:g,theme:_,favicon:L,pagesStatus:x}=m,O=u.toString();l.push(...x.offlinePending,...x.deleted);let{siteInfo:B,siteHash:G,unpublishHashes:le,siteLangs:Q,defaultLang:T,headers:U,footers:q,socials:V}=await Wr(u),{cloudinaryName:oe,useMetaTitle:Ne,useMetaKeywords:pt,showBasicMetaRobots:Be,avoidHrefLangsOnCanonicals:Co,avoidSelfReferenceCanonicals:jo,avoidHrefLangXDefault:Lo,avoidDebugMetas:Go}=await j({endpoint:er});d[u]={siteHash:G,unpublishHashes:le,publishHashes:[],publishPagesIds:[]};let mt=new Fe;mt.navigations={headers:U,footers:q},m.languages=Q;let No=await Ai(u,G),Bo=B.siteScript,Mo={siteUrl:B.slug,title:B.name,favicon:L},ko={baseUrl:He,publicBaseUrl:xt,instance:vt,siteSlug:g,theme:_,siteMetadata:Mo,socials:V,siteLangs:Q,cloudinaryName:oe,griddoVersion:o,siteOptions:{useMetaTitle:Ne,useMetaKeywords:pt,showBasicMetaRobots:Be,avoidHrefLangsOnCanonicals:Co,avoidSelfReferenceCanonicals:jo,avoidHrefLangXDefault:Lo,avoidDebugMetas:Go},siteScript:Bo};c.info(`Getting pages from ${m.name} site`),await Oe.default.mkdir(we.default.join(s,O),{recursive:!0});let Ho=async(Me,ut)=>{let Re=[],$=await Cr(ut,No);if(!$)return;a.push(ut);let Se=JSON.parse(JSON.stringify(ko));Se.navigations=mt.getPageNavigations($);let ie=await Qr({page:$,cacheKey:_i}),gt=await zr(ie),ke=$?.mode==="list"||$?.mode==="paginated-data",ht=!ke&&gt,qo=!ht&&!ke;if(ke){let M={page:$,pages:Xr(ie),isRoot:!1,defaultLang:T,template:ie,totalQueriedItems:ie.queriedItems};Re=await Kr(M,Se),l.push($.id)}if(ht){let M=$;M.template=ie,M.multiPageElements=gt,M.defaultLang=T,Re=await Yr(M,Se),l.push($.id)}if(qo){let M=$;M.template=ie,M.defaultLang=T,Re=[await Vr(M,Se)]}$.hash!==null&&(d[u].publishHashes.push($.hash),d[u].publishPagesIds.push($.id)),await gr(Me,Re)},ft=x.uploadPending,Uo=xi();(n||Uo)&&ft.push(...x.active);let Wo=ye(Ue),Jo=ft.map(Me=>Wo(()=>Ho(O,Me)));await Promise.all(Jo)}return await ur({buildProcessData:d,createdPages:a,sitesToPublish:p},r),{pagesToCreate:a,pagesToDelete:l}}async function Ii(){let{__root:e}=await D(),r=`${we.default.join(e,"apiCache")}/siteHash.json`;try{let o=await Oe.default.readFile(r,"utf8");return JSON.parse(o)||{}}catch{return{}}}async function Ai(e,t){let r=await Ii(),o=r[e],i=t||o||Date.now(),{__root:n}=await D(),a=`${we.default.join(n,"apiCache")}/siteHash.json`;return i!==o&&(r[e]=i,await Oe.default.writeFile(a,JSON.stringify(r),{encoding:"utf-8"})),i.toString()}async function to(e){let{domain:t,renderMode:r,renderMetadata:{griddoVersion:o},pathsHydratedWithDomain:{__root:i}}=e,{pagesToCreate:n,pagesToDelete:s}=await eo({domain:t,renderMode:r,griddoVersion:o,basePath:i});e.pagesToCreate=n,e.pagesToDelete=s}async function ro(e){let{domain:t}=e;await br(t),await Dr(t)}async function oo(e){let{domain:t,pathsHydratedWithDomain:{__root:r}}=e;await wr({basePath:r,domain:t})}async function io(e){let{domain:t}=e;await fr(t)}var no=h(require("node:fs/promises")),dt=h(require("node:path"));async function Ti(){return(await j({endpoint:Zt}))?.filter(t=>!!t.path).map(({path:t,content:r})=>({path:t,content:r||`User-agent: *
46
+ ${e} ${i}`)}async function Qr(e){console.info(`API calls with ${He} threads`),console.info(`API URL ${ke}`);let{renderMode:t,domain:r,griddoVersion:o,basePath:i}=e,n=t===E.FROM_SCRATCH,s=we.default.join(i,"store"),a=[],d={},{sitesToPublish:p,sitesToUnpublish:f}=await Mr(r);Xr("Sites to publish:",p),Xr("Sites to unpublish:",f),await kr(f),await ur(p,r);let l=[];for(let m of f){let{pagesStatus:u}=m;l.push(...u.active,...u.offlinePending,...u.uploadPending,...u.deleted,...u.offline)}for(let m of p){let{id:u,slug:g,theme:_,favicon:j,pagesStatus:I}=m,O=u.toString();l.push(...I.offlinePending,...I.deleted);let{siteInfo:B,siteHash:G,unpublishHashes:le,siteLangs:Q,defaultLang:T,headers:U,footers:q,socials:V}=await Hr(u),{cloudinaryName:oe,useMetaTitle:Ge,useMetaKeywords:lt,showBasicMetaRobots:Ne,avoidHrefLangsOnCanonicals:Fo,avoidSelfReferenceCanonicals:Oo,avoidHrefLangXDefault:Co,avoidDebugMetas:Lo}=await L({endpoint:Zt});d[u]={siteHash:G,unpublishHashes:le,publishHashes:[],publishPagesIds:[]};let pt=new ve;pt.navigations={headers:U,footers:q},m.languages=Q;let jo=await _i(u,G),Go=B.siteScript,No={siteUrl:B.slug,title:B.name,favicon:j},Bo={baseUrl:ke,publicBaseUrl:_t,instance:$t,siteSlug:g,theme:_,siteMetadata:No,socials:V,siteLangs:Q,cloudinaryName:oe,griddoVersion:o,siteOptions:{useMetaTitle:Ge,useMetaKeywords:lt,showBasicMetaRobots:Ne,avoidHrefLangsOnCanonicals:Fo,avoidSelfReferenceCanonicals:Oo,avoidHrefLangXDefault:Co,avoidDebugMetas:Lo},siteScript:Go};c.info(`Getting pages from ${m.name} site`),await Fe.default.mkdir(we.default.join(s,O),{recursive:!0});let Mo=async(Be,ft)=>{let Se=[],$=await Fr(ft,jo);if(!$)return;a.push(ft);let be=JSON.parse(JSON.stringify(Bo));be.navigations=pt.getPageNavigations($);let ie=await Yr({page:$,cacheKey:bi}),ut=await Kr(ie),Me=$?.mode==="list"||$?.mode==="paginated-data",gt=!Me&&ut,Wo=!gt&&!Me;if(Me){let M={page:$,pages:zr(ie),isRoot:!1,defaultLang:T,template:ie,totalQueriedItems:ie.queriedItems};Se=await qr(M,be),l.push($.id)}if(gt){let M=$;M.template=ie,M.multiPageElements=ut,M.defaultLang=T,Se=await Vr(M,be),l.push($.id)}if(Wo){let M=$;M.template=ie,M.defaultLang=T,Se=[await Jr(M,be)]}$.hash!==null&&(d[u].publishHashes.push($.hash),d[u].publishPagesIds.push($.id)),await fr(Be,Se)},mt=I.uploadPending,ko=Pi();(n||ko)&&mt.push(...I.active);let Ho=ye(He),Uo=mt.map(Be=>Ho(()=>Mo(O,Be)));await Promise.all(Uo)}return await mr({buildProcessData:d,createdPages:a,sitesToPublish:p},r),{pagesToCreate:a,pagesToDelete:l}}async function Ei(){let{__root:e}=await D(),r=`${we.default.join(e,"apiCache")}/siteHash.json`;try{let o=await Fe.default.readFile(r,"utf8");return JSON.parse(o)||{}}catch{return{}}}async function _i(e,t){let r=await Ei(),o=r[e],i=t||o||Date.now(),{__root:n}=await D(),a=`${we.default.join(n,"apiCache")}/siteHash.json`;return i!==o&&(r[e]=i,await Fe.default.writeFile(a,JSON.stringify(r),{encoding:"utf-8"})),i.toString()}async function Zr(e){let{domain:t,renderMode:r,renderMetadata:{griddoVersion:o},pathsHydratedWithDomain:{__root:i}}=e,{pagesToCreate:n,pagesToDelete:s}=await Qr({domain:t,renderMode:r,griddoVersion:o,basePath:i});e.pagesToCreate=n,e.pagesToDelete=s}async function eo(e){let{domain:t}=e;await wr(t),await yr(t)}async function to(e){let{domain:t,pathsHydratedWithDomain:{__root:r}}=e;await hr({basePath:r,domain:t})}async function ro(e){let{domain:t}=e;await pr(t)}var oo=h(require("node:fs/promises")),ct=h(require("node:path"));async function Ii(){return(await L({endpoint:Qt}))?.filter(t=>!!t.path).map(({path:t,content:r})=>({path:t,content:r||`User-agent: *
47
47
  \r
48
- \rAllow: /`}))||[]}async function so(e){let{__root:t}=await D({domain:e}),r=dt.default.join(t,"current-dist"),o=(await Ti()).find(({path:i})=>i===`/${e}`);if(!o){c.info(`Robots not found for ${e}`);return}if(await y(r)){let i=dt.default.join(r,"robots.txt");await no.default.writeFile(i,o?.content),c.verbose(`wrote robots.txt to ${i}`)}else c.info(`${r} not found`)}var De=h(require("node:fs/promises")),re=h(require("node:path"));function ao(e){return e.replace(/[<>&'"”]/g,t=>{switch(t){case"<":return"&lt;";case">":return"&gt;";case"&":return"&amp;";case"'":return"&apos;";case'"':return"&quot;";case"\u201D":return"&quot;";default:return t}})}function co(e){return`<?xml version="1.0" encoding="UTF-8"?>
48
+ \rAllow: /`}))||[]}async function io(e){let{__root:t}=await D({domain:e}),r=ct.default.join(t,"current-dist"),o=(await Ii()).find(({path:i})=>i===`/${e}`);if(!o){c.info(`Robots not found for ${e}`);return}if(await y(r)){let i=ct.default.join(r,"robots.txt");await oo.default.writeFile(i,o?.content),c.verbose(`wrote robots.txt to ${i}`)}else c.info(`${r} not found`)}var De=h(require("node:fs/promises")),re=h(require("node:path"));function no(e){return e.replace(/[<>&'"”]/g,t=>{switch(t){case"<":return"&lt;";case">":return"&gt;";case"&":return"&amp;";case"'":return"&apos;";case'"':return"&quot;";case"\u201D":return"&quot;";default:return t}})}function so(e){return`<?xml version="1.0" encoding="UTF-8"?>
49
49
  <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">
50
50
  ${e.map(r=>` <url>
51
- <loc>${ao(r.loc)}</loc>
51
+ <loc>${no(r.loc)}</loc>
52
52
  <lastmod>${r.lastmod}</lastmod>
53
53
  <priority>${r.priority}</priority>
54
54
  </url>`).join(`
55
55
  `)}
56
- </urlset>`}function lo(e){return`<?xml version="1.0" encoding="UTF-8"?>
56
+ </urlset>`}function ao(e){return`<?xml version="1.0" encoding="UTF-8"?>
57
57
  <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
58
58
  ${e.map(r=>` <sitemap>
59
- <loc>${ao(r)}</loc>
59
+ <loc>${no(r)}</loc>
60
60
  </sitemap>`).join(`
61
61
  `)}
62
- </sitemapindex>`}async function mo(e){let{__root:t}=await D(),{sitesToPublish:r}=await Ie(e),o=re.default.join(t,"current-dist"),i="sitemap-",n=s=>s==="sitemap.xml"||s.startsWith(i)&&s.endsWith(".xml");for(let s of r){let{id:a,languages:d}=s;for(let p of d){let f=J.headers?{...J.headers}:{};f.lang=p.id.toString();let l=await Nr({siteId:a,headers:f});if(!l)continue;let{items:m,url:u}=l,{home:g,domain:_}=u;if(!g)continue;let L=s.domains.find(T=>Object.keys(T)[0]===p.id.toString());if(!L)continue;let x=Object.values(L)[0],O=[],B=Object.keys(m),G=re.default.join(o,x.replace(_,""));if(await y(G))try{let T=await De.default.readdir(G);for(let U of T)if(n(U)){let q=re.default.join(G,U);try{await De.default.rm(q)}catch(V){c.error(`Error deleting file ${q}:`,V)}}}catch(T){c.error(`Error reading ${G}:`,T)}for(let T of B){let U=m[T];if(!U.length)continue;let q=co(U),V=`/${i}${T.toLowerCase()}.xml`,oe=re.default.join(G,V);await po(oe,q),c.verbose(`sitemap generated in ${oe}`),O.push(`${g.endsWith("/")?g.slice(0,-1):g}${V}`)}if(!O.length)continue;let le=lo(O),Q=re.default.join(G,"sitemap.xml");await po(Q,le),c.verbose(`sitemap generated in ${Q}`)}}}async function po(e,t){try{let r=re.default.dirname(e);await y(r)||await De.default.mkdir(r,{recursive:!0}),await De.default.writeFile(e,t)}catch{throw new Error("Error saving a file")}}async function fo(e){let{domain:t}=e;await Pr(t),await mo(t),await so(t)}async function uo(e){let{renderArtifacts:t}=e;await Bt(t.initials)}var go=h(require("node:fs/promises")),lt=h(require("node:path"));async function ho(e){let{pathsHydratedWithDomain:{__root:t,__ssg:r}}=e,o=lt.default.join(r,"public"),i=lt.default.join(t,"current-dist");await go.default.rename(o,i)}async function yo(e){let{renderMode:t,ssg:{ssgArtifacts:r},renderArtifacts:o,pathsHydratedWithDomain:{__components:i,__root:n,__cache:s,__ssg:a}}=e;await Mt(i,a,["static"]),t===E.INCREMENTAL&&(await ee(s,a,r.cacheables),await ee(s,n,o.cacheables))}var wo=require("node:child_process"),Do=h(require("node:path"));async function bo(e){c.verbose(`read assetPrefixWithDomain, ${e}`),c.verbose(`using this NODE_OPTIONS in gatsby command: ${process.env.NODE_OPTIONS}`);let{__ssg:t}=await D(),r=process.env.NODE_OPTIONS?process.env.NODE_OPTIONS.replace(/--openssl-legacy-provider\s*/g,"").trim():"",o=Do.default.join(t,"node_modules",".bin","gatsby"),i=["build","--prefix-paths"];return $t&&i.push("--verbose"),new Promise((n,s)=>{let a=(0,wo.spawn)(o,i,{cwd:t,stdio:["ignore","inherit","inherit"],env:{...process.env,SPAWN_ASSET_PREFIX_WITH_DOMAIN:e,NODE_OPTIONS:r}});a.on("close",d=>{d===0?n():s(new Error(`Gatsby build failed with exit code ${d}`))}),a.on("error",d=>{s(new Error(`Failed to start Gatsby build process: ${d.message}`))})})}async function Ro(e){let{ssg:{assetPrefix:t}}=e;await bo(t)}var je=h(require("node:fs/promises")),Le=h(require("node:path"));var X=h(require("node:fs/promises")),P=h(require("node:path"));async function So(e){let{__root:t,__exports:r}=await D({domain:e}),o=(await X.default.readdir(P.default.join(r,"dist"))).filter(n=>P.default.extname(n)===".js"||P.default.extname(n)===".json"||P.default.extname(n)===".css");await X.default.mkdir(P.default.join(t,"assets"),{recursive:!0}),await X.default.cp(P.default.join(r,"dist","page-data"),P.default.join(t,"assets","page-data"),{preserveTimestamps:!0,recursive:!0}),await y(P.default.join(t,"static"))&&await X.default.cp(P.default.join(t,"static"),P.default.join(t,"assets"),{force:!1,preserveTimestamps:!0,recursive:!0}),await y(P.default.join(r,"dist","static"))&&await X.default.cp(P.default.join(r,"dist","static"),P.default.join(t,"assets","static"),{force:!1,preserveTimestamps:!0,recursive:!0}),await y(P.default.join(t,"static"))&&await X.default.cp(P.default.join(t,"static"),P.default.join(r,"dist",e),{preserveTimestamps:!0,recursive:!0,force:!1});let i=o.map(n=>{let s=P.default.join(r,"dist",n),a=P.default.join(t,"assets",n);return X.default.cp(s,a,{preserveTimestamps:!0,recursive:!0})});await Promise.all(i)}var N=h(require("node:fs/promises")),I=h(require("node:path"));var Eo=require("node:crypto"),be=h(require("node:fs/promises")),_o=require("node:path");var $i=[/\.js$/];async function Po(e){let t=new Map;try{let o=(await be.default.readdir(e)).filter(i=>$i.some(n=>n.test(i)));for(let i of o){let n=(0,_o.join)(e,i),s=await be.default.readFile(n),a=(0,Eo.createHash)("sha256").update(s).digest("hex");t.set(i,a)}return t}catch(r){return c.build(`ERROR: Error processing directory ${e}: ${r}`),t}}async function xo(e,t){let[r,o]=await Promise.all([Po(e),Po(t)]);if(r.size!==o.size)return!0;for(let[i,n]of r.entries()){let s=o.get(i);if(!s||n!==s)return!0}return!1}async function Io(e,t){try{let r=await be.default.readFile(e,"utf-8"),o=/(window\.___webpackCompilationHash=")([^"]*)(";<\/script>)/,i=r.replace(o,`$1${t}$3`);if(r===i)return;await be.default.writeFile(e,i,"utf-8")}catch(r){c.error(`Failed to process file ${e}: ${r}`)}}var Ce=class{bundleDir;currentRenderDir;pagesToCreate;pagesToDelete;assetArtifacts;state={htmlToAdd:[],jsonToAdd:[],htmlToDelete:[],jsonToDelete:[]};constructor(t){this.bundleDir=t.dst,this.currentRenderDir=t.src,this.pagesToCreate=t.pagesToCreate,this.pagesToDelete=t.pagesToDelete,this.assetArtifacts=t.artifactsToCopyToExports}async execute(){await this.setPagesToDelete(),await this.setPagesToAdd(),await this.sync(),Ot&&await this.assertAssetsAreValid()}async assertAssetsAreValid(){await xo(this.currentRenderDir,this.bundleDir)?c.info("Warning: JavaScript and CSS bundles must have the same files and content. You can ignore this warning if the rendering process only has pages to unpublish."):c.info("Previous and current JavaScript and CSS packages successfully matched")}async setPagesToDelete(){let t=new Set([...this.pagesToDelete,...this.pagesToCreate]),r=await this.scanPages(this.bundleDir);for(let o of r)t.has(o.id)&&(this.state.htmlToDelete.push(o.htmlPath),this.state.jsonToDelete.push(o.jsonPath));c.verbose(`${this.state.htmlToDelete.length} pages HTML to delete`),c.verbose(`${this.state.jsonToDelete.length} pages JSON to delete`)}async setPagesToAdd(){let t=new Set(this.pagesToCreate),r=await this.scanPages(this.currentRenderDir);for(let o of r)if(t.has(o.id)){let i=I.default.join(this.bundleDir,o.composePath,"index.html"),n=o.composePath==="/"?"index":o.composePath,s=I.default.join(this.bundleDir,"page-data",n,"page-data.json");this.state.htmlToAdd.push({from:o.htmlPath,to:i}),this.state.jsonToAdd.push({from:o.jsonPath,to:s})}c.verbose(`${this.state.htmlToAdd.length} pages HTML to create`),c.verbose(`${this.state.jsonToAdd.length} pages JSON to create`)}async sync(){let t=[...this.state.htmlToDelete,...this.state.jsonToDelete];for(let o of t)try{await N.default.rm(o,{force:!0}),c.verbose(`Sync (remove) : ${o}`)}catch(i){c.error(`Failed to remove ${o}:`,i)}await this.restoreWebpackCompilationHash();let r=[...this.state.htmlToAdd,...this.state.jsonToAdd];for(let o of r)try{await N.default.mkdir(I.default.dirname(o.to),{recursive:!0}),await N.default.copyFile(o.from,o.to),c.verbose(`Sync (copy) : ${o.from} -> ${o.to}`)}catch(i){c.error(`Failed to copy ${o.from} to ${o.to}:`,i)}await this.copyAssetArtifacts(),await this.copySitemaps()}async restoreWebpackCompilationHash(){let t=I.default.join(this.bundleDir,"page-data","app-data.json"),r=JSON.parse(await N.default.readFile(t,"utf8")).webpackCompilationHash;c.build(`Reading webpackCompilationHash from ${t} = ${r}`);let o=this.state.htmlToAdd.map(({from:i})=>i);for(let i of o)c.build(`Patching HTML file ${i} with the new webpackCompilationHash`),await Io(i,r)}async copyAssetArtifacts(){for(let t of this.assetArtifacts){let r=I.default.join(this.currentRenderDir,t),o=I.default.join(this.bundleDir,t);try{await N.default.mkdir(I.default.dirname(o),{recursive:!0}),await N.default.copyFile(r,o),c.verbose(`Copied artifact: ${t}`)}catch(i){c.error(`Failed to copy artifact ${r} to ${o}:`,i)}}}async copySitemaps(){let t=I.default.resolve(this.currentRenderDir),r=I.default.resolve(this.bundleDir),o=pe(r,".xml");for await(let n of o){let s=I.default.basename(n);(s.startsWith("sitemap-")||s==="sitemap.xml")&&await N.default.rm(n,{force:!0})}let i=pe(t,".xml");for await(let n of i){let s=I.default.relative(t,n),a=I.default.join(r,s);try{await N.default.mkdir(I.default.dirname(a),{recursive:!0}),await N.default.copyFile(n,a)}catch(d){c.error(`Failed to copy sitemap ${n} to ${a}:`,d)}}c.verbose("Copied sitemap files.")}async scanPages(t){let r=ye(32),o=pe(I.default.join(t,"page-data"),"page-data.json"),i=[];for await(let s of o)i.push(r(async()=>{try{let a=await N.default.readFile(s,"utf-8"),d=JSON.parse(a),p=d.result.pageContext.id,f=d.result.pageContext.fullPath.compose;return{id:p,composePath:f,htmlPath:I.default.join(t,f,"index.html"),jsonPath:s}}catch(a){return c.error(`Error reading or parsing page data from ${s}:`,a),null}}));return(await Promise.all(i)).filter(s=>s!==null)}};async function Ao(e){let{renderMode:t,renderArtifacts:r,domain:o,pagesToCreate:i,pagesToDelete:n,pathsHydratedWithDomain:{__root:s,__ssg:a,__cache:d,__exports:p},ssg:{ssgArtifacts:f,assetPrefix:l}}=e,m=!!l&&l!=="",u=Le.default.join(s,"current-dist"),g=Le.default.join(p,"dist");await ee(s,d,r.cacheables,{override:!0}),await ee(a,d,f.cacheables,{override:!0}),t===E.FROM_SCRATCH&&(await qe(u),await je.default.rm(g,{force:!0,recursive:!0}),await je.default.rename(u,g)),t===E.INCREMENTAL&&(await qe(g),await new Ce({src:u,dst:g,pagesToCreate:i,pagesToDelete:n,artifactsToCopyToExports:["build-report.json"]}).execute(),await je.default.rm(u,{force:!0,recursive:!0}),await Ve(Le.default.join(p,"dist"))),m&&await So(o),await ee(s,p,r.archivables,{override:!0})}var Ge=h(require("node:path"));async function To(){let{ssg:e}=(await b()).paths;return{disposables:[Ge.default.join(e,"public"),Ge.default.join(e,"static"),Ge.default.join(e,".cache")],cacheables:[".cache"]}}async function $o(){let e=await b();e.needsRollbackOnError=!0,await C(e),c.info(`Render lifecycles that follow will restore the exports dir on error if needed
63
- `)}async function vo(){let e=await b();e.needsRollbackOnError=!1,await C(e),c.info(`Render lifecycles that follow will not restore the exports dir on error
64
- `)}async function Oo(e){await pr();let{renderMode:t,reason:r}=await Sr(e),o=await Ze(),i=await D({domain:e}),{__ssg:n}=i,s=await Er(e),a=await To(),d=We?`${We}/${e}`:"",p=await y(Fo.default.join(n,`.render-sentinel-${e}`)),f=p?E.FROM_SCRATCH:t,l=p?"previous render error":r,m=await b();if(m.domains[e].renderMode=f,m.domains[e].renderModeReason=l,m.domains[e].isRendering=!1,t===E.IDLE&&f===E.IDLE){c.info(`(From Current Render) [${e}]: Skipping start-render as it is marked as IDLE with the reason ${r}.`);return}m.domains[e].isRendering=!0,m.currentRenderingDomain=e,await C(m);let u=l?` <${l}>`:"";c.info(`Init render (${f})${u} for domain ${e}
65
- `);let g=new Ae({domain:e,pathsHydratedWithDomain:i,renderArtifacts:s,renderMetadata:o,renderMode:f,ssg:{assetPrefix:d,ssgArtifacts:a}});await v("Init",async()=>oo(g)),await v("Clean",async()=>_r(g)),await v("Prepare",async()=>uo(g)),await v("Restore",async()=>yo(g)),await $o(),await v("Data",async()=>to(g)),await v("SSG",async()=>Ro(g)),await v("Relocation",async()=>ho(g)),await v("Meta",async()=>fo(g)),await v("Sync",async()=>Ao(g)),await v("HealthCheck",async()=>ro(g)),await v("Logs",async()=>io(g),{skip:ne?!1:"Build logs to file are disabled"}),await v("Close",async()=>xr(g)),await vo()}async function vi(){await J.login();let[e]=process.argv.slice(2);await Oo(e)}async function Fi(){await Yt(),await vi()}qt(Fi);
62
+ </sitemapindex>`}async function lo(e){let{__root:t}=await D(),{sitesToPublish:r}=await Ie(e),o=re.default.join(t,"current-dist"),i="sitemap-",n=s=>s==="sitemap.xml"||s.startsWith(i)&&s.endsWith(".xml");for(let s of r){let{id:a,languages:d}=s;for(let p of d){let f=J.headers?{...J.headers}:{};f.lang=p.id.toString();let l=await jr({siteId:a,headers:f});if(!l)continue;let{items:m,url:u}=l,{home:g,domain:_}=u;if(!g)continue;let j=s.domains.find(T=>Object.keys(T)[0]===p.id.toString());if(!j)continue;let I=Object.values(j)[0],O=[],B=Object.keys(m),G=re.default.join(o,I.replace(_,""));if(await y(G))try{let T=await De.default.readdir(G);for(let U of T)if(n(U)){let q=re.default.join(G,U);try{await De.default.rm(q)}catch(V){c.error(`Error deleting file ${q}:`,V)}}}catch(T){c.error(`Error reading ${G}:`,T)}for(let T of B){let U=m[T];if(!U.length)continue;let q=so(U),V=`/${i}${T.toLowerCase()}.xml`,oe=re.default.join(G,V);await co(oe,q),c.verbose(`sitemap generated in ${oe}`),O.push(`${g.endsWith("/")?g.slice(0,-1):g}${V}`)}if(!O.length)continue;let le=ao(O),Q=re.default.join(G,"sitemap.xml");await co(Q,le),c.verbose(`sitemap generated in ${Q}`)}}}async function co(e,t){try{let r=re.default.dirname(e);await y(r)||await De.default.mkdir(r,{recursive:!0}),await De.default.writeFile(e,t)}catch{throw new Error("Error saving a file")}}async function po(e){let{domain:t}=e;await Sr(t),await lo(t),await io(t)}async function mo(e){let{renderArtifacts:t}=e;await Nt(t.initials)}var fo=h(require("node:fs/promises")),dt=h(require("node:path"));async function uo(e){let{pathsHydratedWithDomain:{__root:t,__ssg:r}}=e,o=dt.default.join(r,"public"),i=dt.default.join(t,"current-dist");await fo.default.rename(o,i)}async function go(e){let{renderMode:t,ssg:{ssgArtifacts:r},renderArtifacts:o,pathsHydratedWithDomain:{__components:i,__root:n,__cache:s,__ssg:a}}=e;await Bt(i,a,["static"]),t===E.INCREMENTAL&&(await ee(s,a,r.cacheables),await ee(s,n,o.cacheables))}var ho=require("node:child_process"),yo=h(require("node:path"));async function wo(e){c.verbose(`read assetPrefixWithDomain, ${e}`),c.verbose(`using this NODE_OPTIONS in gatsby command: ${process.env.NODE_OPTIONS}`);let{__ssg:t}=await D(),r=process.env.NODE_OPTIONS?process.env.NODE_OPTIONS.replace(/--openssl-legacy-provider\s*/g,"").trim():"",o=yo.default.join(t,"node_modules",".bin","gatsby"),i=["build","--prefix-paths"];return Tt&&i.push("--verbose"),new Promise((n,s)=>{let a=(0,ho.spawn)(o,i,{cwd:t,stdio:["ignore","inherit","inherit"],env:{...process.env,SPAWN_ASSET_PREFIX_WITH_DOMAIN:e,NODE_OPTIONS:r}});a.on("close",d=>{d===0?n():s(new Error(`Gatsby build failed with exit code ${d}`))}),a.on("error",d=>{s(new Error(`Failed to start Gatsby build process: ${d.message}`))})})}async function Do(e){let{ssg:{assetPrefix:t}}=e;await wo(t)}var Ce=h(require("node:fs/promises")),Le=h(require("node:path"));var X=h(require("node:fs/promises")),P=h(require("node:path"));async function Ro(e){let{__root:t,__exports:r}=await D({domain:e}),o=(await X.default.readdir(P.default.join(r,"dist"))).filter(n=>P.default.extname(n)===".js"||P.default.extname(n)===".json"||P.default.extname(n)===".css");await X.default.mkdir(P.default.join(t,"assets"),{recursive:!0}),await X.default.cp(P.default.join(r,"dist","page-data"),P.default.join(t,"assets","page-data"),{preserveTimestamps:!0,recursive:!0}),await y(P.default.join(t,"static"))&&await X.default.cp(P.default.join(t,"static"),P.default.join(t,"assets"),{force:!1,preserveTimestamps:!0,recursive:!0}),await y(P.default.join(r,"dist","static"))&&await X.default.cp(P.default.join(r,"dist","static"),P.default.join(t,"assets","static"),{force:!1,preserveTimestamps:!0,recursive:!0}),await y(P.default.join(t,"static"))&&await X.default.cp(P.default.join(t,"static"),P.default.join(r,"dist",e),{preserveTimestamps:!0,recursive:!0,force:!1});let i=o.map(n=>{let s=P.default.join(r,"dist",n),a=P.default.join(t,"assets",n);return X.default.cp(s,a,{preserveTimestamps:!0,recursive:!0})});await Promise.all(i)}var N=h(require("node:fs/promises")),A=h(require("node:path"));var bo=require("node:crypto"),Re=h(require("node:fs/promises")),Po=require("node:path");var Ai=[/\.js$/];async function So(e){let t=new Map;try{let o=(await Re.default.readdir(e)).filter(i=>Ai.some(n=>n.test(i)));for(let i of o){let n=(0,Po.join)(e,i),s=await Re.default.readFile(n),a=(0,bo.createHash)("sha256").update(s).digest("hex");t.set(i,a)}return t}catch(r){return c.build(`ERROR: Error processing directory ${e}: ${r}`),t}}async function Eo(e,t){let[r,o]=await Promise.all([So(e),So(t)]);if(r.size!==o.size)return!0;for(let[i,n]of r.entries()){let s=o.get(i);if(!s||n!==s)return!0}return!1}async function _o(e,t){try{let r=await Re.default.readFile(e,"utf-8"),o=/(window\.___webpackCompilationHash=")([^"]*)(";<\/script>)/,i=r.replace(o,`$1${t}$3`);if(r===i)return;await Re.default.writeFile(e,i,"utf-8")}catch(r){c.error(`Failed to process file ${e}: ${r}`)}}var Oe=class{bundleDir;currentRenderDir;pagesToCreate;pagesToDelete;assetArtifacts;state={htmlToAdd:[],jsonToAdd:[],htmlToDelete:[],jsonToDelete:[]};constructor(t){this.bundleDir=t.dst,this.currentRenderDir=t.src,this.pagesToCreate=t.pagesToCreate,this.pagesToDelete=t.pagesToDelete,this.assetArtifacts=t.artifactsToCopyToExports}async execute(){await this.setPagesToDelete(),await this.setPagesToAdd(),await this.sync(),Ft&&await this.assertAssetsAreValid()}async assertAssetsAreValid(){await Eo(this.currentRenderDir,this.bundleDir)?c.info("Warning: JavaScript and CSS bundles must have the same files and content. You can ignore this warning if the rendering process only has pages to unpublish."):c.info("Previous and current JavaScript and CSS packages successfully matched")}async setPagesToDelete(){let t=new Set([...this.pagesToDelete,...this.pagesToCreate]),r=await this.scanPages(this.bundleDir);for(let o of r)t.has(o.id)&&(this.state.htmlToDelete.push(o.htmlPath),this.state.jsonToDelete.push(o.jsonPath));c.verbose(`${this.state.htmlToDelete.length} pages HTML to delete`),c.verbose(`${this.state.jsonToDelete.length} pages JSON to delete`)}async setPagesToAdd(){let t=new Set(this.pagesToCreate),r=await this.scanPages(this.currentRenderDir);for(let o of r)if(t.has(o.id)){let i=A.default.join(this.bundleDir,o.composePath,"index.html"),n=o.composePath==="/"?"index":o.composePath,s=A.default.join(this.bundleDir,"page-data",n,"page-data.json");this.state.htmlToAdd.push({from:o.htmlPath,to:i}),this.state.jsonToAdd.push({from:o.jsonPath,to:s})}c.verbose(`${this.state.htmlToAdd.length} pages HTML to create`),c.verbose(`${this.state.jsonToAdd.length} pages JSON to create`)}async sync(){let t=[...this.state.htmlToDelete,...this.state.jsonToDelete];for(let o of t)try{await N.default.rm(o,{force:!0}),c.verbose(`Sync (remove) : ${o}`)}catch(i){c.error(`Failed to remove ${o}:`,i)}await this.restoreWebpackCompilationHash();let r=[...this.state.htmlToAdd,...this.state.jsonToAdd];for(let o of r)try{await N.default.mkdir(A.default.dirname(o.to),{recursive:!0}),await N.default.copyFile(o.from,o.to),c.verbose(`Sync (copy) : ${o.from} -> ${o.to}`)}catch(i){c.error(`Failed to copy ${o.from} to ${o.to}:`,i)}await this.copyAssetArtifacts(),await this.copySitemaps()}async restoreWebpackCompilationHash(){let t=A.default.join(this.bundleDir,"page-data","app-data.json"),r=JSON.parse(await N.default.readFile(t,"utf8")).webpackCompilationHash;c.build(`Reading webpackCompilationHash from ${t} = ${r}`);let o=this.state.htmlToAdd.map(({from:i})=>i);for(let i of o)c.build(`Patching HTML file ${i} with the new webpackCompilationHash`),await _o(i,r)}async copyAssetArtifacts(){for(let t of this.assetArtifacts){let r=A.default.join(this.currentRenderDir,t),o=A.default.join(this.bundleDir,t);try{await N.default.mkdir(A.default.dirname(o),{recursive:!0}),await N.default.copyFile(r,o),c.verbose(`Copied artifact: ${t}`)}catch(i){c.error(`Failed to copy artifact ${r} to ${o}:`,i)}}}async copySitemaps(){let t=A.default.resolve(this.currentRenderDir),r=A.default.resolve(this.bundleDir),o=pe(r,".xml");for await(let n of o){let s=A.default.basename(n);(s.startsWith("sitemap-")||s==="sitemap.xml")&&await N.default.rm(n,{force:!0})}let i=pe(t,".xml");for await(let n of i){let s=A.default.relative(t,n),a=A.default.join(r,s);try{await N.default.mkdir(A.default.dirname(a),{recursive:!0}),await N.default.copyFile(n,a)}catch(d){c.error(`Failed to copy sitemap ${n} to ${a}:`,d)}}c.verbose("Copied sitemap files.")}async scanPages(t){let r=ye(32),o=pe(A.default.join(t,"page-data"),"page-data.json"),i=[];for await(let s of o)i.push(r(async()=>{try{let a=await N.default.readFile(s,"utf-8"),d=JSON.parse(a),p=d.result.pageContext.id,f=d.result.pageContext.fullPath.compose;return{id:p,composePath:f,htmlPath:A.default.join(t,f,"index.html"),jsonPath:s}}catch(a){return c.error(`Error reading or parsing page data from ${s}:`,a),null}}));return(await Promise.all(i)).filter(s=>s!==null)}};async function Io(e){let{renderMode:t,renderArtifacts:r,domain:o,pagesToCreate:i,pagesToDelete:n,pathsHydratedWithDomain:{__root:s,__ssg:a,__cache:d,__exports:p},ssg:{ssgArtifacts:f,assetPrefix:l}}=e,m=!!l&&l!=="",u=Le.default.join(s,"current-dist"),g=Le.default.join(p,"dist");await ee(s,d,r.cacheables,{override:!0}),await ee(a,d,f.cacheables,{override:!0}),t===E.FROM_SCRATCH&&(await Je(u),await Ce.default.rm(g,{force:!0,recursive:!0}),await Ce.default.rename(u,g)),t===E.INCREMENTAL&&(await Je(g),await new Oe({src:u,dst:g,pagesToCreate:i,pagesToDelete:n,artifactsToCopyToExports:["build-report.json"]}).execute(),await Ce.default.rm(u,{force:!0,recursive:!0}),await qe(Le.default.join(p,"dist"))),m&&await Ro(o),await ee(s,p,r.archivables,{override:!0})}var je=h(require("node:path"));async function Ao(){let{ssg:e}=(await R()).paths;return{disposables:[je.default.join(e,"public"),je.default.join(e,"static"),je.default.join(e,".cache")],cacheables:[".cache"]}}async function xo(){let e=await R();e.needsRollbackOnError=!0,await C(e),c.info(`Render lifecycles that follow will restore the exports dir on error if needed
63
+ `)}async function To(){let e=await R();e.needsRollbackOnError=!1,await C(e),c.info(`Render lifecycles that follow will not restore the exports dir on error
64
+ `)}async function vo(e){await dr();let{renderMode:t,reason:r}=await Rr(e),o=await Qe(),i=await D({domain:e}),{__ssg:n}=i,s=await br(e),a=await Ao(),d=Ue?`${Ue}/${e}`:"",p=await y($o.default.join(n,`.render-sentinel-${e}`)),f=p?E.FROM_SCRATCH:t,l=p?"previous render error":r,m=await R();if(m.domains[e].renderMode=f,m.domains[e].renderModeReason=l,m.domains[e].isRendering=!1,t===E.IDLE&&f===E.IDLE){c.info(`(From Current Render) [${e}]: Skipping start-render as it is marked as IDLE with the reason ${r}.`);return}m.domains[e].isRendering=!0,m.currentRenderingDomain=e,await C(m);let u=l?` <${l}>`:"";c.info(`Init render (${f})${u} for domain ${e}
65
+ `);let g=new Ae({domain:e,pathsHydratedWithDomain:i,renderArtifacts:s,renderMetadata:o,renderMode:f,ssg:{assetPrefix:d,ssgArtifacts:a}});await v("Init",async()=>to(g)),await v("Clean",async()=>Pr(g)),await v("Prepare",async()=>mo(g)),await v("Restore",async()=>go(g)),await xo(),await v("Data",async()=>Zr(g)),await v("SSG",async()=>Do(g)),await v("Relocation",async()=>uo(g)),await v("Meta",async()=>po(g)),await v("Sync",async()=>Io(g)),await v("HealthCheck",async()=>eo(g)),await v("Logs",async()=>ro(g),{skip:ne?!1:"Build logs to file are disabled"}),await v("Close",async()=>Er(g)),await To()}async function xi(){await J.login();let[e]=process.argv.slice(2);await vo(e)}async function Ti(){await Kt(),await xi()}Jt(Ti);
66
66
  //# sourceMappingURL=start-render.js.map