@chaibuilder/pages 0.5.0-beta.1 → 0.5.0-beta.2

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 B=Object.defineProperty;var M=(i,a,e)=>a in i?B(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var k=(i,a,e)=>M(i,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("@chaibuilder/runtime"),h=require("lodash-es"),P={},y=(i,a)=>{P[i]={key:i,...a,hasSlug:!0}},_=(i,a)=>{P[i]={key:i,...a,hasSlug:!1}},C=()=>Object.values(P),A=i=>P[i];let b=async i=>({...i});const I=i=>b=i,T=async i=>{try{return await b(i)}catch(a){return console.error(a),{}}};class R{constructor(a){this.backend=a}async upload({file:a,folderId:e,name:s},t){var o,c;return await((c=(o=this.backend).handleAssetsAction)==null?void 0:c.call(o,{action:"UPLOAD_ASSET",data:{name:s,file:a,folderId:e}},t))}async getAsset({id:a},e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"GET_ASSET",data:{id:a}},e)}async getAssets(a,e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"GET_ASSETS",data:a},e)}async deleteAsset({id:a},e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"DELETE_ASSET",data:{id:a}},e)}async updateAsset({id:a,file:e,description:s},t){var r,o;return(o=(r=this.backend).handleAssetsAction)==null?void 0:o.call(r,{action:"UPDATE_ASSET",data:{id:a,file:e,description:s}},t)}}class v{constructor(a){this.backend=a}async refreshToken(a){var s,t;const e=await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"REFRESH_TOKEN",data:a}));return e.error?{error:e.error}:e}async login({email:a,password:e}){var t,r;const s=await((r=(t=this.backend).handleUsersAction)==null?void 0:r.call(t,{action:"LOGIN",data:{email:a,password:e}}));return s.error?{error:s.error}:s}async logout(){var a,e;await((e=(a=this.backend).handleUsersAction)==null?void 0:e.call(a,{action:"LOGOUT"}))}async isUserActive(a){var s,t;return(await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"CHECK_USER_STATUS"},a))).success}async getUserRoleAndPermissions(a){var s,t;return await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"GET_ROLE_AND_PERMISSIONS"},a))}async getUserInfo(a,e){var t,r;return await((r=(t=this.backend).handleUsersAction)==null?void 0:r.call(t,{action:"GET_CHAI_USER",data:e},a))}}const G={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"},U={},H=()=>Object.values(U),L=i=>h.get(U,i);class K{constructor(a,e,s){k(this,"fallbackLang","");k(this,"currentLang","");k(this,"draftMode",!1);this.backend=a,this.chaiUsers=e,this.chaiAssets=s,this._registerDefaultPageTypes(),this.chaiUsers=e??new v(this.backend),this.chaiAssets=s??new R(this.backend)}_registerDefaultPageTypes(){y("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>'}),_("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-globe w-4 h-4 text-slate-500 stroke-[1]"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>'})}setFallbackLang(a){if(h.isEmpty(a))throw new Error("Fallback language cannot be empty");this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setCurrentLang(a){if(h.isEmpty(a))throw new Error("Current language cannot be empty");this.currentLang=a}getCurrentLang(){return this.currentLang}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async handle(a,e){var t,r,o,c,m,E,f,S,g,w,l;switch(a.action){case"UPLOAD_ASSET":return(t=this.chaiAssets)==null?void 0:t.upload({file:a.data.file,name:a.data.name,folderId:a.data.folderId??null,optimize:a.data.optimize??!0},e);case"GET_ASSET":return(r=this.chaiAssets)==null?void 0:r.getAsset(a.data,e);case"GET_ASSETS":return(o=this.chaiAssets)==null?void 0:o.getAssets(a.data,e);case"DELETE_ASSET":return(c=this.chaiAssets)==null?void 0:c.deleteAsset(a.data,e);case"UPDATE_ASSET":return(m=this.chaiAssets)==null?void 0:m.updateAsset(a.data,e);case"REFRESH_TOKEN":return(E=this.chaiUsers)==null?void 0:E.refreshToken(a.data);case"LOGIN":return(f=this.chaiUsers)==null?void 0:f.login(a.data);case"LOGOUT":return(S=this.chaiUsers)==null?void 0:S.logout();case"CHECK_USER_STATUS":return(g=this.chaiUsers)==null?void 0:g.isUserActive(e);case"GET_ROLE_AND_PERMISSIONS":return(w=this.chaiUsers)==null?void 0:w.getUserRoleAndPermissions(e);case"GET_CHAI_USER":return(l=this.chaiUsers)==null?void 0:l.getUserInfo(e,a.data)}if(a.action==="GET_BUILDER_PAGE_DATA"){const n=await T({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(C().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})));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,e):{error:"Page type not found"}}if(a.action==="GET_COLLECTIONS")return H().map(n=>h.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 d=n.repeaterItems.replace("{{#","").replace("}}",""),p=L(d);return p?await(p==null?void 0:p.fetch({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0}))??[]:[]}else{const d=O.getRegisteredChaiBlock(u);return!d||!h.isFunction(d.dataProvider)?{}:await d.dataProvider({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0})??{}}}const s=await this.backend.handleAction(a,e);return this.emit(a.action,s),s}emit(a,e){var r,o,c;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const s=h.get(e,"page");if(!s)return;const t=A(s.pageType);if(t)switch(a){case"CREATE_PAGE":return(r=t.onCreate)==null?void 0:r.call(t,s);case"UPDATE_PAGE":return(o=t.onUpdate)==null?void 0:o.call(t,s);case"DELETE_PAGE":return(c=t.onDelete)==null?void 0:c.call(t,s)}}setLanguageFromSlug(a){if(!this.getFallbackLang())throw new Error("Please set a fallback language using setFallbackLang(lang: string)");const e=h.first(a||[""]);Object.keys(G).includes(e)?this.setCurrentLang(e):this.setCurrentLang(this.getFallbackLang())}async resolvePageLink(a){if(!h.startsWith(a,"pageType:"))return a;const e=a.split(":")[1],s=a.split(":")[2],t=A(e);return t?await this.resolveLink(t.key,s):a}async resolveLink(a,e){const s=A(a);if(!s)return"/not-found";const t=this.isDraftMode(),r=this.getCurrentLang()===this.getFallbackLang()?"":this.getCurrentLang();return s.resolveLink?await s.resolveLink(e,t,r):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:e,draft:t,lang:r}})}async getPageBySlug(a){const e=this.isDraftMode(),s={};return C().forEach(t=>{h.has(t,"dynamicSegments")&&t.dynamicSegments&&(s[t.key]=t.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:e,dynamicSegments:s}})}async getFullPage(a){const e=this.isDraftMode(),s=this.getCurrentLang(),t=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:t===s?void 0:s,draft:e,mergePartials:!0}})}async getSiteSettings(){const a=this.isDraftMode();return await this.backend.handleAction({action:"GET_WEBSITE_SETTINGS",data:{draft:a}})}async getPageData(a,e,s){var S;const t=this.isDraftMode(),r=this.getCurrentLang(),o=A(e),c=a.filter(g=>g._type==="Repeater"&&(g==null?void 0:g.repeaterItems.includes("{{#")));let m={};if(c.length>0){const g=c.map(l=>({collectionId:l.repeaterItems.replace("{{#","").replace("}}",""),block:l}));m=(await Promise.all(g.map(async({collectionId:l,block:n})=>{const u=L(l);try{const d=await(u==null?void 0:u.fetch({lang:r,draft:t,inBuilder:!1,pageProps:s,block:n}));return Promise.resolve({[`{{#${l}/${n._id}}}`]:d??[]})}catch{return Promise.resolve({[`{{#${l}/${n._id}}}`]:[]})}}))).reduce((l,n)=>({...l,...n}),{})}const[E,f]=await Promise.all([this.getGlobalData(),((S=o==null?void 0:o.dataProvider)==null?void 0:S.call(o,{lang:r,draft:t,inBuilder:!1,pageProps:s}))||Promise.resolve({})]);return o?{...f,global:E,...m}:{global:E,...m}}async getGlobalData(){const a=this.getCurrentLang();return await T({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class N{constructor(a="",e=D){this.apiKey=a,this.apiUrl=e}async handleUsersAction(a,e){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":e}}),t=await s.json();return h.has(t,"error")?{...t,status:s.status}:t}async handleAction(a,e){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":e}}),t=await s.json();return h.has(t,"error")?{...t,status:s.status}:t}async handleAssetsAction(a,e){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":e}})).json()}}const D="https://api.chaibuilder.com";exports.API_URL=D;exports.ChaiBuilderPages=K;exports.ChaiBuilderPagesBackend=N;exports.ChaiBuilderPagesUserManagement=v;exports.LANGUAGES=G;exports.getChaiGlobalData=T;exports.getChaiPageType=A;exports.getChaiPageTypes=C;exports.registerChaiGlobalDataProvider=I;exports.registerChaiPageType=y;exports.registerChaiPartialType=_;
1
+ "use strict";var B=Object.defineProperty;var M=(i,a,e)=>a in i?B(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var k=(i,a,e)=>M(i,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),O=require("@chaibuilder/runtime"),P={};function I(i,a){c.has(P,i)&&console.warn(`Collection ${i} already registered`),P[i]={...a,id:i}}const R=()=>Object.values(P),L=i=>c.get(P,i),w={},_=(i,a)=>{w[i]={key:i,...a,hasSlug:!0}},b=(i,a)=>{w[i]={key:i,...a,hasSlug:!1}},T=()=>Object.values(w),A=i=>w[i];let v=async i=>({...i});const H=i=>v=i,y=async i=>{try{return await v(i)}catch(a){return console.error(a),{}}};class K{constructor(a){this.backend=a}async upload({file:a,folderId:e,name:s},t){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:e}},t))}async getAsset({id:a},e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"GET_ASSET",data:{id:a}},e)}async getAssets(a,e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"GET_ASSETS",data:a},e)}async deleteAsset({id:a},e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"DELETE_ASSET",data:{id:a}},e)}async updateAsset({id:a,file:e,description:s},t){var r,o;return(o=(r=this.backend).handleAssetsAction)==null?void 0:o.call(r,{action:"UPDATE_ASSET",data:{id:a,file:e,description:s}},t)}}class G{constructor(a){this.backend=a}async refreshToken(a){var s,t;const e=await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"REFRESH_TOKEN",data:a}));return e.error?{error:e.error}:e}async login({email:a,password:e}){var t,r;const s=await((r=(t=this.backend).handleUsersAction)==null?void 0:r.call(t,{action:"LOGIN",data:{email:a,password:e}}));return s.error?{error:s.error}:s}async logout(){var a,e;await((e=(a=this.backend).handleUsersAction)==null?void 0:e.call(a,{action:"LOGOUT"}))}async isUserActive(a){var s,t;return(await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"CHECK_USER_STATUS"},a))).success}async getUserRoleAndPermissions(a){var s,t;return await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"GET_ROLE_AND_PERMISSIONS"},a))}async getUserInfo(a,e){var t,r;return await((r=(t=this.backend).handleUsersAction)==null?void 0:r.call(t,{action:"GET_CHAI_USER",data:e},a))}}const U={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"};class N{constructor(a,e,s){k(this,"fallbackLang","");k(this,"currentLang","");k(this,"draftMode",!1);this.backend=a,this.chaiUsers=e,this.chaiAssets=s,this._registerDefaultPageTypes(),this.chaiUsers=e??new G(this.backend),this.chaiAssets=s??new K(this.backend)}_registerDefaultPageTypes(){_("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>'}),b("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-globe w-4 h-4 text-slate-500 stroke-[1]"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>'})}setFallbackLang(a){if(c.isEmpty(a))throw new Error("Fallback language cannot be empty");this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setCurrentLang(a){if(c.isEmpty(a))throw new Error("Current language cannot be empty");this.currentLang=a}getCurrentLang(){return this.currentLang}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async handle(a,e){var t,r,o,l,m,f,S,E,g,C,h;switch(a.action){case"UPLOAD_ASSET":return(t=this.chaiAssets)==null?void 0:t.upload({file:a.data.file,name:a.data.name,folderId:a.data.folderId??null,optimize:a.data.optimize??!0},e);case"GET_ASSET":return(r=this.chaiAssets)==null?void 0:r.getAsset(a.data,e);case"GET_ASSETS":return(o=this.chaiAssets)==null?void 0:o.getAssets(a.data,e);case"DELETE_ASSET":return(l=this.chaiAssets)==null?void 0:l.deleteAsset(a.data,e);case"UPDATE_ASSET":return(m=this.chaiAssets)==null?void 0:m.updateAsset(a.data,e);case"REFRESH_TOKEN":return(f=this.chaiUsers)==null?void 0:f.refreshToken(a.data);case"LOGIN":return(S=this.chaiUsers)==null?void 0:S.login(a.data);case"LOGOUT":return(E=this.chaiUsers)==null?void 0:E.logout();case"CHECK_USER_STATUS":return(g=this.chaiUsers)==null?void 0:g.isUserActive(e);case"GET_ROLE_AND_PERMISSIONS":return(C=this.chaiUsers)==null?void 0:C.getUserRoleAndPermissions(e);case"GET_CHAI_USER":return(h=this.chaiUsers)==null?void 0:h.getUserInfo(e,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})));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,e):{error:"Page type not found"}}if(a.action==="GET_COLLECTIONS")return R().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 d=n.repeaterItems.replace("{{#","").replace("}}",""),p=L(d);return p?await(p==null?void 0:p.fetch({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0}))??[]:[]}else{const d=O.getRegisteredChaiBlock(u);return!d||!c.isFunction(d.dataProvider)?{}:await d.dataProvider({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0})??{}}}const s=await this.backend.handleAction(a,e);return this.emit(a.action,s),s}emit(a,e){var r,o,l;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const s=c.get(e,"page");if(!s)return;const t=A(s.pageType);if(t)switch(a){case"CREATE_PAGE":return(r=t.onCreate)==null?void 0:r.call(t,s);case"UPDATE_PAGE":return(o=t.onUpdate)==null?void 0:o.call(t,s);case"DELETE_PAGE":return(l=t.onDelete)==null?void 0:l.call(t,s)}}setLanguageFromSlug(a){if(!this.getFallbackLang())throw new Error("Please set a fallback language using setFallbackLang(lang: string)");const e=c.first(a||[""]);Object.keys(U).includes(e)?this.setCurrentLang(e):this.setCurrentLang(this.getFallbackLang())}async resolvePageLink(a){if(!c.startsWith(a,"pageType:"))return a;const e=a.split(":")[1],s=a.split(":")[2],t=A(e);return t?await this.resolveLink(t.key,s):a}async resolveLink(a,e){const s=A(a);if(!s)return"/not-found";const t=this.isDraftMode(),r=this.getCurrentLang()===this.getFallbackLang()?"":this.getCurrentLang();return s.resolveLink?await s.resolveLink(e,t,r):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:e,draft:t,lang:r}})}async getPageBySlug(a){const e=this.isDraftMode(),s={};return T().forEach(t=>{c.has(t,"dynamicSegments")&&t.dynamicSegments&&(s[t.key]=t.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:e,dynamicSegments:s}})}async getFullPage(a){const e=this.isDraftMode(),s=this.getCurrentLang(),t=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:t===s?void 0:s,draft:e,mergePartials:!0}})}async getSiteSettings(){const a=this.isDraftMode();return await this.backend.handleAction({action:"GET_WEBSITE_SETTINGS",data:{draft:a}})}async getPageData(a,e,s){var E;const t=this.isDraftMode(),r=this.getCurrentLang(),o=A(e),l=a.filter(g=>g._type==="Repeater"&&(g==null?void 0:g.repeaterItems.includes("{{#")));let m={};if(l.length>0){const g=l.map(h=>({collectionId:h.repeaterItems.replace("{{#","").replace("}}",""),block:h}));m=(await Promise.all(g.map(async({collectionId:h,block:n})=>{const u=L(h);try{const d=await(u==null?void 0:u.fetch({lang:r,draft:t,inBuilder:!1,pageProps:s,block:n}));return Promise.resolve({[`{{#${h}/${n._id}}}`]:d??[]})}catch{return Promise.resolve({[`{{#${h}/${n._id}}}`]:[]})}}))).reduce((h,n)=>({...h,...n}),{})}const[f,S]=await Promise.all([this.getGlobalData(),((E=o==null?void 0:o.dataProvider)==null?void 0:E.call(o,{lang:r,draft:t,inBuilder:!1,pageProps:s}))||Promise.resolve({})]);return o?{...S,global:f,...m}:{global:f,...m}}async getGlobalData(){const a=this.getCurrentLang();return await y({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class j{constructor(a="",e=D){this.apiKey=a,this.apiUrl=e}async handleUsersAction(a,e){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":e}}),t=await s.json();return c.has(t,"error")?{...t,status:s.status}:t}async handleAction(a,e){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":e}}),t=await s.json();return c.has(t,"error")?{...t,status:s.status}:t}async handleAssetsAction(a,e){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":e}})).json()}}const D="https://api.chaibuilder.com";exports.API_URL=D;exports.ChaiBuilderPages=N;exports.ChaiBuilderPagesBackend=j;exports.ChaiBuilderPagesUserManagement=G;exports.LANGUAGES=U;exports.getChaiGlobalData=y;exports.getChaiPageType=A;exports.getChaiPageTypes=T;exports.registerChaiCollection=I;exports.registerChaiGlobalDataProvider=H;exports.registerChaiPageType=_;exports.registerChaiPartialType=b;
package/dist/server.d.ts CHANGED
@@ -70,6 +70,7 @@ export declare class ChaiBuilderPages implements ChaiBuilderPagesInterface {
70
70
  getPageData(blocks: ChaiBlock[], pageType: string, pageProps: {
71
71
  slug: string;
72
72
  params?: Record<string, string>;
73
+ [key: string]: any;
73
74
  }): Promise<{
74
75
  global: any;
75
76
  }>;
@@ -234,6 +235,33 @@ export declare type ChaiWebsiteSetting = {
234
235
  theme: Record<"fontFamily" | "borderRadius" | "colors", any>;
235
236
  };
236
237
 
238
+ declare interface CollectionConfig<T> {
239
+ id: string;
240
+ name: string;
241
+ icon?: string;
242
+ filters?: {
243
+ id: string;
244
+ name: string;
245
+ }[];
246
+ sort?: {
247
+ id: string;
248
+ name: string;
249
+ }[];
250
+ fetch: (params: CollectionFetchParams) => Promise<T[]>;
251
+ }
252
+
253
+ declare type CollectionFetchParams = {
254
+ block: ChaiBlock;
255
+ inBuilder: boolean;
256
+ draft: boolean;
257
+ lang: string;
258
+ pageProps: {
259
+ slug: string;
260
+ params?: Record<string, string>;
261
+ [key: string]: any;
262
+ };
263
+ };
264
+
237
265
  export declare const getChaiGlobalData: (args: {
238
266
  lang: string;
239
267
  draft: boolean;
@@ -265,6 +293,8 @@ export declare type PageTypeSearchResult = {
265
293
  slug?: string;
266
294
  };
267
295
 
296
+ export declare function registerChaiCollection<T = Record<any, any>>(id: string, collection: Omit<CollectionConfig<T>, "id">): void;
297
+
268
298
  export declare const registerChaiGlobalDataProvider: <T>(globalDataProvider: (args: {
269
299
  lang: string;
270
300
  draft: boolean;
package/dist/server.js CHANGED
@@ -1,24 +1,28 @@
1
1
  var G = Object.defineProperty;
2
2
  var U = (i, a, e) => a in i ? G(i, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[a] = e;
3
3
  var p = (i, a, e) => U(i, typeof a != "symbol" ? a + "" : a, e);
4
- import { getRegisteredChaiBlock as D } from "@chaibuilder/runtime";
5
- import { get as b, isEmpty as T, omit as M, isFunction as O, first as B, startsWith as I, has as P } from "lodash-es";
6
- const k = {}, H = (i, a) => {
7
- k[i] = { key: i, ...a, hasSlug: !0 };
8
- }, K = (i, a) => {
9
- k[i] = { key: i, ...a, hasSlug: !1 };
10
- }, C = () => Object.values(k), A = (i) => k[i];
11
- let y = async (i) => ({
4
+ import { has as k, get as y, isEmpty as T, omit as D, isFunction as M, first as O, startsWith as B } from "lodash-es";
5
+ import { getRegisteredChaiBlock as I } from "@chaibuilder/runtime";
6
+ const w = {};
7
+ function $(i, a) {
8
+ k(w, i) && console.warn(`Collection ${i} already registered`), w[i] = { ...a, id: i };
9
+ }
10
+ const H = () => Object.values(w), L = (i) => y(w, i), P = {}, K = (i, a) => {
11
+ P[i] = { key: i, ...a, hasSlug: !0 };
12
+ }, R = (i, a) => {
13
+ P[i] = { key: i, ...a, hasSlug: !1 };
14
+ }, _ = () => Object.values(P), A = (i) => P[i];
15
+ let v = async (i) => ({
12
16
  ...i
13
17
  });
14
- const Y = (i) => y = i, L = async (i) => {
18
+ const Y = (i) => v = i, b = async (i) => {
15
19
  try {
16
- return await y(i);
20
+ return await v(i);
17
21
  } catch (a) {
18
22
  return console.error(a), {};
19
23
  }
20
24
  };
21
- class R {
25
+ class N {
22
26
  constructor(a) {
23
27
  this.backend = a;
24
28
  }
@@ -87,7 +91,7 @@ class R {
87
91
  );
88
92
  }
89
93
  }
90
- class N {
94
+ class j {
91
95
  constructor(a) {
92
96
  this.backend = a;
93
97
  }
@@ -148,7 +152,7 @@ class N {
148
152
  ));
149
153
  }
150
154
  }
151
- const j = {
155
+ const F = {
152
156
  ab: "Abkhazian",
153
157
  aa: "Afar",
154
158
  af: "Afrikaans",
@@ -336,19 +340,19 @@ const j = {
336
340
  yo: "Yoruba",
337
341
  za: "Zhuang, Chuang",
338
342
  zu: "Zulu"
339
- }, v = {}, F = () => Object.values(v), _ = (i) => b(v, i);
340
- class $ {
343
+ };
344
+ class W {
341
345
  constructor(a, e, n) {
342
346
  p(this, "fallbackLang", "");
343
347
  p(this, "currentLang", "");
344
348
  p(this, "draftMode", !1);
345
- this.backend = a, this.chaiUsers = e, this.chaiAssets = n, this._registerDefaultPageTypes(), this.chaiUsers = e ?? new N(this.backend), this.chaiAssets = n ?? new R(this.backend);
349
+ this.backend = a, this.chaiUsers = e, this.chaiAssets = n, this._registerDefaultPageTypes(), this.chaiUsers = e ?? new j(this.backend), this.chaiAssets = n ?? new N(this.backend);
346
350
  }
347
351
  _registerDefaultPageTypes() {
348
- H("page", {
352
+ K("page", {
349
353
  name: "Static Page",
350
354
  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>'
351
- }), K("global", {
355
+ }), R("global", {
352
356
  name: "Global Block",
353
357
  helpText: "A global block can be reused in multiple pages.",
354
358
  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-globe w-4 h-4 text-slate-500 stroke-[1]"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>'
@@ -377,7 +381,7 @@ class $ {
377
381
  return this.draftMode;
378
382
  }
379
383
  async handle(a, e) {
380
- var t, r, o, c, d, m, E, f, u, w, l;
384
+ var t, r, o, c, d, m, E, f, u, C, l;
381
385
  switch (a.action) {
382
386
  // Media
383
387
  case "UPLOAD_ASSET":
@@ -418,7 +422,7 @@ class $ {
418
422
  case "CHECK_USER_STATUS":
419
423
  return (u = this.chaiUsers) == null ? void 0 : u.isUserActive(e);
420
424
  case "GET_ROLE_AND_PERMISSIONS":
421
- return (w = this.chaiUsers) == null ? void 0 : w.getUserRoleAndPermissions(e);
425
+ return (C = this.chaiUsers) == null ? void 0 : C.getUserRoleAndPermissions(e);
422
426
  case "GET_CHAI_USER":
423
427
  return (l = this.chaiUsers) == null ? void 0 : l.getUserInfo(
424
428
  e,
@@ -426,7 +430,7 @@ class $ {
426
430
  );
427
431
  }
428
432
  if (a.action === "GET_BUILDER_PAGE_DATA") {
429
- const s = await L({
433
+ const s = await b({
430
434
  lang: a.data.lang,
431
435
  draft: !0,
432
436
  inBuilder: !0
@@ -445,7 +449,7 @@ class $ {
445
449
  }
446
450
  if (a.action === "GET_PAGE_TYPES")
447
451
  return Promise.all(
448
- C().map(async (s) => ({
452
+ _().map(async (s) => ({
449
453
  key: s.key,
450
454
  helpText: s.helpText ?? "",
451
455
  icon: s.icon ?? "",
@@ -462,13 +466,13 @@ class $ {
462
466
  return s ? s.search ? await s.search(a.data.query) : this.backend.handleAction(a, e) : { error: "Page type not found" };
463
467
  }
464
468
  if (a.action === "GET_COLLECTIONS")
465
- return F().map(
466
- (s) => M(s, "fetch")
469
+ return H().map(
470
+ (s) => D(s, "fetch")
467
471
  );
468
472
  if (a.action === "GET_BLOCK_ASYNC_PROPS") {
469
473
  const s = a.data.block, h = s._type;
470
474
  if (h === "Repeater" && (s != null && s.repeaterItems.includes("{{#"))) {
471
- const g = s.repeaterItems.replace("{{#", "").replace("}}", ""), S = _(g);
475
+ const g = s.repeaterItems.replace("{{#", "").replace("}}", ""), S = L(g);
472
476
  return S ? await (S == null ? void 0 : S.fetch({
473
477
  block: s,
474
478
  pageProps: a.data.pageProps,
@@ -477,8 +481,8 @@ class $ {
477
481
  inBuilder: !0
478
482
  })) ?? [] : [];
479
483
  } else {
480
- const g = D(h);
481
- return !g || !O(g.dataProvider) ? {} : await g.dataProvider({
484
+ const g = I(h);
485
+ return !g || !M(g.dataProvider) ? {} : await g.dataProvider({
482
486
  block: s,
483
487
  pageProps: a.data.pageProps,
484
488
  lang: a.data.lang,
@@ -493,7 +497,7 @@ class $ {
493
497
  emit(a, e) {
494
498
  var r, o, c;
495
499
  if (!["CREATE_PAGE", "UPDATE_PAGE", "DELETE_PAGE"].includes(a)) return;
496
- const n = b(e, "page");
500
+ const n = y(e, "page");
497
501
  if (!n) return;
498
502
  const t = A(n.pageType);
499
503
  if (t)
@@ -512,8 +516,8 @@ class $ {
512
516
  throw new Error(
513
517
  "Please set a fallback language using setFallbackLang(lang: string)"
514
518
  );
515
- const e = B(a || [""]);
516
- Object.keys(j).includes(e) ? this.setCurrentLang(e) : this.setCurrentLang(this.getFallbackLang());
519
+ const e = O(a || [""]);
520
+ Object.keys(F).includes(e) ? this.setCurrentLang(e) : this.setCurrentLang(this.getFallbackLang());
517
521
  }
518
522
  /**
519
523
  * Resolve a page link
@@ -521,7 +525,7 @@ class $ {
521
525
  * @returns The resolved link
522
526
  */
523
527
  async resolvePageLink(a) {
524
- if (!I(a, "pageType:"))
528
+ if (!B(a, "pageType:"))
525
529
  return a;
526
530
  const e = a.split(":")[1], n = a.split(":")[2], t = A(e);
527
531
  return t ? await this.resolveLink(t.key, n) : a;
@@ -543,8 +547,8 @@ class $ {
543
547
  }
544
548
  async getPageBySlug(a) {
545
549
  const e = this.isDraftMode(), n = {};
546
- return C().forEach((t) => {
547
- P(t, "dynamicSegments") && t.dynamicSegments && (n[t.key] = t.dynamicSegments);
550
+ return _().forEach((t) => {
551
+ k(t, "dynamicSegments") && t.dynamicSegments && (n[t.key] = t.dynamicSegments);
548
552
  }), await this.backend.handleAction({
549
553
  action: "GET_PAGE_META",
550
554
  data: { slug: a, draft: e, dynamicSegments: n }
@@ -579,7 +583,7 @@ class $ {
579
583
  const u = c.map((l) => ({ collectionId: l.repeaterItems.replace("{{#", "").replace("}}", ""), block: l }));
580
584
  d = (await Promise.all(
581
585
  u.map(async ({ collectionId: l, block: s }) => {
582
- const h = _(l);
586
+ const h = L(l);
583
587
  try {
584
588
  const g = await (h == null ? void 0 : h.fetch({
585
589
  lang: r,
@@ -616,7 +620,7 @@ class $ {
616
620
  }
617
621
  async getGlobalData() {
618
622
  const a = this.getCurrentLang();
619
- return await L({
623
+ return await b({
620
624
  lang: a,
621
625
  draft: this.isDraftMode(),
622
626
  inBuilder: !1
@@ -626,7 +630,7 @@ class $ {
626
630
  return await this.backend.handleAction(a);
627
631
  }
628
632
  }
629
- class W {
633
+ class q {
630
634
  constructor(a = "", e = x) {
631
635
  this.apiKey = a, this.apiUrl = e;
632
636
  }
@@ -639,7 +643,7 @@ class W {
639
643
  "x-chai-auth-token": e
640
644
  }
641
645
  }), t = await n.json();
642
- return P(t, "error") ? { ...t, status: n.status } : t;
646
+ return k(t, "error") ? { ...t, status: n.status } : t;
643
647
  }
644
648
  async handleAction(a, e) {
645
649
  const n = await fetch(`${this.apiUrl}/v1/api/chai`, {
@@ -650,7 +654,7 @@ class W {
650
654
  "x-chai-auth-token": e
651
655
  }
652
656
  }), t = await n.json();
653
- return P(t, "error") ? { ...t, status: n.status } : t;
657
+ return k(t, "error") ? { ...t, status: n.status } : t;
654
658
  }
655
659
  async handleAssetsAction(a, e) {
656
660
  return await (await fetch(`${this.apiUrl}/v1/api/assets`, {
@@ -666,14 +670,15 @@ class W {
666
670
  const x = "https://api.chaibuilder.com";
667
671
  export {
668
672
  x as API_URL,
669
- $ as ChaiBuilderPages,
670
- W as ChaiBuilderPagesBackend,
671
- N as ChaiBuilderPagesUserManagement,
672
- j as LANGUAGES,
673
- L as getChaiGlobalData,
673
+ W as ChaiBuilderPages,
674
+ q as ChaiBuilderPagesBackend,
675
+ j as ChaiBuilderPagesUserManagement,
676
+ F as LANGUAGES,
677
+ b as getChaiGlobalData,
674
678
  A as getChaiPageType,
675
- C as getChaiPageTypes,
679
+ _ as getChaiPageTypes,
680
+ $ as registerChaiCollection,
676
681
  Y as registerChaiGlobalDataProvider,
677
- H as registerChaiPageType,
678
- K as registerChaiPartialType
682
+ K as registerChaiPageType,
683
+ R as registerChaiPartialType
679
684
  };
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.5.0-beta.1",
6
+ "version": "0.5.0-beta.2",
7
7
  "type": "module",
8
8
  "files": [
9
9
  "dist"