@chaibuilder/sdk 4.0.0-beta.23 → 4.0.0-beta.25

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 (127) hide show
  1. package/dist/{2SSKDMRQ-SUA5eA2S.js → 2SSKDMRQ-Bk_4y8lw.js} +2 -2
  2. package/dist/{2SSKDMRQ-DVWVGtU8.cjs → 2SSKDMRQ-vWeQ_IyI.cjs} +1 -1
  3. package/dist/{AP7HFJJL-CUN5zddU.cjs → AP7HFJJL-CMPLeI6t.cjs} +1 -1
  4. package/dist/{AP7HFJJL-Co5bLh3I.js → AP7HFJJL-D_mI2XSw.js} +1 -1
  5. package/dist/{IconPicker-Bmz6vXB8.cjs → IconPicker-DB_PpKvH.cjs} +1 -1
  6. package/dist/{IconPicker-BZvFj3cg.js → IconPicker-jc6_JzXf.js} +1 -1
  7. package/dist/{WDYDFRGG-DjCIT9L-.js → WDYDFRGG-B4H3RPcp.js} +2 -2
  8. package/dist/{WDYDFRGG-BpSteEEf.cjs → WDYDFRGG-D7vzbPjk.cjs} +1 -1
  9. package/dist/{active-in-another-tab-DfRJcvAz.js → active-in-another-tab-CDhFxBU7.js} +2 -2
  10. package/dist/{active-in-another-tab-C8-vpt8f.cjs → active-in-another-tab-CMPHyyHE.cjs} +1 -1
  11. package/dist/{add-new-language-page-jZ7Pg0Fv.js → add-new-language-page-BliZ46WW.js} +3 -3
  12. package/dist/{add-new-language-page-B2BEmfil.cjs → add-new-language-page-IbMzbf4v.cjs} +1 -1
  13. package/dist/{add-new-page-DbEBB3w7.cjs → add-new-page-BJJqSKp0.cjs} +1 -1
  14. package/dist/{add-new-page-YZF_XF8X.js → add-new-page-DUCKfyWo.js} +2 -2
  15. package/dist/{ai-panel-content-Bf_ojKwt.cjs → ai-panel-content-DWOqjq3Z.cjs} +1 -1
  16. package/dist/{ai-panel-content-C8ecaQnv.js → ai-panel-content-GeQIaXy8.js} +3 -3
  17. package/dist/{ai-panel-default-lang-DokOmE_Q.cjs → ai-panel-default-lang-DGNDrfam.cjs} +2 -2
  18. package/dist/{ai-panel-default-lang-BC8Gq_jl.js → ai-panel-default-lang-VQsV6KB3.js} +3 -3
  19. package/dist/{ai-panel-other-lang-Ccx1t8pp.cjs → ai-panel-other-lang-DvXF0Nn5.cjs} +1 -1
  20. package/dist/{ai-panel-other-lang-BJ30SL7z.js → ai-panel-other-lang-SuC8jyfr.js} +3 -3
  21. package/dist/{ai-prompt-input-SfeB6a2j.js → ai-prompt-input-CB6iQAmE.js} +1 -1
  22. package/dist/{ai-prompt-input-ED14e6NE.cjs → ai-prompt-input-a8s-JrZb.cjs} +1 -1
  23. package/dist/{ai-translation-prompt-BRRzei71.js → ai-translation-prompt-CoNVDclG.js} +1 -1
  24. package/dist/{ai-translation-prompt-spS-OC6L.cjs → ai-translation-prompt-Qn1Sz4BI.cjs} +1 -1
  25. package/dist/change-password-modal-BtdsU0mm.cjs +1 -0
  26. package/dist/change-password-modal-CMEo8lEm.js +137 -0
  27. package/dist/{code-editor-CYiIxUKp.js → code-editor-CTMQr0aU.js} +1 -1
  28. package/dist/{code-editor-CIqswl5j.cjs → code-editor-CjatfjZe.cjs} +1 -1
  29. package/dist/{continue-editing-in-this-client-B3CnmiZ2.cjs → continue-editing-in-this-client-7swLl0kq.cjs} +1 -1
  30. package/dist/{continue-editing-in-this-client-vICoETHN.js → continue-editing-in-this-client-CNVJZvXQ.js} +2 -2
  31. package/dist/core.cjs +1 -1
  32. package/dist/core.d.ts +1 -0
  33. package/dist/core.js +1 -1
  34. package/dist/{css-import-modal-DautOct0.js → css-import-modal-B3XY8Hzw.js} +1 -1
  35. package/dist/{css-import-modal-CHFZPXXQ.cjs → css-import-modal-D2RqE-V0.cjs} +1 -1
  36. package/dist/{delete-design-token-BmWHk_Ap.js → delete-design-token-DEyYFVHU.js} +1 -1
  37. package/dist/{delete-design-token-D-wGR5qS.cjs → delete-design-token-Dd3b86G7.cjs} +1 -1
  38. package/dist/{delete-page-Dlv8srng.js → delete-page-BSn5mRvk.js} +2 -2
  39. package/dist/{delete-page-D5mzl-ET.cjs → delete-page-BfsmsTek.cjs} +1 -1
  40. package/dist/{design-token-usage-DIszlgJK.cjs → design-token-usage-BY8meqAt.cjs} +1 -1
  41. package/dist/{design-token-usage-hl29qR_q.js → design-token-usage-f20BdlHE.js} +1 -1
  42. package/dist/{digital-asset-manager-v2LfDXwR.cjs → digital-asset-manager-Pi0YiB35.cjs} +1 -1
  43. package/dist/{digital-asset-manager-o_bNl9qj.js → digital-asset-manager-iXt27NlP.js} +3 -3
  44. package/dist/{duplicate-page-BjqgghN0.js → duplicate-page-BuVub6uY.js} +3 -3
  45. package/dist/{duplicate-page-CEuF8dll.cjs → duplicate-page-g5hiQkrZ.cjs} +1 -1
  46. package/dist/{dynamic-page-selector-BWC7kHJ1.js → dynamic-page-selector-NZ-rKLo3.js} +2 -2
  47. package/dist/{dynamic-page-selector-D4EWs4Qd.cjs → dynamic-page-selector-z6UGEjk1.cjs} +1 -1
  48. package/dist/{get-chai-builder-theme-DDVRJQ6Z.js → get-chai-builder-theme-CHXhAcdV.js} +1 -1
  49. package/dist/{get-chai-builder-theme-BApShjRz.cjs → get-chai-builder-theme-CMypjJk8.cjs} +1 -1
  50. package/dist/{image-editor-B1-bjvPd.js → image-editor--WT9183_.js} +1 -1
  51. package/dist/{image-editor-2h5axNuk.cjs → image-editor-C6cZZNbB.cjs} +1 -1
  52. package/dist/index-BGGNVIKx.cjs +5 -0
  53. package/dist/{index-DWGTiEak.cjs → index-CfsIhbT2.cjs} +11 -11
  54. package/dist/{index-BvluH-oT.js → index-ckjNCVor.js} +990 -978
  55. package/dist/{index-BN6yEl-H.js → index-iRqgNs2O.js} +897 -891
  56. package/dist/{json-diff-viewer-WX0GIjq-.js → json-diff-viewer-DAQ-qSHk.js} +2 -2
  57. package/dist/{json-diff-viewer-BjCIlzd7.cjs → json-diff-viewer-DheqS084.cjs} +1 -1
  58. package/dist/{lang-panel-C4x7bcyb.js → lang-panel-DRDPvY1i.js} +3 -3
  59. package/dist/{lang-panel--yfjRDE2.cjs → lang-panel-oLc-QyU4.cjs} +1 -1
  60. package/dist/{manage-design-tokens-DhdwhzQu.cjs → manage-design-tokens-Hu25ejcC.cjs} +1 -1
  61. package/dist/{manage-design-tokens-CRwsErkx.js → manage-design-tokens-rEzXQJRW.js} +2 -2
  62. package/dist/{mark-as-template-DpZSFrLK.js → mark-as-template-BNbn5zQG.js} +2 -2
  63. package/dist/{mark-as-template-BH0W9p2G.cjs → mark-as-template-DEThYoS6.cjs} +1 -1
  64. package/dist/{nested-path-selector-content-BDQmZzlf.js → nested-path-selector-content-BERhs6_L.js} +1 -1
  65. package/dist/{nested-path-selector-content-CHYz7cdB.cjs → nested-path-selector-content-Dz3-bNqT.cjs} +1 -1
  66. package/dist/{no-language-page-content-D0lcCseQ.js → no-language-page-content-CPVIz5rC.js} +2 -2
  67. package/dist/{no-language-page-content-D7btm8zX.cjs → no-language-page-content-CrUkIrUJ.cjs} +1 -1
  68. package/dist/{no-language-page-dialog-sYOmLnpY.cjs → no-language-page-dialog-964r8feg.cjs} +1 -1
  69. package/dist/{no-language-page-dialog-BdW7oXvt.js → no-language-page-dialog-DPDJ6gkQ.js} +2 -2
  70. package/dist/{page-creator-O_QpbMlB.js → page-creator-CDcfL4al.js} +3 -3
  71. package/dist/{page-creator-B-jBAGZl.cjs → page-creator-kvymje2i.cjs} +1 -1
  72. package/dist/{page-lock-CmQKpw1U.js → page-lock-BpUGSiCT.js} +2 -2
  73. package/dist/{page-lock-BrVqfmVm.cjs → page-lock-gOE-Tt7g.cjs} +1 -1
  74. package/dist/{page-locked-dialog-BjeJOXuN.js → page-locked-dialog-UQeYxWz1.js} +2 -2
  75. package/dist/{page-locked-dialog-ChHVSk7X.cjs → page-locked-dialog-aJFtoEzq.cjs} +1 -1
  76. package/dist/{page-manager-new-B90zLpRY.cjs → page-manager-new-DBomYOFT.cjs} +1 -1
  77. package/dist/{page-manager-new-wcsdorbd.js → page-manager-new-Dg02OZtc.js} +22 -22
  78. package/dist/{page-manager-search-and-filter-DY_NsetM.js → page-manager-search-and-filter-CCTh5gkC.js} +2 -2
  79. package/dist/{page-manager-search-and-filter-Bb_Zfpsj.cjs → page-manager-search-and-filter-pWHXOgMJ.cjs} +1 -1
  80. package/dist/{page-revisions-content-CVpi-467.cjs → page-revisions-content-BDY8RXJW.cjs} +1 -1
  81. package/dist/{page-revisions-content-5h39VYXj.js → page-revisions-content-C6YjUAx9.js} +7 -7
  82. package/dist/pages.cjs +1 -1
  83. package/dist/pages.d.ts +1 -0
  84. package/dist/pages.js +12 -12
  85. package/dist/plugin-DH3BDqys.js +251 -0
  86. package/dist/{plugin-BGlQf0iy.cjs → plugin-DO5QAuc1.cjs} +13 -13
  87. package/dist/{publish-pages-content-rrfvXks4.js → publish-pages-content-8MQN9iLc.js} +17 -17
  88. package/dist/{publish-pages-content-BG1GIuIz.cjs → publish-pages-content-DjUd9oWi.cjs} +1 -1
  89. package/dist/render.cjs +1 -1
  90. package/dist/render.d.ts +4 -1
  91. package/dist/render.js +2 -2
  92. package/dist/{rte-widget-modal-29WtCMJs.js → rte-widget-modal-Bj7lxFEs.js} +1 -1
  93. package/dist/{rte-widget-modal-JRoPPuju.cjs → rte-widget-modal-O31cHitM.cjs} +1 -1
  94. package/dist/{save-to-lib-Bm7R2K7j.js → save-to-lib-BMlowHNl.js} +2 -2
  95. package/dist/{save-to-lib-YvzDV5ee.cjs → save-to-lib-vxpiXsok.cjs} +1 -1
  96. package/dist/sdk.css +1 -1
  97. package/dist/{selected-block-display-bdClAekS.cjs → selected-block-display-BjhZTfSL.cjs} +1 -1
  98. package/dist/{selected-block-display-BAulh0Nz.js → selected-block-display-BxHTDLna.js} +2 -2
  99. package/dist/{seo-panel-CT0D3I44.js → seo-panel-197ULlty.js} +2 -2
  100. package/dist/{seo-panel-D9wnaLG-.cjs → seo-panel-MrGhioya.cjs} +1 -1
  101. package/dist/{shared-json-ld-ON6LaybZ.cjs → shared-json-ld-6ovlKZ7L.cjs} +1 -1
  102. package/dist/{shared-json-ld-CuhqVL8H.js → shared-json-ld-B2kfIim8.js} +24 -24
  103. package/dist/{slug-input-DNeh6LBv.js → slug-input-CSqTWSv8.js} +1 -1
  104. package/dist/{slug-input-CxmcQbTR.cjs → slug-input-CV-Dvosn.cjs} +1 -1
  105. package/dist/supabase-actions.cjs +1 -1
  106. package/dist/supabase-actions.d.ts +34 -0
  107. package/dist/supabase-actions.js +231 -192
  108. package/dist/{take-over-request-CrILj_3q.cjs → take-over-request-BFZbLBOK.cjs} +1 -1
  109. package/dist/{take-over-request-BmeR6t3b.js → take-over-request-Ds_-1dOv.js} +2 -2
  110. package/dist/{theme-panel-footer-D4oCAY2G.js → theme-panel-footer-C1f2KMBq.js} +2 -2
  111. package/dist/{theme-panel-footer-BMx5lGB4.cjs → theme-panel-footer-dHh8VGgj.cjs} +1 -1
  112. package/dist/{translation-warning-modal-BNG9m-FC.js → translation-warning-modal-DPdVK3CD.js} +1 -1
  113. package/dist/{translation-warning-modal-ChL7oDO1.cjs → translation-warning-modal-HD8Mlj1e.cjs} +1 -1
  114. package/dist/types.d.ts +1 -0
  115. package/dist/{unmark-as-template-BYiyJloZ.cjs → unmark-as-template-D8wEsu9z.cjs} +1 -1
  116. package/dist/{unmark-as-template-CEEMIY1A.js → unmark-as-template-DLVNotM_.js} +2 -2
  117. package/dist/{unpublish-page-B0aY1JnO.cjs → unpublish-page-Cl2R_dfN.cjs} +1 -1
  118. package/dist/{unpublish-page-Bm20P3TB.js → unpublish-page-ik9a66Rz.js} +2 -2
  119. package/dist/utils.cjs +1 -1
  120. package/dist/utils.js +1 -1
  121. package/dist/web-blocks.cjs +1 -1
  122. package/dist/web-blocks.js +23 -22
  123. package/dist/{web-preview-iQgiotU6.cjs → web-preview-CE39XTw0.cjs} +1 -1
  124. package/dist/{web-preview-BtEn4Vc-.js → web-preview-ztlGD_Xm.js} +1 -1
  125. package/package.json +1 -1
  126. package/dist/index-BJVYKKJq.cjs +0 -5
  127. package/dist/plugin-C-ht41UZ.js +0 -245
@@ -1,23 +1,23 @@
1
- var D = Object.defineProperty;
2
- var F = (l, r, e) => r in l ? D(l, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : l[r] = e;
3
- var y = (l, r, e) => F(l, typeof r != "symbol" ? r + "" : r, e);
4
- import { g as T, C as f } from "./actions-registery-C5OhILNI.js";
5
- import { isEmpty as $, kebabCase as k, set as b } from "lodash-es";
6
- import w from "sharp";
7
- import { z as c } from "zod";
1
+ var P = Object.defineProperty;
2
+ var F = (u, t, e) => t in u ? P(u, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : u[t] = e;
3
+ var y = (u, t, e) => F(u, typeof t != "symbol" ? t + "" : t, e);
4
+ import { g as T, C as g, A as k } from "./actions-registery-C5OhILNI.js";
5
+ import { isEmpty as C, kebabCase as _, set as b } from "lodash-es";
6
+ import f from "sharp";
7
+ import { z as i } from "zod";
8
8
  class A {
9
- constructor(r, e, t) {
10
- this.appId = r, this.userId = e, this.supabase = t;
9
+ constructor(t, e, r) {
10
+ this.appId = t, this.userId = e, this.supabase = r;
11
11
  }
12
- appendUpdatedAtToUrl(r, e) {
13
- if ($(r))
12
+ appendUpdatedAtToUrl(t, e) {
13
+ if (C(t))
14
14
  return "";
15
- const t = new URL(r), o = new Date(e).getTime();
16
- return t.searchParams.set("t", o.toString()), `${t.origin}${t.pathname}${t.search}${t.hash}`;
15
+ const r = new URL(t), o = new Date(e).getTime();
16
+ return r.searchParams.set("t", o.toString()), `${r.origin}${r.pathname}${r.search}${r.hash}`;
17
17
  }
18
- getBufferFromBase64(r) {
18
+ getBufferFromBase64(t) {
19
19
  try {
20
- const e = r.split(",")[1] || r;
20
+ const e = t.split(",")[1] || t;
21
21
  return Buffer.from(e, "base64");
22
22
  } catch {
23
23
  throw new Error("Invalid base64 string format");
@@ -27,24 +27,24 @@ class A {
27
27
  * Upload an image file using UPLOAD_TO_STORAGE action
28
28
  * Processes, optimizes, and creates thumbnails
29
29
  */
30
- async uploadImageFile(r, e, t, o) {
30
+ async uploadImageFile(t, e, r, o) {
31
31
  try {
32
- const s = this.getBufferFromBase64(r), n = await w(s).metadata(), i = ["jpeg", "jpg", "png", "webp", "gif", "svg", "tiff"];
33
- if (!n.format || !i.includes(n.format.toLowerCase()))
32
+ const s = this.getBufferFromBase64(t), n = await f(s).metadata(), c = ["jpeg", "jpg", "png", "webp", "gif", "svg", "tiff"];
33
+ if (!n.format || !c.includes(n.format.toLowerCase()))
34
34
  throw new Error(`Invalid image format: ${n.format || "unknown"}`);
35
- const u = o ? await w(s).webp({ quality: 100 }).resize({ width: Math.min(n.width || 2e3, 2e3) }).toBuffer() : await w(s).webp({ quality: 100 }).toBuffer();
36
- let a = u;
37
- if (o && u.length > 120 * 1024) {
38
- const O = Math.floor(90 * (122880 / u.length));
39
- a = await w(s).webp({ quality: O }).resize({ width: Math.min(n.width || 2e3, 2e3) }).toBuffer();
35
+ const d = o ? await f(s).webp({ quality: 100 }).resize({ width: Math.min(n.width || 2e3, 2e3) }).toBuffer() : await f(s).webp({ quality: 100 }).toBuffer();
36
+ let a = d;
37
+ if (o && d.length > 120 * 1024) {
38
+ const O = Math.floor(90 * (122880 / d.length));
39
+ a = await f(s).webp({ quality: O }).resize({ width: Math.min(n.width || 2e3, 2e3) }).toBuffer();
40
40
  }
41
- const d = await w(a).metadata(), m = await w(s).webp({ quality: 70 }).resize({ width: 300 }).toBuffer(), p = t.split("."), h = p.length > 1 ? p.slice(0, -1).join(".") : t, g = `${k(h)}.webp`, _ = `${g}_thumbnail.webp`, I = this.appId, x = e ? `${I}/${e}` : I, U = T("UPLOAD_TO_STORAGE");
41
+ const l = await f(a).metadata(), m = await f(s).webp({ quality: 70 }).resize({ width: 300 }).toBuffer(), p = r.split("."), h = p.length > 1 ? p.slice(0, -1).join(".") : r, w = `${_(h)}.webp`, D = `${w}_thumbnail.webp`, I = this.appId, x = e ? `${I}/${e}` : I, U = T("UPLOAD_TO_STORAGE");
42
42
  if (!U)
43
43
  throw new Error("UPLOAD_TO_STORAGE action not found");
44
44
  U.setContext({ appId: this.appId, userId: this.userId });
45
45
  const S = await U.execute({
46
46
  file: a.toString("base64"),
47
- fileName: g,
47
+ fileName: w,
48
48
  contentType: "image/webp",
49
49
  folder: x
50
50
  });
@@ -52,7 +52,7 @@ class A {
52
52
  throw new Error(S.error);
53
53
  const E = await U.execute({
54
54
  file: m.toString("base64"),
55
- fileName: _,
55
+ fileName: D,
56
56
  contentType: "image/webp",
57
57
  folder: x
58
58
  });
@@ -61,9 +61,9 @@ class A {
61
61
  return {
62
62
  url: S.data.url,
63
63
  thumbnailUrl: E.data.url,
64
- size: d.size || a.length,
65
- width: d.width || 0,
66
- height: d.height || 0,
64
+ size: l.size || a.length,
65
+ width: l.width || 0,
66
+ height: l.height || 0,
67
67
  mimeType: "image/webp"
68
68
  };
69
69
  } catch (s) {
@@ -73,16 +73,16 @@ class A {
73
73
  /**
74
74
  * Upload an SVG file using UPLOAD_TO_STORAGE action
75
75
  */
76
- async uploadSvgFile(r, e, t) {
76
+ async uploadSvgFile(t, e, r) {
77
77
  try {
78
- const o = this.getBufferFromBase64(r);
78
+ const o = this.getBufferFromBase64(t);
79
79
  let s, n;
80
80
  try {
81
- const g = await w(o).metadata();
82
- s = g.width, n = g.height;
81
+ const w = await f(o).metadata();
82
+ s = w.width, n = w.height;
83
83
  } catch {
84
84
  }
85
- const i = t.split("."), u = i.length > 1 ? i.slice(0, -1).join(".") : t, a = `${k(u)}.svg`, d = this.appId, m = e ? `${d}/${e}` : d, p = T("UPLOAD_TO_STORAGE");
85
+ const c = r.split("."), d = c.length > 1 ? c.slice(0, -1).join(".") : r, a = `${_(d)}.svg`, l = this.appId, m = e ? `${l}/${e}` : l, p = T("UPLOAD_TO_STORAGE");
86
86
  if (!p)
87
87
  throw new Error("UPLOAD_TO_STORAGE action not found");
88
88
  p.setContext({ appId: this.appId, userId: this.userId });
@@ -107,32 +107,32 @@ class A {
107
107
  }
108
108
  }
109
109
  async upload({
110
- file: r,
110
+ file: t,
111
111
  folderId: e,
112
- name: t,
112
+ name: r,
113
113
  optimize: o = !0
114
114
  }) {
115
115
  var s;
116
116
  try {
117
- const i = t.toLowerCase().endsWith(".svg") || r.includes("data:image/svg+xml") ? await this.uploadSvgFile(r, e, t) : await this.uploadImageFile(r, e, t, o ?? !0);
118
- if ("error" in i)
119
- return i;
120
- const u = {
121
- name: t,
117
+ const c = r.toLowerCase().endsWith(".svg") || t.includes("data:image/svg+xml") ? await this.uploadSvgFile(t, e, r) : await this.uploadImageFile(t, e, r, o ?? !0);
118
+ if ("error" in c)
119
+ return c;
120
+ const d = {
121
+ name: r,
122
122
  app: this.appId,
123
- url: i.url,
124
- thumbnailUrl: i.thumbnailUrl,
125
- size: (s = i.size) == null ? void 0 : s.toString(),
126
- width: i.width,
127
- height: i.height,
128
- format: i.mimeType.split("/")[1],
123
+ url: c.url,
124
+ thumbnailUrl: c.thumbnailUrl,
125
+ size: (s = c.size) == null ? void 0 : s.toString(),
126
+ width: c.width,
127
+ height: c.height,
128
+ format: c.mimeType.split("/")[1],
129
129
  folderId: e,
130
- type: i.mimeType.startsWith("image/") ? "image" : "file",
130
+ type: c.mimeType.startsWith("image/") ? "image" : "file",
131
131
  createdBy: this.userId,
132
132
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
133
- }, { data: a, error: d } = await this.supabase.from("app_assets").insert(u).select("*").single();
134
- if (d)
135
- throw new Error(`Failed to store asset in database: ${d.message}`);
133
+ }, { data: a, error: l } = await this.supabase.from("app_assets").insert(d).select("*").single();
134
+ if (l)
135
+ throw new Error(`Failed to store asset in database: ${l.message}`);
136
136
  return {
137
137
  id: a.id,
138
138
  name: a.name,
@@ -152,49 +152,49 @@ class A {
152
152
  return { error: n instanceof Error ? n.message : "Unknown error occurred" };
153
153
  }
154
154
  }
155
- async getAsset({ id: r }) {
155
+ async getAsset({ id: t }) {
156
156
  try {
157
- const { data: e, error: t } = await this.supabase.from("app_assets").select("*").eq("id", r).eq("app", this.appId).single();
158
- if (t)
159
- throw new Error(`Failed to fetch asset: ${t.message}`);
157
+ const { data: e, error: r } = await this.supabase.from("app_assets").select("*").eq("id", t).eq("app", this.appId).single();
158
+ if (r)
159
+ throw new Error(`Failed to fetch asset: ${r.message}`);
160
160
  return b(e, "url", this.appendUpdatedAtToUrl(e.url, e.updatedAt)), b(e, "thumbnailUrl", this.appendUpdatedAtToUrl(e.thumbnailUrl || "", e.updatedAt)), e;
161
161
  } catch (e) {
162
162
  return { error: e instanceof Error ? e.message : "Unknown error occurred" };
163
163
  }
164
164
  }
165
165
  async getAssets({
166
- search: r = "",
166
+ search: t = "",
167
167
  page: e = 1,
168
- limit: t = 20
168
+ limit: r = 20
169
169
  } = {}) {
170
170
  try {
171
- const o = (e - 1) * t;
171
+ const o = (e - 1) * r;
172
172
  let s = this.supabase.from("app_assets").select("*", { count: "exact" }).eq("app", this.appId).order("updatedAt", { ascending: !1 });
173
- r && (s = s.or(`name.ilike.%${r}%,description.ilike.%${r}%`));
174
- const { data: n, error: i, count: u } = await s.range(o, o + t - 1);
175
- if (i)
176
- throw new Error(i.message);
173
+ t && (s = s.or(`name.ilike.%${t}%,description.ilike.%${t}%`));
174
+ const { data: n, error: c, count: d } = await s.range(o, o + r - 1);
175
+ if (c)
176
+ throw new Error(c.message);
177
177
  return {
178
- assets: n.map((d) => (b(d, "url", this.appendUpdatedAtToUrl(d.url, d.updatedAt)), b(d, "thsupabaseumbnailUrl", this.appendUpdatedAtToUrl(d.thumbnailUrl || "", d.updatedAt)), d)),
179
- total: u || 0,
178
+ assets: n.map((l) => (b(l, "url", this.appendUpdatedAtToUrl(l.url, l.updatedAt)), b(l, "thsupabaseumbnailUrl", this.appendUpdatedAtToUrl(l.thumbnailUrl || "", l.updatedAt)), l)),
179
+ total: d || 0,
180
180
  page: e,
181
- pageSize: t
181
+ pageSize: r
182
182
  };
183
183
  } catch (o) {
184
184
  throw console.error("Error fetching assets:", o), o;
185
185
  }
186
186
  }
187
- async deleteAsset({ id: r }) {
187
+ async deleteAsset({ id: t }) {
188
188
  try {
189
- const { data: e, error: t } = await this.supabase.from("app_assets").select("*").eq("id", r).eq("app", this.appId).single();
190
- if (t)
191
- throw new Error(`Failed to fetch asset: ${t.message}`);
189
+ const { data: e, error: r } = await this.supabase.from("app_assets").select("*").eq("id", t).eq("app", this.appId).single();
190
+ if (r)
191
+ throw new Error(`Failed to fetch asset: ${r.message}`);
192
192
  if (e.url)
193
193
  try {
194
- const n = new URL(e.url).pathname.split("/"), i = n.indexOf("dam-assets");
195
- if (i !== -1) {
196
- const u = n.slice(i + 1).join("/"), a = T("DELETE_FROM_STORAGE");
197
- if (a && (a.setContext({ appId: this.appId, userId: this.userId }), await a.execute({ key: u })), e.thumbnailUrl && e.thumbnailUrl !== e.url) {
194
+ const n = new URL(e.url).pathname.split("/"), c = n.indexOf("dam-assets");
195
+ if (c !== -1) {
196
+ const d = n.slice(c + 1).join("/"), a = T("DELETE_FROM_STORAGE");
197
+ if (a && (a.setContext({ appId: this.appId, userId: this.userId }), await a.execute({ key: d })), e.thumbnailUrl && e.thumbnailUrl !== e.url) {
198
198
  const m = new URL(e.thumbnailUrl).pathname.split("/"), p = m.indexOf("dam-assets");
199
199
  if (p !== -1) {
200
200
  const h = m.slice(p + 1).join("/");
@@ -205,7 +205,7 @@ class A {
205
205
  } catch (s) {
206
206
  console.warn("Failed to delete from storage, continuing with database deletion:", s);
207
207
  }
208
- const { error: o } = await this.supabase.from("app_assets").delete().eq("id", r);
208
+ const { error: o } = await this.supabase.from("app_assets").delete().eq("id", t);
209
209
  if (o)
210
210
  throw new Error(`Failed to delete asset: ${o.message}`);
211
211
  return { success: !0 };
@@ -214,25 +214,25 @@ class A {
214
214
  }
215
215
  }
216
216
  async updateAsset({
217
- id: r,
217
+ id: t,
218
218
  file: e,
219
- description: t
219
+ description: r
220
220
  }) {
221
221
  var o, s;
222
222
  try {
223
- const { data: n, error: i } = await this.supabase.from("app_assets").select("*").eq("id", r).single();
224
- if (i)
225
- throw new Error(`Failed to fetch asset: ${i.message}`);
226
- const u = {};
227
- if (t !== void 0 && (u.description = t, u.updatedAt = (/* @__PURE__ */ new Date()).toISOString()), e) {
223
+ const { data: n, error: c } = await this.supabase.from("app_assets").select("*").eq("id", t).single();
224
+ if (c)
225
+ throw new Error(`Failed to fetch asset: ${c.message}`);
226
+ const d = {};
227
+ if (r !== void 0 && (d.description = r, d.updatedAt = (/* @__PURE__ */ new Date()).toISOString()), e) {
228
228
  const p = ((o = n.format) == null ? void 0 : o.toLowerCase()) === "svg" || e.includes("data:image/svg+xml") ? await this.uploadSvgFile(e, n.folderId, n.name) : await this.uploadImageFile(e, n.folderId, n.name, !0);
229
229
  if ("error" in p)
230
230
  return p;
231
- u.url = p.url, u.thumbnailUrl = p.thumbnailUrl, u.size = (s = p.size) == null ? void 0 : s.toString(), u.width = p.width, u.height = p.height, u.format = p.mimeType.split("/")[1], u.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
231
+ d.url = p.url, d.thumbnailUrl = p.thumbnailUrl, d.size = (s = p.size) == null ? void 0 : s.toString(), d.width = p.width, d.height = p.height, d.format = p.mimeType.split("/")[1], d.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
232
232
  }
233
- const { data: a, error: d } = await this.supabase.from("app_assets").update(u).eq("id", r).select().single();
234
- if (d)
235
- throw new Error(`Failed to update asset: ${d.message}`);
233
+ const { data: a, error: l } = await this.supabase.from("app_assets").update(d).eq("id", t).select().single();
234
+ if (l)
235
+ throw new Error(`Failed to update asset: ${l.message}`);
236
236
  return b(a, "url", this.appendUpdatedAtToUrl(a.url, a.updatedAt)), b(
237
237
  a,
238
238
  "thumbnailUrl",
@@ -243,148 +243,148 @@ class A {
243
243
  }
244
244
  }
245
245
  }
246
- const v = c.object({
247
- name: c.string(),
248
- file: c.string(),
249
- folderId: c.string().optional().nullable(),
250
- optimize: c.boolean().optional()
246
+ const $ = i.object({
247
+ name: i.string(),
248
+ file: i.string(),
249
+ folderId: i.string().optional().nullable(),
250
+ optimize: i.boolean().optional()
251
251
  });
252
- class B extends f {
253
- constructor(r) {
254
- super(), this.supabase = r;
252
+ class v extends g {
253
+ constructor(t) {
254
+ super(), this.supabase = t;
255
255
  }
256
256
  getValidationSchema() {
257
- return v;
257
+ return $;
258
258
  }
259
- async execute(r) {
259
+ async execute(t) {
260
260
  try {
261
261
  if (!this.context)
262
262
  return { error: "Context not set", status: 400 };
263
- const { appId: e, userId: t } = this.context;
264
- if (!t)
263
+ const { appId: e, userId: r } = this.context;
264
+ if (!r)
265
265
  return { error: "User ID is required", status: 401 };
266
- const s = await new A(e, t, this.supabase).upload(r);
266
+ const s = await new A(e, r, this.supabase).upload(t);
267
267
  return "error" in s ? { error: s.error, status: 400 } : s;
268
268
  } catch (e) {
269
269
  return console.error("UPLOAD_ASSET error:", e), { error: e instanceof Error ? e.message : "Unknown error", status: 500 };
270
270
  }
271
271
  }
272
272
  }
273
- const G = c.object({
274
- id: c.string()
273
+ const G = i.object({
274
+ id: i.string()
275
275
  });
276
- class C extends f {
277
- constructor(r) {
278
- super(), this.supabase = r;
276
+ class L extends g {
277
+ constructor(t) {
278
+ super(), this.supabase = t;
279
279
  }
280
280
  getValidationSchema() {
281
281
  return G;
282
282
  }
283
- async execute(r) {
283
+ async execute(t) {
284
284
  try {
285
285
  if (!this.context)
286
286
  return { error: "Context not set", status: 400 };
287
- const { appId: e, userId: t } = this.context;
288
- if (!t)
287
+ const { appId: e, userId: r } = this.context;
288
+ if (!r)
289
289
  return { error: "User ID is required", status: 401 };
290
- const s = await new A(e, t, this.supabase).getAsset(r);
290
+ const s = await new A(e, r, this.supabase).getAsset(t);
291
291
  return "error" in s ? { error: s.error, status: 400 } : s;
292
292
  } catch (e) {
293
293
  return console.error("GET_ASSET error:", e), { error: e instanceof Error ? e.message : "Unknown error", status: 500 };
294
294
  }
295
295
  }
296
296
  }
297
- const L = c.object({
298
- search: c.string().optional(),
299
- page: c.number().optional(),
300
- limit: c.number().optional()
297
+ const B = i.object({
298
+ search: i.string().optional(),
299
+ page: i.number().optional(),
300
+ limit: i.number().optional()
301
301
  });
302
- class j extends f {
303
- constructor(r) {
304
- super(), this.supabase = r;
302
+ class j extends g {
303
+ constructor(t) {
304
+ super(), this.supabase = t;
305
305
  }
306
306
  getValidationSchema() {
307
- return L;
307
+ return B;
308
308
  }
309
- async execute(r) {
309
+ async execute(t) {
310
310
  try {
311
311
  if (!this.context)
312
312
  return { error: "Context not set", status: 400 };
313
- const { appId: e, userId: t } = this.context;
314
- if (!t)
313
+ const { appId: e, userId: r } = this.context;
314
+ if (!r)
315
315
  return { error: "User ID is required", status: 401 };
316
- const s = await new A(e, t, this.supabase).getAssets(r);
316
+ const s = await new A(e, r, this.supabase).getAssets(t);
317
317
  return "error" in s ? { error: s.error, status: 400 } : s;
318
318
  } catch (e) {
319
319
  return console.error("GET_ASSETS error:", e), { error: e instanceof Error ? e.message : "Unknown error", status: 500 };
320
320
  }
321
321
  }
322
322
  }
323
- const P = c.object({
324
- id: c.string()
323
+ const R = i.object({
324
+ id: i.string()
325
325
  });
326
- class R extends f {
327
- constructor(r) {
328
- super(), this.supabase = r;
326
+ class q extends g {
327
+ constructor(t) {
328
+ super(), this.supabase = t;
329
329
  }
330
330
  getValidationSchema() {
331
- return P;
331
+ return R;
332
332
  }
333
- async execute(r) {
333
+ async execute(t) {
334
334
  try {
335
335
  if (!this.context)
336
336
  return { error: "Context not set", status: 400 };
337
- const { appId: e, userId: t } = this.context;
338
- if (!t)
337
+ const { appId: e, userId: r } = this.context;
338
+ if (!r)
339
339
  return { error: "User ID is required", status: 401 };
340
- const s = await new A(e, t, this.supabase).deleteAsset(r);
340
+ const s = await new A(e, r, this.supabase).deleteAsset(t);
341
341
  return "error" in s ? { error: s.error, status: 400 } : s;
342
342
  } catch (e) {
343
343
  return console.error("DELETE_ASSET error:", e), { error: e instanceof Error ? e.message : "Unknown error", status: 500 };
344
344
  }
345
345
  }
346
346
  }
347
- const q = c.object({
348
- id: c.string(),
349
- file: c.string().optional(),
350
- description: c.string().optional()
347
+ const z = i.object({
348
+ id: i.string(),
349
+ file: i.string().optional(),
350
+ description: i.string().optional()
351
351
  });
352
- class z extends f {
353
- constructor(r) {
354
- super(), this.supabase = r;
352
+ class N extends g {
353
+ constructor(t) {
354
+ super(), this.supabase = t;
355
355
  }
356
356
  getValidationSchema() {
357
- return q;
357
+ return z;
358
358
  }
359
- async execute(r) {
359
+ async execute(t) {
360
360
  try {
361
361
  if (!this.context)
362
362
  return { error: "Context not set", status: 400 };
363
- const { appId: e, userId: t } = this.context;
364
- if (!t)
363
+ const { appId: e, userId: r } = this.context;
364
+ if (!r)
365
365
  return { error: "User ID is required", status: 401 };
366
- const s = await new A(e, t, this.supabase).updateAsset(r);
366
+ const s = await new A(e, r, this.supabase).updateAsset(t);
367
367
  return "error" in s ? { error: s.error, status: 400 } : s;
368
368
  } catch (e) {
369
369
  return console.error("UPDATE_ASSET error:", e), { error: e instanceof Error ? e.message : "Unknown error", status: 500 };
370
370
  }
371
371
  }
372
372
  }
373
- const M = c.object({
374
- userId: c.string()
373
+ const M = i.object({
374
+ userId: i.string()
375
375
  });
376
- class N extends f {
377
- constructor(r) {
378
- super(), this.supabase = r;
376
+ class V extends g {
377
+ constructor(t) {
378
+ super(), this.supabase = t;
379
379
  }
380
380
  getValidationSchema() {
381
381
  return M;
382
382
  }
383
- async execute(r) {
384
- var e, t, o, s, n, i;
383
+ async execute(t) {
384
+ var e, r, o, s, n, c;
385
385
  try {
386
- const { userId: u } = r, { data: a, error: d } = await this.supabase.auth.admin.getUserById(u);
387
- return d ? {
386
+ const { userId: d } = t, { data: a, error: l } = await this.supabase.auth.admin.getUserById(d);
387
+ return l ? {
388
388
  data: {
389
389
  id: "unknown",
390
390
  email: "unknown@chaibuilder.com",
@@ -395,9 +395,9 @@ class N extends f {
395
395
  } : {
396
396
  data: {
397
397
  id: ((e = a.user) == null ? void 0 : e.id) || "unknown",
398
- email: ((t = a.user) == null ? void 0 : t.email) || "unknown@chaibuilder.com",
398
+ email: ((r = a.user) == null ? void 0 : r.email) || "unknown@chaibuilder.com",
399
399
  name: ((s = (o = a.user) == null ? void 0 : o.user_metadata) == null ? void 0 : s.name) || "Unknown",
400
- avatar: ((i = (n = a.user) == null ? void 0 : n.user_metadata) == null ? void 0 : i.avatar_url) || ""
400
+ avatar: ((c = (n = a.user) == null ? void 0 : n.user_metadata) == null ? void 0 : c.avatar_url) || ""
401
401
  },
402
402
  status: 200
403
403
  };
@@ -414,22 +414,60 @@ class N extends f {
414
414
  }
415
415
  }
416
416
  }
417
- const V = c.object({
418
- key: c.string()
417
+ const W = i.object({
418
+ email: i.string().email(),
419
+ oldPassword: i.string().min(1, "Old password is required"),
420
+ newPassword: i.string().min(8, "New password must be at least 8 characters"),
421
+ confirmPassword: i.string().min(1, "Confirm password is required")
422
+ }).refine((u) => u.newPassword === u.confirmPassword, {
423
+ message: "Confirm password does not match",
424
+ path: ["confirmPassword"]
425
+ });
426
+ class H extends g {
427
+ constructor(t) {
428
+ super(), this.supabase = t;
429
+ }
430
+ getValidationSchema() {
431
+ return W;
432
+ }
433
+ async execute(t) {
434
+ try {
435
+ const { email: e, oldPassword: r, newPassword: o } = t, { error: s } = await this.supabase.auth.signInWithPassword({
436
+ email: e,
437
+ password: r
438
+ });
439
+ if (s)
440
+ throw new k("Current password is incorrect", "INVALID_PASSWORD", 400);
441
+ const { error: n } = await this.supabase.auth.updateUser({
442
+ password: o
443
+ });
444
+ if (n)
445
+ throw new k(n.message || "Failed to update password", "UPDATE_FAILED", 400);
446
+ return {
447
+ data: { message: "Password changed successfully" },
448
+ status: 200
449
+ };
450
+ } catch (e) {
451
+ throw e;
452
+ }
453
+ }
454
+ }
455
+ const K = i.object({
456
+ key: i.string()
419
457
  // Storage key/path to delete
420
458
  });
421
- class W extends f {
459
+ class Q extends g {
422
460
  constructor(e) {
423
461
  super();
424
462
  y(this, "bucketName", "dam-assets");
425
463
  this.supabase = e;
426
464
  }
427
465
  getValidationSchema() {
428
- return V;
466
+ return K;
429
467
  }
430
468
  async execute(e) {
431
469
  try {
432
- const { key: t } = e, { error: o } = await this.supabase.storage.from(this.bucketName).remove([t]);
470
+ const { key: r } = e, { error: o } = await this.supabase.storage.from(this.bucketName).remove([r]);
433
471
  return o ? {
434
472
  error: `Failed to delete from Supabase Storage: ${o.message}`,
435
473
  status: 500
@@ -437,46 +475,46 @@ class W extends f {
437
475
  data: { success: !0 },
438
476
  status: 200
439
477
  };
440
- } catch (t) {
441
- return console.error("DELETE_FROM_STORAGE error:", t), {
442
- error: t instanceof Error ? t.message : "Unknown error",
478
+ } catch (r) {
479
+ return console.error("DELETE_FROM_STORAGE error:", r), {
480
+ error: r instanceof Error ? r.message : "Unknown error",
443
481
  status: 500
444
482
  };
445
483
  }
446
484
  }
447
485
  }
448
- const H = c.object({
449
- file: c.string(),
486
+ const J = i.object({
487
+ file: i.string(),
450
488
  // Base64 string
451
- fileName: c.string(),
452
- contentType: c.string().optional(),
453
- folder: c.string().optional(),
454
- metadata: c.record(c.string(), c.any()).optional()
489
+ fileName: i.string(),
490
+ contentType: i.string().optional(),
491
+ folder: i.string().optional(),
492
+ metadata: i.record(i.string(), i.any()).optional()
455
493
  });
456
- class K extends f {
494
+ class X extends g {
457
495
  constructor(e) {
458
496
  super();
459
497
  y(this, "bucketName", "dam-assets");
460
498
  this.supabase = e;
461
499
  }
462
500
  getValidationSchema() {
463
- return H;
501
+ return J;
464
502
  }
465
503
  async execute(e) {
466
504
  try {
467
505
  if (!this.context)
468
506
  return { error: "Context not set", status: 400 };
469
- const { appId: t } = this.context, { file: o, fileName: s, contentType: n, folder: i, metadata: u } = e;
507
+ const { appId: r } = this.context, { file: o, fileName: s, contentType: n, folder: c, metadata: d } = e;
470
508
  let a;
471
509
  if (typeof o == "string") {
472
- const g = o.split(",")[1] || o;
473
- a = Buffer.from(g, "base64");
510
+ const w = o.split(",")[1] || o;
511
+ a = Buffer.from(w, "base64");
474
512
  } else
475
513
  a = o;
476
- const d = i ? `${i}/${s}` : `${t}/${s}`, { data: m, error: p } = await this.supabase.storage.from(this.bucketName).upload(d, a, {
514
+ const l = c ? `${c}/${s}` : `${r}/${s}`, { data: m, error: p } = await this.supabase.storage.from(this.bucketName).upload(l, a, {
477
515
  contentType: n || "application/octet-stream",
478
516
  upsert: !0,
479
- ...u && { metadata: u }
517
+ ...d && { metadata: d }
480
518
  });
481
519
  if (p)
482
520
  return {
@@ -485,40 +523,41 @@ class K extends f {
485
523
  };
486
524
  const {
487
525
  data: { publicUrl: h }
488
- } = this.supabase.storage.from(this.bucketName).getPublicUrl(d);
526
+ } = this.supabase.storage.from(this.bucketName).getPublicUrl(l);
489
527
  return {
490
528
  data: {
491
529
  url: h,
492
530
  key: m.path,
493
531
  size: a.length,
494
- metadata: u
532
+ metadata: d
495
533
  },
496
534
  status: 200
497
535
  };
498
- } catch (t) {
499
- return console.error("UPLOAD_TO_STORAGE error:", t), {
500
- error: t instanceof Error ? t.message : "Unknown error",
536
+ } catch (r) {
537
+ return console.error("UPLOAD_TO_STORAGE error:", r), {
538
+ error: r instanceof Error ? r.message : "Unknown error",
501
539
  status: 500
502
540
  };
503
541
  }
504
542
  }
505
543
  }
506
- const ee = (l) => ({
507
- GET_CHAI_USER: new N(l)
508
- }), te = (l) => ({
544
+ const se = (u) => ({
545
+ GET_CHAI_USER: new V(u),
546
+ CHANGE_PASSWORD: new H(u)
547
+ }), ae = (u) => ({
509
548
  // Asset management actions
510
- UPLOAD_ASSET: new B(l),
511
- GET_ASSET: new C(l),
512
- GET_ASSETS: new j(l),
513
- DELETE_ASSET: new R(l),
514
- UPDATE_ASSET: new z(l),
549
+ UPLOAD_ASSET: new v(u),
550
+ GET_ASSET: new L(u),
551
+ GET_ASSETS: new j(u),
552
+ DELETE_ASSET: new q(u),
553
+ UPDATE_ASSET: new N(u),
515
554
  // Generic storage actions
516
- UPLOAD_TO_STORAGE: new K(l),
517
- DELETE_FROM_STORAGE: new W(l)
555
+ UPLOAD_TO_STORAGE: new X(u),
556
+ DELETE_FROM_STORAGE: new Q(u)
518
557
  });
519
558
  export {
520
- W as DeleteFromStorageAction,
521
- ee as SupabaseAuthActions,
522
- te as SupabaseStorageActions,
523
- K as UploadToStorageAction
559
+ Q as DeleteFromStorageAction,
560
+ se as SupabaseAuthActions,
561
+ ae as SupabaseStorageActions,
562
+ X as UploadToStorageAction
524
563
  };