@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
@@ -1,4 +1,6 @@
1
1
  import { BaseService } from './BaseService.js'
2
+ import environment from '../config/environment.js'
3
+ import { getTokenManager } from '../utils/TokenManager.js'
2
4
  import {
3
5
  ROLE_PERMISSIONS,
4
6
  TIER_FEATURES,
@@ -16,11 +18,147 @@ export class AuthService extends BaseService {
16
18
  'pro2',
17
19
  'enterprise'
18
20
  ])
21
+ this._initialized = false
22
+ this._apiUrl = null
23
+ this._tokenManager = null
19
24
  this._projectRoleCache = new Map() // Cache for project roles
20
25
  this._roleCacheExpiry = 5 * 60 * 1000 // 5 minutes cache expiry
21
26
  }
22
27
 
23
- // Use BaseService.init/_request/_requireReady implementations
28
+ init({ context }) {
29
+ try {
30
+ const { appKey, authToken } = context || this._context
31
+
32
+ // Get base URL from environment config
33
+ this._apiUrl = environment.apiUrl
34
+
35
+ if (!this._apiUrl) {
36
+ throw new Error('Auth service base URL not configured')
37
+ }
38
+
39
+ // Initialize token manager
40
+ this._tokenManager = getTokenManager({
41
+ apiUrl: this._apiUrl,
42
+ onTokenRefresh: (tokens) => {
43
+ // Update context with new token
44
+ this.updateContext({ authToken: tokens.accessToken })
45
+ },
46
+ onTokenExpired: () => {
47
+ // Clear context token
48
+ this.updateContext({ authToken: null })
49
+ },
50
+ onTokenError: (error) => {
51
+ console.error('Token management error:', error)
52
+ }
53
+ })
54
+
55
+ if (authToken && !this._tokenManager.hasTokens()) {
56
+ this._tokenManager.setTokens({ access_token: authToken })
57
+ }
58
+
59
+ // Store masked configuration info
60
+ this._info = {
61
+ config: {
62
+ apiUrl: this._apiUrl,
63
+ appKey: appKey
64
+ ? `${appKey.substr(0, 4)}...${appKey.substr(-4)}`
65
+ : null,
66
+ hasToken: Boolean(authToken)
67
+ }
68
+ }
69
+
70
+ this._initialized = true
71
+ this._setReady()
72
+ } catch (error) {
73
+ this._setError(error)
74
+ throw error
75
+ }
76
+ }
77
+
78
+ // Helper method to make HTTP requests
79
+ async _request(endpoint, options = {}) {
80
+ const url = `${this._apiUrl}/core${endpoint}`
81
+
82
+ const defaultHeaders = {}
83
+
84
+ // Only set Content-Type for JSON requests, not for FormData
85
+ if (!(options.body instanceof FormData)) {
86
+ defaultHeaders['Content-Type'] = 'application/json'
87
+ }
88
+
89
+ // Use TokenManager for automatic token management
90
+ if (this._requiresInit(options.methodName) && this._tokenManager) {
91
+ try {
92
+ // Ensure we have a valid token (will refresh if needed)
93
+ const validToken = await this._tokenManager.ensureValidToken()
94
+
95
+ if (validToken) {
96
+ const authHeader = this._tokenManager.getAuthHeader()
97
+ if (authHeader) {
98
+ defaultHeaders.Authorization = authHeader
99
+ }
100
+ }
101
+ } catch (error) {
102
+ console.warn(
103
+ 'Token management failed, proceeding without authentication:',
104
+ error
105
+ )
106
+ }
107
+ } else if (this._requiresInit(options.methodName)) {
108
+ // Fallback to context token if TokenManager not available
109
+ const { authToken } = this._context
110
+ if (authToken) {
111
+ defaultHeaders.Authorization = `Bearer ${authToken}`
112
+ }
113
+ }
114
+
115
+ try {
116
+ const response = await fetch(url, {
117
+ ...options,
118
+ headers: {
119
+ ...defaultHeaders,
120
+ ...options.headers
121
+ }
122
+ })
123
+
124
+ if (!response.ok) {
125
+ let error = {
126
+ message: `HTTP ${response.status}: ${response.statusText}`
127
+ }
128
+ try {
129
+ error = await response.json()
130
+ } catch {
131
+ // Use default error message
132
+ }
133
+ throw new Error(error.message || error.error || 'Request failed')
134
+ }
135
+
136
+ return response.status === 204 ? null : response.json()
137
+ } catch (error) {
138
+ throw new Error(`Request failed: ${error.message}`)
139
+ }
140
+ }
141
+
142
+ _requiresInit(methodName) {
143
+ const noInitMethods = new Set([
144
+ 'register',
145
+ 'login',
146
+ 'googleAuth',
147
+ 'googleAuthCallback',
148
+ 'githubAuth',
149
+ 'requestPasswordReset',
150
+ 'confirmPasswordReset',
151
+ 'confirmRegistration',
152
+ 'verifyEmail'
153
+ ])
154
+ return !noInitMethods.has(methodName)
155
+ }
156
+
157
+ _requireReady(methodName) {
158
+ if (this._requiresInit(methodName) && !this._initialized) {
159
+ throw new Error('Auth service not initialized')
160
+ }
161
+ }
24
162
 
25
163
  // ==================== AUTH METHODS ====================
26
164
 
@@ -36,7 +174,7 @@ export class AuthService extends BaseService {
36
174
  }
37
175
  throw new Error(response.message)
38
176
  } catch (error) {
39
- throw new Error(`Registration failed: ${error.message}`, { cause: error })
177
+ throw new Error(`Registration failed: ${error.message}`)
40
178
  }
41
179
  }
42
180
 
@@ -62,6 +200,9 @@ export class AuthService extends BaseService {
62
200
  if (this._tokenManager) {
63
201
  this._tokenManager.setTokens(tokenData)
64
202
  }
203
+
204
+ // Update context for backward compatibility
205
+ this.updateContext({ authToken: tokens.accessToken })
65
206
  }
66
207
 
67
208
  if (response.success) {
@@ -69,7 +210,7 @@ export class AuthService extends BaseService {
69
210
  }
70
211
  throw new Error(response.message)
71
212
  } catch (error) {
72
- throw new Error(`Login failed: ${error.message}`, { cause: error })
213
+ throw new Error(`Login failed: ${error.message}`)
73
214
  }
74
215
  }
75
216
 
@@ -86,13 +227,15 @@ export class AuthService extends BaseService {
86
227
  if (this._tokenManager) {
87
228
  this._tokenManager.clearTokens()
88
229
  }
230
+ this.updateContext({ authToken: null })
89
231
  } catch (error) {
90
232
  // Even if the API call fails, clear local tokens
91
233
  if (this._tokenManager) {
92
234
  this._tokenManager.clearTokens()
93
235
  }
236
+ this.updateContext({ authToken: null })
94
237
 
95
- throw new Error(`Logout failed: ${error.message}`, { cause: error })
238
+ throw new Error(`Logout failed: ${error.message}`)
96
239
  }
97
240
  }
98
241
 
@@ -108,7 +251,7 @@ export class AuthService extends BaseService {
108
251
  }
109
252
  throw new Error(response.message)
110
253
  } catch (error) {
111
- throw new Error(`Token refresh failed: ${error.message}`, { cause: error })
254
+ throw new Error(`Token refresh failed: ${error.message}`)
112
255
  }
113
256
  }
114
257
 
@@ -139,6 +282,9 @@ export class AuthService extends BaseService {
139
282
  if (this._tokenManager) {
140
283
  this._tokenManager.setTokens(tokenData)
141
284
  }
285
+
286
+ // Update context for backward compatibility
287
+ this.updateContext({ authToken: tokens.accessToken })
142
288
  }
143
289
 
144
290
  if (response.success) {
@@ -146,7 +292,7 @@ export class AuthService extends BaseService {
146
292
  }
147
293
  throw new Error(response.message)
148
294
  } catch (error) {
149
- throw new Error(`Google auth failed: ${error.message}`, { cause: error })
295
+ throw new Error(`Google auth failed: ${error.message}`)
150
296
  }
151
297
  }
152
298
 
@@ -177,6 +323,9 @@ export class AuthService extends BaseService {
177
323
  if (this._tokenManager) {
178
324
  this._tokenManager.setTokens(tokenData)
179
325
  }
326
+
327
+ // Update context for backward compatibility
328
+ this.updateContext({ authToken: tokens.accessToken })
180
329
  }
181
330
 
182
331
  if (response.success) {
@@ -184,7 +333,7 @@ export class AuthService extends BaseService {
184
333
  }
185
334
  throw new Error(response.message)
186
335
  } catch (error) {
187
- throw new Error(`GitHub auth failed: ${error.message}`, { cause: error })
336
+ throw new Error(`GitHub auth failed: ${error.message}`)
188
337
  }
189
338
  }
190
339
 
@@ -215,6 +364,9 @@ export class AuthService extends BaseService {
215
364
  if (this._tokenManager) {
216
365
  this._tokenManager.setTokens(tokenData)
217
366
  }
367
+
368
+ // Update context for backward compatibility
369
+ this.updateContext({ authToken: tokens.accessToken })
218
370
  }
219
371
 
220
372
  if (response.success) {
@@ -222,7 +374,7 @@ export class AuthService extends BaseService {
222
374
  }
223
375
  throw new Error(response.message)
224
376
  } catch (error) {
225
- throw new Error(`Google auth callback failed: ${error.message}`, { cause: error })
377
+ throw new Error(`Google auth callback failed: ${error.message}`)
226
378
  }
227
379
  }
228
380
 
@@ -238,7 +390,7 @@ export class AuthService extends BaseService {
238
390
  }
239
391
  throw new Error(response.message)
240
392
  } catch (error) {
241
- throw new Error(`Password reset request failed: ${error.message}`, { cause: error })
393
+ throw new Error(`Password reset request failed: ${error.message}`)
242
394
  }
243
395
  }
244
396
 
@@ -254,7 +406,7 @@ export class AuthService extends BaseService {
254
406
  }
255
407
  throw new Error(response.message)
256
408
  } catch (error) {
257
- throw new Error(`Password reset confirmation failed: ${error.message}`, { cause: error })
409
+ throw new Error(`Password reset confirmation failed: ${error.message}`)
258
410
  }
259
411
  }
260
412
 
@@ -270,7 +422,7 @@ export class AuthService extends BaseService {
270
422
  }
271
423
  throw new Error(response.message)
272
424
  } catch (error) {
273
- throw new Error(`Registration confirmation failed: ${error.message}`, { cause: error })
425
+ throw new Error(`Registration confirmation failed: ${error.message}`)
274
426
  }
275
427
  }
276
428
 
@@ -286,7 +438,7 @@ export class AuthService extends BaseService {
286
438
  }
287
439
  throw new Error(response.message)
288
440
  } catch (error) {
289
- throw new Error(`Password change request failed: ${error.message}`, { cause: error })
441
+ throw new Error(`Password change request failed: ${error.message}`)
290
442
  }
291
443
  }
292
444
 
@@ -303,7 +455,7 @@ export class AuthService extends BaseService {
303
455
  }
304
456
  throw new Error(response.message)
305
457
  } catch (error) {
306
- throw new Error(`Password change confirmation failed: ${error.message}`, { cause: error })
458
+ throw new Error(`Password change confirmation failed: ${error.message}`)
307
459
  }
308
460
  }
309
461
 
@@ -319,7 +471,7 @@ export class AuthService extends BaseService {
319
471
  }
320
472
  throw new Error(response.message)
321
473
  } catch (error) {
322
- throw new Error(`Failed to get user profile: ${error.message}`, { cause: error })
474
+ throw new Error(`Failed to get user profile: ${error.message}`)
323
475
  }
324
476
  }
325
477
 
@@ -443,7 +595,7 @@ export class AuthService extends BaseService {
443
595
  }
444
596
  throw new Error(response.message)
445
597
  } catch (error) {
446
- throw new Error(`Failed to get user profile: ${error.message}`, { cause: error })
598
+ throw new Error(`Failed to get user profile: ${error.message}`)
447
599
  }
448
600
  }
449
601
 
@@ -460,7 +612,7 @@ export class AuthService extends BaseService {
460
612
  }
461
613
  throw new Error(response.message)
462
614
  } catch (error) {
463
- throw new Error(`Failed to update user profile: ${error.message}`, { cause: error })
615
+ throw new Error(`Failed to update user profile: ${error.message}`)
464
616
  }
465
617
  }
466
618
 
@@ -484,7 +636,7 @@ export class AuthService extends BaseService {
484
636
  }
485
637
  throw new Error(response.message)
486
638
  } catch (error) {
487
- throw new Error(`Failed to get user projects: ${error.message}`, { cause: error })
639
+ throw new Error(`Failed to get user projects: ${error.message}`)
488
640
  }
489
641
  }
490
642
 
@@ -503,7 +655,7 @@ export class AuthService extends BaseService {
503
655
  }
504
656
  throw new Error(response.message)
505
657
  } catch (error) {
506
- throw new Error(`Failed to get user: ${error.message}`, { cause: error })
658
+ throw new Error(`Failed to get user: ${error.message}`)
507
659
  }
508
660
  }
509
661
 
@@ -522,7 +674,7 @@ export class AuthService extends BaseService {
522
674
  }
523
675
  throw new Error(response.message)
524
676
  } catch (error) {
525
- throw new Error(`Failed to get user by email: ${error.message}`, { cause: error })
677
+ throw new Error(`Failed to get user by email: ${error.message}`)
526
678
  }
527
679
  }
528
680
 
@@ -538,11 +690,6 @@ export class AuthService extends BaseService {
538
690
  throw new Error('Project ID is required')
539
691
  }
540
692
 
541
- // If there are no valid tokens, treat user as guest for public access
542
- if (!this.hasValidTokens()) {
543
- return 'guest'
544
- }
545
-
546
693
  // Check cache first
547
694
  const cacheKey = `role_${projectId}`
548
695
  const cached = this._projectRoleCache.get(cacheKey)
@@ -568,12 +715,7 @@ export class AuthService extends BaseService {
568
715
  }
569
716
  throw new Error(response.message)
570
717
  } catch (error) {
571
- const message = error?.message || ''
572
- // If request failed due to missing/invalid auth, default to guest
573
- if (/401|403|unauthorized|no token|invalid token/iu.test(message)) {
574
- return 'guest'
575
- }
576
- throw new Error(`Failed to get project role: ${message}`, { cause: error })
718
+ throw new Error(`Failed to get project role: ${error.message}`)
577
719
  }
578
720
  }
579
721
 
@@ -587,11 +729,6 @@ export class AuthService extends BaseService {
587
729
  throw new Error('Project key is required')
588
730
  }
589
731
 
590
- // If there are no valid tokens, treat user as guest for public access
591
- if (!this.hasValidTokens()) {
592
- return 'guest'
593
- }
594
-
595
732
  // Check cache first
596
733
  const cacheKey = `role_key_${projectKey}`
597
734
  const cached = this._projectRoleCache.get(cacheKey)
@@ -617,12 +754,7 @@ export class AuthService extends BaseService {
617
754
  }
618
755
  throw new Error(response.message)
619
756
  } catch (error) {
620
- const message = error?.message || ''
621
- // If request failed due to missing/invalid auth, default to guest
622
- if (/401|403|unauthorized|no token|invalid token/iu.test(message)) {
623
- return 'guest'
624
- }
625
- throw new Error(`Failed to get project role by key: ${message}`, { cause: error })
757
+ throw new Error(`Failed to get project role by key: ${error.message}`)
626
758
  }
627
759
  }
628
760
 
@@ -750,7 +882,7 @@ export class AuthService extends BaseService {
750
882
  try {
751
883
  return await this.getMe()
752
884
  } catch (error) {
753
- throw new Error(`Failed to get current user: ${error.message}`, { cause: error })
885
+ throw new Error(`Failed to get current user: ${error.message}`)
754
886
  }
755
887
  }
756
888
 
@@ -950,6 +1082,7 @@ export class AuthService extends BaseService {
950
1082
  }
951
1083
  // Clear project role cache
952
1084
  this._projectRoleCache.clear()
1085
+ this._initialized = false
953
1086
  this._setReady(false)
954
1087
  }
955
1088
  }
@@ -23,14 +23,28 @@ export class BaseService {
23
23
  throw new Error('Service base URL not configured')
24
24
  }
25
25
 
26
- // Initialize token manager (singleton). TokenManager handles persistence
26
+ // Initialize token manager
27
27
  this._tokenManager = getTokenManager({
28
28
  apiUrl: this._apiUrl,
29
+ onTokenRefresh: tokens => {
30
+ // Update context with new token
31
+ this.updateContext({ authToken: tokens.accessToken })
32
+ },
33
+ onTokenExpired: () => {
34
+ // Clear context token
35
+ this.updateContext({ authToken: null })
36
+ },
29
37
  onTokenError: error => {
30
38
  console.error('Token management error:', error)
31
39
  }
32
40
  })
33
41
 
42
+ // Set initial token if provided
43
+ const { authToken } = this._context
44
+ if (authToken && !this._tokenManager.hasTokens()) {
45
+ this._tokenManager.setTokens({ access_token: authToken })
46
+ }
47
+
34
48
  this._setReady()
35
49
  } catch (error) {
36
50
  this._setError(error)
@@ -40,10 +54,7 @@ export class BaseService {
40
54
 
41
55
  // Update context
42
56
  updateContext (context) {
43
- // Mutate in place to preserve the shared reference with the SDK context
44
- if (context && typeof context === 'object') {
45
- Object.assign(this._context, context)
46
- }
57
+ this._context = { ...this._context, ...context }
47
58
  }
48
59
 
49
60
  // Get service status
@@ -112,6 +123,12 @@ export class BaseService {
112
123
  error
113
124
  )
114
125
  }
126
+ } else if (this._requiresInit(options.methodName)) {
127
+ // Fallback to context token if TokenManager not available
128
+ const { authToken } = this._context
129
+ if (authToken) {
130
+ defaultHeaders.Authorization = `Bearer ${authToken}`
131
+ }
115
132
  }
116
133
 
117
134
  try {
@@ -132,12 +149,12 @@ export class BaseService {
132
149
  } catch {
133
150
  // Use default error message
134
151
  }
135
- throw new Error(error.message || error.error || 'Request failed', { cause: error })
152
+ throw new Error(error.message || error.error || 'Request failed')
136
153
  }
137
154
 
138
155
  return response.status === 204 ? null : response.json()
139
156
  } catch (error) {
140
- throw new Error(`Request failed: ${error.message}`, { cause: error })
157
+ throw new Error(`Request failed: ${error.message}`)
141
158
  }
142
159
  }
143
160
 
@@ -22,7 +22,7 @@ export class BranchService extends BaseService {
22
22
  }
23
23
  throw new Error(response.message)
24
24
  } catch (error) {
25
- throw new Error(`Failed to list branches: ${error.message}`, { cause: error })
25
+ throw new Error(`Failed to list branches: ${error.message}`)
26
26
  }
27
27
  }
28
28
 
@@ -51,7 +51,7 @@ export class BranchService extends BaseService {
51
51
  }
52
52
  throw new Error(response.message)
53
53
  } catch (error) {
54
- throw new Error(`Failed to create branch: ${error.message}`, { cause: error })
54
+ throw new Error(`Failed to create branch: ${error.message}`)
55
55
  }
56
56
  }
57
57
 
@@ -83,7 +83,7 @@ export class BranchService extends BaseService {
83
83
  }
84
84
  throw new Error(response.message)
85
85
  } catch (error) {
86
- throw new Error(`Failed to delete branch: ${error.message}`, { cause: error })
86
+ throw new Error(`Failed to delete branch: ${error.message}`)
87
87
  }
88
88
  }
89
89
 
@@ -121,7 +121,7 @@ export class BranchService extends BaseService {
121
121
  }
122
122
  throw new Error(response.message)
123
123
  } catch (error) {
124
- throw new Error(`Failed to rename branch: ${error.message}`, { cause: error })
124
+ throw new Error(`Failed to rename branch: ${error.message}`)
125
125
  }
126
126
  }
127
127
 
@@ -165,7 +165,7 @@ export class BranchService extends BaseService {
165
165
  }
166
166
  throw new Error(response.message)
167
167
  } catch (error) {
168
- throw new Error(`Failed to get branch changes: ${error.message}`, { cause: error })
168
+ throw new Error(`Failed to get branch changes: ${error.message}`)
169
169
  }
170
170
  }
171
171
 
@@ -220,7 +220,7 @@ export class BranchService extends BaseService {
220
220
  ) {
221
221
  throw new Error(`Merge conflicts detected: ${error.message}`)
222
222
  }
223
- throw new Error(`Failed to merge branch: ${error.message}`, { cause: error })
223
+ throw new Error(`Failed to merge branch: ${error.message}`)
224
224
  }
225
225
  }
226
226
 
@@ -251,7 +251,7 @@ export class BranchService extends BaseService {
251
251
  }
252
252
  throw new Error(response.message)
253
253
  } catch (error) {
254
- throw new Error(`Failed to reset branch: ${error.message}`, { cause: error })
254
+ throw new Error(`Failed to reset branch: ${error.message}`)
255
255
  }
256
256
  }
257
257
 
@@ -280,7 +280,7 @@ export class BranchService extends BaseService {
280
280
  }
281
281
  throw new Error(response.message)
282
282
  } catch (error) {
283
- throw new Error(`Failed to publish version: ${error.message}`, { cause: error })
283
+ throw new Error(`Failed to publish version: ${error.message}`)
284
284
  }
285
285
  }
286
286
 
@@ -322,7 +322,7 @@ export class BranchService extends BaseService {
322
322
  const branches = await this.listBranches(projectId)
323
323
  return branches?.data?.includes(branchName) || false
324
324
  } catch (error) {
325
- throw new Error(`Failed to check if branch exists: ${error.message}`, { cause: error })
325
+ throw new Error(`Failed to check if branch exists: ${error.message}`)
326
326
  }
327
327
  }
328
328
 
@@ -405,7 +405,7 @@ export class BranchService extends BaseService {
405
405
  canRename: exists && branchName !== 'main'
406
406
  }
407
407
  } catch (error) {
408
- throw new Error(`Failed to get branch status: ${error.message}`, { cause: error })
408
+ throw new Error(`Failed to get branch status: ${error.message}`)
409
409
  }
410
410
  }
411
411