@chaibuilder/pages 0.1.4 → 0.1.6

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 S=Object.defineProperty;var P=(i,a,t)=>a in i?S(i,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[a]=t;var s=(i,a,t)=>P(i,typeof a!="symbol"?a+"":a,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("lodash-es"),w={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"},c={},k=(i,a)=>{c[i]={key:i,...a,hasSlug:!0}},b=(i,a)=>{c[i]={key:i,...a,hasSlug:!1}},g=()=>Object.values(c),o=i=>c[i];let _=async(i,a=!1,t=!1)=>({lang:i,isDraft:a,inBuilder:t});const A=i=>_=i,d=async(i,a,t)=>await _(i,a,t),y=(i,a)=>{({...a})},E="https://api.chaibuilder.com";class f{constructor(a=""){s(this,"userId","");this.token=a,console.log("Token",this.token)}async verifyToken(){return this.userId="mock-chai-user",!0}async isUserActive(){return!0}async getUserPermissions(){return["add_block","delete_block","edit_block","move_block","edit_theme","save_page","edit_styles","import_html","add_page","edit_page","edit_slug","delete_page","publish_page","unpublish_page","add_partial","edit_partial","delete_partial","publish_partial","unpublish_partial","edit_seo","restore_revision","delete_revision","publish_theme","add_library_block","add_library_template","edit_library_block","edit_library_template","delete_library_block","delete_library_template","add_media","edit_media","delete_media"]}getUserId(){return this.userId}}class C{constructor(a="",t=E){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()}}class p{constructor(a=new C){s(this,"fallbackLang","");s(this,"currentLang","");s(this,"draftMode",!1);s(this,"auth",new f);this.backend=a,this._registerPageTypes()}_registerPageTypes(){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>'}),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>'})}setAuth(a){this.auth=a}setFallbackLang(a){this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setCurrentLang(a){this.currentLang=a}getCurrentLang(){return this.currentLang}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async verifyToken(){return await this.auth.verifyToken()}async getUserInfo(a){return{id:a,email:`${a}@chaibuilder.com`,name:"Mock Chai User",avatar:"https://i.pravatar.cc/300"}}async handle(a){switch(a.action){case"CHECK_USER_STATUS":return this.auth.isUserActive(a.data.authToken);case"GET_PERMISSIONS":return this.auth.getUserPermissions(a.data.authToken);case"GET_CHAI_USER":return this.getUserInfo(a.data.userId)}if(a.action==="GET_BUILDER_PAGE_DATA"){const e=await d(a.data.lang,!0,!0),n=o(a.data.pageType);return n?{...n.dataProvider?await n.dataProvider({},a.data.lang,!0,!0):{},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=o(a.data.pageType);return e?e.search?await e.search(a.data.query):this.backend.handleAction(a):{error:"Page type not found"}}const t=await this.backend.handleAction(a,this.auth.getUserId());return this.emit(a.action,t),t}emit(a,t){var r,l,h;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const e=u.get(t,"page");if(!e)return;const n=o(e.pageType);if(n)switch(a){case"CREATE_PAGE":return(r=n.onCreate)==null?void 0:r.call(n,e);case"UPDATE_PAGE":return(l=n.onUpdate)==null?void 0:l.call(n,e);case"DELETE_PAGE":return(h=n.onDelete)==null?void 0:h.call(n,e)}}setLanguageFromSlug(a){const t=u.first(a||[""]);Object.keys(w).includes(t)?this.setCurrentLang(t):this.setCurrentLang("")}async resolveLink(a,t){const e=o(a);if(!e)return"/not-found";const n=this.isDraftMode(),r=this.getCurrentLang();return e.resolveLink?await e.resolveLink(t,n,r):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:t,draft:n,lang:r}})}async getPageBySlug(a){const t=this.isDraftMode(),e={};return g().forEach(n=>{u.has(n,"dynamicSegments")&&n.dynamicSegments&&(e[n.key]=n.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:t,dynamicSegments:e}})}async getFullPage(a){const t=this.isDraftMode(),e=this.getCurrentLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:e,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 e=this.isDraftMode(),n=this.getCurrentLang(),r=o(a),[l,h]=await Promise.all([this.getGlobalData(),((m=r==null?void 0:r.dataProvider)==null?void 0:m.call(r,t,n,e))||Promise.resolve({})]);return r?{...h,global:l}:{global:l}}async getGlobalData(){const a=this.getCurrentLang();return await d(a,this.isDraftMode())}async request(a){return await this.backend.handleAction(a)}}exports.ChaiBuilderPages=p;exports.ChaiBuilderPagesBackend=C;exports.ChaiBuilderPagesMockAuth=f;exports.getChaiGlobalData=d;exports.getChaiPageType=o;exports.getChaiPageTypes=g;exports.registerChaiGlobalDataProvider=A;exports.registerChaiPageType=k;exports.registerChaiPartialType=b;exports.registerChaiTaxonomy=y;
1
+ "use strict";var C=Object.defineProperty;var S=(i,a,t)=>a in i?C(i,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[a]=t;var l=(i,a,t)=>S(i,typeof a!="symbol"?a+"":a,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("lodash-es"),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"},h={},k=(i,a)=>{h[i]={key:i,...a,hasSlug:!0}},b=(i,a)=>{h[i]={key:i,...a,hasSlug:!1}},g=()=>Object.values(h),s=i=>h[i];let _=async(i,a=!1,t=!1)=>({lang:i,isDraft:a,inBuilder:t});const w=i=>_=i,d=async(i,a,t)=>await _(i,a,t),A=(i,a)=>{({...a})},E="https://api.chaibuilder.com";class f{async verifyTokenAndGetUser(a){return console.log(a),{id:"mock-chai-user",name:"Mock Chai User",email:"mock-chai-user@chaibuilder.com"}}async isUserActive(){return!0}async getUserPermissions(){return["add_block","delete_block","edit_block","move_block","edit_theme","save_page","edit_styles","import_html","add_page","edit_page","edit_slug","delete_page","publish_page","unpublish_page","add_partial","edit_partial","delete_partial","publish_partial","unpublish_partial","edit_seo","restore_revision","delete_revision","publish_theme","add_library_block","add_library_template","edit_library_block","edit_library_template","delete_library_block","delete_library_template","add_media","edit_media","delete_media"]}async getUserInfo(){return{id:"mock-chai-user",email:"mock-chai-user@chaibuilder.com",name:"Mock Chai User",avatar:"https://i.pravatar.cc/300"}}}class p{constructor(a="",t=E){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()}}class y{constructor(a){l(this,"fallbackLang","");l(this,"currentLang","");l(this,"draftMode",!1);l(this,"userMgmt",new f);this.backend=a,this._registerPageTypes()}_registerPageTypes(){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>'}),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>'})}setUserManagement(a){this.userMgmt=a}setFallbackLang(a){this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setCurrentLang(a){this.currentLang=a}getCurrentLang(){return this.currentLang}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async handle(a,t){switch(a.action){case"CHECK_USER_STATUS":return this.userMgmt.isUserActive(a.data.authToken);case"GET_PERMISSIONS":return this.userMgmt.getUserPermissions(a.data.authToken);case"GET_CHAI_USER":return this.userMgmt.getUserInfo(a.data.userId)}if(a.action==="GET_BUILDER_PAGE_DATA"){const e=await d(a.data.lang,!0,!0),r=s(a.data.pageType);return r?{...r.dataProvider?await r.dataProvider({},a.data.lang,!0,!0):{},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,c;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const n=u.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(c=e.onDelete)==null?void 0:c.call(e,n)}}setLanguageFromSlug(a){const t=u.first(a||[""]);Object.keys(P).includes(t)?this.setCurrentLang(t):this.setCurrentLang("")}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=>{u.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();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang: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,c]=await Promise.all([this.getGlobalData(),((m=r==null?void 0:r.dataProvider)==null?void 0:m.call(r,t,e,n))||Promise.resolve({})]);return r?{...c,global:o}:{global:o}}async getGlobalData(){const a=this.getCurrentLang();return await d(a,this.isDraftMode())}async request(a){return await this.backend.handleAction(a)}}exports.ChaiBuilderPages=y;exports.ChaiBuilderPagesBackend=p;exports.ChaiBuilderPagesUserManagement=f;exports.getChaiGlobalData=d;exports.getChaiPageType=s;exports.getChaiPageTypes=g;exports.registerChaiGlobalDataProvider=w;exports.registerChaiPageType=k;exports.registerChaiPartialType=b;exports.registerChaiTaxonomy=A;
package/dist/server.d.ts CHANGED
@@ -8,26 +8,24 @@ export declare type ChaiBuilderPage = {
8
8
  };
9
9
 
10
10
  export declare class ChaiBuilderPages implements ChaiBuilderPagesInterface {
11
- private backend;
11
+ protected backend: ChaiBuilderPagesBackendInterface;
12
12
  private fallbackLang;
13
13
  private currentLang;
14
14
  private draftMode;
15
- private auth;
16
- constructor(backend?: ChaiBuilderPagesBackendInterface);
15
+ private userMgmt;
16
+ constructor(backend: ChaiBuilderPagesBackendInterface);
17
17
  private _registerPageTypes;
18
- setAuth(auth: ChaiBuilderPagesAuthInterface): void;
18
+ setUserManagement(usersMgmt: ChaiBuilderPagesUserManagementInterface): void;
19
19
  setFallbackLang(lang: string): void;
20
20
  getFallbackLang(): string;
21
21
  setCurrentLang(lang: string): void;
22
22
  getCurrentLang(): string;
23
23
  setDraftMode(draft: boolean): void;
24
24
  isDraftMode(): boolean;
25
- verifyToken(): Promise<boolean>;
26
- getUserInfo(userId: string): Promise<ChaiBuilderUserInfo>;
27
25
  handle(body: {
28
26
  action: string;
29
27
  data: Record<string, any>;
30
- }): Promise<any>;
28
+ }, userId?: string): Promise<any>;
31
29
  emit(action: string, data: any): Promise<void> | undefined;
32
30
  setLanguageFromSlug(slug: string[]): void;
33
31
  resolveLink(pageTypeKey: string, id: string): Promise<any>;
@@ -41,13 +39,6 @@ export declare class ChaiBuilderPages implements ChaiBuilderPagesInterface {
41
39
  request(body: any): Promise<any>;
42
40
  }
43
41
 
44
- declare interface ChaiBuilderPagesAuthInterface {
45
- isUserActive(chaiUser: string): Promise<boolean>;
46
- getUserPermissions(chaiUser: string): Promise<string[]>;
47
- verifyToken(): Promise<boolean>;
48
- getUserId(): string;
49
- }
50
-
51
42
  export declare class ChaiBuilderPagesBackend implements ChaiBuilderPagesBackendInterface {
52
43
  private apiKey;
53
44
  private apiUrl;
@@ -66,9 +57,7 @@ declare interface ChaiBuilderPagesInterface {
66
57
  getCurrentLang(): string;
67
58
  setDraftMode(draft: boolean): void;
68
59
  isDraftMode(): boolean;
69
- setAuth(auth: ChaiBuilderPagesAuthInterface): void;
70
- verifyToken(): Promise<boolean>;
71
- getUserInfo(userId: string): Promise<ChaiBuilderUserInfo>;
60
+ setUserManagement(usersMgmt: ChaiBuilderPagesUserManagementInterface): void;
72
61
  handle(body: any): Promise<any>;
73
62
  emit(action: string, data: any): void;
74
63
  setLanguageFromSlug(slug: string[]): void;
@@ -80,14 +69,31 @@ declare interface ChaiBuilderPagesInterface {
80
69
  getGlobalData(): Promise<any>;
81
70
  }
82
71
 
83
- export declare class ChaiBuilderPagesMockAuth implements ChaiBuilderPagesAuthInterface {
84
- private token;
85
- private userId;
86
- constructor(token?: string);
87
- verifyToken(): Promise<boolean>;
72
+ export declare class ChaiBuilderPagesUserManagement implements ChaiBuilderPagesUserManagementInterface {
73
+ verifyTokenAndGetUser(token: string): Promise<{
74
+ id: string;
75
+ name: string;
76
+ email: string;
77
+ }>;
88
78
  isUserActive(): Promise<boolean>;
89
79
  getUserPermissions(): Promise<string[]>;
90
- getUserId(): string;
80
+ getUserInfo(): Promise<{
81
+ id: string;
82
+ email: string;
83
+ name: string;
84
+ avatar: string;
85
+ }>;
86
+ }
87
+
88
+ declare interface ChaiBuilderPagesUserManagementInterface {
89
+ isUserActive(chaiUserId: string): Promise<boolean>;
90
+ getUserPermissions(chaiUserId: string): Promise<string[]>;
91
+ verifyTokenAndGetUser(token: string): Promise<{
92
+ id: string;
93
+ name: string;
94
+ email: string;
95
+ }>;
96
+ getUserInfo(chaiUserId: string): Promise<ChaiBuilderUserInfo>;
91
97
  }
92
98
 
93
99
  export declare type ChaiBuilderPageType = {
package/dist/server.js CHANGED
@@ -1,6 +1,6 @@
1
1
  var k = Object.defineProperty;
2
2
  var b = (i, a, t) => a in i ? k(i, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[a] = t;
3
- var s = (i, a, t) => b(i, typeof a != "symbol" ? a + "" : a, t);
3
+ var o = (i, a, t) => b(i, typeof a != "symbol" ? a + "" : a, t);
4
4
  import { get as _, first as f, has as S } from "lodash-es";
5
5
  const w = {
6
6
  ab: "Abkhazian",
@@ -190,26 +190,26 @@ const w = {
190
190
  yo: "Yoruba",
191
191
  za: "Zhuang, Chuang",
192
192
  zu: "Zulu"
193
- }, c = {}, A = (i, a) => {
194
- c[i] = { key: i, ...a, hasSlug: !0 };
193
+ }, h = {}, A = (i, a) => {
194
+ h[i] = { key: i, ...a, hasSlug: !0 };
195
195
  }, E = (i, a) => {
196
- c[i] = { key: i, ...a, hasSlug: !1 };
197
- }, g = () => Object.values(c), l = (i) => c[i];
196
+ h[i] = { key: i, ...a, hasSlug: !1 };
197
+ }, g = () => Object.values(h), l = (i) => h[i];
198
198
  let m = async (i, a = !1, t = !1) => ({
199
199
  lang: i,
200
200
  isDraft: a,
201
201
  inBuilder: t
202
202
  });
203
- const T = (i) => m = i, d = async (i, a, t) => await m(i, a, t), G = (i, a) => {
203
+ const y = (i) => m = i, d = async (i, a, t) => await m(i, a, t), M = (i, a) => {
204
204
  ({ ...a });
205
- }, v = "https://api.chaibuilder.com";
205
+ }, C = "https://api.chaibuilder.com";
206
206
  class p {
207
- constructor(a = "") {
208
- s(this, "userId", "");
209
- this.token = a, console.log("Token", this.token);
210
- }
211
- async verifyToken() {
212
- return this.userId = "mock-chai-user", !0;
207
+ async verifyTokenAndGetUser(a) {
208
+ return console.log(a), {
209
+ id: "mock-chai-user",
210
+ name: "Mock Chai User",
211
+ email: "mock-chai-user@chaibuilder.com"
212
+ };
213
213
  }
214
214
  async isUserActive() {
215
215
  return !0;
@@ -250,12 +250,17 @@ class p {
250
250
  "delete_media"
251
251
  ];
252
252
  }
253
- getUserId() {
254
- return this.userId;
253
+ async getUserInfo() {
254
+ return {
255
+ id: "mock-chai-user",
256
+ email: "mock-chai-user@chaibuilder.com",
257
+ name: "Mock Chai User",
258
+ avatar: "https://i.pravatar.cc/300"
259
+ };
255
260
  }
256
261
  }
257
- class C {
258
- constructor(a = "", t = v) {
262
+ class T {
263
+ constructor(a = "", t = C) {
259
264
  this.apiKey = a, this.apiUrl = t;
260
265
  }
261
266
  async handleAction(a, t = "") {
@@ -270,12 +275,12 @@ class C {
270
275
  })).json();
271
276
  }
272
277
  }
273
- class L {
274
- constructor(a = new C()) {
275
- s(this, "fallbackLang", "");
276
- s(this, "currentLang", "");
277
- s(this, "draftMode", !1);
278
- s(this, "auth", new p());
278
+ class G {
279
+ constructor(a) {
280
+ o(this, "fallbackLang", "");
281
+ o(this, "currentLang", "");
282
+ o(this, "draftMode", !1);
283
+ o(this, "userMgmt", new p());
279
284
  this.backend = a, this._registerPageTypes();
280
285
  }
281
286
  _registerPageTypes() {
@@ -288,8 +293,8 @@ class L {
288
293
  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>'
289
294
  });
290
295
  }
291
- setAuth(a) {
292
- this.auth = a;
296
+ setUserManagement(a) {
297
+ this.userMgmt = a;
293
298
  }
294
299
  setFallbackLang(a) {
295
300
  this.fallbackLang = a;
@@ -309,32 +314,21 @@ class L {
309
314
  isDraftMode() {
310
315
  return this.draftMode;
311
316
  }
312
- async verifyToken() {
313
- return await this.auth.verifyToken();
314
- }
315
- async getUserInfo(a) {
316
- return {
317
- id: a,
318
- email: `${a}@chaibuilder.com`,
319
- name: "Mock Chai User",
320
- avatar: "https://i.pravatar.cc/300"
321
- };
322
- }
323
- async handle(a) {
317
+ async handle(a, t) {
324
318
  switch (a.action) {
325
319
  case "CHECK_USER_STATUS":
326
- return this.auth.isUserActive(a.data.authToken);
320
+ return this.userMgmt.isUserActive(a.data.authToken);
327
321
  case "GET_PERMISSIONS":
328
- return this.auth.getUserPermissions(a.data.authToken);
322
+ return this.userMgmt.getUserPermissions(a.data.authToken);
329
323
  case "GET_CHAI_USER":
330
- return this.getUserInfo(a.data.userId);
324
+ return this.userMgmt.getUserInfo(a.data.userId);
331
325
  }
332
326
  if (a.action === "GET_BUILDER_PAGE_DATA") {
333
- const e = await d(a.data.lang, !0, !0), n = l(
327
+ const e = await d(a.data.lang, !0, !0), r = l(
334
328
  a.data.pageType
335
329
  );
336
- return n ? {
337
- ...n.dataProvider ? await n.dataProvider({}, a.data.lang, !0, !0) : {},
330
+ return r ? {
331
+ ...r.dataProvider ? await r.dataProvider({}, a.data.lang, !0, !0) : {},
338
332
  global: e
339
333
  } : { global: e };
340
334
  }
@@ -356,23 +350,23 @@ class L {
356
350
  );
357
351
  return e ? e.search ? await e.search(a.data.query) : this.backend.handleAction(a) : { error: "Page type not found" };
358
352
  }
359
- const t = await this.backend.handleAction(a, this.auth.getUserId());
360
- return this.emit(a.action, t), t;
353
+ const n = await this.backend.handleAction(a, t);
354
+ return this.emit(a.action, n), n;
361
355
  }
362
356
  emit(a, t) {
363
- var r, o, h;
357
+ var r, s, c;
364
358
  if (!["CREATE_PAGE", "UPDATE_PAGE", "DELETE_PAGE"].includes(a)) return;
365
- const e = _(t, "page");
366
- if (!e) return;
367
- const n = l(e.pageType);
368
- if (n)
359
+ const n = _(t, "page");
360
+ if (!n) return;
361
+ const e = l(n.pageType);
362
+ if (e)
369
363
  switch (a) {
370
364
  case "CREATE_PAGE":
371
- return (r = n.onCreate) == null ? void 0 : r.call(n, e);
365
+ return (r = e.onCreate) == null ? void 0 : r.call(e, n);
372
366
  case "UPDATE_PAGE":
373
- return (o = n.onUpdate) == null ? void 0 : o.call(n, e);
367
+ return (s = e.onUpdate) == null ? void 0 : s.call(e, n);
374
368
  case "DELETE_PAGE":
375
- return (h = n.onDelete) == null ? void 0 : h.call(n, e);
369
+ return (c = e.onDelete) == null ? void 0 : c.call(e, n);
376
370
  }
377
371
  }
378
372
  // APIS
@@ -381,34 +375,34 @@ class L {
381
375
  Object.keys(w).includes(t) ? this.setCurrentLang(t) : this.setCurrentLang("");
382
376
  }
383
377
  async resolveLink(a, t) {
384
- const e = l(a);
385
- if (!e)
378
+ const n = l(a);
379
+ if (!n)
386
380
  return "/not-found";
387
- const n = this.isDraftMode(), r = this.getCurrentLang();
388
- return e.resolveLink ? await e.resolveLink(t, n, r) : await this.backend.handleAction({
381
+ const e = this.isDraftMode(), r = this.getCurrentLang();
382
+ return n.resolveLink ? await n.resolveLink(t, e, r) : await this.backend.handleAction({
389
383
  action: "GET_LINK",
390
384
  data: {
391
385
  pageType: a,
392
386
  id: t,
393
- draft: n,
387
+ draft: e,
394
388
  lang: r
395
389
  }
396
390
  });
397
391
  }
398
392
  async getPageBySlug(a) {
399
- const t = this.isDraftMode(), e = {};
400
- return g().forEach((n) => {
401
- S(n, "dynamicSegments") && n.dynamicSegments && (e[n.key] = n.dynamicSegments);
393
+ const t = this.isDraftMode(), n = {};
394
+ return g().forEach((e) => {
395
+ S(e, "dynamicSegments") && e.dynamicSegments && (n[e.key] = e.dynamicSegments);
402
396
  }), await this.backend.handleAction({
403
397
  action: "GET_PAGE_META",
404
- data: { slug: a, draft: t, dynamicSegments: e }
398
+ data: { slug: a, draft: t, dynamicSegments: n }
405
399
  });
406
400
  }
407
401
  async getFullPage(a) {
408
- const t = this.isDraftMode(), e = this.getCurrentLang();
402
+ const t = this.isDraftMode(), n = this.getCurrentLang();
409
403
  return await this.backend.handleAction({
410
404
  action: "GET_PAGE",
411
- data: { id: a, lang: e, draft: t, mergePartials: !0 }
405
+ data: { id: a, lang: n, draft: t, mergePartials: !0 }
412
406
  });
413
407
  }
414
408
  async getSiteSettings() {
@@ -420,14 +414,14 @@ class L {
420
414
  }
421
415
  async getPageData(a, t) {
422
416
  var u;
423
- const e = this.isDraftMode(), n = this.getCurrentLang(), r = l(a), [o, h] = await Promise.all([
417
+ const n = this.isDraftMode(), e = this.getCurrentLang(), r = l(a), [s, c] = await Promise.all([
424
418
  this.getGlobalData(),
425
- ((u = r == null ? void 0 : r.dataProvider) == null ? void 0 : u.call(r, t, n, e)) || Promise.resolve({})
419
+ ((u = r == null ? void 0 : r.dataProvider) == null ? void 0 : u.call(r, t, e, n)) || Promise.resolve({})
426
420
  ]);
427
421
  return r ? {
428
- ...h,
429
- global: o
430
- } : { global: o };
422
+ ...c,
423
+ global: s
424
+ } : { global: s };
431
425
  }
432
426
  async getGlobalData() {
433
427
  const a = this.getCurrentLang();
@@ -438,14 +432,14 @@ class L {
438
432
  }
439
433
  }
440
434
  export {
441
- L as ChaiBuilderPages,
442
- C as ChaiBuilderPagesBackend,
443
- p as ChaiBuilderPagesMockAuth,
435
+ G as ChaiBuilderPages,
436
+ T as ChaiBuilderPagesBackend,
437
+ p as ChaiBuilderPagesUserManagement,
444
438
  d as getChaiGlobalData,
445
439
  l as getChaiPageType,
446
440
  g as getChaiPageTypes,
447
- T as registerChaiGlobalDataProvider,
441
+ y as registerChaiGlobalDataProvider,
448
442
  A as registerChaiPageType,
449
443
  E as registerChaiPartialType,
450
- G as registerChaiTaxonomy
444
+ M as registerChaiTaxonomy
451
445
  };
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.1.4",
6
+ "version": "0.1.6",
7
7
  "type": "module",
8
8
  "files": [
9
9
  "dist"