@chaibuilder/pages 0.3.6 → 0.4.0

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 CHANGED
@@ -1 +1 @@
1
- "use strict";var E=Object.defineProperty;var A=(i,a,t)=>a in i?E(i,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[a]=t;var l=(i,a,t)=>A(i,typeof a!="symbol"?a+"":a,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),u={},k=(i,a)=>{u[i]={key:i,...a,hasSlug:!0}},f=(i,a)=>{u[i]={key:i,...a,hasSlug:!1}},g=()=>Object.values(u),s=i=>u[i];let b=async i=>({...i});const C=i=>b=i,d=async i=>{try{return await b(i)}catch(a){return console.error(a),{}}};class w{async verifyTokenAndGetUser(a){return{id:"mock-chai-user",name:"Mock Chai User",email:"mock-chai-user@chaibuilder.com"}}async isUserActive(a){return!0}async getUserRoleAndPermissions(a){return{role:"admin",permissions:null}}async getUserInfo(a){return{id:"mock-chai-users",email:"mock-chai-user@chaibuilder.com",name:"Mock Chai User",avatar:"https://i.pravatar.cc/300"}}}const P={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 y{constructor(a){l(this,"fallbackLang","");l(this,"currentLang","");l(this,"draftMode",!1);l(this,"userMgmt",new w);this.backend=a,this._registerDefaultPageTypes()}_registerDefaultPageTypes(){k("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>'}),f("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>'})}setUserManagement(a){this.userMgmt=a}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 handleUpload(a,t=""){return await this.backend.handleUpload(a,t)}async handle(a,t){switch(a.action){case"CHECK_USER_STATUS":return this.userMgmt.isUserActive(t);case"GET_ROLE_AND_PERMISSIONS":return this.userMgmt.getUserRoleAndPermissions(t);case"GET_CHAI_USER":return this.userMgmt.getUserInfo(t)}if(a.action==="GET_BUILDER_PAGE_DATA"){const e=await d({lang:a.data.lang,draft:!0,inBuilder:!0}),r=s(a.data.pageType);return r?{...r.dataProvider?await r.dataProvider({lang:a.data.lang,draft:!0,inBuilder:!0,pageProps:a.data.pageProps??{}}):{},global:e}:{global:e}}if(a.action==="GET_PAGE_TYPES")return Promise.all(g().map(async e=>({key:e.key,helpText:e.helpText??"",icon:e.icon??"",dynamicSegments:e.dynamicSegments??"",dynamicSlug:e.dynamicSlug??"",hasSlug:e.hasSlug??!0,name:typeof e.name=="function"?await e.name():e.name})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const e=s(a.data.pageType);return e?e.search?await e.search(a.data.query):this.backend.handleAction(a):{error:"Page type not found"}}const n=await this.backend.handleAction(a,t);return this.emit(a.action,n),n}emit(a,t){var r,o,h;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const n=c.get(t,"page");if(!n)return;const e=s(n.pageType);if(e)switch(a){case"CREATE_PAGE":return(r=e.onCreate)==null?void 0:r.call(e,n);case"UPDATE_PAGE":return(o=e.onUpdate)==null?void 0:o.call(e,n);case"DELETE_PAGE":return(h=e.onDelete)==null?void 0:h.call(e,n)}}setLanguageFromSlug(a){if(!this.getFallbackLang())throw new Error("Please set a fallback language using setFallbackLang(lang: string)");const t=c.first(a||[""]);Object.keys(P).includes(t)?this.setCurrentLang(t):this.setCurrentLang(this.getFallbackLang())}async resolveLink(a,t){const n=s(a);if(!n)return"/not-found";const e=this.isDraftMode(),r=this.getCurrentLang();return n.resolveLink?await n.resolveLink(t,e,r):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:t,draft:e,lang:r}})}async getPageBySlug(a){const t=this.isDraftMode(),n={};return g().forEach(e=>{c.has(e,"dynamicSegments")&&e.dynamicSegments&&(n[e.key]=e.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:t,dynamicSegments:n}})}async getFullPage(a){const t=this.isDraftMode(),n=this.getCurrentLang(),e=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:e===n?void 0:n,draft:t,mergePartials:!0}})}async getSiteSettings(){const a=this.isDraftMode();return await this.backend.handleAction({action:"GET_WEBSITE_SETTINGS",data:{draft:a}})}async getPageData(a,t={}){var m;const n=this.isDraftMode(),e=this.getCurrentLang(),r=s(a),[o,h]=await Promise.all([this.getGlobalData(),((m=r==null?void 0:r.dataProvider)==null?void 0:m.call(r,{lang:e,draft:n,inBuilder:!1,pageProps:t}))||Promise.resolve({})]);return r?{...h,global:o}:{global:o}}async getGlobalData(){const a=this.getCurrentLang();return await d({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class p{constructor(a="",t=S){this.apiKey=a,this.apiUrl=t}async handleAction(a,t=""){return await(await fetch(`${this.apiUrl}/v1/api/chai`,{cache:"no-store",method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,...t?{"x-chai-user":t}:{}}})).json()}async handleUpload(a,t=""){return console.log("handleUpload",typeof a.get("file")),await(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:a,headers:{"x-chai-api-key":this.apiKey,"x-chai-upload":"true",...t?{"x-chai-user":t}:{}}})).json()}}const S="https://api.chaibuilder.com";exports.API_URL=S;exports.ChaiBuilderPages=y;exports.ChaiBuilderPagesBackend=p;exports.ChaiBuilderPagesUserManagement=w;exports.LANGUAGES=P;exports.getChaiGlobalData=d;exports.getChaiPageType=s;exports.getChaiPageTypes=g;exports.registerChaiGlobalDataProvider=C;exports.registerChaiPageType=k;exports.registerChaiPartialType=f;
1
+ "use strict";var C=Object.defineProperty;var y=(i,a,e)=>a in i?C(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var g=(i,a,e)=>y(i,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),d={},S=(i,a)=>{d[i]={key:i,...a,hasSlug:!0}},b=(i,a)=>{d[i]={key:i,...a,hasSlug:!1}},k=()=>Object.values(d),h=i=>d[i];let w=async i=>({...i});const L=i=>w=i,f=async i=>{try{return await w(i)}catch(a){return console.error(a),{}}};class A{constructor(a){this.backend=a}async refreshToken(a){const e=await this.backend.handleUsersAction({action:"REFRESH_TOKEN",data:a});return e.error?{error:e.error}:e}async login({email:a,password:e}){const t=await this.backend.handleUsersAction({action:"LOGIN",data:{email:a,password:e}});return t.error?{error:t.error}:t}async logout(){await this.backend.handleUsersAction({action:"LOGOUT"})}async isUserActive(a){return(await this.backend.handleUsersAction({action:"CHECK_USER_STATUS"},a)).success}async getUserRoleAndPermissions(a){return await this.backend.handleUsersAction({action:"GET_ROLE_AND_PERMISSIONS"},a)}async getUserInfo(a,e){return await this.backend.handleUsersAction({action:"GET_CHAI_USER",data:e},a)}}const P={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 T{constructor(a,e){g(this,"fallbackLang","");g(this,"currentLang","");g(this,"draftMode",!1);this.backend=a,this.chaiUsers=e,this._registerDefaultPageTypes(),this.chaiUsers=e??new A(this.backend)}_registerDefaultPageTypes(){S("page",{name:"Static Page",icon:'<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M5 8V20H19V8H5ZM5 6H19V4H5V6ZM20 22H4C3.44772 22 3 21.5523 3 21V3C3 2.44772 3.44772 2 4 2H20C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22ZM7 10H11V14H7V10ZM7 16H17V18H7V16ZM13 11H17V13H13V11Z"></path></svg>'}),b("global",{name:"Global Block",helpText:"A global block can be reused in multiple pages.",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe w-4 h-4 text-slate-500 stroke-[1]"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>'})}setFallbackLang(a){if(c.isEmpty(a))throw new Error("Fallback language cannot be empty");this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setCurrentLang(a){if(c.isEmpty(a))throw new Error("Current language cannot be empty");this.currentLang=a}getCurrentLang(){return this.currentLang}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async handleUpload(a,e=""){return await this.backend.handleUpload(a,e)}async handle(a,e){var n,r,o,l,u,E;switch(a.action){case"REFRESH_TOKEN":return(n=this.chaiUsers)==null?void 0:n.refreshToken(a.data);case"LOGIN":return(r=this.chaiUsers)==null?void 0:r.login(a.data);case"LOGOUT":return(o=this.chaiUsers)==null?void 0:o.logout();case"CHECK_USER_STATUS":return(l=this.chaiUsers)==null?void 0:l.isUserActive(e);case"GET_ROLE_AND_PERMISSIONS":return(u=this.chaiUsers)==null?void 0:u.getUserRoleAndPermissions(e);case"GET_CHAI_USER":return(E=this.chaiUsers)==null?void 0:E.getUserInfo(e,a.data)}if(a.action==="GET_BUILDER_PAGE_DATA"){const s=await f({lang:a.data.lang,draft:!0,inBuilder:!0}),m=h(a.data.pageType);return m?{...m.dataProvider?await m.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(k().map(async s=>({key:s.key,helpText:s.helpText??"",icon:s.icon??"",dynamicSegments:s.dynamicSegments??"",dynamicSlug:s.dynamicSlug??"",hasSlug:s.hasSlug??!0,name:typeof s.name=="function"?await s.name():s.name})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const s=h(a.data.pageType);return s?s.search?await s.search(a.data.query):this.backend.handleAction(a,e):{error:"Page type not found"}}const t=await this.backend.handleAction(a,e);return this.emit(a.action,t),t}emit(a,e){var r,o,l;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const t=c.get(e,"page");if(!t)return;const n=h(t.pageType);if(n)switch(a){case"CREATE_PAGE":return(r=n.onCreate)==null?void 0:r.call(n,t);case"UPDATE_PAGE":return(o=n.onUpdate)==null?void 0:o.call(n,t);case"DELETE_PAGE":return(l=n.onDelete)==null?void 0:l.call(n,t)}}setLanguageFromSlug(a){if(!this.getFallbackLang())throw new Error("Please set a fallback language using setFallbackLang(lang: string)");const e=c.first(a||[""]);Object.keys(P).includes(e)?this.setCurrentLang(e):this.setCurrentLang(this.getFallbackLang())}async resolveLink(a,e){const t=h(a);if(!t)return"/not-found";const n=this.isDraftMode(),r=this.getCurrentLang();return t.resolveLink?await t.resolveLink(e,n,r):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:e,draft:n,lang:r}})}async getPageBySlug(a){const e=this.isDraftMode(),t={};return k().forEach(n=>{c.has(n,"dynamicSegments")&&n.dynamicSegments&&(t[n.key]=n.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:e,dynamicSegments:t}})}async getFullPage(a){const e=this.isDraftMode(),t=this.getCurrentLang(),n=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:n===t?void 0:t,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 t=this.isDraftMode(),n=this.getCurrentLang(),r=h(a),[o,l]=await Promise.all([this.getGlobalData(),((u=r==null?void 0:r.dataProvider)==null?void 0:u.call(r,{lang:n,draft:t,inBuilder:!1,pageProps:e}))||Promise.resolve({})]);return r?{...l,global:o}:{global:o}}async getGlobalData(){const a=this.getCurrentLang();return await f({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class U{constructor(a="",e=p){this.apiKey=a,this.apiUrl=e}async handleUsersAction(a,e){console.log(a,e,this.apiUrl);const t=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}}),n=await t.json();return c.has(n,"error")?{...n,status:t.status}:n}async handleAction(a,e){const t=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}}),n=await t.json();return c.has(n,"error")?{...n,status:t.status}:n}async handleUpload(a,e){return await(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:a,headers:{"x-chai-api-key":this.apiKey,"x-chai-upload":"true","x-chai-auth-token":e}})).json()}}const p="https://api.chaibuilder.com";exports.API_URL=p;exports.ChaiBuilderPages=T;exports.ChaiBuilderPagesBackend=U;exports.ChaiBuilderPagesUserManagement=A;exports.LANGUAGES=P;exports.getChaiGlobalData=f;exports.getChaiPageType=h;exports.getChaiPageTypes=k;exports.registerChaiGlobalDataProvider=L;exports.registerChaiPageType=S;exports.registerChaiPartialType=b;
package/dist/server.d.ts CHANGED
@@ -13,13 +13,12 @@ export declare type ChaiBuilderPage = {
13
13
 
14
14
  export declare class ChaiBuilderPages implements ChaiBuilderPagesInterface {
15
15
  protected backend: ChaiBuilderPagesBackendInterface;
16
+ protected chaiUsers?: ChaiBuilderPagesUsersInterface | undefined;
16
17
  private fallbackLang;
17
18
  private currentLang;
18
19
  private draftMode;
19
- private userMgmt;
20
- constructor(backend: ChaiBuilderPagesBackendInterface);
20
+ constructor(backend: ChaiBuilderPagesBackendInterface, chaiUsers?: ChaiBuilderPagesUsersInterface | undefined);
21
21
  private _registerDefaultPageTypes;
22
- setUserManagement(usersMgmt: ChaiBuilderPagesUserManagementInterface): void;
23
22
  setFallbackLang(lang: string): void;
24
23
  getFallbackLang(): string;
25
24
  setCurrentLang(lang: string): void;
@@ -30,7 +29,7 @@ export declare class ChaiBuilderPages implements ChaiBuilderPagesInterface {
30
29
  handle(body: {
31
30
  action: string;
32
31
  data: Record<string, any>;
33
- }, userId?: string): Promise<any>;
32
+ }, authToken: string): Promise<any>;
34
33
  emit(action: string, data: any): Promise<void> | undefined;
35
34
  setLanguageFromSlug(slug: string[]): void;
36
35
  resolveLink(pageTypeKey: string, id: string): Promise<any>;
@@ -48,13 +47,15 @@ export declare class ChaiBuilderPagesBackend implements ChaiBuilderPagesBackendI
48
47
  private apiKey;
49
48
  private apiUrl;
50
49
  constructor(apiKey?: string, apiUrl?: string);
51
- handleAction(body: any, chaiUser?: string): Promise<any>;
52
- handleUpload(formData: FormData, chaiUser?: string): Promise<any>;
50
+ handleUsersAction(body: any, authToken: string): Promise<any>;
51
+ handleAction(body: any, authToken: string): Promise<any>;
52
+ handleUpload(formData: FormData, authToken: string): Promise<any>;
53
53
  }
54
54
 
55
55
  export declare interface ChaiBuilderPagesBackendInterface {
56
- handleAction(body: any, chaiUser?: string): Promise<any>;
57
- handleUpload(formData: FormData, chaiUser?: string): Promise<any>;
56
+ handleAction(body: any, authToken?: string): Promise<any>;
57
+ handleUpload(formData: FormData, authToken?: string): Promise<any>;
58
+ handleUsersAction(body: any, authToken?: string): Promise<any>;
58
59
  }
59
60
 
60
61
  export declare interface ChaiBuilderPagesInterface {
@@ -64,8 +65,7 @@ export declare interface ChaiBuilderPagesInterface {
64
65
  getCurrentLang(): string;
65
66
  setDraftMode(draft: boolean): void;
66
67
  isDraftMode(): boolean;
67
- setUserManagement(usersMgmt: ChaiBuilderPagesUserManagementInterface): void;
68
- handle(body: any): Promise<any>;
68
+ handle(body: any, authToken: string): Promise<any>;
69
69
  emit(action: string, data: any): void;
70
70
  setLanguageFromSlug(slug: string[]): void;
71
71
  resolveLink(pageTypeKey: string, id: string): Promise<string>;
@@ -76,37 +76,54 @@ export declare interface ChaiBuilderPagesInterface {
76
76
  getGlobalData(): Promise<any>;
77
77
  }
78
78
 
79
- export declare class ChaiBuilderPagesUserManagement implements ChaiBuilderPagesUserManagementInterface {
80
- verifyTokenAndGetUser(_token: string): Promise<{
81
- id: string;
82
- name: string;
79
+ export declare class ChaiBuilderPagesUserManagement implements ChaiBuilderPagesUsersInterface {
80
+ private backend;
81
+ constructor(backend: ChaiBuilderPagesBackendInterface);
82
+ refreshToken(data: {
83
+ accessToken: string;
84
+ refreshToken: string;
85
+ }): Promise<LoggedInUser | {
86
+ error: string;
87
+ }>;
88
+ login({ email, password, }: {
83
89
  email: string;
84
- } | null>;
85
- isUserActive(_userId: string): Promise<boolean>;
86
- getUserRoleAndPermissions(_userId: string): Promise<{
90
+ password: string;
91
+ }): Promise<LoggedInUser | {
92
+ error: string;
93
+ }>;
94
+ logout(): Promise<void>;
95
+ isUserActive(authToken: string): Promise<boolean>;
96
+ getUserRoleAndPermissions(authToken: string): Promise<{
87
97
  role: string;
88
98
  permissions: string[] | null;
89
99
  }>;
90
- getUserInfo(_userId: string): Promise<{
91
- id: string;
92
- email: string;
93
- name: string;
94
- avatar: string;
95
- }>;
100
+ getUserInfo(authToken: string, data: {
101
+ userId: string;
102
+ }): Promise<any>;
96
103
  }
97
104
 
98
- export declare interface ChaiBuilderPagesUserManagementInterface {
99
- isUserActive(chaiUserId: string): Promise<boolean>;
100
- getUserRoleAndPermissions(chaiUserId: string): Promise<{
105
+ export declare interface ChaiBuilderPagesUsersInterface {
106
+ login({ email, password, }: {
107
+ email: string;
108
+ password: string;
109
+ }): Promise<LoggedInUser | {
110
+ error: string;
111
+ }>;
112
+ logout(): Promise<void>;
113
+ isUserActive(authToken: string): Promise<boolean>;
114
+ getUserRoleAndPermissions(authToken: string): Promise<{
101
115
  role: string;
102
116
  permissions: string[] | null;
103
117
  }>;
104
- verifyTokenAndGetUser(token: string): Promise<{
105
- id: string;
106
- name: string;
107
- email: string;
108
- } | null>;
109
- getUserInfo(chaiUserId: string): Promise<ChaiBuilderUserInfo>;
118
+ getUserInfo(authToken: string, data: {
119
+ userId: string;
120
+ }): Promise<ChaiBuilderUserInfo>;
121
+ refreshToken(data: {
122
+ accessToken: string;
123
+ refreshToken: string;
124
+ }): Promise<LoggedInUser | {
125
+ error: string;
126
+ }>;
110
127
  }
111
128
 
112
129
  export declare type ChaiBuilderPageType = {
@@ -159,6 +176,15 @@ export declare const LANGUAGES: {
159
176
  [key: string]: string;
160
177
  };
161
178
 
179
+ export declare interface LoggedInUser {
180
+ accessToken: string;
181
+ refreshToken: string;
182
+ id: string;
183
+ email: string;
184
+ name: string;
185
+ avatar?: string;
186
+ }
187
+
162
188
  declare const PAGE_TYPES: Record<string, ChaiBuilderPageType>;
163
189
 
164
190
  export declare type PageTypeSearchResult = {
package/dist/server.js CHANGED
@@ -1,53 +1,68 @@
1
- var f = Object.defineProperty;
2
- var b = (i, a, n) => a in i ? f(i, a, { enumerable: !0, configurable: !0, writable: !0, value: n }) : i[a] = n;
3
- var o = (i, a, n) => b(i, typeof a != "symbol" ? a + "" : a, n);
4
- import { isEmpty as g, get as w, first as S, has as E } from "lodash-es";
5
- const h = {}, A = (i, a) => {
6
- h[i] = { key: i, ...a, hasSlug: !0 };
7
- }, P = (i, a) => {
8
- h[i] = { key: i, ...a, hasSlug: !1 };
9
- }, d = () => Object.values(h), l = (i) => h[i];
10
- let k = async (i) => ({
1
+ var b = Object.defineProperty;
2
+ var A = (i, a, e) => a in i ? b(i, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[a] = e;
3
+ var u = (i, a, e) => A(i, typeof a != "symbol" ? a + "" : a, e);
4
+ import { isEmpty as f, get as p, first as P, has as m } from "lodash-es";
5
+ const g = {}, C = (i, a) => {
6
+ g[i] = { key: i, ...a, hasSlug: !0 };
7
+ }, y = (i, a) => {
8
+ g[i] = { key: i, ...a, hasSlug: !1 };
9
+ }, w = () => Object.values(g), h = (i) => g[i];
10
+ let S = async (i) => ({
11
11
  ...i
12
12
  });
13
- const L = (i) => k = i, m = async (i) => {
13
+ const _ = (i) => S = i, E = async (i) => {
14
14
  try {
15
- return await k(i);
15
+ return await S(i);
16
16
  } catch (a) {
17
17
  return console.error(a), {};
18
18
  }
19
19
  };
20
- class C {
21
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
22
- async verifyTokenAndGetUser(a) {
23
- return {
24
- id: "mock-chai-user",
25
- name: "Mock Chai User",
26
- email: "mock-chai-user@chaibuilder.com"
27
- };
20
+ class L {
21
+ constructor(a) {
22
+ this.backend = a;
23
+ }
24
+ async refreshToken(a) {
25
+ const e = await this.backend.handleUsersAction({
26
+ action: "REFRESH_TOKEN",
27
+ data: a
28
+ });
29
+ return e.error ? { error: e.error } : e;
30
+ }
31
+ async login({
32
+ email: a,
33
+ password: e
34
+ }) {
35
+ const t = await this.backend.handleUsersAction({
36
+ action: "LOGIN",
37
+ data: { email: a, password: e }
38
+ });
39
+ return t.error ? { error: t.error } : t;
40
+ }
41
+ async logout() {
42
+ await this.backend.handleUsersAction({
43
+ action: "LOGOUT"
44
+ });
28
45
  }
29
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
30
46
  async isUserActive(a) {
31
- return !0;
47
+ return (await this.backend.handleUsersAction(
48
+ { action: "CHECK_USER_STATUS" },
49
+ a
50
+ )).success;
32
51
  }
33
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
34
52
  async getUserRoleAndPermissions(a) {
35
- return {
36
- role: "admin",
37
- permissions: null
38
- };
53
+ return await this.backend.handleUsersAction(
54
+ { action: "GET_ROLE_AND_PERMISSIONS" },
55
+ a
56
+ );
39
57
  }
40
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
41
- async getUserInfo(a) {
42
- return {
43
- id: "mock-chai-users",
44
- email: "mock-chai-user@chaibuilder.com",
45
- name: "Mock Chai User",
46
- avatar: "https://i.pravatar.cc/300"
47
- };
58
+ async getUserInfo(a, e) {
59
+ return await this.backend.handleUsersAction(
60
+ { action: "GET_CHAI_USER", data: e },
61
+ a
62
+ );
48
63
  }
49
64
  }
50
- const p = {
65
+ const U = {
51
66
  ab: "Abkhazian",
52
67
  aa: "Afar",
53
68
  af: "Afrikaans",
@@ -236,29 +251,25 @@ const p = {
236
251
  za: "Zhuang, Chuang",
237
252
  zu: "Zulu"
238
253
  };
239
- class T {
240
- constructor(a) {
241
- o(this, "fallbackLang", "");
242
- o(this, "currentLang", "");
243
- o(this, "draftMode", !1);
244
- o(this, "userMgmt", new C());
245
- this.backend = a, this._registerDefaultPageTypes();
254
+ class M {
255
+ constructor(a, e) {
256
+ u(this, "fallbackLang", "");
257
+ u(this, "currentLang", "");
258
+ u(this, "draftMode", !1);
259
+ this.backend = a, this.chaiUsers = e, this._registerDefaultPageTypes(), this.chaiUsers = e ?? new L(this.backend);
246
260
  }
247
261
  _registerDefaultPageTypes() {
248
- A("page", {
262
+ C("page", {
249
263
  name: "Static Page",
250
264
  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>'
251
- }), P("global", {
265
+ }), y("global", {
252
266
  name: "Global Block",
253
267
  helpText: "A global block can be reused in multiple pages.",
254
268
  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>'
255
269
  });
256
270
  }
257
- setUserManagement(a) {
258
- this.userMgmt = a;
259
- }
260
271
  setFallbackLang(a) {
261
- if (g(a))
272
+ if (f(a))
262
273
  throw new Error("Fallback language cannot be empty");
263
274
  this.fallbackLang = a;
264
275
  }
@@ -266,7 +277,7 @@ class T {
266
277
  return this.fallbackLang;
267
278
  }
268
279
  setCurrentLang(a) {
269
- if (g(a))
280
+ if (f(a))
270
281
  throw new Error("Current language cannot be empty");
271
282
  this.currentLang = a;
272
283
  }
@@ -279,71 +290,85 @@ class T {
279
290
  isDraftMode() {
280
291
  return this.draftMode;
281
292
  }
282
- async handleUpload(a, n = "") {
283
- return await this.backend.handleUpload(a, n);
293
+ async handleUpload(a, e = "") {
294
+ return await this.backend.handleUpload(a, e);
284
295
  }
285
- async handle(a, n) {
296
+ async handle(a, e) {
297
+ var n, r, o, c, l, k;
286
298
  switch (a.action) {
299
+ case "REFRESH_TOKEN":
300
+ return (n = this.chaiUsers) == null ? void 0 : n.refreshToken(
301
+ a.data
302
+ );
303
+ case "LOGIN":
304
+ return (r = this.chaiUsers) == null ? void 0 : r.login(
305
+ a.data
306
+ );
307
+ case "LOGOUT":
308
+ return (o = this.chaiUsers) == null ? void 0 : o.logout();
287
309
  case "CHECK_USER_STATUS":
288
- return this.userMgmt.isUserActive(n);
310
+ return (c = this.chaiUsers) == null ? void 0 : c.isUserActive(e);
289
311
  case "GET_ROLE_AND_PERMISSIONS":
290
- return this.userMgmt.getUserRoleAndPermissions(n);
312
+ return (l = this.chaiUsers) == null ? void 0 : l.getUserRoleAndPermissions(e);
291
313
  case "GET_CHAI_USER":
292
- return this.userMgmt.getUserInfo(n);
314
+ return (k = this.chaiUsers) == null ? void 0 : k.getUserInfo(
315
+ e,
316
+ a.data
317
+ );
293
318
  }
294
319
  if (a.action === "GET_BUILDER_PAGE_DATA") {
295
- const e = await m({
320
+ const s = await E({
296
321
  lang: a.data.lang,
297
322
  draft: !0,
298
323
  inBuilder: !0
299
- }), r = l(
324
+ }), d = h(
300
325
  a.data.pageType
301
326
  );
302
- return r ? {
303
- ...r.dataProvider ? await r.dataProvider({
327
+ return d ? {
328
+ ...d.dataProvider ? await d.dataProvider({
304
329
  lang: a.data.lang,
305
330
  draft: !0,
306
331
  inBuilder: !0,
307
332
  pageProps: a.data.pageProps ?? {}
308
333
  }) : {},
309
- global: e
310
- } : { global: e };
334
+ global: s
335
+ } : { global: s };
311
336
  }
312
337
  if (a.action === "GET_PAGE_TYPES")
313
338
  return Promise.all(
314
- d().map(async (e) => ({
315
- key: e.key,
316
- helpText: e.helpText ?? "",
317
- icon: e.icon ?? "",
318
- dynamicSegments: e.dynamicSegments ?? "",
319
- dynamicSlug: e.dynamicSlug ?? "",
320
- hasSlug: e.hasSlug ?? !0,
321
- name: typeof e.name == "function" ? await e.name() : e.name
339
+ w().map(async (s) => ({
340
+ key: s.key,
341
+ helpText: s.helpText ?? "",
342
+ icon: s.icon ?? "",
343
+ dynamicSegments: s.dynamicSegments ?? "",
344
+ dynamicSlug: s.dynamicSlug ?? "",
345
+ hasSlug: s.hasSlug ?? !0,
346
+ name: typeof s.name == "function" ? await s.name() : s.name
322
347
  }))
323
348
  );
324
349
  if (a.action === "SEARCH_PAGE_TYPE_ITEMS") {
325
- const e = l(
350
+ const s = h(
326
351
  a.data.pageType
327
352
  );
328
- return e ? e.search ? await e.search(a.data.query) : this.backend.handleAction(a) : { error: "Page type not found" };
353
+ return s ? s.search ? await s.search(a.data.query) : this.backend.handleAction(a, e) : { error: "Page type not found" };
329
354
  }
330
- const t = await this.backend.handleAction(a, n);
355
+ const t = await this.backend.handleAction(a, e);
331
356
  return this.emit(a.action, t), t;
332
357
  }
333
- emit(a, n) {
334
- var r, s, c;
358
+ emit(a, e) {
359
+ var r, o, c;
335
360
  if (!["CREATE_PAGE", "UPDATE_PAGE", "DELETE_PAGE"].includes(a)) return;
336
- const t = w(n, "page");
361
+ const t = p(e, "page");
337
362
  if (!t) return;
338
- const e = l(t.pageType);
339
- if (e)
363
+ const n = h(t.pageType);
364
+ if (n)
340
365
  switch (a) {
341
366
  case "CREATE_PAGE":
342
- return (r = e.onCreate) == null ? void 0 : r.call(e, t);
367
+ return (r = n.onCreate) == null ? void 0 : r.call(n, t);
343
368
  case "UPDATE_PAGE":
344
- return (s = e.onUpdate) == null ? void 0 : s.call(e, t);
369
+ return (o = n.onUpdate) == null ? void 0 : o.call(n, t);
345
370
  case "DELETE_PAGE":
346
- return (c = e.onDelete) == null ? void 0 : c.call(e, t);
371
+ return (c = n.onDelete) == null ? void 0 : c.call(n, t);
347
372
  }
348
373
  }
349
374
  // APIS
@@ -352,41 +377,41 @@ class T {
352
377
  throw new Error(
353
378
  "Please set a fallback language using setFallbackLang(lang: string)"
354
379
  );
355
- const n = S(a || [""]);
356
- Object.keys(p).includes(n) ? this.setCurrentLang(n) : this.setCurrentLang(this.getFallbackLang());
380
+ const e = P(a || [""]);
381
+ Object.keys(U).includes(e) ? this.setCurrentLang(e) : this.setCurrentLang(this.getFallbackLang());
357
382
  }
358
- async resolveLink(a, n) {
359
- const t = l(a);
383
+ async resolveLink(a, e) {
384
+ const t = h(a);
360
385
  if (!t)
361
386
  return "/not-found";
362
- const e = this.isDraftMode(), r = this.getCurrentLang();
363
- return t.resolveLink ? await t.resolveLink(n, e, r) : await this.backend.handleAction({
387
+ const n = this.isDraftMode(), r = this.getCurrentLang();
388
+ return t.resolveLink ? await t.resolveLink(e, n, r) : await this.backend.handleAction({
364
389
  action: "GET_LINK",
365
390
  data: {
366
391
  pageType: a,
367
- id: n,
368
- draft: e,
392
+ id: e,
393
+ draft: n,
369
394
  lang: r
370
395
  }
371
396
  });
372
397
  }
373
398
  async getPageBySlug(a) {
374
- const n = this.isDraftMode(), t = {};
375
- return d().forEach((e) => {
376
- E(e, "dynamicSegments") && e.dynamicSegments && (t[e.key] = e.dynamicSegments);
399
+ const e = this.isDraftMode(), t = {};
400
+ return w().forEach((n) => {
401
+ m(n, "dynamicSegments") && n.dynamicSegments && (t[n.key] = n.dynamicSegments);
377
402
  }), await this.backend.handleAction({
378
403
  action: "GET_PAGE_META",
379
- data: { slug: a, draft: n, dynamicSegments: t }
404
+ data: { slug: a, draft: e, dynamicSegments: t }
380
405
  });
381
406
  }
382
407
  async getFullPage(a) {
383
- const n = this.isDraftMode(), t = this.getCurrentLang(), e = this.getFallbackLang();
408
+ const e = this.isDraftMode(), t = this.getCurrentLang(), n = this.getFallbackLang();
384
409
  return await this.backend.handleAction({
385
410
  action: "GET_PAGE",
386
411
  data: {
387
412
  id: a,
388
- lang: e === t ? void 0 : t,
389
- draft: n,
413
+ lang: n === t ? void 0 : t,
414
+ draft: e,
390
415
  mergePartials: !0
391
416
  }
392
417
  });
@@ -398,25 +423,25 @@ class T {
398
423
  data: { draft: a }
399
424
  });
400
425
  }
401
- async getPageData(a, n = {}) {
402
- var u;
403
- const t = this.isDraftMode(), e = this.getCurrentLang(), r = l(a), [s, c] = await Promise.all([
426
+ async getPageData(a, e = {}) {
427
+ var l;
428
+ const t = this.isDraftMode(), n = this.getCurrentLang(), r = h(a), [o, c] = await Promise.all([
404
429
  this.getGlobalData(),
405
- ((u = r == null ? void 0 : r.dataProvider) == null ? void 0 : u.call(r, {
406
- lang: e,
430
+ ((l = r == null ? void 0 : r.dataProvider) == null ? void 0 : l.call(r, {
431
+ lang: n,
407
432
  draft: t,
408
433
  inBuilder: !1,
409
- pageProps: n
434
+ pageProps: e
410
435
  })) || Promise.resolve({})
411
436
  ]);
412
437
  return r ? {
413
438
  ...c,
414
- global: s
415
- } : { global: s };
439
+ global: o
440
+ } : { global: o };
416
441
  }
417
442
  async getGlobalData() {
418
443
  const a = this.getCurrentLang();
419
- return await m({
444
+ return await E({
420
445
  lang: a,
421
446
  draft: this.isDraftMode(),
422
447
  inBuilder: !1
@@ -426,45 +451,56 @@ class T {
426
451
  return await this.backend.handleAction(a);
427
452
  }
428
453
  }
429
- class G {
430
- constructor(a = "", n = y) {
431
- this.apiKey = a, this.apiUrl = n;
454
+ class D {
455
+ constructor(a = "", e = v) {
456
+ this.apiKey = a, this.apiUrl = e;
432
457
  }
433
- async handleAction(a, n = "") {
434
- return await (await fetch(`${this.apiUrl}/v1/api/chai`, {
435
- cache: "no-store",
458
+ async handleUsersAction(a, e) {
459
+ console.log(a, e, this.apiUrl);
460
+ const t = await fetch(`${this.apiUrl}/v1/api/users`, {
436
461
  method: "POST",
437
462
  body: JSON.stringify(a),
438
463
  headers: {
439
464
  "x-chai-api-key": this.apiKey,
440
- ...n ? { "x-chai-user": n } : {}
465
+ "x-chai-auth-token": e
441
466
  }
442
- })).json();
467
+ }), n = await t.json();
468
+ return m(n, "error") ? { ...n, status: t.status } : n;
443
469
  }
444
- async handleUpload(a, n = "") {
445
- return console.log("handleUpload", typeof a.get("file")), await (await fetch(`${this.apiUrl}/v1/api/chai`, {
470
+ async handleAction(a, e) {
471
+ const t = await fetch(`${this.apiUrl}/v1/api/chai`, {
472
+ method: "POST",
473
+ body: JSON.stringify(a),
474
+ headers: {
475
+ "x-chai-api-key": this.apiKey,
476
+ "x-chai-auth-token": e
477
+ }
478
+ }), n = await t.json();
479
+ return m(n, "error") ? { ...n, status: t.status } : n;
480
+ }
481
+ async handleUpload(a, e) {
482
+ return await (await fetch(`${this.apiUrl}/v1/api/chai`, {
446
483
  method: "POST",
447
484
  body: a,
448
485
  headers: {
449
- // "Content-Type": "multipart/form-data",
450
486
  "x-chai-api-key": this.apiKey,
451
487
  "x-chai-upload": "true",
452
- ...n ? { "x-chai-user": n } : {}
488
+ "x-chai-auth-token": e
453
489
  }
454
490
  })).json();
455
491
  }
456
492
  }
457
- const y = "https://api.chaibuilder.com";
493
+ const v = "https://api.chaibuilder.com";
458
494
  export {
459
- y as API_URL,
460
- T as ChaiBuilderPages,
461
- G as ChaiBuilderPagesBackend,
462
- C as ChaiBuilderPagesUserManagement,
463
- p as LANGUAGES,
464
- m as getChaiGlobalData,
465
- l as getChaiPageType,
466
- d as getChaiPageTypes,
467
- L as registerChaiGlobalDataProvider,
468
- A as registerChaiPageType,
469
- P as registerChaiPartialType
495
+ v as API_URL,
496
+ M as ChaiBuilderPages,
497
+ D as ChaiBuilderPagesBackend,
498
+ L as ChaiBuilderPagesUserManagement,
499
+ U as LANGUAGES,
500
+ E as getChaiGlobalData,
501
+ h as getChaiPageType,
502
+ w as getChaiPageTypes,
503
+ _ as registerChaiGlobalDataProvider,
504
+ C as registerChaiPageType,
505
+ y as registerChaiPartialType
470
506
  };