@chaibuilder/pages 0.4.13 → 0.4.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/render.cjs +1 -1
- package/dist/render.d.ts +17 -0
- package/dist/render.js +6 -0
- package/dist/server.cjs +1 -1
- package/dist/server.d.ts +11 -0
- package/dist/server.js +62 -43
- package/package.json +2 -2
package/dist/render.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@chaibuilder/sdk/render");Object.keys(
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("@chaibuilder/sdk/render"),o=e=>t.jsx(r.RenderChaiBlocks,{...e});exports.RenderChaiBlocks=o;Object.keys(r).forEach(e=>{e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:()=>r[e]})});
|
package/dist/render.d.ts
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
import { ChaiBlock } from '@chaibuilder/runtime';
|
|
2
|
+
import { ChaiPageProps } from '@chaibuilder/runtime';
|
|
3
|
+
import { JSX as JSX_2 } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
export declare const RenderChaiBlocks: (props: RenderChaiBlocksProps) => JSX_2.Element;
|
|
6
|
+
|
|
7
|
+
export declare type RenderChaiBlocksProps = {
|
|
8
|
+
blocks: ChaiBlock[];
|
|
9
|
+
parent?: string;
|
|
10
|
+
externalData?: Record<string, any>;
|
|
11
|
+
lang?: string;
|
|
12
|
+
fallbackLang?: string;
|
|
13
|
+
pageProps?: ChaiPageProps;
|
|
14
|
+
draft?: boolean;
|
|
15
|
+
dataProviderMetadataCallback?: (block: ChaiBlock, meta: Record<string, any>) => void;
|
|
16
|
+
};
|
|
17
|
+
|
|
1
18
|
|
|
2
19
|
export * from "@chaibuilder/sdk/render";
|
|
3
20
|
|
package/dist/render.js
CHANGED
package/dist/server.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _=Object.defineProperty;var U=(i,a,e)=>a in i?_(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var g=(i,a,e)=>U(i,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("lodash-es"),d={},P=(i,a)=>{d[i]={key:i,...a,hasSlug:!0}},p=(i,a)=>{d[i]={key:i,...a,hasSlug:!1}},k=()=>Object.values(d),h=i=>d[i];let C=async i=>({...i});const G=i=>C=i,m=async i=>{try{return await C(i)}catch(a){return console.error(a),{}}};class v{constructor(a){this.backend=a}async upload({file:a,folderId:e,name:s},t){var o,c;return await((c=(o=this.backend).handleAssetsAction)==null?void 0:c.call(o,{action:"UPLOAD_ASSET",data:{name:s,file:a,folderId:e}},t))}async getAssets(a,e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"GET_ASSETS",data:a},e)}async deleteAsset(a,e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"DELETE_ASSET",data:{assetId:a}},e)}async updateAsset({id:a,file:e,description:s},t){var n,o;return(o=(n=this.backend).handleAssetsAction)==null?void 0:o.call(n,{action:"UPDATE_ASSET",data:{id:a,file:e,description:s}},t)}}class T{constructor(a){this.backend=a}async refreshToken(a){var s,t;const e=await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"REFRESH_TOKEN",data:a}));return e.error?{error:e.error}:e}async login({email:a,password:e}){var t,n;const s=await((n=(t=this.backend).handleUsersAction)==null?void 0:n.call(t,{action:"LOGIN",data:{email:a,password:e}}));return s.error?{error:s.error}:s}async logout(){var a,e;await((e=(a=this.backend).handleUsersAction)==null?void 0:e.call(a,{action:"LOGOUT"}))}async isUserActive(a){var s,t;return(await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"CHECK_USER_STATUS"},a))).success}async getUserRoleAndPermissions(a){var s,t;return await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"GET_ROLE_AND_PERMISSIONS"},a))}async getUserInfo(a,e){var t,n;return await((n=(t=this.backend).handleUsersAction)==null?void 0:n.call(t,{action:"GET_CHAI_USER",data:e},a))}}const y={ab:"Abkhazian",aa:"Afar",af:"Afrikaans",ak:"Akan",sq:"Albanian",am:"Amharic",ar:"Arabic",an:"Aragonese",hy:"Armenian",as:"Assamese",av:"Avaric",ae:"Avestan",ay:"Aymara",az:"Azerbaijani",bm:"Bambara",ba:"Bashkir",eu:"Basque",be:"Belarusian",bn:"Bengali",bh:"Bihari",bi:"Bislama",bs:"Bosnian",br:"Breton",bg:"Bulgarian",my:"Burmese",ca:"Catalan",ch:"Chamorro",ce:"Chechen",ny:"Chichewa",zh:"Chinese","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cv:"Chuvash",kw:"Cornish",co:"Corsican",cr:"Cree",hr:"Croatian",cs:"Czech",da:"Danish",dv:"Maldivian",nl:"Dutch",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",fi:"Finnish",fr:"French",ff:"Fula, Pular",gl:"Galician",gd:"Gaelic (Scottish)",gv:"Manx",ka:"Georgian",de:"German",el:"Greek",kl:"Kalaallisut",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",he:"Hebrew",hz:"Herero",hi:"Hindi",ho:"Hiri Motu",hu:"Hungarian",is:"Icelandic",io:"Ido",ig:"Igbo",id:"Indonesian",ia:"Interlingua",ie:"Interlingue",iu:"Inuktitut",ik:"Inupiak",ga:"Irish",it:"Italian",ja:"Japanese",jv:"Javanese",kn:"Kannada",kr:"Kanuri",ks:"Kashmiri",kk:"Kazakh",km:"Khmer",ki:"Kikuyu",rw:"Kinyarwanda",rn:"Kirundi",ky:"Kyrgyz",kv:"Komi",kg:"Kongo",ko:"Korean",ku:"Kurdish",kj:"Kwanyama",lo:"Lao",la:"Latin",lv:"Latvian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lu:"Luga-Katanga",lg:"Luganda, Ganda",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mh:"Marshallese",mo:"Moldavian",mn:"Mongolian",na:"Nauru",nv:"Navajo",ng:"Ndonga",nd:"Northern Ndebele",ne:"Nepali",no:"Norwegian",nb:"Norwegian bokmål",nn:"Norwegian nynorsk",ii:"Sichuan Yi",oc:"Occitan",oj:"Ojibwe",cu:"Old Church Slavonic",or:"Oriya",om:"Oromo",os:"Ossetian",pi:"Pāli",ps:"Pashto, Pushto",fa:"Persian (Farsi)",pl:"Polish",pt:"Portuguese",pa:"Punjabi (Eastern)",qu:"Quechua",rm:"Romansh",ro:"Romanian",ru:"Russian",se:"Sami",sm:"Samoan",sg:"Sango",sa:"Sanskrit",sr:"Serbian",sh:"Serbo-Croatian",st:"Sesotho",tn:"Setswana",sn:"Shona",sd:"Sindhi",si:"Sinhalese",ss:"Swati",sk:"Slovak",sl:"Slovenian",so:"Somali",nr:"Southern Ndebele",es:"Spanish",su:"Sundanese",sw:"Swahili (Kiswahili)",sv:"Swedish",tl:"Tagalog",ty:"Tahitian",tg:"Tajik",ta:"Tamil",tt:"Tatar",te:"Telugu",th:"Thai",bo:"Tibetan",ti:"Tigrinya",to:"Tonga",ts:"Tsonga",tr:"Turkish",tk:"Turkmen",tw:"Twi",ug:"Uyghur",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",ve:"Venda",vi:"Vietnamese",vo:"Volapük",wa:"Wallon",cy:"Welsh",wo:"Wolof",fy:"Western Frisian",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",za:"Zhuang, Chuang",zu:"Zulu"};class D{constructor(a,e,s){g(this,"fallbackLang","");g(this,"currentLang","");g(this,"draftMode",!1);this.backend=a,this.chaiUsers=e,this.chaiAssets=s,this._registerDefaultPageTypes(),this.chaiUsers=e??new T(this.backend),this.chaiAssets=s??new v(this.backend)}_registerDefaultPageTypes(){P("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>'}),p("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(l.isEmpty(a))throw new Error("Fallback language cannot be empty");this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setCurrentLang(a){if(l.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,n,o,c,u,E,S,f,b,w;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},e);case"GET_ASSETS":return(n=this.chaiAssets)==null?void 0:n.getAssets(a.data,e);case"DELETE_ASSET":return(o=this.chaiAssets)==null?void 0:o.deleteAsset(a.data.id,e);case"UPDATE_ASSET":return(c=this.chaiAssets)==null?void 0:c.updateAsset(a.data,e);case"REFRESH_TOKEN":return(u=this.chaiUsers)==null?void 0:u.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(f=this.chaiUsers)==null?void 0:f.isUserActive(e);case"GET_ROLE_AND_PERMISSIONS":return(b=this.chaiUsers)==null?void 0:b.getUserRoleAndPermissions(e);case"GET_CHAI_USER":return(w=this.chaiUsers)==null?void 0:w.getUserInfo(e,a.data)}if(a.action==="GET_BUILDER_PAGE_DATA"){const r=await m({lang:a.data.lang,draft:!0,inBuilder:!0}),A=h(a.data.pageType);return A?{...A.dataProvider?await A.dataProvider({lang:a.data.lang,draft:!0,inBuilder:!0,pageProps:a.data.pageProps??{}}):{},global:r}:{global:r}}if(a.action==="GET_PAGE_TYPES")return Promise.all(k().map(async r=>({key:r.key,helpText:r.helpText??"",icon:r.icon??"",dynamicSegments:r.dynamicSegments??"",dynamicSlug:r.dynamicSlug??"",hasSlug:r.hasSlug??!0,name:typeof r.name=="function"?await r.name():r.name})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const r=h(a.data.pageType);return r?r.search?await r.search(a.data.query):this.backend.handleAction(a,e):{error:"Page type not found"}}const s=await this.backend.handleAction(a,e);return this.emit(a.action,s),s}emit(a,e){var n,o,c;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const s=l.get(e,"page");if(!s)return;const t=h(s.pageType);if(t)switch(a){case"CREATE_PAGE":return(n=t.onCreate)==null?void 0:n.call(t,s);case"UPDATE_PAGE":return(o=t.onUpdate)==null?void 0:o.call(t,s);case"DELETE_PAGE":return(c=t.onDelete)==null?void 0:c.call(t,s)}}setLanguageFromSlug(a){if(!this.getFallbackLang())throw new Error("Please set a fallback language using setFallbackLang(lang: string)");const e=l.first(a||[""]);Object.keys(y).includes(e)?this.setCurrentLang(e):this.setCurrentLang(this.getFallbackLang())}async resolveLink(a,e){const s=h(a);if(!s)return"/not-found";const t=this.isDraftMode(),n=this.getCurrentLang()===this.getFallbackLang()?"":this.getCurrentLang();return s.resolveLink?await s.resolveLink(e,t,n):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:e,draft:t,lang:n}})}async getPageBySlug(a){const e=this.isDraftMode(),s={};return k().forEach(t=>{l.has(t,"dynamicSegments")&&t.dynamicSegments&&(s[t.key]=t.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:e,dynamicSegments:s}})}async getFullPage(a){const e=this.isDraftMode(),s=this.getCurrentLang(),t=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:t===s?void 0:s,draft:e,mergePartials:!0}})}async getSiteSettings(){const a=this.isDraftMode();return await this.backend.handleAction({action:"GET_WEBSITE_SETTINGS",data:{draft:a}})}async getPageData(a,e={}){var u;const s=this.isDraftMode(),t=this.getCurrentLang(),n=h(a),[o,c]=await Promise.all([this.getGlobalData(),((u=n==null?void 0:n.dataProvider)==null?void 0:u.call(n,{lang:t,draft:s,inBuilder:!1,pageProps:e}))||Promise.resolve({})]);return n?{...c,global:o}:{global:o}}async getGlobalData(){const a=this.getCurrentLang();return await m({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class M{constructor(a="",e=L){this.apiKey=a,this.apiUrl=e}async handleUsersAction(a,e){const s=await fetch(`${this.apiUrl}/v1/api/users`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}}),t=await s.json();return l.has(t,"error")?{...t,status:s.status}:t}async handleAction(a,e){const s=await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}}),t=await s.json();return l.has(t,"error")?{...t,status:s.status}:t}async handleAssetsAction(a,e){return await(await fetch(`${this.apiUrl}/v1/api/assets`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}})).json()}}const L="https://api.chaibuilder.com";exports.API_URL=L;exports.ChaiBuilderPages=D;exports.ChaiBuilderPagesBackend=M;exports.ChaiBuilderPagesUserManagement=T;exports.LANGUAGES=y;exports.getChaiGlobalData=m;exports.getChaiPageType=h;exports.getChaiPageTypes=k;exports.registerChaiGlobalDataProvider=G;exports.registerChaiPageType=P;exports.registerChaiPartialType=p;
|
|
1
|
+
"use strict";var _=Object.defineProperty;var v=(i,a,e)=>a in i?_(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var g=(i,a,e)=>v(i,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("lodash-es"),d={},p=(i,a)=>{d[i]={key:i,...a,hasSlug:!0}},P=(i,a)=>{d[i]={key:i,...a,hasSlug:!1}},k=()=>Object.values(d),h=i=>d[i];let T=async i=>({...i});const G=i=>T=i,E=async i=>{try{return await T(i)}catch(a){return console.error(a),{}}};class U{constructor(a){this.backend=a}async upload({file:a,folderId:e,name:s},t){var o,c;return await((c=(o=this.backend).handleAssetsAction)==null?void 0:c.call(o,{action:"UPLOAD_ASSET",data:{name:s,file:a,folderId:e}},t))}async getAsset({id:a},e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"GET_ASSET",data:{id:a}},e)}async getAssets(a,e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"GET_ASSETS",data:a},e)}async deleteAsset(a,e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"DELETE_ASSET",data:{assetId:a}},e)}async updateAsset({id:a,file:e,description:s},t){var n,o;return(o=(n=this.backend).handleAssetsAction)==null?void 0:o.call(n,{action:"UPDATE_ASSET",data:{id:a,file:e,description:s}},t)}}class y{constructor(a){this.backend=a}async refreshToken(a){var s,t;const e=await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"REFRESH_TOKEN",data:a}));return e.error?{error:e.error}:e}async login({email:a,password:e}){var t,n;const s=await((n=(t=this.backend).handleUsersAction)==null?void 0:n.call(t,{action:"LOGIN",data:{email:a,password:e}}));return s.error?{error:s.error}:s}async logout(){var a,e;await((e=(a=this.backend).handleUsersAction)==null?void 0:e.call(a,{action:"LOGOUT"}))}async isUserActive(a){var s,t;return(await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"CHECK_USER_STATUS"},a))).success}async getUserRoleAndPermissions(a){var s,t;return await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"GET_ROLE_AND_PERMISSIONS"},a))}async getUserInfo(a,e){var t,n;return await((n=(t=this.backend).handleUsersAction)==null?void 0:n.call(t,{action:"GET_CHAI_USER",data:e},a))}}const C={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 D{constructor(a,e,s){g(this,"fallbackLang","");g(this,"currentLang","");g(this,"draftMode",!1);this.backend=a,this.chaiUsers=e,this.chaiAssets=s,this._registerDefaultPageTypes(),this.chaiUsers=e??new y(this.backend),this.chaiAssets=s??new U(this.backend)}_registerDefaultPageTypes(){p("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>'}),P("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(l.isEmpty(a))throw new Error("Fallback language cannot be empty");this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setCurrentLang(a){if(l.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,n,o,c,u,S,m,f,b,w;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},e);case"GET_ASSETS":return(n=this.chaiAssets)==null?void 0:n.getAssets(a.data,e);case"DELETE_ASSET":return(o=this.chaiAssets)==null?void 0:o.deleteAsset(a.data.id,e);case"UPDATE_ASSET":return(c=this.chaiAssets)==null?void 0:c.updateAsset(a.data,e);case"REFRESH_TOKEN":return(u=this.chaiUsers)==null?void 0:u.refreshToken(a.data);case"LOGIN":return(S=this.chaiUsers)==null?void 0:S.login(a.data);case"LOGOUT":return(m=this.chaiUsers)==null?void 0:m.logout();case"CHECK_USER_STATUS":return(f=this.chaiUsers)==null?void 0:f.isUserActive(e);case"GET_ROLE_AND_PERMISSIONS":return(b=this.chaiUsers)==null?void 0:b.getUserRoleAndPermissions(e);case"GET_CHAI_USER":return(w=this.chaiUsers)==null?void 0:w.getUserInfo(e,a.data)}if(a.action==="GET_BUILDER_PAGE_DATA"){const r=await E({lang:a.data.lang,draft:!0,inBuilder:!0}),A=h(a.data.pageType);return A?{...A.dataProvider?await A.dataProvider({lang:a.data.lang,draft:!0,inBuilder:!0,pageProps:a.data.pageProps??{}}):{},global:r}:{global:r}}if(a.action==="GET_PAGE_TYPES")return Promise.all(k().map(async r=>({key:r.key,helpText:r.helpText??"",icon:r.icon??"",dynamicSegments:r.dynamicSegments??"",dynamicSlug:r.dynamicSlug??"",hasSlug:r.hasSlug??!0,name:typeof r.name=="function"?await r.name():r.name})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const r=h(a.data.pageType);return r?r.search?await r.search(a.data.query):this.backend.handleAction(a,e):{error:"Page type not found"}}const s=await this.backend.handleAction(a,e);return this.emit(a.action,s),s}emit(a,e){var n,o,c;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const s=l.get(e,"page");if(!s)return;const t=h(s.pageType);if(t)switch(a){case"CREATE_PAGE":return(n=t.onCreate)==null?void 0:n.call(t,s);case"UPDATE_PAGE":return(o=t.onUpdate)==null?void 0:o.call(t,s);case"DELETE_PAGE":return(c=t.onDelete)==null?void 0:c.call(t,s)}}setLanguageFromSlug(a){if(!this.getFallbackLang())throw new Error("Please set a fallback language using setFallbackLang(lang: string)");const e=l.first(a||[""]);Object.keys(C).includes(e)?this.setCurrentLang(e):this.setCurrentLang(this.getFallbackLang())}async resolvePageLink(a){if(!l.startsWith(a,"pageType:"))return a;const e=a.split(":")[1],s=a.split(":")[2],t=h(e);return t?await this.resolveLink(t.key,s):a}async resolveLink(a,e){const s=h(a);if(!s)return"/not-found";const t=this.isDraftMode(),n=this.getCurrentLang()===this.getFallbackLang()?"":this.getCurrentLang();return s.resolveLink?await s.resolveLink(e,t,n):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:e,draft:t,lang:n}})}async getPageBySlug(a){const e=this.isDraftMode(),s={};return k().forEach(t=>{l.has(t,"dynamicSegments")&&t.dynamicSegments&&(s[t.key]=t.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:e,dynamicSegments:s}})}async getFullPage(a){const e=this.isDraftMode(),s=this.getCurrentLang(),t=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:t===s?void 0:s,draft:e,mergePartials:!0}})}async getSiteSettings(){const a=this.isDraftMode();return await this.backend.handleAction({action:"GET_WEBSITE_SETTINGS",data:{draft:a}})}async getPageData(a,e={}){var u;const s=this.isDraftMode(),t=this.getCurrentLang(),n=h(a),[o,c]=await Promise.all([this.getGlobalData(),((u=n==null?void 0:n.dataProvider)==null?void 0:u.call(n,{lang:t,draft:s,inBuilder:!1,pageProps:e}))||Promise.resolve({})]);return n?{...c,global:o}:{global:o}}async getGlobalData(){const a=this.getCurrentLang();return await E({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class M{constructor(a="",e=L){this.apiKey=a,this.apiUrl=e}async handleUsersAction(a,e){const s=await fetch(`${this.apiUrl}/v1/api/users`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}}),t=await s.json();return l.has(t,"error")?{...t,status:s.status}:t}async handleAction(a,e){const s=await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}}),t=await s.json();return l.has(t,"error")?{...t,status:s.status}:t}async handleAssetsAction(a,e){return await(await fetch(`${this.apiUrl}/v1/api/assets`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}})).json()}}const L="https://api.chaibuilder.com";exports.API_URL=L;exports.ChaiBuilderPages=D;exports.ChaiBuilderPagesBackend=M;exports.ChaiBuilderPagesUserManagement=y;exports.LANGUAGES=C;exports.getChaiGlobalData=E;exports.getChaiPageType=h;exports.getChaiPageTypes=k;exports.registerChaiGlobalDataProvider=G;exports.registerChaiPageType=p;exports.registerChaiPartialType=P;
|
package/dist/server.d.ts
CHANGED
|
@@ -55,6 +55,12 @@ export declare class ChaiBuilderPages implements ChaiBuilderPagesInterface {
|
|
|
55
55
|
}, authToken: string): Promise<any>;
|
|
56
56
|
emit(action: string, data: any): Promise<void> | undefined;
|
|
57
57
|
setLanguageFromSlug(slug: string[]): void;
|
|
58
|
+
/**
|
|
59
|
+
* Resolve a page link
|
|
60
|
+
* @param href - The href to resolve
|
|
61
|
+
* @returns The resolved link
|
|
62
|
+
*/
|
|
63
|
+
resolvePageLink(href: string): Promise<any>;
|
|
58
64
|
resolveLink(pageTypeKey: string, id: string): Promise<any>;
|
|
59
65
|
getPageBySlug(slug: string): Promise<any>;
|
|
60
66
|
getFullPage(id: string): Promise<any>;
|
|
@@ -74,6 +80,11 @@ export declare interface ChaiBuilderPagesAssetsInterface {
|
|
|
74
80
|
}, authToken: string): Promise<ChaiAsset | {
|
|
75
81
|
error: string;
|
|
76
82
|
}>;
|
|
83
|
+
getAsset({ id }: {
|
|
84
|
+
id: string;
|
|
85
|
+
}, authToken: string): Promise<ChaiAsset | {
|
|
86
|
+
error: string;
|
|
87
|
+
}>;
|
|
77
88
|
getAssets(params: AssetsParams, authToken: string): Promise<{
|
|
78
89
|
assets: Partial<ChaiAsset>[];
|
|
79
90
|
total: number;
|
package/dist/server.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var u = (i, a, e) =>
|
|
4
|
-
import { isEmpty as w, get as
|
|
5
|
-
const g = {},
|
|
1
|
+
var T = Object.defineProperty;
|
|
2
|
+
var y = (i, a, e) => a in i ? T(i, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[a] = e;
|
|
3
|
+
var u = (i, a, e) => y(i, typeof a != "symbol" ? a + "" : a, e);
|
|
4
|
+
import { isEmpty as w, get as C, first as L, startsWith as _, has as A } from "lodash-es";
|
|
5
|
+
const g = {}, v = (i, a) => {
|
|
6
6
|
g[i] = { key: i, ...a, hasSlug: !0 };
|
|
7
7
|
}, U = (i, a) => {
|
|
8
8
|
g[i] = { key: i, ...a, hasSlug: !1 };
|
|
9
|
-
}, b = () => Object.values(g),
|
|
10
|
-
let
|
|
9
|
+
}, b = () => Object.values(g), l = (i) => g[i];
|
|
10
|
+
let P = async (i) => ({
|
|
11
11
|
...i
|
|
12
12
|
});
|
|
13
|
-
const
|
|
13
|
+
const B = (i) => P = i, p = async (i) => {
|
|
14
14
|
try {
|
|
15
|
-
return await
|
|
15
|
+
return await P(i);
|
|
16
16
|
} catch (a) {
|
|
17
17
|
return console.error(a), {};
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
|
-
class
|
|
20
|
+
class G {
|
|
21
21
|
constructor(a) {
|
|
22
22
|
this.backend = a;
|
|
23
23
|
}
|
|
@@ -40,6 +40,14 @@ class v {
|
|
|
40
40
|
t
|
|
41
41
|
));
|
|
42
42
|
}
|
|
43
|
+
async getAsset({ id: a }, e) {
|
|
44
|
+
var n, t;
|
|
45
|
+
return (t = (n = this.backend).handleAssetsAction) == null ? void 0 : t.call(
|
|
46
|
+
n,
|
|
47
|
+
{ action: "GET_ASSET", data: { id: a } },
|
|
48
|
+
e
|
|
49
|
+
);
|
|
50
|
+
}
|
|
43
51
|
async getAssets(a, e) {
|
|
44
52
|
var n, t;
|
|
45
53
|
return (t = (n = this.backend).handleAssetsAction) == null ? void 0 : t.call(
|
|
@@ -78,7 +86,7 @@ class v {
|
|
|
78
86
|
);
|
|
79
87
|
}
|
|
80
88
|
}
|
|
81
|
-
class
|
|
89
|
+
class D {
|
|
82
90
|
constructor(a) {
|
|
83
91
|
this.backend = a;
|
|
84
92
|
}
|
|
@@ -139,7 +147,7 @@ class G {
|
|
|
139
147
|
));
|
|
140
148
|
}
|
|
141
149
|
}
|
|
142
|
-
const
|
|
150
|
+
const M = {
|
|
143
151
|
ab: "Abkhazian",
|
|
144
152
|
aa: "Afar",
|
|
145
153
|
af: "Afrikaans",
|
|
@@ -328,15 +336,15 @@ const D = {
|
|
|
328
336
|
za: "Zhuang, Chuang",
|
|
329
337
|
zu: "Zulu"
|
|
330
338
|
};
|
|
331
|
-
class
|
|
339
|
+
class K {
|
|
332
340
|
constructor(a, e, n) {
|
|
333
341
|
u(this, "fallbackLang", "");
|
|
334
342
|
u(this, "currentLang", "");
|
|
335
343
|
u(this, "draftMode", !1);
|
|
336
|
-
this.backend = a, this.chaiUsers = e, this.chaiAssets = n, this._registerDefaultPageTypes(), this.chaiUsers = e ?? new
|
|
344
|
+
this.backend = a, this.chaiUsers = e, this.chaiAssets = n, this._registerDefaultPageTypes(), this.chaiUsers = e ?? new D(this.backend), this.chaiAssets = n ?? new G(this.backend);
|
|
337
345
|
}
|
|
338
346
|
_registerDefaultPageTypes() {
|
|
339
|
-
|
|
347
|
+
v("page", {
|
|
340
348
|
name: "Static Page",
|
|
341
349
|
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>'
|
|
342
350
|
}), U("global", {
|
|
@@ -368,7 +376,7 @@ class B {
|
|
|
368
376
|
return this.draftMode;
|
|
369
377
|
}
|
|
370
378
|
async handle(a, e) {
|
|
371
|
-
var t, s, o, c,
|
|
379
|
+
var t, s, o, c, h, k, m, E, S, f;
|
|
372
380
|
switch (a.action) {
|
|
373
381
|
// Media
|
|
374
382
|
case "UPLOAD_ASSET":
|
|
@@ -388,15 +396,15 @@ class B {
|
|
|
388
396
|
return (c = this.chaiAssets) == null ? void 0 : c.updateAsset(a.data, e);
|
|
389
397
|
// Users
|
|
390
398
|
case "REFRESH_TOKEN":
|
|
391
|
-
return (
|
|
399
|
+
return (h = this.chaiUsers) == null ? void 0 : h.refreshToken(
|
|
392
400
|
a.data
|
|
393
401
|
);
|
|
394
402
|
case "LOGIN":
|
|
395
|
-
return (
|
|
403
|
+
return (k = this.chaiUsers) == null ? void 0 : k.login(
|
|
396
404
|
a.data
|
|
397
405
|
);
|
|
398
406
|
case "LOGOUT":
|
|
399
|
-
return (
|
|
407
|
+
return (m = this.chaiUsers) == null ? void 0 : m.logout();
|
|
400
408
|
case "CHECK_USER_STATUS":
|
|
401
409
|
return (E = this.chaiUsers) == null ? void 0 : E.isUserActive(e);
|
|
402
410
|
case "GET_ROLE_AND_PERMISSIONS":
|
|
@@ -408,11 +416,11 @@ class B {
|
|
|
408
416
|
);
|
|
409
417
|
}
|
|
410
418
|
if (a.action === "GET_BUILDER_PAGE_DATA") {
|
|
411
|
-
const r = await
|
|
419
|
+
const r = await p({
|
|
412
420
|
lang: a.data.lang,
|
|
413
421
|
draft: !0,
|
|
414
422
|
inBuilder: !0
|
|
415
|
-
}), d =
|
|
423
|
+
}), d = l(
|
|
416
424
|
a.data.pageType
|
|
417
425
|
);
|
|
418
426
|
return d ? {
|
|
@@ -438,7 +446,7 @@ class B {
|
|
|
438
446
|
}))
|
|
439
447
|
);
|
|
440
448
|
if (a.action === "SEARCH_PAGE_TYPE_ITEMS") {
|
|
441
|
-
const r =
|
|
449
|
+
const r = l(
|
|
442
450
|
a.data.pageType
|
|
443
451
|
);
|
|
444
452
|
return r ? r.search ? await r.search(a.data.query) : this.backend.handleAction(a, e) : { error: "Page type not found" };
|
|
@@ -449,9 +457,9 @@ class B {
|
|
|
449
457
|
emit(a, e) {
|
|
450
458
|
var s, o, c;
|
|
451
459
|
if (!["CREATE_PAGE", "UPDATE_PAGE", "DELETE_PAGE"].includes(a)) return;
|
|
452
|
-
const n =
|
|
460
|
+
const n = C(e, "page");
|
|
453
461
|
if (!n) return;
|
|
454
|
-
const t =
|
|
462
|
+
const t = l(n.pageType);
|
|
455
463
|
if (t)
|
|
456
464
|
switch (a) {
|
|
457
465
|
case "CREATE_PAGE":
|
|
@@ -468,11 +476,22 @@ class B {
|
|
|
468
476
|
throw new Error(
|
|
469
477
|
"Please set a fallback language using setFallbackLang(lang: string)"
|
|
470
478
|
);
|
|
471
|
-
const e =
|
|
472
|
-
Object.keys(
|
|
479
|
+
const e = L(a || [""]);
|
|
480
|
+
Object.keys(M).includes(e) ? this.setCurrentLang(e) : this.setCurrentLang(this.getFallbackLang());
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Resolve a page link
|
|
484
|
+
* @param href - The href to resolve
|
|
485
|
+
* @returns The resolved link
|
|
486
|
+
*/
|
|
487
|
+
async resolvePageLink(a) {
|
|
488
|
+
if (!_(a, "pageType:"))
|
|
489
|
+
return a;
|
|
490
|
+
const e = a.split(":")[1], n = a.split(":")[2], t = l(e);
|
|
491
|
+
return t ? await this.resolveLink(t.key, n) : a;
|
|
473
492
|
}
|
|
474
493
|
async resolveLink(a, e) {
|
|
475
|
-
const n =
|
|
494
|
+
const n = l(a);
|
|
476
495
|
if (!n)
|
|
477
496
|
return "/not-found";
|
|
478
497
|
const t = this.isDraftMode(), s = this.getCurrentLang() === this.getFallbackLang() ? "" : this.getCurrentLang();
|
|
@@ -515,10 +534,10 @@ class B {
|
|
|
515
534
|
});
|
|
516
535
|
}
|
|
517
536
|
async getPageData(a, e = {}) {
|
|
518
|
-
var
|
|
519
|
-
const n = this.isDraftMode(), t = this.getCurrentLang(), s =
|
|
537
|
+
var h;
|
|
538
|
+
const n = this.isDraftMode(), t = this.getCurrentLang(), s = l(a), [o, c] = await Promise.all([
|
|
520
539
|
this.getGlobalData(),
|
|
521
|
-
((
|
|
540
|
+
((h = s == null ? void 0 : s.dataProvider) == null ? void 0 : h.call(s, {
|
|
522
541
|
lang: t,
|
|
523
542
|
draft: n,
|
|
524
543
|
inBuilder: !1,
|
|
@@ -532,7 +551,7 @@ class B {
|
|
|
532
551
|
}
|
|
533
552
|
async getGlobalData() {
|
|
534
553
|
const a = this.getCurrentLang();
|
|
535
|
-
return await
|
|
554
|
+
return await p({
|
|
536
555
|
lang: a,
|
|
537
556
|
draft: this.isDraftMode(),
|
|
538
557
|
inBuilder: !1
|
|
@@ -542,8 +561,8 @@ class B {
|
|
|
542
561
|
return await this.backend.handleAction(a);
|
|
543
562
|
}
|
|
544
563
|
}
|
|
545
|
-
class
|
|
546
|
-
constructor(a = "", e =
|
|
564
|
+
class N {
|
|
565
|
+
constructor(a = "", e = I) {
|
|
547
566
|
this.apiKey = a, this.apiUrl = e;
|
|
548
567
|
}
|
|
549
568
|
async handleUsersAction(a, e) {
|
|
@@ -579,17 +598,17 @@ class K {
|
|
|
579
598
|
})).json();
|
|
580
599
|
}
|
|
581
600
|
}
|
|
582
|
-
const
|
|
601
|
+
const I = "https://api.chaibuilder.com";
|
|
583
602
|
export {
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
603
|
+
I as API_URL,
|
|
604
|
+
K as ChaiBuilderPages,
|
|
605
|
+
N as ChaiBuilderPagesBackend,
|
|
606
|
+
D as ChaiBuilderPagesUserManagement,
|
|
607
|
+
M as LANGUAGES,
|
|
608
|
+
p as getChaiGlobalData,
|
|
609
|
+
l as getChaiPageType,
|
|
591
610
|
b as getChaiPageTypes,
|
|
592
|
-
|
|
593
|
-
|
|
611
|
+
B as registerChaiGlobalDataProvider,
|
|
612
|
+
v as registerChaiPageType,
|
|
594
613
|
U as registerChaiPartialType
|
|
595
614
|
};
|
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.4.
|
|
6
|
+
"version": "0.4.14",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"files": [
|
|
9
9
|
"dist"
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"@chaibuilder/runtime": "2.1.2",
|
|
77
|
-
"@chaibuilder/sdk": "2.2.
|
|
77
|
+
"@chaibuilder/sdk": "2.2.13",
|
|
78
78
|
"@mhsdesign/jit-browser-tailwindcss": "^0.4.2",
|
|
79
79
|
"@tailwindcss/aspect-ratio": "^0.4.2",
|
|
80
80
|
"@tailwindcss/forms": "^0.5.10",
|