@chaibuilder/pages 0.6.8 → 0.6.10

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-B9FmktAC.cjs"),a=require("@chaibuilder/sdk");exports.ImagePicker=e.ImagePicker;exports.NestedPathSelector=e.NestedPathSelector;exports.PermissionChecker=e.PermissionChecker;exports.default=e.ChaiBuilderPages;exports.registerChaiLoginComponent=e.registerLoginComponent;exports.useActivePage=e.useActivePage;exports.useBuilderPageData=e.useBuilderPageData;exports.useChaiAuth=e.useChaiAuth;exports.useChaiCurrentPage=e.useCurrentPage;exports.useChaiFetch=e.useChaiFetch;exports.useChaiUserInfo=e.useChaiUserInfo;exports.useFallbackLang=e.useFallbackLang;exports.useFetch=e.useFetch;exports.useGotoPage=e.useGotoPage;exports.useLanguagePages=e.useLanguagePages;exports.usePageTypes=e.usePageTypes;exports.useUpdateActivePageMetadata=e.useUpdateActivePageMetadata;exports.useUserPermissions=e.useUserRoleAndPermissions;exports.useWebsitePages=e.useWebsitePages;exports.useWebsiteSetting=e.useWebsiteSetting;Object.keys(a).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>a[s]})});
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index-DuGc6PxG.cjs"),a=require("@chaibuilder/sdk");exports.ImagePicker=e.ImagePicker;exports.NestedPathSelector=e.NestedPathSelector;exports.PermissionChecker=e.PermissionChecker;exports.default=e.ChaiBuilderPages;exports.registerChaiLoginComponent=e.registerLoginComponent;exports.useActivePage=e.useActivePage;exports.useBuilderPageData=e.useBuilderPageData;exports.useChaiAuth=e.useChaiAuth;exports.useChaiCurrentPage=e.useCurrentPage;exports.useChaiFetch=e.useChaiFetch;exports.useChaiUserInfo=e.useChaiUserInfo;exports.useFallbackLang=e.useFallbackLang;exports.useFetch=e.useFetch;exports.useGotoPage=e.useGotoPage;exports.useLanguagePages=e.useLanguagePages;exports.usePageTypes=e.usePageTypes;exports.useUpdateActivePageMetadata=e.useUpdateActivePageMetadata;exports.useUserPermissions=e.useUserRoleAndPermissions;exports.useWebsitePages=e.useWebsitePages;exports.useWebsiteSetting=e.useWebsiteSetting;Object.keys(a).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>a[s]})});
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a4 as s, X as t, a3 as u, W as i, a5 as r, Y as g, Z as o, aa as P, a6 as h, ac as n, ae as c, _ as C, ad as d, a0 as m, a7 as l, a1 as p, a2 as b, ab as f, a8 as k, a9 as A } from "./index-o9kh9YJd.js";
1
+ import { a4 as s, X as t, a3 as u, W as i, a5 as r, Y as g, Z as o, aa as P, a6 as h, ac as n, ae as c, _ as C, ad as d, a0 as m, a7 as l, a1 as p, a2 as b, ab as f, a8 as k, a9 as A } from "./index-CpS9F10B.js";
2
2
  export * from "@chaibuilder/sdk";
3
3
  export {
4
4
  s as ImagePicker,
package/dist/server.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var B=Object.defineProperty;var I=(n,a,t)=>a in n?B(n,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[a]=t;var C=(n,a,t)=>I(n,typeof a!="symbol"?a+"":a,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),M=require("@chaibuilder/runtime");let v=async n=>({...n});const O=n=>{v=n},y=async n=>{try{return await v(n)}catch(a){return console.error(a),{}}},P={},T=()=>Object.values(P),A=n=>P[n],b=(n,a)=>{P[n]={key:n,...a,hasSlug:!0}},G=(n,a)=>{P[n]={key:n,...a,hasSlug:!1}},k={};function R(n,a){c.has(k,n)&&console.warn(`Collection ${n} already registered`),k[n]={...a,id:n}}const U=()=>Object.values(k),_=n=>c.get(k,n);class H{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 K{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 H(this.backend)}_registerDefaultPageTypes(){b("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>'}),G("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}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async handle(a,t){var e,r,o,l,m,f,E,S,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(m=this.chaiAssets)==null?void 0:m.updateAsset(a.data,t);case"REFRESH_TOKEN":return(f=this.chaiUsers)==null?void 0:f.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(h=this.chaiUsers)==null?void 0:h.getUserInfo(t,a.data)}if(a.action==="GET_BUILDER_PAGE_DATA"){const i=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:i}:{global:i}}if(a.action==="GET_PAGE_TYPES")return Promise.all(T().map(async i=>({key:i.key,helpText:i.helpText??"",icon:i.icon??"",dynamicSegments:i.dynamicSegments??"",dynamicSlug:i.dynamicSlug??"",hasSlug:i.hasSlug??!0,name:typeof i.name=="function"?await i.name():i.name,...c.isFunction(i.defaultTrackingInfo)?{trackingDefault:i.defaultTrackingInfo()}:{}})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const i=A(a.data.pageType);return i?i.search?await i.search(a.data.query):this.backend.handleAction(a,t):{error:"Page type not found"}}if(a.action==="GET_COLLECTIONS")return U().map(i=>c.omit(i,"fetch"));if(a.action==="GET_BLOCK_ASYNC_PROPS"){const i=a.data.block,u=i._type;if(u==="Repeater"&&(i!=null&&i.repeaterItems.includes("{{#"))){const g=i.repeaterItems.replace("{{#","").replace("}}",""),p=_(g);return p?await(p==null?void 0:p.fetch({block:i,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0}))??[]:[]}else{const g=M.getRegisteredChaiBlock(u);return!g||!c.isFunction(g.dataProvider)?{}:await g.dataProvider({block:i,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=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(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=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 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),l=a.filter(d=>d._type==="Repeater"&&(d==null?void 0:d.repeaterItems.includes("{{#")));let m={};if(l.length>0){const d=l.map(h=>({collectionId:h.repeaterItems.replace("{{#","").replace("}}",""),block:h}));m=(await Promise.all(d.map(async({collectionId:h,block:i})=>{const u=_(h);try{const g=await(u==null?void 0:u.fetch({lang:e,draft:r,inBuilder:!1,pageProps:s,block:i}));return Promise.resolve({[`#${h}/${i._id}`]:c.get(g,"items",[])??[]})}catch{return Promise.resolve({[`#${h}/${i._id}`]:[]})}}))).reduce((h,i)=>({...h,...i}),{})}const[f,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:f,...m}:{global:f,...m}}async getGlobalData(a){return await y({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class N{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 j={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=K;exports.ChaiBuilderPagesBackend=N;exports.ChaiBuilderPagesUserManagement=L;exports.LANGUAGES=j;exports.getChaiCollection=_;exports.getChaiCollections=U;exports.getChaiPageType=A;exports.getChaiPageTypes=T;exports.registerChaiCollection=R;exports.registerChaiGlobalDataProvider=O;exports.registerChaiPageType=b;exports.registerChaiPartialType=G;
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 v=async i=>({...i});const M=i=>{v=i},y=async i=>{try{return await v(i)}catch(a){return console.error(a),{}}},P={},T=()=>Object.values(P),g=i=>P[i],G=(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 D{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 D(this.backend),this.chaiAssets=s??new R(this.backend)}_registerDefaultPageTypes(){G("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-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}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async handle(a,t){var e,r,o,l,f,m,E,S,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(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(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 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=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[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=L){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 j={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"},L="https://api.chaibuilder.com";exports.API_URL=L;exports.ChaiBuilderPages=H;exports.ChaiBuilderPagesBackend=K;exports.ChaiBuilderPagesUserManagement=D;exports.LANGUAGES=j;exports.getChaiCollection=_;exports.getChaiCollections=b;exports.getChaiPageType=g;exports.getChaiPageTypes=T;exports.registerChaiCollection=N;exports.registerChaiGlobalDataProvider=M;exports.registerChaiPageType=G;exports.registerChaiPartialType=U;
package/dist/server.d.ts CHANGED
@@ -207,6 +207,10 @@ export declare type ChaiBuilderPageType = {
207
207
  name: string | (() => Promise<string>);
208
208
  dynamicSegments?: string;
209
209
  dynamicSlug?: string;
210
+ getDynamicPages?: ({ query, uuid }: {
211
+ query?: string;
212
+ uuid?: string;
213
+ }) => Promise<ChaiDynamicPage[]>;
210
214
  search?: (query: string) => Promise<PageTypeSearchResult[] | Error>;
211
215
  resolveLink?: (id: string, draft?: boolean, lang?: string) => Promise<string>;
212
216
  onCreate?: (data: Omit<ChaiBuilderPage, "seo">) => Promise<void>;
@@ -230,6 +234,13 @@ export declare type ChaiBuilderUserInfo = {
230
234
  avatar?: string;
231
235
  };
232
236
 
237
+ export declare type ChaiDynamicPage = {
238
+ id: string;
239
+ slug: string;
240
+ name: string;
241
+ primaryPage?: string;
242
+ };
243
+
233
244
  export { ChaiPageProps }
234
245
 
235
246
  export declare type ChaiWebsiteSetting = {
package/dist/server.js CHANGED
@@ -1,29 +1,29 @@
1
- var U = Object.defineProperty;
2
- var L = (i, a, t) => a in i ? U(i, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[a] = t;
3
- var T = (i, a, t) => L(i, typeof a != "symbol" ? a + "" : a, t);
4
- import { has as k, get as _, isEmpty as D, isFunction as C, omit as I, startsWith as M } from "lodash-es";
5
- import { getRegisteredChaiBlock as B } from "@chaibuilder/runtime";
6
- let G = async (i) => ({
1
+ var D = Object.defineProperty;
2
+ var b = (i, a, t) => a in i ? D(i, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[a] = t;
3
+ var _ = (i, a, t) => b(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";
5
+ import { getRegisteredChaiBlock as M } from "@chaibuilder/runtime";
6
+ let U = async (i) => ({
7
7
  ...i
8
8
  });
9
9
  const F = (i) => {
10
- G = i;
10
+ U = i;
11
11
  }, v = async (i) => {
12
12
  try {
13
- return await G(i);
13
+ return await U(i);
14
14
  } catch (a) {
15
15
  return console.error(a), {};
16
16
  }
17
- }, w = {}, y = () => Object.values(w), A = (i) => w[i], O = (i, a) => {
18
- w[i] = { key: i, ...a, hasSlug: !0 };
19
- }, H = (i, a) => {
20
- w[i] = { key: i, ...a, hasSlug: !1 };
21
- }, p = {};
22
- function Z(i, a) {
23
- k(p, i) && console.warn(`Collection ${i} already registered`), p[i] = { ...a, id: i };
17
+ }, P = {}, G = () => Object.values(P), g = (i) => P[i], B = (i, a) => {
18
+ P[i] = { key: i, ...a, hasSlug: !0 };
19
+ }, N = (i, a) => {
20
+ P[i] = { key: i, ...a, hasSlug: !1 };
21
+ }, w = {};
22
+ function J(i, a) {
23
+ p(w, i) && console.warn(`Collection ${i} already registered`), w[i] = { ...a, id: i };
24
24
  }
25
- const K = () => Object.values(p), b = (i) => _(p, i);
26
- class R {
25
+ const H = () => Object.values(w), y = (i) => C(w, i);
26
+ class K {
27
27
  constructor(a) {
28
28
  this.backend = a;
29
29
  }
@@ -92,7 +92,7 @@ class R {
92
92
  );
93
93
  }
94
94
  }
95
- class N {
95
+ class R {
96
96
  constructor(a) {
97
97
  this.backend = a;
98
98
  }
@@ -153,24 +153,24 @@ class N {
153
153
  ));
154
154
  }
155
155
  }
156
- class $ {
156
+ class Y {
157
157
  constructor(a, t, s) {
158
- T(this, "fallbackLang", "");
159
- T(this, "draftMode", !1);
160
- this.backend = a, this.chaiUsers = t, this.chaiAssets = s, this._registerDefaultPageTypes(), this.chaiUsers = t ?? new N(this.backend), this.chaiAssets = s ?? new R(this.backend);
158
+ _(this, "fallbackLang", "");
159
+ _(this, "draftMode", !1);
160
+ this.backend = a, this.chaiUsers = t, this.chaiAssets = s, this._registerDefaultPageTypes(), this.chaiUsers = t ?? new R(this.backend), this.chaiAssets = s ?? new K(this.backend);
161
161
  }
162
162
  _registerDefaultPageTypes() {
163
- O("page", {
163
+ B("page", {
164
164
  name: "Static Page",
165
165
  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>'
166
- }), H("global", {
166
+ }), N("global", {
167
167
  name: "Global Block",
168
168
  helpText: "A global block can be reused in multiple pages.",
169
169
  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>'
170
170
  });
171
171
  }
172
172
  setFallbackLang(a) {
173
- if (D(a))
173
+ if (L(a))
174
174
  throw new Error("Fallback language cannot be empty");
175
175
  this.fallbackLang = a;
176
176
  }
@@ -184,7 +184,7 @@ class $ {
184
184
  return this.draftMode;
185
185
  }
186
186
  async handle(a, t) {
187
- var e, r, o, c, g, m, E, f, u, P, l;
187
+ var e, r, o, c, f, A, S, m, u, T, l;
188
188
  switch (a.action) {
189
189
  // Media
190
190
  case "UPLOAD_ASSET":
@@ -198,48 +198,33 @@ class $ {
198
198
  t
199
199
  );
200
200
  case "GET_ASSET":
201
- return (r = this.chaiAssets) == null ? void 0 : r.getAsset(
202
- a.data,
203
- t
204
- );
201
+ return (r = this.chaiAssets) == null ? void 0 : r.getAsset(a.data, t);
205
202
  case "GET_ASSETS":
206
203
  return (o = this.chaiAssets) == null ? void 0 : o.getAssets(a.data, t);
207
204
  case "DELETE_ASSET":
208
- return (c = this.chaiAssets) == null ? void 0 : c.deleteAsset(
209
- a.data,
210
- t
211
- );
205
+ return (c = this.chaiAssets) == null ? void 0 : c.deleteAsset(a.data, t);
212
206
  case "UPDATE_ASSET":
213
- return (g = this.chaiAssets) == null ? void 0 : g.updateAsset(a.data, t);
207
+ return (f = this.chaiAssets) == null ? void 0 : f.updateAsset(a.data, t);
214
208
  // Users
215
209
  case "REFRESH_TOKEN":
216
- return (m = this.chaiUsers) == null ? void 0 : m.refreshToken(
217
- a.data
218
- );
210
+ return (A = this.chaiUsers) == null ? void 0 : A.refreshToken(a.data);
219
211
  case "LOGIN":
220
- return (E = this.chaiUsers) == null ? void 0 : E.login(
221
- a.data
222
- );
212
+ return (S = this.chaiUsers) == null ? void 0 : S.login(a.data);
223
213
  case "LOGOUT":
224
- return (f = this.chaiUsers) == null ? void 0 : f.logout();
214
+ return (m = this.chaiUsers) == null ? void 0 : m.logout();
225
215
  case "CHECK_USER_STATUS":
226
216
  return (u = this.chaiUsers) == null ? void 0 : u.isUserActive(t);
227
217
  case "GET_ROLE_AND_PERMISSIONS":
228
- return (P = this.chaiUsers) == null ? void 0 : P.getUserRoleAndPermissions(t);
218
+ return (T = this.chaiUsers) == null ? void 0 : T.getUserRoleAndPermissions(t);
229
219
  case "GET_CHAI_USER":
230
- return (l = this.chaiUsers) == null ? void 0 : l.getUserInfo(
231
- t,
232
- a.data
233
- );
220
+ return (l = this.chaiUsers) == null ? void 0 : l.getUserInfo(t, a.data);
234
221
  }
235
222
  if (a.action === "GET_BUILDER_PAGE_DATA") {
236
223
  const n = await v({
237
224
  lang: a.data.lang,
238
225
  draft: !0,
239
226
  inBuilder: !0
240
- }), h = A(
241
- a.data.pageType
242
- );
227
+ }), h = g(a.data.pageType);
243
228
  return h ? {
244
229
  ...h.dataProvider ? await h.dataProvider({
245
230
  lang: a.data.lang,
@@ -252,7 +237,7 @@ class $ {
252
237
  }
253
238
  if (a.action === "GET_PAGE_TYPES")
254
239
  return Promise.all(
255
- y().map(async (n) => ({
240
+ G().map(async (n) => ({
256
241
  key: n.key,
257
242
  helpText: n.helpText ?? "",
258
243
  icon: n.icon ?? "",
@@ -260,24 +245,26 @@ class $ {
260
245
  dynamicSlug: n.dynamicSlug ?? "",
261
246
  hasSlug: n.hasSlug ?? !0,
262
247
  name: typeof n.name == "function" ? await n.name() : n.name,
263
- ...C(n.defaultTrackingInfo) ? { trackingDefault: n.defaultTrackingInfo() } : {}
248
+ ...k(n.defaultTrackingInfo) ? { trackingDefault: n.defaultTrackingInfo() } : {},
249
+ ...k(n.defaultSeo) ? { defaultSeo: n.defaultSeo() } : {},
250
+ ...k(n.defaultJSONLD) ? { defaultJSONLD: n.defaultJSONLD() } : {}
264
251
  }))
265
252
  );
266
253
  if (a.action === "SEARCH_PAGE_TYPE_ITEMS") {
267
- const n = A(
268
- a.data.pageType
269
- );
254
+ const n = g(a.data.pageType);
270
255
  return n ? n.search ? await n.search(a.data.query) : this.backend.handleAction(a, t) : { error: "Page type not found" };
271
256
  }
257
+ if (a.action === "GET_DYNAMIC_PAGES") {
258
+ const n = g(a.data.pageType);
259
+ return n ? n.getDynamicPages ? await n.getDynamicPages(a.data) : [] : { error: "Page type not found" };
260
+ }
272
261
  if (a.action === "GET_COLLECTIONS")
273
- return K().map(
274
- (n) => I(n, "fetch")
275
- );
262
+ return H().map((n) => I(n, "fetch"));
276
263
  if (a.action === "GET_BLOCK_ASYNC_PROPS") {
277
264
  const n = a.data.block, h = n._type;
278
265
  if (h === "Repeater" && (n != null && n.repeaterItems.includes("{{#"))) {
279
- const d = n.repeaterItems.replace("{{#", "").replace("}}", ""), S = b(d);
280
- return S ? await (S == null ? void 0 : S.fetch({
266
+ const d = n.repeaterItems.replace("{{#", "").replace("}}", ""), E = y(d);
267
+ return E ? await (E == null ? void 0 : E.fetch({
281
268
  block: n,
282
269
  pageProps: a.data.pageProps,
283
270
  lang: a.data.lang,
@@ -285,8 +272,8 @@ class $ {
285
272
  inBuilder: !0
286
273
  })) ?? [] : [];
287
274
  } else {
288
- const d = B(h);
289
- return !d || !C(d.dataProvider) ? {} : await d.dataProvider({
275
+ const d = M(h);
276
+ return !d || !k(d.dataProvider) ? {} : await d.dataProvider({
290
277
  block: n,
291
278
  pageProps: a.data.pageProps,
292
279
  lang: a.data.lang,
@@ -301,9 +288,9 @@ class $ {
301
288
  emit(a, t) {
302
289
  var r, o, c;
303
290
  if (!["CREATE_PAGE", "UPDATE_PAGE", "DELETE_PAGE"].includes(a)) return;
304
- const s = _(t, "page");
291
+ const s = C(t, "page");
305
292
  if (!s) return;
306
- const e = A(s.pageType);
293
+ const e = g(s.pageType);
307
294
  if (e)
308
295
  switch (a) {
309
296
  case "CREATE_PAGE":
@@ -320,13 +307,13 @@ class $ {
320
307
  * @returns The resolved link
321
308
  */
322
309
  async resolvePageLink(a, t) {
323
- if (!M(a, "pageType:"))
310
+ if (!O(a, "pageType:"))
324
311
  return a;
325
- const s = a.split(":")[1], e = a.split(":")[2], r = A(s);
312
+ const s = a.split(":")[1], e = a.split(":")[2], r = g(s);
326
313
  return r ? await this.resolveLink(r.key, e, t) : a;
327
314
  }
328
315
  async resolveLink(a, t, s) {
329
- const e = A(a);
316
+ const e = g(a);
330
317
  if (!e)
331
318
  return "/not-found";
332
319
  const r = this.isDraftMode();
@@ -342,8 +329,8 @@ class $ {
342
329
  }
343
330
  async getPageBySlug(a) {
344
331
  const t = this.isDraftMode(), s = {};
345
- return y().forEach((e) => {
346
- k(e, "dynamicSegments") && e.dynamicSegments && (s[e.key] = e.dynamicSegments);
332
+ return G().forEach((e) => {
333
+ p(e, "dynamicSegments") && e.dynamicSegments && (s[e.key] = e.dynamicSegments);
347
334
  }), await this.backend.handleAction({
348
335
  action: "GET_PAGE_META",
349
336
  data: { slug: a, draft: t, dynamicSegments: s }
@@ -373,16 +360,16 @@ class $ {
373
360
  pageProps: s,
374
361
  lang: e
375
362
  }) {
376
- var f;
377
- const r = this.isDraftMode(), o = A(t), c = a.filter(
363
+ var m;
364
+ const r = this.isDraftMode(), o = g(t), c = a.filter(
378
365
  (u) => u._type === "Repeater" && (u == null ? void 0 : u.repeaterItems.includes("{{#"))
379
366
  );
380
- let g = {};
367
+ let f = {};
381
368
  if (c.length > 0) {
382
369
  const u = c.map((l) => ({ collectionId: l.repeaterItems.replace("{{#", "").replace("}}", ""), block: l }));
383
- g = (await Promise.all(
370
+ f = (await Promise.all(
384
371
  u.map(async ({ collectionId: l, block: n }) => {
385
- const h = b(l);
372
+ const h = y(l);
386
373
  try {
387
374
  const d = await (h == null ? void 0 : h.fetch({
388
375
  lang: e,
@@ -392,7 +379,7 @@ class $ {
392
379
  block: n
393
380
  }));
394
381
  return Promise.resolve({
395
- [`#${l}/${n._id}`]: _(d, "items", []) ?? []
382
+ [`#${l}/${n._id}`]: C(d, "items", []) ?? []
396
383
  });
397
384
  } catch {
398
385
  return Promise.resolve({
@@ -402,9 +389,9 @@ class $ {
402
389
  })
403
390
  )).reduce((l, n) => ({ ...l, ...n }), {});
404
391
  }
405
- const [m, E] = await Promise.all([
392
+ const [A, S] = await Promise.all([
406
393
  this.getGlobalData(e),
407
- ((f = o == null ? void 0 : o.dataProvider) == null ? void 0 : f.call(o, {
394
+ ((m = o == null ? void 0 : o.dataProvider) == null ? void 0 : m.call(o, {
408
395
  lang: e,
409
396
  draft: r,
410
397
  inBuilder: !1,
@@ -412,10 +399,10 @@ class $ {
412
399
  })) || Promise.resolve({})
413
400
  ]);
414
401
  return o ? {
415
- ...E,
416
- global: m,
417
- ...g
418
- } : { global: m, ...g };
402
+ ...S,
403
+ global: A,
404
+ ...f
405
+ } : { global: A, ...f };
419
406
  }
420
407
  async getGlobalData(a) {
421
408
  return await v({
@@ -428,7 +415,7 @@ class $ {
428
415
  return await this.backend.handleAction(a);
429
416
  }
430
417
  }
431
- class Y {
418
+ class Z {
432
419
  constructor(a = "", t = j) {
433
420
  this.apiKey = a, this.apiUrl = t;
434
421
  }
@@ -441,7 +428,7 @@ class Y {
441
428
  "x-chai-auth-token": t
442
429
  }
443
430
  }), e = await s.json();
444
- return k(e, "error") ? { ...e, status: s.status } : e;
431
+ return p(e, "error") ? { ...e, status: s.status } : e;
445
432
  }
446
433
  async handleAction(a, t) {
447
434
  const s = await fetch(`${this.apiUrl}/v1/api/chai`, {
@@ -452,7 +439,7 @@ class Y {
452
439
  "x-chai-auth-token": t
453
440
  }
454
441
  }), e = await s.json();
455
- return k(e, "error") ? { ...e, status: s.status } : e;
442
+ return p(e, "error") ? { ...e, status: s.status } : e;
456
443
  }
457
444
  async handleAssetsAction(a, t) {
458
445
  return await (await fetch(`${this.apiUrl}/v1/api/assets`, {
@@ -465,7 +452,7 @@ class Y {
465
452
  })).json();
466
453
  }
467
454
  }
468
- const W = {
455
+ const $ = {
469
456
  ab: "Abkhazian",
470
457
  aa: "Afar",
471
458
  af: "Afrikaans",
@@ -656,16 +643,16 @@ const W = {
656
643
  }, j = "https://api.chaibuilder.com";
657
644
  export {
658
645
  j as API_URL,
659
- $ as ChaiBuilderPages,
660
- Y as ChaiBuilderPagesBackend,
661
- N as ChaiBuilderPagesUserManagement,
662
- W as LANGUAGES,
663
- b as getChaiCollection,
664
- K as getChaiCollections,
665
- A as getChaiPageType,
666
- y as getChaiPageTypes,
667
- Z as registerChaiCollection,
646
+ Y as ChaiBuilderPages,
647
+ Z as ChaiBuilderPagesBackend,
648
+ R as ChaiBuilderPagesUserManagement,
649
+ $ as LANGUAGES,
650
+ y as getChaiCollection,
651
+ H as getChaiCollections,
652
+ g as getChaiPageType,
653
+ G as getChaiPageTypes,
654
+ J as registerChaiCollection,
668
655
  F as registerChaiGlobalDataProvider,
669
- O as registerChaiPageType,
670
- H as registerChaiPartialType
656
+ B as registerChaiPageType,
657
+ N as registerChaiPartialType
671
658
  };
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.6.8",
6
+ "version": "0.6.10",
7
7
  "type": "module",
8
8
  "files": [
9
9
  "dist"
@@ -55,7 +55,7 @@
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@chaibuilder/runtime": "2.2.0",
58
- "@chaibuilder/sdk": "2.2.34",
58
+ "@chaibuilder/sdk": "2.2.36",
59
59
  "@types/react": "*",
60
60
  "@types/react-dom": "*",
61
61
  "react": "^18.0 || ^19.0 || ^19.1",
@@ -71,7 +71,7 @@
71
71
  },
72
72
  "dependencies": {
73
73
  "@chaibuilder/runtime": "2.2.0",
74
- "@chaibuilder/sdk": "2.2.34",
74
+ "@chaibuilder/sdk": "2.2.36",
75
75
  "@mhsdesign/jit-browser-tailwindcss": "^0.4.2",
76
76
  "@tailwindcss/aspect-ratio": "^0.4.2",
77
77
  "@tailwindcss/forms": "^0.5.10",
@@ -128,6 +128,7 @@
128
128
  "nodemon": "^3.1.9",
129
129
  "postcss": "^8.5.1",
130
130
  "prettier": "^3.4.2",
131
+ "prettier-plugin-tailwindcss": "^0.6.13",
131
132
  "react": "^19.1.0",
132
133
  "react-dom": "^19.1.0",
133
134
  "tailwindcss": "^3.4.13",