@chaibuilder/pages 0.5.3 → 0.5.4

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/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index-B0BuMI6F.cjs"),t=require("@chaibuilder/sdk");exports.PermissionChecker=e.PermissionChecker;exports.default=e.ChaiBuilderPages;exports.registerChaiLoginComponent=e.registerLoginComponent;exports.useChaiAuth=e.useChaiAuth;exports.useChaiCurrentPage=e.useCurrentPage;exports.useChaiFetch=e.useChaiFetch;exports.useChaiUserInfo=e.useChaiUserInfo;exports.useFetch=e.useFetch;exports.useLanguagePages=e.useLanguagePages;exports.useUserPermissions=e.useUserRoleAndPermissions;exports.useWebsitePages=e.useWebsitePages;exports.useWebsiteSetting=e.useWebsiteSetting;Object.keys(t).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>t[s]})});
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index-BBnsUqd9.cjs"),t=require("@chaibuilder/sdk");exports.ImagePicker=e.ImagePicker;exports.PermissionChecker=e.PermissionChecker;exports.default=e.ChaiBuilderPages;exports.registerChaiLoginComponent=e.registerLoginComponent;exports.useActivePage=e.useActivePage;exports.useChaiAuth=e.useChaiAuth;exports.useChaiCurrentPage=e.useCurrentPage;exports.useChaiFetch=e.useChaiFetch;exports.useChaiUserInfo=e.useChaiUserInfo;exports.useFallbackLang=e.useFallbackLang;exports.useFetch=e.useFetch;exports.useLanguagePages=e.useLanguagePages;exports.useUpdateActivePageMetadata=e.useUpdateActivePageMetadata;exports.useUserPermissions=e.useUserRoleAndPermissions;exports.useWebsitePages=e.useWebsitePages;exports.useWebsiteSetting=e.useWebsiteSetting;Object.keys(t).forEach(s=>{s!=="default"&&!Object.prototype.hasOwnProperty.call(exports,s)&&Object.defineProperty(exports,s,{enumerable:!0,get:()=>t[s]})});
package/dist/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import { ChaiBuilderEditorProps } from '@chaibuilder/sdk';
2
2
  import { ComponentType } from 'react';
3
+ import { default as default_2 } from 'react';
3
4
  import { DefinedUseQueryResult } from '@tanstack/react-query';
4
5
  import { JSX as JSX_2 } from 'react/jsx-runtime';
5
6
  import { ReactNode } from 'react';
6
7
  import { RESET } from 'jotai/utils';
8
+ import { UseMutationResult } from '@tanstack/react-query';
7
9
  import { UseQueryResult } from '@tanstack/react-query';
8
10
 
9
11
  declare const ChaiBuilderPages: (props: ChaiBuilderPagesProps) => JSX_2.Element;
@@ -14,7 +16,8 @@ declare type ChaiBuilderPagesProps = {
14
16
  apiUrl?: string;
15
17
  usersApiUrl?: string;
16
18
  assetsApiUrl?: string;
17
- getPreviewUrl?: (id: string) => string;
19
+ getPreviewUrl?: (slug: string) => string;
20
+ getLiveUrl?: (slug: string) => string;
18
21
  onLogout?: () => void;
19
22
  } & Pick<ChaiBuilderEditorProps, "onError" | "translations" | "locale" | "htmlDir" | "autoSaveSupport" | "autoSaveInterval" | "fallbackLang" | "languages" | "themePresets">;
20
23
 
@@ -24,6 +27,20 @@ declare type ChaiWebsiteSetting = {
24
27
  theme: Record<"fontFamily" | "borderRadius" | "colors", any>;
25
28
  };
26
29
 
30
+ export declare const ImagePicker: default_2.FC<ImagePickerProps>;
31
+
32
+ declare interface ImagePickerProps {
33
+ assetId?: string;
34
+ assetUrl?: string;
35
+ onChange: (value: {
36
+ url: string;
37
+ id: string;
38
+ }) => void;
39
+ className?: string;
40
+ placeholder?: string;
41
+ disabled?: boolean;
42
+ }
43
+
27
44
  declare type LoggedInUser = {
28
45
  accessToken: string;
29
46
  refreshToken: string;
@@ -42,6 +59,11 @@ export declare const PermissionChecker: ({ permission, permissions, children, fa
42
59
 
43
60
  export declare const registerChaiLoginComponent: (component: ComponentType) => void;
44
61
 
62
+ export declare const useActivePage: () => {
63
+ data: any;
64
+ isFetching: boolean;
65
+ };
66
+
45
67
  export declare const useChaiAuth: () => {
46
68
  readonly isLoggedIn: boolean;
47
69
  readonly user: LoggedInUser | null;
@@ -68,6 +90,8 @@ email: string;
68
90
  avatar: string;
69
91
  }, Error>;
70
92
 
93
+ export declare const useFallbackLang: () => string;
94
+
71
95
  export declare const useFetch: () => (url: string, body: {
72
96
  action: string;
73
97
  data?: any;
@@ -75,6 +99,8 @@ export declare const useFetch: () => (url: string, body: {
75
99
 
76
100
  export declare const useLanguagePages: () => DefinedUseQueryResult<any[] | null, Error>;
77
101
 
102
+ export declare const useUpdateActivePageMetadata: () => UseMutationResult<any, Error, Record<string, any>, unknown>;
103
+
78
104
  export declare const useUserPermissions: () => UseQueryResult<any, Error>;
79
105
 
80
106
  export declare const useWebsitePages: () => UseQueryResult<any, Error>;
package/dist/index.js CHANGED
@@ -1,16 +1,20 @@
1
- import { a0 as s, _ as i, a1 as r, a6 as t, a2 as u, a8 as o, a9 as h, X as n, a3 as g, a7 as C, a4 as m, a5 as P } from "./index-cpLk6vnM.js";
1
+ import { a0 as s, _ as t, W as i, a1 as u, X as r, a6 as g, a2 as n, a8 as o, aa as h, Y as C, a9 as P, a3 as c, Z as m, a7 as f, a4 as p, a5 as b } from "./index-Cmn1hFYF.js";
2
2
  export * from "@chaibuilder/sdk";
3
3
  export {
4
- s as PermissionChecker,
4
+ s as ImagePicker,
5
+ t as PermissionChecker,
5
6
  i as default,
6
- r as registerChaiLoginComponent,
7
- t as useChaiAuth,
8
- u as useChaiCurrentPage,
7
+ u as registerChaiLoginComponent,
8
+ r as useActivePage,
9
+ g as useChaiAuth,
10
+ n as useChaiCurrentPage,
9
11
  o as useChaiFetch,
10
12
  h as useChaiUserInfo,
11
- n as useFetch,
12
- g as useLanguagePages,
13
- C as useUserPermissions,
14
- m as useWebsitePages,
15
- P as useWebsiteSetting
13
+ C as useFallbackLang,
14
+ P as useFetch,
15
+ c as useLanguagePages,
16
+ m as useUpdateActivePageMetadata,
17
+ f as useUserPermissions,
18
+ p as useWebsitePages,
19
+ b as useWebsiteSetting
16
20
  };
package/dist/server.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var B=Object.defineProperty;var M=(i,a,e)=>a in i?B(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var k=(i,a,e)=>M(i,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),O=require("@chaibuilder/runtime");let y=async i=>({...i});const I=i=>{y=i},T=async i=>{try{return await y(i)}catch(a){return console.error(a),{}}},w={},L=()=>Object.values(w),m=i=>w[i],b=(i,a)=>{w[i]={key:i,...a,hasSlug:!0}},v=(i,a)=>{w[i]={key:i,...a,hasSlug:!1}},P={};function R(i,a){c.has(P,i)&&console.warn(`Collection ${i} already registered`),P[i]={...a,id:i}}const H=()=>Object.values(P),_=i=>c.get(P,i),G={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 K{constructor(a){this.backend=a}async upload({file:a,folderId:e,name:s},t){var o,l;return await((l=(o=this.backend).handleAssetsAction)==null?void 0:l.call(o,{action:"UPLOAD_ASSET",data:{name:s,file:a,folderId:e}},t))}async getAsset({id:a},e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"GET_ASSET",data:{id:a}},e)}async getAssets(a,e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"GET_ASSETS",data:a},e)}async deleteAsset({id:a},e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"DELETE_ASSET",data:{id:a}},e)}async updateAsset({id:a,file:e,description:s},t){var r,o;return(o=(r=this.backend).handleAssetsAction)==null?void 0:o.call(r,{action:"UPDATE_ASSET",data:{id:a,file:e,description:s}},t)}}class U{constructor(a){this.backend=a}async refreshToken(a){var s,t;const e=await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"REFRESH_TOKEN",data:a}));return e.error?{error:e.error}:e}async login({email:a,password:e}){var t,r;const s=await((r=(t=this.backend).handleUsersAction)==null?void 0:r.call(t,{action:"LOGIN",data:{email:a,password:e}}));return s.error?{error:s.error}:s}async logout(){var a,e;await((e=(a=this.backend).handleUsersAction)==null?void 0:e.call(a,{action:"LOGOUT"}))}async isUserActive(a){var s,t;return(await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"CHECK_USER_STATUS"},a))).success}async getUserRoleAndPermissions(a){var s,t;return await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"GET_ROLE_AND_PERMISSIONS"},a))}async getUserInfo(a,e){var t,r;return await((r=(t=this.backend).handleUsersAction)==null?void 0:r.call(t,{action:"GET_CHAI_USER",data:e},a))}}class N{constructor(a,e,s){k(this,"fallbackLang","");k(this,"currentLang","");k(this,"draftMode",!1);this.backend=a,this.chaiUsers=e,this.chaiAssets=s,this._registerDefaultPageTypes(),this.chaiUsers=e??new U(this.backend),this.chaiAssets=s??new K(this.backend)}_registerDefaultPageTypes(){b("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>'}),v("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 handle(a,e){var t,r,o,l,A,f,S,E,g,C,h;switch(a.action){case"UPLOAD_ASSET":return(t=this.chaiAssets)==null?void 0:t.upload({file:a.data.file,name:a.data.name,folderId:a.data.folderId??null,optimize:a.data.optimize??!0},e);case"GET_ASSET":return(r=this.chaiAssets)==null?void 0:r.getAsset(a.data,e);case"GET_ASSETS":return(o=this.chaiAssets)==null?void 0:o.getAssets(a.data,e);case"DELETE_ASSET":return(l=this.chaiAssets)==null?void 0:l.deleteAsset(a.data,e);case"UPDATE_ASSET":return(A=this.chaiAssets)==null?void 0:A.updateAsset(a.data,e);case"REFRESH_TOKEN":return(f=this.chaiUsers)==null?void 0:f.refreshToken(a.data);case"LOGIN":return(S=this.chaiUsers)==null?void 0:S.login(a.data);case"LOGOUT":return(E=this.chaiUsers)==null?void 0:E.logout();case"CHECK_USER_STATUS":return(g=this.chaiUsers)==null?void 0:g.isUserActive(e);case"GET_ROLE_AND_PERMISSIONS":return(C=this.chaiUsers)==null?void 0:C.getUserRoleAndPermissions(e);case"GET_CHAI_USER":return(h=this.chaiUsers)==null?void 0:h.getUserInfo(e,a.data)}if(a.action==="GET_BUILDER_PAGE_DATA"){const n=await T({lang:a.data.lang,draft:!0,inBuilder:!0}),u=m(a.data.pageType);return u?{...u.dataProvider?await u.dataProvider({lang:a.data.lang,draft:!0,inBuilder:!0,pageProps:a.data.pageProps??{}}):{},global:n}:{global:n}}if(a.action==="GET_PAGE_TYPES")return Promise.all(L().map(async n=>({key:n.key,helpText:n.helpText??"",icon:n.icon??"",dynamicSegments:n.dynamicSegments??"",dynamicSlug:n.dynamicSlug??"",hasSlug:n.hasSlug??!0,name:typeof n.name=="function"?await n.name():n.name})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const n=m(a.data.pageType);return n?n.search?await n.search(a.data.query):this.backend.handleAction(a,e):{error:"Page type not found"}}if(a.action==="GET_COLLECTIONS")return H().map(n=>c.omit(n,"fetch"));if(a.action==="GET_BLOCK_ASYNC_PROPS"){const n=a.data.block,u=n._type;if(u==="Repeater"&&(n!=null&&n.repeaterItems.includes("{{#"))){const d=n.repeaterItems.replace("{{#","").replace("}}",""),p=_(d);return p?await(p==null?void 0:p.fetch({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0}))??[]:[]}else{const d=O.getRegisteredChaiBlock(u);return!d||!c.isFunction(d.dataProvider)?{}:await d.dataProvider({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0})??{}}}const s=await this.backend.handleAction(a,e);return this.emit(a.action,s),s}emit(a,e){var r,o,l;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const s=c.get(e,"page");if(!s)return;const t=m(s.pageType);if(t)switch(a){case"CREATE_PAGE":return(r=t.onCreate)==null?void 0:r.call(t,s);case"UPDATE_PAGE":return(o=t.onUpdate)==null?void 0:o.call(t,s);case"DELETE_PAGE":return(l=t.onDelete)==null?void 0:l.call(t,s)}}setLanguageFromSlug(a){if(!this.getFallbackLang())throw new Error("Please set a fallback language using setFallbackLang(lang: string)");const e=c.first(a||[""]);Object.keys(G).includes(e)?this.setCurrentLang(e):this.setCurrentLang(this.getFallbackLang())}async resolvePageLink(a){if(!c.startsWith(a,"pageType:"))return a;const e=a.split(":")[1],s=a.split(":")[2],t=m(e);return t?await this.resolveLink(t.key,s):a}async resolveLink(a,e){const s=m(a);if(!s)return"/not-found";const t=this.isDraftMode(),r=this.getCurrentLang()===this.getFallbackLang()?"":this.getCurrentLang();return s.resolveLink?await s.resolveLink(e,t,r):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:e,draft:t,lang:r}})}async getPageBySlug(a){const e=this.isDraftMode(),s={};return L().forEach(t=>{c.has(t,"dynamicSegments")&&t.dynamicSegments&&(s[t.key]=t.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:e,dynamicSegments:s}})}async getFullPage(a){const e=this.isDraftMode(),s=this.getCurrentLang(),t=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:t===s?void 0:s,draft:e,mergePartials:!0}})}async getSiteSettings(){const a=this.isDraftMode();return await this.backend.handleAction({action:"GET_WEBSITE_SETTINGS",data:{draft:a}})}async getPageData(a,e,s){var E;const t=this.isDraftMode(),r=this.getCurrentLang(),o=m(e),l=a.filter(g=>g._type==="Repeater"&&(g==null?void 0:g.repeaterItems.includes("{{#")));let A={};if(l.length>0){const g=l.map(h=>({collectionId:h.repeaterItems.replace("{{#","").replace("}}",""),block:h}));A=(await Promise.all(g.map(async({collectionId:h,block:n})=>{const u=_(h);try{const d=await(u==null?void 0:u.fetch({lang:r,draft:t,inBuilder:!1,pageProps:s,block:n}));return Promise.resolve({[`#${h}/${n._id}`]:d??[]})}catch{return Promise.resolve({[`#${h}/${n._id}`]:[]})}}))).reduce((h,n)=>({...h,...n}),{})}const[f,S]=await Promise.all([this.getGlobalData(),((E=o==null?void 0:o.dataProvider)==null?void 0:E.call(o,{lang:r,draft:t,inBuilder:!1,pageProps:s}))||Promise.resolve({})]);return o?{...S,global:f,...A}:{global:f,...A}}async getGlobalData(){const a=this.getCurrentLang();return await T({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class j{constructor(a="",e=D){this.apiKey=a,this.apiUrl=e}async handleUsersAction(a,e){const s=await fetch(`${this.apiUrl}/v1/api/users`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}}),t=await s.json();return c.has(t,"error")?{...t,status:s.status}:t}async handleAction(a,e){const s=await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}}),t=await s.json();return c.has(t,"error")?{...t,status:s.status}:t}async handleAssetsAction(a,e){return await(await fetch(`${this.apiUrl}/v1/api/assets`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}})).json()}}const D="https://api.chaibuilder.com";exports.API_URL=D;exports.ChaiBuilderPages=N;exports.ChaiBuilderPagesBackend=j;exports.ChaiBuilderPagesUserManagement=U;exports.LANGUAGES=G;exports.registerChaiCollection=R;exports.registerChaiGlobalDataProvider=I;exports.registerChaiPageType=b;exports.registerChaiPartialType=v;
1
+ "use strict";var M=Object.defineProperty;var O=(i,a,e)=>a in i?M(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var k=(i,a,e)=>O(i,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),I=require("@chaibuilder/runtime");let _=async i=>({...i});const R=i=>{_=i},L=async i=>{try{return await _(i)}catch(a){return console.error(a),{}}},P={},T=()=>Object.values(P),A=i=>P[i],b=(i,a)=>{P[i]={key:i,...a,hasSlug:!0}},v=(i,a)=>{P[i]={key:i,...a,hasSlug:!1}},C={};function H(i,a){c.has(C,i)&&console.warn(`Collection ${i} already registered`),C[i]={...a,id:i}}const G=()=>Object.values(C),y=i=>c.get(C,i),U={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 K{constructor(a){this.backend=a}async upload({file:a,folderId:e,name:s},t){var o,l;return await((l=(o=this.backend).handleAssetsAction)==null?void 0:l.call(o,{action:"UPLOAD_ASSET",data:{name:s,file:a,folderId:e}},t))}async getAsset({id:a},e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"GET_ASSET",data:{id:a}},e)}async getAssets(a,e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"GET_ASSETS",data:a},e)}async deleteAsset({id:a},e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"DELETE_ASSET",data:{id:a}},e)}async updateAsset({id:a,file:e,description:s},t){var r,o;return(o=(r=this.backend).handleAssetsAction)==null?void 0:o.call(r,{action:"UPDATE_ASSET",data:{id:a,file:e,description:s}},t)}}class D{constructor(a){this.backend=a}async refreshToken(a){var s,t;const e=await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"REFRESH_TOKEN",data:a}));return e.error?{error:e.error}:e}async login({email:a,password:e}){var t,r;const s=await((r=(t=this.backend).handleUsersAction)==null?void 0:r.call(t,{action:"LOGIN",data:{email:a,password:e}}));return s.error?{error:s.error}:s}async logout(){var a,e;await((e=(a=this.backend).handleUsersAction)==null?void 0:e.call(a,{action:"LOGOUT"}))}async isUserActive(a){var s,t;return(await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"CHECK_USER_STATUS"},a))).success}async getUserRoleAndPermissions(a){var s,t;return await((t=(s=this.backend).handleUsersAction)==null?void 0:t.call(s,{action:"GET_ROLE_AND_PERMISSIONS"},a))}async getUserInfo(a,e){var t,r;return await((r=(t=this.backend).handleUsersAction)==null?void 0:r.call(t,{action:"GET_CHAI_USER",data:e},a))}}class N{constructor(a,e,s){k(this,"fallbackLang","");k(this,"currentLang","");k(this,"draftMode",!1);this.backend=a,this.chaiUsers=e,this.chaiAssets=s,this._registerDefaultPageTypes(),this.chaiUsers=e??new D(this.backend),this.chaiAssets=s??new K(this.backend)}_registerDefaultPageTypes(){b("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>'}),v("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 handle(a,e){var t,r,o,l,m,f,S,E,g,w,h;switch(a.action){case"UPLOAD_ASSET":return(t=this.chaiAssets)==null?void 0:t.upload({file:a.data.file,name:a.data.name,folderId:a.data.folderId??null,optimize:a.data.optimize??!0},e);case"GET_ASSET":return(r=this.chaiAssets)==null?void 0:r.getAsset(a.data,e);case"GET_ASSETS":return(o=this.chaiAssets)==null?void 0:o.getAssets(a.data,e);case"DELETE_ASSET":return(l=this.chaiAssets)==null?void 0:l.deleteAsset(a.data,e);case"UPDATE_ASSET":return(m=this.chaiAssets)==null?void 0:m.updateAsset(a.data,e);case"REFRESH_TOKEN":return(f=this.chaiUsers)==null?void 0:f.refreshToken(a.data);case"LOGIN":return(S=this.chaiUsers)==null?void 0:S.login(a.data);case"LOGOUT":return(E=this.chaiUsers)==null?void 0:E.logout();case"CHECK_USER_STATUS":return(g=this.chaiUsers)==null?void 0:g.isUserActive(e);case"GET_ROLE_AND_PERMISSIONS":return(w=this.chaiUsers)==null?void 0:w.getUserRoleAndPermissions(e);case"GET_CHAI_USER":return(h=this.chaiUsers)==null?void 0:h.getUserInfo(e,a.data)}if(a.action==="GET_BUILDER_PAGE_DATA"){const n=await L({lang:a.data.lang,draft:!0,inBuilder:!0}),u=A(a.data.pageType);return u?{...u.dataProvider?await u.dataProvider({lang:a.data.lang,draft:!0,inBuilder:!0,pageProps:a.data.pageProps??{}}):{},global:n}:{global:n}}if(a.action==="GET_PAGE_TYPES")return Promise.all(T().map(async n=>({key:n.key,helpText:n.helpText??"",icon:n.icon??"",dynamicSegments:n.dynamicSegments??"",dynamicSlug:n.dynamicSlug??"",hasSlug:n.hasSlug??!0,name:typeof n.name=="function"?await n.name():n.name})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const n=A(a.data.pageType);return n?n.search?await n.search(a.data.query):this.backend.handleAction(a,e):{error:"Page type not found"}}if(a.action==="GET_COLLECTIONS")return G().map(n=>c.omit(n,"fetch"));if(a.action==="GET_BLOCK_ASYNC_PROPS"){const n=a.data.block,u=n._type;if(u==="Repeater"&&(n!=null&&n.repeaterItems.includes("{{#"))){const d=n.repeaterItems.replace("{{#","").replace("}}",""),p=y(d);return p?await(p==null?void 0:p.fetch({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0}))??[]:[]}else{const d=I.getRegisteredChaiBlock(u);return!d||!c.isFunction(d.dataProvider)?{}:await d.dataProvider({block:n,pageProps:a.data.pageProps,lang:a.data.lang,draft:!0,inBuilder:!0})??{}}}const s=await this.backend.handleAction(a,e);return this.emit(a.action,s),s}emit(a,e){var r,o,l;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const s=c.get(e,"page");if(!s)return;const t=A(s.pageType);if(t)switch(a){case"CREATE_PAGE":return(r=t.onCreate)==null?void 0:r.call(t,s);case"UPDATE_PAGE":return(o=t.onUpdate)==null?void 0:o.call(t,s);case"DELETE_PAGE":return(l=t.onDelete)==null?void 0:l.call(t,s)}}setLanguageFromSlug(a){if(!this.getFallbackLang())throw new Error("Please set a fallback language using setFallbackLang(lang: string)");const e=c.first(a||[""]);Object.keys(U).includes(e)?this.setCurrentLang(e):this.setCurrentLang(this.getFallbackLang())}async resolvePageLink(a){if(!c.startsWith(a,"pageType:"))return a;const e=a.split(":")[1],s=a.split(":")[2],t=A(e);return t?await this.resolveLink(t.key,s):a}async resolveLink(a,e){const s=A(a);if(!s)return"/not-found";const t=this.isDraftMode(),r=this.getCurrentLang()===this.getFallbackLang()?"":this.getCurrentLang();return s.resolveLink?await s.resolveLink(e,t,r):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:e,draft:t,lang:r}})}async getPageBySlug(a){const e=this.isDraftMode(),s={};return T().forEach(t=>{c.has(t,"dynamicSegments")&&t.dynamicSegments&&(s[t.key]=t.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:e,dynamicSegments:s}})}async getFullPage(a){const e=this.isDraftMode(),s=this.getCurrentLang(),t=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:t===s?void 0:s,draft:e,mergePartials:!0}})}async getSiteSettings(){const a=this.isDraftMode();return await this.backend.handleAction({action:"GET_WEBSITE_SETTINGS",data:{draft:a}})}async getPageData(a,e,s){var E;const t=this.isDraftMode(),r=this.getCurrentLang(),o=A(e),l=a.filter(g=>g._type==="Repeater"&&(g==null?void 0:g.repeaterItems.includes("{{#")));let m={};if(l.length>0){const g=l.map(h=>({collectionId:h.repeaterItems.replace("{{#","").replace("}}",""),block:h}));m=(await Promise.all(g.map(async({collectionId:h,block:n})=>{const u=y(h);try{const d=await(u==null?void 0:u.fetch({lang:r,draft:t,inBuilder:!1,pageProps:s,block:n}));return Promise.resolve({[`#${h}/${n._id}`]:c.get(d,"items",[])??[]})}catch{return Promise.resolve({[`#${h}/${n._id}`]:[]})}}))).reduce((h,n)=>({...h,...n}),{})}const[f,S]=await Promise.all([this.getGlobalData(),((E=o==null?void 0:o.dataProvider)==null?void 0:E.call(o,{lang:r,draft:t,inBuilder:!1,pageProps:s}))||Promise.resolve({})]);return o?{...S,global:f,...m}:{global:f,...m}}async getGlobalData(){const a=this.getCurrentLang();return await L({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class j{constructor(a="",e=B){this.apiKey=a,this.apiUrl=e}async handleUsersAction(a,e){const s=await fetch(`${this.apiUrl}/v1/api/users`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}}),t=await s.json();return c.has(t,"error")?{...t,status:s.status}:t}async handleAction(a,e){const s=await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}}),t=await s.json();return c.has(t,"error")?{...t,status:s.status}:t}async handleAssetsAction(a,e){return await(await fetch(`${this.apiUrl}/v1/api/assets`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}})).json()}}const B="https://api.chaibuilder.com";exports.API_URL=B;exports.ChaiBuilderPages=N;exports.ChaiBuilderPagesBackend=j;exports.ChaiBuilderPagesUserManagement=D;exports.LANGUAGES=U;exports.getChaiCollection=y;exports.getChaiCollections=G;exports.getChaiPageType=A;exports.getChaiPageTypes=T;exports.registerChaiCollection=H;exports.registerChaiGlobalDataProvider=R;exports.registerChaiPageType=b;exports.registerChaiPartialType=v;
package/dist/server.d.ts CHANGED
@@ -247,7 +247,10 @@ declare interface CollectionConfig<T> {
247
247
  id: string;
248
248
  name: string;
249
249
  }[];
250
- fetch: (params: CollectionFetchParams) => Promise<T[]>;
250
+ fetch: (params: CollectionFetchParams) => Promise<{
251
+ items: T[];
252
+ totalItems?: number;
253
+ }>;
251
254
  }
252
255
 
253
256
  declare type CollectionFetchParams = {
@@ -262,6 +265,14 @@ declare type CollectionFetchParams = {
262
265
  };
263
266
  };
264
267
 
268
+ export declare const getChaiCollection: (key: string) => CollectionConfig<any>;
269
+
270
+ export declare const getChaiCollections: () => CollectionConfig<any>[];
271
+
272
+ export declare const getChaiPageType: (key: keyof typeof PAGE_TYPES) => ChaiBuilderPageType;
273
+
274
+ export declare const getChaiPageTypes: () => ChaiBuilderPageType[];
275
+
265
276
  export declare const LANGUAGES: {
266
277
  [key: string]: string;
267
278
  };
@@ -275,6 +286,8 @@ export declare interface LoggedInUser {
275
286
  avatar?: string;
276
287
  }
277
288
 
289
+ declare const PAGE_TYPES: Record<string, ChaiBuilderPageType>;
290
+
278
291
  export declare type PageTypeSearchResult = {
279
292
  id: string;
280
293
  name: string;
package/dist/server.js CHANGED
@@ -1,20 +1,20 @@
1
1
  var G = Object.defineProperty;
2
2
  var U = (i, a, e) => a in i ? G(i, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[a] = e;
3
3
  var p = (i, a, e) => U(i, typeof a != "symbol" ? a + "" : a, e);
4
- import { has as k, get as y, isEmpty as T, omit as D, isFunction as M, first as O, startsWith as B } from "lodash-es";
4
+ import { has as k, get as T, isEmpty as L, omit as D, isFunction as M, first as O, startsWith as B } from "lodash-es";
5
5
  import { getRegisteredChaiBlock as I } from "@chaibuilder/runtime";
6
6
  let v = async (i) => ({
7
7
  ...i
8
8
  });
9
9
  const $ = (i) => {
10
10
  v = i;
11
- }, L = async (i) => {
11
+ }, _ = async (i) => {
12
12
  try {
13
13
  return await v(i);
14
14
  } catch (a) {
15
15
  return console.error(a), {};
16
16
  }
17
- }, P = {}, _ = () => Object.values(P), A = (i) => P[i], H = (i, a) => {
17
+ }, P = {}, b = () => Object.values(P), m = (i) => P[i], H = (i, a) => {
18
18
  P[i] = { key: i, ...a, hasSlug: !0 };
19
19
  }, K = (i, a) => {
20
20
  P[i] = { key: i, ...a, hasSlug: !1 };
@@ -22,7 +22,7 @@ const $ = (i) => {
22
22
  function Y(i, a) {
23
23
  k(w, i) && console.warn(`Collection ${i} already registered`), w[i] = { ...a, id: i };
24
24
  }
25
- const R = () => Object.values(w), b = (i) => y(w, i), N = {
25
+ const R = () => Object.values(w), y = (i) => T(w, i), N = {
26
26
  ab: "Abkhazian",
27
27
  aa: "Afar",
28
28
  af: "Afrikaans",
@@ -359,7 +359,7 @@ class W {
359
359
  });
360
360
  }
361
361
  setFallbackLang(a) {
362
- if (T(a))
362
+ if (L(a))
363
363
  throw new Error("Fallback language cannot be empty");
364
364
  this.fallbackLang = a;
365
365
  }
@@ -367,7 +367,7 @@ class W {
367
367
  return this.fallbackLang;
368
368
  }
369
369
  setCurrentLang(a) {
370
- if (T(a))
370
+ if (L(a))
371
371
  throw new Error("Current language cannot be empty");
372
372
  this.currentLang = a;
373
373
  }
@@ -381,7 +381,7 @@ class W {
381
381
  return this.draftMode;
382
382
  }
383
383
  async handle(a, e) {
384
- var t, r, o, c, d, m, E, f, u, C, l;
384
+ var t, r, o, c, d, A, E, f, u, C, l;
385
385
  switch (a.action) {
386
386
  // Media
387
387
  case "UPLOAD_ASSET":
@@ -410,7 +410,7 @@ class W {
410
410
  return (d = this.chaiAssets) == null ? void 0 : d.updateAsset(a.data, e);
411
411
  // Users
412
412
  case "REFRESH_TOKEN":
413
- return (m = this.chaiUsers) == null ? void 0 : m.refreshToken(
413
+ return (A = this.chaiUsers) == null ? void 0 : A.refreshToken(
414
414
  a.data
415
415
  );
416
416
  case "LOGIN":
@@ -430,11 +430,11 @@ class W {
430
430
  );
431
431
  }
432
432
  if (a.action === "GET_BUILDER_PAGE_DATA") {
433
- const s = await L({
433
+ const s = await _({
434
434
  lang: a.data.lang,
435
435
  draft: !0,
436
436
  inBuilder: !0
437
- }), h = A(
437
+ }), h = m(
438
438
  a.data.pageType
439
439
  );
440
440
  return h ? {
@@ -449,7 +449,7 @@ class W {
449
449
  }
450
450
  if (a.action === "GET_PAGE_TYPES")
451
451
  return Promise.all(
452
- _().map(async (s) => ({
452
+ b().map(async (s) => ({
453
453
  key: s.key,
454
454
  helpText: s.helpText ?? "",
455
455
  icon: s.icon ?? "",
@@ -460,7 +460,7 @@ class W {
460
460
  }))
461
461
  );
462
462
  if (a.action === "SEARCH_PAGE_TYPE_ITEMS") {
463
- const s = A(
463
+ const s = m(
464
464
  a.data.pageType
465
465
  );
466
466
  return s ? s.search ? await s.search(a.data.query) : this.backend.handleAction(a, e) : { error: "Page type not found" };
@@ -472,7 +472,7 @@ class W {
472
472
  if (a.action === "GET_BLOCK_ASYNC_PROPS") {
473
473
  const s = a.data.block, h = s._type;
474
474
  if (h === "Repeater" && (s != null && s.repeaterItems.includes("{{#"))) {
475
- const g = s.repeaterItems.replace("{{#", "").replace("}}", ""), S = b(g);
475
+ const g = s.repeaterItems.replace("{{#", "").replace("}}", ""), S = y(g);
476
476
  return S ? await (S == null ? void 0 : S.fetch({
477
477
  block: s,
478
478
  pageProps: a.data.pageProps,
@@ -497,9 +497,9 @@ class W {
497
497
  emit(a, e) {
498
498
  var r, o, c;
499
499
  if (!["CREATE_PAGE", "UPDATE_PAGE", "DELETE_PAGE"].includes(a)) return;
500
- const n = y(e, "page");
500
+ const n = T(e, "page");
501
501
  if (!n) return;
502
- const t = A(n.pageType);
502
+ const t = m(n.pageType);
503
503
  if (t)
504
504
  switch (a) {
505
505
  case "CREATE_PAGE":
@@ -527,11 +527,11 @@ class W {
527
527
  async resolvePageLink(a) {
528
528
  if (!B(a, "pageType:"))
529
529
  return a;
530
- const e = a.split(":")[1], n = a.split(":")[2], t = A(e);
530
+ const e = a.split(":")[1], n = a.split(":")[2], t = m(e);
531
531
  return t ? await this.resolveLink(t.key, n) : a;
532
532
  }
533
533
  async resolveLink(a, e) {
534
- const n = A(a);
534
+ const n = m(a);
535
535
  if (!n)
536
536
  return "/not-found";
537
537
  const t = this.isDraftMode(), r = this.getCurrentLang() === this.getFallbackLang() ? "" : this.getCurrentLang();
@@ -547,7 +547,7 @@ class W {
547
547
  }
548
548
  async getPageBySlug(a) {
549
549
  const e = this.isDraftMode(), n = {};
550
- return _().forEach((t) => {
550
+ return b().forEach((t) => {
551
551
  k(t, "dynamicSegments") && t.dynamicSegments && (n[t.key] = t.dynamicSegments);
552
552
  }), await this.backend.handleAction({
553
553
  action: "GET_PAGE_META",
@@ -575,7 +575,7 @@ class W {
575
575
  }
576
576
  async getPageData(a, e, n) {
577
577
  var f;
578
- const t = this.isDraftMode(), r = this.getCurrentLang(), o = A(e), c = a.filter(
578
+ const t = this.isDraftMode(), r = this.getCurrentLang(), o = m(e), c = a.filter(
579
579
  (u) => u._type === "Repeater" && (u == null ? void 0 : u.repeaterItems.includes("{{#"))
580
580
  );
581
581
  let d = {};
@@ -583,7 +583,7 @@ class W {
583
583
  const u = c.map((l) => ({ collectionId: l.repeaterItems.replace("{{#", "").replace("}}", ""), block: l }));
584
584
  d = (await Promise.all(
585
585
  u.map(async ({ collectionId: l, block: s }) => {
586
- const h = b(l);
586
+ const h = y(l);
587
587
  try {
588
588
  const g = await (h == null ? void 0 : h.fetch({
589
589
  lang: r,
@@ -593,7 +593,7 @@ class W {
593
593
  block: s
594
594
  }));
595
595
  return Promise.resolve({
596
- [`#${l}/${s._id}`]: g ?? []
596
+ [`#${l}/${s._id}`]: T(g, "items", []) ?? []
597
597
  });
598
598
  } catch {
599
599
  return Promise.resolve({
@@ -603,7 +603,7 @@ class W {
603
603
  })
604
604
  )).reduce((l, s) => ({ ...l, ...s }), {});
605
605
  }
606
- const [m, E] = await Promise.all([
606
+ const [A, E] = await Promise.all([
607
607
  this.getGlobalData(),
608
608
  ((f = o == null ? void 0 : o.dataProvider) == null ? void 0 : f.call(o, {
609
609
  lang: r,
@@ -614,13 +614,13 @@ class W {
614
614
  ]);
615
615
  return o ? {
616
616
  ...E,
617
- global: m,
617
+ global: A,
618
618
  ...d
619
- } : { global: m, ...d };
619
+ } : { global: A, ...d };
620
620
  }
621
621
  async getGlobalData() {
622
622
  const a = this.getCurrentLang();
623
- return await L({
623
+ return await _({
624
624
  lang: a,
625
625
  draft: this.isDraftMode(),
626
626
  inBuilder: !1
@@ -674,6 +674,10 @@ export {
674
674
  q as ChaiBuilderPagesBackend,
675
675
  F as ChaiBuilderPagesUserManagement,
676
676
  N as LANGUAGES,
677
+ y as getChaiCollection,
678
+ R as getChaiCollections,
679
+ m as getChaiPageType,
680
+ b as getChaiPageTypes,
677
681
  Y as registerChaiCollection,
678
682
  $ as registerChaiGlobalDataProvider,
679
683
  H as registerChaiPageType,
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.5.3",
6
+ "version": "0.5.4",
7
7
  "type": "module",
8
8
  "files": [
9
9
  "dist"
@@ -54,8 +54,8 @@
54
54
  "test": "vitest"
55
55
  },
56
56
  "peerDependencies": {
57
- "@chaibuilder/runtime": "2.1.5",
58
- "@chaibuilder/sdk": "2.2.28",
57
+ "@chaibuilder/runtime": "2.2.0",
58
+ "@chaibuilder/sdk": "2.2.30",
59
59
  "@types/react": "*",
60
60
  "@types/react-dom": "*",
61
61
  "react": "^18.0 || ^19.0 || ^19.1",
@@ -70,8 +70,8 @@
70
70
  }
71
71
  },
72
72
  "dependencies": {
73
- "@chaibuilder/runtime": "2.1.5",
74
- "@chaibuilder/sdk": "2.2.28",
73
+ "@chaibuilder/runtime": "2.2.0",
74
+ "@chaibuilder/sdk": "2.2.30",
75
75
  "@mhsdesign/jit-browser-tailwindcss": "^0.4.2",
76
76
  "@tailwindcss/aspect-ratio": "^0.4.2",
77
77
  "@tailwindcss/forms": "^0.5.10",