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