@symbo.ls/sdk 2.32.0 → 2.32.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/cjs/config/environment.js +8 -43
  2. package/dist/cjs/index.js +4 -12
  3. package/dist/cjs/services/AdminService.js +4 -4
  4. package/dist/cjs/services/AuthService.js +149 -36
  5. package/dist/cjs/services/BaseService.js +18 -5
  6. package/dist/cjs/services/BranchService.js +10 -10
  7. package/dist/cjs/services/CollabService.js +18 -114
  8. package/dist/cjs/services/CoreService.js +19 -19
  9. package/dist/cjs/services/DnsService.js +4 -4
  10. package/dist/cjs/services/FileService.js +2 -2
  11. package/dist/cjs/services/PaymentService.js +2 -2
  12. package/dist/cjs/services/PlanService.js +12 -12
  13. package/dist/cjs/services/ProjectService.js +34 -39
  14. package/dist/cjs/services/PullRequestService.js +7 -7
  15. package/dist/cjs/services/SubscriptionService.js +14 -14
  16. package/dist/cjs/services/index.js +0 -4
  17. package/dist/cjs/utils/TokenManager.js +5 -16
  18. package/dist/cjs/utils/services.js +1 -14
  19. package/dist/esm/config/environment.js +8 -43
  20. package/dist/esm/index.js +300 -907
  21. package/dist/esm/services/AdminService.js +35 -68
  22. package/dist/esm/services/AuthService.js +168 -100
  23. package/dist/esm/services/BaseService.js +31 -64
  24. package/dist/esm/services/BranchService.js +41 -74
  25. package/dist/esm/services/CollabService.js +50 -452
  26. package/dist/esm/services/CoreService.js +50 -83
  27. package/dist/esm/services/DnsService.js +35 -68
  28. package/dist/esm/services/FileService.js +33 -66
  29. package/dist/esm/services/PaymentService.js +33 -66
  30. package/dist/esm/services/PlanService.js +43 -76
  31. package/dist/esm/services/ProjectService.js +65 -375
  32. package/dist/esm/services/PullRequestService.js +38 -71
  33. package/dist/esm/services/SubscriptionService.js +45 -78
  34. package/dist/esm/services/index.js +295 -884
  35. package/dist/esm/utils/CollabClient.js +8 -43
  36. package/dist/esm/utils/TokenManager.js +5 -16
  37. package/dist/esm/utils/services.js +1 -14
  38. package/dist/node/config/environment.js +8 -43
  39. package/dist/node/index.js +5 -14
  40. package/dist/node/services/AdminService.js +4 -4
  41. package/dist/node/services/AuthService.js +139 -36
  42. package/dist/node/services/BaseService.js +18 -5
  43. package/dist/node/services/BranchService.js +10 -10
  44. package/dist/node/services/CollabService.js +19 -115
  45. package/dist/node/services/CoreService.js +19 -19
  46. package/dist/node/services/DnsService.js +4 -4
  47. package/dist/node/services/FileService.js +2 -2
  48. package/dist/node/services/PaymentService.js +2 -2
  49. package/dist/node/services/PlanService.js +12 -12
  50. package/dist/node/services/ProjectService.js +34 -39
  51. package/dist/node/services/PullRequestService.js +7 -7
  52. package/dist/node/services/SubscriptionService.js +14 -14
  53. package/dist/node/services/index.js +0 -4
  54. package/dist/node/utils/TokenManager.js +5 -16
  55. package/dist/node/utils/services.js +1 -14
  56. package/package.json +6 -7
  57. package/src/config/environment.js +9 -48
  58. package/src/index.js +22 -38
  59. package/src/services/AdminService.js +4 -4
  60. package/src/services/AuthService.js +175 -42
  61. package/src/services/BaseService.js +24 -7
  62. package/src/services/BranchService.js +10 -10
  63. package/src/services/CollabService.js +19 -142
  64. package/src/services/CoreService.js +19 -19
  65. package/src/services/DnsService.js +4 -4
  66. package/src/services/FileService.js +2 -2
  67. package/src/services/PaymentService.js +2 -2
  68. package/src/services/PlanService.js +12 -12
  69. package/src/services/ProjectService.js +34 -41
  70. package/src/services/PullRequestService.js +7 -7
  71. package/src/services/SubscriptionService.js +14 -14
  72. package/src/services/index.js +1 -6
  73. package/src/utils/TokenManager.js +5 -19
  74. package/src/utils/services.js +1 -15
  75. package/dist/cjs/services/ScreenshotService.js +0 -304
  76. package/dist/cjs/utils/ordering.js +0 -295
  77. package/dist/esm/services/ScreenshotService.js +0 -992
  78. package/dist/esm/utils/ordering.js +0 -277
  79. package/dist/node/services/ScreenshotService.js +0 -285
  80. package/dist/node/utils/ordering.js +0 -276
  81. package/src/services/ScreenshotService.js +0 -258
  82. package/src/utils/ordering.js +0 -240
@@ -3,9 +3,7 @@ import { CollabClient } from "../utils/CollabClient.js";
3
3
  import { RootStateManager } from "../state/RootStateManager.js";
4
4
  import { rootBus } from "../state/rootEventBus.js";
5
5
  import { validateParams } from "../utils/validation.js";
6
- import { deepStringifyFunctions } from "@domql/utils";
7
- import { diffJson } from "../utils/jsonDiff.js";
8
- import { computeOrdersForTuples } from "../utils/ordering.js";
6
+ import { deepStringify } from "@domql/utils";
9
7
  class CollabService extends BaseService {
10
8
  constructor(config) {
11
9
  super(config);
@@ -69,8 +67,8 @@ class CollabService extends BaseService {
69
67
  logger(`[Notification] ${title}${message ? ` \u2013 ${message}` : ""}`);
70
68
  return;
71
69
  }
72
- case "deepStringifyFunctions": {
73
- return deepStringifyFunctions(...args);
70
+ case "deepStringify": {
71
+ return deepStringify(...args);
74
72
  }
75
73
  default:
76
74
  return {};
@@ -120,8 +118,10 @@ class CollabService extends BaseService {
120
118
  (_b2 = this._client.socket) == null ? void 0 : _b2.once("connect", resolve);
121
119
  }
122
120
  });
121
+ console.log("[CollabService] socket connected");
123
122
  (_b = this._client.socket) == null ? void 0 : _b.on("ops", ({ changes }) => {
124
123
  console.log(`ops event`);
124
+ console.log(changes);
125
125
  this._stateManager.applyChanges(changes, { fromSocket: true });
126
126
  });
127
127
  (_c = this._client.socket) == null ? void 0 : _c.on("commit", ({ version }) => {
@@ -143,13 +143,15 @@ class CollabService extends BaseService {
143
143
  console.log(
144
144
  `[CollabService] Flushing ${this._pendingOps.length} offline operation batch(es)`
145
145
  );
146
- this._pendingOps.forEach(({ changes, orders }) => {
147
- this.socket.emit("ops", { changes, orders, ts: Date.now() });
146
+ this._pendingOps.forEach(({ tuples }) => {
147
+ this.socket.emit("ops", { changes: tuples, ts: Date.now() });
148
148
  });
149
149
  this._pendingOps.length = 0;
150
150
  }
151
151
  this._connected = true;
152
+ console.log("[CollabService] Connected to project:", projectId);
152
153
  } catch (err) {
154
+ console.error("[CollabService] Connection failed:", err);
153
155
  throw err;
154
156
  }
155
157
  }
@@ -189,118 +191,24 @@ class CollabService extends BaseService {
189
191
  }
190
192
  /* ---------- data helpers ---------- */
191
193
  updateData(tuples, options = {}) {
192
- var _a, _b;
194
+ var _a;
193
195
  this._ensureStateManager();
194
196
  const { isUndo = false, isRedo = false } = options;
195
197
  if (!isUndo && !isRedo && !this._isUndoRedo) {
196
198
  this._trackForUndo(tuples, options);
197
199
  }
198
- const processedTuples = (() => {
199
- var _a2;
200
- try {
201
- const root = (_a2 = this._stateManager) == null ? void 0 : _a2.root;
202
- const isPlainObject = (o) => o && typeof o === "object" && !Array.isArray(o);
203
- const getByPath = (state2, path) => {
204
- if (!state2 || typeof state2.getByPath !== "function") {
205
- return null;
206
- }
207
- try {
208
- return state2.getByPath(path);
209
- } catch {
210
- return null;
211
- }
212
- };
213
- const expandTuple = (t) => {
214
- const [action, path, value] = t || [];
215
- const isSchemaPath = Array.isArray(path) && path[0] === "schema";
216
- if (action === "delete" || isSchemaPath) {
217
- return [t];
218
- }
219
- const canConsiderExpansion = action === "update" && Array.isArray(path) && (path.length === 1 || path.length === 2) && isPlainObject(value);
220
- if (!canConsiderExpansion) {
221
- return [t];
222
- }
223
- const prev = getByPath(root, path) || {};
224
- const next = value || {};
225
- if (!isPlainObject(prev) || !isPlainObject(next)) {
226
- return [t];
227
- }
228
- const ops = diffJson(prev, next, []);
229
- if (!ops.length) {
230
- return [];
231
- }
232
- const arr = [];
233
- for (let j = 0; j < ops.length; j++) {
234
- const op = ops[j];
235
- const fullPath = [...path, ...op.path];
236
- const last = fullPath[fullPath.length - 1];
237
- if (op.action === "set") {
238
- arr.push(["update", fullPath, op.value]);
239
- } else if (op.action === "del") {
240
- if (last !== "__order") {
241
- arr.push(["delete", fullPath]);
242
- }
243
- }
244
- }
245
- return arr;
246
- };
247
- const minimizeTuples = (inputTuples) => {
248
- const out = [];
249
- for (let i = 0; i < inputTuples.length; i++) {
250
- const expanded = expandTuple(inputTuples[i]);
251
- for (let k = 0; k < expanded.length; k++) {
252
- const tuple = expanded[k];
253
- const isDelete = Array.isArray(tuple) && tuple[0] === "delete";
254
- const isOrderKey = isDelete && Array.isArray(tuple[1]) && tuple[1][tuple[1].length - 1] === "__order";
255
- if (!isOrderKey) {
256
- out.push(tuple);
257
- }
258
- }
259
- }
260
- console.log(`Minimized tuples`, out);
261
- return out;
262
- };
263
- console.log(`Processing tuples`, tuples);
264
- return minimizeTuples(tuples);
265
- } catch (err) {
266
- console.warn(
267
- "[CollabService] Minimal diff expansion failed \u2013 using original tuples",
268
- err
269
- );
270
- return tuples;
271
- }
272
- })();
273
200
  if (options.append && options.append.length) {
274
- processedTuples.push(...options.append);
201
+ tuples.push(...options.append);
275
202
  }
276
203
  this._stateManager.applyChanges(tuples, { ...options });
277
- const state = (_a = this._stateManager) == null ? void 0 : _a.root;
278
- const el = state == null ? void 0 : state.__element;
279
- const orders = computeOrdersForTuples(state, processedTuples);
280
- const stringifiedTuples = (el == null ? void 0 : el.call) ? el.call(
281
- "deepStringifyFunctions",
282
- processedTuples,
283
- Array.isArray(processedTuples) ? [] : {}
284
- ) : deepStringifyFunctions(
285
- processedTuples,
286
- Array.isArray(processedTuples) ? [] : {}
287
- );
204
+ tuples = deepStringify(tuples, []);
288
205
  if (!this.isConnected()) {
289
206
  console.warn("[CollabService] Not connected, queuing real-time update");
290
- this._pendingOps.push({ changes: stringifiedTuples, orders, options });
207
+ this._pendingOps.push({ tuples, options });
291
208
  return;
292
209
  }
293
- if ((_b = this.socket) == null ? void 0 : _b.connected) {
294
- console.log("[CollabService] Sending operations to the backend", {
295
- changes: stringifiedTuples,
296
- orders,
297
- ts: Date.now()
298
- });
299
- this.socket.emit("ops", {
300
- changes: stringifiedTuples,
301
- orders,
302
- ts: Date.now()
303
- });
210
+ if ((_a = this.socket) == null ? void 0 : _a.connected) {
211
+ this.socket.emit("ops", { changes: tuples, ts: Date.now() });
304
212
  }
305
213
  return { success: true };
306
214
  }
@@ -441,7 +349,7 @@ class CollabService extends BaseService {
441
349
  const updatedOpts = { ...opts, skipComponentsChangedEvent: true };
442
350
  return this.updateData(tuples, updatedOpts);
443
351
  } catch (error) {
444
- throw new Error(`Failed to add item: ${error.message}`, { cause: error });
352
+ throw new Error(`Failed to add item: ${error.message}`);
445
353
  }
446
354
  }
447
355
  addMultipleItems(items, opts = {}) {
@@ -470,7 +378,7 @@ class CollabService extends BaseService {
470
378
  title: "Failed to add item",
471
379
  message: error.message
472
380
  });
473
- throw new Error(`Failed to add item: ${error.message}`, { cause: error });
381
+ throw new Error(`Failed to add item: ${error.message}`);
474
382
  }
475
383
  }
476
384
  updateItem(type, data, opts = {}) {
@@ -492,9 +400,7 @@ class CollabService extends BaseService {
492
400
  title: "Failed to update item",
493
401
  message: error.message
494
402
  });
495
- throw new Error(`Failed to update item: ${error.message}`, {
496
- cause: error
497
- });
403
+ throw new Error(`Failed to update item: ${error.message}`);
498
404
  }
499
405
  }
500
406
  deleteItem(type, key, opts = {}) {
@@ -519,9 +425,7 @@ class CollabService extends BaseService {
519
425
  title: "Failed to delete item",
520
426
  message: error.message
521
427
  });
522
- throw new Error(`Failed to delete item: ${error.message}`, {
523
- cause: error
524
- });
428
+ throw new Error(`Failed to delete item: ${error.message}`);
525
429
  }
526
430
  }
527
431
  /* ---------- socket event helpers ---------- */
@@ -148,11 +148,11 @@ class CoreService extends BaseService {
148
148
  error = await response.json();
149
149
  } catch {
150
150
  }
151
- throw new Error(error.message || error.error || "Request failed", { cause: error });
151
+ throw new Error(error.message || error.error || "Request failed");
152
152
  }
153
153
  return response.status === 204 ? null : response.json();
154
154
  } catch (error) {
155
- throw new Error(`Request failed: ${error.message}`, { cause: error });
155
+ throw new Error(`Request failed: ${error.message}`);
156
156
  }
157
157
  }
158
158
  // ==================== AUTH METHODS ====================
@@ -168,7 +168,7 @@ class CoreService extends BaseService {
168
168
  }
169
169
  throw new Error(response.message);
170
170
  } catch (error) {
171
- throw new Error(`Registration failed: ${error.message}`, { cause: error });
171
+ throw new Error(`Registration failed: ${error.message}`);
172
172
  }
173
173
  }
174
174
  async login(email, password) {
@@ -197,7 +197,7 @@ class CoreService extends BaseService {
197
197
  }
198
198
  throw new Error(response.message);
199
199
  } catch (error) {
200
- throw new Error(`Login failed: ${error.message}`, { cause: error });
200
+ throw new Error(`Login failed: ${error.message}`);
201
201
  }
202
202
  }
203
203
  async logout() {
@@ -216,7 +216,7 @@ class CoreService extends BaseService {
216
216
  this._tokenManager.clearTokens();
217
217
  }
218
218
  this.updateContext({ authToken: null });
219
- throw new Error(`Logout failed: ${error.message}`, { cause: error });
219
+ throw new Error(`Logout failed: ${error.message}`);
220
220
  }
221
221
  }
222
222
  async refreshToken(refreshToken) {
@@ -231,7 +231,7 @@ class CoreService extends BaseService {
231
231
  }
232
232
  throw new Error(response.message);
233
233
  } catch (error) {
234
- throw new Error(`Token refresh failed: ${error.message}`, { cause: error });
234
+ throw new Error(`Token refresh failed: ${error.message}`);
235
235
  }
236
236
  }
237
237
  async googleAuth(idToken, inviteToken = null) {
@@ -264,7 +264,7 @@ class CoreService extends BaseService {
264
264
  }
265
265
  throw new Error(response.message);
266
266
  } catch (error) {
267
- throw new Error(`Google auth failed: ${error.message}`, { cause: error });
267
+ throw new Error(`Google auth failed: ${error.message}`);
268
268
  }
269
269
  }
270
270
  async githubAuth(code, inviteToken = null) {
@@ -297,7 +297,7 @@ class CoreService extends BaseService {
297
297
  }
298
298
  throw new Error(response.message);
299
299
  } catch (error) {
300
- throw new Error(`GitHub auth failed: ${error.message}`, { cause: error });
300
+ throw new Error(`GitHub auth failed: ${error.message}`);
301
301
  }
302
302
  }
303
303
  async googleAuthCallback(code, redirectUri, inviteToken = null) {
@@ -330,7 +330,7 @@ class CoreService extends BaseService {
330
330
  }
331
331
  throw new Error(response.message);
332
332
  } catch (error) {
333
- throw new Error(`Google auth callback failed: ${error.message}`, { cause: error });
333
+ throw new Error(`Google auth callback failed: ${error.message}`);
334
334
  }
335
335
  }
336
336
  async requestPasswordReset(email) {
@@ -345,7 +345,7 @@ class CoreService extends BaseService {
345
345
  }
346
346
  throw new Error(response.message);
347
347
  } catch (error) {
348
- throw new Error(`Password reset request failed: ${error.message}`, { cause: error });
348
+ throw new Error(`Password reset request failed: ${error.message}`);
349
349
  }
350
350
  }
351
351
  async confirmPasswordReset(token, password) {
@@ -360,7 +360,7 @@ class CoreService extends BaseService {
360
360
  }
361
361
  throw new Error(response.message);
362
362
  } catch (error) {
363
- throw new Error(`Password reset confirmation failed: ${error.message}`, { cause: error });
363
+ throw new Error(`Password reset confirmation failed: ${error.message}`);
364
364
  }
365
365
  }
366
366
  async confirmRegistration(token) {
@@ -375,7 +375,7 @@ class CoreService extends BaseService {
375
375
  }
376
376
  throw new Error(response.message);
377
377
  } catch (error) {
378
- throw new Error(`Registration confirmation failed: ${error.message}`, { cause: error });
378
+ throw new Error(`Registration confirmation failed: ${error.message}`);
379
379
  }
380
380
  }
381
381
  async requestPasswordChange() {
@@ -390,7 +390,7 @@ class CoreService extends BaseService {
390
390
  }
391
391
  throw new Error(response.message);
392
392
  } catch (error) {
393
- throw new Error(`Password change request failed: ${error.message}`, { cause: error });
393
+ throw new Error(`Password change request failed: ${error.message}`);
394
394
  }
395
395
  }
396
396
  async confirmPasswordChange(currentPassword, newPassword, code) {
@@ -406,7 +406,7 @@ class CoreService extends BaseService {
406
406
  }
407
407
  throw new Error(response.message);
408
408
  } catch (error) {
409
- throw new Error(`Password change confirmation failed: ${error.message}`, { cause: error });
409
+ throw new Error(`Password change confirmation failed: ${error.message}`);
410
410
  }
411
411
  }
412
412
  async getMe() {
@@ -421,7 +421,7 @@ class CoreService extends BaseService {
421
421
  }
422
422
  throw new Error(response.message);
423
423
  } catch (error) {
424
- throw new Error(`Failed to get user profile: ${error.message}`, { cause: error });
424
+ throw new Error(`Failed to get user profile: ${error.message}`);
425
425
  }
426
426
  }
427
427
  /**
@@ -537,7 +537,7 @@ class CoreService extends BaseService {
537
537
  }
538
538
  throw new Error(response.message);
539
539
  } catch (error) {
540
- throw new Error(`Failed to update user profile: ${error.message}`, { cause: error });
540
+ throw new Error(`Failed to update user profile: ${error.message}`);
541
541
  }
542
542
  }
543
543
  async getUserProjects() {
@@ -560,7 +560,7 @@ class CoreService extends BaseService {
560
560
  }
561
561
  throw new Error(response.message);
562
562
  } catch (error) {
563
- throw new Error(`Failed to get user projects: ${error.message}`, { cause: error });
563
+ throw new Error(`Failed to get user projects: ${error.message}`);
564
564
  }
565
565
  }
566
566
  async getUser(userId) {
@@ -578,7 +578,7 @@ class CoreService extends BaseService {
578
578
  }
579
579
  throw new Error(response.message);
580
580
  } catch (error) {
581
- throw new Error(`Failed to get user: ${error.message}`, { cause: error });
581
+ throw new Error(`Failed to get user: ${error.message}`);
582
582
  }
583
583
  }
584
584
  async getUserByEmail(email) {
@@ -596,7 +596,7 @@ class CoreService extends BaseService {
596
596
  }
597
597
  throw new Error(response.message);
598
598
  } catch (error) {
599
- throw new Error(`Failed to get user by email: ${error.message}`, { cause: error });
599
+ throw new Error(`Failed to get user by email: ${error.message}`);
600
600
  }
601
601
  }
602
602
  // ==================== PROJECT METHODS ====================
@@ -17,7 +17,7 @@ class DnsService extends BaseService {
17
17
  }
18
18
  throw new Error(response.message);
19
19
  } catch (error) {
20
- throw new Error(`Failed to create DNS record: ${error.message}`, { cause: error });
20
+ throw new Error(`Failed to create DNS record: ${error.message}`);
21
21
  }
22
22
  }
23
23
  async getDnsRecord(domain) {
@@ -35,7 +35,7 @@ class DnsService extends BaseService {
35
35
  }
36
36
  throw new Error(response.message);
37
37
  } catch (error) {
38
- throw new Error(`Failed to get DNS record: ${error.message}`, { cause: error });
38
+ throw new Error(`Failed to get DNS record: ${error.message}`);
39
39
  }
40
40
  }
41
41
  async getCustomHost(hostname) {
@@ -71,7 +71,7 @@ class DnsService extends BaseService {
71
71
  }
72
72
  throw new Error(response.message);
73
73
  } catch (error) {
74
- throw new Error(`Failed to remove DNS record: ${error.message}`, { cause: error });
74
+ throw new Error(`Failed to remove DNS record: ${error.message}`);
75
75
  }
76
76
  }
77
77
  // Deprecated, use addProjectCustomDomains instead
@@ -95,7 +95,7 @@ class DnsService extends BaseService {
95
95
  }
96
96
  throw new Error(response.message);
97
97
  } catch (error) {
98
- throw new Error(`Failed to set project domains: ${error.message}`, { cause: error });
98
+ throw new Error(`Failed to set project domains: ${error.message}`);
99
99
  }
100
100
  }
101
101
  // customDomains could be a string or an array of strings
@@ -38,7 +38,7 @@ class FileService extends BaseService {
38
38
  message: response.message
39
39
  };
40
40
  } catch (error) {
41
- throw new Error(`File upload failed: ${error.message}`, { cause: error });
41
+ throw new Error(`File upload failed: ${error.message}`);
42
42
  }
43
43
  }
44
44
  async updateProjectIcon(projectId, iconFile) {
@@ -62,7 +62,7 @@ class FileService extends BaseService {
62
62
  }
63
63
  throw new Error(response.message);
64
64
  } catch (error) {
65
- throw new Error(`Failed to update project icon: ${error.message}`, { cause: error });
65
+ throw new Error(`Failed to update project icon: ${error.message}`);
66
66
  }
67
67
  }
68
68
  // ==================== FILE HELPER METHODS ====================
@@ -30,7 +30,7 @@ class PaymentService extends BaseService {
30
30
  }
31
31
  throw new Error(response.message);
32
32
  } catch (error) {
33
- throw new Error(`Failed to checkout: ${error.message}`, { cause: error });
33
+ throw new Error(`Failed to checkout: ${error.message}`);
34
34
  }
35
35
  }
36
36
  async getSubscriptionStatus(projectId) {
@@ -51,7 +51,7 @@ class PaymentService extends BaseService {
51
51
  }
52
52
  throw new Error(response.message);
53
53
  } catch (error) {
54
- throw new Error(`Failed to get subscription status: ${error.message}`, { cause: error });
54
+ throw new Error(`Failed to get subscription status: ${error.message}`);
55
55
  }
56
56
  }
57
57
  // ==================== PAYMENT HELPER METHODS ====================
@@ -15,7 +15,7 @@ class PlanService extends BaseService {
15
15
  }
16
16
  throw new Error(response.message);
17
17
  } catch (error) {
18
- throw new Error(`Failed to get plans: ${error.message}`, { cause: error });
18
+ throw new Error(`Failed to get plans: ${error.message}`);
19
19
  }
20
20
  }
21
21
  /**
@@ -35,7 +35,7 @@ class PlanService extends BaseService {
35
35
  }
36
36
  throw new Error(response.message);
37
37
  } catch (error) {
38
- throw new Error(`Failed to get plan: ${error.message}`, { cause: error });
38
+ throw new Error(`Failed to get plan: ${error.message}`);
39
39
  }
40
40
  }
41
41
  // ==================== ADMIN PLAN METHODS ====================
@@ -54,7 +54,7 @@ class PlanService extends BaseService {
54
54
  }
55
55
  throw new Error(response.message);
56
56
  } catch (error) {
57
- throw new Error(`Failed to get admin plans: ${error.message}`, { cause: error });
57
+ throw new Error(`Failed to get admin plans: ${error.message}`);
58
58
  }
59
59
  }
60
60
  /**
@@ -76,7 +76,7 @@ class PlanService extends BaseService {
76
76
  }
77
77
  throw new Error(response.message);
78
78
  } catch (error) {
79
- throw new Error(`Failed to create plan: ${error.message}`, { cause: error });
79
+ throw new Error(`Failed to create plan: ${error.message}`);
80
80
  }
81
81
  }
82
82
  /**
@@ -101,7 +101,7 @@ class PlanService extends BaseService {
101
101
  }
102
102
  throw new Error(response.message);
103
103
  } catch (error) {
104
- throw new Error(`Failed to update plan: ${error.message}`, { cause: error });
104
+ throw new Error(`Failed to update plan: ${error.message}`);
105
105
  }
106
106
  }
107
107
  /**
@@ -122,7 +122,7 @@ class PlanService extends BaseService {
122
122
  }
123
123
  throw new Error(response.message);
124
124
  } catch (error) {
125
- throw new Error(`Failed to delete plan: ${error.message}`, { cause: error });
125
+ throw new Error(`Failed to delete plan: ${error.message}`);
126
126
  }
127
127
  }
128
128
  /**
@@ -140,7 +140,7 @@ class PlanService extends BaseService {
140
140
  }
141
141
  throw new Error(response.message);
142
142
  } catch (error) {
143
- throw new Error(`Failed to initialize plans: ${error.message}`, { cause: error });
143
+ throw new Error(`Failed to initialize plans: ${error.message}`);
144
144
  }
145
145
  }
146
146
  // ==================== PLAN HELPER METHODS ====================
@@ -155,7 +155,7 @@ class PlanService extends BaseService {
155
155
  }
156
156
  return plans;
157
157
  } catch (error) {
158
- throw new Error(`Failed to get plans with validation: ${error.message}`, { cause: error });
158
+ throw new Error(`Failed to get plans with validation: ${error.message}`);
159
159
  }
160
160
  }
161
161
  /**
@@ -172,7 +172,7 @@ class PlanService extends BaseService {
172
172
  }
173
173
  return plan;
174
174
  } catch (error) {
175
- throw new Error(`Failed to get plan with validation: ${error.message}`, { cause: error });
175
+ throw new Error(`Failed to get plan with validation: ${error.message}`);
176
176
  }
177
177
  }
178
178
  /**
@@ -224,7 +224,7 @@ class PlanService extends BaseService {
224
224
  const plans = await this.getPlans();
225
225
  return plans.filter((plan) => plan.active !== false);
226
226
  } catch (error) {
227
- throw new Error(`Failed to get active plans: ${error.message}`, { cause: error });
227
+ throw new Error(`Failed to get active plans: ${error.message}`);
228
228
  }
229
229
  }
230
230
  /**
@@ -238,7 +238,7 @@ class PlanService extends BaseService {
238
238
  return price >= minPrice && price <= maxPrice;
239
239
  });
240
240
  } catch (error) {
241
- throw new Error(`Failed to get plans by price range: ${error.message}`, { cause: error });
241
+ throw new Error(`Failed to get plans by price range: ${error.message}`);
242
242
  }
243
243
  }
244
244
  /**
@@ -256,7 +256,7 @@ class PlanService extends BaseService {
256
256
  }
257
257
  return plan;
258
258
  } catch (error) {
259
- throw new Error(`Failed to get plan by key: ${error.message}`, { cause: error });
259
+ throw new Error(`Failed to get plan by key: ${error.message}`);
260
260
  }
261
261
  }
262
262
  }