@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/{B4MFY5CR-MVAv6DcU.js → B4MFY5CR-CKIyCar7.js} +1 -1
- package/dist/{B4MFY5CR-EcyUHg1m.cjs → B4MFY5CR-icgPJJew.cjs} +1 -1
- package/dist/{HO4MOOFI-BDxIKIu9.cjs → HO4MOOFI-CzFDjam4.cjs} +1 -1
- package/dist/{HO4MOOFI-DI8jMuEu.js → HO4MOOFI-DmYFsPNP.js} +2 -2
- package/dist/{HUY7CZI3-AC1qETNb.js → HUY7CZI3-BCJoD9zP.js} +2 -2
- package/dist/{HUY7CZI3-Y4pkyP5k.cjs → HUY7CZI3-B_YPIkQ9.cjs} +1 -1
- package/dist/{index-w504XseG.js → index-BHydHzY7.js} +7384 -7077
- package/dist/index-DBmM57GS.cjs +2 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +15 -9
- package/dist/index.js +17 -16
- package/dist/server.cjs +1 -1
- package/dist/server.d.ts +58 -32
- package/dist/server.js +165 -129
- package/package.json +1 -1
- package/dist/index-DYH2MB44.cjs +0 -2
package/dist/server.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
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
|
-
|
|
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
|
-
},
|
|
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
|
-
|
|
52
|
-
|
|
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,
|
|
57
|
-
handleUpload(formData: FormData,
|
|
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
|
-
|
|
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
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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(
|
|
91
|
-
|
|
92
|
-
|
|
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
|
|
99
|
-
|
|
100
|
-
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { isEmpty as
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
},
|
|
8
|
-
|
|
9
|
-
},
|
|
10
|
-
let
|
|
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
|
|
13
|
+
const _ = (i) => S = i, E = async (i) => {
|
|
14
14
|
try {
|
|
15
|
-
return await
|
|
15
|
+
return await S(i);
|
|
16
16
|
} catch (a) {
|
|
17
17
|
return console.error(a), {};
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
|
-
class
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
53
|
+
return await this.backend.handleUsersAction(
|
|
54
|
+
{ action: "GET_ROLE_AND_PERMISSIONS" },
|
|
55
|
+
a
|
|
56
|
+
);
|
|
39
57
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
|
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
|
|
240
|
-
constructor(a) {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
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
|
-
|
|
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
|
-
}),
|
|
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 (
|
|
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 (
|
|
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,
|
|
283
|
-
return await this.backend.handleUpload(a,
|
|
293
|
+
async handleUpload(a, e = "") {
|
|
294
|
+
return await this.backend.handleUpload(a, e);
|
|
284
295
|
}
|
|
285
|
-
async handle(a,
|
|
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.
|
|
310
|
+
return (c = this.chaiUsers) == null ? void 0 : c.isUserActive(e);
|
|
289
311
|
case "GET_ROLE_AND_PERMISSIONS":
|
|
290
|
-
return this.
|
|
312
|
+
return (l = this.chaiUsers) == null ? void 0 : l.getUserRoleAndPermissions(e);
|
|
291
313
|
case "GET_CHAI_USER":
|
|
292
|
-
return this.
|
|
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
|
|
320
|
+
const s = await E({
|
|
296
321
|
lang: a.data.lang,
|
|
297
322
|
draft: !0,
|
|
298
323
|
inBuilder: !0
|
|
299
|
-
}),
|
|
324
|
+
}), d = h(
|
|
300
325
|
a.data.pageType
|
|
301
326
|
);
|
|
302
|
-
return
|
|
303
|
-
...
|
|
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:
|
|
310
|
-
} : { global:
|
|
334
|
+
global: s
|
|
335
|
+
} : { global: s };
|
|
311
336
|
}
|
|
312
337
|
if (a.action === "GET_PAGE_TYPES")
|
|
313
338
|
return Promise.all(
|
|
314
|
-
|
|
315
|
-
key:
|
|
316
|
-
helpText:
|
|
317
|
-
icon:
|
|
318
|
-
dynamicSegments:
|
|
319
|
-
dynamicSlug:
|
|
320
|
-
hasSlug:
|
|
321
|
-
name: typeof
|
|
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
|
|
350
|
+
const s = h(
|
|
326
351
|
a.data.pageType
|
|
327
352
|
);
|
|
328
|
-
return
|
|
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,
|
|
355
|
+
const t = await this.backend.handleAction(a, e);
|
|
331
356
|
return this.emit(a.action, t), t;
|
|
332
357
|
}
|
|
333
|
-
emit(a,
|
|
334
|
-
var r,
|
|
358
|
+
emit(a, e) {
|
|
359
|
+
var r, o, c;
|
|
335
360
|
if (!["CREATE_PAGE", "UPDATE_PAGE", "DELETE_PAGE"].includes(a)) return;
|
|
336
|
-
const t =
|
|
361
|
+
const t = p(e, "page");
|
|
337
362
|
if (!t) return;
|
|
338
|
-
const
|
|
339
|
-
if (
|
|
363
|
+
const n = h(t.pageType);
|
|
364
|
+
if (n)
|
|
340
365
|
switch (a) {
|
|
341
366
|
case "CREATE_PAGE":
|
|
342
|
-
return (r =
|
|
367
|
+
return (r = n.onCreate) == null ? void 0 : r.call(n, t);
|
|
343
368
|
case "UPDATE_PAGE":
|
|
344
|
-
return (
|
|
369
|
+
return (o = n.onUpdate) == null ? void 0 : o.call(n, t);
|
|
345
370
|
case "DELETE_PAGE":
|
|
346
|
-
return (c =
|
|
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
|
|
356
|
-
Object.keys(
|
|
380
|
+
const e = P(a || [""]);
|
|
381
|
+
Object.keys(U).includes(e) ? this.setCurrentLang(e) : this.setCurrentLang(this.getFallbackLang());
|
|
357
382
|
}
|
|
358
|
-
async resolveLink(a,
|
|
359
|
-
const t =
|
|
383
|
+
async resolveLink(a, e) {
|
|
384
|
+
const t = h(a);
|
|
360
385
|
if (!t)
|
|
361
386
|
return "/not-found";
|
|
362
|
-
const
|
|
363
|
-
return t.resolveLink ? await t.resolveLink(
|
|
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:
|
|
368
|
-
draft:
|
|
392
|
+
id: e,
|
|
393
|
+
draft: n,
|
|
369
394
|
lang: r
|
|
370
395
|
}
|
|
371
396
|
});
|
|
372
397
|
}
|
|
373
398
|
async getPageBySlug(a) {
|
|
374
|
-
const
|
|
375
|
-
return
|
|
376
|
-
|
|
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:
|
|
404
|
+
data: { slug: a, draft: e, dynamicSegments: t }
|
|
380
405
|
});
|
|
381
406
|
}
|
|
382
407
|
async getFullPage(a) {
|
|
383
|
-
const
|
|
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:
|
|
389
|
-
draft:
|
|
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,
|
|
402
|
-
var
|
|
403
|
-
const t = this.isDraftMode(),
|
|
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
|
-
((
|
|
406
|
-
lang:
|
|
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:
|
|
434
|
+
pageProps: e
|
|
410
435
|
})) || Promise.resolve({})
|
|
411
436
|
]);
|
|
412
437
|
return r ? {
|
|
413
438
|
...c,
|
|
414
|
-
global:
|
|
415
|
-
} : { global:
|
|
439
|
+
global: o
|
|
440
|
+
} : { global: o };
|
|
416
441
|
}
|
|
417
442
|
async getGlobalData() {
|
|
418
443
|
const a = this.getCurrentLang();
|
|
419
|
-
return await
|
|
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
|
|
430
|
-
constructor(a = "",
|
|
431
|
-
this.apiKey = a, this.apiUrl =
|
|
454
|
+
class D {
|
|
455
|
+
constructor(a = "", e = v) {
|
|
456
|
+
this.apiKey = a, this.apiUrl = e;
|
|
432
457
|
}
|
|
433
|
-
async
|
|
434
|
-
|
|
435
|
-
|
|
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
|
-
|
|
465
|
+
"x-chai-auth-token": e
|
|
441
466
|
}
|
|
442
|
-
})
|
|
467
|
+
}), n = await t.json();
|
|
468
|
+
return m(n, "error") ? { ...n, status: t.status } : n;
|
|
443
469
|
}
|
|
444
|
-
async
|
|
445
|
-
|
|
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
|
-
|
|
488
|
+
"x-chai-auth-token": e
|
|
453
489
|
}
|
|
454
490
|
})).json();
|
|
455
491
|
}
|
|
456
492
|
}
|
|
457
|
-
const
|
|
493
|
+
const v = "https://api.chaibuilder.com";
|
|
458
494
|
export {
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
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
|
};
|