@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.
- package/dist/cjs/config/environment.js +8 -43
- package/dist/cjs/index.js +4 -12
- package/dist/cjs/services/AdminService.js +4 -4
- package/dist/cjs/services/AuthService.js +149 -36
- package/dist/cjs/services/BaseService.js +18 -5
- package/dist/cjs/services/BranchService.js +10 -10
- package/dist/cjs/services/CollabService.js +18 -114
- package/dist/cjs/services/CoreService.js +19 -19
- package/dist/cjs/services/DnsService.js +4 -4
- package/dist/cjs/services/FileService.js +2 -2
- package/dist/cjs/services/PaymentService.js +2 -2
- package/dist/cjs/services/PlanService.js +12 -12
- package/dist/cjs/services/ProjectService.js +34 -39
- package/dist/cjs/services/PullRequestService.js +7 -7
- package/dist/cjs/services/SubscriptionService.js +14 -14
- package/dist/cjs/services/index.js +0 -4
- package/dist/cjs/utils/TokenManager.js +5 -16
- package/dist/cjs/utils/services.js +1 -14
- package/dist/esm/config/environment.js +8 -43
- package/dist/esm/index.js +300 -907
- package/dist/esm/services/AdminService.js +35 -68
- package/dist/esm/services/AuthService.js +168 -100
- package/dist/esm/services/BaseService.js +31 -64
- package/dist/esm/services/BranchService.js +41 -74
- package/dist/esm/services/CollabService.js +50 -452
- package/dist/esm/services/CoreService.js +50 -83
- package/dist/esm/services/DnsService.js +35 -68
- package/dist/esm/services/FileService.js +33 -66
- package/dist/esm/services/PaymentService.js +33 -66
- package/dist/esm/services/PlanService.js +43 -76
- package/dist/esm/services/ProjectService.js +65 -375
- package/dist/esm/services/PullRequestService.js +38 -71
- package/dist/esm/services/SubscriptionService.js +45 -78
- package/dist/esm/services/index.js +295 -884
- package/dist/esm/utils/CollabClient.js +8 -43
- package/dist/esm/utils/TokenManager.js +5 -16
- package/dist/esm/utils/services.js +1 -14
- package/dist/node/config/environment.js +8 -43
- package/dist/node/index.js +5 -14
- package/dist/node/services/AdminService.js +4 -4
- package/dist/node/services/AuthService.js +139 -36
- package/dist/node/services/BaseService.js +18 -5
- package/dist/node/services/BranchService.js +10 -10
- package/dist/node/services/CollabService.js +19 -115
- package/dist/node/services/CoreService.js +19 -19
- package/dist/node/services/DnsService.js +4 -4
- package/dist/node/services/FileService.js +2 -2
- package/dist/node/services/PaymentService.js +2 -2
- package/dist/node/services/PlanService.js +12 -12
- package/dist/node/services/ProjectService.js +34 -39
- package/dist/node/services/PullRequestService.js +7 -7
- package/dist/node/services/SubscriptionService.js +14 -14
- package/dist/node/services/index.js +0 -4
- package/dist/node/utils/TokenManager.js +5 -16
- package/dist/node/utils/services.js +1 -14
- package/package.json +6 -7
- package/src/config/environment.js +9 -48
- package/src/index.js +22 -38
- package/src/services/AdminService.js +4 -4
- package/src/services/AuthService.js +175 -42
- package/src/services/BaseService.js +24 -7
- package/src/services/BranchService.js +10 -10
- package/src/services/CollabService.js +19 -142
- package/src/services/CoreService.js +19 -19
- package/src/services/DnsService.js +4 -4
- package/src/services/FileService.js +2 -2
- package/src/services/PaymentService.js +2 -2
- package/src/services/PlanService.js +12 -12
- package/src/services/ProjectService.js +34 -41
- package/src/services/PullRequestService.js +7 -7
- package/src/services/SubscriptionService.js +14 -14
- package/src/services/index.js +1 -6
- package/src/utils/TokenManager.js +5 -19
- package/src/utils/services.js +1 -15
- package/dist/cjs/services/ScreenshotService.js +0 -304
- package/dist/cjs/utils/ordering.js +0 -295
- package/dist/esm/services/ScreenshotService.js +0 -992
- package/dist/esm/utils/ordering.js +0 -277
- package/dist/node/services/ScreenshotService.js +0 -285
- package/dist/node/utils/ordering.js +0 -276
- package/src/services/ScreenshotService.js +0 -258
- 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: "
|
|
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.
|
|
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"
|
|
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
|
|
227
|
-
|
|
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
|
|
195
|
+
return hasSessionStorage ? window.sessionStorage : this._memoryStorage;
|
|
242
196
|
case "memory":
|
|
243
197
|
return this._memoryStorage;
|
|
244
198
|
default:
|
|
245
|
-
return
|
|
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
|
-
|
|
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"
|
|
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}
|
|
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"
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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: "
|
|
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.
|
|
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"
|
|
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
|
|
227
|
-
|
|
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
|
|
195
|
+
return hasSessionStorage ? window.sessionStorage : this._memoryStorage;
|
|
242
196
|
case "memory":
|
|
243
197
|
return this._memoryStorage;
|
|
244
198
|
default:
|
|
245
|
-
return
|
|
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
|
-
|
|
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"
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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}
|
|
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
|