@chaibuilder/pages 0.5.14-beta.1 → 0.5.14

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-hKhSA4QA.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-BkShGpkF.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-CHpzzr5V.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-Cp-JOj3R.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 I=Object.defineProperty;var M=(i,a,e)=>a in i?I(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var p=(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");let y=async i=>({...i});const R=i=>{y=i},_=async i=>{try{return await y(i)}catch(a){return console.error(a),{}}},C={},T=()=>Object.values(C),A=i=>C[i],b=(i,a)=>{C[i]={key:i,...a,hasSlug:!0}},v=(i,a)=>{C[i]={key:i,...a,hasSlug:!1}},P={};function H(i,a){c.has(P,i)&&console.warn(`Collection ${i} already registered`),P[i]={...a,id:i}}const G=()=>Object.values(P),L=i=>c.get(P,i),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 K{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 D{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 N{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 D(this.backend),this.chaiAssets=n??new K(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>'}),v("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,w,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(w=this.chaiUsers)==null?void 0:w.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 _({lang:a.data.lang,draft:!0,inBuilder:!0,pageProps:a.data.pageProps}),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:s}:{global:s}}if(a.action==="GET_PAGE_TYPES")return Promise.all(T().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,...c.isFunction(s.defaultTrackingInfo)?{trackingDefault:s.defaultTrackingInfo()}:{}})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const s=A(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 G().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=L(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=O.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=A(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(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],n=a.split(":")[2],t=A(e);return t?await this.resolveLink(t.key,n):a}async resolveLink(a,e){const n=A(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 T().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=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:s})=>{const u=L(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}`]:c.get(d,"items",[])??[]})}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,...m}:{global:f,...m}}async getGlobalData(){const a=this.getCurrentLang();return await _({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class j{constructor(a="",e=B){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 B="https://api.chaibuilder.com";exports.API_URL=B;exports.ChaiBuilderPages=N;exports.ChaiBuilderPagesBackend=j;exports.ChaiBuilderPagesUserManagement=D;exports.LANGUAGES=U;exports.getChaiCollection=L;exports.getChaiCollections=G;exports.getChaiPageType=A;exports.getChaiPageTypes=T;exports.registerChaiCollection=H;exports.registerChaiGlobalDataProvider=R;exports.registerChaiPageType=b;exports.registerChaiPartialType=v;
1
+ "use strict";var I=Object.defineProperty;var M=(i,a,e)=>a in i?I(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var p=(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");let y=async i=>({...i});const R=i=>{y=i},_=async i=>{try{return await y(i)}catch(a){return console.error(a),{}}},P={},T=()=>Object.values(P),A=i=>P[i],b=(i,a)=>{P[i]={key:i,...a,hasSlug:!0}},v=(i,a)=>{P[i]={key:i,...a,hasSlug:!1}},C={};function H(i,a){c.has(C,i)&&console.warn(`Collection ${i} already registered`),C[i]={...a,id:i}}const G=()=>Object.values(C),L=i=>c.get(C,i),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 K{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 D{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 N{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 D(this.backend),this.chaiAssets=n??new K(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>'}),v("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,w,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(w=this.chaiUsers)==null?void 0:w.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 _({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:s}:{global:s}}if(a.action==="GET_PAGE_TYPES")return Promise.all(T().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,...c.isFunction(s.defaultTrackingInfo)?{trackingDefault:s.defaultTrackingInfo()}:{}})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const s=A(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 G().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=L(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=O.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=A(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(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],n=a.split(":")[2],t=A(e);return t?await this.resolveLink(t.key,n):a}async resolveLink(a,e){const n=A(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 T().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=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:s})=>{const u=L(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}`]:c.get(d,"items",[])??[]})}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,...m}:{global:f,...m}}async getGlobalData(){const a=this.getCurrentLang();return await _({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class j{constructor(a="",e=B){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 B="https://api.chaibuilder.com";exports.API_URL=B;exports.ChaiBuilderPages=N;exports.ChaiBuilderPagesBackend=j;exports.ChaiBuilderPagesUserManagement=D;exports.LANGUAGES=U;exports.getChaiCollection=L;exports.getChaiCollections=G;exports.getChaiPageType=A;exports.getChaiPageTypes=T;exports.registerChaiCollection=H;exports.registerChaiGlobalDataProvider=R;exports.registerChaiPageType=b;exports.registerChaiPartialType=v;
package/dist/server.js CHANGED
@@ -14,7 +14,7 @@ const $ = (i) => {
14
14
  } catch (a) {
15
15
  return console.error(a), {};
16
16
  }
17
- }, P = {}, v = () => Object.values(P), m = (i) => P[i], H = (i, a) => {
17
+ }, P = {}, y = () => Object.values(P), m = (i) => P[i], H = (i, a) => {
18
18
  P[i] = { key: i, ...a, hasSlug: !0 };
19
19
  }, K = (i, a) => {
20
20
  P[i] = { key: i, ...a, hasSlug: !1 };
@@ -22,7 +22,7 @@ const $ = (i) => {
22
22
  function Y(i, a) {
23
23
  p(w, i) && console.warn(`Collection ${i} already registered`), w[i] = { ...a, id: i };
24
24
  }
25
- const R = () => Object.values(w), y = (i) => T(w, i), N = {
25
+ const R = () => Object.values(w), v = (i) => T(w, i), N = {
26
26
  ab: "Abkhazian",
27
27
  aa: "Afar",
28
28
  af: "Afrikaans",
@@ -433,8 +433,7 @@ class W {
433
433
  const s = await b({
434
434
  lang: a.data.lang,
435
435
  draft: !0,
436
- inBuilder: !0,
437
- pageProps: a.data.pageProps
436
+ inBuilder: !0
438
437
  }), h = m(
439
438
  a.data.pageType
440
439
  );
@@ -450,7 +449,7 @@ class W {
450
449
  }
451
450
  if (a.action === "GET_PAGE_TYPES")
452
451
  return Promise.all(
453
- v().map(async (s) => ({
452
+ y().map(async (s) => ({
454
453
  key: s.key,
455
454
  helpText: s.helpText ?? "",
456
455
  icon: s.icon ?? "",
@@ -474,7 +473,7 @@ class W {
474
473
  if (a.action === "GET_BLOCK_ASYNC_PROPS") {
475
474
  const s = a.data.block, h = s._type;
476
475
  if (h === "Repeater" && (s != null && s.repeaterItems.includes("{{#"))) {
477
- const g = s.repeaterItems.replace("{{#", "").replace("}}", ""), S = y(g);
476
+ const g = s.repeaterItems.replace("{{#", "").replace("}}", ""), S = v(g);
478
477
  return S ? await (S == null ? void 0 : S.fetch({
479
478
  block: s,
480
479
  pageProps: a.data.pageProps,
@@ -549,7 +548,7 @@ class W {
549
548
  }
550
549
  async getPageBySlug(a) {
551
550
  const e = this.isDraftMode(), n = {};
552
- return v().forEach((t) => {
551
+ return y().forEach((t) => {
553
552
  p(t, "dynamicSegments") && t.dynamicSegments && (n[t.key] = t.dynamicSegments);
554
553
  }), await this.backend.handleAction({
555
554
  action: "GET_PAGE_META",
@@ -585,7 +584,7 @@ class W {
585
584
  const u = c.map((l) => ({ collectionId: l.repeaterItems.replace("{{#", "").replace("}}", ""), block: l }));
586
585
  d = (await Promise.all(
587
586
  u.map(async ({ collectionId: l, block: s }) => {
588
- const h = y(l);
587
+ const h = v(l);
589
588
  try {
590
589
  const g = await (h == null ? void 0 : h.fetch({
591
590
  lang: r,
@@ -676,10 +675,10 @@ export {
676
675
  q as ChaiBuilderPagesBackend,
677
676
  F as ChaiBuilderPagesUserManagement,
678
677
  N as LANGUAGES,
679
- y as getChaiCollection,
678
+ v as getChaiCollection,
680
679
  R as getChaiCollections,
681
680
  m as getChaiPageType,
682
- v as getChaiPageTypes,
681
+ y as getChaiPageTypes,
683
682
  Y as registerChaiCollection,
684
683
  $ as registerChaiGlobalDataProvider,
685
684
  H as registerChaiPageType,
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.14-beta.1",
6
+ "version": "0.5.14",
7
7
  "type": "module",
8
8
  "files": [
9
9
  "dist"