@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
@@ -852,11 +819,11 @@ var CoreService = class extends BaseService {
852
819
  error = await response.json();
853
820
  } catch {
854
821
  }
855
- throw new Error(error.message || error.error || "Request failed", { cause: error });
822
+ throw new Error(error.message || error.error || "Request failed");
856
823
  }
857
824
  return response.status === 204 ? null : response.json();
858
825
  } catch (error) {
859
- throw new Error(`Request failed: ${error.message}`, { cause: error });
826
+ throw new Error(`Request failed: ${error.message}`);
860
827
  }
861
828
  }
862
829
  // ==================== AUTH METHODS ====================
@@ -872,7 +839,7 @@ var CoreService = class extends BaseService {
872
839
  }
873
840
  throw new Error(response.message);
874
841
  } catch (error) {
875
- throw new Error(`Registration failed: ${error.message}`, { cause: error });
842
+ throw new Error(`Registration failed: ${error.message}`);
876
843
  }
877
844
  }
878
845
  async login(email, password) {
@@ -901,7 +868,7 @@ var CoreService = class extends BaseService {
901
868
  }
902
869
  throw new Error(response.message);
903
870
  } catch (error) {
904
- throw new Error(`Login failed: ${error.message}`, { cause: error });
871
+ throw new Error(`Login failed: ${error.message}`);
905
872
  }
906
873
  }
907
874
  async logout() {
@@ -920,7 +887,7 @@ var CoreService = class extends BaseService {
920
887
  this._tokenManager.clearTokens();
921
888
  }
922
889
  this.updateContext({ authToken: null });
923
- throw new Error(`Logout failed: ${error.message}`, { cause: error });
890
+ throw new Error(`Logout failed: ${error.message}`);
924
891
  }
925
892
  }
926
893
  async refreshToken(refreshToken) {
@@ -935,7 +902,7 @@ var CoreService = class extends BaseService {
935
902
  }
936
903
  throw new Error(response.message);
937
904
  } catch (error) {
938
- throw new Error(`Token refresh failed: ${error.message}`, { cause: error });
905
+ throw new Error(`Token refresh failed: ${error.message}`);
939
906
  }
940
907
  }
941
908
  async googleAuth(idToken, inviteToken = null) {
@@ -968,7 +935,7 @@ var CoreService = class extends BaseService {
968
935
  }
969
936
  throw new Error(response.message);
970
937
  } catch (error) {
971
- throw new Error(`Google auth failed: ${error.message}`, { cause: error });
938
+ throw new Error(`Google auth failed: ${error.message}`);
972
939
  }
973
940
  }
974
941
  async githubAuth(code, inviteToken = null) {
@@ -1001,7 +968,7 @@ var CoreService = class extends BaseService {
1001
968
  }
1002
969
  throw new Error(response.message);
1003
970
  } catch (error) {
1004
- throw new Error(`GitHub auth failed: ${error.message}`, { cause: error });
971
+ throw new Error(`GitHub auth failed: ${error.message}`);
1005
972
  }
1006
973
  }
1007
974
  async googleAuthCallback(code, redirectUri, inviteToken = null) {
@@ -1034,7 +1001,7 @@ var CoreService = class extends BaseService {
1034
1001
  }
1035
1002
  throw new Error(response.message);
1036
1003
  } catch (error) {
1037
- throw new Error(`Google auth callback failed: ${error.message}`, { cause: error });
1004
+ throw new Error(`Google auth callback failed: ${error.message}`);
1038
1005
  }
1039
1006
  }
1040
1007
  async requestPasswordReset(email) {
@@ -1049,7 +1016,7 @@ var CoreService = class extends BaseService {
1049
1016
  }
1050
1017
  throw new Error(response.message);
1051
1018
  } catch (error) {
1052
- throw new Error(`Password reset request failed: ${error.message}`, { cause: error });
1019
+ throw new Error(`Password reset request failed: ${error.message}`);
1053
1020
  }
1054
1021
  }
1055
1022
  async confirmPasswordReset(token, password) {
@@ -1064,7 +1031,7 @@ var CoreService = class extends BaseService {
1064
1031
  }
1065
1032
  throw new Error(response.message);
1066
1033
  } catch (error) {
1067
- throw new Error(`Password reset confirmation failed: ${error.message}`, { cause: error });
1034
+ throw new Error(`Password reset confirmation failed: ${error.message}`);
1068
1035
  }
1069
1036
  }
1070
1037
  async confirmRegistration(token) {
@@ -1079,7 +1046,7 @@ var CoreService = class extends BaseService {
1079
1046
  }
1080
1047
  throw new Error(response.message);
1081
1048
  } catch (error) {
1082
- throw new Error(`Registration confirmation failed: ${error.message}`, { cause: error });
1049
+ throw new Error(`Registration confirmation failed: ${error.message}`);
1083
1050
  }
1084
1051
  }
1085
1052
  async requestPasswordChange() {
@@ -1094,7 +1061,7 @@ var CoreService = class extends BaseService {
1094
1061
  }
1095
1062
  throw new Error(response.message);
1096
1063
  } catch (error) {
1097
- throw new Error(`Password change request failed: ${error.message}`, { cause: error });
1064
+ throw new Error(`Password change request failed: ${error.message}`);
1098
1065
  }
1099
1066
  }
1100
1067
  async confirmPasswordChange(currentPassword, newPassword, code) {
@@ -1110,7 +1077,7 @@ var CoreService = class extends BaseService {
1110
1077
  }
1111
1078
  throw new Error(response.message);
1112
1079
  } catch (error) {
1113
- throw new Error(`Password change confirmation failed: ${error.message}`, { cause: error });
1080
+ throw new Error(`Password change confirmation failed: ${error.message}`);
1114
1081
  }
1115
1082
  }
1116
1083
  async getMe() {
@@ -1125,7 +1092,7 @@ var CoreService = class extends BaseService {
1125
1092
  }
1126
1093
  throw new Error(response.message);
1127
1094
  } catch (error) {
1128
- throw new Error(`Failed to get user profile: ${error.message}`, { cause: error });
1095
+ throw new Error(`Failed to get user profile: ${error.message}`);
1129
1096
  }
1130
1097
  }
1131
1098
  /**
@@ -1241,7 +1208,7 @@ var CoreService = class extends BaseService {
1241
1208
  }
1242
1209
  throw new Error(response.message);
1243
1210
  } catch (error) {
1244
- throw new Error(`Failed to update user profile: ${error.message}`, { cause: error });
1211
+ throw new Error(`Failed to update user profile: ${error.message}`);
1245
1212
  }
1246
1213
  }
1247
1214
  async getUserProjects() {
@@ -1264,7 +1231,7 @@ var CoreService = class extends BaseService {
1264
1231
  }
1265
1232
  throw new Error(response.message);
1266
1233
  } catch (error) {
1267
- throw new Error(`Failed to get user projects: ${error.message}`, { cause: error });
1234
+ throw new Error(`Failed to get user projects: ${error.message}`);
1268
1235
  }
1269
1236
  }
1270
1237
  async getUser(userId) {
@@ -1282,7 +1249,7 @@ var CoreService = class extends BaseService {
1282
1249
  }
1283
1250
  throw new Error(response.message);
1284
1251
  } catch (error) {
1285
- throw new Error(`Failed to get user: ${error.message}`, { cause: error });
1252
+ throw new Error(`Failed to get user: ${error.message}`);
1286
1253
  }
1287
1254
  }
1288
1255
  async getUserByEmail(email) {
@@ -1300,7 +1267,7 @@ var CoreService = class extends BaseService {
1300
1267
  }
1301
1268
  throw new Error(response.message);
1302
1269
  } catch (error) {
1303
- throw new Error(`Failed to get user by email: ${error.message}`, { cause: error });
1270
+ throw new Error(`Failed to get user by email: ${error.message}`);
1304
1271
  }
1305
1272
  }
1306
1273
  // ==================== PROJECT 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
@@ -723,7 +690,7 @@ var DnsService = class extends BaseService {
723
690
  }
724
691
  throw new Error(response.message);
725
692
  } catch (error) {
726
- throw new Error(`Failed to create DNS record: ${error.message}`, { cause: error });
693
+ throw new Error(`Failed to create DNS record: ${error.message}`);
727
694
  }
728
695
  }
729
696
  async getDnsRecord(domain) {
@@ -741,7 +708,7 @@ var DnsService = class extends BaseService {
741
708
  }
742
709
  throw new Error(response.message);
743
710
  } catch (error) {
744
- throw new Error(`Failed to get DNS record: ${error.message}`, { cause: error });
711
+ throw new Error(`Failed to get DNS record: ${error.message}`);
745
712
  }
746
713
  }
747
714
  async getCustomHost(hostname) {
@@ -777,7 +744,7 @@ var DnsService = class extends BaseService {
777
744
  }
778
745
  throw new Error(response.message);
779
746
  } catch (error) {
780
- throw new Error(`Failed to remove DNS record: ${error.message}`, { cause: error });
747
+ throw new Error(`Failed to remove DNS record: ${error.message}`);
781
748
  }
782
749
  }
783
750
  // Deprecated, use addProjectCustomDomains instead
@@ -801,7 +768,7 @@ var DnsService = class extends BaseService {
801
768
  }
802
769
  throw new Error(response.message);
803
770
  } catch (error) {
804
- throw new Error(`Failed to set project domains: ${error.message}`, { cause: error });
771
+ throw new Error(`Failed to set project domains: ${error.message}`);
805
772
  }
806
773
  }
807
774
  // customDomains could be a string or an array of strings