@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
@@ -28,28 +28,18 @@ var CONFIG = {
28
28
  // For based api
29
29
  basedOrg: "symbols",
30
30
  // For based api
31
- githubClientId: "Ov23liAFrsR0StbAO6PO",
31
+ githubClientId: "Ov23liHxyWFBxS8f1gnF",
32
32
  // For github api
33
33
  // Environment-specific feature toggles (override common)
34
34
  features: {
35
35
  betaFeatures: true
36
36
  // Enable beta features in local dev
37
- },
38
- typesenseCollectionName: "docs",
39
- typesenseApiKey: "vZya3L2zpq8L6iI5WWMUZJZABvT63VDb",
40
- typesenseHost: "localhost",
41
- typesensePort: "8108",
42
- typesenseProtocol: "http"
37
+ }
43
38
  },
44
39
  development: {
45
40
  socketUrl: "https://dev.api.symbols.app",
46
41
  apiUrl: "https://dev.api.symbols.app",
47
- githubClientId: "Ov23liHxyWFBxS8f1gnF",
48
- typesenseCollectionName: "docs",
49
- typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
50
- typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
51
- typesensePort: "443",
52
- typesenseProtocol: "https"
42
+ githubClientId: "Ov23liHxyWFBxS8f1gnF"
53
43
  },
54
44
  testing: {
55
45
  socketUrl: "https://test.api.symbols.app",
@@ -57,22 +47,12 @@ var CONFIG = {
57
47
  basedEnv: "testing",
58
48
  basedProject: "platform-v2-sm",
59
49
  basedOrg: "symbols",
60
- githubClientId: "Ov23liHxyWFBxS8f1gnF",
61
- typesenseCollectionName: "docs",
62
- typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
63
- typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
64
- typesensePort: "443",
65
- typesenseProtocol: "https"
50
+ githubClientId: "Ov23liHxyWFBxS8f1gnF"
66
51
  },
67
52
  upcoming: {
68
53
  socketUrl: "https://upcoming.api.symbols.app",
69
54
  apiUrl: "https://upcoming.api.symbols.app",
70
- githubClientId: "Ov23liWF7NvdZ056RV5J",
71
- typesenseCollectionName: "docs",
72
- typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
73
- typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
74
- typesensePort: "443",
75
- typesenseProtocol: "https"
55
+ githubClientId: "Ov23liWF7NvdZ056RV5J"
76
56
  },
77
57
  staging: {
78
58
  socketUrl: "https://staging.api.symbols.app",
@@ -80,12 +60,7 @@ var CONFIG = {
80
60
  basedEnv: "staging",
81
61
  basedProject: "platform-v2-sm",
82
62
  basedOrg: "symbols",
83
- githubClientId: "Ov23ligwZDQVD0VfuWNa",
84
- typesenseCollectionName: "docs",
85
- typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
86
- typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
87
- typesensePort: "443",
88
- typesenseProtocol: "https"
63
+ githubClientId: "Ov23ligwZDQVD0VfuWNa"
89
64
  },
90
65
  production: {
91
66
  socketUrl: "https://api.symbols.app",
@@ -93,12 +68,7 @@ var CONFIG = {
93
68
  basedEnv: "production",
94
69
  basedProject: "platform-v2-sm",
95
70
  basedOrg: "symbols",
96
- githubClientId: "Ov23liFAlOEIXtX3dBtR",
97
- typesenseCollectionName: "docs",
98
- typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
99
- typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
100
- typesensePort: "443",
101
- typesenseProtocol: "https"
71
+ githubClientId: "Ov23liFAlOEIXtX3dBtR"
102
72
  }
103
73
  };
104
74
  var getEnvironment = () => {
@@ -120,11 +90,6 @@ var getConfig = () => {
120
90
  basedProject: process.env.SYMBOLS_APP_BASED_PROJECT || envConfig.basedProject,
121
91
  basedOrg: process.env.SYMBOLS_APP_BASED_ORG || envConfig.basedOrg,
122
92
  githubClientId: process.env.SYMBOLS_APP_GITHUB_CLIENT_ID || envConfig.githubClientId,
123
- typesenseCollectionName: process.env.TYPESENSE_COLLECTION_NAME || envConfig.typesenseCollectionName,
124
- typesenseApiKey: process.env.TYPESENSE_API_KEY || envConfig.typesenseApiKey,
125
- typesenseHost: process.env.TYPESENSE_HOST || envConfig.typesenseHost,
126
- typesensePort: process.env.TYPESENSE_PORT || envConfig.typesensePort,
127
- typesenseProtocol: process.env.TYPESENSE_PROTOCOL || envConfig.typesenseProtocol,
128
93
  isDevelopment: isDevelopment(env),
129
94
  isTesting: env === "testing",
130
95
  isStaging: env === "staging",
@@ -144,7 +109,7 @@ var getConfig = () => {
144
109
  );
145
110
  }
146
111
  if (finalConfig.isDevelopment) {
147
- console.warn(
112
+ console.log(
148
113
  "environment in SDK:",
149
114
  env || process.env.NODE_ENV || process.env.NODE_ENV
150
115
  );
@@ -183,7 +148,7 @@ var TokenManager = class {
183
148
  });
184
149
  this.config = {
185
150
  storagePrefix: "symbols_",
186
- storageType: typeof window === "undefined" || process.env.NODE_ENV === "test" || process.env.NODE_ENV === "testing" ? "memory" : "localStorage",
151
+ storageType: typeof window === "undefined" || process.env.NODE_ENV === "test" ? "memory" : "localStorage",
187
152
  // 'localStorage' | 'sessionStorage' | 'memory'
188
153
  refreshBuffer: 60 * 1e3,
189
154
  // Refresh 1 minute before expiry
@@ -223,26 +188,15 @@ var TokenManager = class {
223
188
  if (typeof window === "undefined") {
224
189
  return this._memoryStorage;
225
190
  }
226
- const safeGetStorage = (provider) => {
227
- try {
228
- const storage = provider();
229
- const testKey = `${this.config.storagePrefix}__tm_test__`;
230
- storage.setItem(testKey, "1");
231
- storage.removeItem(testKey);
232
- return storage;
233
- } catch {
234
- return null;
235
- }
236
- };
237
- const localStorageInstance = safeGetStorage(() => window.localStorage);
238
- const sessionStorageInstance = safeGetStorage(() => window.sessionStorage);
191
+ const hasLocalStorage = typeof window.localStorage !== "undefined";
192
+ const hasSessionStorage = typeof window.sessionStorage !== "undefined";
239
193
  switch (this.config.storageType) {
240
194
  case "sessionStorage":
241
- return sessionStorageInstance || this._memoryStorage;
195
+ return hasSessionStorage ? window.sessionStorage : this._memoryStorage;
242
196
  case "memory":
243
197
  return this._memoryStorage;
244
198
  default:
245
- return localStorageInstance || this._memoryStorage;
199
+ return hasLocalStorage ? window.localStorage : this._memoryStorage;
246
200
  }
247
201
  }
248
202
  /**
@@ -581,10 +535,20 @@ var BaseService = class {
581
535
  }
582
536
  this._tokenManager = getTokenManager({
583
537
  apiUrl: this._apiUrl,
538
+ onTokenRefresh: (tokens) => {
539
+ this.updateContext({ authToken: tokens.accessToken });
540
+ },
541
+ onTokenExpired: () => {
542
+ this.updateContext({ authToken: null });
543
+ },
584
544
  onTokenError: (error) => {
585
545
  console.error("Token management error:", error);
586
546
  }
587
547
  });
548
+ const { authToken } = this._context;
549
+ if (authToken && !this._tokenManager.hasTokens()) {
550
+ this._tokenManager.setTokens({ access_token: authToken });
551
+ }
588
552
  this._setReady();
589
553
  } catch (error) {
590
554
  this._setError(error);
@@ -593,9 +557,7 @@ var BaseService = class {
593
557
  }
594
558
  // Update context
595
559
  updateContext(context) {
596
- if (context && typeof context === "object") {
597
- Object.assign(this._context, context);
598
- }
560
+ this._context = { ...this._context, ...context };
599
561
  }
600
562
  // Get service status
601
563
  getStatus() {
@@ -650,6 +612,11 @@ var BaseService = class {
650
612
  error
651
613
  );
652
614
  }
615
+ } else if (this._requiresInit(options.methodName)) {
616
+ const { authToken } = this._context;
617
+ if (authToken) {
618
+ defaultHeaders.Authorization = `Bearer ${authToken}`;
619
+ }
653
620
  }
654
621
  try {
655
622
  const response = await fetch(url, {
@@ -667,11 +634,11 @@ var BaseService = class {
667
634
  error = await response.json();
668
635
  } catch {
669
636
  }
670
- throw new Error(error.message || error.error || "Request failed", { cause: error });
637
+ throw new Error(error.message || error.error || "Request failed");
671
638
  }
672
639
  return response.status === 204 ? null : response.json();
673
640
  } catch (error) {
674
- throw new Error(`Request failed: ${error.message}`, { cause: error });
641
+ throw new Error(`Request failed: ${error.message}`);
675
642
  }
676
643
  }
677
644
  // Helper method to determine if a method requires initialization
@@ -732,7 +699,7 @@ var PullRequestService = class extends BaseService {
732
699
  }
733
700
  throw new Error(response.message);
734
701
  } catch (error) {
735
- throw new Error(`Failed to create pull request: ${error.message}`, { cause: error });
702
+ throw new Error(`Failed to create pull request: ${error.message}`);
736
703
  }
737
704
  }
738
705
  /**
@@ -768,7 +735,7 @@ var PullRequestService = class extends BaseService {
768
735
  }
769
736
  throw new Error(response.message);
770
737
  } catch (error) {
771
- throw new Error(`Failed to list pull requests: ${error.message}`, { cause: error });
738
+ throw new Error(`Failed to list pull requests: ${error.message}`);
772
739
  }
773
740
  }
774
741
  /**
@@ -795,7 +762,7 @@ var PullRequestService = class extends BaseService {
795
762
  }
796
763
  throw new Error(response.message);
797
764
  } catch (error) {
798
- throw new Error(`Failed to get pull request: ${error.message}`, { cause: error });
765
+ throw new Error(`Failed to get pull request: ${error.message}`);
799
766
  }
800
767
  }
801
768
  /**
@@ -829,7 +796,7 @@ var PullRequestService = class extends BaseService {
829
796
  }
830
797
  throw new Error(response.message);
831
798
  } catch (error) {
832
- throw new Error(`Failed to review pull request: ${error.message}`, { cause: error });
799
+ throw new Error(`Failed to review pull request: ${error.message}`);
833
800
  }
834
801
  }
835
802
  /**
@@ -860,7 +827,7 @@ var PullRequestService = class extends BaseService {
860
827
  }
861
828
  throw new Error(response.message);
862
829
  } catch (error) {
863
- throw new Error(`Failed to add pull request comment: ${error.message}`, { cause: error });
830
+ throw new Error(`Failed to add pull request comment: ${error.message}`);
864
831
  }
865
832
  }
866
833
  /**
@@ -890,7 +857,7 @@ var PullRequestService = class extends BaseService {
890
857
  if (error.message.includes("conflicts") || error.message.includes("409")) {
891
858
  throw new Error(`Pull request has merge conflicts: ${error.message}`);
892
859
  }
893
- throw new Error(`Failed to merge pull request: ${error.message}`, { cause: error });
860
+ throw new Error(`Failed to merge pull request: ${error.message}`);
894
861
  }
895
862
  }
896
863
  /**
@@ -917,7 +884,7 @@ var PullRequestService = class extends BaseService {
917
884
  }
918
885
  throw new Error(response.message);
919
886
  } catch (error) {
920
- throw new Error(`Failed to get pull request diff: ${error.message}`, { cause: error });
887
+ throw new Error(`Failed to get pull request diff: ${error.message}`);
921
888
  }
922
889
  }
923
890
  // ==================== PULL REQUEST HELPER METHODS ====================
@@ -28,28 +28,18 @@ var CONFIG = {
28
28
  // For based api
29
29
  basedOrg: "symbols",
30
30
  // For based api
31
- githubClientId: "Ov23liAFrsR0StbAO6PO",
31
+ githubClientId: "Ov23liHxyWFBxS8f1gnF",
32
32
  // For github api
33
33
  // Environment-specific feature toggles (override common)
34
34
  features: {
35
35
  betaFeatures: true
36
36
  // Enable beta features in local dev
37
- },
38
- typesenseCollectionName: "docs",
39
- typesenseApiKey: "vZya3L2zpq8L6iI5WWMUZJZABvT63VDb",
40
- typesenseHost: "localhost",
41
- typesensePort: "8108",
42
- typesenseProtocol: "http"
37
+ }
43
38
  },
44
39
  development: {
45
40
  socketUrl: "https://dev.api.symbols.app",
46
41
  apiUrl: "https://dev.api.symbols.app",
47
- githubClientId: "Ov23liHxyWFBxS8f1gnF",
48
- typesenseCollectionName: "docs",
49
- typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
50
- typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
51
- typesensePort: "443",
52
- typesenseProtocol: "https"
42
+ githubClientId: "Ov23liHxyWFBxS8f1gnF"
53
43
  },
54
44
  testing: {
55
45
  socketUrl: "https://test.api.symbols.app",
@@ -57,22 +47,12 @@ var CONFIG = {
57
47
  basedEnv: "testing",
58
48
  basedProject: "platform-v2-sm",
59
49
  basedOrg: "symbols",
60
- githubClientId: "Ov23liHxyWFBxS8f1gnF",
61
- typesenseCollectionName: "docs",
62
- typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
63
- typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
64
- typesensePort: "443",
65
- typesenseProtocol: "https"
50
+ githubClientId: "Ov23liHxyWFBxS8f1gnF"
66
51
  },
67
52
  upcoming: {
68
53
  socketUrl: "https://upcoming.api.symbols.app",
69
54
  apiUrl: "https://upcoming.api.symbols.app",
70
- githubClientId: "Ov23liWF7NvdZ056RV5J",
71
- typesenseCollectionName: "docs",
72
- typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
73
- typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
74
- typesensePort: "443",
75
- typesenseProtocol: "https"
55
+ githubClientId: "Ov23liWF7NvdZ056RV5J"
76
56
  },
77
57
  staging: {
78
58
  socketUrl: "https://staging.api.symbols.app",
@@ -80,12 +60,7 @@ var CONFIG = {
80
60
  basedEnv: "staging",
81
61
  basedProject: "platform-v2-sm",
82
62
  basedOrg: "symbols",
83
- githubClientId: "Ov23ligwZDQVD0VfuWNa",
84
- typesenseCollectionName: "docs",
85
- typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
86
- typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
87
- typesensePort: "443",
88
- typesenseProtocol: "https"
63
+ githubClientId: "Ov23ligwZDQVD0VfuWNa"
89
64
  },
90
65
  production: {
91
66
  socketUrl: "https://api.symbols.app",
@@ -93,12 +68,7 @@ var CONFIG = {
93
68
  basedEnv: "production",
94
69
  basedProject: "platform-v2-sm",
95
70
  basedOrg: "symbols",
96
- githubClientId: "Ov23liFAlOEIXtX3dBtR",
97
- typesenseCollectionName: "docs",
98
- typesenseApiKey: "awmcVpbWqZi9IUgmvslp1C5LKDU8tMjA",
99
- typesenseHost: "tl2qpnwxev4cjm36p-1.a1.typesense.net",
100
- typesensePort: "443",
101
- typesenseProtocol: "https"
71
+ githubClientId: "Ov23liFAlOEIXtX3dBtR"
102
72
  }
103
73
  };
104
74
  var getEnvironment = () => {
@@ -120,11 +90,6 @@ var getConfig = () => {
120
90
  basedProject: process.env.SYMBOLS_APP_BASED_PROJECT || envConfig.basedProject,
121
91
  basedOrg: process.env.SYMBOLS_APP_BASED_ORG || envConfig.basedOrg,
122
92
  githubClientId: process.env.SYMBOLS_APP_GITHUB_CLIENT_ID || envConfig.githubClientId,
123
- typesenseCollectionName: process.env.TYPESENSE_COLLECTION_NAME || envConfig.typesenseCollectionName,
124
- typesenseApiKey: process.env.TYPESENSE_API_KEY || envConfig.typesenseApiKey,
125
- typesenseHost: process.env.TYPESENSE_HOST || envConfig.typesenseHost,
126
- typesensePort: process.env.TYPESENSE_PORT || envConfig.typesensePort,
127
- typesenseProtocol: process.env.TYPESENSE_PROTOCOL || envConfig.typesenseProtocol,
128
93
  isDevelopment: isDevelopment(env),
129
94
  isTesting: env === "testing",
130
95
  isStaging: env === "staging",
@@ -144,7 +109,7 @@ var getConfig = () => {
144
109
  );
145
110
  }
146
111
  if (finalConfig.isDevelopment) {
147
- console.warn(
112
+ console.log(
148
113
  "environment in SDK:",
149
114
  env || process.env.NODE_ENV || process.env.NODE_ENV
150
115
  );
@@ -183,7 +148,7 @@ var TokenManager = class {
183
148
  });
184
149
  this.config = {
185
150
  storagePrefix: "symbols_",
186
- storageType: typeof window === "undefined" || process.env.NODE_ENV === "test" || process.env.NODE_ENV === "testing" ? "memory" : "localStorage",
151
+ storageType: typeof window === "undefined" || process.env.NODE_ENV === "test" ? "memory" : "localStorage",
187
152
  // 'localStorage' | 'sessionStorage' | 'memory'
188
153
  refreshBuffer: 60 * 1e3,
189
154
  // Refresh 1 minute before expiry
@@ -223,26 +188,15 @@ var TokenManager = class {
223
188
  if (typeof window === "undefined") {
224
189
  return this._memoryStorage;
225
190
  }
226
- const safeGetStorage = (provider) => {
227
- try {
228
- const storage = provider();
229
- const testKey = `${this.config.storagePrefix}__tm_test__`;
230
- storage.setItem(testKey, "1");
231
- storage.removeItem(testKey);
232
- return storage;
233
- } catch {
234
- return null;
235
- }
236
- };
237
- const localStorageInstance = safeGetStorage(() => window.localStorage);
238
- const sessionStorageInstance = safeGetStorage(() => window.sessionStorage);
191
+ const hasLocalStorage = typeof window.localStorage !== "undefined";
192
+ const hasSessionStorage = typeof window.sessionStorage !== "undefined";
239
193
  switch (this.config.storageType) {
240
194
  case "sessionStorage":
241
- return sessionStorageInstance || this._memoryStorage;
195
+ return hasSessionStorage ? window.sessionStorage : this._memoryStorage;
242
196
  case "memory":
243
197
  return this._memoryStorage;
244
198
  default:
245
- return localStorageInstance || this._memoryStorage;
199
+ return hasLocalStorage ? window.localStorage : this._memoryStorage;
246
200
  }
247
201
  }
248
202
  /**
@@ -581,10 +535,20 @@ var BaseService = class {
581
535
  }
582
536
  this._tokenManager = getTokenManager({
583
537
  apiUrl: this._apiUrl,
538
+ onTokenRefresh: (tokens) => {
539
+ this.updateContext({ authToken: tokens.accessToken });
540
+ },
541
+ onTokenExpired: () => {
542
+ this.updateContext({ authToken: null });
543
+ },
584
544
  onTokenError: (error) => {
585
545
  console.error("Token management error:", error);
586
546
  }
587
547
  });
548
+ const { authToken } = this._context;
549
+ if (authToken && !this._tokenManager.hasTokens()) {
550
+ this._tokenManager.setTokens({ access_token: authToken });
551
+ }
588
552
  this._setReady();
589
553
  } catch (error) {
590
554
  this._setError(error);
@@ -593,9 +557,7 @@ var BaseService = class {
593
557
  }
594
558
  // Update context
595
559
  updateContext(context) {
596
- if (context && typeof context === "object") {
597
- Object.assign(this._context, context);
598
- }
560
+ this._context = { ...this._context, ...context };
599
561
  }
600
562
  // Get service status
601
563
  getStatus() {
@@ -650,6 +612,11 @@ var BaseService = class {
650
612
  error
651
613
  );
652
614
  }
615
+ } else if (this._requiresInit(options.methodName)) {
616
+ const { authToken } = this._context;
617
+ if (authToken) {
618
+ defaultHeaders.Authorization = `Bearer ${authToken}`;
619
+ }
653
620
  }
654
621
  try {
655
622
  const response = await fetch(url, {
@@ -667,11 +634,11 @@ var BaseService = class {
667
634
  error = await response.json();
668
635
  } catch {
669
636
  }
670
- throw new Error(error.message || error.error || "Request failed", { cause: error });
637
+ throw new Error(error.message || error.error || "Request failed");
671
638
  }
672
639
  return response.status === 204 ? null : response.json();
673
640
  } catch (error) {
674
- throw new Error(`Request failed: ${error.message}`, { cause: error });
641
+ throw new Error(`Request failed: ${error.message}`);
675
642
  }
676
643
  }
677
644
  // Helper method to determine if a method requires initialization
@@ -740,7 +707,7 @@ var SubscriptionService = class extends BaseService {
740
707
  }
741
708
  throw new Error(response.message);
742
709
  } catch (error) {
743
- throw new Error(`Failed to create subscription: ${error.message}`, { cause: error });
710
+ throw new Error(`Failed to create subscription: ${error.message}`);
744
711
  }
745
712
  }
746
713
  /**
@@ -761,7 +728,7 @@ var SubscriptionService = class extends BaseService {
761
728
  }
762
729
  throw new Error(response.message);
763
730
  } catch (error) {
764
- throw new Error(`Failed to get project subscription status: ${error.message}`, { cause: error });
731
+ throw new Error(`Failed to get project subscription status: ${error.message}`);
765
732
  }
766
733
  }
767
734
  /**
@@ -782,7 +749,7 @@ var SubscriptionService = class extends BaseService {
782
749
  }
783
750
  throw new Error(response.message);
784
751
  } catch (error) {
785
- throw new Error(`Failed to get subscription usage: ${error.message}`, { cause: error });
752
+ throw new Error(`Failed to get subscription usage: ${error.message}`);
786
753
  }
787
754
  }
788
755
  /**
@@ -803,7 +770,7 @@ var SubscriptionService = class extends BaseService {
803
770
  }
804
771
  throw new Error(response.message);
805
772
  } catch (error) {
806
- throw new Error(`Failed to cancel subscription: ${error.message}`, { cause: error });
773
+ throw new Error(`Failed to cancel subscription: ${error.message}`);
807
774
  }
808
775
  }
809
776
  /**
@@ -840,7 +807,7 @@ var SubscriptionService = class extends BaseService {
840
807
  }
841
808
  throw new Error(response.message);
842
809
  } catch (error) {
843
- throw new Error(`Failed to list invoices: ${error.message}`, { cause: error });
810
+ throw new Error(`Failed to list invoices: ${error.message}`);
844
811
  }
845
812
  }
846
813
  /**
@@ -867,7 +834,7 @@ var SubscriptionService = class extends BaseService {
867
834
  }
868
835
  throw new Error(response.message);
869
836
  } catch (error) {
870
- throw new Error(`Failed to get portal URL: ${error.message}`, { cause: error });
837
+ throw new Error(`Failed to get portal URL: ${error.message}`);
871
838
  }
872
839
  }
873
840
  // ==================== SUBSCRIPTION HELPER METHODS ====================
@@ -902,7 +869,7 @@ var SubscriptionService = class extends BaseService {
902
869
  const status = await this.getProjectStatus(projectId);
903
870
  return status.hasSubscription === true;
904
871
  } catch (error) {
905
- throw new Error(`Failed to check subscription status: ${error.message}`, { cause: error });
872
+ throw new Error(`Failed to check subscription status: ${error.message}`);
906
873
  }
907
874
  }
908
875
  /**
@@ -916,7 +883,7 @@ var SubscriptionService = class extends BaseService {
916
883
  }
917
884
  return status.subscription;
918
885
  } catch (error) {
919
- throw new Error(`Failed to get project subscription: ${error.message}`, { cause: error });
886
+ throw new Error(`Failed to get project subscription: ${error.message}`);
920
887
  }
921
888
  }
922
889
  /**
@@ -930,7 +897,7 @@ var SubscriptionService = class extends BaseService {
930
897
  }
931
898
  return status.usage;
932
899
  } catch (error) {
933
- throw new Error(`Failed to get project usage: ${error.message}`, { cause: error });
900
+ throw new Error(`Failed to get project usage: ${error.message}`);
934
901
  }
935
902
  }
936
903
  /**
@@ -944,7 +911,7 @@ var SubscriptionService = class extends BaseService {
944
911
  pagination: result.pagination || {}
945
912
  };
946
913
  } catch (error) {
947
- throw new Error(`Failed to get invoices with pagination: ${error.message}`, { cause: error });
914
+ throw new Error(`Failed to get invoices with pagination: ${error.message}`);
948
915
  }
949
916
  }
950
917
  /**
@@ -955,7 +922,7 @@ var SubscriptionService = class extends BaseService {
955
922
  const usage = await this.getUsage(subscriptionId);
956
923
  return usage && usage.subscription && usage.subscription.status === "active";
957
924
  } catch (error) {
958
- throw new Error(`Failed to check subscription status: ${error.message}`, { cause: error });
925
+ throw new Error(`Failed to check subscription status: ${error.message}`);
959
926
  }
960
927
  }
961
928
  /**
@@ -966,7 +933,7 @@ var SubscriptionService = class extends BaseService {
966
933
  const usage = await this.getUsage(subscriptionId);
967
934
  return usage.limits || {};
968
935
  } catch (error) {
969
- throw new Error(`Failed to get subscription limits: ${error.message}`, { cause: error });
936
+ throw new Error(`Failed to get subscription limits: ${error.message}`);
970
937
  }
971
938
  }
972
939
  /**
@@ -1002,7 +969,7 @@ var SubscriptionService = class extends BaseService {
1002
969
  }
1003
970
  throw new Error(response.message);
1004
971
  } catch (error) {
1005
- throw new Error(`Failed to change subscription: ${error.message}`, { cause: error });
972
+ throw new Error(`Failed to change subscription: ${error.message}`);
1006
973
  }
1007
974
  }
1008
975
  /**
@@ -1030,7 +997,7 @@ var SubscriptionService = class extends BaseService {
1030
997
  }
1031
998
  throw new Error(response.message);
1032
999
  } catch (error) {
1033
- throw new Error(`Failed to downgrade subscription: ${error.message}`, { cause: error });
1000
+ throw new Error(`Failed to downgrade subscription: ${error.message}`);
1034
1001
  }
1035
1002
  }
1036
1003
  /**