@chaibuilder/pages 0.4.5 → 0.4.6-beta.2
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-Eeaqj2pE.cjs → B4MFY5CR-CgKmoZhy.cjs} +1 -1
- package/dist/{B4MFY5CR-BpF1oV0W.js → B4MFY5CR-Doi8QlXL.js} +1 -1
- package/dist/{HO4MOOFI-DZrEi4_0.cjs → HO4MOOFI-4Q-h7u6O.cjs} +1 -1
- package/dist/{HO4MOOFI-B0re9LoG.js → HO4MOOFI-CWU4gOCj.js} +2 -2
- package/dist/{HUY7CZI3-Bhnn9mlN.js → HUY7CZI3-BuVBFUXg.js} +2 -2
- package/dist/{HUY7CZI3-D6ydyi4S.cjs → HUY7CZI3-CEnI5Lww.cjs} +1 -1
- package/dist/digital-asset-manager-CE2qYOMT.cjs +1 -0
- package/dist/digital-asset-manager-Scnvw98W.js +471 -0
- package/dist/{image-editor-D8wu5UNM.cjs → image-editor-BKUmqgv0.cjs} +1 -1
- package/dist/{image-editor-CwVua57o.js → image-editor-BQ6_F-iv.js} +13 -13
- package/dist/{index-xGrIPO1U.js → index-Ci9oNrDB.js} +858 -853
- package/dist/index-sSI8ulEa.cjs +2 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +8 -8
- package/dist/pages.css +1 -1
- package/dist/server.cjs +1 -1
- package/dist/server.d.ts +17 -9
- package/dist/server.js +123 -108
- package/package.json +3 -2
- package/dist/digital-asset-manager-9VvM1Vyd.cjs +0 -1
- package/dist/digital-asset-manager-BZ6Gatq3.js +0 -462
- package/dist/index-BH25LDvP.cjs +0 -2
package/dist/server.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var U=Object.defineProperty;var G=(n,a,e)=>a in n?U(n,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[a]=e;var g=(n,a,e)=>G(n,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("lodash-es"),d={},T=(n,a)=>{d[n]={key:n,...a,hasSlug:!0}},p=(n,a)=>{d[n]={key:n,...a,hasSlug:!1}},E=()=>Object.values(d),l=n=>d[n];let C=async n=>({...n});const v=n=>C=n,k=async n=>{try{return await C(n)}catch(a){return console.error(a),{}}};class D{constructor(a){this.backend=a}async upload({file:a,folderId:e,name:t}){return await this.backend.handleAssetsAction({action:"UPLOAD_ASSET",data:{name:t,file:a,folderId:e}})}async getAssets(a){return this.backend.handleAssetsAction({action:"GET_ASSETS",data:a})}async deleteAsset(a){return this.backend.handleAssetsAction({action:"DELETE_ASSET",data:{assetId:a}})}async updateAssetMetadata(a){return this.backend.handleAssetsAction({action:"UPDATE_ASSET_METADATA",data:a})}async updateAssetFile({id:a,file:e}){return this.backend.handleAssetsAction({action:"UPDATE_ASSET_FILE",data:{id:a,file:e}})}}class y{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 L={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 M{constructor(a,e,t){g(this,"fallbackLang","");g(this,"currentLang","");g(this,"draftMode",!1);this.backend=a,this.chaiUsers=e,this.chaiAssets=t,this._registerDefaultPageTypes(),this.chaiUsers=e??new y(this.backend),this.chaiAssets=t??new D(this.backend)}_registerDefaultPageTypes(){T("page",{name:"Static Page",icon:'<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M5 8V20H19V8H5ZM5 6H19V4H5V6ZM20 22H4C3.44772 22 3 21.5523 3 21V3C3 2.44772 3.44772 2 4 2H20C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22ZM7 10H11V14H7V10ZM7 16H17V18H7V16ZM13 11H17V13H13V11Z"></path></svg>'}),p("global",{name:"Global Block",helpText:"A global block can be reused in multiple pages.",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe w-4 h-4 text-slate-500 stroke-[1]"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>'})}setFallbackLang(a){if(h.isEmpty(a))throw new Error("Fallback language cannot be empty");this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setCurrentLang(a){if(h.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 s,r,o,c,u,S,m,f,b,w,P;switch(a.action){case"UPLOAD_MEDIA":return(s=this.chaiAssets)==null?void 0:s.upload({file:a.data.file,name:a.data.name});case"GET_ASSETS":return(r=this.chaiAssets)==null?void 0:r.getAssets(a.data);case"DELETE_ASSET":return(o=this.chaiAssets)==null?void 0:o.deleteAsset(a.data.assetId);case"UPDATE_ASSET_METADATA":return(c=this.chaiAssets)==null?void 0:c.updateAssetMetadata(a.data);case"UPDATE_ASSET_FILE":return(u=this.chaiAssets)==null?void 0:u.updateAssetFile(a.data);case"REFRESH_TOKEN":return(S=this.chaiUsers)==null?void 0:S.refreshToken(a.data);case"LOGIN":return(m=this.chaiUsers)==null?void 0:m.login(a.data);case"LOGOUT":return(f=this.chaiUsers)==null?void 0:f.logout();case"CHECK_USER_STATUS":return(b=this.chaiUsers)==null?void 0:b.isUserActive(e);case"GET_ROLE_AND_PERMISSIONS":return(w=this.chaiUsers)==null?void 0:w.getUserRoleAndPermissions(e);case"GET_CHAI_USER":return(P=this.chaiUsers)==null?void 0:P.getUserInfo(e,a.data)}if(a.action==="GET_BUILDER_PAGE_DATA"){const i=await k({lang:a.data.lang,draft:!0,inBuilder:!0}),A=l(a.data.pageType);return A?{...A.dataProvider?await A.dataProvider({lang:a.data.lang,draft:!0,inBuilder:!0,pageProps:a.data.pageProps??{}}):{},global:i}:{global:i}}if(a.action==="GET_PAGE_TYPES")return Promise.all(E().map(async i=>({key:i.key,helpText:i.helpText??"",icon:i.icon??"",dynamicSegments:i.dynamicSegments??"",dynamicSlug:i.dynamicSlug??"",hasSlug:i.hasSlug??!0,name:typeof i.name=="function"?await i.name():i.name})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const i=l(a.data.pageType);return i?i.search?await i.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,c;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const t=h.get(e,"page");if(!t)return;const s=l(t.pageType);if(s)switch(a){case"CREATE_PAGE":return(r=s.onCreate)==null?void 0:r.call(s,t);case"UPDATE_PAGE":return(o=s.onUpdate)==null?void 0:o.call(s,t);case"DELETE_PAGE":return(c=s.onDelete)==null?void 0:c.call(s,t)}}setLanguageFromSlug(a){if(!this.getFallbackLang())throw new Error("Please set a fallback language using setFallbackLang(lang: string)");const e=h.first(a||[""]);Object.keys(L).includes(e)?this.setCurrentLang(e):this.setCurrentLang(this.getFallbackLang())}async resolveLink(a,e){const t=l(a);if(!t)return"/not-found";const s=this.isDraftMode(),r=this.getCurrentLang()===this.getFallbackLang()?"":this.getCurrentLang();return t.resolveLink?await t.resolveLink(e,s,r):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:e,draft:s,lang:r}})}async getPageBySlug(a){const e=this.isDraftMode(),t={};return E().forEach(s=>{h.has(s,"dynamicSegments")&&s.dynamicSegments&&(t[s.key]=s.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(),s=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:s===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(),s=this.getCurrentLang(),r=l(a),[o,c]=await Promise.all([this.getGlobalData(),((u=r==null?void 0:r.dataProvider)==null?void 0:u.call(r,{lang:s,draft:t,inBuilder:!1,pageProps:e}))||Promise.resolve({})]);return r?{...c,global:o}:{global:o}}async getGlobalData(){const a=this.getCurrentLang();return await k({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class I{constructor(a="",e=_){this.apiKey=a,this.apiUrl=e}async handleUsersAction(a,e){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}}),s=await t.json();return h.has(s,"error")?{...s,status:t.status}:s}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}}),s=await t.json();return h.has(s,"error")?{...s,status:t.status}:s}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-upload":"true","x-chai-auth-token":e}})).json()}}const _="https://api.chaibuilder.com";exports.API_URL=_;exports.ChaiBuilderPages=M;exports.ChaiBuilderPagesBackend=I;exports.ChaiBuilderPagesUserManagement=y;exports.LANGUAGES=L;exports.getChaiGlobalData=k;exports.getChaiPageType=l;exports.getChaiPageTypes=E;exports.registerChaiGlobalDataProvider=v;exports.registerChaiPageType=T;exports.registerChaiPartialType=p;
|
|
1
|
+
"use strict";var _=Object.defineProperty;var U=(i,a,e)=>a in i?_(i,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[a]=e;var g=(i,a,e)=>U(i,typeof a!="symbol"?a+"":a,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("lodash-es"),d={},P=(i,a)=>{d[i]={key:i,...a,hasSlug:!0}},p=(i,a)=>{d[i]={key:i,...a,hasSlug:!1}},k=()=>Object.values(d),h=i=>d[i];let T=async i=>({...i});const G=i=>T=i,E=async i=>{try{return await T(i)}catch(a){return console.error(a),{}}};class v{constructor(a){this.backend=a}async upload({file:a,folderId:e,name:t}){var n,o;return console.log("upload",a,e,t),await((o=(n=this.backend).handleAssetsAction)==null?void 0:o.call(n,{action:"UPLOAD_ASSET",data:{name:t,file:a,folderId:e}}))}async getAssets(a){var e,t;return(t=(e=this.backend).handleAssetsAction)==null?void 0:t.call(e,{action:"GET_ASSETS",data:a})}async deleteAsset(a){var e,t;return(t=(e=this.backend).handleAssetsAction)==null?void 0:t.call(e,{action:"DELETE_ASSET",data:{assetId:a}})}async updateAsset({id:a,file:e,description:t}){var s,n;return(n=(s=this.backend).handleAssetsAction)==null?void 0:n.call(s,{action:"UPDATE_ASSET",data:{id:a,file:e,description:t}})}}class C{constructor(a){this.backend=a}async refreshToken(a){var t,s;const e=await((s=(t=this.backend).handleUsersAction)==null?void 0:s.call(t,{action:"REFRESH_TOKEN",data:a}));return e.error?{error:e.error}:e}async login({email:a,password:e}){var s,n;const t=await((n=(s=this.backend).handleUsersAction)==null?void 0:n.call(s,{action:"LOGIN",data:{email:a,password:e}}));return t.error?{error:t.error}:t}async logout(){var a,e;await((e=(a=this.backend).handleUsersAction)==null?void 0:e.call(a,{action:"LOGOUT"}))}async isUserActive(a){var t,s;return(await((s=(t=this.backend).handleUsersAction)==null?void 0:s.call(t,{action:"CHECK_USER_STATUS"},a))).success}async getUserRoleAndPermissions(a){var t,s;return await((s=(t=this.backend).handleUsersAction)==null?void 0:s.call(t,{action:"GET_ROLE_AND_PERMISSIONS"},a))}async getUserInfo(a,e){var s,n;return await((n=(s=this.backend).handleUsersAction)==null?void 0:n.call(s,{action:"GET_CHAI_USER",data:e},a))}}const y={ab:"Abkhazian",aa:"Afar",af:"Afrikaans",ak:"Akan",sq:"Albanian",am:"Amharic",ar:"Arabic",an:"Aragonese",hy:"Armenian",as:"Assamese",av:"Avaric",ae:"Avestan",ay:"Aymara",az:"Azerbaijani",bm:"Bambara",ba:"Bashkir",eu:"Basque",be:"Belarusian",bn:"Bengali",bh:"Bihari",bi:"Bislama",bs:"Bosnian",br:"Breton",bg:"Bulgarian",my:"Burmese",ca:"Catalan",ch:"Chamorro",ce:"Chechen",ny:"Chichewa",zh:"Chinese","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cv:"Chuvash",kw:"Cornish",co:"Corsican",cr:"Cree",hr:"Croatian",cs:"Czech",da:"Danish",dv:"Maldivian",nl:"Dutch",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",fi:"Finnish",fr:"French",ff:"Fula, Pular",gl:"Galician",gd:"Gaelic (Scottish)",gv:"Manx",ka:"Georgian",de:"German",el:"Greek",kl:"Kalaallisut",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",he:"Hebrew",hz:"Herero",hi:"Hindi",ho:"Hiri Motu",hu:"Hungarian",is:"Icelandic",io:"Ido",ig:"Igbo",id:"Indonesian",ia:"Interlingua",ie:"Interlingue",iu:"Inuktitut",ik:"Inupiak",ga:"Irish",it:"Italian",ja:"Japanese",jv:"Javanese",kn:"Kannada",kr:"Kanuri",ks:"Kashmiri",kk:"Kazakh",km:"Khmer",ki:"Kikuyu",rw:"Kinyarwanda",rn:"Kirundi",ky:"Kyrgyz",kv:"Komi",kg:"Kongo",ko:"Korean",ku:"Kurdish",kj:"Kwanyama",lo:"Lao",la:"Latin",lv:"Latvian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lu:"Luga-Katanga",lg:"Luganda, Ganda",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mh:"Marshallese",mo:"Moldavian",mn:"Mongolian",na:"Nauru",nv:"Navajo",ng:"Ndonga",nd:"Northern Ndebele",ne:"Nepali",no:"Norwegian",nb:"Norwegian bokmål",nn:"Norwegian nynorsk",ii:"Sichuan Yi",oc:"Occitan",oj:"Ojibwe",cu:"Old Church Slavonic",or:"Oriya",om:"Oromo",os:"Ossetian",pi:"Pāli",ps:"Pashto, Pushto",fa:"Persian (Farsi)",pl:"Polish",pt:"Portuguese",pa:"Punjabi (Eastern)",qu:"Quechua",rm:"Romansh",ro:"Romanian",ru:"Russian",se:"Sami",sm:"Samoan",sg:"Sango",sa:"Sanskrit",sr:"Serbian",sh:"Serbo-Croatian",st:"Sesotho",tn:"Setswana",sn:"Shona",sd:"Sindhi",si:"Sinhalese",ss:"Swati",sk:"Slovak",sl:"Slovenian",so:"Somali",nr:"Southern Ndebele",es:"Spanish",su:"Sundanese",sw:"Swahili (Kiswahili)",sv:"Swedish",tl:"Tagalog",ty:"Tahitian",tg:"Tajik",ta:"Tamil",tt:"Tatar",te:"Telugu",th:"Thai",bo:"Tibetan",ti:"Tigrinya",to:"Tonga",ts:"Tsonga",tr:"Turkish",tk:"Turkmen",tw:"Twi",ug:"Uyghur",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",ve:"Venda",vi:"Vietnamese",vo:"Volapük",wa:"Wallon",cy:"Welsh",wo:"Wolof",fy:"Western Frisian",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",za:"Zhuang, Chuang",zu:"Zulu"};class D{constructor(a,e,t){g(this,"fallbackLang","");g(this,"currentLang","");g(this,"draftMode",!1);this.backend=a,this.chaiUsers=e,this.chaiAssets=t,this._registerDefaultPageTypes(),this.chaiUsers=e??new C(this.backend),this.chaiAssets=t??new v(this.backend)}_registerDefaultPageTypes(){P("page",{name:"Static Page",icon:'<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M5 8V20H19V8H5ZM5 6H19V4H5V6ZM20 22H4C3.44772 22 3 21.5523 3 21V3C3 2.44772 3.44772 2 4 2H20C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22ZM7 10H11V14H7V10ZM7 16H17V18H7V16ZM13 11H17V13H13V11Z"></path></svg>'}),p("global",{name:"Global Block",helpText:"A global block can be reused in multiple pages.",icon:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe w-4 h-4 text-slate-500 stroke-[1]"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>'})}setFallbackLang(a){if(l.isEmpty(a))throw new Error("Fallback language cannot be empty");this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setCurrentLang(a){if(l.isEmpty(a))throw new Error("Current language cannot be empty");this.currentLang=a}getCurrentLang(){return this.currentLang}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async handle(a,e){var s,n,o,c,u,S,m,f,b,w;switch(a.action){case"UPLOAD_ASSET":return(s=this.chaiAssets)==null?void 0:s.upload({file:a.data.file,name:a.data.name,folderId:a.data.folderId??null});case"GET_ASSETS":return(n=this.chaiAssets)==null?void 0:n.getAssets(a.data);case"DELETE_ASSET":return(o=this.chaiAssets)==null?void 0:o.deleteAsset(a.data.assetId);case"UPDATE_ASSET":return(c=this.chaiAssets)==null?void 0:c.updateAsset(a.data);case"REFRESH_TOKEN":return(u=this.chaiUsers)==null?void 0:u.refreshToken(a.data);case"LOGIN":return(S=this.chaiUsers)==null?void 0:S.login(a.data);case"LOGOUT":return(m=this.chaiUsers)==null?void 0:m.logout();case"CHECK_USER_STATUS":return(f=this.chaiUsers)==null?void 0:f.isUserActive(e);case"GET_ROLE_AND_PERMISSIONS":return(b=this.chaiUsers)==null?void 0:b.getUserRoleAndPermissions(e);case"GET_CHAI_USER":return(w=this.chaiUsers)==null?void 0:w.getUserInfo(e,a.data)}if(a.action==="GET_BUILDER_PAGE_DATA"){const r=await E({lang:a.data.lang,draft:!0,inBuilder:!0}),A=h(a.data.pageType);return A?{...A.dataProvider?await A.dataProvider({lang:a.data.lang,draft:!0,inBuilder:!0,pageProps:a.data.pageProps??{}}):{},global:r}:{global:r}}if(a.action==="GET_PAGE_TYPES")return Promise.all(k().map(async r=>({key:r.key,helpText:r.helpText??"",icon:r.icon??"",dynamicSegments:r.dynamicSegments??"",dynamicSlug:r.dynamicSlug??"",hasSlug:r.hasSlug??!0,name:typeof r.name=="function"?await r.name():r.name})));if(a.action==="SEARCH_PAGE_TYPE_ITEMS"){const r=h(a.data.pageType);return r?r.search?await r.search(a.data.query):this.backend.handleAction(a,e):{error:"Page type not found"}}const t=await this.backend.handleAction(a,e);return this.emit(a.action,t),t}emit(a,e){var n,o,c;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const t=l.get(e,"page");if(!t)return;const s=h(t.pageType);if(s)switch(a){case"CREATE_PAGE":return(n=s.onCreate)==null?void 0:n.call(s,t);case"UPDATE_PAGE":return(o=s.onUpdate)==null?void 0:o.call(s,t);case"DELETE_PAGE":return(c=s.onDelete)==null?void 0:c.call(s,t)}}setLanguageFromSlug(a){if(!this.getFallbackLang())throw new Error("Please set a fallback language using setFallbackLang(lang: string)");const e=l.first(a||[""]);Object.keys(y).includes(e)?this.setCurrentLang(e):this.setCurrentLang(this.getFallbackLang())}async resolveLink(a,e){const t=h(a);if(!t)return"/not-found";const s=this.isDraftMode(),n=this.getCurrentLang()===this.getFallbackLang()?"":this.getCurrentLang();return t.resolveLink?await t.resolveLink(e,s,n):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:e,draft:s,lang:n}})}async getPageBySlug(a){const e=this.isDraftMode(),t={};return k().forEach(s=>{l.has(s,"dynamicSegments")&&s.dynamicSegments&&(t[s.key]=s.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(),s=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:s===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(),s=this.getCurrentLang(),n=h(a),[o,c]=await Promise.all([this.getGlobalData(),((u=n==null?void 0:n.dataProvider)==null?void 0:u.call(n,{lang:s,draft:t,inBuilder:!1,pageProps:e}))||Promise.resolve({})]);return n?{...c,global:o}:{global:o}}async getGlobalData(){const a=this.getCurrentLang();return await E({lang:a,draft:this.isDraftMode(),inBuilder:!1})}async request(a){return await this.backend.handleAction(a)}}class M{constructor(a="",e=L){this.apiKey=a,this.apiUrl=e}async handleUsersAction(a,e){const 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}}),s=await t.json();return l.has(s,"error")?{...s,status:t.status}:s}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}}),s=await t.json();return l.has(s,"error")?{...s,status:t.status}:s}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-upload":"true","x-chai-auth-token":e}})).json()}}const L="https://api.chaibuilder.com";exports.API_URL=L;exports.ChaiBuilderPages=D;exports.ChaiBuilderPagesBackend=M;exports.ChaiBuilderPagesUserManagement=C;exports.LANGUAGES=y;exports.getChaiGlobalData=E;exports.getChaiPageType=h;exports.getChaiPageTypes=k;exports.registerChaiGlobalDataProvider=G;exports.registerChaiPageType=P;exports.registerChaiPartialType=p;
|
package/dist/server.d.ts
CHANGED
|
@@ -70,17 +70,25 @@ export declare interface ChaiBuilderPagesAssetsInterface {
|
|
|
70
70
|
upload({ file, folderId, name, }: {
|
|
71
71
|
name: string;
|
|
72
72
|
file: Base64URLString;
|
|
73
|
-
folderId?: string;
|
|
74
|
-
}): Promise<ChaiAsset
|
|
75
|
-
|
|
73
|
+
folderId?: string | null;
|
|
74
|
+
}): Promise<ChaiAsset | {
|
|
75
|
+
error: string;
|
|
76
|
+
}>;
|
|
77
|
+
getAssets(params: AssetsParams): Promise<Partial<ChaiAsset>[] | {
|
|
78
|
+
error: string;
|
|
79
|
+
}>;
|
|
76
80
|
deleteAsset(assetId: string): Promise<{
|
|
77
81
|
success: boolean;
|
|
82
|
+
} | {
|
|
83
|
+
error: string;
|
|
78
84
|
}>;
|
|
79
|
-
|
|
80
|
-
updateAssetFile({ id, file, }: {
|
|
85
|
+
updateAsset({ id, file, description, }: {
|
|
81
86
|
id: string;
|
|
82
|
-
file
|
|
83
|
-
|
|
87
|
+
file?: Base64URLString;
|
|
88
|
+
description?: string;
|
|
89
|
+
}): Promise<ChaiAsset | {
|
|
90
|
+
error: string;
|
|
91
|
+
}>;
|
|
84
92
|
}
|
|
85
93
|
|
|
86
94
|
export declare class ChaiBuilderPagesBackend implements ChaiBuilderPagesBackendInterface {
|
|
@@ -94,8 +102,8 @@ export declare class ChaiBuilderPagesBackend implements ChaiBuilderPagesBackendI
|
|
|
94
102
|
|
|
95
103
|
export declare interface ChaiBuilderPagesBackendInterface {
|
|
96
104
|
handleAction(body: any, authToken?: string): Promise<any>;
|
|
97
|
-
handleUsersAction(body: any, authToken?: string): Promise<any>;
|
|
98
|
-
handleAssetsAction(body: any, authToken?: string): Promise<any>;
|
|
105
|
+
handleUsersAction?(body: any, authToken?: string): Promise<any>;
|
|
106
|
+
handleAssetsAction?(body: any, authToken?: string): Promise<any>;
|
|
99
107
|
}
|
|
100
108
|
|
|
101
109
|
export declare interface ChaiBuilderPagesInterface {
|
package/dist/server.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
var
|
|
2
|
-
var C = (
|
|
3
|
-
var u = (
|
|
4
|
-
import { isEmpty as
|
|
5
|
-
const g = {},
|
|
6
|
-
g[
|
|
7
|
-
},
|
|
8
|
-
g[
|
|
9
|
-
},
|
|
10
|
-
let
|
|
11
|
-
...
|
|
1
|
+
var T = Object.defineProperty;
|
|
2
|
+
var C = (i, a, e) => a in i ? T(i, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[a] = e;
|
|
3
|
+
var u = (i, a, e) => C(i, typeof a != "symbol" ? a + "" : a, e);
|
|
4
|
+
import { isEmpty as w, get as L, first as _, has as A } from "lodash-es";
|
|
5
|
+
const g = {}, y = (i, a) => {
|
|
6
|
+
g[i] = { key: i, ...a, hasSlug: !0 };
|
|
7
|
+
}, U = (i, a) => {
|
|
8
|
+
g[i] = { key: i, ...a, hasSlug: !1 };
|
|
9
|
+
}, b = () => Object.values(g), h = (i) => g[i];
|
|
10
|
+
let P = async (i) => ({
|
|
11
|
+
...i
|
|
12
12
|
});
|
|
13
|
-
const
|
|
13
|
+
const H = (i) => P = i, p = async (i) => {
|
|
14
14
|
try {
|
|
15
|
-
return await
|
|
15
|
+
return await P(i);
|
|
16
16
|
} catch (a) {
|
|
17
17
|
return console.error(a), {};
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
|
-
class
|
|
20
|
+
class v {
|
|
21
21
|
constructor(a) {
|
|
22
22
|
this.backend = a;
|
|
23
23
|
}
|
|
@@ -26,86 +26,104 @@ class G {
|
|
|
26
26
|
folderId: e,
|
|
27
27
|
name: t
|
|
28
28
|
}) {
|
|
29
|
-
|
|
29
|
+
var s, o;
|
|
30
|
+
return console.log("upload", a, e, t), await ((o = (s = this.backend).handleAssetsAction) == null ? void 0 : o.call(s, {
|
|
30
31
|
action: "UPLOAD_ASSET",
|
|
31
32
|
data: {
|
|
32
33
|
name: t,
|
|
33
34
|
file: a,
|
|
34
35
|
folderId: e
|
|
35
36
|
}
|
|
36
|
-
});
|
|
37
|
+
}));
|
|
37
38
|
}
|
|
38
39
|
async getAssets(a) {
|
|
39
|
-
|
|
40
|
+
var e, t;
|
|
41
|
+
return (t = (e = this.backend).handleAssetsAction) == null ? void 0 : t.call(e, {
|
|
40
42
|
action: "GET_ASSETS",
|
|
41
43
|
data: a
|
|
42
44
|
});
|
|
43
45
|
}
|
|
44
46
|
async deleteAsset(a) {
|
|
45
|
-
|
|
47
|
+
var e, t;
|
|
48
|
+
return (t = (e = this.backend).handleAssetsAction) == null ? void 0 : t.call(e, {
|
|
46
49
|
action: "DELETE_ASSET",
|
|
47
50
|
data: { assetId: a }
|
|
48
51
|
});
|
|
49
52
|
}
|
|
50
|
-
async
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
data: { id: a, file: e }
|
|
53
|
+
async updateAsset({
|
|
54
|
+
id: a,
|
|
55
|
+
file: e,
|
|
56
|
+
description: t
|
|
57
|
+
}) {
|
|
58
|
+
var n, s;
|
|
59
|
+
return (s = (n = this.backend).handleAssetsAction) == null ? void 0 : s.call(n, {
|
|
60
|
+
action: "UPDATE_ASSET",
|
|
61
|
+
data: { id: a, file: e, description: t }
|
|
60
62
|
});
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
|
-
class
|
|
65
|
+
class G {
|
|
64
66
|
constructor(a) {
|
|
65
67
|
this.backend = a;
|
|
66
68
|
}
|
|
67
69
|
async refreshToken(a) {
|
|
68
|
-
|
|
70
|
+
var t, n;
|
|
71
|
+
const e = await ((n = (t = this.backend).handleUsersAction) == null ? void 0 : n.call(t, {
|
|
69
72
|
action: "REFRESH_TOKEN",
|
|
70
73
|
data: a
|
|
71
|
-
});
|
|
74
|
+
}));
|
|
72
75
|
return e.error ? { error: e.error } : e;
|
|
73
76
|
}
|
|
74
77
|
async login({
|
|
75
78
|
email: a,
|
|
76
79
|
password: e
|
|
77
80
|
}) {
|
|
78
|
-
|
|
81
|
+
var n, s;
|
|
82
|
+
const t = await ((s = (n = this.backend).handleUsersAction) == null ? void 0 : s.call(n, {
|
|
79
83
|
action: "LOGIN",
|
|
80
84
|
data: { email: a, password: e }
|
|
81
|
-
});
|
|
85
|
+
}));
|
|
82
86
|
return t.error ? { error: t.error } : t;
|
|
83
87
|
}
|
|
84
88
|
async logout() {
|
|
85
|
-
|
|
89
|
+
var a, e;
|
|
90
|
+
await ((e = (a = this.backend).handleUsersAction) == null ? void 0 : e.call(a, {
|
|
86
91
|
action: "LOGOUT"
|
|
87
|
-
});
|
|
92
|
+
}));
|
|
88
93
|
}
|
|
89
94
|
async isUserActive(a) {
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
var t, n;
|
|
96
|
+
return (await ((n = (t = this.backend).handleUsersAction) == null ? void 0 : n.call(
|
|
97
|
+
t,
|
|
98
|
+
{
|
|
99
|
+
action: "CHECK_USER_STATUS"
|
|
100
|
+
},
|
|
92
101
|
a
|
|
93
|
-
)).success;
|
|
102
|
+
))).success;
|
|
94
103
|
}
|
|
95
104
|
async getUserRoleAndPermissions(a) {
|
|
96
|
-
|
|
97
|
-
|
|
105
|
+
var t, n;
|
|
106
|
+
return await ((n = (t = this.backend).handleUsersAction) == null ? void 0 : n.call(
|
|
107
|
+
t,
|
|
108
|
+
{
|
|
109
|
+
action: "GET_ROLE_AND_PERMISSIONS"
|
|
110
|
+
},
|
|
98
111
|
a
|
|
99
|
-
);
|
|
112
|
+
));
|
|
100
113
|
}
|
|
101
114
|
async getUserInfo(a, e) {
|
|
102
|
-
|
|
103
|
-
|
|
115
|
+
var n, s;
|
|
116
|
+
return await ((s = (n = this.backend).handleUsersAction) == null ? void 0 : s.call(
|
|
117
|
+
n,
|
|
118
|
+
{
|
|
119
|
+
action: "GET_CHAI_USER",
|
|
120
|
+
data: e
|
|
121
|
+
},
|
|
104
122
|
a
|
|
105
|
-
);
|
|
123
|
+
));
|
|
106
124
|
}
|
|
107
125
|
}
|
|
108
|
-
const
|
|
126
|
+
const D = {
|
|
109
127
|
ab: "Abkhazian",
|
|
110
128
|
aa: "Afar",
|
|
111
129
|
af: "Afrikaans",
|
|
@@ -294,25 +312,25 @@ const M = {
|
|
|
294
312
|
za: "Zhuang, Chuang",
|
|
295
313
|
zu: "Zulu"
|
|
296
314
|
};
|
|
297
|
-
class
|
|
315
|
+
class B {
|
|
298
316
|
constructor(a, e, t) {
|
|
299
317
|
u(this, "fallbackLang", "");
|
|
300
318
|
u(this, "currentLang", "");
|
|
301
319
|
u(this, "draftMode", !1);
|
|
302
|
-
this.backend = a, this.chaiUsers = e, this.chaiAssets = t, this._registerDefaultPageTypes(), this.chaiUsers = e ?? new
|
|
320
|
+
this.backend = a, this.chaiUsers = e, this.chaiAssets = t, this._registerDefaultPageTypes(), this.chaiUsers = e ?? new G(this.backend), this.chaiAssets = t ?? new v(this.backend);
|
|
303
321
|
}
|
|
304
322
|
_registerDefaultPageTypes() {
|
|
305
|
-
|
|
323
|
+
y("page", {
|
|
306
324
|
name: "Static Page",
|
|
307
325
|
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>'
|
|
308
|
-
}),
|
|
326
|
+
}), U("global", {
|
|
309
327
|
name: "Global Block",
|
|
310
328
|
helpText: "A global block can be reused in multiple pages.",
|
|
311
329
|
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>'
|
|
312
330
|
});
|
|
313
331
|
}
|
|
314
332
|
setFallbackLang(a) {
|
|
315
|
-
if (
|
|
333
|
+
if (w(a))
|
|
316
334
|
throw new Error("Fallback language cannot be empty");
|
|
317
335
|
this.fallbackLang = a;
|
|
318
336
|
}
|
|
@@ -320,7 +338,7 @@ class K {
|
|
|
320
338
|
return this.fallbackLang;
|
|
321
339
|
}
|
|
322
340
|
setCurrentLang(a) {
|
|
323
|
-
if (
|
|
341
|
+
if (w(a))
|
|
324
342
|
throw new Error("Current language cannot be empty");
|
|
325
343
|
this.currentLang = a;
|
|
326
344
|
}
|
|
@@ -334,27 +352,24 @@ class K {
|
|
|
334
352
|
return this.draftMode;
|
|
335
353
|
}
|
|
336
354
|
async handle(a, e) {
|
|
337
|
-
var n,
|
|
355
|
+
var n, s, o, c, l, k, m, E, S, f;
|
|
338
356
|
switch (a.action) {
|
|
339
357
|
// Media
|
|
340
|
-
case "
|
|
358
|
+
case "UPLOAD_ASSET":
|
|
341
359
|
return (n = this.chaiAssets) == null ? void 0 : n.upload({
|
|
342
360
|
file: a.data.file,
|
|
343
|
-
name: a.data.name
|
|
361
|
+
name: a.data.name,
|
|
362
|
+
folderId: a.data.folderId ?? null
|
|
344
363
|
});
|
|
345
364
|
case "GET_ASSETS":
|
|
346
|
-
return (
|
|
365
|
+
return (s = this.chaiAssets) == null ? void 0 : s.getAssets(a.data);
|
|
347
366
|
case "DELETE_ASSET":
|
|
348
367
|
return (o = this.chaiAssets) == null ? void 0 : o.deleteAsset(a.data.assetId);
|
|
349
|
-
case "
|
|
350
|
-
return (c = this.chaiAssets) == null ? void 0 : c.
|
|
351
|
-
case "UPDATE_ASSET_FILE":
|
|
352
|
-
return (h = this.chaiAssets) == null ? void 0 : h.updateAssetFile(
|
|
353
|
-
a.data
|
|
354
|
-
);
|
|
368
|
+
case "UPDATE_ASSET":
|
|
369
|
+
return (c = this.chaiAssets) == null ? void 0 : c.updateAsset(a.data);
|
|
355
370
|
// Users
|
|
356
371
|
case "REFRESH_TOKEN":
|
|
357
|
-
return (
|
|
372
|
+
return (l = this.chaiUsers) == null ? void 0 : l.refreshToken(
|
|
358
373
|
a.data
|
|
359
374
|
);
|
|
360
375
|
case "LOGIN":
|
|
@@ -364,21 +379,21 @@ class K {
|
|
|
364
379
|
case "LOGOUT":
|
|
365
380
|
return (m = this.chaiUsers) == null ? void 0 : m.logout();
|
|
366
381
|
case "CHECK_USER_STATUS":
|
|
367
|
-
return (
|
|
382
|
+
return (E = this.chaiUsers) == null ? void 0 : E.isUserActive(e);
|
|
368
383
|
case "GET_ROLE_AND_PERMISSIONS":
|
|
369
|
-
return (
|
|
384
|
+
return (S = this.chaiUsers) == null ? void 0 : S.getUserRoleAndPermissions(e);
|
|
370
385
|
case "GET_CHAI_USER":
|
|
371
|
-
return (
|
|
386
|
+
return (f = this.chaiUsers) == null ? void 0 : f.getUserInfo(
|
|
372
387
|
e,
|
|
373
388
|
a.data
|
|
374
389
|
);
|
|
375
390
|
}
|
|
376
391
|
if (a.action === "GET_BUILDER_PAGE_DATA") {
|
|
377
|
-
const
|
|
392
|
+
const r = await p({
|
|
378
393
|
lang: a.data.lang,
|
|
379
394
|
draft: !0,
|
|
380
395
|
inBuilder: !0
|
|
381
|
-
}), d =
|
|
396
|
+
}), d = h(
|
|
382
397
|
a.data.pageType
|
|
383
398
|
);
|
|
384
399
|
return d ? {
|
|
@@ -388,40 +403,40 @@ class K {
|
|
|
388
403
|
inBuilder: !0,
|
|
389
404
|
pageProps: a.data.pageProps ?? {}
|
|
390
405
|
}) : {},
|
|
391
|
-
global:
|
|
392
|
-
} : { global:
|
|
406
|
+
global: r
|
|
407
|
+
} : { global: r };
|
|
393
408
|
}
|
|
394
409
|
if (a.action === "GET_PAGE_TYPES")
|
|
395
410
|
return Promise.all(
|
|
396
|
-
|
|
397
|
-
key:
|
|
398
|
-
helpText:
|
|
399
|
-
icon:
|
|
400
|
-
dynamicSegments:
|
|
401
|
-
dynamicSlug:
|
|
402
|
-
hasSlug:
|
|
403
|
-
name: typeof
|
|
411
|
+
b().map(async (r) => ({
|
|
412
|
+
key: r.key,
|
|
413
|
+
helpText: r.helpText ?? "",
|
|
414
|
+
icon: r.icon ?? "",
|
|
415
|
+
dynamicSegments: r.dynamicSegments ?? "",
|
|
416
|
+
dynamicSlug: r.dynamicSlug ?? "",
|
|
417
|
+
hasSlug: r.hasSlug ?? !0,
|
|
418
|
+
name: typeof r.name == "function" ? await r.name() : r.name
|
|
404
419
|
}))
|
|
405
420
|
);
|
|
406
421
|
if (a.action === "SEARCH_PAGE_TYPE_ITEMS") {
|
|
407
|
-
const
|
|
422
|
+
const r = h(
|
|
408
423
|
a.data.pageType
|
|
409
424
|
);
|
|
410
|
-
return
|
|
425
|
+
return r ? r.search ? await r.search(a.data.query) : this.backend.handleAction(a, e) : { error: "Page type not found" };
|
|
411
426
|
}
|
|
412
427
|
const t = await this.backend.handleAction(a, e);
|
|
413
428
|
return this.emit(a.action, t), t;
|
|
414
429
|
}
|
|
415
430
|
emit(a, e) {
|
|
416
|
-
var
|
|
431
|
+
var s, o, c;
|
|
417
432
|
if (!["CREATE_PAGE", "UPDATE_PAGE", "DELETE_PAGE"].includes(a)) return;
|
|
418
433
|
const t = L(e, "page");
|
|
419
434
|
if (!t) return;
|
|
420
|
-
const n =
|
|
435
|
+
const n = h(t.pageType);
|
|
421
436
|
if (n)
|
|
422
437
|
switch (a) {
|
|
423
438
|
case "CREATE_PAGE":
|
|
424
|
-
return (
|
|
439
|
+
return (s = n.onCreate) == null ? void 0 : s.call(n, t);
|
|
425
440
|
case "UPDATE_PAGE":
|
|
426
441
|
return (o = n.onUpdate) == null ? void 0 : o.call(n, t);
|
|
427
442
|
case "DELETE_PAGE":
|
|
@@ -434,27 +449,27 @@ class K {
|
|
|
434
449
|
throw new Error(
|
|
435
450
|
"Please set a fallback language using setFallbackLang(lang: string)"
|
|
436
451
|
);
|
|
437
|
-
const e =
|
|
438
|
-
Object.keys(
|
|
452
|
+
const e = _(a || [""]);
|
|
453
|
+
Object.keys(D).includes(e) ? this.setCurrentLang(e) : this.setCurrentLang(this.getFallbackLang());
|
|
439
454
|
}
|
|
440
455
|
async resolveLink(a, e) {
|
|
441
|
-
const t =
|
|
456
|
+
const t = h(a);
|
|
442
457
|
if (!t)
|
|
443
458
|
return "/not-found";
|
|
444
|
-
const n = this.isDraftMode(),
|
|
445
|
-
return t.resolveLink ? await t.resolveLink(e, n,
|
|
459
|
+
const n = this.isDraftMode(), s = this.getCurrentLang() === this.getFallbackLang() ? "" : this.getCurrentLang();
|
|
460
|
+
return t.resolveLink ? await t.resolveLink(e, n, s) : await this.backend.handleAction({
|
|
446
461
|
action: "GET_LINK",
|
|
447
462
|
data: {
|
|
448
463
|
pageType: a,
|
|
449
464
|
id: e,
|
|
450
465
|
draft: n,
|
|
451
|
-
lang:
|
|
466
|
+
lang: s
|
|
452
467
|
}
|
|
453
468
|
});
|
|
454
469
|
}
|
|
455
470
|
async getPageBySlug(a) {
|
|
456
471
|
const e = this.isDraftMode(), t = {};
|
|
457
|
-
return
|
|
472
|
+
return b().forEach((n) => {
|
|
458
473
|
A(n, "dynamicSegments") && n.dynamicSegments && (t[n.key] = n.dynamicSegments);
|
|
459
474
|
}), await this.backend.handleAction({
|
|
460
475
|
action: "GET_PAGE_META",
|
|
@@ -481,24 +496,24 @@ class K {
|
|
|
481
496
|
});
|
|
482
497
|
}
|
|
483
498
|
async getPageData(a, e = {}) {
|
|
484
|
-
var
|
|
485
|
-
const t = this.isDraftMode(), n = this.getCurrentLang(),
|
|
499
|
+
var l;
|
|
500
|
+
const t = this.isDraftMode(), n = this.getCurrentLang(), s = h(a), [o, c] = await Promise.all([
|
|
486
501
|
this.getGlobalData(),
|
|
487
|
-
((
|
|
502
|
+
((l = s == null ? void 0 : s.dataProvider) == null ? void 0 : l.call(s, {
|
|
488
503
|
lang: n,
|
|
489
504
|
draft: t,
|
|
490
505
|
inBuilder: !1,
|
|
491
506
|
pageProps: e
|
|
492
507
|
})) || Promise.resolve({})
|
|
493
508
|
]);
|
|
494
|
-
return
|
|
509
|
+
return s ? {
|
|
495
510
|
...c,
|
|
496
511
|
global: o
|
|
497
512
|
} : { global: o };
|
|
498
513
|
}
|
|
499
514
|
async getGlobalData() {
|
|
500
515
|
const a = this.getCurrentLang();
|
|
501
|
-
return await
|
|
516
|
+
return await p({
|
|
502
517
|
lang: a,
|
|
503
518
|
draft: this.isDraftMode(),
|
|
504
519
|
inBuilder: !1
|
|
@@ -508,8 +523,8 @@ class K {
|
|
|
508
523
|
return await this.backend.handleAction(a);
|
|
509
524
|
}
|
|
510
525
|
}
|
|
511
|
-
class
|
|
512
|
-
constructor(a = "", e =
|
|
526
|
+
class K {
|
|
527
|
+
constructor(a = "", e = M) {
|
|
513
528
|
this.apiKey = a, this.apiUrl = e;
|
|
514
529
|
}
|
|
515
530
|
async handleUsersAction(a, e) {
|
|
@@ -546,17 +561,17 @@ class N {
|
|
|
546
561
|
})).json();
|
|
547
562
|
}
|
|
548
563
|
}
|
|
549
|
-
const
|
|
564
|
+
const M = "https://api.chaibuilder.com";
|
|
550
565
|
export {
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
566
|
+
M as API_URL,
|
|
567
|
+
B as ChaiBuilderPages,
|
|
568
|
+
K as ChaiBuilderPagesBackend,
|
|
569
|
+
G as ChaiBuilderPagesUserManagement,
|
|
570
|
+
D as LANGUAGES,
|
|
571
|
+
p as getChaiGlobalData,
|
|
572
|
+
h as getChaiPageType,
|
|
573
|
+
b as getChaiPageTypes,
|
|
574
|
+
H as registerChaiGlobalDataProvider,
|
|
575
|
+
y as registerChaiPageType,
|
|
576
|
+
U as registerChaiPartialType
|
|
562
577
|
};
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"author": "Suraj Air",
|
|
4
4
|
"license": "Private",
|
|
5
5
|
"homepage": "https://chaibuilder.com",
|
|
6
|
-
"version": "0.4.
|
|
6
|
+
"version": "0.4.6-beta.2",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"files": [
|
|
9
9
|
"dist"
|
|
@@ -59,8 +59,8 @@
|
|
|
59
59
|
"test": "vitest"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"@chaibuilder/sdk": "2.2.5",
|
|
63
62
|
"@chaibuilder/runtime": "2.1.2",
|
|
63
|
+
"@chaibuilder/sdk": "2.2.5",
|
|
64
64
|
"@types/react": "*",
|
|
65
65
|
"@types/react-dom": "*",
|
|
66
66
|
"react": "^18.0 || ^19.0",
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"@tailwindcss/typography": "^0.5.16",
|
|
87
87
|
"@tanstack/react-query": "^5.64.2",
|
|
88
88
|
"@types/express-fileupload": "^1.5.1",
|
|
89
|
+
"canvas": "^3.1.0",
|
|
89
90
|
"canvas-confetti": "^1.9.3",
|
|
90
91
|
"cssnano": "^7.0.6",
|
|
91
92
|
"date-fns": "^4.1.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("react"),W=require("react-dropzone"),g=require("lucide-react"),i=require("@chaibuilder/sdk/ui"),z=require("lodash-es"),D=require("@chaibuilder/sdk"),x=require("@tanstack/react-query"),c=require("./index-BH25LDvP.cjs"),j=require("sonner"),X=(t={})=>{c.useApiUrl(),c.useFetch();const{search:n,page:o=1,limit:l=10}=t;return x.useQuery({queryKey:[c.ACTIONS.GET_ASSETS,{search:n,page:o,limit:l}],queryFn:async()=>{const u=localStorage.getItem("assets")||"[]";return JSON.parse(u)},retry:1})},Z=()=>{c.useApiUrl();const t=x.useQueryClient();return c.useFetch(),x.useMutation({mutationFn:async n=>{const o=localStorage.getItem("assets")||"[]";return localStorage.setItem("assets",JSON.stringify([...JSON.parse(o)||[],{id:Math.random().toString(36).substring(2,15),name:"123",url:n,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),type:"image",size:Math.random()*1e3}])),!0},onSuccess:()=>{t.invalidateQueries({queryKey:[c.ACTIONS.GET_ASSETS]}),j.toast.success("Asset uploaded successfully")},onError:()=>{j.toast.error("Failed to upload asset")}})},$=()=>{c.useApiUrl();const t=x.useQueryClient();return c.useFetch(),x.useMutation({mutationFn:async n=>{const o=localStorage.getItem("assets")||"[]";return localStorage.setItem("assets",JSON.stringify((JSON.parse(o)||[]).filter(l=>l.id!==n))),!0},onSuccess:()=>{t.invalidateQueries({queryKey:[c.ACTIONS.GET_ASSETS]}),j.toast.success("Asset deleted successfully")},onError:()=>{j.toast.error("Failed to delete asset")}})},ee=()=>{c.useApiUrl();const t=x.useQueryClient();return c.useFetch(),x.useMutation({mutationFn:async n=>{const o=localStorage.getItem("assets")||"[]";return localStorage.setItem("assets",JSON.stringify((JSON.parse(o)||[]).map(l=>l.id===n.id?{...l,url:n.file}:l))),!0},onSuccess:()=>{t.invalidateQueries({queryKey:[c.ACTIONS.GET_ASSETS]}),j.toast.success("Asset updated successfully")},onError:()=>{j.toast.error("Failed to update asset")}})};function se(){const[n,o]=r.useState([]),[l,u]=r.useState({query:"",page:1,pageSize:10}),y=z.debounce(()=>l.query,300)(),{data:p,isLoading:v}=X({search:(y==null?void 0:y.toLowerCase().trim())||"",page:l.page,limit:l.pageSize}),{mutate:w,isPaused:h}=ee(),{mutate:S,isPending:E}=Z(),{mutate:f,isPending:m}=$(),N=r.useCallback(()=>{u(d=>({...d,page:d.page+1}))},[]),A=r.useCallback(d=>{u(b=>({...b,query:d}))},[]),F=r.useCallback(d=>{o(b=>z.find(b,{id:d.id})?[]:[d])},[!1]),C=r.useCallback(()=>{o([])},[]);return{query:(l==null?void 0:l.query)||"",selectedAssets:n,assets:p||[],uploadAsset:S,updateAsset:w,deleteAsset:f,loadMoreAssets:N,updateSearchQuery:A,clearSelectedAssets:C,updateSelectedAssets:F,isLoadingAssets:v,isUploadingAsset:E,isUpdatingAsset:h,isDeletingAsset:m}}const te=r.lazy(()=>Promise.resolve().then(()=>require("./asset-metadata-editor-YXDey62L.cjs"))),ae=r.lazy(()=>Promise.resolve().then(()=>require("./image-editor-D8wu5UNM.cjs")));function re({close:t,onSelect:n,mode:o="image"}){const u=r.useMemo(()=>[o],[o]),[y,p]=r.useState("browse"),[v,w]=r.useState(null),[h,S]=r.useState({show:!1,file:""}),{query:E,assets:f,selectedAssets:m,uploadAsset:N,updateAsset:A,deleteAsset:F,loadMoreAssets:C,updateSearchQuery:d,clearSelectedAssets:b,updateSelectedAssets:k,isLoadingAssets:T,isUploadingAsset:O,isUpdatingAsset:B}=se(),U=r.useRef(null);r.useEffect(()=>{const s=U.current;if(!s)return;const a=()=>{s.scrollHeight-s.scrollTop<=s.clientHeight*1.5&&!T&&C()};return s.addEventListener("scroll",a),()=>s.removeEventListener("scroll",a)},[T,C]);const P=r.useCallback(async s=>new Promise((a,M)=>{const Y=s[0],q=new FileReader;q.readAsDataURL(Y),q.onload=async()=>{const I=await N(q.result);p("browse"),a(I)},q.onerror=I=>M(I)}),[N]),{getRootProps:L,getInputProps:Q,isDragActive:R}=W.useDropzone({onDrop:P,accept:{"image/*":u.includes("image")?[]:[],"video/*":u.includes("video")?[]:[]},maxSize:10*1024*1024}),J=()=>{n([m[0].url]),t()},G=async s=>{await F(s.id)},K=s=>{w(s)},_=async(s,a)=>{await A(z.merge(s,a)),t()},H=s=>{d(s.target.value)},V=async(s,a)=>{try{a?await N(s):await A({id:h.id,file:s}),S({show:!1,file:""}),p("browse")}catch(M){console.error("Error saving edited image:",M)}};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"min-w-[700px] min-h-[600px] w-[900px] max-w-[900px]",children:[e.jsx("h1",{className:"text-lg font-medium pb-4",children:"Digital Asset Manager"}),e.jsxs(i.Tabs,{value:y,onValueChange:s=>p(s),className:"flex-1 flex flex-col h-full",children:[e.jsxs("div",{className:"flex justify-between items-center mb-2",children:[e.jsxs(i.TabsList,{children:[e.jsx(i.TabsTrigger,{value:"browse",children:"Browse Assets"}),e.jsx(i.TabsTrigger,{value:"upload",children:"Upload"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[m.length>0&&e.jsx(e.Fragment,{children:e.jsx(i.Button,{variant:"outline",size:"sm",onClick:()=>b(),title:"Clear selection",children:"Clear"})}),e.jsx(i.Button,{size:"sm",onClick:J,disabled:m.length===0,children:"Select Asset"})]})]}),e.jsxs(i.TabsContent,{value:"browse",className:"flex-1 flex flex-col",children:[e.jsx("div",{className:"flex items-center gap-2 mb-2",children:e.jsxs("div",{className:"relative w-full",children:[e.jsx(g.Search,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(i.Input,{placeholder:"Search assets...",value:E,onChange:H,className:"pl-8"})]})}),T&&f.length===0?e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-2 overflow-y-auto max-h-[550px] p-1",children:[e.jsx("div",{className:"bg-gray-200 h-64 w-full animate-pulse rounded"}),e.jsx("div",{className:"bg-gray-200 h-64 w-full animate-pulse rounded"}),e.jsx("div",{className:"bg-gray-200 h-64 w-full animate-pulse rounded"}),e.jsx("div",{className:"bg-gray-200 h-64 w-full animate-pulse rounded"}),e.jsx("div",{className:"bg-gray-200 h-64 w-full animate-pulse rounded"}),e.jsx("div",{className:"bg-gray-200 h-64 w-full animate-pulse rounded"}),e.jsx("div",{className:"bg-gray-200 h-64 w-full animate-pulse rounded"}),e.jsx("div",{className:"bg-gray-200 h-64 w-full animate-pulse rounded"}),e.jsx("div",{className:"bg-gray-200 h-64 w-full animate-pulse rounded"}),e.jsx("div",{className:"bg-gray-200 h-64 w-full animate-pulse rounded"})]}):f.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center p-12 h-[380px]",children:[e.jsxs("div",{className:"text-muted-foreground mb-2",children:[e.jsx("h3",{className:"text-gray-800 font-medium",children:"No assets to display"}),e.jsx("p",{className:"text-sm",children:"You haven't uploaded any assets yet. Start by uploading your first asset."})]}),e.jsx("div",{className:"flex gap-2 pt-4",children:e.jsx(i.Button,{size:"lg",onClick:()=>p("upload"),children:"Upload Assets"})})]}):e.jsxs("div",{ref:U,className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-2 overflow-y-auto max-h-[550px] p-1",children:[f.map(s=>e.jsx(i.Card,{className:D.mergeClasses("cursor-pointer overflow-hidden transition-all",m.some(a=>a.id===s.id)?"ring-2 ring-primary":"hover:ring-2 hover:ring-primary/20"),onClick:()=>k(s),children:e.jsxs(i.CardContent,{className:"p-0 relative group",children:[e.jsxs("div",{className:"aspect-square relative overflow-hidden bg-muted",children:[s.type==="image"?e.jsx("img",{src:s.url||"/placeholder.svg",alt:s.name,className:"object-cover w-full h-full"}):e.jsxs("div",{className:"flex items-center justify-center h-full",children:[e.jsx(g.Film,{className:"h-12 w-12 text-muted-foreground"}),s.thumbnailUrl&&e.jsx("img",{src:s.thumbnailUrl||"/placeholder.svg",alt:s.name,className:"absolute inset-0 object-cover w-full h-full"})]}),e.jsxs("div",{className:"absolute inset-0 bg-black/50 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center gap-2",children:[e.jsx(i.Button,{variant:"secondary",size:"icon",className:"h-8 w-8",onClick:a=>{a.stopPropagation(),K(s)},children:e.jsx(g.ImageIcon,{className:"h-4 w-4"})}),e.jsx(i.Button,{variant:"secondary",size:"icon",className:"h-8 w-8",onClick:a=>{a.stopPropagation(),S({id:s.id,show:!0,file:s.url,name:s.name})},children:e.jsx(g.Edit,{className:"h-4 w-4"})}),e.jsx(i.Button,{variant:"destructive",size:"icon",className:"h-8 w-8",onClick:a=>{a.stopPropagation(),G(s)},children:e.jsx(g.Trash2,{className:"h-4 w-4"})})]}),m.some(a=>a.id===s.id)&&e.jsx("div",{className:"absolute top-2 left-2",children:e.jsx("input",{type:"checkbox",checked:m.some(a=>a.id===s.id),readOnly:!0,className:"rounded-full"})})]}),e.jsxs("div",{className:"p-2",children:[e.jsx("div",{className:"text-sm font-medium truncate",title:s.name,children:s.name}),e.jsxs("div",{className:"text-xs text-muted-foreground flex items-center justify-between",children:[e.jsx("span",{children:le((s==null?void 0:s.size)||0)}),e.jsx("span",{children:ie(s.createdAt)})]})]})]})},s.id)),T&&f.length>0&&e.jsx("div",{className:"col-span-full flex justify-center py-4",children:e.jsx(g.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})})]})]}),e.jsx(i.TabsContent,{value:"upload",className:"flex-1 ",children:e.jsxs("div",{...L(),className:D.mergeClasses("border-2 border-dashed rounded-lg h-[380px] flex flex-col items-center justify-center text-center cursor-pointer hover:bg-gray-50",R?"border-primary bg-primary/5":"border-muted-foreground/20"),children:[e.jsx("input",{...Q()}),B||O?e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx(g.Loader2,{className:"h-12 w-12 text-primary animate-spin mb-4"}),e.jsx("h3",{className:"text-lg font-medium mb-1",children:"Uploading files..."}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Please wait while your files are being processed."})]}):e.jsxs(e.Fragment,{children:[e.jsx(g.Upload,{className:"h-12 w-12 text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-medium mb-1",children:"Drag & drop files here"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"or click to browse your files"}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[e.jsxs("p",{children:["Accepted file types: ",u.join(", ")]}),e.jsxs("p",{children:["Maximum file size: ",10,"MB"]})]})]})]})})]})]}),v&&e.jsx(r.Suspense,{fallback:e.jsx("div",{children:"Loading..."}),children:e.jsx(te,{asset:v,onSave:s=>_(v,s),onCancel:()=>{w(null)}})}),h.show&&e.jsx(r.Suspense,{fallback:e.jsx("div",{children:"Loading..."}),children:e.jsx(ae,{imageUrl:h.file,onSave:V,onClose:()=>S({show:!1,file:""}),defaultSavedImageName:h.name,isEditing:!!h.id})})]})}function le(t){return t<1024?t+" B":t<1024*1024?(t/1024).toFixed(1)+" KB":t<1024*1024*1024?(t/(1024*1024)).toFixed(1)+" MB":(t/(1024*1024*1024)).toFixed(1)+" GB"}function ie(t){const n=new Date(t);return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"}).format(n)}exports.default=re;
|