@chaibuilder/pages 0.15.7 → 0.15.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/server.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var I=Object.defineProperty;var O=(i,a,t)=>a in i?I(i,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[a]=t;var C=(i,a,t)=>O(i,typeof a!="symbol"?a+"":a,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),B=require("@chaibuilder/runtime");let G=async i=>({...i});const M=i=>{G=i},y=async i=>{try{return await G(i)}catch(a){return console.error(a),{}}},p={},T=()=>Object.values(p),g=i=>p[i],v=(i,a)=>{p[i]={key:i,...a,hasSlug:!0}},U=(i,a)=>{p[i]={key:i,...a,hasSlug:!1}},P={};function N(i,a){c.has(P,i)&&console.warn(`Collection ${i} already registered`),P[i]={...a,id:i}}const b=()=>Object.values(P),_=i=>c.get(P,i);class R{constructor(a){this.backend=a}async upload({file:a,folderId:t,name:s},e){var o,l;return await((l=(o=this.backend).handleAssetsAction)==null?void 0:l.call(o,{action:"UPLOAD_ASSET",data:{name:s,file:a,folderId:t}},e))}async getAsset({id:a},t){var s,e;return(e=(s=this.backend).handleAssetsAction)==null?void 0:e.call(s,{action:"GET_ASSET",data:{id:a}},t)}async getAssets(a,t){var s,e;return(e=(s=this.backend).handleAssetsAction)==null?void 0:e.call(s,{action:"GET_ASSETS",data:a},t)}async deleteAsset({id:a},t){var s,e;return(e=(s=this.backend).handleAssetsAction)==null?void 0:e.call(s,{action:"DELETE_ASSET",data:{id:a}},t)}async updateAsset({id:a,file:t,description:s},e){var r,o;return(o=(r=this.backend).handleAssetsAction)==null?void 0:o.call(r,{action:"UPDATE_ASSET",data:{id:a,file:t,description:s}},e)}}class L{constructor(a){this.backend=a}async refreshToken(a){var s,e;const t=await((e=(s=this.backend).handleUsersAction)==null?void 0:e.call(s,{action:"REFRESH_TOKEN",data:a}));return t.error?{error:t.error}:t}async login({email:a,password:t}){var e,r;const s=await((r=(e=this.backend).handleUsersAction)==null?void 0:r.call(e,{action:"LOGIN",data:{email:a,password:t}}));return s.error?{error:s.error}:s}async logout(){var a,t;await((t=(a=this.backend).handleUsersAction)==null?void 0:t.call(a,{action:"LOGOUT"}))}async isUserActive(a){var s,e;return(await((e=(s=this.backend).handleUsersAction)==null?void 0:e.call(s,{action:"CHECK_USER_STATUS"},a))).success}async getUserRoleAndPermissions(a){var s,e;return await((e=(s=this.backend).handleUsersAction)==null?void 0:e.call(s,{action:"GET_ROLE_AND_PERMISSIONS"},a))}async getUserInfo(a,t){var e,r;return await((r=(e=this.backend).handleUsersAction)==null?void 0:r.call(e,{action:"GET_CHAI_USER",data:t},a))}}class H{constructor(a,t,s){C(this,"fallbackLang","");C(this,"draftMode",!1);this.backend=a,this.chaiUsers=t,this.chaiAssets=s,this._registerDefaultPageTypes(),this.chaiUsers=t??new L(this.backend),this.chaiAssets=s??new R(this.backend)}_registerDefaultPageTypes(){v("page",{name:"Static Page",icon:'<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M5 8V20H19V8H5ZM5 6H19V4H5V6ZM20 22H4C3.44772 22 3 21.5523 3 21V3C3 2.44772 3.44772 2 4 2H20C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22ZM7 10H11V14H7V10ZM7 16H17V18H7V16ZM13 11H17V13H13V11Z"></path></svg>'}),U("global",{name:"Global Block",helpText:"A global block can be reused in multiple pages.",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash-icon lucide-hash"><line x1="4" x2="20" y1="9" y2="9"/><line x1="4" x2="20" y1="15" y2="15"/><line x1="10" x2="8" y1="3" y2="21"/><line x1="16" x2="14" y1="3" y2="21"/></svg>'})}setFallbackLang(a){if(c.isEmpty(a))throw new Error("Fallback language cannot be empty");this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async handle(a,t){var e,r,o,l,f,S,E,m,d,w,h;switch(a.action){case"UPLOAD_ASSET":return(e=this.chaiAssets)==null?void 0:e.upload({file:a.data.file,name:a.data.name,folderId:a.data.folderId??null,optimize:a.data.optimize??!0},t);case"GET_ASSET":return(r=this.chaiAssets)==null?void 0:r.getAsset(a.data,t);case"GET_ASSETS":return(o=this.chaiAssets)==null?void 0:o.getAssets(a.data,t);case"DELETE_ASSET":return(l=this.chaiAssets)==null?void 0:l.deleteAsset(a.data,t);case"UPDATE_ASSET":return(f=this.chaiAssets)==null?void 0:f.updateAsset(a.data,t);case"REFRESH_TOKEN":return(S=this.chaiUsers)==null?void 0:S.refreshToken(a.data);case"LOGIN":return(E=this.chaiUsers)==null?void 0:E.login(a.data);case"LOGOUT":return(m=this.chaiUsers)==null?void 0:m.logout();case"CHECK_USER_STATUS":return(d=this.chaiUsers)==null?void 0:d.isUserActive(t);case"GET_ROLE_AND_PERMISSIONS":return(w=this.chaiUsers)==null?void 0:w.getUserRoleAndPermissions(t);case"GET_CHAI_USER":return(h=this.chaiUsers)==null?void 0:h.getUserInfo(t,a.data)}if(a.action==="GET_BUILDER_PAGE_DATA"){const n=await y({lang:a.data.lang,draft:!0,inBuilder:!0}),u=g(a.data.pageType);return u?{...u.dataProvider?await u.dataProvider({lang:a.data.lang,draft:!0,inBuilder:!0,pageProps:a.data.pageProps??{}}):{},global:n}:{global:n}}if(a.action==="GET_PAGE_TYPES")return Promise.all(T().map(async n=>({key:n.key,helpText:n.helpText??"",icon:n.icon??"",dynamicSegments:n.dynamicSegments??"",dynamicSlug:n.dynamicSlug??"",hasSlug:n.hasSlug??!0,name:typeof n.name=="function"?await n.name():n.name,...c.isFunction(n.defaultTrackingInfo)?{trackingDefault:n.defaultTrackingInfo()}:{},...c.isFunction(n.defaultSeo)?{defaultSeo:n.defaultSeo()}:{},...c.isFunction(n.defaultJSONLD)?{defaultJSONLD:n.defaultJSONLD()}:{}})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const n=g(a.data.pageType);return n?n.search?await n.search(a.data.query):this.backend.handleAction(a,t):{error:"Page type not found"}}if(a.action==="GET_DYNAMIC_PAGES"){const n=g(a.data.pageType);return n?n.getDynamicPages?await n.getDynamicPages(a.data):[]:{error:"Page type not found"}}if(a.action==="GET_COLLECTIONS")return b().map(n=>c.omit(n,"fetch"));if(a.action==="GET_BLOCK_ASYNC_PROPS"){const n=a.data.block,u=n._type;if(u==="Repeater"&&(n!=null&&n.repeaterItems.includes("{{#"))){const A=n.repeaterItems.replace("{{#","").replace("}}",""),k=_(A);return k?await(k==null?void 0:k.fetch({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0}))??[]:[]}else{const A=B.getRegisteredChaiBlock(u);return!A||!c.isFunction(A.dataProvider)?{}:await A.dataProvider({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0})??{}}}const s=await this.backend.handleAction(a,t);return this.emit(a.action,s),s}emit(a,t){var r,o,l;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const s=c.get(t,"page");if(!s)return;const e=g(s.pageType);if(e)switch(a){case"CREATE_PAGE":return(r=e.onCreate)==null?void 0:r.call(e,s);case"UPDATE_PAGE":return(o=e.onUpdate)==null?void 0:o.call(e,s);case"DELETE_PAGE":return(l=e.onDelete)==null?void 0:l.call(e,s)}}async resolvePageLink(a,t){if(!c.startsWith(a,"pageType:"))return a;const s=a.split(":")[1],e=a.split(":")[2],r=g(s);return r?await this.resolveLink(r.key,e,t):a}async resolveLink(a,t,s){const e=g(a);if(!e)return"/not-found";const r=this.isDraftMode();return e.resolveLink?await e.resolveLink(t,r,s):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:t,draft:r,lang:s===this.getFallbackLang()?"":s}})}async getPageBySlug(a){const t=this.isDraftMode(),s={};return T().forEach(e=>{c.has(e,"dynamicSegments")&&e.dynamicSegments&&(s[e.key]=e.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:t,dynamicSegments:s}})}async getFullPage(a){const t=this.isDraftMode();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,draft:t,mergePartials:!0}})}async getRevisionPage({id:a,type:t,lang:s}){const e=this.getFallbackLang()===s?"":s;return await this.backend.handleAction({action:"GET_REVISION_PAGE",data:{id:a,type:t,...e?{lang:e}:{}}})}async getSiteSettings(){const a=this.isDraftMode();return await this.backend.handleAction({action:"GET_WEBSITE_SETTINGS",data:{draft:a}})}async getPageData({blocks:a,pageType:t,pageProps:s,lang:e}){var m;const r=this.isDraftMode(),o=g(t),l=a.filter(d=>d._type==="Repeater"&&(d==null?void 0:d.repeaterItems.includes("{{#")));let f={};if(l.length>0){const d=l.map(h=>({collectionId:h.repeaterItems.replace("{{#","").replace("}}",""),block:h}));f=(await Promise.all(d.map(async({collectionId:h,block:n})=>{const u=_(h);try{const A=await(u==null?void 0:u.fetch({lang:e,draft:r,inBuilder:!1,pageProps:s,block:n}));return Promise.resolve({[`#${h}/${n._id}`]:c.get(A,"items",[])??[]})}catch{return Promise.resolve({[`#${h}/${n._id}`]:[]})}}))).reduce((h,n)=>({...h,...n}),{})}const[S,E]=await Promise.all([this.getGlobalData(e),((m=o==null?void 0:o.dataProvider)==null?void 0:m.call(o,{lang:e,draft:r,inBuilder:!1,pageProps:s}))||Promise.resolve({})]);return o?{...E,global:S,...f}:{global:S,...f}}async getGlobalData(a){return await y({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class K{constructor(a="",t=D){this.apiKey=a,this.apiUrl=t}async handleUsersAction(a,t){const s=await fetch(`${this.apiUrl}/v1/api/users`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":t}}),e=await s.json();return c.has(e,"error")?{...e,status:s.status}:e}async handleAction(a,t){const s=await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":t}}),e=await s.json();return c.has(e,"error")?{...e,status:s.status}:e}async handleAssetsAction(a,t){return await(await fetch(`${this.apiUrl}/v1/api/assets`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":t}})).json()}}const x={ab:"Abkhazian",aa:"Afar",af:"Afrikaans",ak:"Akan",sq:"Albanian",am:"Amharic",ar:"Arabic",an:"Aragonese",hy:"Armenian",as:"Assamese",av:"Avaric",ae:"Avestan",ay:"Aymara",az:"Azerbaijani",bm:"Bambara",ba:"Bashkir",eu:"Basque",be:"Belarusian",bn:"Bengali",bh:"Bihari",bi:"Bislama",bs:"Bosnian",br:"Breton",bg:"Bulgarian",my:"Burmese",ca:"Catalan",ch:"Chamorro",ce:"Chechen",ny:"Chichewa",zh:"Chinese","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cv:"Chuvash",kw:"Cornish",co:"Corsican",cr:"Cree",hr:"Croatian",cs:"Czech",da:"Danish",dv:"Maldivian",nl:"Dutch",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",fi:"Finnish",fr:"French",ff:"Fula, Pular",gl:"Galician",gd:"Gaelic (Scottish)",gv:"Manx",ka:"Georgian",de:"German",el:"Greek",kl:"Kalaallisut",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",he:"Hebrew",hz:"Herero",hi:"Hindi",ho:"Hiri Motu",hu:"Hungarian",is:"Icelandic",io:"Ido",ig:"Igbo",id:"Indonesian",ia:"Interlingua",ie:"Interlingue",iu:"Inuktitut",ik:"Inupiak",ga:"Irish",it:"Italian",ja:"Japanese",jv:"Javanese",kn:"Kannada",kr:"Kanuri",ks:"Kashmiri",kk:"Kazakh",km:"Khmer",ki:"Kikuyu",rw:"Kinyarwanda",rn:"Kirundi",ky:"Kyrgyz",kv:"Komi",kg:"Kongo",ko:"Korean",ku:"Kurdish",kj:"Kwanyama",lo:"Lao",la:"Latin",lv:"Latvian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lu:"Luga-Katanga",lg:"Luganda, Ganda",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mh:"Marshallese",mo:"Moldavian",mn:"Mongolian",na:"Nauru",nv:"Navajo",ng:"Ndonga",nd:"Northern Ndebele",ne:"Nepali",no:"Norwegian",nb:"Norwegian bokmål",nn:"Norwegian nynorsk",ii:"Sichuan Yi",oc:"Occitan",oj:"Ojibwe",cu:"Old Church Slavonic",or:"Oriya",om:"Oromo",os:"Ossetian",pi:"Pāli",ps:"Pashto, Pushto",fa:"Persian (Farsi)",pl:"Polish",pt:"Portuguese",pa:"Punjabi (Eastern)",qu:"Quechua",rm:"Romansh",ro:"Romanian",ru:"Russian",se:"Sami",sm:"Samoan",sg:"Sango",sa:"Sanskrit",sr:"Serbian",sh:"Serbo-Croatian",st:"Sesotho",tn:"Setswana",sn:"Shona",sd:"Sindhi",si:"Sinhalese",ss:"Swati",sk:"Slovak",sl:"Slovenian",so:"Somali",nr:"Southern Ndebele",es:"Spanish",su:"Sundanese",sw:"Swahili (Kiswahili)",sv:"Swedish",tl:"Tagalog",ty:"Tahitian",tg:"Tajik",ta:"Tamil",tt:"Tatar",te:"Telugu",th:"Thai",bo:"Tibetan",ti:"Tigrinya",to:"Tonga",ts:"Tsonga",tr:"Turkish",tk:"Turkmen",tw:"Twi",ug:"Uyghur",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",ve:"Venda",vi:"Vietnamese",vo:"Volapük",wa:"Wallon",cy:"Welsh",wo:"Wolof",fy:"Western Frisian",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",za:"Zhuang, Chuang",zu:"Zulu"},D="https://api.chaibuilder.com";exports.API_URL=D;exports.ChaiBuilderPages=H;exports.ChaiBuilderPagesBackend=K;exports.ChaiBuilderPagesUserManagement=L;exports.LANGUAGES=x;exports.getChaiCollection=_;exports.getChaiCollections=b;exports.getChaiPageType=g;exports.getChaiPageTypes=T;exports.registerChaiCollection=N;exports.registerChaiGlobalDataProvider=M;exports.registerChaiPageType=v;exports.registerChaiPartialType=U;
1
+ "use strict";var I=Object.defineProperty;var O=(i,a,t)=>a in i?I(i,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[a]=t;var C=(i,a,t)=>O(i,typeof a!="symbol"?a+"":a,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),B=require("@chaibuilder/runtime");let G=async i=>({...i});const M=i=>{G=i},y=async i=>{try{return await G(i)}catch(a){return console.error(a),{}}},p={},T=()=>Object.values(p),A=i=>p[i],v=(i,a)=>{p[i]={key:i,...a,hasSlug:!0}},U=(i,a)=>{p[i]={key:i,...a,hasSlug:!1}},P={};function N(i,a){c.has(P,i)&&console.warn(`Collection ${i} already registered`),P[i]={...a,id:i}}const L=()=>Object.values(P),_=i=>c.get(P,i);class R{constructor(a){this.backend=a}async upload({file:a,folderId:t,name:s},e){var o,h;return await((h=(o=this.backend).handleAssetsAction)==null?void 0:h.call(o,{action:"UPLOAD_ASSET",data:{name:s,file:a,folderId:t}},e))}async getAsset({id:a},t){var s,e;return(e=(s=this.backend).handleAssetsAction)==null?void 0:e.call(s,{action:"GET_ASSET",data:{id:a}},t)}async getAssets(a,t){var s,e;return(e=(s=this.backend).handleAssetsAction)==null?void 0:e.call(s,{action:"GET_ASSETS",data:a},t)}async deleteAsset({id:a},t){var s,e;return(e=(s=this.backend).handleAssetsAction)==null?void 0:e.call(s,{action:"DELETE_ASSET",data:{id:a}},t)}async updateAsset({id:a,file:t,description:s},e){var r,o;return(o=(r=this.backend).handleAssetsAction)==null?void 0:o.call(r,{action:"UPDATE_ASSET",data:{id:a,file:t,description:s}},e)}}class b{constructor(a){this.backend=a}async refreshToken(a){var s,e;const t=await((e=(s=this.backend).handleUsersAction)==null?void 0:e.call(s,{action:"REFRESH_TOKEN",data:a}));return t.error?{error:t.error}:t}async login({email:a,password:t}){var e,r;const s=await((r=(e=this.backend).handleUsersAction)==null?void 0:r.call(e,{action:"LOGIN",data:{email:a,password:t}}));return s.error?{error:s.error}:s}async logout(){var a,t;await((t=(a=this.backend).handleUsersAction)==null?void 0:t.call(a,{action:"LOGOUT"}))}async isUserActive(a){var s,e;return(await((e=(s=this.backend).handleUsersAction)==null?void 0:e.call(s,{action:"CHECK_USER_STATUS"},a))).success}async getUserRoleAndPermissions(a){var s,e;return await((e=(s=this.backend).handleUsersAction)==null?void 0:e.call(s,{action:"GET_ROLE_AND_PERMISSIONS"},a))}async getUserInfo(a,t){var e,r;return await((r=(e=this.backend).handleUsersAction)==null?void 0:r.call(e,{action:"GET_CHAI_USER",data:t},a))}}class H{constructor(a,t,s){C(this,"fallbackLang","");C(this,"draftMode",!1);this.backend=a,this.chaiUsers=t,this.chaiAssets=s,this._registerDefaultPageTypes(),this.chaiUsers=t??new b(this.backend),this.chaiAssets=s??new R(this.backend)}_registerDefaultPageTypes(){v("page",{name:"Static Page",icon:'<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M5 8V20H19V8H5ZM5 6H19V4H5V6ZM20 22H4C3.44772 22 3 21.5523 3 21V3C3 2.44772 3.44772 2 4 2H20C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22ZM7 10H11V14H7V10ZM7 16H17V18H7V16ZM13 11H17V13H13V11Z"></path></svg>'}),U("global",{name:"Global Block",helpText:"A global block can be reused in multiple pages.",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash-icon lucide-hash"><line x1="4" x2="20" y1="9" y2="9"/><line x1="4" x2="20" y1="15" y2="15"/><line x1="10" x2="8" y1="3" y2="21"/><line x1="16" x2="14" y1="3" y2="21"/></svg>'})}setFallbackLang(a){if(c.isEmpty(a))throw new Error("Fallback language cannot be empty");this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async handle(a,t){var e,r,o,h,f,m,E,S,d,w,l;switch(a.action){case"UPLOAD_ASSET":return(e=this.chaiAssets)==null?void 0:e.upload({file:a.data.file,name:a.data.name,folderId:a.data.folderId??null,optimize:a.data.optimize??!0},t);case"GET_ASSET":return(r=this.chaiAssets)==null?void 0:r.getAsset(a.data,t);case"GET_ASSETS":return(o=this.chaiAssets)==null?void 0:o.getAssets(a.data,t);case"DELETE_ASSET":return(h=this.chaiAssets)==null?void 0:h.deleteAsset(a.data,t);case"UPDATE_ASSET":return(f=this.chaiAssets)==null?void 0:f.updateAsset(a.data,t);case"REFRESH_TOKEN":return(m=this.chaiUsers)==null?void 0:m.refreshToken(a.data);case"LOGIN":return(E=this.chaiUsers)==null?void 0:E.login(a.data);case"LOGOUT":return(S=this.chaiUsers)==null?void 0:S.logout();case"CHECK_USER_STATUS":return(d=this.chaiUsers)==null?void 0:d.isUserActive(t);case"GET_ROLE_AND_PERMISSIONS":return(w=this.chaiUsers)==null?void 0:w.getUserRoleAndPermissions(t);case"GET_CHAI_USER":return(l=this.chaiUsers)==null?void 0:l.getUserInfo(t,a.data)}if(a.action==="GET_BUILDER_PAGE_DATA"){const n=await y({lang:a.data.lang,draft:!0,inBuilder:!0}),u=A(a.data.pageType);return u?{...u.dataProvider?await u.dataProvider({lang:a.data.lang,draft:!0,inBuilder:!0,pageProps:a.data.pageProps??{}}):{},global:n}:{global:n}}if(a.action==="GET_PAGE_TYPES")return Promise.all(T().map(async n=>({key:n.key,helpText:n.helpText??"",icon:n.icon??"",dynamicSegments:n.dynamicSegments??"",dynamicSlug:n.dynamicSlug??"",hasSlug:n.hasSlug??!0,name:typeof n.name=="function"?await n.name():n.name,...c.isFunction(n.defaultTrackingInfo)?{trackingDefault:n.defaultTrackingInfo()}:{},...c.isFunction(n.defaultSeo)?{defaultSeo:n.defaultSeo()}:{},...c.isFunction(n.defaultJSONLD)?{defaultJSONLD:n.defaultJSONLD()}:{}})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const n=A(a.data.pageType);return n?n.search?await n.search(a.data.query):this.backend.handleAction(a,t):{error:"Page type not found"}}if(a.action==="GET_DYNAMIC_PAGES"){const n=A(a.data.pageType);return n?n.getDynamicPages?await n.getDynamicPages(a.data):[]:{error:"Page type not found"}}if(a.action==="GET_COLLECTIONS")return L().map(n=>c.omit(n,"fetch"));if(a.action==="GET_BLOCK_ASYNC_PROPS"){const n=a.data.block,u=n._type;if(u==="Repeater"&&(n!=null&&n.repeaterItems.includes("{{#"))){const g=n.repeaterItems.replace("{{#","").replace("}}",""),k=_(g);return k?await(k==null?void 0:k.fetch({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0}))??[]:[]}else{const g=B.getRegisteredChaiBlock(u);return!g||!c.isFunction(g.dataProvider)?{}:await g.dataProvider({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0})??{}}}const s=await this.backend.handleAction(a,t);return this.emit(a.action,s),s}emit(a,t){var r,o,h;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const s=c.get(t,"page");if(!s)return;const e=A(s.pageType);if(e)switch(a){case"CREATE_PAGE":return(r=e.onCreate)==null?void 0:r.call(e,s);case"UPDATE_PAGE":return(o=e.onUpdate)==null?void 0:o.call(e,s);case"DELETE_PAGE":return(h=e.onDelete)==null?void 0:h.call(e,s)}}async resolvePageLink(a,t){if(!c.startsWith(a,"pageType:"))return a;const s=a.split(":")[1],e=a.split(":")[2],r=A(s);return r?await this.resolveLink(r.key,e,t):a}async resolveLink(a,t,s){const e=A(a);if(!e)return"/not-found";const r=this.isDraftMode();return e.resolveLink?await e.resolveLink(t,r,s):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:t,draft:r,lang:s===this.getFallbackLang()?"":s}})}async getPageBySlug(a){const t=this.isDraftMode(),s={};return T().forEach(e=>{c.has(e,"dynamicSegments")&&e.dynamicSegments&&(s[e.key]=e.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:t,dynamicSegments:s}})}async getFullPage(a){const t=this.isDraftMode();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,draft:t,mergePartials:!0}})}async getRevisionPage({id:a,type:t,lang:s}){const e=this.getFallbackLang()===s?"":s;return await this.backend.handleAction({action:"GET_REVISION_PAGE",data:{id:a,type:t,...e?{lang:e}:{}}})}async getSiteSettings(){const a=this.isDraftMode();return await this.backend.handleAction({action:"GET_WEBSITE_SETTINGS",data:{draft:a}})}async getPageData({blocks:a,pageType:t,pageProps:s,lang:e}){var S;const r=this.isDraftMode(),o=A(t),h=a.filter(d=>d._type==="Repeater"&&(d==null?void 0:d.repeaterItems.includes("{{#")));let f={};if(h.length>0){const d=h.map(l=>({collectionId:l.repeaterItems.replace("{{#","").replace("}}",""),block:l}));f=(await Promise.all(d.map(async({collectionId:l,block:n})=>{const u=_(l);try{const g=await(u==null?void 0:u.fetch({lang:e,draft:r,inBuilder:!1,pageProps:s,block:n}));return Promise.resolve({[`#${l}/${n._id}`]:c.get(g,"items",[])??[],[`#${l}/${n._id}/totalItems`]:c.get(g,"totalItems",-1)??-1})}catch{return Promise.resolve({[`#${l}/${n._id}`]:[],[`#${l}/${n._id}/totalItems`]:-1})}}))).reduce((l,n)=>({...l,...n}),{})}const[m,E]=await Promise.all([this.getGlobalData(e),((S=o==null?void 0:o.dataProvider)==null?void 0:S.call(o,{lang:e,draft:r,inBuilder:!1,pageProps:s}))||Promise.resolve({})]);return o?{...E,global:m,...f}:{global:m,...f}}async getGlobalData(a){return await y({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class K{constructor(a="",t=D){this.apiKey=a,this.apiUrl=t}async handleUsersAction(a,t){const s=await fetch(`${this.apiUrl}/v1/api/users`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":t}}),e=await s.json();return c.has(e,"error")?{...e,status:s.status}:e}async handleAction(a,t){const s=await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":t}}),e=await s.json();return c.has(e,"error")?{...e,status:s.status}:e}async handleAssetsAction(a,t){return await(await fetch(`${this.apiUrl}/v1/api/assets`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":t}})).json()}}const x={ab:"Abkhazian",aa:"Afar",af:"Afrikaans",ak:"Akan",sq:"Albanian",am:"Amharic",ar:"Arabic",an:"Aragonese",hy:"Armenian",as:"Assamese",av:"Avaric",ae:"Avestan",ay:"Aymara",az:"Azerbaijani",bm:"Bambara",ba:"Bashkir",eu:"Basque",be:"Belarusian",bn:"Bengali",bh:"Bihari",bi:"Bislama",bs:"Bosnian",br:"Breton",bg:"Bulgarian",my:"Burmese",ca:"Catalan",ch:"Chamorro",ce:"Chechen",ny:"Chichewa",zh:"Chinese","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cv:"Chuvash",kw:"Cornish",co:"Corsican",cr:"Cree",hr:"Croatian",cs:"Czech",da:"Danish",dv:"Maldivian",nl:"Dutch",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",fi:"Finnish",fr:"French",ff:"Fula, Pular",gl:"Galician",gd:"Gaelic (Scottish)",gv:"Manx",ka:"Georgian",de:"German",el:"Greek",kl:"Kalaallisut",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",he:"Hebrew",hz:"Herero",hi:"Hindi",ho:"Hiri Motu",hu:"Hungarian",is:"Icelandic",io:"Ido",ig:"Igbo",id:"Indonesian",ia:"Interlingua",ie:"Interlingue",iu:"Inuktitut",ik:"Inupiak",ga:"Irish",it:"Italian",ja:"Japanese",jv:"Javanese",kn:"Kannada",kr:"Kanuri",ks:"Kashmiri",kk:"Kazakh",km:"Khmer",ki:"Kikuyu",rw:"Kinyarwanda",rn:"Kirundi",ky:"Kyrgyz",kv:"Komi",kg:"Kongo",ko:"Korean",ku:"Kurdish",kj:"Kwanyama",lo:"Lao",la:"Latin",lv:"Latvian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lu:"Luga-Katanga",lg:"Luganda, Ganda",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mh:"Marshallese",mo:"Moldavian",mn:"Mongolian",na:"Nauru",nv:"Navajo",ng:"Ndonga",nd:"Northern Ndebele",ne:"Nepali",no:"Norwegian",nb:"Norwegian bokmål",nn:"Norwegian nynorsk",ii:"Sichuan Yi",oc:"Occitan",oj:"Ojibwe",cu:"Old Church Slavonic",or:"Oriya",om:"Oromo",os:"Ossetian",pi:"Pāli",ps:"Pashto, Pushto",fa:"Persian (Farsi)",pl:"Polish",pt:"Portuguese",pa:"Punjabi (Eastern)",qu:"Quechua",rm:"Romansh",ro:"Romanian",ru:"Russian",se:"Sami",sm:"Samoan",sg:"Sango",sa:"Sanskrit",sr:"Serbian",sh:"Serbo-Croatian",st:"Sesotho",tn:"Setswana",sn:"Shona",sd:"Sindhi",si:"Sinhalese",ss:"Swati",sk:"Slovak",sl:"Slovenian",so:"Somali",nr:"Southern Ndebele",es:"Spanish",su:"Sundanese",sw:"Swahili (Kiswahili)",sv:"Swedish",tl:"Tagalog",ty:"Tahitian",tg:"Tajik",ta:"Tamil",tt:"Tatar",te:"Telugu",th:"Thai",bo:"Tibetan",ti:"Tigrinya",to:"Tonga",ts:"Tsonga",tr:"Turkish",tk:"Turkmen",tw:"Twi",ug:"Uyghur",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",ve:"Venda",vi:"Vietnamese",vo:"Volapük",wa:"Wallon",cy:"Welsh",wo:"Wolof",fy:"Western Frisian",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",za:"Zhuang, Chuang",zu:"Zulu"},D="https://api.chaibuilder.com";exports.API_URL=D;exports.ChaiBuilderPages=H;exports.ChaiBuilderPagesBackend=K;exports.ChaiBuilderPagesUserManagement=b;exports.LANGUAGES=x;exports.getChaiCollection=_;exports.getChaiCollections=L;exports.getChaiPageType=A;exports.getChaiPageTypes=T;exports.registerChaiCollection=N;exports.registerChaiGlobalDataProvider=M;exports.registerChaiPageType=v;exports.registerChaiPartialType=U;
package/dist/server.js CHANGED
@@ -1,7 +1,7 @@
1
- var b = Object.defineProperty;
2
- var D = (i, a, t) => a in i ? b(i, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[a] = t;
3
- var _ = (i, a, t) => D(i, typeof a != "symbol" ? a + "" : a, t);
4
- import { has as p, get as C, isEmpty as L, isFunction as k, omit as I, startsWith as O } from "lodash-es";
1
+ var D = Object.defineProperty;
2
+ var L = (i, a, t) => a in i ? D(i, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[a] = t;
3
+ var C = (i, a, t) => L(i, typeof a != "symbol" ? a + "" : a, t);
4
+ import { has as P, get as p, isEmpty as b, isFunction as k, omit as I, startsWith as O } from "lodash-es";
5
5
  import { getRegisteredChaiBlock as B } from "@chaibuilder/runtime";
6
6
  let U = async (i) => ({
7
7
  ...i
@@ -14,15 +14,15 @@ const F = (i) => {
14
14
  } catch (a) {
15
15
  return console.error(a), {};
16
16
  }
17
- }, w = {}, v = () => Object.values(w), g = (i) => w[i], M = (i, a) => {
18
- w[i] = { key: i, ...a, hasSlug: !0 };
17
+ }, T = {}, v = () => Object.values(T), g = (i) => T[i], M = (i, a) => {
18
+ T[i] = { key: i, ...a, hasSlug: !0 };
19
19
  }, N = (i, a) => {
20
- w[i] = { key: i, ...a, hasSlug: !1 };
21
- }, P = {};
22
- function J(i, a) {
23
- p(P, i) && console.warn(`Collection ${i} already registered`), P[i] = { ...a, id: i };
20
+ T[i] = { key: i, ...a, hasSlug: !1 };
21
+ }, w = {};
22
+ function $(i, a) {
23
+ P(w, i) && console.warn(`Collection ${i} already registered`), w[i] = { ...a, id: i };
24
24
  }
25
- const R = () => Object.values(P), G = (i) => C(P, i);
25
+ const R = () => Object.values(w), G = (i) => p(w, i);
26
26
  class H {
27
27
  constructor(a) {
28
28
  this.backend = a;
@@ -30,15 +30,15 @@ class H {
30
30
  async upload({
31
31
  file: a,
32
32
  folderId: t,
33
- name: n
33
+ name: s
34
34
  }, e) {
35
- var o, c;
36
- return await ((c = (o = this.backend).handleAssetsAction) == null ? void 0 : c.call(
35
+ var o, l;
36
+ return await ((l = (o = this.backend).handleAssetsAction) == null ? void 0 : l.call(
37
37
  o,
38
38
  {
39
39
  action: "UPLOAD_ASSET",
40
40
  data: {
41
- name: n,
41
+ name: s,
42
42
  file: a,
43
43
  folderId: t
44
44
  }
@@ -47,17 +47,17 @@ class H {
47
47
  ));
48
48
  }
49
49
  async getAsset({ id: a }, t) {
50
- var n, e;
51
- return (e = (n = this.backend).handleAssetsAction) == null ? void 0 : e.call(
52
- n,
50
+ var s, e;
51
+ return (e = (s = this.backend).handleAssetsAction) == null ? void 0 : e.call(
52
+ s,
53
53
  { action: "GET_ASSET", data: { id: a } },
54
54
  t
55
55
  );
56
56
  }
57
57
  async getAssets(a, t) {
58
- var n, e;
59
- return (e = (n = this.backend).handleAssetsAction) == null ? void 0 : e.call(
60
- n,
58
+ var s, e;
59
+ return (e = (s = this.backend).handleAssetsAction) == null ? void 0 : e.call(
60
+ s,
61
61
  {
62
62
  action: "GET_ASSETS",
63
63
  data: a
@@ -66,9 +66,9 @@ class H {
66
66
  );
67
67
  }
68
68
  async deleteAsset({ id: a }, t) {
69
- var n, e;
70
- return (e = (n = this.backend).handleAssetsAction) == null ? void 0 : e.call(
71
- n,
69
+ var s, e;
70
+ return (e = (s = this.backend).handleAssetsAction) == null ? void 0 : e.call(
71
+ s,
72
72
  {
73
73
  action: "DELETE_ASSET",
74
74
  data: { id: a }
@@ -79,14 +79,14 @@ class H {
79
79
  async updateAsset({
80
80
  id: a,
81
81
  file: t,
82
- description: n
82
+ description: s
83
83
  }, e) {
84
84
  var r, o;
85
85
  return (o = (r = this.backend).handleAssetsAction) == null ? void 0 : o.call(
86
86
  r,
87
87
  {
88
88
  action: "UPDATE_ASSET",
89
- data: { id: a, file: t, description: n }
89
+ data: { id: a, file: t, description: s }
90
90
  },
91
91
  e
92
92
  );
@@ -97,8 +97,8 @@ class K {
97
97
  this.backend = a;
98
98
  }
99
99
  async refreshToken(a) {
100
- var n, e;
101
- const t = await ((e = (n = this.backend).handleUsersAction) == null ? void 0 : e.call(n, {
100
+ var s, e;
101
+ const t = await ((e = (s = this.backend).handleUsersAction) == null ? void 0 : e.call(s, {
102
102
  action: "REFRESH_TOKEN",
103
103
  data: a
104
104
  }));
@@ -109,11 +109,11 @@ class K {
109
109
  password: t
110
110
  }) {
111
111
  var e, r;
112
- const n = await ((r = (e = this.backend).handleUsersAction) == null ? void 0 : r.call(e, {
112
+ const s = await ((r = (e = this.backend).handleUsersAction) == null ? void 0 : r.call(e, {
113
113
  action: "LOGIN",
114
114
  data: { email: a, password: t }
115
115
  }));
116
- return n.error ? { error: n.error } : n;
116
+ return s.error ? { error: s.error } : s;
117
117
  }
118
118
  async logout() {
119
119
  var a, t;
@@ -122,9 +122,9 @@ class K {
122
122
  }));
123
123
  }
124
124
  async isUserActive(a) {
125
- var n, e;
126
- return (await ((e = (n = this.backend).handleUsersAction) == null ? void 0 : e.call(
127
- n,
125
+ var s, e;
126
+ return (await ((e = (s = this.backend).handleUsersAction) == null ? void 0 : e.call(
127
+ s,
128
128
  {
129
129
  action: "CHECK_USER_STATUS"
130
130
  },
@@ -132,9 +132,9 @@ class K {
132
132
  ))).success;
133
133
  }
134
134
  async getUserRoleAndPermissions(a) {
135
- var n, e;
136
- return await ((e = (n = this.backend).handleUsersAction) == null ? void 0 : e.call(
137
- n,
135
+ var s, e;
136
+ return await ((e = (s = this.backend).handleUsersAction) == null ? void 0 : e.call(
137
+ s,
138
138
  {
139
139
  action: "GET_ROLE_AND_PERMISSIONS"
140
140
  },
@@ -153,11 +153,11 @@ class K {
153
153
  ));
154
154
  }
155
155
  }
156
- class Y {
157
- constructor(a, t, n) {
158
- _(this, "fallbackLang", "");
159
- _(this, "draftMode", !1);
160
- this.backend = a, this.chaiUsers = t, this.chaiAssets = n, this._registerDefaultPageTypes(), this.chaiUsers = t ?? new K(this.backend), this.chaiAssets = n ?? new H(this.backend);
156
+ class J {
157
+ constructor(a, t, s) {
158
+ C(this, "fallbackLang", "");
159
+ C(this, "draftMode", !1);
160
+ this.backend = a, this.chaiUsers = t, this.chaiAssets = s, this._registerDefaultPageTypes(), this.chaiUsers = t ?? new K(this.backend), this.chaiAssets = s ?? new H(this.backend);
161
161
  }
162
162
  _registerDefaultPageTypes() {
163
163
  M("page", {
@@ -170,7 +170,7 @@ class Y {
170
170
  });
171
171
  }
172
172
  setFallbackLang(a) {
173
- if (L(a))
173
+ if (b(a))
174
174
  throw new Error("Fallback language cannot be empty");
175
175
  this.fallbackLang = a;
176
176
  }
@@ -184,7 +184,7 @@ class Y {
184
184
  return this.draftMode;
185
185
  }
186
186
  async handle(a, t) {
187
- var e, r, o, c, A, f, S, m, u, T, l;
187
+ var e, r, o, l, A, f, S, m, u, _, c;
188
188
  switch (a.action) {
189
189
  // Media
190
190
  case "UPLOAD_ASSET":
@@ -202,7 +202,7 @@ class Y {
202
202
  case "GET_ASSETS":
203
203
  return (o = this.chaiAssets) == null ? void 0 : o.getAssets(a.data, t);
204
204
  case "DELETE_ASSET":
205
- return (c = this.chaiAssets) == null ? void 0 : c.deleteAsset(a.data, t);
205
+ return (l = this.chaiAssets) == null ? void 0 : l.deleteAsset(a.data, t);
206
206
  case "UPDATE_ASSET":
207
207
  return (A = this.chaiAssets) == null ? void 0 : A.updateAsset(a.data, t);
208
208
  // Users
@@ -215,12 +215,12 @@ class Y {
215
215
  case "CHECK_USER_STATUS":
216
216
  return (u = this.chaiUsers) == null ? void 0 : u.isUserActive(t);
217
217
  case "GET_ROLE_AND_PERMISSIONS":
218
- return (T = this.chaiUsers) == null ? void 0 : T.getUserRoleAndPermissions(t);
218
+ return (_ = this.chaiUsers) == null ? void 0 : _.getUserRoleAndPermissions(t);
219
219
  case "GET_CHAI_USER":
220
- return (l = this.chaiUsers) == null ? void 0 : l.getUserInfo(t, a.data);
220
+ return (c = this.chaiUsers) == null ? void 0 : c.getUserInfo(t, a.data);
221
221
  }
222
222
  if (a.action === "GET_BUILDER_PAGE_DATA") {
223
- const s = await y({
223
+ const n = await y({
224
224
  lang: a.data.lang,
225
225
  draft: !0,
226
226
  inBuilder: !0
@@ -232,40 +232,40 @@ class Y {
232
232
  inBuilder: !0,
233
233
  pageProps: a.data.pageProps ?? {}
234
234
  }) : {},
235
- global: s
236
- } : { global: s };
235
+ global: n
236
+ } : { global: n };
237
237
  }
238
238
  if (a.action === "GET_PAGE_TYPES")
239
239
  return Promise.all(
240
- v().map(async (s) => ({
241
- key: s.key,
242
- helpText: s.helpText ?? "",
243
- icon: s.icon ?? "",
244
- dynamicSegments: s.dynamicSegments ?? "",
245
- dynamicSlug: s.dynamicSlug ?? "",
246
- hasSlug: s.hasSlug ?? !0,
247
- name: typeof s.name == "function" ? await s.name() : s.name,
248
- ...k(s.defaultTrackingInfo) ? { trackingDefault: s.defaultTrackingInfo() } : {},
249
- ...k(s.defaultSeo) ? { defaultSeo: s.defaultSeo() } : {},
250
- ...k(s.defaultJSONLD) ? { defaultJSONLD: s.defaultJSONLD() } : {}
240
+ v().map(async (n) => ({
241
+ key: n.key,
242
+ helpText: n.helpText ?? "",
243
+ icon: n.icon ?? "",
244
+ dynamicSegments: n.dynamicSegments ?? "",
245
+ dynamicSlug: n.dynamicSlug ?? "",
246
+ hasSlug: n.hasSlug ?? !0,
247
+ name: typeof n.name == "function" ? await n.name() : n.name,
248
+ ...k(n.defaultTrackingInfo) ? { trackingDefault: n.defaultTrackingInfo() } : {},
249
+ ...k(n.defaultSeo) ? { defaultSeo: n.defaultSeo() } : {},
250
+ ...k(n.defaultJSONLD) ? { defaultJSONLD: n.defaultJSONLD() } : {}
251
251
  }))
252
252
  );
253
253
  if (a.action === "SEARCH_PAGE_TYPE_ITEMS") {
254
- const s = g(a.data.pageType);
255
- return s ? s.search ? await s.search(a.data.query) : this.backend.handleAction(a, t) : { error: "Page type not found" };
254
+ const n = g(a.data.pageType);
255
+ return n ? n.search ? await n.search(a.data.query) : this.backend.handleAction(a, t) : { error: "Page type not found" };
256
256
  }
257
257
  if (a.action === "GET_DYNAMIC_PAGES") {
258
- const s = g(a.data.pageType);
259
- return s ? s.getDynamicPages ? await s.getDynamicPages(a.data) : [] : { error: "Page type not found" };
258
+ const n = g(a.data.pageType);
259
+ return n ? n.getDynamicPages ? await n.getDynamicPages(a.data) : [] : { error: "Page type not found" };
260
260
  }
261
261
  if (a.action === "GET_COLLECTIONS")
262
- return R().map((s) => I(s, "fetch"));
262
+ return R().map((n) => I(n, "fetch"));
263
263
  if (a.action === "GET_BLOCK_ASYNC_PROPS") {
264
- const s = a.data.block, h = s._type;
265
- if (h === "Repeater" && (s != null && s.repeaterItems.includes("{{#"))) {
266
- const d = s.repeaterItems.replace("{{#", "").replace("}}", ""), E = G(d);
264
+ const n = a.data.block, h = n._type;
265
+ if (h === "Repeater" && (n != null && n.repeaterItems.includes("{{#"))) {
266
+ const d = n.repeaterItems.replace("{{#", "").replace("}}", ""), E = G(d);
267
267
  return E ? await (E == null ? void 0 : E.fetch({
268
- block: s,
268
+ block: n,
269
269
  pageProps: a.data.pageProps,
270
270
  lang: a.data.lang,
271
271
  draft: !0,
@@ -274,7 +274,7 @@ class Y {
274
274
  } else {
275
275
  const d = B(h);
276
276
  return !d || !k(d.dataProvider) ? {} : await d.dataProvider({
277
- block: s,
277
+ block: n,
278
278
  pageProps: a.data.pageProps,
279
279
  lang: a.data.lang,
280
280
  draft: !0,
@@ -282,23 +282,23 @@ class Y {
282
282
  }) ?? {};
283
283
  }
284
284
  }
285
- const n = await this.backend.handleAction(a, t);
286
- return this.emit(a.action, n), n;
285
+ const s = await this.backend.handleAction(a, t);
286
+ return this.emit(a.action, s), s;
287
287
  }
288
288
  emit(a, t) {
289
- var r, o, c;
289
+ var r, o, l;
290
290
  if (!["CREATE_PAGE", "UPDATE_PAGE", "DELETE_PAGE"].includes(a)) return;
291
- const n = C(t, "page");
292
- if (!n) return;
293
- const e = g(n.pageType);
291
+ const s = p(t, "page");
292
+ if (!s) return;
293
+ const e = g(s.pageType);
294
294
  if (e)
295
295
  switch (a) {
296
296
  case "CREATE_PAGE":
297
- return (r = e.onCreate) == null ? void 0 : r.call(e, n);
297
+ return (r = e.onCreate) == null ? void 0 : r.call(e, s);
298
298
  case "UPDATE_PAGE":
299
- return (o = e.onUpdate) == null ? void 0 : o.call(e, n);
299
+ return (o = e.onUpdate) == null ? void 0 : o.call(e, s);
300
300
  case "DELETE_PAGE":
301
- return (c = e.onDelete) == null ? void 0 : c.call(e, n);
301
+ return (l = e.onDelete) == null ? void 0 : l.call(e, s);
302
302
  }
303
303
  }
304
304
  /**
@@ -309,31 +309,31 @@ class Y {
309
309
  async resolvePageLink(a, t) {
310
310
  if (!O(a, "pageType:"))
311
311
  return a;
312
- const n = a.split(":")[1], e = a.split(":")[2], r = g(n);
312
+ const s = a.split(":")[1], e = a.split(":")[2], r = g(s);
313
313
  return r ? await this.resolveLink(r.key, e, t) : a;
314
314
  }
315
- async resolveLink(a, t, n) {
315
+ async resolveLink(a, t, s) {
316
316
  const e = g(a);
317
317
  if (!e)
318
318
  return "/not-found";
319
319
  const r = this.isDraftMode();
320
- return e.resolveLink ? await e.resolveLink(t, r, n) : await this.backend.handleAction({
320
+ return e.resolveLink ? await e.resolveLink(t, r, s) : await this.backend.handleAction({
321
321
  action: "GET_LINK",
322
322
  data: {
323
323
  pageType: a,
324
324
  id: t,
325
325
  draft: r,
326
- lang: n === this.getFallbackLang() ? "" : n
326
+ lang: s === this.getFallbackLang() ? "" : s
327
327
  }
328
328
  });
329
329
  }
330
330
  async getPageBySlug(a) {
331
- const t = this.isDraftMode(), n = {};
331
+ const t = this.isDraftMode(), s = {};
332
332
  return v().forEach((e) => {
333
- p(e, "dynamicSegments") && e.dynamicSegments && (n[e.key] = e.dynamicSegments);
333
+ P(e, "dynamicSegments") && e.dynamicSegments && (s[e.key] = e.dynamicSegments);
334
334
  }), await this.backend.handleAction({
335
335
  action: "GET_PAGE_META",
336
- data: { slug: a, draft: t, dynamicSegments: n }
336
+ data: { slug: a, draft: t, dynamicSegments: s }
337
337
  });
338
338
  }
339
339
  async getFullPage(a) {
@@ -347,8 +347,8 @@ class Y {
347
347
  }
348
348
  });
349
349
  }
350
- async getRevisionPage({ id: a, type: t, lang: n }) {
351
- const e = this.getFallbackLang() === n ? "" : n;
350
+ async getRevisionPage({ id: a, type: t, lang: s }) {
351
+ const e = this.getFallbackLang() === s ? "" : s;
352
352
  return await this.backend.handleAction({
353
353
  action: "GET_REVISION_PAGE",
354
354
  data: {
@@ -368,37 +368,39 @@ class Y {
368
368
  async getPageData({
369
369
  blocks: a,
370
370
  pageType: t,
371
- pageProps: n,
371
+ pageProps: s,
372
372
  lang: e
373
373
  }) {
374
374
  var m;
375
- const r = this.isDraftMode(), o = g(t), c = a.filter(
375
+ const r = this.isDraftMode(), o = g(t), l = a.filter(
376
376
  (u) => u._type === "Repeater" && (u == null ? void 0 : u.repeaterItems.includes("{{#"))
377
377
  );
378
378
  let A = {};
379
- if (c.length > 0) {
380
- const u = c.map((l) => ({ collectionId: l.repeaterItems.replace("{{#", "").replace("}}", ""), block: l }));
379
+ if (l.length > 0) {
380
+ const u = l.map((c) => ({ collectionId: c.repeaterItems.replace("{{#", "").replace("}}", ""), block: c }));
381
381
  A = (await Promise.all(
382
- u.map(async ({ collectionId: l, block: s }) => {
383
- const h = G(l);
382
+ u.map(async ({ collectionId: c, block: n }) => {
383
+ const h = G(c);
384
384
  try {
385
385
  const d = await (h == null ? void 0 : h.fetch({
386
386
  lang: e,
387
387
  draft: r,
388
388
  inBuilder: !1,
389
- pageProps: n,
390
- block: s
389
+ pageProps: s,
390
+ block: n
391
391
  }));
392
392
  return Promise.resolve({
393
- [`#${l}/${s._id}`]: C(d, "items", []) ?? []
393
+ [`#${c}/${n._id}`]: p(d, "items", []) ?? [],
394
+ [`#${c}/${n._id}/totalItems`]: p(d, "totalItems", -1) ?? -1
394
395
  });
395
396
  } catch {
396
397
  return Promise.resolve({
397
- [`#${l}/${s._id}`]: []
398
+ [`#${c}/${n._id}`]: [],
399
+ [`#${c}/${n._id}/totalItems`]: -1
398
400
  });
399
401
  }
400
402
  })
401
- )).reduce((l, s) => ({ ...l, ...s }), {});
403
+ )).reduce((c, n) => ({ ...c, ...n }), {});
402
404
  }
403
405
  const [f, S] = await Promise.all([
404
406
  this.getGlobalData(e),
@@ -406,7 +408,7 @@ class Y {
406
408
  lang: e,
407
409
  draft: r,
408
410
  inBuilder: !1,
409
- pageProps: n
411
+ pageProps: s
410
412
  })) || Promise.resolve({})
411
413
  ]);
412
414
  return o ? {
@@ -426,31 +428,31 @@ class Y {
426
428
  return await this.backend.handleAction(a);
427
429
  }
428
430
  }
429
- class Z {
431
+ class Y {
430
432
  constructor(a = "", t = x) {
431
433
  this.apiKey = a, this.apiUrl = t;
432
434
  }
433
435
  async handleUsersAction(a, t) {
434
- const n = await fetch(`${this.apiUrl}/v1/api/users`, {
436
+ const s = await fetch(`${this.apiUrl}/v1/api/users`, {
435
437
  method: "POST",
436
438
  body: JSON.stringify(a),
437
439
  headers: {
438
440
  "x-chai-api-key": this.apiKey,
439
441
  "x-chai-auth-token": t
440
442
  }
441
- }), e = await n.json();
442
- return p(e, "error") ? { ...e, status: n.status } : e;
443
+ }), e = await s.json();
444
+ return P(e, "error") ? { ...e, status: s.status } : e;
443
445
  }
444
446
  async handleAction(a, t) {
445
- const n = await fetch(`${this.apiUrl}/v1/api/chai`, {
447
+ const s = await fetch(`${this.apiUrl}/v1/api/chai`, {
446
448
  method: "POST",
447
449
  body: JSON.stringify(a),
448
450
  headers: {
449
451
  "x-chai-api-key": this.apiKey,
450
452
  "x-chai-auth-token": t
451
453
  }
452
- }), e = await n.json();
453
- return p(e, "error") ? { ...e, status: n.status } : e;
454
+ }), e = await s.json();
455
+ return P(e, "error") ? { ...e, status: s.status } : e;
454
456
  }
455
457
  async handleAssetsAction(a, t) {
456
458
  return await (await fetch(`${this.apiUrl}/v1/api/assets`, {
@@ -463,7 +465,7 @@ class Z {
463
465
  })).json();
464
466
  }
465
467
  }
466
- const $ = {
468
+ const Z = {
467
469
  ab: "Abkhazian",
468
470
  aa: "Afar",
469
471
  af: "Afrikaans",
@@ -654,15 +656,15 @@ const $ = {
654
656
  }, x = "https://api.chaibuilder.com";
655
657
  export {
656
658
  x as API_URL,
657
- Y as ChaiBuilderPages,
658
- Z as ChaiBuilderPagesBackend,
659
+ J as ChaiBuilderPages,
660
+ Y as ChaiBuilderPagesBackend,
659
661
  K as ChaiBuilderPagesUserManagement,
660
- $ as LANGUAGES,
662
+ Z as LANGUAGES,
661
663
  G as getChaiCollection,
662
664
  R as getChaiCollections,
663
665
  g as getChaiPageType,
664
666
  v as getChaiPageTypes,
665
- J as registerChaiCollection,
667
+ $ as registerChaiCollection,
666
668
  F as registerChaiGlobalDataProvider,
667
669
  M as registerChaiPageType,
668
670
  N as registerChaiPartialType
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "author": "Suraj Air",
4
4
  "license": "Private",
5
5
  "homepage": "https://chaibuilder.com",
6
- "version": "0.15.7",
6
+ "version": "0.15.9",
7
7
  "type": "module",
8
8
  "files": [
9
9
  "dist"
@@ -65,7 +65,7 @@
65
65
  },
66
66
  "peerDependencies": {
67
67
  "@chaibuilder/runtime": "2.2.0",
68
- "@chaibuilder/sdk": "3.0.10",
68
+ "@chaibuilder/sdk": "3.0.12",
69
69
  "@types/react": "*",
70
70
  "@types/react-dom": "*",
71
71
  "jotai": "2.14.0",
@@ -82,7 +82,7 @@
82
82
  },
83
83
  "dependencies": {
84
84
  "@chaibuilder/runtime": "2.2.0",
85
- "@chaibuilder/sdk": "3.0.10",
85
+ "@chaibuilder/sdk": "3.0.12",
86
86
  "@mhsdesign/jit-browser-tailwindcss": "^0.4.2",
87
87
  "@radix-ui/react-icons": "^1.3.2",
88
88
  "@supabase/supabase-js": "2.50.3",