@griddo/cx 11.10.1 → 11.10.3-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -18,7 +18,7 @@ ${w.dim(`Node ${process.version.slice(1)}`)}
|
|
|
18
18
|
${a} ${d}
|
|
19
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 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--,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(`
|
|
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
22
|
Max attempts ${Ir} reached
|
|
23
23
|
--------------------------------------
|
|
24
24
|
- ${t.toUpperCase()} ${o}
|