@symbo.ls/sdk 2.32.2 → 2.32.4

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 (90) hide show
  1. package/dist/cjs/config/environment.js +43 -8
  2. package/dist/cjs/index.js +12 -4
  3. package/dist/cjs/services/AdminService.js +4 -4
  4. package/dist/cjs/services/AuthService.js +36 -149
  5. package/dist/cjs/services/BaseService.js +5 -18
  6. package/dist/cjs/services/BranchService.js +10 -10
  7. package/dist/cjs/services/CollabService.js +94 -61
  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 +45 -35
  14. package/dist/cjs/services/PullRequestService.js +7 -7
  15. package/dist/cjs/services/ScreenshotService.js +304 -0
  16. package/dist/cjs/services/SubscriptionService.js +14 -14
  17. package/dist/cjs/services/index.js +4 -0
  18. package/dist/cjs/utils/TokenManager.js +16 -5
  19. package/dist/cjs/utils/changePreprocessor.js +134 -0
  20. package/dist/cjs/utils/jsonDiff.js +46 -4
  21. package/dist/cjs/utils/ordering.js +274 -0
  22. package/dist/cjs/utils/services.js +14 -1
  23. package/dist/esm/config/environment.js +43 -8
  24. package/dist/esm/index.js +1099 -417
  25. package/dist/esm/services/AdminService.js +68 -35
  26. package/dist/esm/services/AuthService.js +100 -168
  27. package/dist/esm/services/BaseService.js +64 -31
  28. package/dist/esm/services/BranchService.js +74 -41
  29. package/dist/esm/services/CollabService.js +570 -97
  30. package/dist/esm/services/CoreService.js +83 -50
  31. package/dist/esm/services/DnsService.js +68 -35
  32. package/dist/esm/services/FileService.js +66 -33
  33. package/dist/esm/services/PaymentService.js +66 -33
  34. package/dist/esm/services/PlanService.js +76 -43
  35. package/dist/esm/services/ProjectService.js +547 -66
  36. package/dist/esm/services/PullRequestService.js +71 -38
  37. package/dist/esm/services/ScreenshotService.js +992 -0
  38. package/dist/esm/services/SubscriptionService.js +78 -45
  39. package/dist/esm/services/index.js +1076 -412
  40. package/dist/esm/utils/CollabClient.js +89 -12
  41. package/dist/esm/utils/TokenManager.js +16 -5
  42. package/dist/esm/utils/changePreprocessor.js +442 -0
  43. package/dist/esm/utils/jsonDiff.js +46 -4
  44. package/dist/esm/utils/ordering.js +256 -0
  45. package/dist/esm/utils/services.js +14 -1
  46. package/dist/node/config/environment.js +43 -8
  47. package/dist/node/index.js +14 -5
  48. package/dist/node/services/AdminService.js +4 -4
  49. package/dist/node/services/AuthService.js +36 -139
  50. package/dist/node/services/BaseService.js +5 -18
  51. package/dist/node/services/BranchService.js +10 -10
  52. package/dist/node/services/CollabService.js +95 -62
  53. package/dist/node/services/CoreService.js +19 -19
  54. package/dist/node/services/DnsService.js +4 -4
  55. package/dist/node/services/FileService.js +2 -2
  56. package/dist/node/services/PaymentService.js +2 -2
  57. package/dist/node/services/PlanService.js +12 -12
  58. package/dist/node/services/ProjectService.js +45 -35
  59. package/dist/node/services/PullRequestService.js +7 -7
  60. package/dist/node/services/ScreenshotService.js +285 -0
  61. package/dist/node/services/SubscriptionService.js +14 -14
  62. package/dist/node/services/index.js +4 -0
  63. package/dist/node/utils/TokenManager.js +16 -5
  64. package/dist/node/utils/changePreprocessor.js +115 -0
  65. package/dist/node/utils/jsonDiff.js +46 -4
  66. package/dist/node/utils/ordering.js +255 -0
  67. package/dist/node/utils/services.js +14 -1
  68. package/package.json +7 -6
  69. package/src/config/environment.js +48 -9
  70. package/src/index.js +38 -22
  71. package/src/services/AdminService.js +4 -4
  72. package/src/services/AuthService.js +42 -175
  73. package/src/services/BaseService.js +7 -24
  74. package/src/services/BranchService.js +10 -10
  75. package/src/services/CollabService.js +115 -74
  76. package/src/services/CoreService.js +19 -19
  77. package/src/services/DnsService.js +4 -4
  78. package/src/services/FileService.js +2 -2
  79. package/src/services/PaymentService.js +2 -2
  80. package/src/services/PlanService.js +12 -12
  81. package/src/services/ProjectService.js +50 -35
  82. package/src/services/PullRequestService.js +7 -7
  83. package/src/services/ScreenshotService.js +258 -0
  84. package/src/services/SubscriptionService.js +14 -14
  85. package/src/services/index.js +6 -1
  86. package/src/utils/TokenManager.js +19 -5
  87. package/src/utils/changePreprocessor.js +139 -0
  88. package/src/utils/jsonDiff.js +40 -5
  89. package/src/utils/ordering.js +244 -0
  90. package/src/utils/services.js +15 -1
@@ -41,7 +41,7 @@ class BranchService extends import_BaseService.BaseService {
41
41
  }
42
42
  throw new Error(response.message);
43
43
  } catch (error) {
44
- throw new Error(`Failed to list branches: ${error.message}`);
44
+ throw new Error(`Failed to list branches: ${error.message}`, { cause: error });
45
45
  }
46
46
  }
47
47
  /**
@@ -67,7 +67,7 @@ class BranchService extends import_BaseService.BaseService {
67
67
  }
68
68
  throw new Error(response.message);
69
69
  } catch (error) {
70
- throw new Error(`Failed to create branch: ${error.message}`);
70
+ throw new Error(`Failed to create branch: ${error.message}`, { cause: error });
71
71
  }
72
72
  }
73
73
  /**
@@ -97,7 +97,7 @@ class BranchService extends import_BaseService.BaseService {
97
97
  }
98
98
  throw new Error(response.message);
99
99
  } catch (error) {
100
- throw new Error(`Failed to delete branch: ${error.message}`);
100
+ throw new Error(`Failed to delete branch: ${error.message}`, { cause: error });
101
101
  }
102
102
  }
103
103
  /**
@@ -133,7 +133,7 @@ class BranchService extends import_BaseService.BaseService {
133
133
  }
134
134
  throw new Error(response.message);
135
135
  } catch (error) {
136
- throw new Error(`Failed to rename branch: ${error.message}`);
136
+ throw new Error(`Failed to rename branch: ${error.message}`, { cause: error });
137
137
  }
138
138
  }
139
139
  /**
@@ -172,7 +172,7 @@ class BranchService extends import_BaseService.BaseService {
172
172
  }
173
173
  throw new Error(response.message);
174
174
  } catch (error) {
175
- throw new Error(`Failed to get branch changes: ${error.message}`);
175
+ throw new Error(`Failed to get branch changes: ${error.message}`, { cause: error });
176
176
  }
177
177
  }
178
178
  /**
@@ -219,7 +219,7 @@ class BranchService extends import_BaseService.BaseService {
219
219
  if (error.message.includes("conflicts") || error.message.includes("409")) {
220
220
  throw new Error(`Merge conflicts detected: ${error.message}`);
221
221
  }
222
- throw new Error(`Failed to merge branch: ${error.message}`);
222
+ throw new Error(`Failed to merge branch: ${error.message}`, { cause: error });
223
223
  }
224
224
  }
225
225
  /**
@@ -248,7 +248,7 @@ class BranchService extends import_BaseService.BaseService {
248
248
  }
249
249
  throw new Error(response.message);
250
250
  } catch (error) {
251
- throw new Error(`Failed to reset branch: ${error.message}`);
251
+ throw new Error(`Failed to reset branch: ${error.message}`, { cause: error });
252
252
  }
253
253
  }
254
254
  /**
@@ -274,7 +274,7 @@ class BranchService extends import_BaseService.BaseService {
274
274
  }
275
275
  throw new Error(response.message);
276
276
  } catch (error) {
277
- throw new Error(`Failed to publish version: ${error.message}`);
277
+ throw new Error(`Failed to publish version: ${error.message}`, { cause: error });
278
278
  }
279
279
  }
280
280
  // ==================== BRANCH HELPER METHODS ====================
@@ -306,7 +306,7 @@ class BranchService extends import_BaseService.BaseService {
306
306
  const branches = await this.listBranches(projectId);
307
307
  return ((_a = branches == null ? void 0 : branches.data) == null ? void 0 : _a.includes(branchName)) || false;
308
308
  } catch (error) {
309
- throw new Error(`Failed to check if branch exists: ${error.message}`);
309
+ throw new Error(`Failed to check if branch exists: ${error.message}`, { cause: error });
310
310
  }
311
311
  }
312
312
  /**
@@ -376,7 +376,7 @@ class BranchService extends import_BaseService.BaseService {
376
376
  canRename: exists && branchName !== "main"
377
377
  };
378
378
  } catch (error) {
379
- throw new Error(`Failed to get branch status: ${error.message}`);
379
+ throw new Error(`Failed to get branch status: ${error.message}`, { cause: error });
380
380
  }
381
381
  }
382
382
  /**
@@ -26,6 +26,7 @@ var import_RootStateManager = require("../state/RootStateManager.js");
26
26
  var import_rootEventBus = require("../state/rootEventBus.js");
27
27
  var import_validation = require("../utils/validation.js");
28
28
  var import_utils = require("@domql/utils");
29
+ var import_changePreprocessor = require("../utils/changePreprocessor.js");
29
30
  class CollabService extends import_BaseService.BaseService {
30
31
  constructor(config) {
31
32
  super(config);
@@ -89,8 +90,8 @@ class CollabService extends import_BaseService.BaseService {
89
90
  logger(`[Notification] ${title}${message ? ` \u2013 ${message}` : ""}`);
90
91
  return;
91
92
  }
92
- case "deepStringify": {
93
- return (0, import_utils.deepStringify)(...args);
93
+ case "deepStringifyFunctions": {
94
+ return (0, import_utils.deepStringifyFunctions)(...args);
94
95
  }
95
96
  default:
96
97
  return {};
@@ -125,57 +126,49 @@ class CollabService extends import_BaseService.BaseService {
125
126
  if (this._client) {
126
127
  await this.disconnect();
127
128
  }
128
- try {
129
- this._client = new import_CollabClient.CollabClient({
130
- jwt,
131
- projectId,
132
- branch,
133
- live: Boolean(pro)
134
- });
135
- await new Promise((resolve) => {
136
- var _a2, _b2;
137
- if ((_a2 = this._client.socket) == null ? void 0 : _a2.connected) {
138
- resolve();
139
- } else {
140
- (_b2 = this._client.socket) == null ? void 0 : _b2.once("connect", resolve);
141
- }
142
- });
143
- console.log("[CollabService] socket connected");
144
- (_b = this._client.socket) == null ? void 0 : _b.on("ops", ({ changes }) => {
145
- console.log(`ops event`);
146
- console.log(changes);
147
- this._stateManager.applyChanges(changes, { fromSocket: true });
148
- });
149
- (_c = this._client.socket) == null ? void 0 : _c.on("commit", ({ version }) => {
150
- if (version) {
151
- this._stateManager.setVersion(version);
152
- }
153
- import_rootEventBus.rootBus.emit("checkpoint:done", { version, origin: "auto" });
154
- });
155
- (_d = this._client.socket) == null ? void 0 : _d.on("clients", this._handleClientsEvent.bind(this));
156
- (_e = this._client.socket) == null ? void 0 : _e.on(
157
- "bundle:done",
158
- this._handleBundleDoneEvent.bind(this)
159
- );
160
- (_f = this._client.socket) == null ? void 0 : _f.on(
161
- "bundle:error",
162
- this._handleBundleErrorEvent.bind(this)
163
- );
164
- if (this._pendingOps.length) {
165
- console.log(
166
- `[CollabService] Flushing ${this._pendingOps.length} offline operation batch(es)`
167
- );
168
- this._pendingOps.forEach(({ tuples }) => {
169
- this.socket.emit("ops", { changes: tuples, ts: Date.now() });
170
- });
171
- this._pendingOps.length = 0;
129
+ this._client = new import_CollabClient.CollabClient({
130
+ jwt,
131
+ projectId,
132
+ branch,
133
+ live: Boolean(pro)
134
+ });
135
+ await new Promise((resolve) => {
136
+ var _a2, _b2;
137
+ if ((_a2 = this._client.socket) == null ? void 0 : _a2.connected) {
138
+ resolve();
139
+ } else {
140
+ (_b2 = this._client.socket) == null ? void 0 : _b2.once("connect", resolve);
172
141
  }
173
- this._connected = true;
174
- console.log("[CollabService] Connected to project:", projectId);
175
- } catch (err) {
176
- console.error("[CollabService] Connection failed:", err);
177
- throw err;
142
+ });
143
+ (_b = this._client.socket) == null ? void 0 : _b.on("ops", ({ changes }) => {
144
+ console.log(`ops event`);
145
+ this._stateManager.applyChanges(changes, { fromSocket: true });
146
+ });
147
+ (_c = this._client.socket) == null ? void 0 : _c.on("commit", ({ version }) => {
148
+ if (version) {
149
+ this._stateManager.setVersion(version);
150
+ }
151
+ import_rootEventBus.rootBus.emit("checkpoint:done", { version, origin: "auto" });
152
+ });
153
+ (_d = this._client.socket) == null ? void 0 : _d.on("clients", this._handleClientsEvent.bind(this));
154
+ (_e = this._client.socket) == null ? void 0 : _e.on(
155
+ "bundle:done",
156
+ this._handleBundleDoneEvent.bind(this)
157
+ );
158
+ (_f = this._client.socket) == null ? void 0 : _f.on(
159
+ "bundle:error",
160
+ this._handleBundleErrorEvent.bind(this)
161
+ );
162
+ if (this._pendingOps.length) {
163
+ console.log(
164
+ `[CollabService] Flushing ${this._pendingOps.length} offline operation batch(es)`
165
+ );
166
+ this._pendingOps.forEach(({ changes, granularChanges, orders }) => {
167
+ this.socket.emit("ops", { changes, granularChanges, orders, ts: Date.now() });
168
+ });
169
+ this._pendingOps.length = 0;
178
170
  }
171
+ this._connected = true;
179
172
  }
180
173
  disconnect() {
181
174
  var _a;
@@ -213,24 +206,60 @@ class CollabService extends import_BaseService.BaseService {
213
206
  }
214
207
  /* ---------- data helpers ---------- */
215
208
  updateData(tuples, options = {}) {
216
- var _a;
209
+ var _a, _b, _c;
217
210
  this._ensureStateManager();
218
211
  const { isUndo = false, isRedo = false } = options;
219
212
  if (!isUndo && !isRedo && !this._isUndoRedo) {
220
213
  this._trackForUndo(tuples, options);
221
214
  }
215
+ const root = (_a = this._stateManager) == null ? void 0 : _a.root;
216
+ const { granularChanges: processedTuples, orders } = (0, import_changePreprocessor.preprocessChanges)(
217
+ root,
218
+ tuples,
219
+ options
220
+ );
222
221
  if (options.append && options.append.length) {
223
- tuples.push(...options.append);
222
+ processedTuples.push(...options.append);
224
223
  }
225
224
  this._stateManager.applyChanges(tuples, { ...options });
226
- tuples = (0, import_utils.deepStringify)(tuples, []);
225
+ const state = (_b = this._stateManager) == null ? void 0 : _b.root;
226
+ const el = state == null ? void 0 : state.__element;
227
+ const stringifiedGranularTuples = (el == null ? void 0 : el.call) ? el.call(
228
+ "deepStringifyFunctions",
229
+ processedTuples,
230
+ Array.isArray(processedTuples) ? [] : {}
231
+ ) : (0, import_utils.deepStringifyFunctions)(
232
+ processedTuples,
233
+ Array.isArray(processedTuples) ? [] : {}
234
+ );
235
+ const stringifiedTuples = (el == null ? void 0 : el.call) ? el.call(
236
+ "deepStringifyFunctions",
237
+ tuples,
238
+ Array.isArray(tuples) ? [] : {}
239
+ ) : (0, import_utils.deepStringifyFunctions)(tuples, Array.isArray(tuples) ? [] : {});
227
240
  if (!this.isConnected()) {
228
241
  console.warn("[CollabService] Not connected, queuing real-time update");
229
- this._pendingOps.push({ tuples, options });
242
+ this._pendingOps.push({
243
+ changes: stringifiedTuples,
244
+ granularChanges: stringifiedGranularTuples,
245
+ orders,
246
+ options
247
+ });
230
248
  return;
231
249
  }
232
- if ((_a = this.socket) == null ? void 0 : _a.connected) {
233
- this.socket.emit("ops", { changes: tuples, ts: Date.now() });
250
+ if ((_c = this.socket) == null ? void 0 : _c.connected) {
251
+ console.log("[CollabService] Sending operations to the backend", {
252
+ changes: stringifiedTuples,
253
+ granularChanges: stringifiedGranularTuples,
254
+ orders,
255
+ ts: Date.now()
256
+ });
257
+ this.socket.emit("ops", {
258
+ changes: stringifiedTuples,
259
+ granularChanges: stringifiedGranularTuples,
260
+ orders,
261
+ ts: Date.now()
262
+ });
234
263
  }
235
264
  return { success: true };
236
265
  }
@@ -371,7 +400,7 @@ class CollabService extends import_BaseService.BaseService {
371
400
  const updatedOpts = { ...opts, skipComponentsChangedEvent: true };
372
401
  return this.updateData(tuples, updatedOpts);
373
402
  } catch (error) {
374
- throw new Error(`Failed to add item: ${error.message}`);
403
+ throw new Error(`Failed to add item: ${error.message}`, { cause: error });
375
404
  }
376
405
  }
377
406
  addMultipleItems(items, opts = {}) {
@@ -400,7 +429,7 @@ class CollabService extends import_BaseService.BaseService {
400
429
  title: "Failed to add item",
401
430
  message: error.message
402
431
  });
403
- throw new Error(`Failed to add item: ${error.message}`);
432
+ throw new Error(`Failed to add item: ${error.message}`, { cause: error });
404
433
  }
405
434
  }
406
435
  updateItem(type, data, opts = {}) {
@@ -422,7 +451,9 @@ class CollabService extends import_BaseService.BaseService {
422
451
  title: "Failed to update item",
423
452
  message: error.message
424
453
  });
425
- throw new Error(`Failed to update item: ${error.message}`);
454
+ throw new Error(`Failed to update item: ${error.message}`, {
455
+ cause: error
456
+ });
426
457
  }
427
458
  }
428
459
  deleteItem(type, key, opts = {}) {
@@ -447,7 +478,9 @@ class CollabService extends import_BaseService.BaseService {
447
478
  title: "Failed to delete item",
448
479
  message: error.message
449
480
  });
450
- throw new Error(`Failed to delete item: ${error.message}`);
481
+ throw new Error(`Failed to delete item: ${error.message}`, {
482
+ cause: error
483
+ });
451
484
  }
452
485
  }
453
486
  /* ---------- socket event helpers ---------- */
@@ -180,11 +180,11 @@ class CoreService extends import_BaseService.BaseService {
180
180
  error = await response.json();
181
181
  } catch {
182
182
  }
183
- throw new Error(error.message || error.error || "Request failed");
183
+ throw new Error(error.message || error.error || "Request failed", { cause: error });
184
184
  }
185
185
  return response.status === 204 ? null : response.json();
186
186
  } catch (error) {
187
- throw new Error(`Request failed: ${error.message}`);
187
+ throw new Error(`Request failed: ${error.message}`, { cause: error });
188
188
  }
189
189
  }
190
190
  // ==================== AUTH METHODS ====================
@@ -200,7 +200,7 @@ class CoreService extends import_BaseService.BaseService {
200
200
  }
201
201
  throw new Error(response.message);
202
202
  } catch (error) {
203
- throw new Error(`Registration failed: ${error.message}`);
203
+ throw new Error(`Registration failed: ${error.message}`, { cause: error });
204
204
  }
205
205
  }
206
206
  async login(email, password) {
@@ -229,7 +229,7 @@ class CoreService extends import_BaseService.BaseService {
229
229
  }
230
230
  throw new Error(response.message);
231
231
  } catch (error) {
232
- throw new Error(`Login failed: ${error.message}`);
232
+ throw new Error(`Login failed: ${error.message}`, { cause: error });
233
233
  }
234
234
  }
235
235
  async logout() {
@@ -248,7 +248,7 @@ class CoreService extends import_BaseService.BaseService {
248
248
  this._tokenManager.clearTokens();
249
249
  }
250
250
  this.updateContext({ authToken: null });
251
- throw new Error(`Logout failed: ${error.message}`);
251
+ throw new Error(`Logout failed: ${error.message}`, { cause: error });
252
252
  }
253
253
  }
254
254
  async refreshToken(refreshToken) {
@@ -263,7 +263,7 @@ class CoreService extends import_BaseService.BaseService {
263
263
  }
264
264
  throw new Error(response.message);
265
265
  } catch (error) {
266
- throw new Error(`Token refresh failed: ${error.message}`);
266
+ throw new Error(`Token refresh failed: ${error.message}`, { cause: error });
267
267
  }
268
268
  }
269
269
  async googleAuth(idToken, inviteToken = null) {
@@ -296,7 +296,7 @@ class CoreService extends import_BaseService.BaseService {
296
296
  }
297
297
  throw new Error(response.message);
298
298
  } catch (error) {
299
- throw new Error(`Google auth failed: ${error.message}`);
299
+ throw new Error(`Google auth failed: ${error.message}`, { cause: error });
300
300
  }
301
301
  }
302
302
  async githubAuth(code, inviteToken = null) {
@@ -329,7 +329,7 @@ class CoreService extends import_BaseService.BaseService {
329
329
  }
330
330
  throw new Error(response.message);
331
331
  } catch (error) {
332
- throw new Error(`GitHub auth failed: ${error.message}`);
332
+ throw new Error(`GitHub auth failed: ${error.message}`, { cause: error });
333
333
  }
334
334
  }
335
335
  async googleAuthCallback(code, redirectUri, inviteToken = null) {
@@ -362,7 +362,7 @@ class CoreService extends import_BaseService.BaseService {
362
362
  }
363
363
  throw new Error(response.message);
364
364
  } catch (error) {
365
- throw new Error(`Google auth callback failed: ${error.message}`);
365
+ throw new Error(`Google auth callback failed: ${error.message}`, { cause: error });
366
366
  }
367
367
  }
368
368
  async requestPasswordReset(email) {
@@ -377,7 +377,7 @@ class CoreService extends import_BaseService.BaseService {
377
377
  }
378
378
  throw new Error(response.message);
379
379
  } catch (error) {
380
- throw new Error(`Password reset request failed: ${error.message}`);
380
+ throw new Error(`Password reset request failed: ${error.message}`, { cause: error });
381
381
  }
382
382
  }
383
383
  async confirmPasswordReset(token, password) {
@@ -392,7 +392,7 @@ class CoreService extends import_BaseService.BaseService {
392
392
  }
393
393
  throw new Error(response.message);
394
394
  } catch (error) {
395
- throw new Error(`Password reset confirmation failed: ${error.message}`);
395
+ throw new Error(`Password reset confirmation failed: ${error.message}`, { cause: error });
396
396
  }
397
397
  }
398
398
  async confirmRegistration(token) {
@@ -407,7 +407,7 @@ class CoreService extends import_BaseService.BaseService {
407
407
  }
408
408
  throw new Error(response.message);
409
409
  } catch (error) {
410
- throw new Error(`Registration confirmation failed: ${error.message}`);
410
+ throw new Error(`Registration confirmation failed: ${error.message}`, { cause: error });
411
411
  }
412
412
  }
413
413
  async requestPasswordChange() {
@@ -422,7 +422,7 @@ class CoreService extends import_BaseService.BaseService {
422
422
  }
423
423
  throw new Error(response.message);
424
424
  } catch (error) {
425
- throw new Error(`Password change request failed: ${error.message}`);
425
+ throw new Error(`Password change request failed: ${error.message}`, { cause: error });
426
426
  }
427
427
  }
428
428
  async confirmPasswordChange(currentPassword, newPassword, code) {
@@ -438,7 +438,7 @@ class CoreService extends import_BaseService.BaseService {
438
438
  }
439
439
  throw new Error(response.message);
440
440
  } catch (error) {
441
- throw new Error(`Password change confirmation failed: ${error.message}`);
441
+ throw new Error(`Password change confirmation failed: ${error.message}`, { cause: error });
442
442
  }
443
443
  }
444
444
  async getMe() {
@@ -453,7 +453,7 @@ class CoreService extends import_BaseService.BaseService {
453
453
  }
454
454
  throw new Error(response.message);
455
455
  } catch (error) {
456
- throw new Error(`Failed to get user profile: ${error.message}`);
456
+ throw new Error(`Failed to get user profile: ${error.message}`, { cause: error });
457
457
  }
458
458
  }
459
459
  /**
@@ -569,7 +569,7 @@ class CoreService extends import_BaseService.BaseService {
569
569
  }
570
570
  throw new Error(response.message);
571
571
  } catch (error) {
572
- throw new Error(`Failed to update user profile: ${error.message}`);
572
+ throw new Error(`Failed to update user profile: ${error.message}`, { cause: error });
573
573
  }
574
574
  }
575
575
  async getUserProjects() {
@@ -592,7 +592,7 @@ class CoreService extends import_BaseService.BaseService {
592
592
  }
593
593
  throw new Error(response.message);
594
594
  } catch (error) {
595
- throw new Error(`Failed to get user projects: ${error.message}`);
595
+ throw new Error(`Failed to get user projects: ${error.message}`, { cause: error });
596
596
  }
597
597
  }
598
598
  async getUser(userId) {
@@ -610,7 +610,7 @@ class CoreService extends import_BaseService.BaseService {
610
610
  }
611
611
  throw new Error(response.message);
612
612
  } catch (error) {
613
- throw new Error(`Failed to get user: ${error.message}`);
613
+ throw new Error(`Failed to get user: ${error.message}`, { cause: error });
614
614
  }
615
615
  }
616
616
  async getUserByEmail(email) {
@@ -628,7 +628,7 @@ class CoreService extends import_BaseService.BaseService {
628
628
  }
629
629
  throw new Error(response.message);
630
630
  } catch (error) {
631
- throw new Error(`Failed to get user by email: ${error.message}`);
631
+ throw new Error(`Failed to get user by email: ${error.message}`, { cause: error });
632
632
  }
633
633
  }
634
634
  // ==================== PROJECT METHODS ====================
@@ -39,7 +39,7 @@ class DnsService extends import_BaseService.BaseService {
39
39
  }
40
40
  throw new Error(response.message);
41
41
  } catch (error) {
42
- throw new Error(`Failed to create DNS record: ${error.message}`);
42
+ throw new Error(`Failed to create DNS record: ${error.message}`, { cause: error });
43
43
  }
44
44
  }
45
45
  async getDnsRecord(domain) {
@@ -57,7 +57,7 @@ class DnsService extends import_BaseService.BaseService {
57
57
  }
58
58
  throw new Error(response.message);
59
59
  } catch (error) {
60
- throw new Error(`Failed to get DNS record: ${error.message}`);
60
+ throw new Error(`Failed to get DNS record: ${error.message}`, { cause: error });
61
61
  }
62
62
  }
63
63
  async getCustomHost(hostname) {
@@ -93,7 +93,7 @@ class DnsService extends import_BaseService.BaseService {
93
93
  }
94
94
  throw new Error(response.message);
95
95
  } catch (error) {
96
- throw new Error(`Failed to remove DNS record: ${error.message}`);
96
+ throw new Error(`Failed to remove DNS record: ${error.message}`, { cause: error });
97
97
  }
98
98
  }
99
99
  // Deprecated, use addProjectCustomDomains instead
@@ -117,7 +117,7 @@ class DnsService extends import_BaseService.BaseService {
117
117
  }
118
118
  throw new Error(response.message);
119
119
  } catch (error) {
120
- throw new Error(`Failed to set project domains: ${error.message}`);
120
+ throw new Error(`Failed to set project domains: ${error.message}`, { cause: error });
121
121
  }
122
122
  }
123
123
  // customDomains could be a string or an array of strings
@@ -60,7 +60,7 @@ class FileService extends import_BaseService.BaseService {
60
60
  message: response.message
61
61
  };
62
62
  } catch (error) {
63
- throw new Error(`File upload failed: ${error.message}`);
63
+ throw new Error(`File upload failed: ${error.message}`, { cause: error });
64
64
  }
65
65
  }
66
66
  async updateProjectIcon(projectId, iconFile) {
@@ -84,7 +84,7 @@ class FileService extends import_BaseService.BaseService {
84
84
  }
85
85
  throw new Error(response.message);
86
86
  } catch (error) {
87
- throw new Error(`Failed to update project icon: ${error.message}`);
87
+ throw new Error(`Failed to update project icon: ${error.message}`, { cause: error });
88
88
  }
89
89
  }
90
90
  // ==================== FILE HELPER METHODS ====================
@@ -52,7 +52,7 @@ class PaymentService extends import_BaseService.BaseService {
52
52
  }
53
53
  throw new Error(response.message);
54
54
  } catch (error) {
55
- throw new Error(`Failed to checkout: ${error.message}`);
55
+ throw new Error(`Failed to checkout: ${error.message}`, { cause: error });
56
56
  }
57
57
  }
58
58
  async getSubscriptionStatus(projectId) {
@@ -73,7 +73,7 @@ class PaymentService extends import_BaseService.BaseService {
73
73
  }
74
74
  throw new Error(response.message);
75
75
  } catch (error) {
76
- throw new Error(`Failed to get subscription status: ${error.message}`);
76
+ throw new Error(`Failed to get subscription status: ${error.message}`, { cause: error });
77
77
  }
78
78
  }
79
79
  // ==================== PAYMENT HELPER METHODS ====================
@@ -37,7 +37,7 @@ class PlanService extends import_BaseService.BaseService {
37
37
  }
38
38
  throw new Error(response.message);
39
39
  } catch (error) {
40
- throw new Error(`Failed to get plans: ${error.message}`);
40
+ throw new Error(`Failed to get plans: ${error.message}`, { cause: error });
41
41
  }
42
42
  }
43
43
  /**
@@ -57,7 +57,7 @@ class PlanService extends import_BaseService.BaseService {
57
57
  }
58
58
  throw new Error(response.message);
59
59
  } catch (error) {
60
- throw new Error(`Failed to get plan: ${error.message}`);
60
+ throw new Error(`Failed to get plan: ${error.message}`, { cause: error });
61
61
  }
62
62
  }
63
63
  // ==================== ADMIN PLAN METHODS ====================
@@ -76,7 +76,7 @@ class PlanService extends import_BaseService.BaseService {
76
76
  }
77
77
  throw new Error(response.message);
78
78
  } catch (error) {
79
- throw new Error(`Failed to get admin plans: ${error.message}`);
79
+ throw new Error(`Failed to get admin plans: ${error.message}`, { cause: error });
80
80
  }
81
81
  }
82
82
  /**
@@ -98,7 +98,7 @@ class PlanService extends import_BaseService.BaseService {
98
98
  }
99
99
  throw new Error(response.message);
100
100
  } catch (error) {
101
- throw new Error(`Failed to create plan: ${error.message}`);
101
+ throw new Error(`Failed to create plan: ${error.message}`, { cause: error });
102
102
  }
103
103
  }
104
104
  /**
@@ -123,7 +123,7 @@ class PlanService extends import_BaseService.BaseService {
123
123
  }
124
124
  throw new Error(response.message);
125
125
  } catch (error) {
126
- throw new Error(`Failed to update plan: ${error.message}`);
126
+ throw new Error(`Failed to update plan: ${error.message}`, { cause: error });
127
127
  }
128
128
  }
129
129
  /**
@@ -144,7 +144,7 @@ class PlanService extends import_BaseService.BaseService {
144
144
  }
145
145
  throw new Error(response.message);
146
146
  } catch (error) {
147
- throw new Error(`Failed to delete plan: ${error.message}`);
147
+ throw new Error(`Failed to delete plan: ${error.message}`, { cause: error });
148
148
  }
149
149
  }
150
150
  /**
@@ -162,7 +162,7 @@ class PlanService extends import_BaseService.BaseService {
162
162
  }
163
163
  throw new Error(response.message);
164
164
  } catch (error) {
165
- throw new Error(`Failed to initialize plans: ${error.message}`);
165
+ throw new Error(`Failed to initialize plans: ${error.message}`, { cause: error });
166
166
  }
167
167
  }
168
168
  // ==================== PLAN HELPER METHODS ====================
@@ -177,7 +177,7 @@ class PlanService extends import_BaseService.BaseService {
177
177
  }
178
178
  return plans;
179
179
  } catch (error) {
180
- throw new Error(`Failed to get plans with validation: ${error.message}`);
180
+ throw new Error(`Failed to get plans with validation: ${error.message}`, { cause: error });
181
181
  }
182
182
  }
183
183
  /**
@@ -194,7 +194,7 @@ class PlanService extends import_BaseService.BaseService {
194
194
  }
195
195
  return plan;
196
196
  } catch (error) {
197
- throw new Error(`Failed to get plan with validation: ${error.message}`);
197
+ throw new Error(`Failed to get plan with validation: ${error.message}`, { cause: error });
198
198
  }
199
199
  }
200
200
  /**
@@ -246,7 +246,7 @@ class PlanService extends import_BaseService.BaseService {
246
246
  const plans = await this.getPlans();
247
247
  return plans.filter((plan) => plan.active !== false);
248
248
  } catch (error) {
249
- throw new Error(`Failed to get active plans: ${error.message}`);
249
+ throw new Error(`Failed to get active plans: ${error.message}`, { cause: error });
250
250
  }
251
251
  }
252
252
  /**
@@ -260,7 +260,7 @@ class PlanService extends import_BaseService.BaseService {
260
260
  return price >= minPrice && price <= maxPrice;
261
261
  });
262
262
  } catch (error) {
263
- throw new Error(`Failed to get plans by price range: ${error.message}`);
263
+ throw new Error(`Failed to get plans by price range: ${error.message}`, { cause: error });
264
264
  }
265
265
  }
266
266
  /**
@@ -278,7 +278,7 @@ class PlanService extends import_BaseService.BaseService {
278
278
  }
279
279
  return plan;
280
280
  } catch (error) {
281
- throw new Error(`Failed to get plan by key: ${error.message}`);
281
+ throw new Error(`Failed to get plan by key: ${error.message}`, { cause: error });
282
282
  }
283
283
  }
284
284
  }