@chaibuilder/pages 0.4.8 → 0.4.9
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-BZLbrbU9.js → B4MFY5CR-C-y1qMcz.js} +1 -1
- package/dist/{B4MFY5CR-CrFfLRY2.cjs → B4MFY5CR-CZIhZc_v.cjs} +1 -1
- package/dist/{HO4MOOFI-DgTndXY6.js → HO4MOOFI-D1WZ0Hg3.js} +2 -2
- package/dist/{HO4MOOFI-CpUW02ii.cjs → HO4MOOFI-iH74XHta.cjs} +1 -1
- package/dist/{HUY7CZI3-COZlEkVr.cjs → HUY7CZI3-Bf9J-1mq.cjs} +1 -1
- package/dist/{HUY7CZI3-B-83eNUU.js → HUY7CZI3-DABOTt0o.js} +2 -2
- package/dist/{asset-metadata-editor-r5vYHUfm.js → asset-metadata-editor-CyTBhS-V.js} +9 -9
- package/dist/{asset-metadata-editor-zw9u1BB9.cjs → asset-metadata-editor-IRTgc3or.cjs} +1 -1
- package/dist/digital-asset-manager-CI-fxUjE.cjs +1 -0
- package/dist/{digital-asset-manager-cGBJUg2A.js → digital-asset-manager-ty2MhSyj.js} +188 -176
- package/dist/{image-editor-CwVua57o.js → image-editor-By8RDHso.js} +20 -20
- package/dist/{image-editor-D8wu5UNM.cjs → image-editor-DHmv5L8S.cjs} +1 -1
- package/dist/{index-CCLkatX6.js → index-B9yYtFHS.js} +3 -3
- package/dist/{index-B3cE059x.cjs → index-D6MzyrPC.cjs} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/server.cjs +1 -1
- package/dist/server.d.ts +6 -4
- package/dist/server.js +108 -90
- package/package.json +3 -3
- package/dist/digital-asset-manager-DZTV3jDX.cjs +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index-D6MzyrPC.cjs"),t=require("@chaibuilder/sdk");exports.PermissionChecker=e.PermissionChecker;exports.default=e.ChaiBuilderPages;exports.registerChaiLoginComponent=e.registerLoginComponent;exports.useChaiUserInfo=e.useChaiUserInfo;exports.useCurrentPage=e.useCurrentPage;exports.useFetch=e.useFetch;exports.useFetchUpload=e.useFetchUpload;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]})});
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a0 as a, _ as r, a1 as t, a8 as i, a2 as o, X as u, a7 as n, a3 as g, a6 as h, a4 as m, a5 as C } from "./index-
|
|
1
|
+
import { a0 as a, _ as r, a1 as t, a8 as i, a2 as o, X as u, a7 as n, a3 as g, a6 as h, a4 as m, a5 as C } from "./index-B9yYtFHS.js";
|
|
2
2
|
export * from "@chaibuilder/sdk";
|
|
3
3
|
export {
|
|
4
4
|
a as PermissionChecker,
|
package/dist/server.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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,m=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 s,o;return await((o=(s=this.backend).handleAssetsAction)==null?void 0:o.call(s,{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 n,s;return(s=(n=this.backend).handleAssetsAction)==null?void 0:s.call(n,{action:"UPDATE_ASSET",data:{id:a,file:e,description:t}})}}class C{constructor(a){this.backend=a}async refreshToken(a){var t,n;const e=await((n=(t=this.backend).handleUsersAction)==null?void 0:n.call(t,{action:"REFRESH_TOKEN",data:a}));return e.error?{error:e.error}:e}async login({email:a,password:e}){var n,s;const t=await((s=(n=this.backend).handleUsersAction)==null?void 0:s.call(n,{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,n;return(await((n=(t=this.backend).handleUsersAction)==null?void 0:n.call(t,{action:"CHECK_USER_STATUS"},a))).success}async getUserRoleAndPermissions(a){var t,n;return await((n=(t=this.backend).handleUsersAction)==null?void 0:n.call(t,{action:"GET_ROLE_AND_PERMISSIONS"},a))}async getUserInfo(a,e){var n,s;return await((s=(n=this.backend).handleUsersAction)==null?void 0:s.call(n,{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 n,s,o,c,u,E,S,f,b,w;switch(a.action){case"UPLOAD_ASSET":return(n=this.chaiAssets)==null?void 0:n.upload({file:a.data.file,name:a.data.name,folderId:a.data.folderId??null});case"GET_ASSETS":return(s=this.chaiAssets)==null?void 0:s.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(E=this.chaiUsers)==null?void 0:E.login(a.data);case"LOGOUT":return(S=this.chaiUsers)==null?void 0:S.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 m({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 s,o,c;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const t=l.get(e,"page");if(!t)return;const n=h(t.pageType);if(n)switch(a){case"CREATE_PAGE":return(s=n.onCreate)==null?void 0:s.call(n,t);case"UPDATE_PAGE":return(o=n.onUpdate)==null?void 0:o.call(n,t);case"DELETE_PAGE":return(c=n.onDelete)==null?void 0:c.call(n,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 n=this.isDraftMode(),s=this.getCurrentLang()===this.getFallbackLang()?"":this.getCurrentLang();return t.resolveLink?await t.resolveLink(e,n,s):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:e,draft:n,lang:s}})}async getPageBySlug(a){const e=this.isDraftMode(),t={};return k().forEach(n=>{l.has(n,"dynamicSegments")&&n.dynamicSegments&&(t[n.key]=n.dynamicSegments)}),await this.backend.handleAction({action:"GET_PAGE_META",data:{slug:a,draft:e,dynamicSegments:t}})}async getFullPage(a){const e=this.isDraftMode(),t=this.getCurrentLang(),n=this.getFallbackLang();return await this.backend.handleAction({action:"GET_PAGE",data:{id:a,lang:n===t?void 0:t,draft:e,mergePartials:!0}})}async getSiteSettings(){const a=this.isDraftMode();return await this.backend.handleAction({action:"GET_WEBSITE_SETTINGS",data:{draft:a}})}async getPageData(a,e={}){var u;const t=this.isDraftMode(),n=this.getCurrentLang(),s=h(a),[o,c]=await Promise.all([this.getGlobalData(),((u=s==null?void 0:s.dataProvider)==null?void 0:u.call(s,{lang:n,draft:t,inBuilder:!1,pageProps:e}))||Promise.resolve({})]);return s?{...c,global:o}:{global:o}}async getGlobalData(){const a=this.getCurrentLang();return await m({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}}),n=await t.json();return l.has(n,"error")?{...n,status:t.status}:n}async handleAction(a,e){const t=await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey,"x-chai-auth-token":e}}),n=await t.json();return l.has(n,"error")?{...n,status:t.status}:n}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=m;exports.getChaiPageType=h;exports.getChaiPageTypes=k;exports.registerChaiGlobalDataProvider=G;exports.registerChaiPageType=P;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 C=async i=>({...i});const G=i=>C=i,m=async i=>{try{return await C(i)}catch(a){return console.error(a),{}}};class v{constructor(a){this.backend=a}async upload({file:a,folderId:e,name:s},t){var o,c;return await((c=(o=this.backend).handleAssetsAction)==null?void 0:c.call(o,{action:"UPLOAD_ASSET",data:{name:s,file:a,folderId:e}},t))}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(a,e){var s,t;return(t=(s=this.backend).handleAssetsAction)==null?void 0:t.call(s,{action:"DELETE_ASSET",data:{assetId:a}},e)}async updateAsset({id:a,file:e,description:s},t){var n,o;return(o=(n=this.backend).handleAssetsAction)==null?void 0:o.call(n,{action:"UPDATE_ASSET",data:{id:a,file:e,description:s}},t)}}class T{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,n;const s=await((n=(t=this.backend).handleUsersAction)==null?void 0:n.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,n;return await((n=(t=this.backend).handleUsersAction)==null?void 0:n.call(t,{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,s){g(this,"fallbackLang","");g(this,"currentLang","");g(this,"draftMode",!1);this.backend=a,this.chaiUsers=e,this.chaiAssets=s,this._registerDefaultPageTypes(),this.chaiUsers=e??new T(this.backend),this.chaiAssets=s??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 t,n,o,c,u,E,S,f,b,w;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},e);case"GET_ASSETS":return(n=this.chaiAssets)==null?void 0:n.getAssets(a.data,e);case"DELETE_ASSET":return(o=this.chaiAssets)==null?void 0:o.deleteAsset(a.data.id,e);case"UPDATE_ASSET":return(c=this.chaiAssets)==null?void 0:c.updateAsset(a.data,e);case"REFRESH_TOKEN":return(u=this.chaiUsers)==null?void 0:u.refreshToken(a.data);case"LOGIN":return(E=this.chaiUsers)==null?void 0:E.login(a.data);case"LOGOUT":return(S=this.chaiUsers)==null?void 0:S.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 m({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 s=await this.backend.handleAction(a,e);return this.emit(a.action,s),s}emit(a,e){var n,o,c;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const s=l.get(e,"page");if(!s)return;const t=h(s.pageType);if(t)switch(a){case"CREATE_PAGE":return(n=t.onCreate)==null?void 0:n.call(t,s);case"UPDATE_PAGE":return(o=t.onUpdate)==null?void 0:o.call(t,s);case"DELETE_PAGE":return(c=t.onDelete)==null?void 0:c.call(t,s)}}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 s=h(a);if(!s)return"/not-found";const t=this.isDraftMode(),n=this.getCurrentLang()===this.getFallbackLang()?"":this.getCurrentLang();return s.resolveLink?await s.resolveLink(e,t,n):await this.backend.handleAction({action:"GET_LINK",data:{pageType:a,id:e,draft:t,lang:n}})}async getPageBySlug(a){const e=this.isDraftMode(),s={};return k().forEach(t=>{l.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={}){var u;const s=this.isDraftMode(),t=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:t,draft:s,inBuilder:!1,pageProps:e}))||Promise.resolve({})]);return n?{...c,global:o}:{global:o}}async getGlobalData(){const a=this.getCurrentLang();return await m({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 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 l.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 l.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 L="https://api.chaibuilder.com";exports.API_URL=L;exports.ChaiBuilderPages=D;exports.ChaiBuilderPagesBackend=M;exports.ChaiBuilderPagesUserManagement=T;exports.LANGUAGES=y;exports.getChaiGlobalData=m;exports.getChaiPageType=h;exports.getChaiPageTypes=k;exports.registerChaiGlobalDataProvider=G;exports.registerChaiPageType=P;exports.registerChaiPartialType=p;
|
package/dist/server.d.ts
CHANGED
|
@@ -71,16 +71,18 @@ export declare interface ChaiBuilderPagesAssetsInterface {
|
|
|
71
71
|
name: string;
|
|
72
72
|
file: Base64URLString;
|
|
73
73
|
folderId?: string | null;
|
|
74
|
-
}): Promise<ChaiAsset | {
|
|
74
|
+
}, authToken: string): Promise<ChaiAsset | {
|
|
75
75
|
error: string;
|
|
76
76
|
}>;
|
|
77
|
-
getAssets(params: AssetsParams): Promise<{
|
|
77
|
+
getAssets(params: AssetsParams, authToken: string): Promise<{
|
|
78
78
|
assets: Partial<ChaiAsset>[];
|
|
79
79
|
total: number;
|
|
80
|
+
page: number;
|
|
81
|
+
pageSize: number;
|
|
80
82
|
} | {
|
|
81
83
|
error: string;
|
|
82
84
|
}>;
|
|
83
|
-
deleteAsset(assetId: string): Promise<{
|
|
85
|
+
deleteAsset(assetId: string, authToken: string): Promise<{
|
|
84
86
|
success: boolean;
|
|
85
87
|
} | {
|
|
86
88
|
error: string;
|
|
@@ -89,7 +91,7 @@ export declare interface ChaiBuilderPagesAssetsInterface {
|
|
|
89
91
|
id: string;
|
|
90
92
|
file?: Base64URLString;
|
|
91
93
|
description?: string;
|
|
92
|
-
}): Promise<ChaiAsset | {
|
|
94
|
+
}, authToken: string): Promise<ChaiAsset | {
|
|
93
95
|
error: string;
|
|
94
96
|
}>;
|
|
95
97
|
}
|
package/dist/server.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var u = (i, a, e) =>
|
|
1
|
+
var C = Object.defineProperty;
|
|
2
|
+
var T = (i, a, e) => a in i ? C(i, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[a] = e;
|
|
3
|
+
var u = (i, a, e) => T(i, typeof a != "symbol" ? a + "" : a, e);
|
|
4
4
|
import { isEmpty as w, get as L, first as _, has as A } from "lodash-es";
|
|
5
5
|
const g = {}, y = (i, a) => {
|
|
6
6
|
g[i] = { key: i, ...a, hasSlug: !0 };
|
|
@@ -24,42 +24,58 @@ class v {
|
|
|
24
24
|
async upload({
|
|
25
25
|
file: a,
|
|
26
26
|
folderId: e,
|
|
27
|
-
name:
|
|
28
|
-
}) {
|
|
29
|
-
var
|
|
30
|
-
return await ((
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
name: n
|
|
28
|
+
}, t) {
|
|
29
|
+
var o, c;
|
|
30
|
+
return await ((c = (o = this.backend).handleAssetsAction) == null ? void 0 : c.call(
|
|
31
|
+
o,
|
|
32
|
+
{
|
|
33
|
+
action: "UPLOAD_ASSET",
|
|
34
|
+
data: {
|
|
35
|
+
name: n,
|
|
36
|
+
file: a,
|
|
37
|
+
folderId: e
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
t
|
|
41
|
+
));
|
|
38
42
|
}
|
|
39
|
-
async getAssets(a) {
|
|
40
|
-
var
|
|
41
|
-
return (t = (
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
async getAssets(a, e) {
|
|
44
|
+
var n, t;
|
|
45
|
+
return (t = (n = this.backend).handleAssetsAction) == null ? void 0 : t.call(
|
|
46
|
+
n,
|
|
47
|
+
{
|
|
48
|
+
action: "GET_ASSETS",
|
|
49
|
+
data: a
|
|
50
|
+
},
|
|
51
|
+
e
|
|
52
|
+
);
|
|
45
53
|
}
|
|
46
|
-
async deleteAsset(a) {
|
|
47
|
-
var
|
|
48
|
-
return (t = (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
54
|
+
async deleteAsset(a, e) {
|
|
55
|
+
var n, t;
|
|
56
|
+
return (t = (n = this.backend).handleAssetsAction) == null ? void 0 : t.call(
|
|
57
|
+
n,
|
|
58
|
+
{
|
|
59
|
+
action: "DELETE_ASSET",
|
|
60
|
+
data: { assetId: a }
|
|
61
|
+
},
|
|
62
|
+
e
|
|
63
|
+
);
|
|
52
64
|
}
|
|
53
65
|
async updateAsset({
|
|
54
66
|
id: a,
|
|
55
67
|
file: e,
|
|
56
|
-
description:
|
|
57
|
-
}) {
|
|
58
|
-
var
|
|
59
|
-
return (
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
68
|
+
description: n
|
|
69
|
+
}, t) {
|
|
70
|
+
var s, o;
|
|
71
|
+
return (o = (s = this.backend).handleAssetsAction) == null ? void 0 : o.call(
|
|
72
|
+
s,
|
|
73
|
+
{
|
|
74
|
+
action: "UPDATE_ASSET",
|
|
75
|
+
data: { id: a, file: e, description: n }
|
|
76
|
+
},
|
|
77
|
+
t
|
|
78
|
+
);
|
|
63
79
|
}
|
|
64
80
|
}
|
|
65
81
|
class G {
|
|
@@ -67,8 +83,8 @@ class G {
|
|
|
67
83
|
this.backend = a;
|
|
68
84
|
}
|
|
69
85
|
async refreshToken(a) {
|
|
70
|
-
var
|
|
71
|
-
const e = await ((
|
|
86
|
+
var n, t;
|
|
87
|
+
const e = await ((t = (n = this.backend).handleUsersAction) == null ? void 0 : t.call(n, {
|
|
72
88
|
action: "REFRESH_TOKEN",
|
|
73
89
|
data: a
|
|
74
90
|
}));
|
|
@@ -78,12 +94,12 @@ class G {
|
|
|
78
94
|
email: a,
|
|
79
95
|
password: e
|
|
80
96
|
}) {
|
|
81
|
-
var
|
|
82
|
-
const
|
|
97
|
+
var t, s;
|
|
98
|
+
const n = await ((s = (t = this.backend).handleUsersAction) == null ? void 0 : s.call(t, {
|
|
83
99
|
action: "LOGIN",
|
|
84
100
|
data: { email: a, password: e }
|
|
85
101
|
}));
|
|
86
|
-
return
|
|
102
|
+
return n.error ? { error: n.error } : n;
|
|
87
103
|
}
|
|
88
104
|
async logout() {
|
|
89
105
|
var a, e;
|
|
@@ -92,9 +108,9 @@ class G {
|
|
|
92
108
|
}));
|
|
93
109
|
}
|
|
94
110
|
async isUserActive(a) {
|
|
95
|
-
var
|
|
96
|
-
return (await ((
|
|
97
|
-
|
|
111
|
+
var n, t;
|
|
112
|
+
return (await ((t = (n = this.backend).handleUsersAction) == null ? void 0 : t.call(
|
|
113
|
+
n,
|
|
98
114
|
{
|
|
99
115
|
action: "CHECK_USER_STATUS"
|
|
100
116
|
},
|
|
@@ -102,9 +118,9 @@ class G {
|
|
|
102
118
|
))).success;
|
|
103
119
|
}
|
|
104
120
|
async getUserRoleAndPermissions(a) {
|
|
105
|
-
var
|
|
106
|
-
return await ((
|
|
107
|
-
|
|
121
|
+
var n, t;
|
|
122
|
+
return await ((t = (n = this.backend).handleUsersAction) == null ? void 0 : t.call(
|
|
123
|
+
n,
|
|
108
124
|
{
|
|
109
125
|
action: "GET_ROLE_AND_PERMISSIONS"
|
|
110
126
|
},
|
|
@@ -112,9 +128,9 @@ class G {
|
|
|
112
128
|
));
|
|
113
129
|
}
|
|
114
130
|
async getUserInfo(a, e) {
|
|
115
|
-
var
|
|
116
|
-
return await ((s = (
|
|
117
|
-
|
|
131
|
+
var t, s;
|
|
132
|
+
return await ((s = (t = this.backend).handleUsersAction) == null ? void 0 : s.call(
|
|
133
|
+
t,
|
|
118
134
|
{
|
|
119
135
|
action: "GET_CHAI_USER",
|
|
120
136
|
data: e
|
|
@@ -313,11 +329,11 @@ const D = {
|
|
|
313
329
|
zu: "Zulu"
|
|
314
330
|
};
|
|
315
331
|
class B {
|
|
316
|
-
constructor(a, e,
|
|
332
|
+
constructor(a, e, n) {
|
|
317
333
|
u(this, "fallbackLang", "");
|
|
318
334
|
u(this, "currentLang", "");
|
|
319
335
|
u(this, "draftMode", !1);
|
|
320
|
-
this.backend = a, this.chaiUsers = e, this.chaiAssets =
|
|
336
|
+
this.backend = a, this.chaiUsers = e, this.chaiAssets = n, this._registerDefaultPageTypes(), this.chaiUsers = e ?? new G(this.backend), this.chaiAssets = n ?? new v(this.backend);
|
|
321
337
|
}
|
|
322
338
|
_registerDefaultPageTypes() {
|
|
323
339
|
y("page", {
|
|
@@ -352,32 +368,35 @@ class B {
|
|
|
352
368
|
return this.draftMode;
|
|
353
369
|
}
|
|
354
370
|
async handle(a, e) {
|
|
355
|
-
var
|
|
371
|
+
var t, s, o, c, l, m, k, E, S, f;
|
|
356
372
|
switch (a.action) {
|
|
357
373
|
// Media
|
|
358
374
|
case "UPLOAD_ASSET":
|
|
359
|
-
return (
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
375
|
+
return (t = this.chaiAssets) == null ? void 0 : t.upload(
|
|
376
|
+
{
|
|
377
|
+
file: a.data.file,
|
|
378
|
+
name: a.data.name,
|
|
379
|
+
folderId: a.data.folderId ?? null
|
|
380
|
+
},
|
|
381
|
+
e
|
|
382
|
+
);
|
|
364
383
|
case "GET_ASSETS":
|
|
365
|
-
return (s = this.chaiAssets) == null ? void 0 : s.getAssets(a.data);
|
|
384
|
+
return (s = this.chaiAssets) == null ? void 0 : s.getAssets(a.data, e);
|
|
366
385
|
case "DELETE_ASSET":
|
|
367
|
-
return (o = this.chaiAssets) == null ? void 0 : o.deleteAsset(a.data.
|
|
386
|
+
return (o = this.chaiAssets) == null ? void 0 : o.deleteAsset(a.data.id, e);
|
|
368
387
|
case "UPDATE_ASSET":
|
|
369
|
-
return (c = this.chaiAssets) == null ? void 0 : c.updateAsset(a.data);
|
|
388
|
+
return (c = this.chaiAssets) == null ? void 0 : c.updateAsset(a.data, e);
|
|
370
389
|
// Users
|
|
371
390
|
case "REFRESH_TOKEN":
|
|
372
391
|
return (l = this.chaiUsers) == null ? void 0 : l.refreshToken(
|
|
373
392
|
a.data
|
|
374
393
|
);
|
|
375
394
|
case "LOGIN":
|
|
376
|
-
return (
|
|
395
|
+
return (m = this.chaiUsers) == null ? void 0 : m.login(
|
|
377
396
|
a.data
|
|
378
397
|
);
|
|
379
398
|
case "LOGOUT":
|
|
380
|
-
return (
|
|
399
|
+
return (k = this.chaiUsers) == null ? void 0 : k.logout();
|
|
381
400
|
case "CHECK_USER_STATUS":
|
|
382
401
|
return (E = this.chaiUsers) == null ? void 0 : E.isUserActive(e);
|
|
383
402
|
case "GET_ROLE_AND_PERMISSIONS":
|
|
@@ -424,23 +443,23 @@ class B {
|
|
|
424
443
|
);
|
|
425
444
|
return r ? r.search ? await r.search(a.data.query) : this.backend.handleAction(a, e) : { error: "Page type not found" };
|
|
426
445
|
}
|
|
427
|
-
const
|
|
428
|
-
return this.emit(a.action,
|
|
446
|
+
const n = await this.backend.handleAction(a, e);
|
|
447
|
+
return this.emit(a.action, n), n;
|
|
429
448
|
}
|
|
430
449
|
emit(a, e) {
|
|
431
450
|
var s, o, c;
|
|
432
451
|
if (!["CREATE_PAGE", "UPDATE_PAGE", "DELETE_PAGE"].includes(a)) return;
|
|
433
|
-
const
|
|
434
|
-
if (!
|
|
435
|
-
const
|
|
436
|
-
if (
|
|
452
|
+
const n = L(e, "page");
|
|
453
|
+
if (!n) return;
|
|
454
|
+
const t = h(n.pageType);
|
|
455
|
+
if (t)
|
|
437
456
|
switch (a) {
|
|
438
457
|
case "CREATE_PAGE":
|
|
439
|
-
return (s =
|
|
458
|
+
return (s = t.onCreate) == null ? void 0 : s.call(t, n);
|
|
440
459
|
case "UPDATE_PAGE":
|
|
441
|
-
return (o =
|
|
460
|
+
return (o = t.onUpdate) == null ? void 0 : o.call(t, n);
|
|
442
461
|
case "DELETE_PAGE":
|
|
443
|
-
return (c =
|
|
462
|
+
return (c = t.onDelete) == null ? void 0 : c.call(t, n);
|
|
444
463
|
}
|
|
445
464
|
}
|
|
446
465
|
// APIS
|
|
@@ -453,36 +472,36 @@ class B {
|
|
|
453
472
|
Object.keys(D).includes(e) ? this.setCurrentLang(e) : this.setCurrentLang(this.getFallbackLang());
|
|
454
473
|
}
|
|
455
474
|
async resolveLink(a, e) {
|
|
456
|
-
const
|
|
457
|
-
if (!
|
|
475
|
+
const n = h(a);
|
|
476
|
+
if (!n)
|
|
458
477
|
return "/not-found";
|
|
459
|
-
const
|
|
460
|
-
return
|
|
478
|
+
const t = this.isDraftMode(), s = this.getCurrentLang() === this.getFallbackLang() ? "" : this.getCurrentLang();
|
|
479
|
+
return n.resolveLink ? await n.resolveLink(e, t, s) : await this.backend.handleAction({
|
|
461
480
|
action: "GET_LINK",
|
|
462
481
|
data: {
|
|
463
482
|
pageType: a,
|
|
464
483
|
id: e,
|
|
465
|
-
draft:
|
|
484
|
+
draft: t,
|
|
466
485
|
lang: s
|
|
467
486
|
}
|
|
468
487
|
});
|
|
469
488
|
}
|
|
470
489
|
async getPageBySlug(a) {
|
|
471
|
-
const e = this.isDraftMode(),
|
|
472
|
-
return b().forEach((
|
|
473
|
-
A(
|
|
490
|
+
const e = this.isDraftMode(), n = {};
|
|
491
|
+
return b().forEach((t) => {
|
|
492
|
+
A(t, "dynamicSegments") && t.dynamicSegments && (n[t.key] = t.dynamicSegments);
|
|
474
493
|
}), await this.backend.handleAction({
|
|
475
494
|
action: "GET_PAGE_META",
|
|
476
|
-
data: { slug: a, draft: e, dynamicSegments:
|
|
495
|
+
data: { slug: a, draft: e, dynamicSegments: n }
|
|
477
496
|
});
|
|
478
497
|
}
|
|
479
498
|
async getFullPage(a) {
|
|
480
|
-
const e = this.isDraftMode(),
|
|
499
|
+
const e = this.isDraftMode(), n = this.getCurrentLang(), t = this.getFallbackLang();
|
|
481
500
|
return await this.backend.handleAction({
|
|
482
501
|
action: "GET_PAGE",
|
|
483
502
|
data: {
|
|
484
503
|
id: a,
|
|
485
|
-
lang:
|
|
504
|
+
lang: t === n ? void 0 : n,
|
|
486
505
|
draft: e,
|
|
487
506
|
mergePartials: !0
|
|
488
507
|
}
|
|
@@ -497,11 +516,11 @@ class B {
|
|
|
497
516
|
}
|
|
498
517
|
async getPageData(a, e = {}) {
|
|
499
518
|
var l;
|
|
500
|
-
const
|
|
519
|
+
const n = this.isDraftMode(), t = this.getCurrentLang(), s = h(a), [o, c] = await Promise.all([
|
|
501
520
|
this.getGlobalData(),
|
|
502
521
|
((l = s == null ? void 0 : s.dataProvider) == null ? void 0 : l.call(s, {
|
|
503
|
-
lang:
|
|
504
|
-
draft:
|
|
522
|
+
lang: t,
|
|
523
|
+
draft: n,
|
|
505
524
|
inBuilder: !1,
|
|
506
525
|
pageProps: e
|
|
507
526
|
})) || Promise.resolve({})
|
|
@@ -528,26 +547,26 @@ class K {
|
|
|
528
547
|
this.apiKey = a, this.apiUrl = e;
|
|
529
548
|
}
|
|
530
549
|
async handleUsersAction(a, e) {
|
|
531
|
-
const
|
|
550
|
+
const n = await fetch(`${this.apiUrl}/v1/api/users`, {
|
|
532
551
|
method: "POST",
|
|
533
552
|
body: JSON.stringify(a),
|
|
534
553
|
headers: {
|
|
535
554
|
"x-chai-api-key": this.apiKey,
|
|
536
555
|
"x-chai-auth-token": e
|
|
537
556
|
}
|
|
538
|
-
}),
|
|
539
|
-
return A(
|
|
557
|
+
}), t = await n.json();
|
|
558
|
+
return A(t, "error") ? { ...t, status: n.status } : t;
|
|
540
559
|
}
|
|
541
560
|
async handleAction(a, e) {
|
|
542
|
-
const
|
|
561
|
+
const n = await fetch(`${this.apiUrl}/v1/api/chai`, {
|
|
543
562
|
method: "POST",
|
|
544
563
|
body: JSON.stringify(a),
|
|
545
564
|
headers: {
|
|
546
565
|
"x-chai-api-key": this.apiKey,
|
|
547
566
|
"x-chai-auth-token": e
|
|
548
567
|
}
|
|
549
|
-
}),
|
|
550
|
-
return A(
|
|
568
|
+
}), t = await n.json();
|
|
569
|
+
return A(t, "error") ? { ...t, status: n.status } : t;
|
|
551
570
|
}
|
|
552
571
|
async handleAssetsAction(a, e) {
|
|
553
572
|
return await (await fetch(`${this.apiUrl}/v1/api/assets`, {
|
|
@@ -555,7 +574,6 @@ class K {
|
|
|
555
574
|
body: JSON.stringify(a),
|
|
556
575
|
headers: {
|
|
557
576
|
"x-chai-api-key": this.apiKey,
|
|
558
|
-
"x-chai-upload": "true",
|
|
559
577
|
"x-chai-auth-token": e
|
|
560
578
|
}
|
|
561
579
|
})).json();
|
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.9",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"files": [
|
|
9
9
|
"dist"
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"@chaibuilder/runtime": "2.1.2",
|
|
63
|
-
"@chaibuilder/sdk": "2.2.
|
|
63
|
+
"@chaibuilder/sdk": "2.2.7",
|
|
64
64
|
"@types/react": "*",
|
|
65
65
|
"@types/react-dom": "*",
|
|
66
66
|
"react": "^18.0 || ^19.0",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
},
|
|
80
80
|
"dependencies": {
|
|
81
81
|
"@chaibuilder/runtime": "2.1.2",
|
|
82
|
-
"@chaibuilder/sdk": "2.2.
|
|
82
|
+
"@chaibuilder/sdk": "2.2.7",
|
|
83
83
|
"@mhsdesign/jit-browser-tailwindcss": "^0.4.2",
|
|
84
84
|
"@tailwindcss/aspect-ratio": "^0.4.2",
|
|
85
85
|
"@tailwindcss/forms": "^0.5.10",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("react"),L=require("@chaibuilder/sdk"),t=require("@chaibuilder/sdk/ui"),B=require("lodash-es"),j=require("lucide-react"),X=require("react-dropzone"),A=require("@tanstack/react-query"),b=require("sonner"),a=require("./index-B3cE059x.cjs"),Z=()=>{const n=a.useAssetsApiUrl(),c=A.useQueryClient(),d=a.useFetch();return A.useMutation({mutationFn:async({file:r,folderId:m,name:h})=>d(n,{action:a.ACTIONS.UPLOAD_ASSET,data:{file:r,folderId:m,name:h}}),onSuccess:()=>{c.invalidateQueries({queryKey:[a.QUERY_KEY_BASE,a.ACTIONS.GET_ASSETS]}),b.toast.success("Asset uploaded successfully")},onError:()=>{b.toast.error("Failed to upload asset")}})},ee=()=>{const n=a.useAssetsApiUrl(),c=A.useQueryClient(),d=a.useFetch();return A.useMutation({mutationFn:async r=>d(n,{action:a.ACTIONS.DELETE_ASSET,data:{id:r}}),onSuccess:()=>{c.invalidateQueries({queryKey:[a.QUERY_KEY_BASE,a.ACTIONS.GET_ASSETS]}),b.toast.success("Asset deleted successfully")},onError:()=>{b.toast.error("Failed to delete asset")}})},se=()=>{const n=a.useAssetsApiUrl(),c=A.useQueryClient(),d=a.useFetch();return A.useMutation({mutationFn:async r=>d(n,{action:a.ACTIONS.UPDATE_ASSET,data:r}),onSuccess:()=>{c.invalidateQueries({queryKey:[a.QUERY_KEY_BASE,a.ACTIONS.GET_ASSETS]}),b.toast.success("Asset updated successfully")},onError:()=>{b.toast.error("Failed to update asset")}})},te=(n={})=>{const c=a.useAssetsApiUrl(),d=a.useFetch(),{search:r,page:m=1,limit:h=10}=n;return A.useQuery({queryKey:[a.QUERY_KEY_BASE,a.ACTIONS.GET_ASSETS,r,m,h],queryFn:async()=>(await d(c,{action:a.ACTIONS.GET_ASSETS,data:{search:r,page:m,limit:h}})).data,retry:1})};function ae(){const[c,d]=l.useState([]),[r,m]=l.useState({query:"",page:1,pageSize:10}),h=B.debounce(()=>r.query,300)(),{data:o,isLoading:w}=te({search:(h==null?void 0:h.toLowerCase().trim())||"",page:r.page,limit:r.pageSize}),y=o?Math.ceil(o.total/o.pageSize):0,u=(o==null?void 0:o.page)||1,p=u<y,g=u>1,{mutate:C,isPending:P}=se(),{mutate:N,isPending:f}=Z(),{mutate:E,isPending:T}=ee(),v=l.useCallback(x=>{x>=1&&x<=y&&m(S=>({...S,page:x}))},[y]),q=l.useCallback(()=>{p&&v(u+1)},[u,p,v]),F=l.useCallback(()=>{g&&v(u-1)},[u,g,v]),I=l.useCallback(x=>{m(S=>({...S,query:x,page:1}))},[]),D=l.useCallback(x=>{d(S=>B.find(S,{id:x.id})?[]:[x])},[!1]),k=l.useCallback(()=>{d([])},[]);return{query:(r==null?void 0:r.query)||"",selectedAssets:c,assets:(o==null?void 0:o.assets)||[],currentPage:u,totalPages:y,hasNextPage:p,hasPreviousPage:g,uploadAsset:N,updateAsset:C,deleteAsset:E,goToPage:v,nextPage:q,previousPage:F,updateSearchQuery:I,clearSelectedAssets:k,updateSelectedAssets:D,isLoadingAssets:w,isUploadingAsset:f,isUpdatingAsset:P,isDeletingAsset:T}}const le=l.lazy(()=>Promise.resolve().then(()=>require("./asset-metadata-editor-zw9u1BB9.cjs"))),ne=l.lazy(()=>Promise.resolve().then(()=>require("./image-editor-D8wu5UNM.cjs")));function ie({close:n,onSelect:c,mode:d="image"}){const m=l.useMemo(()=>[d],[d]),[h,o]=l.useState("browse"),[w,y]=l.useState(null),[u,p]=l.useState(null),[g,C]=l.useState({show:!1,file:""}),{query:P,assets:N,selectedAssets:f,uploadAsset:E,updateAsset:T,deleteAsset:v,updateSearchQuery:q,clearSelectedAssets:F,updateSelectedAssets:I,isLoadingAssets:D,isUploadingAsset:k,isUpdatingAsset:x}=ae(),S=l.useRef(null),_=l.useCallback(async s=>new Promise((i,z)=>{const Q=s[0],U=new FileReader;U.readAsDataURL(Q),U.onload=async()=>{const M=await E({file:U.result,folderId:null,name:Q.name});o("browse"),i(M)},U.onerror=M=>z(M)}),[E]),{getRootProps:O,getInputProps:R,isDragActive:K}=X.useDropzone({onDrop:_,accept:{"image/*":m.includes("image")?[]:[],"video/*":m.includes("video")?[]:[]},maxSize:10*1024*1024}),Y=()=>{c([f[0].url]),n()},G=async s=>{p(s)},$=async()=>{u&&(await v(u.id),p(null))},H=s=>{y(s)},V=async(s,i)=>{await T(B.merge(s,i)),n()},J=s=>{q(s.target.value)},W=async(s,i)=>{try{i?await E({file:s,folderId:null,name:g.name||""}):await T({id:g.id||"",file:s}),C({show:!1,file:""}),o("browse")}catch(z){console.error("Error saving edited image:",z)}};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(t.Tabs,{value:h,onValueChange:s=>o(s),className:"flex-1 flex flex-col h-full",children:[e.jsxs("div",{className:"flex justify-between items-center mb-2",children:[e.jsxs(t.TabsList,{children:[e.jsx(t.TabsTrigger,{value:"browse",children:"Browse Assets"}),e.jsx(t.TabsTrigger,{value:"upload",children:"Upload"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[f.length>0&&e.jsx(e.Fragment,{children:e.jsx(t.Button,{variant:"outline",size:"sm",onClick:()=>F(),title:"Clear selection",children:"Clear"})}),e.jsx(t.Button,{size:"sm",onClick:Y,disabled:f.length===0,children:"Select Asset"})]})]}),e.jsxs(t.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(j.Search,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(t.Input,{placeholder:"Search assets...",value:P,onChange:J,className:"pl-8"})]})}),D&&N.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"})]}):N.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(t.Button,{size:"lg",onClick:()=>o("upload"),children:"Upload Assets"})})]}):e.jsxs("div",{ref:S,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:[N.map(s=>e.jsx(t.Card,{className:L.mergeClasses("cursor-pointer overflow-hidden transition-all",f.some(i=>i.id===s.id)?"ring-2 ring-primary":"hover:ring-2 hover:ring-primary/20"),onClick:()=>I(s),children:e.jsxs(t.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.thumbnailUrl||"/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(j.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(t.Button,{variant:"secondary",size:"icon",className:"h-8 w-8",onClick:i=>{i.stopPropagation(),H(s)},children:e.jsx(j.ImageIcon,{className:"h-4 w-4"})}),e.jsx(t.Button,{variant:"secondary",size:"icon",className:"h-8 w-8",onClick:i=>{i.stopPropagation(),C({id:s.id,show:!0,file:s.url,name:s.name})},children:e.jsx(j.Edit,{className:"h-4 w-4"})}),e.jsx(t.Button,{variant:"destructive",size:"icon",className:"h-8 w-8",onClick:i=>{i.stopPropagation(),G(s)},children:e.jsx(j.Trash2,{className:"h-4 w-4"})})]}),f.some(i=>i.id===s.id)&&e.jsx("div",{className:"absolute top-2 left-2",children:e.jsx("input",{type:"checkbox",checked:f.some(i=>i.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:re((s==null?void 0:s.size)||0)}),e.jsx("span",{children:oe(s.createdAt)})]})]})]})},s.id)),D&&N.length>0&&e.jsx("div",{className:"col-span-full flex justify-center py-4",children:e.jsx(j.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})})]})]}),e.jsx(t.TabsContent,{value:"upload",className:"flex-1 ",children:e.jsxs("div",{...O(),className:L.mergeClasses("border-2 border-dashed rounded-lg h-[380px] flex flex-col items-center justify-center text-center cursor-pointer hover:bg-gray-50",K?"border-primary bg-primary/5":"border-muted-foreground/20"),children:[e.jsx("input",{...R()}),x||k?e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx(j.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(j.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: ",m.join(", ")]}),e.jsxs("p",{children:["Maximum file size: ",10,"MB"]})]})]})]})})]})]}),w&&e.jsx(l.Suspense,{fallback:e.jsx("div",{children:"Loading..."}),children:e.jsx(le,{asset:w,onSave:s=>V(w,s),onCancel:()=>{y(null)}})}),g.show&&e.jsx(l.Suspense,{fallback:e.jsx("div",{children:"Loading..."}),children:e.jsx(ne,{imageUrl:g.file,onSave:W,onClose:()=>C({show:!1,file:""}),defaultSavedImageName:g.name,isEditing:!!g.id})}),u&&e.jsx(t.Dialog,{open:!!u,onOpenChange:()=>p(null),children:e.jsxs(t.DialogContent,{children:[e.jsxs(t.DialogHeader,{children:[e.jsx(t.DialogTitle,{children:"Delete Asset"}),e.jsxs(t.DialogDescription,{children:['Are you sure you want to delete "',u.name,'"? This action cannot be undone.']})]}),e.jsxs(t.DialogFooter,{className:"gap-2 sm:gap-0",children:[e.jsx(t.Button,{variant:"outline",onClick:()=>p(null),children:"Cancel"}),e.jsx(t.Button,{variant:"destructive",onClick:$,children:"Delete"})]})]})})]})}function re(n){return n<1024?`${n.toFixed(2)} KB`:`${(n/1024).toFixed(2)} MB`}function oe(n){const c=new Date(n);return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"}).format(c)}exports.default=ie;
|