@chaibuilder/pages 0.1.2 → 0.1.3

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.
@@ -1,5 +1,5 @@
1
- import { c, T as l, P as m, a as u, D as v, Q as i } from "./B4MFY5CR-BHThdoBt.js";
2
- import { g as d, c as f, a as e } from "./ChaiBuilderPages-Co0XHwvy.js";
1
+ import { c, T as l, P as m, a as u, D as v, Q as i } from "./B4MFY5CR-DqikJUcW.js";
2
+ import { g as d, c as f, a as e } from "./ChaiBuilderPages-Q1_ffhp9.js";
3
3
  var p = (a) => {
4
4
  const [r, t] = c({
5
5
  prefix: "TanstackQueryDevtools"
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./B4MFY5CR-BY0wvV5r.cjs"),t=require("./ChaiBuilderPages-CBSKtiWq.cjs");var s=c=>{const[r,o]=e.createLocalStorage({prefix:"TanstackQueryDevtools"}),l=t.getPreferredColorScheme(),a=t.createMemo(()=>{const n=r.theme_preference||e.THEME_PREFERENCE;return n!=="system"?n:l()});return t.createComponent(e.QueryDevtoolsContext.Provider,{value:c,get children(){return t.createComponent(e.PiPProvider,{localStore:r,setLocalStore:o,get children(){return t.createComponent(e.ThemeContext.Provider,{value:a,get children(){return t.createComponent(e.Devtools,{localStore:r,setLocalStore:o})}})}})}})},u=s;exports.default=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./B4MFY5CR-RL8cvWSO.cjs"),t=require("./ChaiBuilderPages-DdHy_fgJ.cjs");var s=c=>{const[r,o]=e.createLocalStorage({prefix:"TanstackQueryDevtools"}),l=t.getPreferredColorScheme(),a=t.createMemo(()=>{const n=r.theme_preference||e.THEME_PREFERENCE;return n!=="system"?n:l()});return t.createComponent(e.QueryDevtoolsContext.Provider,{value:c,get children(){return t.createComponent(e.PiPProvider,{localStore:r,setLocalStore:o,get children(){return t.createComponent(e.ThemeContext.Provider,{value:a,get children(){return t.createComponent(e.Devtools,{localStore:r,setLocalStore:o})}})}})}})},u=s;exports.default=u;
@@ -1,5 +1,5 @@
1
- import { c as s, T as c, P as u, a as i, b as m, C as P, Q as d } from "./B4MFY5CR-BHThdoBt.js";
2
- import { g as v, c as C, a as e } from "./ChaiBuilderPages-Co0XHwvy.js";
1
+ import { c as s, T as c, P as u, a as i, b as m, C as P, Q as d } from "./B4MFY5CR-DqikJUcW.js";
2
+ import { g as v, c as C, a as e } from "./ChaiBuilderPages-Q1_ffhp9.js";
3
3
  var h = (t) => {
4
4
  const [r, o] = s({
5
5
  prefix: "TanstackQueryDevtools"
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./B4MFY5CR-BY0wvV5r.cjs"),t=require("./ChaiBuilderPages-CBSKtiWq.cjs");var u=o=>{const[r,n]=e.createLocalStorage({prefix:"TanstackQueryDevtools"}),c=t.getPreferredColorScheme(),a=t.createMemo(()=>{const l=r.theme_preference||e.THEME_PREFERENCE;return l!=="system"?l:c()});return t.createComponent(e.QueryDevtoolsContext.Provider,{value:o,get children(){return t.createComponent(e.PiPProvider,{disabled:!0,localStore:r,setLocalStore:n,get children(){return t.createComponent(e.ThemeContext.Provider,{value:a,get children(){return t.createComponent(e.ParentPanel,{get children(){return t.createComponent(e.ContentView,{localStore:r,setLocalStore:n,get onClose(){return o.onClose},showPanelViewOnly:!0})}})}})}})}})},i=u;exports.default=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./B4MFY5CR-RL8cvWSO.cjs"),t=require("./ChaiBuilderPages-DdHy_fgJ.cjs");var u=o=>{const[r,n]=e.createLocalStorage({prefix:"TanstackQueryDevtools"}),c=t.getPreferredColorScheme(),a=t.createMemo(()=>{const l=r.theme_preference||e.THEME_PREFERENCE;return l!=="system"?l:c()});return t.createComponent(e.QueryDevtoolsContext.Provider,{value:o,get children(){return t.createComponent(e.PiPProvider,{disabled:!0,localStore:r,setLocalStore:n,get children(){return t.createComponent(e.ThemeContext.Provider,{value:a,get children(){return t.createComponent(e.ParentPanel,{get children(){return t.createComponent(e.ContentView,{localStore:r,setLocalStore:n,get onClose(){return o.onClose},showPanelViewOnly:!0})}})}})}})}})},i=u;exports.default=i;
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";require("react/jsx-runtime");require("@chaibuilder/sdk");const e=require("./ChaiBuilderPages-CBSKtiWq.cjs");require("@chaibuilder/sdk/web-blocks");require("@tanstack/react-query");require("lodash-es");require("lucide-react");require("react");module.exports=e.ChaiBuilderPages;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("react/jsx-runtime");require("@chaibuilder/sdk");const e=require("./ChaiBuilderPages-DdHy_fgJ.cjs");require("@chaibuilder/sdk/web-blocks");require("@tanstack/react-query");require("lodash-es");require("lucide-react");require("react");exports.PermissionChecker=e.PermissionChecker;exports.default=e.ChaiBuilderPages;
package/dist/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import { ChaiBuilderEditorProps } from '@chaibuilder/sdk';
2
2
  import { JSX as JSX_2 } from 'react/jsx-runtime';
3
+ import { ReactNode } from 'react';
3
4
 
4
5
  declare const ChaiBuilderPages: (props: ChaiBuilderPagesProps) => JSX_2.Element;
5
6
  export default ChaiBuilderPages;
6
7
 
7
- declare type ChaiBuilderPagesProps = {
8
+ export declare type ChaiBuilderPagesProps = {
8
9
  user: ChaiUser;
9
10
  onSessionExpired: () => void;
10
11
  logo?: React.FC;
@@ -28,4 +29,11 @@ declare type ChaiUser = {
28
29
  permissions?: string[];
29
30
  };
30
31
 
32
+ export declare const PermissionChecker: ({ permission, permissions, children, fallback, }: {
33
+ permission?: string;
34
+ permissions?: string[];
35
+ fallback?: React.ReactNode;
36
+ children: React.ReactNode;
37
+ }) => ReactNode;
38
+
31
39
  export { }
package/dist/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  import "react/jsx-runtime";
2
2
  import "@chaibuilder/sdk";
3
- import { W as d } from "./ChaiBuilderPages-Co0XHwvy.js";
3
+ import { X as f, W as c } from "./ChaiBuilderPages-Q1_ffhp9.js";
4
4
  import "@chaibuilder/sdk/web-blocks";
5
5
  import "@tanstack/react-query";
6
6
  import "lodash-es";
7
7
  import "lucide-react";
8
8
  import "react";
9
9
  export {
10
- d as default
10
+ f as PermissionChecker,
11
+ c as default
11
12
  };
package/dist/server.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var k=Object.defineProperty;var y=(n,a,t)=>a in n?k(n,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[a]=t;var l=(n,a,t)=>y(n,typeof a!="symbol"?a+"":a,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),w="https://api.chaibuilder.com",C=async(n,a,t,s=w)=>{try{const e=new Headers;e.append("x-chai-api-key",a),e.append("x-chai-user",t);const i={headers:e,method:"POST",body:JSON.stringify(n),cache:"no-store"},r=await fetch(s+"/v1/api/chai",i);if(r.ok)return await r.json();{const o=await r.json();throw new Error((o==null?void 0:o.error)||r.statusText)}}catch(e){return{error:e.message}}},E={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"},u={},p=(n,a)=>{u[n]={key:n,...a,hasSlug:!0}},f=(n,a)=>{u[n]={key:n,...a,hasSlug:!1}},g=()=>Object.values(u),h=n=>u[n];let S=async(n,a=!1,t=!1)=>({lang:n,isDraft:a,inBuilder:t});const P=n=>S=n,d=async(n,a,t)=>await S(n,a,t),b="https://api.chaibuilder.com";class T{constructor(a,t=b){l(this,"fallbackLang","");l(this,"currentLang","");l(this,"draftMode",!1);this.apiKey=a,this.apiUrl=t,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>'}),f("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){this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setCurrentLang(a){this.currentLang=a}getCurrentLang(){return this.currentLang}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async handle(a,t){if(a.action==="GET_BUILDER_PAGE_DATA"){const e=await d(a.data.lang,!0,!0),i=h(a.data.pageType);return i?{...i.dataProvider?await i.dataProvider({},a.data.lang,!0,!0):{},global:e}:{global:e}}if(a.action==="GET_PAGE_TYPES"||a.action==="GET_COLLECTIONS")return Promise.all(g().map(async e=>({key:e.key,helpText:e.helpText??"",icon:e.icon??"",dynamicSegments:e.dynamicSegments??"",dynamicSlug:e.dynamicSlug??"",hasSlug:e.hasSlug??!0,name:typeof e.name=="function"?await e.name():e.name})));if(a.action==="SEARCH_COLLECTION_ITEMS"||a.action==="SEARCH_PAGE_TYPE_ITEMS"){const e=h(a.data.pageType);return e?e.search?await e.search(a.data.query):await(await fetch(`${this.apiUrl}/v1/api/chai`,{cache:"no-store",method:"POST",body:JSON.stringify({action:"SEARCH_PAGES",data:{query:a.data.query,pageType:a.data.pageType}}),headers:{"x-chai-api-key":this.apiKey}})).json():{error:"Page type not found"}}const s=await C(a,this.apiKey,t,this.apiUrl);return this.emit(a.action,s),s}emit(a,t){var i,r,o;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const s=c.get(t,"page");if(!s)return;const e=h(s.pageType);if(e)switch(a){case"CREATE_PAGE":return(i=e.onCreate)==null?void 0:i.call(e,s);case"UPDATE_PAGE":return(r=e.onUpdate)==null?void 0:r.call(e,s);case"DELETE_PAGE":return(o=e.onDelete)==null?void 0:o.call(e,s)}}setLanguageFromSlug(a){const t=c.first(a||[""]);Object.keys(E).includes(t)?this.setCurrentLang(t):this.setCurrentLang("")}async getPageTypeFromSlug(a){return a==="/"||a===`/${this.getCurrentLang()}`,"page"}async resolveLink(a,t){const s=h(a);if(!s)return"/not-found";const e=this.isDraftMode(),i=this.getCurrentLang();if(s.resolveLink)return await s.resolveLink(t,e,i);const o=await(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify({action:"GET_LINK",data:{pageType:a,id:t,draft:e,...i?{lang:i}:{}}}),headers:{"x-chai-api-key":this.apiKey}})).json();return c.get(o,"link","/not-found")}async getPageBySlug(a){const t=this.isDraftMode(),s={};return g().forEach(i=>{c.has(i,"dynamicSegments")&&i.dynamicSegments&&(s[i.key]=i.dynamicSegments)}),(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify({action:"GET_PAGE_META",data:{slug:a,draft:t,dynamicSegments:s}}),headers:{"x-chai-api-key":this.apiKey}})).json()}async getFullPage(a){const t=this.isDraftMode(),s=this.getCurrentLang();return(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify({action:"GET_PAGE",data:{id:a,lang:s,draft:t,mergePartials:!0}}),headers:{"x-chai-api-key":this.apiKey}})).json()}async getSiteSettings(){const a=this.isDraftMode();return(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify({action:"GET_WEBSITE_SETTINGS",data:{draft:a}}),headers:{"x-chai-api-key":this.apiKey}})).json()}async getPageData(a,t){var m;const s=this.isDraftMode(),e=this.getCurrentLang(),i=h(a),[r,o]=await Promise.all([this.getGlobalData(),((m=i==null?void 0:i.dataProvider)==null?void 0:m.call(i,t,e,s))||Promise.resolve({})]);return i?{...o,global:r}:{global:r}}async getGlobalData(){const a=this.getCurrentLang();return await d(a,this.isDraftMode())}async request(a){return(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey}})).json()}}exports.ChaiBuilderPages=T;exports.getChaiGlobalData=d;exports.getChaiPageType=h;exports.getChaiPageTypes=g;exports.registerChaiGlobalDataProvider=P;exports.registerChaiPageType=p;exports.registerChaiPartialType=f;
1
+ "use strict";var y=Object.defineProperty;var k=(n,a,t)=>a in n?y(n,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[a]=t;var l=(n,a,t)=>k(n,typeof a!="symbol"?a+"":a,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash-es"),w="https://api.chaibuilder.com",C=async(n,a,t,s=w)=>{try{const e=new Headers;e.append("x-chai-api-key",a),e.append("x-chai-user",t);const i={headers:e,method:"POST",body:JSON.stringify(n),cache:"no-store"},r=await fetch(s+"/v1/api/chai",i);if(r.ok)return await r.json();{const o=await r.json();throw new Error((o==null?void 0:o.error)||r.statusText)}}catch(e){return{error:e.message}}},E={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"},u={},p=(n,a)=>{u[n]={key:n,...a,hasSlug:!0}},f=(n,a)=>{u[n]={key:n,...a,hasSlug:!1}},g=()=>Object.values(u),h=n=>u[n];let S=async(n,a=!1,t=!1)=>({lang:n,isDraft:a,inBuilder:t});const P=n=>S=n,d=async(n,a,t)=>await S(n,a,t),b=(n,a)=>{({...a})},T="https://api.chaibuilder.com";class v{constructor(a,t=T){l(this,"fallbackLang","");l(this,"currentLang","");l(this,"draftMode",!1);this.apiKey=a,this.apiUrl=t,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>'}),f("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){this.fallbackLang=a}getFallbackLang(){return this.fallbackLang}setCurrentLang(a){this.currentLang=a}getCurrentLang(){return this.currentLang}setDraftMode(a){this.draftMode=a}isDraftMode(){return this.draftMode}async handle(a,t){if(a.action==="GET_BUILDER_PAGE_DATA"){const e=await d(a.data.lang,!0,!0),i=h(a.data.pageType);return i?{...i.dataProvider?await i.dataProvider({},a.data.lang,!0,!0):{},global:e}:{global:e}}if(a.action==="GET_PAGE_TYPES"||a.action==="GET_COLLECTIONS")return Promise.all(g().map(async e=>({key:e.key,helpText:e.helpText??"",icon:e.icon??"",dynamicSegments:e.dynamicSegments??"",dynamicSlug:e.dynamicSlug??"",hasSlug:e.hasSlug??!0,name:typeof e.name=="function"?await e.name():e.name})));if(a.action==="SEARCH_COLLECTION_ITEMS"||a.action==="SEARCH_PAGE_TYPE_ITEMS"){const e=h(a.data.pageType);return e?e.search?await e.search(a.data.query):await(await fetch(`${this.apiUrl}/v1/api/chai`,{cache:"no-store",method:"POST",body:JSON.stringify({action:"SEARCH_PAGES",data:{query:a.data.query,pageType:a.data.pageType}}),headers:{"x-chai-api-key":this.apiKey}})).json():{error:"Page type not found"}}const s=await C(a,this.apiKey,t,this.apiUrl);return this.emit(a.action,s),s}emit(a,t){var i,r,o;if(!["CREATE_PAGE","UPDATE_PAGE","DELETE_PAGE"].includes(a))return;const s=c.get(t,"page");if(!s)return;const e=h(s.pageType);if(e)switch(a){case"CREATE_PAGE":return(i=e.onCreate)==null?void 0:i.call(e,s);case"UPDATE_PAGE":return(r=e.onUpdate)==null?void 0:r.call(e,s);case"DELETE_PAGE":return(o=e.onDelete)==null?void 0:o.call(e,s)}}setLanguageFromSlug(a){const t=c.first(a||[""]);Object.keys(E).includes(t)?this.setCurrentLang(t):this.setCurrentLang("")}async getPageTypeFromSlug(a){return a==="/"||a===`/${this.getCurrentLang()}`,"page"}async resolveLink(a,t){const s=h(a);if(!s)return"/not-found";const e=this.isDraftMode(),i=this.getCurrentLang();if(s.resolveLink)return await s.resolveLink(t,e,i);const o=await(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify({action:"GET_LINK",data:{pageType:a,id:t,draft:e,...i?{lang:i}:{}}}),headers:{"x-chai-api-key":this.apiKey}})).json();return c.get(o,"link","/not-found")}async getPageBySlug(a){const t=this.isDraftMode(),s={};return g().forEach(i=>{c.has(i,"dynamicSegments")&&i.dynamicSegments&&(s[i.key]=i.dynamicSegments)}),(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify({action:"GET_PAGE_META",data:{slug:a,draft:t,dynamicSegments:s}}),headers:{"x-chai-api-key":this.apiKey}})).json()}async getFullPage(a){const t=this.isDraftMode(),s=this.getCurrentLang();return(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify({action:"GET_PAGE",data:{id:a,lang:s,draft:t,mergePartials:!0}}),headers:{"x-chai-api-key":this.apiKey}})).json()}async getSiteSettings(){const a=this.isDraftMode();return(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify({action:"GET_WEBSITE_SETTINGS",data:{draft:a}}),headers:{"x-chai-api-key":this.apiKey}})).json()}async getPageData(a,t){var m;const s=this.isDraftMode(),e=this.getCurrentLang(),i=h(a),[r,o]=await Promise.all([this.getGlobalData(),((m=i==null?void 0:i.dataProvider)==null?void 0:m.call(i,t,e,s))||Promise.resolve({})]);return i?{...o,global:r}:{global:r}}async getGlobalData(){const a=this.getCurrentLang();return await d(a,this.isDraftMode())}async request(a){return(await fetch(`${this.apiUrl}/v1/api/chai`,{method:"POST",body:JSON.stringify(a),headers:{"x-chai-api-key":this.apiKey}})).json()}}exports.ChaiBuilderPages=v;exports.getChaiGlobalData=d;exports.getChaiPageType=h;exports.getChaiPageTypes=g;exports.registerChaiGlobalDataProvider=P;exports.registerChaiPageType=p;exports.registerChaiPartialType=f;exports.registerChaiTaxonomy=b;
package/dist/server.d.ts CHANGED
@@ -51,6 +51,12 @@ export declare type ChaiBuilderPageType = {
51
51
  dataProvider?: (props: any, lang: string, isDraft?: boolean, inBuilder?: boolean) => Promise<Record<string, any>>;
52
52
  };
53
53
 
54
+ export declare type ChaiBuilderTaxonomyType = {
55
+ key: string;
56
+ name: string;
57
+ slug?: string;
58
+ };
59
+
54
60
  export declare const getChaiGlobalData: (lang: string, isDraft?: boolean, inBuilder?: boolean) => Promise<any>;
55
61
 
56
62
  export declare const getChaiPageType: (key: keyof typeof PAGE_TYPES) => ChaiBuilderPageType;
@@ -71,4 +77,6 @@ export declare const registerChaiPageType: (key: string, pageTypeOptions: Omit<C
71
77
 
72
78
  export declare const registerChaiPartialType: (key: string, pageTypeOptions: Omit<ChaiBuilderPageType, "key">) => void;
73
79
 
80
+ export declare const registerChaiTaxonomy: (key: string, taxonomyOptions: Omit<ChaiBuilderTaxonomyType, "key">) => void;
81
+
74
82
  export { }
package/dist/server.js CHANGED
@@ -24,7 +24,7 @@ const w = "https://api.chaibuilder.com", E = async (i, a, t, s = w) => {
24
24
  } catch (e) {
25
25
  return { error: e.message };
26
26
  }
27
- }, b = {
27
+ }, C = {
28
28
  ab: "Abkhazian",
29
29
  aa: "Afar",
30
30
  af: "Afrikaans",
@@ -212,7 +212,7 @@ const w = "https://api.chaibuilder.com", E = async (i, a, t, s = w) => {
212
212
  yo: "Yoruba",
213
213
  za: "Zhuang, Chuang",
214
214
  zu: "Zulu"
215
- }, l = {}, C = (i, a) => {
215
+ }, l = {}, b = (i, a) => {
216
216
  l[i] = { key: i, ...a, hasSlug: !0 };
217
217
  }, P = (i, a) => {
218
218
  l[i] = { key: i, ...a, hasSlug: !1 };
@@ -222,13 +222,15 @@ let f = async (i, a = !1, t = !1) => ({
222
222
  isDraft: a,
223
223
  inBuilder: t
224
224
  });
225
- const L = (i) => f = i, m = async (i, a, t) => await f(i, a, t), v = "https://api.chaibuilder.com";
226
- class G {
225
+ const L = (i) => f = i, m = async (i, a, t) => await f(i, a, t), G = (i, a) => {
226
+ ({ ...a });
227
+ }, v = "https://api.chaibuilder.com";
228
+ class M {
227
229
  constructor(a, t = v) {
228
230
  c(this, "fallbackLang", "");
229
231
  c(this, "currentLang", "");
230
232
  c(this, "draftMode", !1);
231
- this.apiKey = a, this.apiUrl = t, C("page", {
233
+ this.apiKey = a, this.apiUrl = t, b("page", {
232
234
  name: "Static Page",
233
235
  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>'
234
236
  }), P("global", {
@@ -315,7 +317,7 @@ class G {
315
317
  // APIS
316
318
  setLanguageFromSlug(a) {
317
319
  const t = k(a || [""]);
318
- Object.keys(b).includes(t) ? this.setCurrentLang(t) : this.setCurrentLang("");
320
+ Object.keys(C).includes(t) ? this.setCurrentLang(t) : this.setCurrentLang("");
319
321
  }
320
322
  async getPageTypeFromSlug(a) {
321
323
  return a === "/" || a === `/${this.getCurrentLang()}`, "page";
@@ -401,11 +403,12 @@ class G {
401
403
  }
402
404
  }
403
405
  export {
404
- G as ChaiBuilderPages,
406
+ M as ChaiBuilderPages,
405
407
  m as getChaiGlobalData,
406
408
  h as getChaiPageType,
407
409
  d as getChaiPageTypes,
408
410
  L as registerChaiGlobalDataProvider,
409
- C as registerChaiPageType,
410
- P as registerChaiPartialType
411
+ b as registerChaiPageType,
412
+ P as registerChaiPartialType,
413
+ G as registerChaiTaxonomy
411
414
  };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "author": "Suraj Air",
4
4
  "license": "Private",
5
5
  "homepage": "https://chaibuilder.com",
6
- "version": "0.1.2",
6
+ "version": "0.1.3",
7
7
  "type": "module",
8
8
  "files": [
9
9
  "dist"
@@ -59,7 +59,7 @@
59
59
  "test": "vitest"
60
60
  },
61
61
  "peerDependencies": {
62
- "@chaibuilder/sdk": "2.0.2",
62
+ "@chaibuilder/sdk": "2.0.4",
63
63
  "@types/react": "*",
64
64
  "@types/react-dom": "*",
65
65
  "react": "^18.0 || ^19.0",
@@ -78,7 +78,7 @@
78
78
  },
79
79
  "dependencies": {
80
80
  "@chaibuilder/runtime": "2.0.0",
81
- "@chaibuilder/sdk": "2.0.2",
81
+ "@chaibuilder/sdk": "2.0.4",
82
82
  "@mhsdesign/jit-browser-tailwindcss": "^0.4.2",
83
83
  "@tailwindcss/aspect-ratio": "^0.4.2",
84
84
  "@tailwindcss/forms": "^0.5.10",