@chaibuilder/sdk 4.0.0-beta.47 → 4.0.0-beta.49

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.
Files changed (122) hide show
  1. package/dist/{2SSKDMRQ-CVHl6i14.cjs → 2SSKDMRQ-CjvuNdPo.cjs} +1 -1
  2. package/dist/{2SSKDMRQ-D9rlRpnI.js → 2SSKDMRQ-Dvf9zadl.js} +2 -2
  3. package/dist/{AP7HFJJL-D18sv0Wh.cjs → AP7HFJJL-DYFttFoI.cjs} +1 -1
  4. package/dist/{AP7HFJJL-CBrphwP9.js → AP7HFJJL-q4dJdyFs.js} +1 -1
  5. package/dist/{IconPicker-CSewv0kY.js → IconPicker-Bf163F7t.js} +1 -1
  6. package/dist/{IconPicker-CxEGCcVZ.cjs → IconPicker-JWhYq2Gp.cjs} +1 -1
  7. package/dist/{WDYDFRGG-C0G8c0hR.cjs → WDYDFRGG-BEksfGMC.cjs} +1 -1
  8. package/dist/{WDYDFRGG-BCmjXFs0.js → WDYDFRGG-O9GIrtX0.js} +2 -2
  9. package/dist/{actions-registery-BQ31lpix.cjs → actions-registery-BHbZHkE3.cjs} +11 -3
  10. package/dist/{actions-registery-B1VeX52Y.js → actions-registery-gJb_wq2F.js} +25 -13
  11. package/dist/actions.cjs +1 -1
  12. package/dist/actions.d.ts +10 -3
  13. package/dist/actions.js +6 -4
  14. package/dist/{active-in-another-tab-BhbPijx9.js → active-in-another-tab-B4Ur0JP7.js} +2 -2
  15. package/dist/{active-in-another-tab-CMmhCRma.cjs → active-in-another-tab-BPdx4lWh.cjs} +1 -1
  16. package/dist/{add-new-language-page-ChQgjFwb.cjs → add-new-language-page-BfUp5Ua2.cjs} +1 -1
  17. package/dist/{add-new-language-page-C0sayTSF.js → add-new-language-page-CRR93tLq.js} +3 -3
  18. package/dist/{add-new-page-DLf5Tfb7.cjs → add-new-page-B8NGK6WS.cjs} +1 -1
  19. package/dist/{add-new-page-DLKzuaNM.js → add-new-page-Ppy5-y5j.js} +2 -2
  20. package/dist/ai-panel-default-lang-BXYQye3N.js +333 -0
  21. package/dist/ai-panel-default-lang-VhgmHFoQ.cjs +3 -0
  22. package/dist/ai-panel-other-lang-DaCf-cq4.js +148 -0
  23. package/dist/ai-panel-other-lang-Ds0EXeUC.cjs +1 -0
  24. package/dist/{ai-prompt-input-DNb1FKXQ.js → ai-prompt-input-7iWk72w5.js} +253 -258
  25. package/dist/ai-prompt-input-nZ5_Dm7X.cjs +1 -0
  26. package/dist/{ai-translation-prompt-B2MfzTjb.js → ai-translation-prompt-1OUs1P7n.js} +1 -1
  27. package/dist/{ai-translation-prompt-CL3yk8K1.cjs → ai-translation-prompt-B16cK-1Q.cjs} +1 -1
  28. package/dist/{change-password-modal-CbMifP62.js → change-password-modal-CdvJR1Ln.js} +10 -10
  29. package/dist/{change-password-modal-D_NFPZxI.cjs → change-password-modal-D5eXjiYq.cjs} +1 -1
  30. package/dist/{code-editor-53rOkfhX.js → code-editor-CyLjDiEp.js} +1 -1
  31. package/dist/{code-editor-CCsljULB.cjs → code-editor-SWbfFj1E.cjs} +1 -1
  32. package/dist/{continue-editing-in-this-client-hB4O3CHJ.js → continue-editing-in-this-client-BrSvK-Ay.js} +2 -2
  33. package/dist/{continue-editing-in-this-client-3QLL7tQH.cjs → continue-editing-in-this-client-Cmi-GkYZ.cjs} +1 -1
  34. package/dist/core.cjs +1 -1
  35. package/dist/core.js +1 -1
  36. package/dist/{css-import-modal-Bmi3LrEJ.cjs → css-import-modal-Bdwgd05S.cjs} +1 -1
  37. package/dist/{css-import-modal-DCivkVh2.js → css-import-modal-Be47CBJn.js} +1 -1
  38. package/dist/{delete-page-BW2NxLZu.js → delete-page-C99K2qzS.js} +15 -15
  39. package/dist/{delete-page-CxVfKrBz.cjs → delete-page-DLohaU-U.cjs} +1 -1
  40. package/dist/{design-token-usage-WTVjf9c-.js → design-token-usage-D1lWCJ3L.js} +1 -1
  41. package/dist/{design-token-usage-5jsa9ojN.cjs → design-token-usage-eY2wQ0l3.cjs} +1 -1
  42. package/dist/{digital-asset-manager-dNK-BYdI.js → digital-asset-manager-BZMb6sC7.js} +3 -3
  43. package/dist/{digital-asset-manager-DlFCWUP4.cjs → digital-asset-manager-Z5aJxkq0.cjs} +1 -1
  44. package/dist/{duplicate-page-BbB2anQO.js → duplicate-page-CDc2X0eW.js} +12 -12
  45. package/dist/{duplicate-page-0o6G-oY_.cjs → duplicate-page-D5Gtvqdv.cjs} +1 -1
  46. package/dist/{dynamic-page-selector-Ds3MqxTF.cjs → dynamic-page-selector-DZHhX008.cjs} +1 -1
  47. package/dist/{dynamic-page-selector-rFO8457w.js → dynamic-page-selector-DvNBXo6o.js} +2 -2
  48. package/dist/{image-editor-BnVkes6Q.js → image-editor-BBvvi9Vm.js} +1 -1
  49. package/dist/{image-editor-DqItmbk1.cjs → image-editor-DwhTYkVR.cjs} +1 -1
  50. package/dist/index-BVwFJWDq.cjs +5 -0
  51. package/dist/{index-DTNHTRZu.cjs → index-DCJDQs1a.cjs} +8 -8
  52. package/dist/{index-BYjniKhj.js → index-LBTm1Jmk.js} +838 -806
  53. package/dist/{index-B7HAfx-2.js → index-OuHV9Ann.js} +16 -9
  54. package/dist/{json-diff-viewer-B4rnFiN_.cjs → json-diff-viewer-Cb1CmRqP.cjs} +1 -1
  55. package/dist/{json-diff-viewer-CKlyO9eW.js → json-diff-viewer-DG6qMOBS.js} +6 -6
  56. package/dist/{lang-panel-YT96E5Xj.js → lang-panel-B3USOxGq.js} +9 -9
  57. package/dist/{lang-panel-DiVz4Cay.cjs → lang-panel-DxoJ0v4y.cjs} +1 -1
  58. package/dist/{manage-design-tokens-LwImeKaK.js → manage-design-tokens-6YGIctip.js} +2 -2
  59. package/dist/{manage-design-tokens-modal-BEElCTcN.cjs → manage-design-tokens-modal-BSSCXH8Y.cjs} +1 -1
  60. package/dist/{manage-design-tokens-modal-DFVcoyra.js → manage-design-tokens-modal-CzsnN49F.js} +2 -2
  61. package/dist/{manage-design-tokens-BwrIc6dS.cjs → manage-design-tokens-udLBvkHA.cjs} +1 -1
  62. package/dist/{mark-as-template-DtDkh6jB.cjs → mark-as-template-B9yLcasI.cjs} +1 -1
  63. package/dist/{mark-as-template-D2Hpz0IE.js → mark-as-template-CP_F9ZQ4.js} +2 -2
  64. package/dist/{models-D0RH2u4C.cjs → models-CQaC3EBW.cjs} +1 -1
  65. package/dist/{models-BCu-p_QK.js → models-DZ9C6CvE.js} +4 -5
  66. package/dist/{nested-path-selector-content-TqjBbNys.js → nested-path-selector-content-DmtCI3q9.js} +1 -1
  67. package/dist/{nested-path-selector-content-CJfN8Hhw.cjs → nested-path-selector-content-aTdu-o0e.cjs} +1 -1
  68. package/dist/{no-language-page-content-CcD-fgMa.cjs → no-language-page-content-C-MCdPXt.cjs} +1 -1
  69. package/dist/{no-language-page-content-Ce3wniZT.js → no-language-page-content-D8t5dfgh.js} +2 -2
  70. package/dist/{no-language-page-dialog-CU1zXsYv.js → no-language-page-dialog-C_fHI2zI.js} +2 -2
  71. package/dist/{no-language-page-dialog-B7fhPdob.cjs → no-language-page-dialog-D4QIAHnE.cjs} +1 -1
  72. package/dist/{page-creator-C7XEqUx_.cjs → page-creator-Cz_ah-qE.cjs} +1 -1
  73. package/dist/{page-creator-wg3uymVG.js → page-creator-DKEkuGCO.js} +33 -33
  74. package/dist/{page-lock-BuVma3e5.js → page-lock-CwZKJ4IE.js} +2 -2
  75. package/dist/{page-lock-CINb2air.cjs → page-lock-DdCvtA-I.cjs} +1 -1
  76. package/dist/{page-locked-dialog-s-3ROcy0.cjs → page-locked-dialog-CrTDBoC4.cjs} +1 -1
  77. package/dist/{page-locked-dialog-C7_1gjO5.js → page-locked-dialog-DqLlooUz.js} +11 -11
  78. package/dist/{page-manager-new-CKWSLVrb.cjs → page-manager-new-ah6QYar2.cjs} +1 -1
  79. package/dist/{page-manager-new-zlobCGqL.js → page-manager-new-ttsrxdW9.js} +42 -42
  80. package/dist/{page-manager-search-and-filter-BaOsl_5u.cjs → page-manager-search-and-filter-D7AupT6_.cjs} +1 -1
  81. package/dist/{page-manager-search-and-filter-BU_iNmHy.js → page-manager-search-and-filter-bsqZ6wnI.js} +2 -2
  82. package/dist/{page-revisions-content-BmaNPNoS.cjs → page-revisions-content-B6hsIla7.cjs} +1 -1
  83. package/dist/{page-revisions-content-D6l_d2jW.js → page-revisions-content-C5O8_Fms.js} +16 -16
  84. package/dist/pages.cjs +1 -1
  85. package/dist/pages.d.ts +66 -1
  86. package/dist/pages.js +19 -19
  87. package/dist/{publish-pages-content-2LG6JOrm.cjs → publish-pages-content-BrajJUcP.cjs} +1 -1
  88. package/dist/{publish-pages-content-CQteRtBA.js → publish-pages-content-KZVMHT6V.js} +32 -32
  89. package/dist/{rte-widget-modal-KzT2hLFt.cjs → rte-widget-modal-CiTwsXTr.cjs} +1 -1
  90. package/dist/{rte-widget-modal-CFk0Izg5.js → rte-widget-modal-IU8JzPuZ.js} +1 -1
  91. package/dist/{save-to-lib-D1V3bNZX.js → save-to-lib-DMnv7ENo.js} +50 -50
  92. package/dist/{save-to-lib-D82Vrekv.cjs → save-to-lib-Dc700Aop.cjs} +1 -1
  93. package/dist/{selected-block-display-BHx9N14K.cjs → selected-block-display-CAFEOrLV.cjs} +1 -1
  94. package/dist/{selected-block-display-BbUH5RaW.js → selected-block-display-CidmQ-wz.js} +2 -2
  95. package/dist/{seo-panel-CyBmGg6k.js → seo-panel-Br8gxDxu.js} +148 -158
  96. package/dist/{seo-panel-CPsjZLtL.cjs → seo-panel-CMY-adM-.cjs} +2 -2
  97. package/dist/{shared-json-ld-DyU9wqrE.cjs → shared-json-ld-CMH-eRUq.cjs} +1 -1
  98. package/dist/{shared-json-ld-SGykyppC.js → shared-json-ld-uvMmwCYp.js} +26 -26
  99. package/dist/{slug-input-BzpnOdXG.cjs → slug-input-CiHC5l3r.cjs} +1 -1
  100. package/dist/{slug-input-DpMI4nEB.js → slug-input-DLWTMTsO.js} +1 -1
  101. package/dist/supabase-actions.cjs +1 -1
  102. package/dist/supabase-actions.js +1 -1
  103. package/dist/{take-over-request-wTVLAotu.cjs → take-over-request-IRLgF1dG.cjs} +1 -1
  104. package/dist/{take-over-request-D97Fg-xB.js → take-over-request-KdR1_h_K.js} +5 -5
  105. package/dist/{translation-warning-modal-Xk6oYGFS.cjs → translation-warning-modal-CLZ9tC1F.cjs} +1 -1
  106. package/dist/{translation-warning-modal-Du-CnfyH.js → translation-warning-modal-CzNt6LDO.js} +1 -1
  107. package/dist/types.d.ts +6 -0
  108. package/dist/{unmark-as-template-BHk2F0ck.js → unmark-as-template-C5ovsEBP.js} +2 -2
  109. package/dist/{unmark-as-template-BRnMhh7n.cjs → unmark-as-template-F7TdgWjI.cjs} +1 -1
  110. package/dist/{unpublish-page-BOEjCHLB.js → unpublish-page-0fR1o0b7.js} +8 -8
  111. package/dist/{unpublish-page-Bu75lH33.cjs → unpublish-page-CUr8Xub6.cjs} +1 -1
  112. package/dist/{unpublished-partials-modal-C0_0qNvV.js → unpublished-partials-modal-BhNAub_z.js} +1 -1
  113. package/dist/{unpublished-partials-modal-BS_GddEG.cjs → unpublished-partials-modal-Cv5R9-hi.cjs} +1 -1
  114. package/dist/{web-preview-DcOhTGup.cjs → web-preview-CuMYekVJ.cjs} +1 -1
  115. package/dist/{web-preview-C3bbIF6T.js → web-preview-D9pXonAv.js} +1 -1
  116. package/package.json +1 -1
  117. package/dist/ai-panel-default-lang-DsGjoITc.cjs +0 -3
  118. package/dist/ai-panel-default-lang-Dy_4L5pH.js +0 -317
  119. package/dist/ai-panel-other-lang-1RYtb71B.js +0 -132
  120. package/dist/ai-panel-other-lang-CL3coL7Z.cjs +0 -1
  121. package/dist/ai-prompt-input-BhTL_-mT.cjs +0 -1
  122. package/dist/index-BeGLwvqs.cjs +0 -5
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./AP7HFJJL-D18sv0Wh.cjs"),t=require("./index-BeGLwvqs.cjs");var s=o=>{const[r,n]=e.createLocalStorage({prefix:"TanstackQueryDevtools"}),a=t.getPreferredColorScheme(),l=t.createMemo(()=>{const c=o.theme||r.theme_preference||e.THEME_PREFERENCE;return c!=="system"?c:a()});return t.createComponent(e.QueryDevtoolsContext.Provider,{value:o,get children(){return t.createComponent(e.PiPProvider,{localStore:r,setLocalStore:n,get children(){return t.createComponent(e.ThemeContext.Provider,{value:l,get children(){return t.createComponent(e.Devtools,{localStore:r,setLocalStore:n})}})}})}})},u=s;exports.default=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./AP7HFJJL-DYFttFoI.cjs"),t=require("./index-BVwFJWDq.cjs");var s=o=>{const[r,n]=e.createLocalStorage({prefix:"TanstackQueryDevtools"}),a=t.getPreferredColorScheme(),l=t.createMemo(()=>{const c=o.theme||r.theme_preference||e.THEME_PREFERENCE;return c!=="system"?c:a()});return t.createComponent(e.QueryDevtoolsContext.Provider,{value:o,get children(){return t.createComponent(e.PiPProvider,{localStore:r,setLocalStore:n,get children(){return t.createComponent(e.ThemeContext.Provider,{value:l,get children(){return t.createComponent(e.Devtools,{localStore:r,setLocalStore:n})}})}})}})},u=s;exports.default=u;
@@ -1,5 +1,5 @@
1
- import { c, T as l, P as m, a as v, D as u, Q as i } from "./AP7HFJJL-CBrphwP9.js";
2
- import { s as d, t as f, v as e } from "./index-BYjniKhj.js";
1
+ import { c, T as l, P as m, a as v, D as u, Q as i } from "./AP7HFJJL-q4dJdyFs.js";
2
+ import { v as d, w as f, x as e } from "./index-LBTm1Jmk.js";
3
3
  var h = (t) => {
4
4
  const [r, o] = c({
5
5
  prefix: "TanstackQueryDevtools"
@@ -1,4 +1,4 @@
1
- "use strict";var hu=Object.defineProperty;var mu=(e,t,r)=>t in e?hu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Ie=(e,t,r)=>mu(e,typeof t!="symbol"?t+"":t,r);const ut=require("./register-partial-type-ig9fUWIJ.cjs"),j=require("lodash-es"),yu=require("./_commonjsHelpers-DwGv2jUC.cjs"),vu=require("fs"),wu=require("path"),_u=require("os"),is=require("crypto"),Tu=require("drizzle-orm/postgres-js"),Eu=require("postgres"),g=require("drizzle-orm/pg-core"),h=require("drizzle-orm"),bu=require("./models-D0RH2u4C.cjs"),v=require("zod"),Iu=require("./core-czmLeR0h.cjs"),Su=require("node:crypto");var ls="vercel.ai.error",Au=Symbol.for(ls),Ea,ba,H=class us extends(ba=Error,Ea=Au,ba){constructor({name:t,message:r,cause:n}){super(r),this[Ea]=!0,this.name=t,this.cause=n}static isInstance(t){return us.hasMarker(t,ls)}static hasMarker(t,r){const n=Symbol.for(r);return t!=null&&typeof t=="object"&&n in t&&typeof t[n]=="boolean"&&t[n]===!0}},cs="AI_APICallError",ds=`vercel.ai.error.${cs}`,Nu=Symbol.for(ds),Ia,Sa,$e=class extends(Sa=H,Ia=Nu,Sa){constructor({message:e,url:t,requestBodyValues:r,statusCode:n,responseHeaders:a,responseBody:o,cause:s,isRetryable:i=n!=null&&(n===408||n===409||n===429||n>=500),data:l}){super({name:cs,message:e,cause:s}),this[Ia]=!0,this.url=t,this.requestBodyValues=r,this.statusCode=n,this.responseHeaders=a,this.responseBody=o,this.isRetryable=i,this.data=l}static isInstance(e){return H.hasMarker(e,ds)}},ps="AI_EmptyResponseBodyError",fs=`vercel.ai.error.${ps}`,xu=Symbol.for(fs),Aa,Na,Ou=class extends(Na=H,Aa=xu,Na){constructor({message:e="Empty response body"}={}){super({name:ps,message:e}),this[Aa]=!0}static isInstance(e){return H.hasMarker(e,fs)}};function Wt(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}var gs="AI_InvalidArgumentError",hs=`vercel.ai.error.${gs}`,Ru=Symbol.for(hs),xa,Oa,Cu=class extends(Oa=H,xa=Ru,Oa){constructor({message:t,cause:r,argument:n}){super({name:gs,message:t,cause:r}),this[xa]=!0,this.argument=n}static isInstance(t){return H.hasMarker(t,hs)}},ms="AI_InvalidPromptError",ys=`vercel.ai.error.${ms}`,ku=Symbol.for(ys),Ra,Ca,Zt=class extends(Ca=H,Ra=ku,Ca){constructor({prompt:e,message:t,cause:r}){super({name:ms,message:`Invalid prompt: ${t}`,cause:r}),this[Ra]=!0,this.prompt=e}static isInstance(e){return H.hasMarker(e,ys)}},vs="AI_JSONParseError",ws=`vercel.ai.error.${vs}`,Pu=Symbol.for(ws),ka,Pa,Gr=class extends(Pa=H,ka=Pu,Pa){constructor({text:e,cause:t}){super({name:vs,message:`JSON parsing failed: Text: ${e}.
1
+ "use strict";var hu=Object.defineProperty;var mu=(e,t,r)=>t in e?hu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Ie=(e,t,r)=>mu(e,typeof t!="symbol"?t+"":t,r);const ut=require("./register-partial-type-ig9fUWIJ.cjs"),j=require("lodash-es"),yu=require("./_commonjsHelpers-DwGv2jUC.cjs"),vu=require("fs"),wu=require("path"),_u=require("os"),is=require("crypto"),Tu=require("drizzle-orm/postgres-js"),Eu=require("postgres"),g=require("drizzle-orm/pg-core"),h=require("drizzle-orm"),bu=require("./models-CQaC3EBW.cjs"),v=require("zod"),Iu=require("./core-czmLeR0h.cjs"),Su=require("node:crypto");var ls="vercel.ai.error",Au=Symbol.for(ls),Ea,ba,H=class us extends(ba=Error,Ea=Au,ba){constructor({name:t,message:r,cause:n}){super(r),this[Ea]=!0,this.name=t,this.cause=n}static isInstance(t){return us.hasMarker(t,ls)}static hasMarker(t,r){const n=Symbol.for(r);return t!=null&&typeof t=="object"&&n in t&&typeof t[n]=="boolean"&&t[n]===!0}},cs="AI_APICallError",ds=`vercel.ai.error.${cs}`,Nu=Symbol.for(ds),Ia,Sa,$e=class extends(Sa=H,Ia=Nu,Sa){constructor({message:e,url:t,requestBodyValues:r,statusCode:n,responseHeaders:a,responseBody:o,cause:s,isRetryable:i=n!=null&&(n===408||n===409||n===429||n>=500),data:l}){super({name:cs,message:e,cause:s}),this[Ia]=!0,this.url=t,this.requestBodyValues=r,this.statusCode=n,this.responseHeaders=a,this.responseBody=o,this.isRetryable=i,this.data=l}static isInstance(e){return H.hasMarker(e,ds)}},ps="AI_EmptyResponseBodyError",fs=`vercel.ai.error.${ps}`,xu=Symbol.for(fs),Aa,Na,Ou=class extends(Na=H,Aa=xu,Na){constructor({message:e="Empty response body"}={}){super({name:ps,message:e}),this[Aa]=!0}static isInstance(e){return H.hasMarker(e,fs)}};function Wt(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}var gs="AI_InvalidArgumentError",hs=`vercel.ai.error.${gs}`,Ru=Symbol.for(hs),xa,Oa,Cu=class extends(Oa=H,xa=Ru,Oa){constructor({message:t,cause:r,argument:n}){super({name:gs,message:t,cause:r}),this[xa]=!0,this.argument=n}static isInstance(t){return H.hasMarker(t,hs)}},ms="AI_InvalidPromptError",ys=`vercel.ai.error.${ms}`,ku=Symbol.for(ys),Ra,Ca,Zt=class extends(Ca=H,Ra=ku,Ca){constructor({prompt:e,message:t,cause:r}){super({name:ms,message:`Invalid prompt: ${t}`,cause:r}),this[Ra]=!0,this.prompt=e}static isInstance(e){return H.hasMarker(e,ys)}},vs="AI_JSONParseError",ws=`vercel.ai.error.${vs}`,Pu=Symbol.for(ws),ka,Pa,Gr=class extends(Pa=H,ka=Pu,Pa){constructor({text:e,cause:t}){super({name:vs,message:`JSON parsing failed: Text: ${e}.
2
2
  Error message: ${Wt(t)}`,cause:t}),this[ka]=!0,this.text=e}static isInstance(e){return H.hasMarker(e,ws)}},_s="AI_TypeValidationError",Ts=`vercel.ai.error.${_s}`,Du=Symbol.for(Ts),Da,za,Rt=class Fn extends(za=H,Da=Du,za){constructor({value:t,cause:r}){super({name:_s,message:`Type validation failed: Value: ${JSON.stringify(t)}.
3
3
  Error message: ${Wt(r)}`,cause:r}),this[Da]=!0,this.value=t}static isInstance(t){return H.hasMarker(t,Ts)}static wrap({value:t,cause:r}){return Fn.isInstance(r)&&r.value===t?r:new Fn({value:t,cause:r})}};function E(e,t,r){function n(i,l){if(i._zod||Object.defineProperty(i,"_zod",{value:{def:l,constr:s,traits:new Set},enumerable:!1}),i._zod.traits.has(e))return;i._zod.traits.add(e),t(i,l);const u=s.prototype,c=Object.keys(u);for(let d=0;d<c.length;d++){const p=c[d];p in i||(i[p]=u[p].bind(i))}}const a=(r==null?void 0:r.Parent)??Object;class o extends a{}Object.defineProperty(o,"name",{value:e});function s(i){var l;const u=r!=null&&r.Parent?new o:this;n(u,i),(l=u._zod).deferred??(l.deferred=[]);for(const c of u._zod.deferred)c();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:i=>{var l,u;return r!=null&&r.Parent&&i instanceof r.Parent?!0:(u=(l=i==null?void 0:i._zod)==null?void 0:l.traits)==null?void 0:u.has(e)}}),Object.defineProperty(s,"name",{value:e}),s}class Vt extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Es extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const bs={};function wt(e){return bs}function Is(e){const t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,a])=>t.indexOf(+n)===-1).map(([n,a])=>a)}function Ln(e,t){return typeof t=="bigint"?t.toString():t}function un(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function Wn(e){return e==null}function Xn(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function zu(e,t){const r=(e.toString().split(".")[1]||"").length,n=t.toString();let a=(n.split(".")[1]||"").length;if(a===0&&/\d?e-\d?/.test(n)){const l=n.match(/\d?e-(\d?)/);l!=null&&l[1]&&(a=Number.parseInt(l[1]))}const o=r>a?r:a,s=Number.parseInt(e.toFixed(o).replace(".","")),i=Number.parseInt(t.toFixed(o).replace(".",""));return s%i/10**o}const $a=Symbol("evaluating");function Y(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==$a)return n===void 0&&(n=$a,n=r()),n},set(a){Object.defineProperty(e,t,{value:a})},configurable:!0})}function Pt(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function bt(...e){const t={};for(const r of e){const n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function Ma(e){return JSON.stringify(e)}function $u(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const Ss="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function gr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const Mu=un(()=>{var e;if(typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)!=null&&e.includes("Cloudflare")))return!1;try{const t=Function;return new t(""),!0}catch{return!1}});function Ht(e){if(gr(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const r=t.prototype;return!(gr(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function As(e){return Ht(e)?{...e}:Array.isArray(e)?[...e]:e}const Fu=new Set(["string","number","symbol"]);function Jt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function It(e,t,r){const n=new e._zod.constr(t??e._zod.def);return(!t||r!=null&&r.parent)&&(n._zod.parent=e),n}function C(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if((t==null?void 0:t.message)!==void 0){if((t==null?void 0:t.error)!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Lu(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const Uu={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function ju(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const o=bt(e._zod.def,{get shape(){const s={};for(const i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(s[i]=r.shape[i])}return Pt(this,"shape",s),s},checks:[]});return It(e,o)}function qu(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const o=bt(e._zod.def,{get shape(){const s={...e._zod.def.shape};for(const i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete s[i]}return Pt(this,"shape",s),s},checks:[]});return It(e,o)}function Zu(e,t){if(!Ht(t))throw new Error("Invalid input to extend: expected a plain object");const r=e._zod.def.checks;if(r&&r.length>0){const o=e._zod.def.shape;for(const s in t)if(Object.getOwnPropertyDescriptor(o,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const a=bt(e._zod.def,{get shape(){const o={...e._zod.def.shape,...t};return Pt(this,"shape",o),o}});return It(e,a)}function Gu(e,t){if(!Ht(t))throw new Error("Invalid input to safeExtend: expected a plain object");const r=bt(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return Pt(this,"shape",n),n}});return It(e,r)}function Bu(e,t){const r=bt(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return Pt(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return It(e,r)}function Vu(e,t,r){const a=t._zod.def.checks;if(a&&a.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const s=bt(t._zod.def,{get shape(){const i=t._zod.def.shape,l={...i};if(r)for(const u in r){if(!(u in i))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(l[u]=e?new e({type:"optional",innerType:i[u]}):i[u])}else for(const u in i)l[u]=e?new e({type:"optional",innerType:i[u]}):i[u];return Pt(this,"shape",l),l},checks:[]});return It(t,s)}function Hu(e,t,r){const n=bt(t._zod.def,{get shape(){const a=t._zod.def.shape,o={...a};if(r)for(const s in r){if(!(s in o))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(o[s]=new e({type:"nonoptional",innerType:a[s]}))}else for(const s in a)o[s]=new e({type:"nonoptional",innerType:a[s]});return Pt(this,"shape",o),o}});return It(t,n)}function Gt(e,t=0){var r;if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(((r=e.issues[n])==null?void 0:r.continue)!==!0)return!0;return!1}function Bt(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Fr(e){return typeof e=="string"?e:e==null?void 0:e.message}function _t(e,t,r){var a,o,s,i,l,u;const n={...e,path:e.path??[]};if(!e.message){const c=Fr((s=(o=(a=e.inst)==null?void 0:a._zod.def)==null?void 0:o.error)==null?void 0:s.call(o,e))??Fr((i=t==null?void 0:t.error)==null?void 0:i.call(t,e))??Fr((l=r.customError)==null?void 0:l.call(r,e))??Fr((u=r.localeError)==null?void 0:u.call(r,e))??"Invalid input";n.message=c}return delete n.inst,delete n.continue,t!=null&&t.reportInput||delete n.input,n}function Qn(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function hr(...e){const[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}const Ns=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Ln,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},xs=E("$ZodError",Ns),Os=E("$ZodError",Ns,{Parent:Error});function Ju(e,t=r=>r.message){const r={},n=[];for(const a of e.issues)a.path.length>0?(r[a.path[0]]=r[a.path[0]]||[],r[a.path[0]].push(t(a))):n.push(t(a));return{formErrors:n,fieldErrors:r}}function Yu(e,t=r=>r.message){const r={_errors:[]},n=a=>{for(const o of a.issues)if(o.code==="invalid_union"&&o.errors.length)o.errors.map(s=>n({issues:s}));else if(o.code==="invalid_key")n({issues:o.issues});else if(o.code==="invalid_element")n({issues:o.issues});else if(o.path.length===0)r._errors.push(t(o));else{let s=r,i=0;for(;i<o.path.length;){const l=o.path[i];i===o.path.length-1?(s[l]=s[l]||{_errors:[]},s[l]._errors.push(t(o))):s[l]=s[l]||{_errors:[]},s=s[l],i++}}};return n(e),r}const ea=e=>(t,r,n,a)=>{const o=n?Object.assign(n,{async:!1}):{async:!1},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new Vt;if(s.issues.length){const i=new((a==null?void 0:a.Err)??e)(s.issues.map(l=>_t(l,o,wt())));throw Ss(i,a==null?void 0:a.callee),i}return s.value},ta=e=>async(t,r,n,a)=>{const o=n?Object.assign(n,{async:!0}):{async:!0};let s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise&&(s=await s),s.issues.length){const i=new((a==null?void 0:a.Err)??e)(s.issues.map(l=>_t(l,o,wt())));throw Ss(i,a==null?void 0:a.callee),i}return s.value},cn=e=>(t,r,n)=>{const a=n?{...n,async:!1}:{async:!1},o=t._zod.run({value:r,issues:[]},a);if(o instanceof Promise)throw new Vt;return o.issues.length?{success:!1,error:new(e??xs)(o.issues.map(s=>_t(s,a,wt())))}:{success:!0,data:o.value}},Ku=cn(Os),dn=e=>async(t,r,n)=>{const a=n?Object.assign(n,{async:!0}):{async:!0};let o=t._zod.run({value:r,issues:[]},a);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(s=>_t(s,a,wt())))}:{success:!0,data:o.value}},Wu=dn(Os),Xu=e=>(t,r,n)=>{const a=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return ea(e)(t,r,a)},Qu=e=>(t,r,n)=>ea(e)(t,r,n),ec=e=>async(t,r,n)=>{const a=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return ta(e)(t,r,a)},tc=e=>async(t,r,n)=>ta(e)(t,r,n),rc=e=>(t,r,n)=>{const a=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return cn(e)(t,r,a)},nc=e=>(t,r,n)=>cn(e)(t,r,n),ac=e=>async(t,r,n)=>{const a=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return dn(e)(t,r,a)},oc=e=>async(t,r,n)=>dn(e)(t,r,n),sc=/^[cC][^\s-]{8,}$/,ic=/^[0-9a-z]+$/,lc=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,uc=/^[0-9a-vA-V]{20}$/,cc=/^[A-Za-z0-9]{27}$/,dc=/^[a-zA-Z0-9_-]{21}$/,pc=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,fc=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Fa=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,gc=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,hc="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function mc(){return new RegExp(hc,"u")}const yc=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,vc=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,wc=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,_c=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Tc=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Rs=/^[A-Za-z0-9_-]*$/,Ec=/^\+[1-9]\d{6,14}$/,Cs="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",bc=new RegExp(`^${Cs}$`);function ks(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Ic(e){return new RegExp(`^${ks(e)}$`)}function Sc(e){const t=ks({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${r.join("|")})`;return new RegExp(`^${Cs}T(?:${n})$`)}const Ac=e=>{const t=e?`[\\s\\S]{${(e==null?void 0:e.minimum)??0},${(e==null?void 0:e.maximum)??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Nc=/^-?\d+$/,Ps=/^-?\d+(?:\.\d+)?$/,xc=/^(?:true|false)$/i,Oc=/^null$/i,Rc=/^[^A-Z]*$/,Cc=/^[^a-z]*$/,Me=E("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),Ds={number:"number",bigint:"bigint",object:"date"},zs=E("$ZodCheckLessThan",(e,t)=>{Me.init(e,t);const r=Ds[typeof t.value];e._zod.onattach.push(n=>{const a=n._zod.bag,o=(t.inclusive?a.maximum:a.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<o&&(t.inclusive?a.maximum=t.value:a.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),$s=E("$ZodCheckGreaterThan",(e,t)=>{Me.init(e,t);const r=Ds[typeof t.value];e._zod.onattach.push(n=>{const a=n._zod.bag,o=(t.inclusive?a.minimum:a.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?a.minimum=t.value:a.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),kc=E("$ZodCheckMultipleOf",(e,t)=>{Me.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):zu(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),Pc=E("$ZodCheckNumberFormat",(e,t)=>{var s;Me.init(e,t),t.format=t.format||"float64";const r=(s=t.format)==null?void 0:s.includes("int"),n=r?"int":"number",[a,o]=Uu[t.format];e._zod.onattach.push(i=>{const l=i._zod.bag;l.format=t.format,l.minimum=a,l.maximum=o,r&&(l.pattern=Nc)}),e._zod.check=i=>{const l=i.value;if(r){if(!Number.isInteger(l)){i.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});return}if(!Number.isSafeInteger(l)){l>0?i.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):i.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}l<a&&i.issues.push({origin:"number",input:l,code:"too_small",minimum:a,inclusive:!0,inst:e,continue:!t.abort}),l>o&&i.issues.push({origin:"number",input:l,code:"too_big",maximum:o,inclusive:!0,inst:e,continue:!t.abort})}}),Dc=E("$ZodCheckMaxLength",(e,t)=>{var r;Me.init(e,t),(r=e._zod.def).when??(r.when=n=>{const a=n.value;return!Wn(a)&&a.length!==void 0}),e._zod.onattach.push(n=>{const a=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<a&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const a=n.value;if(a.length<=t.maximum)return;const s=Qn(a);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:a,inst:e,continue:!t.abort})}}),zc=E("$ZodCheckMinLength",(e,t)=>{var r;Me.init(e,t),(r=e._zod.def).when??(r.when=n=>{const a=n.value;return!Wn(a)&&a.length!==void 0}),e._zod.onattach.push(n=>{const a=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>a&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const a=n.value;if(a.length>=t.minimum)return;const s=Qn(a);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:a,inst:e,continue:!t.abort})}}),$c=E("$ZodCheckLengthEquals",(e,t)=>{var r;Me.init(e,t),(r=e._zod.def).when??(r.when=n=>{const a=n.value;return!Wn(a)&&a.length!==void 0}),e._zod.onattach.push(n=>{const a=n._zod.bag;a.minimum=t.length,a.maximum=t.length,a.length=t.length}),e._zod.check=n=>{const a=n.value,o=a.length;if(o===t.length)return;const s=Qn(a),i=o>t.length;n.issues.push({origin:s,...i?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),pn=E("$ZodCheckStringFormat",(e,t)=>{var r,n;Me.init(e,t),e._zod.onattach.push(a=>{const o=a._zod.bag;o.format=t.format,t.pattern&&(o.patterns??(o.patterns=new Set),o.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=a=>{t.pattern.lastIndex=0,!t.pattern.test(a.value)&&a.issues.push({origin:"string",code:"invalid_format",format:t.format,input:a.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),Mc=E("$ZodCheckRegex",(e,t)=>{pn.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Fc=E("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Rc),pn.init(e,t)}),Lc=E("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Cc),pn.init(e,t)}),Uc=E("$ZodCheckIncludes",(e,t)=>{Me.init(e,t);const r=Jt(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(a=>{const o=a._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=a=>{a.value.includes(t.includes,t.position)||a.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:a.value,inst:e,continue:!t.abort})}}),jc=E("$ZodCheckStartsWith",(e,t)=>{Me.init(e,t);const r=new RegExp(`^${Jt(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const a=n._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),qc=E("$ZodCheckEndsWith",(e,t)=>{Me.init(e,t);const r=new RegExp(`.*${Jt(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const a=n._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Zc=E("$ZodCheckOverwrite",(e,t)=>{Me.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});class Gc{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const n=t.split(`
4
4
  `).filter(s=>s),a=Math.min(...n.map(s=>s.length-s.trimStart().length)),o=n.map(s=>s.slice(a)).map(s=>" ".repeat(this.indent*2)+s);for(const s of o)this.content.push(s)}compile(){const t=Function,r=this==null?void 0:this.args,a=[...((this==null?void 0:this.content)??[""]).map(o=>` ${o}`)];return new t(...r,a.join(`
@@ -412,9 +412,17 @@ Format:
412
412
  - NEVER break the format.
413
413
  - NEVER place ANYTHING before '--START--'.
414
414
  - The output must always begin with '--START--' and end with '--END--'.
415
- `.trim();function ru(e=null){if(e)switch(e){case"TRANSLATE_CONTENT":return wv;case"UPDATE_CONTENT":return _v;default:return Qo}return Qo}const Tv="google/gemini-2.5-flash";class Ev{constructor(t){Ie(this,"model",Tv);Ie(this,"temperature",.7);this.options=t,this.model=(t==null?void 0:t.model)??this.model}async handleRequest(t,r){var p,w;const{messages:n,image:a,initiator:o=null,model:s}=t,i=s||this.model,l=n.filter(b=>b.role!=="system"),u=l[l.length-1],c=a?[...l.slice(0,-1),{role:"user",content:[{type:"text",text:u.content},{type:"image",image:a}]}]:n,d=mv({model:i,system:ru(o),messages:c,temperature:this.temperature,onFinish:((p=this.options)==null?void 0:p.onFinish)??j.noop,onError:((w=this.options)==null?void 0:w.onError)??j.noop});return r&&d.pipeTextStreamToResponse(r),d}isConfigured(){return!0}}var Qe={exports:{}};const bv="16.6.1",Iv={version:bv};var es;function nu(){if(es)return Qe.exports;es=1;const e=vu,t=wu,r=_u,n=is,o=Iv.version,s=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function i(y){const x={};let D=y.toString();D=D.replace(/\r\n?/mg,`
415
+ `.trim();function ru(e=null){if(e)switch(e){case"TRANSLATE_CONTENT":return wv;case"UPDATE_CONTENT":return _v;default:return Qo}return Qo}const Tv="google/gemini-2.5-flash";class Ev{constructor(t){Ie(this,"model",Tv);Ie(this,"temperature",.7);this.options=t,this.model=(t==null?void 0:t.model)??this.model}async handleRequest(t,r){var b,_;const{messages:n,image:a,initiator:o=null,model:s,context:i}=t,l=s||this.model,u=n.filter(I=>I.role!=="system"),c=u[u.length-1],d=a?[...u.slice(0,-1),{role:"user",content:[{type:"text",text:c.content},{type:"image",image:a}]}]:n;let p=ru(o);i&&(p+=`
416
+
417
+ ## Additional Information`,i!=null&&i.site&&(p+=`
418
+
419
+ ## Website Information
420
+ ${JSON.stringify(i.site)}`),i!=null&&i.page&&(p+=`
421
+
422
+ ## Page Information
423
+ ${JSON.stringify(i.page)}`));const w=mv({model:l,system:p,messages:d,temperature:this.temperature,onFinish:((b=this.options)==null?void 0:b.onFinish)??j.noop,onError:((_=this.options)==null?void 0:_.onError)??j.noop});return r&&w.pipeTextStreamToResponse(r),w}isConfigured(){return!0}}var Qe={exports:{}};const bv="16.6.1",Iv={version:bv};var es;function nu(){if(es)return Qe.exports;es=1;const e=vu,t=wu,r=_u,n=is,o=Iv.version,s=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function i(y){const x={};let D=y.toString();D=D.replace(/\r\n?/mg,`
416
424
  `);let F;for(;(F=s.exec(D))!=null;){const se=F[1];let L=F[2]||"";L=L.trim();const X=L[0];L=L.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),X==='"'&&(L=L.replace(/\\n/g,`
417
- `),L=L.replace(/\\r/g,"\r")),x[se]=L}return x}function l(y){y=y||{};const x=b(y);y.path=x;const D=O.configDotenv(y);if(!D.parsed){const X=new Error(`MISSING_DATA: Cannot parse ${x} for an unknown reason`);throw X.code="MISSING_DATA",X}const F=p(y).split(","),se=F.length;let L;for(let X=0;X<se;X++)try{const Q=F[X].trim(),le=w(D,Q);L=O.decrypt(le.ciphertext,le.key);break}catch(Q){if(X+1>=se)throw Q}return O.parse(L)}function u(y){console.log(`[dotenv@${o}][WARN] ${y}`)}function c(y){console.log(`[dotenv@${o}][DEBUG] ${y}`)}function d(y){console.log(`[dotenv@${o}] ${y}`)}function p(y){return y&&y.DOTENV_KEY&&y.DOTENV_KEY.length>0?y.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function w(y,x){let D;try{D=new URL(x)}catch(Q){if(Q.code==="ERR_INVALID_URL"){const le=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw le.code="INVALID_DOTENV_KEY",le}throw Q}const F=D.password;if(!F){const Q=new Error("INVALID_DOTENV_KEY: Missing key part");throw Q.code="INVALID_DOTENV_KEY",Q}const se=D.searchParams.get("environment");if(!se){const Q=new Error("INVALID_DOTENV_KEY: Missing environment part");throw Q.code="INVALID_DOTENV_KEY",Q}const L=`DOTENV_VAULT_${se.toUpperCase()}`,X=y.parsed[L];if(!X){const Q=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${L} in your .env.vault file.`);throw Q.code="NOT_FOUND_DOTENV_ENVIRONMENT",Q}return{ciphertext:X,key:F}}function b(y){let x=null;if(y&&y.path&&y.path.length>0)if(Array.isArray(y.path))for(const D of y.path)e.existsSync(D)&&(x=D.endsWith(".vault")?D:`${D}.vault`);else x=y.path.endsWith(".vault")?y.path:`${y.path}.vault`;else x=t.resolve(process.cwd(),".env.vault");return e.existsSync(x)?x:null}function _(y){return y[0]==="~"?t.join(r.homedir(),y.slice(1)):y}function I(y){const x=!!(y&&y.debug),D=y&&"quiet"in y?y.quiet:!0;(x||!D)&&d("Loading env from encrypted .env.vault");const F=O._parseVault(y);let se=process.env;return y&&y.processEnv!=null&&(se=y.processEnv),O.populate(se,F,y),{parsed:F}}function k(y){const x=t.resolve(process.cwd(),".env");let D="utf8";const F=!!(y&&y.debug),se=y&&"quiet"in y?y.quiet:!0;y&&y.encoding?D=y.encoding:F&&c("No encoding is specified. UTF-8 is used by default");let L=[x];if(y&&y.path)if(!Array.isArray(y.path))L=[_(y.path)];else{L=[];for(const xe of y.path)L.push(_(xe))}let X;const Q={};for(const xe of L)try{const Te=O.parse(e.readFileSync(xe,{encoding:D}));O.populate(Q,Te,y)}catch(Te){F&&c(`Failed to load ${xe} ${Te.message}`),X=Te}let le=process.env;if(y&&y.processEnv!=null&&(le=y.processEnv),O.populate(le,Q,y),F||!se){const xe=Object.keys(Q).length,Te=[];for(const ct of L)try{const Fe=t.relative(process.cwd(),ct);Te.push(Fe)}catch(Fe){F&&c(`Failed to load ${ct} ${Fe.message}`),X=Fe}d(`injecting env (${xe}) from ${Te.join(",")}`)}return X?{parsed:Q,error:X}:{parsed:Q}}function P(y){if(p(y).length===0)return O.configDotenv(y);const x=b(y);return x?O._configVault(y):(u(`You set DOTENV_KEY but you are missing a .env.vault file at ${x}. Did you forget to build it?`),O.configDotenv(y))}function m(y,x){const D=Buffer.from(x.slice(-64),"hex");let F=Buffer.from(y,"base64");const se=F.subarray(0,12),L=F.subarray(-16);F=F.subarray(12,-16);try{const X=n.createDecipheriv("aes-256-gcm",D,se);return X.setAuthTag(L),`${X.update(F)}${X.final()}`}catch(X){const Q=X instanceof RangeError,le=X.message==="Invalid key length",xe=X.message==="Unsupported state or unable to authenticate data";if(Q||le){const Te=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw Te.code="INVALID_DOTENV_KEY",Te}else if(xe){const Te=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw Te.code="DECRYPTION_FAILED",Te}else throw X}}function z(y,x,D={}){const F=!!(D&&D.debug),se=!!(D&&D.override);if(typeof x!="object"){const L=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw L.code="OBJECT_REQUIRED",L}for(const L of Object.keys(x))Object.prototype.hasOwnProperty.call(y,L)?(se===!0&&(y[L]=x[L]),F&&c(se===!0?`"${L}" is already defined and WAS overwritten`:`"${L}" is already defined and was NOT overwritten`)):y[L]=x[L]}const O={configDotenv:k,_configVault:I,_parseVault:l,config:P,decrypt:m,parse:i,populate:z};return Qe.exports.configDotenv=O.configDotenv,Qe.exports._configVault=O._configVault,Qe.exports._parseVault=O._parseVault,Qe.exports.config=O.config,Qe.exports.decrypt=O.decrypt,Qe.exports.parse=O.parse,Qe.exports.populate=O.populate,Qe.exports=O,Qe.exports}var Sv=nu();const Av=yu.getDefaultExportFromCjs(Sv),Nv=g.pgSequence("app_pages_metadata_id_seq",{startWith:"1",increment:"1",minValue:"1",maxValue:"9223372036854775807",cache:"1",cycle:!1}),xv=g.pgSequence("webhook_events_id_seq",{startWith:"1",increment:"1",minValue:"1",maxValue:"9223372036854775807",cache:"1",cycle:!1}),Ov=g.pgTable("app_assets",{id:g.uuid().defaultRandom().primaryKey().notNull(),app:g.uuid(),name:g.text(),description:g.text(),url:g.text(),size:g.text(),folderId:g.text(),thumbnailUrl:g.text(),duration:g.numeric(),format:g.text(),width:g.numeric(),height:g.numeric(),createdBy:g.text(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),type:g.text(),updatedAt:g.timestamp({withTimezone:!0,mode:"string"})},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_assets_app_fkey"})]),he=g.pgTable("app_pages_online",{createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),slug:g.text().notNull(),lang:g.text().default("").notNull(),seo:g.jsonb().default({}),app:g.uuid().notNull(),id:g.uuid().primaryKey().notNull(),name:g.text().notNull(),primaryPage:g.uuid(),blocks:g.jsonb().default([]),currentEditor:g.text(),changes:g.jsonb(),partialBlocks:g.text(),links:g.text(),online:g.boolean().default(!0),pageType:g.text(),parent:g.uuid(),lastSaved:g.timestamp({withTimezone:!0,mode:"string"}),dynamic:g.boolean().default(!1),libRefId:g.uuid(),dynamicSlugCustom:g.text().default(""),metadata:g.jsonb().default({}),jsonld:g.jsonb().default({}),globalJsonLds:g.jsonb().default([]),designTokens:g.jsonb()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_pages_online_app_fkey"})]),ge=g.pgTable("apps",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),name:g.text(),user:g.text(),settings:g.jsonb().default({}),theme:g.jsonb().default({}),fallbackLang:g.text().default("en"),languages:g.jsonb().default([]),changes:g.jsonb(),deletedAt:g.timestamp({withTimezone:!0,mode:"string"}),client:g.uuid(),designTokens:g.jsonb().default({})}),mt=g.pgTable("apps_online",{id:g.uuid().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),name:g.text(),user:g.text(),settings:g.jsonb().default({}),theme:g.jsonb().default({}),fallbackLang:g.text().default("en"),languages:g.jsonb().default([]),changes:g.jsonb(),apiKey:g.text(),deletedAt:g.timestamp({withTimezone:!0,mode:"string"}),client:g.uuid(),designTokens:g.jsonb().default({})}),W=g.pgTable("libraries",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),name:g.text(),app:g.uuid(),type:g.text(),status:g.text().default("active").notNull(),client:g.uuid()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"libraries_app_fkey"})]),Rv=g.pgTable("app_form_submissions",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),app:g.uuid(),formData:g.json(),additionalData:g.json(),formName:g.text().default(""),pageUrl:g.text()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_form_submissions_app_fkey"})]),f=g.pgTable("app_pages",{createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),slug:g.text().notNull(),lang:g.text().default("").notNull(),seo:g.jsonb().default({}),app:g.uuid().notNull(),id:g.uuid().defaultRandom().primaryKey().notNull(),name:g.text().notNull(),primaryPage:g.uuid(),blocks:g.jsonb().default([]),currentEditor:g.text(),changes:g.jsonb(),online:g.boolean().default(!1),parent:g.uuid(),pageType:g.text(),lastSaved:g.timestamp({withTimezone:!0,mode:"string"}),dynamic:g.boolean().default(!1),libRefId:g.uuid(),dynamicSlugCustom:g.text().default(""),metadata:g.jsonb().default({}),jsonld:g.jsonb().default({}),globalJsonLds:g.jsonb().default([]),links:g.text(),partialBlocks:g.text(),designTokens:g.jsonb()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_pages_app_fkey"}),g.foreignKey({columns:[e.parent],foreignColumns:[e.id],name:"app_pages_parent_fkey"})]),Se=g.pgTable("app_pages_revisions",{createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),slug:g.text().notNull(),lang:g.text().default("").notNull(),seo:g.jsonb().default({}),app:g.uuid().notNull(),id:g.uuid().notNull(),name:g.text().notNull(),primaryPage:g.uuid(),blocks:g.jsonb().default([]),currentEditor:g.text(),changes:g.jsonb(),partialBlocks:g.text(),links:g.text(),online:g.boolean().default(!0),pageType:g.text(),parent:g.uuid(),lastSaved:g.timestamp({withTimezone:!0,mode:"string"}),dynamic:g.boolean().default(!1),uid:g.uuid().defaultRandom().primaryKey().notNull(),type:g.text(),libRefId:g.uuid(),dynamicSlugCustom:g.text().default(""),metadata:g.jsonb().default({}),jsonld:g.jsonb().default({}),globalJsonLds:g.jsonb().default([]),designTokens:g.jsonb()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_pages_revisions_app_fkey"})]),dr=g.pgTable("app_users",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),user:g.text(),app:g.uuid(),role:g.text(),permissions:g.jsonb(),status:g.text().default("active").notNull()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_users_app_fkey"})]),te=g.pgTable("library_templates",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),user:g.text(),name:g.text(),description:g.text(),pageId:g.uuid(),pageType:g.text(),library:g.uuid(),preview:g.text()},e=>[g.foreignKey({columns:[e.library],foreignColumns:[W.id],name:"library_templates_library_fkey"})]),re=g.pgTable("library_items",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),library:g.uuid(),name:g.text(),description:g.text(),blocks:g.jsonb().default([]),preview:g.text(),group:g.text().default("general"),user:g.text(),html:g.text()},e=>[g.foreignKey({columns:[e.library],foreignColumns:[W.id],name:"library_items_library_fkey"})]),wa=g.pgTable("ai_logs",{id:g.bigint({mode:"number"}).primaryKey().generatedByDefaultAsIdentity({name:"ai_logs_id_seq",startWith:1,increment:1,minValue:1,maxValue:9223372036854776e3,cache:1}),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),model:g.text(),totalDuration:g.numeric(),error:g.text(),totalTokens:g.numeric(),tokenUsage:g.jsonb(),user:g.text(),client:g.uuid().defaultRandom(),cost:g.doublePrecision().default(h.sql`'0'`),prompt:g.text(),app:g.uuid()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"ai_logs_app_fkey"})]),au=Object.freeze(Object.defineProperty({__proto__:null,aiLogs:wa,appAssets:Ov,appFormSubmissions:Rv,appPages:f,appPagesMetadataIdSeq:Nv,appPagesOnline:he,appPagesRevisions:Se,appUsers:dr,apps:ge,appsOnline:mt,libraries:W,libraryItems:re,libraryTemplates:te,webhookEventsIdSeq:xv},Symbol.toStringTag,{value:"Module"}));Av.config();let Sr=process.env.CHAIBUILDER_DATABASE_URL;if(!Sr)throw new Error("Database not configured. Please set CHAIBUILDER_DATABASE_URL environment variable.");const Cv=e=>e.trim().replace(/^"|"$/g,"");Sr=Cv(Sr);const kv=e=>e.startsWith("postgresql://")||e.startsWith("postgres://");if(!kv(Sr))throw new Error("Database connection string is invalid. Please check your CHAIBUILDER_DATABASE_URL environment variable.");const Pv=Eu(Sr,{max:10}),S=Tu.drizzle(Pv,{schema:au});async function A(e){try{return{data:await e(),error:null}}catch(t){return{data:null,error:t}}}const Dv=e=>{var t;return((t=bu.AI_MODELS.find(r=>r.id===e))==null?void 0:t.multiplier)||1};async function zv({userId:e,startTime:t,error:r,model:n,prompt:a,appId:o}){var c;const s=String(r),i=t>0?new Date().getTime()-t:0,l={model:n,totalDuration:String(i),error:s,totalTokens:"0",tokenUsage:{},cost:0,prompt:a,user:e,client:((c=process==null?void 0:process.env)==null?void 0:c.CHAIBUILDER_CLIENT_ID)||null,app:o},{error:u}=await A(()=>S.insert(wa).values(l));u&&console.error("Error logging AI request error:",u)}async function $v({userId:e,startTime:t,arg:r,prompt:n,model:a,appId:o}){var p,w,b;const s=r==null?void 0:r.totalUsage,i=(w=(p=r==null?void 0:r.providerMetadata)==null?void 0:p.gateway)==null?void 0:w.cost,l=t>0?Math.floor(new Date().getTime()-t):0,u=n.indexOf("USER REQUEST");n=n.substring(u).trim();const c={model:a,totalDuration:String(l),error:null,totalTokens:String(Math.round(((s==null?void 0:s.totalTokens)??0)*Dv(a))),tokenUsage:s,cost:i,prompt:n,user:e,client:((b=process==null?void 0:process.env)==null?void 0:b.CHAIBUILDER_CLIENT_ID)||null,app:o},{error:d}=await A(()=>S.insert(wa).values(c));d&&console.error("Error logging AI request:",d)}class T extends Error{constructor(t,r="ACTION_ERROR",n=400,a){super(t),this.code=r,this.status=n,this.error=a,this.name="ActionError",a&&console.error(a)}}class Z{constructor(){Ie(this,"context",null)}validate(t){if(!t)return!0;try{return this.getValidationSchema().parse(t),!0}catch{return!1}}getValidationErrors(t){if(!t)return null;try{return this.getValidationSchema().parse(t),null}catch(r){return r instanceof v.z.ZodError?r.issues.map(a=>`${a.path.join(".")}: ${a.message}`).join(", "):null}}setContext(t){this.context=t}async verifyAccess(){if(!this.context)throw new T("Context not set","CONTEXT_NOT_SET",500);const{getChaiAction:t}=await Promise.resolve().then(()=>Tw),r=t("CHECK_USER_ACCESS");if(!r)throw new T("CHECK_USER_ACCESS action not registered","ACCESS_CHECK_NOT_FOUND",500);r.setContext(this.context),await r.execute({})}handleError(t){if(t instanceof T)throw t;if(t instanceof v.z.ZodError){const r=t.issues.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new T(`Validation failed: ${r}`,"VALIDATION_ERROR")}else{const r=t instanceof Error?t.message:"Unknown error";throw new T(r,"ACTION_ERROR")}}}class Mv extends Z{getValidationSchema(){return v.z.any()}async execute(t){if(!this.context)throw new Error("Context not set");const r=new Date().getTime(),{userId:n,appId:a}=this.context,o=new Ev({onFinish:l=>{var u,c;try{$v({arg:l,prompt:((c=(u=t.messages)==null?void 0:u[t.messages.length-1])==null?void 0:c.content)||"",userId:n,model:t.model||"",startTime:r,appId:a})}catch(d){console.error("Error logging AI request:",d)}},onError:l=>{var u,c;try{zv({error:l,userId:n,startTime:r,model:t.model||"",prompt:((c=(u=t.messages)==null?void 0:u[t.messages.length-1])==null?void 0:c.content)||"",appId:a})}catch(d){console.error("Error logging AI request error:",d)}}}),s={messages:t.messages||[],image:t.image,model:t.model,initiator:t.initiator||null};return{_streamingResponse:!0,_streamResult:await o.handleRequest(s)}}}async function Fv(e){const{appId:t,userId:r}=e;if(!r)throw new T("User ID not found in context","UNAUTHORIZED",401);const{data:n,error:a}=await A(()=>S.select().from(dr).where(h.and(h.eq(dr.app,t),h.eq(dr.user,r),h.eq(dr.status,"active"))));if(a)throw new T("Error checking user access","ERROR_CHECKING_USER_ACCESS",500,a);if(!n||n.length===0)throw new T("User does not have access to this app","UNAUTHORIZED",401);return n[0]}class Lv extends Z{getValidationSchema(){return v.z.any()}async execute(){if(!this.context)throw new T("Context not set","CONTEXT_NOT_SET",500);const t=await Fv(this.context);return{access:!0,role:t.role||"user",permissions:t.permissions||null}}}class Uv extends Z{getValidationSchema(){return v.z.object({name:v.z.string().min(1),slug:v.z.string(),pageType:v.z.string(),parent:v.z.string().nullable().optional(),lang:v.z.string().optional(),primaryPage:v.z.string().nullable().optional(),dynamic:v.z.boolean().optional(),hasSlug:v.z.boolean().optional(),template:v.z.string().optional(),seo:v.z.record(v.z.string(),v.z.any()).optional(),jsonLD:v.z.record(v.z.string(),v.z.any()).optional(),dynamicSlugCustom:v.z.string().optional()}).refine(t=>t.lang&&t.lang!==""?!!t.primaryPage:!0,{message:"primaryPage is required when lang option is not empty",path:["primaryPage"]})}async execute(t){if(await this.verifyAccess(),!this.context)throw new T("Context not set","CONTEXT_NOT_SET");const{appId:r}=this.context;if((t.hasSlug??t.pageType!=="global")&&t.slug&&await this.doesSlugExist(t.slug,t.pageType))throw new T("Slug already exists","SLUG_ALREADY_USED");let a=[];t.template&&(a=await this.getTemplateBlocks(t.template,r));let o=t.dynamic??!1,s=t.dynamicSlugCustom??"";if(t.primaryPage){const{data:d}=await A(()=>S.query.appPages.findFirst({where:h.and(h.eq(f.id,t.primaryPage),h.eq(f.app,r)),columns:{dynamic:!0,dynamicSlugCustom:!0}}));d&&(o=d.dynamic??!1,s=d.dynamicSlugCustom??"")}const i={app:r,name:t.name,slug:t.slug,pageType:t.pageType,parent:t.parent??null,lang:t.primaryPage?t.lang??"":"",primaryPage:t.primaryPage??null,dynamic:o,dynamicSlugCustom:s,blocks:a,seo:t.seo??{title:t.name,jsonLD:"",noIndex:!1,ogImage:"",ogTitle:"",noFollow:"",description:"",searchTitle:"",cononicalUrl:"",ogDescription:"",searchDescription:""},jsonld:{},online:!1,currentEditor:null,changes:null,libRefId:null,lastSaved:null},{data:l,error:u}=await A(()=>S.insert(f).values(i).returning({id:f.id,name:f.name,slug:f.slug,lang:f.lang,pageType:f.pageType,parent:f.parent,online:f.online,primaryPage:f.primaryPage}));if(u)throw new T("Failed to create page","ERROR_CREATING_PAGE",500,u);if(!l||l.length===0)throw new T("Failed to create page","INSERT_FAILED");const c=l[0];return{page:j.omit(c.primaryPage?{...c,id:c.primaryPage}:c,["primaryPage"])}}async doesSlugExist(t,r){if(!this.context)throw new T("Context not set","CONTEXT_NOT_SET");const{appId:n}=this.context,{data:a,error:o}=await A(()=>S.query.appPages.findFirst({where:h.and(h.eq(f.slug,t),h.eq(f.pageType,r),h.eq(f.app,n)),columns:{id:!0}}));if(o)throw new T(`${o.message}`,"SLUG_CHECK_FAILED");return!!a}async getTemplateBlocks(t,r){const{data:n,error:a}=await A(()=>S.select({template:te,library:{id:W.id,app:W.app,name:W.name}}).from(te).leftJoin(W,h.eq(te.library,W.id)).where(h.eq(te.id,t)).limit(1).then(d=>d[0]));if(a)throw new T(`Failed to fetch template: ${a.message||"Unknown database error"}`,"ERROR_GETTING_TEMPLATE_BLOCKS",500,a);if(!n||!n.template||!n.library)throw new T(`Template not found with ID: ${t}`,"TEMPLATE_NOT_FOUND");const o=n.template,s=n.library,{data:i,error:l}=await A(()=>S.query.appPages.findFirst({where:h.eq(f.id,o.pageId),columns:{blocks:!0}}));if(l)throw new T(`Failed to fetch template blocks: ${l.message||"Unknown database error"}`,"ERROR_GETTING_TEMPLATE_BLOCKS",500,l);if(!i)throw new T(`Template page not found with ID: ${o.pageId}`,"TEMPLATE_PAGE_NOT_FOUND");let u=i.blocks||[];if(u=u.map(d=>d._type==="GlobalBlock"&&!j.isEmpty(d.globalBlock)?{...d,_type:"PartialBlock",partialBlockId:d.globalBlock}:d),!(s.app===r)){const d=s.name||"",p=u.filter(b=>b._type==="PartialBlock"&&!j.isEmpty(b.partialBlockId)),w=await Promise.all(p.map(({partialBlockId:b})=>this.copyPartialBlockFromTemplate(b,d,r)));u=u.map(b=>{const _=w.find(I=>(I==null?void 0:I.libRefId)===b.partialBlockId);return _&&(b._name=`${d} - ${b._name}`,b.partialBlockId=_.id),b})}return u}async copyPartialBlockFromTemplate(t,r,n){const{data:a,error:o}=await A(()=>S.query.appPages.findFirst({where:h.eq(f.id,t)}));if(o||!a)return console.error("Failed to fetch partial block:",o),null;const s={...a,id:void 0,app:n,libRefId:t,name:`${r} - ${a.name}`,createdAt:void 0,online:!1,currentEditor:null,changes:null,lastSaved:null},{data:i,error:l}=await A(()=>S.insert(f).values(s).returning({id:f.id,libRefId:f.libRefId}));if(l||!i||i.length===0)return console.error("Failed to create partial block copy:",l),null;const u=i[0];return{id:u.id,libRefId:u.libRefId||t}}}class jv extends Z{getValidationSchema(){return v.z.object({id:v.z.string().min(1)})}async execute(t){if(await this.verifyAccess(),!this.context)throw new T("Context not set","CONTEXT_NOT_SET");const{id:r}=t,{error:n}=await A(()=>S.delete(re).where(h.eq(re.id,r)));if(n)throw new T("Failed to delete library item","DELETE_LIBRARY_ITEM_FAILED",500,n);return{success:!0}}}const ie=(e,t)=>(console.error(t),new Error(e));class Ar{constructor(t,r=!1){Ie(this,"appId");Ie(this,"enableLogging");this.appId=t,this.enableLogging=r}async getPagesTree(){const{data:t,error:r}=await A(()=>S.select({id:f.id,name:f.name,slug:f.slug,pageType:f.pageType,primaryPage:f.primaryPage,parent:f.parent,lang:f.lang,dynamic:f.dynamic}).from(f).where(h.eq(f.app,this.appId)));if(r)throw ie("ERROR_GETTING_PAGES",r);const n=(t==null?void 0:t.filter(i=>i.primaryPage===null))||[],a=(t==null?void 0:t.filter(i=>i.primaryPage!==null))||[],o=this.buildPrimaryTree(n);this.enableLogging&&(console.log(`
425
+ `),L=L.replace(/\\r/g,"\r")),x[se]=L}return x}function l(y){y=y||{};const x=b(y);y.path=x;const D=O.configDotenv(y);if(!D.parsed){const X=new Error(`MISSING_DATA: Cannot parse ${x} for an unknown reason`);throw X.code="MISSING_DATA",X}const F=p(y).split(","),se=F.length;let L;for(let X=0;X<se;X++)try{const Q=F[X].trim(),le=w(D,Q);L=O.decrypt(le.ciphertext,le.key);break}catch(Q){if(X+1>=se)throw Q}return O.parse(L)}function u(y){console.log(`[dotenv@${o}][WARN] ${y}`)}function c(y){console.log(`[dotenv@${o}][DEBUG] ${y}`)}function d(y){console.log(`[dotenv@${o}] ${y}`)}function p(y){return y&&y.DOTENV_KEY&&y.DOTENV_KEY.length>0?y.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function w(y,x){let D;try{D=new URL(x)}catch(Q){if(Q.code==="ERR_INVALID_URL"){const le=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw le.code="INVALID_DOTENV_KEY",le}throw Q}const F=D.password;if(!F){const Q=new Error("INVALID_DOTENV_KEY: Missing key part");throw Q.code="INVALID_DOTENV_KEY",Q}const se=D.searchParams.get("environment");if(!se){const Q=new Error("INVALID_DOTENV_KEY: Missing environment part");throw Q.code="INVALID_DOTENV_KEY",Q}const L=`DOTENV_VAULT_${se.toUpperCase()}`,X=y.parsed[L];if(!X){const Q=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${L} in your .env.vault file.`);throw Q.code="NOT_FOUND_DOTENV_ENVIRONMENT",Q}return{ciphertext:X,key:F}}function b(y){let x=null;if(y&&y.path&&y.path.length>0)if(Array.isArray(y.path))for(const D of y.path)e.existsSync(D)&&(x=D.endsWith(".vault")?D:`${D}.vault`);else x=y.path.endsWith(".vault")?y.path:`${y.path}.vault`;else x=t.resolve(process.cwd(),".env.vault");return e.existsSync(x)?x:null}function _(y){return y[0]==="~"?t.join(r.homedir(),y.slice(1)):y}function I(y){const x=!!(y&&y.debug),D=y&&"quiet"in y?y.quiet:!0;(x||!D)&&d("Loading env from encrypted .env.vault");const F=O._parseVault(y);let se=process.env;return y&&y.processEnv!=null&&(se=y.processEnv),O.populate(se,F,y),{parsed:F}}function k(y){const x=t.resolve(process.cwd(),".env");let D="utf8";const F=!!(y&&y.debug),se=y&&"quiet"in y?y.quiet:!0;y&&y.encoding?D=y.encoding:F&&c("No encoding is specified. UTF-8 is used by default");let L=[x];if(y&&y.path)if(!Array.isArray(y.path))L=[_(y.path)];else{L=[];for(const xe of y.path)L.push(_(xe))}let X;const Q={};for(const xe of L)try{const Te=O.parse(e.readFileSync(xe,{encoding:D}));O.populate(Q,Te,y)}catch(Te){F&&c(`Failed to load ${xe} ${Te.message}`),X=Te}let le=process.env;if(y&&y.processEnv!=null&&(le=y.processEnv),O.populate(le,Q,y),F||!se){const xe=Object.keys(Q).length,Te=[];for(const ct of L)try{const Fe=t.relative(process.cwd(),ct);Te.push(Fe)}catch(Fe){F&&c(`Failed to load ${ct} ${Fe.message}`),X=Fe}d(`injecting env (${xe}) from ${Te.join(",")}`)}return X?{parsed:Q,error:X}:{parsed:Q}}function P(y){if(p(y).length===0)return O.configDotenv(y);const x=b(y);return x?O._configVault(y):(u(`You set DOTENV_KEY but you are missing a .env.vault file at ${x}. Did you forget to build it?`),O.configDotenv(y))}function m(y,x){const D=Buffer.from(x.slice(-64),"hex");let F=Buffer.from(y,"base64");const se=F.subarray(0,12),L=F.subarray(-16);F=F.subarray(12,-16);try{const X=n.createDecipheriv("aes-256-gcm",D,se);return X.setAuthTag(L),`${X.update(F)}${X.final()}`}catch(X){const Q=X instanceof RangeError,le=X.message==="Invalid key length",xe=X.message==="Unsupported state or unable to authenticate data";if(Q||le){const Te=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw Te.code="INVALID_DOTENV_KEY",Te}else if(xe){const Te=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw Te.code="DECRYPTION_FAILED",Te}else throw X}}function z(y,x,D={}){const F=!!(D&&D.debug),se=!!(D&&D.override);if(typeof x!="object"){const L=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw L.code="OBJECT_REQUIRED",L}for(const L of Object.keys(x))Object.prototype.hasOwnProperty.call(y,L)?(se===!0&&(y[L]=x[L]),F&&c(se===!0?`"${L}" is already defined and WAS overwritten`:`"${L}" is already defined and was NOT overwritten`)):y[L]=x[L]}const O={configDotenv:k,_configVault:I,_parseVault:l,config:P,decrypt:m,parse:i,populate:z};return Qe.exports.configDotenv=O.configDotenv,Qe.exports._configVault=O._configVault,Qe.exports._parseVault=O._parseVault,Qe.exports.config=O.config,Qe.exports.decrypt=O.decrypt,Qe.exports.parse=O.parse,Qe.exports.populate=O.populate,Qe.exports=O,Qe.exports}var Sv=nu();const Av=yu.getDefaultExportFromCjs(Sv),Nv=g.pgSequence("app_pages_metadata_id_seq",{startWith:"1",increment:"1",minValue:"1",maxValue:"9223372036854775807",cache:"1",cycle:!1}),xv=g.pgSequence("webhook_events_id_seq",{startWith:"1",increment:"1",minValue:"1",maxValue:"9223372036854775807",cache:"1",cycle:!1}),Ov=g.pgTable("app_assets",{id:g.uuid().defaultRandom().primaryKey().notNull(),app:g.uuid(),name:g.text(),description:g.text(),url:g.text(),size:g.text(),folderId:g.text(),thumbnailUrl:g.text(),duration:g.numeric(),format:g.text(),width:g.numeric(),height:g.numeric(),createdBy:g.text(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),type:g.text(),updatedAt:g.timestamp({withTimezone:!0,mode:"string"})},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_assets_app_fkey"})]),he=g.pgTable("app_pages_online",{createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),slug:g.text().notNull(),lang:g.text().default("").notNull(),seo:g.jsonb().default({}),app:g.uuid().notNull(),id:g.uuid().primaryKey().notNull(),name:g.text().notNull(),primaryPage:g.uuid(),blocks:g.jsonb().default([]),currentEditor:g.text(),changes:g.jsonb(),partialBlocks:g.text(),links:g.text(),online:g.boolean().default(!0),pageType:g.text(),parent:g.uuid(),lastSaved:g.timestamp({withTimezone:!0,mode:"string"}),dynamic:g.boolean().default(!1),libRefId:g.uuid(),dynamicSlugCustom:g.text().default(""),metadata:g.jsonb().default({}),jsonld:g.jsonb().default({}),globalJsonLds:g.jsonb().default([]),designTokens:g.jsonb()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_pages_online_app_fkey"})]),ge=g.pgTable("apps",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),name:g.text(),user:g.text(),settings:g.jsonb().default({}),theme:g.jsonb().default({}),fallbackLang:g.text().default("en"),languages:g.jsonb().default([]),changes:g.jsonb(),deletedAt:g.timestamp({withTimezone:!0,mode:"string"}),client:g.uuid(),designTokens:g.jsonb().default({})}),mt=g.pgTable("apps_online",{id:g.uuid().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),name:g.text(),user:g.text(),settings:g.jsonb().default({}),theme:g.jsonb().default({}),fallbackLang:g.text().default("en"),languages:g.jsonb().default([]),changes:g.jsonb(),apiKey:g.text(),deletedAt:g.timestamp({withTimezone:!0,mode:"string"}),client:g.uuid(),designTokens:g.jsonb().default({})}),W=g.pgTable("libraries",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),name:g.text(),app:g.uuid(),type:g.text(),status:g.text().default("active").notNull(),client:g.uuid()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"libraries_app_fkey"})]),Rv=g.pgTable("app_form_submissions",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),app:g.uuid(),formData:g.json(),additionalData:g.json(),formName:g.text().default(""),pageUrl:g.text()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_form_submissions_app_fkey"})]),f=g.pgTable("app_pages",{createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),slug:g.text().notNull(),lang:g.text().default("").notNull(),seo:g.jsonb().default({}),app:g.uuid().notNull(),id:g.uuid().defaultRandom().primaryKey().notNull(),name:g.text().notNull(),primaryPage:g.uuid(),blocks:g.jsonb().default([]),currentEditor:g.text(),changes:g.jsonb(),online:g.boolean().default(!1),parent:g.uuid(),pageType:g.text(),lastSaved:g.timestamp({withTimezone:!0,mode:"string"}),dynamic:g.boolean().default(!1),libRefId:g.uuid(),dynamicSlugCustom:g.text().default(""),metadata:g.jsonb().default({}),jsonld:g.jsonb().default({}),globalJsonLds:g.jsonb().default([]),links:g.text(),partialBlocks:g.text(),designTokens:g.jsonb()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_pages_app_fkey"}),g.foreignKey({columns:[e.parent],foreignColumns:[e.id],name:"app_pages_parent_fkey"})]),Se=g.pgTable("app_pages_revisions",{createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),slug:g.text().notNull(),lang:g.text().default("").notNull(),seo:g.jsonb().default({}),app:g.uuid().notNull(),id:g.uuid().notNull(),name:g.text().notNull(),primaryPage:g.uuid(),blocks:g.jsonb().default([]),currentEditor:g.text(),changes:g.jsonb(),partialBlocks:g.text(),links:g.text(),online:g.boolean().default(!0),pageType:g.text(),parent:g.uuid(),lastSaved:g.timestamp({withTimezone:!0,mode:"string"}),dynamic:g.boolean().default(!1),uid:g.uuid().defaultRandom().primaryKey().notNull(),type:g.text(),libRefId:g.uuid(),dynamicSlugCustom:g.text().default(""),metadata:g.jsonb().default({}),jsonld:g.jsonb().default({}),globalJsonLds:g.jsonb().default([]),designTokens:g.jsonb()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_pages_revisions_app_fkey"})]),dr=g.pgTable("app_users",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),user:g.text(),app:g.uuid(),role:g.text(),permissions:g.jsonb(),status:g.text().default("active").notNull()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"app_users_app_fkey"})]),te=g.pgTable("library_templates",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),user:g.text(),name:g.text(),description:g.text(),pageId:g.uuid(),pageType:g.text(),library:g.uuid(),preview:g.text()},e=>[g.foreignKey({columns:[e.library],foreignColumns:[W.id],name:"library_templates_library_fkey"})]),re=g.pgTable("library_items",{id:g.uuid().defaultRandom().primaryKey().notNull(),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),library:g.uuid(),name:g.text(),description:g.text(),blocks:g.jsonb().default([]),preview:g.text(),group:g.text().default("general"),user:g.text(),html:g.text()},e=>[g.foreignKey({columns:[e.library],foreignColumns:[W.id],name:"library_items_library_fkey"})]),wa=g.pgTable("ai_logs",{id:g.bigint({mode:"number"}).primaryKey().generatedByDefaultAsIdentity({name:"ai_logs_id_seq",startWith:1,increment:1,minValue:1,maxValue:9223372036854776e3,cache:1}),createdAt:g.timestamp({withTimezone:!0,mode:"string"}).defaultNow().notNull(),model:g.text(),totalDuration:g.numeric(),error:g.text(),totalTokens:g.numeric(),tokenUsage:g.jsonb(),user:g.text(),client:g.uuid().defaultRandom(),cost:g.doublePrecision().default(h.sql`'0'`),prompt:g.text(),app:g.uuid()},e=>[g.foreignKey({columns:[e.app],foreignColumns:[ge.id],name:"ai_logs_app_fkey"})]),au=Object.freeze(Object.defineProperty({__proto__:null,aiLogs:wa,appAssets:Ov,appFormSubmissions:Rv,appPages:f,appPagesMetadataIdSeq:Nv,appPagesOnline:he,appPagesRevisions:Se,appUsers:dr,apps:ge,appsOnline:mt,libraries:W,libraryItems:re,libraryTemplates:te,webhookEventsIdSeq:xv},Symbol.toStringTag,{value:"Module"}));Av.config();let Sr=process.env.CHAIBUILDER_DATABASE_URL;if(!Sr)throw new Error("Database not configured. Please set CHAIBUILDER_DATABASE_URL environment variable.");const Cv=e=>e.trim().replace(/^"|"$/g,"");Sr=Cv(Sr);const kv=e=>e.startsWith("postgresql://")||e.startsWith("postgres://");if(!kv(Sr))throw new Error("Database connection string is invalid. Please check your CHAIBUILDER_DATABASE_URL environment variable.");const Pv=Eu(Sr,{max:10}),S=Tu.drizzle(Pv,{schema:au});async function A(e){try{return{data:await e(),error:null}}catch(t){return{data:null,error:t}}}const Dv=e=>{var t;return((t=bu.AI_MODELS.find(r=>r.id===e))==null?void 0:t.multiplier)||1};async function zv({userId:e,startTime:t,error:r,model:n,prompt:a,appId:o}){var c;const s=String(r),i=t>0?new Date().getTime()-t:0,l={model:n,totalDuration:String(i),error:s,totalTokens:"0",tokenUsage:{},cost:0,prompt:a,user:e,client:((c=process==null?void 0:process.env)==null?void 0:c.CHAIBUILDER_CLIENT_ID)||null,app:o},{error:u}=await A(()=>S.insert(wa).values(l));u&&console.error("Error logging AI request error:",u)}async function $v({userId:e,startTime:t,arg:r,prompt:n,model:a,appId:o}){var p,w,b;const s=r==null?void 0:r.totalUsage,i=(w=(p=r==null?void 0:r.providerMetadata)==null?void 0:p.gateway)==null?void 0:w.cost,l=t>0?Math.floor(new Date().getTime()-t):0,u=n.indexOf("USER REQUEST");n=n.substring(u).trim();const c={model:a,totalDuration:String(l),error:null,totalTokens:String(Math.round(((s==null?void 0:s.totalTokens)??0)*Dv(a))),tokenUsage:s,cost:i,prompt:n,user:e,client:((b=process==null?void 0:process.env)==null?void 0:b.CHAIBUILDER_CLIENT_ID)||null,app:o},{error:d}=await A(()=>S.insert(wa).values(c));d&&console.error("Error logging AI request:",d)}class T extends Error{constructor(t,r="ACTION_ERROR",n=400,a){super(t),this.code=r,this.status=n,this.error=a,this.name="ActionError",a&&console.error(a)}}class Z{constructor(){Ie(this,"context",null)}validate(t){if(!t)return!0;try{return this.getValidationSchema().parse(t),!0}catch{return!1}}getValidationErrors(t){if(!t)return null;try{return this.getValidationSchema().parse(t),null}catch(r){return r instanceof v.z.ZodError?r.issues.map(a=>`${a.path.join(".")}: ${a.message}`).join(", "):null}}setContext(t){this.context=t}async verifyAccess(){if(!this.context)throw new T("Context not set","CONTEXT_NOT_SET",500);const{getChaiAction:t}=await Promise.resolve().then(()=>Tw),r=t("CHECK_USER_ACCESS");if(!r)throw new T("CHECK_USER_ACCESS action not registered","ACCESS_CHECK_NOT_FOUND",500);r.setContext(this.context),await r.execute({})}handleError(t){if(t instanceof T)throw t;if(t instanceof v.z.ZodError){const r=t.issues.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new T(`Validation failed: ${r}`,"VALIDATION_ERROR")}else{const r=t instanceof Error?t.message:"Unknown error";throw new T(r,"ACTION_ERROR")}}}class Mv extends Z{getValidationSchema(){return v.z.any()}async execute(t){if(!this.context)throw new Error("Context not set");const r=new Date().getTime(),{userId:n,appId:a}=this.context,o=new Ev({onFinish:l=>{var u,c;try{$v({arg:l,prompt:((c=(u=t.messages)==null?void 0:u[t.messages.length-1])==null?void 0:c.content)||"",userId:n,model:t.model||"",startTime:r,appId:a})}catch(d){console.error("Error logging AI request:",d)}},onError:l=>{var u,c;try{zv({error:l,userId:n,startTime:r,model:t.model||"",prompt:((c=(u=t.messages)==null?void 0:u[t.messages.length-1])==null?void 0:c.content)||"",appId:a})}catch(d){console.error("Error logging AI request error:",d)}}}),s={messages:t.messages||[],image:t.image,model:t.model,initiator:t.initiator||null,context:t.context};return{_streamingResponse:!0,_streamResult:await o.handleRequest(s)}}}async function Fv(e){const{appId:t,userId:r}=e;if(!r)throw new T("User ID not found in context","UNAUTHORIZED",401);const{data:n,error:a}=await A(()=>S.select().from(dr).where(h.and(h.eq(dr.app,t),h.eq(dr.user,r),h.eq(dr.status,"active"))));if(a)throw new T("Error checking user access","ERROR_CHECKING_USER_ACCESS",500,a);if(!n||n.length===0)throw new T("User does not have access to this app","UNAUTHORIZED",401);return n[0]}class Lv extends Z{getValidationSchema(){return v.z.any()}async execute(){if(!this.context)throw new T("Context not set","CONTEXT_NOT_SET",500);const t=await Fv(this.context);return{access:!0,role:t.role||"user",permissions:t.permissions||null}}}class Uv extends Z{getValidationSchema(){return v.z.object({name:v.z.string().min(1),slug:v.z.string(),pageType:v.z.string(),parent:v.z.string().nullable().optional(),lang:v.z.string().optional(),primaryPage:v.z.string().nullable().optional(),dynamic:v.z.boolean().optional(),hasSlug:v.z.boolean().optional(),template:v.z.string().optional(),seo:v.z.record(v.z.string(),v.z.any()).optional(),jsonLD:v.z.record(v.z.string(),v.z.any()).optional(),dynamicSlugCustom:v.z.string().optional()}).refine(t=>t.lang&&t.lang!==""?!!t.primaryPage:!0,{message:"primaryPage is required when lang option is not empty",path:["primaryPage"]})}async execute(t){if(await this.verifyAccess(),!this.context)throw new T("Context not set","CONTEXT_NOT_SET");const{appId:r}=this.context;if((t.hasSlug??t.pageType!=="global")&&t.slug&&await this.doesSlugExist(t.slug,t.pageType))throw new T("Slug already exists","SLUG_ALREADY_USED");let a=[];t.template&&(a=await this.getTemplateBlocks(t.template,r));let o=t.dynamic??!1,s=t.dynamicSlugCustom??"";if(t.primaryPage){const{data:d}=await A(()=>S.query.appPages.findFirst({where:h.and(h.eq(f.id,t.primaryPage),h.eq(f.app,r)),columns:{dynamic:!0,dynamicSlugCustom:!0}}));d&&(o=d.dynamic??!1,s=d.dynamicSlugCustom??"")}const i={app:r,name:t.name,slug:t.slug,pageType:t.pageType,parent:t.parent??null,lang:t.primaryPage?t.lang??"":"",primaryPage:t.primaryPage??null,dynamic:o,dynamicSlugCustom:s,blocks:a,seo:t.seo??{title:t.name,jsonLD:"",noIndex:!1,ogImage:"",ogTitle:"",noFollow:"",description:"",searchTitle:"",cononicalUrl:"",ogDescription:"",searchDescription:""},jsonld:{},online:!1,currentEditor:null,changes:null,libRefId:null,lastSaved:null},{data:l,error:u}=await A(()=>S.insert(f).values(i).returning({id:f.id,name:f.name,slug:f.slug,lang:f.lang,pageType:f.pageType,parent:f.parent,online:f.online,primaryPage:f.primaryPage}));if(u)throw new T("Failed to create page","ERROR_CREATING_PAGE",500,u);if(!l||l.length===0)throw new T("Failed to create page","INSERT_FAILED");const c=l[0];return{page:j.omit(c.primaryPage?{...c,id:c.primaryPage}:c,["primaryPage"])}}async doesSlugExist(t,r){if(!this.context)throw new T("Context not set","CONTEXT_NOT_SET");const{appId:n}=this.context,{data:a,error:o}=await A(()=>S.query.appPages.findFirst({where:h.and(h.eq(f.slug,t),h.eq(f.pageType,r),h.eq(f.app,n)),columns:{id:!0}}));if(o)throw new T(`${o.message}`,"SLUG_CHECK_FAILED");return!!a}async getTemplateBlocks(t,r){const{data:n,error:a}=await A(()=>S.select({template:te,library:{id:W.id,app:W.app,name:W.name}}).from(te).leftJoin(W,h.eq(te.library,W.id)).where(h.eq(te.id,t)).limit(1).then(d=>d[0]));if(a)throw new T(`Failed to fetch template: ${a.message||"Unknown database error"}`,"ERROR_GETTING_TEMPLATE_BLOCKS",500,a);if(!n||!n.template||!n.library)throw new T(`Template not found with ID: ${t}`,"TEMPLATE_NOT_FOUND");const o=n.template,s=n.library,{data:i,error:l}=await A(()=>S.query.appPages.findFirst({where:h.eq(f.id,o.pageId),columns:{blocks:!0}}));if(l)throw new T(`Failed to fetch template blocks: ${l.message||"Unknown database error"}`,"ERROR_GETTING_TEMPLATE_BLOCKS",500,l);if(!i)throw new T(`Template page not found with ID: ${o.pageId}`,"TEMPLATE_PAGE_NOT_FOUND");let u=i.blocks||[];if(u=u.map(d=>d._type==="GlobalBlock"&&!j.isEmpty(d.globalBlock)?{...d,_type:"PartialBlock",partialBlockId:d.globalBlock}:d),!(s.app===r)){const d=s.name||"",p=u.filter(b=>b._type==="PartialBlock"&&!j.isEmpty(b.partialBlockId)),w=await Promise.all(p.map(({partialBlockId:b})=>this.copyPartialBlockFromTemplate(b,d,r)));u=u.map(b=>{const _=w.find(I=>(I==null?void 0:I.libRefId)===b.partialBlockId);return _&&(b._name=`${d} - ${b._name}`,b.partialBlockId=_.id),b})}return u}async copyPartialBlockFromTemplate(t,r,n){const{data:a,error:o}=await A(()=>S.query.appPages.findFirst({where:h.eq(f.id,t)}));if(o||!a)return console.error("Failed to fetch partial block:",o),null;const s={...a,id:void 0,app:n,libRefId:t,name:`${r} - ${a.name}`,createdAt:void 0,online:!1,currentEditor:null,changes:null,lastSaved:null},{data:i,error:l}=await A(()=>S.insert(f).values(s).returning({id:f.id,libRefId:f.libRefId}));if(l||!i||i.length===0)return console.error("Failed to create partial block copy:",l),null;const u=i[0];return{id:u.id,libRefId:u.libRefId||t}}}class jv extends Z{getValidationSchema(){return v.z.object({id:v.z.string().min(1)})}async execute(t){if(await this.verifyAccess(),!this.context)throw new T("Context not set","CONTEXT_NOT_SET");const{id:r}=t,{error:n}=await A(()=>S.delete(re).where(h.eq(re.id,r)));if(n)throw new T("Failed to delete library item","DELETE_LIBRARY_ITEM_FAILED",500,n);return{success:!0}}}const ie=(e,t)=>(console.error(t),new Error(e));class Ar{constructor(t,r=!1){Ie(this,"appId");Ie(this,"enableLogging");this.appId=t,this.enableLogging=r}async getPagesTree(){const{data:t,error:r}=await A(()=>S.select({id:f.id,name:f.name,slug:f.slug,pageType:f.pageType,primaryPage:f.primaryPage,parent:f.parent,lang:f.lang,dynamic:f.dynamic}).from(f).where(h.eq(f.app,this.appId)));if(r)throw ie("ERROR_GETTING_PAGES",r);const n=(t==null?void 0:t.filter(i=>i.primaryPage===null))||[],a=(t==null?void 0:t.filter(i=>i.primaryPage!==null))||[],o=this.buildPrimaryTree(n);this.enableLogging&&(console.log(`
418
426
  === PRIMARY LANGUAGE PAGES TREE ===`),console.log(JSON.stringify(o,null,2)));const s=this.buildLanguageTree(a,o);return this.enableLogging&&(console.log(`
419
427
  === OTHER LANGUAGE PAGES TREE ===`),console.log(JSON.stringify(s,null,2))),{primaryTree:o,languageTree:s,totalPrimaryPages:n.length,totalLanguagePages:a.length}}buildPrimaryTree(t){const r=new Map;t.forEach(a=>{r.set(a.id,{id:a.id,pageType:a.pageType,primaryPage:a.primaryPage,parent:a.parent,name:a.name,dynamic:a.dynamic,slug:a.slug,children:[]})});const n=[];return t.forEach(a=>{const o=r.get(a.id);if(o)if(a.parent===null)n.push(o);else{const s=r.get(a.parent);s?s.children.push(o):n.push(o)}}),n}buildLanguageTree(t,r){const n=new Map;t.forEach(i=>{const l=i.primaryPage;n.has(l)||n.set(l,[]),n.get(l).push(i)});const a=(i,l)=>{const c=(n.get(i.id)||[]).find(p=>p.lang===l);if(!c)return null;const d={id:c.id,pageType:c.pageType,primaryPage:c.primaryPage,parent:c.parent,lang:c.lang,name:c.name,slug:c.slug,dynamic:c.dynamic,children:[]};return i.children.forEach(p=>{const w=a(p,l);w&&d.children.push(w)}),d},o=[],s=new Set;return t.forEach(i=>{i.lang&&s.add(i.lang)}),s.forEach(i=>{r.forEach(l=>{const u=a(l,i);u&&o.push(u)})}),o}findPageInPrimaryTree(t,r){for(const n of r){if(n.id===t)return n;if(n.children&&n.children.length>0){const a=this.findPageInPrimaryTree(t,n.children);if(a)return a}}return null}findPageInLanguageTree(t,r){for(const n of r){if(n.id===t)return n;if(n.children&&n.children.length>0){const a=this.findPageInLanguageTree(t,n.children);if(a)return a}}return null}calculateSlugFromParent(t,r,n){if(!t){const l=r.split("/").filter(Boolean);return"/"+(l[l.length-1]||"")}let a=this.findPageInPrimaryTree(t,n);if(!a&&(a=this.findPageInLanguageTree(t,n),!a))throw new Error("Parent page not found in tree");const o=r.split("/").filter(Boolean),s=o[o.length-1]||"";return`${a.slug.endsWith("/")?a.slug.slice(0,-1):a.slug}/${s}`}collectNestedChildIds(t){const r=[];for(const n of t.children){r.push(n.id);const a=this.collectNestedChildIds(n);r.push(...a)}return r}findLanguagePagesForPrimary(t,r){const n=[],a=o=>{for(const s of o)s.primaryPage===t&&n.push(s),s.children&&s.children.length>0&&a(s.children)};return a(r),n}collectNestedChildSlugs(t,r,n){const a=[],o=(s,i,l)=>{for(const u of s){const c=this.generateNewChildSlug(u.slug,i,l);a.push({id:u.id,oldSlug:u.slug,newSlug:c}),u.children&&u.children.length>0&&o(u.children,u.slug,c)}};return o(t.children,r,n),a}generateNewChildSlug(t,r,n){return t===r?n:t.startsWith(r+"/")?t.replace(r+"/",n+"/"):t.startsWith(r)&&t!==r?t.replace(r,n):`${n}/${t.split("/").pop()}`}}class qv extends Z{constructor(){super(...arguments);Ie(this,"appId","");Ie(this,"userId","");Ie(this,"pageTreeBuilder")}getValidationSchema(){return v.z.object({id:v.z.string().min(1,"Page ID is required")})}async execute(r){if(await this.verifyAccess(),!this.context)throw new T("Context not set","CONTEXT_NOT_SET");this.appId=this.context.appId,this.userId=this.context.userId||"";try{return this.pageTreeBuilder=new Ar(this.appId),await this.deletePage(r.id)}catch(n){if(n instanceof T)throw n;const a=n instanceof Error?n.message:"Failed to delete page";throw new T(a,"DELETE_PAGE_ERROR")}}async deletePage(r){const n=await this.getCurrentEditor(r);if(n&&n!==this.userId)return{tags:[],code:"PAGE_LOCKED",editor:n};const a=await this.pageTreeBuilder.getPagesTree(),o=this.pageTreeBuilder.findPageInLanguageTree(r,a.languageTree),s=this.pageTreeBuilder.findPageInPrimaryTree(r,a.primaryTree);if(!o&&!s)throw ie("ERROR_DELETING_PAGE","Page not found");return o!==null?await this.deleteLanguagePageWithTree(r,o,a):await this.deletePrimaryPageWithTree(r,a)}async performDeletionWithIds(r){const n=[...r].reverse(),{error:a}=await A(()=>S.delete(te).where(h.inArray(te.pageId,n)));if(a)throw ie("DELETE_FAILED",a);const{error:o}=await A(()=>S.delete(Se).where(h.inArray(Se.id,n)));if(o)throw ie("DELETE_FAILED",o);const{error:s}=await A(()=>S.delete(f).where(h.inArray(f.id,n)));if(s)throw ie("DELETE_FAILED",s);const{error:i}=await A(()=>S.delete(he).where(h.inArray(he.id,n)));if(i)throw ie("DELETE_FAILED",i)}async deleteLanguagePageWithTree(r,n,a){const o=n.primaryPage;if(!this.pageTreeBuilder.findPageInPrimaryTree(o,a.primaryTree))throw ie("ERROR_DELETING_PAGE","Primary page not found");const i=this.pageTreeBuilder.collectNestedChildIds(n);return await this.performDeletionWithIds([r,...i]),{tags:[`page-${r}`,...i.map(l=>`page-${l}`)],totalDeleted:1+i.length}}async deletePrimaryPageWithTree(r,n){const a=this.pageTreeBuilder.findPageInPrimaryTree(r,n.primaryTree);if(!a)throw ie("ERROR_DELETING_PAGE","Primary page not found");const o=this.pageTreeBuilder.collectNestedChildIds(a),s=this.pageTreeBuilder.findLanguagePagesForPrimary(r,n.languageTree),i=[];s.forEach(u=>{i.push(u.id);const c=this.pageTreeBuilder.collectNestedChildIds(u);i.push(...c)});const l=[...new Set([...o,...i])];return await this.performDeletionWithIds([r,...l]),{tags:[`page-${r}`,...l.map(u=>`page-${u}`)],totalDeleted:1+l.length}}async getCurrentEditor(r){var o;const{data:n,error:a}=await A(()=>S.select({currentEditor:f.currentEditor}).from(f).where(h.and(h.eq(f.id,r),h.eq(f.app,this.appId))).limit(1));return a||!n||n.length===0?null:((o=n[0])==null?void 0:o.currentEditor)||null}}class Zv extends Z{getValidationSchema(){return v.z.object({revisionId:v.z.string().nonempty("Revision ID is required")})}async execute(t){if(await this.verifyAccess(),!this.context)throw new T("Context not set","CONTEXT_NOT_SET");const{appId:r}=this.context,{error:n}=await A(()=>S.delete(Se).where(h.and(h.eq(Se.uid,t.revisionId),h.eq(Se.app,r))));if(n)throw new T("Failed to delete page revision","DELETE_REVISION_ERROR");return{success:!0}}}class Gv extends Z{getValidationSchema(){return v.z.object({pageId:v.z.string().nonempty(),name:v.z.string().nonempty(),slug:v.z.string().optional()})}async execute(t){if(await this.verifyAccess(),!this.context)throw new T("Context not set","CONTEXT_NOT_SET");const{appId:r}=this.context;if(t.slug&&await this.doesSlugExist(t.slug))throw new T("Slug already exists","SLUG_EXISTS");const{data:n,error:a}=await A(()=>S.query.appPages.findFirst({where:h.and(h.eq(f.id,t.pageId),h.eq(f.app,r))}));if(a)throw a;if(!n)throw new T("Page not found","PAGE_NOT_FOUND");const o={...n,id:void 0,createdAt:void 0,name:t.name,currentEditor:null,changes:null,online:!1,libRefId:null,lastSaved:null,...t.slug&&{slug:t.slug}},[s]=await S.insert(f).values(o).returning({id:f.id});if(!s)throw new T("Failed to create duplicate page","INSERT_FAILED");return{id:s.id}}async doesSlugExist(t){if(!this.context)throw new T("Context not set","CONTEXT_NOT_SET");const{appId:r}=this.context,{data:n,error:a}=await A(()=>S.query.appPages.findFirst({where:h.and(h.eq(f.slug,t),h.eq(f.app,r)),columns:{id:!0}}));if(a)throw new T(`${a.message}`,"SLUG_CHECK_FAILED");return!!n}}var ts={},$n,rs;function Bv(){if(rs)return $n;rs=1;const e={};return process.env.DOTENV_CONFIG_ENCODING!=null&&(e.encoding=process.env.DOTENV_CONFIG_ENCODING),process.env.DOTENV_CONFIG_PATH!=null&&(e.path=process.env.DOTENV_CONFIG_PATH),process.env.DOTENV_CONFIG_QUIET!=null&&(e.quiet=process.env.DOTENV_CONFIG_QUIET),process.env.DOTENV_CONFIG_DEBUG!=null&&(e.debug=process.env.DOTENV_CONFIG_DEBUG),process.env.DOTENV_CONFIG_OVERRIDE!=null&&(e.override=process.env.DOTENV_CONFIG_OVERRIDE),process.env.DOTENV_CONFIG_DOTENV_KEY!=null&&(e.DOTENV_KEY=process.env.DOTENV_CONFIG_DOTENV_KEY),$n=e,$n}var Mn,ns;function Vv(){if(ns)return Mn;ns=1;const e=/^dotenv_config_(encoding|path|quiet|debug|override|DOTENV_KEY)=(.+)$/;return Mn=function(r){const n=r.reduce(function(a,o){const s=o.match(e);return s&&(a[s[1]]=s[2]),a},{});return"quiet"in n||(n.quiet="true"),n},Mn}var as;function Hv(){return as||(as=1,(function(){nu().config(Object.assign({},Bv(),Vv()(process.argv)))})()),ts}Hv();const os="anthropic/claude-haiku-4.5";class Jv extends Z{getValidationSchema(){return v.z.object({prompt:v.z.string().min(1,"Prompt is required"),context:v.z.string().optional(),image:v.z.string().optional()})}async execute(t){if(await this.verifyAccess(),!this.context)throw new T("Context not set","CONTEXT_NOT_SET");try{const r=`You are an expert HTML/CSS developer specializing in Tailwind CSS and shadcn/ui design patterns.
420
428
 
@@ -12,7 +12,7 @@ import { drizzle as ec } from "drizzle-orm/postgres-js";
12
12
  import tc from "postgres";
13
13
  import { pgSequence as Cs, pgTable as Je, timestamp as xe, text as O, numeric as _r, uuid as J, foreignKey as et, jsonb as K, boolean as er, json as Ga, doublePrecision as rc, bigint as nc } from "drizzle-orm/pg-core";
14
14
  import { sql as pa, and as Z, eq as T, inArray as Tt, isNotNull as Ba, isNull as ac, or as ks, like as oc, ilike as Va } from "drizzle-orm";
15
- import { A as sc } from "./models-BCu-p_QK.js";
15
+ import { A as sc } from "./models-DZ9C6CvE.js";
16
16
  import { z as m } from "zod";
17
17
  import { f as ic } from "./core-nSRy3D7z.js";
18
18
  import { randomUUID as lc } from "node:crypto";
@@ -12088,15 +12088,15 @@ class sw {
12088
12088
  this.options = t, this.model = (t == null ? void 0 : t.model) ?? this.model;
12089
12089
  }
12090
12090
  async handleRequest(t, r) {
12091
- var p, y;
12092
- const { messages: n, image: a, initiator: o = null, model: s } = t, i = s || this.model, l = n.filter((E) => E.role !== "system"), u = l[l.length - 1], c = a ? [
12093
- ...l.slice(0, -1),
12091
+ var E, v;
12092
+ const { messages: n, image: a, initiator: o = null, model: s, context: i } = t, l = s || this.model, u = n.filter((b) => b.role !== "system"), c = u[u.length - 1], d = a ? [
12093
+ ...u.slice(0, -1),
12094
12094
  {
12095
12095
  role: "user",
12096
12096
  content: [
12097
12097
  {
12098
12098
  type: "text",
12099
- text: u.content
12099
+ text: c.content
12100
12100
  },
12101
12101
  {
12102
12102
  type: "image",
@@ -12104,15 +12104,26 @@ class sw {
12104
12104
  }
12105
12105
  ]
12106
12106
  }
12107
- ] : n, d = Qv({
12108
- model: i,
12109
- system: aw(o),
12110
- messages: c,
12107
+ ] : n;
12108
+ let p = aw(o);
12109
+ i && (p += `
12110
+
12111
+ ## Additional Information`, i != null && i.site && (p += `
12112
+
12113
+ ## Website Information
12114
+ ${JSON.stringify(i.site)}`), i != null && i.page && (p += `
12115
+
12116
+ ## Page Information
12117
+ ${JSON.stringify(i.page)}`));
12118
+ const y = Qv({
12119
+ model: l,
12120
+ system: p,
12121
+ messages: d,
12111
12122
  temperature: this.temperature,
12112
- onFinish: ((p = this.options) == null ? void 0 : p.onFinish) ?? La,
12113
- onError: ((y = this.options) == null ? void 0 : y.onError) ?? La
12123
+ onFinish: ((E = this.options) == null ? void 0 : E.onFinish) ?? La,
12124
+ onError: ((v = this.options) == null ? void 0 : v.onError) ?? La
12114
12125
  });
12115
- return r && d.pipeTextStreamToResponse(r), d;
12126
+ return r && y.pipeTextStreamToResponse(r), y;
12116
12127
  }
12117
12128
  isConfigured() {
12118
12129
  return !0;
@@ -12762,7 +12773,8 @@ class Ew extends G {
12762
12773
  messages: t.messages || [],
12763
12774
  image: t.image,
12764
12775
  model: t.model,
12765
- initiator: t.initiator || null
12776
+ initiator: t.initiator || null,
12777
+ context: t.context
12766
12778
  };
12767
12779
  return {
12768
12780
  _streamingResponse: !0,
package/dist/actions.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./actions-registery-BQ31lpix.cjs"),h=s=>async o=>{const{apiKey:t,userId:u}=s;try{const i=o,{action:r,data:e}=i,n=a.getChaiAction(r);return n?n.validate(e)?(n.setContext({appId:t,userId:u}),await n.execute(e)):{error:`Validation failed: ${n.getValidationErrors(e)}`,code:"INVALID_REQUEST_DATA",status:400}:{error:`Action ${r} not found`,code:"ACTION_NOT_FOUND",status:404}}catch(i){return console.log("Error in builderApiHandler:",i),i instanceof a.ActionError?{error:i.message,code:i.code,status:i.status||400}:{error:"Something went wrong.",status:500}}},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"};exports.ChaiActionsRegistry=a.actionsRegistery;exports.PublishChangesAction=a.PublishChangesAction;exports.db=a.db;exports.getAskAiSystemPrompt=a.getAskAiSystemPrompt;exports.safeQuery=a.safeQuery;exports.schema=a.schema;exports.LANGUAGES=l;exports.initChaiBuilderActionHandler=h;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./actions-registery-BHbZHkE3.cjs"),h=s=>async o=>{const{apiKey:t,userId:u}=s;try{const i=o,{action:r,data:e}=i,n=a.getChaiAction(r);return n?n.validate(e)?(n.setContext({appId:t,userId:u}),await n.execute(e)):{error:`Validation failed: ${n.getValidationErrors(e)}`,code:"INVALID_REQUEST_DATA",status:400}:{error:`Action ${r} not found`,code:"ACTION_NOT_FOUND",status:404}}catch(i){return console.log("Error in builderApiHandler:",i),i instanceof a.ActionError?{error:i.message,code:i.code,status:i.status||400}:{error:"Something went wrong.",status:500}}},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"};exports.ActionError=a.ActionError;exports.ChaiActionsRegistry=a.actionsRegistery;exports.ChaiBaseAction=a.ChaiBaseAction;exports.PublishChangesAction=a.PublishChangesAction;exports.db=a.db;exports.getAskAiSystemPrompt=a.getAskAiSystemPrompt;exports.safeQuery=a.safeQuery;exports.schema=a.schema;exports.LANGUAGES=l;exports.initChaiBuilderActionHandler=h;
package/dist/actions.d.ts CHANGED
@@ -4,6 +4,13 @@ import { PgTableWithColumns } from 'drizzle-orm/pg-core';
4
4
  import { PostgresJsDatabase } from 'drizzle-orm/postgres-js';
5
5
  import { z } from 'zod';
6
6
 
7
+ export declare class ActionError extends Error {
8
+ code: string;
9
+ status: number;
10
+ error?: unknown | undefined;
11
+ constructor(message: string, code?: string, status?: number, error?: unknown | undefined);
12
+ }
13
+
7
14
  declare const aiLogs: PgTableWithColumns< {
8
15
  name: "ai_logs";
9
16
  schema: undefined;
@@ -2479,7 +2486,7 @@ dialect: "pg";
2479
2486
  * ChaiAction Interface
2480
2487
  * Defines the contract for all action handlers
2481
2488
  */
2482
- declare interface ChaiAction<T = any, K = any> {
2489
+ export declare interface ChaiAction<T = any, K = any> {
2483
2490
  validate(data: T): boolean;
2484
2491
  setContext(context: ChaiActionContext): void;
2485
2492
  execute(data: T): Promise<K>;
@@ -2489,7 +2496,7 @@ declare interface ChaiAction<T = any, K = any> {
2489
2496
  * Action Context
2490
2497
  * Contains information and repositories needed by actions
2491
2498
  */
2492
- declare interface ChaiActionContext {
2499
+ export declare interface ChaiActionContext {
2493
2500
  appId: string;
2494
2501
  userId?: string;
2495
2502
  }
@@ -2527,7 +2534,7 @@ declare class ChaiActionsRegistry_2 {
2527
2534
  * Base Action Class
2528
2535
  * Provides common functionality for all action handlers
2529
2536
  */
2530
- declare abstract class ChaiBaseAction<T = any, K = any> implements ChaiAction<T, K> {
2537
+ export declare abstract class ChaiBaseAction<T = any, K = any> implements ChaiAction<T, K> {
2531
2538
  protected context: ChaiActionContext | null;
2532
2539
  /**
2533
2540
  * Abstract method to get the validation schema for the action data
package/dist/actions.js CHANGED
@@ -1,5 +1,5 @@
1
- import { g as u, A as h } from "./actions-registery-B1VeX52Y.js";
2
- import { a as b, P as y, d as A, b as S, s as v, c as w } from "./actions-registery-B1VeX52Y.js";
1
+ import { g as u, A as h } from "./actions-registery-gJb_wq2F.js";
2
+ import { a as b, C as A, P as y, d as S, b as C, s as v, c as w } from "./actions-registery-gJb_wq2F.js";
3
3
  const c = (r) => async (s) => {
4
4
  const { apiKey: o, userId: t } = r;
5
5
  try {
@@ -206,11 +206,13 @@ const c = (r) => async (s) => {
206
206
  zu: "Zulu"
207
207
  };
208
208
  export {
209
+ h as ActionError,
209
210
  b as ChaiActionsRegistry,
211
+ A as ChaiBaseAction,
210
212
  d as LANGUAGES,
211
213
  y as PublishChangesAction,
212
- A as db,
213
- S as getAskAiSystemPrompt,
214
+ S as db,
215
+ C as getAskAiSystemPrompt,
214
216
  c as initChaiBuilderActionHandler,
215
217
  v as safeQuery,
216
218
  w as schema
@@ -1,7 +1,7 @@
1
1
  import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
2
  import { B as r } from "./register-chai-top-bar-D6GjnauV.js";
3
- import { J as i, K as o, M as l, O as c, Q as d } from "./index-B7HAfx-2.js";
4
- import { al as m, a as h, B as u, E as p, P as N } from "./index-BYjniKhj.js";
3
+ import { J as i, K as o, M as l, O as c, Q as d } from "./index-OuHV9Ann.js";
4
+ import { an as m, a as h, B as u, E as p, P as N } from "./index-LBTm1Jmk.js";
5
5
  import { TableIcon as f, Edit as T } from "lucide-react";
6
6
  import { useTranslation as E } from "react-i18next";
7
7
  const b = () => {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("./register-chai-top-bar-DyW9GPzV.cjs"),t=require("./index-DTNHTRZu.cjs"),s=require("./index-BeGLwvqs.cjs"),n=require("lucide-react"),l=require("react-i18next"),o=()=>{const r=s.useSendRealtimeEvent(),{setPageStatus:i}=s.usePageLockStatus(),{t:a}=l.useTranslation();return e.jsx(s.BlurContainer,{children:e.jsxs(t.Card,{className:"mx-auto w-full max-w-md",children:[e.jsx(t.CardHeader,{className:"space-y-1",children:e.jsxs(t.CardTitle,{className:"flex items-center gap-2 text-xl font-medium",children:[e.jsx(n.TableIcon,{className:"h-6 w-6 text-green-500"}),e.jsx("span",{children:a("Active in Another Tab")})]})}),e.jsx(t.CardContent,{className:"space-y-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:a("This page is currently being edited in another tab. You can continue editing here, which will close the editor in the other tab.")})}),e.jsx(t.CardFooter,{className:"flex justify-end gap-2",children:e.jsxs(c.Button,{variant:"default",onClick:()=>{r(s.EVENT.CONTINUE_EDITING_IN_THIS_TAB_REQUEST),i(s.PAGE_STATUS.CHECKING)},className:"gap-2",children:[e.jsx(n.Edit,{className:"h-4 w-4"}),a("Continue Editing Here")]})})]})})};exports.default=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("./register-chai-top-bar-DyW9GPzV.cjs"),t=require("./index-DCJDQs1a.cjs"),s=require("./index-BVwFJWDq.cjs"),n=require("lucide-react"),l=require("react-i18next"),o=()=>{const r=s.useSendRealtimeEvent(),{setPageStatus:i}=s.usePageLockStatus(),{t:a}=l.useTranslation();return e.jsx(s.BlurContainer,{children:e.jsxs(t.Card,{className:"mx-auto w-full max-w-md",children:[e.jsx(t.CardHeader,{className:"space-y-1",children:e.jsxs(t.CardTitle,{className:"flex items-center gap-2 text-xl font-medium",children:[e.jsx(n.TableIcon,{className:"h-6 w-6 text-green-500"}),e.jsx("span",{children:a("Active in Another Tab")})]})}),e.jsx(t.CardContent,{className:"space-y-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:a("This page is currently being edited in another tab. You can continue editing here, which will close the editor in the other tab.")})}),e.jsx(t.CardFooter,{className:"flex justify-end gap-2",children:e.jsxs(c.Button,{variant:"default",onClick:()=>{r(s.EVENT.CONTINUE_EDITING_IN_THIS_TAB_REQUEST),i(s.PAGE_STATUS.CHECKING)},className:"gap-2",children:[e.jsx(n.Edit,{className:"h-4 w-4"}),a("Continue Editing Here")]})})]})})};exports.default=o;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),k=require("./register-chai-top-bar-DyW9GPzV.cjs"),N=require("./index-DTNHTRZu.cjs"),Y=require("./slug-input-BzpnOdXG.cjs"),g=require("./index-BeGLwvqs.cjs"),j=require("lodash-es"),ds=require("lucide-react"),v=require("react"),U=require("react-i18next"),Z=({edit:c,lang:h,languages:a,name:u,setLang:t,setName:i,primaryPageObject:o})=>{const{t:s}=U.useTranslation();return e.jsxs("div",{className:"space-y-1",children:[e.jsx(N.Label,{htmlFor:"lang",children:s("Language")}),e.jsxs("select",{value:c?"":h,disabled:c||!a.length,onChange:l=>{const x=l.target.value;t(x),!c&&(j.startsWith(u,o==null?void 0:o.name)||u.length===0)&&i(`${o==null?void 0:o.name} - ${g.LANGUAGES[x]}`)},className:"col-span-3 flex h-9 w-full rounded-md border border-border bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",children:[e.jsx("option",{value:"",disabled:!0,children:c?g.LANGUAGES[h]||h:a.length?s("Choose language"):s("All available language page is created.")}),a.map(l=>e.jsx("option",{value:l,children:g.LANGUAGES[l]||l},l))]})]})},_=({lang:c,name:h,setName:a,parentHasSelectedLanguagePage:u})=>{const{t}=U.useTranslation();return e.jsxs("div",{className:"space-y-1",children:[e.jsx(N.Label,{htmlFor:"name",children:t("Page Name")}),e.jsx(k.Input,{id:"name",value:c?h:"",onChange:i=>a(i.target.value),required:!0,placeholder:t(c?"Enter page name":"Choose language to add slug"),disabled:!u||!c})]})},cs=({dynamic:c,isNonSlugPageType:h,isRootPage:a,lang:u,useLanguagePrefix:t,setUseLanguagePrefix:i,isHomePage:o,parentSlug:s,parentHasSelectedLanguagePage:l,slug:x,setSlug:d,setIsSlugValid:S,getSlug:f})=>{const{t:r}=U.useTranslation();return h?null:e.jsxs("div",{className:"space-y-1",children:[a&&u&&e.jsxs("div",{className:"flex items-center space-x-2 pb-1",children:[e.jsx("input",{type:"checkbox",id:"useLanguagePrefix",checked:t,onChange:A=>i(A.target.checked),className:"rounded border-gray-300"}),e.jsxs(N.Label,{htmlFor:"useLanguagePrefix",className:"text-sm font-normal leading-tight",children:["Add language code (",e.jsxs("span",{className:"font-mono text-gray-900",children:["/",u]}),") as slug prefix"]})]}),e.jsx(N.Label,{htmlFor:"slug",children:r("Slug")}),c?e.jsx(k.Alert,{variant:"default",className:"p-2 text-xs font-medium italic text-muted-foreground",children:r("This page will use dynamic slug as defined in primary page")}):e.jsx(Y.SlugInput,{disabled:!u||!l,value:x,onChange:d,placeholder:r(u?o&&t?"Leave empty for home page":"Enter page slug":"Choose language to add slug"),parentSlug:s,onValidationChange:S,fullSlug:f()})]})},H=({parentHasSelectedLanguagePage:c,name:h,lang:a,slug:u,edit:t,id:i,primaryPageObject:o,pages:s,isNonSlugPageType:l,isHomePage:x,useLanguagePrefix:d,isSlugValid:S,isPending:f})=>{const{t:r}=U.useTranslation(),A=f||!h||!a||s.some(m=>(t?m.id!==i:!0)&&m.parent===(o==null?void 0:o.id)&&m.lang===a)||!l&&!(x&&d)&&(!S||!u);return e.jsx(N.DialogFooter,{children:c?e.jsxs(e.Fragment,{children:[e.jsx(k.Button,{type:"submit",disabled:A&&!o.dynamic,children:f?e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"loader mr-2"}),r(t?"Updating...":"Adding...")]}):r(t?"Update":"Add new language page")}),s.some(m=>(t?m.id!==i:!0)&&m.parent===(o==null?void 0:o.id)&&m.lang===a)&&e.jsx("p",{className:"mt-2 text-xs text-red-500",children:r("A page for this language already exists.")})]}):a&&e.jsx(k.Alert,{variant:"destructive",children:e.jsxs("p",{className:"mx-auto w-5/6 text-center",children:[r("You need to create the")," ",e.jsx("span",{className:"font-medium",children:g.LANGUAGES[a]})," ",r("page in the parent to add here.")]})})})},rs=({onSubmit:c,edit:h,lang:a,languages:u,name:t,setLang:i,setName:o,primaryPageObject:s,parentHasSelectedLanguagePage:l,id:x,pages:d,isNonSlugPageType:S,isHomePage:f,useLanguagePrefix:r,slug:A,isSlugValid:m,isPending:p})=>e.jsxs("form",{onSubmit:c,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(Z,{edit:h,lang:a,languages:u,name:t,setLang:i,setName:o,primaryPageObject:s}),e.jsx(_,{lang:a,name:t,setName:o,parentHasSelectedLanguagePage:l})]}),e.jsx(H,{parentHasSelectedLanguagePage:l,name:t,lang:a,slug:A,edit:h,id:x,primaryPageObject:s,pages:d,isNonSlugPageType:S,isHomePage:f,useLanguagePrefix:r,isSlugValid:m,isPending:p})]}),hs=({loading:c,onSubmit:h,edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l,parentHasSelectedLanguagePage:x,isNonSlugPageType:d,isRootPage:S,useLanguagePrefix:f,setUseLanguagePrefix:r,isHomePage:A,parentSlug:m,slug:p,setSlug:C,isSlugValid:T,setIsSlugValid:I,getSlug:M,isPending:$,id:q,pages:L})=>c?e.jsx("div",{className:"flex h-80 items-center justify-center",children:e.jsx(ds.Loader,{className:"animate-spin"})}):d?e.jsx(rs,{onSubmit:h,edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l,parentHasSelectedLanguagePage:x,id:q,pages:L,isNonSlugPageType:d,isHomePage:A,useLanguagePrefix:f,slug:p,isSlugValid:T,isPending:$}):e.jsxs("form",{onSubmit:h,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(Z,{edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l}),e.jsx(_,{lang:u,name:i,setName:s,parentHasSelectedLanguagePage:x}),e.jsx(cs,{dynamic:l==null?void 0:l.dynamic,isNonSlugPageType:d,isRootPage:S,lang:u,useLanguagePrefix:f,setUseLanguagePrefix:r,isHomePage:A,parentSlug:m,parentHasSelectedLanguagePage:x,slug:p,setSlug:C,isSlugValid:T,setIsSlugValid:I,getSlug:M})]}),e.jsx(H,{parentHasSelectedLanguagePage:x,name:i,lang:u,slug:p,edit:a,id:q,primaryPageObject:l,pages:L,isNonSlugPageType:d,isHomePage:A,useLanguagePrefix:f,isSlugValid:T,isPending:$})]}),xs=({id:c,isOpen:h,onClose:a,primaryPage:u,edit:t=!1,preselectedLang:i})=>{const{data:o=[]}=g.useWebsitePrimaryPages(),s=v.useMemo(()=>o.find(n=>n.id===u),[o,u]),[l,x]=v.useState(""),[d,S]=v.useState(""),[f,r]=v.useState(""),[A,m]=v.useState(!0),[p,C]=v.useState(!0),{mutate:T,isPending:I}=g.useCreatePage(),{mutate:M,isPending:$}=g.useUpdatePage(),q=I||$,{data:L,isFetching:b}=g.useWebsiteSetting(),z=g.useFallbackLang(),{data:w,isFetching:y}=g.useLanguagePages(u),{data:F=[],isFetching:P}=g.useLanguagePages(s==null?void 0:s.parent),{data:J=[],isFetching:O}=g.usePageTypes(),{setSelectedLang:ss}=N.useLanguages(),{t:B}=U.useTranslation(),[,es]=g.useSearchParams(),[,ns]=N.useSidebarActivePanel(),ts=b||y||P||O,G=v.useMemo(()=>j.filter(L==null?void 0:L.languages,n=>!j.find(w,{lang:n})),[L,w]),W=v.useMemo(()=>J.find(n=>n.key===(s==null?void 0:s.pageType)),[J,s==null?void 0:s.pageType]),K=!(W!=null&&W.hasSlug),V=(s==null?void 0:s.slug)==="/";v.useEffect(()=>{if(!t&&s&&i&&(S(i),x(`${s.name} - ${g.LANGUAGES[i]}`)),!t||!s)return;const n=w==null?void 0:w.find(is=>is.id===c);if(!n)return;x(n.name),S(n.lang);const E=n.slug||"",{initSlug:R,prefix:us}=Y.parseSlugForEdit(E,s);r(R),C(us)},[t,c,w,s,i]),v.useEffect(()=>{if(i)S(i);else if((G==null?void 0:G.length)===1&&!t){const n=G[0];if(!n||!g.LANGUAGES[n])return;S(n),(!l||l===(s==null?void 0:s.name))&&x(`${s==null?void 0:s.name} - ${g.LANGUAGES[n]}`)}},[i,G,t,l,s]);const{parentSlug:Q,isRootPage:D}=v.useMemo(()=>{if(V||!d)return{parentSlug:void 0,isRootPage:!(s!=null&&s.parent)};if(!(s!=null&&s.parent))return{parentSlug:p?`/${d}`:void 0,isRootPage:!0};const n=F==null?void 0:F.find(E=>E.lang===d);return{parentSlug:n==null?void 0:n.slug,isRootPage:!1}},[s==null?void 0:s.parent,F,p,d,V]),os=v.useMemo(()=>D?!0:!!(F!=null&&F.some(n=>(n==null?void 0:n.lang)===d)),[d,F,D]),X=()=>{let n="";return D?n=`/${p?[d,f].filter(Boolean).join("/"):f}`:n=`${Y.removeSlugExtension(Q)}/${f}`,n.replace(/\/{2,}/g,"/").replace(/\/$/,"")},ls=n=>{const E=new URLSearchParams(window.location.search);z&&n===z?E.delete("lang"):E.set("lang",n),es(E),window.dispatchEvent(new PopStateEvent("popstate"))},as=n=>{n.preventDefault();const E={name:l,lang:d,primaryPage:s==null?void 0:s.id,slug:K?"":X(),pageType:s==null?void 0:s.pageType,...t&&{id:c}},R=()=>{!t&&d&&(ss(d),ls(d)),ns("outline"),a()};t?M(E,{onSuccess:R}):T(E,{onSuccess:R})};return e.jsx(N.Dialog,{open:h,onOpenChange:a,children:h&&e.jsxs(N.DialogContent,{className:"text-slate-600 sm:max-w-[425px]",children:[e.jsxs(N.DialogHeader,{children:[e.jsx(N.DialogTitle,{children:B(t?"Edit language":"Add new language page")}),e.jsx(N.DialogDescription,{className:"font-light",children:B("Enter the details for the language")})]}),e.jsx(hs,{id:c,pages:o,loading:ts,onSubmit:as,edit:t,lang:d,languages:G,name:l,setLang:S,setName:x,primaryPageObject:s,parentHasSelectedLanguagePage:os,isNonSlugPageType:K,isRootPage:D,useLanguagePrefix:p,setUseLanguagePrefix:C,isHomePage:V,parentSlug:Q,slug:f,setSlug:r,isSlugValid:A,setIsSlugValid:m,getSlug:X,isPending:q})]})})};exports.default=xs;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),k=require("./register-chai-top-bar-DyW9GPzV.cjs"),N=require("./index-DCJDQs1a.cjs"),Y=require("./slug-input-CiHC5l3r.cjs"),g=require("./index-BVwFJWDq.cjs"),j=require("lodash-es"),ds=require("lucide-react"),v=require("react"),U=require("react-i18next"),Z=({edit:c,lang:h,languages:a,name:u,setLang:t,setName:i,primaryPageObject:o})=>{const{t:s}=U.useTranslation();return e.jsxs("div",{className:"space-y-1",children:[e.jsx(N.Label,{htmlFor:"lang",children:s("Language")}),e.jsxs("select",{value:c?"":h,disabled:c||!a.length,onChange:l=>{const x=l.target.value;t(x),!c&&(j.startsWith(u,o==null?void 0:o.name)||u.length===0)&&i(`${o==null?void 0:o.name} - ${g.LANGUAGES[x]}`)},className:"col-span-3 flex h-9 w-full rounded-md border border-border bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",children:[e.jsx("option",{value:"",disabled:!0,children:c?g.LANGUAGES[h]||h:a.length?s("Choose language"):s("All available language page is created.")}),a.map(l=>e.jsx("option",{value:l,children:g.LANGUAGES[l]||l},l))]})]})},_=({lang:c,name:h,setName:a,parentHasSelectedLanguagePage:u})=>{const{t}=U.useTranslation();return e.jsxs("div",{className:"space-y-1",children:[e.jsx(N.Label,{htmlFor:"name",children:t("Page Name")}),e.jsx(k.Input,{id:"name",value:c?h:"",onChange:i=>a(i.target.value),required:!0,placeholder:t(c?"Enter page name":"Choose language to add slug"),disabled:!u||!c})]})},cs=({dynamic:c,isNonSlugPageType:h,isRootPage:a,lang:u,useLanguagePrefix:t,setUseLanguagePrefix:i,isHomePage:o,parentSlug:s,parentHasSelectedLanguagePage:l,slug:x,setSlug:d,setIsSlugValid:S,getSlug:f})=>{const{t:r}=U.useTranslation();return h?null:e.jsxs("div",{className:"space-y-1",children:[a&&u&&e.jsxs("div",{className:"flex items-center space-x-2 pb-1",children:[e.jsx("input",{type:"checkbox",id:"useLanguagePrefix",checked:t,onChange:A=>i(A.target.checked),className:"rounded border-gray-300"}),e.jsxs(N.Label,{htmlFor:"useLanguagePrefix",className:"text-sm font-normal leading-tight",children:["Add language code (",e.jsxs("span",{className:"font-mono text-gray-900",children:["/",u]}),") as slug prefix"]})]}),e.jsx(N.Label,{htmlFor:"slug",children:r("Slug")}),c?e.jsx(k.Alert,{variant:"default",className:"p-2 text-xs font-medium italic text-muted-foreground",children:r("This page will use dynamic slug as defined in primary page")}):e.jsx(Y.SlugInput,{disabled:!u||!l,value:x,onChange:d,placeholder:r(u?o&&t?"Leave empty for home page":"Enter page slug":"Choose language to add slug"),parentSlug:s,onValidationChange:S,fullSlug:f()})]})},H=({parentHasSelectedLanguagePage:c,name:h,lang:a,slug:u,edit:t,id:i,primaryPageObject:o,pages:s,isNonSlugPageType:l,isHomePage:x,useLanguagePrefix:d,isSlugValid:S,isPending:f})=>{const{t:r}=U.useTranslation(),A=f||!h||!a||s.some(m=>(t?m.id!==i:!0)&&m.parent===(o==null?void 0:o.id)&&m.lang===a)||!l&&!(x&&d)&&(!S||!u);return e.jsx(N.DialogFooter,{children:c?e.jsxs(e.Fragment,{children:[e.jsx(k.Button,{type:"submit",disabled:A&&!o.dynamic,children:f?e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"loader mr-2"}),r(t?"Updating...":"Adding...")]}):r(t?"Update":"Add new language page")}),s.some(m=>(t?m.id!==i:!0)&&m.parent===(o==null?void 0:o.id)&&m.lang===a)&&e.jsx("p",{className:"mt-2 text-xs text-red-500",children:r("A page for this language already exists.")})]}):a&&e.jsx(k.Alert,{variant:"destructive",children:e.jsxs("p",{className:"mx-auto w-5/6 text-center",children:[r("You need to create the")," ",e.jsx("span",{className:"font-medium",children:g.LANGUAGES[a]})," ",r("page in the parent to add here.")]})})})},rs=({onSubmit:c,edit:h,lang:a,languages:u,name:t,setLang:i,setName:o,primaryPageObject:s,parentHasSelectedLanguagePage:l,id:x,pages:d,isNonSlugPageType:S,isHomePage:f,useLanguagePrefix:r,slug:A,isSlugValid:m,isPending:p})=>e.jsxs("form",{onSubmit:c,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(Z,{edit:h,lang:a,languages:u,name:t,setLang:i,setName:o,primaryPageObject:s}),e.jsx(_,{lang:a,name:t,setName:o,parentHasSelectedLanguagePage:l})]}),e.jsx(H,{parentHasSelectedLanguagePage:l,name:t,lang:a,slug:A,edit:h,id:x,primaryPageObject:s,pages:d,isNonSlugPageType:S,isHomePage:f,useLanguagePrefix:r,isSlugValid:m,isPending:p})]}),hs=({loading:c,onSubmit:h,edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l,parentHasSelectedLanguagePage:x,isNonSlugPageType:d,isRootPage:S,useLanguagePrefix:f,setUseLanguagePrefix:r,isHomePage:A,parentSlug:m,slug:p,setSlug:C,isSlugValid:T,setIsSlugValid:I,getSlug:M,isPending:$,id:q,pages:L})=>c?e.jsx("div",{className:"flex h-80 items-center justify-center",children:e.jsx(ds.Loader,{className:"animate-spin"})}):d?e.jsx(rs,{onSubmit:h,edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l,parentHasSelectedLanguagePage:x,id:q,pages:L,isNonSlugPageType:d,isHomePage:A,useLanguagePrefix:f,slug:p,isSlugValid:T,isPending:$}):e.jsxs("form",{onSubmit:h,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(Z,{edit:a,lang:u,languages:t,name:i,setLang:o,setName:s,primaryPageObject:l}),e.jsx(_,{lang:u,name:i,setName:s,parentHasSelectedLanguagePage:x}),e.jsx(cs,{dynamic:l==null?void 0:l.dynamic,isNonSlugPageType:d,isRootPage:S,lang:u,useLanguagePrefix:f,setUseLanguagePrefix:r,isHomePage:A,parentSlug:m,parentHasSelectedLanguagePage:x,slug:p,setSlug:C,isSlugValid:T,setIsSlugValid:I,getSlug:M})]}),e.jsx(H,{parentHasSelectedLanguagePage:x,name:i,lang:u,slug:p,edit:a,id:q,primaryPageObject:l,pages:L,isNonSlugPageType:d,isHomePage:A,useLanguagePrefix:f,isSlugValid:T,isPending:$})]}),xs=({id:c,isOpen:h,onClose:a,primaryPage:u,edit:t=!1,preselectedLang:i})=>{const{data:o=[]}=g.useWebsitePrimaryPages(),s=v.useMemo(()=>o.find(n=>n.id===u),[o,u]),[l,x]=v.useState(""),[d,S]=v.useState(""),[f,r]=v.useState(""),[A,m]=v.useState(!0),[p,C]=v.useState(!0),{mutate:T,isPending:I}=g.useCreatePage(),{mutate:M,isPending:$}=g.useUpdatePage(),q=I||$,{data:L,isFetching:b}=g.useWebsiteSetting(),z=g.useFallbackLang(),{data:w,isFetching:y}=g.useLanguagePages(u),{data:F=[],isFetching:P}=g.useLanguagePages(s==null?void 0:s.parent),{data:J=[],isFetching:O}=g.usePageTypes(),{setSelectedLang:ss}=N.useLanguages(),{t:B}=U.useTranslation(),[,es]=g.useSearchParams(),[,ns]=N.useSidebarActivePanel(),ts=b||y||P||O,G=v.useMemo(()=>j.filter(L==null?void 0:L.languages,n=>!j.find(w,{lang:n})),[L,w]),W=v.useMemo(()=>J.find(n=>n.key===(s==null?void 0:s.pageType)),[J,s==null?void 0:s.pageType]),K=!(W!=null&&W.hasSlug),V=(s==null?void 0:s.slug)==="/";v.useEffect(()=>{if(!t&&s&&i&&(S(i),x(`${s.name} - ${g.LANGUAGES[i]}`)),!t||!s)return;const n=w==null?void 0:w.find(is=>is.id===c);if(!n)return;x(n.name),S(n.lang);const E=n.slug||"",{initSlug:R,prefix:us}=Y.parseSlugForEdit(E,s);r(R),C(us)},[t,c,w,s,i]),v.useEffect(()=>{if(i)S(i);else if((G==null?void 0:G.length)===1&&!t){const n=G[0];if(!n||!g.LANGUAGES[n])return;S(n),(!l||l===(s==null?void 0:s.name))&&x(`${s==null?void 0:s.name} - ${g.LANGUAGES[n]}`)}},[i,G,t,l,s]);const{parentSlug:Q,isRootPage:D}=v.useMemo(()=>{if(V||!d)return{parentSlug:void 0,isRootPage:!(s!=null&&s.parent)};if(!(s!=null&&s.parent))return{parentSlug:p?`/${d}`:void 0,isRootPage:!0};const n=F==null?void 0:F.find(E=>E.lang===d);return{parentSlug:n==null?void 0:n.slug,isRootPage:!1}},[s==null?void 0:s.parent,F,p,d,V]),os=v.useMemo(()=>D?!0:!!(F!=null&&F.some(n=>(n==null?void 0:n.lang)===d)),[d,F,D]),X=()=>{let n="";return D?n=`/${p?[d,f].filter(Boolean).join("/"):f}`:n=`${Y.removeSlugExtension(Q)}/${f}`,n.replace(/\/{2,}/g,"/").replace(/\/$/,"")},ls=n=>{const E=new URLSearchParams(window.location.search);z&&n===z?E.delete("lang"):E.set("lang",n),es(E),window.dispatchEvent(new PopStateEvent("popstate"))},as=n=>{n.preventDefault();const E={name:l,lang:d,primaryPage:s==null?void 0:s.id,slug:K?"":X(),pageType:s==null?void 0:s.pageType,...t&&{id:c}},R=()=>{!t&&d&&(ss(d),ls(d)),ns("outline"),a()};t?M(E,{onSuccess:R}):T(E,{onSuccess:R})};return e.jsx(N.Dialog,{open:h,onOpenChange:a,children:h&&e.jsxs(N.DialogContent,{className:"text-slate-600 sm:max-w-[425px]",children:[e.jsxs(N.DialogHeader,{children:[e.jsx(N.DialogTitle,{children:B(t?"Edit language":"Add new language page")}),e.jsx(N.DialogDescription,{className:"font-light",children:B("Enter the details for the language")})]}),e.jsx(hs,{id:c,pages:o,loading:ts,onSubmit:as,edit:t,lang:d,languages:G,name:l,setLang:S,setName:x,primaryPageObject:s,parentHasSelectedLanguagePage:os,isNonSlugPageType:K,isRootPage:D,useLanguagePrefix:p,setUseLanguagePrefix:C,isHomePage:V,parentSlug:Q,slug:f,setSlug:r,isSlugValid:A,setIsSlugValid:m,getSlug:X,isPending:q})]})})};exports.default=xs;
@@ -1,8 +1,8 @@
1
1
  import { jsx as t, jsxs as g, Fragment as hn } from "react/jsx-runtime";
2
2
  import { z as fn, D as H, B as gn } from "./register-chai-top-bar-D6GjnauV.js";
3
- import { d as mn, n as xn, D as vn, e as pn, f as Sn, g as Nn, o as Fn, p as I, q as wn } from "./index-B7HAfx-2.js";
4
- import { p as An, r as Cn, S as Dn } from "./slug-input-DpMI4nEB.js";
5
- import { e as En, f as $n, g as Ln, h as kn, i as Tn, j as Z, k as Un, c as Bn, L as A } from "./index-BYjniKhj.js";
3
+ import { d as mn, n as xn, D as vn, e as pn, f as Sn, g as Nn, o as Fn, p as I, q as wn } from "./index-OuHV9Ann.js";
4
+ import { p as An, r as Cn, S as Dn } from "./slug-input-DLWTMTsO.js";
5
+ import { e as En, f as $n, g as Ln, h as kn, i as Tn, j as Z, k as Un, c as Bn, L as A } from "./index-LBTm1Jmk.js";
6
6
  import { filter as Rn, find as Wn, startsWith as In } from "lodash-es";
7
7
  import { Loader as qn } from "lucide-react";
8
8
  import { useMemo as $, useState as L, useEffect as _ } from "react";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("./index-DTNHTRZu.cjs"),c=require("react"),a=require("react-i18next"),u=c.lazy(()=>Promise.resolve().then(()=>require("./page-creator-C7XEqUx_.cjs"))),x=({addEditPage:n,setAddEditPage:r,closePanel:l})=>{const{t:o}=a.useTranslation(),t=!!(n!=null&&n.id),i=!!n;return e.jsx(s.Dialog,{open:i,onOpenChange:()=>r(void 0),children:i&&e.jsxs(s.DialogContent,{className:"sm:max-w-[425px]",children:[e.jsxs(s.DialogHeader,{children:[e.jsxs(s.DialogTitle,{children:[o(t?"Edit":"Add New")," "]}),e.jsx(s.DialogDescription,{children:o(t?"Update your page name":"Enter details to create a new page")})]}),e.jsx(c.Suspense,{fallback:e.jsx("div",{className:"min-h-40"}),children:e.jsx(u,{closePanel:l,addEditPage:n,close:()=>r(void 0)})})]})})};exports.default=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("./index-DCJDQs1a.cjs"),c=require("react"),a=require("react-i18next"),u=c.lazy(()=>Promise.resolve().then(()=>require("./page-creator-Cz_ah-qE.cjs"))),x=({addEditPage:n,setAddEditPage:r,closePanel:l})=>{const{t:o}=a.useTranslation(),t=!!(n!=null&&n.id),i=!!n;return e.jsx(s.Dialog,{open:i,onOpenChange:()=>r(void 0),children:i&&e.jsxs(s.DialogContent,{className:"sm:max-w-[425px]",children:[e.jsxs(s.DialogHeader,{children:[e.jsxs(s.DialogTitle,{children:[o(t?"Edit":"Add New")," "]}),e.jsx(s.DialogDescription,{children:o(t?"Update your page name":"Enter details to create a new page")})]}),e.jsx(c.Suspense,{fallback:e.jsx("div",{className:"min-h-40"}),children:e.jsx(u,{closePanel:l,addEditPage:n,close:()=>r(void 0)})})]})})};exports.default=x;
@@ -1,8 +1,8 @@
1
1
  import { jsx as e, jsxs as r } from "react/jsx-runtime";
2
- import { D as t, e as c, f as m, g as p, o as h } from "./index-B7HAfx-2.js";
2
+ import { D as t, e as c, f as m, g as p, o as h } from "./index-OuHV9Ann.js";
3
3
  import { Suspense as f, lazy as D } from "react";
4
4
  import { useTranslation as u } from "react-i18next";
5
- const x = D(() => import("./page-creator-wg3uymVG.js")), C = ({
5
+ const x = D(() => import("./page-creator-DKEkuGCO.js")), C = ({
6
6
  addEditPage: o,
7
7
  setAddEditPage: s,
8
8
  closePanel: l