@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
@@ -4,9 +4,7 @@ import { RootStateManager } from '../state/RootStateManager.js'
4
4
  import { rootBus } from '../state/rootEventBus.js'
5
5
  import { validateParams } from '../utils/validation.js'
6
6
  // Direct import to allow deep stringification in non-browser (Node) environments
7
- import { deepStringifyFunctions } from '@domql/utils'
8
- import { diffJson } from '../utils/jsonDiff.js'
9
- import { computeOrdersForTuples } from '../utils/ordering.js'
7
+ import { deepStringify } from '@domql/utils'
10
8
  // (helper conversions reserved for future features)
11
9
 
12
10
  export class CollabService extends BaseService {
@@ -73,7 +71,7 @@ export class CollabService extends BaseService {
73
71
  }
74
72
 
75
73
  // 🌐 Ensure we always have a usable `__element` stub so that calls like
76
- // `el.call('openNotification', …)` or `el.call('deepStringifyFunctions', …)` do not
74
+ // `el.call('openNotification', …)` or `el.call('deepStringify', …)` do not
77
75
  // crash in headless / Node.js environments (e.g. integration tests).
78
76
  const root = this._stateManager?.root
79
77
 
@@ -94,9 +92,9 @@ export class CollabService extends BaseService {
94
92
  logger(`[Notification] ${title}${message ? ` – ${message}` : ''}`)
95
93
  return
96
94
  }
97
- case 'deepStringifyFunctions': {
95
+ case 'deepStringify': {
98
96
  // Pass-through to the shared utility from `smbls`
99
- return deepStringifyFunctions(...args)
97
+ return deepStringify(...args)
100
98
  }
101
99
  default:
102
100
  return {}
@@ -158,9 +156,12 @@ export class CollabService extends BaseService {
158
156
  }
159
157
  })
160
158
 
159
+ console.log('[CollabService] socket connected')
160
+
161
161
  // Set up event listeners
162
162
  this._client.socket?.on('ops', ({ changes }) => {
163
163
  console.log(`ops event`)
164
+ console.log(changes)
164
165
  this._stateManager.applyChanges(changes, { fromSocket: true })
165
166
  })
166
167
 
@@ -191,16 +192,16 @@ export class CollabService extends BaseService {
191
192
  console.log(
192
193
  `[CollabService] Flushing ${this._pendingOps.length} offline operation batch(es)`
193
194
  )
194
- this._pendingOps.forEach(({ changes, orders }) => {
195
- this.socket.emit('ops', { changes, orders, ts: Date.now() })
195
+ this._pendingOps.forEach(({ tuples }) => {
196
+ this.socket.emit('ops', { changes: tuples, ts: Date.now() })
196
197
  })
197
198
  this._pendingOps.length = 0
198
199
  }
199
200
 
200
201
  this._connected = true
201
- // console.log('[CollabService] Connected to project:', projectId)
202
+ console.log('[CollabService] Connected to project:', projectId)
202
203
  } catch (err) {
203
- // console.error('[CollabService] Connection failed:', err)
204
+ console.error('[CollabService] Connection failed:', err)
204
205
  throw err
205
206
  }
206
207
  }
@@ -248,146 +249,26 @@ export class CollabService extends BaseService {
248
249
  this._trackForUndo(tuples, options)
249
250
  }
250
251
 
251
- // Minimize broad updates into granular update/delete tuples
252
- // Rules:
253
- // - Only transform ['update', [<rootKey>, ...], <object>] where <object> is a plain object
254
- // - Use current root state at the same path as baseline
255
- // - Emit ['delete', path] for missing keys and ['update', path, value] for changed keys
256
- // - Preserve non-object updates as-is
257
- // - Preserve explicit ['delete', ...] tuples as-is
258
- // - Keep schema updates untouched
259
- const processedTuples = (() => {
260
- try {
261
- const root = this._stateManager?.root
262
- const isPlainObject = (o) =>
263
- o && typeof o === 'object' && !Array.isArray(o)
264
-
265
- const getByPath = (state, path) => {
266
- if (!state || typeof state.getByPath !== 'function') {
267
- return null
268
- }
269
- try {
270
- return state.getByPath(path)
271
- } catch {
272
- return null
273
- }
274
- }
275
-
276
- const expandTuple = (t) => {
277
- const [action, path, value] = t || []
278
- const isSchemaPath = Array.isArray(path) && path[0] === 'schema'
279
- if (action === 'delete' || isSchemaPath) {
280
- return [t]
281
- }
282
- const canConsiderExpansion =
283
- action === 'update' &&
284
- Array.isArray(path) &&
285
- (path.length === 1 || path.length === 2) &&
286
- isPlainObject(value)
287
- if (!canConsiderExpansion) {
288
- return [t]
289
- }
290
- const prev = getByPath(root, path) || {}
291
- const next = value || {}
292
- if (!isPlainObject(prev) || !isPlainObject(next)) {
293
- return [t]
294
- }
295
- const ops = diffJson(prev, next, [])
296
- if (!ops.length) {
297
- return []
298
- }
299
- const arr = []
300
- for (let j = 0; j < ops.length; j++) {
301
- const op = ops[j]
302
- const fullPath = [...path, ...op.path]
303
- const last = fullPath[fullPath.length - 1]
304
- if (op.action === 'set') {
305
- arr.push(['update', fullPath, op.value])
306
- } else if (op.action === 'del') {
307
- // Do not generate deletes for __order keys
308
- if (last !== '__order') {
309
- arr.push(['delete', fullPath])
310
- }
311
- }
312
- }
313
- return arr
314
- }
315
-
316
- const minimizeTuples = (inputTuples) => {
317
- const out = []
318
- for (let i = 0; i < inputTuples.length; i++) {
319
- const expanded = expandTuple(inputTuples[i])
320
- for (let k = 0; k < expanded.length; k++) {
321
- const tuple = expanded[k]
322
- // Filter out any explicit deletes targeting __order keys
323
- const isDelete = Array.isArray(tuple) && tuple[0] === 'delete'
324
- const isOrderKey =
325
- isDelete &&
326
- Array.isArray(tuple[1]) &&
327
- tuple[1][tuple[1].length - 1] === '__order'
328
- if (!isOrderKey) {
329
- out.push(tuple)
330
- }
331
- }
332
- }
333
- console.log(`Minimized tuples`, out)
334
- return out
335
- }
336
- console.log(`Processing tuples`, tuples)
337
- return minimizeTuples(tuples)
338
- } catch (err) {
339
- console.warn(
340
- '[CollabService] Minimal diff expansion failed – using original tuples',
341
- err
342
- )
343
- return tuples
344
- }
345
- })()
346
-
347
252
  // Include any additional changes passed via opts
348
253
  if (options.append && options.append.length) {
349
- processedTuples.push(...options.append)
254
+ tuples.push(...options.append)
350
255
  }
351
256
 
352
257
  // Apply changes to local state tree immediately.
353
258
  this._stateManager.applyChanges(tuples, { ...options })
354
259
 
355
- const state = this._stateManager?.root
356
- const el = state?.__element
357
-
358
- // Derive ordering info for parent objects affected by these tuples
359
- const orders = computeOrdersForTuples(state, processedTuples)
360
-
361
- const stringifiedTuples = el?.call
362
- ? el.call(
363
- 'deepStringifyFunctions',
364
- processedTuples,
365
- Array.isArray(processedTuples) ? [] : {}
366
- )
367
- : deepStringifyFunctions(
368
- processedTuples,
369
- Array.isArray(processedTuples) ? [] : {}
370
- )
260
+ tuples = deepStringify(tuples, [])
371
261
 
372
262
  // If not connected yet, queue the operations for later synchronisation.
373
263
  if (!this.isConnected()) {
374
264
  console.warn('[CollabService] Not connected, queuing real-time update')
375
- this._pendingOps.push({ changes: stringifiedTuples, orders, options })
265
+ this._pendingOps.push({ tuples, options })
376
266
  return
377
267
  }
378
268
 
379
269
  // When connected, send the operations to the backend.
380
270
  if (this.socket?.connected) {
381
- console.log('[CollabService] Sending operations to the backend', {
382
- changes: stringifiedTuples,
383
- orders,
384
- ts: Date.now()
385
- })
386
- this.socket.emit('ops', {
387
- changes: stringifiedTuples,
388
- orders,
389
- ts: Date.now()
390
- })
271
+ this.socket.emit('ops', { changes: tuples, ts: Date.now() })
391
272
  }
392
273
 
393
274
  return { success: true }
@@ -565,7 +446,7 @@ export class CollabService extends BaseService {
565
446
 
566
447
  return this.updateData(tuples, updatedOpts)
567
448
  } catch (error) {
568
- throw new Error(`Failed to add item: ${error.message}`, { cause: error })
449
+ throw new Error(`Failed to add item: ${error.message}`)
569
450
  }
570
451
  }
571
452
 
@@ -598,7 +479,7 @@ export class CollabService extends BaseService {
598
479
  title: 'Failed to add item',
599
480
  message: error.message
600
481
  })
601
- throw new Error(`Failed to add item: ${error.message}`, { cause: error })
482
+ throw new Error(`Failed to add item: ${error.message}`)
602
483
  }
603
484
  }
604
485
 
@@ -621,9 +502,7 @@ export class CollabService extends BaseService {
621
502
  title: 'Failed to update item',
622
503
  message: error.message
623
504
  })
624
- throw new Error(`Failed to update item: ${error.message}`, {
625
- cause: error
626
- })
505
+ throw new Error(`Failed to update item: ${error.message}`)
627
506
  }
628
507
  }
629
508
 
@@ -649,9 +528,7 @@ export class CollabService extends BaseService {
649
528
  title: 'Failed to delete item',
650
529
  message: error.message
651
530
  })
652
- throw new Error(`Failed to delete item: ${error.message}`, {
653
- cause: error
654
- })
531
+ throw new Error(`Failed to delete item: ${error.message}`)
655
532
  }
656
533
  }
657
534
 
@@ -186,12 +186,12 @@ export class CoreService extends BaseService {
186
186
  } catch {
187
187
  // Use default error message
188
188
  }
189
- throw new Error(error.message || error.error || 'Request failed', { cause: error })
189
+ throw new Error(error.message || error.error || 'Request failed')
190
190
  }
191
191
 
192
192
  return response.status === 204 ? null : response.json()
193
193
  } catch (error) {
194
- throw new Error(`Request failed: ${error.message}`, { cause: error })
194
+ throw new Error(`Request failed: ${error.message}`)
195
195
  }
196
196
  }
197
197
 
@@ -209,7 +209,7 @@ export class CoreService extends BaseService {
209
209
  }
210
210
  throw new Error(response.message)
211
211
  } catch (error) {
212
- throw new Error(`Registration failed: ${error.message}`, { cause: error })
212
+ throw new Error(`Registration failed: ${error.message}`)
213
213
  }
214
214
  }
215
215
 
@@ -245,7 +245,7 @@ export class CoreService extends BaseService {
245
245
  }
246
246
  throw new Error(response.message)
247
247
  } catch (error) {
248
- throw new Error(`Login failed: ${error.message}`, { cause: error })
248
+ throw new Error(`Login failed: ${error.message}`)
249
249
  }
250
250
  }
251
251
 
@@ -270,7 +270,7 @@ export class CoreService extends BaseService {
270
270
  }
271
271
  this.updateContext({ authToken: null })
272
272
 
273
- throw new Error(`Logout failed: ${error.message}`, { cause: error })
273
+ throw new Error(`Logout failed: ${error.message}`)
274
274
  }
275
275
  }
276
276
 
@@ -286,7 +286,7 @@ export class CoreService extends BaseService {
286
286
  }
287
287
  throw new Error(response.message)
288
288
  } catch (error) {
289
- throw new Error(`Token refresh failed: ${error.message}`, { cause: error })
289
+ throw new Error(`Token refresh failed: ${error.message}`)
290
290
  }
291
291
  }
292
292
 
@@ -325,7 +325,7 @@ export class CoreService extends BaseService {
325
325
  }
326
326
  throw new Error(response.message)
327
327
  } catch (error) {
328
- throw new Error(`Google auth failed: ${error.message}`, { cause: error })
328
+ throw new Error(`Google auth failed: ${error.message}`)
329
329
  }
330
330
  }
331
331
 
@@ -364,7 +364,7 @@ export class CoreService extends BaseService {
364
364
  }
365
365
  throw new Error(response.message)
366
366
  } catch (error) {
367
- throw new Error(`GitHub auth failed: ${error.message}`, { cause: error })
367
+ throw new Error(`GitHub auth failed: ${error.message}`)
368
368
  }
369
369
  }
370
370
 
@@ -405,7 +405,7 @@ export class CoreService extends BaseService {
405
405
  }
406
406
  throw new Error(response.message)
407
407
  } catch (error) {
408
- throw new Error(`Google auth callback failed: ${error.message}`, { cause: error })
408
+ throw new Error(`Google auth callback failed: ${error.message}`)
409
409
  }
410
410
  }
411
411
 
@@ -421,7 +421,7 @@ export class CoreService extends BaseService {
421
421
  }
422
422
  throw new Error(response.message)
423
423
  } catch (error) {
424
- throw new Error(`Password reset request failed: ${error.message}`, { cause: error })
424
+ throw new Error(`Password reset request failed: ${error.message}`)
425
425
  }
426
426
  }
427
427
 
@@ -437,7 +437,7 @@ export class CoreService extends BaseService {
437
437
  }
438
438
  throw new Error(response.message)
439
439
  } catch (error) {
440
- throw new Error(`Password reset confirmation failed: ${error.message}`, { cause: error })
440
+ throw new Error(`Password reset confirmation failed: ${error.message}`)
441
441
  }
442
442
  }
443
443
 
@@ -453,7 +453,7 @@ export class CoreService extends BaseService {
453
453
  }
454
454
  throw new Error(response.message)
455
455
  } catch (error) {
456
- throw new Error(`Registration confirmation failed: ${error.message}`, { cause: error })
456
+ throw new Error(`Registration confirmation failed: ${error.message}`)
457
457
  }
458
458
  }
459
459
 
@@ -469,7 +469,7 @@ export class CoreService extends BaseService {
469
469
  }
470
470
  throw new Error(response.message)
471
471
  } catch (error) {
472
- throw new Error(`Password change request failed: ${error.message}`, { cause: error })
472
+ throw new Error(`Password change request failed: ${error.message}`)
473
473
  }
474
474
  }
475
475
 
@@ -486,7 +486,7 @@ export class CoreService extends BaseService {
486
486
  }
487
487
  throw new Error(response.message)
488
488
  } catch (error) {
489
- throw new Error(`Password change confirmation failed: ${error.message}`, { cause: error })
489
+ throw new Error(`Password change confirmation failed: ${error.message}`)
490
490
  }
491
491
  }
492
492
 
@@ -502,7 +502,7 @@ export class CoreService extends BaseService {
502
502
  }
503
503
  throw new Error(response.message)
504
504
  } catch (error) {
505
- throw new Error(`Failed to get user profile: ${error.message}`, { cause: error })
505
+ throw new Error(`Failed to get user profile: ${error.message}`)
506
506
  }
507
507
  }
508
508
 
@@ -643,7 +643,7 @@ export class CoreService extends BaseService {
643
643
  }
644
644
  throw new Error(response.message)
645
645
  } catch (error) {
646
- throw new Error(`Failed to update user profile: ${error.message}`, { cause: error })
646
+ throw new Error(`Failed to update user profile: ${error.message}`)
647
647
  }
648
648
  }
649
649
 
@@ -667,7 +667,7 @@ export class CoreService extends BaseService {
667
667
  }
668
668
  throw new Error(response.message)
669
669
  } catch (error) {
670
- throw new Error(`Failed to get user projects: ${error.message}`, { cause: error })
670
+ throw new Error(`Failed to get user projects: ${error.message}`)
671
671
  }
672
672
  }
673
673
 
@@ -686,7 +686,7 @@ export class CoreService extends BaseService {
686
686
  }
687
687
  throw new Error(response.message)
688
688
  } catch (error) {
689
- throw new Error(`Failed to get user: ${error.message}`, { cause: error })
689
+ throw new Error(`Failed to get user: ${error.message}`)
690
690
  }
691
691
  }
692
692
 
@@ -705,7 +705,7 @@ export class CoreService extends BaseService {
705
705
  }
706
706
  throw new Error(response.message)
707
707
  } catch (error) {
708
- throw new Error(`Failed to get user by email: ${error.message}`, { cause: error })
708
+ throw new Error(`Failed to get user by email: ${error.message}`)
709
709
  }
710
710
  }
711
711
 
@@ -19,7 +19,7 @@ export class DnsService extends BaseService {
19
19
  }
20
20
  throw new Error(response.message)
21
21
  } catch (error) {
22
- throw new Error(`Failed to create DNS record: ${error.message}`, { cause: error })
22
+ throw new Error(`Failed to create DNS record: ${error.message}`)
23
23
  }
24
24
  }
25
25
 
@@ -38,7 +38,7 @@ export class DnsService extends BaseService {
38
38
  }
39
39
  throw new Error(response.message)
40
40
  } catch (error) {
41
- throw new Error(`Failed to get DNS record: ${error.message}`, { cause: error })
41
+ throw new Error(`Failed to get DNS record: ${error.message}`)
42
42
  }
43
43
  }
44
44
 
@@ -76,7 +76,7 @@ export class DnsService extends BaseService {
76
76
  }
77
77
  throw new Error(response.message)
78
78
  } catch (error) {
79
- throw new Error(`Failed to remove DNS record: ${error.message}`, { cause: error })
79
+ throw new Error(`Failed to remove DNS record: ${error.message}`)
80
80
  }
81
81
  }
82
82
 
@@ -105,7 +105,7 @@ export class DnsService extends BaseService {
105
105
  }
106
106
  throw new Error(response.message)
107
107
  } catch (error) {
108
- throw new Error(`Failed to set project domains: ${error.message}`, { cause: error })
108
+ throw new Error(`Failed to set project domains: ${error.message}`)
109
109
  }
110
110
  }
111
111
 
@@ -45,7 +45,7 @@ export class FileService extends BaseService {
45
45
  message: response.message
46
46
  }
47
47
  } catch (error) {
48
- throw new Error(`File upload failed: ${error.message}`, { cause: error })
48
+ throw new Error(`File upload failed: ${error.message}`)
49
49
  }
50
50
  }
51
51
 
@@ -71,7 +71,7 @@ export class FileService extends BaseService {
71
71
  }
72
72
  throw new Error(response.message)
73
73
  } catch (error) {
74
- throw new Error(`Failed to update project icon: ${error.message}`, { cause: error })
74
+ throw new Error(`Failed to update project icon: ${error.message}`)
75
75
  }
76
76
  }
77
77
 
@@ -34,7 +34,7 @@ export class PaymentService extends BaseService {
34
34
  }
35
35
  throw new Error(response.message)
36
36
  } catch (error) {
37
- throw new Error(`Failed to checkout: ${error.message}`, { cause: error })
37
+ throw new Error(`Failed to checkout: ${error.message}`)
38
38
  }
39
39
  }
40
40
 
@@ -56,7 +56,7 @@ export class PaymentService extends BaseService {
56
56
  }
57
57
  throw new Error(response.message)
58
58
  } catch (error) {
59
- throw new Error(`Failed to get subscription status: ${error.message}`, { cause: error })
59
+ throw new Error(`Failed to get subscription status: ${error.message}`)
60
60
  }
61
61
  }
62
62
 
@@ -17,7 +17,7 @@ export class PlanService extends BaseService {
17
17
  }
18
18
  throw new Error(response.message)
19
19
  } catch (error) {
20
- throw new Error(`Failed to get plans: ${error.message}`, { cause: error })
20
+ throw new Error(`Failed to get plans: ${error.message}`)
21
21
  }
22
22
  }
23
23
 
@@ -38,7 +38,7 @@ export class PlanService extends BaseService {
38
38
  }
39
39
  throw new Error(response.message)
40
40
  } catch (error) {
41
- throw new Error(`Failed to get plan: ${error.message}`, { cause: error })
41
+ throw new Error(`Failed to get plan: ${error.message}`)
42
42
  }
43
43
  }
44
44
 
@@ -59,7 +59,7 @@ export class PlanService extends BaseService {
59
59
  }
60
60
  throw new Error(response.message)
61
61
  } catch (error) {
62
- throw new Error(`Failed to get admin plans: ${error.message}`, { cause: error })
62
+ throw new Error(`Failed to get admin plans: ${error.message}`)
63
63
  }
64
64
  }
65
65
 
@@ -82,7 +82,7 @@ export class PlanService extends BaseService {
82
82
  }
83
83
  throw new Error(response.message)
84
84
  } catch (error) {
85
- throw new Error(`Failed to create plan: ${error.message}`, { cause: error })
85
+ throw new Error(`Failed to create plan: ${error.message}`)
86
86
  }
87
87
  }
88
88
 
@@ -108,7 +108,7 @@ export class PlanService extends BaseService {
108
108
  }
109
109
  throw new Error(response.message)
110
110
  } catch (error) {
111
- throw new Error(`Failed to update plan: ${error.message}`, { cause: error })
111
+ throw new Error(`Failed to update plan: ${error.message}`)
112
112
  }
113
113
  }
114
114
 
@@ -130,7 +130,7 @@ export class PlanService extends BaseService {
130
130
  }
131
131
  throw new Error(response.message)
132
132
  } catch (error) {
133
- throw new Error(`Failed to delete plan: ${error.message}`, { cause: error })
133
+ throw new Error(`Failed to delete plan: ${error.message}`)
134
134
  }
135
135
  }
136
136
 
@@ -149,7 +149,7 @@ export class PlanService extends BaseService {
149
149
  }
150
150
  throw new Error(response.message)
151
151
  } catch (error) {
152
- throw new Error(`Failed to initialize plans: ${error.message}`, { cause: error })
152
+ throw new Error(`Failed to initialize plans: ${error.message}`)
153
153
  }
154
154
  }
155
155
 
@@ -166,7 +166,7 @@ export class PlanService extends BaseService {
166
166
  }
167
167
  return plans
168
168
  } catch (error) {
169
- throw new Error(`Failed to get plans with validation: ${error.message}`, { cause: error })
169
+ throw new Error(`Failed to get plans with validation: ${error.message}`)
170
170
  }
171
171
  }
172
172
 
@@ -185,7 +185,7 @@ export class PlanService extends BaseService {
185
185
  }
186
186
  return plan
187
187
  } catch (error) {
188
- throw new Error(`Failed to get plan with validation: ${error.message}`, { cause: error })
188
+ throw new Error(`Failed to get plan with validation: ${error.message}`)
189
189
  }
190
190
  }
191
191
 
@@ -252,7 +252,7 @@ export class PlanService extends BaseService {
252
252
  const plans = await this.getPlans()
253
253
  return plans.filter(plan => plan.active !== false)
254
254
  } catch (error) {
255
- throw new Error(`Failed to get active plans: ${error.message}`, { cause: error })
255
+ throw new Error(`Failed to get active plans: ${error.message}`)
256
256
  }
257
257
  }
258
258
 
@@ -267,7 +267,7 @@ export class PlanService extends BaseService {
267
267
  return price >= minPrice && price <= maxPrice
268
268
  })
269
269
  } catch (error) {
270
- throw new Error(`Failed to get plans by price range: ${error.message}`, { cause: error })
270
+ throw new Error(`Failed to get plans by price range: ${error.message}`)
271
271
  }
272
272
  }
273
273
 
@@ -289,7 +289,7 @@ export class PlanService extends BaseService {
289
289
 
290
290
  return plan
291
291
  } catch (error) {
292
- throw new Error(`Failed to get plan by key: ${error.message}`, { cause: error })
292
+ throw new Error(`Failed to get plan by key: ${error.message}`)
293
293
  }
294
294
  }
295
295
  }