@chaibuilder/pages 0.5.0-beta.6 → 0.5.1

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/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index-DLGUDmIx.cjs"),t=require("@chaibuilder/sdk");exports.PermissionChecker=e.PermissionChecker;exports.default=e.ChaiBuilderPages;exports.registerChaiLoginComponent=e.registerLoginComponent;exports.useChaiAuth=e.useChaiAuth;exports.useChaiCurrentPage=e.useCurrentPage;exports.useChaiFetch=e.useChaiFetch;exports.useChaiUserInfo=e.useChaiUserInfo;exports.useFetch=e.useFetch;exports.useLanguagePages=e.useLanguagePages;exports.useUserPermissions=e.useUserRoleAndPermissions;exports.useWebsitePages=e.useWebsitePages;exports.useWebsiteSetting=e.useWebsiteSetting;Object.keys(t).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>t[s]})});
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index-BV5BWsTF.cjs"),t=require("@chaibuilder/sdk");exports.PermissionChecker=e.PermissionChecker;exports.default=e.ChaiBuilderPages;exports.registerChaiLoginComponent=e.registerLoginComponent;exports.useChaiAuth=e.useChaiAuth;exports.useChaiCurrentPage=e.useCurrentPage;exports.useChaiFetch=e.useChaiFetch;exports.useChaiUserInfo=e.useChaiUserInfo;exports.useFetch=e.useFetch;exports.useLanguagePages=e.useLanguagePages;exports.useUserPermissions=e.useUserRoleAndPermissions;exports.useWebsitePages=e.useWebsitePages;exports.useWebsiteSetting=e.useWebsiteSetting;Object.keys(t).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>t[s]})});
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a0 as s, _ as i, a1 as r, a6 as t, a2 as u, a8 as o, a9 as h, X as n, a3 as g, a7 as C, a4 as m, a5 as P } from "./index-D4JrrudL.js";
1
+ import { a0 as s, _ as i, a1 as r, a6 as t, a2 as u, a8 as o, a9 as h, X as n, a3 as g, a7 as C, a4 as m, a5 as P } from "./index-TNPTcXFM.js";
2
2
  export * from "@chaibuilder/sdk";
3
3
  export {
4
4
  s as PermissionChecker,
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 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;
1
+ "use strict";var G=Object.defineProperty;var U=(i,a,e)=>a in i?G(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var p=(i,a,e)=>U(i,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),B=require("@chaibuilder/runtime"),w={};function D(i,a){c.has(w,i)&&console.warn(`Collection ${i} already registered`),w[i]={...a,id:i}}const M=()=>Object.values(w),T=i=>c.get(w,i),y={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"};let O=async i=>({...i});const L=async i=>{try{return await O(i)}catch(a){return console.error(a),{}}},P={},_=()=>Object.values(P),m=i=>P[i],I=(i,a)=>{P[i]={key:i,...a,hasSlug:!0}},R=(i,a)=>{P[i]={key:i,...a,hasSlug:!1}};class H{constructor(a){this.backend=a}async upload({file:a,folderId:e,name:n},t){var o,l;return await((l=(o=this.backend).handleAssetsAction)==null?void 0:l.call(o,{action:"UPLOAD_ASSET",data:{name:n,file:a,folderId:e}},t))}async getAsset({id:a},e){var n,t;return(t=(n=this.backend).handleAssetsAction)==null?void 0:t.call(n,{action:"GET_ASSET",data:{id:a}},e)}async getAssets(a,e){var n,t;return(t=(n=this.backend).handleAssetsAction)==null?void 0:t.call(n,{action:"GET_ASSETS",data:a},e)}async deleteAsset({id:a},e){var n,t;return(t=(n=this.backend).handleAssetsAction)==null?void 0:t.call(n,{action:"DELETE_ASSET",data:{id:a}},e)}async updateAsset({id:a,file:e,description:n},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:n}},t)}}class b{constructor(a){this.backend=a}async refreshToken(a){var n,t;const e=await((t=(n=this.backend).handleUsersAction)==null?void 0:t.call(n,{action:"REFRESH_TOKEN",data:a}));return e.error?{error:e.error}:e}async login({email:a,password:e}){var t,r;const n=await((r=(t=this.backend).handleUsersAction)==null?void 0:r.call(t,{action:"LOGIN",data:{email:a,password:e}}));return n.error?{error:n.error}:n}async logout(){var a,e;await((e=(a=this.backend).handleUsersAction)==null?void 0:e.call(a,{action:"LOGOUT"}))}async isUserActive(a){var n,t;return(await((t=(n=this.backend).handleUsersAction)==null?void 0:t.call(n,{action:"CHECK_USER_STATUS"},a))).success}async getUserRoleAndPermissions(a){var n,t;return await((t=(n=this.backend).handleUsersAction)==null?void 0:t.call(n,{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))}}class K{constructor(a,e,n){p(this,"fallbackLang","");p(this,"currentLang","");p(this,"draftMode",!1);this.backend=a,this.chaiUsers=e,this.chaiAssets=n,this._registerDefaultPageTypes(),this.chaiUsers=e??new b(this.backend),this.chaiAssets=n??new H(this.backend)}_registerDefaultPageTypes(){I("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>'}),R("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,A,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(A=this.chaiAssets)==null?void 0:A.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 s=await L({lang:a.data.lang,draft:!0,inBuilder:!0}),u=m(a.data.pageType);return u?{...u.dataProvider?await u.dataProvider({lang:a.data.lang,draft:!0,inBuilder:!0,pageProps:a.data.pageProps??{}}):{},global:s}:{global:s}}if(a.action==="GET_PAGE_TYPES")return Promise.all(_().map(async s=>({key:s.key,helpText:s.helpText??"",icon:s.icon??"",dynamicSegments:s.dynamicSegments??"",dynamicSlug:s.dynamicSlug??"",hasSlug:s.hasSlug??!0,name:typeof s.name=="function"?await s.name():s.name})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const s=m(a.data.pageType);return s?s.search?await s.search(a.data.query):this.backend.handleAction(a,e):{error:"Page type not found"}}if(a.action==="GET_COLLECTIONS")return M().map(s=>c.omit(s,"fetch"));if(a.action==="GET_BLOCK_ASYNC_PROPS"){const s=a.data.block,u=s._type;if(u==="Repeater"&&(s!=null&&s.repeaterItems.includes("{{#"))){const d=s.repeaterItems.replace("{{#","").replace("}}",""),k=T(d);return k?await(k==null?void 0:k.fetch({block:s,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0}))??[]:[]}else{const d=B.getRegisteredChaiBlock(u);return!d||!c.isFunction(d.dataProvider)?{}:await d.dataProvider({block:s,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0})??{}}}const n=await this.backend.handleAction(a,e);return this.emit(a.action,n),n}emit(a,e){var r,o,l;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const n=c.get(e,"page");if(!n)return;const t=m(n.pageType);if(t)switch(a){case"CREATE_PAGE":return(r=t.onCreate)==null?void 0:r.call(t,n);case"UPDATE_PAGE":return(o=t.onUpdate)==null?void 0:o.call(t,n);case"DELETE_PAGE":return(l=t.onDelete)==null?void 0:l.call(t,n)}}setLanguageFromSlug(a){if(!this.getFallbackLang())throw new Error("Please set a fallback language using setFallbackLang(lang: string)");const e=c.first(a||[""]);Object.keys(y).includes(e)?this.setCurrentLang(e):this.setCurrentLang(this.getFallbackLang())}async resolvePageLink(a){if(!c.startsWith(a,"pageType:"))return a;const e=a.split(":")[1],n=a.split(":")[2],t=m(e);return t?await this.resolveLink(t.key,n):a}async resolveLink(a,e){const n=m(a);if(!n)return"/not-found";const t=this.isDraftMode(),r=this.getCurrentLang()===this.getFallbackLang()?"":this.getCurrentLang();return n.resolveLink?await n.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(),n={};return _().forEach(t=>{c.has(t,"dynamicSegments")&&t.dynamicSegments&&(n[t.key]=t.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:e,dynamicSegments:n}})}async getFullPage(a){const e=this.isDraftMode(),n=this.getCurrentLang(),t=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:t===n?void 0:n,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,n){var E;const t=this.isDraftMode(),r=this.getCurrentLang(),o=m(e),l=a.filter(g=>g._type==="Repeater"&&(g==null?void 0:g.repeaterItems.includes("{{#")));let A={};if(l.length>0){const g=l.map(h=>({collectionId:h.repeaterItems.replace("{{#","").replace("}}",""),block:h}));A=(await Promise.all(g.map(async({collectionId:h,block:s})=>{const u=T(h);try{const d=await(u==null?void 0:u.fetch({lang:r,draft:t,inBuilder:!1,pageProps:n,block:s}));return Promise.resolve({[`#${h}/${s._id}`]:d??[]})}catch{return Promise.resolve({[`#${h}/${s._id}`]:[]})}}))).reduce((h,s)=>({...h,...s}),{})}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:n}))||Promise.resolve({})]);return o?{...S,global:f,...A}:{global:f,...A}}async getGlobalData(){const a=this.getCurrentLang();return await L({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class N{constructor(a="",e=v){this.apiKey=a,this.apiUrl=e}async handleUsersAction(a,e){const n=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 n.json();return c.has(t,"error")?{...t,status:n.status}:t}async handleAction(a,e){const n=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 n.json();return c.has(t,"error")?{...t,status:n.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 v="https://api.chaibuilder.com";exports.API_URL=v;exports.ChaiBuilderPages=K;exports.ChaiBuilderPagesBackend=N;exports.ChaiBuilderPagesUserManagement=b;exports.LANGUAGES=y;exports.registerChaiCollection=D;
package/dist/server.d.ts CHANGED
@@ -262,16 +262,6 @@ declare type CollectionFetchParams = {
262
262
  };
263
263
  };
264
264
 
265
- export declare const getChaiGlobalData: (args: {
266
- lang: string;
267
- draft: boolean;
268
- inBuilder: boolean;
269
- }) => Promise<any>;
270
-
271
- export declare const getChaiPageType: (key: keyof typeof PAGE_TYPES) => ChaiBuilderPageType;
272
-
273
- export declare const getChaiPageTypes: () => ChaiBuilderPageType[];
274
-
275
265
  export declare const LANGUAGES: {
276
266
  [key: string]: string;
277
267
  };
@@ -285,8 +275,6 @@ export declare interface LoggedInUser {
285
275
  avatar?: string;
286
276
  }
287
277
 
288
- declare const PAGE_TYPES: Record<string, ChaiBuilderPageType>;
289
-
290
278
  export declare type PageTypeSearchResult = {
291
279
  id: string;
292
280
  name: string;
@@ -295,18 +283,4 @@ export declare type PageTypeSearchResult = {
295
283
 
296
284
  export declare function registerChaiCollection<T = Record<any, any>>(id: string, collection: Omit<CollectionConfig<T>, "id">): void;
297
285
 
298
- export declare const registerChaiGlobalDataProvider: <T>(globalDataProvider: (args: {
299
- lang: string;
300
- draft: boolean;
301
- inBuilder: boolean;
302
- }) => Promise<T>) => (args: {
303
- lang: string;
304
- draft: boolean;
305
- inBuilder: boolean;
306
- }) => Promise<T>;
307
-
308
- export declare const registerChaiPageType: (key: string, pageTypeOptions: Omit<ChaiBuilderPageType, "key">) => void;
309
-
310
- export declare const registerChaiPartialType: (key: string, pageTypeOptions: Omit<ChaiBuilderPageType, "key">) => void;
311
-
312
286
  export { }
package/dist/server.js CHANGED
@@ -1,158 +1,13 @@
1
- var G = Object.defineProperty;
2
- var U = (i, a, e) => a in i ? G(i, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[a] = e;
3
- var p = (i, a, e) => U(i, typeof a != "symbol" ? a + "" : a, e);
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";
1
+ var v = Object.defineProperty;
2
+ var G = (i, a, e) => a in i ? v(i, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[a] = e;
3
+ var p = (i, a, e) => G(i, typeof a != "symbol" ? a + "" : a, e);
4
+ import { has as k, get as y, isEmpty as T, omit as U, isFunction as D, first as M, startsWith as O } from "lodash-es";
5
+ import { getRegisteredChaiBlock as B } from "@chaibuilder/runtime";
6
6
  const w = {};
7
7
  function $(i, a) {
8
8
  k(w, i) && console.warn(`Collection ${i} already registered`), w[i] = { ...a, id: i };
9
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) => ({
16
- ...i
17
- });
18
- const Y = (i) => v = i, b = async (i) => {
19
- try {
20
- return await v(i);
21
- } catch (a) {
22
- return console.error(a), {};
23
- }
24
- };
25
- class N {
26
- constructor(a) {
27
- this.backend = a;
28
- }
29
- async upload({
30
- file: a,
31
- folderId: e,
32
- name: n
33
- }, t) {
34
- var o, c;
35
- return await ((c = (o = this.backend).handleAssetsAction) == null ? void 0 : c.call(
36
- o,
37
- {
38
- action: "UPLOAD_ASSET",
39
- data: {
40
- name: n,
41
- file: a,
42
- folderId: e
43
- }
44
- },
45
- t
46
- ));
47
- }
48
- async getAsset({ id: a }, e) {
49
- var n, t;
50
- return (t = (n = this.backend).handleAssetsAction) == null ? void 0 : t.call(
51
- n,
52
- { action: "GET_ASSET", data: { id: a } },
53
- e
54
- );
55
- }
56
- async getAssets(a, e) {
57
- var n, t;
58
- return (t = (n = this.backend).handleAssetsAction) == null ? void 0 : t.call(
59
- n,
60
- {
61
- action: "GET_ASSETS",
62
- data: a
63
- },
64
- e
65
- );
66
- }
67
- async deleteAsset({ id: a }, e) {
68
- var n, t;
69
- return (t = (n = this.backend).handleAssetsAction) == null ? void 0 : t.call(
70
- n,
71
- {
72
- action: "DELETE_ASSET",
73
- data: { id: a }
74
- },
75
- e
76
- );
77
- }
78
- async updateAsset({
79
- id: a,
80
- file: e,
81
- description: n
82
- }, t) {
83
- var r, o;
84
- return (o = (r = this.backend).handleAssetsAction) == null ? void 0 : o.call(
85
- r,
86
- {
87
- action: "UPDATE_ASSET",
88
- data: { id: a, file: e, description: n }
89
- },
90
- t
91
- );
92
- }
93
- }
94
- class j {
95
- constructor(a) {
96
- this.backend = a;
97
- }
98
- async refreshToken(a) {
99
- var n, t;
100
- const e = await ((t = (n = this.backend).handleUsersAction) == null ? void 0 : t.call(n, {
101
- action: "REFRESH_TOKEN",
102
- data: a
103
- }));
104
- return e.error ? { error: e.error } : e;
105
- }
106
- async login({
107
- email: a,
108
- password: e
109
- }) {
110
- var t, r;
111
- const n = await ((r = (t = this.backend).handleUsersAction) == null ? void 0 : r.call(t, {
112
- action: "LOGIN",
113
- data: { email: a, password: e }
114
- }));
115
- return n.error ? { error: n.error } : n;
116
- }
117
- async logout() {
118
- var a, e;
119
- await ((e = (a = this.backend).handleUsersAction) == null ? void 0 : e.call(a, {
120
- action: "LOGOUT"
121
- }));
122
- }
123
- async isUserActive(a) {
124
- var n, t;
125
- return (await ((t = (n = this.backend).handleUsersAction) == null ? void 0 : t.call(
126
- n,
127
- {
128
- action: "CHECK_USER_STATUS"
129
- },
130
- a
131
- ))).success;
132
- }
133
- async getUserRoleAndPermissions(a) {
134
- var n, t;
135
- return await ((t = (n = this.backend).handleUsersAction) == null ? void 0 : t.call(
136
- n,
137
- {
138
- action: "GET_ROLE_AND_PERMISSIONS"
139
- },
140
- a
141
- ));
142
- }
143
- async getUserInfo(a, e) {
144
- var t, r;
145
- return await ((r = (t = this.backend).handleUsersAction) == null ? void 0 : r.call(
146
- t,
147
- {
148
- action: "GET_CHAI_USER",
149
- data: e
150
- },
151
- a
152
- ));
153
- }
154
- }
155
- const F = {
10
+ const I = () => Object.values(w), L = (i) => y(w, i), H = {
156
11
  ab: "Abkhazian",
157
12
  aa: "Afar",
158
13
  af: "Afrikaans",
@@ -341,18 +196,162 @@ const F = {
341
196
  za: "Zhuang, Chuang",
342
197
  zu: "Zulu"
343
198
  };
344
- class W {
199
+ let K = async (i) => ({
200
+ ...i
201
+ });
202
+ const _ = async (i) => {
203
+ try {
204
+ return await K(i);
205
+ } catch (a) {
206
+ return console.error(a), {};
207
+ }
208
+ }, P = {}, b = () => Object.values(P), A = (i) => P[i], R = (i, a) => {
209
+ P[i] = { key: i, ...a, hasSlug: !0 };
210
+ }, N = (i, a) => {
211
+ P[i] = { key: i, ...a, hasSlug: !1 };
212
+ };
213
+ class j {
214
+ constructor(a) {
215
+ this.backend = a;
216
+ }
217
+ async upload({
218
+ file: a,
219
+ folderId: e,
220
+ name: n
221
+ }, t) {
222
+ var o, c;
223
+ return await ((c = (o = this.backend).handleAssetsAction) == null ? void 0 : c.call(
224
+ o,
225
+ {
226
+ action: "UPLOAD_ASSET",
227
+ data: {
228
+ name: n,
229
+ file: a,
230
+ folderId: e
231
+ }
232
+ },
233
+ t
234
+ ));
235
+ }
236
+ async getAsset({ id: a }, e) {
237
+ var n, t;
238
+ return (t = (n = this.backend).handleAssetsAction) == null ? void 0 : t.call(
239
+ n,
240
+ { action: "GET_ASSET", data: { id: a } },
241
+ e
242
+ );
243
+ }
244
+ async getAssets(a, e) {
245
+ var n, t;
246
+ return (t = (n = this.backend).handleAssetsAction) == null ? void 0 : t.call(
247
+ n,
248
+ {
249
+ action: "GET_ASSETS",
250
+ data: a
251
+ },
252
+ e
253
+ );
254
+ }
255
+ async deleteAsset({ id: a }, e) {
256
+ var n, t;
257
+ return (t = (n = this.backend).handleAssetsAction) == null ? void 0 : t.call(
258
+ n,
259
+ {
260
+ action: "DELETE_ASSET",
261
+ data: { id: a }
262
+ },
263
+ e
264
+ );
265
+ }
266
+ async updateAsset({
267
+ id: a,
268
+ file: e,
269
+ description: n
270
+ }, t) {
271
+ var r, o;
272
+ return (o = (r = this.backend).handleAssetsAction) == null ? void 0 : o.call(
273
+ r,
274
+ {
275
+ action: "UPDATE_ASSET",
276
+ data: { id: a, file: e, description: n }
277
+ },
278
+ t
279
+ );
280
+ }
281
+ }
282
+ class F {
283
+ constructor(a) {
284
+ this.backend = a;
285
+ }
286
+ async refreshToken(a) {
287
+ var n, t;
288
+ const e = await ((t = (n = this.backend).handleUsersAction) == null ? void 0 : t.call(n, {
289
+ action: "REFRESH_TOKEN",
290
+ data: a
291
+ }));
292
+ return e.error ? { error: e.error } : e;
293
+ }
294
+ async login({
295
+ email: a,
296
+ password: e
297
+ }) {
298
+ var t, r;
299
+ const n = await ((r = (t = this.backend).handleUsersAction) == null ? void 0 : r.call(t, {
300
+ action: "LOGIN",
301
+ data: { email: a, password: e }
302
+ }));
303
+ return n.error ? { error: n.error } : n;
304
+ }
305
+ async logout() {
306
+ var a, e;
307
+ await ((e = (a = this.backend).handleUsersAction) == null ? void 0 : e.call(a, {
308
+ action: "LOGOUT"
309
+ }));
310
+ }
311
+ async isUserActive(a) {
312
+ var n, t;
313
+ return (await ((t = (n = this.backend).handleUsersAction) == null ? void 0 : t.call(
314
+ n,
315
+ {
316
+ action: "CHECK_USER_STATUS"
317
+ },
318
+ a
319
+ ))).success;
320
+ }
321
+ async getUserRoleAndPermissions(a) {
322
+ var n, t;
323
+ return await ((t = (n = this.backend).handleUsersAction) == null ? void 0 : t.call(
324
+ n,
325
+ {
326
+ action: "GET_ROLE_AND_PERMISSIONS"
327
+ },
328
+ a
329
+ ));
330
+ }
331
+ async getUserInfo(a, e) {
332
+ var t, r;
333
+ return await ((r = (t = this.backend).handleUsersAction) == null ? void 0 : r.call(
334
+ t,
335
+ {
336
+ action: "GET_CHAI_USER",
337
+ data: e
338
+ },
339
+ a
340
+ ));
341
+ }
342
+ }
343
+ class Y {
345
344
  constructor(a, e, n) {
346
345
  p(this, "fallbackLang", "");
347
346
  p(this, "currentLang", "");
348
347
  p(this, "draftMode", !1);
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);
348
+ this.backend = a, this.chaiUsers = e, this.chaiAssets = n, this._registerDefaultPageTypes(), this.chaiUsers = e ?? new F(this.backend), this.chaiAssets = n ?? new j(this.backend);
350
349
  }
351
350
  _registerDefaultPageTypes() {
352
- K("page", {
351
+ R("page", {
353
352
  name: "Static Page",
354
353
  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>'
355
- }), R("global", {
354
+ }), N("global", {
356
355
  name: "Global Block",
357
356
  helpText: "A global block can be reused in multiple pages.",
358
357
  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>'
@@ -430,7 +429,7 @@ class W {
430
429
  );
431
430
  }
432
431
  if (a.action === "GET_BUILDER_PAGE_DATA") {
433
- const s = await b({
432
+ const s = await _({
434
433
  lang: a.data.lang,
435
434
  draft: !0,
436
435
  inBuilder: !0
@@ -449,7 +448,7 @@ class W {
449
448
  }
450
449
  if (a.action === "GET_PAGE_TYPES")
451
450
  return Promise.all(
452
- _().map(async (s) => ({
451
+ b().map(async (s) => ({
453
452
  key: s.key,
454
453
  helpText: s.helpText ?? "",
455
454
  icon: s.icon ?? "",
@@ -466,8 +465,8 @@ class W {
466
465
  return s ? s.search ? await s.search(a.data.query) : this.backend.handleAction(a, e) : { error: "Page type not found" };
467
466
  }
468
467
  if (a.action === "GET_COLLECTIONS")
469
- return H().map(
470
- (s) => D(s, "fetch")
468
+ return I().map(
469
+ (s) => U(s, "fetch")
471
470
  );
472
471
  if (a.action === "GET_BLOCK_ASYNC_PROPS") {
473
472
  const s = a.data.block, h = s._type;
@@ -481,8 +480,8 @@ class W {
481
480
  inBuilder: !0
482
481
  })) ?? [] : [];
483
482
  } else {
484
- const g = I(h);
485
- return !g || !M(g.dataProvider) ? {} : await g.dataProvider({
483
+ const g = B(h);
484
+ return !g || !D(g.dataProvider) ? {} : await g.dataProvider({
486
485
  block: s,
487
486
  pageProps: a.data.pageProps,
488
487
  lang: a.data.lang,
@@ -516,8 +515,8 @@ class W {
516
515
  throw new Error(
517
516
  "Please set a fallback language using setFallbackLang(lang: string)"
518
517
  );
519
- const e = O(a || [""]);
520
- Object.keys(F).includes(e) ? this.setCurrentLang(e) : this.setCurrentLang(this.getFallbackLang());
518
+ const e = M(a || [""]);
519
+ Object.keys(H).includes(e) ? this.setCurrentLang(e) : this.setCurrentLang(this.getFallbackLang());
521
520
  }
522
521
  /**
523
522
  * Resolve a page link
@@ -525,7 +524,7 @@ class W {
525
524
  * @returns The resolved link
526
525
  */
527
526
  async resolvePageLink(a) {
528
- if (!B(a, "pageType:"))
527
+ if (!O(a, "pageType:"))
529
528
  return a;
530
529
  const e = a.split(":")[1], n = a.split(":")[2], t = A(e);
531
530
  return t ? await this.resolveLink(t.key, n) : a;
@@ -547,7 +546,7 @@ class W {
547
546
  }
548
547
  async getPageBySlug(a) {
549
548
  const e = this.isDraftMode(), n = {};
550
- return _().forEach((t) => {
549
+ return b().forEach((t) => {
551
550
  k(t, "dynamicSegments") && t.dynamicSegments && (n[t.key] = t.dynamicSegments);
552
551
  }), await this.backend.handleAction({
553
552
  action: "GET_PAGE_META",
@@ -620,7 +619,7 @@ class W {
620
619
  }
621
620
  async getGlobalData() {
622
621
  const a = this.getCurrentLang();
623
- return await b({
622
+ return await _({
624
623
  lang: a,
625
624
  draft: this.isDraftMode(),
626
625
  inBuilder: !1
@@ -630,7 +629,7 @@ class W {
630
629
  return await this.backend.handleAction(a);
631
630
  }
632
631
  }
633
- class q {
632
+ class W {
634
633
  constructor(a = "", e = x) {
635
634
  this.apiKey = a, this.apiUrl = e;
636
635
  }
@@ -670,15 +669,9 @@ class q {
670
669
  const x = "https://api.chaibuilder.com";
671
670
  export {
672
671
  x as API_URL,
673
- W as ChaiBuilderPages,
674
- q as ChaiBuilderPagesBackend,
675
- j as ChaiBuilderPagesUserManagement,
676
- F as LANGUAGES,
677
- b as getChaiGlobalData,
678
- A as getChaiPageType,
679
- _ as getChaiPageTypes,
680
- $ as registerChaiCollection,
681
- Y as registerChaiGlobalDataProvider,
682
- K as registerChaiPageType,
683
- R as registerChaiPartialType
672
+ Y as ChaiBuilderPages,
673
+ W as ChaiBuilderPagesBackend,
674
+ F as ChaiBuilderPagesUserManagement,
675
+ H as LANGUAGES,
676
+ $ as registerChaiCollection
684
677
  };
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.6",
6
+ "version": "0.5.1",
7
7
  "type": "module",
8
8
  "files": [
9
9
  "dist"
@@ -21,11 +21,6 @@
21
21
  "import": "./dist/server.js",
22
22
  "require": "./dist/server.cjs"
23
23
  },
24
- "./builder": {
25
- "types": "./dist/builder.d.ts",
26
- "import": "./dist/builder.js",
27
- "require": "./dist/builder.cjs"
28
- },
29
24
  "./web-blocks": {
30
25
  "types": "./dist/web-blocks.d.ts",
31
26
  "import": "./dist/web-blocks.js",
@@ -60,7 +55,7 @@
60
55
  },
61
56
  "peerDependencies": {
62
57
  "@chaibuilder/runtime": "2.1.5",
63
- "@chaibuilder/sdk": "2.2.25",
58
+ "@chaibuilder/sdk": "2.2.28",
64
59
  "@types/react": "*",
65
60
  "@types/react-dom": "*",
66
61
  "react": "^18.0 || ^19.0 || ^19.1",
@@ -76,7 +71,7 @@
76
71
  },
77
72
  "dependencies": {
78
73
  "@chaibuilder/runtime": "2.1.5",
79
- "@chaibuilder/sdk": "2.2.25",
74
+ "@chaibuilder/sdk": "2.2.28",
80
75
  "@mhsdesign/jit-browser-tailwindcss": "^0.4.2",
81
76
  "@tailwindcss/aspect-ratio": "^0.4.2",
82
77
  "@tailwindcss/forms": "^0.5.10",